From b6531a6d6f2331eca7cfc2a404f1c4c68920979b Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 13 Mar 2023 00:26:35 -0300 Subject: built from 3267f56dc3de054a7dbdd6cd83305b92cf16bd61 --- backoffice/index.js | 31 ++++++++++++++++++++++++------- backoffice/index.js.map | 4 ++-- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/backoffice/index.js b/backoffice/index.js index 9ed857b49..89bd215d5 100644 --- a/backoffice/index.js +++ b/backoffice/index.js @@ -17197,7 +17197,7 @@ function ConfirmModal({ label = "Confirm" }) { const { i18n: i18n2 } = useTranslationContext(); - return /* @__PURE__ */ h("div", { class: active ? "modal is-active" : "modal" }, /* @__PURE__ */ h("div", { class: "modal-background ", onClick: onCancel }), /* @__PURE__ */ h("div", { class: "modal-card", style: { maxWidth: 700 } }, /* @__PURE__ */ h("header", { class: "modal-card-head" }, !description ? null : /* @__PURE__ */ h("p", { class: "modal-card-title" }, /* @__PURE__ */ h("b", null, description)), /* @__PURE__ */ h("button", { class: "delete ", "aria-label": "close", onClick: onCancel })), /* @__PURE__ */ h("section", { class: "modal-card-body" }, children), /* @__PURE__ */ h("footer", { class: "modal-card-foot" }, /* @__PURE__ */ h("div", { class: "buttons is-right", style: { width: "100%" } }, /* @__PURE__ */ h("button", { class: "button ", onClick: onCancel }, /* @__PURE__ */ h(i18n2.Translate, null, "Cancel")), /* @__PURE__ */ h( + return /* @__PURE__ */ h("div", { class: active ? "modal is-active" : "modal" }, /* @__PURE__ */ h("div", { class: "modal-background ", onClick: onCancel }), /* @__PURE__ */ h("div", { class: "modal-card", style: { maxWidth: 700 } }, /* @__PURE__ */ h("header", { class: "modal-card-head" }, !description ? null : /* @__PURE__ */ h("p", { class: "modal-card-title" }, /* @__PURE__ */ h("b", null, description)), /* @__PURE__ */ h("button", { class: "delete ", "aria-label": "close", onClick: onCancel })), /* @__PURE__ */ h("section", { class: "modal-card-body" }, children), /* @__PURE__ */ h("footer", { class: "modal-card-foot" }, /* @__PURE__ */ h("div", { class: "buttons is-right", style: { width: "100%" } }, onConfirm ? /* @__PURE__ */ h(p, null, /* @__PURE__ */ h("button", { class: "button ", onClick: onCancel }, /* @__PURE__ */ h(i18n2.Translate, null, "Cancel")), /* @__PURE__ */ h( "button", { class: danger ? "button is-danger " : "button is-info ", @@ -17205,7 +17205,7 @@ function ConfirmModal({ onClick: onConfirm }, /* @__PURE__ */ h(i18n2.Translate, null, label) - )))), /* @__PURE__ */ h( + )) : /* @__PURE__ */ h("button", { class: "button ", onClick: onCancel }, /* @__PURE__ */ h(i18n2.Translate, null, "Close"))))), /* @__PURE__ */ h( "button", { class: "modal-close is-large ", @@ -27631,7 +27631,7 @@ function TemplateUsePage({ // src/paths/instance/templates/qr/QrPage.tsx function QrPage({ template, id: templateId, onBack }) { - var _a2; + var _a2, _b; const { i18n: i18n2 } = useTranslationContext(); const { url: backendUrl } = useBackendContext(); const { id: instanceId } = useInstanceContext(); @@ -27666,18 +27666,20 @@ function QrPage({ template, id: templateId, onBack }) { `${new URL(backendUrl).hostname}/${instanceId}` ); const oauthUri = !template.pos_algorithm ? void 0 : template.pos_algorithm === 1 ? `otpauth://totp/${issuer}:${templateId}?secret=${template.pos_key}&issuer=${issuer}&algorithm=SHA1&digits=8&period=30` : template.pos_algorithm === 2 ? `otpauth://totp/${issuer}:${templateId}?secret=${template.pos_key}&issuer=${issuer}&algorithm=SHA1&digits=8&period=30` : void 0; + const keySlice = (_b = template.pos_key) == null ? void 0 : _b.substring(0, 4); + const oauthUriWithoutSecret = !template.pos_algorithm ? void 0 : template.pos_algorithm === 1 ? `otpauth://totp/${issuer}:${templateId}?secret=${keySlice}...&issuer=${issuer}&algorithm=SHA1&digits=8&period=30` : template.pos_algorithm === 2 ? `otpauth://totp/${issuer}:${templateId}?secret=${keySlice}...&issuer=${issuer}&algorithm=SHA1&digits=8&period=30` : void 0; return /* @__PURE__ */ h("div", null, oauthUri && /* @__PURE__ */ h( ConfirmModal, { description: "Setup TOTP", active: setupTOTP, - onConfirm: () => { + onCancel: () => { setSetupTOTP(false); } }, /* @__PURE__ */ h("p", null, "Scan this qr code with your TOTP device"), /* @__PURE__ */ h(QR, { text: oauthUri }), - /* @__PURE__ */ h("pre", { style: { textAlign: "center" } }, /* @__PURE__ */ h("a", { href: oauthUri }, oauthUri)) + /* @__PURE__ */ h("pre", { style: { textAlign: "center" } }, /* @__PURE__ */ h("a", { href: oauthUri }, oauthUriWithoutSecret)) ), /* @__PURE__ */ h("section", { class: "section is-main-section" }, /* @__PURE__ */ h("div", { class: "columns" }, /* @__PURE__ */ h("div", { class: "column" }), /* @__PURE__ */ h("div", { class: "column is-four-fifths" }, /* @__PURE__ */ h( FormProvider, { @@ -27973,6 +27975,7 @@ var algorithmsNames2 = [ function UpdatePage2({ template, onUpdate, onBack }) { const { i18n: i18n2 } = useTranslationContext(); const backend = useBackendContext(); + const [showKey, setShowKey] = p2(false); const [state, setState] = p2(template); const errors2 = { template_description: !state.template_description ? i18n2.str`should not be empty` : void 0, @@ -28062,15 +28065,19 @@ function UpdatePage2({ template, onUpdate, onBack }) { } ), state.pos_algorithm && state.pos_algorithm > 0 ? /* @__PURE__ */ h( - Input, + InputWithAddon, { name: "pos_key", label: i18n2.str`Point-of-sale key`, + inputType: showKey ? "text" : "password", help: "", + expand: true, tooltip: i18n2.str`Useful to validate the purchase`, - side: /* @__PURE__ */ h("span", { "data-tooltip": i18n2.str`generate random secret key` }, /* @__PURE__ */ h( + addonAfter: /* @__PURE__ */ h("span", { class: "icon" }, showKey ? /* @__PURE__ */ h("i", { class: "mdi mdi-eye" }) : /* @__PURE__ */ h("i", { class: "mdi mdi-eye-off" })), + side: /* @__PURE__ */ h("span", null, /* @__PURE__ */ h( "button", { + "data-tooltip": i18n2.str`generate random secret key`, class: "button is-info mr-3", onClick: (e4) => { const pos_key = randomBase32Key(); @@ -28078,6 +28085,16 @@ function UpdatePage2({ template, onUpdate, onBack }) { } }, /* @__PURE__ */ h(i18n2.Translate, null, "random") + ), /* @__PURE__ */ h( + "button", + { + "data-tooltip": showKey ? i18n2.str`show secret key` : i18n2.str`hide secret key`, + class: "button is-info mr-3", + onClick: (e4) => { + setShowKey(!showKey); + } + }, + showKey ? /* @__PURE__ */ h(i18n2.Translate, null, "hide") : /* @__PURE__ */ h(i18n2.Translate, null, "show") )) } ) : void 0 diff --git a/backoffice/index.js.map b/backoffice/index.js.map index 271c5a10f..da0dba0c5 100644 --- a/backoffice/index.js.map +++ b/backoffice/index.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../../node_modules/.pnpm/big-integer@1.6.51/node_modules/big-integer/BigInteger.js", "../../../node_modules/.pnpm/jed@1.1.1/node_modules/jed/jed.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHas.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/has.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_defineProperty.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignValue.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseForOwn.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/identity.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/mapValues.js", "../../../node_modules/.pnpm/property-expr@2.0.5/node_modules/property-expr/index.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayReduce.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyOf.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_deburrLetter.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/deburr.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiWords.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicodeWord.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeWords.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/words.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCompounder.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/snakeCase.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSlice.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castSlice.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicode.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiToArray.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeToArray.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToArray.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCaseFirst.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/upperFirst.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/capitalize.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/camelCase.js", "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/mapKeys.js", "../../../node_modules/.pnpm/toposort@2.0.2/node_modules/toposort/index.js", "../../../node_modules/.pnpm/qrcode-generator@1.4.4/node_modules/qrcode-generator/qrcode.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/util.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/options.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/create-element.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/component.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/create-context.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/constants.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/children.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/props.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/index.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/render.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/clone-element.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/src/diff/catch-error.js", "../../../node_modules/.pnpm/preact@10.11.3/node_modules/preact/hooks/src/index.js", "../../taler-util/src/nacl-fast.ts", "../../taler-util/src/prng-browser.ts", "../../taler-util/src/taler-error-codes.ts", "../../taler-util/src/codec.ts", "../../taler-util/src/amounts.ts", "../../taler-util/src/backup-types.ts", "../../taler-util/src/punycode.ts", "../../taler-util/src/whatwg-url.ts", "../../taler-util/src/url.ts", "../../taler-util/src/helpers.ts", "../../taler-util/src/libtool-version.ts", "../../taler-util/src/notifications.ts", "../../taler-util/src/sha256.ts", "../../taler-util/src/kdf.ts", "../../taler-util/src/taler-crypto.ts", "../../taler-util/src/time.ts", "../../taler-util/src/taler-types.ts", "../../taler-util/src/logging.ts", "../../taler-util/src/bech32.ts", "../../taler-util/src/segwit_addr.ts", "../../taler-util/src/bitcoin.ts", "../../taler-util/src/payto.ts", "../../taler-util/src/ReserveTransaction.ts", "../../taler-util/src/taleruri.ts", "../../taler-util/src/transactions-types.ts", "../../taler-util/src/wallet-types.ts", "../../taler-util/src/i18n.ts", "../../taler-util/src/fnutils.ts", "../../taler-util/src/http-status-codes.ts", "../../taler-util/src/RequestThrottler.ts", "../../taler-util/src/CancellationToken.ts", "../../taler-util/src/contract-terms.ts", "../../taler-util/src/http-common.ts", "../../taler-util/src/index.browser.ts", "../../web-util/src/hooks/useLocalStorage.ts", "../../web-util/src/hooks/useLang.ts", "../../web-util/src/hooks/useAsyncAsHook.ts", "../../web-util/src/utils/base64.ts", "../../web-util/src/utils/request.ts", "../../web-util/src/context/api.ts", "../../web-util/src/context/translation.ts", "../../web-util/src/components/utils.ts", "../../web-util/src/tests/index.ts", "../../web-util/src/tests/hook.ts", "../../web-util/src/stories.tsx", "../../../node_modules/.pnpm/preact-router@3.2.1_preact@10.11.3/node_modules/preact-router/src/util.js", "../../../node_modules/.pnpm/preact-router@3.2.1_preact@10.11.3/node_modules/preact-router/src/index.js", "../../../node_modules/.pnpm/@babel+runtime@7.19.4/node_modules/@babel/runtime/helpers/esm/extends.js", "../../../node_modules/.pnpm/resolve-pathname@3.0.0/node_modules/resolve-pathname/esm/resolve-pathname.js", "../../../node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js", "../../../node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js", "../../../node_modules/.pnpm/history@4.10.1/node_modules/history/esm/history.js", "../src/hooks/index.ts", "../src/context/backend.ts", "../node_modules/preact/compat/src/util.js", "../node_modules/preact/compat/src/PureComponent.js", "../node_modules/preact/compat/src/memo.js", "../node_modules/preact/compat/src/forwardRef.js", "../node_modules/preact/compat/src/Children.js", "../node_modules/preact/compat/src/suspense.js", "../node_modules/preact/compat/src/suspense-list.js", "../node_modules/preact/compat/src/portals.js", "../node_modules/preact/compat/src/render.js", "../node_modules/preact/compat/src/index.js", "../../../node_modules/.pnpm/swr@1.3.0/node_modules/swr/dist/index.mjs", "../src/context/instance.ts", "../src/hooks/backend.ts", "../src/hooks/instance.ts", "../src/utils/constants.ts", "../src/components/exception/loading.tsx", "../src/components/form/FormProvider.tsx", "../src/components/form/useField.tsx", "../src/components/form/Input.tsx", "../src/components/modal/index.tsx", "../src/hooks/async.ts", "../src/components/exception/AsyncButton.tsx", "../src/context/config.ts", "../src/components/form/InputWithAddon.tsx", "../src/components/form/InputCurrency.tsx", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/toInteger/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/requiredArgs/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/toDate/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addDays/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addMonths/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/add/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/addMilliseconds/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultOptions/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/startOfDay/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInCalendarDays/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/compareAsc/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/constants/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isDate/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isValid/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInCalendarMonths/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInCalendarYears/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInDays/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInMilliseconds/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/roundingMethods/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInHours/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInMinutes/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/endOfDay/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/endOfMonth/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isLastDayOfMonth/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInMonths/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInSeconds/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/differenceInYears/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/subMilliseconds/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/getUTCWeek/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/formatters/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/format/longFormatters/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/protectedTokens/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/en-US/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/_lib/defaultLocale/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/format/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/formatDuration/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/intervalToDuration/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isAfter/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isBefore/index.js", "../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/isFuture/index.js", "../src/components/picker/DurationPicker.tsx", "../src/components/form/InputDuration.tsx", "../src/components/form/useGroupField.tsx", "../src/components/form/InputGroup.tsx", "../src/components/form/InputImage.tsx", "../src/components/form/InputLocation.tsx", "../src/utils/table.ts", "../src/components/form/InputSelector.tsx", "../src/components/form/InputPaytoForm.tsx", "../src/components/instance/DefaultInstanceFormFields.tsx", "../src/paths/admin/create/CreatePage.tsx", "../src/components/notifications/CreatedSuccessfully.tsx", "../src/paths/admin/create/InstanceCreatedSuccessfully.tsx", "../src/paths/admin/create/index.tsx", "../src/paths/admin/list/TableActive.tsx", "../src/paths/admin/list/View.tsx", "../src/paths/admin/list/index.tsx", "../src/paths/instance/kyc/list/ListPage.tsx", "../src/paths/instance/kyc/list/index.tsx", "../src/hooks/order.ts", "../src/hooks/product.ts", "../src/components/form/InputBoolean.tsx", "../src/components/picker/DatePicker.tsx", "../src/components/form/InputDate.tsx", "../src/components/form/InputNumber.tsx", "../src/components/form/InputSearchProduct.tsx", "../src/components/product/InventoryProductForm.tsx", "../../../node_modules/.pnpm/nanoclone@0.2.1/node_modules/nanoclone/src/index.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/printValue.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/locale.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/Condition.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/isSchema.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/toArray.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/ValidationError.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/runTests.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/createValidation.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/Reference.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/reach.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/ReferenceSet.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/schema.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/mixed.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/isAbsent.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/boolean.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/string.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/number.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/isodate.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/date.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/object.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/sortFields.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/util/sortByKeyOrder.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/array.js", "../../../node_modules/.pnpm/yup@0.32.11/node_modules/yup/es/setLocale.js", "../src/hooks/listener.ts", "../src/schemas/index.ts", "../src/components/form/InputTaxes.tsx", "../src/components/product/NonInventoryProductForm.tsx", "../src/components/product/ProductList.tsx", "../src/utils/amount.ts", "../src/paths/instance/orders/create/CreatePage.tsx", "../src/paths/instance/orders/create/index.tsx", "../src/components/form/TextField.tsx", "../src/paths/instance/orders/list/Table.tsx", "../src/paths/instance/orders/details/Timeline.tsx", "../src/paths/instance/orders/details/DetailPage.tsx", "../src/paths/instance/orders/details/index.tsx", "../src/paths/instance/orders/list/ListPage.tsx", "../src/paths/instance/orders/list/index.tsx", "../src/components/form/InputStock.tsx", "../src/components/product/ProductForm.tsx", "../src/paths/instance/products/create/CreatePage.tsx", "../src/paths/instance/products/create/index.tsx", "../src/paths/instance/products/list/Table.tsx", "../src/paths/instance/products/list/index.tsx", "../src/paths/instance/products/update/UpdatePage.tsx", "../src/paths/instance/products/update/index.tsx", "../src/hooks/reserves.ts", "../src/components/exception/QR.tsx", "../src/paths/instance/reserves/create/CreatedSuccessfully.tsx", "../src/paths/instance/reserves/create/CreatePage.tsx", "../src/paths/instance/reserves/create/index.tsx", "../src/paths/instance/reserves/details/TipInfo.tsx", "../src/paths/instance/reserves/details/DetailPage.tsx", "../src/paths/instance/reserves/details/index.tsx", "../src/paths/instance/reserves/list/CreatedSuccessfully.tsx", "../src/paths/instance/reserves/list/AutorizeTipModal.tsx", "../src/paths/instance/reserves/list/Table.tsx", "../src/paths/instance/reserves/list/index.tsx", "../src/hooks/templates.ts", "../src/utils/crypto.ts", "../src/paths/instance/templates/create/CreatePage.tsx", "../src/paths/instance/templates/create/index.tsx", "../src/paths/instance/templates/use/UsePage.tsx", "../src/paths/instance/templates/use/index.tsx", "../src/paths/instance/templates/qr/QrPage.tsx", "../src/paths/instance/templates/qr/index.tsx", "../src/paths/instance/templates/list/Table.tsx", "../src/paths/instance/templates/list/ListPage.tsx", "../src/paths/instance/templates/list/index.tsx", "../src/paths/instance/templates/update/UpdatePage.tsx", "../src/paths/instance/templates/update/index.tsx", "../src/hooks/webhooks.ts", "../src/paths/instance/webhooks/create/CreatePage.tsx", "../src/paths/instance/webhooks/create/index.tsx", "../src/paths/instance/webhooks/list/Table.tsx", "../src/paths/instance/webhooks/list/ListPage.tsx", "../src/paths/instance/webhooks/list/index.tsx", "../src/paths/instance/webhooks/update/UpdatePage.tsx", "../src/paths/instance/webhooks/update/index.tsx", "../src/hooks/transfer.ts", "../src/paths/instance/transfers/create/CreatePage.tsx", "../src/paths/instance/transfers/create/index.tsx", "../src/paths/instance/transfers/list/Table.tsx", "../src/paths/instance/transfers/list/ListPage.tsx", "../src/paths/instance/transfers/list/index.tsx", "../src/paths/instance/update/UpdatePage.tsx", "../src/paths/instance/update/index.tsx", "../src/components/exception/login.tsx", "../src/paths/login/index.tsx", "../src/paths/notfound/index.tsx", "../src/InstanceRoutes.tsx", "../src/i18n/strings.ts", "../src/components/menu/LangSelector.tsx", "../src/components/menu/NavigationBar.tsx", "../src/components/menu/SideBar.tsx", "../src/components/menu/index.tsx", "../src/ApplicationReadyRoutes.tsx", "../src/Application.tsx", "../src/index.tsx"], - "sourcesContent": ["var bigInt = (function (undefined) {\r\n \"use strict\";\r\n\r\n var BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_INT = 9007199254740992,\r\n MAX_INT_ARR = smallToArray(MAX_INT),\r\n DEFAULT_ALPHABET = \"0123456789abcdefghijklmnopqrstuvwxyz\";\r\n\r\n var supportsNativeBigInt = typeof BigInt === \"function\";\r\n\r\n function Integer(v, radix, alphabet, caseSensitive) {\r\n if (typeof v === \"undefined\") return Integer[0];\r\n if (typeof radix !== \"undefined\") return +radix === 10 && !alphabet ? parseValue(v) : parseBase(v, radix, alphabet, caseSensitive);\r\n return parseValue(v);\r\n }\r\n\r\n function BigInteger(value, sign) {\r\n this.value = value;\r\n this.sign = sign;\r\n this.isSmall = false;\r\n }\r\n BigInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function SmallInteger(value) {\r\n this.value = value;\r\n this.sign = value < 0;\r\n this.isSmall = true;\r\n }\r\n SmallInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function NativeBigInt(value) {\r\n this.value = value;\r\n }\r\n NativeBigInt.prototype = Object.create(Integer.prototype);\r\n\r\n function isPrecise(n) {\r\n return -MAX_INT < n && n < MAX_INT;\r\n }\r\n\r\n function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes\r\n if (n < 1e7)\r\n return [n];\r\n if (n < 1e14)\r\n return [n % 1e7, Math.floor(n / 1e7)];\r\n return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];\r\n }\r\n\r\n function arrayToSmall(arr) { // If BASE changes this function may need to change\r\n trim(arr);\r\n var length = arr.length;\r\n if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {\r\n switch (length) {\r\n case 0: return 0;\r\n case 1: return arr[0];\r\n case 2: return arr[0] + arr[1] * BASE;\r\n default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function trim(v) {\r\n var i = v.length;\r\n while (v[--i] === 0);\r\n v.length = i + 1;\r\n }\r\n\r\n function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger\r\n var x = new Array(length);\r\n var i = -1;\r\n while (++i < length) {\r\n x[i] = 0;\r\n }\r\n return x;\r\n }\r\n\r\n function truncate(n) {\r\n if (n > 0) return Math.floor(n);\r\n return Math.ceil(n);\r\n }\r\n\r\n function add(a, b) { // assumes a and b are arrays with a.length >= b.length\r\n var l_a = a.length,\r\n l_b = b.length,\r\n r = new Array(l_a),\r\n carry = 0,\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l_b; i++) {\r\n sum = a[i] + b[i] + carry;\r\n carry = sum >= base ? 1 : 0;\r\n r[i] = sum - carry * base;\r\n }\r\n while (i < l_a) {\r\n sum = a[i] + carry;\r\n carry = sum === base ? 1 : 0;\r\n r[i++] = sum - carry * base;\r\n }\r\n if (carry > 0) r.push(carry);\r\n return r;\r\n }\r\n\r\n function addAny(a, b) {\r\n if (a.length >= b.length) return add(a, b);\r\n return add(b, a);\r\n }\r\n\r\n function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l; i++) {\r\n sum = a[i] - base + carry;\r\n carry = Math.floor(sum / base);\r\n r[i] = sum - carry * base;\r\n carry += 1;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall) {\r\n return new BigInteger(addSmall(a, Math.abs(b)), this.sign);\r\n }\r\n return new BigInteger(addAny(a, b), this.sign);\r\n };\r\n BigInteger.prototype.plus = BigInteger.prototype.add;\r\n\r\n SmallInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n if (isPrecise(a + b)) return new SmallInteger(a + b);\r\n b = smallToArray(Math.abs(b));\r\n }\r\n return new BigInteger(addSmall(b, Math.abs(a)), a < 0);\r\n };\r\n SmallInteger.prototype.plus = SmallInteger.prototype.add;\r\n\r\n NativeBigInt.prototype.add = function (v) {\r\n return new NativeBigInt(this.value + parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.plus = NativeBigInt.prototype.add;\r\n\r\n function subtract(a, b) { // assumes a and b are arrays with a >= b\r\n var a_l = a.length,\r\n b_l = b.length,\r\n r = new Array(a_l),\r\n borrow = 0,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < b_l; i++) {\r\n difference = a[i] - borrow - b[i];\r\n if (difference < 0) {\r\n difference += base;\r\n borrow = 1;\r\n } else borrow = 0;\r\n r[i] = difference;\r\n }\r\n for (i = b_l; i < a_l; i++) {\r\n difference = a[i] - borrow;\r\n if (difference < 0) difference += base;\r\n else {\r\n r[i++] = difference;\r\n break;\r\n }\r\n r[i] = difference;\r\n }\r\n for (; i < a_l; i++) {\r\n r[i] = a[i];\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function subtractAny(a, b, sign) {\r\n var value;\r\n if (compareAbs(a, b) >= 0) {\r\n value = subtract(a, b);\r\n } else {\r\n value = subtract(b, a);\r\n sign = !sign;\r\n }\r\n value = arrayToSmall(value);\r\n if (typeof value === \"number\") {\r\n if (sign) value = -value;\r\n return new SmallInteger(value);\r\n }\r\n return new BigInteger(value, sign);\r\n }\r\n\r\n function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n carry = -b,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < l; i++) {\r\n difference = a[i] + carry;\r\n carry = Math.floor(difference / base);\r\n difference %= base;\r\n r[i] = difference < 0 ? difference + base : difference;\r\n }\r\n r = arrayToSmall(r);\r\n if (typeof r === \"number\") {\r\n if (sign) r = -r;\r\n return new SmallInteger(r);\r\n } return new BigInteger(r, sign);\r\n }\r\n\r\n BigInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall)\r\n return subtractSmall(a, Math.abs(b), this.sign);\r\n return subtractAny(a, b, this.sign);\r\n };\r\n BigInteger.prototype.minus = BigInteger.prototype.subtract;\r\n\r\n SmallInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n return new SmallInteger(a - b);\r\n }\r\n return subtractSmall(b, Math.abs(a), a >= 0);\r\n };\r\n SmallInteger.prototype.minus = SmallInteger.prototype.subtract;\r\n\r\n NativeBigInt.prototype.subtract = function (v) {\r\n return new NativeBigInt(this.value - parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract;\r\n\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this.value, !this.sign);\r\n };\r\n SmallInteger.prototype.negate = function () {\r\n var sign = this.sign;\r\n var small = new SmallInteger(-this.value);\r\n small.sign = !sign;\r\n return small;\r\n };\r\n NativeBigInt.prototype.negate = function () {\r\n return new NativeBigInt(-this.value);\r\n }\r\n\r\n BigInteger.prototype.abs = function () {\r\n return new BigInteger(this.value, false);\r\n };\r\n SmallInteger.prototype.abs = function () {\r\n return new SmallInteger(Math.abs(this.value));\r\n };\r\n NativeBigInt.prototype.abs = function () {\r\n return new NativeBigInt(this.value >= 0 ? this.value : -this.value);\r\n }\r\n\r\n\r\n function multiplyLong(a, b) {\r\n var a_l = a.length,\r\n b_l = b.length,\r\n l = a_l + b_l,\r\n r = createArray(l),\r\n base = BASE,\r\n product, carry, i, a_i, b_j;\r\n for (i = 0; i < a_l; ++i) {\r\n a_i = a[i];\r\n for (var j = 0; j < b_l; ++j) {\r\n b_j = b[j];\r\n product = a_i * b_j + r[i + j];\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n r[i + j + 1] += carry;\r\n }\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n carry = 0,\r\n product, i;\r\n for (i = 0; i < l; i++) {\r\n product = a[i] * b + carry;\r\n carry = Math.floor(product / base);\r\n r[i] = product - carry * base;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n function shiftLeft(x, n) {\r\n var r = [];\r\n while (n-- > 0) r.push(0);\r\n return r.concat(x);\r\n }\r\n\r\n function multiplyKaratsuba(x, y) {\r\n var n = Math.max(x.length, y.length);\r\n\r\n if (n <= 30) return multiplyLong(x, y);\r\n n = Math.ceil(n / 2);\r\n\r\n var b = x.slice(n),\r\n a = x.slice(0, n),\r\n d = y.slice(n),\r\n c = y.slice(0, n);\r\n\r\n var ac = multiplyKaratsuba(a, c),\r\n bd = multiplyKaratsuba(b, d),\r\n abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));\r\n\r\n var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));\r\n trim(product);\r\n return product;\r\n }\r\n\r\n // The following function is derived from a surface fit of a graph plotting the performance difference\r\n // between long multiplication and karatsuba multiplication versus the lengths of the two arrays.\r\n function useKaratsuba(l1, l2) {\r\n return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0;\r\n }\r\n\r\n BigInteger.prototype.multiply = function (v) {\r\n var n = parseValue(v),\r\n a = this.value, b = n.value,\r\n sign = this.sign !== n.sign,\r\n abs;\r\n if (n.isSmall) {\r\n if (b === 0) return Integer[0];\r\n if (b === 1) return this;\r\n if (b === -1) return this.negate();\r\n abs = Math.abs(b);\r\n if (abs < BASE) {\r\n return new BigInteger(multiplySmall(a, abs), sign);\r\n }\r\n b = smallToArray(abs);\r\n }\r\n if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes\r\n return new BigInteger(multiplyKaratsuba(a, b), sign);\r\n return new BigInteger(multiplyLong(a, b), sign);\r\n };\r\n\r\n BigInteger.prototype.times = BigInteger.prototype.multiply;\r\n\r\n function multiplySmallAndArray(a, b, sign) { // a >= 0\r\n if (a < BASE) {\r\n return new BigInteger(multiplySmall(b, a), sign);\r\n }\r\n return new BigInteger(multiplyLong(b, smallToArray(a)), sign);\r\n }\r\n SmallInteger.prototype._multiplyBySmall = function (a) {\r\n if (isPrecise(a.value * this.value)) {\r\n return new SmallInteger(a.value * this.value);\r\n }\r\n return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);\r\n };\r\n BigInteger.prototype._multiplyBySmall = function (a) {\r\n if (a.value === 0) return Integer[0];\r\n if (a.value === 1) return this;\r\n if (a.value === -1) return this.negate();\r\n return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);\r\n };\r\n SmallInteger.prototype.multiply = function (v) {\r\n return parseValue(v)._multiplyBySmall(this);\r\n };\r\n SmallInteger.prototype.times = SmallInteger.prototype.multiply;\r\n\r\n NativeBigInt.prototype.multiply = function (v) {\r\n return new NativeBigInt(this.value * parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.times = NativeBigInt.prototype.multiply;\r\n\r\n function square(a) {\r\n //console.assert(2 * BASE * BASE < MAX_INT);\r\n var l = a.length,\r\n r = createArray(l + l),\r\n base = BASE,\r\n product, carry, i, a_i, a_j;\r\n for (i = 0; i < l; i++) {\r\n a_i = a[i];\r\n carry = 0 - a_i * a_i;\r\n for (var j = i; j < l; j++) {\r\n a_j = a[j];\r\n product = 2 * (a_i * a_j) + r[i + j] + carry;\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n }\r\n r[i + l] = carry;\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.square = function () {\r\n return new BigInteger(square(this.value), false);\r\n };\r\n\r\n SmallInteger.prototype.square = function () {\r\n var value = this.value * this.value;\r\n if (isPrecise(value)) return new SmallInteger(value);\r\n return new BigInteger(square(smallToArray(Math.abs(this.value))), false);\r\n };\r\n\r\n NativeBigInt.prototype.square = function (v) {\r\n return new NativeBigInt(this.value * this.value);\r\n }\r\n\r\n function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n base = BASE,\r\n result = createArray(b.length),\r\n divisorMostSignificantDigit = b[b_l - 1],\r\n // normalization\r\n lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),\r\n remainder = multiplySmall(a, lambda),\r\n divisor = multiplySmall(b, lambda),\r\n quotientDigit, shift, carry, borrow, i, l, q;\r\n if (remainder.length <= a_l) remainder.push(0);\r\n divisor.push(0);\r\n divisorMostSignificantDigit = divisor[b_l - 1];\r\n for (shift = a_l - b_l; shift >= 0; shift--) {\r\n quotientDigit = base - 1;\r\n if (remainder[shift + b_l] !== divisorMostSignificantDigit) {\r\n quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);\r\n }\r\n // quotientDigit <= base - 1\r\n carry = 0;\r\n borrow = 0;\r\n l = divisor.length;\r\n for (i = 0; i < l; i++) {\r\n carry += quotientDigit * divisor[i];\r\n q = Math.floor(carry / base);\r\n borrow += remainder[shift + i] - (carry - q * base);\r\n carry = q;\r\n if (borrow < 0) {\r\n remainder[shift + i] = borrow + base;\r\n borrow = -1;\r\n } else {\r\n remainder[shift + i] = borrow;\r\n borrow = 0;\r\n }\r\n }\r\n while (borrow !== 0) {\r\n quotientDigit -= 1;\r\n carry = 0;\r\n for (i = 0; i < l; i++) {\r\n carry += remainder[shift + i] - base + divisor[i];\r\n if (carry < 0) {\r\n remainder[shift + i] = carry + base;\r\n carry = 0;\r\n } else {\r\n remainder[shift + i] = carry;\r\n carry = 1;\r\n }\r\n }\r\n borrow += carry;\r\n }\r\n result[shift] = quotientDigit;\r\n }\r\n // denormalization\r\n remainder = divModSmall(remainder, lambda)[0];\r\n return [arrayToSmall(result), arrayToSmall(remainder)];\r\n }\r\n\r\n function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/\r\n // Performs faster than divMod1 on larger input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n result = [],\r\n part = [],\r\n base = BASE,\r\n guess, xlen, highx, highy, check;\r\n while (a_l) {\r\n part.unshift(a[--a_l]);\r\n trim(part);\r\n if (compareAbs(part, b) < 0) {\r\n result.push(0);\r\n continue;\r\n }\r\n xlen = part.length;\r\n highx = part[xlen - 1] * base + part[xlen - 2];\r\n highy = b[b_l - 1] * base + b[b_l - 2];\r\n if (xlen > b_l) {\r\n highx = (highx + 1) * base;\r\n }\r\n guess = Math.ceil(highx / highy);\r\n do {\r\n check = multiplySmall(b, guess);\r\n if (compareAbs(check, part) <= 0) break;\r\n guess--;\r\n } while (guess);\r\n result.push(guess);\r\n part = subtract(part, check);\r\n }\r\n result.reverse();\r\n return [arrayToSmall(result), arrayToSmall(part)];\r\n }\r\n\r\n function divModSmall(value, lambda) {\r\n var length = value.length,\r\n quotient = createArray(length),\r\n base = BASE,\r\n i, q, remainder, divisor;\r\n remainder = 0;\r\n for (i = length - 1; i >= 0; --i) {\r\n divisor = remainder * base + value[i];\r\n q = truncate(divisor / lambda);\r\n remainder = divisor - q * lambda;\r\n quotient[i] = q | 0;\r\n }\r\n return [quotient, remainder | 0];\r\n }\r\n\r\n function divModAny(self, v) {\r\n var value, n = parseValue(v);\r\n if (supportsNativeBigInt) {\r\n return [new NativeBigInt(self.value / n.value), new NativeBigInt(self.value % n.value)];\r\n }\r\n var a = self.value, b = n.value;\r\n var quotient;\r\n if (b === 0) throw new Error(\"Cannot divide by zero\");\r\n if (self.isSmall) {\r\n if (n.isSmall) {\r\n return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];\r\n }\r\n return [Integer[0], self];\r\n }\r\n if (n.isSmall) {\r\n if (b === 1) return [self, Integer[0]];\r\n if (b == -1) return [self.negate(), Integer[0]];\r\n var abs = Math.abs(b);\r\n if (abs < BASE) {\r\n value = divModSmall(a, abs);\r\n quotient = arrayToSmall(value[0]);\r\n var remainder = value[1];\r\n if (self.sign) remainder = -remainder;\r\n if (typeof quotient === \"number\") {\r\n if (self.sign !== n.sign) quotient = -quotient;\r\n return [new SmallInteger(quotient), new SmallInteger(remainder)];\r\n }\r\n return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];\r\n }\r\n b = smallToArray(abs);\r\n }\r\n var comparison = compareAbs(a, b);\r\n if (comparison === -1) return [Integer[0], self];\r\n if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]];\r\n\r\n // divMod1 is faster on smaller input sizes\r\n if (a.length + b.length <= 200)\r\n value = divMod1(a, b);\r\n else value = divMod2(a, b);\r\n\r\n quotient = value[0];\r\n var qSign = self.sign !== n.sign,\r\n mod = value[1],\r\n mSign = self.sign;\r\n if (typeof quotient === \"number\") {\r\n if (qSign) quotient = -quotient;\r\n quotient = new SmallInteger(quotient);\r\n } else quotient = new BigInteger(quotient, qSign);\r\n if (typeof mod === \"number\") {\r\n if (mSign) mod = -mod;\r\n mod = new SmallInteger(mod);\r\n } else mod = new BigInteger(mod, mSign);\r\n return [quotient, mod];\r\n }\r\n\r\n BigInteger.prototype.divmod = function (v) {\r\n var result = divModAny(this, v);\r\n return {\r\n quotient: result[0],\r\n remainder: result[1]\r\n };\r\n };\r\n NativeBigInt.prototype.divmod = SmallInteger.prototype.divmod = BigInteger.prototype.divmod;\r\n\r\n\r\n BigInteger.prototype.divide = function (v) {\r\n return divModAny(this, v)[0];\r\n };\r\n NativeBigInt.prototype.over = NativeBigInt.prototype.divide = function (v) {\r\n return new NativeBigInt(this.value / parseValue(v).value);\r\n };\r\n SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;\r\n\r\n BigInteger.prototype.mod = function (v) {\r\n return divModAny(this, v)[1];\r\n };\r\n NativeBigInt.prototype.mod = NativeBigInt.prototype.remainder = function (v) {\r\n return new NativeBigInt(this.value % parseValue(v).value);\r\n };\r\n SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;\r\n\r\n BigInteger.prototype.pow = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value,\r\n value, x, y;\r\n if (b === 0) return Integer[1];\r\n if (a === 0) return Integer[0];\r\n if (a === 1) return Integer[1];\r\n if (a === -1) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.sign) {\r\n return Integer[0];\r\n }\r\n if (!n.isSmall) throw new Error(\"The exponent \" + n.toString() + \" is too large.\");\r\n if (this.isSmall) {\r\n if (isPrecise(value = Math.pow(a, b)))\r\n return new SmallInteger(truncate(value));\r\n }\r\n x = this;\r\n y = Integer[1];\r\n while (true) {\r\n if (b & 1 === 1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === 0) break;\r\n b /= 2;\r\n x = x.square();\r\n }\r\n return y;\r\n };\r\n SmallInteger.prototype.pow = BigInteger.prototype.pow;\r\n\r\n NativeBigInt.prototype.pow = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value, b = n.value;\r\n var _0 = BigInt(0), _1 = BigInt(1), _2 = BigInt(2);\r\n if (b === _0) return Integer[1];\r\n if (a === _0) return Integer[0];\r\n if (a === _1) return Integer[1];\r\n if (a === BigInt(-1)) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.isNegative()) return new NativeBigInt(_0);\r\n var x = this;\r\n var y = Integer[1];\r\n while (true) {\r\n if ((b & _1) === _1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === _0) break;\r\n b /= _2;\r\n x = x.square();\r\n }\r\n return y;\r\n }\r\n\r\n BigInteger.prototype.modPow = function (exp, mod) {\r\n exp = parseValue(exp);\r\n mod = parseValue(mod);\r\n if (mod.isZero()) throw new Error(\"Cannot take modPow with modulus 0\");\r\n var r = Integer[1],\r\n base = this.mod(mod);\r\n if (exp.isNegative()) {\r\n exp = exp.multiply(Integer[-1]);\r\n base = base.modInv(mod);\r\n }\r\n while (exp.isPositive()) {\r\n if (base.isZero()) return Integer[0];\r\n if (exp.isOdd()) r = r.multiply(base).mod(mod);\r\n exp = exp.divide(2);\r\n base = base.square().mod(mod);\r\n }\r\n return r;\r\n };\r\n NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow;\r\n\r\n function compareAbs(a, b) {\r\n if (a.length !== b.length) {\r\n return a.length > b.length ? 1 : -1;\r\n }\r\n for (var i = a.length - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n\r\n BigInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) return 1;\r\n return compareAbs(a, b);\r\n };\r\n SmallInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = Math.abs(this.value),\r\n b = n.value;\r\n if (n.isSmall) {\r\n b = Math.abs(b);\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n return -1;\r\n };\r\n NativeBigInt.prototype.compareAbs = function (v) {\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n a = a >= 0 ? a : -a;\r\n b = b >= 0 ? b : -b;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n\r\n BigInteger.prototype.compare = function (v) {\r\n // See discussion about comparison with Infinity:\r\n // https://github.com/peterolson/BigInteger.js/issues/61\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (this.sign !== n.sign) {\r\n return n.sign ? 1 : -1;\r\n }\r\n if (n.isSmall) {\r\n return this.sign ? -1 : 1;\r\n }\r\n return compareAbs(a, b) * (this.sign ? -1 : 1);\r\n };\r\n BigInteger.prototype.compareTo = BigInteger.prototype.compare;\r\n\r\n SmallInteger.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n }\r\n if (a < 0 !== n.sign) {\r\n return a < 0 ? -1 : 1;\r\n }\r\n return a < 0 ? 1 : -1;\r\n };\r\n SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;\r\n\r\n NativeBigInt.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare;\r\n\r\n BigInteger.prototype.equals = function (v) {\r\n return this.compare(v) === 0;\r\n };\r\n NativeBigInt.prototype.eq = NativeBigInt.prototype.equals = SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;\r\n\r\n BigInteger.prototype.notEquals = function (v) {\r\n return this.compare(v) !== 0;\r\n };\r\n NativeBigInt.prototype.neq = NativeBigInt.prototype.notEquals = SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;\r\n\r\n BigInteger.prototype.greater = function (v) {\r\n return this.compare(v) > 0;\r\n };\r\n NativeBigInt.prototype.gt = NativeBigInt.prototype.greater = SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;\r\n\r\n BigInteger.prototype.lesser = function (v) {\r\n return this.compare(v) < 0;\r\n };\r\n NativeBigInt.prototype.lt = NativeBigInt.prototype.lesser = SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;\r\n\r\n BigInteger.prototype.greaterOrEquals = function (v) {\r\n return this.compare(v) >= 0;\r\n };\r\n NativeBigInt.prototype.geq = NativeBigInt.prototype.greaterOrEquals = SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;\r\n\r\n BigInteger.prototype.lesserOrEquals = function (v) {\r\n return this.compare(v) <= 0;\r\n };\r\n NativeBigInt.prototype.leq = NativeBigInt.prototype.lesserOrEquals = SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;\r\n\r\n BigInteger.prototype.isEven = function () {\r\n return (this.value[0] & 1) === 0;\r\n };\r\n SmallInteger.prototype.isEven = function () {\r\n return (this.value & 1) === 0;\r\n };\r\n NativeBigInt.prototype.isEven = function () {\r\n return (this.value & BigInt(1)) === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isOdd = function () {\r\n return (this.value[0] & 1) === 1;\r\n };\r\n SmallInteger.prototype.isOdd = function () {\r\n return (this.value & 1) === 1;\r\n };\r\n NativeBigInt.prototype.isOdd = function () {\r\n return (this.value & BigInt(1)) === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isPositive = function () {\r\n return !this.sign;\r\n };\r\n SmallInteger.prototype.isPositive = function () {\r\n return this.value > 0;\r\n };\r\n NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive;\r\n\r\n BigInteger.prototype.isNegative = function () {\r\n return this.sign;\r\n };\r\n SmallInteger.prototype.isNegative = function () {\r\n return this.value < 0;\r\n };\r\n NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative;\r\n\r\n BigInteger.prototype.isUnit = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isUnit = function () {\r\n return Math.abs(this.value) === 1;\r\n };\r\n NativeBigInt.prototype.isUnit = function () {\r\n return this.abs().value === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isZero = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isZero = function () {\r\n return this.value === 0;\r\n };\r\n NativeBigInt.prototype.isZero = function () {\r\n return this.value === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isDivisibleBy = function (v) {\r\n var n = parseValue(v);\r\n if (n.isZero()) return false;\r\n if (n.isUnit()) return true;\r\n if (n.compareAbs(2) === 0) return this.isEven();\r\n return this.mod(n).isZero();\r\n };\r\n NativeBigInt.prototype.isDivisibleBy = SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;\r\n\r\n function isBasicPrime(v) {\r\n var n = v.abs();\r\n if (n.isUnit()) return false;\r\n if (n.equals(2) || n.equals(3) || n.equals(5)) return true;\r\n if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;\r\n if (n.lesser(49)) return true;\r\n // we don't know if it's prime: let the other functions figure it out\r\n }\r\n\r\n function millerRabinTest(n, a) {\r\n var nPrev = n.prev(),\r\n b = nPrev,\r\n r = 0,\r\n d, t, i, x;\r\n while (b.isEven()) b = b.divide(2), r++;\r\n next: for (i = 0; i < a.length; i++) {\r\n if (n.lesser(a[i])) continue;\r\n x = bigInt(a[i]).modPow(b, n);\r\n if (x.isUnit() || x.equals(nPrev)) continue;\r\n for (d = r - 1; d != 0; d--) {\r\n x = x.square().mod(n);\r\n if (x.isUnit()) return false;\r\n if (x.equals(nPrev)) continue next;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Set \"strict\" to true to force GRH-supported lower bound of 2*log(N)^2\r\n BigInteger.prototype.isPrime = function (strict) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var bits = n.bitLength();\r\n if (bits <= 64)\r\n return millerRabinTest(n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]);\r\n var logN = Math.log(2) * bits.toJSNumber();\r\n var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN);\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt(i + 2));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;\r\n\r\n BigInteger.prototype.isProbablePrime = function (iterations, rng) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var t = iterations === undefined ? 5 : iterations;\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt.randBetween(2, n.minus(2), rng));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;\r\n\r\n BigInteger.prototype.modInv = function (n) {\r\n var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR;\r\n while (!newR.isZero()) {\r\n q = r.divide(newR);\r\n lastT = t;\r\n lastR = r;\r\n t = newT;\r\n r = newR;\r\n newT = lastT.subtract(q.multiply(newT));\r\n newR = lastR.subtract(q.multiply(newR));\r\n }\r\n if (!r.isUnit()) throw new Error(this.toString() + \" and \" + n.toString() + \" are not co-prime\");\r\n if (t.compare(0) === -1) {\r\n t = t.add(n);\r\n }\r\n if (this.isNegative()) {\r\n return t.negate();\r\n }\r\n return t;\r\n };\r\n\r\n NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv;\r\n\r\n BigInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return subtractSmall(value, 1, this.sign);\r\n }\r\n return new BigInteger(addSmall(value, 1), this.sign);\r\n };\r\n SmallInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (value + 1 < MAX_INT) return new SmallInteger(value + 1);\r\n return new BigInteger(MAX_INT_ARR, false);\r\n };\r\n NativeBigInt.prototype.next = function () {\r\n return new NativeBigInt(this.value + BigInt(1));\r\n }\r\n\r\n BigInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return new BigInteger(addSmall(value, 1), true);\r\n }\r\n return subtractSmall(value, 1, this.sign);\r\n };\r\n SmallInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);\r\n return new BigInteger(MAX_INT_ARR, true);\r\n };\r\n NativeBigInt.prototype.prev = function () {\r\n return new NativeBigInt(this.value - BigInt(1));\r\n }\r\n\r\n var powersOfTwo = [1];\r\n while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);\r\n var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];\r\n\r\n function shift_isSmall(n) {\r\n return Math.abs(n) <= BASE;\r\n }\r\n\r\n BigInteger.prototype.shiftLeft = function (v) {\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftRight(-n);\r\n var result = this;\r\n if (result.isZero()) return result;\r\n while (n >= powers2Length) {\r\n result = result.multiply(highestPower2);\r\n n -= powers2Length - 1;\r\n }\r\n return result.multiply(powersOfTwo[n]);\r\n };\r\n NativeBigInt.prototype.shiftLeft = SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;\r\n\r\n BigInteger.prototype.shiftRight = function (v) {\r\n var remQuo;\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftLeft(-n);\r\n var result = this;\r\n while (n >= powers2Length) {\r\n if (result.isZero() || (result.isNegative() && result.isUnit())) return result;\r\n remQuo = divModAny(result, highestPower2);\r\n result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n n -= powers2Length - 1;\r\n }\r\n remQuo = divModAny(result, powersOfTwo[n]);\r\n return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n };\r\n NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;\r\n\r\n function bitwise(x, y, fn) {\r\n y = parseValue(y);\r\n var xSign = x.isNegative(), ySign = y.isNegative();\r\n var xRem = xSign ? x.not() : x,\r\n yRem = ySign ? y.not() : y;\r\n var xDigit = 0, yDigit = 0;\r\n var xDivMod = null, yDivMod = null;\r\n var result = [];\r\n while (!xRem.isZero() || !yRem.isZero()) {\r\n xDivMod = divModAny(xRem, highestPower2);\r\n xDigit = xDivMod[1].toJSNumber();\r\n if (xSign) {\r\n xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers\r\n }\r\n\r\n yDivMod = divModAny(yRem, highestPower2);\r\n yDigit = yDivMod[1].toJSNumber();\r\n if (ySign) {\r\n yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers\r\n }\r\n\r\n xRem = xDivMod[0];\r\n yRem = yDivMod[0];\r\n result.push(fn(xDigit, yDigit));\r\n }\r\n var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);\r\n for (var i = result.length - 1; i >= 0; i -= 1) {\r\n sum = sum.multiply(highestPower2).add(bigInt(result[i]));\r\n }\r\n return sum;\r\n }\r\n\r\n BigInteger.prototype.not = function () {\r\n return this.negate().prev();\r\n };\r\n NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not;\r\n\r\n BigInteger.prototype.and = function (n) {\r\n return bitwise(this, n, function (a, b) { return a & b; });\r\n };\r\n NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and;\r\n\r\n BigInteger.prototype.or = function (n) {\r\n return bitwise(this, n, function (a, b) { return a | b; });\r\n };\r\n NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or;\r\n\r\n BigInteger.prototype.xor = function (n) {\r\n return bitwise(this, n, function (a, b) { return a ^ b; });\r\n };\r\n NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor;\r\n\r\n var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;\r\n function roughLOB(n) { // get lowestOneBit (rough)\r\n // SmallInteger: return Min(lowestOneBit(n), 1 << 30)\r\n // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]\r\n var v = n.value,\r\n x = typeof v === \"number\" ? v | LOBMASK_I :\r\n typeof v === \"bigint\" ? v | BigInt(LOBMASK_I) :\r\n v[0] + v[1] * BASE | LOBMASK_BI;\r\n return x & -x;\r\n }\r\n\r\n function integerLogarithm(value, base) {\r\n if (base.compareTo(value) <= 0) {\r\n var tmp = integerLogarithm(value, base.square(base));\r\n var p = tmp.p;\r\n var e = tmp.e;\r\n var t = p.multiply(base);\r\n return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 };\r\n }\r\n return { p: bigInt(1), e: 0 };\r\n }\r\n\r\n BigInteger.prototype.bitLength = function () {\r\n var n = this;\r\n if (n.compareTo(bigInt(0)) < 0) {\r\n n = n.negate().subtract(bigInt(1));\r\n }\r\n if (n.compareTo(bigInt(0)) === 0) {\r\n return bigInt(0);\r\n }\r\n return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1));\r\n }\r\n NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;\r\n\r\n function max(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.greater(b) ? a : b;\r\n }\r\n function min(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.lesser(b) ? a : b;\r\n }\r\n function gcd(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n if (a.equals(b)) return a;\r\n if (a.isZero()) return b;\r\n if (b.isZero()) return a;\r\n var c = Integer[1], d, t;\r\n while (a.isEven() && b.isEven()) {\r\n d = min(roughLOB(a), roughLOB(b));\r\n a = a.divide(d);\r\n b = b.divide(d);\r\n c = c.multiply(d);\r\n }\r\n while (a.isEven()) {\r\n a = a.divide(roughLOB(a));\r\n }\r\n do {\r\n while (b.isEven()) {\r\n b = b.divide(roughLOB(b));\r\n }\r\n if (a.greater(b)) {\r\n t = b; b = a; a = t;\r\n }\r\n b = b.subtract(a);\r\n } while (!b.isZero());\r\n return c.isUnit() ? a : a.multiply(c);\r\n }\r\n function lcm(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n return a.divide(gcd(a, b)).multiply(b);\r\n }\r\n function randBetween(a, b, rng) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n var usedRNG = rng || Math.random;\r\n var low = min(a, b), high = max(a, b);\r\n var range = high.subtract(low).add(1);\r\n if (range.isSmall) return low.add(Math.floor(usedRNG() * range));\r\n var digits = toBase(range, BASE).value;\r\n var result = [], restricted = true;\r\n for (var i = 0; i < digits.length; i++) {\r\n var top = restricted ? digits[i] + (i + 1 < digits.length ? digits[i + 1] / BASE : 0) : BASE;\r\n var digit = truncate(usedRNG() * top);\r\n result.push(digit);\r\n if (digit < digits[i]) restricted = false;\r\n }\r\n return low.add(Integer.fromArray(result, BASE, false));\r\n }\r\n\r\n var parseBase = function (text, base, alphabet, caseSensitive) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n text = String(text);\r\n if (!caseSensitive) {\r\n text = text.toLowerCase();\r\n alphabet = alphabet.toLowerCase();\r\n }\r\n var length = text.length;\r\n var i;\r\n var absBase = Math.abs(base);\r\n var alphabetValues = {};\r\n for (i = 0; i < alphabet.length; i++) {\r\n alphabetValues[alphabet[i]] = i;\r\n }\r\n for (i = 0; i < length; i++) {\r\n var c = text[i];\r\n if (c === \"-\") continue;\r\n if (c in alphabetValues) {\r\n if (alphabetValues[c] >= absBase) {\r\n if (c === \"1\" && absBase === 1) continue;\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n }\r\n }\r\n base = parseValue(base);\r\n var digits = [];\r\n var isNegative = text[0] === \"-\";\r\n for (i = isNegative ? 1 : 0; i < text.length; i++) {\r\n var c = text[i];\r\n if (c in alphabetValues) digits.push(parseValue(alphabetValues[c]));\r\n else if (c === \"<\") {\r\n var start = i;\r\n do { i++; } while (text[i] !== \">\" && i < text.length);\r\n digits.push(parseValue(text.slice(start + 1, i)));\r\n }\r\n else throw new Error(c + \" is not a valid character\");\r\n }\r\n return parseBaseFromArray(digits, base, isNegative);\r\n };\r\n\r\n function parseBaseFromArray(digits, base, isNegative) {\r\n var val = Integer[0], pow = Integer[1], i;\r\n for (i = digits.length - 1; i >= 0; i--) {\r\n val = val.add(digits[i].times(pow));\r\n pow = pow.times(base);\r\n }\r\n return isNegative ? val.negate() : val;\r\n }\r\n\r\n function stringify(digit, alphabet) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n if (digit < alphabet.length) {\r\n return alphabet[digit];\r\n }\r\n return \"<\" + digit + \">\";\r\n }\r\n\r\n function toBase(n, base) {\r\n base = bigInt(base);\r\n if (base.isZero()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n throw new Error(\"Cannot convert nonzero numbers to base 0.\");\r\n }\r\n if (base.equals(-1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n if (n.isNegative())\r\n return {\r\n value: [].concat.apply([], Array.apply(null, Array(-n.toJSNumber()))\r\n .map(Array.prototype.valueOf, [1, 0])\r\n ),\r\n isNegative: false\r\n };\r\n\r\n var arr = Array.apply(null, Array(n.toJSNumber() - 1))\r\n .map(Array.prototype.valueOf, [0, 1]);\r\n arr.unshift([1]);\r\n return {\r\n value: [].concat.apply([], arr),\r\n isNegative: false\r\n };\r\n }\r\n\r\n var neg = false;\r\n if (n.isNegative() && base.isPositive()) {\r\n neg = true;\r\n n = n.abs();\r\n }\r\n if (base.isUnit()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n\r\n return {\r\n value: Array.apply(null, Array(n.toJSNumber()))\r\n .map(Number.prototype.valueOf, 1),\r\n isNegative: neg\r\n };\r\n }\r\n var out = [];\r\n var left = n, divmod;\r\n while (left.isNegative() || left.compareAbs(base) >= 0) {\r\n divmod = left.divmod(base);\r\n left = divmod.quotient;\r\n var digit = divmod.remainder;\r\n if (digit.isNegative()) {\r\n digit = base.minus(digit).abs();\r\n left = left.next();\r\n }\r\n out.push(digit.toJSNumber());\r\n }\r\n out.push(left.toJSNumber());\r\n return { value: out.reverse(), isNegative: neg };\r\n }\r\n\r\n function toBaseString(n, base, alphabet) {\r\n var arr = toBase(n, base);\r\n return (arr.isNegative ? \"-\" : \"\") + arr.value.map(function (x) {\r\n return stringify(x, alphabet);\r\n }).join('');\r\n }\r\n\r\n BigInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n SmallInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n NativeBigInt.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n BigInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix !== 10) return toBaseString(this, radix, alphabet);\r\n var v = this.value, l = v.length, str = String(v[--l]), zeros = \"0000000\", digit;\r\n while (--l >= 0) {\r\n digit = String(v[l]);\r\n str += zeros.slice(digit.length) + digit;\r\n }\r\n var sign = this.sign ? \"-\" : \"\";\r\n return sign + str;\r\n };\r\n\r\n SmallInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix != 10) return toBaseString(this, radix, alphabet);\r\n return String(this.value);\r\n };\r\n\r\n NativeBigInt.prototype.toString = SmallInteger.prototype.toString;\r\n\r\n NativeBigInt.prototype.toJSON = BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); }\r\n\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10);\r\n };\r\n BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;\r\n\r\n SmallInteger.prototype.valueOf = function () {\r\n return this.value;\r\n };\r\n SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;\r\n NativeBigInt.prototype.valueOf = NativeBigInt.prototype.toJSNumber = function () {\r\n return parseInt(this.toString(), 10);\r\n }\r\n\r\n function parseStringValue(v) {\r\n if (isPrecise(+v)) {\r\n var x = +v;\r\n if (x === truncate(x))\r\n return supportsNativeBigInt ? new NativeBigInt(BigInt(x)) : new SmallInteger(x);\r\n throw new Error(\"Invalid integer: \" + v);\r\n }\r\n var sign = v[0] === \"-\";\r\n if (sign) v = v.slice(1);\r\n var split = v.split(/e/i);\r\n if (split.length > 2) throw new Error(\"Invalid integer: \" + split.join(\"e\"));\r\n if (split.length === 2) {\r\n var exp = split[1];\r\n if (exp[0] === \"+\") exp = exp.slice(1);\r\n exp = +exp;\r\n if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error(\"Invalid integer: \" + exp + \" is not a valid exponent.\");\r\n var text = split[0];\r\n var decimalPlace = text.indexOf(\".\");\r\n if (decimalPlace >= 0) {\r\n exp -= text.length - decimalPlace - 1;\r\n text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);\r\n }\r\n if (exp < 0) throw new Error(\"Cannot include negative exponent part for integers\");\r\n text += (new Array(exp + 1)).join(\"0\");\r\n v = text;\r\n }\r\n var isValid = /^([0-9][0-9]*)$/.test(v);\r\n if (!isValid) throw new Error(\"Invalid integer: \" + v);\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(sign ? \"-\" + v : v));\r\n }\r\n var r = [], max = v.length, l = LOG_BASE, min = max - l;\r\n while (max > 0) {\r\n r.push(+v.slice(min, max));\r\n min -= l;\r\n if (min < 0) min = 0;\r\n max -= l;\r\n }\r\n trim(r);\r\n return new BigInteger(r, sign);\r\n }\r\n\r\n function parseNumberValue(v) {\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(v));\r\n }\r\n if (isPrecise(v)) {\r\n if (v !== truncate(v)) throw new Error(v + \" is not an integer.\");\r\n return new SmallInteger(v);\r\n }\r\n return parseStringValue(v.toString());\r\n }\r\n\r\n function parseValue(v) {\r\n if (typeof v === \"number\") {\r\n return parseNumberValue(v);\r\n }\r\n if (typeof v === \"string\") {\r\n return parseStringValue(v);\r\n }\r\n if (typeof v === \"bigint\") {\r\n return new NativeBigInt(v);\r\n }\r\n return v;\r\n }\r\n // Pre-define numbers in range [-999,999]\r\n for (var i = 0; i < 1000; i++) {\r\n Integer[i] = parseValue(i);\r\n if (i > 0) Integer[-i] = parseValue(-i);\r\n }\r\n // Backwards compatibility\r\n Integer.one = Integer[1];\r\n Integer.zero = Integer[0];\r\n Integer.minusOne = Integer[-1];\r\n Integer.max = max;\r\n Integer.min = min;\r\n Integer.gcd = gcd;\r\n Integer.lcm = lcm;\r\n Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger || x instanceof NativeBigInt; };\r\n Integer.randBetween = randBetween;\r\n\r\n Integer.fromArray = function (digits, base, isNegative) {\r\n return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative);\r\n };\r\n\r\n return Integer;\r\n})();\r\n\r\n// Node.js check\r\nif (typeof module !== \"undefined\" && module.hasOwnProperty(\"exports\")) {\r\n module.exports = bigInt;\r\n}\r\n\r\n//amd check\r\nif (typeof define === \"function\" && define.amd) {\r\n define( function () {\r\n return bigInt;\r\n });\r\n}\r\n", "/**\n * @preserve jed.js https://github.com/SlexAxton/Jed\n */\n/*\n-----------\nA gettext compatible i18n library for modern JavaScript Applications\n\nby Alex Sexton - AlexSexton [at] gmail - @SlexAxton\n\nMIT License\n\nA jQuery Foundation project - requires CLA to contribute -\nhttps://contribute.jquery.org/CLA/\n\n\n\nJed offers the entire applicable GNU gettext spec'd set of\nfunctions, but also offers some nicer wrappers around them.\nThe api for gettext was written for a language with no function\noverloading, so Jed allows a little more of that.\n\nMany thanks to Joshua I. Miller - unrtst@cpan.org - who wrote\ngettext.js back in 2008. I was able to vet a lot of my ideas\nagainst his. I also made sure Jed passed against his tests\nin order to offer easy upgrades -- jsgettext.berlios.de\n*/\n(function (root, undef) {\n\n // Set up some underscore-style functions, if you already have\n // underscore, feel free to delete this section, and use it\n // directly, however, the amount of functions used doesn't\n // warrant having underscore as a full dependency.\n // Underscore 1.3.0 was used to port and is licensed\n // under the MIT License by Jeremy Ashkenas.\n var ArrayProto = Array.prototype,\n ObjProto = Object.prototype,\n slice = ArrayProto.slice,\n hasOwnProp = ObjProto.hasOwnProperty,\n nativeForEach = ArrayProto.forEach,\n breaker = {};\n\n // We're not using the OOP style _ so we don't need the\n // extra level of indirection. This still means that you\n // sub out for real `_` though.\n var _ = {\n forEach : function( obj, iterator, context ) {\n var i, l, key;\n if ( obj === null ) {\n return;\n }\n\n if ( nativeForEach && obj.forEach === nativeForEach ) {\n obj.forEach( iterator, context );\n }\n else if ( obj.length === +obj.length ) {\n for ( i = 0, l = obj.length; i < l; i++ ) {\n if ( i in obj && iterator.call( context, obj[i], i, obj ) === breaker ) {\n return;\n }\n }\n }\n else {\n for ( key in obj) {\n if ( hasOwnProp.call( obj, key ) ) {\n if ( iterator.call (context, obj[key], key, obj ) === breaker ) {\n return;\n }\n }\n }\n }\n },\n extend : function( obj ) {\n this.forEach( slice.call( arguments, 1 ), function ( source ) {\n for ( var prop in source ) {\n obj[prop] = source[prop];\n }\n });\n return obj;\n }\n };\n // END Miniature underscore impl\n\n // Jed is a constructor function\n var Jed = function ( options ) {\n // Some minimal defaults\n this.defaults = {\n \"locale_data\" : {\n \"messages\" : {\n \"\" : {\n \"domain\" : \"messages\",\n \"lang\" : \"en\",\n \"plural_forms\" : \"nplurals=2; plural=(n != 1);\"\n }\n // There are no default keys, though\n }\n },\n // The default domain if one is missing\n \"domain\" : \"messages\",\n // enable debug mode to log untranslated strings to the console\n \"debug\" : false\n };\n\n // Mix in the sent options with the default options\n this.options = _.extend( {}, this.defaults, options );\n this.textdomain( this.options.domain );\n\n if ( options.domain && ! this.options.locale_data[ this.options.domain ] ) {\n throw new Error('Text domain set to non-existent domain: `' + options.domain + '`');\n }\n };\n\n // The gettext spec sets this character as the default\n // delimiter for context lookups.\n // e.g.: context\\u0004key\n // If your translation company uses something different,\n // just change this at any time and it will use that instead.\n Jed.context_delimiter = String.fromCharCode( 4 );\n\n function getPluralFormFunc ( plural_form_string ) {\n return Jed.PF.compile( plural_form_string || \"nplurals=2; plural=(n != 1);\");\n }\n\n function Chain( key, i18n ){\n this._key = key;\n this._i18n = i18n;\n }\n\n // Create a chainable api for adding args prettily\n _.extend( Chain.prototype, {\n onDomain : function ( domain ) {\n this._domain = domain;\n return this;\n },\n withContext : function ( context ) {\n this._context = context;\n return this;\n },\n ifPlural : function ( num, pkey ) {\n this._val = num;\n this._pkey = pkey;\n return this;\n },\n fetch : function ( sArr ) {\n if ( {}.toString.call( sArr ) != '[object Array]' ) {\n sArr = [].slice.call(arguments, 0);\n }\n return ( sArr && sArr.length ? Jed.sprintf : function(x){ return x; } )(\n this._i18n.dcnpgettext(this._domain, this._context, this._key, this._pkey, this._val),\n sArr\n );\n }\n });\n\n // Add functions to the Jed prototype.\n // These will be the functions on the object that's returned\n // from creating a `new Jed()`\n // These seem redundant, but they gzip pretty well.\n _.extend( Jed.prototype, {\n // The sexier api start point\n translate : function ( key ) {\n return new Chain( key, this );\n },\n\n textdomain : function ( domain ) {\n if ( ! domain ) {\n return this._textdomain;\n }\n this._textdomain = domain;\n },\n\n gettext : function ( key ) {\n return this.dcnpgettext.call( this, undef, undef, key );\n },\n\n dgettext : function ( domain, key ) {\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n dcgettext : function ( domain , key /*, category */ ) {\n // Ignores the category anyways\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n ngettext : function ( skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, undef, skey, pkey, val );\n },\n\n dngettext : function ( domain, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n dcngettext : function ( domain, skey, pkey, val/*, category */) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n pgettext : function ( context, key ) {\n return this.dcnpgettext.call( this, undef, context, key );\n },\n\n dpgettext : function ( domain, context, key ) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n dcpgettext : function ( domain, context, key/*, category */) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n npgettext : function ( context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, context, skey, pkey, val );\n },\n\n dnpgettext : function ( domain, context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, context, skey, pkey, val );\n },\n\n // The most fully qualified gettext function. It has every option.\n // Since it has every option, we can use it from every other method.\n // This is the bread and butter.\n // Technically there should be one more argument in this function for 'Category',\n // but since we never use it, we might as well not waste the bytes to define it.\n dcnpgettext : function ( domain, context, singular_key, plural_key, val ) {\n // Set some defaults\n\n plural_key = plural_key || singular_key;\n\n // Use the global domain default if one\n // isn't explicitly passed in\n domain = domain || this._textdomain;\n\n var fallback;\n\n // Handle special cases\n\n // No options found\n if ( ! this.options ) {\n // There's likely something wrong, but we'll return the correct key for english\n // We do this by instantiating a brand new Jed instance with the default set\n // for everything that could be broken.\n fallback = new Jed();\n return fallback.dcnpgettext.call( fallback, undefined, undefined, singular_key, plural_key, val );\n }\n\n // No translation data provided\n if ( ! this.options.locale_data ) {\n throw new Error('No locale data provided.');\n }\n\n if ( ! this.options.locale_data[ domain ] ) {\n throw new Error('Domain `' + domain + '` was not found.');\n }\n\n if ( ! this.options.locale_data[ domain ][ \"\" ] ) {\n throw new Error('No locale meta information provided.');\n }\n\n // Make sure we have a truthy key. Otherwise we might start looking\n // into the empty string key, which is the options for the locale\n // data.\n if ( ! singular_key ) {\n throw new Error('No translation key found.');\n }\n\n var key = context ? context + Jed.context_delimiter + singular_key : singular_key,\n locale_data = this.options.locale_data,\n dict = locale_data[ domain ],\n defaultConf = (locale_data.messages || this.defaults.locale_data.messages)[\"\"],\n pluralForms = dict[\"\"].plural_forms || dict[\"\"][\"Plural-Forms\"] || dict[\"\"][\"plural-forms\"] || defaultConf.plural_forms || defaultConf[\"Plural-Forms\"] || defaultConf[\"plural-forms\"],\n val_list,\n res;\n\n var val_idx;\n if (val === undefined) {\n // No value passed in; assume singular key lookup.\n val_idx = 0;\n\n } else {\n // Value has been passed in; use plural-forms calculations.\n\n // Handle invalid numbers, but try casting strings for good measure\n if ( typeof val != 'number' ) {\n val = parseInt( val, 10 );\n\n if ( isNaN( val ) ) {\n throw new Error('The number that was passed in is not a number.');\n }\n }\n\n val_idx = getPluralFormFunc(pluralForms)(val);\n }\n\n // Throw an error if a domain isn't found\n if ( ! dict ) {\n throw new Error('No domain named `' + domain + '` could be found.');\n }\n\n val_list = dict[ key ];\n\n // If there is no match, then revert back to\n // english style singular/plural with the keys passed in.\n if ( ! val_list || val_idx > val_list.length ) {\n if (this.options.missing_key_callback) {\n this.options.missing_key_callback(key, domain);\n }\n res = [ singular_key, plural_key ];\n\n // collect untranslated strings\n if (this.options.debug===true) {\n console.log(res[ getPluralFormFunc(pluralForms)( val ) ]);\n }\n return res[ getPluralFormFunc()( val ) ];\n }\n\n res = val_list[ val_idx ];\n\n // This includes empty strings on purpose\n if ( ! res ) {\n res = [ singular_key, plural_key ];\n return res[ getPluralFormFunc()( val ) ];\n }\n return res;\n }\n });\n\n\n // We add in sprintf capabilities for post translation value interolation\n // This is not internally used, so you can remove it if you have this\n // available somewhere else, or want to use a different system.\n\n // We _slightly_ modify the normal sprintf behavior to more gracefully handle\n // undefined values.\n\n /**\n sprintf() for JavaScript 0.7-beta1\n http://www.diveintojavascript.com/projects/javascript-sprintf\n\n Copyright (c) Alexandru Marasteanu \n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of sprintf() for JavaScript nor the\n names of its contributors may be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n var sprintf = (function() {\n function get_type(variable) {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();\n }\n function str_repeat(input, multiplier) {\n for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}\n return output.join('');\n }\n\n var str_format = function() {\n if (!str_format.cache.hasOwnProperty(arguments[0])) {\n str_format.cache[arguments[0]] = str_format.parse(arguments[0]);\n }\n return str_format.format.call(null, str_format.cache[arguments[0]], arguments);\n };\n\n str_format.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_tree[i]);\n if (node_type === 'string') {\n output.push(parse_tree[i]);\n }\n else if (node_type === 'array') {\n match = parse_tree[i]; // convenience purposes only\n if (match[2]) { // keyword argument\n arg = argv[cursor];\n for (k = 0; k < match[2].length; k++) {\n if (!arg.hasOwnProperty(match[2][k])) {\n throw(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]));\n }\n arg = arg[match[2][k]];\n }\n }\n else if (match[1]) { // positional argument (explicit)\n arg = argv[match[1]];\n }\n else { // positional argument (implicit)\n arg = argv[cursor++];\n }\n\n if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {\n throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));\n }\n\n // Jed EDIT\n if ( typeof arg == 'undefined' || arg === null ) {\n arg = '';\n }\n // Jed EDIT\n\n switch (match[8]) {\n case 'b': arg = arg.toString(2); break;\n case 'c': arg = String.fromCharCode(arg); break;\n case 'd': arg = parseInt(arg, 10); break;\n case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;\n case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;\n case 'o': arg = arg.toString(8); break;\n case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;\n case 'u': arg = Math.abs(arg); break;\n case 'x': arg = arg.toString(16); break;\n case 'X': arg = arg.toString(16).toUpperCase(); break;\n }\n arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);\n pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';\n pad_length = match[6] - String(arg).length;\n pad = match[6] ? str_repeat(pad_character, pad_length) : '';\n output.push(match[5] ? arg + pad : pad + arg);\n }\n }\n return output.join('');\n };\n\n str_format.cache = {};\n\n str_format.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = /^[^\\x25]+/.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n }\n else if ((match = /^\\x25{2}/.exec(_fmt)) !== null) {\n parse_tree.push('%');\n }\n else if ((match = /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = /^([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = /^\\.([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else if ((field_match = /^\\[(\\d+)\\]/.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else {\n throw('[sprintf] huh?');\n }\n }\n }\n else {\n throw('[sprintf] huh?');\n }\n match[2] = field_list;\n }\n else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw('[sprintf] mixing positional and named placeholders is not (yet) supported');\n }\n parse_tree.push(match);\n }\n else {\n throw('[sprintf] huh?');\n }\n _fmt = _fmt.substring(match[0].length);\n }\n return parse_tree;\n };\n\n return str_format;\n })();\n\n var vsprintf = function(fmt, argv) {\n argv.unshift(fmt);\n return sprintf.apply(null, argv);\n };\n\n Jed.parse_plural = function ( plural_forms, n ) {\n plural_forms = plural_forms.replace(/n/g, n);\n return Jed.parse_expression(plural_forms);\n };\n\n Jed.sprintf = function ( fmt, args ) {\n if ( {}.toString.call( args ) == '[object Array]' ) {\n return vsprintf( fmt, [].slice.call(args) );\n }\n return sprintf.apply(this, [].slice.call(arguments) );\n };\n\n Jed.prototype.sprintf = function () {\n return Jed.sprintf.apply(this, arguments);\n };\n // END sprintf Implementation\n\n // Start the Plural forms section\n // This is a full plural form expression parser. It is used to avoid\n // running 'eval' or 'new Function' directly against the plural\n // forms.\n //\n // This can be important if you get translations done through a 3rd\n // party vendor. I encourage you to use this instead, however, I\n // also will provide a 'precompiler' that you can use at build time\n // to output valid/safe function representations of the plural form\n // expressions. This means you can build this code out for the most\n // part.\n Jed.PF = {};\n\n Jed.PF.parse = function ( p ) {\n var plural_str = Jed.PF.extractPluralExpr( p );\n return Jed.PF.parser.parse.call(Jed.PF.parser, plural_str);\n };\n\n Jed.PF.compile = function ( p ) {\n // Handle trues and falses as 0 and 1\n function imply( val ) {\n return (val === true ? 1 : val ? val : 0);\n }\n\n var ast = Jed.PF.parse( p );\n return function ( n ) {\n return imply( Jed.PF.interpreter( ast )( n ) );\n };\n };\n\n Jed.PF.interpreter = function ( ast ) {\n return function ( n ) {\n var res;\n switch ( ast.type ) {\n case 'GROUP':\n return Jed.PF.interpreter( ast.expr )( n );\n case 'TERNARY':\n if ( Jed.PF.interpreter( ast.expr )( n ) ) {\n return Jed.PF.interpreter( ast.truthy )( n );\n }\n return Jed.PF.interpreter( ast.falsey )( n );\n case 'OR':\n return Jed.PF.interpreter( ast.left )( n ) || Jed.PF.interpreter( ast.right )( n );\n case 'AND':\n return Jed.PF.interpreter( ast.left )( n ) && Jed.PF.interpreter( ast.right )( n );\n case 'LT':\n return Jed.PF.interpreter( ast.left )( n ) < Jed.PF.interpreter( ast.right )( n );\n case 'GT':\n return Jed.PF.interpreter( ast.left )( n ) > Jed.PF.interpreter( ast.right )( n );\n case 'LTE':\n return Jed.PF.interpreter( ast.left )( n ) <= Jed.PF.interpreter( ast.right )( n );\n case 'GTE':\n return Jed.PF.interpreter( ast.left )( n ) >= Jed.PF.interpreter( ast.right )( n );\n case 'EQ':\n return Jed.PF.interpreter( ast.left )( n ) == Jed.PF.interpreter( ast.right )( n );\n case 'NEQ':\n return Jed.PF.interpreter( ast.left )( n ) != Jed.PF.interpreter( ast.right )( n );\n case 'MOD':\n return Jed.PF.interpreter( ast.left )( n ) % Jed.PF.interpreter( ast.right )( n );\n case 'VAR':\n return n;\n case 'NUM':\n return ast.val;\n default:\n throw new Error(\"Invalid Token found.\");\n }\n };\n };\n\n Jed.PF.extractPluralExpr = function ( p ) {\n // trim first\n p = p.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\n if (! /;\\s*$/.test(p)) {\n p = p.concat(';');\n }\n\n var nplurals_re = /nplurals\\=(\\d+);/,\n plural_re = /plural\\=(.*);/,\n nplurals_matches = p.match( nplurals_re ),\n res = {},\n plural_matches;\n\n // Find the nplurals number\n if ( nplurals_matches.length > 1 ) {\n res.nplurals = nplurals_matches[1];\n }\n else {\n throw new Error('nplurals not found in plural_forms string: ' + p );\n }\n\n // remove that data to get to the formula\n p = p.replace( nplurals_re, \"\" );\n plural_matches = p.match( plural_re );\n\n if (!( plural_matches && plural_matches.length > 1 ) ) {\n throw new Error('`plural` expression not found: ' + p);\n }\n return plural_matches[ 1 ];\n };\n\n /* Jison generated parser */\n Jed.PF.parser = (function(){\n\nvar parser = {trace: function trace() { },\nyy: {},\nsymbols_: {\"error\":2,\"expressions\":3,\"e\":4,\"EOF\":5,\"?\":6,\":\":7,\"||\":8,\"&&\":9,\"<\":10,\"<=\":11,\">\":12,\">=\":13,\"!=\":14,\"==\":15,\"%\":16,\"(\":17,\")\":18,\"n\":19,\"NUMBER\":20,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"EOF\",6:\"?\",7:\":\",8:\"||\",9:\"&&\",10:\"<\",11:\"<=\",12:\">\",13:\">=\",14:\"!=\",15:\"==\",16:\"%\",17:\"(\",18:\")\",19:\"n\",20:\"NUMBER\"},\nproductions_: [0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],\nperformAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1: return { type : 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 2:this.$ = { type: 'TERNARY', expr: $$[$0-4], truthy : $$[$0-2], falsey: $$[$0] };\nbreak;\ncase 3:this.$ = { type: \"OR\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 4:this.$ = { type: \"AND\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 5:this.$ = { type: 'LT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 6:this.$ = { type: 'LTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 7:this.$ = { type: 'GT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 8:this.$ = { type: 'GTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 9:this.$ = { type: 'NEQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 10:this.$ = { type: 'EQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 11:this.$ = { type: 'MOD', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 12:this.$ = { type: 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 13:this.$ = { type: 'VAR' };\nbreak;\ncase 14:this.$ = { type: 'NUM', val: Number(yytext) };\nbreak;\n}\n},\ntable: [{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],\ndefaultActions: {6:[2,1]},\nparseError: function parseError(str, hash) {\n throw new Error(str);\n},\nparse: function parse(input) {\n var self = this,\n stack = [0],\n vstack = [null], // semantic value stack\n lstack = [], // location stack\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n\n //this.reductionCount = this.shiftCount = 0;\n\n this.lexer.setInput(input);\n this.lexer.yy = this.yy;\n this.yy.lexer = this.lexer;\n if (typeof this.lexer.yylloc == 'undefined')\n this.lexer.yylloc = {};\n var yyloc = this.lexer.yylloc;\n lstack.push(yyloc);\n\n if (typeof this.yy.parseError === 'function')\n this.parseError = this.yy.parseError;\n\n function popStack (n) {\n stack.length = stack.length - 2*n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n function lex() {\n var token;\n token = self.lexer.lex() || 1; // $end = 1\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n }\n\n var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;\n while (true) {\n // retreive state number from top of stack\n state = stack[stack.length-1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol == null)\n symbol = lex();\n // read action for current state and first input\n action = table[state] && table[state][symbol];\n }\n\n // handle parse error\n _handle_error:\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n\n if (!recovering) {\n // Report error\n expected = [];\n for (p in table[state]) if (this.terminals_[p] && p > 2) {\n expected.push(\"'\"+this.terminals_[p]+\"'\");\n }\n var errStr = '';\n if (this.lexer.showPosition) {\n errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + this.terminals_[symbol]+ \"'\";\n } else {\n errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +\n (symbol == 1 /*EOF*/ ? \"end of input\" :\n (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));\n }\n this.parseError(errStr,\n {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});\n }\n\n // just recovered from another error\n if (recovering == 3) {\n if (symbol == EOF) {\n throw new Error(errStr || 'Parsing halted.');\n }\n\n // discard current lookahead and grab another\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n symbol = lex();\n }\n\n // try to recover from error\n while (1) {\n // check for error recovery rule in this state\n if ((TERROR.toString()) in table[state]) {\n break;\n }\n if (state == 0) {\n throw new Error(errStr || 'Parsing halted.');\n }\n popStack(1);\n state = stack[stack.length-1];\n }\n\n preErrorSymbol = symbol; // save the lookahead token\n symbol = TERROR; // insert generic error symbol as new lookahead\n state = stack[stack.length-1];\n action = table[state] && table[state][TERROR];\n recovering = 3; // allow 3 real symbols to be shifted before reporting a new error\n }\n\n // this shouldn't happen, unless resolve defaults are off\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);\n }\n\n switch (action[0]) {\n\n case 1: // shift\n //this.shiftCount++;\n\n stack.push(symbol);\n vstack.push(this.lexer.yytext);\n lstack.push(this.lexer.yylloc);\n stack.push(action[1]); // push state\n symbol = null;\n if (!preErrorSymbol) { // normal execution/no error\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n if (recovering > 0)\n recovering--;\n } else { // error just occurred, resume old lookahead f/ before error\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n\n case 2: // reduce\n //this.reductionCount++;\n\n len = this.productions_[action[1]][1];\n\n // perform semantic action\n yyval.$ = vstack[vstack.length-len]; // default to $$ = $1\n // default location, uses first token for firsts, last for lasts\n yyval._$ = {\n first_line: lstack[lstack.length-(len||1)].first_line,\n last_line: lstack[lstack.length-1].last_line,\n first_column: lstack[lstack.length-(len||1)].first_column,\n last_column: lstack[lstack.length-1].last_column\n };\n r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n\n if (typeof r !== 'undefined') {\n return r;\n }\n\n // pop off stack\n if (len) {\n stack = stack.slice(0,-1*len*2);\n vstack = vstack.slice(0, -1*len);\n lstack = lstack.slice(0, -1*len);\n }\n\n stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[stack[stack.length-2]][stack[stack.length-1]];\n stack.push(newState);\n break;\n\n case 3: // accept\n return true;\n }\n\n }\n\n return true;\n}};/* Jison generated lexer */\nvar lexer = (function(){\n\nvar lexer = ({EOF:1,\nparseError:function parseError(str, hash) {\n if (this.yy.parseError) {\n this.yy.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\nsetInput:function (input) {\n this._input = input;\n this._more = this._less = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};\n return this;\n },\ninput:function () {\n var ch = this._input[0];\n this.yytext+=ch;\n this.yyleng++;\n this.match+=ch;\n this.matched+=ch;\n var lines = ch.match(/\\n/);\n if (lines) this.yylineno++;\n this._input = this._input.slice(1);\n return ch;\n },\nunput:function (ch) {\n this._input = ch + this._input;\n return this;\n },\nmore:function () {\n this._more = true;\n return this;\n },\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");\n },\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c+\"^\";\n },\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) this.done = true;\n\n var token,\n match,\n col,\n lines;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i=0;i < rules.length; i++) {\n match = this._input.match(this.rules[rules[i]]);\n if (match) {\n lines = match[0].match(/\\n.*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {first_line: this.yylloc.last_line,\n last_line: this.yylineno+1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n this._more = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]);\n if (token) return token;\n else return;\n }\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),\n {text: \"\", token: null, line: this.yylineno});\n }\n },\nlex:function lex() {\n var r = this.next();\n if (typeof r !== 'undefined') {\n return r;\n } else {\n return this.lex();\n }\n },\nbegin:function begin(condition) {\n this.conditionStack.push(condition);\n },\npopState:function popState() {\n return this.conditionStack.pop();\n },\n_currentRules:function _currentRules() {\n return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;\n },\ntopState:function () {\n return this.conditionStack[this.conditionStack.length-2];\n },\npushState:function begin(condition) {\n this.begin(condition);\n }});\nlexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:/* skip whitespace */\nbreak;\ncase 1:return 20\nbreak;\ncase 2:return 19\nbreak;\ncase 3:return 8\nbreak;\ncase 4:return 9\nbreak;\ncase 5:return 6\nbreak;\ncase 6:return 7\nbreak;\ncase 7:return 11\nbreak;\ncase 8:return 13\nbreak;\ncase 9:return 10\nbreak;\ncase 10:return 12\nbreak;\ncase 11:return 14\nbreak;\ncase 12:return 15\nbreak;\ncase 13:return 16\nbreak;\ncase 14:return 17\nbreak;\ncase 15:return 18\nbreak;\ncase 16:return 5\nbreak;\ncase 17:return 'INVALID'\nbreak;\n}\n};\nlexer.rules = [/^\\s+/,/^[0-9]+(\\.[0-9]+)?\\b/,/^n\\b/,/^\\|\\|/,/^&&/,/^\\?/,/^:/,/^<=/,/^>=/,/^/,/^!=/,/^==/,/^%/,/^\\(/,/^\\)/,/^$/,/^./];\nlexer.conditions = {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],\"inclusive\":true}};return lexer;})()\nparser.lexer = lexer;\nreturn parser;\n})();\n// End parser\n\n // Handle node, amd, and global systems\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = Jed;\n }\n exports.Jed = Jed;\n }\n else {\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Jed;\n });\n }\n // Leak a global regardless of module system\n root['Jed'] = Jed;\n }\n\n})(this);\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n", "/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n", "/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n", "var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n", "var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n", "/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n", "var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n", "var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n", "/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n", "var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n", "var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n", "var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n", "/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n", "var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n", "/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n", "var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n", "var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n", "var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n", "/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n", "var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n", "/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n", "/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n", "var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n", "var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n", "var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n", "/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n", "var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n", "var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n", "var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n", "var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n", "var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n", "/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n", "var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n", "var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n", "var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n", "var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n", "var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n", "var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n", "var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n", "var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n", "var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n", "var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n", "/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n", "var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n", "/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n", "/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n", "var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n", "var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n", "/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n", "var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n", "var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n", "/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n", "var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n", "var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n", "var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n", "var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n", "var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n", "var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n", "/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n", "/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n", "/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n", "var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n", "var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n", "/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n", "/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n", "var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n", "/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n", "/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n", "var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n", "/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n", "/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n", "var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n", "/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n", "var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n", "/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n", "/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n", "var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n", "var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n", "var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n", "var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n", "var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n", "var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n", "var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n", "var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n", "var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n", "/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n", "var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n", "var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n", "var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n", "/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n", "var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n", "var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n", "/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n", "/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n", "var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n", "var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n", "var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n", "var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n", "/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n", "/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n", "/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n", "var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n", "var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('d\u00E9j\u00E0 vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n", "/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n", "/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n", "var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n", "var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n", "var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n", "/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n", "var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n", "/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n", "var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n", "var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n", "var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n", "var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n", "var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n", "var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nmodule.exports = mapKeys;\n", "\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n", "//---------------------------------------------------------------------\n//\n// QR Code Generator for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word 'QR Code' is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\nvar qrcode = function() {\n\n //---------------------------------------------------------------------\n // qrcode\n //---------------------------------------------------------------------\n\n /**\n * qrcode\n * @param typeNumber 1 to 40\n * @param errorCorrectionLevel 'L','M','Q','H'\n */\n var qrcode = function(typeNumber, errorCorrectionLevel) {\n\n var PAD0 = 0xEC;\n var PAD1 = 0x11;\n\n var _typeNumber = typeNumber;\n var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel];\n var _modules = null;\n var _moduleCount = 0;\n var _dataCache = null;\n var _dataList = [];\n\n var _this = {};\n\n var makeImpl = function(test, maskPattern) {\n\n _moduleCount = _typeNumber * 4 + 17;\n _modules = function(moduleCount) {\n var modules = new Array(moduleCount);\n for (var row = 0; row < moduleCount; row += 1) {\n modules[row] = new Array(moduleCount);\n for (var col = 0; col < moduleCount; col += 1) {\n modules[row][col] = null;\n }\n }\n return modules;\n }(_moduleCount);\n\n setupPositionProbePattern(0, 0);\n setupPositionProbePattern(_moduleCount - 7, 0);\n setupPositionProbePattern(0, _moduleCount - 7);\n setupPositionAdjustPattern();\n setupTimingPattern();\n setupTypeInfo(test, maskPattern);\n\n if (_typeNumber >= 7) {\n setupTypeNumber(test);\n }\n\n if (_dataCache == null) {\n _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList);\n }\n\n mapData(_dataCache, maskPattern);\n };\n\n var setupPositionProbePattern = function(row, col) {\n\n for (var r = -1; r <= 7; r += 1) {\n\n if (row + r <= -1 || _moduleCount <= row + r) continue;\n\n for (var c = -1; c <= 7; c += 1) {\n\n if (col + c <= -1 || _moduleCount <= col + c) continue;\n\n if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n || (0 <= c && c <= 6 && (r == 0 || r == 6) )\n || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n };\n\n var getBestMaskPattern = function() {\n\n var minLostPoint = 0;\n var pattern = 0;\n\n for (var i = 0; i < 8; i += 1) {\n\n makeImpl(true, i);\n\n var lostPoint = QRUtil.getLostPoint(_this);\n\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint;\n pattern = i;\n }\n }\n\n return pattern;\n };\n\n var setupTimingPattern = function() {\n\n for (var r = 8; r < _moduleCount - 8; r += 1) {\n if (_modules[r][6] != null) {\n continue;\n }\n _modules[r][6] = (r % 2 == 0);\n }\n\n for (var c = 8; c < _moduleCount - 8; c += 1) {\n if (_modules[6][c] != null) {\n continue;\n }\n _modules[6][c] = (c % 2 == 0);\n }\n };\n\n var setupPositionAdjustPattern = function() {\n\n var pos = QRUtil.getPatternPosition(_typeNumber);\n\n for (var i = 0; i < pos.length; i += 1) {\n\n for (var j = 0; j < pos.length; j += 1) {\n\n var row = pos[i];\n var col = pos[j];\n\n if (_modules[row][col] != null) {\n continue;\n }\n\n for (var r = -2; r <= 2; r += 1) {\n\n for (var c = -2; c <= 2; c += 1) {\n\n if (r == -2 || r == 2 || c == -2 || c == 2\n || (r == 0 && c == 0) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n }\n }\n };\n\n var setupTypeNumber = function(test) {\n\n var bits = QRUtil.getBCHTypeNumber(_typeNumber);\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod;\n }\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n }\n };\n\n var setupTypeInfo = function(test, maskPattern) {\n\n var data = (_errorCorrectionLevel << 3) | maskPattern;\n var bits = QRUtil.getBCHTypeInfo(data);\n\n // vertical\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 6) {\n _modules[i][8] = mod;\n } else if (i < 8) {\n _modules[i + 1][8] = mod;\n } else {\n _modules[_moduleCount - 15 + i][8] = mod;\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 8) {\n _modules[8][_moduleCount - i - 1] = mod;\n } else if (i < 9) {\n _modules[8][15 - i - 1 + 1] = mod;\n } else {\n _modules[8][15 - i - 1] = mod;\n }\n }\n\n // fixed module\n _modules[_moduleCount - 8][8] = (!test);\n };\n\n var mapData = function(data, maskPattern) {\n\n var inc = -1;\n var row = _moduleCount - 1;\n var bitIndex = 7;\n var byteIndex = 0;\n var maskFunc = QRUtil.getMaskFunction(maskPattern);\n\n for (var col = _moduleCount - 1; col > 0; col -= 2) {\n\n if (col == 6) col -= 1;\n\n while (true) {\n\n for (var c = 0; c < 2; c += 1) {\n\n if (_modules[row][col - c] == null) {\n\n var dark = false;\n\n if (byteIndex < data.length) {\n dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n }\n\n var mask = maskFunc(row, col - c);\n\n if (mask) {\n dark = !dark;\n }\n\n _modules[row][col - c] = dark;\n bitIndex -= 1;\n\n if (bitIndex == -1) {\n byteIndex += 1;\n bitIndex = 7;\n }\n }\n }\n\n row += inc;\n\n if (row < 0 || _moduleCount <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n };\n\n var createBytes = function(buffer, rsBlocks) {\n\n var offset = 0;\n\n var maxDcCount = 0;\n var maxEcCount = 0;\n\n var dcdata = new Array(rsBlocks.length);\n var ecdata = new Array(rsBlocks.length);\n\n for (var r = 0; r < rsBlocks.length; r += 1) {\n\n var dcCount = rsBlocks[r].dataCount;\n var ecCount = rsBlocks[r].totalCount - dcCount;\n\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n\n dcdata[r] = new Array(dcCount);\n\n for (var i = 0; i < dcdata[r].length; i += 1) {\n dcdata[r][i] = 0xff & buffer.getBuffer()[i + offset];\n }\n offset += dcCount;\n\n var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1);\n\n var modPoly = rawPoly.mod(rsPoly);\n ecdata[r] = new Array(rsPoly.getLength() - 1);\n for (var i = 0; i < ecdata[r].length; i += 1) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n ecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0;\n }\n }\n\n var totalCodeCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalCodeCount += rsBlocks[i].totalCount;\n }\n\n var data = new Array(totalCodeCount);\n var index = 0;\n\n for (var i = 0; i < maxDcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < dcdata[r].length) {\n data[index] = dcdata[r][i];\n index += 1;\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < ecdata[r].length) {\n data[index] = ecdata[r][i];\n index += 1;\n }\n }\n }\n\n return data;\n };\n\n var createData = function(typeNumber, errorCorrectionLevel, dataList) {\n\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel);\n\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < dataList.length; i += 1) {\n var data = dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n // calc num max data.\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw 'code length overflow. ('\n + buffer.getLengthInBits()\n + '>'\n + totalDataCount * 8\n + ')';\n }\n\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4);\n }\n\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false);\n }\n\n // padding\n while (true) {\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD0, 8);\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD1, 8);\n }\n\n return createBytes(buffer, rsBlocks);\n };\n\n _this.addData = function(data, mode) {\n\n mode = mode || 'Byte';\n\n var newData = null;\n\n switch(mode) {\n case 'Numeric' :\n newData = qrNumber(data);\n break;\n case 'Alphanumeric' :\n newData = qrAlphaNum(data);\n break;\n case 'Byte' :\n newData = qr8BitByte(data);\n break;\n case 'Kanji' :\n newData = qrKanji(data);\n break;\n default :\n throw 'mode:' + mode;\n }\n\n _dataList.push(newData);\n _dataCache = null;\n };\n\n _this.isDark = function(row, col) {\n if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) {\n throw row + ',' + col;\n }\n return _modules[row][col];\n };\n\n _this.getModuleCount = function() {\n return _moduleCount;\n };\n\n _this.make = function() {\n if (_typeNumber < 1) {\n var typeNumber = 1;\n\n for (; typeNumber < 40; typeNumber++) {\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel);\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < _dataList.length; i++) {\n var data = _dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() <= totalDataCount * 8) {\n break;\n }\n }\n\n _typeNumber = typeNumber;\n }\n\n makeImpl(false, getBestMaskPattern() );\n };\n\n _this.createTableTag = function(cellSize, margin) {\n\n cellSize = cellSize || 2;\n margin = (typeof margin == 'undefined')? cellSize * 4 : margin;\n\n var qrHtml = '';\n\n qrHtml += '' +\n escapeXml(title.text) + '' : '';\n qrSvg += (alt.text) ? '' +\n escapeXml(alt.text) + '' : '';\n qrSvg += '';\n qrSvg += '': escaped += '>'; break;\n case '&': escaped += '&'; break;\n case '\"': escaped += '"'; break;\n default : escaped += c; break;\n }\n }\n return escaped;\n };\n\n var _createHalfASCII = function(margin) {\n var cellSize = 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r1, r2, p;\n\n var blocks = {\n '\u2588\u2588': '\u2588',\n '\u2588 ': '\u2580',\n ' \u2588': '\u2584',\n ' ': ' '\n };\n\n var blocksLastLineNoMargin = {\n '\u2588\u2588': '\u2580',\n '\u2588 ': '\u2580',\n ' \u2588': ' ',\n ' ': ' '\n };\n\n var ascii = '';\n for (y = 0; y < size; y += 2) {\n r1 = Math.floor((y - min) / cellSize);\n r2 = Math.floor((y + 1 - min) / cellSize);\n for (x = 0; x < size; x += 1) {\n p = '\u2588';\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r1, Math.floor((x - min) / cellSize))) {\n p = ' ';\n }\n\n if (min <= x && x < max && min <= y+1 && y+1 < max && _this.isDark(r2, Math.floor((x - min) / cellSize))) {\n p += ' ';\n }\n else {\n p += '\u2588';\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n ascii += (margin < 1 && y+1 >= max) ? blocksLastLineNoMargin[p] : blocks[p];\n }\n\n ascii += '\\n';\n }\n\n if (size % 2 && margin > 0) {\n return ascii.substring(0, ascii.length - size - 1) + Array(size+1).join('\u2580');\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.createASCII = function(cellSize, margin) {\n cellSize = cellSize || 1;\n\n if (cellSize < 2) {\n return _createHalfASCII(margin);\n }\n\n cellSize -= 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r, p;\n\n var white = Array(cellSize+1).join('\u2588\u2588');\n var black = Array(cellSize+1).join(' ');\n\n var ascii = '';\n var line = '';\n for (y = 0; y < size; y += 1) {\n r = Math.floor( (y - min) / cellSize);\n line = '';\n for (x = 0; x < size; x += 1) {\n p = 1;\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r, Math.floor((x - min) / cellSize))) {\n p = 0;\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n line += p ? white : black;\n }\n\n for (r = 0; r < cellSize; r += 1) {\n ascii += line + '\\n';\n }\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.renderTo2dContext = function(context, cellSize) {\n cellSize = cellSize || 2;\n var length = _this.getModuleCount();\n for (var row = 0; row < length; row++) {\n for (var col = 0; col < length; col++) {\n context.fillStyle = _this.isDark(row, col) ? 'black' : 'white';\n context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize);\n }\n }\n }\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrcode.stringToBytes\n //---------------------------------------------------------------------\n\n qrcode.stringToBytesFuncs = {\n 'default' : function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n bytes.push(c & 0xff);\n }\n return bytes;\n }\n };\n\n qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'];\n\n //---------------------------------------------------------------------\n // qrcode.createStringToBytes\n //---------------------------------------------------------------------\n\n /**\n * @param unicodeData base64 string of byte array.\n * [16bit Unicode],[16bit Bytes], ...\n * @param numChars\n */\n qrcode.createStringToBytes = function(unicodeData, numChars) {\n\n // create conversion map.\n\n var unicodeMap = function() {\n\n var bin = base64DecodeInputStream(unicodeData);\n var read = function() {\n var b = bin.read();\n if (b == -1) throw 'eof';\n return b;\n };\n\n var count = 0;\n var unicodeMap = {};\n while (true) {\n var b0 = bin.read();\n if (b0 == -1) break;\n var b1 = read();\n var b2 = read();\n var b3 = read();\n var k = String.fromCharCode( (b0 << 8) | b1);\n var v = (b2 << 8) | b3;\n unicodeMap[k] = v;\n count += 1;\n }\n if (count != numChars) {\n throw count + ' != ' + numChars;\n }\n\n return unicodeMap;\n }();\n\n var unknownChar = '?'.charCodeAt(0);\n\n return function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n if (c < 128) {\n bytes.push(c);\n } else {\n var b = unicodeMap[s.charAt(i)];\n if (typeof b == 'number') {\n if ( (b & 0xff) == b) {\n // 1byte\n bytes.push(b);\n } else {\n // 2bytes\n bytes.push(b >>> 8);\n bytes.push(b & 0xff);\n }\n } else {\n bytes.push(unknownChar);\n }\n }\n }\n return bytes;\n };\n };\n\n //---------------------------------------------------------------------\n // QRMode\n //---------------------------------------------------------------------\n\n var QRMode = {\n MODE_NUMBER : 1 << 0,\n MODE_ALPHA_NUM : 1 << 1,\n MODE_8BIT_BYTE : 1 << 2,\n MODE_KANJI : 1 << 3\n };\n\n //---------------------------------------------------------------------\n // QRErrorCorrectionLevel\n //---------------------------------------------------------------------\n\n var QRErrorCorrectionLevel = {\n L : 1,\n M : 0,\n Q : 3,\n H : 2\n };\n\n //---------------------------------------------------------------------\n // QRMaskPattern\n //---------------------------------------------------------------------\n\n var QRMaskPattern = {\n PATTERN000 : 0,\n PATTERN001 : 1,\n PATTERN010 : 2,\n PATTERN011 : 3,\n PATTERN100 : 4,\n PATTERN101 : 5,\n PATTERN110 : 6,\n PATTERN111 : 7\n };\n\n //---------------------------------------------------------------------\n // QRUtil\n //---------------------------------------------------------------------\n\n var QRUtil = function() {\n\n var PATTERN_POSITION_TABLE = [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170]\n ];\n var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\n var _this = {};\n\n var getBCHDigit = function(data) {\n var digit = 0;\n while (data != 0) {\n digit += 1;\n data >>>= 1;\n }\n return digit;\n };\n\n _this.getBCHTypeInfo = function(data) {\n var d = data << 10;\n while (getBCHDigit(d) - getBCHDigit(G15) >= 0) {\n d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) );\n }\n return ( (data << 10) | d) ^ G15_MASK;\n };\n\n _this.getBCHTypeNumber = function(data) {\n var d = data << 12;\n while (getBCHDigit(d) - getBCHDigit(G18) >= 0) {\n d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) );\n }\n return (data << 12) | d;\n };\n\n _this.getPatternPosition = function(typeNumber) {\n return PATTERN_POSITION_TABLE[typeNumber - 1];\n };\n\n _this.getMaskFunction = function(maskPattern) {\n\n switch (maskPattern) {\n\n case QRMaskPattern.PATTERN000 :\n return function(i, j) { return (i + j) % 2 == 0; };\n case QRMaskPattern.PATTERN001 :\n return function(i, j) { return i % 2 == 0; };\n case QRMaskPattern.PATTERN010 :\n return function(i, j) { return j % 3 == 0; };\n case QRMaskPattern.PATTERN011 :\n return function(i, j) { return (i + j) % 3 == 0; };\n case QRMaskPattern.PATTERN100 :\n return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; };\n case QRMaskPattern.PATTERN101 :\n return function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; };\n case QRMaskPattern.PATTERN110 :\n return function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; };\n case QRMaskPattern.PATTERN111 :\n return function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; };\n\n default :\n throw 'bad maskPattern:' + maskPattern;\n }\n };\n\n _this.getErrorCorrectPolynomial = function(errorCorrectLength) {\n var a = qrPolynomial([1], 0);\n for (var i = 0; i < errorCorrectLength; i += 1) {\n a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) );\n }\n return a;\n };\n\n _this.getLengthInBits = function(mode, type) {\n\n if (1 <= type && type < 10) {\n\n // 1 - 9\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 10;\n case QRMode.MODE_ALPHA_NUM : return 9;\n case QRMode.MODE_8BIT_BYTE : return 8;\n case QRMode.MODE_KANJI : return 8;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 27) {\n\n // 10 - 26\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 12;\n case QRMode.MODE_ALPHA_NUM : return 11;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 10;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 41) {\n\n // 27 - 40\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 14;\n case QRMode.MODE_ALPHA_NUM : return 13;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 12;\n default :\n throw 'mode:' + mode;\n }\n\n } else {\n throw 'type:' + type;\n }\n };\n\n _this.getLostPoint = function(qrcode) {\n\n var moduleCount = qrcode.getModuleCount();\n\n var lostPoint = 0;\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount; col += 1) {\n\n var sameCount = 0;\n var dark = qrcode.isDark(row, col);\n\n for (var r = -1; r <= 1; r += 1) {\n\n if (row + r < 0 || moduleCount <= row + r) {\n continue;\n }\n\n for (var c = -1; c <= 1; c += 1) {\n\n if (col + c < 0 || moduleCount <= col + c) {\n continue;\n }\n\n if (r == 0 && c == 0) {\n continue;\n }\n\n if (dark == qrcode.isDark(row + r, col + c) ) {\n sameCount += 1;\n }\n }\n }\n\n if (sameCount > 5) {\n lostPoint += (3 + sameCount - 5);\n }\n }\n };\n\n // LEVEL2\n\n for (var row = 0; row < moduleCount - 1; row += 1) {\n for (var col = 0; col < moduleCount - 1; col += 1) {\n var count = 0;\n if (qrcode.isDark(row, col) ) count += 1;\n if (qrcode.isDark(row + 1, col) ) count += 1;\n if (qrcode.isDark(row, col + 1) ) count += 1;\n if (qrcode.isDark(row + 1, col + 1) ) count += 1;\n if (count == 0 || count == 4) {\n lostPoint += 3;\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount - 6; col += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row, col + 1)\n && qrcode.isDark(row, col + 2)\n && qrcode.isDark(row, col + 3)\n && qrcode.isDark(row, col + 4)\n && !qrcode.isDark(row, col + 5)\n && qrcode.isDark(row, col + 6) ) {\n lostPoint += 40;\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount - 6; row += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row + 1, col)\n && qrcode.isDark(row + 2, col)\n && qrcode.isDark(row + 3, col)\n && qrcode.isDark(row + 4, col)\n && !qrcode.isDark(row + 5, col)\n && qrcode.isDark(row + 6, col) ) {\n lostPoint += 40;\n }\n }\n }\n\n // LEVEL4\n\n var darkCount = 0;\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount; row += 1) {\n if (qrcode.isDark(row, col) ) {\n darkCount += 1;\n }\n }\n }\n\n var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n lostPoint += ratio * 10;\n\n return lostPoint;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // QRMath\n //---------------------------------------------------------------------\n\n var QRMath = function() {\n\n var EXP_TABLE = new Array(256);\n var LOG_TABLE = new Array(256);\n\n // initialize tables\n for (var i = 0; i < 8; i += 1) {\n EXP_TABLE[i] = 1 << i;\n }\n for (var i = 8; i < 256; i += 1) {\n EXP_TABLE[i] = EXP_TABLE[i - 4]\n ^ EXP_TABLE[i - 5]\n ^ EXP_TABLE[i - 6]\n ^ EXP_TABLE[i - 8];\n }\n for (var i = 0; i < 255; i += 1) {\n LOG_TABLE[EXP_TABLE[i] ] = i;\n }\n\n var _this = {};\n\n _this.glog = function(n) {\n\n if (n < 1) {\n throw 'glog(' + n + ')';\n }\n\n return LOG_TABLE[n];\n };\n\n _this.gexp = function(n) {\n\n while (n < 0) {\n n += 255;\n }\n\n while (n >= 256) {\n n -= 255;\n }\n\n return EXP_TABLE[n];\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrPolynomial\n //---------------------------------------------------------------------\n\n function qrPolynomial(num, shift) {\n\n if (typeof num.length == 'undefined') {\n throw num.length + '/' + shift;\n }\n\n var _num = function() {\n var offset = 0;\n while (offset < num.length && num[offset] == 0) {\n offset += 1;\n }\n var _num = new Array(num.length - offset + shift);\n for (var i = 0; i < num.length - offset; i += 1) {\n _num[i] = num[i + offset];\n }\n return _num;\n }();\n\n var _this = {};\n\n _this.getAt = function(index) {\n return _num[index];\n };\n\n _this.getLength = function() {\n return _num.length;\n };\n\n _this.multiply = function(e) {\n\n var num = new Array(_this.getLength() + e.getLength() - 1);\n\n for (var i = 0; i < _this.getLength(); i += 1) {\n for (var j = 0; j < e.getLength(); j += 1) {\n num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) );\n }\n }\n\n return qrPolynomial(num, 0);\n };\n\n _this.mod = function(e) {\n\n if (_this.getLength() - e.getLength() < 0) {\n return _this;\n }\n\n var ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) );\n\n var num = new Array(_this.getLength() );\n for (var i = 0; i < _this.getLength(); i += 1) {\n num[i] = _this.getAt(i);\n }\n\n for (var i = 0; i < e.getLength(); i += 1) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio);\n }\n\n // recursive call\n return qrPolynomial(num, 0).mod(e);\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // QRRSBlock\n //---------------------------------------------------------------------\n\n var QRRSBlock = function() {\n\n var RS_BLOCK_TABLE = [\n\n // L\n // M\n // Q\n // H\n\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12, 7, 37, 13],\n\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16]\n ];\n\n var qrRSBlock = function(totalCount, dataCount) {\n var _this = {};\n _this.totalCount = totalCount;\n _this.dataCount = dataCount;\n return _this;\n };\n\n var _this = {};\n\n var getRsBlockTable = function(typeNumber, errorCorrectionLevel) {\n\n switch(errorCorrectionLevel) {\n case QRErrorCorrectionLevel.L :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n case QRErrorCorrectionLevel.M :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n case QRErrorCorrectionLevel.Q :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n case QRErrorCorrectionLevel.H :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n default :\n return undefined;\n }\n };\n\n _this.getRSBlocks = function(typeNumber, errorCorrectionLevel) {\n\n var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel);\n\n if (typeof rsBlock == 'undefined') {\n throw 'bad rs block @ typeNumber:' + typeNumber +\n '/errorCorrectionLevel:' + errorCorrectionLevel;\n }\n\n var length = rsBlock.length / 3;\n\n var list = [];\n\n for (var i = 0; i < length; i += 1) {\n\n var count = rsBlock[i * 3 + 0];\n var totalCount = rsBlock[i * 3 + 1];\n var dataCount = rsBlock[i * 3 + 2];\n\n for (var j = 0; j < count; j += 1) {\n list.push(qrRSBlock(totalCount, dataCount) );\n }\n }\n\n return list;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrBitBuffer\n //---------------------------------------------------------------------\n\n var qrBitBuffer = function() {\n\n var _buffer = [];\n var _length = 0;\n\n var _this = {};\n\n _this.getBuffer = function() {\n return _buffer;\n };\n\n _this.getAt = function(index) {\n var bufIndex = Math.floor(index / 8);\n return ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n };\n\n _this.put = function(num, length) {\n for (var i = 0; i < length; i += 1) {\n _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n }\n };\n\n _this.getLengthInBits = function() {\n return _length;\n };\n\n _this.putBit = function(bit) {\n\n var bufIndex = Math.floor(_length / 8);\n if (_buffer.length <= bufIndex) {\n _buffer.push(0);\n }\n\n if (bit) {\n _buffer[bufIndex] |= (0x80 >>> (_length % 8) );\n }\n\n _length += 1;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrNumber\n //---------------------------------------------------------------------\n\n var qrNumber = function(data) {\n\n var _mode = QRMode.MODE_NUMBER;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var data = _data;\n\n var i = 0;\n\n while (i + 2 < data.length) {\n buffer.put(strToNum(data.substring(i, i + 3) ), 10);\n i += 3;\n }\n\n if (i < data.length) {\n if (data.length - i == 1) {\n buffer.put(strToNum(data.substring(i, i + 1) ), 4);\n } else if (data.length - i == 2) {\n buffer.put(strToNum(data.substring(i, i + 2) ), 7);\n }\n }\n };\n\n var strToNum = function(s) {\n var num = 0;\n for (var i = 0; i < s.length; i += 1) {\n num = num * 10 + chatToNum(s.charAt(i) );\n }\n return num;\n };\n\n var chatToNum = function(c) {\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n }\n throw 'illegal char :' + c;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrAlphaNum\n //---------------------------------------------------------------------\n\n var qrAlphaNum = function(data) {\n\n var _mode = QRMode.MODE_ALPHA_NUM;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var s = _data;\n\n var i = 0;\n\n while (i + 1 < s.length) {\n buffer.put(\n getCode(s.charAt(i) ) * 45 +\n getCode(s.charAt(i + 1) ), 11);\n i += 2;\n }\n\n if (i < s.length) {\n buffer.put(getCode(s.charAt(i) ), 6);\n }\n };\n\n var getCode = function(c) {\n\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n } else if ('A' <= c && c <= 'Z') {\n return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n } else {\n switch (c) {\n case ' ' : return 36;\n case '$' : return 37;\n case '%' : return 38;\n case '*' : return 39;\n case '+' : return 40;\n case '-' : return 41;\n case '.' : return 42;\n case '/' : return 43;\n case ':' : return 44;\n default :\n throw 'illegal char :' + c;\n }\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qr8BitByte\n //---------------------------------------------------------------------\n\n var qr8BitByte = function(data) {\n\n var _mode = QRMode.MODE_8BIT_BYTE;\n var _data = data;\n var _bytes = qrcode.stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _bytes.length;\n };\n\n _this.write = function(buffer) {\n for (var i = 0; i < _bytes.length; i += 1) {\n buffer.put(_bytes[i], 8);\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrKanji\n //---------------------------------------------------------------------\n\n var qrKanji = function(data) {\n\n var _mode = QRMode.MODE_KANJI;\n var _data = data;\n\n var stringToBytes = qrcode.stringToBytesFuncs['SJIS'];\n if (!stringToBytes) {\n throw 'sjis not supported.';\n }\n !function(c, code) {\n // self test for sjis support.\n var test = stringToBytes(c);\n if (test.length != 2 || ( (test[0] << 8) | test[1]) != code) {\n throw 'sjis not supported.';\n }\n }('\\u53cb', 0x9746);\n\n var _bytes = stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return ~~(_bytes.length / 2);\n };\n\n _this.write = function(buffer) {\n\n var data = _bytes;\n\n var i = 0;\n\n while (i + 1 < data.length) {\n\n var c = ( (0xff & data[i]) << 8) | (0xff & data[i + 1]);\n\n if (0x8140 <= c && c <= 0x9FFC) {\n c -= 0x8140;\n } else if (0xE040 <= c && c <= 0xEBBF) {\n c -= 0xC140;\n } else {\n throw 'illegal char at ' + (i + 1) + '/' + c;\n }\n\n c = ( (c >>> 8) & 0xff) * 0xC0 + (c & 0xff);\n\n buffer.put(c, 13);\n\n i += 2;\n }\n\n if (i < data.length) {\n throw 'illegal char at ' + (i + 1);\n }\n };\n\n return _this;\n };\n\n //=====================================================================\n // GIF Support etc.\n //\n\n //---------------------------------------------------------------------\n // byteArrayOutputStream\n //---------------------------------------------------------------------\n\n var byteArrayOutputStream = function() {\n\n var _bytes = [];\n\n var _this = {};\n\n _this.writeByte = function(b) {\n _bytes.push(b & 0xff);\n };\n\n _this.writeShort = function(i) {\n _this.writeByte(i);\n _this.writeByte(i >>> 8);\n };\n\n _this.writeBytes = function(b, off, len) {\n off = off || 0;\n len = len || b.length;\n for (var i = 0; i < len; i += 1) {\n _this.writeByte(b[i + off]);\n }\n };\n\n _this.writeString = function(s) {\n for (var i = 0; i < s.length; i += 1) {\n _this.writeByte(s.charCodeAt(i) );\n }\n };\n\n _this.toByteArray = function() {\n return _bytes;\n };\n\n _this.toString = function() {\n var s = '';\n s += '[';\n for (var i = 0; i < _bytes.length; i += 1) {\n if (i > 0) {\n s += ',';\n }\n s += _bytes[i];\n }\n s += ']';\n return s;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64EncodeOutputStream\n //---------------------------------------------------------------------\n\n var base64EncodeOutputStream = function() {\n\n var _buffer = 0;\n var _buflen = 0;\n var _length = 0;\n var _base64 = '';\n\n var _this = {};\n\n var writeEncoded = function(b) {\n _base64 += String.fromCharCode(encode(b & 0x3f) );\n };\n\n var encode = function(n) {\n if (n < 0) {\n // error.\n } else if (n < 26) {\n return 0x41 + n;\n } else if (n < 52) {\n return 0x61 + (n - 26);\n } else if (n < 62) {\n return 0x30 + (n - 52);\n } else if (n == 62) {\n return 0x2b;\n } else if (n == 63) {\n return 0x2f;\n }\n throw 'n:' + n;\n };\n\n _this.writeByte = function(n) {\n\n _buffer = (_buffer << 8) | (n & 0xff);\n _buflen += 8;\n _length += 1;\n\n while (_buflen >= 6) {\n writeEncoded(_buffer >>> (_buflen - 6) );\n _buflen -= 6;\n }\n };\n\n _this.flush = function() {\n\n if (_buflen > 0) {\n writeEncoded(_buffer << (6 - _buflen) );\n _buffer = 0;\n _buflen = 0;\n }\n\n if (_length % 3 != 0) {\n // padding\n var padlen = 3 - _length % 3;\n for (var i = 0; i < padlen; i += 1) {\n _base64 += '=';\n }\n }\n };\n\n _this.toString = function() {\n return _base64;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64DecodeInputStream\n //---------------------------------------------------------------------\n\n var base64DecodeInputStream = function(str) {\n\n var _str = str;\n var _pos = 0;\n var _buffer = 0;\n var _buflen = 0;\n\n var _this = {};\n\n _this.read = function() {\n\n while (_buflen < 8) {\n\n if (_pos >= _str.length) {\n if (_buflen == 0) {\n return -1;\n }\n throw 'unexpected end of file./' + _buflen;\n }\n\n var c = _str.charAt(_pos);\n _pos += 1;\n\n if (c == '=') {\n _buflen = 0;\n return -1;\n } else if (c.match(/^\\s$/) ) {\n // ignore if whitespace.\n continue;\n }\n\n _buffer = (_buffer << 6) | decode(c.charCodeAt(0) );\n _buflen += 6;\n }\n\n var n = (_buffer >>> (_buflen - 8) ) & 0xff;\n _buflen -= 8;\n return n;\n };\n\n var decode = function(c) {\n if (0x41 <= c && c <= 0x5a) {\n return c - 0x41;\n } else if (0x61 <= c && c <= 0x7a) {\n return c - 0x61 + 26;\n } else if (0x30 <= c && c <= 0x39) {\n return c - 0x30 + 52;\n } else if (c == 0x2b) {\n return 62;\n } else if (c == 0x2f) {\n return 63;\n } else {\n throw 'c:' + c;\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // gifImage (B/W)\n //---------------------------------------------------------------------\n\n var gifImage = function(width, height) {\n\n var _width = width;\n var _height = height;\n var _data = new Array(width * height);\n\n var _this = {};\n\n _this.setPixel = function(x, y, pixel) {\n _data[y * _width + x] = pixel;\n };\n\n _this.write = function(out) {\n\n //---------------------------------\n // GIF Signature\n\n out.writeString('GIF87a');\n\n //---------------------------------\n // Screen Descriptor\n\n out.writeShort(_width);\n out.writeShort(_height);\n\n out.writeByte(0x80); // 2bit\n out.writeByte(0);\n out.writeByte(0);\n\n //---------------------------------\n // Global Color Map\n\n // black\n out.writeByte(0x00);\n out.writeByte(0x00);\n out.writeByte(0x00);\n\n // white\n out.writeByte(0xff);\n out.writeByte(0xff);\n out.writeByte(0xff);\n\n //---------------------------------\n // Image Descriptor\n\n out.writeString(',');\n out.writeShort(0);\n out.writeShort(0);\n out.writeShort(_width);\n out.writeShort(_height);\n out.writeByte(0);\n\n //---------------------------------\n // Local Color Map\n\n //---------------------------------\n // Raster Data\n\n var lzwMinCodeSize = 2;\n var raster = getLZWRaster(lzwMinCodeSize);\n\n out.writeByte(lzwMinCodeSize);\n\n var offset = 0;\n\n while (raster.length - offset > 255) {\n out.writeByte(255);\n out.writeBytes(raster, offset, 255);\n offset += 255;\n }\n\n out.writeByte(raster.length - offset);\n out.writeBytes(raster, offset, raster.length - offset);\n out.writeByte(0x00);\n\n //---------------------------------\n // GIF Terminator\n out.writeString(';');\n };\n\n var bitOutputStream = function(out) {\n\n var _out = out;\n var _bitLength = 0;\n var _bitBuffer = 0;\n\n var _this = {};\n\n _this.write = function(data, length) {\n\n if ( (data >>> length) != 0) {\n throw 'length over';\n }\n\n while (_bitLength + length >= 8) {\n _out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) );\n length -= (8 - _bitLength);\n data >>>= (8 - _bitLength);\n _bitBuffer = 0;\n _bitLength = 0;\n }\n\n _bitBuffer = (data << _bitLength) | _bitBuffer;\n _bitLength = _bitLength + length;\n };\n\n _this.flush = function() {\n if (_bitLength > 0) {\n _out.writeByte(_bitBuffer);\n }\n };\n\n return _this;\n };\n\n var getLZWRaster = function(lzwMinCodeSize) {\n\n var clearCode = 1 << lzwMinCodeSize;\n var endCode = (1 << lzwMinCodeSize) + 1;\n var bitLength = lzwMinCodeSize + 1;\n\n // Setup LZWTable\n var table = lzwTable();\n\n for (var i = 0; i < clearCode; i += 1) {\n table.add(String.fromCharCode(i) );\n }\n table.add(String.fromCharCode(clearCode) );\n table.add(String.fromCharCode(endCode) );\n\n var byteOut = byteArrayOutputStream();\n var bitOut = bitOutputStream(byteOut);\n\n // clear code\n bitOut.write(clearCode, bitLength);\n\n var dataIndex = 0;\n\n var s = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n while (dataIndex < _data.length) {\n\n var c = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n if (table.contains(s + c) ) {\n\n s = s + c;\n\n } else {\n\n bitOut.write(table.indexOf(s), bitLength);\n\n if (table.size() < 0xfff) {\n\n if (table.size() == (1 << bitLength) ) {\n bitLength += 1;\n }\n\n table.add(s + c);\n }\n\n s = c;\n }\n }\n\n bitOut.write(table.indexOf(s), bitLength);\n\n // end code\n bitOut.write(endCode, bitLength);\n\n bitOut.flush();\n\n return byteOut.toByteArray();\n };\n\n var lzwTable = function() {\n\n var _map = {};\n var _size = 0;\n\n var _this = {};\n\n _this.add = function(key) {\n if (_this.contains(key) ) {\n throw 'dup key:' + key;\n }\n _map[key] = _size;\n _size += 1;\n };\n\n _this.size = function() {\n return _size;\n };\n\n _this.indexOf = function(key) {\n return _map[key];\n };\n\n _this.contains = function(key) {\n return typeof _map[key] != 'undefined';\n };\n\n return _this;\n };\n\n return _this;\n };\n\n var createDataURL = function(width, height, getPixel) {\n var gif = gifImage(width, height);\n for (var y = 0; y < height; y += 1) {\n for (var x = 0; x < width; x += 1) {\n gif.setPixel(x, y, getPixel(x, y) );\n }\n }\n\n var b = byteArrayOutputStream();\n gif.write(b);\n\n var base64 = base64EncodeOutputStream();\n var bytes = b.toByteArray();\n for (var i = 0; i < bytes.length; i += 1) {\n base64.writeByte(bytes[i]);\n }\n base64.flush();\n\n return 'data:image/gif;base64,' + base64;\n };\n\n //---------------------------------------------------------------------\n // returns qrcode function.\n\n return qrcode;\n}();\n\n// multibyte support\n!function() {\n\n qrcode.stringToBytesFuncs['UTF-8'] = function(s) {\n // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\n function toUTF8Array(str) {\n var utf8 = [];\n for (var i=0; i < str.length; i++) {\n var charcode = str.charCodeAt(i);\n if (charcode < 0x80) utf8.push(charcode);\n else if (charcode < 0x800) {\n utf8.push(0xc0 | (charcode >> 6),\n 0x80 | (charcode & 0x3f));\n }\n else if (charcode < 0xd800 || charcode >= 0xe000) {\n utf8.push(0xe0 | (charcode >> 12),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n // surrogate pair\n else {\n i++;\n // UTF-16 encodes 0x10000-0x10FFFF by\n // subtracting 0x10000 and splitting the\n // 20 bits of 0x0-0xFFFFF into two halves\n charcode = 0x10000 + (((charcode & 0x3ff)<<10)\n | (str.charCodeAt(i) & 0x3ff));\n utf8.push(0xf0 | (charcode >>18),\n 0x80 | ((charcode>>12) & 0x3f),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n }\n return utf8;\n }\n return toUTF8Array(s);\n };\n\n}();\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n }\n}(function () {\n return qrcode;\n}));\n", "import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n", "import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n", "import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n", "import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n", "import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n", "export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n", "import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix \n
\n {examplesInGroups.map((group) => (\n {\n document.getElementById(htmlId)?.scrollIntoView({\n block: \"center\",\n });\n updateSelected(item);\n }}\n />\n ))}\n
\n \n {\n setSidebarWidth((s) => s + x);\n }}\n />\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport interface Options {\n id?: string;\n strings?: any;\n getWrapperForGroup?: (name: string) => FunctionComponent;\n}\n\nexport function renderStories(\n groups: Record,\n options: Options = {},\n): void {\n const examples = parseGroupImport(groups);\n\n try {\n const cid = options.id ?? \"container\";\n const container = document.getElementById(cid);\n if (!container) {\n throw Error(\n `container with id ${cid} not found, can't mount page contents`,\n );\n }\n render(\n Fragment)}\n langs={options.strings ?? { en: {} }}\n />,\n container,\n );\n } catch (e) {\n console.error(\"got error\", e);\n if (e instanceof Error) {\n document.body.innerText = `Fatal error: \"${e.message}\". Please report this bug at https://bugs.gnunet.org/.`;\n }\n }\n}\n\nfunction ResizeHandle({ onUpdate }: { onUpdate: (x: number) => void }): VNode {\n const [start, setStart] = useState(undefined);\n return (\n {\n setStart(e.pageX);\n console.log(\"active\", e.pageX);\n return false;\n }}\n onMouseMove={(e: any) => {\n if (start !== undefined) {\n onUpdate(e.pageX - start);\n }\n return false;\n }}\n onMouseUp={() => {\n setStart(undefined);\n return false;\n }}\n />\n );\n}\n", "\nconst EMPTY = {};\n\nexport function assign(obj, props) {\n\t// eslint-disable-next-line guard-for-in\n\tfor (let i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\nexport function exec(url, route, opts) {\n\tlet reg = /(?:\\?([^#]*))?(#.*)?$/,\n\t\tc = url.match(reg),\n\t\tmatches = {},\n\t\tret;\n\tif (c && c[1]) {\n\t\tlet p = c[1].split('&');\n\t\tfor (let i=0; i b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nexport function prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nexport function segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nexport function rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nexport function rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n", "import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\n\n\nfunction route(url, replace=false) {\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i=0; i {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n", "export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}", "function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n", "var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n", "var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n", "import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { StateUpdater, useCallback, useState } from \"preact/hooks\";\nimport { ValueOrFunction } from \"../utils/types.js\";\n\nconst calculateRootPath = () => {\n const rootPath =\n typeof window !== undefined\n ? window.location.origin + window.location.pathname\n : \"/\";\n return rootPath;\n};\n\nexport function useBackendURL(\n url?: string,\n): [string, boolean, StateUpdater, () => void] {\n const [value, setter] = useNotNullLocalStorage(\n \"backend-url\",\n url || calculateRootPath(),\n );\n const [triedToLog, setTriedToLog] = useLocalStorage(\"tried-login\");\n\n const checkedSetter = (v: ValueOrFunction) => {\n setTriedToLog(\"yes\");\n return setter((p) => (v instanceof Function ? v(p) : v).replace(/\\/$/, \"\"));\n };\n\n const resetBackend = () => {\n setTriedToLog(undefined);\n };\n return [value, !!triedToLog, checkedSetter, resetBackend];\n}\n\nexport function useBackendDefaultToken(\n initialValue?: string,\n): [string | undefined, StateUpdater] {\n return useLocalStorage(\"backend-token\", initialValue);\n}\n\nexport function useBackendInstanceToken(\n id: string,\n): [string | undefined, StateUpdater] {\n const [random, setRandom] = useState(0);\n const [token, setToken] = useLocalStorage(`backend-token-${id}`);\n const [defaultToken, defaultSetToken] = useBackendDefaultToken();\n\n // instance named 'default' use the default token\n if (id === \"default\") {\n return [defaultToken, defaultSetToken];\n }\n function updateToken(\n value:\n | (string | undefined)\n | ((s: string | undefined) => string | undefined),\n ): void {\n setToken((p) => {\n const toStore = value instanceof Function ? value(p) : value;\n // setToken(value)\n setRandom(new Date().getTime());\n return toStore;\n });\n }\n\n return [token, updateToken];\n}\n\nexport function useLang(initial?: string): [string, StateUpdater] {\n const browserLang =\n typeof window !== \"undefined\"\n ? navigator.language || (navigator as any).userLanguage\n : undefined;\n const defaultLang = (browserLang || initial || \"en\").substring(0, 2);\n return useNotNullLocalStorage(\"lang-preference\", defaultLang);\n}\n\nexport function useLocalStorage(\n key: string,\n initialValue?: string,\n): [string | undefined, StateUpdater] {\n const [storedValue, setStoredValue] = useState(\n (): string | undefined => {\n return typeof window !== \"undefined\"\n ? window.localStorage.getItem(key) || initialValue\n : initialValue;\n },\n );\n\n const setValue = (\n value?: string | ((val?: string) => string | undefined),\n ) => {\n setStoredValue((p) => {\n const toStore = value instanceof Function ? value(p) : value;\n if (typeof window !== \"undefined\") {\n if (!toStore) {\n window.localStorage.removeItem(key);\n } else {\n window.localStorage.setItem(key, toStore);\n }\n }\n return toStore;\n });\n };\n\n return [storedValue, setValue];\n}\n\nexport function useNotNullLocalStorage(\n key: string,\n initialValue: string,\n): [string, StateUpdater] {\n const [storedValue, setStoredValue] = useState((): string => {\n return typeof window !== \"undefined\"\n ? window.localStorage.getItem(key) || initialValue\n : initialValue;\n });\n\n const setValue = (value: string | ((val: string) => string)) => {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n if (typeof window !== \"undefined\") {\n if (!valueToStore) {\n window.localStorage.removeItem(key);\n } else {\n window.localStorage.setItem(key, valueToStore);\n }\n }\n };\n\n return [storedValue, setValue];\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { createContext, h, VNode } from \"preact\";\nimport { useCallback, useContext, useState } from \"preact/hooks\";\nimport { useBackendDefaultToken, useBackendURL } from \"../hooks/index.js\";\n\ninterface BackendContextType {\n url: string;\n token?: string;\n triedToLog: boolean;\n resetBackend: () => void;\n clearAllTokens: () => void;\n addTokenCleaner: (c: () => void) => void;\n updateLoginStatus: (url: string, token?: string) => void;\n updateToken: (token?: string) => void;\n}\n\nconst BackendContext = createContext({\n url: \"\",\n token: undefined,\n triedToLog: false,\n resetBackend: () => null,\n clearAllTokens: () => null,\n addTokenCleaner: () => null,\n updateLoginStatus: () => null,\n updateToken: () => null,\n});\n\nfunction useBackendContextState(\n defaultUrl?: string,\n initialToken?: string,\n): BackendContextType {\n const [url, triedToLog, changeBackend, resetBackend] =\n useBackendURL(defaultUrl);\n const [token, _updateToken] = useBackendDefaultToken(initialToken);\n const updateToken = (t?: string) => {\n _updateToken(t);\n };\n\n const tokenCleaner = useCallback(() => {\n updateToken(undefined);\n }, []);\n const [cleaners, setCleaners] = useState([tokenCleaner]);\n const addTokenCleaner = (c: () => void) => setCleaners((cs) => [...cs, c]);\n const addTokenCleanerMemo = useCallback(\n (c: () => void) => {\n addTokenCleaner(c);\n },\n [tokenCleaner],\n );\n\n const clearAllTokens = () => {\n cleaners.forEach((c) => c());\n for (let i = 0; i < localStorage.length; i++) {\n const k = localStorage.key(i);\n if (k && /^backend-token/.test(k)) localStorage.removeItem(k);\n }\n resetBackend();\n };\n\n const updateLoginStatus = (url: string, token?: string) => {\n changeBackend(url);\n if (token) updateToken(token);\n };\n\n return {\n url,\n token,\n triedToLog,\n updateLoginStatus,\n resetBackend,\n clearAllTokens,\n updateToken,\n addTokenCleaner: addTokenCleanerMemo,\n };\n}\n\nexport const BackendContextProvider = ({\n children,\n defaultUrl,\n initialToken,\n}: {\n children: any;\n defaultUrl?: string;\n initialToken?: string;\n}): VNode => {\n const value = useBackendContextState(defaultUrl, initialToken);\n\n return h(BackendContext.Provider, { value, children });\n};\n\nexport const useBackendContext = (): BackendContextType =>\n useContext(BackendContext);\n", "/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/**\n * Check if two values are the same value\n * @param {*} x\n * @param {*} y\n * @returns {boolean}\n */\nexport function is(x, y) {\n\treturn (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\n", "import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n", "import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n", "import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\treturn fn(clone, props.ref || null);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n", "import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n", "import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function(vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._hydrating === true) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n", "import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n", "import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n", "import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\nconst IS_DOM = typeof document !== 'undefined';\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst onChangeInputType = type =>\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\n\t\t? /fil|che|rad/i\n\t\t: /fil|che|ra/i\n\t).test(type);\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\n\t\t\t\tcontinue;\n\t\t\t} else if (i === 'value' && 'defaultValue' in props && value == null) {\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\n\t\t\t\t// a default value\n\t\t\t\tcontinue;\n\t\t\t} else if (\n\t\t\t\ti === 'defaultValue' &&\n\t\t\t\t'value' in props &&\n\t\t\t\tprops.value == null\n\t\t\t) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!onChangeInputType(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^onfocus$/i.test(i)) {\n\t\t\t\ti = 'onfocusin';\n\t\t\t} else if (/^onblur$/i.test(i)) {\n\t\t\t\ti = 'onfocusout';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/g, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\t// Add support for onInput and onChange, see #3561\n\t\t\t// if we have an oninput prop already change it to oninputCapture\n\t\t\tif (/^oninput$/i.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t\tif (normalizedProps[i]) {\n\t\t\t\t\ti = 'oninputCapture';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: \n (!v ? \"\" : v.join(\"\\n\"))}\n fromStr={(v: string) => v.split(\"\\n\")}\n />\n \n \n \n \n \n \n \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { WithId } from \"../declaration.js\";\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nexport interface Actions {\n element: T;\n type: \"DELETE\" | \"UPDATE\";\n}\n\nfunction notEmpty(value: TValue | null | undefined): value is TValue {\n return value !== null && value !== undefined;\n}\n\nexport function buildActions(\n instances: T[],\n selected: string[],\n action: \"DELETE\",\n): Actions[] {\n return selected\n .map((id) => instances.find((i) => i.id === id))\n .filter(notEmpty)\n .map((id) => ({ element: id, type: action }));\n}\n\n/**\n * For any object or array, return the same object if is not empty.\n * not empty:\n * - for arrays: at least one element not undefined\n * - for objects: at least one property not undefined\n * @param obj\n * @returns\n */\nexport function undefinedIfEmpty<\n T extends Record | Array,\n>(obj: T): T | undefined {\n if (obj === undefined) return undefined;\n return Object.values(obj).some((v) => v !== undefined) ? obj : undefined;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { h, VNode } from \"preact\";\nimport { InputProps, useField } from \"./useField.js\";\n\ninterface Props extends InputProps {\n readonly?: boolean;\n expand?: boolean;\n values: string[];\n convert?: (v: string) => any;\n toStr?: (v?: any) => string;\n fromStr?: (s: string) => any;\n}\n\nconst defaultToString = (f?: any): string => f || \"\";\nconst defaultFromString = (v: string): any => v as any;\n\nexport function InputSelector({\n name,\n readonly,\n expand,\n placeholder,\n tooltip,\n label,\n help,\n values,\n convert,\n toStr = defaultToString,\n}: Props): VNode {\n const { error, value, onChange } = useField(name);\n\n return (\n
\n
\n \n
\n
\n
\n

\n {\n const v = convert\n ? convert(e.currentTarget.value)\n : e.currentTarget.value;\n onChange(v);\n }}\n >\n {placeholder && }\n {values.map((v, i) => (\n \n ))}\n \n {help}\n

\n {error &&

{error}

}\n
\n
\n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useCallback, useState } from \"preact/hooks\";\nimport { COUNTRY_TABLE } from \"../../utils/constants.js\";\nimport { undefinedIfEmpty } from \"../../utils/table.js\";\nimport { FormErrors, FormProvider } from \"./FormProvider.js\";\nimport { Input } from \"./Input.js\";\nimport { InputGroup } from \"./InputGroup.js\";\nimport { InputSelector } from \"./InputSelector.js\";\nimport { InputProps, useField } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n isValid?: (e: any) => boolean;\n}\n\n// https://datatracker.ietf.org/doc/html/rfc8905\ntype Entity = {\n // iban, bitcoin, x-taler-bank. it defined the format\n target: string;\n // path1 if the first field to be used\n path1: string;\n // path2 if the second field to be used, optional\n path2?: string;\n // options of the payto uri\n options: {\n \"receiver-name\"?: string;\n sender?: string;\n message?: string;\n amount?: string;\n instruction?: string;\n [name: string]: string | undefined;\n };\n};\n\nfunction isEthereumAddress(address: string) {\n if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {\n return false;\n } else if (\n /^(0x|0X)?[0-9a-f]{40}$/.test(address) ||\n /^(0x|0X)?[0-9A-F]{40}$/.test(address)\n ) {\n return true;\n }\n return checkAddressChecksum(address);\n}\n\nfunction checkAddressChecksum(address: string) {\n //TODO implement ethereum checksum\n return true;\n}\n\nfunction validateBitcoin(\n addr: string,\n i18n: ReturnType[\"i18n\"],\n): string | undefined {\n try {\n const valid = /^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/.test(addr);\n if (valid) return undefined;\n } catch (e) {\n console.log(e);\n }\n return i18n.str`This is not a valid bitcoin address.`;\n}\n\nfunction validateEthereum(\n addr: string,\n i18n: ReturnType[\"i18n\"],\n): string | undefined {\n try {\n const valid = isEthereumAddress(addr);\n if (valid) return undefined;\n } catch (e) {\n console.log(e);\n }\n return i18n.str`This is not a valid Ethereum address.`;\n}\n\n/**\n * An IBAN is validated by converting it into an integer and performing a\n * basic mod-97 operation (as described in ISO 7064) on it.\n * If the IBAN is valid, the remainder equals 1.\n *\n * The algorithm of IBAN validation is as follows:\n * 1.- Check that the total IBAN length is correct as per the country. If not, the IBAN is invalid\n * 2.- Move the four initial characters to the end of the string\n * 3.- Replace each letter in the string with two digits, thereby expanding the string, where A = 10, B = 11, ..., Z = 35\n * 4.- Interpret the string as a decimal integer and compute the remainder of that number on division by 97\n *\n * If the remainder is 1, the check digit test is passed and the IBAN might be valid.\n *\n */\nfunction validateIBAN(\n iban: string,\n i18n: ReturnType[\"i18n\"],\n): string | undefined {\n // Check total length\n if (iban.length < 4)\n return i18n.str`IBAN numbers usually have more that 4 digits`;\n if (iban.length > 34)\n return i18n.str`IBAN numbers usually have less that 34 digits`;\n\n const A_code = \"A\".charCodeAt(0);\n const Z_code = \"Z\".charCodeAt(0);\n const IBAN = iban.toUpperCase();\n // check supported country\n const code = IBAN.substr(0, 2);\n const found = code in COUNTRY_TABLE;\n if (!found) return i18n.str`IBAN country code not found`;\n\n // 2.- Move the four initial characters to the end of the string\n const step2 = IBAN.substr(4) + iban.substr(0, 4);\n const step3 = Array.from(step2)\n .map((letter) => {\n const code = letter.charCodeAt(0);\n if (code < A_code || code > Z_code) return letter;\n return `${letter.charCodeAt(0) - \"A\".charCodeAt(0) + 10}`;\n })\n .join(\"\");\n\n function calculate_iban_checksum(str: string): number {\n const numberStr = str.substr(0, 5);\n const rest = str.substr(5);\n const number = parseInt(numberStr, 10);\n const result = number % 97;\n if (rest.length > 0) {\n return calculate_iban_checksum(`${result}${rest}`);\n }\n return result;\n }\n\n const checksum = calculate_iban_checksum(step3);\n if (checksum !== 1)\n return i18n.str`IBAN number is not valid, checksum is wrong`;\n return undefined;\n}\n\n// const targets = ['ach', 'bic', 'iban', 'upi', 'bitcoin', 'ilp', 'void', 'x-taler-bank']\nconst targets = [\n \"Choose one...\",\n \"iban\",\n \"x-taler-bank\",\n \"bitcoin\",\n \"ethereum\",\n];\nconst noTargetValue = targets[0];\nconst defaultTarget = { target: noTargetValue, options: {} };\n\nexport function InputPaytoForm({\n name,\n readonly,\n label,\n tooltip,\n}: Props): VNode {\n const { value: paytos, onChange } = useField(name);\n\n const [value, valueHandler] = useState>(defaultTarget);\n\n let payToPath;\n if (value.target === \"iban\" && value.path1) {\n payToPath = `/${value.path1.toUpperCase()}`;\n } else if (value.path1) {\n if (value.path2) {\n payToPath = `/${value.path1}/${value.path2}`;\n } else {\n payToPath = `/${value.path1}`;\n }\n }\n const { i18n } = useTranslationContext();\n\n const ops = value.options!;\n const url = tryUrl(`payto://${value.target}${payToPath}`);\n if (url) {\n Object.keys(ops).forEach((opt_key) => {\n const opt_value = ops[opt_key];\n if (opt_value) url.searchParams.set(opt_key, opt_value);\n });\n }\n const paytoURL = !url ? \"\" : url.href;\n\n const errors: FormErrors = {\n target: value.target === noTargetValue ? i18n.str`required` : undefined,\n path1: !value.path1\n ? i18n.str`required`\n : value.target === \"iban\"\n ? validateIBAN(value.path1, i18n)\n : value.target === \"bitcoin\"\n ? validateBitcoin(value.path1, i18n)\n : value.target === \"ethereum\"\n ? validateEthereum(value.path1, i18n)\n : undefined,\n path2:\n value.target === \"x-taler-bank\"\n ? !value.path2\n ? i18n.str`required`\n : undefined\n : undefined,\n options: undefinedIfEmpty({\n \"receiver-name\": !value.options?.[\"receiver-name\"]\n ? i18n.str`required`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = useCallback((): void => {\n const alreadyExists =\n paytos.findIndex((x: string) => x === paytoURL) !== -1;\n if (!alreadyExists) {\n onChange([paytoURL, ...paytos] as any);\n }\n valueHandler(defaultTarget);\n }, [value]);\n\n //FIXME: translating plural singular\n return (\n \n \n name=\"tax\"\n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n \n name=\"target\"\n label={i18n.str`Target type`}\n tooltip={i18n.str`Method to use for wire transfer`}\n values={targets}\n toStr={(v) => (v === noTargetValue ? i18n.str`Choose one...` : v)}\n />\n\n {value.target === \"ach\" && (\n \n \n name=\"path1\"\n label={i18n.str`Routing`}\n tooltip={i18n.str`Routing number.`}\n />\n \n name=\"path2\"\n label={i18n.str`Account`}\n tooltip={i18n.str`Account number.`}\n />\n \n )}\n {value.target === \"bic\" && (\n \n \n name=\"path1\"\n label={i18n.str`Code`}\n tooltip={i18n.str`Business Identifier Code.`}\n />\n \n )}\n {value.target === \"iban\" && (\n \n \n name=\"path1\"\n label={i18n.str`Account`}\n tooltip={i18n.str`Bank Account Number.`}\n inputExtra={{ style: { textTransform: \"uppercase\" } }}\n />\n \n )}\n {value.target === \"upi\" && (\n \n \n name=\"path1\"\n label={i18n.str`Account`}\n tooltip={i18n.str`Unified Payment Interface.`}\n />\n \n )}\n {value.target === \"bitcoin\" && (\n \n \n name=\"path1\"\n label={i18n.str`Address`}\n tooltip={i18n.str`Bitcoin protocol.`}\n />\n \n )}\n {value.target === \"ethereum\" && (\n \n \n name=\"path1\"\n label={i18n.str`Address`}\n tooltip={i18n.str`Ethereum protocol.`}\n />\n \n )}\n {value.target === \"ilp\" && (\n \n \n name=\"path1\"\n label={i18n.str`Address`}\n tooltip={i18n.str`Interledger protocol.`}\n />\n \n )}\n {value.target === \"void\" && }\n {value.target === \"x-taler-bank\" && (\n \n \n name=\"path1\"\n label={i18n.str`Host`}\n tooltip={i18n.str`Bank host.`}\n />\n \n name=\"path2\"\n label={i18n.str`Account`}\n tooltip={i18n.str`Bank account.`}\n />\n \n )}\n\n {value.target !== noTargetValue && (\n \n )}\n\n
\n
\n
\n {paytos.map((v: any, i: number) => (\n \n \n {v}\n \n {\n onChange(paytos.filter((f: any) => f !== v) as any);\n }}\n />\n
\n ))}\n {!paytos.length && i18n.str`No accounts yet.`}\n
\n
\n\n {value.target !== noTargetValue && (\n
\n \n Add\n \n
\n )}\n \n
\n );\n}\n\nfunction tryUrl(s: string): URL | undefined {\n try {\n return new URL(s);\n } catch (e) {\n return undefined;\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useBackendContext } from \"../../context/backend.js\";\nimport { Entity } from \"../../paths/admin/create/CreatePage.js\";\nimport { Input } from \"../form/Input.js\";\nimport { InputCurrency } from \"../form/InputCurrency.js\";\nimport { InputDuration } from \"../form/InputDuration.js\";\nimport { InputGroup } from \"../form/InputGroup.js\";\nimport { InputImage } from \"../form/InputImage.js\";\nimport { InputLocation } from \"../form/InputLocation.js\";\nimport { InputPaytoForm } from \"../form/InputPaytoForm.js\";\nimport { InputWithAddon } from \"../form/InputWithAddon.js\";\n\nexport function DefaultInstanceFormFields({\n readonlyId,\n showId,\n}: {\n readonlyId?: boolean;\n showId: boolean;\n}): VNode {\n const { i18n } = useTranslationContext();\n const backend = useBackendContext();\n return (\n \n {showId && (\n \n name=\"id\"\n addonBefore={`${backend.url}/instances/`}\n readonly={readonlyId}\n label={i18n.str`Identifier`}\n tooltip={i18n.str`Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.`}\n />\n )}\n\n \n name=\"name\"\n label={i18n.str`Business name`}\n tooltip={i18n.str`Legal name of the business represented by this instance.`}\n />\n\n \n name=\"email\"\n label={i18n.str`Email`}\n tooltip={i18n.str`Contact email`}\n />\n\n \n name=\"website\"\n label={i18n.str`Website URL`}\n tooltip={i18n.str`URL.`}\n />\n\n \n name=\"logo\"\n label={i18n.str`Logo`}\n tooltip={i18n.str`Logo image.`}\n />\n\n \n name=\"payto_uris\"\n label={i18n.str`Bank account`}\n tooltip={i18n.str`URI specifying bank account for crediting revenue.`}\n />\n\n \n name=\"default_max_deposit_fee\"\n label={i18n.str`Default max deposit fee`}\n tooltip={i18n.str`Maximum deposit fees this merchant is willing to pay per order by default.`}\n />\n\n \n name=\"default_max_wire_fee\"\n label={i18n.str`Default max wire fee`}\n tooltip={i18n.str`Maximum wire fees this merchant is willing to pay per wire transfer by default.`}\n />\n\n \n name=\"default_wire_fee_amortization\"\n label={i18n.str`Default wire fee amortization`}\n tooltip={i18n.str`Number of orders excess wire transfer fees will be divided by to compute per order surcharge.`}\n />\n\n \n \n \n\n \n \n \n\n \n name=\"default_pay_delay\"\n label={i18n.str`Default payment delay`}\n withForever\n tooltip={i18n.str`Time customers have to pay an order before the offer expires by default.`}\n />\n\n \n name=\"default_wire_transfer_delay\"\n label={i18n.str`Default wire transfer delay`}\n tooltip={i18n.str`Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.`}\n withForever\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../components/form/FormProvider.js\";\nimport { DefaultInstanceFormFields } from \"../../../components/instance/DefaultInstanceFormFields.js\";\nimport { SetTokenNewInstanceModal } from \"../../../components/modal/index.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { INSTANCE_ID_REGEX, PAYTO_REGEX } from \"../../../utils/constants.js\";\nimport { undefinedIfEmpty } from \"../../../utils/table.js\";\n\nexport type Entity = MerchantBackend.Instances.InstanceConfigurationMessage & {\n auth_token?: string;\n};\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n forceId?: string;\n}\n\nfunction with_defaults(id?: string): Partial {\n return {\n id,\n payto_uris: [],\n default_pay_delay: { d_us: 2 * 1000 * 60 * 60 * 1000 }, // two hours\n default_wire_fee_amortization: 1,\n default_wire_transfer_delay: { d_us: 1000 * 2 * 60 * 60 * 24 * 1000 }, // two days\n };\n}\n\nexport function CreatePage({ onCreate, onBack, forceId }: Props): VNode {\n const [value, valueHandler] = useState(with_defaults(forceId));\n const [isTokenSet, updateIsTokenSet] = useState(false);\n const [isTokenDialogActive, updateIsTokenDialogActive] =\n useState(false);\n\n const { i18n } = useTranslationContext();\n\n const errors: FormErrors = {\n id: !value.id\n ? i18n.str`required`\n : !INSTANCE_ID_REGEX.test(value.id)\n ? i18n.str`is not valid`\n : undefined,\n name: !value.name ? i18n.str`required` : undefined,\n payto_uris:\n !value.payto_uris || !value.payto_uris.length\n ? i18n.str`required`\n : undefinedIfEmpty(\n value.payto_uris.map((p) => {\n return !PAYTO_REGEX.test(p) ? i18n.str`is not valid` : undefined;\n }),\n ),\n default_max_deposit_fee: !value.default_max_deposit_fee\n ? i18n.str`required`\n : !Amounts.parse(value.default_max_deposit_fee)\n ? i18n.str`invalid format`\n : undefined,\n default_max_wire_fee: !value.default_max_wire_fee\n ? i18n.str`required`\n : !Amounts.parse(value.default_max_wire_fee)\n ? i18n.str`invalid format`\n : undefined,\n default_wire_fee_amortization:\n value.default_wire_fee_amortization === undefined\n ? i18n.str`required`\n : isNaN(value.default_wire_fee_amortization)\n ? i18n.str`is not a number`\n : value.default_wire_fee_amortization < 1\n ? i18n.str`must be 1 or greater`\n : undefined,\n default_pay_delay: !value.default_pay_delay\n ? i18n.str`required`\n : undefined,\n default_wire_transfer_delay: !value.default_wire_transfer_delay\n ? i18n.str`required`\n : undefined,\n address: undefinedIfEmpty({\n address_lines:\n value.address?.address_lines && value.address?.address_lines.length > 7\n ? i18n.str`max 7 lines`\n : undefined,\n }),\n jurisdiction: undefinedIfEmpty({\n address_lines:\n value.address?.address_lines && value.address?.address_lines.length > 7\n ? i18n.str`max 7 lines`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = (): Promise => {\n // use conversion instead of this\n const newToken = value.auth_token;\n value.auth_token = undefined;\n value.auth =\n newToken === null || newToken === undefined\n ? { method: \"external\" }\n : { method: \"token\", token: `secret-token:${newToken}` };\n if (!value.address) value.address = {};\n if (!value.jurisdiction) value.jurisdiction = {};\n // remove above use conversion\n // schema.validateSync(value, { abortEarly: false })\n return onCreate(value as Entity);\n };\n\n function updateToken(token: string | null) {\n valueHandler((old) => ({\n ...old,\n auth_token: token === null ? undefined : token,\n }));\n }\n\n return (\n
\n
\n
\n
\n {isTokenDialogActive && (\n {\n updateIsTokenDialogActive(false);\n updateIsTokenSet(false);\n }}\n onClear={() => {\n updateToken(null);\n updateIsTokenDialogActive(false);\n updateIsTokenSet(true);\n }}\n onConfirm={(newToken) => {\n updateToken(newToken);\n updateIsTokenDialogActive(false);\n updateIsTokenSet(true);\n }}\n />\n )}\n
\n
\n
\n\n
\n
\n
\n
\n

\n updateIsTokenDialogActive(true)}\n >\n
\n \n
\n \n Set access token\n \n \n

\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n \n \n\n
\n {onBack && (\n \n )}\n \n Confirm\n \n
\n
\n
\n
\n
\n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { ComponentChildren, h, VNode } from \"preact\";\n\ninterface Props {\n onCreateAnother?: () => void;\n onConfirm: () => void;\n children: ComponentChildren;\n}\n\nexport function CreatedSuccessfully({\n children,\n onConfirm,\n onCreateAnother,\n}: Props): VNode {\n return (\n
\n
\n
\n
\n
\n

Success.

\n
\n
{children}
\n
\n
\n {onCreateAnother && (\n \n )}\n \n
\n
\n
\n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { h, VNode } from \"preact\";\nimport { CreatedSuccessfully } from \"../../../components/notifications/CreatedSuccessfully.js\";\nimport { Entity } from \"./index.js\";\n\nexport function InstanceCreatedSuccessfully({\n entity,\n onConfirm,\n}: {\n entity: Entity;\n onConfirm: () => void;\n}): VNode {\n return (\n \n
\n
\n \n
\n
\n
\n

\n \n

\n
\n
\n
\n
\n
\n \n
\n
\n
\n

\n \n

\n
\n
\n
\n
\n
\n \n
\n
\n
\n

\n {entity.auth.method === \"external\" && \"external\"}\n {entity.auth.method === \"token\" && (\n \n )}\n

\n
\n
\n
\n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { useAdminAPI } from \"../../../hooks/instance.js\";\nimport { Notification } from \"../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\nimport { InstanceCreatedSuccessfully } from \"./InstanceCreatedSuccessfully.js\";\n\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n forceId?: string;\n}\nexport type Entity = MerchantBackend.Instances.InstanceConfigurationMessage;\n\nexport default function Create({ onBack, onConfirm, forceId }: Props): VNode {\n const { createInstance } = useAdminAPI();\n const [notif, setNotif] = useState(undefined);\n const [createdOk, setCreatedOk] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n if (createdOk) {\n return (\n \n );\n }\n\n return (\n \n \n\n {\n return createInstance(d)\n .then(() => {\n setCreatedOk(d);\n })\n .catch((error) => {\n setNotif({\n message: i18n.str`Failed to create instance`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../../../declaration.js\";\n\ninterface Props {\n instances: MerchantBackend.Instances.Instance[];\n onUpdate: (id: string) => void;\n onDelete: (id: MerchantBackend.Instances.Instance) => void;\n onPurge: (id: MerchantBackend.Instances.Instance) => void;\n onCreate: () => void;\n selected?: boolean;\n setInstanceName: (s: string) => void;\n}\n\nexport function CardTable({\n instances,\n onCreate,\n onUpdate,\n onPurge,\n setInstanceName,\n onDelete,\n selected,\n}: Props): VNode {\n const [actionQueue, actionQueueHandler] = useState([]);\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n useEffect(() => {\n if (\n actionQueue.length > 0 &&\n !selected &&\n actionQueue[0].type == \"DELETE\"\n ) {\n onDelete(actionQueue[0].element);\n actionQueueHandler(actionQueue.slice(1));\n }\n }, [actionQueue, selected, onDelete]);\n\n useEffect(() => {\n if (\n actionQueue.length > 0 &&\n !selected &&\n actionQueue[0].type == \"UPDATE\"\n ) {\n onUpdate(actionQueue[0].element.id);\n actionQueueHandler(actionQueue.slice(1));\n }\n }, [actionQueue, selected, onUpdate]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
\n
\n

\n \n \n \n Instances\n

\n\n
\n 0 ? \"button is-danger\" : \"is-hidden\"}\n type=\"button\"\n onClick={(): void =>\n actionQueueHandler(\n buildActions(instances, rowSelection, \"DELETE\"),\n )\n }\n >\n Delete\n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n {instances.length > 0 ? (\n \n ) : (\n \n )}\n
\n
\n
\n
\n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: MerchantBackend.Instances.Instance[];\n onUpdate: (id: string) => void;\n onDelete: (id: MerchantBackend.Instances.Instance) => void;\n onPurge: (id: MerchantBackend.Instances.Instance) => void;\n rowSelectionHandler: StateUpdater;\n setInstanceName: (s: string) => void;\n}\n\nfunction toggleSelected(id: T): (prev: T[]) => T[] {\n return (prev: T[]): T[] =>\n prev.indexOf(id) == -1 ? [...prev, id] : prev.filter((e) => e != id);\n}\n\nfunction Table({\n rowSelection,\n rowSelectionHandler,\n setInstanceName,\n instances,\n onUpdate,\n onDelete,\n onPurge,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
\n
\n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n \n \n \n \n \n );\n })}\n \n
\n \n \n ID\n \n Name\n \n
\n \n \n {\n setInstanceName(i.id);\n }}\n >\n {i.id}\n \n {i.name}\n
\n onUpdate(i.id)}\n >\n Edit\n \n {!i.deleted && (\n onDelete(i)}\n >\n Delete\n \n )}\n {i.deleted && (\n onPurge(i)}\n >\n Purge\n \n )}\n
\n
\n \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
\n

\n \n \n \n

\n

\n \n There is no instances yet, add more pressing the + sign\n \n

\n
\n );\n}\n\ninterface Actions {\n element: MerchantBackend.Instances.Instance;\n type: \"DELETE\" | \"UPDATE\";\n}\n\nfunction notEmpty(value: TValue | null | undefined): value is TValue {\n return value !== null && value !== undefined;\n}\n\nfunction buildActions(\n instances: MerchantBackend.Instances.Instance[],\n selected: string[],\n action: \"DELETE\",\n): Actions[] {\n return selected\n .map((id) => instances.find((i) => i.id === id))\n .filter(notEmpty)\n .map((id) => ({ element: id, type: action }));\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { CardTable as CardTableActive } from \"./TableActive.js\";\n\ninterface Props {\n instances: MerchantBackend.Instances.Instance[];\n onCreate: () => void;\n onUpdate: (id: string) => void;\n onDelete: (id: MerchantBackend.Instances.Instance) => void;\n onPurge: (id: MerchantBackend.Instances.Instance) => void;\n selected?: boolean;\n setInstanceName: (s: string) => void;\n}\n\nexport function View({\n instances,\n onCreate,\n onDelete,\n onPurge,\n onUpdate,\n setInstanceName,\n selected,\n}: Props): VNode {\n const [show, setShow] = useState<\"active\" | \"deleted\" | null>(\"active\");\n const showIsActive = show === \"active\" ? \"is-active\" : \"\";\n const showIsDeleted = show === \"deleted\" ? \"is-active\" : \"\";\n const showAll = show === null ? \"is-active\" : \"\";\n const { i18n } = useTranslationContext();\n\n const showingInstances = showIsDeleted\n ? instances.filter((i) => i.deleted)\n : showIsActive\n ? instances.filter((i) => !i.deleted)\n : instances;\n\n return (\n
\n \n \n \n \n \n \n \n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../components/menu/index.js\";\nimport { DeleteModal, PurgeModal } from \"../../../components/modal/index.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { useAdminAPI, useBackendInstances } from \"../../../hooks/instance.js\";\nimport { Notification } from \"../../../utils/types.js\";\nimport { View } from \"./View.js\";\n\ninterface Props {\n onCreate: () => void;\n onUpdate: (id: string) => void;\n instances: MerchantBackend.Instances.Instance[];\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n setInstanceName: (s: string) => void;\n}\n\nexport default function Instances({\n onUnauthorized,\n onLoadError,\n onNotFound,\n onCreate,\n onUpdate,\n setInstanceName,\n}: Props): VNode {\n const result = useBackendInstances();\n const [deleting, setDeleting] =\n useState(null);\n const [purging, setPurging] =\n useState(null);\n const { deleteInstance, purgeInstance } = useAdminAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n \n {deleting && (\n setDeleting(null)}\n onConfirm={async (): Promise => {\n try {\n await deleteInstance(deleting.id);\n // pushNotification({ message: 'delete_success', type: 'SUCCESS' })\n setNotif({\n message: i18n.str`Instance '${deleting.name}' (ID: ${deleting.id}) has been deleted`,\n type: \"SUCCESS\",\n });\n } catch (error) {\n setNotif({\n message: i18n.str`Failed to delete instance`,\n type: \"ERROR\",\n description: error instanceof Error ? error.message : undefined,\n });\n // pushNotification({ message: 'delete_error', type: 'ERROR' })\n }\n setDeleting(null);\n }}\n />\n )}\n {purging && (\n setPurging(null)}\n onConfirm={async (): Promise => {\n try {\n await purgeInstance(purging.id);\n setNotif({\n message: i18n.str`Instance '${purging.name}' (ID: ${purging.id}) has been disabled`,\n type: \"SUCCESS\",\n });\n } catch (error) {\n setNotif({\n message: i18n.str`Failed to purge instance`,\n type: \"ERROR\",\n description: error instanceof Error ? error.message : undefined,\n });\n }\n setPurging(null);\n }}\n />\n )}\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\nexport interface Props {\n status: MerchantBackend.Instances.AccountKycRedirects;\n}\n\nexport function ListPage({ status }: Props): VNode {\n const { i18n } = useTranslationContext();\n\n return (\n
\n
\n
\n

\n \n \n \n Pending KYC verification\n

\n\n
\n
\n
\n
\n
\n {status.pending_kycs.length > 0 ? (\n \n ) : (\n \n )}\n
\n
\n
\n
\n\n {status.timeout_kycs.length > 0 ? (\n
\n
\n

\n \n \n \n Timed out\n

\n\n
\n
\n
\n
\n
\n {status.timeout_kycs.length > 0 ? (\n \n ) : (\n \n )}\n
\n
\n
\n
\n ) : undefined}\n
\n );\n}\ninterface PendingTableProps {\n entries: MerchantBackend.Instances.MerchantAccountKycRedirect[];\n}\n\ninterface TimedOutTableProps {\n entries: MerchantBackend.Instances.ExchangeKycTimeout[];\n}\n\nfunction PendingTable({ entries }: PendingTableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
\n \n \n \n \n \n \n \n \n \n {entries.map((e, i) => {\n return (\n \n \n \n \n \n );\n })}\n \n
\n Exchange\n \n Target account\n \n KYC URL\n
{e.exchange_url}{e.payto_uri}\n \n {e.kyc_url}\n \n
\n
\n );\n}\n\nfunction TimedOutTable({ entries }: TimedOutTableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
\n \n \n \n \n \n \n \n \n \n {entries.map((e, i) => {\n return (\n \n \n \n \n \n );\n })}\n \n
\n Exchange\n \n Code\n \n Http Status\n
{e.exchange_url}{e.exchange_code}{e.exchange_http_status}
\n
\n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
\n

\n \n \n \n

\n

\n No pending kyc verification!\n

\n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { HttpError } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useInstanceKYCDetails } from \"../../../../hooks/instance.js\";\nimport { ListPage } from \"./ListPage.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n}\n\nexport default function ListKYC({\n onUnauthorized,\n onLoadError,\n onNotFound,\n}: Props): VNode {\n const result = useInstanceKYCDetails();\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n const status = result.data.type === \"ok\" ? undefined : result.data.status;\n\n if (!status) {\n return
no kyc required
;\n }\n return ;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n HttpResponsePaginated,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { MAX_RESULT_SIZE, PAGE_SIZE } from \"../utils/constants.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport interface OrderAPI {\n //FIXME: add OutOfStockResponse on 410\n createOrder: (\n data: MerchantBackend.Orders.PostOrderRequest,\n ) => Promise>;\n forgetOrder: (\n id: string,\n data: MerchantBackend.Orders.ForgetRequest,\n ) => Promise>;\n refundOrder: (\n id: string,\n data: MerchantBackend.Orders.RefundRequest,\n ) => Promise>;\n deleteOrder: (id: string) => Promise>;\n getPaymentURL: (id: string) => Promise>;\n}\n\ntype YesOrNo = \"yes\" | \"no\";\n\nexport function useOrderAPI(): OrderAPI {\n const mutateAll = useMatchMutate();\n const { request } = useBackendInstanceRequest();\n\n const createOrder = async (\n data: MerchantBackend.Orders.PostOrderRequest,\n ): Promise> => {\n const res = await request(\n `/private/orders`,\n {\n method: \"POST\",\n data,\n },\n );\n await mutateAll(/.*private\\/orders.*/);\n // mutate('')\n return res;\n };\n const refundOrder = async (\n orderId: string,\n data: MerchantBackend.Orders.RefundRequest,\n ): Promise> => {\n mutateAll(/@\"\\/private\\/orders\"@/);\n const res = request(\n `/private/orders/${orderId}/refund`,\n {\n method: \"POST\",\n data,\n },\n );\n\n // order list returns refundable information, so we must evict everything\n await mutateAll(/.*private\\/orders.*/);\n return res;\n };\n\n const forgetOrder = async (\n orderId: string,\n data: MerchantBackend.Orders.ForgetRequest,\n ): Promise> => {\n mutateAll(/@\"\\/private\\/orders\"@/);\n const res = request(`/private/orders/${orderId}/forget`, {\n method: \"PATCH\",\n data,\n });\n // we may be forgetting some fields that are pare of the listing, so we must evict everything\n await mutateAll(/.*private\\/orders.*/);\n return res;\n };\n const deleteOrder = async (\n orderId: string,\n ): Promise> => {\n mutateAll(/@\"\\/private\\/orders\"@/);\n const res = request(`/private/orders/${orderId}`, {\n method: \"DELETE\",\n });\n await mutateAll(/.*private\\/orders.*/);\n return res;\n };\n\n const getPaymentURL = async (\n orderId: string,\n ): Promise> => {\n return request(\n `/private/orders/${orderId}`,\n {\n method: \"GET\",\n },\n ).then((res) => {\n const url =\n res.data.order_status === \"unpaid\"\n ? res.data.taler_pay_uri\n : res.data.contract_terms.fulfillment_url;\n const response: HttpResponseOk = res as any;\n response.data = url || \"\";\n return response;\n });\n };\n\n return { createOrder, forgetOrder, deleteOrder, refundOrder, getPaymentURL };\n}\n\nexport function useOrderDetails(\n oderId: string,\n): HttpResponse<\n MerchantBackend.Orders.MerchantOrderStatusResponse,\n MerchantBackend.ErrorDetail\n> {\n const { fetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/orders/${oderId}`], fetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n\nexport interface InstanceOrderFilter {\n paid?: YesOrNo;\n refunded?: YesOrNo;\n wired?: YesOrNo;\n date?: Date;\n}\n\nexport function useInstanceOrders(\n args?: InstanceOrderFilter,\n updateFilter?: (d: Date) => void,\n): HttpResponsePaginated<\n MerchantBackend.Orders.OrderHistory,\n MerchantBackend.ErrorDetail\n> {\n const { orderFetcher } = useBackendInstanceRequest();\n\n const [pageBefore, setPageBefore] = useState(1);\n const [pageAfter, setPageAfter] = useState(1);\n\n const totalAfter = pageAfter * PAGE_SIZE;\n const totalBefore = args?.date ? pageBefore * PAGE_SIZE : 0;\n\n /**\n * FIXME: this can be cleaned up a little\n *\n * the logic of double query should be inside the orderFetch so from the hook perspective and cache\n * is just one query and one error status\n */\n const {\n data: beforeData,\n error: beforeError,\n isValidating: loadingBefore,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >(\n [\n `/private/orders`,\n args?.paid,\n args?.refunded,\n args?.wired,\n args?.date,\n totalBefore,\n ],\n orderFetcher,\n );\n const {\n data: afterData,\n error: afterError,\n isValidating: loadingAfter,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >(\n [\n `/private/orders`,\n args?.paid,\n args?.refunded,\n args?.wired,\n args?.date,\n -totalAfter,\n ],\n orderFetcher,\n );\n\n //this will save last result\n const [lastBefore, setLastBefore] = useState<\n HttpResponse<\n MerchantBackend.Orders.OrderHistory,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n const [lastAfter, setLastAfter] = useState<\n HttpResponse<\n MerchantBackend.Orders.OrderHistory,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n useEffect(() => {\n if (afterData) setLastAfter(afterData);\n if (beforeData) setLastBefore(beforeData);\n }, [afterData, beforeData]);\n\n if (beforeError) return beforeError.info;\n if (afterError) return afterError.info;\n\n // if the query returns less that we ask, then we have reach the end or beginning\n const isReachingEnd = afterData && afterData.data.orders.length < totalAfter;\n const isReachingStart =\n args?.date === undefined ||\n (beforeData && beforeData.data.orders.length < totalBefore);\n\n const pagination = {\n isReachingEnd,\n isReachingStart,\n loadMore: () => {\n if (!afterData || isReachingEnd) return;\n if (afterData.data.orders.length < MAX_RESULT_SIZE) {\n setPageAfter(pageAfter + 1);\n } else {\n const from =\n afterData.data.orders[afterData.data.orders.length - 1].timestamp.t_s;\n if (from && from !== \"never\" && updateFilter)\n updateFilter(new Date(from * 1000));\n }\n },\n loadMorePrev: () => {\n if (!beforeData || isReachingStart) return;\n if (beforeData.data.orders.length < MAX_RESULT_SIZE) {\n setPageBefore(pageBefore + 1);\n } else if (beforeData) {\n const from =\n beforeData.data.orders[beforeData.data.orders.length - 1].timestamp\n .t_s;\n if (from && from !== \"never\" && updateFilter)\n updateFilter(new Date(from * 1000));\n }\n },\n };\n\n const orders =\n !beforeData || !afterData\n ? []\n : (beforeData || lastBefore).data.orders\n .slice()\n .reverse()\n .concat((afterData || lastAfter).data.orders);\n if (loadingAfter || loadingBefore) return { loading: true, data: { orders } };\n if (beforeData && afterData) {\n return { ok: true, data: { orders }, ...pagination };\n }\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { MerchantBackend, WithId } from \"../declaration.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook, useSWRConfig } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport interface ProductAPI {\n createProduct: (\n data: MerchantBackend.Products.ProductAddDetail,\n ) => Promise;\n updateProduct: (\n id: string,\n data: MerchantBackend.Products.ProductPatchDetail,\n ) => Promise;\n deleteProduct: (id: string) => Promise;\n lockProduct: (\n id: string,\n data: MerchantBackend.Products.LockRequest,\n ) => Promise;\n}\n\nexport function useProductAPI(): ProductAPI {\n const mutateAll = useMatchMutate();\n const { mutate } = useSWRConfig();\n\n const { request } = useBackendInstanceRequest();\n\n const createProduct = async (\n data: MerchantBackend.Products.ProductAddDetail,\n ): Promise => {\n const res = await request(`/private/products`, {\n method: \"POST\",\n data,\n });\n\n return await mutateAll(/.*\"\\/private\\/products.*/);\n };\n\n const updateProduct = async (\n productId: string,\n data: MerchantBackend.Products.ProductPatchDetail,\n ): Promise => {\n const r = await request(`/private/products/${productId}`, {\n method: \"PATCH\",\n data,\n });\n\n return await mutateAll(/.*\"\\/private\\/products.*/);\n };\n\n const deleteProduct = async (productId: string): Promise => {\n await request(`/private/products/${productId}`, {\n method: \"DELETE\",\n });\n await mutate([`/private/products`]);\n };\n\n const lockProduct = async (\n productId: string,\n data: MerchantBackend.Products.LockRequest,\n ): Promise => {\n await request(`/private/products/${productId}/lock`, {\n method: \"POST\",\n data,\n });\n\n return await mutateAll(/.*\"\\/private\\/products.*/);\n };\n\n return { createProduct, updateProduct, deleteProduct, lockProduct };\n}\n\nexport function useInstanceProducts(): HttpResponse<\n (MerchantBackend.Products.ProductDetail & WithId)[],\n MerchantBackend.ErrorDetail\n> {\n const { fetcher, multiFetcher } = useBackendInstanceRequest();\n\n const { data: list, error: listError } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/products`], fetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n const paths = (list?.data.products || []).map(\n (p) => `/private/products/${p.product_id}`,\n );\n const { data: products, error: productError } = useSWR<\n HttpResponseOk[],\n RequestError\n >([paths], multiFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (listError) return listError.info;\n if (productError) return productError.info;\n\n if (products) {\n const dataWithId = products.map((d) => {\n //take the id from the queried url\n return {\n ...d.data,\n id: d.info?.url.replace(/.*\\/private\\/products\\//, \"\") || \"\",\n };\n });\n return { ok: true, data: dataWithId };\n }\n return { loading: true };\n}\n\nexport function useProductDetails(\n productId: string,\n): HttpResponse<\n MerchantBackend.Products.ProductDetail,\n MerchantBackend.ErrorDetail\n> {\n const { fetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/products/${productId}`], fetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { h, VNode } from \"preact\";\nimport { InputProps, useField } from \"./useField.js\";\n\ninterface Props extends InputProps {\n name: T;\n readonly?: boolean;\n expand?: boolean;\n threeState?: boolean;\n toBoolean?: (v?: any) => boolean | undefined;\n fromBoolean?: (s: boolean | undefined) => any;\n}\n\nconst defaultToBoolean = (f?: any): boolean | undefined => f || \"\";\nconst defaultFromBoolean = (v: boolean | undefined): any => v as any;\n\nexport function InputBoolean({\n name,\n readonly,\n placeholder,\n tooltip,\n label,\n help,\n threeState,\n expand,\n fromBoolean = defaultFromBoolean,\n toBoolean = defaultToBoolean,\n}: Props): VNode {\n const { error, value, onChange } = useField(name);\n\n const onCheckboxClick = (): void => {\n const c = toBoolean(value);\n if (c === false && threeState) return onChange(undefined as any);\n return onChange(fromBoolean(!c));\n };\n\n return (\n
\n
\n \n
\n
\n
\n

\n \n {help}\n

\n {error &&

{error}

}\n
\n
\n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, Component } from \"preact\";\n\ninterface Props {\n closeFunction?: () => void;\n dateReceiver?: (d: Date) => void;\n opened?: boolean;\n}\ninterface State {\n displayedMonth: number;\n displayedYear: number;\n selectYearMode: boolean;\n currentDate: Date;\n}\n\n// inspired by https://codepen.io/m4r1vs/pen/MOOxyE\nexport class DatePicker extends Component {\n closeDatePicker() {\n this.props.closeFunction && this.props.closeFunction(); // Function gets passed by parent\n }\n\n /**\n * Gets fired when a day gets clicked.\n * @param {object} e The event thrown by the element clicked\n */\n dayClicked(e: any) {\n const element = e.target; // the actual element clicked\n\n if (element.innerHTML === \"\") return false; // don't continue if empty\n\n // get date from clicked element (gets attached when rendered)\n const date = new Date(element.getAttribute(\"data-value\"));\n\n // update the state\n this.setState({ currentDate: date });\n this.passDateToParent(date);\n }\n\n /**\n * returns days in month as array\n * @param {number} month the month to display\n * @param {number} year the year to display\n */\n getDaysByMonth(month: number, year: number) {\n const calendar = [];\n\n const date = new Date(year, month, 1); // month to display\n\n const firstDay = new Date(year, month, 1).getDay(); // first weekday of month\n const lastDate = new Date(year, month + 1, 0).getDate(); // last date of month\n\n let day: number | null = 0;\n\n // the calendar is 7*6 fields big, so 42 loops\n for (let i = 0; i < 42; i++) {\n if (i >= firstDay && day !== null) day = day + 1;\n if (day !== null && day > lastDate) day = null;\n\n // append the calendar Array\n calendar.push({\n day: day === 0 || day === null ? null : day, // null or number\n date: day === 0 || day === null ? null : new Date(year, month, day), // null or Date()\n today:\n day === now.getDate() &&\n month === now.getMonth() &&\n year === now.getFullYear(), // boolean\n });\n }\n\n return calendar;\n }\n\n /**\n * Display previous month by updating state\n */\n displayPrevMonth() {\n if (this.state.displayedMonth <= 0) {\n this.setState({\n displayedMonth: 11,\n displayedYear: this.state.displayedYear - 1,\n });\n } else {\n this.setState({\n displayedMonth: this.state.displayedMonth - 1,\n });\n }\n }\n\n /**\n * Display next month by updating state\n */\n displayNextMonth() {\n if (this.state.displayedMonth >= 11) {\n this.setState({\n displayedMonth: 0,\n displayedYear: this.state.displayedYear + 1,\n });\n } else {\n this.setState({\n displayedMonth: this.state.displayedMonth + 1,\n });\n }\n }\n\n /**\n * Display the selected month (gets fired when clicking on the date string)\n */\n displaySelectedMonth() {\n if (this.state.selectYearMode) {\n this.toggleYearSelector();\n } else {\n if (!this.state.currentDate) return false;\n this.setState({\n displayedMonth: this.state.currentDate.getMonth(),\n displayedYear: this.state.currentDate.getFullYear(),\n });\n }\n }\n\n toggleYearSelector() {\n this.setState({ selectYearMode: !this.state.selectYearMode });\n }\n\n changeDisplayedYear(e: any) {\n const element = e.target;\n this.toggleYearSelector();\n this.setState({\n displayedYear: parseInt(element.innerHTML, 10),\n displayedMonth: 0,\n });\n }\n\n /**\n * Pass the selected date to parent when 'OK' is clicked\n */\n passSavedDateDateToParent() {\n this.passDateToParent(this.state.currentDate);\n }\n passDateToParent(date: Date) {\n if (typeof this.props.dateReceiver === \"function\")\n this.props.dateReceiver(date);\n this.closeDatePicker();\n }\n\n componentDidUpdate() {\n if (this.state.selectYearMode) {\n document.getElementsByClassName(\"selected\")[0].scrollIntoView(); // works in every browser incl. IE, replace with scrollIntoViewIfNeeded when browsers support it\n }\n }\n\n constructor() {\n super();\n\n this.closeDatePicker = this.closeDatePicker.bind(this);\n this.dayClicked = this.dayClicked.bind(this);\n this.displayNextMonth = this.displayNextMonth.bind(this);\n this.displayPrevMonth = this.displayPrevMonth.bind(this);\n this.getDaysByMonth = this.getDaysByMonth.bind(this);\n this.changeDisplayedYear = this.changeDisplayedYear.bind(this);\n this.passDateToParent = this.passDateToParent.bind(this);\n this.toggleYearSelector = this.toggleYearSelector.bind(this);\n this.displaySelectedMonth = this.displaySelectedMonth.bind(this);\n\n this.state = {\n currentDate: now,\n displayedMonth: now.getMonth(),\n displayedYear: now.getFullYear(),\n selectYearMode: false,\n };\n }\n\n render() {\n const { currentDate, displayedMonth, displayedYear, selectYearMode } =\n this.state;\n\n return (\n
\n
\n
\n \n {currentDate.getFullYear()}\n \n \n {dayArr[currentDate.getDay()]},{\" \"}\n {monthArrShort[currentDate.getMonth()]} {currentDate.getDate()}\n \n
\n\n {!selectYearMode && (\n \n )}\n\n
\n {!selectYearMode && (\n
\n
\n {[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"].map((day, i) => (\n {day}\n ))}\n
\n\n
\n {/*\n Loop through the calendar object returned by getDaysByMonth().\n */}\n\n {this.getDaysByMonth(\n this.state.displayedMonth,\n this.state.displayedYear,\n ).map((day) => {\n let selected = false;\n\n if (currentDate && day.date)\n selected =\n currentDate.toLocaleDateString() ===\n day.date.toLocaleDateString();\n\n return (\n \n {day.day}\n \n );\n })}\n
\n
\n )}\n\n {selectYearMode && (\n
\n {yearArr.map((year) => (\n \n {year}\n \n ))}\n
\n )}\n
\n
\n\n \n
\n );\n }\n}\n\nconst monthArrShortFull = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst monthArrShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nconst dayArr = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\nconst now = new Date();\n\nconst yearArr: number[] = [];\n\nfor (let i = 2010; i <= now.getFullYear() + 10; i++) {\n yearArr.push(i);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { DatePicker } from \"../picker/DatePicker.js\";\nimport { InputProps, useField } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n readonly?: boolean;\n expand?: boolean;\n //FIXME: create separated components InputDate and InputTimestamp\n withTimestampSupport?: boolean;\n}\n\nexport function InputDate({\n name,\n readonly,\n label,\n placeholder,\n help,\n tooltip,\n expand,\n withTimestampSupport,\n}: Props): VNode {\n const [opened, setOpened] = useState(false);\n const { i18n } = useTranslationContext();\n\n const { error, required, value, onChange } = useField(name);\n\n let strValue = \"\";\n if (!value) {\n strValue = withTimestampSupport ? \"unknown\" : \"\";\n } else if (value instanceof Date) {\n strValue = format(value, \"yyyy/MM/dd\");\n } else if (value.t_s) {\n strValue =\n value.t_s === \"never\"\n ? withTimestampSupport\n ? \"never\"\n : \"\"\n : format(new Date(value.t_s * 1000), \"yyyy/MM/dd\");\n }\n\n return (\n
\n
\n \n
\n
\n
\n
\n \n {\n if (!readonly) setOpened(true);\n }}\n />\n {required && (\n \n \n \n )}\n {help}\n

\n {\n if (!readonly) setOpened(true);\n }}\n >\n \n \n \n \n \n
\n
\n {error &&

{error}

}\n
\n\n {!readonly && (\n \n onChange(undefined as any)}\n >\n clear\n \n \n )}\n {withTimestampSupport && (\n \n onChange({ t_s: \"never\" } as any)}\n >\n never\n \n \n )}\n
\n setOpened(false)}\n dateReceiver={(d) => {\n if (withTimestampSupport) {\n onChange({ t_s: d.getTime() / 1000 } as any);\n } else {\n onChange(d as any);\n }\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { ComponentChildren, h } from \"preact\";\nimport { InputWithAddon } from \"./InputWithAddon.js\";\nimport { InputProps } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n readonly?: boolean;\n expand?: boolean;\n side?: ComponentChildren;\n children?: ComponentChildren;\n}\n\nexport function InputNumber({\n name,\n readonly,\n placeholder,\n tooltip,\n label,\n help,\n expand,\n children,\n side,\n}: Props) {\n return (\n \n name={name}\n readonly={readonly}\n fromStr={(v) => (!v ? undefined : parseInt(v, 10))}\n toStr={(v) => `${v}`}\n inputType=\"number\"\n expand={expand}\n label={label}\n placeholder={placeholder}\n help={help}\n tooltip={tooltip}\n inputExtra={{ min: 0 }}\n children={children}\n side={side}\n />\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport emptyImage from \"../../assets/empty.png\";\nimport { MerchantBackend, WithId } from \"../../declaration.js\";\nimport { FormErrors, FormProvider } from \"./FormProvider.js\";\nimport { InputWithAddon } from \"./InputWithAddon.js\";\n\ntype Entity = MerchantBackend.Products.ProductDetail & WithId;\n\nexport interface Props {\n selected?: Entity;\n onChange: (p?: Entity) => void;\n products: (MerchantBackend.Products.ProductDetail & WithId)[];\n}\n\ninterface ProductSearch {\n name: string;\n}\n\nexport function InputSearchProduct({\n selected,\n onChange,\n products,\n}: Props): VNode {\n const [prodForm, setProdName] = useState>({\n name: \"\",\n });\n\n const errors: FormErrors = {\n name: undefined,\n };\n const { i18n } = useTranslationContext();\n\n if (selected) {\n return (\n
\n
\n

\n \n

\n
\n
\n
\n

\n Product id: {selected.id}\n

\n

\n Description:{\" \"}\n {selected.description}\n

\n
\n onChange(undefined)}\n >\n clear\n \n
\n
\n
\n
\n );\n }\n\n return (\n \n errors={errors}\n object={prodForm}\n valueHandler={setProdName}\n >\n \n name=\"name\"\n label={i18n.str`Product`}\n tooltip={i18n.str`search products by it's description or id`}\n addonAfter={\n \n \n \n }\n >\n
\n {\n setProdName({ name: \"\" });\n onChange(p);\n }}\n />\n
\n \n \n );\n}\n\ninterface ProductListProps {\n name?: string;\n onSelect: (p: MerchantBackend.Products.ProductDetail & WithId) => void;\n list: (MerchantBackend.Products.ProductDetail & WithId)[];\n}\n\nfunction ProductList({ name, onSelect, list }: ProductListProps) {\n const { i18n } = useTranslationContext();\n if (!name) {\n /* FIXME\n this BR is added to occupy the space that will be added when the \n dropdown appears\n */\n return (\n
\n
\n
\n );\n }\n const filtered = list.filter(\n (p) => p.id.includes(name) || p.description.includes(name),\n );\n\n return (\n
\n \n
\n {!filtered.length ? (\n
\n \n no products found with that description\n \n
\n ) : (\n filtered.map((p) => (\n onSelect(p)}\n style={{ cursor: \"pointer\" }}\n >\n
\n
\n
\n \n
\n
\n
\n
\n

\n {p.id} {p.price}\n
\n {p.description}\n

\n
\n
\n
\n
\n ))\n )}\n
\n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { MerchantBackend, WithId } from \"../../declaration.js\";\nimport { ProductMap } from \"../../paths/instance/orders/create/CreatePage.js\";\nimport { FormErrors, FormProvider } from \"../form/FormProvider.js\";\nimport { InputNumber } from \"../form/InputNumber.js\";\nimport { InputSearchProduct } from \"../form/InputSearchProduct.js\";\n\ntype Form = {\n product: MerchantBackend.Products.ProductDetail & WithId;\n quantity: number;\n};\n\ninterface Props {\n currentProducts: ProductMap;\n onAddProduct: (\n product: MerchantBackend.Products.ProductDetail & WithId,\n quantity: number,\n ) => void;\n inventory: (MerchantBackend.Products.ProductDetail & WithId)[];\n}\n\nexport function InventoryProductForm({\n currentProducts,\n onAddProduct,\n inventory,\n}: Props): VNode {\n const initialState = { quantity: 1 };\n const [state, setState] = useState>(initialState);\n const [errors, setErrors] = useState>({});\n\n const { i18n } = useTranslationContext();\n\n const productWithInfiniteStock =\n state.product && state.product.total_stock === -1;\n\n const submit = (): void => {\n if (!state.product) {\n setErrors({\n product: i18n.str`You must enter a valid product identifier.`,\n });\n return;\n }\n if (productWithInfiniteStock) {\n onAddProduct(state.product, 1);\n } else {\n if (!state.quantity || state.quantity <= 0) {\n setErrors({ quantity: i18n.str`Quantity must be greater than 0!` });\n return;\n }\n const currentStock =\n state.product.total_stock -\n state.product.total_lost -\n state.product.total_sold;\n const p = currentProducts[state.product.id];\n if (p) {\n if (state.quantity + p.quantity > currentStock) {\n const left = currentStock - p.quantity;\n setErrors({\n quantity: i18n.str`This quantity exceeds remaining stock. Currently, only ${left} units remain unreserved in stock.`,\n });\n return;\n }\n onAddProduct(state.product, state.quantity + p.quantity);\n } else {\n if (state.quantity > currentStock) {\n const left = currentStock;\n setErrors({\n quantity: i18n.str`This quantity exceeds remaining stock. Currently, only ${left} units remain unreserved in stock.`,\n });\n return;\n }\n onAddProduct(state.product, state.quantity);\n }\n }\n\n setState(initialState);\n };\n\n return (\n errors={errors} object={state} valueHandler={setState}>\n setState((v) => ({ ...v, product: p }))}\n products={inventory}\n />\n {state.product && (\n
\n
\n {!productWithInfiniteStock && (\n \n name=\"quantity\"\n label={i18n.str`Quantity`}\n tooltip={i18n.str`how many products will be added`}\n />\n )}\n
\n
\n
\n \n
\n
\n
\n )}\n \n );\n}\n", "// ES6 Map\nvar map\ntry {\n map = Map\n} catch (_) { }\nvar set\n\n// ES6 Set\ntry {\n set = Set\n} catch (_) { }\n\nfunction baseClone (src, circulars, clones) {\n // Null/undefined/functions/etc\n if (!src || typeof src !== 'object' || typeof src === 'function') {\n return src\n }\n\n // DOM Node\n if (src.nodeType && 'cloneNode' in src) {\n return src.cloneNode(true)\n }\n\n // Date\n if (src instanceof Date) {\n return new Date(src.getTime())\n }\n\n // RegExp\n if (src instanceof RegExp) {\n return new RegExp(src)\n }\n\n // Arrays\n if (Array.isArray(src)) {\n return src.map(clone)\n }\n\n // ES6 Maps\n if (map && src instanceof map) {\n return new Map(Array.from(src.entries()))\n }\n\n // ES6 Sets\n if (set && src instanceof set) {\n return new Set(Array.from(src.values()))\n }\n\n // Object\n if (src instanceof Object) {\n circulars.push(src)\n var obj = Object.create(src)\n clones.push(obj)\n for (var key in src) {\n var idx = circulars.findIndex(function (i) {\n return i === src[key]\n })\n obj[key] = idx > -1 ? clones[idx] : baseClone(src[key], circulars, clones)\n }\n return obj\n }\n\n // ???\n return src\n}\n\nexport default function clone (src) {\n return baseClone(src, [], [])\n}\n", "const toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nexport default function printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}", "import printValue from './util/printValue';\nexport let mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n let isCast = originalValue != null && originalValue !== value;\n let msg = `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + (isCast ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.');\n\n if (value === null) {\n msg += `\\n If \"null\" is intended as an empty value be sure to mark the schema as \\`.nullable()\\``;\n }\n\n return msg;\n },\n defined: '${path} must be defined'\n};\nexport let string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nexport let number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexport let date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexport let boolean = {\n isValue: '${path} field must be ${value}'\n};\nexport let object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nexport let array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nexport default Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});", "import has from 'lodash/has';\nimport isSchema from './util/isSchema';\n\nclass Condition {\n constructor(refs, options) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!has(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = options;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n\n this.fn = function (...args) {\n let options = args.pop();\n let schema = args.pop();\n let branch = check(...args) ? then : otherwise;\n if (!branch) return undefined;\n if (typeof branch === 'function') return branch(schema);\n return schema.concat(branch.resolve(options));\n };\n }\n\n resolve(base, options) {\n let values = this.refs.map(ref => ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n\n}\n\nexport default Condition;", "const isSchema = obj => obj && obj.__isYupSchema__;\n\nexport default isSchema;", "export default function toArray(value) {\n return value == null ? [] : [].concat(value);\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport printValue from './util/printValue';\nimport toArray from './util/toArray';\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nexport default class ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = _extends({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n\n constructor(errorOrErrors, value, field, type) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n\n}", "import ValidationError from '../ValidationError';\n\nconst once = cb => {\n let fired = false;\n return (...args) => {\n if (fired) return;\n fired = true;\n cb(...args);\n };\n};\n\nexport default function runTests(options, cb) {\n let {\n endEarly,\n tests,\n args,\n value,\n errors,\n sort,\n path\n } = options;\n let callback = once(cb);\n let count = tests.length;\n const nestedErrors = [];\n errors = errors ? errors : [];\n if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value);\n\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, function finishTestRun(err) {\n if (err) {\n // always return early for non validation errors\n if (!ValidationError.isError(err)) {\n return callback(err, value);\n }\n\n if (endEarly) {\n err.value = value;\n return callback(err, value);\n }\n\n nestedErrors.push(err);\n }\n\n if (--count <= 0) {\n if (nestedErrors.length) {\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n if (errors.length) nestedErrors.push(...errors);\n errors = nestedErrors;\n }\n\n if (errors.length) {\n callback(new ValidationError(errors, value, path), value);\n return;\n }\n\n callback(null, value);\n }\n });\n }\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport mapValues from 'lodash/mapValues';\nimport ValidationError from '../ValidationError';\nimport Ref from '../Reference';\nexport default function createValidation(config) {\n function validate(_ref, cb) {\n let {\n value,\n path = '',\n label,\n options,\n originalValue,\n sync\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n\n const {\n name,\n test,\n params,\n message\n } = config;\n let {\n parent,\n context\n } = options;\n\n function resolve(item) {\n return Ref.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n\n function createError(overrides = {}) {\n const nextParams = mapValues(_extends({\n value,\n originalValue,\n label,\n path: overrides.path || path\n }, params, overrides.params), resolve);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n\n let ctx = _extends({\n path,\n parent,\n type: name,\n createError,\n resolve,\n options,\n originalValue\n }, rest);\n\n if (!sync) {\n try {\n Promise.resolve(test.call(ctx, value, ctx)).then(validOrError => {\n if (ValidationError.isError(validOrError)) cb(validOrError);else if (!validOrError) cb(createError());else cb(null, validOrError);\n }).catch(cb);\n } catch (err) {\n cb(err);\n }\n\n return;\n }\n\n let result;\n\n try {\n var _ref2;\n\n result = test.call(ctx, value, ctx);\n\n if (typeof ((_ref2 = result) == null ? void 0 : _ref2.then) === 'function') {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n } catch (err) {\n cb(err);\n return;\n }\n\n if (ValidationError.isError(result)) cb(result);else if (!result) cb(createError());else cb(null, result);\n }\n\n validate.OPTIONS = config;\n return validate;\n}", "import { getter } from 'property-expr';\nconst prefixes = {\n context: '$',\n value: '.'\n};\nexport function create(key, options) {\n return new Reference(key, options);\n}\nexport default class Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n\n\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n\n resolve() {\n return this;\n }\n\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n\n toString() {\n return `Ref(${this.key})`;\n }\n\n static isRef(value) {\n return value && value.__isYupRef;\n }\n\n} // @ts-ignore\n\nReference.prototype.__isYupRef = true;", "import { forEach } from 'property-expr';\n\nlet trim = part => part.substr(0, part.length - 1).substr(1);\n\nexport function getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug; // root path: ''\n\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? trim(_part) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n\n if (schema.innerType) {\n let idx = isArray ? parseInt(part, 10) : 0;\n\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n\n parent = value;\n value = value && value[idx];\n schema = schema.innerType;\n } // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n\n\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema._type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\n\nconst reach = (obj, path, value, context) => getIn(obj, path, value, context).schema;\n\nexport default reach;", "import Reference from '../Reference';\nexport default class ReferenceSet {\n constructor() {\n this.list = void 0;\n this.refs = void 0;\n this.list = new Set();\n this.refs = new Map();\n }\n\n get size() {\n return this.list.size + this.refs.size;\n }\n\n describe() {\n const description = [];\n\n for (const item of this.list) description.push(item);\n\n for (const [, ref] of this.refs) description.push(ref.describe());\n\n return description;\n }\n\n toArray() {\n return Array.from(this.list).concat(Array.from(this.refs.values()));\n }\n\n resolveAll(resolve) {\n return this.toArray().reduce((acc, e) => acc.concat(Reference.isRef(e) ? resolve(e) : e), []);\n }\n\n add(value) {\n Reference.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n }\n\n delete(value) {\n Reference.isRef(value) ? this.refs.delete(value.key) : this.list.delete(value);\n }\n\n clone() {\n const next = new ReferenceSet();\n next.list = new Set(this.list);\n next.refs = new Map(this.refs);\n return next;\n }\n\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.list.forEach(value => next.add(value));\n newItems.refs.forEach(value => next.add(value));\n removeItems.list.forEach(value => next.delete(value));\n removeItems.refs.forEach(value => next.delete(value));\n return next;\n }\n\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n// @ts-ignore\nimport cloneDeep from 'nanoclone';\nimport { mixed as locale } from './locale';\nimport Condition from './Condition';\nimport runTests from './util/runTests';\nimport createValidation from './util/createValidation';\nimport printValue from './util/printValue';\nimport Ref from './Reference';\nimport { getIn } from './util/reach';\nimport ValidationError from './ValidationError';\nimport ReferenceSet from './util/ReferenceSet';\nimport toArray from './util/toArray'; // const UNSET = 'unset' as const;\n\nexport default class BaseSchema {\n constructor(options) {\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this._typeError = void 0;\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(locale.notType);\n });\n this.type = (options == null ? void 0 : options.type) || 'mixed';\n this.spec = _extends({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n presence: 'optional'\n }, options == null ? void 0 : options.spec);\n } // TODO: remove\n\n\n get _type() {\n return this.type;\n }\n\n _typeCheck(_value) {\n return true;\n }\n\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n } // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n\n const next = Object.create(Object.getPrototypeOf(this)); // @ts-expect-error this is readonly\n\n next.type = this.type;\n next._typeError = this._typeError;\n next._whitelistError = this._whitelistError;\n next._blacklistError = this._blacklistError;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.exclusiveTests = _extends({}, this.exclusiveTests); // @ts-expect-error this is readonly\n\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = cloneDeep(_extends({}, this.spec, spec));\n return next;\n }\n\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n } // withContext(): BaseSchema<\n // TCast,\n // TContext,\n // TOutput\n // > {\n // return this as any;\n // }\n\n\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n\n const mergedSpec = _extends({}, base.spec, combined.spec); // if (combined.spec.nullable === UNSET)\n // mergedSpec.nullable = base.spec.nullable;\n // if (combined.spec.presence === UNSET)\n // mergedSpec.presence = base.spec.presence;\n\n\n combined.spec = mergedSpec;\n combined._typeError || (combined._typeError = base._typeError);\n combined._whitelistError || (combined._whitelistError = base._whitelistError);\n combined._blacklistError || (combined._blacklistError = base._blacklistError); // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist); // start with the current tests\n\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n\n isType(v) {\n if (this.spec.nullable && v === null) return true;\n return this._typeCheck(v);\n }\n\n resolve(options) {\n let schema = this;\n\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((schema, condition) => condition.resolve(schema, options), schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {*=} options.parent\n * @param {*=} options.context\n */\n\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(_extends({\n value\n }, options));\n\n let result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema._type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n\n return result;\n }\n\n _cast(rawValue, _options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((value, fn) => fn.call(this, value, rawValue, this), rawValue);\n\n if (value === undefined) {\n value = this.getDefault();\n }\n\n return value;\n }\n\n _validate(_value, options = {}, cb) {\n let {\n sync,\n path,\n from = [],\n originalValue = _value,\n strict = this.spec.strict,\n abortEarly = this.spec.abortEarly\n } = options;\n let value = _value;\n\n if (!strict) {\n // this._validating = true;\n value = this._cast(value, _extends({\n assert: false\n }, options)); // this._validating = false;\n } // value is cast, we can check if it meets type requirements\n\n\n let args = {\n value,\n path,\n options,\n originalValue,\n schema: this,\n label: this.spec.label,\n sync,\n from\n };\n let initialTests = [];\n if (this._typeError) initialTests.push(this._typeError);\n let finalTests = [];\n if (this._whitelistError) finalTests.push(this._whitelistError);\n if (this._blacklistError) finalTests.push(this._blacklistError);\n runTests({\n args,\n value,\n path,\n sync,\n tests: initialTests,\n endEarly: abortEarly\n }, err => {\n if (err) return void cb(err, value);\n runTests({\n tests: this.tests.concat(finalTests),\n args,\n path,\n sync,\n value,\n endEarly: abortEarly\n }, cb);\n });\n }\n\n validate(value, options, maybeCb) {\n let schema = this.resolve(_extends({}, options, {\n value\n })); // callback case is for nested validations\n\n return typeof maybeCb === 'function' ? schema._validate(value, options, maybeCb) : new Promise((resolve, reject) => schema._validate(value, options, (err, value) => {\n if (err) reject(err);else resolve(value);\n }));\n }\n\n validateSync(value, options) {\n let schema = this.resolve(_extends({}, options, {\n value\n }));\n let result;\n\n schema._validate(value, _extends({}, options, {\n sync: true\n }), (err, value) => {\n if (err) throw err;\n result = value;\n });\n\n return result;\n }\n\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n\n _getDefault() {\n let defaultValue = this.spec.default;\n\n if (defaultValue == null) {\n return defaultValue;\n }\n\n return typeof defaultValue === 'function' ? defaultValue.call(this) : cloneDeep(defaultValue);\n }\n\n getDefault(options) {\n let schema = this.resolve(options || {});\n return schema._getDefault();\n }\n\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n\n let next = this.clone({\n default: def\n });\n return next;\n }\n\n strict(isStrict = true) {\n let next = this.clone();\n next.spec.strict = isStrict;\n return next;\n }\n\n _isPresent(value) {\n return value != null;\n }\n\n defined(message = locale.defined) {\n return this.test({\n message,\n name: 'defined',\n exclusive: true,\n\n test(value) {\n return value !== undefined;\n }\n\n });\n }\n\n required(message = locale.required) {\n return this.clone({\n presence: 'required'\n }).withMutation(s => s.test({\n message,\n name: 'required',\n exclusive: true,\n\n test(value) {\n return this.schema._isPresent(value);\n }\n\n }));\n }\n\n notRequired() {\n let next = this.clone({\n presence: 'optional'\n });\n next.tests = next.tests.filter(test => test.OPTIONS.name !== 'required');\n return next;\n }\n\n nullable(isNullable = true) {\n let next = this.clone({\n nullable: isNullable !== false\n });\n return next;\n }\n\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n\n test(...args) {\n let opts;\n\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n\n if (opts.message === undefined) opts.message = locale.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n\n let next = this.clone();\n let deps = toArray(keys).map(key => new Ref(key));\n deps.forEach(dep => {\n // @ts-ignore\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(new Condition(deps, options));\n return next;\n }\n\n typeError(message) {\n let next = this.clone();\n next._typeError = createValidation({\n message,\n name: 'typeError',\n\n test(value) {\n if (value !== undefined && !this.schema.isType(value)) return this.createError({\n params: {\n type: this.schema._type\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n oneOf(enums, message = locale.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n\n next._blacklist.delete(val);\n });\n next._whitelistError = createValidation({\n message,\n name: 'oneOf',\n\n test(value) {\n if (value === undefined) return true;\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: valids.toArray().join(', '),\n resolved\n }\n });\n }\n\n });\n return next;\n }\n\n notOneOf(enums, message = locale.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n\n next._whitelist.delete(val);\n });\n next._blacklistError = createValidation({\n message,\n name: 'notOneOf',\n\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: invalids.toArray().join(', '),\n resolved\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n describe() {\n const next = this.clone();\n const {\n label,\n meta\n } = next.spec;\n const description = {\n meta,\n label,\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n\n} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n// @ts-expect-error\nBaseSchema.prototype.__isYupSchema__ = true;\n\nfor (const method of ['validate', 'validateSync']) BaseSchema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], _extends({}, options, {\n parent,\n path\n }));\n};\n\nfor (const alias of ['equals', 'is']) BaseSchema.prototype[alias] = BaseSchema.prototype.oneOf;\n\nfor (const alias of ['not', 'nope']) BaseSchema.prototype[alias] = BaseSchema.prototype.notOneOf;\n\nBaseSchema.prototype.optional = BaseSchema.prototype.notRequired;", "import BaseSchema from './schema';\nconst Mixed = BaseSchema;\nexport default Mixed;\nexport function create() {\n return new Mixed();\n} // XXX: this is using the Base schema so that `addMethod(mixed)` works as a base class\n\ncreate.prototype = Mixed.prototype;", "const isAbsent = value => value == null;\n\nexport default isAbsent;", "import BaseSchema from './schema';\nimport { boolean as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nexport function create() {\n return new BooleanSchema();\n}\nexport default class BooleanSchema extends BaseSchema {\n constructor() {\n super({\n type: 'boolean'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n\n return value;\n });\n });\n }\n\n _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n\n isTrue(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n\n test(value) {\n return isAbsent(value) || value === true;\n }\n\n });\n }\n\n isFalse(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n\n test(value) {\n return isAbsent(value) || value === false;\n }\n\n });\n }\n\n}\ncreate.prototype = BooleanSchema.prototype;", "import { string as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema'; // eslint-disable-next-line\n\nlet rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nlet rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i; // eslint-disable-next-line\n\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\n\nlet objStringTag = {}.toString();\nexport function create() {\n return new StringSchema();\n}\nexport default class StringSchema extends BaseSchema {\n constructor() {\n super({\n type: 'string'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n\n _isPresent(value) {\n return super._isPresent(value) && !!value.length;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n\n return this.test({\n name: name || 'matches',\n message: message || locale.matches,\n params: {\n regex\n },\n test: value => isAbsent(value) || value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n\n email(message = locale.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n\n url(message = locale.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n\n uuid(message = locale.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n } //-- transforms --\n\n\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n\n trim(message = locale.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n\n lowercase(message = locale.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n\n uppercase(message = locale.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n\n}\ncreate.prototype = StringSchema.prototype; //\n// String Interfaces\n//", "import { number as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema';\n\nlet isNaN = value => value != +value;\n\nexport function create() {\n return new NumberSchema();\n}\nexport default class NumberSchema extends BaseSchema {\n constructor() {\n super({\n type: 'number'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n let parsed = value;\n\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n parsed = +parsed;\n }\n\n if (this.isType(parsed)) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(max);\n }\n\n });\n }\n\n lessThan(less, message = locale.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n\n test(value) {\n return isAbsent(value) || value < this.resolve(less);\n }\n\n });\n }\n\n moreThan(more, message = locale.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n\n test(value) {\n return isAbsent(value) || value > this.resolve(more);\n }\n\n });\n }\n\n positive(msg = locale.positive) {\n return this.moreThan(0, msg);\n }\n\n negative(msg = locale.negative) {\n return this.lessThan(0, msg);\n }\n\n integer(message = locale.integer) {\n return this.test({\n name: 'integer',\n message,\n test: val => isAbsent(val) || Number.isInteger(val)\n });\n }\n\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n\n round(method) {\n var _method;\n\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round'; // this exists for symemtry with the new Math.trunc\n\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n\n}\ncreate.prototype = NumberSchema.prototype; //\n// Number Interfaces\n//", "/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * \u00A9 2011 Colin Snover \n * Released under MIT license.\n */\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 \u00B1 10 tzHH 11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nexport default function parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by \u201Cundefined\u201D values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0; // allow undefined days and months\n\n\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n return timestamp;\n}", "// @ts-ignore\nimport isoParse from './util/isodate';\nimport { date as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport Ref from './Reference';\nimport BaseSchema from './schema';\nlet invalidDate = new Date('');\n\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\n\nexport function create() {\n return new DateSchema();\n}\nexport default class DateSchema extends BaseSchema {\n constructor() {\n super({\n type: 'date'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n value = isoParse(value); // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n\n return !isNaN(value) ? new Date(value) : invalidDate;\n });\n });\n }\n\n _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n\n prepareParam(ref, name) {\n let param;\n\n if (!Ref.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n\n return param;\n }\n\n min(min, message = locale.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(limit);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(limit);\n }\n\n });\n }\n\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate.prototype = DateSchema.prototype;\ncreate.INVALID_DATE = invalidDate;", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport has from 'lodash/has';\nimport snakeCase from 'lodash/snakeCase';\nimport camelCase from 'lodash/camelCase';\nimport mapKeys from 'lodash/mapKeys';\nimport mapValues from 'lodash/mapValues';\nimport { getter } from 'property-expr';\nimport { object as locale } from './locale';\nimport sortFields from './util/sortFields';\nimport sortByKeyOrder from './util/sortByKeyOrder';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\n\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\n\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\n\nconst defaultSort = sortByKeyOrder([]);\nexport default class ObjectSchema extends BaseSchema {\n constructor(spec) {\n super({\n type: 'object'\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n this.transform(function coerce(value) {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch (err) {\n value = null;\n }\n }\n\n if (this.isType(value)) return value;\n return null;\n });\n\n if (spec) {\n this.shape(spec);\n }\n });\n }\n\n _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n }\n\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n\n let value = super._cast(_value, options); //should ignore nulls here\n\n\n if (value === undefined) return this.getDefault();\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n\n let props = this._nodes.concat(Object.keys(value).filter(v => this._nodes.indexOf(v) === -1));\n\n let intermediateValue = {}; // is filled during the transform below\n\n let innerOptions = _extends({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n\n let isChanged = false;\n\n for (const prop of props) {\n let field = fields[prop];\n let exists = has(value, prop);\n\n if (field) {\n let fieldValue;\n let inputValue = value[prop]; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop; // innerOptions.value = value[prop];\n\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = 'spec' in field ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n\n if (fieldSpec == null ? void 0 : fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n\n fieldValue = !options.__validating || !strict ? // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n\n if (intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n\n return isChanged ? intermediateValue : value;\n }\n\n _validate(_value, opts = {}, callback) {\n let errors = [];\n let {\n sync,\n from = [],\n originalValue = _value,\n abortEarly = this.spec.abortEarly,\n recursive = this.spec.recursive\n } = opts;\n from = [{\n schema: this,\n value: originalValue\n }, ...from]; // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n\n opts.__validating = true;\n opts.originalValue = originalValue;\n opts.from = from;\n\n super._validate(_value, opts, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || abortEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !isObject(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value;\n\n let tests = this._nodes.map(key => (_, cb) => {\n let path = key.indexOf('.') === -1 ? (opts.path ? `${opts.path}.` : '') + key : `${opts.path || ''}[\"${key}\"]`;\n let field = this.fields[key];\n\n if (field && 'validate' in field) {\n field.validate(value[key], _extends({}, opts, {\n // @ts-ignore\n path,\n from,\n // inner fields are always strict:\n // 1. this isn't strict so the casting will also have cast inner values\n // 2. this is strict in which case the nested values weren't cast either\n strict: true,\n parent: value,\n originalValue: originalValue[key]\n }), cb);\n return;\n }\n\n cb(null);\n });\n\n runTests({\n sync,\n tests,\n value,\n errors,\n endEarly: abortEarly,\n sort: this._sortErrors,\n path: opts.path\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.fields = _extends({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n\n if (target === undefined) {\n nextFields[field] = schemaOrRef;\n } else if (target instanceof BaseSchema && schemaOrRef instanceof BaseSchema) {\n nextFields[field] = schemaOrRef.concat(target);\n }\n }\n\n return next.withMutation(() => next.shape(nextFields, this._excludedEdges));\n }\n\n getDefaultFromShape() {\n let dft = {};\n\n this._nodes.forEach(key => {\n const field = this.fields[key];\n dft[key] = 'default' in field ? field.getDefault() : undefined;\n });\n\n return dft;\n }\n\n _getDefault() {\n if ('default' in this.spec) {\n return super._getDefault();\n } // if there is no default set invent one\n\n\n if (!this._nodes.length) {\n return undefined;\n }\n\n return this.getDefaultFromShape();\n }\n\n shape(additions, excludes = []) {\n let next = this.clone();\n let fields = Object.assign(next.fields, additions);\n next.fields = fields;\n next._sortErrors = sortByKeyOrder(Object.keys(fields));\n\n if (excludes.length) {\n // this is a convenience for when users only supply a single pair\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n next._excludedEdges = [...next._excludedEdges, ...excludes];\n }\n\n next._nodes = sortFields(fields, next._excludedEdges);\n return next;\n }\n\n pick(keys) {\n const picked = {};\n\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n\n return this.clone().withMutation(next => {\n next.fields = {};\n return next.shape(picked);\n });\n }\n\n omit(keys) {\n const next = this.clone();\n const fields = next.fields;\n next.fields = {};\n\n for (const key of keys) {\n delete fields[key];\n }\n\n return next.withMutation(() => next.shape(fields));\n }\n\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (obj == null) return obj;\n let newObj = obj;\n\n if (has(obj, from)) {\n newObj = _extends({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n }\n\n noUnknown(noAllow = true, message = locale.noUnknown) {\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n\n unknown(allow = true, message = locale.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n\n transformKeys(fn) {\n return this.transform(obj => obj && mapKeys(obj, (_, key) => fn(key)));\n }\n\n camelCase() {\n return this.transformKeys(camelCase);\n }\n\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n\n describe() {\n let base = super.describe();\n base.fields = mapValues(this.fields, value => value.describe());\n return base;\n }\n\n}\nexport function create(spec) {\n return new ObjectSchema(spec);\n}\ncreate.prototype = ObjectSchema.prototype;", "import has from 'lodash/has'; // @ts-expect-error\n\nimport toposort from 'toposort';\nimport { split } from 'property-expr';\nimport Ref from '../Reference';\nimport isSchema from './isSchema';\nexport default function sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n\n for (const key in fields) if (has(fields, key)) {\n let value = fields[key];\n nodes.add(key);\n if (Ref.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n\n return toposort.array(Array.from(nodes), edges).reverse();\n}", "function findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n\n if (((_err$path = err.path) == null ? void 0 : _err$path.indexOf(key)) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nexport default function sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport isAbsent from './util/isAbsent';\nimport isSchema from './util/isSchema';\nimport printValue from './util/printValue';\nimport { array as locale } from './locale';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\nexport function create(type) {\n return new ArraySchema(type);\n}\nexport default class ArraySchema extends BaseSchema {\n constructor(type) {\n super({\n type: 'array'\n }); // `undefined` specifically means uninitialized, as opposed to\n // \"no subtype\"\n\n this.innerType = void 0;\n this.innerType = type;\n this.withMutation(() => {\n this.transform(function (values) {\n if (typeof values === 'string') try {\n values = JSON.parse(values);\n } catch (err) {\n values = null;\n }\n return this.isType(values) ? values : null;\n });\n });\n }\n\n _typeCheck(v) {\n return Array.isArray(v);\n }\n\n get _subType() {\n return this.innerType;\n }\n\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts); //should ignore nulls here\n\n\n if (!this._typeCheck(value) || !this.innerType) return value;\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, _extends({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n\n if (castElement !== v) {\n isChanged = true;\n }\n\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n\n _validate(_value, options = {}, callback) {\n var _options$abortEarly, _options$recursive;\n\n let errors = [];\n let sync = options.sync;\n let path = options.path;\n let innerType = this.innerType;\n let endEarly = (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n let originalValue = options.originalValue != null ? options.originalValue : _value;\n\n super._validate(_value, options, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || endEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !innerType || !this._typeCheck(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value; // #950 Ensure that sparse array empty slots are validated\n\n let tests = new Array(value.length);\n\n for (let idx = 0; idx < value.length; idx++) {\n let item = value[idx];\n let path = `${options.path || ''}[${idx}]`; // object._validate note for isStrict explanation\n\n let innerOptions = _extends({}, options, {\n path,\n strict: true,\n parent: value,\n index: idx,\n originalValue: originalValue[idx]\n });\n\n tests[idx] = (_, cb) => innerType.validate(item, innerOptions, cb);\n }\n\n runTests({\n sync,\n path,\n value,\n errors,\n endEarly,\n tests\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.innerType = this.innerType;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n next.innerType = this.innerType;\n if (schema.innerType) next.innerType = next.innerType ? // @ts-expect-error Lazy doesn't have concat()\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema)); // FIXME(ts):\n\n next.innerType = schema;\n return next;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message) {\n message = message || locale.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n // FIXME(ts): Array\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message) {\n message = message || locale.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n\n describe() {\n let base = super.describe();\n if (this.innerType) base.innerType = this.innerType.describe();\n return base;\n }\n\n nullable(isNullable = true) {\n return super.nullable(isNullable);\n }\n\n defined() {\n return super.defined();\n }\n\n required(msg) {\n return super.required(msg);\n }\n\n}\ncreate.prototype = ArraySchema.prototype; //\n// Interfaces\n//", "import locale from './locale';\nexport default function setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useState } from \"preact/hooks\";\n\n/**\n * This component is used when a component wants one child to have a trigger for\n * an action (a button) and other child have the action implemented (like\n * gathering information with a form). The difference with other approaches is\n * that in this case the parent component is not holding the state.\n *\n * It will return a subscriber and activator.\n *\n * The activator may be undefined, if it is undefined it is indicating that the\n * subscriber is not ready to be called.\n *\n * The subscriber will receive a function (the listener) that will be call when the\n * activator runs. The listener must return the collected information.\n *\n * As a result, when the activator is triggered by a child component, the\n * @action function is called receives the information from the listener defined by other\n * child component\n *\n * @param action from to \n * @returns activator and subscriber, undefined activator means that there is not subscriber\n */\n\nexport function useListener(\n action: (r: T) => Promise,\n): [undefined | (() => Promise), (listener?: () => T) => void] {\n type RunnerHandler = { toBeRan?: () => Promise };\n const [state, setState] = useState({});\n\n /**\n * subscriber will receive a method that will be call when the activator runs\n *\n * @param listener function to be run when the activator runs\n */\n const subscriber = (listener?: () => T) => {\n if (listener) {\n setState({\n toBeRan: () => {\n const whatWeGetFromTheListener = listener();\n return action(whatWeGetFromTheListener);\n },\n });\n } else {\n setState({\n toBeRan: undefined,\n });\n }\n };\n\n /**\n * activator will call runner if there is someone subscribed\n */\n const activator = state.toBeRan\n ? async () => {\n if (state.toBeRan) {\n return state.toBeRan();\n }\n return Promise.reject();\n }\n : undefined;\n\n return [activator, subscriber];\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { isAfter, isFuture } from \"date-fns\";\nimport * as yup from \"yup\";\nimport { AMOUNT_REGEX, PAYTO_REGEX } from \"../utils/constants.js\";\n\nyup.setLocale({\n mixed: {\n default: \"field_invalid\",\n },\n number: {\n min: ({ min }: any) => ({ key: \"field_too_short\", values: { min } }),\n max: ({ max }: any) => ({ key: \"field_too_big\", values: { max } }),\n },\n});\n\nfunction listOfPayToUrisAreValid(values?: (string | undefined)[]): boolean {\n return !!values && values.every((v) => v && PAYTO_REGEX.test(v));\n}\n\nfunction currencyWithAmountIsValid(value?: string): boolean {\n return !!value && AMOUNT_REGEX.test(value);\n}\nfunction currencyGreaterThan0(value?: string) {\n if (value) {\n try {\n const [, amount] = value.split(\":\");\n const intAmount = parseInt(amount, 10);\n return intAmount > 0;\n } catch {\n return false;\n }\n }\n return true;\n}\n\nexport const InstanceSchema = yup.object().shape({\n id: yup.string().required().meta({ type: \"url\" }),\n name: yup.string().required(),\n auth: yup.object().shape({\n method: yup.string().matches(/^(external|token)$/),\n token: yup.string().optional().nullable(),\n }),\n payto_uris: yup\n .array()\n .of(yup.string())\n .min(1)\n .meta({ type: \"array\" })\n .test(\"payto\", \"{path} is not valid\", listOfPayToUrisAreValid),\n default_max_deposit_fee: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid)\n .meta({ type: \"amount\" }),\n default_max_wire_fee: yup\n .string()\n .required()\n .test(\"amount\", \"{path} is not valid\", currencyWithAmountIsValid)\n .meta({ type: \"amount\" }),\n default_wire_fee_amortization: yup.number().required(),\n address: yup\n .object()\n .shape({\n country: yup.string().optional(),\n address_lines: yup.array().of(yup.string()).max(7).optional(),\n building_number: yup.string().optional(),\n building_name: yup.string().optional(),\n street: yup.string().optional(),\n post_code: yup.string().optional(),\n town_location: yup.string().optional(),\n town: yup.string(),\n district: yup.string().optional(),\n country_subdivision: yup.string().optional(),\n })\n .meta({ type: \"group\" }),\n jurisdiction: yup\n .object()\n .shape({\n country: yup.string().optional(),\n address_lines: yup.array().of(yup.string()).max(7).optional(),\n building_number: yup.string().optional(),\n building_name: yup.string().optional(),\n street: yup.string().optional(),\n post_code: yup.string().optional(),\n town_location: yup.string().optional(),\n town: yup.string(),\n district: yup.string().optional(),\n country_subdivision: yup.string().optional(),\n })\n .meta({ type: \"group\" }),\n // default_pay_delay: yup.object()\n // .shape({ d_us: yup.number() })\n // .required()\n // .meta({ type: 'duration' }),\n // .transform(numberToDuration),\n default_wire_transfer_delay: yup\n .object()\n .shape({ d_us: yup.number() })\n .required()\n .meta({ type: \"duration\" }),\n // .transform(numberToDuration),\n});\n\nexport const InstanceUpdateSchema = InstanceSchema.clone().omit([\"id\"]);\nexport const InstanceCreateSchema = InstanceSchema.clone();\n\nexport const AuthorizeTipSchema = yup.object().shape({\n justification: yup.string().required(),\n amount: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid)\n .test(\"amount_positive\", \"the amount is not valid\", currencyGreaterThan0),\n next_url: yup.string().required(),\n});\n\nconst stringIsValidJSON = (value?: string) => {\n const p = value?.trim();\n if (!p) return true;\n try {\n JSON.parse(p);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const OrderCreateSchema = yup.object().shape({\n pricing: yup\n .object()\n .required()\n .shape({\n summary: yup.string().ensure().required(),\n order_price: yup\n .string()\n .ensure()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid)\n .test(\n \"amount_positive\",\n \"the amount should be greater than 0\",\n currencyGreaterThan0,\n ),\n }),\n extra: yup.string().test(\"extra\", \"is not a JSON format\", stringIsValidJSON),\n payments: yup\n .object()\n .required()\n .shape({\n refund_deadline: yup\n .date()\n .test(\"future\", \"should be in the future\", (d) =>\n d ? isFuture(d) : true,\n ),\n pay_deadline: yup\n .date()\n .test(\"future\", \"should be in the future\", (d) =>\n d ? isFuture(d) : true,\n ),\n auto_refund_deadline: yup\n .date()\n .test(\"future\", \"should be in the future\", (d) =>\n d ? isFuture(d) : true,\n ),\n delivery_date: yup\n .date()\n .test(\"future\", \"should be in the future\", (d) =>\n d ? isFuture(d) : true,\n ),\n })\n .test(\"payment\", \"dates\", (d) => {\n if (\n d.pay_deadline &&\n d.refund_deadline &&\n isAfter(d.refund_deadline, d.pay_deadline)\n ) {\n return new yup.ValidationError(\n \"pay deadline should be greater than refund\",\n \"asd\",\n \"payments.pay_deadline\",\n );\n }\n return true;\n }),\n});\n\nexport const ProductCreateSchema = yup.object().shape({\n product_id: yup.string().ensure().required(),\n description: yup.string().required(),\n unit: yup.string().ensure().required(),\n price: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid),\n stock: yup.object({}).optional(),\n minimum_age: yup.number().optional().min(0),\n});\n\nexport const ProductUpdateSchema = yup.object().shape({\n description: yup.string().required(),\n price: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid),\n stock: yup.object({}).optional(),\n minimum_age: yup.number().optional().min(0),\n});\n\nexport const TaxSchema = yup.object().shape({\n name: yup.string().required().ensure(),\n tax: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid),\n});\n\nexport const NonInventoryProductSchema = yup.object().shape({\n quantity: yup.number().required().positive(),\n description: yup.string().required(),\n unit: yup.string().ensure().required(),\n price: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid),\n});\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useCallback, useState } from \"preact/hooks\";\nimport * as yup from \"yup\";\nimport { MerchantBackend } from \"../../declaration.js\";\nimport { TaxSchema as schema } from \"../../schemas/index.js\";\nimport { FormErrors, FormProvider } from \"./FormProvider.js\";\nimport { Input } from \"./Input.js\";\nimport { InputGroup } from \"./InputGroup.js\";\nimport { InputProps, useField } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n isValid?: (e: any) => boolean;\n}\n\ntype Entity = MerchantBackend.Tax;\nexport function InputTaxes({\n name,\n readonly,\n label,\n}: Props): VNode {\n const { value: taxes, onChange } = useField(name);\n\n const [value, valueHandler] = useState>({});\n // const [errors, setErrors] = useState>({})\n\n let errors: FormErrors = {};\n\n try {\n schema.validateSync(value, { abortEarly: false });\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n const yupErrors = err.inner as yup.ValidationError[];\n errors = yupErrors.reduce(\n (prev, cur) =>\n !cur.path ? prev : { ...prev, [cur.path]: cur.message },\n {},\n );\n }\n }\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = useCallback((): void => {\n onChange([value as any, ...taxes] as any);\n valueHandler({});\n }, [value]);\n\n const { i18n } = useTranslationContext();\n\n //FIXME: translating plural singular\n return (\n 0 && (\n

This product has {taxes.length} applicable taxes configured.

\n )\n }\n >\n \n name=\"tax\"\n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n
\n
\n
\n {taxes.map((v: any, i: number) => (\n \n \n {v.tax}: {v.name}\n \n {\n onChange(taxes.filter((f: any) => f !== v) as any);\n valueHandler(v);\n }}\n />\n
\n ))}\n {!taxes.length && i18n.str`No taxes configured for this product.`}\n
\n
\n\n \n name=\"tax\"\n label={i18n.str`Amount`}\n tooltip={i18n.str`Taxes can be in currencies that differ from the main currency used by the merchant.`}\n >\n \n Enter currency and value separated with a colon, e.g.\n "USD:2.3".\n \n \n\n \n name=\"name\"\n label={i18n.str`Description`}\n tooltip={i18n.str`Legal name of the tax, e.g. VAT or import duties.`}\n />\n\n
\n \n Add\n \n
\n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useCallback, useEffect, useState } from \"preact/hooks\";\nimport * as yup from \"yup\";\nimport { MerchantBackend } from \"../../declaration.js\";\nimport { useListener } from \"../../hooks/listener.js\";\nimport { NonInventoryProductSchema as schema } from \"../../schemas/index.js\";\nimport { FormErrors, FormProvider } from \"../form/FormProvider.js\";\nimport { Input } from \"../form/Input.js\";\nimport { InputCurrency } from \"../form/InputCurrency.js\";\nimport { InputImage } from \"../form/InputImage.js\";\nimport { InputNumber } from \"../form/InputNumber.js\";\nimport { InputTaxes } from \"../form/InputTaxes.js\";\n\ntype Entity = MerchantBackend.Product;\n\ninterface Props {\n onAddProduct: (p: Entity) => Promise;\n productToEdit?: Entity;\n}\nexport function NonInventoryProductFrom({\n productToEdit,\n onAddProduct,\n}: Props): VNode {\n const [showCreateProduct, setShowCreateProduct] = useState(false);\n\n const isEditing = !!productToEdit;\n\n useEffect(() => {\n setShowCreateProduct(isEditing);\n }, [isEditing]);\n\n const [submitForm, addFormSubmitter] = useListener<\n Partial | undefined\n >((result) => {\n if (result) {\n setShowCreateProduct(false);\n return onAddProduct({\n quantity: result.quantity || 0,\n taxes: result.taxes || [],\n description: result.description || \"\",\n image: result.image || \"\",\n price: result.price || \"\",\n unit: result.unit || \"\",\n });\n }\n return Promise.resolve();\n });\n\n const { i18n } = useTranslationContext();\n\n return (\n \n
\n setShowCreateProduct(true)}\n >\n Add custom product\n \n
\n {showCreateProduct && (\n
\n setShowCreateProduct(false)}\n />\n
\n
\n

{i18n.str`Complete information of the product`}

\n setShowCreateProduct(false)}\n />\n
\n
\n \n
\n
\n
\n setShowCreateProduct(false)}\n >\n Cancel\n \n \n Confirm\n \n
\n
\n
\n setShowCreateProduct(false)}\n />\n
\n )}\n
\n );\n}\n\ninterface ProductProps {\n onSubscribe: (c?: () => Entity | undefined) => void;\n initial?: Partial;\n}\n\ninterface NonInventoryProduct {\n quantity: number;\n description: string;\n unit: string;\n price: string;\n image: string;\n taxes: MerchantBackend.Tax[];\n}\n\nexport function ProductForm({ onSubscribe, initial }: ProductProps): VNode {\n const [value, valueHandler] = useState>({\n taxes: [],\n ...initial,\n });\n let errors: FormErrors = {};\n try {\n schema.validateSync(value, { abortEarly: false });\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n const yupErrors = err.inner as yup.ValidationError[];\n errors = yupErrors.reduce(\n (prev, cur) =>\n !cur.path ? prev : { ...prev, [cur.path]: cur.message },\n {},\n );\n }\n }\n\n const submit = useCallback((): Entity | undefined => {\n return value as MerchantBackend.Product;\n }, [value]);\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n useEffect(() => {\n onSubscribe(hasErrors ? undefined : submit);\n }, [submit, hasErrors]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
\n \n name=\"product\"\n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n \n name=\"image\"\n label={i18n.str`Image`}\n tooltip={i18n.str`photo of the product`}\n />\n \n name=\"description\"\n inputType=\"multiline\"\n label={i18n.str`Description`}\n tooltip={i18n.str`full product description`}\n />\n \n name=\"unit\"\n label={i18n.str`Unit`}\n tooltip={i18n.str`name of the product unit`}\n />\n \n name=\"price\"\n label={i18n.str`Price`}\n tooltip={i18n.str`amount in the current currency`}\n />\n\n \n name=\"quantity\"\n label={i18n.str`Quantity`}\n tooltip={i18n.str`how many products will be added`}\n />\n\n name=\"taxes\" label={i18n.str`Taxes`} />\n \n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { h, VNode } from \"preact\";\nimport emptyImage from \"../../assets/empty.png\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { MerchantBackend } from \"../../declaration.js\";\n\ninterface Props {\n list: MerchantBackend.Product[];\n actions?: {\n name: string;\n tooltip: string;\n handler: (d: MerchantBackend.Product, index: number) => void;\n }[];\n}\nexport function ProductList({ list, actions = [] }: Props): VNode {\n const { i18n } = useTranslationContext();\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n {list.map((entry, index) => {\n const unitPrice = !entry.price ? \"0\" : entry.price;\n const totalPrice = !entry.price\n ? \"0\"\n : Amounts.stringify(\n Amounts.mult(\n Amounts.parseOrThrow(entry.price),\n entry.quantity,\n ).amount,\n );\n\n return (\n \n \n \n \n \n \n \n \n );\n })}\n \n
\n image\n \n description\n \n quantity\n \n unit price\n \n total price\n \n
\n \n {entry.description}\n {entry.quantity === 0\n ? \"--\"\n : `${entry.quantity} ${entry.unit}`}\n {unitPrice}{totalPrice}\n {actions.map((a, i) => {\n return (\n
\n a.handler(entry, index)}\n >\n {a.name}\n \n
\n );\n })}\n
\n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n amountFractionalBase,\n AmountJson,\n Amounts,\n} from \"@gnu-taler/taler-util\";\nimport { MerchantBackend } from \"../declaration.js\";\n\n/**\n * merge refund with the same description and a difference less than one minute\n * @param prev list of refunds that will hold the merged refunds\n * @param cur new refund to add to the list\n * @returns list with the new refund, may be merged with the last\n */\nexport function mergeRefunds(\n prev: MerchantBackend.Orders.RefundDetails[],\n cur: MerchantBackend.Orders.RefundDetails,\n): MerchantBackend.Orders.RefundDetails[] {\n let tail;\n\n if (\n prev.length === 0 || //empty list\n cur.timestamp.t_s === \"never\" || //current does not have timestamp\n (tail = prev[prev.length - 1]).timestamp.t_s === \"never\" || // last does not have timestamp\n cur.reason !== tail.reason || //different reason\n cur.pending !== tail.pending || //different pending state\n Math.abs(cur.timestamp.t_s - tail.timestamp.t_s) > 1000 * 60\n ) {\n //more than 1 minute difference\n\n //can't merge refunds, they are different or to distant in time\n prev.push(cur);\n return prev;\n }\n\n const a = Amounts.parseOrThrow(tail.amount);\n const b = Amounts.parseOrThrow(cur.amount);\n const r = Amounts.add(a, b).amount;\n\n prev[prev.length - 1] = {\n ...tail,\n amount: Amounts.stringify(r),\n };\n\n return prev;\n}\n\nexport const rate = (one: string, two: string): number => {\n const a = Amounts.parseOrThrow(one);\n const b = Amounts.parseOrThrow(two);\n const af = toFloat(a);\n const bf = toFloat(b);\n if (bf === 0) return 0;\n return af / bf;\n};\n\nfunction toFloat(amount: AmountJson): number {\n return amount.value + amount.fraction / amountFractionalBase;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { add, isAfter, isBefore, isFuture } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputBoolean } from \"../../../../components/form/InputBoolean.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDate } from \"../../../../components/form/InputDate.js\";\nimport { InputGroup } from \"../../../../components/form/InputGroup.js\";\nimport { InputLocation } from \"../../../../components/form/InputLocation.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { InventoryProductForm } from \"../../../../components/product/InventoryProductForm.js\";\nimport { NonInventoryProductFrom } from \"../../../../components/product/NonInventoryProductForm.js\";\nimport { ProductList } from \"../../../../components/product/ProductList.js\";\nimport { useConfigContext } from \"../../../../context/config.js\";\nimport { Duration, MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport { OrderCreateSchema as schema } from \"../../../../schemas/index.js\";\nimport { rate } from \"../../../../utils/amount.js\";\nimport { undefinedIfEmpty } from \"../../../../utils/table.js\";\n\ninterface Props {\n onCreate: (d: MerchantBackend.Orders.PostOrderRequest) => void;\n onBack?: () => void;\n instanceConfig: InstanceConfig;\n instanceInventory: (MerchantBackend.Products.ProductDetail & WithId)[];\n}\ninterface InstanceConfig {\n default_max_wire_fee: string;\n default_max_deposit_fee: string;\n default_wire_fee_amortization: number;\n default_pay_delay: Duration;\n}\n\nfunction with_defaults(config: InstanceConfig): Partial {\n const defaultPayDeadline =\n !config.default_pay_delay || config.default_pay_delay.d_us === \"forever\"\n ? undefined\n : add(new Date(), {\n seconds: config.default_pay_delay.d_us / (1000 * 1000),\n });\n\n return {\n inventoryProducts: {},\n products: [],\n pricing: {},\n payments: {\n max_wire_fee: config.default_max_wire_fee,\n max_fee: config.default_max_deposit_fee,\n wire_fee_amortization: config.default_wire_fee_amortization,\n pay_deadline: defaultPayDeadline,\n refund_deadline: defaultPayDeadline,\n createToken: true,\n },\n shipping: {},\n extra: \"\",\n };\n}\n\ninterface ProductAndQuantity {\n product: MerchantBackend.Products.ProductDetail & WithId;\n quantity: number;\n}\nexport interface ProductMap {\n [id: string]: ProductAndQuantity;\n}\n\ninterface Pricing {\n products_price: string;\n order_price: string;\n summary: string;\n}\ninterface Shipping {\n delivery_date?: Date;\n delivery_location?: MerchantBackend.Location;\n fullfilment_url?: string;\n}\ninterface Payments {\n refund_deadline?: Date;\n pay_deadline?: Date;\n wire_transfer_deadline?: Date;\n auto_refund_deadline?: Date;\n max_fee?: string;\n max_wire_fee?: string;\n wire_fee_amortization?: number;\n createToken: boolean;\n minimum_age?: number;\n}\ninterface Entity {\n inventoryProducts: ProductMap;\n products: MerchantBackend.Product[];\n pricing: Partial;\n payments: Partial;\n shipping: Partial;\n extra: string;\n}\n\nconst stringIsValidJSON = (value: string) => {\n try {\n JSON.parse(value.trim());\n return true;\n } catch {\n return false;\n }\n};\n\nexport function CreatePage({\n onCreate,\n onBack,\n instanceConfig,\n instanceInventory,\n}: Props): VNode {\n const [value, valueHandler] = useState(with_defaults(instanceConfig));\n const config = useConfigContext();\n const zero = Amounts.zeroOfCurrency(config.currency);\n\n const inventoryList = Object.values(value.inventoryProducts || {});\n const productList = Object.values(value.products || {});\n\n const { i18n } = useTranslationContext();\n\n const errors: FormErrors = {\n pricing: undefinedIfEmpty({\n summary: !value.pricing?.summary ? i18n.str`required` : undefined,\n order_price: !value.pricing?.order_price\n ? i18n.str`required`\n : Amounts.isZero(value.pricing.order_price)\n ? i18n.str`must be greater than 0`\n : undefined,\n }),\n extra:\n value.extra && !stringIsValidJSON(value.extra)\n ? i18n.str`not a valid json`\n : undefined,\n payments: undefinedIfEmpty({\n refund_deadline: !value.payments?.refund_deadline\n ? undefined\n : !isFuture(value.payments.refund_deadline)\n ? i18n.str`should be in the future`\n : value.payments.pay_deadline &&\n isBefore(value.payments.refund_deadline, value.payments.pay_deadline)\n ? i18n.str`refund deadline cannot be before pay deadline`\n : value.payments.wire_transfer_deadline &&\n isBefore(\n value.payments.wire_transfer_deadline,\n value.payments.refund_deadline,\n )\n ? i18n.str`wire transfer deadline cannot be before refund deadline`\n : undefined,\n pay_deadline: !value.payments?.pay_deadline\n ? undefined\n : !isFuture(value.payments.pay_deadline)\n ? i18n.str`should be in the future`\n : value.payments.wire_transfer_deadline &&\n isBefore(\n value.payments.wire_transfer_deadline,\n value.payments.pay_deadline,\n )\n ? i18n.str`wire transfer deadline cannot be before pay deadline`\n : undefined,\n auto_refund_deadline: !value.payments?.auto_refund_deadline\n ? undefined\n : !isFuture(value.payments.auto_refund_deadline)\n ? i18n.str`should be in the future`\n : !value.payments?.refund_deadline\n ? i18n.str`should have a refund deadline`\n : !isAfter(\n value.payments.refund_deadline,\n value.payments.auto_refund_deadline,\n )\n ? i18n.str`auto refund cannot be after refund deadline`\n : undefined,\n }),\n shipping: undefinedIfEmpty({\n delivery_date: !value.shipping?.delivery_date\n ? undefined\n : !isFuture(value.shipping.delivery_date)\n ? i18n.str`should be in the future`\n : undefined,\n }),\n };\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = (): void => {\n const order = schema.cast(value);\n if (!value.payments) return;\n if (!value.shipping) return;\n\n const request: MerchantBackend.Orders.PostOrderRequest = {\n order: {\n amount: order.pricing.order_price,\n summary: order.pricing.summary,\n products: productList,\n extra: value.extra,\n pay_deadline: value.payments.pay_deadline\n ? {\n t_s: Math.floor(value.payments.pay_deadline.getTime() / 1000),\n }\n : undefined,\n wire_transfer_deadline: value.payments.wire_transfer_deadline\n ? {\n t_s: Math.floor(\n value.payments.wire_transfer_deadline.getTime() / 1000,\n ),\n }\n : undefined,\n refund_deadline: value.payments.refund_deadline\n ? {\n t_s: Math.floor(value.payments.refund_deadline.getTime() / 1000),\n }\n : undefined,\n auto_refund: value.payments.auto_refund_deadline\n ? {\n d_us: Math.floor(\n value.payments.auto_refund_deadline.getTime() * 1000,\n ),\n }\n : undefined,\n wire_fee_amortization: value.payments.wire_fee_amortization as number,\n max_fee: value.payments.max_fee as string,\n max_wire_fee: value.payments.max_wire_fee as string,\n\n delivery_date: value.shipping.delivery_date\n ? { t_s: value.shipping.delivery_date.getTime() / 1000 }\n : undefined,\n delivery_location: value.shipping.delivery_location,\n fulfillment_url: value.shipping.fullfilment_url,\n minimum_age: value.payments.minimum_age,\n },\n inventory_products: inventoryList.map((p) => ({\n product_id: p.product.id,\n quantity: p.quantity,\n })),\n create_token: value.payments.createToken,\n };\n\n onCreate(request);\n };\n\n const addProductToTheInventoryList = (\n product: MerchantBackend.Products.ProductDetail & WithId,\n quantity: number,\n ) => {\n valueHandler((v) => {\n const inventoryProducts = { ...v.inventoryProducts };\n inventoryProducts[product.id] = { product, quantity };\n return { ...v, inventoryProducts };\n });\n };\n\n const removeProductFromTheInventoryList = (id: string) => {\n valueHandler((v) => {\n const inventoryProducts = { ...v.inventoryProducts };\n delete inventoryProducts[id];\n return { ...v, inventoryProducts };\n });\n };\n\n const addNewProduct = async (product: MerchantBackend.Product) => {\n return valueHandler((v) => {\n const products = v.products ? [...v.products, product] : [];\n return { ...v, products };\n });\n };\n\n const removeFromNewProduct = (index: number) => {\n valueHandler((v) => {\n const products = v.products ? [...v.products] : [];\n products.splice(index, 1);\n return { ...v, products };\n });\n };\n\n const [editingProduct, setEditingProduct] = useState<\n MerchantBackend.Product | undefined\n >(undefined);\n\n const totalPriceInventory = inventoryList.reduce((prev, cur) => {\n const p = Amounts.parseOrThrow(cur.product.price);\n return Amounts.add(prev, Amounts.mult(p, cur.quantity).amount).amount;\n }, zero);\n\n const totalPriceProducts = productList.reduce((prev, cur) => {\n if (!cur.price) return zero;\n const p = Amounts.parseOrThrow(cur.price);\n return Amounts.add(prev, Amounts.mult(p, cur.quantity).amount).amount;\n }, zero);\n\n const hasProducts = inventoryList.length > 0 || productList.length > 0;\n const totalPrice = Amounts.add(totalPriceInventory, totalPriceProducts);\n\n const totalAsString = Amounts.stringify(totalPrice.amount);\n const allProducts = productList.concat(inventoryList.map(asProduct));\n\n useEffect(() => {\n valueHandler((v) => {\n return {\n ...v,\n pricing: {\n ...v.pricing,\n products_price: hasProducts ? totalAsString : undefined,\n order_price: hasProducts ? totalAsString : undefined,\n },\n };\n });\n }, [hasProducts, totalAsString]);\n\n const discountOrRise = rate(\n value.pricing?.order_price || `${config.currency}:0`,\n totalAsString,\n );\n\n const minAgeByProducts = allProducts.reduce(\n (cur, prev) =>\n !prev.minimum_age || cur > prev.minimum_age ? cur : prev.minimum_age,\n 0,\n );\n return (\n
\n
\n
\n
\n
\n {/* // FIXME: translating plural singular */}\n 0 && (\n

\n {allProducts.length} products with a total price of{\" \"}\n {totalAsString}.\n

\n )\n }\n tooltip={i18n.str`Manage list of products in the order.`}\n >\n \n\n {\n setEditingProduct(undefined);\n return addNewProduct(p);\n }}\n />\n\n {allProducts.length > 0 && (\n {\n if (e.product_id) {\n removeProductFromTheInventoryList(e.product_id);\n } else {\n removeFromNewProduct(index);\n setEditingProduct(e);\n }\n },\n },\n ]}\n />\n )}\n \n\n \n errors={errors}\n object={value}\n valueHandler={valueHandler as any}\n >\n {hasProducts ? (\n \n \n 0 &&\n (discountOrRise < 1\n ? `discount of %${Math.round(\n (1 - discountOrRise) * 100,\n )}`\n : `rise of %${Math.round((discountOrRise - 1) * 100)}`)\n }\n tooltip={i18n.str`Amount to be paid by the customer`}\n />\n \n ) : (\n \n )}\n\n \n\n \n \n {value.shipping?.delivery_date && (\n \n \n \n )}\n \n \n\n \n \n \n \n \n\n \n \n \n \n 0\n ? i18n.str`Min age defined by the producs is ${minAgeByProducts}`\n : undefined\n }\n />\n \n\n \n \n \n \n\n
\n {onBack && (\n \n )}\n \n Confirm\n \n
\n
\n
\n
\n
\n
\n );\n}\n\nfunction asProduct(p: ProductAndQuantity): MerchantBackend.Product {\n return {\n product_id: p.product.id,\n image: p.product.image,\n price: p.product.price,\n unit: p.product.unit,\n quantity: p.quantity,\n description: p.product.description,\n taxes: p.product.taxes,\n minimum_age: p.product.minimum_age,\n };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { HttpError } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useInstanceDetails } from \"../../../../hooks/instance.js\";\nimport { useOrderAPI } from \"../../../../hooks/order.js\";\nimport { useInstanceProducts } from \"../../../../hooks/product.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = {\n request: MerchantBackend.Orders.PostOrderRequest;\n response: MerchantBackend.Orders.PostOrderResponse;\n};\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n}\nexport default function OrderCreate({\n onConfirm,\n onBack,\n onLoadError,\n onNotFound,\n onUnauthorized,\n}: Props): VNode {\n const { createOrder } = useOrderAPI();\n const [notif, setNotif] = useState(undefined);\n\n const detailsResult = useInstanceDetails();\n const inventoryResult = useInstanceProducts();\n\n if (detailsResult.clientError && detailsResult.isUnauthorized)\n return onUnauthorized();\n if (detailsResult.clientError && detailsResult.isNotfound)\n return onNotFound();\n if (detailsResult.loading) return ;\n if (!detailsResult.ok) return onLoadError(detailsResult);\n\n if (inventoryResult.clientError && inventoryResult.isUnauthorized)\n return onUnauthorized();\n if (inventoryResult.clientError && inventoryResult.isNotfound)\n return onNotFound();\n if (inventoryResult.loading) return ;\n if (!inventoryResult.ok) return onLoadError(inventoryResult);\n\n return (\n \n \n\n {\n createOrder(request)\n .then(onConfirm)\n .catch((error) => {\n setNotif({\n message: \"could not create order\",\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n instanceConfig={detailsResult.data}\n instanceInventory={inventoryResult.data}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { ComponentChildren, h, VNode } from \"preact\";\nimport { useField, InputProps } from \"./useField.js\";\n\ninterface Props extends InputProps {\n inputType?: \"text\" | \"number\" | \"multiline\" | \"password\";\n expand?: boolean;\n side?: ComponentChildren;\n children: ComponentChildren;\n}\n\nexport function TextField({\n name,\n tooltip,\n label,\n expand,\n help,\n children,\n side,\n}: Props): VNode {\n const { error } = useField(name);\n return (\n
\n
\n \n
\n
\n
\n \n {children}\n {help}\n

\n {error &&

{error}

}\n
\n {side}\n
\n
\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputGroup } from \"../../../../components/form/InputGroup.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { ConfirmModal } from \"../../../../components/modal/index.js\";\nimport { useConfigContext } from \"../../../../context/config.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport { mergeRefunds } from \"../../../../utils/amount.js\";\n\ntype Entity = MerchantBackend.Orders.OrderHistoryEntry & WithId;\ninterface Props {\n orders: Entity[];\n onRefund: (value: Entity) => void;\n onCopyURL: (id: string) => void;\n onCreate: () => void;\n onSelect: (order: Entity) => void;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nexport function CardTable({\n orders,\n onCreate,\n onRefund,\n onCopyURL,\n onSelect,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
\n
\n

\n \n \n \n Orders\n

\n\n
\n\n
\n \n \n \n
\n
\n
\n
\n
\n {orders.length > 0 ? (\n onCopyURL(o.id)}\n rowSelection={rowSelection}\n rowSelectionHandler={rowSelectionHandler}\n onLoadMoreAfter={onLoadMoreAfter}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreAfter={hasMoreAfter}\n hasMoreBefore={hasMoreBefore}\n />\n ) : (\n \n )}\n
\n
\n
\n
\n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: Entity[];\n onRefund: (id: Entity) => void;\n onCopyURL: (id: Entity) => void;\n onSelect: (id: Entity) => void;\n rowSelectionHandler: StateUpdater;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nfunction Table({\n instances,\n onSelect,\n onRefund,\n onCopyURL,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
\n {onLoadMoreBefore && (\n \n load newer orders\n \n )}\n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.timestamp.t_s === \"never\"\n ? \"never\"\n : format(\n new Date(i.timestamp.t_s * 1000),\n \"yyyy/MM/dd HH:mm:ss\",\n )}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.amount}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.summary}\n \n \n \n );\n })}\n \n
\n Date\n \n Amount\n \n Summary\n \n
\n
\n {i.refundable && (\n onRefund(i)}\n >\n Refund\n \n )}\n {!i.paid && (\n onCopyURL(i)}\n >\n copy url\n \n )}\n
\n
\n {onLoadMoreAfter && (\n \n load older orders\n \n )}\n
\n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
\n

\n \n \n \n

\n

\n \n No orders have been found matching your query!\n \n

\n
\n );\n}\n\ninterface RefundModalProps {\n onCancel: () => void;\n onConfirm: (value: MerchantBackend.Orders.RefundRequest) => void;\n order: MerchantBackend.Orders.MerchantOrderStatusResponse;\n}\n\nexport function RefundModal({\n order,\n onCancel,\n onConfirm,\n}: RefundModalProps): VNode {\n type State = { mainReason?: string; description?: string; refund?: string };\n const [form, setValue] = useState({});\n const { i18n } = useTranslationContext();\n // const [errors, setErrors] = useState>({});\n\n const refunds = (\n order.order_status === \"paid\" ? order.refund_details : []\n ).reduce(mergeRefunds, []);\n\n const config = useConfigContext();\n const totalRefunded = refunds\n .map((r) => r.amount)\n .reduce(\n (p, c) => Amounts.add(p, Amounts.parseOrThrow(c)).amount,\n Amounts.zeroOfCurrency(config.currency),\n );\n const orderPrice =\n order.order_status === \"paid\"\n ? Amounts.parseOrThrow(order.contract_terms.amount)\n : undefined;\n const totalRefundable = !orderPrice\n ? Amounts.zeroOfCurrency(totalRefunded.currency)\n : refunds.length\n ? Amounts.sub(orderPrice, totalRefunded).amount\n : orderPrice;\n\n const isRefundable = Amounts.isNonZero(totalRefundable);\n const duplicatedText = i18n.str`duplicated`;\n\n const errors: FormErrors = {\n mainReason: !form.mainReason ? i18n.str`required` : undefined,\n description:\n !form.description && form.mainReason !== duplicatedText\n ? i18n.str`required`\n : undefined,\n refund: !form.refund\n ? i18n.str`required`\n : !Amounts.parse(form.refund)\n ? i18n.str`invalid format`\n : Amounts.cmp(totalRefundable, Amounts.parse(form.refund)!) === -1\n ? i18n.str`this value exceed the refundable amount`\n : undefined,\n };\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const validateAndConfirm = () => {\n try {\n if (!form.refund) return;\n onConfirm({\n refund: Amounts.stringify(\n Amounts.add(Amounts.parse(form.refund)!, totalRefunded).amount,\n ),\n reason:\n form.description === undefined\n ? form.mainReason || \"\"\n : `${form.mainReason}: ${form.description}`,\n });\n } catch (err) {\n console.log(err);\n }\n };\n\n //FIXME: parameters in the translation\n return (\n \n {refunds.length > 0 && (\n
\n
\n \n \n \n \n \n \n \n \n \n \n {refunds.map((r) => {\n return (\n \n \n \n \n \n );\n })}\n \n
\n date\n \n amount\n \n reason\n
\n {r.timestamp.t_s === \"never\"\n ? \"never\"\n : format(\n new Date(r.timestamp.t_s * 1000),\n \"yyyy-MM-dd HH:mm:ss\",\n )}\n {r.amount}{r.reason}
\n \n
\n
\n )}\n\n {isRefundable && (\n \n errors={errors}\n object={form}\n valueHandler={(d) => setValue(d as any)}\n >\n \n name=\"refund\"\n label={i18n.str`Refund`}\n tooltip={i18n.str`amount to be refunded`}\n >\n Max refundable:{\" \"}\n {Amounts.stringify(totalRefundable)}\n \n \n {form.mainReason && form.mainReason !== duplicatedText ? (\n \n label={i18n.str`Description`}\n name=\"description\"\n tooltip={i18n.str`more information to give context`}\n />\n ) : undefined}\n \n )}\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { format } from \"date-fns\";\nimport { h } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\n\ninterface Props {\n events: Event[];\n}\n\nexport function Timeline({ events: e }: Props) {\n const events = [...e];\n events.push({\n when: new Date(),\n description: \"now\",\n type: \"now\",\n });\n\n events.sort((a, b) => a.when.getTime() - b.when.getTime());\n\n const [state, setState] = useState(events);\n useEffect(() => {\n const handle = setTimeout(() => {\n const eventsWithoutNow = state.filter((e) => e.type !== \"now\");\n eventsWithoutNow.push({\n when: new Date(),\n description: \"now\",\n type: \"now\",\n });\n setState(eventsWithoutNow);\n }, 1000);\n return () => {\n clearTimeout(handle);\n };\n });\n return (\n
\n {events.map((e, i) => {\n return (\n
\n {(() => {\n switch (e.type) {\n case \"deadline\":\n return (\n
\n \n
\n );\n case \"delivery\":\n return (\n
\n \n
\n );\n case \"start\":\n return (\n
\n \n
\n );\n case \"wired\":\n return (\n
\n \n
\n );\n case \"wired-range\":\n return (\n
\n \n
\n );\n case \"refund\":\n return (\n
\n \n
\n );\n case \"refund-taken\":\n return (\n
\n \n
\n );\n case \"now\":\n return (\n
\n \n
\n );\n }\n })()}\n
\n

{format(e.when, \"yyyy/MM/dd HH:mm:ss\")}

\n

{e.description}

\n
\n
\n );\n })}\n
\n );\n}\nexport interface Event {\n when: Date;\n description: string;\n type:\n | \"start\"\n | \"refund\"\n | \"refund-taken\"\n | \"wired\"\n | \"wired-range\"\n | \"deadline\"\n | \"delivery\"\n | \"now\";\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { AmountJson, Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { FormProvider } from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDate } from \"../../../../components/form/InputDate.js\";\nimport { InputDuration } from \"../../../../components/form/InputDuration.js\";\nimport { InputGroup } from \"../../../../components/form/InputGroup.js\";\nimport { InputLocation } from \"../../../../components/form/InputLocation.js\";\nimport { TextField } from \"../../../../components/form/TextField.js\";\nimport { ProductList } from \"../../../../components/product/ProductList.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { mergeRefunds } from \"../../../../utils/amount.js\";\nimport { RefundModal } from \"../list/Table.js\";\nimport { Event, Timeline } from \"./Timeline.js\";\n\ntype Entity = MerchantBackend.Orders.MerchantOrderStatusResponse;\ntype CT = MerchantBackend.ContractTerms;\n\ninterface Props {\n onBack: () => void;\n selected: Entity;\n id: string;\n onRefund: (id: string, value: MerchantBackend.Orders.RefundRequest) => void;\n}\n\ntype Paid = MerchantBackend.Orders.CheckPaymentPaidResponse & {\n refund_taken: string;\n};\ntype Unpaid = MerchantBackend.Orders.CheckPaymentUnpaidResponse;\ntype Claimed = MerchantBackend.Orders.CheckPaymentClaimedResponse;\n\nfunction ContractTerms({ value }: { value: CT }) {\n const { i18n } = useTranslationContext();\n\n return (\n \n object={value} valueHandler={null}>\n \n readonly\n name=\"summary\"\n label={i18n.str`Summary`}\n tooltip={i18n.str`human-readable description of the whole purchase`}\n />\n \n readonly\n name=\"amount\"\n label={i18n.str`Amount`}\n tooltip={i18n.str`total price for the transaction`}\n />\n {value.fulfillment_url && (\n \n readonly\n name=\"fulfillment_url\"\n label={i18n.str`Fulfillment URL`}\n tooltip={i18n.str`URL for this purchase`}\n />\n )}\n \n readonly\n name=\"max_fee\"\n label={i18n.str`Max fee`}\n tooltip={i18n.str`maximum total deposit fee accepted by the merchant for this contract`}\n />\n \n readonly\n name=\"max_wire_fee\"\n label={i18n.str`Max wire fee`}\n tooltip={i18n.str`maximum wire fee accepted by the merchant`}\n />\n \n readonly\n name=\"wire_fee_amortization\"\n label={i18n.str`Wire fee amortization`}\n tooltip={i18n.str`over how many customer transactions does the merchant expect to amortize wire fees on average`}\n />\n \n readonly\n name=\"timestamp\"\n label={i18n.str`Created at`}\n tooltip={i18n.str`time when this contract was generated`}\n />\n \n readonly\n name=\"refund_deadline\"\n label={i18n.str`Refund deadline`}\n tooltip={i18n.str`after this deadline has passed no refunds will be accepted`}\n />\n \n readonly\n name=\"pay_deadline\"\n label={i18n.str`Payment deadline`}\n tooltip={i18n.str`after this deadline, the merchant won't accept payments for the contract`}\n />\n \n readonly\n name=\"wire_transfer_deadline\"\n label={i18n.str`Wire transfer deadline`}\n tooltip={i18n.str`transfer deadline for the exchange`}\n />\n \n readonly\n name=\"delivery_date\"\n label={i18n.str`Delivery date`}\n tooltip={i18n.str`time indicating when the order should be delivered`}\n />\n {value.delivery_date && (\n \n \n \n )}\n \n readonly\n name=\"auto_refund\"\n label={i18n.str`Auto-refund delay`}\n tooltip={i18n.str`how long the wallet should try to get an automatic refund for the purchase`}\n />\n \n readonly\n name=\"extra\"\n label={i18n.str`Extra info`}\n tooltip={i18n.str`extra data that is only interpreted by the merchant frontend`}\n />\n \n \n );\n}\n\nfunction ClaimedPage({\n id,\n order,\n}: {\n id: string;\n order: MerchantBackend.Orders.CheckPaymentClaimedResponse;\n}) {\n const events: Event[] = [];\n if (order.contract_terms.timestamp.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.timestamp.t_s * 1000),\n description: \"order created\",\n type: \"start\",\n });\n }\n if (order.contract_terms.pay_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.pay_deadline.t_s * 1000),\n description: \"pay deadline\",\n type: \"deadline\",\n });\n }\n if (order.contract_terms.refund_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.refund_deadline.t_s * 1000),\n description: \"refund deadline\",\n type: \"deadline\",\n });\n }\n if (order.contract_terms.wire_transfer_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.wire_transfer_deadline.t_s * 1000),\n description: \"wire deadline\",\n type: \"deadline\",\n });\n }\n if (\n order.contract_terms.delivery_date &&\n order.contract_terms.delivery_date.t_s !== \"never\"\n ) {\n events.push({\n when: new Date(order.contract_terms.delivery_date?.t_s * 1000),\n description: \"delivery\",\n type: \"delivery\",\n });\n }\n\n const [value, valueHandler] = useState>(order);\n const { i18n } = useTranslationContext();\n\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Order #{id}\n
\n claimed\n
\n
\n
\n
\n
\n
\n
\n

{order.contract_terms.amount}

\n
\n
\n
\n\n
\n
\n
\n \n

\n \n claimed at:\n {\" \"}\n {format(\n new Date(order.contract_terms.timestamp.t_s * 1000),\n \"yyyy-MM-dd HH:mm:ss\",\n )}\n

\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n Timeline\n
\n \n
\n
\n
\n Payment details\n
\n \n object={value}\n valueHandler={valueHandler}\n >\n \n \n \n name=\"order_status\"\n readonly\n label={i18n.str`Order status`}\n />\n \n
\n
\n
\n\n {order.contract_terms.products.length ? (\n \n
\n Product list\n
\n \n
\n ) : undefined}\n\n {value.contract_terms && (\n \n )}\n
\n
\n
\n \n \n );\n}\nfunction PaidPage({\n id,\n order,\n onRefund,\n}: {\n id: string;\n order: MerchantBackend.Orders.CheckPaymentPaidResponse;\n onRefund: (id: string) => void;\n}) {\n const events: Event[] = [];\n if (order.contract_terms.timestamp.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.timestamp.t_s * 1000),\n description: \"order created\",\n type: \"start\",\n });\n }\n if (order.contract_terms.pay_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.pay_deadline.t_s * 1000),\n description: \"pay deadline\",\n type: \"deadline\",\n });\n }\n if (order.contract_terms.refund_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.refund_deadline.t_s * 1000),\n description: \"refund deadline\",\n type: \"deadline\",\n });\n }\n if (order.contract_terms.wire_transfer_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.wire_transfer_deadline.t_s * 1000),\n description: \"wire deadline\",\n type: \"deadline\",\n });\n }\n if (\n order.contract_terms.delivery_date &&\n order.contract_terms.delivery_date.t_s !== \"never\"\n ) {\n if (order.contract_terms.delivery_date)\n events.push({\n when: new Date(order.contract_terms.delivery_date?.t_s * 1000),\n description: \"delivery\",\n type: \"delivery\",\n });\n }\n order.refund_details.reduce(mergeRefunds, []).forEach((e) => {\n if (e.timestamp.t_s !== \"never\") {\n events.push({\n when: new Date(e.timestamp.t_s * 1000),\n description: `refund: ${e.amount}: ${e.reason}`,\n type: e.pending ? \"refund\" : \"refund-taken\",\n });\n }\n });\n if (order.wire_details && order.wire_details.length) {\n if (order.wire_details.length > 1) {\n let last: MerchantBackend.Orders.TransactionWireTransfer | null = null;\n let first: MerchantBackend.Orders.TransactionWireTransfer | null = null;\n let total: AmountJson | null = null;\n\n order.wire_details.forEach((w) => {\n if (last === null || last.execution_time.t_s < w.execution_time.t_s) {\n last = w;\n }\n if (first === null || first.execution_time.t_s > w.execution_time.t_s) {\n first = w;\n }\n total =\n total === null\n ? Amounts.parseOrThrow(w.amount)\n : Amounts.add(total, Amounts.parseOrThrow(w.amount)).amount;\n });\n const last_time = last!.execution_time.t_s;\n if (last_time !== \"never\") {\n events.push({\n when: new Date(last_time * 1000),\n description: `wired ${Amounts.stringify(total!)}`,\n type: \"wired-range\",\n });\n }\n const first_time = first!.execution_time.t_s;\n if (first_time !== \"never\") {\n events.push({\n when: new Date(first_time * 1000),\n description: `wire transfer started...`,\n type: \"wired-range\",\n });\n }\n } else {\n order.wire_details.forEach((e) => {\n if (e.execution_time.t_s !== \"never\") {\n events.push({\n when: new Date(e.execution_time.t_s * 1000),\n description: `wired ${e.amount}`,\n type: \"wired\",\n });\n }\n });\n }\n }\n\n const [value, valueHandler] = useState>(order);\n const { url } = useBackendContext();\n const refundHost = url.replace(/.*:\\/\\//, \"\"); // remove protocol part\n const proto = url.startsWith(\"http://\") ? \"taler+http\" : \"taler\";\n const refundurl = `${proto}://refund/${refundHost}/${order.contract_terms.order_id}/`;\n const refundable =\n new Date().getTime() < order.contract_terms.refund_deadline.t_s * 1000;\n const { i18n } = useTranslationContext();\n\n const amount = Amounts.parseOrThrow(order.contract_terms.amount);\n const refund_taken = order.refund_details.reduce((prev, cur) => {\n if (cur.pending) return prev;\n return Amounts.add(prev, Amounts.parseOrThrow(cur.amount)).amount;\n }, Amounts.zeroOfCurrency(amount.currency));\n value.refund_taken = Amounts.stringify(refund_taken);\n\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Order #{id}\n
\n paid\n
\n {order.wired ? (\n
\n wired\n
\n ) : null}\n {order.refunded ? (\n
\n refunded\n
\n ) : null}\n
\n
\n
\n
\n
\n
\n

{order.contract_terms.amount}

\n
\n
\n
\n
\n

\n
\n \n onRefund(id)}\n >\n refund\n \n \n
\n

\n
\n
\n
\n\n
\n
\n
\n \n

\n \n {order.contract_terms.fulfillment_url}\n \n

\n

\n {format(\n new Date(order.contract_terms.timestamp.t_s * 1000),\n \"yyyy/MM/dd HH:mm:ss\",\n )}\n

\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n Timeline\n
\n \n
\n
\n
\n Payment details\n
\n \n object={value}\n valueHandler={valueHandler}\n >\n {/* name=\"deposit_total\" readonly label={i18n.str`Deposit total`} /> */}\n {order.refunded && (\n \n name=\"refund_amount\"\n readonly\n label={i18n.str`Refunded amount`}\n />\n )}\n {order.refunded && (\n \n name=\"refund_taken\"\n readonly\n label={i18n.str`Refund taken`}\n />\n )}\n \n name=\"order_status\"\n readonly\n label={i18n.str`Order status`}\n />\n \n name=\"order_status_url\"\n label={i18n.str`Status URL`}\n >\n \n {order.order_status_url}\n \n \n {order.refunded && (\n \n name=\"order_status_url\"\n label={i18n.str`Refund URI`}\n >\n \n {refundurl}\n \n \n )}\n \n
\n
\n
\n\n {order.contract_terms.products.length ? (\n \n
\n Product list\n
\n \n
\n ) : undefined}\n\n {value.contract_terms && (\n \n )}\n
\n
\n
\n \n \n );\n}\n\nfunction UnpaidPage({\n id,\n order,\n}: {\n id: string;\n order: MerchantBackend.Orders.CheckPaymentUnpaidResponse;\n}) {\n const [value, valueHandler] = useState>(order);\n const { i18n } = useTranslationContext();\n return (\n
\n
\n
\n
\n
\n
\n

\n Order #{id}\n

\n
\n
\n unpaid\n
\n
\n
\n\n
\n
\n
\n \n

\n \n pay at:\n {\" \"}\n \n {order.order_status_url}\n \n

\n

\n \n created at:\n {\" \"}\n {order.creation_time.t_s === \"never\"\n ? \"never\"\n : format(\n new Date(order.creation_time.t_s * 1000),\n \"yyyy-MM-dd HH:mm:ss\",\n )}\n

\n
\n
\n
\n
\n
\n \n\n
\n
\n
\n
\n object={value} valueHandler={valueHandler}>\n \n readonly\n name=\"summary\"\n label={i18n.str`Summary`}\n tooltip={i18n.str`human-readable description of the whole purchase`}\n />\n \n readonly\n name=\"total_amount\"\n label={i18n.str`Amount`}\n tooltip={i18n.str`total price for the transaction`}\n />\n \n name=\"order_status\"\n readonly\n label={i18n.str`Order status`}\n />\n \n name=\"order_status_url\"\n readonly\n label={i18n.str`Order status URL`}\n />\n \n name=\"taler_pay_uri\"\n label={i18n.str`Payment URI`}\n >\n \n {value.taler_pay_uri}\n \n \n \n
\n
\n
\n
\n \n );\n}\n\nexport function DetailPage({ id, selected, onRefund, onBack }: Props): VNode {\n const [showRefund, setShowRefund] = useState(undefined);\n const { i18n } = useTranslationContext();\n const DetailByStatus = function () {\n switch (selected.order_status) {\n case \"claimed\":\n return ;\n case \"paid\":\n return ;\n case \"unpaid\":\n return ;\n default:\n return (\n
\n \n Unknown order status. This is an error, please contact the\n administrator.\n \n
\n );\n }\n };\n\n return (\n \n {DetailByStatus()}\n {showRefund && (\n setShowRefund(undefined)}\n onConfirm={(value) => {\n onRefund(showRefund, value);\n setShowRefund(undefined);\n }}\n />\n )}\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n );\n}\n\nasync function copyToClipboard(text: string) {\n return navigator.clipboard.writeText(text);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n useTranslationContext,\n HttpError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useOrderAPI, useOrderDetails } from \"../../../../hooks/order.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { DetailPage } from \"./DetailPage.js\";\n\nexport interface Props {\n oid: string;\n\n onBack: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n}\n\nexport default function Update({\n oid,\n onBack,\n onLoadError,\n onNotFound,\n onUnauthorized,\n}: Props): VNode {\n const { refundOrder } = useOrderAPI();\n const result = useOrderDetails(oid);\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n\n \n refundOrder(id, value)\n .then(() =>\n setNotif({\n message: i18n.str`refund created successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not create the refund`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n selected={result.data}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { DatePicker } from \"../../../../components/picker/DatePicker.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport { CardTable } from \"./Table.js\";\n\nexport interface ListPageProps {\n errorOrderId: string | undefined;\n\n onShowAll: () => void;\n onShowPaid: () => void;\n onShowRefunded: () => void;\n onShowNotWired: () => void;\n onCopyURL: (id: string) => void;\n isAllActive: string;\n isPaidActive: string;\n isRefundedActive: string;\n isNotWiredActive: string;\n\n jumpToDate?: Date;\n onSelectDate: (date?: Date) => void;\n\n orders: (MerchantBackend.Orders.OrderHistoryEntry & WithId)[];\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n\n onSelectOrder: (o: MerchantBackend.Orders.OrderHistoryEntry & WithId) => void;\n onRefundOrder: (o: MerchantBackend.Orders.OrderHistoryEntry & WithId) => void;\n onSearchOrderById: (id: string) => void;\n onCreate: () => void;\n}\n\nexport function ListPage({\n orders,\n errorOrderId,\n isAllActive,\n onSelectOrder,\n onRefundOrder,\n onSearchOrderById,\n jumpToDate,\n onCopyURL,\n onShowAll,\n onShowPaid,\n onShowRefunded,\n onShowNotWired,\n onSelectDate,\n isPaidActive,\n isRefundedActive,\n isNotWiredActive,\n onCreate,\n}: ListPageProps): VNode {\n const { i18n } = useTranslationContext();\n const dateTooltip = i18n.str`select date to show nearby orders`;\n const [pickDate, setPickDate] = useState(false);\n const [orderId, setOrderId] = useState(\"\");\n\n return (\n
\n
\n
\n
\n
\n
\n setOrderId(e.currentTarget.value)}\n placeholder={i18n.str`order id`}\n />\n {errorOrderId &&

{errorOrderId}

}\n
\n \n onSearchOrderById(orderId)}\n >\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
  • \n \n \n Paid\n \n
  • \n \n
  • \n \n \n Refunded\n \n
  • \n \n
  • \n \n \n Not wired\n \n
  • \n \n \n
    \n \n
    \n
    \n
    \n {jumpToDate && (\n \n )}\n
    \n \n {\n setPickDate(true);\n }}\n />\n \n
    \n
    \n \n {\n setPickDate(true);\n }}\n >\n \n \n \n \n \n
    \n
    \n
    \n
    \n \n\n setPickDate(false)}\n dateReceiver={onSelectDate}\n />\n\n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n InstanceOrderFilter,\n useInstanceOrders,\n useOrderAPI,\n useOrderDetails,\n} from \"../../../../hooks/order.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { ListPage } from \"./ListPage.js\";\nimport { RefundModal } from \"./Table.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onSelect: (id: string) => void;\n onCreate: () => void;\n}\n\nexport default function OrderList({\n onUnauthorized,\n onLoadError,\n onCreate,\n onSelect,\n onNotFound,\n}: Props): VNode {\n const [filter, setFilter] = useState({});\n const [orderToBeRefunded, setOrderToBeRefunded] = useState<\n MerchantBackend.Orders.OrderHistoryEntry | undefined\n >(undefined);\n\n const setNewDate = (date?: Date): void =>\n setFilter((prev) => ({ ...prev, date }));\n\n const result = useInstanceOrders(filter, setNewDate);\n const { refundOrder, getPaymentURL } = useOrderAPI();\n\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n const [errorOrderId, setErrorOrderId] = useState(\n undefined,\n );\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n const isPaidActive = filter.paid === \"yes\" ? \"is-active\" : \"\";\n const isRefundedActive = filter.refunded === \"yes\" ? \"is-active\" : \"\";\n const isNotWiredActive = filter.wired === \"no\" ? \"is-active\" : \"\";\n const isAllActive =\n filter.paid === undefined &&\n filter.refunded === undefined &&\n filter.wired === undefined\n ? \"is-active\"\n : \"\";\n\n async function testIfOrderExistAndSelect(orderId: string): Promise {\n if (!orderId) {\n setErrorOrderId(i18n.str`Enter an order id`);\n return;\n }\n try {\n await getPaymentURL(orderId);\n onSelect(orderId);\n setErrorOrderId(undefined);\n } catch {\n setErrorOrderId(i18n.str`order not found`);\n }\n }\n\n return (\n \n \n\n ({ ...o, id: o.order_id }))}\n onLoadMoreBefore={result.loadMorePrev}\n hasMoreBefore={!result.isReachingStart}\n onLoadMoreAfter={result.loadMore}\n hasMoreAfter={!result.isReachingEnd}\n onSelectOrder={(order) => onSelect(order.id)}\n onRefundOrder={(value) => setOrderToBeRefunded(value)}\n errorOrderId={errorOrderId}\n isAllActive={isAllActive}\n isNotWiredActive={isNotWiredActive}\n isPaidActive={isPaidActive}\n isRefundedActive={isRefundedActive}\n jumpToDate={filter.date}\n onCopyURL={(id) =>\n getPaymentURL(id).then((resp) => copyToClipboard(resp.data))\n }\n onCreate={onCreate}\n onSearchOrderById={testIfOrderExistAndSelect}\n onSelectDate={setNewDate}\n onShowAll={() => setFilter({})}\n onShowPaid={() => setFilter({ paid: \"yes\" })}\n onShowRefunded={() => setFilter({ refunded: \"yes\" })}\n onShowNotWired={() => setFilter({ wired: \"no\" })}\n />\n\n {orderToBeRefunded && (\n setOrderToBeRefunded(undefined)}\n onConfirm={(value) =>\n refundOrder(orderToBeRefunded.order_id, value)\n .then(() =>\n setNotif({\n message: i18n.str`refund created successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not create the refund`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n .then(() => setOrderToBeRefunded(undefined))\n }\n onLoadError={(error) => {\n setNotif({\n message: i18n.str`could not create the refund`,\n type: \"ERROR\",\n description: error.message,\n });\n setOrderToBeRefunded(undefined);\n return
    ;\n }}\n onUnauthorized={onUnauthorized}\n onNotFound={() => {\n setNotif({\n message: i18n.str`could not get the order to refund`,\n type: \"ERROR\",\n // description: error.message\n });\n setOrderToBeRefunded(undefined);\n return
    ;\n }}\n />\n )}\n \n );\n}\n\ninterface RefundProps {\n id: string;\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onCancel: () => void;\n onConfirm: (m: MerchantBackend.Orders.RefundRequest) => void;\n}\n\nfunction RefundModalForTable({\n id,\n onUnauthorized,\n onLoadError,\n onNotFound,\n onConfirm,\n onCancel,\n}: RefundProps): VNode {\n const result = useOrderDetails(id);\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n );\n}\n\nasync function copyToClipboard(text: string): Promise {\n return navigator.clipboard.writeText(text);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h } from \"preact\";\nimport { useLayoutEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend, Timestamp } from \"../../declaration.js\";\nimport { FormErrors, FormProvider } from \"./FormProvider.js\";\nimport { InputDate } from \"./InputDate.js\";\nimport { InputGroup } from \"./InputGroup.js\";\nimport { InputLocation } from \"./InputLocation.js\";\nimport { InputNumber } from \"./InputNumber.js\";\nimport { InputProps, useField } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n alreadyExist?: boolean;\n}\n\ntype Entity = Stock;\n\nexport interface Stock {\n current: number;\n lost: number;\n sold: number;\n address?: MerchantBackend.Location;\n nextRestock?: Timestamp;\n}\n\ninterface StockDelta {\n incoming: number;\n lost: number;\n}\n\nexport function InputStock({\n name,\n tooltip,\n label,\n alreadyExist,\n}: Props) {\n const { error, value, onChange } = useField(name);\n\n const [errors, setErrors] = useState>({});\n\n const [formValue, valueHandler] = useState>(value);\n const [addedStock, setAddedStock] = useState({\n incoming: 0,\n lost: 0,\n });\n const { i18n } = useTranslationContext();\n\n useLayoutEffect(() => {\n if (!formValue) {\n onChange(undefined as any);\n } else {\n onChange({\n ...formValue,\n current: (formValue?.current || 0) + addedStock.incoming,\n lost: (formValue?.lost || 0) + addedStock.lost,\n } as any);\n }\n }, [formValue, addedStock]);\n\n if (!formValue) {\n return (\n \n
    \n
    \n \n
    \n
    \n
    \n {!alreadyExist ? (\n {\n valueHandler({\n current: 0,\n lost: 0,\n sold: 0,\n } as Stock as any);\n }}\n >\n \n Manage stock\n \n \n ) : (\n \n \n Infinite\n \n \n )}\n
    \n
    \n
    \n
    \n );\n }\n\n const currentStock =\n (formValue.current || 0) - (formValue.lost || 0) - (formValue.sold || 0);\n\n const stockAddedErrors: FormErrors = {\n lost:\n currentStock + addedStock.incoming < addedStock.lost\n ? i18n.str`lost cannot be greater than current and incoming (max ${\n currentStock + addedStock.incoming\n })`\n : undefined,\n };\n\n // const stockUpdateDescription = stockAddedErrors.lost ? '' : (\n // !!addedStock.incoming || !!addedStock.lost ?\n // i18n.str`current stock will change from ${currentStock} to ${currentStock + addedStock.incoming - addedStock.lost}` :\n // i18n.str`current stock will stay at ${currentStock}`\n // )\n\n return (\n \n
    \n
    \n

    \n {label}\n {tooltip && (\n \n \n \n )}\n

    \n
    \n
    \n \n name=\"stock\"\n errors={errors}\n object={formValue}\n valueHandler={valueHandler}\n >\n {alreadyExist ? (\n \n \n \n \n \n\n {/*
    \n
    \n
    \n
    \n {stockUpdateDescription}\n
    \n
    \n
    */}\n \n ) : (\n \n name=\"current\"\n label={i18n.str`Current`}\n side={\n {\n valueHandler(undefined as any);\n }}\n >\n \n without stock\n \n \n }\n />\n )}\n\n \n name=\"nextRestock\"\n label={i18n.str`Next restock`}\n withTimestampSupport\n />\n\n \n name=\"address\"\n label={i18n.str`Delivery address`}\n >\n \n \n \n
    \n
    \n \n );\n}\n// (\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h } from \"preact\";\nimport { useCallback, useEffect, useState } from \"preact/hooks\";\nimport * as yup from \"yup\";\nimport { useBackendContext } from \"../../context/backend.js\";\nimport { MerchantBackend } from \"../../declaration.js\";\nimport {\n ProductCreateSchema as createSchema,\n ProductUpdateSchema as updateSchema,\n} from \"../../schemas/index.js\";\nimport { FormErrors, FormProvider } from \"../form/FormProvider.js\";\nimport { Input } from \"../form/Input.js\";\nimport { InputCurrency } from \"../form/InputCurrency.js\";\nimport { InputImage } from \"../form/InputImage.js\";\nimport { InputNumber } from \"../form/InputNumber.js\";\nimport { InputStock, Stock } from \"../form/InputStock.js\";\nimport { InputTaxes } from \"../form/InputTaxes.js\";\nimport { InputWithAddon } from \"../form/InputWithAddon.js\";\n\ntype Entity = MerchantBackend.Products.ProductDetail & { product_id: string };\n\ninterface Props {\n onSubscribe: (c?: () => Entity | undefined) => void;\n initial?: Partial;\n alreadyExist?: boolean;\n}\n\nexport function ProductForm({ onSubscribe, initial, alreadyExist }: Props) {\n const [value, valueHandler] = useState>({\n address: {},\n description_i18n: {},\n taxes: [],\n next_restock: { t_s: \"never\" },\n price: \":0\",\n ...initial,\n stock:\n !initial || initial.total_stock === -1\n ? undefined\n : {\n current: initial.total_stock || 0,\n lost: initial.total_lost || 0,\n sold: initial.total_sold || 0,\n address: initial.address,\n nextRestock: initial.next_restock,\n },\n });\n let errors: FormErrors = {};\n\n try {\n (alreadyExist ? updateSchema : createSchema).validateSync(value, {\n abortEarly: false,\n });\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n const yupErrors = err.inner as yup.ValidationError[];\n errors = yupErrors.reduce(\n (prev, cur) =>\n !cur.path ? prev : { ...prev, [cur.path]: cur.message },\n {},\n );\n }\n }\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = useCallback((): Entity | undefined => {\n const stock: Stock = (value as any).stock;\n\n if (!stock) {\n value.total_stock = -1;\n } else {\n value.total_stock = stock.current;\n value.total_lost = stock.lost;\n value.next_restock =\n stock.nextRestock instanceof Date\n ? { t_s: stock.nextRestock.getTime() / 1000 }\n : stock.nextRestock;\n value.address = stock.address;\n }\n delete (value as any).stock;\n\n if (typeof value.minimum_age !== \"undefined\" && value.minimum_age < 1) {\n delete value.minimum_age;\n }\n\n return value as MerchantBackend.Products.ProductDetail & {\n product_id: string;\n };\n }, [value]);\n\n useEffect(() => {\n onSubscribe(hasErrors ? undefined : submit);\n }, [submit, hasErrors]);\n\n const backend = useBackendContext();\n const { i18n } = useTranslationContext();\n\n return (\n
    \n \n name=\"product\"\n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n {alreadyExist ? undefined : (\n \n name=\"product_id\"\n addonBefore={`${backend.url}/product/`}\n label={i18n.str`ID`}\n tooltip={i18n.str`product identification to use in URLs (for internal use only)`}\n />\n )}\n \n name=\"image\"\n label={i18n.str`Image`}\n tooltip={i18n.str`illustration of the product for customers`}\n />\n \n name=\"description\"\n inputType=\"multiline\"\n label={i18n.str`Description`}\n tooltip={i18n.str`product description for customers`}\n />\n \n name=\"minimum_age\"\n label={i18n.str`Age restricted`}\n tooltip={i18n.str`is this product restricted for customer below certain age?`}\n />\n \n name=\"unit\"\n label={i18n.str`Unit`}\n tooltip={i18n.str`unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers`}\n />\n \n name=\"price\"\n label={i18n.str`Price`}\n tooltip={i18n.str`sale price for customers, including taxes, for above units of the product`}\n />\n \n \n name=\"taxes\"\n label={i18n.str`Taxes`}\n tooltip={i18n.str`taxes included in the product price, exposed to customers`}\n />\n \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport { ProductForm } from \"../../../../components/product/ProductForm.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useListener } from \"../../../../hooks/listener.js\";\n\ntype Entity = MerchantBackend.Products.ProductAddDetail & {\n product_id: string;\n};\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nexport function CreatePage({ onCreate, onBack }: Props): VNode {\n const [submitForm, addFormSubmitter] = useListener(\n (result) => {\n if (result) return onCreate(result);\n return Promise.reject();\n },\n );\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useProductAPI } from \"../../../../hooks/product.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = MerchantBackend.Products.ProductAddDetail;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n}\nexport default function CreateProduct({ onConfirm, onBack }: Props): VNode {\n const { createProduct } = useProductAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n return (\n \n \n {\n return createProduct(request)\n .then(() => onConfirm())\n .catch((error) => {\n setNotif({\n message: i18n.str`could not create product`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { ComponentChildren, Fragment, h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport emptyImage from \"../../../../assets/empty.png\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Products.ProductDetail & WithId;\n\ninterface Props {\n instances: Entity[];\n onDelete: (id: Entity) => void;\n onSelect: (product: Entity) => void;\n onUpdate: (\n id: string,\n data: MerchantBackend.Products.ProductPatchDetail,\n ) => Promise;\n onCreate: () => void;\n selected?: boolean;\n}\n\nexport function CardTable({\n instances,\n onCreate,\n onSelect,\n onUpdate,\n onDelete,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState(\n undefined,\n );\n const { i18n } = useTranslationContext();\n return (\n
    \n
    \n

    \n \n \n \n Products\n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {instances.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string | undefined;\n instances: Entity[];\n onSelect: (id: Entity) => void;\n onUpdate: (\n id: string,\n data: MerchantBackend.Products.ProductPatchDetail,\n ) => Promise;\n onDelete: (id: Entity) => void;\n rowSelectionHandler: StateUpdater;\n}\n\nfunction Table({\n rowSelection,\n rowSelectionHandler,\n instances,\n onSelect,\n onUpdate,\n onDelete,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n const restStockInfo = !i.next_restock\n ? \"\"\n : i.next_restock.t_s === \"never\"\n ? \"never\"\n : `restock at ${format(\n new Date(i.next_restock.t_s * 1000),\n \"yyyy/MM/dd\",\n )}`;\n let stockInfo: ComponentChildren = \"\";\n if (i.total_stock < 0) {\n stockInfo = \"infinite\";\n } else {\n const totalStock = i.total_stock - i.total_lost - i.total_sold;\n stockInfo = (\n \n );\n }\n\n const isFree = Amounts.isZero(Amounts.parseOrThrow(i.price));\n\n return (\n \n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n \n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {i.description}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {isFree ? i18n.str`free` : `${i.price} / ${i.unit}`}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {sum(i.taxes)}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {difference(i.price, sum(i.taxes))}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {stockInfo}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {i.total_sold} {i.unit}\n \n \n \n {rowSelection === i.id && (\n \n \n \n )}\n \n );\n })}\n \n
    \n Image\n \n Description\n \n Sell\n \n Taxes\n \n Profit\n \n Stock\n \n Sold\n \n
    \n
    \n \n onSelect(i)}\n >\n Update\n \n \n \n onDelete(i)}\n >\n Delete\n \n \n
    \n
    \n \n onUpdate(i.id, prod).then((r) =>\n rowSelectionHandler(undefined),\n )\n }\n onCancel={() => rowSelectionHandler(undefined)}\n />\n
    \n
    \n );\n}\n\ninterface FastProductUpdateFormProps {\n product: Entity;\n onUpdate: (\n data: MerchantBackend.Products.ProductPatchDetail,\n ) => Promise;\n onCancel: () => void;\n}\ninterface FastProductUpdate {\n incoming: number;\n lost: number;\n price: string;\n}\ninterface UpdatePrice {\n price: string;\n}\n\nfunction FastProductWithInfiniteStockUpdateForm({\n product,\n onUpdate,\n onCancel,\n}: FastProductUpdateFormProps) {\n const [value, valueHandler] = useState({ price: product.price });\n const { i18n } = useTranslationContext();\n\n return (\n \n \n name=\"added\"\n object={value}\n valueHandler={valueHandler as any}\n >\n \n name=\"price\"\n label={i18n.str`Price`}\n tooltip={i18n.str`update the product with new price`}\n />\n \n\n
    \n \n \n \n onUpdate({\n ...product,\n price: value.price,\n })\n }\n >\n Confirm\n \n \n
    \n
    \n );\n}\n\nfunction FastProductWithManagedStockUpdateForm({\n product,\n onUpdate,\n onCancel,\n}: FastProductUpdateFormProps) {\n const [value, valueHandler] = useState({\n incoming: 0,\n lost: 0,\n price: product.price,\n });\n\n const currentStock =\n product.total_stock - product.total_sold - product.total_lost;\n\n const errors: FormErrors = {\n lost:\n currentStock + value.incoming < value.lost\n ? `lost cannot be greater that current + incoming (max ${\n currentStock + value.incoming\n })`\n : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n const { i18n } = useTranslationContext();\n\n return (\n \n \n name=\"added\"\n errors={errors}\n object={value}\n valueHandler={valueHandler as any}\n >\n \n name=\"incoming\"\n label={i18n.str`Incoming`}\n tooltip={i18n.str`add more elements to the inventory`}\n />\n \n name=\"lost\"\n label={i18n.str`Lost`}\n tooltip={i18n.str`report elements lost in the inventory`}\n />\n \n name=\"price\"\n label={i18n.str`Price`}\n tooltip={i18n.str`new price for the product`}\n />\n \n\n
    \n \n \n \n onUpdate({\n ...product,\n total_stock: product.total_stock + value.incoming,\n total_lost: product.total_lost + value.lost,\n price: value.price,\n })\n }\n >\n Confirm\n \n \n
    \n
    \n );\n}\n\nfunction FastProductUpdateForm(props: FastProductUpdateFormProps) {\n return props.product.total_stock === -1 ? (\n \n ) : (\n \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no products yet, add more pressing the + sign\n \n

    \n
    \n );\n}\n\nfunction difference(price: string, tax: number) {\n if (!tax) return price;\n const ps = price.split(\":\");\n const p = parseInt(ps[1], 10);\n ps[1] = `${p - tax}`;\n return ps.join(\":\");\n}\nfunction sum(taxes: MerchantBackend.Tax[]) {\n return taxes.reduce((p, c) => p + parseInt(c.tax.split(\":\")[1], 10), 0);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport {\n useInstanceProducts,\n useProductAPI,\n} from \"../../../../hooks/product.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CardTable } from \"./Table.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onCreate: () => void;\n onSelect: (id: string) => void;\n onLoadError: (e: HttpError) => VNode;\n}\nexport default function ProductList({\n onUnauthorized,\n onLoadError,\n onCreate,\n onSelect,\n onNotFound,\n}: Props): VNode {\n const result = useInstanceProducts();\n const { deleteProduct, updateProduct } = useProductAPI();\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n
    \n \n\n \n updateProduct(id, prod)\n .then(() =>\n setNotif({\n message: i18n.str`product updated successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not update the product`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n onSelect={(product) => onSelect(product.id)}\n onDelete={(prod: MerchantBackend.Products.ProductDetail & WithId) =>\n deleteProduct(prod.id)\n .then(() =>\n setNotif({\n message: i18n.str`product delete successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not delete the product`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n />\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport { ProductForm } from \"../../../../components/product/ProductForm.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useListener } from \"../../../../hooks/listener.js\";\n\ntype Entity = MerchantBackend.Products.ProductDetail & { product_id: string };\n\ninterface Props {\n onUpdate: (d: Entity) => Promise;\n onBack?: () => void;\n product: Entity;\n}\n\nexport function UpdatePage({ product, onUpdate, onBack }: Props): VNode {\n const [submitForm, addFormSubmitter] = useListener(\n (result) => {\n if (result) return onUpdate(result);\n return Promise.resolve();\n },\n );\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Product id:\n {product.product_id}\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useProductAPI, useProductDetails } from \"../../../../hooks/product.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { UpdatePage } from \"./UpdatePage.js\";\n\nexport type Entity = MerchantBackend.Products.ProductAddDetail;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n pid: string;\n}\nexport default function UpdateProduct({\n pid,\n onConfirm,\n onBack,\n onUnauthorized,\n onNotFound,\n onLoadError,\n}: Props): VNode {\n const { updateProduct } = useProductAPI();\n const result = useProductDetails(pid);\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n {\n return updateProduct(pid, data)\n .then(onConfirm)\n .catch((error) => {\n setNotif({\n message: i18n.str`could not create product`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook, useSWRConfig } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useReservesAPI(): ReserveMutateAPI {\n const mutateAll = useMatchMutate();\n const { mutate } = useSWRConfig();\n const { request } = useBackendInstanceRequest();\n\n const createReserve = async (\n data: MerchantBackend.Tips.ReserveCreateRequest,\n ): Promise<\n HttpResponseOk\n > => {\n const res = await request(\n `/private/reserves`,\n {\n method: \"POST\",\n data,\n },\n );\n\n //evict reserve list query\n await mutateAll(/.*private\\/reserves.*/);\n\n return res;\n };\n\n const authorizeTipReserve = async (\n pub: string,\n data: MerchantBackend.Tips.TipCreateRequest,\n ): Promise> => {\n const res = await request(\n `/private/reserves/${pub}/authorize-tip`,\n {\n method: \"POST\",\n data,\n },\n );\n\n //evict reserve details query\n await mutate([`/private/reserves/${pub}`]);\n\n return res;\n };\n\n const authorizeTip = async (\n data: MerchantBackend.Tips.TipCreateRequest,\n ): Promise> => {\n const res = await request(\n `/private/tips`,\n {\n method: \"POST\",\n data,\n },\n );\n\n //evict all details query\n await mutateAll(/.*private\\/reserves\\/.*/);\n\n return res;\n };\n\n const deleteReserve = async (\n pub: string,\n ): Promise> => {\n const res = await request(`/private/reserves/${pub}`, {\n method: \"DELETE\",\n });\n\n //evict reserve list query\n await mutateAll(/.*private\\/reserves.*/);\n\n return res;\n };\n\n return { createReserve, authorizeTip, authorizeTipReserve, deleteReserve };\n}\n\nexport interface ReserveMutateAPI {\n createReserve: (\n data: MerchantBackend.Tips.ReserveCreateRequest,\n ) => Promise>;\n authorizeTipReserve: (\n id: string,\n data: MerchantBackend.Tips.TipCreateRequest,\n ) => Promise>;\n authorizeTip: (\n data: MerchantBackend.Tips.TipCreateRequest,\n ) => Promise>;\n deleteReserve: (\n id: string,\n ) => Promise>;\n}\n\nexport function useInstanceReserves(): HttpResponse<\n MerchantBackend.Tips.TippingReserveStatus,\n MerchantBackend.ErrorDetail\n> {\n const { fetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/reserves`], fetcher);\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n\nexport function useReserveDetails(\n reserveId: string,\n): HttpResponse<\n MerchantBackend.Tips.ReserveDetail,\n MerchantBackend.ErrorDetail\n> {\n const { reserveDetailFetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/reserves/${reserveId}`], reserveDetailFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n\nexport function useTipDetails(\n tipId: string,\n): HttpResponse {\n const { tipsDetailFetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/tips/${tipId}`], tipsDetailFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { h, VNode } from \"preact\";\nimport { useEffect, useRef } from \"preact/hooks\";\nimport qrcode from \"qrcode-generator\";\n\nexport function QR({ text }: { text: string }): VNode {\n const divRef = useRef(null);\n useEffect(() => {\n const qr = qrcode(0, \"L\");\n qr.addData(text);\n qr.make();\n if (divRef.current) {\n divRef.current.innerHTML = qr.createSvgTag({\n scalable: true,\n });\n }\n });\n\n return (\n \n \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { parsePaytoUri, stringifyPaytoUri } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { QR } from \"../../../../components/exception/QR.js\";\nimport { CreatedSuccessfully as Template } from \"../../../../components/notifications/CreatedSuccessfully.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = {\n request: MerchantBackend.Tips.ReserveCreateRequest;\n response: MerchantBackend.Tips.ReserveCreateConfirmation;\n};\n\ninterface Props {\n entity: Entity;\n onConfirm: () => void;\n onCreateAnother?: () => void;\n}\n\nexport function CreatedSuccessfully({\n entity,\n onConfirm,\n onCreateAnother,\n}: Props): VNode {\n const p = parsePaytoUri(entity.response.payto_uri);\n if (p) {\n p.params[\"message\"] = entity.response.reserve_pub;\n p.params[\"amount\"] = entity.request.initial_balance;\n }\n\n const link = !p ? entity.response.payto_uri : stringifyPaytoUri(p);\n const { i18n } = useTranslationContext();\n return (\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { StateUpdater, useEffect, useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n PAYTO_WIRE_METHOD_LOOKUP,\n URL_REGEX,\n} from \"../../../../utils/constants.js\";\n\ntype Entity = MerchantBackend.Tips.ReserveCreateRequest;\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nenum Steps {\n EXCHANGE,\n WIRE_METHOD,\n}\n\ninterface ViewProps {\n step: Steps;\n setCurrentStep: (s: Steps) => void;\n reserve: Partial;\n onBack?: () => void;\n submitForm: () => Promise;\n setReserve: StateUpdater>;\n}\nfunction ViewStep({\n step,\n setCurrentStep,\n reserve,\n onBack,\n submitForm,\n setReserve,\n}: ViewProps): VNode {\n const { i18n } = useTranslationContext();\n const [wireMethods, setWireMethods] = useState>([]);\n const [exchangeQueryError, setExchangeQueryError] = useState<\n string | undefined\n >(undefined);\n\n useEffect(() => {\n setExchangeQueryError(undefined);\n }, [reserve.exchange_url]);\n\n switch (step) {\n case Steps.EXCHANGE: {\n const errors: FormErrors = {\n initial_balance: !reserve.initial_balance\n ? \"cannot be empty\"\n : !(parseInt(reserve.initial_balance.split(\":\")[1], 10) > 0)\n ? i18n.str`it should be greater than 0`\n : undefined,\n exchange_url: !reserve.exchange_url\n ? i18n.str`cannot be empty`\n : !URL_REGEX.test(reserve.exchange_url)\n ? i18n.str`must be a valid URL`\n : !exchangeQueryError\n ? undefined\n : exchangeQueryError,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n return (\n \n \n object={reserve}\n errors={errors}\n valueHandler={setReserve}\n >\n \n name=\"initial_balance\"\n label={i18n.str`Initial balance`}\n tooltip={i18n.str`balance prior to deposit`}\n />\n \n name=\"exchange_url\"\n label={i18n.str`Exchange URL`}\n tooltip={i18n.str`URL of exchange`}\n />\n \n\n
    \n {onBack && (\n \n )}\n {\n return fetch(`${reserve.exchange_url}wire`)\n .then((r) => r.json())\n .then((r) => {\n const wireMethods = r.accounts.map((a: any) => {\n const match = PAYTO_WIRE_METHOD_LOOKUP.exec(a.payto_uri);\n return (match && match[1]) || \"\";\n });\n setWireMethods(wireMethods);\n setCurrentStep(Steps.WIRE_METHOD);\n return;\n })\n .catch((r: any) => {\n setExchangeQueryError(r.message);\n });\n }}\n data-tooltip={\n hasErrors\n ? i18n.str`Need to complete marked fields`\n : \"confirm operation\"\n }\n disabled={hasErrors}\n >\n Next\n \n
    \n
    \n );\n }\n\n case Steps.WIRE_METHOD: {\n const errors: FormErrors = {\n wire_method: !reserve.wire_method\n ? i18n.str`cannot be empty`\n : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n return (\n \n \n object={reserve}\n errors={errors}\n valueHandler={setReserve}\n >\n \n name=\"initial_balance\"\n label={i18n.str`Initial balance`}\n tooltip={i18n.str`balance prior to deposit`}\n readonly\n />\n \n name=\"exchange_url\"\n label={i18n.str`Exchange URL`}\n tooltip={i18n.str`URL of exchange`}\n readonly\n />\n \n name=\"wire_method\"\n label={i18n.str`Wire method`}\n tooltip={i18n.str`method to use for wire transfer`}\n values={wireMethods}\n placeholder={i18n.str`Select one wire method`}\n />\n \n
    \n {onBack && (\n setCurrentStep(Steps.EXCHANGE)}\n >\n Back\n \n )}\n \n Confirm\n \n
    \n
    \n );\n }\n }\n}\n\nexport function CreatePage({ onCreate, onBack }: Props): VNode {\n const [reserve, setReserve] = useState>({});\n\n const submitForm = () => {\n return onCreate(reserve as Entity);\n };\n\n const [currentStep, setCurrentStep] = useState(Steps.EXCHANGE);\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useReservesAPI } from \"../../../../hooks/reserves.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatedSuccessfully } from \"./CreatedSuccessfully.js\";\nimport { CreatePage } from \"./CreatePage.js\";\ninterface Props {\n onBack: () => void;\n onConfirm: () => void;\n}\nexport default function CreateReserve({ onBack, onConfirm }: Props): VNode {\n const { createReserve } = useReservesAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n const [createdOk, setCreatedOk] = useState<\n | {\n request: MerchantBackend.Tips.ReserveCreateRequest;\n response: MerchantBackend.Tips.ReserveCreateConfirmation;\n }\n | undefined\n >(undefined);\n\n if (createdOk) {\n return ;\n }\n\n return (\n \n \n {\n return createReserve(request)\n .then((r) => setCreatedOk({ request, response: r.data }))\n .catch((error) => {\n setNotif({\n message: i18n.str`could not create reserve`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Tips.TipDetails;\n\ninterface Props {\n id: string;\n entity: Entity;\n amount: string;\n}\n\nexport function TipInfo({ id, amount, entity }: Props): VNode {\n const { url } = useBackendContext();\n const tipHost = url.replace(/.*:\\/\\//, \"\"); // remove protocol part\n const proto = url.startsWith(\"http://\") ? \"taler+http\" : \"taler\";\n const tipURL = `${proto}://tip/${tipHost}/${id}`;\n return (\n \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n {tipURL}\n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n Amounts,\n parsePaytoUri,\n stringifyPaytoUri,\n} from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { QR } from \"../../../../components/exception/QR.js\";\nimport { FormProvider } from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDate } from \"../../../../components/form/InputDate.js\";\nimport { TextField } from \"../../../../components/form/TextField.js\";\nimport { SimpleModal } from \"../../../../components/modal/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useTipDetails } from \"../../../../hooks/reserves.js\";\nimport { TipInfo } from \"./TipInfo.js\";\n\ntype Entity = MerchantBackend.Tips.ReserveDetail;\ntype CT = MerchantBackend.ContractTerms;\n\ninterface Props {\n onBack: () => void;\n selected: Entity;\n id: string;\n}\n\nexport function DetailPage({ id, selected, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const didExchangeAckTransfer = Amounts.isNonZero(\n Amounts.parseOrThrow(selected.exchange_initial_amount),\n );\n const p = parsePaytoUri(selected.payto_uri);\n if (p) {\n p.params[\"message\"] = id;\n p.params[\"amount\"] = selected.merchant_initial_amount;\n }\n\n const link = !p ? selected.payto_uri : stringifyPaytoUri(p);\n\n return (\n
    \n
    \n
    \n
    \n \n \n name=\"creation_time\"\n label={i18n.str`Created at`}\n readonly\n />\n \n name=\"expiration_time\"\n label={i18n.str`Valid until`}\n readonly\n />\n \n name=\"merchant_initial_amount\"\n label={i18n.str`Created balance`}\n readonly\n />\n \n name=\"exchange_url\"\n label={i18n.str`Exchange URL`}\n readonly\n >\n \n {selected.exchange_url}\n \n \n\n {didExchangeAckTransfer && (\n \n \n name=\"exchange_initial_amount\"\n label={i18n.str`Exchange balance`}\n readonly\n />\n \n name=\"pickup_amount\"\n label={i18n.str`Picked up`}\n readonly\n />\n \n name=\"committed_amount\"\n label={i18n.str`Committed`}\n readonly\n />\n \n )}\n \n name=\"payto_uri\"\n label={i18n.str`Account address`}\n readonly\n />\n \n \n\n {didExchangeAckTransfer ? (\n \n
    \n
    \n

    \n \n \n \n Tips\n

    \n
    \n
    \n
    \n
    \n {selected.tips && selected.tips.length > 0 ? (\n \n ) : (\n \n )}\n \n \n \n \n \n ) : (\n \n

    \n \n To complete the setup of the reserve, you must now initiate a\n wire transfer using the given wire transfer subject and\n crediting the specified amount to the indicated account of the\n exchange.\n \n

    \n

    \n \n If your system supports RFC 8905, you can do this by opening\n this URI:\n \n

    \n
    \n                \n                  {link}\n                \n              
    \n \n
    \n )}\n\n
    \n \n
    \n \n \n
    \n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n No tips has been authorized from this reserve\n \n

    \n
    \n );\n}\n\ninterface TableProps {\n tips: MerchantBackend.Tips.TipStatusEntry[];\n}\n\nfunction Table({ tips }: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n
    \n \n \n \n \n \n \n \n \n \n {tips.map((t, i) => {\n return ;\n })}\n \n
    \n Authorized\n \n Picked up\n \n Reason\n \n Expiration\n
    \n
    \n );\n}\n\nfunction TipRow({\n id,\n entry,\n}: {\n id: string;\n entry: MerchantBackend.Tips.TipStatusEntry;\n}) {\n const [selected, setSelected] = useState(false);\n const result = useTipDetails(id);\n if (result.loading) {\n return (\n \n ...\n ...\n ...\n ...\n \n );\n }\n if (!result.ok) {\n return (\n \n ... {/* authorized */}\n {entry.total_amount}\n {entry.reason}\n ... {/* expired */}\n \n );\n }\n const info = result.data;\n function onSelect() {\n setSelected(true);\n }\n return (\n \n {selected && (\n setSelected(false)}\n >\n \n \n )}\n \n {info.total_authorized}\n {info.total_picked_up}\n {info.reason}\n \n {info.expiration.t_s === \"never\"\n ? \"never\"\n : format(info.expiration.t_s * 1000, \"yyyy/MM/dd HH:mm:ss\")}\n \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { HttpError } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useReserveDetails } from \"../../../../hooks/reserves.js\";\nimport { DetailPage } from \"./DetailPage.js\";\n\ninterface Props {\n rid: string;\n\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onDelete: () => void;\n onBack: () => void;\n}\nexport default function DetailReserve({\n rid,\n onUnauthorized,\n onLoadError,\n onNotFound,\n onBack,\n onDelete,\n}: Props): VNode {\n const result = useReserveDetails(rid);\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n return (\n \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { CreatedSuccessfully as Template } from \"../../../../components/notifications/CreatedSuccessfully.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Tips.TipCreateConfirmation;\n\ninterface Props {\n entity: Entity;\n request: MerchantBackend.Tips.TipCreateRequest;\n onConfirm: () => void;\n onCreateAnother?: () => void;\n}\n\nexport function CreatedSuccessfully({\n request,\n entity,\n onConfirm,\n onCreateAnother,\n}: Props): VNode {\n return (\n \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport * as yup from \"yup\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport {\n ConfirmModal,\n ContinueModal,\n} from \"../../../../components/modal/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { AuthorizeTipSchema } from \"../../../../schemas/index.js\";\nimport { CreatedSuccessfully } from \"./CreatedSuccessfully.js\";\n\ninterface AuthorizeTipModalProps {\n onCancel: () => void;\n onConfirm: (value: MerchantBackend.Tips.TipCreateRequest) => void;\n tipAuthorized?: {\n response: MerchantBackend.Tips.TipCreateConfirmation;\n request: MerchantBackend.Tips.TipCreateRequest;\n };\n}\n\nexport function AuthorizeTipModal({\n onCancel,\n onConfirm,\n tipAuthorized,\n}: AuthorizeTipModalProps): VNode {\n // const result = useOrderDetails(id)\n type State = MerchantBackend.Tips.TipCreateRequest;\n const [form, setValue] = useState>({});\n const { i18n } = useTranslationContext();\n\n // const [errors, setErrors] = useState>({})\n let errors: FormErrors = {};\n try {\n AuthorizeTipSchema.validateSync(form, { abortEarly: false });\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n const yupErrors = err.inner as any[];\n errors = yupErrors.reduce(\n (prev, cur) =>\n !cur.path ? prev : { ...prev, [cur.path]: cur.message },\n {},\n );\n }\n }\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const validateAndConfirm = () => {\n onConfirm(form as State);\n };\n if (tipAuthorized) {\n return (\n \n \n \n );\n }\n\n return (\n \n \n errors={errors}\n object={form}\n valueHandler={setValue}\n >\n \n name=\"amount\"\n label={i18n.str`Amount`}\n tooltip={i18n.str`amount of tip`}\n />\n \n name=\"justification\"\n label={i18n.str`Justification`}\n inputType=\"multiline\"\n tooltip={i18n.str`reason for the tip`}\n />\n \n name=\"next_url\"\n label={i18n.str`URL after tip`}\n tooltip={i18n.str`URL to visit after tip payment`}\n />\n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Tips.ReserveStatusEntry & WithId;\n\ninterface Props {\n instances: Entity[];\n onNewTip: (id: Entity) => void;\n onSelect: (id: Entity) => void;\n onDelete: (id: Entity) => void;\n onCreate: () => void;\n}\n\nexport function CardTable({\n instances,\n onCreate,\n onSelect,\n onNewTip,\n onDelete,\n}: Props): VNode {\n const [withoutFunds, withFunds] = instances.reduce((prev, current) => {\n const amount = current.exchange_initial_amount;\n if (amount.endsWith(\":0\")) {\n prev[0] = prev[0].concat(current);\n } else {\n prev[1] = prev[1].concat(current);\n }\n return prev;\n }, new Array>([], []));\n\n const { i18n } = useTranslationContext();\n\n return (\n \n {withoutFunds.length > 0 && (\n
    \n
    \n

    \n \n \n \n Reserves not yet funded\n

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n )}\n\n
    \n
    \n

    \n \n \n \n Reserves ready\n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {withFunds.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n instances: Entity[];\n onNewTip: (id: Entity) => void;\n onDelete: (id: Entity) => void;\n onSelect: (id: Entity) => void;\n}\n\nfunction Table({ instances, onNewTip, onSelect, onDelete }: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.creation_time.t_s === \"never\"\n ? \"never\"\n : format(i.creation_time.t_s * 1000, \"yyyy/MM/dd HH:mm:ss\")}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.expiration_time.t_s === \"never\"\n ? \"never\"\n : format(\n i.expiration_time.t_s * 1000,\n \"yyyy/MM/dd HH:mm:ss\",\n )}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.exchange_initial_amount}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.pickup_amount}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.committed_amount}\n \n \n \n );\n })}\n \n
    \n Created at\n \n Expires at\n \n Initial\n \n Picked up\n \n Committed\n \n
    \n
    \n onDelete(i)}\n >\n Delete\n \n onNewTip(i)}\n >\n New Tip\n \n
    \n
    \n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no ready reserves yet, add more pressing the + sign or fund\n them\n \n

    \n
    \n );\n}\n\nfunction TableWithoutFund({\n instances,\n onSelect,\n onDelete,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.creation_time.t_s === \"never\"\n ? \"never\"\n : format(i.creation_time.t_s * 1000, \"yyyy/MM/dd HH:mm:ss\")}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.expiration_time.t_s === \"never\"\n ? \"never\"\n : format(\n i.expiration_time.t_s * 1000,\n \"yyyy/MM/dd HH:mm:ss\",\n )}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.merchant_initial_amount}\n \n \n \n );\n })}\n \n
    \n Created at\n \n Expires at\n \n Expected Balance\n \n
    \n
    \n onDelete(i)}\n >\n Delete\n \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useInstanceReserves,\n useReservesAPI,\n} from \"../../../../hooks/reserves.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { AuthorizeTipModal } from \"./AutorizeTipModal.js\";\nimport { CardTable } from \"./Table.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n onSelect: (id: string) => void;\n onNotFound: () => VNode;\n onCreate: () => void;\n}\n\ninterface TipConfirmation {\n response: MerchantBackend.Tips.TipCreateConfirmation;\n request: MerchantBackend.Tips.TipCreateRequest;\n}\n\nexport default function ListTips({\n onUnauthorized,\n onLoadError,\n onNotFound,\n onSelect,\n onCreate,\n}: Props): VNode {\n const result = useInstanceReserves();\n const { deleteReserve, authorizeTipReserve } = useReservesAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n const [reserveForTip, setReserveForTip] = useState(\n undefined,\n );\n const [tipAuthorized, setTipAuthorized] = useState<\n TipConfirmation | undefined\n >(undefined);\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n
    \n \n\n {reserveForTip && (\n {\n setReserveForTip(undefined);\n setTipAuthorized(undefined);\n }}\n tipAuthorized={tipAuthorized}\n onConfirm={async (request) => {\n try {\n const response = await authorizeTipReserve(\n reserveForTip,\n request,\n );\n setTipAuthorized({\n request,\n response: response.data,\n });\n } catch (error) {\n setNotif({\n message: i18n.str`could not create the tip`,\n type: \"ERROR\",\n description: error instanceof Error ? error.message : undefined,\n });\n setReserveForTip(undefined);\n }\n }}\n />\n )}\n\n r.active)\n .map((o) => ({ ...o, id: o.reserve_pub }))}\n onCreate={onCreate}\n onDelete={(reserve) => deleteReserve(reserve.reserve_pub)}\n onSelect={(reserve) => onSelect(reserve.id)}\n onNewTip={(reserve) => setReserveForTip(reserve.id)}\n />\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n HttpResponsePaginated,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { MAX_RESULT_SIZE, PAGE_SIZE } from \"../utils/constants.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useTemplateAPI(): TemplateAPI {\n const mutateAll = useMatchMutate();\n const { request } = useBackendInstanceRequest();\n\n const createTemplate = async (\n data: MerchantBackend.Template.TemplateAddDetails,\n ): Promise> => {\n const res = await request(`/private/templates`, {\n method: \"POST\",\n data,\n });\n await mutateAll(/.*private\\/templates.*/);\n return res;\n };\n\n const updateTemplate = async (\n templateId: string,\n data: MerchantBackend.Template.TemplatePatchDetails,\n ): Promise> => {\n const res = await request(`/private/templates/${templateId}`, {\n method: \"PATCH\",\n data,\n });\n await mutateAll(/.*private\\/templates.*/);\n return res;\n };\n\n const deleteTemplate = async (\n templateId: string,\n ): Promise> => {\n const res = await request(`/private/templates/${templateId}`, {\n method: \"DELETE\",\n });\n await mutateAll(/.*private\\/templates.*/);\n return res;\n };\n\n const createOrderFromTemplate = async (\n templateId: string,\n data: MerchantBackend.Template.UsingTemplateDetails,\n ): Promise<\n HttpResponseOk\n > => {\n const res = await request(\n `/templates/${templateId}`,\n {\n method: \"POST\",\n data,\n },\n );\n await mutateAll(/.*private\\/templates.*/);\n return res;\n };\n\n return {\n createTemplate,\n updateTemplate,\n deleteTemplate,\n createOrderFromTemplate,\n };\n}\n\nexport interface TemplateAPI {\n createTemplate: (\n data: MerchantBackend.Template.TemplateAddDetails,\n ) => Promise>;\n updateTemplate: (\n id: string,\n data: MerchantBackend.Template.TemplatePatchDetails,\n ) => Promise>;\n deleteTemplate: (id: string) => Promise>;\n createOrderFromTemplate: (\n id: string,\n data: MerchantBackend.Template.UsingTemplateDetails,\n ) => Promise>;\n}\n\nexport interface InstanceTemplateFilter {\n //FIXME: add filter to the template list\n position?: string;\n}\n\nexport function useInstanceTemplates(\n args?: InstanceTemplateFilter,\n updatePosition?: (id: string) => void,\n): HttpResponsePaginated<\n MerchantBackend.Template.TemplateSummaryResponse,\n MerchantBackend.ErrorDetail\n> {\n const { templateFetcher } = useBackendInstanceRequest();\n\n // const [pageBefore, setPageBefore] = useState(1);\n const [pageAfter, setPageAfter] = useState(1);\n\n const totalAfter = pageAfter * PAGE_SIZE;\n // const totalBefore = args?.position !== undefined ? pageBefore * PAGE_SIZE : 0;\n\n /**\n * FIXME: this can be cleaned up a little\n *\n * the logic of double query should be inside the orderFetch so from the hook perspective and cache\n * is just one query and one error status\n */\n // const {\n // data: beforeData,\n // error: beforeError,\n // isValidating: loadingBefore,\n // } = useSWR, HttpError>(\n // [\n // `/private/templates`,\n // token,\n // url,\n // args?.position,\n // totalBefore,\n // ],\n // templateFetcher,\n // );\n const {\n data: afterData,\n error: afterError,\n isValidating: loadingAfter,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/templates`, args?.position, -totalAfter], templateFetcher);\n\n //this will save last result\n // const [lastBefore, setLastBefore] = useState<\n // HttpResponse\n // >({ loading: true });\n const [lastAfter, setLastAfter] = useState<\n HttpResponse<\n MerchantBackend.Template.TemplateSummaryResponse,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n useEffect(() => {\n if (afterData) setLastAfter(afterData);\n // if (beforeData) setLastBefore(beforeData);\n }, [afterData /*, beforeData*/]);\n\n // if (beforeError) return beforeError;\n if (afterError) return afterError.info;\n\n // if the query returns less that we ask, then we have reach the end or beginning\n const isReachingEnd =\n afterData && afterData.data.templates.length < totalAfter;\n const isReachingStart = false;\n // args?.position === undefined\n // ||\n // (beforeData && beforeData.data.templates.length < totalBefore);\n\n const pagination = {\n isReachingEnd,\n isReachingStart,\n loadMore: () => {\n if (!afterData || isReachingEnd) return;\n if (afterData.data.templates.length < MAX_RESULT_SIZE) {\n setPageAfter(pageAfter + 1);\n } else {\n const from = `${\n afterData.data.templates[afterData.data.templates.length - 1]\n .template_id\n }`;\n if (from && updatePosition) updatePosition(from);\n }\n },\n loadMorePrev: () => {\n // if (!beforeData || isReachingStart) return;\n // if (beforeData.data.templates.length < MAX_RESULT_SIZE) {\n // setPageBefore(pageBefore + 1);\n // } else if (beforeData) {\n // const from = `${beforeData.data.templates[beforeData.data.templates.length - 1]\n // .template_id\n // }`;\n // if (from && updatePosition) updatePosition(from);\n // }\n },\n };\n\n const templates = !afterData ? [] : (afterData || lastAfter).data.templates;\n // const templates =\n // !beforeData || !afterData\n // ? []\n // : (beforeData || lastBefore).data.templates\n // .slice()\n // .reverse()\n // .concat((afterData || lastAfter).data.templates);\n if (loadingAfter /* || loadingBefore */)\n return { loading: true, data: { templates } };\n if (/*beforeData &&*/ afterData) {\n return { ok: true, data: { templates }, ...pagination };\n }\n return { loading: true };\n}\n\nexport function useTemplateDetails(\n templateId: string,\n): HttpResponse<\n MerchantBackend.Template.TemplateDetails,\n MerchantBackend.ErrorDetail\n> {\n const { templateFetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/templates/${templateId}`], templateFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) {\n const d = structuredClone(data);\n d.data.pos_algorithm = 1;\n return d;\n }\n if (error) return error.info;\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nconst encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\";\n// base32 RFC 3548\nfunction encodeBase32(data: ArrayBuffer) {\n const dataBytes = new Uint8Array(data);\n let sb = \"\";\n const size = data.byteLength;\n let bitBuf = 0;\n let numBits = 0;\n let pos = 0;\n while (pos < size || numBits > 0) {\n if (pos < size && numBits < 5) {\n const d = dataBytes[pos++];\n bitBuf = (bitBuf << 8) | d;\n numBits += 8;\n }\n if (numBits < 5) {\n // zero-padding\n bitBuf = bitBuf << (5 - numBits);\n numBits = 5;\n }\n const v = (bitBuf >>> (numBits - 5)) & 31;\n sb += encTable[v];\n numBits -= 5;\n }\n return sb;\n}\n\nexport function randomBase32Key(): string {\n var buf = new Uint8Array(20);\n window.crypto.getRandomValues(buf);\n return encodeBase32(buf);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDuration } from \"../../../../components/form/InputDuration.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { InputWithAddon } from \"../../../../components/form/InputWithAddon.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { randomBase32Key } from \"../../../../utils/crypto.js\";\nimport { undefinedIfEmpty } from \"../../../../utils/table.js\";\n\ntype Entity = MerchantBackend.Template.TemplateAddDetails;\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nconst algorithms = [\"0\", \"1\", \"2\"];\nconst algorithmsNames = [\n \"off\",\n \"30s 8d TOTP-SHA1 without amount\",\n \"30s 8d eTOTP-SHA1 with amount\",\n];\n\nexport function CreatePage({ onCreate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const backend = useBackendContext();\n\n const [state, setState] = useState>({\n template_contract: {\n minimum_age: 0,\n pay_duration: {\n d_us: 1000 * 1000 * 60 * 30, //30 min\n },\n },\n });\n\n const errors: FormErrors = {\n template_id: !state.template_id ? i18n.str`should not be empty` : undefined,\n template_description: !state.template_description\n ? i18n.str`should not be empty`\n : undefined,\n template_contract: !state.template_contract\n ? undefined\n : undefinedIfEmpty({\n minimum_age:\n state.template_contract.minimum_age < 0\n ? i18n.str`should be greater that 0`\n : undefined,\n pay_duration: !state.template_contract.pay_duration\n ? i18n.str`can't be empty`\n : state.template_contract.pay_duration.d_us === \"forever\"\n ? undefined\n : state.template_contract.pay_duration.d_us < 1000 * 1000 //less than one second\n ? i18n.str`to short`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onCreate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n \n name=\"template_id\"\n addonBefore={`${backend.url}/instances/templates/`}\n label={i18n.str`Identifier`}\n tooltip={i18n.str`Name of the template in URLs.`}\n />\n \n name=\"template_description\"\n label={i18n.str`Description`}\n help=\"\"\n tooltip={i18n.str`Describe what this template stands for`}\n />\n \n \n \n \n \n name=\"pos_algorithm\"\n label={i18n.str`Veritifaction algorithm`}\n tooltip={i18n.str`Algorithm to use to verify transaction in offline mode`}\n values={algorithms}\n toStr={(v) => algorithmsNames[v]}\n convert={(v) => Number(v)}\n />\n {state.pos_algorithm && state.pos_algorithm > 0 ? (\n \n name=\"pos_key\"\n label={i18n.str`Point-of-sale key`}\n help=\"\"\n tooltip={i18n.str`Useful to validate the purchase`}\n side={\n \n {\n const pos_key = randomBase32Key();\n setState((s) => ({ ...s, pos_key }));\n }}\n >\n random\n \n \n }\n />\n ) : undefined}\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useTemplateAPI } from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = MerchantBackend.Transfers.TransferInformation;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n}\n\nexport default function CreateTransfer({ onConfirm, onBack }: Props): VNode {\n const { createTemplate } = useTemplateAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n return (\n <>\n \n {\n return createTemplate(request)\n .then(() => onConfirm())\n .catch((error) => {\n setNotif({\n message: i18n.str`could not inform template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Template.UsingTemplateDetails;\n\ninterface Props {\n id: string;\n template: MerchantBackend.Template.TemplateDetails;\n onCreateOrder: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nexport function UsePage({ id, template, onCreateOrder, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n\n const [state, setState] = useState>({\n amount: template.template_contract.amount,\n summary: template.template_contract.summary,\n });\n\n const errors: FormErrors = {\n amount:\n !template.template_contract.amount && !state.amount\n ? i18n.str`Amount is required`\n : undefined,\n summary:\n !template.template_contract.summary && !state.summary\n ? i18n.str`Order summary is required`\n : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n if (template.template_contract.amount) {\n delete state.amount;\n }\n if (template.template_contract.summary) {\n delete state.summary;\n }\n return onCreateOrder(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n New order for template:{\" \"}\n {id}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n name=\"amount\"\n label={i18n.str`Amount`}\n readonly={!!template.template_contract.amount}\n tooltip={i18n.str`Amount of the order`}\n />\n \n name=\"summary\"\n inputType=\"multiline\"\n label={i18n.str`Order summary`}\n readonly={!!template.template_contract.summary}\n tooltip={i18n.str`Title of the order to be shown to the customer`}\n />\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useTemplateAPI,\n useTemplateDetails,\n} from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { UsePage } from \"./UsePage.js\";\n\nexport type Entity = MerchantBackend.Transfers.TransferInformation;\ninterface Props {\n onBack?: () => void;\n onOrderCreated: (id: string) => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n tid: string;\n}\n\nexport default function TemplateUsePage({\n tid,\n onOrderCreated,\n onBack,\n onLoadError,\n onNotFound,\n onUnauthorized,\n}: Props): VNode {\n const { createOrderFromTemplate } = useTemplateAPI();\n const result = useTemplateDetails(tid);\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n <>\n \n {\n return createOrderFromTemplate(tid, request)\n .then((res) => onOrderCreated(res.data.order_id))\n .catch((error) => {\n setNotif({\n message: i18n.str`could not create order from template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { buildPayto, classifyTalerUri } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport { QR } from \"../../../../components/exception/QR.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { ConfirmModal } from \"../../../../components/modal/index.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { useConfigContext } from \"../../../../context/config.js\";\nimport { useInstanceContext } from \"../../../../context/instance.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Template.UsingTemplateDetails;\n\ninterface Props {\n template: MerchantBackend.Template.TemplateDetails;\n id: string;\n onBack?: () => void;\n}\n\nexport function QrPage({ template, id: templateId, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const { url: backendUrl } = useBackendContext();\n const { id: instanceId } = useInstanceContext();\n const config = useConfigContext();\n const [setupTOTP, setSetupTOTP] = useState(false);\n\n const [state, setState] = useState>({\n amount: template.template_contract.amount,\n summary: template.template_contract.summary,\n });\n\n const errors: FormErrors = {};\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const fixedAmount = !!template.template_contract.amount;\n const fixedSummary = !!template.template_contract.summary;\n\n const params = new URLSearchParams();\n if (!fixedAmount) {\n if (state.amount) {\n params.append(\"amount\", state.amount);\n } else {\n params.append(\"amount\", config.currency);\n }\n }\n if (!fixedSummary) {\n params.append(\"summary\", state.summary ?? \"\");\n }\n\n const paramsStr = fixedAmount && fixedSummary ? \"\" : \"?\" + params.toString();\n const merchantURL = new URL(backendUrl);\n\n const talerProto =\n merchantURL.protocol === \"http:\" ? \"taler+http:\" : \"taler:\";\n\n const payTemplateUri = `${talerProto}//pay-template/${merchantURL.hostname}/${templateId}${paramsStr}`;\n\n const issuer = encodeURIComponent(\n `${new URL(backendUrl).hostname}/${instanceId}`,\n );\n const oauthUri = !template.pos_algorithm\n ? undefined\n : template.pos_algorithm === 1\n ? `otpauth://totp/${issuer}:${templateId}?secret=${template.pos_key}&issuer=${issuer}&algorithm=SHA1&digits=8&period=30`\n : template.pos_algorithm === 2\n ? `otpauth://totp/${issuer}:${templateId}?secret=${template.pos_key}&issuer=${issuer}&algorithm=SHA1&digits=8&period=30`\n : undefined;\n return (\n
    \n {oauthUri && (\n {\n setSetupTOTP(false);\n }}\n >\n

    Scan this qr code with your TOTP device

    \n \n
    \n            {oauthUri}\n          
    \n \n )}\n
    \n
    \n
    \n
    \n \n \n name=\"amount\"\n label={i18n.str`Amount`}\n readonly={fixedAmount}\n tooltip={i18n.str`Amount of the order`}\n />\n \n name=\"summary\"\n inputType=\"multiline\"\n readonly={fixedSummary}\n label={i18n.str`Order summary`}\n tooltip={i18n.str`Title of the order to be shown to the customer`}\n />\n \n\n
    \n {onBack && (\n \n )}\n saveAsPDF(templateId)}\n >\n Print\n \n {oauthUri && (\n setSetupTOTP(true)}\n >\n Setup TOTP\n \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n          {payTemplateUri}\n        
    \n
    \n
    \n );\n}\n\nfunction saveAsPDF(name: string): void {\n const printWindow = window.open(\"\", \"\", \"height=400,width=800\");\n if (!printWindow) return;\n const divContents = document.getElementById(\"printThis\");\n if (!divContents) return;\n printWindow.document.write(\n `Order template for ${name} \");\n printWindow.document.close();\n printWindow.document.body.appendChild(divContents.cloneNode(true));\n printWindow.addEventListener(\"load\", () => {\n printWindow.print();\n printWindow.close();\n });\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useTemplateAPI,\n useTemplateDetails,\n} from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { QrPage } from \"./QrPage.js\";\n\nexport type Entity = MerchantBackend.Transfers.TransferInformation;\ninterface Props {\n onBack?: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n tid: string;\n}\n\nexport default function TemplateQrPage({\n tid,\n onBack,\n onLoadError,\n onNotFound,\n onUnauthorized,\n}: Props): VNode {\n const result = useTemplateDetails(tid);\n const [notif, setNotif] = useState(undefined);\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n <>\n \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Template.TemplateEntry;\n\ninterface Props {\n templates: Entity[];\n onDelete: (e: Entity) => void;\n onSelect: (e: Entity) => void;\n onNewOrder: (e: Entity) => void;\n onQR: (e: Entity) => void;\n onCreate: () => void;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nexport function CardTable({\n templates,\n onCreate,\n onDelete,\n onSelect,\n onQR,\n onNewOrder,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n

    \n \n \n \n Templates\n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {templates.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: Entity[];\n onDelete: (e: Entity) => void;\n onNewOrder: (e: Entity) => void;\n onQR: (e: Entity) => void;\n onSelect: (e: Entity) => void;\n rowSelectionHandler: StateUpdater;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nfunction toggleSelected(id: T): (prev: T[]) => T[] {\n return (prev: T[]): T[] =>\n prev.indexOf(id) == -1 ? [...prev, id] : prev.filter((e) => e != id);\n}\n\nfunction Table({\n instances,\n onLoadMoreAfter,\n onDelete,\n onNewOrder,\n onQR,\n onSelect,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n {onLoadMoreBefore && (\n \n load newer templates\n \n )}\n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.template_id}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.template_description}\n \n \n \n );\n })}\n \n
    \n ID\n \n Description\n \n
    \n
    \n onDelete(i)}\n >\n Delete\n \n onNewOrder(i)}\n >\n New order\n \n onQR(i)}\n >\n QR\n \n
    \n
    \n {onLoadMoreAfter && (\n \n load older templates\n \n )}\n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no templates yet, add more pressing the + sign\n \n

    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, VNode } from \"preact\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { CardTable } from \"./Table.js\";\n\nexport interface Props {\n templates: MerchantBackend.Template.TemplateEntry[];\n onLoadMoreBefore?: () => void;\n onLoadMoreAfter?: () => void;\n onCreate: () => void;\n onDelete: (e: MerchantBackend.Template.TemplateEntry) => void;\n onSelect: (e: MerchantBackend.Template.TemplateEntry) => void;\n onNewOrder: (e: MerchantBackend.Template.TemplateEntry) => void;\n onQR: (e: MerchantBackend.Template.TemplateEntry) => void;\n}\n\nexport function ListPage({\n templates,\n onCreate,\n onDelete,\n onSelect,\n onNewOrder,\n onQR,\n onLoadMoreBefore,\n onLoadMoreAfter,\n}: Props): VNode {\n const form = { payto_uri: \"\" };\n\n const { i18n } = useTranslationContext();\n return (\n
    \n ({\n ...o,\n id: String(o.template_id),\n }))}\n onQR={onQR}\n onCreate={onCreate}\n onDelete={onDelete}\n onSelect={onSelect}\n onNewOrder={onNewOrder}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreBefore={!onLoadMoreBefore}\n onLoadMoreAfter={onLoadMoreAfter}\n hasMoreAfter={!onLoadMoreAfter}\n />\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useInstanceTemplates,\n useTemplateAPI,\n} from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { ListPage } from \"./ListPage.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onCreate: () => void;\n onSelect: (id: string) => void;\n onNewOrder: (id: string) => void;\n onQR: (id: string) => void;\n}\n\nexport default function ListTemplates({\n onUnauthorized,\n onLoadError,\n onCreate,\n onQR,\n onSelect,\n onNewOrder,\n onNotFound,\n}: Props): VNode {\n const [position, setPosition] = useState(undefined);\n const { i18n } = useTranslationContext();\n const [notif, setNotif] = useState(undefined);\n const { deleteTemplate } = useTemplateAPI();\n const result = useInstanceTemplates({ position }, (id) => setPosition(id));\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n\n {\n onSelect(e.template_id);\n }}\n onNewOrder={(e) => {\n onNewOrder(e.template_id);\n }}\n onQR={(e) => {\n onQR(e.template_id);\n }}\n onDelete={(e: MerchantBackend.Template.TemplateEntry) =>\n deleteTemplate(e.template_id)\n .then(() =>\n setNotif({\n message: i18n.str`template delete successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not delete the template`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDuration } from \"../../../../components/form/InputDuration.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { InputWithAddon } from \"../../../../components/form/InputWithAddon.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport { randomBase32Key } from \"../../../../utils/crypto.js\";\nimport { undefinedIfEmpty } from \"../../../../utils/table.js\";\n\ntype Entity = MerchantBackend.Template.TemplatePatchDetails & WithId;\n\ninterface Props {\n onUpdate: (d: Entity) => Promise;\n onBack?: () => void;\n template: Entity;\n}\n\nconst algorithms = [\"0\", \"1\", \"2\"];\nconst algorithmsNames = [\n \"off\",\n \"30s 8d TOTP-SHA1 without amount\",\n \"30s 8d eTOTP-SHA1 with amount\",\n];\n\nexport function UpdatePage({ template, onUpdate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const backend = useBackendContext();\n\n const [state, setState] = useState>(template);\n\n const errors: FormErrors = {\n template_description: !state.template_description\n ? i18n.str`should not be empty`\n : undefined,\n template_contract: !state.template_contract\n ? undefined\n : undefinedIfEmpty({\n minimum_age:\n state.template_contract.minimum_age < 0\n ? i18n.str`should be greater that 0`\n : undefined,\n pay_duration: !state.template_contract.pay_duration\n ? i18n.str`can't be empty`\n : state.template_contract.pay_duration.d_us === \"forever\"\n ? undefined\n : state.template_contract.pay_duration.d_us < 1000 * 1000 // less than one second\n ? i18n.str`to short`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onUpdate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n {backend.url}/instances/template/{template.id}\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n name=\"id\"\n addonBefore={`templates/`}\n readonly\n label={i18n.str`Identifier`}\n tooltip={i18n.str`Name of the template in URLs.`}\n />\n\n \n name=\"template_description\"\n label={i18n.str`Description`}\n help=\"\"\n tooltip={i18n.str`Describe what this template stands for`}\n />\n \n \n \n \n \n name=\"pos_algorithm\"\n label={i18n.str`Veritifaction algorithm`}\n tooltip={i18n.str`Algorithm to use to verify transaction in offline mode`}\n values={algorithms}\n toStr={(v) => algorithmsNames[v]}\n convert={(v) => Number(v)}\n />\n {state.pos_algorithm && state.pos_algorithm > 0 ? (\n \n name=\"pos_key\"\n label={i18n.str`Point-of-sale key`}\n help=\"\"\n tooltip={i18n.str`Useful to validate the purchase`}\n side={\n \n {\n const pos_key = randomBase32Key();\n setState((s) => ({ ...s, pos_key }));\n }}\n >\n random\n \n \n }\n />\n ) : undefined}\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport {\n useTemplateAPI,\n useTemplateDetails,\n} from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { UpdatePage } from \"./UpdatePage.js\";\n\nexport type Entity = MerchantBackend.Template.TemplatePatchDetails & WithId;\n\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n tid: string;\n}\nexport default function UpdateTemplate({\n tid,\n onConfirm,\n onBack,\n onUnauthorized,\n onNotFound,\n onLoadError,\n}: Props): VNode {\n const { updateTemplate } = useTemplateAPI();\n const result = useTemplateDetails(tid);\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n {\n return updateTemplate(tid, data)\n .then(onConfirm)\n .catch((error) => {\n setNotif({\n message: i18n.str`could not update template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n HttpResponsePaginated,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { MAX_RESULT_SIZE, PAGE_SIZE } from \"../utils/constants.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useWebhookAPI(): WebhookAPI {\n const mutateAll = useMatchMutate();\n const { request } = useBackendInstanceRequest();\n\n const createWebhook = async (\n data: MerchantBackend.Webhooks.WebhookAddDetails,\n ): Promise> => {\n const res = await request(`/private/webhooks`, {\n method: \"POST\",\n data,\n });\n await mutateAll(/.*private\\/webhooks.*/);\n return res;\n };\n\n const updateWebhook = async (\n webhookId: string,\n data: MerchantBackend.Webhooks.WebhookPatchDetails,\n ): Promise> => {\n const res = await request(`/private/webhooks/${webhookId}`, {\n method: \"PATCH\",\n data,\n });\n await mutateAll(/.*private\\/webhooks.*/);\n return res;\n };\n\n const deleteWebhook = async (\n webhookId: string,\n ): Promise> => {\n const res = await request(`/private/webhooks/${webhookId}`, {\n method: \"DELETE\",\n });\n await mutateAll(/.*private\\/webhooks.*/);\n return res;\n };\n\n return { createWebhook, updateWebhook, deleteWebhook };\n}\n\nexport interface WebhookAPI {\n createWebhook: (\n data: MerchantBackend.Webhooks.WebhookAddDetails,\n ) => Promise>;\n updateWebhook: (\n id: string,\n data: MerchantBackend.Webhooks.WebhookPatchDetails,\n ) => Promise>;\n deleteWebhook: (id: string) => Promise>;\n}\n\nexport interface InstanceWebhookFilter {\n //FIXME: add filter to the webhook list\n position?: string;\n}\n\nexport function useInstanceWebhooks(\n args?: InstanceWebhookFilter,\n updatePosition?: (id: string) => void,\n): HttpResponsePaginated<\n MerchantBackend.Webhooks.WebhookSummaryResponse,\n MerchantBackend.ErrorDetail\n> {\n const { webhookFetcher } = useBackendInstanceRequest();\n\n const [pageAfter, setPageAfter] = useState(1);\n\n const totalAfter = pageAfter * PAGE_SIZE;\n\n const {\n data: afterData,\n error: afterError,\n isValidating: loadingAfter,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/webhooks`, args?.position, -totalAfter], webhookFetcher);\n\n const [lastAfter, setLastAfter] = useState<\n HttpResponse<\n MerchantBackend.Webhooks.WebhookSummaryResponse,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n useEffect(() => {\n if (afterData) setLastAfter(afterData);\n }, [afterData]);\n\n if (afterError) return afterError.info;\n\n const isReachingEnd =\n afterData && afterData.data.webhooks.length < totalAfter;\n const isReachingStart = false;\n\n const pagination = {\n isReachingEnd,\n isReachingStart,\n loadMore: () => {\n if (!afterData || isReachingEnd) return;\n if (afterData.data.webhooks.length < MAX_RESULT_SIZE) {\n setPageAfter(pageAfter + 1);\n } else {\n const from = `${\n afterData.data.webhooks[afterData.data.webhooks.length - 1].webhook_id\n }`;\n if (from && updatePosition) updatePosition(from);\n }\n },\n loadMorePrev: () => {\n return;\n },\n };\n\n const webhooks = !afterData ? [] : (afterData || lastAfter).data.webhooks;\n\n if (loadingAfter) return { loading: true, data: { webhooks } };\n if (afterData) {\n return { ok: true, data: { webhooks }, ...pagination };\n }\n return { loading: true };\n}\n\nexport function useWebhookDetails(\n webhookId: string,\n): HttpResponse<\n MerchantBackend.Webhooks.WebhookDetails,\n MerchantBackend.ErrorDetail\n> {\n const { webhookFetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/webhooks/${webhookId}`], webhookFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDuration } from \"../../../../components/form/InputDuration.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Webhooks.WebhookAddDetails;\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nconst validMethod = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"HEAD\"];\n\nexport function CreatePage({ onCreate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n\n const [state, setState] = useState>({});\n\n const errors: FormErrors = {\n webhook_id: !state.webhook_id ? i18n.str`required` : undefined,\n event_type: !state.event_type ? i18n.str`required` : undefined,\n http_method: !state.http_method\n ? i18n.str`required`\n : !validMethod.includes(state.http_method)\n ? i18n.str`should be one of '${validMethod.join(\", \")}'`\n : undefined,\n url: !state.url ? i18n.str`required` : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onCreate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n \n name=\"webhook_id\"\n label={i18n.str`ID`}\n tooltip={i18n.str`Webhook ID to use`}\n />\n \n name=\"event_type\"\n label={i18n.str`Event`}\n tooltip={i18n.str`The event of the webhook: why the webhook is used`}\n />\n \n name=\"http_method\"\n label={i18n.str`Method`}\n tooltip={i18n.str`Method used by the webhook`}\n />\n \n name=\"url\"\n label={i18n.str`URL`}\n tooltip={i18n.str`URL of the webhook where the customer will be redirected`}\n />\n \n name=\"header_template\"\n label={i18n.str`Header`}\n inputType=\"multiline\"\n tooltip={i18n.str`Header template of the webhook`}\n />\n \n name=\"body_template\"\n inputType=\"multiline\"\n label={i18n.str`Body`}\n tooltip={i18n.str`Body template by the webhook`}\n />\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useWebhookAPI } from \"../../../../hooks/webhooks.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = MerchantBackend.Webhooks.WebhookAddDetails;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n}\n\nexport default function CreateWebhook({ onConfirm, onBack }: Props): VNode {\n const { createWebhook } = useWebhookAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n return (\n <>\n \n {\n return createWebhook(request)\n .then(() => onConfirm())\n .catch((error) => {\n setNotif({\n message: i18n.str`could not inform template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Webhooks.WebhookEntry;\n\ninterface Props {\n webhooks: Entity[];\n onDelete: (e: Entity) => void;\n onSelect: (e: Entity) => void;\n onCreate: () => void;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nexport function CardTable({\n webhooks,\n onCreate,\n onDelete,\n onSelect,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n

    \n \n \n \n Webhooks\n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {webhooks.length > 0 ? (\n {\n console.log(\"test\", d);\n }}\n rowSelection={rowSelection}\n rowSelectionHandler={rowSelectionHandler}\n onLoadMoreAfter={onLoadMoreAfter}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreAfter={hasMoreAfter}\n hasMoreBefore={hasMoreBefore}\n />\n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: Entity[];\n onDelete: (e: Entity) => void;\n onNewOrder: (e: Entity) => void;\n onSelect: (e: Entity) => void;\n rowSelectionHandler: StateUpdater;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nfunction toggleSelected(id: T): (prev: T[]) => T[] {\n return (prev: T[]): T[] =>\n prev.indexOf(id) == -1 ? [...prev, id] : prev.filter((e) => e != id);\n}\n\nfunction Table({\n instances,\n onLoadMoreAfter,\n onDelete,\n onNewOrder,\n onSelect,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n {onLoadMoreBefore && (\n \n load newer webhooks\n \n )}\n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.webhook_id}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.event_type}\n \n \n \n );\n })}\n \n
    \n ID\n \n Event type\n \n
    \n
    \n onDelete(i)}\n >\n Delete\n \n {/* onNewOrder(i)}\n >\n Test\n */}\n
    \n
    \n {onLoadMoreAfter && (\n \n load older webhooks\n \n )}\n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no webhooks yet, add more pressing the + sign\n \n

    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, VNode } from \"preact\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { CardTable } from \"./Table.js\";\n\nexport interface Props {\n webhooks: MerchantBackend.Webhooks.WebhookEntry[];\n onLoadMoreBefore?: () => void;\n onLoadMoreAfter?: () => void;\n onCreate: () => void;\n onDelete: (e: MerchantBackend.Webhooks.WebhookEntry) => void;\n onSelect: (e: MerchantBackend.Webhooks.WebhookEntry) => void;\n}\n\nexport function ListPage({\n webhooks,\n onCreate,\n onDelete,\n onSelect,\n onLoadMoreBefore,\n onLoadMoreAfter,\n}: Props): VNode {\n const form = { payto_uri: \"\" };\n\n const { i18n } = useTranslationContext();\n return (\n
    \n ({\n ...o,\n id: String(o.webhook_id),\n }))}\n onCreate={onCreate}\n onDelete={onDelete}\n onSelect={onSelect}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreBefore={!onLoadMoreBefore}\n onLoadMoreAfter={onLoadMoreAfter}\n hasMoreAfter={!onLoadMoreAfter}\n />\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useInstanceWebhooks,\n useWebhookAPI,\n} from \"../../../../hooks/webhooks.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { ListPage } from \"./ListPage.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onCreate: () => void;\n onSelect: (id: string) => void;\n}\n\nexport default function ListWebhooks({\n onUnauthorized,\n onLoadError,\n onCreate,\n onSelect,\n onNotFound,\n}: Props): VNode {\n const [position, setPosition] = useState(undefined);\n const { i18n } = useTranslationContext();\n const [notif, setNotif] = useState(undefined);\n const { deleteWebhook } = useWebhookAPI();\n const result = useInstanceWebhooks({ position }, (id) => setPosition(id));\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n\n {\n onSelect(e.webhook_id);\n }}\n onDelete={(e: MerchantBackend.Webhooks.WebhookEntry) =>\n deleteWebhook(e.webhook_id)\n .then(() =>\n setNotif({\n message: i18n.str`webhook delete successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not delete the webhook`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Webhooks.WebhookPatchDetails & WithId;\n\ninterface Props {\n onUpdate: (d: Entity) => Promise;\n onBack?: () => void;\n webhook: Entity;\n}\nconst validMethod = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"HEAD\"];\n\nexport function UpdatePage({ webhook, onUpdate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n\n const [state, setState] = useState>(webhook);\n\n const errors: FormErrors = {\n event_type: !state.event_type ? i18n.str`required` : undefined,\n http_method: !state.http_method\n ? i18n.str`required`\n : !validMethod.includes(state.http_method)\n ? i18n.str`should be one of '${validMethod.join(\", \")}'`\n : undefined,\n url: !state.url ? i18n.str`required` : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onUpdate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Webhook: {webhook.id}\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n name=\"event_type\"\n label={i18n.str`Event`}\n tooltip={i18n.str`The event of the webhook: why the webhook is used`}\n />\n \n name=\"http_method\"\n label={i18n.str`Method`}\n tooltip={i18n.str`Method used by the webhook`}\n />\n \n name=\"url\"\n label={i18n.str`URL`}\n tooltip={i18n.str`URL of the webhook where the customer will be redirected`}\n />\n \n name=\"header_template\"\n label={i18n.str`Header`}\n inputType=\"multiline\"\n tooltip={i18n.str`Header template of the webhook`}\n />\n \n name=\"body_template\"\n inputType=\"multiline\"\n label={i18n.str`Body`}\n tooltip={i18n.str`Body template by the webhook`}\n />\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport {\n useWebhookAPI,\n useWebhookDetails,\n} from \"../../../../hooks/webhooks.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { UpdatePage } from \"./UpdatePage.js\";\n\nexport type Entity = MerchantBackend.Webhooks.WebhookPatchDetails & WithId;\n\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n tid: string;\n}\nexport default function UpdateWebhook({\n tid,\n onConfirm,\n onBack,\n onUnauthorized,\n onNotFound,\n onLoadError,\n}: Props): VNode {\n const { updateWebhook } = useWebhookAPI();\n const result = useWebhookDetails(tid);\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n {\n return updateWebhook(tid, data)\n .then(onConfirm)\n .catch((error) => {\n setNotif({\n message: i18n.str`could not update template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n HttpResponsePaginated,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { MAX_RESULT_SIZE, PAGE_SIZE } from \"../utils/constants.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useTransferAPI(): TransferAPI {\n const mutateAll = useMatchMutate();\n const { request } = useBackendInstanceRequest();\n\n const informTransfer = async (\n data: MerchantBackend.Transfers.TransferInformation,\n ): Promise<\n HttpResponseOk\n > => {\n const res =\n await request(\n `/private/transfers`,\n {\n method: \"POST\",\n data,\n },\n );\n\n await mutateAll(/.*private\\/transfers.*/);\n return res;\n };\n\n return { informTransfer };\n}\n\nexport interface TransferAPI {\n informTransfer: (\n data: MerchantBackend.Transfers.TransferInformation,\n ) => Promise<\n HttpResponseOk\n >;\n}\n\nexport interface InstanceTransferFilter {\n payto_uri?: string;\n verified?: \"yes\" | \"no\";\n position?: string;\n}\n\nexport function useInstanceTransfers(\n args?: InstanceTransferFilter,\n updatePosition?: (id: string) => void,\n): HttpResponsePaginated<\n MerchantBackend.Transfers.TransferList,\n MerchantBackend.ErrorDetail\n> {\n const { transferFetcher } = useBackendInstanceRequest();\n\n const [pageBefore, setPageBefore] = useState(1);\n const [pageAfter, setPageAfter] = useState(1);\n\n const totalAfter = pageAfter * PAGE_SIZE;\n const totalBefore = args?.position !== undefined ? pageBefore * PAGE_SIZE : 0;\n\n /**\n * FIXME: this can be cleaned up a little\n *\n * the logic of double query should be inside the orderFetch so from the hook perspective and cache\n * is just one query and one error status\n */\n const {\n data: beforeData,\n error: beforeError,\n isValidating: loadingBefore,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >(\n [\n `/private/transfers`,\n args?.payto_uri,\n args?.verified,\n args?.position,\n totalBefore,\n ],\n transferFetcher,\n );\n const {\n data: afterData,\n error: afterError,\n isValidating: loadingAfter,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >(\n [\n `/private/transfers`,\n args?.payto_uri,\n args?.verified,\n args?.position,\n -totalAfter,\n ],\n transferFetcher,\n );\n\n //this will save last result\n const [lastBefore, setLastBefore] = useState<\n HttpResponse<\n MerchantBackend.Transfers.TransferList,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n const [lastAfter, setLastAfter] = useState<\n HttpResponse<\n MerchantBackend.Transfers.TransferList,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n useEffect(() => {\n if (afterData) setLastAfter(afterData);\n if (beforeData) setLastBefore(beforeData);\n }, [afterData, beforeData]);\n\n if (beforeError) return beforeError.info;\n if (afterError) return afterError.info;\n\n // if the query returns less that we ask, then we have reach the end or beginning\n const isReachingEnd =\n afterData && afterData.data.transfers.length < totalAfter;\n const isReachingStart =\n args?.position === undefined ||\n (beforeData && beforeData.data.transfers.length < totalBefore);\n\n const pagination = {\n isReachingEnd,\n isReachingStart,\n loadMore: () => {\n if (!afterData || isReachingEnd) return;\n if (afterData.data.transfers.length < MAX_RESULT_SIZE) {\n setPageAfter(pageAfter + 1);\n } else {\n const from = `${\n afterData.data.transfers[afterData.data.transfers.length - 1]\n .transfer_serial_id\n }`;\n if (from && updatePosition) updatePosition(from);\n }\n },\n loadMorePrev: () => {\n if (!beforeData || isReachingStart) return;\n if (beforeData.data.transfers.length < MAX_RESULT_SIZE) {\n setPageBefore(pageBefore + 1);\n } else if (beforeData) {\n const from = `${\n beforeData.data.transfers[beforeData.data.transfers.length - 1]\n .transfer_serial_id\n }`;\n if (from && updatePosition) updatePosition(from);\n }\n },\n };\n\n const transfers =\n !beforeData || !afterData\n ? []\n : (beforeData || lastBefore).data.transfers\n .slice()\n .reverse()\n .concat((afterData || lastAfter).data.transfers);\n if (loadingAfter || loadingBefore)\n return { loading: true, data: { transfers } };\n if (beforeData && afterData) {\n return { ok: true, data: { transfers }, ...pagination };\n }\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { useConfigContext } from \"../../../../context/config.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n CROCKFORD_BASE32_REGEX,\n URL_REGEX,\n} from \"../../../../utils/constants.js\";\n\ntype Entity = MerchantBackend.Transfers.TransferInformation;\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n accounts: string[];\n}\n\nexport function CreatePage({ accounts, onCreate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const { currency } = useConfigContext();\n\n const [state, setState] = useState>({\n wtid: \"\",\n // payto_uri: ,\n // exchange_url: 'http://exchange.taler:8081/',\n credit_amount: ``,\n });\n\n const errors: FormErrors = {\n wtid: !state.wtid\n ? i18n.str`cannot be empty`\n : !CROCKFORD_BASE32_REGEX.test(state.wtid)\n ? i18n.str`check the id, does not look valid`\n : state.wtid.length !== 52\n ? i18n.str`should have 52 characters, current ${state.wtid.length}`\n : undefined,\n payto_uri: !state.payto_uri ? i18n.str`cannot be empty` : undefined,\n credit_amount: !state.credit_amount ? i18n.str`cannot be empty` : undefined,\n exchange_url: !state.exchange_url\n ? i18n.str`cannot be empty`\n : !URL_REGEX.test(state.exchange_url)\n ? i18n.str`URL doesn't have the right format`\n : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onCreate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n \n \n name=\"wtid\"\n label={i18n.str`Wire transfer ID`}\n help=\"\"\n tooltip={i18n.str`unique identifier of the wire transfer used by the exchange, must be 52 characters long`}\n />\n \n name=\"exchange_url\"\n label={i18n.str`Exchange URL`}\n tooltip={i18n.str`Base URL of the exchange that made the transfer, should have been in the wire transfer subject`}\n help=\"http://exchange.taler:8081/\"\n />\n \n name=\"credit_amount\"\n label={i18n.str`Amount credited`}\n tooltip={i18n.str`Actual amount that was wired to the merchant's bank account`}\n />\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useInstanceDetails } from \"../../../../hooks/instance.js\";\nimport { useTransferAPI } from \"../../../../hooks/transfer.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = MerchantBackend.Transfers.TransferInformation;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n}\n\nexport default function CreateTransfer({ onConfirm, onBack }: Props): VNode {\n const { informTransfer } = useTransferAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n const instance = useInstanceDetails();\n const accounts = !instance.ok\n ? []\n : instance.data.accounts.map((a) => a.payto_uri);\n\n return (\n <>\n \n {\n return informTransfer(request)\n .then(() => onConfirm())\n .catch((error) => {\n setNotif({\n message: i18n.str`could not inform transfer`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Transfers.TransferDetails & WithId;\n\ninterface Props {\n transfers: Entity[];\n onDelete: (id: Entity) => void;\n onCreate: () => void;\n accounts: string[];\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nexport function CardTable({\n transfers,\n onCreate,\n onDelete,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n

    \n \n \n \n Transfers\n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {transfers.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: Entity[];\n onDelete: (id: Entity) => void;\n rowSelectionHandler: StateUpdater;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nfunction toggleSelected(id: T): (prev: T[]) => T[] {\n return (prev: T[]): T[] =>\n prev.indexOf(id) == -1 ? [...prev, id] : prev.filter((e) => e != id);\n}\n\nfunction Table({\n instances,\n onLoadMoreAfter,\n onDelete,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n {onLoadMoreBefore && (\n \n load newer transfers\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n })}\n \n
    \n ID\n \n Credit\n \n Address\n \n Exchange URL\n \n Confirmed\n \n Verified\n \n Executed at\n \n
    {i.id}{i.credit_amount}{i.payto_uri}{i.exchange_url}{i.confirmed ? i18n.str`yes` : i18n.str`no`}{i.verified ? i18n.str`yes` : i18n.str`no`}\n {i.execution_time\n ? i.execution_time.t_s == \"never\"\n ? i18n.str`never`\n : format(\n i.execution_time.t_s * 1000,\n \"yyyy/MM/dd HH:mm:ss\",\n )\n : i18n.str`unknown`}\n \n {i.verified === undefined ? (\n onDelete(i)}\n >\n Delete\n \n ) : undefined}\n
    \n {onLoadMoreAfter && (\n \n load older transfers\n \n )}\n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no transfer yet, add more pressing the + sign\n \n

    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { FormProvider } from \"../../../../components/form/FormProvider.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { CardTable } from \"./Table.js\";\n\nexport interface Props {\n transfers: MerchantBackend.Transfers.TransferDetails[];\n onLoadMoreBefore?: () => void;\n onLoadMoreAfter?: () => void;\n onShowAll: () => void;\n onShowVerified: () => void;\n onShowUnverified: () => void;\n isVerifiedTransfers?: boolean;\n isNonVerifiedTransfers?: boolean;\n isAllTransfers?: boolean;\n accounts: string[];\n onChangePayTo: (p?: string) => void;\n payTo?: string;\n onCreate: () => void;\n onDelete: () => void;\n}\n\nexport function ListPage({\n payTo,\n onChangePayTo,\n transfers,\n onCreate,\n onDelete,\n accounts,\n onLoadMoreBefore,\n onLoadMoreAfter,\n isAllTransfers,\n isNonVerifiedTransfers,\n isVerifiedTransfers,\n onShowAll,\n onShowUnverified,\n onShowVerified,\n}: Props): VNode {\n const form = { payto_uri: payTo };\n\n const { i18n } = useTranslationContext();\n return (\n
    \n
    \n
    \n
    \n onChangePayTo(updater(form).payto_uri)}\n >\n \n \n
    \n
    \n
    \n
    \n
    \n \n
  • \n \n \n Verified\n \n
  • \n \n
  • \n \n \n Unverified\n \n
  • \n \n \n
    \n ({\n ...o,\n id: String(o.transfer_serial_id),\n }))}\n accounts={accounts}\n onCreate={onCreate}\n onDelete={onDelete}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreBefore={!onLoadMoreBefore}\n onLoadMoreAfter={onLoadMoreAfter}\n hasMoreAfter={!onLoadMoreAfter}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { HttpError } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useInstanceDetails } from \"../../../../hooks/instance.js\";\nimport { useInstanceTransfers } from \"../../../../hooks/transfer.js\";\nimport { ListPage } from \"./ListPage.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onCreate: () => void;\n}\ninterface Form {\n verified?: \"yes\" | \"no\";\n payto_uri?: string;\n}\n\nexport default function ListTransfer({\n onUnauthorized,\n onLoadError,\n onCreate,\n onNotFound,\n}: Props): VNode {\n const [form, setForm] = useState
    ({ payto_uri: \"\" });\n const setFilter = (s?: \"yes\" | \"no\") => setForm({ ...form, verified: s });\n\n const [position, setPosition] = useState(undefined);\n\n const instance = useInstanceDetails();\n const accounts = !instance.ok\n ? []\n : instance.data.accounts.map((a) => a.payto_uri);\n\n const isVerifiedTransfers = form.verified === \"yes\";\n const isNonVerifiedTransfers = form.verified === \"no\";\n const isAllTransfers = form.verified === undefined;\n\n const result = useInstanceTransfers(\n {\n position,\n payto_uri: form.payto_uri === \"\" ? undefined : form.payto_uri,\n verified: form.verified,\n },\n (id) => setPosition(id),\n );\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n {\n null;\n }}\n // position={position} setPosition={setPosition}\n onShowAll={() => setFilter(undefined)}\n onShowUnverified={() => setFilter(\"no\")}\n onShowVerified={() => setFilter(\"yes\")}\n isAllTransfers={isAllTransfers}\n isVerifiedTransfers={isVerifiedTransfers}\n isNonVerifiedTransfers={isNonVerifiedTransfers}\n payTo={form.payto_uri}\n onChangePayTo={(p) => setForm((v) => ({ ...v, payto_uri: p }))}\n />\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../components/form/FormProvider.js\";\nimport { DefaultInstanceFormFields } from \"../../../components/instance/DefaultInstanceFormFields.js\";\nimport { UpdateTokenModal } from \"../../../components/modal/index.js\";\nimport { useInstanceContext } from \"../../../context/instance.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { PAYTO_REGEX } from \"../../../utils/constants.js\";\nimport { undefinedIfEmpty } from \"../../../utils/table.js\";\n\ntype Entity = MerchantBackend.Instances.InstanceReconfigurationMessage & {\n auth_token?: string;\n};\n\n//MerchantBackend.Instances.InstanceAuthConfigurationMessage\ninterface Props {\n onUpdate: (d: Entity) => void;\n onChangeAuth: (\n d: MerchantBackend.Instances.InstanceAuthConfigurationMessage,\n ) => Promise;\n selected: MerchantBackend.Instances.QueryInstancesResponse;\n isLoading: boolean;\n onBack: () => void;\n}\n\nfunction convert(\n from: MerchantBackend.Instances.QueryInstancesResponse,\n): Entity {\n const { accounts, ...rest } = from;\n const payto_uris = accounts.filter((a) => a.active).map((a) => a.payto_uri);\n const defaults = {\n default_wire_fee_amortization: 1,\n default_pay_delay: { d_us: 2 * 1000 * 1000 * 60 * 60 }, //two hours\n default_wire_transfer_delay: { d_us: 2 * 1000 * 1000 * 60 * 60 * 2 }, //two hours\n };\n return { ...defaults, ...rest, payto_uris };\n}\n\nfunction getTokenValuePart(t?: string): string | undefined {\n if (!t) return t;\n const match = /secret-token:(.*)/.exec(t);\n if (!match || !match[1]) return undefined;\n return match[1];\n}\n\nexport function UpdatePage({\n onUpdate,\n onChangeAuth,\n selected,\n onBack,\n}: Props): VNode {\n const { id, token } = useInstanceContext();\n const currentTokenValue = getTokenValuePart(token);\n\n function updateToken(token: string | undefined | null) {\n const value =\n token && token.startsWith(\"secret-token:\")\n ? token.substring(\"secret-token:\".length)\n : token;\n\n if (!token) {\n onChangeAuth({ method: \"external\" });\n } else {\n onChangeAuth({ method: \"token\", token: `secret-token:${value}` });\n }\n }\n\n const [value, valueHandler] = useState>(convert(selected));\n\n const { i18n } = useTranslationContext();\n\n const errors: FormErrors = {\n name: !value.name ? i18n.str`required` : undefined,\n payto_uris:\n !value.payto_uris || !value.payto_uris.length\n ? i18n.str`required`\n : undefinedIfEmpty(\n value.payto_uris.map((p) => {\n return !PAYTO_REGEX.test(p) ? i18n.str`is not valid` : undefined;\n }),\n ),\n default_max_deposit_fee: !value.default_max_deposit_fee\n ? i18n.str`required`\n : !Amounts.parse(value.default_max_deposit_fee)\n ? i18n.str`invalid format`\n : undefined,\n default_max_wire_fee: !value.default_max_wire_fee\n ? i18n.str`required`\n : !Amounts.parse(value.default_max_wire_fee)\n ? i18n.str`invalid format`\n : undefined,\n default_wire_fee_amortization:\n value.default_wire_fee_amortization === undefined\n ? i18n.str`required`\n : isNaN(value.default_wire_fee_amortization)\n ? i18n.str`is not a number`\n : value.default_wire_fee_amortization < 1\n ? i18n.str`must be 1 or greater`\n : undefined,\n default_pay_delay: !value.default_pay_delay\n ? i18n.str`required`\n : undefined,\n default_wire_transfer_delay: !value.default_wire_transfer_delay\n ? i18n.str`required`\n : undefined,\n address: undefinedIfEmpty({\n address_lines:\n value.address?.address_lines && value.address?.address_lines.length > 7\n ? i18n.str`max 7 lines`\n : undefined,\n }),\n jurisdiction: undefinedIfEmpty({\n address_lines:\n value.address?.address_lines && value.address?.address_lines.length > 7\n ? i18n.str`max 7 lines`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n const submit = async (): Promise => {\n await onUpdate(value as Entity);\n };\n const [active, setActive] = useState(false);\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Instance id: {id}\n \n
    \n
    \n
    \n
    \n

    \n {\n setActive(!active);\n }}\n >\n
    \n \n
    \n \n Manage access token\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {active && (\n {\n setActive(false);\n }}\n onClear={() => {\n updateToken(null);\n setActive(false);\n }}\n onConfirm={(newToken) => {\n updateToken(newToken);\n setActive(false);\n }}\n />\n )}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n \n \n\n
    \n \n Cancel\n \n\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpError,\n HttpResponse,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../components/menu/index.js\";\nimport { useInstanceContext } from \"../../../context/instance.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport {\n useInstanceAPI,\n useInstanceDetails,\n useManagedInstanceDetails,\n useManagementAPI,\n} from \"../../../hooks/instance.js\";\nimport { Notification } from \"../../../utils/types.js\";\nimport { UpdatePage } from \"./UpdatePage.js\";\n\nexport interface Props {\n onBack: () => void;\n onConfirm: () => void;\n\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n onUpdateError: (e: HttpError) => void;\n}\n\nexport default function Update(props: Props): VNode {\n const { updateInstance, clearToken, setNewToken } = useInstanceAPI();\n const result = useInstanceDetails();\n return CommonUpdate(props, result, updateInstance, clearToken, setNewToken);\n}\n\nexport function AdminUpdate(props: Props & { instanceId: string }): VNode {\n const { updateInstance, clearToken, setNewToken } = useManagementAPI(\n props.instanceId,\n );\n const result = useManagedInstanceDetails(props.instanceId);\n return CommonUpdate(props, result, updateInstance, clearToken, setNewToken);\n}\n\nfunction CommonUpdate(\n {\n onBack,\n onConfirm,\n onLoadError,\n onNotFound,\n onUpdateError,\n onUnauthorized,\n }: Props,\n result: HttpResponse<\n MerchantBackend.Instances.QueryInstancesResponse,\n MerchantBackend.ErrorDetail\n >,\n updateInstance: any,\n clearToken: any,\n setNewToken: any,\n): VNode {\n const { changeToken } = useInstanceContext();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n => {\n return updateInstance(d)\n .then(onConfirm)\n .catch((error: Error) =>\n setNotif({\n message: i18n.str`Failed to create instance`,\n type: \"ERROR\",\n description: error.message,\n }),\n );\n }}\n onChangeAuth={(\n d: MerchantBackend.Instances.InstanceAuthConfigurationMessage,\n ): Promise => {\n const apiCall =\n d.method === \"external\" ? clearToken() : setNewToken(d.token!);\n return apiCall\n .then(() => changeToken(d.token))\n .then(onConfirm)\n .catch(onUpdateError);\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { useBackendContext } from \"../../context/backend.js\";\nimport { useInstanceContext } from \"../../context/instance.js\";\nimport { Notification } from \"../../utils/types.js\";\n\ninterface Props {\n withMessage?: Notification;\n onConfirm: (backend: string, token?: string) => void;\n}\n\nfunction getTokenValuePart(t?: string): string | undefined {\n if (!t) return t;\n const match = /secret-token:(.*)/.exec(t);\n if (!match || !match[1]) return undefined;\n return match[1];\n}\n\nfunction normalizeToken(r: string | undefined): string | undefined {\n return r ? `secret-token:${encodeURIComponent(r)}` : undefined;\n}\n\nfunction cleanUp(s: string): string {\n let result = s;\n if (result.indexOf(\"webui/\") !== -1) {\n result = result.substring(0, result.indexOf(\"webui/\"));\n }\n return result;\n}\n\nexport function LoginModal({ onConfirm, withMessage }: Props): VNode {\n const { url: backendUrl, token: baseToken } = useBackendContext();\n const { admin, token: instanceToken } = useInstanceContext();\n const currentToken = getTokenValuePart(\n !admin ? baseToken : instanceToken || \"\",\n );\n const [token, setToken] = useState(currentToken);\n\n const [url, setURL] = useState(cleanUp(backendUrl));\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n
    \n \n

    {i18n.str`Login required`}

    \n \n \n Please enter your access token.\n
    \n
    \n \n
    \n
    \n
    \n

    \n \n e.keyCode === 13\n ? onConfirm(url, normalizeToken(token))\n : null\n }\n onInput={(e): void => setURL(e?.currentTarget.value)}\n />\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n e.keyCode === 13\n ? onConfirm(url, normalizeToken(token))\n : null\n }\n value={token}\n onInput={(e): void => setToken(e?.currentTarget.value)}\n />\n

    \n
    \n
    \n
    \n \n \n {\n onConfirm(url, normalizeToken(token));\n }}\n >\n Confirm\n \n \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { h, VNode } from \"preact\";\nimport { LoginModal } from \"../../components/exception/login.js\";\n\ninterface Props {\n onConfirm: (url: string, token?: string) => void;\n}\nexport default function LoginPage({ onConfirm }: Props): VNode {\n return ;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, VNode } from \"preact\";\nimport { Link } from \"preact-router\";\n\nexport default function NotFoundPage(): VNode {\n return (\n
    \n

    Error 404

    \n

    That page doesn't exist.

    \n \n

    Back to Home

    \n \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n useTranslationContext,\n HttpError,\n ErrorType,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, FunctionComponent, h, VNode } from \"preact\";\nimport { Route, route, Router } from \"preact-router\";\nimport { useCallback, useEffect, useMemo, useState } from \"preact/hooks\";\nimport { Loading } from \"./components/exception/loading.js\";\nimport { Menu, NotificationCard } from \"./components/menu/index.js\";\nimport { useBackendContext } from \"./context/backend.js\";\nimport { InstanceContextProvider } from \"./context/instance.js\";\nimport {\n useBackendDefaultToken,\n useBackendInstanceToken,\n useLocalStorage,\n} from \"./hooks/index.js\";\nimport { useInstanceKYCDetails } from \"./hooks/instance.js\";\nimport InstanceCreatePage from \"./paths/admin/create/index.js\";\nimport InstanceListPage from \"./paths/admin/list/index.js\";\nimport ListKYCPage from \"./paths/instance/kyc/list/index.js\";\nimport OrderCreatePage from \"./paths/instance/orders/create/index.js\";\nimport OrderDetailsPage from \"./paths/instance/orders/details/index.js\";\nimport OrderListPage from \"./paths/instance/orders/list/index.js\";\nimport ProductCreatePage from \"./paths/instance/products/create/index.js\";\nimport ProductListPage from \"./paths/instance/products/list/index.js\";\nimport ProductUpdatePage from \"./paths/instance/products/update/index.js\";\nimport ReservesCreatePage from \"./paths/instance/reserves/create/index.js\";\nimport ReservesDetailsPage from \"./paths/instance/reserves/details/index.js\";\nimport ReservesListPage from \"./paths/instance/reserves/list/index.js\";\nimport TemplateCreatePage from \"./paths/instance/templates/create/index.js\";\nimport TemplateUsePage from \"./paths/instance/templates/use/index.js\";\nimport TemplateQrPage from \"./paths/instance/templates/qr/index.js\";\nimport TemplateListPage from \"./paths/instance/templates/list/index.js\";\nimport TemplateUpdatePage from \"./paths/instance/templates/update/index.js\";\nimport WebhookCreatePage from \"./paths/instance/webhooks/create/index.js\";\nimport WebhookListPage from \"./paths/instance/webhooks/list/index.js\";\nimport WebhookUpdatePage from \"./paths/instance/webhooks/update/index.js\";\nimport TransferCreatePage from \"./paths/instance/transfers/create/index.js\";\nimport TransferListPage from \"./paths/instance/transfers/list/index.js\";\nimport InstanceUpdatePage, {\n AdminUpdate as InstanceAdminUpdatePage,\n Props as InstanceUpdatePageProps,\n} from \"./paths/instance/update/index.js\";\nimport LoginPage from \"./paths/login/index.js\";\nimport NotFoundPage from \"./paths/notfound/index.js\";\nimport { Notification } from \"./utils/types.js\";\nimport { MerchantBackend } from \"./declaration.js\";\n\nexport enum InstancePaths {\n // details = '/',\n error = \"/error\",\n update = \"/update\",\n\n product_list = \"/products\",\n product_update = \"/product/:pid/update\",\n product_new = \"/product/new\",\n\n order_list = \"/orders\",\n order_new = \"/order/new\",\n order_details = \"/order/:oid/details\",\n\n reserves_list = \"/reserves\",\n reserves_details = \"/reserves/:rid/details\",\n reserves_new = \"/reserves/new\",\n\n kyc = \"/kyc\",\n\n transfers_list = \"/transfers\",\n transfers_new = \"/transfer/new\",\n\n templates_list = \"/templates\",\n templates_update = \"/templates/:tid/update\",\n templates_new = \"/templates/new\",\n templates_use = \"/templates/:tid/use\",\n templates_qr = \"/templates/:tid/qr\",\n\n webhooks_list = \"/webhooks\",\n webhooks_update = \"/webhooks/:tid/update\",\n webhooks_new = \"/webhooks/new\",\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\nexport enum AdminPaths {\n list_instances = \"/instances\",\n new_instance = \"/instance/new\",\n update_instance = \"/instance/:id/update\",\n}\n\nexport interface Props {\n id: string;\n admin?: boolean;\n path: string;\n setInstanceName: (s: string) => void;\n}\n\nexport function InstanceRoutes({\n id,\n admin,\n path,\n setInstanceName,\n}: Props): VNode {\n const [_, updateDefaultToken] = useBackendDefaultToken();\n const [token, updateToken] = useBackendInstanceToken(id);\n const {\n updateLoginStatus: changeBackend,\n addTokenCleaner,\n clearAllTokens,\n } = useBackendContext();\n const cleaner = useCallback(() => {\n updateToken(undefined);\n }, [id]);\n const { i18n } = useTranslationContext();\n\n type GlobalNotifState = (Notification & { to: string }) | undefined;\n const [globalNotification, setGlobalNotification] =\n useState(undefined);\n\n useEffect(() => {\n addTokenCleaner(cleaner);\n }, [addTokenCleaner, cleaner]);\n\n const changeToken = (token?: string) => {\n if (admin) {\n updateToken(token);\n } else {\n updateDefaultToken(token);\n }\n };\n const updateLoginStatus = (url: string, token?: string) => {\n changeBackend(url);\n if (!token) return;\n changeToken(token);\n };\n\n const value = useMemo(\n () => ({ id, token, admin, changeToken }),\n [id, token, admin],\n );\n\n function ServerErrorRedirectTo(to: InstancePaths | AdminPaths) {\n return function ServerErrorRedirectToImpl(\n error: HttpError,\n ) {\n if (error.type === ErrorType.TIMEOUT) {\n setGlobalNotification({\n message: i18n.str`The request to the backend take too long and was cancelled`,\n description: i18n.str`Diagnostic from ${error.info?.url} is '${error.message}'`,\n type: \"ERROR\",\n to,\n });\n } else {\n setGlobalNotification({\n message: i18n.str`The backend reported a problem: HTTP status #${error.status}`,\n description: i18n.str`Diagnostic from ${error.info?.url} is '${error.message}'`,\n details:\n error.clientError || error.serverError\n ? error.error?.detail\n : undefined,\n type: \"ERROR\",\n to,\n });\n }\n return ;\n };\n }\n\n const LoginPageAccessDenied = () => (\n \n \n \n \n );\n\n function IfAdminCreateDefaultOr(Next: FunctionComponent) {\n return function IfAdminCreateDefaultOrImpl(props?: T) {\n if (admin && id === \"default\") {\n return (\n \n \n {\n route(AdminPaths.list_instances);\n }}\n />\n \n );\n }\n if (props) {\n return ;\n }\n return ;\n };\n }\n\n const clearTokenAndGoToRoot = () => {\n clearAllTokens();\n route(\"/\");\n };\n\n return (\n \n \n \n \n\n {\n const movingOutFromNotification =\n globalNotification && e.url !== globalNotification.to;\n if (movingOutFromNotification) {\n setGlobalNotification(undefined);\n }\n }}\n >\n \n {/**\n * Admin pages\n */}\n {admin && (\n {\n route(AdminPaths.new_instance);\n }}\n onUpdate={(id: string): void => {\n route(`/instance/${id}/update`);\n }}\n setInstanceName={setInstanceName}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.error)}\n />\n )}\n {admin && (\n route(AdminPaths.list_instances)}\n onConfirm={() => {\n route(AdminPaths.list_instances);\n }}\n />\n )}\n {admin && (\n route(AdminPaths.list_instances)}\n onConfirm={() => {\n route(AdminPaths.list_instances);\n }}\n onUpdateError={ServerErrorRedirectTo(AdminPaths.list_instances)}\n onLoadError={ServerErrorRedirectTo(AdminPaths.list_instances)}\n onNotFound={NotFoundPage}\n />\n )}\n {/**\n * Update instance page\n */}\n {\n route(`/`);\n }}\n onConfirm={() => {\n route(`/`);\n }}\n onUpdateError={noop}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.error)}\n />\n {/**\n * Product pages\n */}\n {\n route(InstancePaths.product_new);\n }}\n onSelect={(id: string) => {\n route(InstancePaths.product_update.replace(\":pid\", id));\n }}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n />\n {\n route(InstancePaths.product_list);\n }}\n onBack={() => {\n route(InstancePaths.product_list);\n }}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n />\n {\n route(InstancePaths.product_list);\n }}\n onBack={() => {\n route(InstancePaths.product_list);\n }}\n />\n {/**\n * Order pages\n */}\n {\n route(InstancePaths.order_new);\n }}\n onSelect={(id: string) => {\n route(InstancePaths.order_details.replace(\":oid\", id));\n }}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.update)}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n />\n {\n route(InstancePaths.order_list);\n }}\n />\n {\n route(InstancePaths.order_list);\n }}\n onBack={() => {\n route(InstancePaths.order_list);\n }}\n />\n {/**\n * Transfer pages\n */}\n {\n route(InstancePaths.transfers_new);\n }}\n />\n {\n route(InstancePaths.transfers_list);\n }}\n onBack={() => {\n route(InstancePaths.transfers_list);\n }}\n />\n {/**\n * Webhooks pages\n */}\n {\n route(InstancePaths.webhooks_new);\n }}\n onSelect={(id: string) => {\n route(InstancePaths.webhooks_update.replace(\":tid\", id));\n }}\n />\n {\n route(InstancePaths.webhooks_list);\n }}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.webhooks_list)}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n onBack={() => {\n route(InstancePaths.webhooks_list);\n }}\n />\n {\n route(InstancePaths.webhooks_list);\n }}\n onBack={() => {\n route(InstancePaths.webhooks_list);\n }}\n />\n {/**\n * Templates pages\n */}\n {\n route(InstancePaths.templates_new);\n }}\n onNewOrder={(id: string) => {\n route(InstancePaths.templates_use.replace(\":tid\", id));\n }}\n onQR={(id: string) => {\n route(InstancePaths.templates_qr.replace(\":tid\", id));\n }}\n onSelect={(id: string) => {\n route(InstancePaths.templates_update.replace(\":tid\", id));\n }}\n />\n {\n route(InstancePaths.templates_list);\n }}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.templates_list)}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n onBack={() => {\n route(InstancePaths.templates_list);\n }}\n />\n {\n route(InstancePaths.templates_list);\n }}\n onBack={() => {\n route(InstancePaths.templates_list);\n }}\n />\n {\n route(InstancePaths.order_details.replace(\":oid\", id));\n }}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.templates_list)}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n onBack={() => {\n route(InstancePaths.templates_list);\n }}\n />\n {\n route(InstancePaths.templates_list);\n }}\n />\n\n {/**\n * reserves pages\n */}\n {\n route(InstancePaths.reserves_details.replace(\":rid\", id));\n }}\n onCreate={() => {\n route(InstancePaths.reserves_new);\n }}\n />\n {\n route(InstancePaths.reserves_list);\n }}\n />\n {\n route(InstancePaths.reserves_list);\n }}\n onBack={() => {\n route(InstancePaths.reserves_list);\n }}\n />\n \n {/**\n * Example pages\n */}\n \n \n \n \n );\n}\n\nexport function Redirect({ to }: { to: string }): null {\n useEffect(() => {\n route(to, true);\n });\n return null;\n}\n\nfunction AdminInstanceUpdatePage({\n id,\n ...rest\n}: { id: string } & InstanceUpdatePageProps): VNode {\n const [token, changeToken] = useBackendInstanceToken(id);\n const { updateLoginStatus: changeBackend } = useBackendContext();\n const updateLoginStatus = (url: string, token?: string): void => {\n changeBackend(url);\n if (token) changeToken(token);\n };\n const value = useMemo(\n () => ({ id, token, admin: true, changeToken }),\n [id, token],\n );\n const { i18n } = useTranslationContext();\n\n return (\n \n ) => {\n const notif =\n error.type === ErrorType.TIMEOUT\n ? {\n message: i18n.str`The request to the backend take too long and was cancelled`,\n description: i18n.str`Diagnostic from ${error.info?.url} is '${error.message}'`,\n type: \"ERROR\" as const,\n }\n : {\n message: i18n.str`The backend reported a problem: HTTP status #${error.status}`,\n description: i18n.str`Diagnostic from ${error.info?.url} is '${error.message}'`,\n details:\n error.clientError || error.serverError\n ? error.error?.detail\n : undefined,\n type: \"ERROR\" as const,\n };\n return (\n \n \n \n \n );\n }}\n onUnauthorized={() => {\n return (\n \n \n \n \n );\n }}\n />\n \n );\n}\n\nfunction KycBanner(): VNode {\n const kycStatus = useInstanceKYCDetails();\n const { i18n } = useTranslationContext();\n const today = format(new Date(), \"yyyy-MM-dd\");\n const [lastHide, setLastHide] = useLocalStorage(\"kyc-last-hide\");\n const hasBeenHidden = today === lastHide;\n const needsToBeShown = kycStatus.ok && kycStatus.data.type === \"redirect\";\n if (hasBeenHidden || !needsToBeShown) return ;\n return (\n \n

    \n Some transfer are on hold until a KYC process is completed. Go to\n the KYC section in the left panel for more information\n

    \n
    \n \n
    \n
    \n ),\n }}\n />\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/*eslint quote-props: [\"error\", \"consistent\"]*/\nexport const strings: {[s: string]: any} = {};\n\nstrings['de'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\nstrings['en'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\nstrings['es'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=n != 1;\",\n \"lang\": \"es\"\n },\n \"Cancel\": [\n \"Cancelar\"\n ],\n \"%1$s\": [\n \"%1$s\"\n ],\n \"Continue\": [\n \"Continuar\"\n ],\n \"Clear\": [\n \"Limpiar\"\n ],\n \"Confirm\": [\n \"Confirmar\"\n ],\n \"is not the same as the current access token\": [\n \"no es el mismo que el token de acceso actual\"\n ],\n \"cannot be empty\": [\n \"no puede ser vac\u00EDo\"\n ],\n \"cannot be the same as the old token\": [\n \"no puede ser igual al viejo token\"\n ],\n \"is not the same\": [\n \"no son iguales\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"Est\u00E1 actualizando el token de autorizaci\u00F3n para la instancia con id %1$s\"\n ],\n \"Old access token\": [\n \"Viejo token de acceso\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"Nuevo token\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"Limpiar el token de autorizaci\u00F3n significa acceso publico a la instancia\"\n ],\n \"cannot be the same as the old access token\": [\n \"no puede ser igual al anterior\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"Amortizaci\u00F3n de comisi\u00F3n de transferencia\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"Instancias\"\n ],\n \"Delete\": [\n \"Eliminar\"\n ],\n \"add new instance\": [\n \"no se pudo crear la instancia\"\n ],\n \"ID\": [\n \"ID\"\n ],\n \"Name\": [\n \"Nombre\"\n ],\n \"Edit\": [\n \"Editar\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"No hay instancias todav\u00EDan, agregue mas presionando el signo +\"\n ],\n \"Only show active instances\": [\n \"no se pudo crear la instancia\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"Sin instancia default\"\n ],\n \"Deleted\": [\n \"Eliminar\"\n ],\n \"Show all instances\": [\n \"Sin instancia default\"\n ],\n \"All\": [\n \"Todo\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"Sin instancia default\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"no se pudo crear la instancia\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"URL del Exchange\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"no puede ser vac\u00EDo\"\n ],\n \"clear\": [\n \"Limpiar\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"nunca\"\n ],\n \"Country\": [\n \"Pa\u00EDs\"\n ],\n \"Address\": [\n \"Direcci\u00F3n\"\n ],\n \"Building number\": [\n \"N\u00FAmero de edificio\"\n ],\n \"Building name\": [\n \"Nombre de edificio\"\n ],\n \"Street\": [\n \"Calle\"\n ],\n \"Post code\": [\n \"C\u00F3digo postal\"\n ],\n \"Town location\": [\n \"Ubicaci\u00F3n de ciudad\"\n ],\n \"Town\": [\n \"Ciudad\"\n ],\n \"District\": [\n \"Distrito\"\n ],\n \"Country subdivision\": [\n \"Subdivisi\u00F3n de pa\u00EDs\"\n ],\n \"Product id\": [\n \"Id de producto\"\n ],\n \"Description\": [\n \"Descripcion\"\n ],\n \"Product\": [\n \"Productos\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"No se encontraron productos\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"Debe ser mayor a 0\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"Cantidad\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"La imagen debe ser mas chica que 1 MB\"\n ],\n \"Add\": [\n \"Agregar\"\n ],\n \"Remove\": [\n \"Eliminar\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"Monto\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"Moneda y valor separado por dos puntos\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"no se pudo eliminar el producto\"\n ],\n \"Image\": [\n \"Imagen\"\n ],\n \"photo of the product\": [\n \"no se pudo crear el producto\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"Unidad\"\n ],\n \"name of the product unit\": [\n \"No se encontraron productos\"\n ],\n \"Price\": [\n \"Precio\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"Impuesto\"\n ],\n \"image\": [\n \"Imagen\"\n ],\n \"description\": [\n \"Descripcion\"\n ],\n \"quantity\": [\n \"Cantidad\"\n ],\n \"unit price\": [\n \"Precio total\"\n ],\n \"total price\": [\n \"Precio total\"\n ],\n \"required\": [\n \"Login necesario\"\n ],\n \"must be greater than 0\": [\n \"Debe ser mayor a 0\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"deber\u00EDan ser iguales\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"Plazo de reembolso autom\u00E1tico\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"Plazo de reembolso autom\u00E1tico\"\n ],\n \"Manage products in order\": [\n \"No se encontraron productos\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"Precio total\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"pedido por el consumidor\"\n ],\n \"Order price\": [\n \"Precio de la orden\"\n ],\n \"final order price\": [\n \"Precio de la orden\"\n ],\n \"Summary\": [\n \"Resumen\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"Fecha de entrega\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"Ubicaci\u00F3n\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"URL de completitud\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"Opciones de pago\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"Plazo de pago\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"Plazo de reembolso\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"Retrazo de transferencia por omisi\u00F3n\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"Plazo de reembolso autom\u00E1tico\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"Impuesto m\u00E1ximo de deposito por omisi\u00F3n\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"Impuesto de transferencia m\u00E1ximo\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"Amortizaci\u00F3n de comisi\u00F3n de transferencia\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"Administrar token\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"Login necesario\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"Informaci\u00F3n extra\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"nunca\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\u00D3rdenes\"\n ],\n \"create order\": [\n \"creado\"\n ],\n \"load newer orders\": [\n \"cargar nuevas ordenes\"\n ],\n \"Date\": [\n \"Fecha\"\n ],\n \"Refund\": [\n \"Devoluci\u00F3n\"\n ],\n \"copy url\": [\n \"copiar url\"\n ],\n \"load older orders\": [\n \"cargar viejas ordenes\"\n ],\n \"No orders have been found matching your query!\": [\n \"No se enconraron ordenes\"\n ],\n \"duplicated\": [\n \"duplicado\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"fecha\"\n ],\n \"amount\": [\n \"monto\"\n ],\n \"reason\": [\n \"raz\u00F3n\"\n ],\n \"amount to be refunded\": [\n \"No se pudo create el reembolso\"\n ],\n \"Max refundable:\": [\n \"M\u00E1ximo reembolzable:\"\n ],\n \"Reason\": [\n \"Raz\u00F3n\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"pedido por el consumidor\"\n ],\n \"other\": [\n \"otro\"\n ],\n \"why this order is being refunded\": [\n \"No se enconraron ordenes\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"M\u00E1xima comisi\u00F3n\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"Impuesto de transferencia m\u00E1ximo\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"creado\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"Plazo de reembolso autom\u00E1tico\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"Informaci\u00F3n extra\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"Orden\"\n ],\n \"claimed\": [\n \"reclamado\"\n ],\n \"claimed at\": [\n \"reclamado\"\n ],\n \"Timeline\": [\n \"Cronolog\u00EDa\"\n ],\n \"Payment details\": [\n \"Detalles de pago\"\n ],\n \"Order status\": [\n \"Estado de orden\"\n ],\n \"Product list\": [\n \"Lista de producto\"\n ],\n \"paid\": [\n \"pagados\"\n ],\n \"wired\": [\n \"transferido\"\n ],\n \"refunded\": [\n \"reembolzado\"\n ],\n \"refund order\": [\n \"reembolzado\"\n ],\n \"not refundable\": [\n \"M\u00E1ximo reembolzable:\"\n ],\n \"refund\": [\n \"reembolzar\"\n ],\n \"Refunded amount\": [\n \"Monto reembolzado\"\n ],\n \"Refund taken\": [\n \"Reembolzado\"\n ],\n \"Status URL\": [\n \"URL de estado de orden\"\n ],\n \"Refund URI\": [\n \"Devoluci\u00F3n\"\n ],\n \"unpaid\": [\n \"impago\"\n ],\n \"pay at\": [\n \"pagar en\"\n ],\n \"created at\": [\n \"creado\"\n ],\n \"Order status URL\": [\n \"URL de estado de orden\"\n ],\n \"Payment URI\": [\n \"URI de pago\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"Estado de orden desconocido. Esto es un error, por favor contacte a su administrador.\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"reembolzo creado satisfactoriamente\"\n ],\n \"could not create the refund\": [\n \"No se pudo create el reembolso\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"ir a id de orden\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"Pagado\"\n ],\n \"only show orders with refunds\": [\n \"No se pudo create el reembolso\"\n ],\n \"Refunded\": [\n \"Reembolzado\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"No transferido\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"ir a id de orden\"\n ],\n \"order not found\": [\n \"Servidor no encontrado\"\n ],\n \"could not get the order to refund\": [\n \"No se pudo create el reembolso\"\n ],\n \"Loading...\": [\n \"Cargando...\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"Administrar stock\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"Inifinito\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"la p\u00E9rdida no puede ser mayor al stock actual + entrante (max %1$s )\"\n ],\n \"Incoming\": [\n \"Ingresando\"\n ],\n \"Lost\": [\n \"Perdido\"\n ],\n \"Current\": [\n \"Actual\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"sin stock\"\n ],\n \"Next restock\": [\n \"Pr\u00F3ximo reabastecimiento\"\n ],\n \"Delivery address\": [\n \"Direcci\u00F3n de entrega\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"Existencias\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"no se pudo crear el producto\"\n ],\n \"Products\": [\n \"Productos\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"Venta\"\n ],\n \"Profit\": [\n \"Ganancia\"\n ],\n \"Sold\": [\n \"Vendido\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"producto actualizado correctamente\"\n ],\n \"Update\": [\n \"Actualizar\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"no se pudo actualizar el producto\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"No hay propinas todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"product updated successfully\": [\n \"producto actualizado correctamente\"\n ],\n \"could not update the product\": [\n \"no se pudo actualizar el producto\"\n ],\n \"product delete successfully\": [\n \"producto fue eliminado correctamente\"\n ],\n \"could not delete the product\": [\n \"no se pudo eliminar el producto\"\n ],\n \"Product id:\": [\n \"Id de producto\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"Debe ser mayor a 0\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"Instancia\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"URL del Exchange\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"no se pudo informar la transferencia\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"No se pudo create el reembolso\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"creado\"\n ],\n \"Exchange balance\": [\n \"Monto inicial\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"Monto confirmado\"\n ],\n \"Account address\": [\n \"Direcci\u00F3n de cuenta\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"Propinas\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"Token de autorizaci\u00F3n\"\n ],\n \"Expiration\": [\n \"Informaci\u00F3n extra\"\n ],\n \"amount of tip\": [\n \"monto\"\n ],\n \"Justification\": [\n \"Jurisdicci\u00F3n\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"Servidor no encontrado\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"cargar nuevas transferencias\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"No hay transferencias todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"Expected Balance\": [\n \"Ejecutado en\"\n ],\n \"could not create the tip\": [\n \"No se pudo create el reembolso\"\n ],\n \"should not be empty\": [\n \"no puede ser vac\u00EDo\"\n ],\n \"should be greater that 0\": [\n \"Debe ser mayor a 0\"\n ],\n \"can't be empty\": [\n \"no puede ser vac\u00EDo\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"Estado de orden\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"Opciones de pago\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"no se pudo informar la transferencia\"\n ],\n \"Amount is required\": [\n \"Login necesario\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"No se pudo create el reembolso\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"cargar nuevas transferencias\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"cargar viejas transferencias\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"No hay propinas todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"template delete successfully\": [\n \"producto fue eliminado correctamente\"\n ],\n \"could not delete the template\": [\n \"no se pudo eliminar el producto\"\n ],\n \"could not update template\": [\n \"no se pudo actualizar el producto\"\n ],\n \"should be one of '%1$s'\": [\n \"deber\u00EDan ser iguales\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"cargar nuevas ordenes\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"cargar viejas ordenes\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"No hay propinas todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"webhook delete successfully\": [\n \"producto fue eliminado correctamente\"\n ],\n \"could not delete the webhook\": [\n \"no se pudo eliminar el producto\"\n ],\n \"check the id, does not look valid\": [\n \"verificar el id, no parece v\u00E1lido\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"deber\u00EDa tener 52 caracteres, actualmente %1$s\"\n ],\n \"URL doesn't have the right format\": [\n \"La URL no tiene el formato correcto\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"Id de transferencia\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"no se pudo informar la transferencia\"\n ],\n \"Transfers\": [\n \"Transferencias\"\n ],\n \"add new transfer\": [\n \"cargar nuevas transferencias\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"cargar nuevas transferencias\"\n ],\n \"Credit\": [\n \"Cr\u00E9dito\"\n ],\n \"Confirmed\": [\n \"Confirmado\"\n ],\n \"Verified\": [\n \"Verificado\"\n ],\n \"Executed at\": [\n \"Ejecutado en\"\n ],\n \"yes\": [\n \"si\"\n ],\n \"no\": [\n \"no\"\n ],\n \"unknown\": [\n \"desconocido\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"cargar viejas transferencias\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"No hay transferencias todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"filter by account address\": [\n \"Direcci\u00F3n de cuenta\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"Verificado\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"N\u00FAmero de edificio\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"no se pudo informar la transferencia\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"N\u00FAmero de edificio\"\n ],\n \"Account\": [\n \"Monto\"\n ],\n \"Account number.\": [\n \"Direcci\u00F3n de cuenta\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"Nombre de edificio\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"Impuesto m\u00E1ximo de deposito por omisi\u00F3n\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"Impuesto m\u00E1ximo de transferencia por omisi\u00F3n\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"Amortizaci\u00F3n de impuesto de transferencia por omisi\u00F3n\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"Jurisdicci\u00F3n\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"Retrazo de pago por omisi\u00F3n\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"Retrazo de transferencia por omisi\u00F3n\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"Instancia\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"Limpiar el token de autorizaci\u00F3n significa acceso publico a la instancia\"\n ],\n \"Manage access token\": [\n \"Administrar token\"\n ],\n \"Failed to create instance\": [\n \"no se pudo crear la instancia\"\n ],\n \"Login required\": [\n \"Login necesario\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"Acceso denegado\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"Servidir reporto un problema: HTTP status #%1$s\"\n ],\n \"Access denied\": [\n \"Acceso denegado\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"Sin instancia default\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"Instancia\"\n ],\n \"Settings\": [\n \"Configuraci\u00F3n\"\n ],\n \"Connection\": [\n \"Conexi\u00F3n\"\n ],\n \"New\": [\n \"Nuevo\"\n ],\n \"List\": [\n \"Lista\"\n ],\n \"Log out\": [\n \"Salir\"\n ],\n \"Check your token is valid\": [\n \"Verifica que el token sea valido\"\n ],\n \"Couldn't access the server.\": [\n \"No se pudo acceder al servidor.\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"No se pudo inferir el id de la instancia con la url %1$s\"\n ],\n \"Server not found\": [\n \"Servidor no encontrado\"\n ],\n \"Couldn't access the server\": [\n \"No se pudo aceder al servidor\"\n ],\n \"Got message %1$s from %2$s\": [\n \"Recivimos el mensaje %1$s desde %2$s\"\n ],\n \"Unexpected Error\": [\n \"Error inesperado\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"El valor %1$s es invalido para una URL de pago\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"Agregar\"\n ],\n \"Deleting\": [\n \"Borrando\"\n ],\n \"Changing\": [\n \"Cambiando\"\n ],\n \"Order ID\": [\n \"Orden\"\n ],\n \"Payment URL\": [\n \"Detalles de pago\"\n ]\n }\n }\n};\n\nstrings['fr'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\nstrings['it'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\nstrings['sv'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport langIcon from \"../../assets/icons/languageicon.svg\";\nimport { strings as messages } from \"../../i18n/strings.js\";\n\ntype LangsNames = {\n [P in keyof typeof messages]: string;\n};\n\nconst names: LangsNames = {\n es: \"Espa\u00F1ol [es]\",\n en: \"English [en]\",\n fr: \"Fran\u00E7ais [fr]\",\n de: \"Deutsch [de]\",\n sv: \"Svenska [sv]\",\n it: \"Italiano [it]\",\n};\n\nfunction getLangName(s: keyof LangsNames | string) {\n if (names[s]) return names[s];\n return s;\n}\n\nexport function LangSelector(): VNode {\n const [updatingLang, setUpdatingLang] = useState(false);\n const { lang, changeLanguage } = useTranslationContext();\n\n return (\n
    \n
    \n setUpdatingLang(!updatingLang)}\n >\n
    \n \n
    \n {getLangName(lang)}\n
    \n \n
    \n \n
    \n {updatingLang && (\n
    \n
    \n {Object.keys(messages)\n .filter((l) => l !== lang)\n .map((l) => (\n {\n changeLanguage(l);\n setUpdatingLang(false);\n }}\n >\n {getLangName(l)}\n \n ))}\n
    \n
    \n )}\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, VNode } from \"preact\";\nimport { LangSelector } from \"./LangSelector.js\";\nimport logo from \"../../assets/logo-2021.svg\";\n\ninterface Props {\n onMobileMenu: () => void;\n title: string;\n}\n\nexport function NavigationBar({ onMobileMenu, title }: Props): VNode {\n return (\n \n
    \n \n {title}\n \n\n {\n onMobileMenu();\n e.stopPropagation();\n }}\n >\n \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useBackendContext } from \"../../context/backend.js\";\nimport { useConfigContext } from \"../../context/config.js\";\nimport { useInstanceKYCDetails } from \"../../hooks/instance.js\";\nimport { LangSelector } from \"./LangSelector.js\";\n\nconst GIT_HASH = typeof __GIT_HASH__ !== \"undefined\" ? __GIT_HASH__ : undefined;\nconst VERSION = typeof __VERSION__ !== \"undefined\" ? __VERSION__ : undefined;\n\ninterface Props {\n onLogout: () => void;\n mobile?: boolean;\n instance: string;\n admin?: boolean;\n mimic?: boolean;\n}\n\nexport function Sidebar({\n mobile,\n instance,\n onLogout,\n admin,\n mimic,\n}: Props): VNode {\n const config = useConfigContext();\n const backend = useBackendContext();\n const { i18n } = useTranslationContext();\n const kycStatus = useInstanceKYCDetails();\n const needKYC = kycStatus.ok && kycStatus.data.type === \"redirect\";\n\n return (\n
    \n )}\n
    \n
    \n
    \n Taler Backoffice\n
    \n \n {VERSION} ({config.version})\n
    \n
    \n
    \n
    \n {instance ? (\n \n

    \n Instance\n

    \n \n
    \n ) : undefined}\n

    \n Connection\n

    \n
      \n
    • \n
      \n \n \n \n {config.currency}\n
      \n
    • \n
    • \n
      \n \n \n \n \n {new URL(backend.url).hostname}\n \n
      \n
    • \n
    • \n
      \n \n ID\n \n \n {!instance ? \"default\" : instance}\n \n
      \n
    • \n {admin && !mimic && (\n \n

      \n Instances\n

      \n
    • \n \n \n \n \n \n New\n \n \n
    • \n
    • \n \n \n \n \n \n List\n \n \n
    • \n
      \n )}\n
    • \n onLogout()}\n >\n \n \n \n \n Log out\n \n \n
    • \n
    \n
    \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { ComponentChildren, Fragment, h, VNode } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { AdminPaths } from \"../../AdminRoutes.js\";\nimport { InstancePaths } from \"../../InstanceRoutes.js\";\nimport { Notification } from \"../../utils/types.js\";\nimport { NavigationBar } from \"./NavigationBar.js\";\nimport { Sidebar } from \"./SideBar.js\";\n\nfunction getInstanceTitle(path: string, id: string): string {\n switch (path) {\n case InstancePaths.update:\n return `${id}: Settings`;\n case InstancePaths.order_list:\n return `${id}: Orders`;\n case InstancePaths.order_new:\n return `${id}: New order`;\n case InstancePaths.product_list:\n return `${id}: Products`;\n case InstancePaths.product_new:\n return `${id}: New product`;\n case InstancePaths.product_update:\n return `${id}: Update product`;\n case InstancePaths.reserves_new:\n return `${id}: New reserve`;\n case InstancePaths.reserves_list:\n return `${id}: Reserves`;\n case InstancePaths.transfers_list:\n return `${id}: Transfers`;\n case InstancePaths.transfers_new:\n return `${id}: New transfer`;\n case InstancePaths.webhooks_list:\n return `${id}: Webhooks`;\n case InstancePaths.webhooks_new:\n return `${id}: New webhook`;\n case InstancePaths.webhooks_update:\n return `${id}: Update webhook`;\n case InstancePaths.templates_new:\n return `${id}: New template`;\n case InstancePaths.templates_update:\n return `${id}: Update template`;\n case InstancePaths.templates_list:\n return `${id}: Templates`;\n case InstancePaths.templates_use:\n return `${id}: Use template`;\n default:\n return \"\";\n }\n}\n\nfunction getAdminTitle(path: string, instance: string) {\n if (path === AdminPaths.new_instance) return `New instance`;\n if (path === AdminPaths.list_instances) return `Instances`;\n return getInstanceTitle(path, instance);\n}\n\ninterface MenuProps {\n title?: string;\n path: string;\n instance: string;\n admin?: boolean;\n onLogout?: () => void;\n setInstanceName: (s: string) => void;\n}\n\nfunction WithTitle({\n title,\n children,\n}: {\n title: string;\n children: ComponentChildren;\n}): VNode {\n useEffect(() => {\n document.title = `Taler Backoffice: ${title}`;\n }, [title]);\n return {children};\n}\n\nexport function Menu({\n onLogout,\n title,\n instance,\n path,\n admin,\n setInstanceName,\n}: MenuProps): VNode {\n const [mobileOpen, setMobileOpen] = useState(false);\n\n const titleWithSubtitle = title\n ? title\n : !admin\n ? getInstanceTitle(path, instance)\n : getAdminTitle(path, instance);\n const adminInstance = instance === \"default\";\n const mimic = admin && !adminInstance;\n return (\n \n setMobileOpen(false)}\n >\n setMobileOpen(!mobileOpen)}\n title={titleWithSubtitle}\n />\n\n {onLogout && (\n \n )}\n\n {mimic && (\n \n )}\n
    \n \n );\n}\n\ninterface NotYetReadyAppMenuProps {\n title: string;\n onLogout?: () => void;\n}\n\ninterface NotifProps {\n notification?: Notification;\n}\nexport function NotificationCard({\n notification: n,\n}: NotifProps): VNode | null {\n if (!n) return null;\n return (\n
    \n
    \n
    \n \n
    \n

    {n.message}

    \n
    \n {n.description && (\n
    \n
    {n.description}
    \n {n.details &&
    {n.details}
    }\n
    \n )}\n \n
    \n
    \n
    \n );\n}\n\nexport function NotYetReadyAppMenu({\n onLogout,\n title,\n}: NotYetReadyAppMenuProps): VNode {\n const [mobileOpen, setMobileOpen] = useState(false);\n\n useEffect(() => {\n document.title = `Taler Backoffice: ${title}`;\n }, [title]);\n\n return (\n setMobileOpen(false)}\n >\n setMobileOpen(!mobileOpen)}\n title={title}\n />\n {onLogout && (\n \n )}\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { createHashHistory } from \"history\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { Router, Route, route } from \"preact-router\";\nimport { useState } from \"preact/hooks\";\nimport {\n NotificationCard,\n NotYetReadyAppMenu,\n} from \"./components/menu/index.js\";\nimport { useBackendContext } from \"./context/backend.js\";\nimport { useBackendInstancesTestForAdmin } from \"./hooks/backend.js\";\nimport { InstanceRoutes } from \"./InstanceRoutes.js\";\nimport LoginPage from \"./paths/login/index.js\";\nimport { INSTANCE_ID_LOOKUP } from \"./utils/constants.js\";\n\nexport function ApplicationReadyRoutes(): VNode {\n const { i18n } = useTranslationContext();\n const {\n url: backendURL,\n updateLoginStatus,\n clearAllTokens,\n } = useBackendContext();\n\n const result = useBackendInstancesTestForAdmin();\n\n const clearTokenAndGoToRoot = () => {\n clearAllTokens();\n route(\"/\");\n };\n\n if (result.clientError && result.isUnauthorized) {\n return (\n \n \n \n \n \n );\n }\n\n if (result.loading) return ;\n\n let admin = true;\n let instanceNameByBackendURL;\n\n if (!result.ok) {\n const path = new URL(backendURL).pathname;\n const match = INSTANCE_ID_LOOKUP.exec(path);\n if (!match || !match[1]) {\n // this should be rare because\n // query to /config is ok but the URL\n // does not match our pattern\n return (\n \n \n \n \n \n );\n }\n\n admin = false;\n instanceNameByBackendURL = match[1];\n }\n\n const history = createHashHistory();\n return (\n \n \n \n );\n}\n\nfunction DefaultMainRoute({\n instance,\n admin,\n instanceNameByBackendURL,\n url, //from preact-router\n}: any): VNode {\n const [instanceName, setInstanceName] = useState(\n instanceNameByBackendURL || instance || \"default\",\n );\n\n return (\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n TranslationProvider,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { route } from \"preact-router\";\nimport { useMemo } from \"preact/hooks\";\nimport { ApplicationReadyRoutes } from \"./ApplicationReadyRoutes.js\";\nimport { Loading } from \"./components/exception/loading.js\";\nimport {\n NotificationCard,\n NotYetReadyAppMenu,\n} from \"./components/menu/index.js\";\nimport {\n BackendContextProvider,\n useBackendContext,\n} from \"./context/backend.js\";\nimport { ConfigContextProvider } from \"./context/config.js\";\nimport { useBackendConfig } from \"./hooks/backend.js\";\nimport { strings } from \"./i18n/strings.js\";\nimport LoginPage from \"./paths/login/index.js\";\n\nexport function Application(): VNode {\n return (\n // \n \n \n \n \n \n // \n );\n}\n\nfunction ApplicationStatusRoutes(): VNode {\n const { updateLoginStatus, triedToLog } = useBackendContext();\n const result = useBackendConfig();\n const { i18n } = useTranslationContext();\n\n const updateLoginInfoAndGoToRoot = (url: string, token?: string) => {\n updateLoginStatus(url, token);\n route(\"/\");\n };\n\n const { currency, version } = result.ok\n ? result.data\n : { currency: \"unknown\", version: \"unknown\" };\n const ctx = useMemo(() => ({ currency, version }), [currency, version]);\n\n if (!triedToLog) {\n return (\n \n \n \n \n );\n }\n\n if (result.clientError && result.isUnauthorized)\n return (\n \n \n \n \n );\n\n if (result.clientError && result.isNotfound)\n return (\n \n \n \n \n \n );\n\n if (result.serverError)\n return (\n \n \n \n \n \n );\n\n if (result.loading) return ;\n\n if (!result.ok)\n return (\n \n \n \n \n \n );\n\n return (\n
    \n \n \n \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { Application } from \"./Application.js\";\n\nimport { h, render } from \"preact\";\nimport \"./scss/main.scss\";\n\nconst app = document.getElementById(\"app\");\n\nrender(, app as any);\n"], - "mappings": "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EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,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A,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA;AAAA,EAEJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA;AAAA,EAEJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EAC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", + "sourcesContent": ["var bigInt = (function (undefined) {\r\n \"use strict\";\r\n\r\n var BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_INT = 9007199254740992,\r\n MAX_INT_ARR = smallToArray(MAX_INT),\r\n DEFAULT_ALPHABET = \"0123456789abcdefghijklmnopqrstuvwxyz\";\r\n\r\n var supportsNativeBigInt = typeof BigInt === \"function\";\r\n\r\n function Integer(v, radix, alphabet, caseSensitive) {\r\n if (typeof v === \"undefined\") return Integer[0];\r\n if (typeof radix !== \"undefined\") return +radix === 10 && !alphabet ? parseValue(v) : parseBase(v, radix, alphabet, caseSensitive);\r\n return parseValue(v);\r\n }\r\n\r\n function BigInteger(value, sign) {\r\n this.value = value;\r\n this.sign = sign;\r\n this.isSmall = false;\r\n }\r\n BigInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function SmallInteger(value) {\r\n this.value = value;\r\n this.sign = value < 0;\r\n this.isSmall = true;\r\n }\r\n SmallInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function NativeBigInt(value) {\r\n this.value = value;\r\n }\r\n NativeBigInt.prototype = Object.create(Integer.prototype);\r\n\r\n function isPrecise(n) {\r\n return -MAX_INT < n && n < MAX_INT;\r\n }\r\n\r\n function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes\r\n if (n < 1e7)\r\n return [n];\r\n if (n < 1e14)\r\n return [n % 1e7, Math.floor(n / 1e7)];\r\n return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];\r\n }\r\n\r\n function arrayToSmall(arr) { // If BASE changes this function may need to change\r\n trim(arr);\r\n var length = arr.length;\r\n if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {\r\n switch (length) {\r\n case 0: return 0;\r\n case 1: return arr[0];\r\n case 2: return arr[0] + arr[1] * BASE;\r\n default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function trim(v) {\r\n var i = v.length;\r\n while (v[--i] === 0);\r\n v.length = i + 1;\r\n }\r\n\r\n function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger\r\n var x = new Array(length);\r\n var i = -1;\r\n while (++i < length) {\r\n x[i] = 0;\r\n }\r\n return x;\r\n }\r\n\r\n function truncate(n) {\r\n if (n > 0) return Math.floor(n);\r\n return Math.ceil(n);\r\n }\r\n\r\n function add(a, b) { // assumes a and b are arrays with a.length >= b.length\r\n var l_a = a.length,\r\n l_b = b.length,\r\n r = new Array(l_a),\r\n carry = 0,\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l_b; i++) {\r\n sum = a[i] + b[i] + carry;\r\n carry = sum >= base ? 1 : 0;\r\n r[i] = sum - carry * base;\r\n }\r\n while (i < l_a) {\r\n sum = a[i] + carry;\r\n carry = sum === base ? 1 : 0;\r\n r[i++] = sum - carry * base;\r\n }\r\n if (carry > 0) r.push(carry);\r\n return r;\r\n }\r\n\r\n function addAny(a, b) {\r\n if (a.length >= b.length) return add(a, b);\r\n return add(b, a);\r\n }\r\n\r\n function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l; i++) {\r\n sum = a[i] - base + carry;\r\n carry = Math.floor(sum / base);\r\n r[i] = sum - carry * base;\r\n carry += 1;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall) {\r\n return new BigInteger(addSmall(a, Math.abs(b)), this.sign);\r\n }\r\n return new BigInteger(addAny(a, b), this.sign);\r\n };\r\n BigInteger.prototype.plus = BigInteger.prototype.add;\r\n\r\n SmallInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n if (isPrecise(a + b)) return new SmallInteger(a + b);\r\n b = smallToArray(Math.abs(b));\r\n }\r\n return new BigInteger(addSmall(b, Math.abs(a)), a < 0);\r\n };\r\n SmallInteger.prototype.plus = SmallInteger.prototype.add;\r\n\r\n NativeBigInt.prototype.add = function (v) {\r\n return new NativeBigInt(this.value + parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.plus = NativeBigInt.prototype.add;\r\n\r\n function subtract(a, b) { // assumes a and b are arrays with a >= b\r\n var a_l = a.length,\r\n b_l = b.length,\r\n r = new Array(a_l),\r\n borrow = 0,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < b_l; i++) {\r\n difference = a[i] - borrow - b[i];\r\n if (difference < 0) {\r\n difference += base;\r\n borrow = 1;\r\n } else borrow = 0;\r\n r[i] = difference;\r\n }\r\n for (i = b_l; i < a_l; i++) {\r\n difference = a[i] - borrow;\r\n if (difference < 0) difference += base;\r\n else {\r\n r[i++] = difference;\r\n break;\r\n }\r\n r[i] = difference;\r\n }\r\n for (; i < a_l; i++) {\r\n r[i] = a[i];\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function subtractAny(a, b, sign) {\r\n var value;\r\n if (compareAbs(a, b) >= 0) {\r\n value = subtract(a, b);\r\n } else {\r\n value = subtract(b, a);\r\n sign = !sign;\r\n }\r\n value = arrayToSmall(value);\r\n if (typeof value === \"number\") {\r\n if (sign) value = -value;\r\n return new SmallInteger(value);\r\n }\r\n return new BigInteger(value, sign);\r\n }\r\n\r\n function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n carry = -b,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < l; i++) {\r\n difference = a[i] + carry;\r\n carry = Math.floor(difference / base);\r\n difference %= base;\r\n r[i] = difference < 0 ? difference + base : difference;\r\n }\r\n r = arrayToSmall(r);\r\n if (typeof r === \"number\") {\r\n if (sign) r = -r;\r\n return new SmallInteger(r);\r\n } return new BigInteger(r, sign);\r\n }\r\n\r\n BigInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall)\r\n return subtractSmall(a, Math.abs(b), this.sign);\r\n return subtractAny(a, b, this.sign);\r\n };\r\n BigInteger.prototype.minus = BigInteger.prototype.subtract;\r\n\r\n SmallInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n return new SmallInteger(a - b);\r\n }\r\n return subtractSmall(b, Math.abs(a), a >= 0);\r\n };\r\n SmallInteger.prototype.minus = SmallInteger.prototype.subtract;\r\n\r\n NativeBigInt.prototype.subtract = function (v) {\r\n return new NativeBigInt(this.value - parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract;\r\n\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this.value, !this.sign);\r\n };\r\n SmallInteger.prototype.negate = function () {\r\n var sign = this.sign;\r\n var small = new SmallInteger(-this.value);\r\n small.sign = !sign;\r\n return small;\r\n };\r\n NativeBigInt.prototype.negate = function () {\r\n return new NativeBigInt(-this.value);\r\n }\r\n\r\n BigInteger.prototype.abs = function () {\r\n return new BigInteger(this.value, false);\r\n };\r\n SmallInteger.prototype.abs = function () {\r\n return new SmallInteger(Math.abs(this.value));\r\n };\r\n NativeBigInt.prototype.abs = function () {\r\n return new NativeBigInt(this.value >= 0 ? this.value : -this.value);\r\n }\r\n\r\n\r\n function multiplyLong(a, b) {\r\n var a_l = a.length,\r\n b_l = b.length,\r\n l = a_l + b_l,\r\n r = createArray(l),\r\n base = BASE,\r\n product, carry, i, a_i, b_j;\r\n for (i = 0; i < a_l; ++i) {\r\n a_i = a[i];\r\n for (var j = 0; j < b_l; ++j) {\r\n b_j = b[j];\r\n product = a_i * b_j + r[i + j];\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n r[i + j + 1] += carry;\r\n }\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n carry = 0,\r\n product, i;\r\n for (i = 0; i < l; i++) {\r\n product = a[i] * b + carry;\r\n carry = Math.floor(product / base);\r\n r[i] = product - carry * base;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n function shiftLeft(x, n) {\r\n var r = [];\r\n while (n-- > 0) r.push(0);\r\n return r.concat(x);\r\n }\r\n\r\n function multiplyKaratsuba(x, y) {\r\n var n = Math.max(x.length, y.length);\r\n\r\n if (n <= 30) return multiplyLong(x, y);\r\n n = Math.ceil(n / 2);\r\n\r\n var b = x.slice(n),\r\n a = x.slice(0, n),\r\n d = y.slice(n),\r\n c = y.slice(0, n);\r\n\r\n var ac = multiplyKaratsuba(a, c),\r\n bd = multiplyKaratsuba(b, d),\r\n abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));\r\n\r\n var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));\r\n trim(product);\r\n return product;\r\n }\r\n\r\n // The following function is derived from a surface fit of a graph plotting the performance difference\r\n // between long multiplication and karatsuba multiplication versus the lengths of the two arrays.\r\n function useKaratsuba(l1, l2) {\r\n return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0;\r\n }\r\n\r\n BigInteger.prototype.multiply = function (v) {\r\n var n = parseValue(v),\r\n a = this.value, b = n.value,\r\n sign = this.sign !== n.sign,\r\n abs;\r\n if (n.isSmall) {\r\n if (b === 0) return Integer[0];\r\n if (b === 1) return this;\r\n if (b === -1) return this.negate();\r\n abs = Math.abs(b);\r\n if (abs < BASE) {\r\n return new BigInteger(multiplySmall(a, abs), sign);\r\n }\r\n b = smallToArray(abs);\r\n }\r\n if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes\r\n return new BigInteger(multiplyKaratsuba(a, b), sign);\r\n return new BigInteger(multiplyLong(a, b), sign);\r\n };\r\n\r\n BigInteger.prototype.times = BigInteger.prototype.multiply;\r\n\r\n function multiplySmallAndArray(a, b, sign) { // a >= 0\r\n if (a < BASE) {\r\n return new BigInteger(multiplySmall(b, a), sign);\r\n }\r\n return new BigInteger(multiplyLong(b, smallToArray(a)), sign);\r\n }\r\n SmallInteger.prototype._multiplyBySmall = function (a) {\r\n if (isPrecise(a.value * this.value)) {\r\n return new SmallInteger(a.value * this.value);\r\n }\r\n return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);\r\n };\r\n BigInteger.prototype._multiplyBySmall = function (a) {\r\n if (a.value === 0) return Integer[0];\r\n if (a.value === 1) return this;\r\n if (a.value === -1) return this.negate();\r\n return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);\r\n };\r\n SmallInteger.prototype.multiply = function (v) {\r\n return parseValue(v)._multiplyBySmall(this);\r\n };\r\n SmallInteger.prototype.times = SmallInteger.prototype.multiply;\r\n\r\n NativeBigInt.prototype.multiply = function (v) {\r\n return new NativeBigInt(this.value * parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.times = NativeBigInt.prototype.multiply;\r\n\r\n function square(a) {\r\n //console.assert(2 * BASE * BASE < MAX_INT);\r\n var l = a.length,\r\n r = createArray(l + l),\r\n base = BASE,\r\n product, carry, i, a_i, a_j;\r\n for (i = 0; i < l; i++) {\r\n a_i = a[i];\r\n carry = 0 - a_i * a_i;\r\n for (var j = i; j < l; j++) {\r\n a_j = a[j];\r\n product = 2 * (a_i * a_j) + r[i + j] + carry;\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n }\r\n r[i + l] = carry;\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.square = function () {\r\n return new BigInteger(square(this.value), false);\r\n };\r\n\r\n SmallInteger.prototype.square = function () {\r\n var value = this.value * this.value;\r\n if (isPrecise(value)) return new SmallInteger(value);\r\n return new BigInteger(square(smallToArray(Math.abs(this.value))), false);\r\n };\r\n\r\n NativeBigInt.prototype.square = function (v) {\r\n return new NativeBigInt(this.value * this.value);\r\n }\r\n\r\n function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n base = BASE,\r\n result = createArray(b.length),\r\n divisorMostSignificantDigit = b[b_l - 1],\r\n // normalization\r\n lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),\r\n remainder = multiplySmall(a, lambda),\r\n divisor = multiplySmall(b, lambda),\r\n quotientDigit, shift, carry, borrow, i, l, q;\r\n if (remainder.length <= a_l) remainder.push(0);\r\n divisor.push(0);\r\n divisorMostSignificantDigit = divisor[b_l - 1];\r\n for (shift = a_l - b_l; shift >= 0; shift--) {\r\n quotientDigit = base - 1;\r\n if (remainder[shift + b_l] !== divisorMostSignificantDigit) {\r\n quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);\r\n }\r\n // quotientDigit <= base - 1\r\n carry = 0;\r\n borrow = 0;\r\n l = divisor.length;\r\n for (i = 0; i < l; i++) {\r\n carry += quotientDigit * divisor[i];\r\n q = Math.floor(carry / base);\r\n borrow += remainder[shift + i] - (carry - q * base);\r\n carry = q;\r\n if (borrow < 0) {\r\n remainder[shift + i] = borrow + base;\r\n borrow = -1;\r\n } else {\r\n remainder[shift + i] = borrow;\r\n borrow = 0;\r\n }\r\n }\r\n while (borrow !== 0) {\r\n quotientDigit -= 1;\r\n carry = 0;\r\n for (i = 0; i < l; i++) {\r\n carry += remainder[shift + i] - base + divisor[i];\r\n if (carry < 0) {\r\n remainder[shift + i] = carry + base;\r\n carry = 0;\r\n } else {\r\n remainder[shift + i] = carry;\r\n carry = 1;\r\n }\r\n }\r\n borrow += carry;\r\n }\r\n result[shift] = quotientDigit;\r\n }\r\n // denormalization\r\n remainder = divModSmall(remainder, lambda)[0];\r\n return [arrayToSmall(result), arrayToSmall(remainder)];\r\n }\r\n\r\n function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/\r\n // Performs faster than divMod1 on larger input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n result = [],\r\n part = [],\r\n base = BASE,\r\n guess, xlen, highx, highy, check;\r\n while (a_l) {\r\n part.unshift(a[--a_l]);\r\n trim(part);\r\n if (compareAbs(part, b) < 0) {\r\n result.push(0);\r\n continue;\r\n }\r\n xlen = part.length;\r\n highx = part[xlen - 1] * base + part[xlen - 2];\r\n highy = b[b_l - 1] * base + b[b_l - 2];\r\n if (xlen > b_l) {\r\n highx = (highx + 1) * base;\r\n }\r\n guess = Math.ceil(highx / highy);\r\n do {\r\n check = multiplySmall(b, guess);\r\n if (compareAbs(check, part) <= 0) break;\r\n guess--;\r\n } while (guess);\r\n result.push(guess);\r\n part = subtract(part, check);\r\n }\r\n result.reverse();\r\n return [arrayToSmall(result), arrayToSmall(part)];\r\n }\r\n\r\n function divModSmall(value, lambda) {\r\n var length = value.length,\r\n quotient = createArray(length),\r\n base = BASE,\r\n i, q, remainder, divisor;\r\n remainder = 0;\r\n for (i = length - 1; i >= 0; --i) {\r\n divisor = remainder * base + value[i];\r\n q = truncate(divisor / lambda);\r\n remainder = divisor - q * lambda;\r\n quotient[i] = q | 0;\r\n }\r\n return [quotient, remainder | 0];\r\n }\r\n\r\n function divModAny(self, v) {\r\n var value, n = parseValue(v);\r\n if (supportsNativeBigInt) {\r\n return [new NativeBigInt(self.value / n.value), new NativeBigInt(self.value % n.value)];\r\n }\r\n var a = self.value, b = n.value;\r\n var quotient;\r\n if (b === 0) throw new Error(\"Cannot divide by zero\");\r\n if (self.isSmall) {\r\n if (n.isSmall) {\r\n return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];\r\n }\r\n return [Integer[0], self];\r\n }\r\n if (n.isSmall) {\r\n if (b === 1) return [self, Integer[0]];\r\n if (b == -1) return [self.negate(), Integer[0]];\r\n var abs = Math.abs(b);\r\n if (abs < BASE) {\r\n value = divModSmall(a, abs);\r\n quotient = arrayToSmall(value[0]);\r\n var remainder = value[1];\r\n if (self.sign) remainder = -remainder;\r\n if (typeof quotient === \"number\") {\r\n if (self.sign !== n.sign) quotient = -quotient;\r\n return [new SmallInteger(quotient), new SmallInteger(remainder)];\r\n }\r\n return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];\r\n }\r\n b = smallToArray(abs);\r\n }\r\n var comparison = compareAbs(a, b);\r\n if (comparison === -1) return [Integer[0], self];\r\n if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]];\r\n\r\n // divMod1 is faster on smaller input sizes\r\n if (a.length + b.length <= 200)\r\n value = divMod1(a, b);\r\n else value = divMod2(a, b);\r\n\r\n quotient = value[0];\r\n var qSign = self.sign !== n.sign,\r\n mod = value[1],\r\n mSign = self.sign;\r\n if (typeof quotient === \"number\") {\r\n if (qSign) quotient = -quotient;\r\n quotient = new SmallInteger(quotient);\r\n } else quotient = new BigInteger(quotient, qSign);\r\n if (typeof mod === \"number\") {\r\n if (mSign) mod = -mod;\r\n mod = new SmallInteger(mod);\r\n } else mod = new BigInteger(mod, mSign);\r\n return [quotient, mod];\r\n }\r\n\r\n BigInteger.prototype.divmod = function (v) {\r\n var result = divModAny(this, v);\r\n return {\r\n quotient: result[0],\r\n remainder: result[1]\r\n };\r\n };\r\n NativeBigInt.prototype.divmod = SmallInteger.prototype.divmod = BigInteger.prototype.divmod;\r\n\r\n\r\n BigInteger.prototype.divide = function (v) {\r\n return divModAny(this, v)[0];\r\n };\r\n NativeBigInt.prototype.over = NativeBigInt.prototype.divide = function (v) {\r\n return new NativeBigInt(this.value / parseValue(v).value);\r\n };\r\n SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;\r\n\r\n BigInteger.prototype.mod = function (v) {\r\n return divModAny(this, v)[1];\r\n };\r\n NativeBigInt.prototype.mod = NativeBigInt.prototype.remainder = function (v) {\r\n return new NativeBigInt(this.value % parseValue(v).value);\r\n };\r\n SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;\r\n\r\n BigInteger.prototype.pow = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value,\r\n value, x, y;\r\n if (b === 0) return Integer[1];\r\n if (a === 0) return Integer[0];\r\n if (a === 1) return Integer[1];\r\n if (a === -1) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.sign) {\r\n return Integer[0];\r\n }\r\n if (!n.isSmall) throw new Error(\"The exponent \" + n.toString() + \" is too large.\");\r\n if (this.isSmall) {\r\n if (isPrecise(value = Math.pow(a, b)))\r\n return new SmallInteger(truncate(value));\r\n }\r\n x = this;\r\n y = Integer[1];\r\n while (true) {\r\n if (b & 1 === 1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === 0) break;\r\n b /= 2;\r\n x = x.square();\r\n }\r\n return y;\r\n };\r\n SmallInteger.prototype.pow = BigInteger.prototype.pow;\r\n\r\n NativeBigInt.prototype.pow = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value, b = n.value;\r\n var _0 = BigInt(0), _1 = BigInt(1), _2 = BigInt(2);\r\n if (b === _0) return Integer[1];\r\n if (a === _0) return Integer[0];\r\n if (a === _1) return Integer[1];\r\n if (a === BigInt(-1)) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.isNegative()) return new NativeBigInt(_0);\r\n var x = this;\r\n var y = Integer[1];\r\n while (true) {\r\n if ((b & _1) === _1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === _0) break;\r\n b /= _2;\r\n x = x.square();\r\n }\r\n return y;\r\n }\r\n\r\n BigInteger.prototype.modPow = function (exp, mod) {\r\n exp = parseValue(exp);\r\n mod = parseValue(mod);\r\n if (mod.isZero()) throw new Error(\"Cannot take modPow with modulus 0\");\r\n var r = Integer[1],\r\n base = this.mod(mod);\r\n if (exp.isNegative()) {\r\n exp = exp.multiply(Integer[-1]);\r\n base = base.modInv(mod);\r\n }\r\n while (exp.isPositive()) {\r\n if (base.isZero()) return Integer[0];\r\n if (exp.isOdd()) r = r.multiply(base).mod(mod);\r\n exp = exp.divide(2);\r\n base = base.square().mod(mod);\r\n }\r\n return r;\r\n };\r\n NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow;\r\n\r\n function compareAbs(a, b) {\r\n if (a.length !== b.length) {\r\n return a.length > b.length ? 1 : -1;\r\n }\r\n for (var i = a.length - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n\r\n BigInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) return 1;\r\n return compareAbs(a, b);\r\n };\r\n SmallInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = Math.abs(this.value),\r\n b = n.value;\r\n if (n.isSmall) {\r\n b = Math.abs(b);\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n return -1;\r\n };\r\n NativeBigInt.prototype.compareAbs = function (v) {\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n a = a >= 0 ? a : -a;\r\n b = b >= 0 ? b : -b;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n\r\n BigInteger.prototype.compare = function (v) {\r\n // See discussion about comparison with Infinity:\r\n // https://github.com/peterolson/BigInteger.js/issues/61\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (this.sign !== n.sign) {\r\n return n.sign ? 1 : -1;\r\n }\r\n if (n.isSmall) {\r\n return this.sign ? -1 : 1;\r\n }\r\n return compareAbs(a, b) * (this.sign ? -1 : 1);\r\n };\r\n BigInteger.prototype.compareTo = BigInteger.prototype.compare;\r\n\r\n SmallInteger.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n }\r\n if (a < 0 !== n.sign) {\r\n return a < 0 ? -1 : 1;\r\n }\r\n return a < 0 ? 1 : -1;\r\n };\r\n SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;\r\n\r\n NativeBigInt.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare;\r\n\r\n BigInteger.prototype.equals = function (v) {\r\n return this.compare(v) === 0;\r\n };\r\n NativeBigInt.prototype.eq = NativeBigInt.prototype.equals = SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;\r\n\r\n BigInteger.prototype.notEquals = function (v) {\r\n return this.compare(v) !== 0;\r\n };\r\n NativeBigInt.prototype.neq = NativeBigInt.prototype.notEquals = SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;\r\n\r\n BigInteger.prototype.greater = function (v) {\r\n return this.compare(v) > 0;\r\n };\r\n NativeBigInt.prototype.gt = NativeBigInt.prototype.greater = SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;\r\n\r\n BigInteger.prototype.lesser = function (v) {\r\n return this.compare(v) < 0;\r\n };\r\n NativeBigInt.prototype.lt = NativeBigInt.prototype.lesser = SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;\r\n\r\n BigInteger.prototype.greaterOrEquals = function (v) {\r\n return this.compare(v) >= 0;\r\n };\r\n NativeBigInt.prototype.geq = NativeBigInt.prototype.greaterOrEquals = SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;\r\n\r\n BigInteger.prototype.lesserOrEquals = function (v) {\r\n return this.compare(v) <= 0;\r\n };\r\n NativeBigInt.prototype.leq = NativeBigInt.prototype.lesserOrEquals = SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;\r\n\r\n BigInteger.prototype.isEven = function () {\r\n return (this.value[0] & 1) === 0;\r\n };\r\n SmallInteger.prototype.isEven = function () {\r\n return (this.value & 1) === 0;\r\n };\r\n NativeBigInt.prototype.isEven = function () {\r\n return (this.value & BigInt(1)) === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isOdd = function () {\r\n return (this.value[0] & 1) === 1;\r\n };\r\n SmallInteger.prototype.isOdd = function () {\r\n return (this.value & 1) === 1;\r\n };\r\n NativeBigInt.prototype.isOdd = function () {\r\n return (this.value & BigInt(1)) === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isPositive = function () {\r\n return !this.sign;\r\n };\r\n SmallInteger.prototype.isPositive = function () {\r\n return this.value > 0;\r\n };\r\n NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive;\r\n\r\n BigInteger.prototype.isNegative = function () {\r\n return this.sign;\r\n };\r\n SmallInteger.prototype.isNegative = function () {\r\n return this.value < 0;\r\n };\r\n NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative;\r\n\r\n BigInteger.prototype.isUnit = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isUnit = function () {\r\n return Math.abs(this.value) === 1;\r\n };\r\n NativeBigInt.prototype.isUnit = function () {\r\n return this.abs().value === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isZero = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isZero = function () {\r\n return this.value === 0;\r\n };\r\n NativeBigInt.prototype.isZero = function () {\r\n return this.value === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isDivisibleBy = function (v) {\r\n var n = parseValue(v);\r\n if (n.isZero()) return false;\r\n if (n.isUnit()) return true;\r\n if (n.compareAbs(2) === 0) return this.isEven();\r\n return this.mod(n).isZero();\r\n };\r\n NativeBigInt.prototype.isDivisibleBy = SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;\r\n\r\n function isBasicPrime(v) {\r\n var n = v.abs();\r\n if (n.isUnit()) return false;\r\n if (n.equals(2) || n.equals(3) || n.equals(5)) return true;\r\n if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;\r\n if (n.lesser(49)) return true;\r\n // we don't know if it's prime: let the other functions figure it out\r\n }\r\n\r\n function millerRabinTest(n, a) {\r\n var nPrev = n.prev(),\r\n b = nPrev,\r\n r = 0,\r\n d, t, i, x;\r\n while (b.isEven()) b = b.divide(2), r++;\r\n next: for (i = 0; i < a.length; i++) {\r\n if (n.lesser(a[i])) continue;\r\n x = bigInt(a[i]).modPow(b, n);\r\n if (x.isUnit() || x.equals(nPrev)) continue;\r\n for (d = r - 1; d != 0; d--) {\r\n x = x.square().mod(n);\r\n if (x.isUnit()) return false;\r\n if (x.equals(nPrev)) continue next;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Set \"strict\" to true to force GRH-supported lower bound of 2*log(N)^2\r\n BigInteger.prototype.isPrime = function (strict) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var bits = n.bitLength();\r\n if (bits <= 64)\r\n return millerRabinTest(n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]);\r\n var logN = Math.log(2) * bits.toJSNumber();\r\n var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN);\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt(i + 2));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;\r\n\r\n BigInteger.prototype.isProbablePrime = function (iterations, rng) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var t = iterations === undefined ? 5 : iterations;\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt.randBetween(2, n.minus(2), rng));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;\r\n\r\n BigInteger.prototype.modInv = function (n) {\r\n var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR;\r\n while (!newR.isZero()) {\r\n q = r.divide(newR);\r\n lastT = t;\r\n lastR = r;\r\n t = newT;\r\n r = newR;\r\n newT = lastT.subtract(q.multiply(newT));\r\n newR = lastR.subtract(q.multiply(newR));\r\n }\r\n if (!r.isUnit()) throw new Error(this.toString() + \" and \" + n.toString() + \" are not co-prime\");\r\n if (t.compare(0) === -1) {\r\n t = t.add(n);\r\n }\r\n if (this.isNegative()) {\r\n return t.negate();\r\n }\r\n return t;\r\n };\r\n\r\n NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv;\r\n\r\n BigInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return subtractSmall(value, 1, this.sign);\r\n }\r\n return new BigInteger(addSmall(value, 1), this.sign);\r\n };\r\n SmallInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (value + 1 < MAX_INT) return new SmallInteger(value + 1);\r\n return new BigInteger(MAX_INT_ARR, false);\r\n };\r\n NativeBigInt.prototype.next = function () {\r\n return new NativeBigInt(this.value + BigInt(1));\r\n }\r\n\r\n BigInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return new BigInteger(addSmall(value, 1), true);\r\n }\r\n return subtractSmall(value, 1, this.sign);\r\n };\r\n SmallInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);\r\n return new BigInteger(MAX_INT_ARR, true);\r\n };\r\n NativeBigInt.prototype.prev = function () {\r\n return new NativeBigInt(this.value - BigInt(1));\r\n }\r\n\r\n var powersOfTwo = [1];\r\n while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);\r\n var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];\r\n\r\n function shift_isSmall(n) {\r\n return Math.abs(n) <= BASE;\r\n }\r\n\r\n BigInteger.prototype.shiftLeft = function (v) {\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftRight(-n);\r\n var result = this;\r\n if (result.isZero()) return result;\r\n while (n >= powers2Length) {\r\n result = result.multiply(highestPower2);\r\n n -= powers2Length - 1;\r\n }\r\n return result.multiply(powersOfTwo[n]);\r\n };\r\n NativeBigInt.prototype.shiftLeft = SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;\r\n\r\n BigInteger.prototype.shiftRight = function (v) {\r\n var remQuo;\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftLeft(-n);\r\n var result = this;\r\n while (n >= powers2Length) {\r\n if (result.isZero() || (result.isNegative() && result.isUnit())) return result;\r\n remQuo = divModAny(result, highestPower2);\r\n result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n n -= powers2Length - 1;\r\n }\r\n remQuo = divModAny(result, powersOfTwo[n]);\r\n return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n };\r\n NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;\r\n\r\n function bitwise(x, y, fn) {\r\n y = parseValue(y);\r\n var xSign = x.isNegative(), ySign = y.isNegative();\r\n var xRem = xSign ? x.not() : x,\r\n yRem = ySign ? y.not() : y;\r\n var xDigit = 0, yDigit = 0;\r\n var xDivMod = null, yDivMod = null;\r\n var result = [];\r\n while (!xRem.isZero() || !yRem.isZero()) {\r\n xDivMod = divModAny(xRem, highestPower2);\r\n xDigit = xDivMod[1].toJSNumber();\r\n if (xSign) {\r\n xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers\r\n }\r\n\r\n yDivMod = divModAny(yRem, highestPower2);\r\n yDigit = yDivMod[1].toJSNumber();\r\n if (ySign) {\r\n yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers\r\n }\r\n\r\n xRem = xDivMod[0];\r\n yRem = yDivMod[0];\r\n result.push(fn(xDigit, yDigit));\r\n }\r\n var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);\r\n for (var i = result.length - 1; i >= 0; i -= 1) {\r\n sum = sum.multiply(highestPower2).add(bigInt(result[i]));\r\n }\r\n return sum;\r\n }\r\n\r\n BigInteger.prototype.not = function () {\r\n return this.negate().prev();\r\n };\r\n NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not;\r\n\r\n BigInteger.prototype.and = function (n) {\r\n return bitwise(this, n, function (a, b) { return a & b; });\r\n };\r\n NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and;\r\n\r\n BigInteger.prototype.or = function (n) {\r\n return bitwise(this, n, function (a, b) { return a | b; });\r\n };\r\n NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or;\r\n\r\n BigInteger.prototype.xor = function (n) {\r\n return bitwise(this, n, function (a, b) { return a ^ b; });\r\n };\r\n NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor;\r\n\r\n var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;\r\n function roughLOB(n) { // get lowestOneBit (rough)\r\n // SmallInteger: return Min(lowestOneBit(n), 1 << 30)\r\n // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]\r\n var v = n.value,\r\n x = typeof v === \"number\" ? v | LOBMASK_I :\r\n typeof v === \"bigint\" ? v | BigInt(LOBMASK_I) :\r\n v[0] + v[1] * BASE | LOBMASK_BI;\r\n return x & -x;\r\n }\r\n\r\n function integerLogarithm(value, base) {\r\n if (base.compareTo(value) <= 0) {\r\n var tmp = integerLogarithm(value, base.square(base));\r\n var p = tmp.p;\r\n var e = tmp.e;\r\n var t = p.multiply(base);\r\n return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 };\r\n }\r\n return { p: bigInt(1), e: 0 };\r\n }\r\n\r\n BigInteger.prototype.bitLength = function () {\r\n var n = this;\r\n if (n.compareTo(bigInt(0)) < 0) {\r\n n = n.negate().subtract(bigInt(1));\r\n }\r\n if (n.compareTo(bigInt(0)) === 0) {\r\n return bigInt(0);\r\n }\r\n return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1));\r\n }\r\n NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;\r\n\r\n function max(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.greater(b) ? a : b;\r\n }\r\n function min(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.lesser(b) ? a : b;\r\n }\r\n function gcd(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n if (a.equals(b)) return a;\r\n if (a.isZero()) return b;\r\n if (b.isZero()) return a;\r\n var c = Integer[1], d, t;\r\n while (a.isEven() && b.isEven()) {\r\n d = min(roughLOB(a), roughLOB(b));\r\n a = a.divide(d);\r\n b = b.divide(d);\r\n c = c.multiply(d);\r\n }\r\n while (a.isEven()) {\r\n a = a.divide(roughLOB(a));\r\n }\r\n do {\r\n while (b.isEven()) {\r\n b = b.divide(roughLOB(b));\r\n }\r\n if (a.greater(b)) {\r\n t = b; b = a; a = t;\r\n }\r\n b = b.subtract(a);\r\n } while (!b.isZero());\r\n return c.isUnit() ? a : a.multiply(c);\r\n }\r\n function lcm(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n return a.divide(gcd(a, b)).multiply(b);\r\n }\r\n function randBetween(a, b, rng) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n var usedRNG = rng || Math.random;\r\n var low = min(a, b), high = max(a, b);\r\n var range = high.subtract(low).add(1);\r\n if (range.isSmall) return low.add(Math.floor(usedRNG() * range));\r\n var digits = toBase(range, BASE).value;\r\n var result = [], restricted = true;\r\n for (var i = 0; i < digits.length; i++) {\r\n var top = restricted ? digits[i] + (i + 1 < digits.length ? digits[i + 1] / BASE : 0) : BASE;\r\n var digit = truncate(usedRNG() * top);\r\n result.push(digit);\r\n if (digit < digits[i]) restricted = false;\r\n }\r\n return low.add(Integer.fromArray(result, BASE, false));\r\n }\r\n\r\n var parseBase = function (text, base, alphabet, caseSensitive) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n text = String(text);\r\n if (!caseSensitive) {\r\n text = text.toLowerCase();\r\n alphabet = alphabet.toLowerCase();\r\n }\r\n var length = text.length;\r\n var i;\r\n var absBase = Math.abs(base);\r\n var alphabetValues = {};\r\n for (i = 0; i < alphabet.length; i++) {\r\n alphabetValues[alphabet[i]] = i;\r\n }\r\n for (i = 0; i < length; i++) {\r\n var c = text[i];\r\n if (c === \"-\") continue;\r\n if (c in alphabetValues) {\r\n if (alphabetValues[c] >= absBase) {\r\n if (c === \"1\" && absBase === 1) continue;\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n }\r\n }\r\n base = parseValue(base);\r\n var digits = [];\r\n var isNegative = text[0] === \"-\";\r\n for (i = isNegative ? 1 : 0; i < text.length; i++) {\r\n var c = text[i];\r\n if (c in alphabetValues) digits.push(parseValue(alphabetValues[c]));\r\n else if (c === \"<\") {\r\n var start = i;\r\n do { i++; } while (text[i] !== \">\" && i < text.length);\r\n digits.push(parseValue(text.slice(start + 1, i)));\r\n }\r\n else throw new Error(c + \" is not a valid character\");\r\n }\r\n return parseBaseFromArray(digits, base, isNegative);\r\n };\r\n\r\n function parseBaseFromArray(digits, base, isNegative) {\r\n var val = Integer[0], pow = Integer[1], i;\r\n for (i = digits.length - 1; i >= 0; i--) {\r\n val = val.add(digits[i].times(pow));\r\n pow = pow.times(base);\r\n }\r\n return isNegative ? val.negate() : val;\r\n }\r\n\r\n function stringify(digit, alphabet) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n if (digit < alphabet.length) {\r\n return alphabet[digit];\r\n }\r\n return \"<\" + digit + \">\";\r\n }\r\n\r\n function toBase(n, base) {\r\n base = bigInt(base);\r\n if (base.isZero()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n throw new Error(\"Cannot convert nonzero numbers to base 0.\");\r\n }\r\n if (base.equals(-1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n if (n.isNegative())\r\n return {\r\n value: [].concat.apply([], Array.apply(null, Array(-n.toJSNumber()))\r\n .map(Array.prototype.valueOf, [1, 0])\r\n ),\r\n isNegative: false\r\n };\r\n\r\n var arr = Array.apply(null, Array(n.toJSNumber() - 1))\r\n .map(Array.prototype.valueOf, [0, 1]);\r\n arr.unshift([1]);\r\n return {\r\n value: [].concat.apply([], arr),\r\n isNegative: false\r\n };\r\n }\r\n\r\n var neg = false;\r\n if (n.isNegative() && base.isPositive()) {\r\n neg = true;\r\n n = n.abs();\r\n }\r\n if (base.isUnit()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n\r\n return {\r\n value: Array.apply(null, Array(n.toJSNumber()))\r\n .map(Number.prototype.valueOf, 1),\r\n isNegative: neg\r\n };\r\n }\r\n var out = [];\r\n var left = n, divmod;\r\n while (left.isNegative() || left.compareAbs(base) >= 0) {\r\n divmod = left.divmod(base);\r\n left = divmod.quotient;\r\n var digit = divmod.remainder;\r\n if (digit.isNegative()) {\r\n digit = base.minus(digit).abs();\r\n left = left.next();\r\n }\r\n out.push(digit.toJSNumber());\r\n }\r\n out.push(left.toJSNumber());\r\n return { value: out.reverse(), isNegative: neg };\r\n }\r\n\r\n function toBaseString(n, base, alphabet) {\r\n var arr = toBase(n, base);\r\n return (arr.isNegative ? \"-\" : \"\") + arr.value.map(function (x) {\r\n return stringify(x, alphabet);\r\n }).join('');\r\n }\r\n\r\n BigInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n SmallInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n NativeBigInt.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n BigInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix !== 10) return toBaseString(this, radix, alphabet);\r\n var v = this.value, l = v.length, str = String(v[--l]), zeros = \"0000000\", digit;\r\n while (--l >= 0) {\r\n digit = String(v[l]);\r\n str += zeros.slice(digit.length) + digit;\r\n }\r\n var sign = this.sign ? \"-\" : \"\";\r\n return sign + str;\r\n };\r\n\r\n SmallInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix != 10) return toBaseString(this, radix, alphabet);\r\n return String(this.value);\r\n };\r\n\r\n NativeBigInt.prototype.toString = SmallInteger.prototype.toString;\r\n\r\n NativeBigInt.prototype.toJSON = BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); }\r\n\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10);\r\n };\r\n BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;\r\n\r\n SmallInteger.prototype.valueOf = function () {\r\n return this.value;\r\n };\r\n SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;\r\n NativeBigInt.prototype.valueOf = NativeBigInt.prototype.toJSNumber = function () {\r\n return parseInt(this.toString(), 10);\r\n }\r\n\r\n function parseStringValue(v) {\r\n if (isPrecise(+v)) {\r\n var x = +v;\r\n if (x === truncate(x))\r\n return supportsNativeBigInt ? new NativeBigInt(BigInt(x)) : new SmallInteger(x);\r\n throw new Error(\"Invalid integer: \" + v);\r\n }\r\n var sign = v[0] === \"-\";\r\n if (sign) v = v.slice(1);\r\n var split = v.split(/e/i);\r\n if (split.length > 2) throw new Error(\"Invalid integer: \" + split.join(\"e\"));\r\n if (split.length === 2) {\r\n var exp = split[1];\r\n if (exp[0] === \"+\") exp = exp.slice(1);\r\n exp = +exp;\r\n if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error(\"Invalid integer: \" + exp + \" is not a valid exponent.\");\r\n var text = split[0];\r\n var decimalPlace = text.indexOf(\".\");\r\n if (decimalPlace >= 0) {\r\n exp -= text.length - decimalPlace - 1;\r\n text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);\r\n }\r\n if (exp < 0) throw new Error(\"Cannot include negative exponent part for integers\");\r\n text += (new Array(exp + 1)).join(\"0\");\r\n v = text;\r\n }\r\n var isValid = /^([0-9][0-9]*)$/.test(v);\r\n if (!isValid) throw new Error(\"Invalid integer: \" + v);\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(sign ? \"-\" + v : v));\r\n }\r\n var r = [], max = v.length, l = LOG_BASE, min = max - l;\r\n while (max > 0) {\r\n r.push(+v.slice(min, max));\r\n min -= l;\r\n if (min < 0) min = 0;\r\n max -= l;\r\n }\r\n trim(r);\r\n return new BigInteger(r, sign);\r\n }\r\n\r\n function parseNumberValue(v) {\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(v));\r\n }\r\n if (isPrecise(v)) {\r\n if (v !== truncate(v)) throw new Error(v + \" is not an integer.\");\r\n return new SmallInteger(v);\r\n }\r\n return parseStringValue(v.toString());\r\n }\r\n\r\n function parseValue(v) {\r\n if (typeof v === \"number\") {\r\n return parseNumberValue(v);\r\n }\r\n if (typeof v === \"string\") {\r\n return parseStringValue(v);\r\n }\r\n if (typeof v === \"bigint\") {\r\n return new NativeBigInt(v);\r\n }\r\n return v;\r\n }\r\n // Pre-define numbers in range [-999,999]\r\n for (var i = 0; i < 1000; i++) {\r\n Integer[i] = parseValue(i);\r\n if (i > 0) Integer[-i] = parseValue(-i);\r\n }\r\n // Backwards compatibility\r\n Integer.one = Integer[1];\r\n Integer.zero = Integer[0];\r\n Integer.minusOne = Integer[-1];\r\n Integer.max = max;\r\n Integer.min = min;\r\n Integer.gcd = gcd;\r\n Integer.lcm = lcm;\r\n Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger || x instanceof NativeBigInt; };\r\n Integer.randBetween = randBetween;\r\n\r\n Integer.fromArray = function (digits, base, isNegative) {\r\n return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative);\r\n };\r\n\r\n return Integer;\r\n})();\r\n\r\n// Node.js check\r\nif (typeof module !== \"undefined\" && module.hasOwnProperty(\"exports\")) {\r\n module.exports = bigInt;\r\n}\r\n\r\n//amd check\r\nif (typeof define === \"function\" && define.amd) {\r\n define( function () {\r\n return bigInt;\r\n });\r\n}\r\n", "/**\n * @preserve jed.js https://github.com/SlexAxton/Jed\n */\n/*\n-----------\nA gettext compatible i18n library for modern JavaScript Applications\n\nby Alex Sexton - AlexSexton [at] gmail - @SlexAxton\n\nMIT License\n\nA jQuery Foundation project - requires CLA to contribute -\nhttps://contribute.jquery.org/CLA/\n\n\n\nJed offers the entire applicable GNU gettext spec'd set of\nfunctions, but also offers some nicer wrappers around them.\nThe api for gettext was written for a language with no function\noverloading, so Jed allows a little more of that.\n\nMany thanks to Joshua I. Miller - unrtst@cpan.org - who wrote\ngettext.js back in 2008. I was able to vet a lot of my ideas\nagainst his. I also made sure Jed passed against his tests\nin order to offer easy upgrades -- jsgettext.berlios.de\n*/\n(function (root, undef) {\n\n // Set up some underscore-style functions, if you already have\n // underscore, feel free to delete this section, and use it\n // directly, however, the amount of functions used doesn't\n // warrant having underscore as a full dependency.\n // Underscore 1.3.0 was used to port and is licensed\n // under the MIT License by Jeremy Ashkenas.\n var ArrayProto = Array.prototype,\n ObjProto = Object.prototype,\n slice = ArrayProto.slice,\n hasOwnProp = ObjProto.hasOwnProperty,\n nativeForEach = ArrayProto.forEach,\n breaker = {};\n\n // We're not using the OOP style _ so we don't need the\n // extra level of indirection. This still means that you\n // sub out for real `_` though.\n var _ = {\n forEach : function( obj, iterator, context ) {\n var i, l, key;\n if ( obj === null ) {\n return;\n }\n\n if ( nativeForEach && obj.forEach === nativeForEach ) {\n obj.forEach( iterator, context );\n }\n else if ( obj.length === +obj.length ) {\n for ( i = 0, l = obj.length; i < l; i++ ) {\n if ( i in obj && iterator.call( context, obj[i], i, obj ) === breaker ) {\n return;\n }\n }\n }\n else {\n for ( key in obj) {\n if ( hasOwnProp.call( obj, key ) ) {\n if ( iterator.call (context, obj[key], key, obj ) === breaker ) {\n return;\n }\n }\n }\n }\n },\n extend : function( obj ) {\n this.forEach( slice.call( arguments, 1 ), function ( source ) {\n for ( var prop in source ) {\n obj[prop] = source[prop];\n }\n });\n return obj;\n }\n };\n // END Miniature underscore impl\n\n // Jed is a constructor function\n var Jed = function ( options ) {\n // Some minimal defaults\n this.defaults = {\n \"locale_data\" : {\n \"messages\" : {\n \"\" : {\n \"domain\" : \"messages\",\n \"lang\" : \"en\",\n \"plural_forms\" : \"nplurals=2; plural=(n != 1);\"\n }\n // There are no default keys, though\n }\n },\n // The default domain if one is missing\n \"domain\" : \"messages\",\n // enable debug mode to log untranslated strings to the console\n \"debug\" : false\n };\n\n // Mix in the sent options with the default options\n this.options = _.extend( {}, this.defaults, options );\n this.textdomain( this.options.domain );\n\n if ( options.domain && ! this.options.locale_data[ this.options.domain ] ) {\n throw new Error('Text domain set to non-existent domain: `' + options.domain + '`');\n }\n };\n\n // The gettext spec sets this character as the default\n // delimiter for context lookups.\n // e.g.: context\\u0004key\n // If your translation company uses something different,\n // just change this at any time and it will use that instead.\n Jed.context_delimiter = String.fromCharCode( 4 );\n\n function getPluralFormFunc ( plural_form_string ) {\n return Jed.PF.compile( plural_form_string || \"nplurals=2; plural=(n != 1);\");\n }\n\n function Chain( key, i18n ){\n this._key = key;\n this._i18n = i18n;\n }\n\n // Create a chainable api for adding args prettily\n _.extend( Chain.prototype, {\n onDomain : function ( domain ) {\n this._domain = domain;\n return this;\n },\n withContext : function ( context ) {\n this._context = context;\n return this;\n },\n ifPlural : function ( num, pkey ) {\n this._val = num;\n this._pkey = pkey;\n return this;\n },\n fetch : function ( sArr ) {\n if ( {}.toString.call( sArr ) != '[object Array]' ) {\n sArr = [].slice.call(arguments, 0);\n }\n return ( sArr && sArr.length ? Jed.sprintf : function(x){ return x; } )(\n this._i18n.dcnpgettext(this._domain, this._context, this._key, this._pkey, this._val),\n sArr\n );\n }\n });\n\n // Add functions to the Jed prototype.\n // These will be the functions on the object that's returned\n // from creating a `new Jed()`\n // These seem redundant, but they gzip pretty well.\n _.extend( Jed.prototype, {\n // The sexier api start point\n translate : function ( key ) {\n return new Chain( key, this );\n },\n\n textdomain : function ( domain ) {\n if ( ! domain ) {\n return this._textdomain;\n }\n this._textdomain = domain;\n },\n\n gettext : function ( key ) {\n return this.dcnpgettext.call( this, undef, undef, key );\n },\n\n dgettext : function ( domain, key ) {\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n dcgettext : function ( domain , key /*, category */ ) {\n // Ignores the category anyways\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n ngettext : function ( skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, undef, skey, pkey, val );\n },\n\n dngettext : function ( domain, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n dcngettext : function ( domain, skey, pkey, val/*, category */) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n pgettext : function ( context, key ) {\n return this.dcnpgettext.call( this, undef, context, key );\n },\n\n dpgettext : function ( domain, context, key ) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n dcpgettext : function ( domain, context, key/*, category */) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n npgettext : function ( context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, context, skey, pkey, val );\n },\n\n dnpgettext : function ( domain, context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, context, skey, pkey, val );\n },\n\n // The most fully qualified gettext function. It has every option.\n // Since it has every option, we can use it from every other method.\n // This is the bread and butter.\n // Technically there should be one more argument in this function for 'Category',\n // but since we never use it, we might as well not waste the bytes to define it.\n dcnpgettext : function ( domain, context, singular_key, plural_key, val ) {\n // Set some defaults\n\n plural_key = plural_key || singular_key;\n\n // Use the global domain default if one\n // isn't explicitly passed in\n domain = domain || this._textdomain;\n\n var fallback;\n\n // Handle special cases\n\n // No options found\n if ( ! this.options ) {\n // There's likely something wrong, but we'll return the correct key for english\n // We do this by instantiating a brand new Jed instance with the default set\n // for everything that could be broken.\n fallback = new Jed();\n return fallback.dcnpgettext.call( fallback, undefined, undefined, singular_key, plural_key, val );\n }\n\n // No translation data provided\n if ( ! this.options.locale_data ) {\n throw new Error('No locale data provided.');\n }\n\n if ( ! this.options.locale_data[ domain ] ) {\n throw new Error('Domain `' + domain + '` was not found.');\n }\n\n if ( ! this.options.locale_data[ domain ][ \"\" ] ) {\n throw new Error('No locale meta information provided.');\n }\n\n // Make sure we have a truthy key. Otherwise we might start looking\n // into the empty string key, which is the options for the locale\n // data.\n if ( ! singular_key ) {\n throw new Error('No translation key found.');\n }\n\n var key = context ? context + Jed.context_delimiter + singular_key : singular_key,\n locale_data = this.options.locale_data,\n dict = locale_data[ domain ],\n defaultConf = (locale_data.messages || this.defaults.locale_data.messages)[\"\"],\n pluralForms = dict[\"\"].plural_forms || dict[\"\"][\"Plural-Forms\"] || dict[\"\"][\"plural-forms\"] || defaultConf.plural_forms || defaultConf[\"Plural-Forms\"] || defaultConf[\"plural-forms\"],\n val_list,\n res;\n\n var val_idx;\n if (val === undefined) {\n // No value passed in; assume singular key lookup.\n val_idx = 0;\n\n } else {\n // Value has been passed in; use plural-forms calculations.\n\n // Handle invalid numbers, but try casting strings for good measure\n if ( typeof val != 'number' ) {\n val = parseInt( val, 10 );\n\n if ( isNaN( val ) ) {\n throw new Error('The number that was passed in is not a number.');\n }\n }\n\n val_idx = getPluralFormFunc(pluralForms)(val);\n }\n\n // Throw an error if a domain isn't found\n if ( ! dict ) {\n throw new Error('No domain named `' + domain + '` could be found.');\n }\n\n val_list = dict[ key ];\n\n // If there is no match, then revert back to\n // english style singular/plural with the keys passed in.\n if ( ! val_list || val_idx > val_list.length ) {\n if (this.options.missing_key_callback) {\n this.options.missing_key_callback(key, domain);\n }\n res = [ singular_key, plural_key ];\n\n // collect untranslated strings\n if (this.options.debug===true) {\n console.log(res[ getPluralFormFunc(pluralForms)( val ) ]);\n }\n return res[ getPluralFormFunc()( val ) ];\n }\n\n res = val_list[ val_idx ];\n\n // This includes empty strings on purpose\n if ( ! res ) {\n res = [ singular_key, plural_key ];\n return res[ getPluralFormFunc()( val ) ];\n }\n return res;\n }\n });\n\n\n // We add in sprintf capabilities for post translation value interolation\n // This is not internally used, so you can remove it if you have this\n // available somewhere else, or want to use a different system.\n\n // We _slightly_ modify the normal sprintf behavior to more gracefully handle\n // undefined values.\n\n /**\n sprintf() for JavaScript 0.7-beta1\n http://www.diveintojavascript.com/projects/javascript-sprintf\n\n Copyright (c) Alexandru Marasteanu \n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of sprintf() for JavaScript nor the\n names of its contributors may be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n var sprintf = (function() {\n function get_type(variable) {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();\n }\n function str_repeat(input, multiplier) {\n for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}\n return output.join('');\n }\n\n var str_format = function() {\n if (!str_format.cache.hasOwnProperty(arguments[0])) {\n str_format.cache[arguments[0]] = str_format.parse(arguments[0]);\n }\n return str_format.format.call(null, str_format.cache[arguments[0]], arguments);\n };\n\n str_format.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_tree[i]);\n if (node_type === 'string') {\n output.push(parse_tree[i]);\n }\n else if (node_type === 'array') {\n match = parse_tree[i]; // convenience purposes only\n if (match[2]) { // keyword argument\n arg = argv[cursor];\n for (k = 0; k < match[2].length; k++) {\n if (!arg.hasOwnProperty(match[2][k])) {\n throw(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]));\n }\n arg = arg[match[2][k]];\n }\n }\n else if (match[1]) { // positional argument (explicit)\n arg = argv[match[1]];\n }\n else { // positional argument (implicit)\n arg = argv[cursor++];\n }\n\n if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {\n throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));\n }\n\n // Jed EDIT\n if ( typeof arg == 'undefined' || arg === null ) {\n arg = '';\n }\n // Jed EDIT\n\n switch (match[8]) {\n case 'b': arg = arg.toString(2); break;\n case 'c': arg = String.fromCharCode(arg); break;\n case 'd': arg = parseInt(arg, 10); break;\n case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;\n case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;\n case 'o': arg = arg.toString(8); break;\n case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;\n case 'u': arg = Math.abs(arg); break;\n case 'x': arg = arg.toString(16); break;\n case 'X': arg = arg.toString(16).toUpperCase(); break;\n }\n arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);\n pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';\n pad_length = match[6] - String(arg).length;\n pad = match[6] ? str_repeat(pad_character, pad_length) : '';\n output.push(match[5] ? arg + pad : pad + arg);\n }\n }\n return output.join('');\n };\n\n str_format.cache = {};\n\n str_format.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = /^[^\\x25]+/.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n }\n else if ((match = /^\\x25{2}/.exec(_fmt)) !== null) {\n parse_tree.push('%');\n }\n else if ((match = /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = /^([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = /^\\.([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else if ((field_match = /^\\[(\\d+)\\]/.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else {\n throw('[sprintf] huh?');\n }\n }\n }\n else {\n throw('[sprintf] huh?');\n }\n match[2] = field_list;\n }\n else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw('[sprintf] mixing positional and named placeholders is not (yet) supported');\n }\n parse_tree.push(match);\n }\n else {\n throw('[sprintf] huh?');\n }\n _fmt = _fmt.substring(match[0].length);\n }\n return parse_tree;\n };\n\n return str_format;\n })();\n\n var vsprintf = function(fmt, argv) {\n argv.unshift(fmt);\n return sprintf.apply(null, argv);\n };\n\n Jed.parse_plural = function ( plural_forms, n ) {\n plural_forms = plural_forms.replace(/n/g, n);\n return Jed.parse_expression(plural_forms);\n };\n\n Jed.sprintf = function ( fmt, args ) {\n if ( {}.toString.call( args ) == '[object Array]' ) {\n return vsprintf( fmt, [].slice.call(args) );\n }\n return sprintf.apply(this, [].slice.call(arguments) );\n };\n\n Jed.prototype.sprintf = function () {\n return Jed.sprintf.apply(this, arguments);\n };\n // END sprintf Implementation\n\n // Start the Plural forms section\n // This is a full plural form expression parser. It is used to avoid\n // running 'eval' or 'new Function' directly against the plural\n // forms.\n //\n // This can be important if you get translations done through a 3rd\n // party vendor. I encourage you to use this instead, however, I\n // also will provide a 'precompiler' that you can use at build time\n // to output valid/safe function representations of the plural form\n // expressions. This means you can build this code out for the most\n // part.\n Jed.PF = {};\n\n Jed.PF.parse = function ( p ) {\n var plural_str = Jed.PF.extractPluralExpr( p );\n return Jed.PF.parser.parse.call(Jed.PF.parser, plural_str);\n };\n\n Jed.PF.compile = function ( p ) {\n // Handle trues and falses as 0 and 1\n function imply( val ) {\n return (val === true ? 1 : val ? val : 0);\n }\n\n var ast = Jed.PF.parse( p );\n return function ( n ) {\n return imply( Jed.PF.interpreter( ast )( n ) );\n };\n };\n\n Jed.PF.interpreter = function ( ast ) {\n return function ( n ) {\n var res;\n switch ( ast.type ) {\n case 'GROUP':\n return Jed.PF.interpreter( ast.expr )( n );\n case 'TERNARY':\n if ( Jed.PF.interpreter( ast.expr )( n ) ) {\n return Jed.PF.interpreter( ast.truthy )( n );\n }\n return Jed.PF.interpreter( ast.falsey )( n );\n case 'OR':\n return Jed.PF.interpreter( ast.left )( n ) || Jed.PF.interpreter( ast.right )( n );\n case 'AND':\n return Jed.PF.interpreter( ast.left )( n ) && Jed.PF.interpreter( ast.right )( n );\n case 'LT':\n return Jed.PF.interpreter( ast.left )( n ) < Jed.PF.interpreter( ast.right )( n );\n case 'GT':\n return Jed.PF.interpreter( ast.left )( n ) > Jed.PF.interpreter( ast.right )( n );\n case 'LTE':\n return Jed.PF.interpreter( ast.left )( n ) <= Jed.PF.interpreter( ast.right )( n );\n case 'GTE':\n return Jed.PF.interpreter( ast.left )( n ) >= Jed.PF.interpreter( ast.right )( n );\n case 'EQ':\n return Jed.PF.interpreter( ast.left )( n ) == Jed.PF.interpreter( ast.right )( n );\n case 'NEQ':\n return Jed.PF.interpreter( ast.left )( n ) != Jed.PF.interpreter( ast.right )( n );\n case 'MOD':\n return Jed.PF.interpreter( ast.left )( n ) % Jed.PF.interpreter( ast.right )( n );\n case 'VAR':\n return n;\n case 'NUM':\n return ast.val;\n default:\n throw new Error(\"Invalid Token found.\");\n }\n };\n };\n\n Jed.PF.extractPluralExpr = function ( p ) {\n // trim first\n p = p.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\n if (! /;\\s*$/.test(p)) {\n p = p.concat(';');\n }\n\n var nplurals_re = /nplurals\\=(\\d+);/,\n plural_re = /plural\\=(.*);/,\n nplurals_matches = p.match( nplurals_re ),\n res = {},\n plural_matches;\n\n // Find the nplurals number\n if ( nplurals_matches.length > 1 ) {\n res.nplurals = nplurals_matches[1];\n }\n else {\n throw new Error('nplurals not found in plural_forms string: ' + p );\n }\n\n // remove that data to get to the formula\n p = p.replace( nplurals_re, \"\" );\n plural_matches = p.match( plural_re );\n\n if (!( plural_matches && plural_matches.length > 1 ) ) {\n throw new Error('`plural` expression not found: ' + p);\n }\n return plural_matches[ 1 ];\n };\n\n /* Jison generated parser */\n Jed.PF.parser = (function(){\n\nvar parser = {trace: function trace() { },\nyy: {},\nsymbols_: {\"error\":2,\"expressions\":3,\"e\":4,\"EOF\":5,\"?\":6,\":\":7,\"||\":8,\"&&\":9,\"<\":10,\"<=\":11,\">\":12,\">=\":13,\"!=\":14,\"==\":15,\"%\":16,\"(\":17,\")\":18,\"n\":19,\"NUMBER\":20,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"EOF\",6:\"?\",7:\":\",8:\"||\",9:\"&&\",10:\"<\",11:\"<=\",12:\">\",13:\">=\",14:\"!=\",15:\"==\",16:\"%\",17:\"(\",18:\")\",19:\"n\",20:\"NUMBER\"},\nproductions_: [0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],\nperformAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1: return { type : 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 2:this.$ = { type: 'TERNARY', expr: $$[$0-4], truthy : $$[$0-2], falsey: $$[$0] };\nbreak;\ncase 3:this.$ = { type: \"OR\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 4:this.$ = { type: \"AND\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 5:this.$ = { type: 'LT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 6:this.$ = { type: 'LTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 7:this.$ = { type: 'GT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 8:this.$ = { type: 'GTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 9:this.$ = { type: 'NEQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 10:this.$ = { type: 'EQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 11:this.$ = { type: 'MOD', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 12:this.$ = { type: 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 13:this.$ = { type: 'VAR' };\nbreak;\ncase 14:this.$ = { type: 'NUM', val: Number(yytext) };\nbreak;\n}\n},\ntable: [{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],\ndefaultActions: {6:[2,1]},\nparseError: function parseError(str, hash) {\n throw new Error(str);\n},\nparse: function parse(input) {\n var self = this,\n stack = [0],\n vstack = [null], // semantic value stack\n lstack = [], // location stack\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n\n //this.reductionCount = this.shiftCount = 0;\n\n this.lexer.setInput(input);\n this.lexer.yy = this.yy;\n this.yy.lexer = this.lexer;\n if (typeof this.lexer.yylloc == 'undefined')\n this.lexer.yylloc = {};\n var yyloc = this.lexer.yylloc;\n lstack.push(yyloc);\n\n if (typeof this.yy.parseError === 'function')\n this.parseError = this.yy.parseError;\n\n function popStack (n) {\n stack.length = stack.length - 2*n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n function lex() {\n var token;\n token = self.lexer.lex() || 1; // $end = 1\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n }\n\n var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;\n while (true) {\n // retreive state number from top of stack\n state = stack[stack.length-1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol == null)\n symbol = lex();\n // read action for current state and first input\n action = table[state] && table[state][symbol];\n }\n\n // handle parse error\n _handle_error:\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n\n if (!recovering) {\n // Report error\n expected = [];\n for (p in table[state]) if (this.terminals_[p] && p > 2) {\n expected.push(\"'\"+this.terminals_[p]+\"'\");\n }\n var errStr = '';\n if (this.lexer.showPosition) {\n errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + this.terminals_[symbol]+ \"'\";\n } else {\n errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +\n (symbol == 1 /*EOF*/ ? \"end of input\" :\n (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));\n }\n this.parseError(errStr,\n {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});\n }\n\n // just recovered from another error\n if (recovering == 3) {\n if (symbol == EOF) {\n throw new Error(errStr || 'Parsing halted.');\n }\n\n // discard current lookahead and grab another\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n symbol = lex();\n }\n\n // try to recover from error\n while (1) {\n // check for error recovery rule in this state\n if ((TERROR.toString()) in table[state]) {\n break;\n }\n if (state == 0) {\n throw new Error(errStr || 'Parsing halted.');\n }\n popStack(1);\n state = stack[stack.length-1];\n }\n\n preErrorSymbol = symbol; // save the lookahead token\n symbol = TERROR; // insert generic error symbol as new lookahead\n state = stack[stack.length-1];\n action = table[state] && table[state][TERROR];\n recovering = 3; // allow 3 real symbols to be shifted before reporting a new error\n }\n\n // this shouldn't happen, unless resolve defaults are off\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);\n }\n\n switch (action[0]) {\n\n case 1: // shift\n //this.shiftCount++;\n\n stack.push(symbol);\n vstack.push(this.lexer.yytext);\n lstack.push(this.lexer.yylloc);\n stack.push(action[1]); // push state\n symbol = null;\n if (!preErrorSymbol) { // normal execution/no error\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n if (recovering > 0)\n recovering--;\n } else { // error just occurred, resume old lookahead f/ before error\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n\n case 2: // reduce\n //this.reductionCount++;\n\n len = this.productions_[action[1]][1];\n\n // perform semantic action\n yyval.$ = vstack[vstack.length-len]; // default to $$ = $1\n // default location, uses first token for firsts, last for lasts\n yyval._$ = {\n first_line: lstack[lstack.length-(len||1)].first_line,\n last_line: lstack[lstack.length-1].last_line,\n first_column: lstack[lstack.length-(len||1)].first_column,\n last_column: lstack[lstack.length-1].last_column\n };\n r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n\n if (typeof r !== 'undefined') {\n return r;\n }\n\n // pop off stack\n if (len) {\n stack = stack.slice(0,-1*len*2);\n vstack = vstack.slice(0, -1*len);\n lstack = lstack.slice(0, -1*len);\n }\n\n stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[stack[stack.length-2]][stack[stack.length-1]];\n stack.push(newState);\n break;\n\n case 3: // accept\n return true;\n }\n\n }\n\n return true;\n}};/* Jison generated lexer */\nvar lexer = (function(){\n\nvar lexer = ({EOF:1,\nparseError:function parseError(str, hash) {\n if (this.yy.parseError) {\n this.yy.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\nsetInput:function (input) {\n this._input = input;\n this._more = this._less = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};\n return this;\n },\ninput:function () {\n var ch = this._input[0];\n this.yytext+=ch;\n this.yyleng++;\n this.match+=ch;\n this.matched+=ch;\n var lines = ch.match(/\\n/);\n if (lines) this.yylineno++;\n this._input = this._input.slice(1);\n return ch;\n },\nunput:function (ch) {\n this._input = ch + this._input;\n return this;\n },\nmore:function () {\n this._more = true;\n return this;\n },\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");\n },\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c+\"^\";\n },\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) this.done = true;\n\n var token,\n match,\n col,\n lines;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i=0;i < rules.length; i++) {\n match = this._input.match(this.rules[rules[i]]);\n if (match) {\n lines = match[0].match(/\\n.*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {first_line: this.yylloc.last_line,\n last_line: this.yylineno+1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n this._more = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]);\n if (token) return token;\n else return;\n }\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),\n {text: \"\", token: null, line: this.yylineno});\n }\n },\nlex:function lex() {\n var r = this.next();\n if (typeof r !== 'undefined') {\n return r;\n } else {\n return this.lex();\n }\n },\nbegin:function begin(condition) {\n this.conditionStack.push(condition);\n },\npopState:function popState() {\n return this.conditionStack.pop();\n },\n_currentRules:function _currentRules() {\n return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;\n },\ntopState:function () {\n return this.conditionStack[this.conditionStack.length-2];\n },\npushState:function begin(condition) {\n this.begin(condition);\n }});\nlexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:/* skip whitespace */\nbreak;\ncase 1:return 20\nbreak;\ncase 2:return 19\nbreak;\ncase 3:return 8\nbreak;\ncase 4:return 9\nbreak;\ncase 5:return 6\nbreak;\ncase 6:return 7\nbreak;\ncase 7:return 11\nbreak;\ncase 8:return 13\nbreak;\ncase 9:return 10\nbreak;\ncase 10:return 12\nbreak;\ncase 11:return 14\nbreak;\ncase 12:return 15\nbreak;\ncase 13:return 16\nbreak;\ncase 14:return 17\nbreak;\ncase 15:return 18\nbreak;\ncase 16:return 5\nbreak;\ncase 17:return 'INVALID'\nbreak;\n}\n};\nlexer.rules = [/^\\s+/,/^[0-9]+(\\.[0-9]+)?\\b/,/^n\\b/,/^\\|\\|/,/^&&/,/^\\?/,/^:/,/^<=/,/^>=/,/^/,/^!=/,/^==/,/^%/,/^\\(/,/^\\)/,/^$/,/^./];\nlexer.conditions = {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],\"inclusive\":true}};return lexer;})()\nparser.lexer = lexer;\nreturn parser;\n})();\n// End parser\n\n // Handle node, amd, and global systems\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = Jed;\n }\n exports.Jed = Jed;\n }\n else {\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Jed;\n });\n }\n // Leak a global regardless of module system\n root['Jed'] = Jed;\n }\n\n})(this);\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n", "/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n", "/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n", "var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n", "var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n", "/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n", "var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n", "var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n", "/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n", "var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n", "var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n", "var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n", "/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n", "var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n", "/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n", "var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n", "var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n", "var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n", "/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n", "var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n", "/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n", "/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n", "var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n", "var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n", "var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n", "/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n", "var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n", "var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n", "var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n", "var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n", "var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n", "/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n", "var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n", "var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n", "var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n", "var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n", "var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n", "var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n", "var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n", "var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n", "var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n", "var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n", "/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n", "var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n", "/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n", "/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n", "var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n", "var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n", "/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n", "var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n", "var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n", "/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n", "var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n", "var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n", "var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n", "var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n", "var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n", "var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n", "/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n", "/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n", "/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n", "var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n", "var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n", "/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n", "/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n", "var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n", "/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n", "/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n", "var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n", "/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n", "/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n", "var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n", "/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n", "var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n", "/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n", "/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n", "var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n", "var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n", "var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n", "var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n", "var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n", "var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n", "var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n", "var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n", "var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n", "/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n", "var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n", "var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n", "var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n", "/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n", "var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n", "var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n", "/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n", "/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n", "var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n", "var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n", "var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n", "var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n", "/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n", "/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n", "/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n", "var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n", "var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('d\u00E9j\u00E0 vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n", "/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n", "/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n", "var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n", "var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n", "var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n", "/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n", "var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n", "/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n", "var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n", "var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n", "var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n", "var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n", "var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n", "var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nmodule.exports = mapKeys;\n", "\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n", "//---------------------------------------------------------------------\n//\n// QR Code Generator for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word 'QR Code' is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\nvar qrcode = function() {\n\n //---------------------------------------------------------------------\n // qrcode\n //---------------------------------------------------------------------\n\n /**\n * qrcode\n * @param typeNumber 1 to 40\n * @param errorCorrectionLevel 'L','M','Q','H'\n */\n var qrcode = function(typeNumber, errorCorrectionLevel) {\n\n var PAD0 = 0xEC;\n var PAD1 = 0x11;\n\n var _typeNumber = typeNumber;\n var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel];\n var _modules = null;\n var _moduleCount = 0;\n var _dataCache = null;\n var _dataList = [];\n\n var _this = {};\n\n var makeImpl = function(test, maskPattern) {\n\n _moduleCount = _typeNumber * 4 + 17;\n _modules = function(moduleCount) {\n var modules = new Array(moduleCount);\n for (var row = 0; row < moduleCount; row += 1) {\n modules[row] = new Array(moduleCount);\n for (var col = 0; col < moduleCount; col += 1) {\n modules[row][col] = null;\n }\n }\n return modules;\n }(_moduleCount);\n\n setupPositionProbePattern(0, 0);\n setupPositionProbePattern(_moduleCount - 7, 0);\n setupPositionProbePattern(0, _moduleCount - 7);\n setupPositionAdjustPattern();\n setupTimingPattern();\n setupTypeInfo(test, maskPattern);\n\n if (_typeNumber >= 7) {\n setupTypeNumber(test);\n }\n\n if (_dataCache == null) {\n _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList);\n }\n\n mapData(_dataCache, maskPattern);\n };\n\n var setupPositionProbePattern = function(row, col) {\n\n for (var r = -1; r <= 7; r += 1) {\n\n if (row + r <= -1 || _moduleCount <= row + r) continue;\n\n for (var c = -1; c <= 7; c += 1) {\n\n if (col + c <= -1 || _moduleCount <= col + c) continue;\n\n if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n || (0 <= c && c <= 6 && (r == 0 || r == 6) )\n || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n };\n\n var getBestMaskPattern = function() {\n\n var minLostPoint = 0;\n var pattern = 0;\n\n for (var i = 0; i < 8; i += 1) {\n\n makeImpl(true, i);\n\n var lostPoint = QRUtil.getLostPoint(_this);\n\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint;\n pattern = i;\n }\n }\n\n return pattern;\n };\n\n var setupTimingPattern = function() {\n\n for (var r = 8; r < _moduleCount - 8; r += 1) {\n if (_modules[r][6] != null) {\n continue;\n }\n _modules[r][6] = (r % 2 == 0);\n }\n\n for (var c = 8; c < _moduleCount - 8; c += 1) {\n if (_modules[6][c] != null) {\n continue;\n }\n _modules[6][c] = (c % 2 == 0);\n }\n };\n\n var setupPositionAdjustPattern = function() {\n\n var pos = QRUtil.getPatternPosition(_typeNumber);\n\n for (var i = 0; i < pos.length; i += 1) {\n\n for (var j = 0; j < pos.length; j += 1) {\n\n var row = pos[i];\n var col = pos[j];\n\n if (_modules[row][col] != null) {\n continue;\n }\n\n for (var r = -2; r <= 2; r += 1) {\n\n for (var c = -2; c <= 2; c += 1) {\n\n if (r == -2 || r == 2 || c == -2 || c == 2\n || (r == 0 && c == 0) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n }\n }\n };\n\n var setupTypeNumber = function(test) {\n\n var bits = QRUtil.getBCHTypeNumber(_typeNumber);\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod;\n }\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n }\n };\n\n var setupTypeInfo = function(test, maskPattern) {\n\n var data = (_errorCorrectionLevel << 3) | maskPattern;\n var bits = QRUtil.getBCHTypeInfo(data);\n\n // vertical\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 6) {\n _modules[i][8] = mod;\n } else if (i < 8) {\n _modules[i + 1][8] = mod;\n } else {\n _modules[_moduleCount - 15 + i][8] = mod;\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 8) {\n _modules[8][_moduleCount - i - 1] = mod;\n } else if (i < 9) {\n _modules[8][15 - i - 1 + 1] = mod;\n } else {\n _modules[8][15 - i - 1] = mod;\n }\n }\n\n // fixed module\n _modules[_moduleCount - 8][8] = (!test);\n };\n\n var mapData = function(data, maskPattern) {\n\n var inc = -1;\n var row = _moduleCount - 1;\n var bitIndex = 7;\n var byteIndex = 0;\n var maskFunc = QRUtil.getMaskFunction(maskPattern);\n\n for (var col = _moduleCount - 1; col > 0; col -= 2) {\n\n if (col == 6) col -= 1;\n\n while (true) {\n\n for (var c = 0; c < 2; c += 1) {\n\n if (_modules[row][col - c] == null) {\n\n var dark = false;\n\n if (byteIndex < data.length) {\n dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n }\n\n var mask = maskFunc(row, col - c);\n\n if (mask) {\n dark = !dark;\n }\n\n _modules[row][col - c] = dark;\n bitIndex -= 1;\n\n if (bitIndex == -1) {\n byteIndex += 1;\n bitIndex = 7;\n }\n }\n }\n\n row += inc;\n\n if (row < 0 || _moduleCount <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n };\n\n var createBytes = function(buffer, rsBlocks) {\n\n var offset = 0;\n\n var maxDcCount = 0;\n var maxEcCount = 0;\n\n var dcdata = new Array(rsBlocks.length);\n var ecdata = new Array(rsBlocks.length);\n\n for (var r = 0; r < rsBlocks.length; r += 1) {\n\n var dcCount = rsBlocks[r].dataCount;\n var ecCount = rsBlocks[r].totalCount - dcCount;\n\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n\n dcdata[r] = new Array(dcCount);\n\n for (var i = 0; i < dcdata[r].length; i += 1) {\n dcdata[r][i] = 0xff & buffer.getBuffer()[i + offset];\n }\n offset += dcCount;\n\n var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1);\n\n var modPoly = rawPoly.mod(rsPoly);\n ecdata[r] = new Array(rsPoly.getLength() - 1);\n for (var i = 0; i < ecdata[r].length; i += 1) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n ecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0;\n }\n }\n\n var totalCodeCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalCodeCount += rsBlocks[i].totalCount;\n }\n\n var data = new Array(totalCodeCount);\n var index = 0;\n\n for (var i = 0; i < maxDcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < dcdata[r].length) {\n data[index] = dcdata[r][i];\n index += 1;\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < ecdata[r].length) {\n data[index] = ecdata[r][i];\n index += 1;\n }\n }\n }\n\n return data;\n };\n\n var createData = function(typeNumber, errorCorrectionLevel, dataList) {\n\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel);\n\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < dataList.length; i += 1) {\n var data = dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n // calc num max data.\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw 'code length overflow. ('\n + buffer.getLengthInBits()\n + '>'\n + totalDataCount * 8\n + ')';\n }\n\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4);\n }\n\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false);\n }\n\n // padding\n while (true) {\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD0, 8);\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD1, 8);\n }\n\n return createBytes(buffer, rsBlocks);\n };\n\n _this.addData = function(data, mode) {\n\n mode = mode || 'Byte';\n\n var newData = null;\n\n switch(mode) {\n case 'Numeric' :\n newData = qrNumber(data);\n break;\n case 'Alphanumeric' :\n newData = qrAlphaNum(data);\n break;\n case 'Byte' :\n newData = qr8BitByte(data);\n break;\n case 'Kanji' :\n newData = qrKanji(data);\n break;\n default :\n throw 'mode:' + mode;\n }\n\n _dataList.push(newData);\n _dataCache = null;\n };\n\n _this.isDark = function(row, col) {\n if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) {\n throw row + ',' + col;\n }\n return _modules[row][col];\n };\n\n _this.getModuleCount = function() {\n return _moduleCount;\n };\n\n _this.make = function() {\n if (_typeNumber < 1) {\n var typeNumber = 1;\n\n for (; typeNumber < 40; typeNumber++) {\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel);\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < _dataList.length; i++) {\n var data = _dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() <= totalDataCount * 8) {\n break;\n }\n }\n\n _typeNumber = typeNumber;\n }\n\n makeImpl(false, getBestMaskPattern() );\n };\n\n _this.createTableTag = function(cellSize, margin) {\n\n cellSize = cellSize || 2;\n margin = (typeof margin == 'undefined')? cellSize * 4 : margin;\n\n var qrHtml = '';\n\n qrHtml += '' +\n escapeXml(title.text) + '' : '';\n qrSvg += (alt.text) ? '' +\n escapeXml(alt.text) + '' : '';\n qrSvg += '';\n qrSvg += '': escaped += '>'; break;\n case '&': escaped += '&'; break;\n case '\"': escaped += '"'; break;\n default : escaped += c; break;\n }\n }\n return escaped;\n };\n\n var _createHalfASCII = function(margin) {\n var cellSize = 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r1, r2, p;\n\n var blocks = {\n '\u2588\u2588': '\u2588',\n '\u2588 ': '\u2580',\n ' \u2588': '\u2584',\n ' ': ' '\n };\n\n var blocksLastLineNoMargin = {\n '\u2588\u2588': '\u2580',\n '\u2588 ': '\u2580',\n ' \u2588': ' ',\n ' ': ' '\n };\n\n var ascii = '';\n for (y = 0; y < size; y += 2) {\n r1 = Math.floor((y - min) / cellSize);\n r2 = Math.floor((y + 1 - min) / cellSize);\n for (x = 0; x < size; x += 1) {\n p = '\u2588';\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r1, Math.floor((x - min) / cellSize))) {\n p = ' ';\n }\n\n if (min <= x && x < max && min <= y+1 && y+1 < max && _this.isDark(r2, Math.floor((x - min) / cellSize))) {\n p += ' ';\n }\n else {\n p += '\u2588';\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n ascii += (margin < 1 && y+1 >= max) ? blocksLastLineNoMargin[p] : blocks[p];\n }\n\n ascii += '\\n';\n }\n\n if (size % 2 && margin > 0) {\n return ascii.substring(0, ascii.length - size - 1) + Array(size+1).join('\u2580');\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.createASCII = function(cellSize, margin) {\n cellSize = cellSize || 1;\n\n if (cellSize < 2) {\n return _createHalfASCII(margin);\n }\n\n cellSize -= 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r, p;\n\n var white = Array(cellSize+1).join('\u2588\u2588');\n var black = Array(cellSize+1).join(' ');\n\n var ascii = '';\n var line = '';\n for (y = 0; y < size; y += 1) {\n r = Math.floor( (y - min) / cellSize);\n line = '';\n for (x = 0; x < size; x += 1) {\n p = 1;\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r, Math.floor((x - min) / cellSize))) {\n p = 0;\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n line += p ? white : black;\n }\n\n for (r = 0; r < cellSize; r += 1) {\n ascii += line + '\\n';\n }\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.renderTo2dContext = function(context, cellSize) {\n cellSize = cellSize || 2;\n var length = _this.getModuleCount();\n for (var row = 0; row < length; row++) {\n for (var col = 0; col < length; col++) {\n context.fillStyle = _this.isDark(row, col) ? 'black' : 'white';\n context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize);\n }\n }\n }\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrcode.stringToBytes\n //---------------------------------------------------------------------\n\n qrcode.stringToBytesFuncs = {\n 'default' : function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n bytes.push(c & 0xff);\n }\n return bytes;\n }\n };\n\n qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'];\n\n //---------------------------------------------------------------------\n // qrcode.createStringToBytes\n //---------------------------------------------------------------------\n\n /**\n * @param unicodeData base64 string of byte array.\n * [16bit Unicode],[16bit Bytes], ...\n * @param numChars\n */\n qrcode.createStringToBytes = function(unicodeData, numChars) {\n\n // create conversion map.\n\n var unicodeMap = function() {\n\n var bin = base64DecodeInputStream(unicodeData);\n var read = function() {\n var b = bin.read();\n if (b == -1) throw 'eof';\n return b;\n };\n\n var count = 0;\n var unicodeMap = {};\n while (true) {\n var b0 = bin.read();\n if (b0 == -1) break;\n var b1 = read();\n var b2 = read();\n var b3 = read();\n var k = String.fromCharCode( (b0 << 8) | b1);\n var v = (b2 << 8) | b3;\n unicodeMap[k] = v;\n count += 1;\n }\n if (count != numChars) {\n throw count + ' != ' + numChars;\n }\n\n return unicodeMap;\n }();\n\n var unknownChar = '?'.charCodeAt(0);\n\n return function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n if (c < 128) {\n bytes.push(c);\n } else {\n var b = unicodeMap[s.charAt(i)];\n if (typeof b == 'number') {\n if ( (b & 0xff) == b) {\n // 1byte\n bytes.push(b);\n } else {\n // 2bytes\n bytes.push(b >>> 8);\n bytes.push(b & 0xff);\n }\n } else {\n bytes.push(unknownChar);\n }\n }\n }\n return bytes;\n };\n };\n\n //---------------------------------------------------------------------\n // QRMode\n //---------------------------------------------------------------------\n\n var QRMode = {\n MODE_NUMBER : 1 << 0,\n MODE_ALPHA_NUM : 1 << 1,\n MODE_8BIT_BYTE : 1 << 2,\n MODE_KANJI : 1 << 3\n };\n\n //---------------------------------------------------------------------\n // QRErrorCorrectionLevel\n //---------------------------------------------------------------------\n\n var QRErrorCorrectionLevel = {\n L : 1,\n M : 0,\n Q : 3,\n H : 2\n };\n\n //---------------------------------------------------------------------\n // QRMaskPattern\n //---------------------------------------------------------------------\n\n var QRMaskPattern = {\n PATTERN000 : 0,\n PATTERN001 : 1,\n PATTERN010 : 2,\n PATTERN011 : 3,\n PATTERN100 : 4,\n PATTERN101 : 5,\n PATTERN110 : 6,\n PATTERN111 : 7\n };\n\n //---------------------------------------------------------------------\n // QRUtil\n //---------------------------------------------------------------------\n\n var QRUtil = function() {\n\n var PATTERN_POSITION_TABLE = [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170]\n ];\n var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\n var _this = {};\n\n var getBCHDigit = function(data) {\n var digit = 0;\n while (data != 0) {\n digit += 1;\n data >>>= 1;\n }\n return digit;\n };\n\n _this.getBCHTypeInfo = function(data) {\n var d = data << 10;\n while (getBCHDigit(d) - getBCHDigit(G15) >= 0) {\n d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) );\n }\n return ( (data << 10) | d) ^ G15_MASK;\n };\n\n _this.getBCHTypeNumber = function(data) {\n var d = data << 12;\n while (getBCHDigit(d) - getBCHDigit(G18) >= 0) {\n d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) );\n }\n return (data << 12) | d;\n };\n\n _this.getPatternPosition = function(typeNumber) {\n return PATTERN_POSITION_TABLE[typeNumber - 1];\n };\n\n _this.getMaskFunction = function(maskPattern) {\n\n switch (maskPattern) {\n\n case QRMaskPattern.PATTERN000 :\n return function(i, j) { return (i + j) % 2 == 0; };\n case QRMaskPattern.PATTERN001 :\n return function(i, j) { return i % 2 == 0; };\n case QRMaskPattern.PATTERN010 :\n return function(i, j) { return j % 3 == 0; };\n case QRMaskPattern.PATTERN011 :\n return function(i, j) { return (i + j) % 3 == 0; };\n case QRMaskPattern.PATTERN100 :\n return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; };\n case QRMaskPattern.PATTERN101 :\n return function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; };\n case QRMaskPattern.PATTERN110 :\n return function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; };\n case QRMaskPattern.PATTERN111 :\n return function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; };\n\n default :\n throw 'bad maskPattern:' + maskPattern;\n }\n };\n\n _this.getErrorCorrectPolynomial = function(errorCorrectLength) {\n var a = qrPolynomial([1], 0);\n for (var i = 0; i < errorCorrectLength; i += 1) {\n a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) );\n }\n return a;\n };\n\n _this.getLengthInBits = function(mode, type) {\n\n if (1 <= type && type < 10) {\n\n // 1 - 9\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 10;\n case QRMode.MODE_ALPHA_NUM : return 9;\n case QRMode.MODE_8BIT_BYTE : return 8;\n case QRMode.MODE_KANJI : return 8;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 27) {\n\n // 10 - 26\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 12;\n case QRMode.MODE_ALPHA_NUM : return 11;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 10;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 41) {\n\n // 27 - 40\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 14;\n case QRMode.MODE_ALPHA_NUM : return 13;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 12;\n default :\n throw 'mode:' + mode;\n }\n\n } else {\n throw 'type:' + type;\n }\n };\n\n _this.getLostPoint = function(qrcode) {\n\n var moduleCount = qrcode.getModuleCount();\n\n var lostPoint = 0;\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount; col += 1) {\n\n var sameCount = 0;\n var dark = qrcode.isDark(row, col);\n\n for (var r = -1; r <= 1; r += 1) {\n\n if (row + r < 0 || moduleCount <= row + r) {\n continue;\n }\n\n for (var c = -1; c <= 1; c += 1) {\n\n if (col + c < 0 || moduleCount <= col + c) {\n continue;\n }\n\n if (r == 0 && c == 0) {\n continue;\n }\n\n if (dark == qrcode.isDark(row + r, col + c) ) {\n sameCount += 1;\n }\n }\n }\n\n if (sameCount > 5) {\n lostPoint += (3 + sameCount - 5);\n }\n }\n };\n\n // LEVEL2\n\n for (var row = 0; row < moduleCount - 1; row += 1) {\n for (var col = 0; col < moduleCount - 1; col += 1) {\n var count = 0;\n if (qrcode.isDark(row, col) ) count += 1;\n if (qrcode.isDark(row + 1, col) ) count += 1;\n if (qrcode.isDark(row, col + 1) ) count += 1;\n if (qrcode.isDark(row + 1, col + 1) ) count += 1;\n if (count == 0 || count == 4) {\n lostPoint += 3;\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount - 6; col += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row, col + 1)\n && qrcode.isDark(row, col + 2)\n && qrcode.isDark(row, col + 3)\n && qrcode.isDark(row, col + 4)\n && !qrcode.isDark(row, col + 5)\n && qrcode.isDark(row, col + 6) ) {\n lostPoint += 40;\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount - 6; row += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row + 1, col)\n && qrcode.isDark(row + 2, col)\n && qrcode.isDark(row + 3, col)\n && qrcode.isDark(row + 4, col)\n && !qrcode.isDark(row + 5, col)\n && qrcode.isDark(row + 6, col) ) {\n lostPoint += 40;\n }\n }\n }\n\n // LEVEL4\n\n var darkCount = 0;\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount; row += 1) {\n if (qrcode.isDark(row, col) ) {\n darkCount += 1;\n }\n }\n }\n\n var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n lostPoint += ratio * 10;\n\n return lostPoint;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // QRMath\n //---------------------------------------------------------------------\n\n var QRMath = function() {\n\n var EXP_TABLE = new Array(256);\n var LOG_TABLE = new Array(256);\n\n // initialize tables\n for (var i = 0; i < 8; i += 1) {\n EXP_TABLE[i] = 1 << i;\n }\n for (var i = 8; i < 256; i += 1) {\n EXP_TABLE[i] = EXP_TABLE[i - 4]\n ^ EXP_TABLE[i - 5]\n ^ EXP_TABLE[i - 6]\n ^ EXP_TABLE[i - 8];\n }\n for (var i = 0; i < 255; i += 1) {\n LOG_TABLE[EXP_TABLE[i] ] = i;\n }\n\n var _this = {};\n\n _this.glog = function(n) {\n\n if (n < 1) {\n throw 'glog(' + n + ')';\n }\n\n return LOG_TABLE[n];\n };\n\n _this.gexp = function(n) {\n\n while (n < 0) {\n n += 255;\n }\n\n while (n >= 256) {\n n -= 255;\n }\n\n return EXP_TABLE[n];\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrPolynomial\n //---------------------------------------------------------------------\n\n function qrPolynomial(num, shift) {\n\n if (typeof num.length == 'undefined') {\n throw num.length + '/' + shift;\n }\n\n var _num = function() {\n var offset = 0;\n while (offset < num.length && num[offset] == 0) {\n offset += 1;\n }\n var _num = new Array(num.length - offset + shift);\n for (var i = 0; i < num.length - offset; i += 1) {\n _num[i] = num[i + offset];\n }\n return _num;\n }();\n\n var _this = {};\n\n _this.getAt = function(index) {\n return _num[index];\n };\n\n _this.getLength = function() {\n return _num.length;\n };\n\n _this.multiply = function(e) {\n\n var num = new Array(_this.getLength() + e.getLength() - 1);\n\n for (var i = 0; i < _this.getLength(); i += 1) {\n for (var j = 0; j < e.getLength(); j += 1) {\n num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) );\n }\n }\n\n return qrPolynomial(num, 0);\n };\n\n _this.mod = function(e) {\n\n if (_this.getLength() - e.getLength() < 0) {\n return _this;\n }\n\n var ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) );\n\n var num = new Array(_this.getLength() );\n for (var i = 0; i < _this.getLength(); i += 1) {\n num[i] = _this.getAt(i);\n }\n\n for (var i = 0; i < e.getLength(); i += 1) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio);\n }\n\n // recursive call\n return qrPolynomial(num, 0).mod(e);\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // QRRSBlock\n //---------------------------------------------------------------------\n\n var QRRSBlock = function() {\n\n var RS_BLOCK_TABLE = [\n\n // L\n // M\n // Q\n // H\n\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12, 7, 37, 13],\n\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16]\n ];\n\n var qrRSBlock = function(totalCount, dataCount) {\n var _this = {};\n _this.totalCount = totalCount;\n _this.dataCount = dataCount;\n return _this;\n };\n\n var _this = {};\n\n var getRsBlockTable = function(typeNumber, errorCorrectionLevel) {\n\n switch(errorCorrectionLevel) {\n case QRErrorCorrectionLevel.L :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n case QRErrorCorrectionLevel.M :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n case QRErrorCorrectionLevel.Q :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n case QRErrorCorrectionLevel.H :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n default :\n return undefined;\n }\n };\n\n _this.getRSBlocks = function(typeNumber, errorCorrectionLevel) {\n\n var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel);\n\n if (typeof rsBlock == 'undefined') {\n throw 'bad rs block @ typeNumber:' + typeNumber +\n '/errorCorrectionLevel:' + errorCorrectionLevel;\n }\n\n var length = rsBlock.length / 3;\n\n var list = [];\n\n for (var i = 0; i < length; i += 1) {\n\n var count = rsBlock[i * 3 + 0];\n var totalCount = rsBlock[i * 3 + 1];\n var dataCount = rsBlock[i * 3 + 2];\n\n for (var j = 0; j < count; j += 1) {\n list.push(qrRSBlock(totalCount, dataCount) );\n }\n }\n\n return list;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrBitBuffer\n //---------------------------------------------------------------------\n\n var qrBitBuffer = function() {\n\n var _buffer = [];\n var _length = 0;\n\n var _this = {};\n\n _this.getBuffer = function() {\n return _buffer;\n };\n\n _this.getAt = function(index) {\n var bufIndex = Math.floor(index / 8);\n return ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n };\n\n _this.put = function(num, length) {\n for (var i = 0; i < length; i += 1) {\n _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n }\n };\n\n _this.getLengthInBits = function() {\n return _length;\n };\n\n _this.putBit = function(bit) {\n\n var bufIndex = Math.floor(_length / 8);\n if (_buffer.length <= bufIndex) {\n _buffer.push(0);\n }\n\n if (bit) {\n _buffer[bufIndex] |= (0x80 >>> (_length % 8) );\n }\n\n _length += 1;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrNumber\n //---------------------------------------------------------------------\n\n var qrNumber = function(data) {\n\n var _mode = QRMode.MODE_NUMBER;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var data = _data;\n\n var i = 0;\n\n while (i + 2 < data.length) {\n buffer.put(strToNum(data.substring(i, i + 3) ), 10);\n i += 3;\n }\n\n if (i < data.length) {\n if (data.length - i == 1) {\n buffer.put(strToNum(data.substring(i, i + 1) ), 4);\n } else if (data.length - i == 2) {\n buffer.put(strToNum(data.substring(i, i + 2) ), 7);\n }\n }\n };\n\n var strToNum = function(s) {\n var num = 0;\n for (var i = 0; i < s.length; i += 1) {\n num = num * 10 + chatToNum(s.charAt(i) );\n }\n return num;\n };\n\n var chatToNum = function(c) {\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n }\n throw 'illegal char :' + c;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrAlphaNum\n //---------------------------------------------------------------------\n\n var qrAlphaNum = function(data) {\n\n var _mode = QRMode.MODE_ALPHA_NUM;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var s = _data;\n\n var i = 0;\n\n while (i + 1 < s.length) {\n buffer.put(\n getCode(s.charAt(i) ) * 45 +\n getCode(s.charAt(i + 1) ), 11);\n i += 2;\n }\n\n if (i < s.length) {\n buffer.put(getCode(s.charAt(i) ), 6);\n }\n };\n\n var getCode = function(c) {\n\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n } else if ('A' <= c && c <= 'Z') {\n return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n } else {\n switch (c) {\n case ' ' : return 36;\n case '$' : return 37;\n case '%' : return 38;\n case '*' : return 39;\n case '+' : return 40;\n case '-' : return 41;\n case '.' : return 42;\n case '/' : return 43;\n case ':' : return 44;\n default :\n throw 'illegal char :' + c;\n }\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qr8BitByte\n //---------------------------------------------------------------------\n\n var qr8BitByte = function(data) {\n\n var _mode = QRMode.MODE_8BIT_BYTE;\n var _data = data;\n var _bytes = qrcode.stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _bytes.length;\n };\n\n _this.write = function(buffer) {\n for (var i = 0; i < _bytes.length; i += 1) {\n buffer.put(_bytes[i], 8);\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrKanji\n //---------------------------------------------------------------------\n\n var qrKanji = function(data) {\n\n var _mode = QRMode.MODE_KANJI;\n var _data = data;\n\n var stringToBytes = qrcode.stringToBytesFuncs['SJIS'];\n if (!stringToBytes) {\n throw 'sjis not supported.';\n }\n !function(c, code) {\n // self test for sjis support.\n var test = stringToBytes(c);\n if (test.length != 2 || ( (test[0] << 8) | test[1]) != code) {\n throw 'sjis not supported.';\n }\n }('\\u53cb', 0x9746);\n\n var _bytes = stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return ~~(_bytes.length / 2);\n };\n\n _this.write = function(buffer) {\n\n var data = _bytes;\n\n var i = 0;\n\n while (i + 1 < data.length) {\n\n var c = ( (0xff & data[i]) << 8) | (0xff & data[i + 1]);\n\n if (0x8140 <= c && c <= 0x9FFC) {\n c -= 0x8140;\n } else if (0xE040 <= c && c <= 0xEBBF) {\n c -= 0xC140;\n } else {\n throw 'illegal char at ' + (i + 1) + '/' + c;\n }\n\n c = ( (c >>> 8) & 0xff) * 0xC0 + (c & 0xff);\n\n buffer.put(c, 13);\n\n i += 2;\n }\n\n if (i < data.length) {\n throw 'illegal char at ' + (i + 1);\n }\n };\n\n return _this;\n };\n\n //=====================================================================\n // GIF Support etc.\n //\n\n //---------------------------------------------------------------------\n // byteArrayOutputStream\n //---------------------------------------------------------------------\n\n var byteArrayOutputStream = function() {\n\n var _bytes = [];\n\n var _this = {};\n\n _this.writeByte = function(b) {\n _bytes.push(b & 0xff);\n };\n\n _this.writeShort = function(i) {\n _this.writeByte(i);\n _this.writeByte(i >>> 8);\n };\n\n _this.writeBytes = function(b, off, len) {\n off = off || 0;\n len = len || b.length;\n for (var i = 0; i < len; i += 1) {\n _this.writeByte(b[i + off]);\n }\n };\n\n _this.writeString = function(s) {\n for (var i = 0; i < s.length; i += 1) {\n _this.writeByte(s.charCodeAt(i) );\n }\n };\n\n _this.toByteArray = function() {\n return _bytes;\n };\n\n _this.toString = function() {\n var s = '';\n s += '[';\n for (var i = 0; i < _bytes.length; i += 1) {\n if (i > 0) {\n s += ',';\n }\n s += _bytes[i];\n }\n s += ']';\n return s;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64EncodeOutputStream\n //---------------------------------------------------------------------\n\n var base64EncodeOutputStream = function() {\n\n var _buffer = 0;\n var _buflen = 0;\n var _length = 0;\n var _base64 = '';\n\n var _this = {};\n\n var writeEncoded = function(b) {\n _base64 += String.fromCharCode(encode(b & 0x3f) );\n };\n\n var encode = function(n) {\n if (n < 0) {\n // error.\n } else if (n < 26) {\n return 0x41 + n;\n } else if (n < 52) {\n return 0x61 + (n - 26);\n } else if (n < 62) {\n return 0x30 + (n - 52);\n } else if (n == 62) {\n return 0x2b;\n } else if (n == 63) {\n return 0x2f;\n }\n throw 'n:' + n;\n };\n\n _this.writeByte = function(n) {\n\n _buffer = (_buffer << 8) | (n & 0xff);\n _buflen += 8;\n _length += 1;\n\n while (_buflen >= 6) {\n writeEncoded(_buffer >>> (_buflen - 6) );\n _buflen -= 6;\n }\n };\n\n _this.flush = function() {\n\n if (_buflen > 0) {\n writeEncoded(_buffer << (6 - _buflen) );\n _buffer = 0;\n _buflen = 0;\n }\n\n if (_length % 3 != 0) {\n // padding\n var padlen = 3 - _length % 3;\n for (var i = 0; i < padlen; i += 1) {\n _base64 += '=';\n }\n }\n };\n\n _this.toString = function() {\n return _base64;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64DecodeInputStream\n //---------------------------------------------------------------------\n\n var base64DecodeInputStream = function(str) {\n\n var _str = str;\n var _pos = 0;\n var _buffer = 0;\n var _buflen = 0;\n\n var _this = {};\n\n _this.read = function() {\n\n while (_buflen < 8) {\n\n if (_pos >= _str.length) {\n if (_buflen == 0) {\n return -1;\n }\n throw 'unexpected end of file./' + _buflen;\n }\n\n var c = _str.charAt(_pos);\n _pos += 1;\n\n if (c == '=') {\n _buflen = 0;\n return -1;\n } else if (c.match(/^\\s$/) ) {\n // ignore if whitespace.\n continue;\n }\n\n _buffer = (_buffer << 6) | decode(c.charCodeAt(0) );\n _buflen += 6;\n }\n\n var n = (_buffer >>> (_buflen - 8) ) & 0xff;\n _buflen -= 8;\n return n;\n };\n\n var decode = function(c) {\n if (0x41 <= c && c <= 0x5a) {\n return c - 0x41;\n } else if (0x61 <= c && c <= 0x7a) {\n return c - 0x61 + 26;\n } else if (0x30 <= c && c <= 0x39) {\n return c - 0x30 + 52;\n } else if (c == 0x2b) {\n return 62;\n } else if (c == 0x2f) {\n return 63;\n } else {\n throw 'c:' + c;\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // gifImage (B/W)\n //---------------------------------------------------------------------\n\n var gifImage = function(width, height) {\n\n var _width = width;\n var _height = height;\n var _data = new Array(width * height);\n\n var _this = {};\n\n _this.setPixel = function(x, y, pixel) {\n _data[y * _width + x] = pixel;\n };\n\n _this.write = function(out) {\n\n //---------------------------------\n // GIF Signature\n\n out.writeString('GIF87a');\n\n //---------------------------------\n // Screen Descriptor\n\n out.writeShort(_width);\n out.writeShort(_height);\n\n out.writeByte(0x80); // 2bit\n out.writeByte(0);\n out.writeByte(0);\n\n //---------------------------------\n // Global Color Map\n\n // black\n out.writeByte(0x00);\n out.writeByte(0x00);\n out.writeByte(0x00);\n\n // white\n out.writeByte(0xff);\n out.writeByte(0xff);\n out.writeByte(0xff);\n\n //---------------------------------\n // Image Descriptor\n\n out.writeString(',');\n out.writeShort(0);\n out.writeShort(0);\n out.writeShort(_width);\n out.writeShort(_height);\n out.writeByte(0);\n\n //---------------------------------\n // Local Color Map\n\n //---------------------------------\n // Raster Data\n\n var lzwMinCodeSize = 2;\n var raster = getLZWRaster(lzwMinCodeSize);\n\n out.writeByte(lzwMinCodeSize);\n\n var offset = 0;\n\n while (raster.length - offset > 255) {\n out.writeByte(255);\n out.writeBytes(raster, offset, 255);\n offset += 255;\n }\n\n out.writeByte(raster.length - offset);\n out.writeBytes(raster, offset, raster.length - offset);\n out.writeByte(0x00);\n\n //---------------------------------\n // GIF Terminator\n out.writeString(';');\n };\n\n var bitOutputStream = function(out) {\n\n var _out = out;\n var _bitLength = 0;\n var _bitBuffer = 0;\n\n var _this = {};\n\n _this.write = function(data, length) {\n\n if ( (data >>> length) != 0) {\n throw 'length over';\n }\n\n while (_bitLength + length >= 8) {\n _out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) );\n length -= (8 - _bitLength);\n data >>>= (8 - _bitLength);\n _bitBuffer = 0;\n _bitLength = 0;\n }\n\n _bitBuffer = (data << _bitLength) | _bitBuffer;\n _bitLength = _bitLength + length;\n };\n\n _this.flush = function() {\n if (_bitLength > 0) {\n _out.writeByte(_bitBuffer);\n }\n };\n\n return _this;\n };\n\n var getLZWRaster = function(lzwMinCodeSize) {\n\n var clearCode = 1 << lzwMinCodeSize;\n var endCode = (1 << lzwMinCodeSize) + 1;\n var bitLength = lzwMinCodeSize + 1;\n\n // Setup LZWTable\n var table = lzwTable();\n\n for (var i = 0; i < clearCode; i += 1) {\n table.add(String.fromCharCode(i) );\n }\n table.add(String.fromCharCode(clearCode) );\n table.add(String.fromCharCode(endCode) );\n\n var byteOut = byteArrayOutputStream();\n var bitOut = bitOutputStream(byteOut);\n\n // clear code\n bitOut.write(clearCode, bitLength);\n\n var dataIndex = 0;\n\n var s = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n while (dataIndex < _data.length) {\n\n var c = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n if (table.contains(s + c) ) {\n\n s = s + c;\n\n } else {\n\n bitOut.write(table.indexOf(s), bitLength);\n\n if (table.size() < 0xfff) {\n\n if (table.size() == (1 << bitLength) ) {\n bitLength += 1;\n }\n\n table.add(s + c);\n }\n\n s = c;\n }\n }\n\n bitOut.write(table.indexOf(s), bitLength);\n\n // end code\n bitOut.write(endCode, bitLength);\n\n bitOut.flush();\n\n return byteOut.toByteArray();\n };\n\n var lzwTable = function() {\n\n var _map = {};\n var _size = 0;\n\n var _this = {};\n\n _this.add = function(key) {\n if (_this.contains(key) ) {\n throw 'dup key:' + key;\n }\n _map[key] = _size;\n _size += 1;\n };\n\n _this.size = function() {\n return _size;\n };\n\n _this.indexOf = function(key) {\n return _map[key];\n };\n\n _this.contains = function(key) {\n return typeof _map[key] != 'undefined';\n };\n\n return _this;\n };\n\n return _this;\n };\n\n var createDataURL = function(width, height, getPixel) {\n var gif = gifImage(width, height);\n for (var y = 0; y < height; y += 1) {\n for (var x = 0; x < width; x += 1) {\n gif.setPixel(x, y, getPixel(x, y) );\n }\n }\n\n var b = byteArrayOutputStream();\n gif.write(b);\n\n var base64 = base64EncodeOutputStream();\n var bytes = b.toByteArray();\n for (var i = 0; i < bytes.length; i += 1) {\n base64.writeByte(bytes[i]);\n }\n base64.flush();\n\n return 'data:image/gif;base64,' + base64;\n };\n\n //---------------------------------------------------------------------\n // returns qrcode function.\n\n return qrcode;\n}();\n\n// multibyte support\n!function() {\n\n qrcode.stringToBytesFuncs['UTF-8'] = function(s) {\n // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\n function toUTF8Array(str) {\n var utf8 = [];\n for (var i=0; i < str.length; i++) {\n var charcode = str.charCodeAt(i);\n if (charcode < 0x80) utf8.push(charcode);\n else if (charcode < 0x800) {\n utf8.push(0xc0 | (charcode >> 6),\n 0x80 | (charcode & 0x3f));\n }\n else if (charcode < 0xd800 || charcode >= 0xe000) {\n utf8.push(0xe0 | (charcode >> 12),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n // surrogate pair\n else {\n i++;\n // UTF-16 encodes 0x10000-0x10FFFF by\n // subtracting 0x10000 and splitting the\n // 20 bits of 0x0-0xFFFFF into two halves\n charcode = 0x10000 + (((charcode & 0x3ff)<<10)\n | (str.charCodeAt(i) & 0x3ff));\n utf8.push(0xf0 | (charcode >>18),\n 0x80 | ((charcode>>12) & 0x3f),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n }\n return utf8;\n }\n return toUTF8Array(s);\n };\n\n}();\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n }\n}(function () {\n return qrcode;\n}));\n", "import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n", "import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n", "import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n", "import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n", "import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n", "export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
    {reuse}{reuse}
    ) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
    \n\t\t\t//
    {reuse}{reuse}
    \n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n", "import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix \n
    \n {examplesInGroups.map((group) => (\n {\n document.getElementById(htmlId)?.scrollIntoView({\n block: \"center\",\n });\n updateSelected(item);\n }}\n />\n ))}\n
    \n \n {\n setSidebarWidth((s) => s + x);\n }}\n />\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport interface Options {\n id?: string;\n strings?: any;\n getWrapperForGroup?: (name: string) => FunctionComponent;\n}\n\nexport function renderStories(\n groups: Record,\n options: Options = {},\n): void {\n const examples = parseGroupImport(groups);\n\n try {\n const cid = options.id ?? \"container\";\n const container = document.getElementById(cid);\n if (!container) {\n throw Error(\n `container with id ${cid} not found, can't mount page contents`,\n );\n }\n render(\n Fragment)}\n langs={options.strings ?? { en: {} }}\n />,\n container,\n );\n } catch (e) {\n console.error(\"got error\", e);\n if (e instanceof Error) {\n document.body.innerText = `Fatal error: \"${e.message}\". Please report this bug at https://bugs.gnunet.org/.`;\n }\n }\n}\n\nfunction ResizeHandle({ onUpdate }: { onUpdate: (x: number) => void }): VNode {\n const [start, setStart] = useState(undefined);\n return (\n {\n setStart(e.pageX);\n console.log(\"active\", e.pageX);\n return false;\n }}\n onMouseMove={(e: any) => {\n if (start !== undefined) {\n onUpdate(e.pageX - start);\n }\n return false;\n }}\n onMouseUp={() => {\n setStart(undefined);\n return false;\n }}\n />\n );\n}\n", "\nconst EMPTY = {};\n\nexport function assign(obj, props) {\n\t// eslint-disable-next-line guard-for-in\n\tfor (let i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\nexport function exec(url, route, opts) {\n\tlet reg = /(?:\\?([^#]*))?(#.*)?$/,\n\t\tc = url.match(reg),\n\t\tmatches = {},\n\t\tret;\n\tif (c && c[1]) {\n\t\tlet p = c[1].split('&');\n\t\tfor (let i=0; i b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nexport function prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nexport function segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nexport function rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nexport function rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n", "import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\n\n\nfunction route(url, replace=false) {\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i=0; i {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n", "export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}", "function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n", "var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n", "var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n", "import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { StateUpdater, useCallback, useState } from \"preact/hooks\";\nimport { ValueOrFunction } from \"../utils/types.js\";\n\nconst calculateRootPath = () => {\n const rootPath =\n typeof window !== undefined\n ? window.location.origin + window.location.pathname\n : \"/\";\n return rootPath;\n};\n\nexport function useBackendURL(\n url?: string,\n): [string, boolean, StateUpdater, () => void] {\n const [value, setter] = useNotNullLocalStorage(\n \"backend-url\",\n url || calculateRootPath(),\n );\n const [triedToLog, setTriedToLog] = useLocalStorage(\"tried-login\");\n\n const checkedSetter = (v: ValueOrFunction) => {\n setTriedToLog(\"yes\");\n return setter((p) => (v instanceof Function ? v(p) : v).replace(/\\/$/, \"\"));\n };\n\n const resetBackend = () => {\n setTriedToLog(undefined);\n };\n return [value, !!triedToLog, checkedSetter, resetBackend];\n}\n\nexport function useBackendDefaultToken(\n initialValue?: string,\n): [string | undefined, StateUpdater] {\n return useLocalStorage(\"backend-token\", initialValue);\n}\n\nexport function useBackendInstanceToken(\n id: string,\n): [string | undefined, StateUpdater] {\n const [random, setRandom] = useState(0);\n const [token, setToken] = useLocalStorage(`backend-token-${id}`);\n const [defaultToken, defaultSetToken] = useBackendDefaultToken();\n\n // instance named 'default' use the default token\n if (id === \"default\") {\n return [defaultToken, defaultSetToken];\n }\n function updateToken(\n value:\n | (string | undefined)\n | ((s: string | undefined) => string | undefined),\n ): void {\n setToken((p) => {\n const toStore = value instanceof Function ? value(p) : value;\n // setToken(value)\n setRandom(new Date().getTime());\n return toStore;\n });\n }\n\n return [token, updateToken];\n}\n\nexport function useLang(initial?: string): [string, StateUpdater] {\n const browserLang =\n typeof window !== \"undefined\"\n ? navigator.language || (navigator as any).userLanguage\n : undefined;\n const defaultLang = (browserLang || initial || \"en\").substring(0, 2);\n return useNotNullLocalStorage(\"lang-preference\", defaultLang);\n}\n\nexport function useLocalStorage(\n key: string,\n initialValue?: string,\n): [string | undefined, StateUpdater] {\n const [storedValue, setStoredValue] = useState(\n (): string | undefined => {\n return typeof window !== \"undefined\"\n ? window.localStorage.getItem(key) || initialValue\n : initialValue;\n },\n );\n\n const setValue = (\n value?: string | ((val?: string) => string | undefined),\n ) => {\n setStoredValue((p) => {\n const toStore = value instanceof Function ? value(p) : value;\n if (typeof window !== \"undefined\") {\n if (!toStore) {\n window.localStorage.removeItem(key);\n } else {\n window.localStorage.setItem(key, toStore);\n }\n }\n return toStore;\n });\n };\n\n return [storedValue, setValue];\n}\n\nexport function useNotNullLocalStorage(\n key: string,\n initialValue: string,\n): [string, StateUpdater] {\n const [storedValue, setStoredValue] = useState((): string => {\n return typeof window !== \"undefined\"\n ? window.localStorage.getItem(key) || initialValue\n : initialValue;\n });\n\n const setValue = (value: string | ((val: string) => string)) => {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n if (typeof window !== \"undefined\") {\n if (!valueToStore) {\n window.localStorage.removeItem(key);\n } else {\n window.localStorage.setItem(key, valueToStore);\n }\n }\n };\n\n return [storedValue, setValue];\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { createContext, h, VNode } from \"preact\";\nimport { useCallback, useContext, useState } from \"preact/hooks\";\nimport { useBackendDefaultToken, useBackendURL } from \"../hooks/index.js\";\n\ninterface BackendContextType {\n url: string;\n token?: string;\n triedToLog: boolean;\n resetBackend: () => void;\n clearAllTokens: () => void;\n addTokenCleaner: (c: () => void) => void;\n updateLoginStatus: (url: string, token?: string) => void;\n updateToken: (token?: string) => void;\n}\n\nconst BackendContext = createContext({\n url: \"\",\n token: undefined,\n triedToLog: false,\n resetBackend: () => null,\n clearAllTokens: () => null,\n addTokenCleaner: () => null,\n updateLoginStatus: () => null,\n updateToken: () => null,\n});\n\nfunction useBackendContextState(\n defaultUrl?: string,\n initialToken?: string,\n): BackendContextType {\n const [url, triedToLog, changeBackend, resetBackend] =\n useBackendURL(defaultUrl);\n const [token, _updateToken] = useBackendDefaultToken(initialToken);\n const updateToken = (t?: string) => {\n _updateToken(t);\n };\n\n const tokenCleaner = useCallback(() => {\n updateToken(undefined);\n }, []);\n const [cleaners, setCleaners] = useState([tokenCleaner]);\n const addTokenCleaner = (c: () => void) => setCleaners((cs) => [...cs, c]);\n const addTokenCleanerMemo = useCallback(\n (c: () => void) => {\n addTokenCleaner(c);\n },\n [tokenCleaner],\n );\n\n const clearAllTokens = () => {\n cleaners.forEach((c) => c());\n for (let i = 0; i < localStorage.length; i++) {\n const k = localStorage.key(i);\n if (k && /^backend-token/.test(k)) localStorage.removeItem(k);\n }\n resetBackend();\n };\n\n const updateLoginStatus = (url: string, token?: string) => {\n changeBackend(url);\n if (token) updateToken(token);\n };\n\n return {\n url,\n token,\n triedToLog,\n updateLoginStatus,\n resetBackend,\n clearAllTokens,\n updateToken,\n addTokenCleaner: addTokenCleanerMemo,\n };\n}\n\nexport const BackendContextProvider = ({\n children,\n defaultUrl,\n initialToken,\n}: {\n children: any;\n defaultUrl?: string;\n initialToken?: string;\n}): VNode => {\n const value = useBackendContextState(defaultUrl, initialToken);\n\n return h(BackendContext.Provider, { value, children });\n};\n\nexport const useBackendContext = (): BackendContextType =>\n useContext(BackendContext);\n", "/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/**\n * Check if two values are the same value\n * @param {*} x\n * @param {*} y\n * @returns {boolean}\n */\nexport function is(x, y) {\n\treturn (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\n", "import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n", "import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n", "import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\treturn fn(clone, props.ref || null);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n", "import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n", "import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function(vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._hydrating === true) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n", "import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n", "import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n", "import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\nconst IS_DOM = typeof document !== 'undefined';\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst onChangeInputType = type =>\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\n\t\t? /fil|che|rad/i\n\t\t: /fil|che|ra/i\n\t).test(type);\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\n\t\t\t\tcontinue;\n\t\t\t} else if (i === 'value' && 'defaultValue' in props && value == null) {\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\n\t\t\t\t// a default value\n\t\t\t\tcontinue;\n\t\t\t} else if (\n\t\t\t\ti === 'defaultValue' &&\n\t\t\t\t'value' in props &&\n\t\t\t\tprops.value == null\n\t\t\t) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!onChangeInputType(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^onfocus$/i.test(i)) {\n\t\t\t\ti = 'onfocusin';\n\t\t\t} else if (/^onblur$/i.test(i)) {\n\t\t\t\ti = 'onfocusout';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/g, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\t// Add support for onInput and onChange, see #3561\n\t\t\t// if we have an oninput prop already change it to oninputCapture\n\t\t\tif (/^oninput$/i.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t\tif (normalizedProps[i]) {\n\t\t\t\t\ti = 'oninputCapture';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: \n (!v ? \"\" : v.join(\"\\n\"))}\n fromStr={(v: string) => v.split(\"\\n\")}\n />\n \n \n \n \n \n \n \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { WithId } from \"../declaration.js\";\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nexport interface Actions {\n element: T;\n type: \"DELETE\" | \"UPDATE\";\n}\n\nfunction notEmpty(value: TValue | null | undefined): value is TValue {\n return value !== null && value !== undefined;\n}\n\nexport function buildActions(\n instances: T[],\n selected: string[],\n action: \"DELETE\",\n): Actions[] {\n return selected\n .map((id) => instances.find((i) => i.id === id))\n .filter(notEmpty)\n .map((id) => ({ element: id, type: action }));\n}\n\n/**\n * For any object or array, return the same object if is not empty.\n * not empty:\n * - for arrays: at least one element not undefined\n * - for objects: at least one property not undefined\n * @param obj\n * @returns\n */\nexport function undefinedIfEmpty<\n T extends Record | Array,\n>(obj: T): T | undefined {\n if (obj === undefined) return undefined;\n return Object.values(obj).some((v) => v !== undefined) ? obj : undefined;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { h, VNode } from \"preact\";\nimport { InputProps, useField } from \"./useField.js\";\n\ninterface Props extends InputProps {\n readonly?: boolean;\n expand?: boolean;\n values: string[];\n convert?: (v: string) => any;\n toStr?: (v?: any) => string;\n fromStr?: (s: string) => any;\n}\n\nconst defaultToString = (f?: any): string => f || \"\";\nconst defaultFromString = (v: string): any => v as any;\n\nexport function InputSelector({\n name,\n readonly,\n expand,\n placeholder,\n tooltip,\n label,\n help,\n values,\n convert,\n toStr = defaultToString,\n}: Props): VNode {\n const { error, value, onChange } = useField(name);\n\n return (\n
    \n
    \n \n
    \n
    \n
    \n

    \n {\n const v = convert\n ? convert(e.currentTarget.value)\n : e.currentTarget.value;\n onChange(v);\n }}\n >\n {placeholder && }\n {values.map((v, i) => (\n \n ))}\n \n {help}\n

    \n {error &&

    {error}

    }\n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useCallback, useState } from \"preact/hooks\";\nimport { COUNTRY_TABLE } from \"../../utils/constants.js\";\nimport { undefinedIfEmpty } from \"../../utils/table.js\";\nimport { FormErrors, FormProvider } from \"./FormProvider.js\";\nimport { Input } from \"./Input.js\";\nimport { InputGroup } from \"./InputGroup.js\";\nimport { InputSelector } from \"./InputSelector.js\";\nimport { InputProps, useField } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n isValid?: (e: any) => boolean;\n}\n\n// https://datatracker.ietf.org/doc/html/rfc8905\ntype Entity = {\n // iban, bitcoin, x-taler-bank. it defined the format\n target: string;\n // path1 if the first field to be used\n path1: string;\n // path2 if the second field to be used, optional\n path2?: string;\n // options of the payto uri\n options: {\n \"receiver-name\"?: string;\n sender?: string;\n message?: string;\n amount?: string;\n instruction?: string;\n [name: string]: string | undefined;\n };\n};\n\nfunction isEthereumAddress(address: string) {\n if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {\n return false;\n } else if (\n /^(0x|0X)?[0-9a-f]{40}$/.test(address) ||\n /^(0x|0X)?[0-9A-F]{40}$/.test(address)\n ) {\n return true;\n }\n return checkAddressChecksum(address);\n}\n\nfunction checkAddressChecksum(address: string) {\n //TODO implement ethereum checksum\n return true;\n}\n\nfunction validateBitcoin(\n addr: string,\n i18n: ReturnType[\"i18n\"],\n): string | undefined {\n try {\n const valid = /^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/.test(addr);\n if (valid) return undefined;\n } catch (e) {\n console.log(e);\n }\n return i18n.str`This is not a valid bitcoin address.`;\n}\n\nfunction validateEthereum(\n addr: string,\n i18n: ReturnType[\"i18n\"],\n): string | undefined {\n try {\n const valid = isEthereumAddress(addr);\n if (valid) return undefined;\n } catch (e) {\n console.log(e);\n }\n return i18n.str`This is not a valid Ethereum address.`;\n}\n\n/**\n * An IBAN is validated by converting it into an integer and performing a\n * basic mod-97 operation (as described in ISO 7064) on it.\n * If the IBAN is valid, the remainder equals 1.\n *\n * The algorithm of IBAN validation is as follows:\n * 1.- Check that the total IBAN length is correct as per the country. If not, the IBAN is invalid\n * 2.- Move the four initial characters to the end of the string\n * 3.- Replace each letter in the string with two digits, thereby expanding the string, where A = 10, B = 11, ..., Z = 35\n * 4.- Interpret the string as a decimal integer and compute the remainder of that number on division by 97\n *\n * If the remainder is 1, the check digit test is passed and the IBAN might be valid.\n *\n */\nfunction validateIBAN(\n iban: string,\n i18n: ReturnType[\"i18n\"],\n): string | undefined {\n // Check total length\n if (iban.length < 4)\n return i18n.str`IBAN numbers usually have more that 4 digits`;\n if (iban.length > 34)\n return i18n.str`IBAN numbers usually have less that 34 digits`;\n\n const A_code = \"A\".charCodeAt(0);\n const Z_code = \"Z\".charCodeAt(0);\n const IBAN = iban.toUpperCase();\n // check supported country\n const code = IBAN.substr(0, 2);\n const found = code in COUNTRY_TABLE;\n if (!found) return i18n.str`IBAN country code not found`;\n\n // 2.- Move the four initial characters to the end of the string\n const step2 = IBAN.substr(4) + iban.substr(0, 4);\n const step3 = Array.from(step2)\n .map((letter) => {\n const code = letter.charCodeAt(0);\n if (code < A_code || code > Z_code) return letter;\n return `${letter.charCodeAt(0) - \"A\".charCodeAt(0) + 10}`;\n })\n .join(\"\");\n\n function calculate_iban_checksum(str: string): number {\n const numberStr = str.substr(0, 5);\n const rest = str.substr(5);\n const number = parseInt(numberStr, 10);\n const result = number % 97;\n if (rest.length > 0) {\n return calculate_iban_checksum(`${result}${rest}`);\n }\n return result;\n }\n\n const checksum = calculate_iban_checksum(step3);\n if (checksum !== 1)\n return i18n.str`IBAN number is not valid, checksum is wrong`;\n return undefined;\n}\n\n// const targets = ['ach', 'bic', 'iban', 'upi', 'bitcoin', 'ilp', 'void', 'x-taler-bank']\nconst targets = [\n \"Choose one...\",\n \"iban\",\n \"x-taler-bank\",\n \"bitcoin\",\n \"ethereum\",\n];\nconst noTargetValue = targets[0];\nconst defaultTarget = { target: noTargetValue, options: {} };\n\nexport function InputPaytoForm({\n name,\n readonly,\n label,\n tooltip,\n}: Props): VNode {\n const { value: paytos, onChange } = useField(name);\n\n const [value, valueHandler] = useState>(defaultTarget);\n\n let payToPath;\n if (value.target === \"iban\" && value.path1) {\n payToPath = `/${value.path1.toUpperCase()}`;\n } else if (value.path1) {\n if (value.path2) {\n payToPath = `/${value.path1}/${value.path2}`;\n } else {\n payToPath = `/${value.path1}`;\n }\n }\n const { i18n } = useTranslationContext();\n\n const ops = value.options!;\n const url = tryUrl(`payto://${value.target}${payToPath}`);\n if (url) {\n Object.keys(ops).forEach((opt_key) => {\n const opt_value = ops[opt_key];\n if (opt_value) url.searchParams.set(opt_key, opt_value);\n });\n }\n const paytoURL = !url ? \"\" : url.href;\n\n const errors: FormErrors = {\n target: value.target === noTargetValue ? i18n.str`required` : undefined,\n path1: !value.path1\n ? i18n.str`required`\n : value.target === \"iban\"\n ? validateIBAN(value.path1, i18n)\n : value.target === \"bitcoin\"\n ? validateBitcoin(value.path1, i18n)\n : value.target === \"ethereum\"\n ? validateEthereum(value.path1, i18n)\n : undefined,\n path2:\n value.target === \"x-taler-bank\"\n ? !value.path2\n ? i18n.str`required`\n : undefined\n : undefined,\n options: undefinedIfEmpty({\n \"receiver-name\": !value.options?.[\"receiver-name\"]\n ? i18n.str`required`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = useCallback((): void => {\n const alreadyExists =\n paytos.findIndex((x: string) => x === paytoURL) !== -1;\n if (!alreadyExists) {\n onChange([paytoURL, ...paytos] as any);\n }\n valueHandler(defaultTarget);\n }, [value]);\n\n //FIXME: translating plural singular\n return (\n \n \n name=\"tax\"\n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n \n name=\"target\"\n label={i18n.str`Target type`}\n tooltip={i18n.str`Method to use for wire transfer`}\n values={targets}\n toStr={(v) => (v === noTargetValue ? i18n.str`Choose one...` : v)}\n />\n\n {value.target === \"ach\" && (\n \n \n name=\"path1\"\n label={i18n.str`Routing`}\n tooltip={i18n.str`Routing number.`}\n />\n \n name=\"path2\"\n label={i18n.str`Account`}\n tooltip={i18n.str`Account number.`}\n />\n \n )}\n {value.target === \"bic\" && (\n \n \n name=\"path1\"\n label={i18n.str`Code`}\n tooltip={i18n.str`Business Identifier Code.`}\n />\n \n )}\n {value.target === \"iban\" && (\n \n \n name=\"path1\"\n label={i18n.str`Account`}\n tooltip={i18n.str`Bank Account Number.`}\n inputExtra={{ style: { textTransform: \"uppercase\" } }}\n />\n \n )}\n {value.target === \"upi\" && (\n \n \n name=\"path1\"\n label={i18n.str`Account`}\n tooltip={i18n.str`Unified Payment Interface.`}\n />\n \n )}\n {value.target === \"bitcoin\" && (\n \n \n name=\"path1\"\n label={i18n.str`Address`}\n tooltip={i18n.str`Bitcoin protocol.`}\n />\n \n )}\n {value.target === \"ethereum\" && (\n \n \n name=\"path1\"\n label={i18n.str`Address`}\n tooltip={i18n.str`Ethereum protocol.`}\n />\n \n )}\n {value.target === \"ilp\" && (\n \n \n name=\"path1\"\n label={i18n.str`Address`}\n tooltip={i18n.str`Interledger protocol.`}\n />\n \n )}\n {value.target === \"void\" && }\n {value.target === \"x-taler-bank\" && (\n \n \n name=\"path1\"\n label={i18n.str`Host`}\n tooltip={i18n.str`Bank host.`}\n />\n \n name=\"path2\"\n label={i18n.str`Account`}\n tooltip={i18n.str`Bank account.`}\n />\n \n )}\n\n {value.target !== noTargetValue && (\n \n )}\n\n
    \n
    \n
    \n {paytos.map((v: any, i: number) => (\n \n \n {v}\n \n {\n onChange(paytos.filter((f: any) => f !== v) as any);\n }}\n />\n
    \n ))}\n {!paytos.length && i18n.str`No accounts yet.`}\n
    \n
    \n\n {value.target !== noTargetValue && (\n
    \n \n Add\n \n
    \n )}\n \n
    \n );\n}\n\nfunction tryUrl(s: string): URL | undefined {\n try {\n return new URL(s);\n } catch (e) {\n return undefined;\n }\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useBackendContext } from \"../../context/backend.js\";\nimport { Entity } from \"../../paths/admin/create/CreatePage.js\";\nimport { Input } from \"../form/Input.js\";\nimport { InputCurrency } from \"../form/InputCurrency.js\";\nimport { InputDuration } from \"../form/InputDuration.js\";\nimport { InputGroup } from \"../form/InputGroup.js\";\nimport { InputImage } from \"../form/InputImage.js\";\nimport { InputLocation } from \"../form/InputLocation.js\";\nimport { InputPaytoForm } from \"../form/InputPaytoForm.js\";\nimport { InputWithAddon } from \"../form/InputWithAddon.js\";\n\nexport function DefaultInstanceFormFields({\n readonlyId,\n showId,\n}: {\n readonlyId?: boolean;\n showId: boolean;\n}): VNode {\n const { i18n } = useTranslationContext();\n const backend = useBackendContext();\n return (\n \n {showId && (\n \n name=\"id\"\n addonBefore={`${backend.url}/instances/`}\n readonly={readonlyId}\n label={i18n.str`Identifier`}\n tooltip={i18n.str`Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.`}\n />\n )}\n\n \n name=\"name\"\n label={i18n.str`Business name`}\n tooltip={i18n.str`Legal name of the business represented by this instance.`}\n />\n\n \n name=\"email\"\n label={i18n.str`Email`}\n tooltip={i18n.str`Contact email`}\n />\n\n \n name=\"website\"\n label={i18n.str`Website URL`}\n tooltip={i18n.str`URL.`}\n />\n\n \n name=\"logo\"\n label={i18n.str`Logo`}\n tooltip={i18n.str`Logo image.`}\n />\n\n \n name=\"payto_uris\"\n label={i18n.str`Bank account`}\n tooltip={i18n.str`URI specifying bank account for crediting revenue.`}\n />\n\n \n name=\"default_max_deposit_fee\"\n label={i18n.str`Default max deposit fee`}\n tooltip={i18n.str`Maximum deposit fees this merchant is willing to pay per order by default.`}\n />\n\n \n name=\"default_max_wire_fee\"\n label={i18n.str`Default max wire fee`}\n tooltip={i18n.str`Maximum wire fees this merchant is willing to pay per wire transfer by default.`}\n />\n\n \n name=\"default_wire_fee_amortization\"\n label={i18n.str`Default wire fee amortization`}\n tooltip={i18n.str`Number of orders excess wire transfer fees will be divided by to compute per order surcharge.`}\n />\n\n \n \n \n\n \n \n \n\n \n name=\"default_pay_delay\"\n label={i18n.str`Default payment delay`}\n withForever\n tooltip={i18n.str`Time customers have to pay an order before the offer expires by default.`}\n />\n\n \n name=\"default_wire_transfer_delay\"\n label={i18n.str`Default wire transfer delay`}\n tooltip={i18n.str`Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.`}\n withForever\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../components/form/FormProvider.js\";\nimport { DefaultInstanceFormFields } from \"../../../components/instance/DefaultInstanceFormFields.js\";\nimport { SetTokenNewInstanceModal } from \"../../../components/modal/index.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { INSTANCE_ID_REGEX, PAYTO_REGEX } from \"../../../utils/constants.js\";\nimport { undefinedIfEmpty } from \"../../../utils/table.js\";\n\nexport type Entity = MerchantBackend.Instances.InstanceConfigurationMessage & {\n auth_token?: string;\n};\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n forceId?: string;\n}\n\nfunction with_defaults(id?: string): Partial {\n return {\n id,\n payto_uris: [],\n default_pay_delay: { d_us: 2 * 1000 * 60 * 60 * 1000 }, // two hours\n default_wire_fee_amortization: 1,\n default_wire_transfer_delay: { d_us: 1000 * 2 * 60 * 60 * 24 * 1000 }, // two days\n };\n}\n\nexport function CreatePage({ onCreate, onBack, forceId }: Props): VNode {\n const [value, valueHandler] = useState(with_defaults(forceId));\n const [isTokenSet, updateIsTokenSet] = useState(false);\n const [isTokenDialogActive, updateIsTokenDialogActive] =\n useState(false);\n\n const { i18n } = useTranslationContext();\n\n const errors: FormErrors = {\n id: !value.id\n ? i18n.str`required`\n : !INSTANCE_ID_REGEX.test(value.id)\n ? i18n.str`is not valid`\n : undefined,\n name: !value.name ? i18n.str`required` : undefined,\n payto_uris:\n !value.payto_uris || !value.payto_uris.length\n ? i18n.str`required`\n : undefinedIfEmpty(\n value.payto_uris.map((p) => {\n return !PAYTO_REGEX.test(p) ? i18n.str`is not valid` : undefined;\n }),\n ),\n default_max_deposit_fee: !value.default_max_deposit_fee\n ? i18n.str`required`\n : !Amounts.parse(value.default_max_deposit_fee)\n ? i18n.str`invalid format`\n : undefined,\n default_max_wire_fee: !value.default_max_wire_fee\n ? i18n.str`required`\n : !Amounts.parse(value.default_max_wire_fee)\n ? i18n.str`invalid format`\n : undefined,\n default_wire_fee_amortization:\n value.default_wire_fee_amortization === undefined\n ? i18n.str`required`\n : isNaN(value.default_wire_fee_amortization)\n ? i18n.str`is not a number`\n : value.default_wire_fee_amortization < 1\n ? i18n.str`must be 1 or greater`\n : undefined,\n default_pay_delay: !value.default_pay_delay\n ? i18n.str`required`\n : undefined,\n default_wire_transfer_delay: !value.default_wire_transfer_delay\n ? i18n.str`required`\n : undefined,\n address: undefinedIfEmpty({\n address_lines:\n value.address?.address_lines && value.address?.address_lines.length > 7\n ? i18n.str`max 7 lines`\n : undefined,\n }),\n jurisdiction: undefinedIfEmpty({\n address_lines:\n value.address?.address_lines && value.address?.address_lines.length > 7\n ? i18n.str`max 7 lines`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = (): Promise => {\n // use conversion instead of this\n const newToken = value.auth_token;\n value.auth_token = undefined;\n value.auth =\n newToken === null || newToken === undefined\n ? { method: \"external\" }\n : { method: \"token\", token: `secret-token:${newToken}` };\n if (!value.address) value.address = {};\n if (!value.jurisdiction) value.jurisdiction = {};\n // remove above use conversion\n // schema.validateSync(value, { abortEarly: false })\n return onCreate(value as Entity);\n };\n\n function updateToken(token: string | null) {\n valueHandler((old) => ({\n ...old,\n auth_token: token === null ? undefined : token,\n }));\n }\n\n return (\n
    \n
    \n
    \n
    \n {isTokenDialogActive && (\n {\n updateIsTokenDialogActive(false);\n updateIsTokenSet(false);\n }}\n onClear={() => {\n updateToken(null);\n updateIsTokenDialogActive(false);\n updateIsTokenSet(true);\n }}\n onConfirm={(newToken) => {\n updateToken(newToken);\n updateIsTokenDialogActive(false);\n updateIsTokenSet(true);\n }}\n />\n )}\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n updateIsTokenDialogActive(true)}\n >\n
    \n \n
    \n \n Set access token\n \n \n

    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n \n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { ComponentChildren, h, VNode } from \"preact\";\n\ninterface Props {\n onCreateAnother?: () => void;\n onConfirm: () => void;\n children: ComponentChildren;\n}\n\nexport function CreatedSuccessfully({\n children,\n onConfirm,\n onCreateAnother,\n}: Props): VNode {\n return (\n
    \n
    \n
    \n
    \n
    \n

    Success.

    \n
    \n
    {children}
    \n
    \n
    \n {onCreateAnother && (\n \n )}\n \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { h, VNode } from \"preact\";\nimport { CreatedSuccessfully } from \"../../../components/notifications/CreatedSuccessfully.js\";\nimport { Entity } from \"./index.js\";\n\nexport function InstanceCreatedSuccessfully({\n entity,\n onConfirm,\n}: {\n entity: Entity;\n onConfirm: () => void;\n}): VNode {\n return (\n \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n {entity.auth.method === \"external\" && \"external\"}\n {entity.auth.method === \"token\" && (\n \n )}\n

    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { useAdminAPI } from \"../../../hooks/instance.js\";\nimport { Notification } from \"../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\nimport { InstanceCreatedSuccessfully } from \"./InstanceCreatedSuccessfully.js\";\n\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n forceId?: string;\n}\nexport type Entity = MerchantBackend.Instances.InstanceConfigurationMessage;\n\nexport default function Create({ onBack, onConfirm, forceId }: Props): VNode {\n const { createInstance } = useAdminAPI();\n const [notif, setNotif] = useState(undefined);\n const [createdOk, setCreatedOk] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n if (createdOk) {\n return (\n \n );\n }\n\n return (\n \n \n\n {\n return createInstance(d)\n .then(() => {\n setCreatedOk(d);\n })\n .catch((error) => {\n setNotif({\n message: i18n.str`Failed to create instance`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../../../declaration.js\";\n\ninterface Props {\n instances: MerchantBackend.Instances.Instance[];\n onUpdate: (id: string) => void;\n onDelete: (id: MerchantBackend.Instances.Instance) => void;\n onPurge: (id: MerchantBackend.Instances.Instance) => void;\n onCreate: () => void;\n selected?: boolean;\n setInstanceName: (s: string) => void;\n}\n\nexport function CardTable({\n instances,\n onCreate,\n onUpdate,\n onPurge,\n setInstanceName,\n onDelete,\n selected,\n}: Props): VNode {\n const [actionQueue, actionQueueHandler] = useState([]);\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n useEffect(() => {\n if (\n actionQueue.length > 0 &&\n !selected &&\n actionQueue[0].type == \"DELETE\"\n ) {\n onDelete(actionQueue[0].element);\n actionQueueHandler(actionQueue.slice(1));\n }\n }, [actionQueue, selected, onDelete]);\n\n useEffect(() => {\n if (\n actionQueue.length > 0 &&\n !selected &&\n actionQueue[0].type == \"UPDATE\"\n ) {\n onUpdate(actionQueue[0].element.id);\n actionQueueHandler(actionQueue.slice(1));\n }\n }, [actionQueue, selected, onUpdate]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n

    \n \n \n \n Instances\n

    \n\n
    \n 0 ? \"button is-danger\" : \"is-hidden\"}\n type=\"button\"\n onClick={(): void =>\n actionQueueHandler(\n buildActions(instances, rowSelection, \"DELETE\"),\n )\n }\n >\n Delete\n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {instances.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: MerchantBackend.Instances.Instance[];\n onUpdate: (id: string) => void;\n onDelete: (id: MerchantBackend.Instances.Instance) => void;\n onPurge: (id: MerchantBackend.Instances.Instance) => void;\n rowSelectionHandler: StateUpdater;\n setInstanceName: (s: string) => void;\n}\n\nfunction toggleSelected(id: T): (prev: T[]) => T[] {\n return (prev: T[]): T[] =>\n prev.indexOf(id) == -1 ? [...prev, id] : prev.filter((e) => e != id);\n}\n\nfunction Table({\n rowSelection,\n rowSelectionHandler,\n setInstanceName,\n instances,\n onUpdate,\n onDelete,\n onPurge,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n
    \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n \n \n \n \n \n );\n })}\n \n
    \n \n \n ID\n \n Name\n \n
    \n \n \n {\n setInstanceName(i.id);\n }}\n >\n {i.id}\n \n {i.name}\n
    \n onUpdate(i.id)}\n >\n Edit\n \n {!i.deleted && (\n onDelete(i)}\n >\n Delete\n \n )}\n {i.deleted && (\n onPurge(i)}\n >\n Purge\n \n )}\n
    \n
    \n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no instances yet, add more pressing the + sign\n \n

    \n
    \n );\n}\n\ninterface Actions {\n element: MerchantBackend.Instances.Instance;\n type: \"DELETE\" | \"UPDATE\";\n}\n\nfunction notEmpty(value: TValue | null | undefined): value is TValue {\n return value !== null && value !== undefined;\n}\n\nfunction buildActions(\n instances: MerchantBackend.Instances.Instance[],\n selected: string[],\n action: \"DELETE\",\n): Actions[] {\n return selected\n .map((id) => instances.find((i) => i.id === id))\n .filter(notEmpty)\n .map((id) => ({ element: id, type: action }));\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { CardTable as CardTableActive } from \"./TableActive.js\";\n\ninterface Props {\n instances: MerchantBackend.Instances.Instance[];\n onCreate: () => void;\n onUpdate: (id: string) => void;\n onDelete: (id: MerchantBackend.Instances.Instance) => void;\n onPurge: (id: MerchantBackend.Instances.Instance) => void;\n selected?: boolean;\n setInstanceName: (s: string) => void;\n}\n\nexport function View({\n instances,\n onCreate,\n onDelete,\n onPurge,\n onUpdate,\n setInstanceName,\n selected,\n}: Props): VNode {\n const [show, setShow] = useState<\"active\" | \"deleted\" | null>(\"active\");\n const showIsActive = show === \"active\" ? \"is-active\" : \"\";\n const showIsDeleted = show === \"deleted\" ? \"is-active\" : \"\";\n const showAll = show === null ? \"is-active\" : \"\";\n const { i18n } = useTranslationContext();\n\n const showingInstances = showIsDeleted\n ? instances.filter((i) => i.deleted)\n : showIsActive\n ? instances.filter((i) => !i.deleted)\n : instances;\n\n return (\n
    \n \n \n \n
    \n
    \n \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../components/menu/index.js\";\nimport { DeleteModal, PurgeModal } from \"../../../components/modal/index.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { useAdminAPI, useBackendInstances } from \"../../../hooks/instance.js\";\nimport { Notification } from \"../../../utils/types.js\";\nimport { View } from \"./View.js\";\n\ninterface Props {\n onCreate: () => void;\n onUpdate: (id: string) => void;\n instances: MerchantBackend.Instances.Instance[];\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n setInstanceName: (s: string) => void;\n}\n\nexport default function Instances({\n onUnauthorized,\n onLoadError,\n onNotFound,\n onCreate,\n onUpdate,\n setInstanceName,\n}: Props): VNode {\n const result = useBackendInstances();\n const [deleting, setDeleting] =\n useState(null);\n const [purging, setPurging] =\n useState(null);\n const { deleteInstance, purgeInstance } = useAdminAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n \n {deleting && (\n setDeleting(null)}\n onConfirm={async (): Promise => {\n try {\n await deleteInstance(deleting.id);\n // pushNotification({ message: 'delete_success', type: 'SUCCESS' })\n setNotif({\n message: i18n.str`Instance '${deleting.name}' (ID: ${deleting.id}) has been deleted`,\n type: \"SUCCESS\",\n });\n } catch (error) {\n setNotif({\n message: i18n.str`Failed to delete instance`,\n type: \"ERROR\",\n description: error instanceof Error ? error.message : undefined,\n });\n // pushNotification({ message: 'delete_error', type: 'ERROR' })\n }\n setDeleting(null);\n }}\n />\n )}\n {purging && (\n setPurging(null)}\n onConfirm={async (): Promise => {\n try {\n await purgeInstance(purging.id);\n setNotif({\n message: i18n.str`Instance '${purging.name}' (ID: ${purging.id}) has been disabled`,\n type: \"SUCCESS\",\n });\n } catch (error) {\n setNotif({\n message: i18n.str`Failed to purge instance`,\n type: \"ERROR\",\n description: error instanceof Error ? error.message : undefined,\n });\n }\n setPurging(null);\n }}\n />\n )}\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\nexport interface Props {\n status: MerchantBackend.Instances.AccountKycRedirects;\n}\n\nexport function ListPage({ status }: Props): VNode {\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n
    \n

    \n \n \n \n Pending KYC verification\n

    \n\n
    \n
    \n
    \n
    \n
    \n {status.pending_kycs.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n\n {status.timeout_kycs.length > 0 ? (\n
    \n
    \n

    \n \n \n \n Timed out\n

    \n\n
    \n
    \n
    \n
    \n
    \n {status.timeout_kycs.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n ) : undefined}\n
    \n );\n}\ninterface PendingTableProps {\n entries: MerchantBackend.Instances.MerchantAccountKycRedirect[];\n}\n\ninterface TimedOutTableProps {\n entries: MerchantBackend.Instances.ExchangeKycTimeout[];\n}\n\nfunction PendingTable({ entries }: PendingTableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n \n \n \n \n \n \n \n \n \n {entries.map((e, i) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    \n Exchange\n \n Target account\n \n KYC URL\n
    {e.exchange_url}{e.payto_uri}\n \n {e.kyc_url}\n \n
    \n
    \n );\n}\n\nfunction TimedOutTable({ entries }: TimedOutTableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n \n \n \n \n \n \n \n \n \n {entries.map((e, i) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    \n Exchange\n \n Code\n \n Http Status\n
    {e.exchange_url}{e.exchange_code}{e.exchange_http_status}
    \n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n No pending kyc verification!\n

    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { HttpError } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useInstanceKYCDetails } from \"../../../../hooks/instance.js\";\nimport { ListPage } from \"./ListPage.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n}\n\nexport default function ListKYC({\n onUnauthorized,\n onLoadError,\n onNotFound,\n}: Props): VNode {\n const result = useInstanceKYCDetails();\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n const status = result.data.type === \"ok\" ? undefined : result.data.status;\n\n if (!status) {\n return
    no kyc required
    ;\n }\n return ;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n HttpResponsePaginated,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { MAX_RESULT_SIZE, PAGE_SIZE } from \"../utils/constants.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport interface OrderAPI {\n //FIXME: add OutOfStockResponse on 410\n createOrder: (\n data: MerchantBackend.Orders.PostOrderRequest,\n ) => Promise>;\n forgetOrder: (\n id: string,\n data: MerchantBackend.Orders.ForgetRequest,\n ) => Promise>;\n refundOrder: (\n id: string,\n data: MerchantBackend.Orders.RefundRequest,\n ) => Promise>;\n deleteOrder: (id: string) => Promise>;\n getPaymentURL: (id: string) => Promise>;\n}\n\ntype YesOrNo = \"yes\" | \"no\";\n\nexport function useOrderAPI(): OrderAPI {\n const mutateAll = useMatchMutate();\n const { request } = useBackendInstanceRequest();\n\n const createOrder = async (\n data: MerchantBackend.Orders.PostOrderRequest,\n ): Promise> => {\n const res = await request(\n `/private/orders`,\n {\n method: \"POST\",\n data,\n },\n );\n await mutateAll(/.*private\\/orders.*/);\n // mutate('')\n return res;\n };\n const refundOrder = async (\n orderId: string,\n data: MerchantBackend.Orders.RefundRequest,\n ): Promise> => {\n mutateAll(/@\"\\/private\\/orders\"@/);\n const res = request(\n `/private/orders/${orderId}/refund`,\n {\n method: \"POST\",\n data,\n },\n );\n\n // order list returns refundable information, so we must evict everything\n await mutateAll(/.*private\\/orders.*/);\n return res;\n };\n\n const forgetOrder = async (\n orderId: string,\n data: MerchantBackend.Orders.ForgetRequest,\n ): Promise> => {\n mutateAll(/@\"\\/private\\/orders\"@/);\n const res = request(`/private/orders/${orderId}/forget`, {\n method: \"PATCH\",\n data,\n });\n // we may be forgetting some fields that are pare of the listing, so we must evict everything\n await mutateAll(/.*private\\/orders.*/);\n return res;\n };\n const deleteOrder = async (\n orderId: string,\n ): Promise> => {\n mutateAll(/@\"\\/private\\/orders\"@/);\n const res = request(`/private/orders/${orderId}`, {\n method: \"DELETE\",\n });\n await mutateAll(/.*private\\/orders.*/);\n return res;\n };\n\n const getPaymentURL = async (\n orderId: string,\n ): Promise> => {\n return request(\n `/private/orders/${orderId}`,\n {\n method: \"GET\",\n },\n ).then((res) => {\n const url =\n res.data.order_status === \"unpaid\"\n ? res.data.taler_pay_uri\n : res.data.contract_terms.fulfillment_url;\n const response: HttpResponseOk = res as any;\n response.data = url || \"\";\n return response;\n });\n };\n\n return { createOrder, forgetOrder, deleteOrder, refundOrder, getPaymentURL };\n}\n\nexport function useOrderDetails(\n oderId: string,\n): HttpResponse<\n MerchantBackend.Orders.MerchantOrderStatusResponse,\n MerchantBackend.ErrorDetail\n> {\n const { fetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/orders/${oderId}`], fetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n\nexport interface InstanceOrderFilter {\n paid?: YesOrNo;\n refunded?: YesOrNo;\n wired?: YesOrNo;\n date?: Date;\n}\n\nexport function useInstanceOrders(\n args?: InstanceOrderFilter,\n updateFilter?: (d: Date) => void,\n): HttpResponsePaginated<\n MerchantBackend.Orders.OrderHistory,\n MerchantBackend.ErrorDetail\n> {\n const { orderFetcher } = useBackendInstanceRequest();\n\n const [pageBefore, setPageBefore] = useState(1);\n const [pageAfter, setPageAfter] = useState(1);\n\n const totalAfter = pageAfter * PAGE_SIZE;\n const totalBefore = args?.date ? pageBefore * PAGE_SIZE : 0;\n\n /**\n * FIXME: this can be cleaned up a little\n *\n * the logic of double query should be inside the orderFetch so from the hook perspective and cache\n * is just one query and one error status\n */\n const {\n data: beforeData,\n error: beforeError,\n isValidating: loadingBefore,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >(\n [\n `/private/orders`,\n args?.paid,\n args?.refunded,\n args?.wired,\n args?.date,\n totalBefore,\n ],\n orderFetcher,\n );\n const {\n data: afterData,\n error: afterError,\n isValidating: loadingAfter,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >(\n [\n `/private/orders`,\n args?.paid,\n args?.refunded,\n args?.wired,\n args?.date,\n -totalAfter,\n ],\n orderFetcher,\n );\n\n //this will save last result\n const [lastBefore, setLastBefore] = useState<\n HttpResponse<\n MerchantBackend.Orders.OrderHistory,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n const [lastAfter, setLastAfter] = useState<\n HttpResponse<\n MerchantBackend.Orders.OrderHistory,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n useEffect(() => {\n if (afterData) setLastAfter(afterData);\n if (beforeData) setLastBefore(beforeData);\n }, [afterData, beforeData]);\n\n if (beforeError) return beforeError.info;\n if (afterError) return afterError.info;\n\n // if the query returns less that we ask, then we have reach the end or beginning\n const isReachingEnd = afterData && afterData.data.orders.length < totalAfter;\n const isReachingStart =\n args?.date === undefined ||\n (beforeData && beforeData.data.orders.length < totalBefore);\n\n const pagination = {\n isReachingEnd,\n isReachingStart,\n loadMore: () => {\n if (!afterData || isReachingEnd) return;\n if (afterData.data.orders.length < MAX_RESULT_SIZE) {\n setPageAfter(pageAfter + 1);\n } else {\n const from =\n afterData.data.orders[afterData.data.orders.length - 1].timestamp.t_s;\n if (from && from !== \"never\" && updateFilter)\n updateFilter(new Date(from * 1000));\n }\n },\n loadMorePrev: () => {\n if (!beforeData || isReachingStart) return;\n if (beforeData.data.orders.length < MAX_RESULT_SIZE) {\n setPageBefore(pageBefore + 1);\n } else if (beforeData) {\n const from =\n beforeData.data.orders[beforeData.data.orders.length - 1].timestamp\n .t_s;\n if (from && from !== \"never\" && updateFilter)\n updateFilter(new Date(from * 1000));\n }\n },\n };\n\n const orders =\n !beforeData || !afterData\n ? []\n : (beforeData || lastBefore).data.orders\n .slice()\n .reverse()\n .concat((afterData || lastAfter).data.orders);\n if (loadingAfter || loadingBefore) return { loading: true, data: { orders } };\n if (beforeData && afterData) {\n return { ok: true, data: { orders }, ...pagination };\n }\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { MerchantBackend, WithId } from \"../declaration.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook, useSWRConfig } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport interface ProductAPI {\n createProduct: (\n data: MerchantBackend.Products.ProductAddDetail,\n ) => Promise;\n updateProduct: (\n id: string,\n data: MerchantBackend.Products.ProductPatchDetail,\n ) => Promise;\n deleteProduct: (id: string) => Promise;\n lockProduct: (\n id: string,\n data: MerchantBackend.Products.LockRequest,\n ) => Promise;\n}\n\nexport function useProductAPI(): ProductAPI {\n const mutateAll = useMatchMutate();\n const { mutate } = useSWRConfig();\n\n const { request } = useBackendInstanceRequest();\n\n const createProduct = async (\n data: MerchantBackend.Products.ProductAddDetail,\n ): Promise => {\n const res = await request(`/private/products`, {\n method: \"POST\",\n data,\n });\n\n return await mutateAll(/.*\"\\/private\\/products.*/);\n };\n\n const updateProduct = async (\n productId: string,\n data: MerchantBackend.Products.ProductPatchDetail,\n ): Promise => {\n const r = await request(`/private/products/${productId}`, {\n method: \"PATCH\",\n data,\n });\n\n return await mutateAll(/.*\"\\/private\\/products.*/);\n };\n\n const deleteProduct = async (productId: string): Promise => {\n await request(`/private/products/${productId}`, {\n method: \"DELETE\",\n });\n await mutate([`/private/products`]);\n };\n\n const lockProduct = async (\n productId: string,\n data: MerchantBackend.Products.LockRequest,\n ): Promise => {\n await request(`/private/products/${productId}/lock`, {\n method: \"POST\",\n data,\n });\n\n return await mutateAll(/.*\"\\/private\\/products.*/);\n };\n\n return { createProduct, updateProduct, deleteProduct, lockProduct };\n}\n\nexport function useInstanceProducts(): HttpResponse<\n (MerchantBackend.Products.ProductDetail & WithId)[],\n MerchantBackend.ErrorDetail\n> {\n const { fetcher, multiFetcher } = useBackendInstanceRequest();\n\n const { data: list, error: listError } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/products`], fetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n const paths = (list?.data.products || []).map(\n (p) => `/private/products/${p.product_id}`,\n );\n const { data: products, error: productError } = useSWR<\n HttpResponseOk[],\n RequestError\n >([paths], multiFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (listError) return listError.info;\n if (productError) return productError.info;\n\n if (products) {\n const dataWithId = products.map((d) => {\n //take the id from the queried url\n return {\n ...d.data,\n id: d.info?.url.replace(/.*\\/private\\/products\\//, \"\") || \"\",\n };\n });\n return { ok: true, data: dataWithId };\n }\n return { loading: true };\n}\n\nexport function useProductDetails(\n productId: string,\n): HttpResponse<\n MerchantBackend.Products.ProductDetail,\n MerchantBackend.ErrorDetail\n> {\n const { fetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/products/${productId}`], fetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { h, VNode } from \"preact\";\nimport { InputProps, useField } from \"./useField.js\";\n\ninterface Props extends InputProps {\n name: T;\n readonly?: boolean;\n expand?: boolean;\n threeState?: boolean;\n toBoolean?: (v?: any) => boolean | undefined;\n fromBoolean?: (s: boolean | undefined) => any;\n}\n\nconst defaultToBoolean = (f?: any): boolean | undefined => f || \"\";\nconst defaultFromBoolean = (v: boolean | undefined): any => v as any;\n\nexport function InputBoolean({\n name,\n readonly,\n placeholder,\n tooltip,\n label,\n help,\n threeState,\n expand,\n fromBoolean = defaultFromBoolean,\n toBoolean = defaultToBoolean,\n}: Props): VNode {\n const { error, value, onChange } = useField(name);\n\n const onCheckboxClick = (): void => {\n const c = toBoolean(value);\n if (c === false && threeState) return onChange(undefined as any);\n return onChange(fromBoolean(!c));\n };\n\n return (\n
    \n
    \n \n
    \n
    \n
    \n

    \n \n {help}\n

    \n {error &&

    {error}

    }\n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, Component } from \"preact\";\n\ninterface Props {\n closeFunction?: () => void;\n dateReceiver?: (d: Date) => void;\n opened?: boolean;\n}\ninterface State {\n displayedMonth: number;\n displayedYear: number;\n selectYearMode: boolean;\n currentDate: Date;\n}\n\n// inspired by https://codepen.io/m4r1vs/pen/MOOxyE\nexport class DatePicker extends Component {\n closeDatePicker() {\n this.props.closeFunction && this.props.closeFunction(); // Function gets passed by parent\n }\n\n /**\n * Gets fired when a day gets clicked.\n * @param {object} e The event thrown by the element clicked\n */\n dayClicked(e: any) {\n const element = e.target; // the actual element clicked\n\n if (element.innerHTML === \"\") return false; // don't continue if empty\n\n // get date from clicked element (gets attached when rendered)\n const date = new Date(element.getAttribute(\"data-value\"));\n\n // update the state\n this.setState({ currentDate: date });\n this.passDateToParent(date);\n }\n\n /**\n * returns days in month as array\n * @param {number} month the month to display\n * @param {number} year the year to display\n */\n getDaysByMonth(month: number, year: number) {\n const calendar = [];\n\n const date = new Date(year, month, 1); // month to display\n\n const firstDay = new Date(year, month, 1).getDay(); // first weekday of month\n const lastDate = new Date(year, month + 1, 0).getDate(); // last date of month\n\n let day: number | null = 0;\n\n // the calendar is 7*6 fields big, so 42 loops\n for (let i = 0; i < 42; i++) {\n if (i >= firstDay && day !== null) day = day + 1;\n if (day !== null && day > lastDate) day = null;\n\n // append the calendar Array\n calendar.push({\n day: day === 0 || day === null ? null : day, // null or number\n date: day === 0 || day === null ? null : new Date(year, month, day), // null or Date()\n today:\n day === now.getDate() &&\n month === now.getMonth() &&\n year === now.getFullYear(), // boolean\n });\n }\n\n return calendar;\n }\n\n /**\n * Display previous month by updating state\n */\n displayPrevMonth() {\n if (this.state.displayedMonth <= 0) {\n this.setState({\n displayedMonth: 11,\n displayedYear: this.state.displayedYear - 1,\n });\n } else {\n this.setState({\n displayedMonth: this.state.displayedMonth - 1,\n });\n }\n }\n\n /**\n * Display next month by updating state\n */\n displayNextMonth() {\n if (this.state.displayedMonth >= 11) {\n this.setState({\n displayedMonth: 0,\n displayedYear: this.state.displayedYear + 1,\n });\n } else {\n this.setState({\n displayedMonth: this.state.displayedMonth + 1,\n });\n }\n }\n\n /**\n * Display the selected month (gets fired when clicking on the date string)\n */\n displaySelectedMonth() {\n if (this.state.selectYearMode) {\n this.toggleYearSelector();\n } else {\n if (!this.state.currentDate) return false;\n this.setState({\n displayedMonth: this.state.currentDate.getMonth(),\n displayedYear: this.state.currentDate.getFullYear(),\n });\n }\n }\n\n toggleYearSelector() {\n this.setState({ selectYearMode: !this.state.selectYearMode });\n }\n\n changeDisplayedYear(e: any) {\n const element = e.target;\n this.toggleYearSelector();\n this.setState({\n displayedYear: parseInt(element.innerHTML, 10),\n displayedMonth: 0,\n });\n }\n\n /**\n * Pass the selected date to parent when 'OK' is clicked\n */\n passSavedDateDateToParent() {\n this.passDateToParent(this.state.currentDate);\n }\n passDateToParent(date: Date) {\n if (typeof this.props.dateReceiver === \"function\")\n this.props.dateReceiver(date);\n this.closeDatePicker();\n }\n\n componentDidUpdate() {\n if (this.state.selectYearMode) {\n document.getElementsByClassName(\"selected\")[0].scrollIntoView(); // works in every browser incl. IE, replace with scrollIntoViewIfNeeded when browsers support it\n }\n }\n\n constructor() {\n super();\n\n this.closeDatePicker = this.closeDatePicker.bind(this);\n this.dayClicked = this.dayClicked.bind(this);\n this.displayNextMonth = this.displayNextMonth.bind(this);\n this.displayPrevMonth = this.displayPrevMonth.bind(this);\n this.getDaysByMonth = this.getDaysByMonth.bind(this);\n this.changeDisplayedYear = this.changeDisplayedYear.bind(this);\n this.passDateToParent = this.passDateToParent.bind(this);\n this.toggleYearSelector = this.toggleYearSelector.bind(this);\n this.displaySelectedMonth = this.displaySelectedMonth.bind(this);\n\n this.state = {\n currentDate: now,\n displayedMonth: now.getMonth(),\n displayedYear: now.getFullYear(),\n selectYearMode: false,\n };\n }\n\n render() {\n const { currentDate, displayedMonth, displayedYear, selectYearMode } =\n this.state;\n\n return (\n
    \n
    \n
    \n \n {currentDate.getFullYear()}\n \n \n {dayArr[currentDate.getDay()]},{\" \"}\n {monthArrShort[currentDate.getMonth()]} {currentDate.getDate()}\n \n
    \n\n {!selectYearMode && (\n \n )}\n\n
    \n {!selectYearMode && (\n
    \n
    \n {[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"].map((day, i) => (\n {day}\n ))}\n
    \n\n
    \n {/*\n Loop through the calendar object returned by getDaysByMonth().\n */}\n\n {this.getDaysByMonth(\n this.state.displayedMonth,\n this.state.displayedYear,\n ).map((day) => {\n let selected = false;\n\n if (currentDate && day.date)\n selected =\n currentDate.toLocaleDateString() ===\n day.date.toLocaleDateString();\n\n return (\n \n {day.day}\n \n );\n })}\n
    \n
    \n )}\n\n {selectYearMode && (\n
    \n {yearArr.map((year) => (\n \n {year}\n \n ))}\n
    \n )}\n
    \n
    \n\n \n
    \n );\n }\n}\n\nconst monthArrShortFull = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst monthArrShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nconst dayArr = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\nconst now = new Date();\n\nconst yearArr: number[] = [];\n\nfor (let i = 2010; i <= now.getFullYear() + 10; i++) {\n yearArr.push(i);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { DatePicker } from \"../picker/DatePicker.js\";\nimport { InputProps, useField } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n readonly?: boolean;\n expand?: boolean;\n //FIXME: create separated components InputDate and InputTimestamp\n withTimestampSupport?: boolean;\n}\n\nexport function InputDate({\n name,\n readonly,\n label,\n placeholder,\n help,\n tooltip,\n expand,\n withTimestampSupport,\n}: Props): VNode {\n const [opened, setOpened] = useState(false);\n const { i18n } = useTranslationContext();\n\n const { error, required, value, onChange } = useField(name);\n\n let strValue = \"\";\n if (!value) {\n strValue = withTimestampSupport ? \"unknown\" : \"\";\n } else if (value instanceof Date) {\n strValue = format(value, \"yyyy/MM/dd\");\n } else if (value.t_s) {\n strValue =\n value.t_s === \"never\"\n ? withTimestampSupport\n ? \"never\"\n : \"\"\n : format(new Date(value.t_s * 1000), \"yyyy/MM/dd\");\n }\n\n return (\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n {\n if (!readonly) setOpened(true);\n }}\n />\n {required && (\n \n \n \n )}\n {help}\n

    \n {\n if (!readonly) setOpened(true);\n }}\n >\n \n \n \n \n \n
    \n
    \n {error &&

    {error}

    }\n
    \n\n {!readonly && (\n \n onChange(undefined as any)}\n >\n clear\n \n \n )}\n {withTimestampSupport && (\n \n onChange({ t_s: \"never\" } as any)}\n >\n never\n \n \n )}\n
    \n setOpened(false)}\n dateReceiver={(d) => {\n if (withTimestampSupport) {\n onChange({ t_s: d.getTime() / 1000 } as any);\n } else {\n onChange(d as any);\n }\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { ComponentChildren, h } from \"preact\";\nimport { InputWithAddon } from \"./InputWithAddon.js\";\nimport { InputProps } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n readonly?: boolean;\n expand?: boolean;\n side?: ComponentChildren;\n children?: ComponentChildren;\n}\n\nexport function InputNumber({\n name,\n readonly,\n placeholder,\n tooltip,\n label,\n help,\n expand,\n children,\n side,\n}: Props) {\n return (\n \n name={name}\n readonly={readonly}\n fromStr={(v) => (!v ? undefined : parseInt(v, 10))}\n toStr={(v) => `${v}`}\n inputType=\"number\"\n expand={expand}\n label={label}\n placeholder={placeholder}\n help={help}\n tooltip={tooltip}\n inputExtra={{ min: 0 }}\n children={children}\n side={side}\n />\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport emptyImage from \"../../assets/empty.png\";\nimport { MerchantBackend, WithId } from \"../../declaration.js\";\nimport { FormErrors, FormProvider } from \"./FormProvider.js\";\nimport { InputWithAddon } from \"./InputWithAddon.js\";\n\ntype Entity = MerchantBackend.Products.ProductDetail & WithId;\n\nexport interface Props {\n selected?: Entity;\n onChange: (p?: Entity) => void;\n products: (MerchantBackend.Products.ProductDetail & WithId)[];\n}\n\ninterface ProductSearch {\n name: string;\n}\n\nexport function InputSearchProduct({\n selected,\n onChange,\n products,\n}: Props): VNode {\n const [prodForm, setProdName] = useState>({\n name: \"\",\n });\n\n const errors: FormErrors = {\n name: undefined,\n };\n const { i18n } = useTranslationContext();\n\n if (selected) {\n return (\n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n

    \n Product id: {selected.id}\n

    \n

    \n Description:{\" \"}\n {selected.description}\n

    \n
    \n onChange(undefined)}\n >\n clear\n \n
    \n
    \n
    \n
    \n );\n }\n\n return (\n \n errors={errors}\n object={prodForm}\n valueHandler={setProdName}\n >\n \n name=\"name\"\n label={i18n.str`Product`}\n tooltip={i18n.str`search products by it's description or id`}\n addonAfter={\n \n \n \n }\n >\n
    \n {\n setProdName({ name: \"\" });\n onChange(p);\n }}\n />\n
    \n \n \n );\n}\n\ninterface ProductListProps {\n name?: string;\n onSelect: (p: MerchantBackend.Products.ProductDetail & WithId) => void;\n list: (MerchantBackend.Products.ProductDetail & WithId)[];\n}\n\nfunction ProductList({ name, onSelect, list }: ProductListProps) {\n const { i18n } = useTranslationContext();\n if (!name) {\n /* FIXME\n this BR is added to occupy the space that will be added when the \n dropdown appears\n */\n return (\n
    \n
    \n
    \n );\n }\n const filtered = list.filter(\n (p) => p.id.includes(name) || p.description.includes(name),\n );\n\n return (\n
    \n \n
    \n {!filtered.length ? (\n
    \n \n no products found with that description\n \n
    \n ) : (\n filtered.map((p) => (\n onSelect(p)}\n style={{ cursor: \"pointer\" }}\n >\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n {p.id} {p.price}\n
    \n {p.description}\n

    \n
    \n
    \n
    \n
    \n ))\n )}\n
    \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { MerchantBackend, WithId } from \"../../declaration.js\";\nimport { ProductMap } from \"../../paths/instance/orders/create/CreatePage.js\";\nimport { FormErrors, FormProvider } from \"../form/FormProvider.js\";\nimport { InputNumber } from \"../form/InputNumber.js\";\nimport { InputSearchProduct } from \"../form/InputSearchProduct.js\";\n\ntype Form = {\n product: MerchantBackend.Products.ProductDetail & WithId;\n quantity: number;\n};\n\ninterface Props {\n currentProducts: ProductMap;\n onAddProduct: (\n product: MerchantBackend.Products.ProductDetail & WithId,\n quantity: number,\n ) => void;\n inventory: (MerchantBackend.Products.ProductDetail & WithId)[];\n}\n\nexport function InventoryProductForm({\n currentProducts,\n onAddProduct,\n inventory,\n}: Props): VNode {\n const initialState = { quantity: 1 };\n const [state, setState] = useState>(initialState);\n const [errors, setErrors] = useState>({});\n\n const { i18n } = useTranslationContext();\n\n const productWithInfiniteStock =\n state.product && state.product.total_stock === -1;\n\n const submit = (): void => {\n if (!state.product) {\n setErrors({\n product: i18n.str`You must enter a valid product identifier.`,\n });\n return;\n }\n if (productWithInfiniteStock) {\n onAddProduct(state.product, 1);\n } else {\n if (!state.quantity || state.quantity <= 0) {\n setErrors({ quantity: i18n.str`Quantity must be greater than 0!` });\n return;\n }\n const currentStock =\n state.product.total_stock -\n state.product.total_lost -\n state.product.total_sold;\n const p = currentProducts[state.product.id];\n if (p) {\n if (state.quantity + p.quantity > currentStock) {\n const left = currentStock - p.quantity;\n setErrors({\n quantity: i18n.str`This quantity exceeds remaining stock. Currently, only ${left} units remain unreserved in stock.`,\n });\n return;\n }\n onAddProduct(state.product, state.quantity + p.quantity);\n } else {\n if (state.quantity > currentStock) {\n const left = currentStock;\n setErrors({\n quantity: i18n.str`This quantity exceeds remaining stock. Currently, only ${left} units remain unreserved in stock.`,\n });\n return;\n }\n onAddProduct(state.product, state.quantity);\n }\n }\n\n setState(initialState);\n };\n\n return (\n errors={errors} object={state} valueHandler={setState}>\n setState((v) => ({ ...v, product: p }))}\n products={inventory}\n />\n {state.product && (\n
    \n
    \n {!productWithInfiniteStock && (\n \n name=\"quantity\"\n label={i18n.str`Quantity`}\n tooltip={i18n.str`how many products will be added`}\n />\n )}\n
    \n
    \n
    \n \n
    \n
    \n
    \n )}\n \n );\n}\n", "// ES6 Map\nvar map\ntry {\n map = Map\n} catch (_) { }\nvar set\n\n// ES6 Set\ntry {\n set = Set\n} catch (_) { }\n\nfunction baseClone (src, circulars, clones) {\n // Null/undefined/functions/etc\n if (!src || typeof src !== 'object' || typeof src === 'function') {\n return src\n }\n\n // DOM Node\n if (src.nodeType && 'cloneNode' in src) {\n return src.cloneNode(true)\n }\n\n // Date\n if (src instanceof Date) {\n return new Date(src.getTime())\n }\n\n // RegExp\n if (src instanceof RegExp) {\n return new RegExp(src)\n }\n\n // Arrays\n if (Array.isArray(src)) {\n return src.map(clone)\n }\n\n // ES6 Maps\n if (map && src instanceof map) {\n return new Map(Array.from(src.entries()))\n }\n\n // ES6 Sets\n if (set && src instanceof set) {\n return new Set(Array.from(src.values()))\n }\n\n // Object\n if (src instanceof Object) {\n circulars.push(src)\n var obj = Object.create(src)\n clones.push(obj)\n for (var key in src) {\n var idx = circulars.findIndex(function (i) {\n return i === src[key]\n })\n obj[key] = idx > -1 ? clones[idx] : baseClone(src[key], circulars, clones)\n }\n return obj\n }\n\n // ???\n return src\n}\n\nexport default function clone (src) {\n return baseClone(src, [], [])\n}\n", "const toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nexport default function printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}", "import printValue from './util/printValue';\nexport let mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n let isCast = originalValue != null && originalValue !== value;\n let msg = `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + (isCast ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.');\n\n if (value === null) {\n msg += `\\n If \"null\" is intended as an empty value be sure to mark the schema as \\`.nullable()\\``;\n }\n\n return msg;\n },\n defined: '${path} must be defined'\n};\nexport let string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nexport let number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexport let date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexport let boolean = {\n isValue: '${path} field must be ${value}'\n};\nexport let object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nexport let array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nexport default Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});", "import has from 'lodash/has';\nimport isSchema from './util/isSchema';\n\nclass Condition {\n constructor(refs, options) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!has(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = options;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n\n this.fn = function (...args) {\n let options = args.pop();\n let schema = args.pop();\n let branch = check(...args) ? then : otherwise;\n if (!branch) return undefined;\n if (typeof branch === 'function') return branch(schema);\n return schema.concat(branch.resolve(options));\n };\n }\n\n resolve(base, options) {\n let values = this.refs.map(ref => ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n\n}\n\nexport default Condition;", "const isSchema = obj => obj && obj.__isYupSchema__;\n\nexport default isSchema;", "export default function toArray(value) {\n return value == null ? [] : [].concat(value);\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport printValue from './util/printValue';\nimport toArray from './util/toArray';\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nexport default class ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = _extends({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n\n constructor(errorOrErrors, value, field, type) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n\n}", "import ValidationError from '../ValidationError';\n\nconst once = cb => {\n let fired = false;\n return (...args) => {\n if (fired) return;\n fired = true;\n cb(...args);\n };\n};\n\nexport default function runTests(options, cb) {\n let {\n endEarly,\n tests,\n args,\n value,\n errors,\n sort,\n path\n } = options;\n let callback = once(cb);\n let count = tests.length;\n const nestedErrors = [];\n errors = errors ? errors : [];\n if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value);\n\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, function finishTestRun(err) {\n if (err) {\n // always return early for non validation errors\n if (!ValidationError.isError(err)) {\n return callback(err, value);\n }\n\n if (endEarly) {\n err.value = value;\n return callback(err, value);\n }\n\n nestedErrors.push(err);\n }\n\n if (--count <= 0) {\n if (nestedErrors.length) {\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n if (errors.length) nestedErrors.push(...errors);\n errors = nestedErrors;\n }\n\n if (errors.length) {\n callback(new ValidationError(errors, value, path), value);\n return;\n }\n\n callback(null, value);\n }\n });\n }\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport mapValues from 'lodash/mapValues';\nimport ValidationError from '../ValidationError';\nimport Ref from '../Reference';\nexport default function createValidation(config) {\n function validate(_ref, cb) {\n let {\n value,\n path = '',\n label,\n options,\n originalValue,\n sync\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n\n const {\n name,\n test,\n params,\n message\n } = config;\n let {\n parent,\n context\n } = options;\n\n function resolve(item) {\n return Ref.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n\n function createError(overrides = {}) {\n const nextParams = mapValues(_extends({\n value,\n originalValue,\n label,\n path: overrides.path || path\n }, params, overrides.params), resolve);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n\n let ctx = _extends({\n path,\n parent,\n type: name,\n createError,\n resolve,\n options,\n originalValue\n }, rest);\n\n if (!sync) {\n try {\n Promise.resolve(test.call(ctx, value, ctx)).then(validOrError => {\n if (ValidationError.isError(validOrError)) cb(validOrError);else if (!validOrError) cb(createError());else cb(null, validOrError);\n }).catch(cb);\n } catch (err) {\n cb(err);\n }\n\n return;\n }\n\n let result;\n\n try {\n var _ref2;\n\n result = test.call(ctx, value, ctx);\n\n if (typeof ((_ref2 = result) == null ? void 0 : _ref2.then) === 'function') {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n } catch (err) {\n cb(err);\n return;\n }\n\n if (ValidationError.isError(result)) cb(result);else if (!result) cb(createError());else cb(null, result);\n }\n\n validate.OPTIONS = config;\n return validate;\n}", "import { getter } from 'property-expr';\nconst prefixes = {\n context: '$',\n value: '.'\n};\nexport function create(key, options) {\n return new Reference(key, options);\n}\nexport default class Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n\n\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n\n resolve() {\n return this;\n }\n\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n\n toString() {\n return `Ref(${this.key})`;\n }\n\n static isRef(value) {\n return value && value.__isYupRef;\n }\n\n} // @ts-ignore\n\nReference.prototype.__isYupRef = true;", "import { forEach } from 'property-expr';\n\nlet trim = part => part.substr(0, part.length - 1).substr(1);\n\nexport function getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug; // root path: ''\n\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? trim(_part) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n\n if (schema.innerType) {\n let idx = isArray ? parseInt(part, 10) : 0;\n\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n\n parent = value;\n value = value && value[idx];\n schema = schema.innerType;\n } // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n\n\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema._type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\n\nconst reach = (obj, path, value, context) => getIn(obj, path, value, context).schema;\n\nexport default reach;", "import Reference from '../Reference';\nexport default class ReferenceSet {\n constructor() {\n this.list = void 0;\n this.refs = void 0;\n this.list = new Set();\n this.refs = new Map();\n }\n\n get size() {\n return this.list.size + this.refs.size;\n }\n\n describe() {\n const description = [];\n\n for (const item of this.list) description.push(item);\n\n for (const [, ref] of this.refs) description.push(ref.describe());\n\n return description;\n }\n\n toArray() {\n return Array.from(this.list).concat(Array.from(this.refs.values()));\n }\n\n resolveAll(resolve) {\n return this.toArray().reduce((acc, e) => acc.concat(Reference.isRef(e) ? resolve(e) : e), []);\n }\n\n add(value) {\n Reference.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n }\n\n delete(value) {\n Reference.isRef(value) ? this.refs.delete(value.key) : this.list.delete(value);\n }\n\n clone() {\n const next = new ReferenceSet();\n next.list = new Set(this.list);\n next.refs = new Map(this.refs);\n return next;\n }\n\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.list.forEach(value => next.add(value));\n newItems.refs.forEach(value => next.add(value));\n removeItems.list.forEach(value => next.delete(value));\n removeItems.refs.forEach(value => next.delete(value));\n return next;\n }\n\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n// @ts-ignore\nimport cloneDeep from 'nanoclone';\nimport { mixed as locale } from './locale';\nimport Condition from './Condition';\nimport runTests from './util/runTests';\nimport createValidation from './util/createValidation';\nimport printValue from './util/printValue';\nimport Ref from './Reference';\nimport { getIn } from './util/reach';\nimport ValidationError from './ValidationError';\nimport ReferenceSet from './util/ReferenceSet';\nimport toArray from './util/toArray'; // const UNSET = 'unset' as const;\n\nexport default class BaseSchema {\n constructor(options) {\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this._typeError = void 0;\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(locale.notType);\n });\n this.type = (options == null ? void 0 : options.type) || 'mixed';\n this.spec = _extends({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n presence: 'optional'\n }, options == null ? void 0 : options.spec);\n } // TODO: remove\n\n\n get _type() {\n return this.type;\n }\n\n _typeCheck(_value) {\n return true;\n }\n\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n } // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n\n const next = Object.create(Object.getPrototypeOf(this)); // @ts-expect-error this is readonly\n\n next.type = this.type;\n next._typeError = this._typeError;\n next._whitelistError = this._whitelistError;\n next._blacklistError = this._blacklistError;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.exclusiveTests = _extends({}, this.exclusiveTests); // @ts-expect-error this is readonly\n\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = cloneDeep(_extends({}, this.spec, spec));\n return next;\n }\n\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n } // withContext(): BaseSchema<\n // TCast,\n // TContext,\n // TOutput\n // > {\n // return this as any;\n // }\n\n\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n\n const mergedSpec = _extends({}, base.spec, combined.spec); // if (combined.spec.nullable === UNSET)\n // mergedSpec.nullable = base.spec.nullable;\n // if (combined.spec.presence === UNSET)\n // mergedSpec.presence = base.spec.presence;\n\n\n combined.spec = mergedSpec;\n combined._typeError || (combined._typeError = base._typeError);\n combined._whitelistError || (combined._whitelistError = base._whitelistError);\n combined._blacklistError || (combined._blacklistError = base._blacklistError); // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist); // start with the current tests\n\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n\n isType(v) {\n if (this.spec.nullable && v === null) return true;\n return this._typeCheck(v);\n }\n\n resolve(options) {\n let schema = this;\n\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((schema, condition) => condition.resolve(schema, options), schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {*=} options.parent\n * @param {*=} options.context\n */\n\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(_extends({\n value\n }, options));\n\n let result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema._type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n\n return result;\n }\n\n _cast(rawValue, _options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((value, fn) => fn.call(this, value, rawValue, this), rawValue);\n\n if (value === undefined) {\n value = this.getDefault();\n }\n\n return value;\n }\n\n _validate(_value, options = {}, cb) {\n let {\n sync,\n path,\n from = [],\n originalValue = _value,\n strict = this.spec.strict,\n abortEarly = this.spec.abortEarly\n } = options;\n let value = _value;\n\n if (!strict) {\n // this._validating = true;\n value = this._cast(value, _extends({\n assert: false\n }, options)); // this._validating = false;\n } // value is cast, we can check if it meets type requirements\n\n\n let args = {\n value,\n path,\n options,\n originalValue,\n schema: this,\n label: this.spec.label,\n sync,\n from\n };\n let initialTests = [];\n if (this._typeError) initialTests.push(this._typeError);\n let finalTests = [];\n if (this._whitelistError) finalTests.push(this._whitelistError);\n if (this._blacklistError) finalTests.push(this._blacklistError);\n runTests({\n args,\n value,\n path,\n sync,\n tests: initialTests,\n endEarly: abortEarly\n }, err => {\n if (err) return void cb(err, value);\n runTests({\n tests: this.tests.concat(finalTests),\n args,\n path,\n sync,\n value,\n endEarly: abortEarly\n }, cb);\n });\n }\n\n validate(value, options, maybeCb) {\n let schema = this.resolve(_extends({}, options, {\n value\n })); // callback case is for nested validations\n\n return typeof maybeCb === 'function' ? schema._validate(value, options, maybeCb) : new Promise((resolve, reject) => schema._validate(value, options, (err, value) => {\n if (err) reject(err);else resolve(value);\n }));\n }\n\n validateSync(value, options) {\n let schema = this.resolve(_extends({}, options, {\n value\n }));\n let result;\n\n schema._validate(value, _extends({}, options, {\n sync: true\n }), (err, value) => {\n if (err) throw err;\n result = value;\n });\n\n return result;\n }\n\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n\n _getDefault() {\n let defaultValue = this.spec.default;\n\n if (defaultValue == null) {\n return defaultValue;\n }\n\n return typeof defaultValue === 'function' ? defaultValue.call(this) : cloneDeep(defaultValue);\n }\n\n getDefault(options) {\n let schema = this.resolve(options || {});\n return schema._getDefault();\n }\n\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n\n let next = this.clone({\n default: def\n });\n return next;\n }\n\n strict(isStrict = true) {\n let next = this.clone();\n next.spec.strict = isStrict;\n return next;\n }\n\n _isPresent(value) {\n return value != null;\n }\n\n defined(message = locale.defined) {\n return this.test({\n message,\n name: 'defined',\n exclusive: true,\n\n test(value) {\n return value !== undefined;\n }\n\n });\n }\n\n required(message = locale.required) {\n return this.clone({\n presence: 'required'\n }).withMutation(s => s.test({\n message,\n name: 'required',\n exclusive: true,\n\n test(value) {\n return this.schema._isPresent(value);\n }\n\n }));\n }\n\n notRequired() {\n let next = this.clone({\n presence: 'optional'\n });\n next.tests = next.tests.filter(test => test.OPTIONS.name !== 'required');\n return next;\n }\n\n nullable(isNullable = true) {\n let next = this.clone({\n nullable: isNullable !== false\n });\n return next;\n }\n\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n\n test(...args) {\n let opts;\n\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n\n if (opts.message === undefined) opts.message = locale.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n\n let next = this.clone();\n let deps = toArray(keys).map(key => new Ref(key));\n deps.forEach(dep => {\n // @ts-ignore\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(new Condition(deps, options));\n return next;\n }\n\n typeError(message) {\n let next = this.clone();\n next._typeError = createValidation({\n message,\n name: 'typeError',\n\n test(value) {\n if (value !== undefined && !this.schema.isType(value)) return this.createError({\n params: {\n type: this.schema._type\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n oneOf(enums, message = locale.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n\n next._blacklist.delete(val);\n });\n next._whitelistError = createValidation({\n message,\n name: 'oneOf',\n\n test(value) {\n if (value === undefined) return true;\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: valids.toArray().join(', '),\n resolved\n }\n });\n }\n\n });\n return next;\n }\n\n notOneOf(enums, message = locale.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n\n next._whitelist.delete(val);\n });\n next._blacklistError = createValidation({\n message,\n name: 'notOneOf',\n\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: invalids.toArray().join(', '),\n resolved\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n describe() {\n const next = this.clone();\n const {\n label,\n meta\n } = next.spec;\n const description = {\n meta,\n label,\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n\n} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n// @ts-expect-error\nBaseSchema.prototype.__isYupSchema__ = true;\n\nfor (const method of ['validate', 'validateSync']) BaseSchema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], _extends({}, options, {\n parent,\n path\n }));\n};\n\nfor (const alias of ['equals', 'is']) BaseSchema.prototype[alias] = BaseSchema.prototype.oneOf;\n\nfor (const alias of ['not', 'nope']) BaseSchema.prototype[alias] = BaseSchema.prototype.notOneOf;\n\nBaseSchema.prototype.optional = BaseSchema.prototype.notRequired;", "import BaseSchema from './schema';\nconst Mixed = BaseSchema;\nexport default Mixed;\nexport function create() {\n return new Mixed();\n} // XXX: this is using the Base schema so that `addMethod(mixed)` works as a base class\n\ncreate.prototype = Mixed.prototype;", "const isAbsent = value => value == null;\n\nexport default isAbsent;", "import BaseSchema from './schema';\nimport { boolean as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nexport function create() {\n return new BooleanSchema();\n}\nexport default class BooleanSchema extends BaseSchema {\n constructor() {\n super({\n type: 'boolean'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n\n return value;\n });\n });\n }\n\n _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n\n isTrue(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n\n test(value) {\n return isAbsent(value) || value === true;\n }\n\n });\n }\n\n isFalse(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n\n test(value) {\n return isAbsent(value) || value === false;\n }\n\n });\n }\n\n}\ncreate.prototype = BooleanSchema.prototype;", "import { string as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema'; // eslint-disable-next-line\n\nlet rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nlet rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i; // eslint-disable-next-line\n\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\n\nlet objStringTag = {}.toString();\nexport function create() {\n return new StringSchema();\n}\nexport default class StringSchema extends BaseSchema {\n constructor() {\n super({\n type: 'string'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n\n _isPresent(value) {\n return super._isPresent(value) && !!value.length;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n\n return this.test({\n name: name || 'matches',\n message: message || locale.matches,\n params: {\n regex\n },\n test: value => isAbsent(value) || value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n\n email(message = locale.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n\n url(message = locale.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n\n uuid(message = locale.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n } //-- transforms --\n\n\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n\n trim(message = locale.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n\n lowercase(message = locale.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n\n uppercase(message = locale.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n\n}\ncreate.prototype = StringSchema.prototype; //\n// String Interfaces\n//", "import { number as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema';\n\nlet isNaN = value => value != +value;\n\nexport function create() {\n return new NumberSchema();\n}\nexport default class NumberSchema extends BaseSchema {\n constructor() {\n super({\n type: 'number'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n let parsed = value;\n\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n parsed = +parsed;\n }\n\n if (this.isType(parsed)) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(max);\n }\n\n });\n }\n\n lessThan(less, message = locale.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n\n test(value) {\n return isAbsent(value) || value < this.resolve(less);\n }\n\n });\n }\n\n moreThan(more, message = locale.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n\n test(value) {\n return isAbsent(value) || value > this.resolve(more);\n }\n\n });\n }\n\n positive(msg = locale.positive) {\n return this.moreThan(0, msg);\n }\n\n negative(msg = locale.negative) {\n return this.lessThan(0, msg);\n }\n\n integer(message = locale.integer) {\n return this.test({\n name: 'integer',\n message,\n test: val => isAbsent(val) || Number.isInteger(val)\n });\n }\n\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n\n round(method) {\n var _method;\n\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round'; // this exists for symemtry with the new Math.trunc\n\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n\n}\ncreate.prototype = NumberSchema.prototype; //\n// Number Interfaces\n//", "/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * \u00A9 2011 Colin Snover \n * Released under MIT license.\n */\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 \u00B1 10 tzHH 11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nexport default function parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by \u201Cundefined\u201D values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0; // allow undefined days and months\n\n\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n return timestamp;\n}", "// @ts-ignore\nimport isoParse from './util/isodate';\nimport { date as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport Ref from './Reference';\nimport BaseSchema from './schema';\nlet invalidDate = new Date('');\n\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\n\nexport function create() {\n return new DateSchema();\n}\nexport default class DateSchema extends BaseSchema {\n constructor() {\n super({\n type: 'date'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n value = isoParse(value); // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n\n return !isNaN(value) ? new Date(value) : invalidDate;\n });\n });\n }\n\n _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n\n prepareParam(ref, name) {\n let param;\n\n if (!Ref.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n\n return param;\n }\n\n min(min, message = locale.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(limit);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(limit);\n }\n\n });\n }\n\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate.prototype = DateSchema.prototype;\ncreate.INVALID_DATE = invalidDate;", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport has from 'lodash/has';\nimport snakeCase from 'lodash/snakeCase';\nimport camelCase from 'lodash/camelCase';\nimport mapKeys from 'lodash/mapKeys';\nimport mapValues from 'lodash/mapValues';\nimport { getter } from 'property-expr';\nimport { object as locale } from './locale';\nimport sortFields from './util/sortFields';\nimport sortByKeyOrder from './util/sortByKeyOrder';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\n\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\n\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\n\nconst defaultSort = sortByKeyOrder([]);\nexport default class ObjectSchema extends BaseSchema {\n constructor(spec) {\n super({\n type: 'object'\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n this.transform(function coerce(value) {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch (err) {\n value = null;\n }\n }\n\n if (this.isType(value)) return value;\n return null;\n });\n\n if (spec) {\n this.shape(spec);\n }\n });\n }\n\n _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n }\n\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n\n let value = super._cast(_value, options); //should ignore nulls here\n\n\n if (value === undefined) return this.getDefault();\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n\n let props = this._nodes.concat(Object.keys(value).filter(v => this._nodes.indexOf(v) === -1));\n\n let intermediateValue = {}; // is filled during the transform below\n\n let innerOptions = _extends({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n\n let isChanged = false;\n\n for (const prop of props) {\n let field = fields[prop];\n let exists = has(value, prop);\n\n if (field) {\n let fieldValue;\n let inputValue = value[prop]; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop; // innerOptions.value = value[prop];\n\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = 'spec' in field ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n\n if (fieldSpec == null ? void 0 : fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n\n fieldValue = !options.__validating || !strict ? // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n\n if (intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n\n return isChanged ? intermediateValue : value;\n }\n\n _validate(_value, opts = {}, callback) {\n let errors = [];\n let {\n sync,\n from = [],\n originalValue = _value,\n abortEarly = this.spec.abortEarly,\n recursive = this.spec.recursive\n } = opts;\n from = [{\n schema: this,\n value: originalValue\n }, ...from]; // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n\n opts.__validating = true;\n opts.originalValue = originalValue;\n opts.from = from;\n\n super._validate(_value, opts, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || abortEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !isObject(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value;\n\n let tests = this._nodes.map(key => (_, cb) => {\n let path = key.indexOf('.') === -1 ? (opts.path ? `${opts.path}.` : '') + key : `${opts.path || ''}[\"${key}\"]`;\n let field = this.fields[key];\n\n if (field && 'validate' in field) {\n field.validate(value[key], _extends({}, opts, {\n // @ts-ignore\n path,\n from,\n // inner fields are always strict:\n // 1. this isn't strict so the casting will also have cast inner values\n // 2. this is strict in which case the nested values weren't cast either\n strict: true,\n parent: value,\n originalValue: originalValue[key]\n }), cb);\n return;\n }\n\n cb(null);\n });\n\n runTests({\n sync,\n tests,\n value,\n errors,\n endEarly: abortEarly,\n sort: this._sortErrors,\n path: opts.path\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.fields = _extends({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n\n if (target === undefined) {\n nextFields[field] = schemaOrRef;\n } else if (target instanceof BaseSchema && schemaOrRef instanceof BaseSchema) {\n nextFields[field] = schemaOrRef.concat(target);\n }\n }\n\n return next.withMutation(() => next.shape(nextFields, this._excludedEdges));\n }\n\n getDefaultFromShape() {\n let dft = {};\n\n this._nodes.forEach(key => {\n const field = this.fields[key];\n dft[key] = 'default' in field ? field.getDefault() : undefined;\n });\n\n return dft;\n }\n\n _getDefault() {\n if ('default' in this.spec) {\n return super._getDefault();\n } // if there is no default set invent one\n\n\n if (!this._nodes.length) {\n return undefined;\n }\n\n return this.getDefaultFromShape();\n }\n\n shape(additions, excludes = []) {\n let next = this.clone();\n let fields = Object.assign(next.fields, additions);\n next.fields = fields;\n next._sortErrors = sortByKeyOrder(Object.keys(fields));\n\n if (excludes.length) {\n // this is a convenience for when users only supply a single pair\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n next._excludedEdges = [...next._excludedEdges, ...excludes];\n }\n\n next._nodes = sortFields(fields, next._excludedEdges);\n return next;\n }\n\n pick(keys) {\n const picked = {};\n\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n\n return this.clone().withMutation(next => {\n next.fields = {};\n return next.shape(picked);\n });\n }\n\n omit(keys) {\n const next = this.clone();\n const fields = next.fields;\n next.fields = {};\n\n for (const key of keys) {\n delete fields[key];\n }\n\n return next.withMutation(() => next.shape(fields));\n }\n\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (obj == null) return obj;\n let newObj = obj;\n\n if (has(obj, from)) {\n newObj = _extends({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n }\n\n noUnknown(noAllow = true, message = locale.noUnknown) {\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n\n unknown(allow = true, message = locale.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n\n transformKeys(fn) {\n return this.transform(obj => obj && mapKeys(obj, (_, key) => fn(key)));\n }\n\n camelCase() {\n return this.transformKeys(camelCase);\n }\n\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n\n describe() {\n let base = super.describe();\n base.fields = mapValues(this.fields, value => value.describe());\n return base;\n }\n\n}\nexport function create(spec) {\n return new ObjectSchema(spec);\n}\ncreate.prototype = ObjectSchema.prototype;", "import has from 'lodash/has'; // @ts-expect-error\n\nimport toposort from 'toposort';\nimport { split } from 'property-expr';\nimport Ref from '../Reference';\nimport isSchema from './isSchema';\nexport default function sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n\n for (const key in fields) if (has(fields, key)) {\n let value = fields[key];\n nodes.add(key);\n if (Ref.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n\n return toposort.array(Array.from(nodes), edges).reverse();\n}", "function findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n\n if (((_err$path = err.path) == null ? void 0 : _err$path.indexOf(key)) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nexport default function sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport isAbsent from './util/isAbsent';\nimport isSchema from './util/isSchema';\nimport printValue from './util/printValue';\nimport { array as locale } from './locale';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\nexport function create(type) {\n return new ArraySchema(type);\n}\nexport default class ArraySchema extends BaseSchema {\n constructor(type) {\n super({\n type: 'array'\n }); // `undefined` specifically means uninitialized, as opposed to\n // \"no subtype\"\n\n this.innerType = void 0;\n this.innerType = type;\n this.withMutation(() => {\n this.transform(function (values) {\n if (typeof values === 'string') try {\n values = JSON.parse(values);\n } catch (err) {\n values = null;\n }\n return this.isType(values) ? values : null;\n });\n });\n }\n\n _typeCheck(v) {\n return Array.isArray(v);\n }\n\n get _subType() {\n return this.innerType;\n }\n\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts); //should ignore nulls here\n\n\n if (!this._typeCheck(value) || !this.innerType) return value;\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, _extends({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n\n if (castElement !== v) {\n isChanged = true;\n }\n\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n\n _validate(_value, options = {}, callback) {\n var _options$abortEarly, _options$recursive;\n\n let errors = [];\n let sync = options.sync;\n let path = options.path;\n let innerType = this.innerType;\n let endEarly = (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n let originalValue = options.originalValue != null ? options.originalValue : _value;\n\n super._validate(_value, options, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || endEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !innerType || !this._typeCheck(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value; // #950 Ensure that sparse array empty slots are validated\n\n let tests = new Array(value.length);\n\n for (let idx = 0; idx < value.length; idx++) {\n let item = value[idx];\n let path = `${options.path || ''}[${idx}]`; // object._validate note for isStrict explanation\n\n let innerOptions = _extends({}, options, {\n path,\n strict: true,\n parent: value,\n index: idx,\n originalValue: originalValue[idx]\n });\n\n tests[idx] = (_, cb) => innerType.validate(item, innerOptions, cb);\n }\n\n runTests({\n sync,\n path,\n value,\n errors,\n endEarly,\n tests\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.innerType = this.innerType;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n next.innerType = this.innerType;\n if (schema.innerType) next.innerType = next.innerType ? // @ts-expect-error Lazy doesn't have concat()\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema)); // FIXME(ts):\n\n next.innerType = schema;\n return next;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message) {\n message = message || locale.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n // FIXME(ts): Array\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message) {\n message = message || locale.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n\n describe() {\n let base = super.describe();\n if (this.innerType) base.innerType = this.innerType.describe();\n return base;\n }\n\n nullable(isNullable = true) {\n return super.nullable(isNullable);\n }\n\n defined() {\n return super.defined();\n }\n\n required(msg) {\n return super.required(msg);\n }\n\n}\ncreate.prototype = ArraySchema.prototype; //\n// Interfaces\n//", "import locale from './locale';\nexport default function setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useState } from \"preact/hooks\";\n\n/**\n * This component is used when a component wants one child to have a trigger for\n * an action (a button) and other child have the action implemented (like\n * gathering information with a form). The difference with other approaches is\n * that in this case the parent component is not holding the state.\n *\n * It will return a subscriber and activator.\n *\n * The activator may be undefined, if it is undefined it is indicating that the\n * subscriber is not ready to be called.\n *\n * The subscriber will receive a function (the listener) that will be call when the\n * activator runs. The listener must return the collected information.\n *\n * As a result, when the activator is triggered by a child component, the\n * @action function is called receives the information from the listener defined by other\n * child component\n *\n * @param action from to \n * @returns activator and subscriber, undefined activator means that there is not subscriber\n */\n\nexport function useListener(\n action: (r: T) => Promise,\n): [undefined | (() => Promise), (listener?: () => T) => void] {\n type RunnerHandler = { toBeRan?: () => Promise };\n const [state, setState] = useState({});\n\n /**\n * subscriber will receive a method that will be call when the activator runs\n *\n * @param listener function to be run when the activator runs\n */\n const subscriber = (listener?: () => T) => {\n if (listener) {\n setState({\n toBeRan: () => {\n const whatWeGetFromTheListener = listener();\n return action(whatWeGetFromTheListener);\n },\n });\n } else {\n setState({\n toBeRan: undefined,\n });\n }\n };\n\n /**\n * activator will call runner if there is someone subscribed\n */\n const activator = state.toBeRan\n ? async () => {\n if (state.toBeRan) {\n return state.toBeRan();\n }\n return Promise.reject();\n }\n : undefined;\n\n return [activator, subscriber];\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { isAfter, isFuture } from \"date-fns\";\nimport * as yup from \"yup\";\nimport { AMOUNT_REGEX, PAYTO_REGEX } from \"../utils/constants.js\";\n\nyup.setLocale({\n mixed: {\n default: \"field_invalid\",\n },\n number: {\n min: ({ min }: any) => ({ key: \"field_too_short\", values: { min } }),\n max: ({ max }: any) => ({ key: \"field_too_big\", values: { max } }),\n },\n});\n\nfunction listOfPayToUrisAreValid(values?: (string | undefined)[]): boolean {\n return !!values && values.every((v) => v && PAYTO_REGEX.test(v));\n}\n\nfunction currencyWithAmountIsValid(value?: string): boolean {\n return !!value && AMOUNT_REGEX.test(value);\n}\nfunction currencyGreaterThan0(value?: string) {\n if (value) {\n try {\n const [, amount] = value.split(\":\");\n const intAmount = parseInt(amount, 10);\n return intAmount > 0;\n } catch {\n return false;\n }\n }\n return true;\n}\n\nexport const InstanceSchema = yup.object().shape({\n id: yup.string().required().meta({ type: \"url\" }),\n name: yup.string().required(),\n auth: yup.object().shape({\n method: yup.string().matches(/^(external|token)$/),\n token: yup.string().optional().nullable(),\n }),\n payto_uris: yup\n .array()\n .of(yup.string())\n .min(1)\n .meta({ type: \"array\" })\n .test(\"payto\", \"{path} is not valid\", listOfPayToUrisAreValid),\n default_max_deposit_fee: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid)\n .meta({ type: \"amount\" }),\n default_max_wire_fee: yup\n .string()\n .required()\n .test(\"amount\", \"{path} is not valid\", currencyWithAmountIsValid)\n .meta({ type: \"amount\" }),\n default_wire_fee_amortization: yup.number().required(),\n address: yup\n .object()\n .shape({\n country: yup.string().optional(),\n address_lines: yup.array().of(yup.string()).max(7).optional(),\n building_number: yup.string().optional(),\n building_name: yup.string().optional(),\n street: yup.string().optional(),\n post_code: yup.string().optional(),\n town_location: yup.string().optional(),\n town: yup.string(),\n district: yup.string().optional(),\n country_subdivision: yup.string().optional(),\n })\n .meta({ type: \"group\" }),\n jurisdiction: yup\n .object()\n .shape({\n country: yup.string().optional(),\n address_lines: yup.array().of(yup.string()).max(7).optional(),\n building_number: yup.string().optional(),\n building_name: yup.string().optional(),\n street: yup.string().optional(),\n post_code: yup.string().optional(),\n town_location: yup.string().optional(),\n town: yup.string(),\n district: yup.string().optional(),\n country_subdivision: yup.string().optional(),\n })\n .meta({ type: \"group\" }),\n // default_pay_delay: yup.object()\n // .shape({ d_us: yup.number() })\n // .required()\n // .meta({ type: 'duration' }),\n // .transform(numberToDuration),\n default_wire_transfer_delay: yup\n .object()\n .shape({ d_us: yup.number() })\n .required()\n .meta({ type: \"duration\" }),\n // .transform(numberToDuration),\n});\n\nexport const InstanceUpdateSchema = InstanceSchema.clone().omit([\"id\"]);\nexport const InstanceCreateSchema = InstanceSchema.clone();\n\nexport const AuthorizeTipSchema = yup.object().shape({\n justification: yup.string().required(),\n amount: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid)\n .test(\"amount_positive\", \"the amount is not valid\", currencyGreaterThan0),\n next_url: yup.string().required(),\n});\n\nconst stringIsValidJSON = (value?: string) => {\n const p = value?.trim();\n if (!p) return true;\n try {\n JSON.parse(p);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const OrderCreateSchema = yup.object().shape({\n pricing: yup\n .object()\n .required()\n .shape({\n summary: yup.string().ensure().required(),\n order_price: yup\n .string()\n .ensure()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid)\n .test(\n \"amount_positive\",\n \"the amount should be greater than 0\",\n currencyGreaterThan0,\n ),\n }),\n extra: yup.string().test(\"extra\", \"is not a JSON format\", stringIsValidJSON),\n payments: yup\n .object()\n .required()\n .shape({\n refund_deadline: yup\n .date()\n .test(\"future\", \"should be in the future\", (d) =>\n d ? isFuture(d) : true,\n ),\n pay_deadline: yup\n .date()\n .test(\"future\", \"should be in the future\", (d) =>\n d ? isFuture(d) : true,\n ),\n auto_refund_deadline: yup\n .date()\n .test(\"future\", \"should be in the future\", (d) =>\n d ? isFuture(d) : true,\n ),\n delivery_date: yup\n .date()\n .test(\"future\", \"should be in the future\", (d) =>\n d ? isFuture(d) : true,\n ),\n })\n .test(\"payment\", \"dates\", (d) => {\n if (\n d.pay_deadline &&\n d.refund_deadline &&\n isAfter(d.refund_deadline, d.pay_deadline)\n ) {\n return new yup.ValidationError(\n \"pay deadline should be greater than refund\",\n \"asd\",\n \"payments.pay_deadline\",\n );\n }\n return true;\n }),\n});\n\nexport const ProductCreateSchema = yup.object().shape({\n product_id: yup.string().ensure().required(),\n description: yup.string().required(),\n unit: yup.string().ensure().required(),\n price: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid),\n stock: yup.object({}).optional(),\n minimum_age: yup.number().optional().min(0),\n});\n\nexport const ProductUpdateSchema = yup.object().shape({\n description: yup.string().required(),\n price: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid),\n stock: yup.object({}).optional(),\n minimum_age: yup.number().optional().min(0),\n});\n\nexport const TaxSchema = yup.object().shape({\n name: yup.string().required().ensure(),\n tax: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid),\n});\n\nexport const NonInventoryProductSchema = yup.object().shape({\n quantity: yup.number().required().positive(),\n description: yup.string().required(),\n unit: yup.string().ensure().required(),\n price: yup\n .string()\n .required()\n .test(\"amount\", \"the amount is not valid\", currencyWithAmountIsValid),\n});\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useCallback, useState } from \"preact/hooks\";\nimport * as yup from \"yup\";\nimport { MerchantBackend } from \"../../declaration.js\";\nimport { TaxSchema as schema } from \"../../schemas/index.js\";\nimport { FormErrors, FormProvider } from \"./FormProvider.js\";\nimport { Input } from \"./Input.js\";\nimport { InputGroup } from \"./InputGroup.js\";\nimport { InputProps, useField } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n isValid?: (e: any) => boolean;\n}\n\ntype Entity = MerchantBackend.Tax;\nexport function InputTaxes({\n name,\n readonly,\n label,\n}: Props): VNode {\n const { value: taxes, onChange } = useField(name);\n\n const [value, valueHandler] = useState>({});\n // const [errors, setErrors] = useState>({})\n\n let errors: FormErrors = {};\n\n try {\n schema.validateSync(value, { abortEarly: false });\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n const yupErrors = err.inner as yup.ValidationError[];\n errors = yupErrors.reduce(\n (prev, cur) =>\n !cur.path ? prev : { ...prev, [cur.path]: cur.message },\n {},\n );\n }\n }\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = useCallback((): void => {\n onChange([value as any, ...taxes] as any);\n valueHandler({});\n }, [value]);\n\n const { i18n } = useTranslationContext();\n\n //FIXME: translating plural singular\n return (\n 0 && (\n

    This product has {taxes.length} applicable taxes configured.

    \n )\n }\n >\n \n name=\"tax\"\n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n
    \n
    \n
    \n {taxes.map((v: any, i: number) => (\n \n \n {v.tax}: {v.name}\n \n {\n onChange(taxes.filter((f: any) => f !== v) as any);\n valueHandler(v);\n }}\n />\n
    \n ))}\n {!taxes.length && i18n.str`No taxes configured for this product.`}\n
    \n
    \n\n \n name=\"tax\"\n label={i18n.str`Amount`}\n tooltip={i18n.str`Taxes can be in currencies that differ from the main currency used by the merchant.`}\n >\n \n Enter currency and value separated with a colon, e.g.\n "USD:2.3".\n \n \n\n \n name=\"name\"\n label={i18n.str`Description`}\n tooltip={i18n.str`Legal name of the tax, e.g. VAT or import duties.`}\n />\n\n
    \n \n Add\n \n
    \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useCallback, useEffect, useState } from \"preact/hooks\";\nimport * as yup from \"yup\";\nimport { MerchantBackend } from \"../../declaration.js\";\nimport { useListener } from \"../../hooks/listener.js\";\nimport { NonInventoryProductSchema as schema } from \"../../schemas/index.js\";\nimport { FormErrors, FormProvider } from \"../form/FormProvider.js\";\nimport { Input } from \"../form/Input.js\";\nimport { InputCurrency } from \"../form/InputCurrency.js\";\nimport { InputImage } from \"../form/InputImage.js\";\nimport { InputNumber } from \"../form/InputNumber.js\";\nimport { InputTaxes } from \"../form/InputTaxes.js\";\n\ntype Entity = MerchantBackend.Product;\n\ninterface Props {\n onAddProduct: (p: Entity) => Promise;\n productToEdit?: Entity;\n}\nexport function NonInventoryProductFrom({\n productToEdit,\n onAddProduct,\n}: Props): VNode {\n const [showCreateProduct, setShowCreateProduct] = useState(false);\n\n const isEditing = !!productToEdit;\n\n useEffect(() => {\n setShowCreateProduct(isEditing);\n }, [isEditing]);\n\n const [submitForm, addFormSubmitter] = useListener<\n Partial | undefined\n >((result) => {\n if (result) {\n setShowCreateProduct(false);\n return onAddProduct({\n quantity: result.quantity || 0,\n taxes: result.taxes || [],\n description: result.description || \"\",\n image: result.image || \"\",\n price: result.price || \"\",\n unit: result.unit || \"\",\n });\n }\n return Promise.resolve();\n });\n\n const { i18n } = useTranslationContext();\n\n return (\n \n
    \n setShowCreateProduct(true)}\n >\n Add custom product\n \n
    \n {showCreateProduct && (\n
    \n setShowCreateProduct(false)}\n />\n
    \n
    \n

    {i18n.str`Complete information of the product`}

    \n setShowCreateProduct(false)}\n />\n
    \n
    \n \n
    \n
    \n
    \n setShowCreateProduct(false)}\n >\n Cancel\n \n \n Confirm\n \n
    \n
    \n
    \n setShowCreateProduct(false)}\n />\n
    \n )}\n
    \n );\n}\n\ninterface ProductProps {\n onSubscribe: (c?: () => Entity | undefined) => void;\n initial?: Partial;\n}\n\ninterface NonInventoryProduct {\n quantity: number;\n description: string;\n unit: string;\n price: string;\n image: string;\n taxes: MerchantBackend.Tax[];\n}\n\nexport function ProductForm({ onSubscribe, initial }: ProductProps): VNode {\n const [value, valueHandler] = useState>({\n taxes: [],\n ...initial,\n });\n let errors: FormErrors = {};\n try {\n schema.validateSync(value, { abortEarly: false });\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n const yupErrors = err.inner as yup.ValidationError[];\n errors = yupErrors.reduce(\n (prev, cur) =>\n !cur.path ? prev : { ...prev, [cur.path]: cur.message },\n {},\n );\n }\n }\n\n const submit = useCallback((): Entity | undefined => {\n return value as MerchantBackend.Product;\n }, [value]);\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n useEffect(() => {\n onSubscribe(hasErrors ? undefined : submit);\n }, [submit, hasErrors]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n \n name=\"product\"\n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n \n name=\"image\"\n label={i18n.str`Image`}\n tooltip={i18n.str`photo of the product`}\n />\n \n name=\"description\"\n inputType=\"multiline\"\n label={i18n.str`Description`}\n tooltip={i18n.str`full product description`}\n />\n \n name=\"unit\"\n label={i18n.str`Unit`}\n tooltip={i18n.str`name of the product unit`}\n />\n \n name=\"price\"\n label={i18n.str`Price`}\n tooltip={i18n.str`amount in the current currency`}\n />\n\n \n name=\"quantity\"\n label={i18n.str`Quantity`}\n tooltip={i18n.str`how many products will be added`}\n />\n\n name=\"taxes\" label={i18n.str`Taxes`} />\n \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { h, VNode } from \"preact\";\nimport emptyImage from \"../../assets/empty.png\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { MerchantBackend } from \"../../declaration.js\";\n\ninterface Props {\n list: MerchantBackend.Product[];\n actions?: {\n name: string;\n tooltip: string;\n handler: (d: MerchantBackend.Product, index: number) => void;\n }[];\n}\nexport function ProductList({ list, actions = [] }: Props): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n {list.map((entry, index) => {\n const unitPrice = !entry.price ? \"0\" : entry.price;\n const totalPrice = !entry.price\n ? \"0\"\n : Amounts.stringify(\n Amounts.mult(\n Amounts.parseOrThrow(entry.price),\n entry.quantity,\n ).amount,\n );\n\n return (\n \n \n \n \n \n \n \n \n );\n })}\n \n
    \n image\n \n description\n \n quantity\n \n unit price\n \n total price\n \n
    \n \n {entry.description}\n {entry.quantity === 0\n ? \"--\"\n : `${entry.quantity} ${entry.unit}`}\n {unitPrice}{totalPrice}\n {actions.map((a, i) => {\n return (\n
    \n a.handler(entry, index)}\n >\n {a.name}\n \n
    \n );\n })}\n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n amountFractionalBase,\n AmountJson,\n Amounts,\n} from \"@gnu-taler/taler-util\";\nimport { MerchantBackend } from \"../declaration.js\";\n\n/**\n * merge refund with the same description and a difference less than one minute\n * @param prev list of refunds that will hold the merged refunds\n * @param cur new refund to add to the list\n * @returns list with the new refund, may be merged with the last\n */\nexport function mergeRefunds(\n prev: MerchantBackend.Orders.RefundDetails[],\n cur: MerchantBackend.Orders.RefundDetails,\n): MerchantBackend.Orders.RefundDetails[] {\n let tail;\n\n if (\n prev.length === 0 || //empty list\n cur.timestamp.t_s === \"never\" || //current does not have timestamp\n (tail = prev[prev.length - 1]).timestamp.t_s === \"never\" || // last does not have timestamp\n cur.reason !== tail.reason || //different reason\n cur.pending !== tail.pending || //different pending state\n Math.abs(cur.timestamp.t_s - tail.timestamp.t_s) > 1000 * 60\n ) {\n //more than 1 minute difference\n\n //can't merge refunds, they are different or to distant in time\n prev.push(cur);\n return prev;\n }\n\n const a = Amounts.parseOrThrow(tail.amount);\n const b = Amounts.parseOrThrow(cur.amount);\n const r = Amounts.add(a, b).amount;\n\n prev[prev.length - 1] = {\n ...tail,\n amount: Amounts.stringify(r),\n };\n\n return prev;\n}\n\nexport const rate = (one: string, two: string): number => {\n const a = Amounts.parseOrThrow(one);\n const b = Amounts.parseOrThrow(two);\n const af = toFloat(a);\n const bf = toFloat(b);\n if (bf === 0) return 0;\n return af / bf;\n};\n\nfunction toFloat(amount: AmountJson): number {\n return amount.value + amount.fraction / amountFractionalBase;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { add, isAfter, isBefore, isFuture } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputBoolean } from \"../../../../components/form/InputBoolean.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDate } from \"../../../../components/form/InputDate.js\";\nimport { InputGroup } from \"../../../../components/form/InputGroup.js\";\nimport { InputLocation } from \"../../../../components/form/InputLocation.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { InventoryProductForm } from \"../../../../components/product/InventoryProductForm.js\";\nimport { NonInventoryProductFrom } from \"../../../../components/product/NonInventoryProductForm.js\";\nimport { ProductList } from \"../../../../components/product/ProductList.js\";\nimport { useConfigContext } from \"../../../../context/config.js\";\nimport { Duration, MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport { OrderCreateSchema as schema } from \"../../../../schemas/index.js\";\nimport { rate } from \"../../../../utils/amount.js\";\nimport { undefinedIfEmpty } from \"../../../../utils/table.js\";\n\ninterface Props {\n onCreate: (d: MerchantBackend.Orders.PostOrderRequest) => void;\n onBack?: () => void;\n instanceConfig: InstanceConfig;\n instanceInventory: (MerchantBackend.Products.ProductDetail & WithId)[];\n}\ninterface InstanceConfig {\n default_max_wire_fee: string;\n default_max_deposit_fee: string;\n default_wire_fee_amortization: number;\n default_pay_delay: Duration;\n}\n\nfunction with_defaults(config: InstanceConfig): Partial {\n const defaultPayDeadline =\n !config.default_pay_delay || config.default_pay_delay.d_us === \"forever\"\n ? undefined\n : add(new Date(), {\n seconds: config.default_pay_delay.d_us / (1000 * 1000),\n });\n\n return {\n inventoryProducts: {},\n products: [],\n pricing: {},\n payments: {\n max_wire_fee: config.default_max_wire_fee,\n max_fee: config.default_max_deposit_fee,\n wire_fee_amortization: config.default_wire_fee_amortization,\n pay_deadline: defaultPayDeadline,\n refund_deadline: defaultPayDeadline,\n createToken: true,\n },\n shipping: {},\n extra: \"\",\n };\n}\n\ninterface ProductAndQuantity {\n product: MerchantBackend.Products.ProductDetail & WithId;\n quantity: number;\n}\nexport interface ProductMap {\n [id: string]: ProductAndQuantity;\n}\n\ninterface Pricing {\n products_price: string;\n order_price: string;\n summary: string;\n}\ninterface Shipping {\n delivery_date?: Date;\n delivery_location?: MerchantBackend.Location;\n fullfilment_url?: string;\n}\ninterface Payments {\n refund_deadline?: Date;\n pay_deadline?: Date;\n wire_transfer_deadline?: Date;\n auto_refund_deadline?: Date;\n max_fee?: string;\n max_wire_fee?: string;\n wire_fee_amortization?: number;\n createToken: boolean;\n minimum_age?: number;\n}\ninterface Entity {\n inventoryProducts: ProductMap;\n products: MerchantBackend.Product[];\n pricing: Partial;\n payments: Partial;\n shipping: Partial;\n extra: string;\n}\n\nconst stringIsValidJSON = (value: string) => {\n try {\n JSON.parse(value.trim());\n return true;\n } catch {\n return false;\n }\n};\n\nexport function CreatePage({\n onCreate,\n onBack,\n instanceConfig,\n instanceInventory,\n}: Props): VNode {\n const [value, valueHandler] = useState(with_defaults(instanceConfig));\n const config = useConfigContext();\n const zero = Amounts.zeroOfCurrency(config.currency);\n\n const inventoryList = Object.values(value.inventoryProducts || {});\n const productList = Object.values(value.products || {});\n\n const { i18n } = useTranslationContext();\n\n const errors: FormErrors = {\n pricing: undefinedIfEmpty({\n summary: !value.pricing?.summary ? i18n.str`required` : undefined,\n order_price: !value.pricing?.order_price\n ? i18n.str`required`\n : Amounts.isZero(value.pricing.order_price)\n ? i18n.str`must be greater than 0`\n : undefined,\n }),\n extra:\n value.extra && !stringIsValidJSON(value.extra)\n ? i18n.str`not a valid json`\n : undefined,\n payments: undefinedIfEmpty({\n refund_deadline: !value.payments?.refund_deadline\n ? undefined\n : !isFuture(value.payments.refund_deadline)\n ? i18n.str`should be in the future`\n : value.payments.pay_deadline &&\n isBefore(value.payments.refund_deadline, value.payments.pay_deadline)\n ? i18n.str`refund deadline cannot be before pay deadline`\n : value.payments.wire_transfer_deadline &&\n isBefore(\n value.payments.wire_transfer_deadline,\n value.payments.refund_deadline,\n )\n ? i18n.str`wire transfer deadline cannot be before refund deadline`\n : undefined,\n pay_deadline: !value.payments?.pay_deadline\n ? undefined\n : !isFuture(value.payments.pay_deadline)\n ? i18n.str`should be in the future`\n : value.payments.wire_transfer_deadline &&\n isBefore(\n value.payments.wire_transfer_deadline,\n value.payments.pay_deadline,\n )\n ? i18n.str`wire transfer deadline cannot be before pay deadline`\n : undefined,\n auto_refund_deadline: !value.payments?.auto_refund_deadline\n ? undefined\n : !isFuture(value.payments.auto_refund_deadline)\n ? i18n.str`should be in the future`\n : !value.payments?.refund_deadline\n ? i18n.str`should have a refund deadline`\n : !isAfter(\n value.payments.refund_deadline,\n value.payments.auto_refund_deadline,\n )\n ? i18n.str`auto refund cannot be after refund deadline`\n : undefined,\n }),\n shipping: undefinedIfEmpty({\n delivery_date: !value.shipping?.delivery_date\n ? undefined\n : !isFuture(value.shipping.delivery_date)\n ? i18n.str`should be in the future`\n : undefined,\n }),\n };\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = (): void => {\n const order = schema.cast(value);\n if (!value.payments) return;\n if (!value.shipping) return;\n\n const request: MerchantBackend.Orders.PostOrderRequest = {\n order: {\n amount: order.pricing.order_price,\n summary: order.pricing.summary,\n products: productList,\n extra: value.extra,\n pay_deadline: value.payments.pay_deadline\n ? {\n t_s: Math.floor(value.payments.pay_deadline.getTime() / 1000),\n }\n : undefined,\n wire_transfer_deadline: value.payments.wire_transfer_deadline\n ? {\n t_s: Math.floor(\n value.payments.wire_transfer_deadline.getTime() / 1000,\n ),\n }\n : undefined,\n refund_deadline: value.payments.refund_deadline\n ? {\n t_s: Math.floor(value.payments.refund_deadline.getTime() / 1000),\n }\n : undefined,\n auto_refund: value.payments.auto_refund_deadline\n ? {\n d_us: Math.floor(\n value.payments.auto_refund_deadline.getTime() * 1000,\n ),\n }\n : undefined,\n wire_fee_amortization: value.payments.wire_fee_amortization as number,\n max_fee: value.payments.max_fee as string,\n max_wire_fee: value.payments.max_wire_fee as string,\n\n delivery_date: value.shipping.delivery_date\n ? { t_s: value.shipping.delivery_date.getTime() / 1000 }\n : undefined,\n delivery_location: value.shipping.delivery_location,\n fulfillment_url: value.shipping.fullfilment_url,\n minimum_age: value.payments.minimum_age,\n },\n inventory_products: inventoryList.map((p) => ({\n product_id: p.product.id,\n quantity: p.quantity,\n })),\n create_token: value.payments.createToken,\n };\n\n onCreate(request);\n };\n\n const addProductToTheInventoryList = (\n product: MerchantBackend.Products.ProductDetail & WithId,\n quantity: number,\n ) => {\n valueHandler((v) => {\n const inventoryProducts = { ...v.inventoryProducts };\n inventoryProducts[product.id] = { product, quantity };\n return { ...v, inventoryProducts };\n });\n };\n\n const removeProductFromTheInventoryList = (id: string) => {\n valueHandler((v) => {\n const inventoryProducts = { ...v.inventoryProducts };\n delete inventoryProducts[id];\n return { ...v, inventoryProducts };\n });\n };\n\n const addNewProduct = async (product: MerchantBackend.Product) => {\n return valueHandler((v) => {\n const products = v.products ? [...v.products, product] : [];\n return { ...v, products };\n });\n };\n\n const removeFromNewProduct = (index: number) => {\n valueHandler((v) => {\n const products = v.products ? [...v.products] : [];\n products.splice(index, 1);\n return { ...v, products };\n });\n };\n\n const [editingProduct, setEditingProduct] = useState<\n MerchantBackend.Product | undefined\n >(undefined);\n\n const totalPriceInventory = inventoryList.reduce((prev, cur) => {\n const p = Amounts.parseOrThrow(cur.product.price);\n return Amounts.add(prev, Amounts.mult(p, cur.quantity).amount).amount;\n }, zero);\n\n const totalPriceProducts = productList.reduce((prev, cur) => {\n if (!cur.price) return zero;\n const p = Amounts.parseOrThrow(cur.price);\n return Amounts.add(prev, Amounts.mult(p, cur.quantity).amount).amount;\n }, zero);\n\n const hasProducts = inventoryList.length > 0 || productList.length > 0;\n const totalPrice = Amounts.add(totalPriceInventory, totalPriceProducts);\n\n const totalAsString = Amounts.stringify(totalPrice.amount);\n const allProducts = productList.concat(inventoryList.map(asProduct));\n\n useEffect(() => {\n valueHandler((v) => {\n return {\n ...v,\n pricing: {\n ...v.pricing,\n products_price: hasProducts ? totalAsString : undefined,\n order_price: hasProducts ? totalAsString : undefined,\n },\n };\n });\n }, [hasProducts, totalAsString]);\n\n const discountOrRise = rate(\n value.pricing?.order_price || `${config.currency}:0`,\n totalAsString,\n );\n\n const minAgeByProducts = allProducts.reduce(\n (cur, prev) =>\n !prev.minimum_age || cur > prev.minimum_age ? cur : prev.minimum_age,\n 0,\n );\n return (\n
    \n
    \n
    \n
    \n
    \n {/* // FIXME: translating plural singular */}\n 0 && (\n

    \n {allProducts.length} products with a total price of{\" \"}\n {totalAsString}.\n

    \n )\n }\n tooltip={i18n.str`Manage list of products in the order.`}\n >\n \n\n {\n setEditingProduct(undefined);\n return addNewProduct(p);\n }}\n />\n\n {allProducts.length > 0 && (\n {\n if (e.product_id) {\n removeProductFromTheInventoryList(e.product_id);\n } else {\n removeFromNewProduct(index);\n setEditingProduct(e);\n }\n },\n },\n ]}\n />\n )}\n \n\n \n errors={errors}\n object={value}\n valueHandler={valueHandler as any}\n >\n {hasProducts ? (\n \n \n 0 &&\n (discountOrRise < 1\n ? `discount of %${Math.round(\n (1 - discountOrRise) * 100,\n )}`\n : `rise of %${Math.round((discountOrRise - 1) * 100)}`)\n }\n tooltip={i18n.str`Amount to be paid by the customer`}\n />\n \n ) : (\n \n )}\n\n \n\n \n \n {value.shipping?.delivery_date && (\n \n \n \n )}\n \n \n\n \n \n \n \n \n\n \n \n \n \n 0\n ? i18n.str`Min age defined by the producs is ${minAgeByProducts}`\n : undefined\n }\n />\n \n\n \n \n \n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction asProduct(p: ProductAndQuantity): MerchantBackend.Product {\n return {\n product_id: p.product.id,\n image: p.product.image,\n price: p.product.price,\n unit: p.product.unit,\n quantity: p.quantity,\n description: p.product.description,\n taxes: p.product.taxes,\n minimum_age: p.product.minimum_age,\n };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { HttpError } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useInstanceDetails } from \"../../../../hooks/instance.js\";\nimport { useOrderAPI } from \"../../../../hooks/order.js\";\nimport { useInstanceProducts } from \"../../../../hooks/product.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = {\n request: MerchantBackend.Orders.PostOrderRequest;\n response: MerchantBackend.Orders.PostOrderResponse;\n};\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n}\nexport default function OrderCreate({\n onConfirm,\n onBack,\n onLoadError,\n onNotFound,\n onUnauthorized,\n}: Props): VNode {\n const { createOrder } = useOrderAPI();\n const [notif, setNotif] = useState(undefined);\n\n const detailsResult = useInstanceDetails();\n const inventoryResult = useInstanceProducts();\n\n if (detailsResult.clientError && detailsResult.isUnauthorized)\n return onUnauthorized();\n if (detailsResult.clientError && detailsResult.isNotfound)\n return onNotFound();\n if (detailsResult.loading) return ;\n if (!detailsResult.ok) return onLoadError(detailsResult);\n\n if (inventoryResult.clientError && inventoryResult.isUnauthorized)\n return onUnauthorized();\n if (inventoryResult.clientError && inventoryResult.isNotfound)\n return onNotFound();\n if (inventoryResult.loading) return ;\n if (!inventoryResult.ok) return onLoadError(inventoryResult);\n\n return (\n \n \n\n {\n createOrder(request)\n .then(onConfirm)\n .catch((error) => {\n setNotif({\n message: \"could not create order\",\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n instanceConfig={detailsResult.data}\n instanceInventory={inventoryResult.data}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { ComponentChildren, h, VNode } from \"preact\";\nimport { useField, InputProps } from \"./useField.js\";\n\ninterface Props extends InputProps {\n inputType?: \"text\" | \"number\" | \"multiline\" | \"password\";\n expand?: boolean;\n side?: ComponentChildren;\n children: ComponentChildren;\n}\n\nexport function TextField({\n name,\n tooltip,\n label,\n expand,\n help,\n children,\n side,\n}: Props): VNode {\n const { error } = useField(name);\n return (\n
    \n
    \n \n
    \n
    \n
    \n \n {children}\n {help}\n

    \n {error &&

    {error}

    }\n
    \n {side}\n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputGroup } from \"../../../../components/form/InputGroup.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { ConfirmModal } from \"../../../../components/modal/index.js\";\nimport { useConfigContext } from \"../../../../context/config.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport { mergeRefunds } from \"../../../../utils/amount.js\";\n\ntype Entity = MerchantBackend.Orders.OrderHistoryEntry & WithId;\ninterface Props {\n orders: Entity[];\n onRefund: (value: Entity) => void;\n onCopyURL: (id: string) => void;\n onCreate: () => void;\n onSelect: (order: Entity) => void;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nexport function CardTable({\n orders,\n onCreate,\n onRefund,\n onCopyURL,\n onSelect,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n

    \n \n \n \n Orders\n

    \n\n
    \n\n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {orders.length > 0 ? (\n onCopyURL(o.id)}\n rowSelection={rowSelection}\n rowSelectionHandler={rowSelectionHandler}\n onLoadMoreAfter={onLoadMoreAfter}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreAfter={hasMoreAfter}\n hasMoreBefore={hasMoreBefore}\n />\n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: Entity[];\n onRefund: (id: Entity) => void;\n onCopyURL: (id: Entity) => void;\n onSelect: (id: Entity) => void;\n rowSelectionHandler: StateUpdater;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nfunction Table({\n instances,\n onSelect,\n onRefund,\n onCopyURL,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n {onLoadMoreBefore && (\n \n load newer orders\n \n )}\n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.timestamp.t_s === \"never\"\n ? \"never\"\n : format(\n new Date(i.timestamp.t_s * 1000),\n \"yyyy/MM/dd HH:mm:ss\",\n )}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.amount}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.summary}\n \n \n \n );\n })}\n \n
    \n Date\n \n Amount\n \n Summary\n \n
    \n
    \n {i.refundable && (\n onRefund(i)}\n >\n Refund\n \n )}\n {!i.paid && (\n onCopyURL(i)}\n >\n copy url\n \n )}\n
    \n
    \n {onLoadMoreAfter && (\n \n load older orders\n \n )}\n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n No orders have been found matching your query!\n \n

    \n
    \n );\n}\n\ninterface RefundModalProps {\n onCancel: () => void;\n onConfirm: (value: MerchantBackend.Orders.RefundRequest) => void;\n order: MerchantBackend.Orders.MerchantOrderStatusResponse;\n}\n\nexport function RefundModal({\n order,\n onCancel,\n onConfirm,\n}: RefundModalProps): VNode {\n type State = { mainReason?: string; description?: string; refund?: string };\n const [form, setValue] = useState({});\n const { i18n } = useTranslationContext();\n // const [errors, setErrors] = useState>({});\n\n const refunds = (\n order.order_status === \"paid\" ? order.refund_details : []\n ).reduce(mergeRefunds, []);\n\n const config = useConfigContext();\n const totalRefunded = refunds\n .map((r) => r.amount)\n .reduce(\n (p, c) => Amounts.add(p, Amounts.parseOrThrow(c)).amount,\n Amounts.zeroOfCurrency(config.currency),\n );\n const orderPrice =\n order.order_status === \"paid\"\n ? Amounts.parseOrThrow(order.contract_terms.amount)\n : undefined;\n const totalRefundable = !orderPrice\n ? Amounts.zeroOfCurrency(totalRefunded.currency)\n : refunds.length\n ? Amounts.sub(orderPrice, totalRefunded).amount\n : orderPrice;\n\n const isRefundable = Amounts.isNonZero(totalRefundable);\n const duplicatedText = i18n.str`duplicated`;\n\n const errors: FormErrors = {\n mainReason: !form.mainReason ? i18n.str`required` : undefined,\n description:\n !form.description && form.mainReason !== duplicatedText\n ? i18n.str`required`\n : undefined,\n refund: !form.refund\n ? i18n.str`required`\n : !Amounts.parse(form.refund)\n ? i18n.str`invalid format`\n : Amounts.cmp(totalRefundable, Amounts.parse(form.refund)!) === -1\n ? i18n.str`this value exceed the refundable amount`\n : undefined,\n };\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const validateAndConfirm = () => {\n try {\n if (!form.refund) return;\n onConfirm({\n refund: Amounts.stringify(\n Amounts.add(Amounts.parse(form.refund)!, totalRefunded).amount,\n ),\n reason:\n form.description === undefined\n ? form.mainReason || \"\"\n : `${form.mainReason}: ${form.description}`,\n });\n } catch (err) {\n console.log(err);\n }\n };\n\n //FIXME: parameters in the translation\n return (\n \n {refunds.length > 0 && (\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n {refunds.map((r) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    \n date\n \n amount\n \n reason\n
    \n {r.timestamp.t_s === \"never\"\n ? \"never\"\n : format(\n new Date(r.timestamp.t_s * 1000),\n \"yyyy-MM-dd HH:mm:ss\",\n )}\n {r.amount}{r.reason}
    \n \n
    \n
    \n )}\n\n {isRefundable && (\n \n errors={errors}\n object={form}\n valueHandler={(d) => setValue(d as any)}\n >\n \n name=\"refund\"\n label={i18n.str`Refund`}\n tooltip={i18n.str`amount to be refunded`}\n >\n Max refundable:{\" \"}\n {Amounts.stringify(totalRefundable)}\n \n \n {form.mainReason && form.mainReason !== duplicatedText ? (\n \n label={i18n.str`Description`}\n name=\"description\"\n tooltip={i18n.str`more information to give context`}\n />\n ) : undefined}\n \n )}\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { format } from \"date-fns\";\nimport { h } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\n\ninterface Props {\n events: Event[];\n}\n\nexport function Timeline({ events: e }: Props) {\n const events = [...e];\n events.push({\n when: new Date(),\n description: \"now\",\n type: \"now\",\n });\n\n events.sort((a, b) => a.when.getTime() - b.when.getTime());\n\n const [state, setState] = useState(events);\n useEffect(() => {\n const handle = setTimeout(() => {\n const eventsWithoutNow = state.filter((e) => e.type !== \"now\");\n eventsWithoutNow.push({\n when: new Date(),\n description: \"now\",\n type: \"now\",\n });\n setState(eventsWithoutNow);\n }, 1000);\n return () => {\n clearTimeout(handle);\n };\n });\n return (\n
    \n {events.map((e, i) => {\n return (\n
    \n {(() => {\n switch (e.type) {\n case \"deadline\":\n return (\n
    \n \n
    \n );\n case \"delivery\":\n return (\n
    \n \n
    \n );\n case \"start\":\n return (\n
    \n \n
    \n );\n case \"wired\":\n return (\n
    \n \n
    \n );\n case \"wired-range\":\n return (\n
    \n \n
    \n );\n case \"refund\":\n return (\n
    \n \n
    \n );\n case \"refund-taken\":\n return (\n
    \n \n
    \n );\n case \"now\":\n return (\n
    \n \n
    \n );\n }\n })()}\n
    \n

    {format(e.when, \"yyyy/MM/dd HH:mm:ss\")}

    \n

    {e.description}

    \n
    \n
    \n );\n })}\n
    \n );\n}\nexport interface Event {\n when: Date;\n description: string;\n type:\n | \"start\"\n | \"refund\"\n | \"refund-taken\"\n | \"wired\"\n | \"wired-range\"\n | \"deadline\"\n | \"delivery\"\n | \"now\";\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { AmountJson, Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { FormProvider } from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDate } from \"../../../../components/form/InputDate.js\";\nimport { InputDuration } from \"../../../../components/form/InputDuration.js\";\nimport { InputGroup } from \"../../../../components/form/InputGroup.js\";\nimport { InputLocation } from \"../../../../components/form/InputLocation.js\";\nimport { TextField } from \"../../../../components/form/TextField.js\";\nimport { ProductList } from \"../../../../components/product/ProductList.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { mergeRefunds } from \"../../../../utils/amount.js\";\nimport { RefundModal } from \"../list/Table.js\";\nimport { Event, Timeline } from \"./Timeline.js\";\n\ntype Entity = MerchantBackend.Orders.MerchantOrderStatusResponse;\ntype CT = MerchantBackend.ContractTerms;\n\ninterface Props {\n onBack: () => void;\n selected: Entity;\n id: string;\n onRefund: (id: string, value: MerchantBackend.Orders.RefundRequest) => void;\n}\n\ntype Paid = MerchantBackend.Orders.CheckPaymentPaidResponse & {\n refund_taken: string;\n};\ntype Unpaid = MerchantBackend.Orders.CheckPaymentUnpaidResponse;\ntype Claimed = MerchantBackend.Orders.CheckPaymentClaimedResponse;\n\nfunction ContractTerms({ value }: { value: CT }) {\n const { i18n } = useTranslationContext();\n\n return (\n \n object={value} valueHandler={null}>\n \n readonly\n name=\"summary\"\n label={i18n.str`Summary`}\n tooltip={i18n.str`human-readable description of the whole purchase`}\n />\n \n readonly\n name=\"amount\"\n label={i18n.str`Amount`}\n tooltip={i18n.str`total price for the transaction`}\n />\n {value.fulfillment_url && (\n \n readonly\n name=\"fulfillment_url\"\n label={i18n.str`Fulfillment URL`}\n tooltip={i18n.str`URL for this purchase`}\n />\n )}\n \n readonly\n name=\"max_fee\"\n label={i18n.str`Max fee`}\n tooltip={i18n.str`maximum total deposit fee accepted by the merchant for this contract`}\n />\n \n readonly\n name=\"max_wire_fee\"\n label={i18n.str`Max wire fee`}\n tooltip={i18n.str`maximum wire fee accepted by the merchant`}\n />\n \n readonly\n name=\"wire_fee_amortization\"\n label={i18n.str`Wire fee amortization`}\n tooltip={i18n.str`over how many customer transactions does the merchant expect to amortize wire fees on average`}\n />\n \n readonly\n name=\"timestamp\"\n label={i18n.str`Created at`}\n tooltip={i18n.str`time when this contract was generated`}\n />\n \n readonly\n name=\"refund_deadline\"\n label={i18n.str`Refund deadline`}\n tooltip={i18n.str`after this deadline has passed no refunds will be accepted`}\n />\n \n readonly\n name=\"pay_deadline\"\n label={i18n.str`Payment deadline`}\n tooltip={i18n.str`after this deadline, the merchant won't accept payments for the contract`}\n />\n \n readonly\n name=\"wire_transfer_deadline\"\n label={i18n.str`Wire transfer deadline`}\n tooltip={i18n.str`transfer deadline for the exchange`}\n />\n \n readonly\n name=\"delivery_date\"\n label={i18n.str`Delivery date`}\n tooltip={i18n.str`time indicating when the order should be delivered`}\n />\n {value.delivery_date && (\n \n \n \n )}\n \n readonly\n name=\"auto_refund\"\n label={i18n.str`Auto-refund delay`}\n tooltip={i18n.str`how long the wallet should try to get an automatic refund for the purchase`}\n />\n \n readonly\n name=\"extra\"\n label={i18n.str`Extra info`}\n tooltip={i18n.str`extra data that is only interpreted by the merchant frontend`}\n />\n \n \n );\n}\n\nfunction ClaimedPage({\n id,\n order,\n}: {\n id: string;\n order: MerchantBackend.Orders.CheckPaymentClaimedResponse;\n}) {\n const events: Event[] = [];\n if (order.contract_terms.timestamp.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.timestamp.t_s * 1000),\n description: \"order created\",\n type: \"start\",\n });\n }\n if (order.contract_terms.pay_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.pay_deadline.t_s * 1000),\n description: \"pay deadline\",\n type: \"deadline\",\n });\n }\n if (order.contract_terms.refund_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.refund_deadline.t_s * 1000),\n description: \"refund deadline\",\n type: \"deadline\",\n });\n }\n if (order.contract_terms.wire_transfer_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.wire_transfer_deadline.t_s * 1000),\n description: \"wire deadline\",\n type: \"deadline\",\n });\n }\n if (\n order.contract_terms.delivery_date &&\n order.contract_terms.delivery_date.t_s !== \"never\"\n ) {\n events.push({\n when: new Date(order.contract_terms.delivery_date?.t_s * 1000),\n description: \"delivery\",\n type: \"delivery\",\n });\n }\n\n const [value, valueHandler] = useState>(order);\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Order #{id}\n
    \n claimed\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    {order.contract_terms.amount}

    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n

    \n \n claimed at:\n {\" \"}\n {format(\n new Date(order.contract_terms.timestamp.t_s * 1000),\n \"yyyy-MM-dd HH:mm:ss\",\n )}\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n Timeline\n
    \n \n
    \n
    \n
    \n Payment details\n
    \n \n object={value}\n valueHandler={valueHandler}\n >\n \n \n \n name=\"order_status\"\n readonly\n label={i18n.str`Order status`}\n />\n \n
    \n
    \n
    \n\n {order.contract_terms.products.length ? (\n \n
    \n Product list\n
    \n \n
    \n ) : undefined}\n\n {value.contract_terms && (\n \n )}\n
    \n
    \n
    \n \n \n );\n}\nfunction PaidPage({\n id,\n order,\n onRefund,\n}: {\n id: string;\n order: MerchantBackend.Orders.CheckPaymentPaidResponse;\n onRefund: (id: string) => void;\n}) {\n const events: Event[] = [];\n if (order.contract_terms.timestamp.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.timestamp.t_s * 1000),\n description: \"order created\",\n type: \"start\",\n });\n }\n if (order.contract_terms.pay_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.pay_deadline.t_s * 1000),\n description: \"pay deadline\",\n type: \"deadline\",\n });\n }\n if (order.contract_terms.refund_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.refund_deadline.t_s * 1000),\n description: \"refund deadline\",\n type: \"deadline\",\n });\n }\n if (order.contract_terms.wire_transfer_deadline.t_s !== \"never\") {\n events.push({\n when: new Date(order.contract_terms.wire_transfer_deadline.t_s * 1000),\n description: \"wire deadline\",\n type: \"deadline\",\n });\n }\n if (\n order.contract_terms.delivery_date &&\n order.contract_terms.delivery_date.t_s !== \"never\"\n ) {\n if (order.contract_terms.delivery_date)\n events.push({\n when: new Date(order.contract_terms.delivery_date?.t_s * 1000),\n description: \"delivery\",\n type: \"delivery\",\n });\n }\n order.refund_details.reduce(mergeRefunds, []).forEach((e) => {\n if (e.timestamp.t_s !== \"never\") {\n events.push({\n when: new Date(e.timestamp.t_s * 1000),\n description: `refund: ${e.amount}: ${e.reason}`,\n type: e.pending ? \"refund\" : \"refund-taken\",\n });\n }\n });\n if (order.wire_details && order.wire_details.length) {\n if (order.wire_details.length > 1) {\n let last: MerchantBackend.Orders.TransactionWireTransfer | null = null;\n let first: MerchantBackend.Orders.TransactionWireTransfer | null = null;\n let total: AmountJson | null = null;\n\n order.wire_details.forEach((w) => {\n if (last === null || last.execution_time.t_s < w.execution_time.t_s) {\n last = w;\n }\n if (first === null || first.execution_time.t_s > w.execution_time.t_s) {\n first = w;\n }\n total =\n total === null\n ? Amounts.parseOrThrow(w.amount)\n : Amounts.add(total, Amounts.parseOrThrow(w.amount)).amount;\n });\n const last_time = last!.execution_time.t_s;\n if (last_time !== \"never\") {\n events.push({\n when: new Date(last_time * 1000),\n description: `wired ${Amounts.stringify(total!)}`,\n type: \"wired-range\",\n });\n }\n const first_time = first!.execution_time.t_s;\n if (first_time !== \"never\") {\n events.push({\n when: new Date(first_time * 1000),\n description: `wire transfer started...`,\n type: \"wired-range\",\n });\n }\n } else {\n order.wire_details.forEach((e) => {\n if (e.execution_time.t_s !== \"never\") {\n events.push({\n when: new Date(e.execution_time.t_s * 1000),\n description: `wired ${e.amount}`,\n type: \"wired\",\n });\n }\n });\n }\n }\n\n const [value, valueHandler] = useState>(order);\n const { url } = useBackendContext();\n const refundHost = url.replace(/.*:\\/\\//, \"\"); // remove protocol part\n const proto = url.startsWith(\"http://\") ? \"taler+http\" : \"taler\";\n const refundurl = `${proto}://refund/${refundHost}/${order.contract_terms.order_id}/`;\n const refundable =\n new Date().getTime() < order.contract_terms.refund_deadline.t_s * 1000;\n const { i18n } = useTranslationContext();\n\n const amount = Amounts.parseOrThrow(order.contract_terms.amount);\n const refund_taken = order.refund_details.reduce((prev, cur) => {\n if (cur.pending) return prev;\n return Amounts.add(prev, Amounts.parseOrThrow(cur.amount)).amount;\n }, Amounts.zeroOfCurrency(amount.currency));\n value.refund_taken = Amounts.stringify(refund_taken);\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Order #{id}\n
    \n paid\n
    \n {order.wired ? (\n
    \n wired\n
    \n ) : null}\n {order.refunded ? (\n
    \n refunded\n
    \n ) : null}\n
    \n
    \n
    \n
    \n
    \n
    \n

    {order.contract_terms.amount}

    \n
    \n
    \n
    \n
    \n

    \n
    \n \n onRefund(id)}\n >\n refund\n \n \n
    \n

    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n

    \n \n {order.contract_terms.fulfillment_url}\n \n

    \n

    \n {format(\n new Date(order.contract_terms.timestamp.t_s * 1000),\n \"yyyy/MM/dd HH:mm:ss\",\n )}\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n Timeline\n
    \n \n
    \n
    \n
    \n Payment details\n
    \n \n object={value}\n valueHandler={valueHandler}\n >\n {/* name=\"deposit_total\" readonly label={i18n.str`Deposit total`} /> */}\n {order.refunded && (\n \n name=\"refund_amount\"\n readonly\n label={i18n.str`Refunded amount`}\n />\n )}\n {order.refunded && (\n \n name=\"refund_taken\"\n readonly\n label={i18n.str`Refund taken`}\n />\n )}\n \n name=\"order_status\"\n readonly\n label={i18n.str`Order status`}\n />\n \n name=\"order_status_url\"\n label={i18n.str`Status URL`}\n >\n \n {order.order_status_url}\n \n \n {order.refunded && (\n \n name=\"order_status_url\"\n label={i18n.str`Refund URI`}\n >\n \n {refundurl}\n \n \n )}\n \n
    \n
    \n
    \n\n {order.contract_terms.products.length ? (\n \n
    \n Product list\n
    \n \n
    \n ) : undefined}\n\n {value.contract_terms && (\n \n )}\n
    \n
    \n
    \n \n \n );\n}\n\nfunction UnpaidPage({\n id,\n order,\n}: {\n id: string;\n order: MerchantBackend.Orders.CheckPaymentUnpaidResponse;\n}) {\n const [value, valueHandler] = useState>(order);\n const { i18n } = useTranslationContext();\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Order #{id}\n

    \n
    \n
    \n unpaid\n
    \n
    \n
    \n\n
    \n
    \n
    \n \n

    \n \n pay at:\n {\" \"}\n \n {order.order_status_url}\n \n

    \n

    \n \n created at:\n {\" \"}\n {order.creation_time.t_s === \"never\"\n ? \"never\"\n : format(\n new Date(order.creation_time.t_s * 1000),\n \"yyyy-MM-dd HH:mm:ss\",\n )}\n

    \n
    \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n object={value} valueHandler={valueHandler}>\n \n readonly\n name=\"summary\"\n label={i18n.str`Summary`}\n tooltip={i18n.str`human-readable description of the whole purchase`}\n />\n \n readonly\n name=\"total_amount\"\n label={i18n.str`Amount`}\n tooltip={i18n.str`total price for the transaction`}\n />\n \n name=\"order_status\"\n readonly\n label={i18n.str`Order status`}\n />\n \n name=\"order_status_url\"\n readonly\n label={i18n.str`Order status URL`}\n />\n \n name=\"taler_pay_uri\"\n label={i18n.str`Payment URI`}\n >\n \n {value.taler_pay_uri}\n \n \n \n
    \n
    \n
    \n
    \n \n );\n}\n\nexport function DetailPage({ id, selected, onRefund, onBack }: Props): VNode {\n const [showRefund, setShowRefund] = useState(undefined);\n const { i18n } = useTranslationContext();\n const DetailByStatus = function () {\n switch (selected.order_status) {\n case \"claimed\":\n return ;\n case \"paid\":\n return ;\n case \"unpaid\":\n return ;\n default:\n return (\n
    \n \n Unknown order status. This is an error, please contact the\n administrator.\n \n
    \n );\n }\n };\n\n return (\n \n {DetailByStatus()}\n {showRefund && (\n setShowRefund(undefined)}\n onConfirm={(value) => {\n onRefund(showRefund, value);\n setShowRefund(undefined);\n }}\n />\n )}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n );\n}\n\nasync function copyToClipboard(text: string) {\n return navigator.clipboard.writeText(text);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n useTranslationContext,\n HttpError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useOrderAPI, useOrderDetails } from \"../../../../hooks/order.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { DetailPage } from \"./DetailPage.js\";\n\nexport interface Props {\n oid: string;\n\n onBack: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n}\n\nexport default function Update({\n oid,\n onBack,\n onLoadError,\n onNotFound,\n onUnauthorized,\n}: Props): VNode {\n const { refundOrder } = useOrderAPI();\n const result = useOrderDetails(oid);\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n\n \n refundOrder(id, value)\n .then(() =>\n setNotif({\n message: i18n.str`refund created successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not create the refund`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n selected={result.data}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { DatePicker } from \"../../../../components/picker/DatePicker.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport { CardTable } from \"./Table.js\";\n\nexport interface ListPageProps {\n errorOrderId: string | undefined;\n\n onShowAll: () => void;\n onShowPaid: () => void;\n onShowRefunded: () => void;\n onShowNotWired: () => void;\n onCopyURL: (id: string) => void;\n isAllActive: string;\n isPaidActive: string;\n isRefundedActive: string;\n isNotWiredActive: string;\n\n jumpToDate?: Date;\n onSelectDate: (date?: Date) => void;\n\n orders: (MerchantBackend.Orders.OrderHistoryEntry & WithId)[];\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n\n onSelectOrder: (o: MerchantBackend.Orders.OrderHistoryEntry & WithId) => void;\n onRefundOrder: (o: MerchantBackend.Orders.OrderHistoryEntry & WithId) => void;\n onSearchOrderById: (id: string) => void;\n onCreate: () => void;\n}\n\nexport function ListPage({\n orders,\n errorOrderId,\n isAllActive,\n onSelectOrder,\n onRefundOrder,\n onSearchOrderById,\n jumpToDate,\n onCopyURL,\n onShowAll,\n onShowPaid,\n onShowRefunded,\n onShowNotWired,\n onSelectDate,\n isPaidActive,\n isRefundedActive,\n isNotWiredActive,\n onCreate,\n}: ListPageProps): VNode {\n const { i18n } = useTranslationContext();\n const dateTooltip = i18n.str`select date to show nearby orders`;\n const [pickDate, setPickDate] = useState(false);\n const [orderId, setOrderId] = useState(\"\");\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n setOrderId(e.currentTarget.value)}\n placeholder={i18n.str`order id`}\n />\n {errorOrderId &&

    {errorOrderId}

    }\n
    \n \n onSearchOrderById(orderId)}\n >\n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
  • \n \n \n Paid\n \n
  • \n \n
  • \n \n \n Refunded\n \n
  • \n \n
  • \n \n \n Not wired\n \n
  • \n \n \n
    \n \n
    \n
    \n
    \n {jumpToDate && (\n \n )}\n
    \n \n {\n setPickDate(true);\n }}\n />\n \n
    \n
    \n \n {\n setPickDate(true);\n }}\n >\n \n \n \n \n \n
    \n
    \n
    \n
    \n \n\n setPickDate(false)}\n dateReceiver={onSelectDate}\n />\n\n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n InstanceOrderFilter,\n useInstanceOrders,\n useOrderAPI,\n useOrderDetails,\n} from \"../../../../hooks/order.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { ListPage } from \"./ListPage.js\";\nimport { RefundModal } from \"./Table.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onSelect: (id: string) => void;\n onCreate: () => void;\n}\n\nexport default function OrderList({\n onUnauthorized,\n onLoadError,\n onCreate,\n onSelect,\n onNotFound,\n}: Props): VNode {\n const [filter, setFilter] = useState({});\n const [orderToBeRefunded, setOrderToBeRefunded] = useState<\n MerchantBackend.Orders.OrderHistoryEntry | undefined\n >(undefined);\n\n const setNewDate = (date?: Date): void =>\n setFilter((prev) => ({ ...prev, date }));\n\n const result = useInstanceOrders(filter, setNewDate);\n const { refundOrder, getPaymentURL } = useOrderAPI();\n\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n const [errorOrderId, setErrorOrderId] = useState(\n undefined,\n );\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n const isPaidActive = filter.paid === \"yes\" ? \"is-active\" : \"\";\n const isRefundedActive = filter.refunded === \"yes\" ? \"is-active\" : \"\";\n const isNotWiredActive = filter.wired === \"no\" ? \"is-active\" : \"\";\n const isAllActive =\n filter.paid === undefined &&\n filter.refunded === undefined &&\n filter.wired === undefined\n ? \"is-active\"\n : \"\";\n\n async function testIfOrderExistAndSelect(orderId: string): Promise {\n if (!orderId) {\n setErrorOrderId(i18n.str`Enter an order id`);\n return;\n }\n try {\n await getPaymentURL(orderId);\n onSelect(orderId);\n setErrorOrderId(undefined);\n } catch {\n setErrorOrderId(i18n.str`order not found`);\n }\n }\n\n return (\n \n \n\n ({ ...o, id: o.order_id }))}\n onLoadMoreBefore={result.loadMorePrev}\n hasMoreBefore={!result.isReachingStart}\n onLoadMoreAfter={result.loadMore}\n hasMoreAfter={!result.isReachingEnd}\n onSelectOrder={(order) => onSelect(order.id)}\n onRefundOrder={(value) => setOrderToBeRefunded(value)}\n errorOrderId={errorOrderId}\n isAllActive={isAllActive}\n isNotWiredActive={isNotWiredActive}\n isPaidActive={isPaidActive}\n isRefundedActive={isRefundedActive}\n jumpToDate={filter.date}\n onCopyURL={(id) =>\n getPaymentURL(id).then((resp) => copyToClipboard(resp.data))\n }\n onCreate={onCreate}\n onSearchOrderById={testIfOrderExistAndSelect}\n onSelectDate={setNewDate}\n onShowAll={() => setFilter({})}\n onShowPaid={() => setFilter({ paid: \"yes\" })}\n onShowRefunded={() => setFilter({ refunded: \"yes\" })}\n onShowNotWired={() => setFilter({ wired: \"no\" })}\n />\n\n {orderToBeRefunded && (\n setOrderToBeRefunded(undefined)}\n onConfirm={(value) =>\n refundOrder(orderToBeRefunded.order_id, value)\n .then(() =>\n setNotif({\n message: i18n.str`refund created successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not create the refund`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n .then(() => setOrderToBeRefunded(undefined))\n }\n onLoadError={(error) => {\n setNotif({\n message: i18n.str`could not create the refund`,\n type: \"ERROR\",\n description: error.message,\n });\n setOrderToBeRefunded(undefined);\n return
    ;\n }}\n onUnauthorized={onUnauthorized}\n onNotFound={() => {\n setNotif({\n message: i18n.str`could not get the order to refund`,\n type: \"ERROR\",\n // description: error.message\n });\n setOrderToBeRefunded(undefined);\n return
    ;\n }}\n />\n )}\n \n );\n}\n\ninterface RefundProps {\n id: string;\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onCancel: () => void;\n onConfirm: (m: MerchantBackend.Orders.RefundRequest) => void;\n}\n\nfunction RefundModalForTable({\n id,\n onUnauthorized,\n onLoadError,\n onNotFound,\n onConfirm,\n onCancel,\n}: RefundProps): VNode {\n const result = useOrderDetails(id);\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n );\n}\n\nasync function copyToClipboard(text: string): Promise {\n return navigator.clipboard.writeText(text);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h } from \"preact\";\nimport { useLayoutEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend, Timestamp } from \"../../declaration.js\";\nimport { FormErrors, FormProvider } from \"./FormProvider.js\";\nimport { InputDate } from \"./InputDate.js\";\nimport { InputGroup } from \"./InputGroup.js\";\nimport { InputLocation } from \"./InputLocation.js\";\nimport { InputNumber } from \"./InputNumber.js\";\nimport { InputProps, useField } from \"./useField.js\";\n\nexport interface Props extends InputProps {\n alreadyExist?: boolean;\n}\n\ntype Entity = Stock;\n\nexport interface Stock {\n current: number;\n lost: number;\n sold: number;\n address?: MerchantBackend.Location;\n nextRestock?: Timestamp;\n}\n\ninterface StockDelta {\n incoming: number;\n lost: number;\n}\n\nexport function InputStock({\n name,\n tooltip,\n label,\n alreadyExist,\n}: Props) {\n const { error, value, onChange } = useField(name);\n\n const [errors, setErrors] = useState>({});\n\n const [formValue, valueHandler] = useState>(value);\n const [addedStock, setAddedStock] = useState({\n incoming: 0,\n lost: 0,\n });\n const { i18n } = useTranslationContext();\n\n useLayoutEffect(() => {\n if (!formValue) {\n onChange(undefined as any);\n } else {\n onChange({\n ...formValue,\n current: (formValue?.current || 0) + addedStock.incoming,\n lost: (formValue?.lost || 0) + addedStock.lost,\n } as any);\n }\n }, [formValue, addedStock]);\n\n if (!formValue) {\n return (\n \n
    \n
    \n \n
    \n
    \n
    \n {!alreadyExist ? (\n {\n valueHandler({\n current: 0,\n lost: 0,\n sold: 0,\n } as Stock as any);\n }}\n >\n \n Manage stock\n \n \n ) : (\n \n \n Infinite\n \n \n )}\n
    \n
    \n
    \n
    \n );\n }\n\n const currentStock =\n (formValue.current || 0) - (formValue.lost || 0) - (formValue.sold || 0);\n\n const stockAddedErrors: FormErrors = {\n lost:\n currentStock + addedStock.incoming < addedStock.lost\n ? i18n.str`lost cannot be greater than current and incoming (max ${\n currentStock + addedStock.incoming\n })`\n : undefined,\n };\n\n // const stockUpdateDescription = stockAddedErrors.lost ? '' : (\n // !!addedStock.incoming || !!addedStock.lost ?\n // i18n.str`current stock will change from ${currentStock} to ${currentStock + addedStock.incoming - addedStock.lost}` :\n // i18n.str`current stock will stay at ${currentStock}`\n // )\n\n return (\n \n
    \n
    \n

    \n {label}\n {tooltip && (\n \n \n \n )}\n

    \n
    \n
    \n \n name=\"stock\"\n errors={errors}\n object={formValue}\n valueHandler={valueHandler}\n >\n {alreadyExist ? (\n \n \n \n \n \n\n {/*
    \n
    \n
    \n
    \n {stockUpdateDescription}\n
    \n
    \n
    */}\n \n ) : (\n \n name=\"current\"\n label={i18n.str`Current`}\n side={\n {\n valueHandler(undefined as any);\n }}\n >\n \n without stock\n \n \n }\n />\n )}\n\n \n name=\"nextRestock\"\n label={i18n.str`Next restock`}\n withTimestampSupport\n />\n\n \n name=\"address\"\n label={i18n.str`Delivery address`}\n >\n \n \n \n
    \n
    \n \n );\n}\n// (\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h } from \"preact\";\nimport { useCallback, useEffect, useState } from \"preact/hooks\";\nimport * as yup from \"yup\";\nimport { useBackendContext } from \"../../context/backend.js\";\nimport { MerchantBackend } from \"../../declaration.js\";\nimport {\n ProductCreateSchema as createSchema,\n ProductUpdateSchema as updateSchema,\n} from \"../../schemas/index.js\";\nimport { FormErrors, FormProvider } from \"../form/FormProvider.js\";\nimport { Input } from \"../form/Input.js\";\nimport { InputCurrency } from \"../form/InputCurrency.js\";\nimport { InputImage } from \"../form/InputImage.js\";\nimport { InputNumber } from \"../form/InputNumber.js\";\nimport { InputStock, Stock } from \"../form/InputStock.js\";\nimport { InputTaxes } from \"../form/InputTaxes.js\";\nimport { InputWithAddon } from \"../form/InputWithAddon.js\";\n\ntype Entity = MerchantBackend.Products.ProductDetail & { product_id: string };\n\ninterface Props {\n onSubscribe: (c?: () => Entity | undefined) => void;\n initial?: Partial;\n alreadyExist?: boolean;\n}\n\nexport function ProductForm({ onSubscribe, initial, alreadyExist }: Props) {\n const [value, valueHandler] = useState>({\n address: {},\n description_i18n: {},\n taxes: [],\n next_restock: { t_s: \"never\" },\n price: \":0\",\n ...initial,\n stock:\n !initial || initial.total_stock === -1\n ? undefined\n : {\n current: initial.total_stock || 0,\n lost: initial.total_lost || 0,\n sold: initial.total_sold || 0,\n address: initial.address,\n nextRestock: initial.next_restock,\n },\n });\n let errors: FormErrors = {};\n\n try {\n (alreadyExist ? updateSchema : createSchema).validateSync(value, {\n abortEarly: false,\n });\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n const yupErrors = err.inner as yup.ValidationError[];\n errors = yupErrors.reduce(\n (prev, cur) =>\n !cur.path ? prev : { ...prev, [cur.path]: cur.message },\n {},\n );\n }\n }\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submit = useCallback((): Entity | undefined => {\n const stock: Stock = (value as any).stock;\n\n if (!stock) {\n value.total_stock = -1;\n } else {\n value.total_stock = stock.current;\n value.total_lost = stock.lost;\n value.next_restock =\n stock.nextRestock instanceof Date\n ? { t_s: stock.nextRestock.getTime() / 1000 }\n : stock.nextRestock;\n value.address = stock.address;\n }\n delete (value as any).stock;\n\n if (typeof value.minimum_age !== \"undefined\" && value.minimum_age < 1) {\n delete value.minimum_age;\n }\n\n return value as MerchantBackend.Products.ProductDetail & {\n product_id: string;\n };\n }, [value]);\n\n useEffect(() => {\n onSubscribe(hasErrors ? undefined : submit);\n }, [submit, hasErrors]);\n\n const backend = useBackendContext();\n const { i18n } = useTranslationContext();\n\n return (\n
    \n \n name=\"product\"\n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n {alreadyExist ? undefined : (\n \n name=\"product_id\"\n addonBefore={`${backend.url}/product/`}\n label={i18n.str`ID`}\n tooltip={i18n.str`product identification to use in URLs (for internal use only)`}\n />\n )}\n \n name=\"image\"\n label={i18n.str`Image`}\n tooltip={i18n.str`illustration of the product for customers`}\n />\n \n name=\"description\"\n inputType=\"multiline\"\n label={i18n.str`Description`}\n tooltip={i18n.str`product description for customers`}\n />\n \n name=\"minimum_age\"\n label={i18n.str`Age restricted`}\n tooltip={i18n.str`is this product restricted for customer below certain age?`}\n />\n \n name=\"unit\"\n label={i18n.str`Unit`}\n tooltip={i18n.str`unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers`}\n />\n \n name=\"price\"\n label={i18n.str`Price`}\n tooltip={i18n.str`sale price for customers, including taxes, for above units of the product`}\n />\n \n \n name=\"taxes\"\n label={i18n.str`Taxes`}\n tooltip={i18n.str`taxes included in the product price, exposed to customers`}\n />\n \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport { ProductForm } from \"../../../../components/product/ProductForm.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useListener } from \"../../../../hooks/listener.js\";\n\ntype Entity = MerchantBackend.Products.ProductAddDetail & {\n product_id: string;\n};\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nexport function CreatePage({ onCreate, onBack }: Props): VNode {\n const [submitForm, addFormSubmitter] = useListener(\n (result) => {\n if (result) return onCreate(result);\n return Promise.reject();\n },\n );\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useProductAPI } from \"../../../../hooks/product.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = MerchantBackend.Products.ProductAddDetail;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n}\nexport default function CreateProduct({ onConfirm, onBack }: Props): VNode {\n const { createProduct } = useProductAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n return (\n \n \n {\n return createProduct(request)\n .then(() => onConfirm())\n .catch((error) => {\n setNotif({\n message: i18n.str`could not create product`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { ComponentChildren, Fragment, h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport emptyImage from \"../../../../assets/empty.png\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Products.ProductDetail & WithId;\n\ninterface Props {\n instances: Entity[];\n onDelete: (id: Entity) => void;\n onSelect: (product: Entity) => void;\n onUpdate: (\n id: string,\n data: MerchantBackend.Products.ProductPatchDetail,\n ) => Promise;\n onCreate: () => void;\n selected?: boolean;\n}\n\nexport function CardTable({\n instances,\n onCreate,\n onSelect,\n onUpdate,\n onDelete,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState(\n undefined,\n );\n const { i18n } = useTranslationContext();\n return (\n
    \n
    \n

    \n \n \n \n Products\n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {instances.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string | undefined;\n instances: Entity[];\n onSelect: (id: Entity) => void;\n onUpdate: (\n id: string,\n data: MerchantBackend.Products.ProductPatchDetail,\n ) => Promise;\n onDelete: (id: Entity) => void;\n rowSelectionHandler: StateUpdater;\n}\n\nfunction Table({\n rowSelection,\n rowSelectionHandler,\n instances,\n onSelect,\n onUpdate,\n onDelete,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n const restStockInfo = !i.next_restock\n ? \"\"\n : i.next_restock.t_s === \"never\"\n ? \"never\"\n : `restock at ${format(\n new Date(i.next_restock.t_s * 1000),\n \"yyyy/MM/dd\",\n )}`;\n let stockInfo: ComponentChildren = \"\";\n if (i.total_stock < 0) {\n stockInfo = \"infinite\";\n } else {\n const totalStock = i.total_stock - i.total_lost - i.total_sold;\n stockInfo = (\n \n );\n }\n\n const isFree = Amounts.isZero(Amounts.parseOrThrow(i.price));\n\n return (\n \n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n \n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {i.description}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {isFree ? i18n.str`free` : `${i.price} / ${i.unit}`}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {sum(i.taxes)}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {difference(i.price, sum(i.taxes))}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {stockInfo}\n \n \n rowSelection !== i.id && rowSelectionHandler(i.id)\n }\n style={{ cursor: \"pointer\" }}\n >\n {i.total_sold} {i.unit}\n \n \n \n {rowSelection === i.id && (\n \n \n \n )}\n \n );\n })}\n \n
    \n Image\n \n Description\n \n Sell\n \n Taxes\n \n Profit\n \n Stock\n \n Sold\n \n
    \n
    \n \n onSelect(i)}\n >\n Update\n \n \n \n onDelete(i)}\n >\n Delete\n \n \n
    \n
    \n \n onUpdate(i.id, prod).then((r) =>\n rowSelectionHandler(undefined),\n )\n }\n onCancel={() => rowSelectionHandler(undefined)}\n />\n
    \n
    \n );\n}\n\ninterface FastProductUpdateFormProps {\n product: Entity;\n onUpdate: (\n data: MerchantBackend.Products.ProductPatchDetail,\n ) => Promise;\n onCancel: () => void;\n}\ninterface FastProductUpdate {\n incoming: number;\n lost: number;\n price: string;\n}\ninterface UpdatePrice {\n price: string;\n}\n\nfunction FastProductWithInfiniteStockUpdateForm({\n product,\n onUpdate,\n onCancel,\n}: FastProductUpdateFormProps) {\n const [value, valueHandler] = useState({ price: product.price });\n const { i18n } = useTranslationContext();\n\n return (\n \n \n name=\"added\"\n object={value}\n valueHandler={valueHandler as any}\n >\n \n name=\"price\"\n label={i18n.str`Price`}\n tooltip={i18n.str`update the product with new price`}\n />\n \n\n
    \n \n \n \n onUpdate({\n ...product,\n price: value.price,\n })\n }\n >\n Confirm\n \n \n
    \n
    \n );\n}\n\nfunction FastProductWithManagedStockUpdateForm({\n product,\n onUpdate,\n onCancel,\n}: FastProductUpdateFormProps) {\n const [value, valueHandler] = useState({\n incoming: 0,\n lost: 0,\n price: product.price,\n });\n\n const currentStock =\n product.total_stock - product.total_sold - product.total_lost;\n\n const errors: FormErrors = {\n lost:\n currentStock + value.incoming < value.lost\n ? `lost cannot be greater that current + incoming (max ${\n currentStock + value.incoming\n })`\n : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n const { i18n } = useTranslationContext();\n\n return (\n \n \n name=\"added\"\n errors={errors}\n object={value}\n valueHandler={valueHandler as any}\n >\n \n name=\"incoming\"\n label={i18n.str`Incoming`}\n tooltip={i18n.str`add more elements to the inventory`}\n />\n \n name=\"lost\"\n label={i18n.str`Lost`}\n tooltip={i18n.str`report elements lost in the inventory`}\n />\n \n name=\"price\"\n label={i18n.str`Price`}\n tooltip={i18n.str`new price for the product`}\n />\n \n\n
    \n \n \n \n onUpdate({\n ...product,\n total_stock: product.total_stock + value.incoming,\n total_lost: product.total_lost + value.lost,\n price: value.price,\n })\n }\n >\n Confirm\n \n \n
    \n
    \n );\n}\n\nfunction FastProductUpdateForm(props: FastProductUpdateFormProps) {\n return props.product.total_stock === -1 ? (\n \n ) : (\n \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no products yet, add more pressing the + sign\n \n

    \n
    \n );\n}\n\nfunction difference(price: string, tax: number) {\n if (!tax) return price;\n const ps = price.split(\":\");\n const p = parseInt(ps[1], 10);\n ps[1] = `${p - tax}`;\n return ps.join(\":\");\n}\nfunction sum(taxes: MerchantBackend.Tax[]) {\n return taxes.reduce((p, c) => p + parseInt(c.tax.split(\":\")[1], 10), 0);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport {\n useInstanceProducts,\n useProductAPI,\n} from \"../../../../hooks/product.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CardTable } from \"./Table.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onCreate: () => void;\n onSelect: (id: string) => void;\n onLoadError: (e: HttpError) => VNode;\n}\nexport default function ProductList({\n onUnauthorized,\n onLoadError,\n onCreate,\n onSelect,\n onNotFound,\n}: Props): VNode {\n const result = useInstanceProducts();\n const { deleteProduct, updateProduct } = useProductAPI();\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n
    \n \n\n \n updateProduct(id, prod)\n .then(() =>\n setNotif({\n message: i18n.str`product updated successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not update the product`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n onSelect={(product) => onSelect(product.id)}\n onDelete={(prod: MerchantBackend.Products.ProductDetail & WithId) =>\n deleteProduct(prod.id)\n .then(() =>\n setNotif({\n message: i18n.str`product delete successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not delete the product`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n />\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport { ProductForm } from \"../../../../components/product/ProductForm.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useListener } from \"../../../../hooks/listener.js\";\n\ntype Entity = MerchantBackend.Products.ProductDetail & { product_id: string };\n\ninterface Props {\n onUpdate: (d: Entity) => Promise;\n onBack?: () => void;\n product: Entity;\n}\n\nexport function UpdatePage({ product, onUpdate, onBack }: Props): VNode {\n const [submitForm, addFormSubmitter] = useListener(\n (result) => {\n if (result) return onUpdate(result);\n return Promise.resolve();\n },\n );\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Product id:\n {product.product_id}\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useProductAPI, useProductDetails } from \"../../../../hooks/product.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { UpdatePage } from \"./UpdatePage.js\";\n\nexport type Entity = MerchantBackend.Products.ProductAddDetail;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n pid: string;\n}\nexport default function UpdateProduct({\n pid,\n onConfirm,\n onBack,\n onUnauthorized,\n onNotFound,\n onLoadError,\n}: Props): VNode {\n const { updateProduct } = useProductAPI();\n const result = useProductDetails(pid);\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n {\n return updateProduct(pid, data)\n .then(onConfirm)\n .catch((error) => {\n setNotif({\n message: i18n.str`could not create product`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook, useSWRConfig } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useReservesAPI(): ReserveMutateAPI {\n const mutateAll = useMatchMutate();\n const { mutate } = useSWRConfig();\n const { request } = useBackendInstanceRequest();\n\n const createReserve = async (\n data: MerchantBackend.Tips.ReserveCreateRequest,\n ): Promise<\n HttpResponseOk\n > => {\n const res = await request(\n `/private/reserves`,\n {\n method: \"POST\",\n data,\n },\n );\n\n //evict reserve list query\n await mutateAll(/.*private\\/reserves.*/);\n\n return res;\n };\n\n const authorizeTipReserve = async (\n pub: string,\n data: MerchantBackend.Tips.TipCreateRequest,\n ): Promise> => {\n const res = await request(\n `/private/reserves/${pub}/authorize-tip`,\n {\n method: \"POST\",\n data,\n },\n );\n\n //evict reserve details query\n await mutate([`/private/reserves/${pub}`]);\n\n return res;\n };\n\n const authorizeTip = async (\n data: MerchantBackend.Tips.TipCreateRequest,\n ): Promise> => {\n const res = await request(\n `/private/tips`,\n {\n method: \"POST\",\n data,\n },\n );\n\n //evict all details query\n await mutateAll(/.*private\\/reserves\\/.*/);\n\n return res;\n };\n\n const deleteReserve = async (\n pub: string,\n ): Promise> => {\n const res = await request(`/private/reserves/${pub}`, {\n method: \"DELETE\",\n });\n\n //evict reserve list query\n await mutateAll(/.*private\\/reserves.*/);\n\n return res;\n };\n\n return { createReserve, authorizeTip, authorizeTipReserve, deleteReserve };\n}\n\nexport interface ReserveMutateAPI {\n createReserve: (\n data: MerchantBackend.Tips.ReserveCreateRequest,\n ) => Promise>;\n authorizeTipReserve: (\n id: string,\n data: MerchantBackend.Tips.TipCreateRequest,\n ) => Promise>;\n authorizeTip: (\n data: MerchantBackend.Tips.TipCreateRequest,\n ) => Promise>;\n deleteReserve: (\n id: string,\n ) => Promise>;\n}\n\nexport function useInstanceReserves(): HttpResponse<\n MerchantBackend.Tips.TippingReserveStatus,\n MerchantBackend.ErrorDetail\n> {\n const { fetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/reserves`], fetcher);\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n\nexport function useReserveDetails(\n reserveId: string,\n): HttpResponse<\n MerchantBackend.Tips.ReserveDetail,\n MerchantBackend.ErrorDetail\n> {\n const { reserveDetailFetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/reserves/${reserveId}`], reserveDetailFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n\nexport function useTipDetails(\n tipId: string,\n): HttpResponse {\n const { tipsDetailFetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/tips/${tipId}`], tipsDetailFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { h, VNode } from \"preact\";\nimport { useEffect, useRef } from \"preact/hooks\";\nimport qrcode from \"qrcode-generator\";\n\nexport function QR({ text }: { text: string }): VNode {\n const divRef = useRef(null);\n useEffect(() => {\n const qr = qrcode(0, \"L\");\n qr.addData(text);\n qr.make();\n if (divRef.current) {\n divRef.current.innerHTML = qr.createSvgTag({\n scalable: true,\n });\n }\n });\n\n return (\n \n \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { parsePaytoUri, stringifyPaytoUri } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { QR } from \"../../../../components/exception/QR.js\";\nimport { CreatedSuccessfully as Template } from \"../../../../components/notifications/CreatedSuccessfully.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = {\n request: MerchantBackend.Tips.ReserveCreateRequest;\n response: MerchantBackend.Tips.ReserveCreateConfirmation;\n};\n\ninterface Props {\n entity: Entity;\n onConfirm: () => void;\n onCreateAnother?: () => void;\n}\n\nexport function CreatedSuccessfully({\n entity,\n onConfirm,\n onCreateAnother,\n}: Props): VNode {\n const p = parsePaytoUri(entity.response.payto_uri);\n if (p) {\n p.params[\"message\"] = entity.response.reserve_pub;\n p.params[\"amount\"] = entity.request.initial_balance;\n }\n\n const link = !p ? entity.response.payto_uri : stringifyPaytoUri(p);\n const { i18n } = useTranslationContext();\n return (\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { StateUpdater, useEffect, useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n PAYTO_WIRE_METHOD_LOOKUP,\n URL_REGEX,\n} from \"../../../../utils/constants.js\";\n\ntype Entity = MerchantBackend.Tips.ReserveCreateRequest;\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nenum Steps {\n EXCHANGE,\n WIRE_METHOD,\n}\n\ninterface ViewProps {\n step: Steps;\n setCurrentStep: (s: Steps) => void;\n reserve: Partial;\n onBack?: () => void;\n submitForm: () => Promise;\n setReserve: StateUpdater>;\n}\nfunction ViewStep({\n step,\n setCurrentStep,\n reserve,\n onBack,\n submitForm,\n setReserve,\n}: ViewProps): VNode {\n const { i18n } = useTranslationContext();\n const [wireMethods, setWireMethods] = useState>([]);\n const [exchangeQueryError, setExchangeQueryError] = useState<\n string | undefined\n >(undefined);\n\n useEffect(() => {\n setExchangeQueryError(undefined);\n }, [reserve.exchange_url]);\n\n switch (step) {\n case Steps.EXCHANGE: {\n const errors: FormErrors = {\n initial_balance: !reserve.initial_balance\n ? \"cannot be empty\"\n : !(parseInt(reserve.initial_balance.split(\":\")[1], 10) > 0)\n ? i18n.str`it should be greater than 0`\n : undefined,\n exchange_url: !reserve.exchange_url\n ? i18n.str`cannot be empty`\n : !URL_REGEX.test(reserve.exchange_url)\n ? i18n.str`must be a valid URL`\n : !exchangeQueryError\n ? undefined\n : exchangeQueryError,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n return (\n \n \n object={reserve}\n errors={errors}\n valueHandler={setReserve}\n >\n \n name=\"initial_balance\"\n label={i18n.str`Initial balance`}\n tooltip={i18n.str`balance prior to deposit`}\n />\n \n name=\"exchange_url\"\n label={i18n.str`Exchange URL`}\n tooltip={i18n.str`URL of exchange`}\n />\n \n\n
    \n {onBack && (\n \n )}\n {\n return fetch(`${reserve.exchange_url}wire`)\n .then((r) => r.json())\n .then((r) => {\n const wireMethods = r.accounts.map((a: any) => {\n const match = PAYTO_WIRE_METHOD_LOOKUP.exec(a.payto_uri);\n return (match && match[1]) || \"\";\n });\n setWireMethods(wireMethods);\n setCurrentStep(Steps.WIRE_METHOD);\n return;\n })\n .catch((r: any) => {\n setExchangeQueryError(r.message);\n });\n }}\n data-tooltip={\n hasErrors\n ? i18n.str`Need to complete marked fields`\n : \"confirm operation\"\n }\n disabled={hasErrors}\n >\n Next\n \n
    \n
    \n );\n }\n\n case Steps.WIRE_METHOD: {\n const errors: FormErrors = {\n wire_method: !reserve.wire_method\n ? i18n.str`cannot be empty`\n : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n return (\n \n \n object={reserve}\n errors={errors}\n valueHandler={setReserve}\n >\n \n name=\"initial_balance\"\n label={i18n.str`Initial balance`}\n tooltip={i18n.str`balance prior to deposit`}\n readonly\n />\n \n name=\"exchange_url\"\n label={i18n.str`Exchange URL`}\n tooltip={i18n.str`URL of exchange`}\n readonly\n />\n \n name=\"wire_method\"\n label={i18n.str`Wire method`}\n tooltip={i18n.str`method to use for wire transfer`}\n values={wireMethods}\n placeholder={i18n.str`Select one wire method`}\n />\n \n
    \n {onBack && (\n setCurrentStep(Steps.EXCHANGE)}\n >\n Back\n \n )}\n \n Confirm\n \n
    \n
    \n );\n }\n }\n}\n\nexport function CreatePage({ onCreate, onBack }: Props): VNode {\n const [reserve, setReserve] = useState>({});\n\n const submitForm = () => {\n return onCreate(reserve as Entity);\n };\n\n const [currentStep, setCurrentStep] = useState(Steps.EXCHANGE);\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useReservesAPI } from \"../../../../hooks/reserves.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatedSuccessfully } from \"./CreatedSuccessfully.js\";\nimport { CreatePage } from \"./CreatePage.js\";\ninterface Props {\n onBack: () => void;\n onConfirm: () => void;\n}\nexport default function CreateReserve({ onBack, onConfirm }: Props): VNode {\n const { createReserve } = useReservesAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n const [createdOk, setCreatedOk] = useState<\n | {\n request: MerchantBackend.Tips.ReserveCreateRequest;\n response: MerchantBackend.Tips.ReserveCreateConfirmation;\n }\n | undefined\n >(undefined);\n\n if (createdOk) {\n return ;\n }\n\n return (\n \n \n {\n return createReserve(request)\n .then((r) => setCreatedOk({ request, response: r.data }))\n .catch((error) => {\n setNotif({\n message: i18n.str`could not create reserve`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Tips.TipDetails;\n\ninterface Props {\n id: string;\n entity: Entity;\n amount: string;\n}\n\nexport function TipInfo({ id, amount, entity }: Props): VNode {\n const { url } = useBackendContext();\n const tipHost = url.replace(/.*:\\/\\//, \"\"); // remove protocol part\n const proto = url.startsWith(\"http://\") ? \"taler+http\" : \"taler\";\n const tipURL = `${proto}://tip/${tipHost}/${id}`;\n return (\n \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n {tipURL}\n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n Amounts,\n parsePaytoUri,\n stringifyPaytoUri,\n} from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { QR } from \"../../../../components/exception/QR.js\";\nimport { FormProvider } from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDate } from \"../../../../components/form/InputDate.js\";\nimport { TextField } from \"../../../../components/form/TextField.js\";\nimport { SimpleModal } from \"../../../../components/modal/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useTipDetails } from \"../../../../hooks/reserves.js\";\nimport { TipInfo } from \"./TipInfo.js\";\n\ntype Entity = MerchantBackend.Tips.ReserveDetail;\ntype CT = MerchantBackend.ContractTerms;\n\ninterface Props {\n onBack: () => void;\n selected: Entity;\n id: string;\n}\n\nexport function DetailPage({ id, selected, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const didExchangeAckTransfer = Amounts.isNonZero(\n Amounts.parseOrThrow(selected.exchange_initial_amount),\n );\n const p = parsePaytoUri(selected.payto_uri);\n if (p) {\n p.params[\"message\"] = id;\n p.params[\"amount\"] = selected.merchant_initial_amount;\n }\n\n const link = !p ? selected.payto_uri : stringifyPaytoUri(p);\n\n return (\n
    \n
    \n
    \n
    \n \n \n name=\"creation_time\"\n label={i18n.str`Created at`}\n readonly\n />\n \n name=\"expiration_time\"\n label={i18n.str`Valid until`}\n readonly\n />\n \n name=\"merchant_initial_amount\"\n label={i18n.str`Created balance`}\n readonly\n />\n \n name=\"exchange_url\"\n label={i18n.str`Exchange URL`}\n readonly\n >\n \n {selected.exchange_url}\n \n \n\n {didExchangeAckTransfer && (\n \n \n name=\"exchange_initial_amount\"\n label={i18n.str`Exchange balance`}\n readonly\n />\n \n name=\"pickup_amount\"\n label={i18n.str`Picked up`}\n readonly\n />\n \n name=\"committed_amount\"\n label={i18n.str`Committed`}\n readonly\n />\n \n )}\n \n name=\"payto_uri\"\n label={i18n.str`Account address`}\n readonly\n />\n \n \n\n {didExchangeAckTransfer ? (\n \n
    \n
    \n

    \n \n \n \n Tips\n

    \n
    \n
    \n
    \n
    \n {selected.tips && selected.tips.length > 0 ? (\n \n ) : (\n \n )}\n \n \n \n \n \n ) : (\n \n

    \n \n To complete the setup of the reserve, you must now initiate a\n wire transfer using the given wire transfer subject and\n crediting the specified amount to the indicated account of the\n exchange.\n \n

    \n

    \n \n If your system supports RFC 8905, you can do this by opening\n this URI:\n \n

    \n
    \n                \n                  {link}\n                \n              
    \n \n
    \n )}\n\n
    \n \n
    \n \n \n
    \n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n No tips has been authorized from this reserve\n \n

    \n
    \n );\n}\n\ninterface TableProps {\n tips: MerchantBackend.Tips.TipStatusEntry[];\n}\n\nfunction Table({ tips }: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n
    \n \n \n \n \n \n \n \n \n \n {tips.map((t, i) => {\n return ;\n })}\n \n
    \n Authorized\n \n Picked up\n \n Reason\n \n Expiration\n
    \n
    \n );\n}\n\nfunction TipRow({\n id,\n entry,\n}: {\n id: string;\n entry: MerchantBackend.Tips.TipStatusEntry;\n}) {\n const [selected, setSelected] = useState(false);\n const result = useTipDetails(id);\n if (result.loading) {\n return (\n \n ...\n ...\n ...\n ...\n \n );\n }\n if (!result.ok) {\n return (\n \n ... {/* authorized */}\n {entry.total_amount}\n {entry.reason}\n ... {/* expired */}\n \n );\n }\n const info = result.data;\n function onSelect() {\n setSelected(true);\n }\n return (\n \n {selected && (\n setSelected(false)}\n >\n \n \n )}\n \n {info.total_authorized}\n {info.total_picked_up}\n {info.reason}\n \n {info.expiration.t_s === \"never\"\n ? \"never\"\n : format(info.expiration.t_s * 1000, \"yyyy/MM/dd HH:mm:ss\")}\n \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { HttpError } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useReserveDetails } from \"../../../../hooks/reserves.js\";\nimport { DetailPage } from \"./DetailPage.js\";\n\ninterface Props {\n rid: string;\n\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onDelete: () => void;\n onBack: () => void;\n}\nexport default function DetailReserve({\n rid,\n onUnauthorized,\n onLoadError,\n onNotFound,\n onBack,\n onDelete,\n}: Props): VNode {\n const result = useReserveDetails(rid);\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n return (\n \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { CreatedSuccessfully as Template } from \"../../../../components/notifications/CreatedSuccessfully.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Tips.TipCreateConfirmation;\n\ninterface Props {\n entity: Entity;\n request: MerchantBackend.Tips.TipCreateRequest;\n onConfirm: () => void;\n onCreateAnother?: () => void;\n}\n\nexport function CreatedSuccessfully({\n request,\n entity,\n onConfirm,\n onCreateAnother,\n}: Props): VNode {\n return (\n \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport * as yup from \"yup\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport {\n ConfirmModal,\n ContinueModal,\n} from \"../../../../components/modal/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { AuthorizeTipSchema } from \"../../../../schemas/index.js\";\nimport { CreatedSuccessfully } from \"./CreatedSuccessfully.js\";\n\ninterface AuthorizeTipModalProps {\n onCancel: () => void;\n onConfirm: (value: MerchantBackend.Tips.TipCreateRequest) => void;\n tipAuthorized?: {\n response: MerchantBackend.Tips.TipCreateConfirmation;\n request: MerchantBackend.Tips.TipCreateRequest;\n };\n}\n\nexport function AuthorizeTipModal({\n onCancel,\n onConfirm,\n tipAuthorized,\n}: AuthorizeTipModalProps): VNode {\n // const result = useOrderDetails(id)\n type State = MerchantBackend.Tips.TipCreateRequest;\n const [form, setValue] = useState>({});\n const { i18n } = useTranslationContext();\n\n // const [errors, setErrors] = useState>({})\n let errors: FormErrors = {};\n try {\n AuthorizeTipSchema.validateSync(form, { abortEarly: false });\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n const yupErrors = err.inner as any[];\n errors = yupErrors.reduce(\n (prev, cur) =>\n !cur.path ? prev : { ...prev, [cur.path]: cur.message },\n {},\n );\n }\n }\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const validateAndConfirm = () => {\n onConfirm(form as State);\n };\n if (tipAuthorized) {\n return (\n \n \n \n );\n }\n\n return (\n \n \n errors={errors}\n object={form}\n valueHandler={setValue}\n >\n \n name=\"amount\"\n label={i18n.str`Amount`}\n tooltip={i18n.str`amount of tip`}\n />\n \n name=\"justification\"\n label={i18n.str`Justification`}\n inputType=\"multiline\"\n tooltip={i18n.str`reason for the tip`}\n />\n \n name=\"next_url\"\n label={i18n.str`URL after tip`}\n tooltip={i18n.str`URL to visit after tip payment`}\n />\n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Tips.ReserveStatusEntry & WithId;\n\ninterface Props {\n instances: Entity[];\n onNewTip: (id: Entity) => void;\n onSelect: (id: Entity) => void;\n onDelete: (id: Entity) => void;\n onCreate: () => void;\n}\n\nexport function CardTable({\n instances,\n onCreate,\n onSelect,\n onNewTip,\n onDelete,\n}: Props): VNode {\n const [withoutFunds, withFunds] = instances.reduce((prev, current) => {\n const amount = current.exchange_initial_amount;\n if (amount.endsWith(\":0\")) {\n prev[0] = prev[0].concat(current);\n } else {\n prev[1] = prev[1].concat(current);\n }\n return prev;\n }, new Array>([], []));\n\n const { i18n } = useTranslationContext();\n\n return (\n \n {withoutFunds.length > 0 && (\n
    \n
    \n

    \n \n \n \n Reserves not yet funded\n

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n )}\n\n
    \n
    \n

    \n \n \n \n Reserves ready\n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {withFunds.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n instances: Entity[];\n onNewTip: (id: Entity) => void;\n onDelete: (id: Entity) => void;\n onSelect: (id: Entity) => void;\n}\n\nfunction Table({ instances, onNewTip, onSelect, onDelete }: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.creation_time.t_s === \"never\"\n ? \"never\"\n : format(i.creation_time.t_s * 1000, \"yyyy/MM/dd HH:mm:ss\")}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.expiration_time.t_s === \"never\"\n ? \"never\"\n : format(\n i.expiration_time.t_s * 1000,\n \"yyyy/MM/dd HH:mm:ss\",\n )}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.exchange_initial_amount}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.pickup_amount}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.committed_amount}\n \n \n \n );\n })}\n \n
    \n Created at\n \n Expires at\n \n Initial\n \n Picked up\n \n Committed\n \n
    \n
    \n onDelete(i)}\n >\n Delete\n \n onNewTip(i)}\n >\n New Tip\n \n
    \n
    \n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no ready reserves yet, add more pressing the + sign or fund\n them\n \n

    \n
    \n );\n}\n\nfunction TableWithoutFund({\n instances,\n onSelect,\n onDelete,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.creation_time.t_s === \"never\"\n ? \"never\"\n : format(i.creation_time.t_s * 1000, \"yyyy/MM/dd HH:mm:ss\")}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.expiration_time.t_s === \"never\"\n ? \"never\"\n : format(\n i.expiration_time.t_s * 1000,\n \"yyyy/MM/dd HH:mm:ss\",\n )}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.merchant_initial_amount}\n \n \n \n );\n })}\n \n
    \n Created at\n \n Expires at\n \n Expected Balance\n \n
    \n
    \n onDelete(i)}\n >\n Delete\n \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useInstanceReserves,\n useReservesAPI,\n} from \"../../../../hooks/reserves.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { AuthorizeTipModal } from \"./AutorizeTipModal.js\";\nimport { CardTable } from \"./Table.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n onSelect: (id: string) => void;\n onNotFound: () => VNode;\n onCreate: () => void;\n}\n\ninterface TipConfirmation {\n response: MerchantBackend.Tips.TipCreateConfirmation;\n request: MerchantBackend.Tips.TipCreateRequest;\n}\n\nexport default function ListTips({\n onUnauthorized,\n onLoadError,\n onNotFound,\n onSelect,\n onCreate,\n}: Props): VNode {\n const result = useInstanceReserves();\n const { deleteReserve, authorizeTipReserve } = useReservesAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n const [reserveForTip, setReserveForTip] = useState(\n undefined,\n );\n const [tipAuthorized, setTipAuthorized] = useState<\n TipConfirmation | undefined\n >(undefined);\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n
    \n \n\n {reserveForTip && (\n {\n setReserveForTip(undefined);\n setTipAuthorized(undefined);\n }}\n tipAuthorized={tipAuthorized}\n onConfirm={async (request) => {\n try {\n const response = await authorizeTipReserve(\n reserveForTip,\n request,\n );\n setTipAuthorized({\n request,\n response: response.data,\n });\n } catch (error) {\n setNotif({\n message: i18n.str`could not create the tip`,\n type: \"ERROR\",\n description: error instanceof Error ? error.message : undefined,\n });\n setReserveForTip(undefined);\n }\n }}\n />\n )}\n\n r.active)\n .map((o) => ({ ...o, id: o.reserve_pub }))}\n onCreate={onCreate}\n onDelete={(reserve) => deleteReserve(reserve.reserve_pub)}\n onSelect={(reserve) => onSelect(reserve.id)}\n onNewTip={(reserve) => setReserveForTip(reserve.id)}\n />\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n HttpResponsePaginated,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { MAX_RESULT_SIZE, PAGE_SIZE } from \"../utils/constants.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useTemplateAPI(): TemplateAPI {\n const mutateAll = useMatchMutate();\n const { request } = useBackendInstanceRequest();\n\n const createTemplate = async (\n data: MerchantBackend.Template.TemplateAddDetails,\n ): Promise> => {\n const res = await request(`/private/templates`, {\n method: \"POST\",\n data,\n });\n await mutateAll(/.*private\\/templates.*/);\n return res;\n };\n\n const updateTemplate = async (\n templateId: string,\n data: MerchantBackend.Template.TemplatePatchDetails,\n ): Promise> => {\n const res = await request(`/private/templates/${templateId}`, {\n method: \"PATCH\",\n data,\n });\n await mutateAll(/.*private\\/templates.*/);\n return res;\n };\n\n const deleteTemplate = async (\n templateId: string,\n ): Promise> => {\n const res = await request(`/private/templates/${templateId}`, {\n method: \"DELETE\",\n });\n await mutateAll(/.*private\\/templates.*/);\n return res;\n };\n\n const createOrderFromTemplate = async (\n templateId: string,\n data: MerchantBackend.Template.UsingTemplateDetails,\n ): Promise<\n HttpResponseOk\n > => {\n const res = await request(\n `/templates/${templateId}`,\n {\n method: \"POST\",\n data,\n },\n );\n await mutateAll(/.*private\\/templates.*/);\n return res;\n };\n\n return {\n createTemplate,\n updateTemplate,\n deleteTemplate,\n createOrderFromTemplate,\n };\n}\n\nexport interface TemplateAPI {\n createTemplate: (\n data: MerchantBackend.Template.TemplateAddDetails,\n ) => Promise>;\n updateTemplate: (\n id: string,\n data: MerchantBackend.Template.TemplatePatchDetails,\n ) => Promise>;\n deleteTemplate: (id: string) => Promise>;\n createOrderFromTemplate: (\n id: string,\n data: MerchantBackend.Template.UsingTemplateDetails,\n ) => Promise>;\n}\n\nexport interface InstanceTemplateFilter {\n //FIXME: add filter to the template list\n position?: string;\n}\n\nexport function useInstanceTemplates(\n args?: InstanceTemplateFilter,\n updatePosition?: (id: string) => void,\n): HttpResponsePaginated<\n MerchantBackend.Template.TemplateSummaryResponse,\n MerchantBackend.ErrorDetail\n> {\n const { templateFetcher } = useBackendInstanceRequest();\n\n // const [pageBefore, setPageBefore] = useState(1);\n const [pageAfter, setPageAfter] = useState(1);\n\n const totalAfter = pageAfter * PAGE_SIZE;\n // const totalBefore = args?.position !== undefined ? pageBefore * PAGE_SIZE : 0;\n\n /**\n * FIXME: this can be cleaned up a little\n *\n * the logic of double query should be inside the orderFetch so from the hook perspective and cache\n * is just one query and one error status\n */\n // const {\n // data: beforeData,\n // error: beforeError,\n // isValidating: loadingBefore,\n // } = useSWR, HttpError>(\n // [\n // `/private/templates`,\n // token,\n // url,\n // args?.position,\n // totalBefore,\n // ],\n // templateFetcher,\n // );\n const {\n data: afterData,\n error: afterError,\n isValidating: loadingAfter,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/templates`, args?.position, -totalAfter], templateFetcher);\n\n //this will save last result\n // const [lastBefore, setLastBefore] = useState<\n // HttpResponse\n // >({ loading: true });\n const [lastAfter, setLastAfter] = useState<\n HttpResponse<\n MerchantBackend.Template.TemplateSummaryResponse,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n useEffect(() => {\n if (afterData) setLastAfter(afterData);\n // if (beforeData) setLastBefore(beforeData);\n }, [afterData /*, beforeData*/]);\n\n // if (beforeError) return beforeError;\n if (afterError) return afterError.info;\n\n // if the query returns less that we ask, then we have reach the end or beginning\n const isReachingEnd =\n afterData && afterData.data.templates.length < totalAfter;\n const isReachingStart = false;\n // args?.position === undefined\n // ||\n // (beforeData && beforeData.data.templates.length < totalBefore);\n\n const pagination = {\n isReachingEnd,\n isReachingStart,\n loadMore: () => {\n if (!afterData || isReachingEnd) return;\n if (afterData.data.templates.length < MAX_RESULT_SIZE) {\n setPageAfter(pageAfter + 1);\n } else {\n const from = `${\n afterData.data.templates[afterData.data.templates.length - 1]\n .template_id\n }`;\n if (from && updatePosition) updatePosition(from);\n }\n },\n loadMorePrev: () => {\n // if (!beforeData || isReachingStart) return;\n // if (beforeData.data.templates.length < MAX_RESULT_SIZE) {\n // setPageBefore(pageBefore + 1);\n // } else if (beforeData) {\n // const from = `${beforeData.data.templates[beforeData.data.templates.length - 1]\n // .template_id\n // }`;\n // if (from && updatePosition) updatePosition(from);\n // }\n },\n };\n\n const templates = !afterData ? [] : (afterData || lastAfter).data.templates;\n // const templates =\n // !beforeData || !afterData\n // ? []\n // : (beforeData || lastBefore).data.templates\n // .slice()\n // .reverse()\n // .concat((afterData || lastAfter).data.templates);\n if (loadingAfter /* || loadingBefore */)\n return { loading: true, data: { templates } };\n if (/*beforeData &&*/ afterData) {\n return { ok: true, data: { templates }, ...pagination };\n }\n return { loading: true };\n}\n\nexport function useTemplateDetails(\n templateId: string,\n): HttpResponse<\n MerchantBackend.Template.TemplateDetails,\n MerchantBackend.ErrorDetail\n> {\n const { templateFetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/templates/${templateId}`], templateFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) {\n const d = structuredClone(data);\n d.data.pos_algorithm = 1;\n return d;\n }\n if (error) return error.info;\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nconst encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\";\n// base32 RFC 3548\nfunction encodeBase32(data: ArrayBuffer) {\n const dataBytes = new Uint8Array(data);\n let sb = \"\";\n const size = data.byteLength;\n let bitBuf = 0;\n let numBits = 0;\n let pos = 0;\n while (pos < size || numBits > 0) {\n if (pos < size && numBits < 5) {\n const d = dataBytes[pos++];\n bitBuf = (bitBuf << 8) | d;\n numBits += 8;\n }\n if (numBits < 5) {\n // zero-padding\n bitBuf = bitBuf << (5 - numBits);\n numBits = 5;\n }\n const v = (bitBuf >>> (numBits - 5)) & 31;\n sb += encTable[v];\n numBits -= 5;\n }\n return sb;\n}\n\nexport function randomBase32Key(): string {\n var buf = new Uint8Array(20);\n window.crypto.getRandomValues(buf);\n return encodeBase32(buf);\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDuration } from \"../../../../components/form/InputDuration.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { InputWithAddon } from \"../../../../components/form/InputWithAddon.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { randomBase32Key } from \"../../../../utils/crypto.js\";\nimport { undefinedIfEmpty } from \"../../../../utils/table.js\";\n\ntype Entity = MerchantBackend.Template.TemplateAddDetails;\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nconst algorithms = [\"0\", \"1\", \"2\"];\nconst algorithmsNames = [\n \"off\",\n \"30s 8d TOTP-SHA1 without amount\",\n \"30s 8d eTOTP-SHA1 with amount\",\n];\n\nexport function CreatePage({ onCreate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const backend = useBackendContext();\n\n const [state, setState] = useState>({\n template_contract: {\n minimum_age: 0,\n pay_duration: {\n d_us: 1000 * 1000 * 60 * 30, //30 min\n },\n },\n });\n\n const errors: FormErrors = {\n template_id: !state.template_id ? i18n.str`should not be empty` : undefined,\n template_description: !state.template_description\n ? i18n.str`should not be empty`\n : undefined,\n template_contract: !state.template_contract\n ? undefined\n : undefinedIfEmpty({\n minimum_age:\n state.template_contract.minimum_age < 0\n ? i18n.str`should be greater that 0`\n : undefined,\n pay_duration: !state.template_contract.pay_duration\n ? i18n.str`can't be empty`\n : state.template_contract.pay_duration.d_us === \"forever\"\n ? undefined\n : state.template_contract.pay_duration.d_us < 1000 * 1000 //less than one second\n ? i18n.str`to short`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onCreate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n \n name=\"template_id\"\n addonBefore={`${backend.url}/instances/templates/`}\n label={i18n.str`Identifier`}\n tooltip={i18n.str`Name of the template in URLs.`}\n />\n \n name=\"template_description\"\n label={i18n.str`Description`}\n help=\"\"\n tooltip={i18n.str`Describe what this template stands for`}\n />\n \n \n \n \n \n name=\"pos_algorithm\"\n label={i18n.str`Veritifaction algorithm`}\n tooltip={i18n.str`Algorithm to use to verify transaction in offline mode`}\n values={algorithms}\n toStr={(v) => algorithmsNames[v]}\n convert={(v) => Number(v)}\n />\n {state.pos_algorithm && state.pos_algorithm > 0 ? (\n \n name=\"pos_key\"\n label={i18n.str`Point-of-sale key`}\n help=\"\"\n tooltip={i18n.str`Useful to validate the purchase`}\n side={\n \n {\n const pos_key = randomBase32Key();\n setState((s) => ({ ...s, pos_key }));\n }}\n >\n random\n \n \n }\n />\n ) : undefined}\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useTemplateAPI } from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = MerchantBackend.Transfers.TransferInformation;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n}\n\nexport default function CreateTransfer({ onConfirm, onBack }: Props): VNode {\n const { createTemplate } = useTemplateAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n return (\n <>\n \n {\n return createTemplate(request)\n .then(() => onConfirm())\n .catch((error) => {\n setNotif({\n message: i18n.str`could not inform template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Template.UsingTemplateDetails;\n\ninterface Props {\n id: string;\n template: MerchantBackend.Template.TemplateDetails;\n onCreateOrder: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nexport function UsePage({ id, template, onCreateOrder, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n\n const [state, setState] = useState>({\n amount: template.template_contract.amount,\n summary: template.template_contract.summary,\n });\n\n const errors: FormErrors = {\n amount:\n !template.template_contract.amount && !state.amount\n ? i18n.str`Amount is required`\n : undefined,\n summary:\n !template.template_contract.summary && !state.summary\n ? i18n.str`Order summary is required`\n : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n if (template.template_contract.amount) {\n delete state.amount;\n }\n if (template.template_contract.summary) {\n delete state.summary;\n }\n return onCreateOrder(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n New order for template:{\" \"}\n {id}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n name=\"amount\"\n label={i18n.str`Amount`}\n readonly={!!template.template_contract.amount}\n tooltip={i18n.str`Amount of the order`}\n />\n \n name=\"summary\"\n inputType=\"multiline\"\n label={i18n.str`Order summary`}\n readonly={!!template.template_contract.summary}\n tooltip={i18n.str`Title of the order to be shown to the customer`}\n />\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useTemplateAPI,\n useTemplateDetails,\n} from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { UsePage } from \"./UsePage.js\";\n\nexport type Entity = MerchantBackend.Transfers.TransferInformation;\ninterface Props {\n onBack?: () => void;\n onOrderCreated: (id: string) => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n tid: string;\n}\n\nexport default function TemplateUsePage({\n tid,\n onOrderCreated,\n onBack,\n onLoadError,\n onNotFound,\n onUnauthorized,\n}: Props): VNode {\n const { createOrderFromTemplate } = useTemplateAPI();\n const result = useTemplateDetails(tid);\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n <>\n \n {\n return createOrderFromTemplate(tid, request)\n .then((res) => onOrderCreated(res.data.order_id))\n .catch((error) => {\n setNotif({\n message: i18n.str`could not create order from template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { buildPayto, classifyTalerUri } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport { QR } from \"../../../../components/exception/QR.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { ConfirmModal } from \"../../../../components/modal/index.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { useConfigContext } from \"../../../../context/config.js\";\nimport { useInstanceContext } from \"../../../../context/instance.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Template.UsingTemplateDetails;\n\ninterface Props {\n template: MerchantBackend.Template.TemplateDetails;\n id: string;\n onBack?: () => void;\n}\n\nexport function QrPage({ template, id: templateId, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const { url: backendUrl } = useBackendContext();\n const { id: instanceId } = useInstanceContext();\n const config = useConfigContext();\n const [setupTOTP, setSetupTOTP] = useState(false);\n\n const [state, setState] = useState>({\n amount: template.template_contract.amount,\n summary: template.template_contract.summary,\n });\n\n const errors: FormErrors = {};\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const fixedAmount = !!template.template_contract.amount;\n const fixedSummary = !!template.template_contract.summary;\n\n const params = new URLSearchParams();\n if (!fixedAmount) {\n if (state.amount) {\n params.append(\"amount\", state.amount);\n } else {\n params.append(\"amount\", config.currency);\n }\n }\n if (!fixedSummary) {\n params.append(\"summary\", state.summary ?? \"\");\n }\n\n const paramsStr = fixedAmount && fixedSummary ? \"\" : \"?\" + params.toString();\n const merchantURL = new URL(backendUrl);\n\n const talerProto =\n merchantURL.protocol === \"http:\" ? \"taler+http:\" : \"taler:\";\n\n const payTemplateUri = `${talerProto}//pay-template/${merchantURL.hostname}/${templateId}${paramsStr}`;\n\n const issuer = encodeURIComponent(\n `${new URL(backendUrl).hostname}/${instanceId}`,\n );\n const oauthUri = !template.pos_algorithm\n ? undefined\n : template.pos_algorithm === 1\n ? `otpauth://totp/${issuer}:${templateId}?secret=${template.pos_key}&issuer=${issuer}&algorithm=SHA1&digits=8&period=30`\n : template.pos_algorithm === 2\n ? `otpauth://totp/${issuer}:${templateId}?secret=${template.pos_key}&issuer=${issuer}&algorithm=SHA1&digits=8&period=30`\n : undefined;\n\n const keySlice = template.pos_key?.substring(0, 4);\n\n const oauthUriWithoutSecret = !template.pos_algorithm\n ? undefined\n : template.pos_algorithm === 1\n ? `otpauth://totp/${issuer}:${templateId}?secret=${keySlice}...&issuer=${issuer}&algorithm=SHA1&digits=8&period=30`\n : template.pos_algorithm === 2\n ? `otpauth://totp/${issuer}:${templateId}?secret=${keySlice}...&issuer=${issuer}&algorithm=SHA1&digits=8&period=30`\n : undefined;\n return (\n
    \n {oauthUri && (\n {\n setSetupTOTP(false);\n }}\n >\n

    Scan this qr code with your TOTP device

    \n \n
    \n            {oauthUriWithoutSecret}\n          
    \n \n )}\n
    \n
    \n
    \n
    \n \n \n name=\"amount\"\n label={i18n.str`Amount`}\n readonly={fixedAmount}\n tooltip={i18n.str`Amount of the order`}\n />\n \n name=\"summary\"\n inputType=\"multiline\"\n readonly={fixedSummary}\n label={i18n.str`Order summary`}\n tooltip={i18n.str`Title of the order to be shown to the customer`}\n />\n \n\n
    \n {onBack && (\n \n )}\n saveAsPDF(templateId)}\n >\n Print\n \n {oauthUri && (\n setSetupTOTP(true)}\n >\n Setup TOTP\n \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n          {payTemplateUri}\n        
    \n
    \n
    \n );\n}\n\nfunction saveAsPDF(name: string): void {\n const printWindow = window.open(\"\", \"\", \"height=400,width=800\");\n if (!printWindow) return;\n const divContents = document.getElementById(\"printThis\");\n if (!divContents) return;\n printWindow.document.write(\n `Order template for ${name} \");\n printWindow.document.close();\n printWindow.document.body.appendChild(divContents.cloneNode(true));\n printWindow.addEventListener(\"load\", () => {\n printWindow.print();\n printWindow.close();\n });\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useTemplateAPI,\n useTemplateDetails,\n} from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { QrPage } from \"./QrPage.js\";\n\nexport type Entity = MerchantBackend.Transfers.TransferInformation;\ninterface Props {\n onBack?: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n tid: string;\n}\n\nexport default function TemplateQrPage({\n tid,\n onBack,\n onLoadError,\n onNotFound,\n onUnauthorized,\n}: Props): VNode {\n const result = useTemplateDetails(tid);\n const [notif, setNotif] = useState(undefined);\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n <>\n \n \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Template.TemplateEntry;\n\ninterface Props {\n templates: Entity[];\n onDelete: (e: Entity) => void;\n onSelect: (e: Entity) => void;\n onNewOrder: (e: Entity) => void;\n onQR: (e: Entity) => void;\n onCreate: () => void;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nexport function CardTable({\n templates,\n onCreate,\n onDelete,\n onSelect,\n onQR,\n onNewOrder,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n

    \n \n \n \n Templates\n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {templates.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: Entity[];\n onDelete: (e: Entity) => void;\n onNewOrder: (e: Entity) => void;\n onQR: (e: Entity) => void;\n onSelect: (e: Entity) => void;\n rowSelectionHandler: StateUpdater;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nfunction toggleSelected(id: T): (prev: T[]) => T[] {\n return (prev: T[]): T[] =>\n prev.indexOf(id) == -1 ? [...prev, id] : prev.filter((e) => e != id);\n}\n\nfunction Table({\n instances,\n onLoadMoreAfter,\n onDelete,\n onNewOrder,\n onQR,\n onSelect,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n {onLoadMoreBefore && (\n \n load newer templates\n \n )}\n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.template_id}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.template_description}\n \n \n \n );\n })}\n \n
    \n ID\n \n Description\n \n
    \n
    \n onDelete(i)}\n >\n Delete\n \n onNewOrder(i)}\n >\n New order\n \n onQR(i)}\n >\n QR\n \n
    \n
    \n {onLoadMoreAfter && (\n \n load older templates\n \n )}\n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no templates yet, add more pressing the + sign\n \n

    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, VNode } from \"preact\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { CardTable } from \"./Table.js\";\n\nexport interface Props {\n templates: MerchantBackend.Template.TemplateEntry[];\n onLoadMoreBefore?: () => void;\n onLoadMoreAfter?: () => void;\n onCreate: () => void;\n onDelete: (e: MerchantBackend.Template.TemplateEntry) => void;\n onSelect: (e: MerchantBackend.Template.TemplateEntry) => void;\n onNewOrder: (e: MerchantBackend.Template.TemplateEntry) => void;\n onQR: (e: MerchantBackend.Template.TemplateEntry) => void;\n}\n\nexport function ListPage({\n templates,\n onCreate,\n onDelete,\n onSelect,\n onNewOrder,\n onQR,\n onLoadMoreBefore,\n onLoadMoreAfter,\n}: Props): VNode {\n const form = { payto_uri: \"\" };\n\n const { i18n } = useTranslationContext();\n return (\n
    \n ({\n ...o,\n id: String(o.template_id),\n }))}\n onQR={onQR}\n onCreate={onCreate}\n onDelete={onDelete}\n onSelect={onSelect}\n onNewOrder={onNewOrder}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreBefore={!onLoadMoreBefore}\n onLoadMoreAfter={onLoadMoreAfter}\n hasMoreAfter={!onLoadMoreAfter}\n />\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useInstanceTemplates,\n useTemplateAPI,\n} from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { ListPage } from \"./ListPage.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onCreate: () => void;\n onSelect: (id: string) => void;\n onNewOrder: (id: string) => void;\n onQR: (id: string) => void;\n}\n\nexport default function ListTemplates({\n onUnauthorized,\n onLoadError,\n onCreate,\n onQR,\n onSelect,\n onNewOrder,\n onNotFound,\n}: Props): VNode {\n const [position, setPosition] = useState(undefined);\n const { i18n } = useTranslationContext();\n const [notif, setNotif] = useState(undefined);\n const { deleteTemplate } = useTemplateAPI();\n const result = useInstanceTemplates({ position }, (id) => setPosition(id));\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n\n {\n onSelect(e.template_id);\n }}\n onNewOrder={(e) => {\n onNewOrder(e.template_id);\n }}\n onQR={(e) => {\n onQR(e.template_id);\n }}\n onDelete={(e: MerchantBackend.Template.TemplateEntry) =>\n deleteTemplate(e.template_id)\n .then(() =>\n setNotif({\n message: i18n.str`template delete successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not delete the template`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDuration } from \"../../../../components/form/InputDuration.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { InputWithAddon } from \"../../../../components/form/InputWithAddon.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport { randomBase32Key } from \"../../../../utils/crypto.js\";\nimport { undefinedIfEmpty } from \"../../../../utils/table.js\";\n\ntype Entity = MerchantBackend.Template.TemplatePatchDetails & WithId;\n\ninterface Props {\n onUpdate: (d: Entity) => Promise;\n onBack?: () => void;\n template: Entity;\n}\n\nconst algorithms = [\"0\", \"1\", \"2\"];\nconst algorithmsNames = [\n \"off\",\n \"30s 8d TOTP-SHA1 without amount\",\n \"30s 8d eTOTP-SHA1 with amount\",\n];\n\nexport function UpdatePage({ template, onUpdate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const backend = useBackendContext();\n\n const [showKey, setShowKey] = useState(false);\n const [state, setState] = useState>(template);\n\n const errors: FormErrors = {\n template_description: !state.template_description\n ? i18n.str`should not be empty`\n : undefined,\n template_contract: !state.template_contract\n ? undefined\n : undefinedIfEmpty({\n minimum_age:\n state.template_contract.minimum_age < 0\n ? i18n.str`should be greater that 0`\n : undefined,\n pay_duration: !state.template_contract.pay_duration\n ? i18n.str`can't be empty`\n : state.template_contract.pay_duration.d_us === \"forever\"\n ? undefined\n : state.template_contract.pay_duration.d_us < 1000 * 1000 // less than one second\n ? i18n.str`to short`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onUpdate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n {backend.url}/instances/template/{template.id}\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n name=\"id\"\n addonBefore={`templates/`}\n readonly\n label={i18n.str`Identifier`}\n tooltip={i18n.str`Name of the template in URLs.`}\n />\n\n \n name=\"template_description\"\n label={i18n.str`Description`}\n help=\"\"\n tooltip={i18n.str`Describe what this template stands for`}\n />\n \n \n \n \n \n name=\"pos_algorithm\"\n label={i18n.str`Veritifaction algorithm`}\n tooltip={i18n.str`Algorithm to use to verify transaction in offline mode`}\n values={algorithms}\n toStr={(v) => algorithmsNames[v]}\n convert={(v) => Number(v)}\n />\n {state.pos_algorithm && state.pos_algorithm > 0 ? (\n \n name=\"pos_key\"\n label={i18n.str`Point-of-sale key`}\n inputType={showKey ? \"text\" : \"password\"}\n help=\"\"\n expand\n tooltip={i18n.str`Useful to validate the purchase`}\n addonAfter={\n \n {showKey ? (\n \n ) : (\n \n )}\n \n }\n side={\n \n {\n const pos_key = randomBase32Key();\n setState((s) => ({ ...s, pos_key }));\n }}\n >\n random\n \n {\n setShowKey(!showKey);\n }}\n >\n {showKey ? (\n hide\n ) : (\n show\n )}\n \n \n }\n />\n ) : undefined}\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport {\n useTemplateAPI,\n useTemplateDetails,\n} from \"../../../../hooks/templates.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { UpdatePage } from \"./UpdatePage.js\";\n\nexport type Entity = MerchantBackend.Template.TemplatePatchDetails & WithId;\n\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n tid: string;\n}\nexport default function UpdateTemplate({\n tid,\n onConfirm,\n onBack,\n onUnauthorized,\n onNotFound,\n onLoadError,\n}: Props): VNode {\n const { updateTemplate } = useTemplateAPI();\n const result = useTemplateDetails(tid);\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n {\n return updateTemplate(tid, data)\n .then(onConfirm)\n .catch((error) => {\n setNotif({\n message: i18n.str`could not update template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n HttpResponsePaginated,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { MAX_RESULT_SIZE, PAGE_SIZE } from \"../utils/constants.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useWebhookAPI(): WebhookAPI {\n const mutateAll = useMatchMutate();\n const { request } = useBackendInstanceRequest();\n\n const createWebhook = async (\n data: MerchantBackend.Webhooks.WebhookAddDetails,\n ): Promise> => {\n const res = await request(`/private/webhooks`, {\n method: \"POST\",\n data,\n });\n await mutateAll(/.*private\\/webhooks.*/);\n return res;\n };\n\n const updateWebhook = async (\n webhookId: string,\n data: MerchantBackend.Webhooks.WebhookPatchDetails,\n ): Promise> => {\n const res = await request(`/private/webhooks/${webhookId}`, {\n method: \"PATCH\",\n data,\n });\n await mutateAll(/.*private\\/webhooks.*/);\n return res;\n };\n\n const deleteWebhook = async (\n webhookId: string,\n ): Promise> => {\n const res = await request(`/private/webhooks/${webhookId}`, {\n method: \"DELETE\",\n });\n await mutateAll(/.*private\\/webhooks.*/);\n return res;\n };\n\n return { createWebhook, updateWebhook, deleteWebhook };\n}\n\nexport interface WebhookAPI {\n createWebhook: (\n data: MerchantBackend.Webhooks.WebhookAddDetails,\n ) => Promise>;\n updateWebhook: (\n id: string,\n data: MerchantBackend.Webhooks.WebhookPatchDetails,\n ) => Promise>;\n deleteWebhook: (id: string) => Promise>;\n}\n\nexport interface InstanceWebhookFilter {\n //FIXME: add filter to the webhook list\n position?: string;\n}\n\nexport function useInstanceWebhooks(\n args?: InstanceWebhookFilter,\n updatePosition?: (id: string) => void,\n): HttpResponsePaginated<\n MerchantBackend.Webhooks.WebhookSummaryResponse,\n MerchantBackend.ErrorDetail\n> {\n const { webhookFetcher } = useBackendInstanceRequest();\n\n const [pageAfter, setPageAfter] = useState(1);\n\n const totalAfter = pageAfter * PAGE_SIZE;\n\n const {\n data: afterData,\n error: afterError,\n isValidating: loadingAfter,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/webhooks`, args?.position, -totalAfter], webhookFetcher);\n\n const [lastAfter, setLastAfter] = useState<\n HttpResponse<\n MerchantBackend.Webhooks.WebhookSummaryResponse,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n useEffect(() => {\n if (afterData) setLastAfter(afterData);\n }, [afterData]);\n\n if (afterError) return afterError.info;\n\n const isReachingEnd =\n afterData && afterData.data.webhooks.length < totalAfter;\n const isReachingStart = false;\n\n const pagination = {\n isReachingEnd,\n isReachingStart,\n loadMore: () => {\n if (!afterData || isReachingEnd) return;\n if (afterData.data.webhooks.length < MAX_RESULT_SIZE) {\n setPageAfter(pageAfter + 1);\n } else {\n const from = `${\n afterData.data.webhooks[afterData.data.webhooks.length - 1].webhook_id\n }`;\n if (from && updatePosition) updatePosition(from);\n }\n },\n loadMorePrev: () => {\n return;\n },\n };\n\n const webhooks = !afterData ? [] : (afterData || lastAfter).data.webhooks;\n\n if (loadingAfter) return { loading: true, data: { webhooks } };\n if (afterData) {\n return { ok: true, data: { webhooks }, ...pagination };\n }\n return { loading: true };\n}\n\nexport function useWebhookDetails(\n webhookId: string,\n): HttpResponse<\n MerchantBackend.Webhooks.WebhookDetails,\n MerchantBackend.ErrorDetail\n> {\n const { webhookFetcher } = useBackendInstanceRequest();\n\n const { data, error, isValidating } = useSWR<\n HttpResponseOk,\n RequestError\n >([`/private/webhooks/${webhookId}`], webhookFetcher, {\n refreshInterval: 0,\n refreshWhenHidden: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshWhenOffline: false,\n });\n\n if (isValidating) return { loading: true, data: data?.data };\n if (data) return data;\n if (error) return error.info;\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputDuration } from \"../../../../components/form/InputDuration.js\";\nimport { InputNumber } from \"../../../../components/form/InputNumber.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Webhooks.WebhookAddDetails;\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n}\n\nconst validMethod = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"HEAD\"];\n\nexport function CreatePage({ onCreate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n\n const [state, setState] = useState>({});\n\n const errors: FormErrors = {\n webhook_id: !state.webhook_id ? i18n.str`required` : undefined,\n event_type: !state.event_type ? i18n.str`required` : undefined,\n http_method: !state.http_method\n ? i18n.str`required`\n : !validMethod.includes(state.http_method)\n ? i18n.str`should be one of '${validMethod.join(\", \")}'`\n : undefined,\n url: !state.url ? i18n.str`required` : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onCreate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n \n name=\"webhook_id\"\n label={i18n.str`ID`}\n tooltip={i18n.str`Webhook ID to use`}\n />\n \n name=\"event_type\"\n label={i18n.str`Event`}\n tooltip={i18n.str`The event of the webhook: why the webhook is used`}\n />\n \n name=\"http_method\"\n label={i18n.str`Method`}\n tooltip={i18n.str`Method used by the webhook`}\n />\n \n name=\"url\"\n label={i18n.str`URL`}\n tooltip={i18n.str`URL of the webhook where the customer will be redirected`}\n />\n \n name=\"header_template\"\n label={i18n.str`Header`}\n inputType=\"multiline\"\n tooltip={i18n.str`Header template of the webhook`}\n />\n \n name=\"body_template\"\n inputType=\"multiline\"\n label={i18n.str`Body`}\n tooltip={i18n.str`Body template by the webhook`}\n />\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useWebhookAPI } from \"../../../../hooks/webhooks.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = MerchantBackend.Webhooks.WebhookAddDetails;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n}\n\nexport default function CreateWebhook({ onConfirm, onBack }: Props): VNode {\n const { createWebhook } = useWebhookAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n return (\n <>\n \n {\n return createWebhook(request)\n .then(() => onConfirm())\n .catch((error) => {\n setNotif({\n message: i18n.str`could not inform template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Webhooks.WebhookEntry;\n\ninterface Props {\n webhooks: Entity[];\n onDelete: (e: Entity) => void;\n onSelect: (e: Entity) => void;\n onCreate: () => void;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nexport function CardTable({\n webhooks,\n onCreate,\n onDelete,\n onSelect,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n

    \n \n \n \n Webhooks\n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {webhooks.length > 0 ? (\n {\n console.log(\"test\", d);\n }}\n rowSelection={rowSelection}\n rowSelectionHandler={rowSelectionHandler}\n onLoadMoreAfter={onLoadMoreAfter}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreAfter={hasMoreAfter}\n hasMoreBefore={hasMoreBefore}\n />\n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: Entity[];\n onDelete: (e: Entity) => void;\n onNewOrder: (e: Entity) => void;\n onSelect: (e: Entity) => void;\n rowSelectionHandler: StateUpdater;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nfunction toggleSelected(id: T): (prev: T[]) => T[] {\n return (prev: T[]): T[] =>\n prev.indexOf(id) == -1 ? [...prev, id] : prev.filter((e) => e != id);\n}\n\nfunction Table({\n instances,\n onLoadMoreAfter,\n onDelete,\n onNewOrder,\n onSelect,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n {onLoadMoreBefore && (\n \n load newer webhooks\n \n )}\n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.webhook_id}\n \n onSelect(i)}\n style={{ cursor: \"pointer\" }}\n >\n {i.event_type}\n \n \n \n );\n })}\n \n
    \n ID\n \n Event type\n \n
    \n
    \n onDelete(i)}\n >\n Delete\n \n {/* onNewOrder(i)}\n >\n Test\n */}\n
    \n
    \n {onLoadMoreAfter && (\n \n load older webhooks\n \n )}\n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no webhooks yet, add more pressing the + sign\n \n

    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, VNode } from \"preact\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { CardTable } from \"./Table.js\";\n\nexport interface Props {\n webhooks: MerchantBackend.Webhooks.WebhookEntry[];\n onLoadMoreBefore?: () => void;\n onLoadMoreAfter?: () => void;\n onCreate: () => void;\n onDelete: (e: MerchantBackend.Webhooks.WebhookEntry) => void;\n onSelect: (e: MerchantBackend.Webhooks.WebhookEntry) => void;\n}\n\nexport function ListPage({\n webhooks,\n onCreate,\n onDelete,\n onSelect,\n onLoadMoreBefore,\n onLoadMoreAfter,\n}: Props): VNode {\n const form = { payto_uri: \"\" };\n\n const { i18n } = useTranslationContext();\n return (\n
    \n ({\n ...o,\n id: String(o.webhook_id),\n }))}\n onCreate={onCreate}\n onDelete={onDelete}\n onSelect={onSelect}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreBefore={!onLoadMoreBefore}\n onLoadMoreAfter={onLoadMoreAfter}\n hasMoreAfter={!onLoadMoreAfter}\n />\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n useInstanceWebhooks,\n useWebhookAPI,\n} from \"../../../../hooks/webhooks.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { ListPage } from \"./ListPage.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onCreate: () => void;\n onSelect: (id: string) => void;\n}\n\nexport default function ListWebhooks({\n onUnauthorized,\n onLoadError,\n onCreate,\n onSelect,\n onNotFound,\n}: Props): VNode {\n const [position, setPosition] = useState(undefined);\n const { i18n } = useTranslationContext();\n const [notif, setNotif] = useState(undefined);\n const { deleteWebhook } = useWebhookAPI();\n const result = useInstanceWebhooks({ position }, (id) => setPosition(id));\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n\n {\n onSelect(e.webhook_id);\n }}\n onDelete={(e: MerchantBackend.Webhooks.WebhookEntry) =>\n deleteWebhook(e.webhook_id)\n .then(() =>\n setNotif({\n message: i18n.str`webhook delete successfully`,\n type: \"SUCCESS\",\n }),\n )\n .catch((error) =>\n setNotif({\n message: i18n.str`could not delete the webhook`,\n type: \"ERROR\",\n description: error.message,\n }),\n )\n }\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { useBackendContext } from \"../../../../context/backend.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Webhooks.WebhookPatchDetails & WithId;\n\ninterface Props {\n onUpdate: (d: Entity) => Promise;\n onBack?: () => void;\n webhook: Entity;\n}\nconst validMethod = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"HEAD\"];\n\nexport function UpdatePage({ webhook, onUpdate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n\n const [state, setState] = useState>(webhook);\n\n const errors: FormErrors = {\n event_type: !state.event_type ? i18n.str`required` : undefined,\n http_method: !state.http_method\n ? i18n.str`required`\n : !validMethod.includes(state.http_method)\n ? i18n.str`should be one of '${validMethod.join(\", \")}'`\n : undefined,\n url: !state.url ? i18n.str`required` : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onUpdate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Webhook: {webhook.id}\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n name=\"event_type\"\n label={i18n.str`Event`}\n tooltip={i18n.str`The event of the webhook: why the webhook is used`}\n />\n \n name=\"http_method\"\n label={i18n.str`Method`}\n tooltip={i18n.str`Method used by the webhook`}\n />\n \n name=\"url\"\n label={i18n.str`URL`}\n tooltip={i18n.str`URL of the webhook where the customer will be redirected`}\n />\n \n name=\"header_template\"\n label={i18n.str`Header`}\n inputType=\"multiline\"\n tooltip={i18n.str`Header template of the webhook`}\n />\n \n name=\"body_template\"\n inputType=\"multiline\"\n label={i18n.str`Body`}\n tooltip={i18n.str`Body template by the webhook`}\n />\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n HttpError,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\nimport {\n useWebhookAPI,\n useWebhookDetails,\n} from \"../../../../hooks/webhooks.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { UpdatePage } from \"./UpdatePage.js\";\n\nexport type Entity = MerchantBackend.Webhooks.WebhookPatchDetails & WithId;\n\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n tid: string;\n}\nexport default function UpdateWebhook({\n tid,\n onConfirm,\n onBack,\n onUnauthorized,\n onNotFound,\n onLoadError,\n}: Props): VNode {\n const { updateWebhook } = useWebhookAPI();\n const result = useWebhookDetails(tid);\n const [notif, setNotif] = useState(undefined);\n\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n {\n return updateWebhook(tid, data)\n .then(onConfirm)\n .catch((error) => {\n setNotif({\n message: i18n.str`could not update template`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpResponse,\n HttpResponseOk,\n HttpResponsePaginated,\n RequestError,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { MerchantBackend } from \"../declaration.js\";\nimport { MAX_RESULT_SIZE, PAGE_SIZE } from \"../utils/constants.js\";\nimport { useBackendInstanceRequest, useMatchMutate } from \"./backend.js\";\n\n// FIX default import https://github.com/microsoft/TypeScript/issues/49189\nimport _useSWR, { SWRHook } from \"swr\";\nconst useSWR = _useSWR as unknown as SWRHook;\n\nexport function useTransferAPI(): TransferAPI {\n const mutateAll = useMatchMutate();\n const { request } = useBackendInstanceRequest();\n\n const informTransfer = async (\n data: MerchantBackend.Transfers.TransferInformation,\n ): Promise<\n HttpResponseOk\n > => {\n const res =\n await request(\n `/private/transfers`,\n {\n method: \"POST\",\n data,\n },\n );\n\n await mutateAll(/.*private\\/transfers.*/);\n return res;\n };\n\n return { informTransfer };\n}\n\nexport interface TransferAPI {\n informTransfer: (\n data: MerchantBackend.Transfers.TransferInformation,\n ) => Promise<\n HttpResponseOk\n >;\n}\n\nexport interface InstanceTransferFilter {\n payto_uri?: string;\n verified?: \"yes\" | \"no\";\n position?: string;\n}\n\nexport function useInstanceTransfers(\n args?: InstanceTransferFilter,\n updatePosition?: (id: string) => void,\n): HttpResponsePaginated<\n MerchantBackend.Transfers.TransferList,\n MerchantBackend.ErrorDetail\n> {\n const { transferFetcher } = useBackendInstanceRequest();\n\n const [pageBefore, setPageBefore] = useState(1);\n const [pageAfter, setPageAfter] = useState(1);\n\n const totalAfter = pageAfter * PAGE_SIZE;\n const totalBefore = args?.position !== undefined ? pageBefore * PAGE_SIZE : 0;\n\n /**\n * FIXME: this can be cleaned up a little\n *\n * the logic of double query should be inside the orderFetch so from the hook perspective and cache\n * is just one query and one error status\n */\n const {\n data: beforeData,\n error: beforeError,\n isValidating: loadingBefore,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >(\n [\n `/private/transfers`,\n args?.payto_uri,\n args?.verified,\n args?.position,\n totalBefore,\n ],\n transferFetcher,\n );\n const {\n data: afterData,\n error: afterError,\n isValidating: loadingAfter,\n } = useSWR<\n HttpResponseOk,\n RequestError\n >(\n [\n `/private/transfers`,\n args?.payto_uri,\n args?.verified,\n args?.position,\n -totalAfter,\n ],\n transferFetcher,\n );\n\n //this will save last result\n const [lastBefore, setLastBefore] = useState<\n HttpResponse<\n MerchantBackend.Transfers.TransferList,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n const [lastAfter, setLastAfter] = useState<\n HttpResponse<\n MerchantBackend.Transfers.TransferList,\n MerchantBackend.ErrorDetail\n >\n >({ loading: true });\n useEffect(() => {\n if (afterData) setLastAfter(afterData);\n if (beforeData) setLastBefore(beforeData);\n }, [afterData, beforeData]);\n\n if (beforeError) return beforeError.info;\n if (afterError) return afterError.info;\n\n // if the query returns less that we ask, then we have reach the end or beginning\n const isReachingEnd =\n afterData && afterData.data.transfers.length < totalAfter;\n const isReachingStart =\n args?.position === undefined ||\n (beforeData && beforeData.data.transfers.length < totalBefore);\n\n const pagination = {\n isReachingEnd,\n isReachingStart,\n loadMore: () => {\n if (!afterData || isReachingEnd) return;\n if (afterData.data.transfers.length < MAX_RESULT_SIZE) {\n setPageAfter(pageAfter + 1);\n } else {\n const from = `${\n afterData.data.transfers[afterData.data.transfers.length - 1]\n .transfer_serial_id\n }`;\n if (from && updatePosition) updatePosition(from);\n }\n },\n loadMorePrev: () => {\n if (!beforeData || isReachingStart) return;\n if (beforeData.data.transfers.length < MAX_RESULT_SIZE) {\n setPageBefore(pageBefore + 1);\n } else if (beforeData) {\n const from = `${\n beforeData.data.transfers[beforeData.data.transfers.length - 1]\n .transfer_serial_id\n }`;\n if (from && updatePosition) updatePosition(from);\n }\n },\n };\n\n const transfers =\n !beforeData || !afterData\n ? []\n : (beforeData || lastBefore).data.transfers\n .slice()\n .reverse()\n .concat((afterData || lastAfter).data.transfers);\n if (loadingAfter || loadingBefore)\n return { loading: true, data: { transfers } };\n if (beforeData && afterData) {\n return { ok: true, data: { transfers }, ...pagination };\n }\n return { loading: true };\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../../components/form/FormProvider.js\";\nimport { Input } from \"../../../../components/form/Input.js\";\nimport { InputCurrency } from \"../../../../components/form/InputCurrency.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { useConfigContext } from \"../../../../context/config.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport {\n CROCKFORD_BASE32_REGEX,\n URL_REGEX,\n} from \"../../../../utils/constants.js\";\n\ntype Entity = MerchantBackend.Transfers.TransferInformation;\n\ninterface Props {\n onCreate: (d: Entity) => Promise;\n onBack?: () => void;\n accounts: string[];\n}\n\nexport function CreatePage({ accounts, onCreate, onBack }: Props): VNode {\n const { i18n } = useTranslationContext();\n const { currency } = useConfigContext();\n\n const [state, setState] = useState>({\n wtid: \"\",\n // payto_uri: ,\n // exchange_url: 'http://exchange.taler:8081/',\n credit_amount: ``,\n });\n\n const errors: FormErrors = {\n wtid: !state.wtid\n ? i18n.str`cannot be empty`\n : !CROCKFORD_BASE32_REGEX.test(state.wtid)\n ? i18n.str`check the id, does not look valid`\n : state.wtid.length !== 52\n ? i18n.str`should have 52 characters, current ${state.wtid.length}`\n : undefined,\n payto_uri: !state.payto_uri ? i18n.str`cannot be empty` : undefined,\n credit_amount: !state.credit_amount ? i18n.str`cannot be empty` : undefined,\n exchange_url: !state.exchange_url\n ? i18n.str`cannot be empty`\n : !URL_REGEX.test(state.exchange_url)\n ? i18n.str`URL doesn't have the right format`\n : undefined,\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n\n const submitForm = () => {\n if (hasErrors) return Promise.reject();\n return onCreate(state as any);\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n \n \n name=\"wtid\"\n label={i18n.str`Wire transfer ID`}\n help=\"\"\n tooltip={i18n.str`unique identifier of the wire transfer used by the exchange, must be 52 characters long`}\n />\n \n name=\"exchange_url\"\n label={i18n.str`Exchange URL`}\n tooltip={i18n.str`Base URL of the exchange that made the transfer, should have been in the wire transfer subject`}\n help=\"http://exchange.taler:8081/\"\n />\n \n name=\"credit_amount\"\n label={i18n.str`Amount credited`}\n tooltip={i18n.str`Actual amount that was wired to the merchant's bank account`}\n />\n \n\n
    \n {onBack && (\n \n )}\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { NotificationCard } from \"../../../../components/menu/index.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useInstanceDetails } from \"../../../../hooks/instance.js\";\nimport { useTransferAPI } from \"../../../../hooks/transfer.js\";\nimport { Notification } from \"../../../../utils/types.js\";\nimport { CreatePage } from \"./CreatePage.js\";\n\nexport type Entity = MerchantBackend.Transfers.TransferInformation;\ninterface Props {\n onBack?: () => void;\n onConfirm: () => void;\n}\n\nexport default function CreateTransfer({ onConfirm, onBack }: Props): VNode {\n const { informTransfer } = useTransferAPI();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n const instance = useInstanceDetails();\n const accounts = !instance.ok\n ? []\n : instance.data.accounts.map((a) => a.payto_uri);\n\n return (\n <>\n \n {\n return informTransfer(request)\n .then(() => onConfirm())\n .catch((error) => {\n setNotif({\n message: i18n.str`could not inform transfer`,\n type: \"ERROR\",\n description: error.message,\n });\n });\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { h, VNode } from \"preact\";\nimport { StateUpdater, useState } from \"preact/hooks\";\nimport { MerchantBackend, WithId } from \"../../../../declaration.js\";\n\ntype Entity = MerchantBackend.Transfers.TransferDetails & WithId;\n\ninterface Props {\n transfers: Entity[];\n onDelete: (id: Entity) => void;\n onCreate: () => void;\n accounts: string[];\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nexport function CardTable({\n transfers,\n onCreate,\n onDelete,\n onLoadMoreAfter,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: Props): VNode {\n const [rowSelection, rowSelectionHandler] = useState([]);\n\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n

    \n \n \n \n Transfers\n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {transfers.length > 0 ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n );\n}\ninterface TableProps {\n rowSelection: string[];\n instances: Entity[];\n onDelete: (id: Entity) => void;\n rowSelectionHandler: StateUpdater;\n onLoadMoreBefore?: () => void;\n hasMoreBefore?: boolean;\n hasMoreAfter?: boolean;\n onLoadMoreAfter?: () => void;\n}\n\nfunction toggleSelected(id: T): (prev: T[]) => T[] {\n return (prev: T[]): T[] =>\n prev.indexOf(id) == -1 ? [...prev, id] : prev.filter((e) => e != id);\n}\n\nfunction Table({\n instances,\n onLoadMoreAfter,\n onDelete,\n onLoadMoreBefore,\n hasMoreAfter,\n hasMoreBefore,\n}: TableProps): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n {onLoadMoreBefore && (\n \n load newer transfers\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {instances.map((i) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n })}\n \n
    \n ID\n \n Credit\n \n Address\n \n Exchange URL\n \n Confirmed\n \n Verified\n \n Executed at\n \n
    {i.id}{i.credit_amount}{i.payto_uri}{i.exchange_url}{i.confirmed ? i18n.str`yes` : i18n.str`no`}{i.verified ? i18n.str`yes` : i18n.str`no`}\n {i.execution_time\n ? i.execution_time.t_s == \"never\"\n ? i18n.str`never`\n : format(\n i.execution_time.t_s * 1000,\n \"yyyy/MM/dd HH:mm:ss\",\n )\n : i18n.str`unknown`}\n \n {i.verified === undefined ? (\n onDelete(i)}\n >\n Delete\n \n ) : undefined}\n
    \n {onLoadMoreAfter && (\n \n load older transfers\n \n )}\n
    \n );\n}\n\nfunction EmptyTable(): VNode {\n const { i18n } = useTranslationContext();\n return (\n
    \n

    \n \n \n \n

    \n

    \n \n There is no transfer yet, add more pressing the + sign\n \n

    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { FormProvider } from \"../../../../components/form/FormProvider.js\";\nimport { InputSelector } from \"../../../../components/form/InputSelector.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { CardTable } from \"./Table.js\";\n\nexport interface Props {\n transfers: MerchantBackend.Transfers.TransferDetails[];\n onLoadMoreBefore?: () => void;\n onLoadMoreAfter?: () => void;\n onShowAll: () => void;\n onShowVerified: () => void;\n onShowUnverified: () => void;\n isVerifiedTransfers?: boolean;\n isNonVerifiedTransfers?: boolean;\n isAllTransfers?: boolean;\n accounts: string[];\n onChangePayTo: (p?: string) => void;\n payTo?: string;\n onCreate: () => void;\n onDelete: () => void;\n}\n\nexport function ListPage({\n payTo,\n onChangePayTo,\n transfers,\n onCreate,\n onDelete,\n accounts,\n onLoadMoreBefore,\n onLoadMoreAfter,\n isAllTransfers,\n isNonVerifiedTransfers,\n isVerifiedTransfers,\n onShowAll,\n onShowUnverified,\n onShowVerified,\n}: Props): VNode {\n const form = { payto_uri: payTo };\n\n const { i18n } = useTranslationContext();\n return (\n
    \n
    \n
    \n
    \n onChangePayTo(updater(form).payto_uri)}\n >\n \n \n
    \n
    \n
    \n
    \n
    \n \n
  • \n \n \n Verified\n \n
  • \n \n
  • \n \n \n Unverified\n \n
  • \n \n \n
    \n ({\n ...o,\n id: String(o.transfer_serial_id),\n }))}\n accounts={accounts}\n onCreate={onCreate}\n onDelete={onDelete}\n onLoadMoreBefore={onLoadMoreBefore}\n hasMoreBefore={!onLoadMoreBefore}\n onLoadMoreAfter={onLoadMoreAfter}\n hasMoreAfter={!onLoadMoreAfter}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { HttpError } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../../components/exception/loading.js\";\nimport { MerchantBackend } from \"../../../../declaration.js\";\nimport { useInstanceDetails } from \"../../../../hooks/instance.js\";\nimport { useInstanceTransfers } from \"../../../../hooks/transfer.js\";\nimport { ListPage } from \"./ListPage.js\";\n\ninterface Props {\n onUnauthorized: () => VNode;\n onLoadError: (error: HttpError) => VNode;\n onNotFound: () => VNode;\n onCreate: () => void;\n}\ninterface Form {\n verified?: \"yes\" | \"no\";\n payto_uri?: string;\n}\n\nexport default function ListTransfer({\n onUnauthorized,\n onLoadError,\n onCreate,\n onNotFound,\n}: Props): VNode {\n const [form, setForm] = useState({ payto_uri: \"\" });\n const setFilter = (s?: \"yes\" | \"no\") => setForm({ ...form, verified: s });\n\n const [position, setPosition] = useState(undefined);\n\n const instance = useInstanceDetails();\n const accounts = !instance.ok\n ? []\n : instance.data.accounts.map((a) => a.payto_uri);\n\n const isVerifiedTransfers = form.verified === \"yes\";\n const isNonVerifiedTransfers = form.verified === \"no\";\n const isAllTransfers = form.verified === undefined;\n\n const result = useInstanceTransfers(\n {\n position,\n payto_uri: form.payto_uri === \"\" ? undefined : form.payto_uri,\n verified: form.verified,\n },\n (id) => setPosition(id),\n );\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n {\n null;\n }}\n // position={position} setPosition={setPosition}\n onShowAll={() => setFilter(undefined)}\n onShowUnverified={() => setFilter(\"no\")}\n onShowVerified={() => setFilter(\"yes\")}\n isAllTransfers={isAllTransfers}\n isVerifiedTransfers={isVerifiedTransfers}\n isNonVerifiedTransfers={isNonVerifiedTransfers}\n payTo={form.payto_uri}\n onChangePayTo={(p) => setForm((v) => ({ ...v, payto_uri: p }))}\n />\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { Amounts } from \"@gnu-taler/taler-util\";\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { AsyncButton } from \"../../../components/exception/AsyncButton.js\";\nimport {\n FormErrors,\n FormProvider,\n} from \"../../../components/form/FormProvider.js\";\nimport { DefaultInstanceFormFields } from \"../../../components/instance/DefaultInstanceFormFields.js\";\nimport { UpdateTokenModal } from \"../../../components/modal/index.js\";\nimport { useInstanceContext } from \"../../../context/instance.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport { PAYTO_REGEX } from \"../../../utils/constants.js\";\nimport { undefinedIfEmpty } from \"../../../utils/table.js\";\n\ntype Entity = MerchantBackend.Instances.InstanceReconfigurationMessage & {\n auth_token?: string;\n};\n\n//MerchantBackend.Instances.InstanceAuthConfigurationMessage\ninterface Props {\n onUpdate: (d: Entity) => void;\n onChangeAuth: (\n d: MerchantBackend.Instances.InstanceAuthConfigurationMessage,\n ) => Promise;\n selected: MerchantBackend.Instances.QueryInstancesResponse;\n isLoading: boolean;\n onBack: () => void;\n}\n\nfunction convert(\n from: MerchantBackend.Instances.QueryInstancesResponse,\n): Entity {\n const { accounts, ...rest } = from;\n const payto_uris = accounts.filter((a) => a.active).map((a) => a.payto_uri);\n const defaults = {\n default_wire_fee_amortization: 1,\n default_pay_delay: { d_us: 2 * 1000 * 1000 * 60 * 60 }, //two hours\n default_wire_transfer_delay: { d_us: 2 * 1000 * 1000 * 60 * 60 * 2 }, //two hours\n };\n return { ...defaults, ...rest, payto_uris };\n}\n\nfunction getTokenValuePart(t?: string): string | undefined {\n if (!t) return t;\n const match = /secret-token:(.*)/.exec(t);\n if (!match || !match[1]) return undefined;\n return match[1];\n}\n\nexport function UpdatePage({\n onUpdate,\n onChangeAuth,\n selected,\n onBack,\n}: Props): VNode {\n const { id, token } = useInstanceContext();\n const currentTokenValue = getTokenValuePart(token);\n\n function updateToken(token: string | undefined | null) {\n const value =\n token && token.startsWith(\"secret-token:\")\n ? token.substring(\"secret-token:\".length)\n : token;\n\n if (!token) {\n onChangeAuth({ method: \"external\" });\n } else {\n onChangeAuth({ method: \"token\", token: `secret-token:${value}` });\n }\n }\n\n const [value, valueHandler] = useState>(convert(selected));\n\n const { i18n } = useTranslationContext();\n\n const errors: FormErrors = {\n name: !value.name ? i18n.str`required` : undefined,\n payto_uris:\n !value.payto_uris || !value.payto_uris.length\n ? i18n.str`required`\n : undefinedIfEmpty(\n value.payto_uris.map((p) => {\n return !PAYTO_REGEX.test(p) ? i18n.str`is not valid` : undefined;\n }),\n ),\n default_max_deposit_fee: !value.default_max_deposit_fee\n ? i18n.str`required`\n : !Amounts.parse(value.default_max_deposit_fee)\n ? i18n.str`invalid format`\n : undefined,\n default_max_wire_fee: !value.default_max_wire_fee\n ? i18n.str`required`\n : !Amounts.parse(value.default_max_wire_fee)\n ? i18n.str`invalid format`\n : undefined,\n default_wire_fee_amortization:\n value.default_wire_fee_amortization === undefined\n ? i18n.str`required`\n : isNaN(value.default_wire_fee_amortization)\n ? i18n.str`is not a number`\n : value.default_wire_fee_amortization < 1\n ? i18n.str`must be 1 or greater`\n : undefined,\n default_pay_delay: !value.default_pay_delay\n ? i18n.str`required`\n : undefined,\n default_wire_transfer_delay: !value.default_wire_transfer_delay\n ? i18n.str`required`\n : undefined,\n address: undefinedIfEmpty({\n address_lines:\n value.address?.address_lines && value.address?.address_lines.length > 7\n ? i18n.str`max 7 lines`\n : undefined,\n }),\n jurisdiction: undefinedIfEmpty({\n address_lines:\n value.address?.address_lines && value.address?.address_lines.length > 7\n ? i18n.str`max 7 lines`\n : undefined,\n }),\n };\n\n const hasErrors = Object.keys(errors).some(\n (k) => (errors as any)[k] !== undefined,\n );\n const submit = async (): Promise => {\n await onUpdate(value as Entity);\n };\n const [active, setActive] = useState(false);\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Instance id: {id}\n \n
    \n
    \n
    \n
    \n

    \n {\n setActive(!active);\n }}\n >\n
    \n \n
    \n \n Manage access token\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {active && (\n {\n setActive(false);\n }}\n onClear={() => {\n updateToken(null);\n setActive(false);\n }}\n onConfirm={(newToken) => {\n updateToken(newToken);\n setActive(false);\n }}\n />\n )}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n errors={errors}\n object={value}\n valueHandler={valueHandler}\n >\n \n \n\n
    \n \n Cancel\n \n\n \n Confirm\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\nimport {\n HttpError,\n HttpResponse,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { Loading } from \"../../../components/exception/loading.js\";\nimport { NotificationCard } from \"../../../components/menu/index.js\";\nimport { useInstanceContext } from \"../../../context/instance.js\";\nimport { MerchantBackend } from \"../../../declaration.js\";\nimport {\n useInstanceAPI,\n useInstanceDetails,\n useManagedInstanceDetails,\n useManagementAPI,\n} from \"../../../hooks/instance.js\";\nimport { Notification } from \"../../../utils/types.js\";\nimport { UpdatePage } from \"./UpdatePage.js\";\n\nexport interface Props {\n onBack: () => void;\n onConfirm: () => void;\n\n onUnauthorized: () => VNode;\n onNotFound: () => VNode;\n onLoadError: (e: HttpError) => VNode;\n onUpdateError: (e: HttpError) => void;\n}\n\nexport default function Update(props: Props): VNode {\n const { updateInstance, clearToken, setNewToken } = useInstanceAPI();\n const result = useInstanceDetails();\n return CommonUpdate(props, result, updateInstance, clearToken, setNewToken);\n}\n\nexport function AdminUpdate(props: Props & { instanceId: string }): VNode {\n const { updateInstance, clearToken, setNewToken } = useManagementAPI(\n props.instanceId,\n );\n const result = useManagedInstanceDetails(props.instanceId);\n return CommonUpdate(props, result, updateInstance, clearToken, setNewToken);\n}\n\nfunction CommonUpdate(\n {\n onBack,\n onConfirm,\n onLoadError,\n onNotFound,\n onUpdateError,\n onUnauthorized,\n }: Props,\n result: HttpResponse<\n MerchantBackend.Instances.QueryInstancesResponse,\n MerchantBackend.ErrorDetail\n >,\n updateInstance: any,\n clearToken: any,\n setNewToken: any,\n): VNode {\n const { changeToken } = useInstanceContext();\n const [notif, setNotif] = useState(undefined);\n const { i18n } = useTranslationContext();\n\n if (result.clientError && result.isUnauthorized) return onUnauthorized();\n if (result.clientError && result.isNotfound) return onNotFound();\n if (result.loading) return ;\n if (!result.ok) return onLoadError(result);\n\n return (\n \n \n => {\n return updateInstance(d)\n .then(onConfirm)\n .catch((error: Error) =>\n setNotif({\n message: i18n.str`Failed to create instance`,\n type: \"ERROR\",\n description: error.message,\n }),\n );\n }}\n onChangeAuth={(\n d: MerchantBackend.Instances.InstanceAuthConfigurationMessage,\n ): Promise => {\n const apiCall =\n d.method === \"external\" ? clearToken() : setNewToken(d.token!);\n return apiCall\n .then(() => changeToken(d.token))\n .then(onConfirm)\n .catch(onUpdateError);\n }}\n />\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { useBackendContext } from \"../../context/backend.js\";\nimport { useInstanceContext } from \"../../context/instance.js\";\nimport { Notification } from \"../../utils/types.js\";\n\ninterface Props {\n withMessage?: Notification;\n onConfirm: (backend: string, token?: string) => void;\n}\n\nfunction getTokenValuePart(t?: string): string | undefined {\n if (!t) return t;\n const match = /secret-token:(.*)/.exec(t);\n if (!match || !match[1]) return undefined;\n return match[1];\n}\n\nfunction normalizeToken(r: string | undefined): string | undefined {\n return r ? `secret-token:${encodeURIComponent(r)}` : undefined;\n}\n\nfunction cleanUp(s: string): string {\n let result = s;\n if (result.indexOf(\"webui/\") !== -1) {\n result = result.substring(0, result.indexOf(\"webui/\"));\n }\n return result;\n}\n\nexport function LoginModal({ onConfirm, withMessage }: Props): VNode {\n const { url: backendUrl, token: baseToken } = useBackendContext();\n const { admin, token: instanceToken } = useInstanceContext();\n const currentToken = getTokenValuePart(\n !admin ? baseToken : instanceToken || \"\",\n );\n const [token, setToken] = useState(currentToken);\n\n const [url, setURL] = useState(cleanUp(backendUrl));\n const { i18n } = useTranslationContext();\n\n return (\n
    \n
    \n
    \n \n

    {i18n.str`Login required`}

    \n \n \n Please enter your access token.\n
    \n
    \n \n
    \n
    \n
    \n

    \n \n e.keyCode === 13\n ? onConfirm(url, normalizeToken(token))\n : null\n }\n onInput={(e): void => setURL(e?.currentTarget.value)}\n />\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n e.keyCode === 13\n ? onConfirm(url, normalizeToken(token))\n : null\n }\n value={token}\n onInput={(e): void => setToken(e?.currentTarget.value)}\n />\n

    \n
    \n
    \n
    \n \n \n {\n onConfirm(url, normalizeToken(token));\n }}\n >\n Confirm\n \n \n
    \n
    \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { h, VNode } from \"preact\";\nimport { LoginModal } from \"../../components/exception/login.js\";\n\ninterface Props {\n onConfirm: (url: string, token?: string) => void;\n}\nexport default function LoginPage({ onConfirm }: Props): VNode {\n return ;\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, VNode } from \"preact\";\nimport { Link } from \"preact-router\";\n\nexport default function NotFoundPage(): VNode {\n return (\n
    \n

    Error 404

    \n

    That page doesn't exist.

    \n \n

    Back to Home

    \n \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n useTranslationContext,\n HttpError,\n ErrorType,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { format } from \"date-fns\";\nimport { Fragment, FunctionComponent, h, VNode } from \"preact\";\nimport { Route, route, Router } from \"preact-router\";\nimport { useCallback, useEffect, useMemo, useState } from \"preact/hooks\";\nimport { Loading } from \"./components/exception/loading.js\";\nimport { Menu, NotificationCard } from \"./components/menu/index.js\";\nimport { useBackendContext } from \"./context/backend.js\";\nimport { InstanceContextProvider } from \"./context/instance.js\";\nimport {\n useBackendDefaultToken,\n useBackendInstanceToken,\n useLocalStorage,\n} from \"./hooks/index.js\";\nimport { useInstanceKYCDetails } from \"./hooks/instance.js\";\nimport InstanceCreatePage from \"./paths/admin/create/index.js\";\nimport InstanceListPage from \"./paths/admin/list/index.js\";\nimport ListKYCPage from \"./paths/instance/kyc/list/index.js\";\nimport OrderCreatePage from \"./paths/instance/orders/create/index.js\";\nimport OrderDetailsPage from \"./paths/instance/orders/details/index.js\";\nimport OrderListPage from \"./paths/instance/orders/list/index.js\";\nimport ProductCreatePage from \"./paths/instance/products/create/index.js\";\nimport ProductListPage from \"./paths/instance/products/list/index.js\";\nimport ProductUpdatePage from \"./paths/instance/products/update/index.js\";\nimport ReservesCreatePage from \"./paths/instance/reserves/create/index.js\";\nimport ReservesDetailsPage from \"./paths/instance/reserves/details/index.js\";\nimport ReservesListPage from \"./paths/instance/reserves/list/index.js\";\nimport TemplateCreatePage from \"./paths/instance/templates/create/index.js\";\nimport TemplateUsePage from \"./paths/instance/templates/use/index.js\";\nimport TemplateQrPage from \"./paths/instance/templates/qr/index.js\";\nimport TemplateListPage from \"./paths/instance/templates/list/index.js\";\nimport TemplateUpdatePage from \"./paths/instance/templates/update/index.js\";\nimport WebhookCreatePage from \"./paths/instance/webhooks/create/index.js\";\nimport WebhookListPage from \"./paths/instance/webhooks/list/index.js\";\nimport WebhookUpdatePage from \"./paths/instance/webhooks/update/index.js\";\nimport TransferCreatePage from \"./paths/instance/transfers/create/index.js\";\nimport TransferListPage from \"./paths/instance/transfers/list/index.js\";\nimport InstanceUpdatePage, {\n AdminUpdate as InstanceAdminUpdatePage,\n Props as InstanceUpdatePageProps,\n} from \"./paths/instance/update/index.js\";\nimport LoginPage from \"./paths/login/index.js\";\nimport NotFoundPage from \"./paths/notfound/index.js\";\nimport { Notification } from \"./utils/types.js\";\nimport { MerchantBackend } from \"./declaration.js\";\n\nexport enum InstancePaths {\n // details = '/',\n error = \"/error\",\n update = \"/update\",\n\n product_list = \"/products\",\n product_update = \"/product/:pid/update\",\n product_new = \"/product/new\",\n\n order_list = \"/orders\",\n order_new = \"/order/new\",\n order_details = \"/order/:oid/details\",\n\n reserves_list = \"/reserves\",\n reserves_details = \"/reserves/:rid/details\",\n reserves_new = \"/reserves/new\",\n\n kyc = \"/kyc\",\n\n transfers_list = \"/transfers\",\n transfers_new = \"/transfer/new\",\n\n templates_list = \"/templates\",\n templates_update = \"/templates/:tid/update\",\n templates_new = \"/templates/new\",\n templates_use = \"/templates/:tid/use\",\n templates_qr = \"/templates/:tid/qr\",\n\n webhooks_list = \"/webhooks\",\n webhooks_update = \"/webhooks/:tid/update\",\n webhooks_new = \"/webhooks/new\",\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\nexport enum AdminPaths {\n list_instances = \"/instances\",\n new_instance = \"/instance/new\",\n update_instance = \"/instance/:id/update\",\n}\n\nexport interface Props {\n id: string;\n admin?: boolean;\n path: string;\n setInstanceName: (s: string) => void;\n}\n\nexport function InstanceRoutes({\n id,\n admin,\n path,\n setInstanceName,\n}: Props): VNode {\n const [_, updateDefaultToken] = useBackendDefaultToken();\n const [token, updateToken] = useBackendInstanceToken(id);\n const {\n updateLoginStatus: changeBackend,\n addTokenCleaner,\n clearAllTokens,\n } = useBackendContext();\n const cleaner = useCallback(() => {\n updateToken(undefined);\n }, [id]);\n const { i18n } = useTranslationContext();\n\n type GlobalNotifState = (Notification & { to: string }) | undefined;\n const [globalNotification, setGlobalNotification] =\n useState(undefined);\n\n useEffect(() => {\n addTokenCleaner(cleaner);\n }, [addTokenCleaner, cleaner]);\n\n const changeToken = (token?: string) => {\n if (admin) {\n updateToken(token);\n } else {\n updateDefaultToken(token);\n }\n };\n const updateLoginStatus = (url: string, token?: string) => {\n changeBackend(url);\n if (!token) return;\n changeToken(token);\n };\n\n const value = useMemo(\n () => ({ id, token, admin, changeToken }),\n [id, token, admin],\n );\n\n function ServerErrorRedirectTo(to: InstancePaths | AdminPaths) {\n return function ServerErrorRedirectToImpl(\n error: HttpError,\n ) {\n if (error.type === ErrorType.TIMEOUT) {\n setGlobalNotification({\n message: i18n.str`The request to the backend take too long and was cancelled`,\n description: i18n.str`Diagnostic from ${error.info?.url} is '${error.message}'`,\n type: \"ERROR\",\n to,\n });\n } else {\n setGlobalNotification({\n message: i18n.str`The backend reported a problem: HTTP status #${error.status}`,\n description: i18n.str`Diagnostic from ${error.info?.url} is '${error.message}'`,\n details:\n error.clientError || error.serverError\n ? error.error?.detail\n : undefined,\n type: \"ERROR\",\n to,\n });\n }\n return ;\n };\n }\n\n const LoginPageAccessDenied = () => (\n \n \n \n \n );\n\n function IfAdminCreateDefaultOr(Next: FunctionComponent) {\n return function IfAdminCreateDefaultOrImpl(props?: T) {\n if (admin && id === \"default\") {\n return (\n \n \n {\n route(AdminPaths.list_instances);\n }}\n />\n \n );\n }\n if (props) {\n return ;\n }\n return ;\n };\n }\n\n const clearTokenAndGoToRoot = () => {\n clearAllTokens();\n route(\"/\");\n };\n\n return (\n \n \n \n \n\n {\n const movingOutFromNotification =\n globalNotification && e.url !== globalNotification.to;\n if (movingOutFromNotification) {\n setGlobalNotification(undefined);\n }\n }}\n >\n \n {/**\n * Admin pages\n */}\n {admin && (\n {\n route(AdminPaths.new_instance);\n }}\n onUpdate={(id: string): void => {\n route(`/instance/${id}/update`);\n }}\n setInstanceName={setInstanceName}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.error)}\n />\n )}\n {admin && (\n route(AdminPaths.list_instances)}\n onConfirm={() => {\n route(AdminPaths.list_instances);\n }}\n />\n )}\n {admin && (\n route(AdminPaths.list_instances)}\n onConfirm={() => {\n route(AdminPaths.list_instances);\n }}\n onUpdateError={ServerErrorRedirectTo(AdminPaths.list_instances)}\n onLoadError={ServerErrorRedirectTo(AdminPaths.list_instances)}\n onNotFound={NotFoundPage}\n />\n )}\n {/**\n * Update instance page\n */}\n {\n route(`/`);\n }}\n onConfirm={() => {\n route(`/`);\n }}\n onUpdateError={noop}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.error)}\n />\n {/**\n * Product pages\n */}\n {\n route(InstancePaths.product_new);\n }}\n onSelect={(id: string) => {\n route(InstancePaths.product_update.replace(\":pid\", id));\n }}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n />\n {\n route(InstancePaths.product_list);\n }}\n onBack={() => {\n route(InstancePaths.product_list);\n }}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n />\n {\n route(InstancePaths.product_list);\n }}\n onBack={() => {\n route(InstancePaths.product_list);\n }}\n />\n {/**\n * Order pages\n */}\n {\n route(InstancePaths.order_new);\n }}\n onSelect={(id: string) => {\n route(InstancePaths.order_details.replace(\":oid\", id));\n }}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.update)}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n />\n {\n route(InstancePaths.order_list);\n }}\n />\n {\n route(InstancePaths.order_list);\n }}\n onBack={() => {\n route(InstancePaths.order_list);\n }}\n />\n {/**\n * Transfer pages\n */}\n {\n route(InstancePaths.transfers_new);\n }}\n />\n {\n route(InstancePaths.transfers_list);\n }}\n onBack={() => {\n route(InstancePaths.transfers_list);\n }}\n />\n {/**\n * Webhooks pages\n */}\n {\n route(InstancePaths.webhooks_new);\n }}\n onSelect={(id: string) => {\n route(InstancePaths.webhooks_update.replace(\":tid\", id));\n }}\n />\n {\n route(InstancePaths.webhooks_list);\n }}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.webhooks_list)}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n onBack={() => {\n route(InstancePaths.webhooks_list);\n }}\n />\n {\n route(InstancePaths.webhooks_list);\n }}\n onBack={() => {\n route(InstancePaths.webhooks_list);\n }}\n />\n {/**\n * Templates pages\n */}\n {\n route(InstancePaths.templates_new);\n }}\n onNewOrder={(id: string) => {\n route(InstancePaths.templates_use.replace(\":tid\", id));\n }}\n onQR={(id: string) => {\n route(InstancePaths.templates_qr.replace(\":tid\", id));\n }}\n onSelect={(id: string) => {\n route(InstancePaths.templates_update.replace(\":tid\", id));\n }}\n />\n {\n route(InstancePaths.templates_list);\n }}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.templates_list)}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n onBack={() => {\n route(InstancePaths.templates_list);\n }}\n />\n {\n route(InstancePaths.templates_list);\n }}\n onBack={() => {\n route(InstancePaths.templates_list);\n }}\n />\n {\n route(InstancePaths.order_details.replace(\":oid\", id));\n }}\n onUnauthorized={LoginPageAccessDenied}\n onLoadError={ServerErrorRedirectTo(InstancePaths.templates_list)}\n onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}\n onBack={() => {\n route(InstancePaths.templates_list);\n }}\n />\n {\n route(InstancePaths.templates_list);\n }}\n />\n\n {/**\n * reserves pages\n */}\n {\n route(InstancePaths.reserves_details.replace(\":rid\", id));\n }}\n onCreate={() => {\n route(InstancePaths.reserves_new);\n }}\n />\n {\n route(InstancePaths.reserves_list);\n }}\n />\n {\n route(InstancePaths.reserves_list);\n }}\n onBack={() => {\n route(InstancePaths.reserves_list);\n }}\n />\n \n {/**\n * Example pages\n */}\n \n \n \n \n );\n}\n\nexport function Redirect({ to }: { to: string }): null {\n useEffect(() => {\n route(to, true);\n });\n return null;\n}\n\nfunction AdminInstanceUpdatePage({\n id,\n ...rest\n}: { id: string } & InstanceUpdatePageProps): VNode {\n const [token, changeToken] = useBackendInstanceToken(id);\n const { updateLoginStatus: changeBackend } = useBackendContext();\n const updateLoginStatus = (url: string, token?: string): void => {\n changeBackend(url);\n if (token) changeToken(token);\n };\n const value = useMemo(\n () => ({ id, token, admin: true, changeToken }),\n [id, token],\n );\n const { i18n } = useTranslationContext();\n\n return (\n \n ) => {\n const notif =\n error.type === ErrorType.TIMEOUT\n ? {\n message: i18n.str`The request to the backend take too long and was cancelled`,\n description: i18n.str`Diagnostic from ${error.info?.url} is '${error.message}'`,\n type: \"ERROR\" as const,\n }\n : {\n message: i18n.str`The backend reported a problem: HTTP status #${error.status}`,\n description: i18n.str`Diagnostic from ${error.info?.url} is '${error.message}'`,\n details:\n error.clientError || error.serverError\n ? error.error?.detail\n : undefined,\n type: \"ERROR\" as const,\n };\n return (\n \n \n \n \n );\n }}\n onUnauthorized={() => {\n return (\n \n \n \n \n );\n }}\n />\n \n );\n}\n\nfunction KycBanner(): VNode {\n const kycStatus = useInstanceKYCDetails();\n const { i18n } = useTranslationContext();\n const today = format(new Date(), \"yyyy-MM-dd\");\n const [lastHide, setLastHide] = useLocalStorage(\"kyc-last-hide\");\n const hasBeenHidden = today === lastHide;\n const needsToBeShown = kycStatus.ok && kycStatus.data.type === \"redirect\";\n if (hasBeenHidden || !needsToBeShown) return ;\n return (\n \n

    \n Some transfer are on hold until a KYC process is completed. Go to\n the KYC section in the left panel for more information\n

    \n
    \n \n
    \n
    \n ),\n }}\n />\n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/*eslint quote-props: [\"error\", \"consistent\"]*/\nexport const strings: {[s: string]: any} = {};\n\nstrings['de'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\nstrings['en'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\nstrings['es'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=n != 1;\",\n \"lang\": \"es\"\n },\n \"Cancel\": [\n \"Cancelar\"\n ],\n \"%1$s\": [\n \"%1$s\"\n ],\n \"Continue\": [\n \"Continuar\"\n ],\n \"Clear\": [\n \"Limpiar\"\n ],\n \"Confirm\": [\n \"Confirmar\"\n ],\n \"is not the same as the current access token\": [\n \"no es el mismo que el token de acceso actual\"\n ],\n \"cannot be empty\": [\n \"no puede ser vac\u00EDo\"\n ],\n \"cannot be the same as the old token\": [\n \"no puede ser igual al viejo token\"\n ],\n \"is not the same\": [\n \"no son iguales\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"Est\u00E1 actualizando el token de autorizaci\u00F3n para la instancia con id %1$s\"\n ],\n \"Old access token\": [\n \"Viejo token de acceso\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"Nuevo token\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"Limpiar el token de autorizaci\u00F3n significa acceso publico a la instancia\"\n ],\n \"cannot be the same as the old access token\": [\n \"no puede ser igual al anterior\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"Amortizaci\u00F3n de comisi\u00F3n de transferencia\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"Instancias\"\n ],\n \"Delete\": [\n \"Eliminar\"\n ],\n \"add new instance\": [\n \"no se pudo crear la instancia\"\n ],\n \"ID\": [\n \"ID\"\n ],\n \"Name\": [\n \"Nombre\"\n ],\n \"Edit\": [\n \"Editar\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"No hay instancias todav\u00EDan, agregue mas presionando el signo +\"\n ],\n \"Only show active instances\": [\n \"no se pudo crear la instancia\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"Sin instancia default\"\n ],\n \"Deleted\": [\n \"Eliminar\"\n ],\n \"Show all instances\": [\n \"Sin instancia default\"\n ],\n \"All\": [\n \"Todo\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"Sin instancia default\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"no se pudo crear la instancia\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"URL del Exchange\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"no puede ser vac\u00EDo\"\n ],\n \"clear\": [\n \"Limpiar\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"nunca\"\n ],\n \"Country\": [\n \"Pa\u00EDs\"\n ],\n \"Address\": [\n \"Direcci\u00F3n\"\n ],\n \"Building number\": [\n \"N\u00FAmero de edificio\"\n ],\n \"Building name\": [\n \"Nombre de edificio\"\n ],\n \"Street\": [\n \"Calle\"\n ],\n \"Post code\": [\n \"C\u00F3digo postal\"\n ],\n \"Town location\": [\n \"Ubicaci\u00F3n de ciudad\"\n ],\n \"Town\": [\n \"Ciudad\"\n ],\n \"District\": [\n \"Distrito\"\n ],\n \"Country subdivision\": [\n \"Subdivisi\u00F3n de pa\u00EDs\"\n ],\n \"Product id\": [\n \"Id de producto\"\n ],\n \"Description\": [\n \"Descripcion\"\n ],\n \"Product\": [\n \"Productos\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"No se encontraron productos\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"Debe ser mayor a 0\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"Cantidad\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"La imagen debe ser mas chica que 1 MB\"\n ],\n \"Add\": [\n \"Agregar\"\n ],\n \"Remove\": [\n \"Eliminar\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"Monto\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"Moneda y valor separado por dos puntos\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"no se pudo eliminar el producto\"\n ],\n \"Image\": [\n \"Imagen\"\n ],\n \"photo of the product\": [\n \"no se pudo crear el producto\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"Unidad\"\n ],\n \"name of the product unit\": [\n \"No se encontraron productos\"\n ],\n \"Price\": [\n \"Precio\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"Impuesto\"\n ],\n \"image\": [\n \"Imagen\"\n ],\n \"description\": [\n \"Descripcion\"\n ],\n \"quantity\": [\n \"Cantidad\"\n ],\n \"unit price\": [\n \"Precio total\"\n ],\n \"total price\": [\n \"Precio total\"\n ],\n \"required\": [\n \"Login necesario\"\n ],\n \"must be greater than 0\": [\n \"Debe ser mayor a 0\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"deber\u00EDan ser iguales\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"Plazo de reembolso autom\u00E1tico\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"Plazo de reembolso autom\u00E1tico\"\n ],\n \"Manage products in order\": [\n \"No se encontraron productos\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"Precio total\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"pedido por el consumidor\"\n ],\n \"Order price\": [\n \"Precio de la orden\"\n ],\n \"final order price\": [\n \"Precio de la orden\"\n ],\n \"Summary\": [\n \"Resumen\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"Fecha de entrega\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"Ubicaci\u00F3n\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"URL de completitud\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"Opciones de pago\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"Plazo de pago\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"Plazo de reembolso\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"Retrazo de transferencia por omisi\u00F3n\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"Plazo de reembolso autom\u00E1tico\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"Impuesto m\u00E1ximo de deposito por omisi\u00F3n\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"Impuesto de transferencia m\u00E1ximo\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"Amortizaci\u00F3n de comisi\u00F3n de transferencia\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"Administrar token\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"Login necesario\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"Informaci\u00F3n extra\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"nunca\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\u00D3rdenes\"\n ],\n \"create order\": [\n \"creado\"\n ],\n \"load newer orders\": [\n \"cargar nuevas ordenes\"\n ],\n \"Date\": [\n \"Fecha\"\n ],\n \"Refund\": [\n \"Devoluci\u00F3n\"\n ],\n \"copy url\": [\n \"copiar url\"\n ],\n \"load older orders\": [\n \"cargar viejas ordenes\"\n ],\n \"No orders have been found matching your query!\": [\n \"No se enconraron ordenes\"\n ],\n \"duplicated\": [\n \"duplicado\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"fecha\"\n ],\n \"amount\": [\n \"monto\"\n ],\n \"reason\": [\n \"raz\u00F3n\"\n ],\n \"amount to be refunded\": [\n \"No se pudo create el reembolso\"\n ],\n \"Max refundable:\": [\n \"M\u00E1ximo reembolzable:\"\n ],\n \"Reason\": [\n \"Raz\u00F3n\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"pedido por el consumidor\"\n ],\n \"other\": [\n \"otro\"\n ],\n \"why this order is being refunded\": [\n \"No se enconraron ordenes\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"M\u00E1xima comisi\u00F3n\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"Impuesto de transferencia m\u00E1ximo\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"creado\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"Plazo de reembolso autom\u00E1tico\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"Informaci\u00F3n extra\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"Orden\"\n ],\n \"claimed\": [\n \"reclamado\"\n ],\n \"claimed at\": [\n \"reclamado\"\n ],\n \"Timeline\": [\n \"Cronolog\u00EDa\"\n ],\n \"Payment details\": [\n \"Detalles de pago\"\n ],\n \"Order status\": [\n \"Estado de orden\"\n ],\n \"Product list\": [\n \"Lista de producto\"\n ],\n \"paid\": [\n \"pagados\"\n ],\n \"wired\": [\n \"transferido\"\n ],\n \"refunded\": [\n \"reembolzado\"\n ],\n \"refund order\": [\n \"reembolzado\"\n ],\n \"not refundable\": [\n \"M\u00E1ximo reembolzable:\"\n ],\n \"refund\": [\n \"reembolzar\"\n ],\n \"Refunded amount\": [\n \"Monto reembolzado\"\n ],\n \"Refund taken\": [\n \"Reembolzado\"\n ],\n \"Status URL\": [\n \"URL de estado de orden\"\n ],\n \"Refund URI\": [\n \"Devoluci\u00F3n\"\n ],\n \"unpaid\": [\n \"impago\"\n ],\n \"pay at\": [\n \"pagar en\"\n ],\n \"created at\": [\n \"creado\"\n ],\n \"Order status URL\": [\n \"URL de estado de orden\"\n ],\n \"Payment URI\": [\n \"URI de pago\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"Estado de orden desconocido. Esto es un error, por favor contacte a su administrador.\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"reembolzo creado satisfactoriamente\"\n ],\n \"could not create the refund\": [\n \"No se pudo create el reembolso\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"ir a id de orden\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"Pagado\"\n ],\n \"only show orders with refunds\": [\n \"No se pudo create el reembolso\"\n ],\n \"Refunded\": [\n \"Reembolzado\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"No transferido\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"ir a id de orden\"\n ],\n \"order not found\": [\n \"Servidor no encontrado\"\n ],\n \"could not get the order to refund\": [\n \"No se pudo create el reembolso\"\n ],\n \"Loading...\": [\n \"Cargando...\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"Administrar stock\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"Inifinito\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"la p\u00E9rdida no puede ser mayor al stock actual + entrante (max %1$s )\"\n ],\n \"Incoming\": [\n \"Ingresando\"\n ],\n \"Lost\": [\n \"Perdido\"\n ],\n \"Current\": [\n \"Actual\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"sin stock\"\n ],\n \"Next restock\": [\n \"Pr\u00F3ximo reabastecimiento\"\n ],\n \"Delivery address\": [\n \"Direcci\u00F3n de entrega\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"Existencias\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"no se pudo crear el producto\"\n ],\n \"Products\": [\n \"Productos\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"Venta\"\n ],\n \"Profit\": [\n \"Ganancia\"\n ],\n \"Sold\": [\n \"Vendido\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"producto actualizado correctamente\"\n ],\n \"Update\": [\n \"Actualizar\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"no se pudo actualizar el producto\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"No hay propinas todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"product updated successfully\": [\n \"producto actualizado correctamente\"\n ],\n \"could not update the product\": [\n \"no se pudo actualizar el producto\"\n ],\n \"product delete successfully\": [\n \"producto fue eliminado correctamente\"\n ],\n \"could not delete the product\": [\n \"no se pudo eliminar el producto\"\n ],\n \"Product id:\": [\n \"Id de producto\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"Debe ser mayor a 0\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"Instancia\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"URL del Exchange\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"no se pudo informar la transferencia\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"No se pudo create el reembolso\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"creado\"\n ],\n \"Exchange balance\": [\n \"Monto inicial\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"Monto confirmado\"\n ],\n \"Account address\": [\n \"Direcci\u00F3n de cuenta\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"Propinas\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"Token de autorizaci\u00F3n\"\n ],\n \"Expiration\": [\n \"Informaci\u00F3n extra\"\n ],\n \"amount of tip\": [\n \"monto\"\n ],\n \"Justification\": [\n \"Jurisdicci\u00F3n\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"Servidor no encontrado\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"cargar nuevas transferencias\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"No hay transferencias todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"Expected Balance\": [\n \"Ejecutado en\"\n ],\n \"could not create the tip\": [\n \"No se pudo create el reembolso\"\n ],\n \"should not be empty\": [\n \"no puede ser vac\u00EDo\"\n ],\n \"should be greater that 0\": [\n \"Debe ser mayor a 0\"\n ],\n \"can't be empty\": [\n \"no puede ser vac\u00EDo\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"Estado de orden\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"Opciones de pago\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"no se pudo informar la transferencia\"\n ],\n \"Amount is required\": [\n \"Login necesario\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"No se pudo create el reembolso\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"cargar nuevas transferencias\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"cargar viejas transferencias\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"No hay propinas todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"template delete successfully\": [\n \"producto fue eliminado correctamente\"\n ],\n \"could not delete the template\": [\n \"no se pudo eliminar el producto\"\n ],\n \"could not update template\": [\n \"no se pudo actualizar el producto\"\n ],\n \"should be one of '%1$s'\": [\n \"deber\u00EDan ser iguales\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"cargar nuevas ordenes\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"cargar viejas ordenes\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"No hay propinas todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"webhook delete successfully\": [\n \"producto fue eliminado correctamente\"\n ],\n \"could not delete the webhook\": [\n \"no se pudo eliminar el producto\"\n ],\n \"check the id, does not look valid\": [\n \"verificar el id, no parece v\u00E1lido\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"deber\u00EDa tener 52 caracteres, actualmente %1$s\"\n ],\n \"URL doesn't have the right format\": [\n \"La URL no tiene el formato correcto\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"Id de transferencia\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"no se pudo informar la transferencia\"\n ],\n \"Transfers\": [\n \"Transferencias\"\n ],\n \"add new transfer\": [\n \"cargar nuevas transferencias\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"cargar nuevas transferencias\"\n ],\n \"Credit\": [\n \"Cr\u00E9dito\"\n ],\n \"Confirmed\": [\n \"Confirmado\"\n ],\n \"Verified\": [\n \"Verificado\"\n ],\n \"Executed at\": [\n \"Ejecutado en\"\n ],\n \"yes\": [\n \"si\"\n ],\n \"no\": [\n \"no\"\n ],\n \"unknown\": [\n \"desconocido\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"cargar viejas transferencias\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"No hay transferencias todav\u00EDa, agregar mas presionando el signo +\"\n ],\n \"filter by account address\": [\n \"Direcci\u00F3n de cuenta\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"Verificado\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"N\u00FAmero de edificio\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"no se pudo informar la transferencia\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"N\u00FAmero de edificio\"\n ],\n \"Account\": [\n \"Monto\"\n ],\n \"Account number.\": [\n \"Direcci\u00F3n de cuenta\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"Nombre de edificio\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"Impuesto m\u00E1ximo de deposito por omisi\u00F3n\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"Impuesto m\u00E1ximo de transferencia por omisi\u00F3n\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"Amortizaci\u00F3n de impuesto de transferencia por omisi\u00F3n\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"Jurisdicci\u00F3n\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"Retrazo de pago por omisi\u00F3n\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"Retrazo de transferencia por omisi\u00F3n\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"Instancia\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"Limpiar el token de autorizaci\u00F3n significa acceso publico a la instancia\"\n ],\n \"Manage access token\": [\n \"Administrar token\"\n ],\n \"Failed to create instance\": [\n \"no se pudo crear la instancia\"\n ],\n \"Login required\": [\n \"Login necesario\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"Acceso denegado\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"Servidir reporto un problema: HTTP status #%1$s\"\n ],\n \"Access denied\": [\n \"Acceso denegado\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"Sin instancia default\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"Instancia\"\n ],\n \"Settings\": [\n \"Configuraci\u00F3n\"\n ],\n \"Connection\": [\n \"Conexi\u00F3n\"\n ],\n \"New\": [\n \"Nuevo\"\n ],\n \"List\": [\n \"Lista\"\n ],\n \"Log out\": [\n \"Salir\"\n ],\n \"Check your token is valid\": [\n \"Verifica que el token sea valido\"\n ],\n \"Couldn't access the server.\": [\n \"No se pudo acceder al servidor.\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"No se pudo inferir el id de la instancia con la url %1$s\"\n ],\n \"Server not found\": [\n \"Servidor no encontrado\"\n ],\n \"Couldn't access the server\": [\n \"No se pudo aceder al servidor\"\n ],\n \"Got message %1$s from %2$s\": [\n \"Recivimos el mensaje %1$s desde %2$s\"\n ],\n \"Unexpected Error\": [\n \"Error inesperado\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"El valor %1$s es invalido para una URL de pago\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"Agregar\"\n ],\n \"Deleting\": [\n \"Borrando\"\n ],\n \"Changing\": [\n \"Cambiando\"\n ],\n \"Order ID\": [\n \"Orden\"\n ],\n \"Payment URL\": [\n \"Detalles de pago\"\n ]\n }\n }\n};\n\nstrings['fr'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\nstrings['it'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\nstrings['sv'] = {\n \"domain\": \"messages\",\n \"locale_data\": {\n \"messages\": {\n \"\": {\n \"domain\": \"messages\",\n \"plural_forms\": \"nplurals=2; plural=(n != 1);\",\n \"lang\": \"\"\n },\n \"Cancel\": [\n \"\"\n ],\n \"%1$s\": [\n \"\"\n ],\n \"Continue\": [\n \"\"\n ],\n \"Clear\": [\n \"\"\n ],\n \"Confirm\": [\n \"\"\n ],\n \"is not the same as the current access token\": [\n \"\"\n ],\n \"cannot be empty\": [\n \"\"\n ],\n \"cannot be the same as the old token\": [\n \"\"\n ],\n \"is not the same\": [\n \"\"\n ],\n \"You are updating the access token from instance with id %1$s\": [\n \"\"\n ],\n \"Old access token\": [\n \"\"\n ],\n \"access token currently in use\": [\n \"\"\n ],\n \"New access token\": [\n \"\"\n ],\n \"next access token to be used\": [\n \"\"\n ],\n \"Repeat access token\": [\n \"\"\n ],\n \"confirm the same access token\": [\n \"\"\n ],\n \"Clearing the access token will mean public access to the instance\": [\n \"\"\n ],\n \"cannot be the same as the old access token\": [\n \"\"\n ],\n \"You are setting the access token for the new instance\": [\n \"\"\n ],\n \"With external authorization method no check will be done by the merchant backend\": [\n \"\"\n ],\n \"Set external authorization\": [\n \"\"\n ],\n \"Set access token\": [\n \"\"\n ],\n \"Operation in progress...\": [\n \"\"\n ],\n \"The operation will be automatically canceled after %1$s seconds\": [\n \"\"\n ],\n \"Instances\": [\n \"\"\n ],\n \"Delete\": [\n \"\"\n ],\n \"add new instance\": [\n \"\"\n ],\n \"ID\": [\n \"\"\n ],\n \"Name\": [\n \"\"\n ],\n \"Edit\": [\n \"\"\n ],\n \"Purge\": [\n \"\"\n ],\n \"There is no instances yet, add more pressing the + sign\": [\n \"\"\n ],\n \"Only show active instances\": [\n \"\"\n ],\n \"Active\": [\n \"\"\n ],\n \"Only show deleted instances\": [\n \"\"\n ],\n \"Deleted\": [\n \"\"\n ],\n \"Show all instances\": [\n \"\"\n ],\n \"All\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been deleted\": [\n \"\"\n ],\n \"Failed to delete instance\": [\n \"\"\n ],\n \"Instance '%1$s' (ID: %2$s) has been disabled\": [\n \"\"\n ],\n \"Failed to purge instance\": [\n \"\"\n ],\n \"Pending KYC verification\": [\n \"\"\n ],\n \"Timed out\": [\n \"\"\n ],\n \"Exchange\": [\n \"\"\n ],\n \"Target account\": [\n \"\"\n ],\n \"KYC URL\": [\n \"\"\n ],\n \"Code\": [\n \"\"\n ],\n \"Http Status\": [\n \"\"\n ],\n \"No pending kyc verification!\": [\n \"\"\n ],\n \"change value to unknown date\": [\n \"\"\n ],\n \"change value to empty\": [\n \"\"\n ],\n \"clear\": [\n \"\"\n ],\n \"change value to never\": [\n \"\"\n ],\n \"never\": [\n \"\"\n ],\n \"Country\": [\n \"\"\n ],\n \"Address\": [\n \"\"\n ],\n \"Building number\": [\n \"\"\n ],\n \"Building name\": [\n \"\"\n ],\n \"Street\": [\n \"\"\n ],\n \"Post code\": [\n \"\"\n ],\n \"Town location\": [\n \"\"\n ],\n \"Town\": [\n \"\"\n ],\n \"District\": [\n \"\"\n ],\n \"Country subdivision\": [\n \"\"\n ],\n \"Product id\": [\n \"\"\n ],\n \"Description\": [\n \"\"\n ],\n \"Product\": [\n \"\"\n ],\n \"search products by it's description or id\": [\n \"\"\n ],\n \"no products found with that description\": [\n \"\"\n ],\n \"You must enter a valid product identifier.\": [\n \"\"\n ],\n \"Quantity must be greater than 0!\": [\n \"\"\n ],\n \"This quantity exceeds remaining stock. Currently, only %1$s units remain unreserved in stock.\": [\n \"\"\n ],\n \"Quantity\": [\n \"\"\n ],\n \"how many products will be added\": [\n \"\"\n ],\n \"Add from inventory\": [\n \"\"\n ],\n \"Image should be smaller than 1 MB\": [\n \"\"\n ],\n \"Add\": [\n \"\"\n ],\n \"Remove\": [\n \"\"\n ],\n \"No taxes configured for this product.\": [\n \"\"\n ],\n \"Amount\": [\n \"\"\n ],\n \"Taxes can be in currencies that differ from the main currency used by the merchant.\": [\n \"\"\n ],\n \"Enter currency and value separated with a colon, e.g. "USD:2.3".\": [\n \"\"\n ],\n \"Legal name of the tax, e.g. VAT or import duties.\": [\n \"\"\n ],\n \"add tax to the tax list\": [\n \"\"\n ],\n \"describe and add a product that is not in the inventory list\": [\n \"\"\n ],\n \"Add custom product\": [\n \"\"\n ],\n \"Complete information of the product\": [\n \"\"\n ],\n \"Image\": [\n \"\"\n ],\n \"photo of the product\": [\n \"\"\n ],\n \"full product description\": [\n \"\"\n ],\n \"Unit\": [\n \"\"\n ],\n \"name of the product unit\": [\n \"\"\n ],\n \"Price\": [\n \"\"\n ],\n \"amount in the current currency\": [\n \"\"\n ],\n \"Taxes\": [\n \"\"\n ],\n \"image\": [\n \"\"\n ],\n \"description\": [\n \"\"\n ],\n \"quantity\": [\n \"\"\n ],\n \"unit price\": [\n \"\"\n ],\n \"total price\": [\n \"\"\n ],\n \"required\": [\n \"\"\n ],\n \"must be greater than 0\": [\n \"\"\n ],\n \"not a valid json\": [\n \"\"\n ],\n \"should be in the future\": [\n \"\"\n ],\n \"refund deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before refund deadline\": [\n \"\"\n ],\n \"wire transfer deadline cannot be before pay deadline\": [\n \"\"\n ],\n \"should have a refund deadline\": [\n \"\"\n ],\n \"auto refund cannot be after refund deadline\": [\n \"\"\n ],\n \"Manage products in order\": [\n \"\"\n ],\n \"Manage list of products in the order.\": [\n \"\"\n ],\n \"Remove this product from the order.\": [\n \"\"\n ],\n \"Total price\": [\n \"\"\n ],\n \"total product price added up\": [\n \"\"\n ],\n \"Amount to be paid by the customer\": [\n \"\"\n ],\n \"Order price\": [\n \"\"\n ],\n \"final order price\": [\n \"\"\n ],\n \"Summary\": [\n \"\"\n ],\n \"Title of the order to be shown to the customer\": [\n \"\"\n ],\n \"Shipping and Fulfillment\": [\n \"\"\n ],\n \"Delivery date\": [\n \"\"\n ],\n \"Deadline for physical delivery assured by the merchant.\": [\n \"\"\n ],\n \"Location\": [\n \"\"\n ],\n \"address where the products will be delivered\": [\n \"\"\n ],\n \"Fulfillment URL\": [\n \"\"\n ],\n \"URL to which the user will be redirected after successful payment.\": [\n \"\"\n ],\n \"Taler payment options\": [\n \"\"\n ],\n \"Override default Taler payment settings for this order\": [\n \"\"\n ],\n \"Payment deadline\": [\n \"\"\n ],\n \"Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.\": [\n \"\"\n ],\n \"Refund deadline\": [\n \"\"\n ],\n \"Time until which the order can be refunded by the merchant.\": [\n \"\"\n ],\n \"Wire transfer deadline\": [\n \"\"\n ],\n \"Deadline for the exchange to make the wire transfer.\": [\n \"\"\n ],\n \"Auto-refund deadline\": [\n \"\"\n ],\n \"Time until which the wallet will automatically check for refunds without user interaction.\": [\n \"\"\n ],\n \"Maximum deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.\": [\n \"\"\n ],\n \"Maximum wire fee\": [\n \"\"\n ],\n \"Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.\": [\n \"\"\n ],\n \"Wire fee amortization\": [\n \"\"\n ],\n \"Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.\": [\n \"\"\n ],\n \"Create token\": [\n \"\"\n ],\n \"Uncheck this option if the merchant backend generated an order ID with enough entropy to prevent adversarial claims.\": [\n \"\"\n ],\n \"Minimum age required\": [\n \"\"\n ],\n \"Any value greater than 0 will limit the coins able be used to pay this contract. If empty the age restriction will be defined by the products\": [\n \"\"\n ],\n \"Min age defined by the producs is %1$s\": [\n \"\"\n ],\n \"Additional information\": [\n \"\"\n ],\n \"Custom information to be included in the contract for this order.\": [\n \"\"\n ],\n \"You must enter a value in JavaScript Object Notation (JSON).\": [\n \"\"\n ],\n \"days\": [\n \"\"\n ],\n \"hours\": [\n \"\"\n ],\n \"minutes\": [\n \"\"\n ],\n \"seconds\": [\n \"\"\n ],\n \"forever\": [\n \"\"\n ],\n \"%1$sM\": [\n \"\"\n ],\n \"%1$sY\": [\n \"\"\n ],\n \"%1$sd\": [\n \"\"\n ],\n \"%1$sh\": [\n \"\"\n ],\n \"%1$smin\": [\n \"\"\n ],\n \"%1$ssec\": [\n \"\"\n ],\n \"Orders\": [\n \"\"\n ],\n \"create order\": [\n \"\"\n ],\n \"load newer orders\": [\n \"\"\n ],\n \"Date\": [\n \"\"\n ],\n \"Refund\": [\n \"\"\n ],\n \"copy url\": [\n \"\"\n ],\n \"load older orders\": [\n \"\"\n ],\n \"No orders have been found matching your query!\": [\n \"\"\n ],\n \"duplicated\": [\n \"\"\n ],\n \"invalid format\": [\n \"\"\n ],\n \"this value exceed the refundable amount\": [\n \"\"\n ],\n \"date\": [\n \"\"\n ],\n \"amount\": [\n \"\"\n ],\n \"reason\": [\n \"\"\n ],\n \"amount to be refunded\": [\n \"\"\n ],\n \"Max refundable:\": [\n \"\"\n ],\n \"Reason\": [\n \"\"\n ],\n \"Choose one...\": [\n \"\"\n ],\n \"requested by the customer\": [\n \"\"\n ],\n \"other\": [\n \"\"\n ],\n \"why this order is being refunded\": [\n \"\"\n ],\n \"more information to give context\": [\n \"\"\n ],\n \"Contract Terms\": [\n \"\"\n ],\n \"human-readable description of the whole purchase\": [\n \"\"\n ],\n \"total price for the transaction\": [\n \"\"\n ],\n \"URL for this purchase\": [\n \"\"\n ],\n \"Max fee\": [\n \"\"\n ],\n \"maximum total deposit fee accepted by the merchant for this contract\": [\n \"\"\n ],\n \"Max wire fee\": [\n \"\"\n ],\n \"maximum wire fee accepted by the merchant\": [\n \"\"\n ],\n \"over how many customer transactions does the merchant expect to amortize wire fees on average\": [\n \"\"\n ],\n \"Created at\": [\n \"\"\n ],\n \"time when this contract was generated\": [\n \"\"\n ],\n \"after this deadline has passed no refunds will be accepted\": [\n \"\"\n ],\n \"after this deadline, the merchant won't accept payments for the contract\": [\n \"\"\n ],\n \"transfer deadline for the exchange\": [\n \"\"\n ],\n \"time indicating when the order should be delivered\": [\n \"\"\n ],\n \"where the order will be delivered\": [\n \"\"\n ],\n \"Auto-refund delay\": [\n \"\"\n ],\n \"how long the wallet should try to get an automatic refund for the purchase\": [\n \"\"\n ],\n \"Extra info\": [\n \"\"\n ],\n \"extra data that is only interpreted by the merchant frontend\": [\n \"\"\n ],\n \"Order\": [\n \"\"\n ],\n \"claimed\": [\n \"\"\n ],\n \"claimed at\": [\n \"\"\n ],\n \"Timeline\": [\n \"\"\n ],\n \"Payment details\": [\n \"\"\n ],\n \"Order status\": [\n \"\"\n ],\n \"Product list\": [\n \"\"\n ],\n \"paid\": [\n \"\"\n ],\n \"wired\": [\n \"\"\n ],\n \"refunded\": [\n \"\"\n ],\n \"refund order\": [\n \"\"\n ],\n \"not refundable\": [\n \"\"\n ],\n \"refund\": [\n \"\"\n ],\n \"Refunded amount\": [\n \"\"\n ],\n \"Refund taken\": [\n \"\"\n ],\n \"Status URL\": [\n \"\"\n ],\n \"Refund URI\": [\n \"\"\n ],\n \"unpaid\": [\n \"\"\n ],\n \"pay at\": [\n \"\"\n ],\n \"created at\": [\n \"\"\n ],\n \"Order status URL\": [\n \"\"\n ],\n \"Payment URI\": [\n \"\"\n ],\n \"Unknown order status. This is an error, please contact the administrator.\": [\n \"\"\n ],\n \"Back\": [\n \"\"\n ],\n \"refund created successfully\": [\n \"\"\n ],\n \"could not create the refund\": [\n \"\"\n ],\n \"select date to show nearby orders\": [\n \"\"\n ],\n \"order id\": [\n \"\"\n ],\n \"jump to order with the given order ID\": [\n \"\"\n ],\n \"remove all filters\": [\n \"\"\n ],\n \"only show paid orders\": [\n \"\"\n ],\n \"Paid\": [\n \"\"\n ],\n \"only show orders with refunds\": [\n \"\"\n ],\n \"Refunded\": [\n \"\"\n ],\n \"only show orders where customers paid, but wire payments from payment provider are still pending\": [\n \"\"\n ],\n \"Not wired\": [\n \"\"\n ],\n \"clear date filter\": [\n \"\"\n ],\n \"date (YYYY/MM/DD)\": [\n \"\"\n ],\n \"Enter an order id\": [\n \"\"\n ],\n \"order not found\": [\n \"\"\n ],\n \"could not get the order to refund\": [\n \"\"\n ],\n \"Loading...\": [\n \"\"\n ],\n \"click here to configure the stock of the product, leave it as is and the backend will not control stock\": [\n \"\"\n ],\n \"Manage stock\": [\n \"\"\n ],\n \"this product has been configured without stock control\": [\n \"\"\n ],\n \"Infinite\": [\n \"\"\n ],\n \"lost cannot be greater than current and incoming (max %1$s)\": [\n \"\"\n ],\n \"Incoming\": [\n \"\"\n ],\n \"Lost\": [\n \"\"\n ],\n \"Current\": [\n \"\"\n ],\n \"remove stock control for this product\": [\n \"\"\n ],\n \"without stock\": [\n \"\"\n ],\n \"Next restock\": [\n \"\"\n ],\n \"Delivery address\": [\n \"\"\n ],\n \"product identification to use in URLs (for internal use only)\": [\n \"\"\n ],\n \"illustration of the product for customers\": [\n \"\"\n ],\n \"product description for customers\": [\n \"\"\n ],\n \"Age restricted\": [\n \"\"\n ],\n \"is this product restricted for customer below certain age?\": [\n \"\"\n ],\n \"unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers\": [\n \"\"\n ],\n \"sale price for customers, including taxes, for above units of the product\": [\n \"\"\n ],\n \"Stock\": [\n \"\"\n ],\n \"product inventory for products with finite supply (for internal use only)\": [\n \"\"\n ],\n \"taxes included in the product price, exposed to customers\": [\n \"\"\n ],\n \"Need to complete marked fields\": [\n \"\"\n ],\n \"could not create product\": [\n \"\"\n ],\n \"Products\": [\n \"\"\n ],\n \"add product to inventory\": [\n \"\"\n ],\n \"Sell\": [\n \"\"\n ],\n \"Profit\": [\n \"\"\n ],\n \"Sold\": [\n \"\"\n ],\n \"free\": [\n \"\"\n ],\n \"go to product update page\": [\n \"\"\n ],\n \"Update\": [\n \"\"\n ],\n \"remove this product from the database\": [\n \"\"\n ],\n \"update the product with new price\": [\n \"\"\n ],\n \"update product with new price\": [\n \"\"\n ],\n \"add more elements to the inventory\": [\n \"\"\n ],\n \"report elements lost in the inventory\": [\n \"\"\n ],\n \"new price for the product\": [\n \"\"\n ],\n \"the are value with errors\": [\n \"\"\n ],\n \"update product with new stock and price\": [\n \"\"\n ],\n \"There is no products yet, add more pressing the + sign\": [\n \"\"\n ],\n \"product updated successfully\": [\n \"\"\n ],\n \"could not update the product\": [\n \"\"\n ],\n \"product delete successfully\": [\n \"\"\n ],\n \"could not delete the product\": [\n \"\"\n ],\n \"Product id:\": [\n \"\"\n ],\n \"To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.\": [\n \"\"\n ],\n \"If your system supports RFC 8905, you can do this by opening this URI:\": [\n \"\"\n ],\n \"it should be greater than 0\": [\n \"\"\n ],\n \"must be a valid URL\": [\n \"\"\n ],\n \"Initial balance\": [\n \"\"\n ],\n \"balance prior to deposit\": [\n \"\"\n ],\n \"Exchange URL\": [\n \"\"\n ],\n \"URL of exchange\": [\n \"\"\n ],\n \"Next\": [\n \"\"\n ],\n \"Wire method\": [\n \"\"\n ],\n \"method to use for wire transfer\": [\n \"\"\n ],\n \"Select one wire method\": [\n \"\"\n ],\n \"could not create reserve\": [\n \"\"\n ],\n \"Valid until\": [\n \"\"\n ],\n \"Created balance\": [\n \"\"\n ],\n \"Exchange balance\": [\n \"\"\n ],\n \"Picked up\": [\n \"\"\n ],\n \"Committed\": [\n \"\"\n ],\n \"Account address\": [\n \"\"\n ],\n \"Subject\": [\n \"\"\n ],\n \"Tips\": [\n \"\"\n ],\n \"No tips has been authorized from this reserve\": [\n \"\"\n ],\n \"Authorized\": [\n \"\"\n ],\n \"Expiration\": [\n \"\"\n ],\n \"amount of tip\": [\n \"\"\n ],\n \"Justification\": [\n \"\"\n ],\n \"reason for the tip\": [\n \"\"\n ],\n \"URL after tip\": [\n \"\"\n ],\n \"URL to visit after tip payment\": [\n \"\"\n ],\n \"Reserves not yet funded\": [\n \"\"\n ],\n \"Reserves ready\": [\n \"\"\n ],\n \"add new reserve\": [\n \"\"\n ],\n \"Expires at\": [\n \"\"\n ],\n \"Initial\": [\n \"\"\n ],\n \"delete selected reserve from the database\": [\n \"\"\n ],\n \"authorize new tip from selected reserve\": [\n \"\"\n ],\n \"There is no ready reserves yet, add more pressing the + sign or fund them\": [\n \"\"\n ],\n \"Expected Balance\": [\n \"\"\n ],\n \"could not create the tip\": [\n \"\"\n ],\n \"should not be empty\": [\n \"\"\n ],\n \"should be greater that 0\": [\n \"\"\n ],\n \"can't be empty\": [\n \"\"\n ],\n \"to short\": [\n \"\"\n ],\n \"Identifier\": [\n \"\"\n ],\n \"Name of the template in URLs.\": [\n \"\"\n ],\n \"Describe what this template stands for\": [\n \"\"\n ],\n \"Order summary\": [\n \"\"\n ],\n \"Minimum age\": [\n \"\"\n ],\n \"Is this contract restricted to some age?\": [\n \"\"\n ],\n \"Payment timeout\": [\n \"\"\n ],\n \"How much time has the customer to complete the payment once the order was created.\": [\n \"\"\n ],\n \"Point-of-sale key\": [\n \"\"\n ],\n \"Useful to validate the purchase\": [\n \"\"\n ],\n \"could not inform template\": [\n \"\"\n ],\n \"Amount is required\": [\n \"\"\n ],\n \"Order summary is required\": [\n \"\"\n ],\n \"Amount of the order\": [\n \"\"\n ],\n \"could not create order from template\": [\n \"\"\n ],\n \"Templates\": [\n \"\"\n ],\n \"add new templates\": [\n \"\"\n ],\n \"load more templates before the first one\": [\n \"\"\n ],\n \"load newer templates\": [\n \"\"\n ],\n \"delete selected templates from the database\": [\n \"\"\n ],\n \"use template to create new order\": [\n \"\"\n ],\n \"load more templates after the last one\": [\n \"\"\n ],\n \"load older templates\": [\n \"\"\n ],\n \"There is no templates yet, add more pressing the + sign\": [\n \"\"\n ],\n \"template delete successfully\": [\n \"\"\n ],\n \"could not delete the template\": [\n \"\"\n ],\n \"could not update template\": [\n \"\"\n ],\n \"should be one of '%1$s'\": [\n \"\"\n ],\n \"Webhook ID to use\": [\n \"\"\n ],\n \"Event\": [\n \"\"\n ],\n \"The event of the webhook: why the webhook is used\": [\n \"\"\n ],\n \"Method\": [\n \"\"\n ],\n \"Method used by the webhook\": [\n \"\"\n ],\n \"URL\": [\n \"\"\n ],\n \"URL of the webhook where the customer will be redirected\": [\n \"\"\n ],\n \"Header\": [\n \"\"\n ],\n \"Header template of the webhook\": [\n \"\"\n ],\n \"Body\": [\n \"\"\n ],\n \"Body template by the webhook\": [\n \"\"\n ],\n \"Webhooks\": [\n \"\"\n ],\n \"add new webhooks\": [\n \"\"\n ],\n \"load more webhooks before the first one\": [\n \"\"\n ],\n \"load newer webhooks\": [\n \"\"\n ],\n \"Event type\": [\n \"\"\n ],\n \"delete selected webhook from the database\": [\n \"\"\n ],\n \"load more webhooks after the last one\": [\n \"\"\n ],\n \"load older webhooks\": [\n \"\"\n ],\n \"There is no webhooks yet, add more pressing the + sign\": [\n \"\"\n ],\n \"webhook delete successfully\": [\n \"\"\n ],\n \"could not delete the webhook\": [\n \"\"\n ],\n \"check the id, does not look valid\": [\n \"\"\n ],\n \"should have 52 characters, current %1$s\": [\n \"\"\n ],\n \"URL doesn't have the right format\": [\n \"\"\n ],\n \"Credited bank account\": [\n \"\"\n ],\n \"Select one account\": [\n \"\"\n ],\n \"Bank account of the merchant where the payment was received\": [\n \"\"\n ],\n \"Wire transfer ID\": [\n \"\"\n ],\n \"unique identifier of the wire transfer used by the exchange, must be 52 characters long\": [\n \"\"\n ],\n \"Base URL of the exchange that made the transfer, should have been in the wire transfer subject\": [\n \"\"\n ],\n \"Amount credited\": [\n \"\"\n ],\n \"Actual amount that was wired to the merchant's bank account\": [\n \"\"\n ],\n \"could not inform transfer\": [\n \"\"\n ],\n \"Transfers\": [\n \"\"\n ],\n \"add new transfer\": [\n \"\"\n ],\n \"load more transfers before the first one\": [\n \"\"\n ],\n \"load newer transfers\": [\n \"\"\n ],\n \"Credit\": [\n \"\"\n ],\n \"Confirmed\": [\n \"\"\n ],\n \"Verified\": [\n \"\"\n ],\n \"Executed at\": [\n \"\"\n ],\n \"yes\": [\n \"\"\n ],\n \"no\": [\n \"\"\n ],\n \"unknown\": [\n \"\"\n ],\n \"delete selected transfer from the database\": [\n \"\"\n ],\n \"load more transfer after the last one\": [\n \"\"\n ],\n \"load older transfers\": [\n \"\"\n ],\n \"There is no transfer yet, add more pressing the + sign\": [\n \"\"\n ],\n \"filter by account address\": [\n \"\"\n ],\n \"only show wire transfers confirmed by the merchant\": [\n \"\"\n ],\n \"only show wire transfers claimed by the exchange\": [\n \"\"\n ],\n \"Unverified\": [\n \"\"\n ],\n \"is not valid\": [\n \"\"\n ],\n \"is not a number\": [\n \"\"\n ],\n \"must be 1 or greater\": [\n \"\"\n ],\n \"max 7 lines\": [\n \"\"\n ],\n \"change authorization configuration\": [\n \"\"\n ],\n \"Need to complete marked fields and choose authorization method\": [\n \"\"\n ],\n \"This is not a valid bitcoin address.\": [\n \"\"\n ],\n \"This is not a valid Ethereum address.\": [\n \"\"\n ],\n \"IBAN numbers usually have more that 4 digits\": [\n \"\"\n ],\n \"IBAN numbers usually have less that 34 digits\": [\n \"\"\n ],\n \"IBAN country code not found\": [\n \"\"\n ],\n \"IBAN number is not valid, checksum is wrong\": [\n \"\"\n ],\n \"Target type\": [\n \"\"\n ],\n \"Method to use for wire transfer\": [\n \"\"\n ],\n \"Routing\": [\n \"\"\n ],\n \"Routing number.\": [\n \"\"\n ],\n \"Account\": [\n \"\"\n ],\n \"Account number.\": [\n \"\"\n ],\n \"Business Identifier Code.\": [\n \"\"\n ],\n \"Bank Account Number.\": [\n \"\"\n ],\n \"Unified Payment Interface.\": [\n \"\"\n ],\n \"Bitcoin protocol.\": [\n \"\"\n ],\n \"Ethereum protocol.\": [\n \"\"\n ],\n \"Interledger protocol.\": [\n \"\"\n ],\n \"Host\": [\n \"\"\n ],\n \"Bank host.\": [\n \"\"\n ],\n \"Bank account.\": [\n \"\"\n ],\n \"Bank account owner's name.\": [\n \"\"\n ],\n \"No accounts yet.\": [\n \"\"\n ],\n \"Name of the instance in URLs. The 'default' instance is special in that it is used to administer other instances.\": [\n \"\"\n ],\n \"Business name\": [\n \"\"\n ],\n \"Legal name of the business represented by this instance.\": [\n \"\"\n ],\n \"Email\": [\n \"\"\n ],\n \"Contact email\": [\n \"\"\n ],\n \"Website URL\": [\n \"\"\n ],\n \"URL.\": [\n \"\"\n ],\n \"Logo\": [\n \"\"\n ],\n \"Logo image.\": [\n \"\"\n ],\n \"Bank account\": [\n \"\"\n ],\n \"URI specifying bank account for crediting revenue.\": [\n \"\"\n ],\n \"Default max deposit fee\": [\n \"\"\n ],\n \"Maximum deposit fees this merchant is willing to pay per order by default.\": [\n \"\"\n ],\n \"Default max wire fee\": [\n \"\"\n ],\n \"Maximum wire fees this merchant is willing to pay per wire transfer by default.\": [\n \"\"\n ],\n \"Default wire fee amortization\": [\n \"\"\n ],\n \"Number of orders excess wire transfer fees will be divided by to compute per order surcharge.\": [\n \"\"\n ],\n \"Physical location of the merchant.\": [\n \"\"\n ],\n \"Jurisdiction\": [\n \"\"\n ],\n \"Jurisdiction for legal disputes with the merchant.\": [\n \"\"\n ],\n \"Default payment delay\": [\n \"\"\n ],\n \"Time customers have to pay an order before the offer expires by default.\": [\n \"\"\n ],\n \"Default wire transfer delay\": [\n \"\"\n ],\n \"Maximum time an exchange is allowed to delay wiring funds to the merchant, enabling it to aggregate smaller payments into larger wire transfers and reducing wire fees.\": [\n \"\"\n ],\n \"Instance id\": [\n \"\"\n ],\n \"Change the authorization method use for this instance.\": [\n \"\"\n ],\n \"Manage access token\": [\n \"\"\n ],\n \"Failed to create instance\": [\n \"\"\n ],\n \"Login required\": [\n \"\"\n ],\n \"Please enter your access token.\": [\n \"\"\n ],\n \"Access Token\": [\n \"\"\n ],\n \"The request to the backend take too long and was cancelled\": [\n \"\"\n ],\n \"Diagnostic from %1$s is '%2$s'\": [\n \"\"\n ],\n \"The backend reported a problem: HTTP status #%1$s\": [\n \"\"\n ],\n \"Access denied\": [\n \"\"\n ],\n \"The access token provided is invalid.\": [\n \"\"\n ],\n \"No 'default' instance configured yet.\": [\n \"\"\n ],\n \"Create a 'default' instance to begin using the merchant backoffice.\": [\n \"\"\n ],\n \"The access token provided is invalid\": [\n \"\"\n ],\n \"Hide for today\": [\n \"\"\n ],\n \"Instance\": [\n \"\"\n ],\n \"Settings\": [\n \"\"\n ],\n \"Connection\": [\n \"\"\n ],\n \"New\": [\n \"\"\n ],\n \"List\": [\n \"\"\n ],\n \"Log out\": [\n \"\"\n ],\n \"Check your token is valid\": [\n \"\"\n ],\n \"Couldn't access the server.\": [\n \"\"\n ],\n \"Could not infer instance id from url %1$s\": [\n \"\"\n ],\n \"Server not found\": [\n \"\"\n ],\n \"Couldn't access the server\": [\n \"\"\n ],\n \"Got message %1$s from %2$s\": [\n \"\"\n ],\n \"Unexpected Error\": [\n \"\"\n ],\n \"The value %1$s is invalid for a payment url\": [\n \"\"\n ],\n \"add element to the list\": [\n \"\"\n ],\n \"add\": [\n \"\"\n ],\n \"Deleting\": [\n \"\"\n ],\n \"Changing\": [\n \"\"\n ],\n \"Order ID\": [\n \"\"\n ],\n \"Payment URL\": [\n \"\"\n ]\n }\n }\n};\n\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { h, VNode } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport langIcon from \"../../assets/icons/languageicon.svg\";\nimport { strings as messages } from \"../../i18n/strings.js\";\n\ntype LangsNames = {\n [P in keyof typeof messages]: string;\n};\n\nconst names: LangsNames = {\n es: \"Espa\u00F1ol [es]\",\n en: \"English [en]\",\n fr: \"Fran\u00E7ais [fr]\",\n de: \"Deutsch [de]\",\n sv: \"Svenska [sv]\",\n it: \"Italiano [it]\",\n};\n\nfunction getLangName(s: keyof LangsNames | string) {\n if (names[s]) return names[s];\n return s;\n}\n\nexport function LangSelector(): VNode {\n const [updatingLang, setUpdatingLang] = useState(false);\n const { lang, changeLanguage } = useTranslationContext();\n\n return (\n
    \n
    \n setUpdatingLang(!updatingLang)}\n >\n
    \n \n
    \n {getLangName(lang)}\n
    \n \n
    \n \n
    \n {updatingLang && (\n
    \n
    \n {Object.keys(messages)\n .filter((l) => l !== lang)\n .map((l) => (\n {\n changeLanguage(l);\n setUpdatingLang(false);\n }}\n >\n {getLangName(l)}\n \n ))}\n
    \n
    \n )}\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { h, VNode } from \"preact\";\nimport { LangSelector } from \"./LangSelector.js\";\nimport logo from \"../../assets/logo-2021.svg\";\n\ninterface Props {\n onMobileMenu: () => void;\n title: string;\n}\n\nexport function NavigationBar({ onMobileMenu, title }: Props): VNode {\n return (\n \n
    \n \n {title}\n \n\n {\n onMobileMenu();\n e.stopPropagation();\n }}\n >\n \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { useBackendContext } from \"../../context/backend.js\";\nimport { useConfigContext } from \"../../context/config.js\";\nimport { useInstanceKYCDetails } from \"../../hooks/instance.js\";\nimport { LangSelector } from \"./LangSelector.js\";\n\nconst GIT_HASH = typeof __GIT_HASH__ !== \"undefined\" ? __GIT_HASH__ : undefined;\nconst VERSION = typeof __VERSION__ !== \"undefined\" ? __VERSION__ : undefined;\n\ninterface Props {\n onLogout: () => void;\n mobile?: boolean;\n instance: string;\n admin?: boolean;\n mimic?: boolean;\n}\n\nexport function Sidebar({\n mobile,\n instance,\n onLogout,\n admin,\n mimic,\n}: Props): VNode {\n const config = useConfigContext();\n const backend = useBackendContext();\n const { i18n } = useTranslationContext();\n const kycStatus = useInstanceKYCDetails();\n const needKYC = kycStatus.ok && kycStatus.data.type === \"redirect\";\n\n return (\n
    \n )}\n
    \n
    \n
    \n Taler Backoffice\n
    \n \n {VERSION} ({config.version})\n
    \n
    \n
    \n
    \n {instance ? (\n \n

    \n Instance\n

    \n \n
    \n ) : undefined}\n

    \n Connection\n

    \n
      \n
    • \n
      \n \n \n \n {config.currency}\n
      \n
    • \n
    • \n
      \n \n \n \n \n {new URL(backend.url).hostname}\n \n
      \n
    • \n
    • \n
      \n \n ID\n \n \n {!instance ? \"default\" : instance}\n \n
      \n
    • \n {admin && !mimic && (\n \n

      \n Instances\n

      \n
    • \n \n \n \n \n \n New\n \n \n
    • \n
    • \n \n \n \n \n \n List\n \n \n
    • \n
      \n )}\n
    • \n onLogout()}\n >\n \n \n \n \n Log out\n \n \n
    • \n
    \n
    \n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { ComponentChildren, Fragment, h, VNode } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\nimport { AdminPaths } from \"../../AdminRoutes.js\";\nimport { InstancePaths } from \"../../InstanceRoutes.js\";\nimport { Notification } from \"../../utils/types.js\";\nimport { NavigationBar } from \"./NavigationBar.js\";\nimport { Sidebar } from \"./SideBar.js\";\n\nfunction getInstanceTitle(path: string, id: string): string {\n switch (path) {\n case InstancePaths.update:\n return `${id}: Settings`;\n case InstancePaths.order_list:\n return `${id}: Orders`;\n case InstancePaths.order_new:\n return `${id}: New order`;\n case InstancePaths.product_list:\n return `${id}: Products`;\n case InstancePaths.product_new:\n return `${id}: New product`;\n case InstancePaths.product_update:\n return `${id}: Update product`;\n case InstancePaths.reserves_new:\n return `${id}: New reserve`;\n case InstancePaths.reserves_list:\n return `${id}: Reserves`;\n case InstancePaths.transfers_list:\n return `${id}: Transfers`;\n case InstancePaths.transfers_new:\n return `${id}: New transfer`;\n case InstancePaths.webhooks_list:\n return `${id}: Webhooks`;\n case InstancePaths.webhooks_new:\n return `${id}: New webhook`;\n case InstancePaths.webhooks_update:\n return `${id}: Update webhook`;\n case InstancePaths.templates_new:\n return `${id}: New template`;\n case InstancePaths.templates_update:\n return `${id}: Update template`;\n case InstancePaths.templates_list:\n return `${id}: Templates`;\n case InstancePaths.templates_use:\n return `${id}: Use template`;\n default:\n return \"\";\n }\n}\n\nfunction getAdminTitle(path: string, instance: string) {\n if (path === AdminPaths.new_instance) return `New instance`;\n if (path === AdminPaths.list_instances) return `Instances`;\n return getInstanceTitle(path, instance);\n}\n\ninterface MenuProps {\n title?: string;\n path: string;\n instance: string;\n admin?: boolean;\n onLogout?: () => void;\n setInstanceName: (s: string) => void;\n}\n\nfunction WithTitle({\n title,\n children,\n}: {\n title: string;\n children: ComponentChildren;\n}): VNode {\n useEffect(() => {\n document.title = `Taler Backoffice: ${title}`;\n }, [title]);\n return {children};\n}\n\nexport function Menu({\n onLogout,\n title,\n instance,\n path,\n admin,\n setInstanceName,\n}: MenuProps): VNode {\n const [mobileOpen, setMobileOpen] = useState(false);\n\n const titleWithSubtitle = title\n ? title\n : !admin\n ? getInstanceTitle(path, instance)\n : getAdminTitle(path, instance);\n const adminInstance = instance === \"default\";\n const mimic = admin && !adminInstance;\n return (\n \n setMobileOpen(false)}\n >\n setMobileOpen(!mobileOpen)}\n title={titleWithSubtitle}\n />\n\n {onLogout && (\n \n )}\n\n {mimic && (\n \n )}\n
    \n \n );\n}\n\ninterface NotYetReadyAppMenuProps {\n title: string;\n onLogout?: () => void;\n}\n\ninterface NotifProps {\n notification?: Notification;\n}\nexport function NotificationCard({\n notification: n,\n}: NotifProps): VNode | null {\n if (!n) return null;\n return (\n
    \n
    \n
    \n \n
    \n

    {n.message}

    \n
    \n {n.description && (\n
    \n
    {n.description}
    \n {n.details &&
    {n.details}
    }\n
    \n )}\n \n
    \n
    \n
    \n );\n}\n\nexport function NotYetReadyAppMenu({\n onLogout,\n title,\n}: NotYetReadyAppMenuProps): VNode {\n const [mobileOpen, setMobileOpen] = useState(false);\n\n useEffect(() => {\n document.title = `Taler Backoffice: ${title}`;\n }, [title]);\n\n return (\n setMobileOpen(false)}\n >\n setMobileOpen(!mobileOpen)}\n title={title}\n />\n {onLogout && (\n \n )}\n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\nimport { useTranslationContext } from \"@gnu-taler/web-util/lib/index.browser\";\nimport { createHashHistory } from \"history\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { Router, Route, route } from \"preact-router\";\nimport { useState } from \"preact/hooks\";\nimport {\n NotificationCard,\n NotYetReadyAppMenu,\n} from \"./components/menu/index.js\";\nimport { useBackendContext } from \"./context/backend.js\";\nimport { useBackendInstancesTestForAdmin } from \"./hooks/backend.js\";\nimport { InstanceRoutes } from \"./InstanceRoutes.js\";\nimport LoginPage from \"./paths/login/index.js\";\nimport { INSTANCE_ID_LOOKUP } from \"./utils/constants.js\";\n\nexport function ApplicationReadyRoutes(): VNode {\n const { i18n } = useTranslationContext();\n const {\n url: backendURL,\n updateLoginStatus,\n clearAllTokens,\n } = useBackendContext();\n\n const result = useBackendInstancesTestForAdmin();\n\n const clearTokenAndGoToRoot = () => {\n clearAllTokens();\n route(\"/\");\n };\n\n if (result.clientError && result.isUnauthorized) {\n return (\n \n \n \n \n \n );\n }\n\n if (result.loading) return ;\n\n let admin = true;\n let instanceNameByBackendURL;\n\n if (!result.ok) {\n const path = new URL(backendURL).pathname;\n const match = INSTANCE_ID_LOOKUP.exec(path);\n if (!match || !match[1]) {\n // this should be rare because\n // query to /config is ok but the URL\n // does not match our pattern\n return (\n \n \n \n \n \n );\n }\n\n admin = false;\n instanceNameByBackendURL = match[1];\n }\n\n const history = createHashHistory();\n return (\n \n \n \n );\n}\n\nfunction DefaultMainRoute({\n instance,\n admin,\n instanceNameByBackendURL,\n url, //from preact-router\n}: any): VNode {\n const [instanceName, setInstanceName] = useState(\n instanceNameByBackendURL || instance || \"default\",\n );\n\n return (\n \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\n/**\n *\n * @author Sebastian Javier Marchano (sebasjm)\n */\n\nimport {\n TranslationProvider,\n useTranslationContext,\n} from \"@gnu-taler/web-util/lib/index.browser\";\nimport { Fragment, h, VNode } from \"preact\";\nimport { route } from \"preact-router\";\nimport { useMemo } from \"preact/hooks\";\nimport { ApplicationReadyRoutes } from \"./ApplicationReadyRoutes.js\";\nimport { Loading } from \"./components/exception/loading.js\";\nimport {\n NotificationCard,\n NotYetReadyAppMenu,\n} from \"./components/menu/index.js\";\nimport {\n BackendContextProvider,\n useBackendContext,\n} from \"./context/backend.js\";\nimport { ConfigContextProvider } from \"./context/config.js\";\nimport { useBackendConfig } from \"./hooks/backend.js\";\nimport { strings } from \"./i18n/strings.js\";\nimport LoginPage from \"./paths/login/index.js\";\n\nexport function Application(): VNode {\n return (\n // \n \n \n \n \n \n // \n );\n}\n\nfunction ApplicationStatusRoutes(): VNode {\n const { updateLoginStatus, triedToLog } = useBackendContext();\n const result = useBackendConfig();\n const { i18n } = useTranslationContext();\n\n const updateLoginInfoAndGoToRoot = (url: string, token?: string) => {\n updateLoginStatus(url, token);\n route(\"/\");\n };\n\n const { currency, version } = result.ok\n ? result.data\n : { currency: \"unknown\", version: \"unknown\" };\n const ctx = useMemo(() => ({ currency, version }), [currency, version]);\n\n if (!triedToLog) {\n return (\n \n \n \n \n );\n }\n\n if (result.clientError && result.isUnauthorized)\n return (\n \n \n \n \n );\n\n if (result.clientError && result.isNotfound)\n return (\n \n \n \n \n \n );\n\n if (result.serverError)\n return (\n \n \n \n \n \n );\n\n if (result.loading) return ;\n\n if (!result.ok)\n return (\n \n \n \n \n \n );\n\n return (\n
    \n \n \n \n
    \n );\n}\n", "/*\n This file is part of GNU Taler\n (C) 2021-2023 Taler Systems S.A.\n\n GNU Taler is free software; you can redistribute it and/or modify it under the\n terms of the GNU General Public License as published by the Free Software\n Foundation; either version 3, or (at your option) any later version.\n\n GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along with\n GNU Taler; see the file COPYING. If not, see \n */\n\nimport { Application } from \"./Application.js\";\n\nimport { h, render } from \"preact\";\nimport \"./scss/main.scss\";\n\nconst app = document.getElementById(\"app\");\n\nrender(, app as any);\n"], + "mappings": "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EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,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A,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA;AAAA,EAEJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA;AAAA,EAEJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EAC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", "names": ["undefined", "v", "n", "trim", "i", "x", "add", "a", "b", "r", "base", "sum", "l", "difference", "j", "y", "d", "c", "l2", "q", "self", "_2", "t", "p", "e", "split", "isValid", "max", "min", "_", "i", "l", "Jed", "i18n", "x", "k", "match", "n", "p", "hash", "self", "table", "a", "r", "lexer", "c", "object", "Symbol", "Symbol", "e", "Symbol", "object", "isObject", "isObject", "isFunction", "e", "isFunction", "isObject", "getValue", "object", "getValue", "object", "array", "Map", "Map", "map", "cache", "cache", "string", "match", "number", "array", "Symbol", "symbolToString", "toString", "toString", "object", "object", "has", "object", "e", "object", "object", "n", "Buffer", "e", "object", "isFunction", "object", "object", "Map", "array", "cache", "array", "othValue", "Uint8Array", "map", "set", "Symbol", "Uint8Array", "object", "convert", "array", "object", "array", "object", "object", "object", "DataView", "Promise", "Set", "WeakMap", "DataView", "Map", "Promise", "Set", "WeakMap", "object", "object", "isObject", "object", "object", "object", "object", "object", "object", "object", "object", "object", "object", "mapValues", "object", "split", "getter", "forEach", "array", "object", "toString", "string", "string", "string", "string", "toString", "string", "string", "snakeCase", "array", "array", "string", "string", "string", "string", "toString", "string", "toString", "string", "camelCase", "mapKeys", "object", "toposort", "i", "e", "qrcode", "r", "c", "i", "j", "typeNumber", "errorCorrectionLevel", "x", "y", "s", "r2", "p", "b", "unicodeMap", "b2", "b3", "k", "v", "d", "a", "n", "_num", "e", "num", "_this", "data", "stringToBytes", "encode", "decode", "table", "slice", "options", "vnodeId", "isValidElement", "rerenderQueue", "prevDebounce", "i", "EMPTY_OBJ", "EMPTY_ARR", "IS_NON_DIMENSIONAL", "assign", "obj", "props", "removeNode", "node", "parentNode", "removeChild", "createElement", "type", "children", "key", "ref", "normalizedProps", "arguments", "length", "call", "defaultProps", "createVNode", "original", "vnode", "__k", "__", "__b", "__e", "__d", "__c", "__h", "constructor", "__v", "Fragment", "props", "children", "Component", "context", "this", "getDomSibling", "vnode", "childIndex", "__", "__k", "indexOf", "sibling", "length", "__e", "type", "updateParentDomPointers", "i", "child", "__c", "base", "enqueueRender", "c", "__d", "rerenderQueue", "push", "process", "prevDebounce", "options", "debounceRendering", "setTimeout", "queue", "__r", "sort", "a", "b", "__v", "__b", "some", "component", "commitQueue", "oldVNode", "oldDom", "parentDom", "__P", "assign", "diff", "ownerSVGElement", "__h", "commitRoot", "diffChildren", "renderResult", "newParentVNode", "oldParentVNode", "globalContext", "isSvg", "excessDomChildren", "isHydrating", "j", "childVNode", "newDom", "firstChildDom", "refs", "oldChildren", "EMPTY_ARR", "oldChildrenLength", "createVNode", "Array", "isArray", "key", "ref", "EMPTY_OBJ", "reorderChildren", "placeChild", "parentNode", "unmount", "applyRef", "tmp", "toChildArray", "out", "nextDom", "sibDom", "outer", "appendChild", "nextSibling", "insertBefore", "diffProps", "dom", "newProps", "oldProps", "hydrate", "setProperty", "setStyle", "style", "value", "IS_NON_DIMENSIONAL", "test", "name", "oldValue", "useCapture", "o", "cssText", "replace", "toLowerCase", "slice", "l", "addEventListener", "eventProxyCapture", "eventProxy", "removeEventListener", "e", "removeAttribute", "setAttribute", "event", "newVNode", "isNew", "oldState", "snapshot", "clearProcessingException", "provider", "componentContext", "renderHook", "count", "newType", "constructor", "contextType", "__E", "prototype", "render", "doRender", "sub", "state", "_sb", "__s", "getDerivedStateFromProps", "componentWillMount", "componentDidMount", "componentWillReceiveProps", "shouldComponentUpdate", "forEach", "componentWillUpdate", "componentDidUpdate", "getChildContext", "getSnapshotBeforeUpdate", "diffElementNodes", "diffed", "root", "cb", "call", "oldHtml", "newHtml", "nodeType", "localName", "document", "createTextNode", "createElementNS", "createElement", "is", "data", "childNodes", "dangerouslySetInnerHTML", "attributes", "__html", "innerHTML", "removeNode", "checked", "current", "parentVNode", "skipRemove", "r", "componentWillUnmount", "replaceNode", "firstChild", "cloneElement", "vnode", "props", "children", "key", "ref", "i", "normalizedProps", "assign", "arguments", "length", "slice", "call", "createVNode", "type", "createContext", "defaultValue", "contextId", "context", "__c", "__", "Consumer", "contextValue", "Provider", "subs", "ctx", "this", "getChildContext", "shouldComponentUpdate", "_props", "value", "some", "enqueueRender", "sub", "c", "push", "old", "componentWillUnmount", "splice", "indexOf", "contextType", "EMPTY_ARR", "options", "__e", "error", "oldVNode", "errorInfo", "component", "ctor", "handled", "constructor", "getDerivedStateFromError", "setState", "__d", "componentDidCatch", "__E", "e", "vnodeId", "isValidElement", "Component", "prototype", "update", "callback", "s", "__s", "state", "__v", "_sb", "forceUpdate", "render", "Fragment", "rerenderQueue", "process", "__r", "currentIndex", "currentComponent", "previousComponent", "prevRaf", "currentHook", "afterPaintEffects", "EMPTY", "oldBeforeDiff", "options", "oldBeforeRender", "oldAfterDiff", "diffed", "oldCommit", "__c", "oldBeforeUnmount", "unmount", "getHookState", "index", "type", "__h", "hooks", "__H", "__", "length", "push", "__V", "useState", "initialState", "useReducer", "invokeOrReturn", "reducer", "init", "hookState", "_reducer", "action", "currentValue", "__N", "nextValue", "setState", "_hasScuFromHooks", "prevScu", "shouldComponentUpdate", "p", "s", "c", "stateHooks", "filter", "x", "every", "call", "this", "shouldUpdate", "forEach", "hookItem", "props", "useEffect", "callback", "args", "state", "__s", "argsChanged", "_pendingArgs", "useLayoutEffect", "useRef", "initialValue", "useMemo", "current", "useMemo", "factory", "args", "state", "getHookState", "currentIndex", "argsChanged", "__V", "_pendingArgs", "__h", "useCallback", "callback", "currentHook", "useContext", "context", "provider", "currentComponent", "__c", "c", "__", "sub", "props", "value", "useDebugValue", "formatter", "options", "flushAfterPaintEffects", "component", "afterPaintEffects", "shift", "__H", "forEach", "invokeCleanup", "invokeEffect", "__h", "e", "options", "__e", "__b", "vnode", "currentComponent", "oldBeforeDiff", "oldBeforeRender", "currentIndex", "hooks", "__c", "previousComponent", "__", "hookItem", "__N", "EMPTY", "_pendingArgs", "diffed", "oldAfterDiff", "c", "length", "push", "prevRaf", "requestAnimationFrame", "afterNextFrame", "__V", "commitQueue", "some", "filter", "cb", "__v", "oldCommit", "unmount", "oldBeforeUnmount", "hasErrored", "s", "HAS_RAF", "callback", "raf", "done", "clearTimeout", "timeout", "cancelAnimationFrame", "setTimeout", "hook", "comp", "cleanup", "argsChanged", "oldArgs", "newArgs", "arg", "index", "invokeOrReturn", "f", "r", "i", "x", "n", "I", "h", "l", "y", "d", "x", "y", "r", "a", "i", "o", "v", "c", "p", "q", "b", "t", "n", "j", "m", "d", "A", "M", "t2", "t3", "t22", "b2", "b3", "b4", "m", "n", "i", "j", "h", "l", "a", "b", "c", "d", "x", "r", "p", "q", "e", "f", "g", "t", "M", "A", "s", "L", "r", "x", "i", "j", "k", "r", "p", "q", "t", "M", "A", "I", "s", "m", "n", "i", "t", "h", "p", "q", "i", "n", "b", "h", "x", "z", "i", "o", "y", "m", "n", "h", "r", "j", "p", "x", "n", "i", "v", "TalerErrorCode", "c", "p", "x", "c", "x", "c", "x", "c", "e", "x", "a", "b", "n", "r", "s", "r2", "e", "a2", "x2", "i", "BackupOperationStatus", "BackupWgType", "BackupCoinSourceType", "BackupRefreshReason", "BackupRefundState", "BackupProposalStatus", "array", "string", "counter", "k", "i", "n", "j", "w", "t", "m", "q", "string", "p", "i", "c", "a", "b", "R", "n", "counter", "number", "e", "base", "res", "v", "URLSearchParams", "e", "s", "i", "s2", "LibtoolVersion", "v", "NotificationType", "K", "w", "v", "p", "a", "b", "c", "d", "e", "f", "g", "h", "u", "i", "j", "t2", "h", "blockSize", "k", "i", "b2", "TalerProtocolTimestamp", "now", "s", "t2", "Duration", "now", "s", "i", "d2", "n", "d", "AbsoluteTime", "t2", "difference", "t", "at", "_a", "DenomKeyType", "t", "DenominationPubKey", "p2", "_a", "ExchangeProtocolVersion", "MerchantProtocolVersion", "LogLevel", "e", "_a", "location", "n", "a", "d", "v", "N", "i", "j", "s", "c", "p", "hash", "d", "n", "TalerSignaturePurpose", "c", "p", "x", "bigint", "Edx25519", "L", "a", "AgeRestriction", "m", "i", "c2", "k2", "d", "ContractFormatTag", "decode", "encode", "p", "i", "d", "encode", "decode", "p", "e", "prefix", "p", "s", "URLSearchParams", "v", "k", "ReserveTransactionType", "TalerUriType", "ExtendedStatus", "TransactionType", "WithdrawalType", "PaymentStatus", "ScopeType", "CoinStatus", "ConfirmPayResultType", "PreparePayResultType", "RefreshReason", "ExchangeTosStatus", "ExchangeEntryStatus", "RecoveryMergeStrategy", "AttentionPriority", "AttentionType", "logger", "strings", "s", "i", "c", "i", "x", "n", "c", "s", "fnutil", "f", "x", "HttpStatusCode", "logger", "_a", "CancellationToken", "logger", "ContractTermsUtil", "i", "x", "h", "k", "_a", "e", "hash", "logger", "p", "h", "initial", "ErrorType", "__async", "options", "_a", "error", "d", "q", "Context", "createContext", "initial", "useEffect", "h", "useContext", "p", "e", "isNode", "l", "r", "__async", "hasNext", "const", "EMPTY", "i", "route", "let", "c", "p", "r", "a", "b", "e", "t", "Router", "super", "canRoute", "routeTo", "location", "this", "i", "i", "k", "n", "x", "isProduction", "invariant", "prefix", "hash", "location", "e", "location", "invariant", "encodePath", "decodePath", "path", "history", "a", "b", "encodedPath", "location", "n", "useNotNullLocalStorage", "v", "p", "p", "useNotNullLocalStorage", "t", "T", "p", "c", "i", "k", "url", "token", "q", "assign", "obj", "props", "i", "shallowDiffers", "a", "b", "PureComponent", "p", "this", "props", "PureComponent", "prototype", "Component", "isPureReactComponent", "shouldComponentUpdate", "props", "state", "shallowDiffers", "this", "oldDiffHook", "options", "__b", "vnode", "type", "__f", "ref", "REACT_FORWARD_SYMBOL", "Symbol", "for", "oldCatchError", "options", "__e", "error", "newVNode", "oldVNode", "errorInfo", "then", "component", "vnode", "__c", "__k", "oldUnmount", "unmount", "detachedClone", "detachedParent", "parentDom", "forEach", "effect", "__H", "assign", "__P", "map", "child", "removeOriginal", "originalParent", "__v", "insertBefore", "__d", "Suspense", "this", "__u", "_suspenders", "suspended", "__", "__a", "SuspenseList", "this", "_next", "_map", "options", "unmount", "vnode", "component", "__c", "__R", "__h", "type", "oldUnmount", "Suspense", "prototype", "Component", "promise", "suspendingVNode", "suspendingComponent", "c", "_suspenders", "push", "resolve", "suspended", "__v", "resolved", "onResolved", "onSuspensionComplete", "__u", "state", "__a", "suspendedVNode", "__k", "removeOriginal", "setState", "__b", "pop", "forceUpdate", "wasHydrating", "then", "componentWillUnmount", "render", "props", "detachedParent", "document", "createElement", "detachedComponent", "detachedClone", "__O", "__P", "fallback", "Fragment", "children", "list", "child", "node", "delete", "revealOrder", "size", "length", "SuspenseList", "prototype", "Component", "__a", "child", "list", "this", "delegated", "suspended", "__v", "node", "_map", "get", "unsuspend", "wrappedUnsuspend", "props", "revealOrder", "push", "resolve", "render", "_next", "Map", "children", "toChildArray", "reverse", "i", "length", "set", "componentDidUpdate", "componentDidMount", "_this", "forEach", "REACT_ELEMENT_TYPE", "Symbol", "for", "CAMEL_PROPS", "IS_DOM", "document", "onChangeInputType", "type", "test", "Component", "prototype", "isReactComponent", "forEach", "key", "Object", "defineProperty", "configurable", "get", "this", "set", "v", "writable", "value", "oldEventHook", "options", "event", "empty", "isPropagationStopped", "cancelBubble", "isDefaultPrevented", "defaultPrevented", "e", "persist", "nativeEvent", "currentComponent", "classNameDescriptor", "class", "oldVNodeHook", "vnode", "type", "props", "normalizedProps", "nonCustomElement", "indexOf", "i", "IS_DOM", "test", "onChangeInputType", "toLowerCase", "CAMEL_PROPS", "replace", "multiple", "Array", "isArray", "toChildArray", "children", "child", "selected", "defaultValue", "className", "enumerable", "$$typeof", "REACT_ELEMENT_TYPE", "oldBeforeRender", "__r", "__c", "P", "e", "_", "t", "f", "y", "g", "n", "v", "a", "b", "isDate", "h", "s", "cache", "error", "_a", "i", "mutate", "u2", "f2", "q", "p", "T", "k", "info", "_b", "now", "x", "Context", "q", "cache", "mutate", "p", "h", "error", "T", "useSWR", "mutate", "error", "_a", "s", "object", "errors", "e", "q", "errors", "object", "value", "defaultToString", "f", "defaultFromString", "v", "initial", "names", "f", "v", "_a", "error", "e", "i18n", "p", "errors", "k", "p", "error", "_a", "i18n", "Context", "q", "defaultToString", "f", "defaultFromString", "v", "error", "e", "v", "number", "_typeof", "obj", "date", "date", "_typeof", "obj", "add", "date", "date", "date", "_typeof", "obj", "date", "difference", "date", "date", "date", "difference", "difference", "MILLISECONDS_IN_DAY", "date", "difference", "date", "date", "date", "date", "defaultOptions", "date", "date", "defaultOptions", "defaultOptions", "date", "MILLISECONDS_IN_WEEK", "date", "number", "y", "date", "M", "d", "a", "h", "H", "m", "s", "S", "formatters", "G", "date", "localize", "y", "Y", "u", "Q", "q", "M", "L", "w", "I", "d", "D", "e", "c", "i", "a", "b", "B", "h", "H", "K", "k", "m", "s", "S", "X", "x", "O", "z", "t", "T", "delimiter", "dateLongFormatter", "formatLong", "timeLongFormatter", "dateTimeLongFormatter", "format", "formatDistance", "format", "formatRelative", "ordinalNumber", "number", "string", "object", "array", "string", "valueCallback", "defaultOptions", "locale", "defaultOptions", "locale", "format", "delimiter", "m", "add", "date", "date", "i18n", "initial", "p", "e", "n", "p", "i18n", "error", "name", "value", "v", "f", "readField", "object", "p", "error", "_", "i18n", "p", "_a", "e", "f", "b", "i18n", "v", "v", "defaultToString", "f", "convert", "defaultToString", "error", "e", "v", "i", "i18n", "e", "code", "number", "_a", "p", "errors", "k", "T", "x", "v", "i", "f", "s", "i18n", "_a", "p", "i18n", "errors", "k", "p", "i18n", "d", "error", "p", "h", "i18n", "e", "i", "p", "i18n", "i", "p", "i18n", "error", "i18n", "EmptyTable", "e", "i", "useSWR", "error", "p", "h", "useSWR", "mutate", "r", "p", "d", "_a", "error", "f", "v", "error", "c", "e", "date", "i", "p", "i18n", "error", "d", "InputNumber", "v", "p", "errors", "i18n", "p", "errors", "i18n", "v", "InputNumber", "map", "_", "i", "value", "result", "has", "options", "base", "_extends", "i", "_", "errors", "i", "prefix", "_extends", "i", "mapValues", "error", "import_property_expr", "e", "_extends", "i", "base", "v", "schema", "value", "s", "n", "c", "create", "v", "create", "isNaN", "create", "date", "i", "k", "isDate", "create", "v", "import_has", "import_mapValues", "import_property_expr", "import_has", "import_property_expr", "a", "b", "has", "toposort", "findIndex", "a", "b", "_extends", "i", "v", "has", "errors", "_", "mapKeys", "camelCase", "snakeCase", "base", "mapValues", "create", "_extends", "i", "create", "v", "errors", "path", "_", "a", "base", "p", "v", "e", "create", "p", "d", "p", "errors", "k", "T", "i18n", "v", "i", "f", "p", "h", "i18n", "initial", "errors", "T", "k", "InputNumber", "ProductList", "i18n", "a", "i", "a", "b", "r", "with_defaults", "add", "stringIsValidJSON", "e", "CreatePage", "_a", "p", "i18n", "errors", "k", "v", "h", "ProductList", "InputNumber", "p", "CreatePage", "error", "error", "CardTable", "p", "i18n", "Table", "o", "EmptyTable", "i", "r", "c", "errors", "k", "d", "e", "a", "b", "p", "h", "i", "i18n", "_a", "p", "ProductList", "e", "w", "p", "i18n", "error", "ListPage", "i18n", "p", "e", "CardTable", "p", "date", "i18n", "e", "ListPage", "o", "error", "error", "errors", "p", "i18n", "s", "InputNumber", "ProductForm", "initial", "p", "errors", "k", "T", "h", "i18n", "InputNumber", "CreatePage", "i18n", "ProductForm", "p", "i18n", "CreatePage", "error", "CardTable", "p", "i18n", "Table", "EmptyTable", "i", "r", "errors", "k", "InputNumber", "c", "ProductList", "p", "i18n", "CardTable", "error", "i18n", "ProductForm", "p", "i18n", "error", "useSWR", "mutate", "error", "_", "h", "qrcode", "CreatedSuccessfully", "p", "i18n", "i18n", "p", "h", "errors", "k", "r", "wireMethods", "a", "match", "CreatePage", "p", "i18n", "CreatedSuccessfully", "CreatePage", "r", "error", "DetailPage", "i18n", "p", "Table", "EmptyTable", "t", "i", "DetailPage", "CreatedSuccessfully", "p", "i18n", "errors", "k", "CreatedSuccessfully", "CardTable", "i18n", "Table", "EmptyTable", "i", "p", "i18n", "error", "CardTable", "r", "o", "useSWR", "p", "h", "error", "d", "encTable", "d", "v", "CreatePage", "i18n", "p", "errors", "k", "InputNumber", "v", "e", "s", "p", "i18n", "CreatePage", "error", "i18n", "p", "errors", "k", "p", "i18n", "error", "_a", "i18n", "p", "errors", "k", "p", "CardTable", "p", "i18n", "Table", "EmptyTable", "Table", "i18n", "i", "EmptyTable", "ListPage", "i18n", "CardTable", "o", "p", "i18n", "ListPage", "e", "error", "algorithms", "algorithmsNames", "UpdatePage", "i18n", "p", "errors", "k", "InputNumber", "v", "e", "s", "p", "i18n", "UpdatePage", "error", "useSWR", "p", "h", "error", "CreatePage", "i18n", "p", "errors", "k", "p", "i18n", "CreatePage", "error", "CardTable", "p", "i18n", "Table", "d", "EmptyTable", "Table", "i18n", "i", "EmptyTable", "ListPage", "i18n", "CardTable", "o", "p", "i18n", "ListPage", "e", "error", "validMethod", "UpdatePage", "i18n", "p", "errors", "k", "p", "i18n", "UpdatePage", "error", "useSWR", "p", "h", "CreatePage", "i18n", "p", "errors", "k", "CreateTransfer", "p", "i18n", "a", "CreatePage", "error", "CardTable", "p", "i18n", "Table", "EmptyTable", "Table", "i18n", "i", "EmptyTable", "ListPage", "i18n", "CardTable", "o", "p", "s", "a", "ListPage", "v", "_a", "a", "t", "match", "UpdatePage", "token", "value", "p", "i18n", "errors", "k", "Update", "p", "i18n", "UpdatePage", "d", "error", "getTokenValuePart", "t", "match", "r", "s", "p", "i18n", "e", "noop", "_", "T", "i18n", "p", "h", "token", "error", "_a", "e", "id", "Update", "noop", "ProductList", "CreateTransfer", "_b", "s", "p", "l", "e", "i18n", "e", "h", "p", "e", "n", "i18n", "match", "history", "p", "_a", "i18n"] } -- cgit v1.2.3