@foxy.io/elements 1.47.0-beta.1 → 1.47.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/foxy-native-integration-form.js +1 -1
- package/dist/cdn/foxy-store-form.js +1 -1
- package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
- package/dist/cdn/foxy-webhook-card.js +1 -1
- package/dist/cdn/foxy-webhook-form.js +1 -1
- package/dist/cdn/shared-589d66fe.js +1 -0
- package/dist/cdn/translations/admin-subscription-form/en.json +16 -16
- package/dist/cdn/translations/api-browser/en.json +1 -1
- package/dist/cdn/translations/cart-form/en.json +13 -13
- package/dist/cdn/translations/coupon-code-form/en.json +1 -1
- package/dist/cdn/translations/coupon-form/en.json +4 -4
- package/dist/cdn/translations/customer/en.json +4 -4
- package/dist/cdn/translations/customer-portal/en.json +2 -2
- package/dist/cdn/translations/customer-portal-settings-form/en.json +2 -2
- package/dist/cdn/translations/experimental-add-to-cart-builder/en.json +4 -4
- package/dist/cdn/translations/gift-card-code-form/en.json +2 -2
- package/dist/cdn/translations/gift-card-form/en.json +5 -5
- package/dist/cdn/translations/item-category-form/en.json +7 -7
- package/dist/cdn/translations/item-form/en.json +5 -5
- package/dist/cdn/translations/native-integration-form/en.json +2 -2
- package/dist/cdn/translations/pagination/en.json +1 -1
- package/dist/cdn/translations/payment-method-card/en.json +1 -1
- package/dist/cdn/translations/store-shipping-method-form/en.json +4 -4
- package/dist/cdn/translations/subscription-form/en.json +3 -3
- package/dist/cdn/translations/tax-form/en.json +2 -2
- package/dist/cdn/translations/template-config-form/en.json +21 -21
- package/dist/cdn/translations/template-set-form/en.json +1 -1
- package/dist/cdn/translations/transaction/en.json +14 -14
- package/dist/cdn/translations/update-payment-method-form/en.json +1 -1
- package/dist/cdn/translations/webhook-form/en.json +5 -3
- package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js +5 -12
- package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js.map +1 -1
- package/dist/elements/public/StoreForm/StoreForm.js +2 -10
- package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +2 -10
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
- package/dist/elements/public/WebhookCard/WebhookCard.js +8 -5
- package/dist/elements/public/WebhookCard/WebhookCard.js.map +1 -1
- package/dist/elements/public/WebhookForm/WebhookForm.js +1 -0
- package/dist/elements/public/WebhookForm/WebhookForm.js.map +1 -1
- package/dist/utils/is-http-url.d.ts +1 -0
- package/dist/utils/is-http-url.js +19 -0
- package/dist/utils/is-http-url.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreForm/StoreForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { VanillaHCaptchaWebComponent } from 'vanilla-hcaptcha';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { Resource, Graph } from '@foxy.io/sdk/core';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport type {\n ParsedCustomDisplayIdConfig,\n ParsedSmtpConfig,\n ParsedWebhookKey,\n Data,\n} from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nimport slugify from '@sindresorhus/slugify';\nimport memoize from 'lodash-es/memoize';\nimport merge from 'lodash-es/merge';\n\nconst NS = 'store-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\nfunction parseWebhookKey(webhookKey: string): ParsedWebhookKey | null {\n try {\n return JSON.parse(webhookKey);\n } catch {\n return null;\n }\n}\n\n/**\n * Form element for store settings (`fx:store`).\n *\n * @element foxy-store-form\n * @since 1.21.0\n */\nexport class StoreForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n reportingStoreDomainExists: { attribute: 'reporting-store-domain-exists' },\n customerPasswordHashTypes: { attribute: 'customer-password-hash-types' },\n shippingAddressTypes: { attribute: 'shipping-address-types' },\n storeSecretsPageUrl: { attribute: 'store-secrets-page-url' },\n hCaptchaSiteKey: { attribute: 'h-captcha-site-key' },\n storeVersions: { attribute: 'store-versions' },\n checkoutTypes: { attribute: 'checkout-types' },\n localeCodes: { attribute: 'locale-codes' },\n languages: {},\n timezones: {},\n countries: {},\n regions: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data, StoreForm> {\n const isURL = memoize((value: string) => {\n try {\n return Boolean(new URL(value));\n } catch {\n return false;\n }\n });\n\n return [\n ({ store_name: v }) => !!v || 'store-name:v8n_required',\n ({ store_name: v }) => (v && v.length <= 50) || 'store-name:v8n_too_long',\n ({ store_domain: storeDomain, use_remote_domain: useRemoteDomain }) => {\n if (!storeDomain) return 'store-domain:v8n_required';\n if (storeDomain.length > 100) return 'store-domain:v8n_too_long';\n\n const [tld, ...slds] = storeDomain.split('.').reverse();\n\n if (\n useRemoteDomain &&\n slds.length > 1 &&\n slds.every(s => /^(?!-)[a-z0-9-]{1,63}(?<!-)$/.test(s)) &&\n /^[a-z]{2,63}$/.test(tld)\n ) {\n return true;\n }\n\n if (\n !useRemoteDomain &&\n slds.length === 0 &&\n /^(?!-)[a-z0-9-]{1,63}(?<!-)$/.test(storeDomain)\n ) {\n return true;\n }\n\n return 'store-domain:v8n_invalid';\n },\n ({ store_url: v }) => !!v || 'store-url:v8n_required',\n ({ store_url: v }) => (v && v.length <= 300) || 'store-url:v8n_too_long',\n ({ store_url: v }) => !v || isURL(v) || 'store-url:v8n_invalid',\n ({ receipt_continue_url: v }) => !v || v.length <= 300 || 'receipt-continue-url:v8n_too_long',\n ({ store_email: v }) => !!v || 'store-email:v8n_required',\n ({ store_email: v }) => (v && v.length <= 300) || 'store-email:v8n_too_long',\n ({ from_email: v }) => !v || v.length <= 100 || 'from-email:v8n_too_long',\n ({ smtp_config: v }) => !v || v.length <= 1000 || 'use-smtp-config:v8n_too_long',\n ({ postal_code: v }) => !!v || 'postal-code:v8n_required',\n ({ postal_code: v }) => (v && v.length <= 50) || 'postal-code:v8n_too_long',\n ({ region: v }) => !!v || 'region:v8n_required',\n ({ region: v }) => (v && v.length <= 100) || 'region:v8n_too_long',\n ({ country: v }) => !!v || 'country:v8n_required',\n ({ logo_url: v }) => !v || v.length <= 200 || 'logo-url:v8n_too_long',\n\n ({ webhook_url: v, use_webhook }) => !use_webhook || !!v || 'webhook-url:v8n_required',\n ({ webhook_url: v, use_webhook }) => {\n return !use_webhook || !v || v.length <= 300 || 'webhook-url:v8n_too_long';\n },\n\n ({ webhook_key: v }) => v === void 0 || v.length > 0 || 'webhook-key:v8n_required',\n ({ webhook_key: v }, host) => {\n // TODO remove the line below when API limit is corrected to match the legacy admin\n if (host.data?.webhook_key === v) return true;\n return !v || v.length <= 100 || 'webhook-key:v8n_too_long';\n },\n\n ({ webhook_key: v, use_webhook: on }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = 'use-webhook:v8n_webhook_key_required';\n return !on || !!(parsedV ? parsedV.xml_datafeed : v) || code;\n },\n\n ({ webhook_key: v, use_cart_validation: on }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = 'use-cart-validation:v8n_webhook_key_required';\n return !on || !!(parsedV ? parsedV.cart_signing : v) || code;\n },\n\n ({ webhook_key: v, use_single_sign_on: on }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = 'use-single-sign-on:v8n_webhook_key_required';\n return !on || !!(parsedV ? parsedV.sso : v) || code;\n },\n\n ...(['xml_datafeed', 'cart_signing', 'api_legacy', 'sso'] as const)\n .map(prop => [\n ({ webhook_key: v }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = `webhook-key-${prop.replace(/_/g, '-')}:v8n_required`;\n return !parsedV || !!parsedV[prop] || code;\n },\n ({ webhook_key: v }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = `webhook-key-${prop.replace(/_/g, '-')}:v8n_too_long`;\n return !parsedV || parsedV[prop].length <= 100 || code;\n },\n ])\n .flat(),\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !!v || 'single-sign-on-url:v8n_required';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !v || v.length <= 300 || 'single-sign-on-url:v8n_too_long';\n },\n\n ({ customer_password_hash_config: v }) => {\n return !v || String(v).length <= 100 || 'customer-password-hash-config:v8n_too_long';\n },\n\n ({ unified_order_entry_password: v }) => {\n return !v || String(v).length <= 100 || 'unified-order-entry-password:v8n_too_long';\n },\n ];\n }\n\n /** URL of the `fx:reporting_store_domain_exists` endpoint. */\n reportingStoreDomainExists: string | null = null;\n\n /** URL of the `fx:customer_password_hash_types` property helper resource. */\n customerPasswordHashTypes: string | null = null;\n\n /** URL of the `fx:shipping_address_types` property helper resource. */\n shippingAddressTypes: string | null = null;\n\n /** URL of the Store Secrets settings page if you are using this form on multiple pages. */\n storeSecretsPageUrl: string | null = null;\n\n /** hCaptcha site key for signup verification. If provided, requires users to complete a captcha before creating a store. */\n hCaptchaSiteKey: string | null = null;\n\n /**\n * URL of the `fx:store_versions` property helper resource.\n * @deprecated All elements in this library are designed to work with store version 2.0.\n */\n storeVersions: string | null = null;\n\n /**\n * URL of the `fx:checkout_types` property helper resource.\n * @deprecated Checkout type is effectively controlled by the default template config.\n */\n checkoutTypes: string | null = null;\n\n /**\n * URL of the `fx:locale_codes` property helper resource.\n * @deprecated Default locale code is effectively controlled by the active template set.\n */\n localeCodes: string | null = null;\n\n /**\n * URL of the `fx:languages` property helper resource.\n * @deprecated Default language is effectively controlled by the active template set.\n */\n languages: string | null = null;\n\n /** URL of the `fx:timezones` property helper resource. */\n timezones: string | null = null;\n\n /** URL of the `fx:countries` property helper resource. */\n countries: string | null = null;\n\n /** URL of the `fx:regions` property helper resource. */\n regions: string | null = null;\n\n private readonly __currencyStyleOptions = [\n { rawLabel: '12.34', value: '101' },\n { rawLabel: 'USD 12.34', value: '001' },\n { rawLabel: '$12.34', value: '000' },\n { rawLabel: '12', value: '111' },\n { rawLabel: 'USD 12', value: '011' },\n { rawLabel: '$12', value: '010' },\n ];\n\n private readonly __currencyStyleGetValue = () => {\n const map: Record<string, string> = {\n '101': '101',\n '100': '101',\n '001': '001',\n '000': '000',\n '111': '111',\n '110': '111',\n '011': '011',\n '010': '010',\n };\n\n const selectionCode = [\n this.form.hide_currency_symbol,\n this.form.hide_decimal_characters,\n this.form.use_international_currency_symbol,\n ]\n .map(v => Number(Boolean(v)))\n .join('');\n\n return map[selectionCode];\n };\n\n private readonly __currencyStyleSetValue = (newValue: string) => {\n this.edit({\n hide_currency_symbol: Boolean(Number(newValue[0])),\n hide_decimal_characters: Boolean(Number(newValue[1])),\n use_international_currency_symbol: Boolean(Number(newValue[2])),\n });\n };\n\n private readonly __appSessionTimeOptions = [\n { value: 's', label: 'second' },\n { value: 'm', label: 'minute' },\n { value: 'h', label: 'hour' },\n { value: 'd', label: 'day' },\n ];\n\n private readonly __checkStoreDomainAvailability = async (value: string) => {\n if (this.reportingStoreDomainExists) {\n if (value === this.data?.store_domain) return true;\n\n const url = new URL(this.reportingStoreDomainExists);\n url.searchParams.set('store_domain', value);\n\n const response = await new StoreForm.API(this).fetch(url.toString());\n return response.ok || 'store-domain:v8n_unavailable';\n } else {\n throw new Error('reportingStoreDomainExists is not set.');\n }\n };\n\n private readonly __storeNameSetValue = (newValue: string) => {\n const previousSuggestedDomain = slugify(this.form.store_name ?? '');\n const currentStoreDomain = this.form.store_domain ?? '';\n const newSuggestedDomain = slugify(newValue);\n\n if (previousSuggestedDomain === currentStoreDomain) {\n this.edit({ store_domain: newSuggestedDomain });\n }\n\n this.edit({ store_name: newValue });\n };\n\n private readonly __getStoreEmailValue = (): Item[] => {\n const emails = this.form.store_email ?? '';\n return emails\n .split(',')\n .map(v => ({ value: v.trim() }))\n .filter(({ value }) => value.length > 0);\n };\n\n private readonly __setStoreEmailValue = (newValue: Item[]) => {\n this.edit({ store_email: newValue.map(v => v.value).join(',') });\n };\n\n private readonly __getUseSmtpConfigValue = () => {\n return !!this.form.smtp_config;\n };\n\n private readonly __setUseSmtpConfigValue = (newValue: boolean) => {\n if (newValue) {\n this.edit({\n smtp_config: JSON.stringify({\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n }),\n });\n } else {\n this.edit({ smtp_config: '' });\n }\n };\n\n private readonly __getAppSessionTimeValue = () => {\n const valueInSeconds = this.form.app_session_time || 43200;\n\n if (valueInSeconds % 86400 === 0) return `${valueInSeconds / 86400}d`;\n if (valueInSeconds % 3600 === 0) return `${valueInSeconds / 3600}h`;\n if (valueInSeconds % 60 === 0) return `${valueInSeconds / 60}m`;\n\n return `${valueInSeconds}s`;\n };\n\n private readonly __setAppSessionTimeValue = (newValue: string) => {\n const units = newValue[newValue.length - 1];\n const count = parseInt(newValue.substring(0, newValue.length - 1));\n const map: Record<string, number> = { d: 86400, h: 3600, m: 60, s: 1 };\n\n this.edit({ app_session_time: map[units] * count });\n };\n\n private readonly __setStoreDomainValue = (newValue: string) => {\n if (this.data) {\n if (newValue.endsWith('.foxycart.com')) {\n const domain = newValue.substring(0, newValue.length - 13);\n this.edit({ store_domain: domain, use_remote_domain: false });\n } else {\n this.edit({ store_domain: newValue, use_remote_domain: newValue.includes('.') });\n }\n } else {\n this.edit({ store_domain: newValue.split('.')[0] ?? '', use_remote_domain: false });\n }\n };\n\n private readonly __smtpConfigHostGetValue = () => {\n return this.__getSmtpConfig().host;\n };\n\n private readonly __smtpConfigHostSetValue = (newValue: string) => {\n this.__setSmtpConfig('host', newValue);\n };\n\n private readonly __smtpConfigPortGetValue = () => {\n const port = parseInt(this.__getSmtpConfig().port);\n return isNaN(port) ? undefined : port;\n };\n\n private readonly __smtpConfigPortSetValue = (newValue: number) => {\n this.__setSmtpConfig('port', String(newValue));\n };\n\n private readonly __smtpConfigUsernameGetValue = () => {\n return this.__getSmtpConfig().username;\n };\n\n private readonly __smtpConfigUsernameSetValue = (newValue: string) => {\n this.__setSmtpConfig('username', newValue);\n };\n\n private readonly __smtpConfigPasswordGetValue = () => {\n return this.__getSmtpConfig().password;\n };\n\n private readonly __smtpConfigPasswordSetValue = (newValue: string) => {\n this.__setSmtpConfig('password', newValue);\n };\n\n private readonly __smtpConfigSecurityGetValue = () => {\n return this.__getSmtpConfig().security;\n };\n\n private readonly __smtpConfigSecuritySetValue = (newValue: string) => {\n this.__setSmtpConfig('security', newValue);\n };\n\n private readonly __smtpConfigSecurityOptions = [\n { label: 'option_ssl', value: 'ssl' },\n { label: 'option_tls', value: 'tls' },\n { label: 'option_none', value: '' },\n ];\n\n private readonly __singleWebhookKeyGeneratorOptions = { length: 90, separator: '' };\n\n private readonly __jsonWebhookKeyGeneratorOptions = { length: 90, separator: '' };\n\n private readonly __useSingleWebhookKeyGetValue = () => {\n try {\n JSON.parse(this.form.webhook_key ?? '');\n return false;\n } catch {\n return true;\n }\n };\n\n private readonly __useSingleWebhookKeySetValue = (newValue: boolean) => {\n if (newValue) {\n this.edit({ webhook_key: '' });\n } else {\n const parsedKey: ParsedWebhookKey = {\n cart_signing: '',\n xml_datafeed: '',\n api_legacy: '',\n sso: '',\n };\n\n this.edit({ webhook_key: JSON.stringify(parsedKey) });\n }\n };\n\n private readonly __sendHtmlEmailOptions = [\n { label: 'option_text_only', value: 'text_only' },\n { label: 'option_text_plus_html', value: 'text_plus_html' },\n ];\n\n private readonly __sendHtmlEmailGetValue = () => {\n return this.form.send_html_email ? 'text_plus_html' : 'text_only';\n };\n\n private readonly __sendHtmlEmailSetValue = (newValue: 'text_only' | 'text_plus_html') => {\n this.edit({ send_html_email: newValue === 'text_plus_html' });\n };\n\n private __hCaptchaToken: string | null = null;\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { context: this.data?.is_active ? 'active' : 'inactive' };\n }\n\n renderBody(): TemplateResult {\n const storeDomainHelperText = this.t(\n this.form.use_remote_domain && !this.data?.use_remote_domain\n ? 'essentials-group-one.store-domain.custom_domain_note'\n : 'essentials-group-one.store-domain.helper_text'\n );\n\n const storeDomainSuffix =\n !this.form.store_domain || this.form.store_domain.includes('.') ? '' : '.foxycart.com';\n\n const customerPasswordHashTypesLoader = this.__renderLoader<Rels.CustomerPasswordHashTypes>(1);\n const shippingAddressTypesLoader = this.__renderLoader<Rels.ShippingAddressTypes>(2);\n const timezonesLoader = this.__renderLoader<Rels.Timezones>(7);\n const countriesLoader = this.__renderLoader<Rels.Countries>(8);\n const regionsLoader = this.__renderLoader<Rels.Regions>(9);\n\n const shippingAddressTypeEntries = Object.entries(\n shippingAddressTypesLoader?.data?.values ?? {}\n );\n\n const timezones = timezonesLoader?.data?.values.timezone ?? [];\n const countries = Object.values(countriesLoader?.data?.values ?? {});\n const regions = Object.values(regionsLoader?.data?.values ?? {});\n\n const customerPasswordHashTypeEntries = Object.entries(\n customerPasswordHashTypesLoader?.data?.values ?? {}\n );\n\n const customerPasswordHashTypeOptions = customerPasswordHashTypeEntries.map(v => ({\n rawLabel: v[1].description,\n value: v[0],\n }));\n\n const shippingAddressTypeOptions = shippingAddressTypeEntries.map(([value, rawLabel]) => ({\n rawLabel,\n value,\n }));\n\n const timezoneOptions = timezones.map(t => ({ rawLabel: t.description, value: t.timezone }));\n const countryOptions = countries.map(c => ({ rawLabel: c.default, value: c.cc2 }));\n const regionOptions = regions.map(r => ({ rawLabel: r.default, value: r.code }));\n\n let regionsUrl: string | undefined;\n\n try {\n const regionsURL = new URL(this.regions ?? '');\n const country = this.form.country;\n if (country) regionsURL.searchParams.set('country_code', country);\n regionsUrl = regionsURL.toString();\n } catch {\n regionsUrl = undefined;\n }\n\n const customDisplayIdConfig = this.__getCustomDisplayIdConfig();\n const transactionJournalEntriesConfig = customDisplayIdConfig.transaction_journal_entries;\n const logDetailRequestTypes = transactionJournalEntriesConfig.log_detail_request_types;\n const displayIdExamples = this.__displayIdExamples;\n const journalIdExamples = this.__journalIdExamples;\n\n const rawWebhookKey = this.data?.webhook_key ?? '';\n const parsedWebhookKey = parseWebhookKey(rawWebhookKey);\n const cartSigningKey = parsedWebhookKey?.cart_signing ?? rawWebhookKey;\n const xmlDatafeedKey = parsedWebhookKey?.xml_datafeed ?? rawWebhookKey;\n const ssoKey = parsedWebhookKey?.sso ?? rawWebhookKey;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"essentials-group-one\">\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"store-name\"\n .setValue=${this.__storeNameSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"logo-url\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n helper-text=${storeDomainHelperText}\n layout=\"summary-item\"\n suffix=${storeDomainSuffix}\n infer=\"store-domain\"\n .setValue=${this.__setStoreDomainValue}\n .checkValidityAsync=${this.reportingStoreDomainExists\n ? this.__checkStoreDomainAvailability\n : null}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"store-url\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials-group-two\">\n <foxy-internal-switch-control infer=\"is-maintenance-mode\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials-group-three\">\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"store-email\"\n .getValue=${this.__getStoreEmailValue}\n .setValue=${this.__setStoreEmailValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials-group-four\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"timezone\"\n .options=${timezoneOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"country\"\n .options=${countryOptions}\n >\n </foxy-internal-select-control>\n\n ${regionOptions.length > 0\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"region\"\n .options=${regionOptions}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"region\">\n </foxy-internal-text-control>\n `}\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"postal-code\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"currency-style\"\n .options=${this.__currencyStyleOptions}\n .getValue=${this.__currencyStyleGetValue}\n .setValue=${this.__currencyStyleSetValue}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"store-secrets\" id=\"store-secrets\">\n <foxy-internal-switch-control\n infer=\"use-single-secret\"\n .getValue=${this.__useSingleWebhookKeyGetValue}\n .setValue=${this.__useSingleWebhookKeySetValue}\n >\n </foxy-internal-switch-control>\n\n ${this.__useSingleWebhookKeyGetValue()\n ? html`\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key\"\n show-generator\n .generatorOptions=${this.__singleWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n `\n : html`\n <foxy-internal-password-control\n json-path=\"api_legacy\"\n property=\"webhook_key\"\n layout=\"summary-item\"\n infer=\"webhook-key-api-legacy\"\n show-generator\n .generatorOptions=${this.__jsonWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-password-control\n json-path=\"cart_signing\"\n property=\"webhook_key\"\n layout=\"summary-item\"\n infer=\"webhook-key-cart-signing\"\n show-generator\n .generatorOptions=${this.__jsonWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-password-control\n json-path=\"sso\"\n property=\"webhook_key\"\n layout=\"summary-item\"\n infer=\"webhook-key-sso\"\n show-generator\n .generatorOptions=${this.__jsonWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-password-control\n json-path=\"xml_datafeed\"\n property=\"webhook_key\"\n layout=\"summary-item\"\n infer=\"webhook-key-xml-datafeed\"\n show-generator\n .generatorOptions=${this.__jsonWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n `}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"emails\">\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"from-email\"\n placeholder=${this.__getStoreEmailValue()[0]?.value ??\n this.t('emails.from-email.placeholder')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-switch-control infer=\"use-email-dns\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"use-smtp-config\"\n helper-text-as-tooltip\n .getValue=${this.__getUseSmtpConfigValue}\n .setValue=${this.__setUseSmtpConfigValue}\n >\n </foxy-internal-switch-control>\n\n ${this.form.smtp_config\n ? html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"smtp-config-host\"\n .getValue=${this.__smtpConfigHostGetValue}\n .setValue=${this.__smtpConfigHostSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"smtp-config-port\"\n step=\"1\"\n min=\"0\"\n .getValue=${this.__smtpConfigPortGetValue}\n .setValue=${this.__smtpConfigPortSetValue}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"smtp-config-username\"\n .getValue=${this.__smtpConfigUsernameGetValue}\n .setValue=${this.__smtpConfigUsernameSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"smtp-config-password\"\n .getValue=${this.__smtpConfigPasswordGetValue}\n .setValue=${this.__smtpConfigPasswordSetValue}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"smtp-config-security\"\n .getValue=${this.__smtpConfigSecurityGetValue}\n .setValue=${this.__smtpConfigSecuritySetValue}\n .options=${this.__smtpConfigSecurityOptions}\n >\n </foxy-internal-select-control>\n `\n : ''}\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"send-html-email\"\n .getValue=${this.__sendHtmlEmailGetValue}\n .setValue=${this.__sendHtmlEmailSetValue}\n .options=${this.__sendHtmlEmailOptions}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"shipping\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"shipping-address-type\"\n .options=${shippingAddressTypeOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-switch-control infer=\"features-multiship\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control infer=\"require-signed-shipping-rates\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"cart\">\n <foxy-internal-frequency-control\n layout=\"summary-item\"\n infer=\"app-session-time\"\n .getValue=${this.__getAppSessionTimeValue}\n .setValue=${this.__setAppSessionTimeValue}\n .options=${this.__appSessionTimeOptions}\n >\n </foxy-internal-frequency-control>\n\n <foxy-internal-switch-control\n infer=\"products-require-expires-property\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control infer=\"use-cart-validation\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n ${cartSigningKey && this.form.use_cart_validation\n ? this.__renderReadonlyWebhookKey('webhook-key-cart-signing', cartSigningKey)\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-type\"\n .options=${customerPasswordHashTypeOptions}\n .setValue=${(newValue: string) => {\n const entry = customerPasswordHashTypeEntries.find(([v]) => v === newValue);\n this.edit({\n customer_password_hash_type: newValue,\n customer_password_hash_config: entry?.[1].config ?? '',\n });\n }}\n >\n </foxy-internal-select-control>\n\n ${typeof this.form.customer_password_hash_config === 'number'\n ? html`\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-config\"\n >\n </foxy-internal-number-control>\n `\n : html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-config\"\n >\n </foxy-internal-text-control>\n `}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\" label=\"\" helper-text=\"\">\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"unified-order-entry-password\"\n show-generator\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\" label=\"\" helper-text=\"\">\n <foxy-internal-switch-control infer=\"use-single-sign-on\"></foxy-internal-switch-control>\n ${this.form.use_single_sign_on\n ? html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"single-sign-on-url\">\n </foxy-internal-text-control>\n ${ssoKey ? this.__renderReadonlyWebhookKey('webhook-key-sso', ssoKey) : ''}\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"receipt\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"receipt-continue-url\">\n </foxy-internal-text-control>\n <foxy-internal-switch-control infer=\"bcc-on-receipt-email\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"custom-display-id-config\">\n <foxy-internal-switch-control\n infer=\"custom-display-id-config-enabled\"\n .getValue=${() => customDisplayIdConfig.enabled}\n .setValue=${(newValue: boolean) => {\n this.__setCustomDisplayIdConfig('enabled', newValue);\n }}\n >\n </foxy-internal-switch-control>\n\n ${customDisplayIdConfig.enabled\n ? html`\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-start\"\n step=\"1\"\n min=\"0\"\n .getValue=${() => parseInt(customDisplayIdConfig.start || '0')}\n .setValue=${(newValue: number) => {\n this.__setCustomDisplayIdConfig('start', String(newValue));\n }}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-length\"\n step=\"1\"\n min=\"0\"\n .getValue=${() => parseInt(customDisplayIdConfig.length || '0')}\n .setValue=${(newValue: number) => {\n this.__setCustomDisplayIdConfig('length', String(newValue));\n }}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-prefix\"\n .getValue=${() => customDisplayIdConfig.prefix}\n .setValue=${(newValue: string) => {\n this.__setCustomDisplayIdConfig('prefix', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-suffix\"\n .getValue=${() => customDisplayIdConfig.suffix}\n .setValue=${(newValue: string) => {\n this.__setCustomDisplayIdConfig('suffix', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <div class=\"text-right text-secondary\">\n <p class=\"flex justify-end\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-first-example\"></foxy-i18n>\n <span style=\"font-family: monospace\"> ${displayIdExamples?.first}</span>\n </p>\n <p class=\"flex justify-end\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-random-example\"></foxy-i18n>\n <span style=\"font-family: monospace\"> ${displayIdExamples?.random}</span>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control helper-text=\"\" label=\"\" infer=\"custom-display-id-config\">\n <foxy-internal-switch-control\n infer=\"custom-display-id-config-transaction-journal-entries-enabled\"\n class=\"sm-col-span-2\"\n .getValue=${() => transactionJournalEntriesConfig.enabled}\n .setValue=${(newValue: boolean) => {\n this.__setTransactionJournalEntriesConfig('enabled', newValue);\n }}\n >\n </foxy-internal-switch-control>\n\n ${transactionJournalEntriesConfig.enabled\n ? html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-authcapture-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_authcapture.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_authcapture', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-capture-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_capture.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_capture', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-void-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_void.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_void', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-refund-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_refund.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_refund', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-transaction-separator\"\n class=\"col-span-2\"\n .getValue=${() => transactionJournalEntriesConfig.transaction_separator}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesConfig('transaction_separator', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <div class=\"sm-col-span-2 leading-s text-right text-secondary\">\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-authcapture-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\"> ${journalIdExamples?.authcapture} </span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-capture-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.capture}</span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-void-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.void}</span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-refund-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.refund}</span>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"xml-datafeed\">\n <foxy-internal-switch-control infer=\"use-webhook\"></foxy-internal-switch-control>\n ${this.form.use_webhook\n ? html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"webhook-url\">\n </foxy-internal-text-control>\n ${xmlDatafeedKey\n ? this.__renderReadonlyWebhookKey('webhook-key-xml-datafeed', xmlDatafeedKey)\n : ''}\n `\n : ''}\n </foxy-internal-summary-control>\n\n ${this.renderTemplateOrSlot()}\n ${this.href || !this.hCaptchaSiteKey\n ? ''\n : html`\n <div class=\"text-xs text-tertiary\">\n <foxy-i18n infer=\"hcaptcha\" key=\"disclaimer\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"transition-colors hover-text-body rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://www.hcaptcha.com/privacy\"\n rel=\"noopener noreferrer\"\n >\n <foxy-i18n class=\"underline\" infer=\"hcaptcha\" key=\"privacy_policy\"></foxy-i18n>\n </a>\n <span>•</span>\n <a\n target=\"_blank\"\n class=\"transition-colors hover-text-body rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://www.hcaptcha.com/terms\"\n rel=\"noopener noreferrer\"\n >\n <foxy-i18n class=\"underline\" infer=\"hcaptcha\" key=\"terms_of_service\"></foxy-i18n>\n </a>\n <h-captcha\n site-key=${this.hCaptchaSiteKey}\n class=\"hidden\"\n size=\"invisible\"\n hl=${this.lang}\n @verified=${({ token }: Record<'token' | 'eKey', string>) => {\n this.__hCaptchaToken = token;\n super.submit();\n }}\n >\n </h-captcha>\n </div>\n `}\n ${super.renderBody()}\n ${customerPasswordHashTypesLoader.render(this.customerPasswordHashTypes)}\n ${shippingAddressTypesLoader.render(this.shippingAddressTypes)}\n ${timezonesLoader.render(this.timezones)} ${countriesLoader.render(this.countries)}\n ${regionsLoader.render(regionsUrl)}\n `;\n }\n\n submit(): void {\n if (!this.href && this.hCaptchaSiteKey) {\n this.__hCaptcha?.reset();\n this.__hCaptcha?.execute();\n } else {\n super.submit();\n }\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n const request = new StoreForm.API.WHATWGRequest(...args);\n if (this.__hCaptchaToken) request.headers.set('h-captcha-code', this.__hCaptchaToken);\n return await super._fetch(request);\n } catch (err) {\n let errorText;\n\n try {\n errorText = await (err as Response).text();\n } catch {\n throw err;\n }\n\n if (\n errorText.includes('store_domain is invalid because it has a reserved format') ||\n errorText.includes('store_domain can not end with')\n ) {\n throw ['error:store_domain_reserved'];\n }\n\n if (errorText.includes('store_domain is already in use')) {\n throw ['error:store_domain_exists'];\n }\n\n throw err;\n }\n }\n\n private get __displayIdExamples() {\n const config = this.__getCustomDisplayIdConfig();\n const startAsInt = parseInt(config.start || '0');\n const lengthAsInt = parseInt(config.length || '0');\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, lengthAsInt)),\n Math.pow(10, lengthAsInt) - 1\n );\n\n if (config.start && config.length && startAsInt / 10 <= lengthAsInt) {\n return {\n first: `${config.prefix}${startAsInt.toString().padStart(lengthAsInt, '0')}${\n config.suffix\n }`,\n random: `${config.prefix}${randomExampleNumericId.toString().padStart(lengthAsInt, '0')}${\n config.suffix\n }`,\n };\n }\n }\n\n private get __journalIdExamples() {\n const customDisplayIdConfig = this.__getCustomDisplayIdConfig();\n const transactionJournalEntriesConfig = customDisplayIdConfig.transaction_journal_entries;\n const startAsInt = parseInt(customDisplayIdConfig.start || '0');\n const lengthAsInt = parseInt(customDisplayIdConfig.length || '0');\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, lengthAsInt)),\n Math.pow(10, lengthAsInt) - 1\n );\n\n const randomExampleId = `${customDisplayIdConfig.prefix}${randomExampleNumericId\n .toString()\n .padStart(lengthAsInt, '0')}${customDisplayIdConfig.suffix}`;\n\n const randomNumericEntryId = Math.floor(Math.random() * 1000);\n const randomEntryId = String(randomNumericEntryId).padStart(3, '0');\n\n if (\n customDisplayIdConfig.start &&\n customDisplayIdConfig.length &&\n startAsInt / 10 <= lengthAsInt\n ) {\n return {\n authcapture: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_authcapture.prefix}${randomEntryId}`,\n capture: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_capture.prefix}${randomEntryId}`,\n refund: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_refund.prefix}${randomEntryId}`,\n void: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_void.prefix}${randomEntryId}`,\n };\n }\n }\n\n private get __hCaptcha() {\n return this.renderRoot.querySelector<VanillaHCaptchaWebComponent>('h-captcha');\n }\n\n private __getCustomDisplayIdConfig() {\n const defaultConfig: ParsedCustomDisplayIdConfig = {\n enabled: false,\n start: '0',\n length: '0',\n prefix: '',\n suffix: '',\n transaction_journal_entries: {\n enabled: false,\n transaction_separator: '',\n log_detail_request_types: {\n transaction_authcapture: { prefix: '' },\n transaction_capture: { prefix: '' },\n transaction_refund: { prefix: '' },\n transaction_void: { prefix: '' },\n },\n },\n };\n\n return merge(defaultConfig, this.form.custom_display_id_config || void 0);\n }\n\n private __setCustomDisplayIdConfig<TKey extends keyof ParsedCustomDisplayIdConfig>(\n key: TKey,\n value: ParsedCustomDisplayIdConfig[TKey]\n ) {\n const currentConfig = this.__getCustomDisplayIdConfig();\n currentConfig[key] = value;\n this.edit({ custom_display_id_config: currentConfig });\n }\n\n private __getTransactionJournalEntriesConfig() {\n return this.__getCustomDisplayIdConfig().transaction_journal_entries;\n }\n\n private __setTransactionJournalEntriesConfig<\n TKey extends keyof ParsedCustomDisplayIdConfig['transaction_journal_entries']\n >(key: TKey, value: ParsedCustomDisplayIdConfig['transaction_journal_entries'][TKey]) {\n const config = this.__getCustomDisplayIdConfig().transaction_journal_entries;\n config[key] = value;\n this.__setCustomDisplayIdConfig('transaction_journal_entries', config);\n }\n\n private __setTransactionJournalEntriesPrefix(\n key: keyof ParsedCustomDisplayIdConfig['transaction_journal_entries']['log_detail_request_types'],\n value: string\n ) {\n const config = this.__getTransactionJournalEntriesConfig();\n config.log_detail_request_types[key].prefix = value;\n this.__setTransactionJournalEntriesConfig(\n 'log_detail_request_types',\n config.log_detail_request_types\n );\n }\n\n private __getSmtpConfig() {\n let config: ParsedSmtpConfig;\n\n try {\n config = JSON.parse(this.form.smtp_config ?? '');\n } catch {\n config = {\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n };\n }\n\n return config;\n }\n\n private __setSmtpConfig<TKey extends keyof ParsedSmtpConfig>(\n key: TKey,\n value: ParsedSmtpConfig[TKey]\n ) {\n const config = this.__getSmtpConfig();\n config[key] = value;\n this.edit({ smtp_config: JSON.stringify(config) });\n }\n\n private __renderLoader<T extends Graph & { links: { self: unknown } }>(index: number) {\n const id = `loader-${index}`;\n return {\n data: this.renderRoot.querySelector<NucleonElement<Resource<T>>>(`#${id}`)?.data,\n render: (href?: string | null) => html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(href ?? undefined)}\n id=${id}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `,\n };\n }\n\n private __renderReadonlyWebhookKey(scope: string, key: string) {\n return html`\n <div class=\"leading-xs\">\n <div class=\"flex items-center gap-s\">\n <p class=\"flex-1\">\n <foxy-i18n infer=${scope} key=\"label\"></foxy-i18n>\n </p>\n <p class=\"text-tertiary\">${'*'.repeat(8)}${key.substr(-4)}</p>\n <foxy-copy-to-clipboard\n layout=\"complete\"\n infer=\"${scope} copy-to-clipboard\"\n theme=\"contrast tertiary-inline\"\n text=${key}\n >\n </foxy-copy-to-clipboard>\n </div>\n <p class=\"text-xs text-secondary\">\n <foxy-i18n infer=${scope} key=\"helper_text\"></foxy-i18n>\n <a\n class=\"text-body font-medium rounded-s hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${this.storeSecretsPageUrl ?? '#store-secrets'}\n >\n <foxy-i18n infer=${scope} key=\"link_text\"></foxy-i18n>\n </a>\n </p>\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StoreForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreForm/StoreForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { VanillaHCaptchaWebComponent } from 'vanilla-hcaptcha';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { Resource, Graph } from '@foxy.io/sdk/core';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport type {\n ParsedCustomDisplayIdConfig,\n ParsedSmtpConfig,\n ParsedWebhookKey,\n Data,\n} from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { isHttpUrl } from '../../../utils/is-http-url';\nimport { html } from 'lit-html';\n\nimport slugify from '@sindresorhus/slugify';\nimport merge from 'lodash-es/merge';\n\nconst NS = 'store-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\nfunction parseWebhookKey(webhookKey: string): ParsedWebhookKey | null {\n try {\n return JSON.parse(webhookKey);\n } catch {\n return null;\n }\n}\n\n/**\n * Form element for store settings (`fx:store`).\n *\n * @element foxy-store-form\n * @since 1.21.0\n */\nexport class StoreForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n reportingStoreDomainExists: { attribute: 'reporting-store-domain-exists' },\n customerPasswordHashTypes: { attribute: 'customer-password-hash-types' },\n shippingAddressTypes: { attribute: 'shipping-address-types' },\n storeSecretsPageUrl: { attribute: 'store-secrets-page-url' },\n hCaptchaSiteKey: { attribute: 'h-captcha-site-key' },\n storeVersions: { attribute: 'store-versions' },\n checkoutTypes: { attribute: 'checkout-types' },\n localeCodes: { attribute: 'locale-codes' },\n languages: {},\n timezones: {},\n countries: {},\n regions: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data, StoreForm> {\n return [\n ({ store_name: v }) => !!v || 'store-name:v8n_required',\n ({ store_name: v }) => (v && v.length <= 50) || 'store-name:v8n_too_long',\n ({ store_domain: storeDomain, use_remote_domain: useRemoteDomain }) => {\n if (!storeDomain) return 'store-domain:v8n_required';\n if (storeDomain.length > 100) return 'store-domain:v8n_too_long';\n\n const [tld, ...slds] = storeDomain.split('.').reverse();\n\n if (\n useRemoteDomain &&\n slds.length > 1 &&\n slds.every(s => /^(?!-)[a-z0-9-]{1,63}(?<!-)$/.test(s)) &&\n /^[a-z]{2,63}$/.test(tld)\n ) {\n return true;\n }\n\n if (\n !useRemoteDomain &&\n slds.length === 0 &&\n /^(?!-)[a-z0-9-]{1,63}(?<!-)$/.test(storeDomain)\n ) {\n return true;\n }\n\n return 'store-domain:v8n_invalid';\n },\n ({ store_url: v }) => !!v || 'store-url:v8n_required',\n ({ store_url: v }) => (v && v.length <= 300) || 'store-url:v8n_too_long',\n ({ store_url: v }) => !v || isHttpUrl(v) || 'store-url:v8n_invalid',\n ({ receipt_continue_url: v }) => !v || v.length <= 300 || 'receipt-continue-url:v8n_too_long',\n ({ store_email: v }) => !!v || 'store-email:v8n_required',\n ({ store_email: v }) => (v && v.length <= 300) || 'store-email:v8n_too_long',\n ({ from_email: v }) => !v || v.length <= 100 || 'from-email:v8n_too_long',\n ({ smtp_config: v }) => !v || v.length <= 1000 || 'use-smtp-config:v8n_too_long',\n ({ postal_code: v }) => !!v || 'postal-code:v8n_required',\n ({ postal_code: v }) => (v && v.length <= 50) || 'postal-code:v8n_too_long',\n ({ region: v }) => !!v || 'region:v8n_required',\n ({ region: v }) => (v && v.length <= 100) || 'region:v8n_too_long',\n ({ country: v }) => !!v || 'country:v8n_required',\n ({ logo_url: v }) => !v || v.length <= 200 || 'logo-url:v8n_too_long',\n\n ({ webhook_url: v, use_webhook }) => !use_webhook || !!v || 'webhook-url:v8n_required',\n ({ webhook_url: v, use_webhook }) => {\n return !use_webhook || !v || v.length <= 300 || 'webhook-url:v8n_too_long';\n },\n\n ({ webhook_key: v }) => v === void 0 || v.length > 0 || 'webhook-key:v8n_required',\n ({ webhook_key: v }, host) => {\n // TODO remove the line below when API limit is corrected to match the legacy admin\n if (host.data?.webhook_key === v) return true;\n return !v || v.length <= 100 || 'webhook-key:v8n_too_long';\n },\n\n ({ webhook_key: v, use_webhook: on }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = 'use-webhook:v8n_webhook_key_required';\n return !on || !!(parsedV ? parsedV.xml_datafeed : v) || code;\n },\n\n ({ webhook_key: v, use_cart_validation: on }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = 'use-cart-validation:v8n_webhook_key_required';\n return !on || !!(parsedV ? parsedV.cart_signing : v) || code;\n },\n\n ({ webhook_key: v, use_single_sign_on: on }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = 'use-single-sign-on:v8n_webhook_key_required';\n return !on || !!(parsedV ? parsedV.sso : v) || code;\n },\n\n ...(['xml_datafeed', 'cart_signing', 'api_legacy', 'sso'] as const)\n .map(prop => [\n ({ webhook_key: v }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = `webhook-key-${prop.replace(/_/g, '-')}:v8n_required`;\n return !parsedV || !!parsedV[prop] || code;\n },\n ({ webhook_key: v }: Partial<Data>) => {\n const parsedV = parseWebhookKey(v ?? '');\n const code = `webhook-key-${prop.replace(/_/g, '-')}:v8n_too_long`;\n return !parsedV || parsedV[prop].length <= 100 || code;\n },\n ])\n .flat(),\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !!v || 'single-sign-on-url:v8n_required';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !v || v.length <= 300 || 'single-sign-on-url:v8n_too_long';\n },\n\n ({ customer_password_hash_config: v }) => {\n return !v || String(v).length <= 100 || 'customer-password-hash-config:v8n_too_long';\n },\n\n ({ unified_order_entry_password: v }) => {\n return !v || String(v).length <= 100 || 'unified-order-entry-password:v8n_too_long';\n },\n ];\n }\n\n /** URL of the `fx:reporting_store_domain_exists` endpoint. */\n reportingStoreDomainExists: string | null = null;\n\n /** URL of the `fx:customer_password_hash_types` property helper resource. */\n customerPasswordHashTypes: string | null = null;\n\n /** URL of the `fx:shipping_address_types` property helper resource. */\n shippingAddressTypes: string | null = null;\n\n /** URL of the Store Secrets settings page if you are using this form on multiple pages. */\n storeSecretsPageUrl: string | null = null;\n\n /** hCaptcha site key for signup verification. If provided, requires users to complete a captcha before creating a store. */\n hCaptchaSiteKey: string | null = null;\n\n /**\n * URL of the `fx:store_versions` property helper resource.\n * @deprecated All elements in this library are designed to work with store version 2.0.\n */\n storeVersions: string | null = null;\n\n /**\n * URL of the `fx:checkout_types` property helper resource.\n * @deprecated Checkout type is effectively controlled by the default template config.\n */\n checkoutTypes: string | null = null;\n\n /**\n * URL of the `fx:locale_codes` property helper resource.\n * @deprecated Default locale code is effectively controlled by the active template set.\n */\n localeCodes: string | null = null;\n\n /**\n * URL of the `fx:languages` property helper resource.\n * @deprecated Default language is effectively controlled by the active template set.\n */\n languages: string | null = null;\n\n /** URL of the `fx:timezones` property helper resource. */\n timezones: string | null = null;\n\n /** URL of the `fx:countries` property helper resource. */\n countries: string | null = null;\n\n /** URL of the `fx:regions` property helper resource. */\n regions: string | null = null;\n\n private readonly __currencyStyleOptions = [\n { rawLabel: '12.34', value: '101' },\n { rawLabel: 'USD 12.34', value: '001' },\n { rawLabel: '$12.34', value: '000' },\n { rawLabel: '12', value: '111' },\n { rawLabel: 'USD 12', value: '011' },\n { rawLabel: '$12', value: '010' },\n ];\n\n private readonly __currencyStyleGetValue = () => {\n const map: Record<string, string> = {\n '101': '101',\n '100': '101',\n '001': '001',\n '000': '000',\n '111': '111',\n '110': '111',\n '011': '011',\n '010': '010',\n };\n\n const selectionCode = [\n this.form.hide_currency_symbol,\n this.form.hide_decimal_characters,\n this.form.use_international_currency_symbol,\n ]\n .map(v => Number(Boolean(v)))\n .join('');\n\n return map[selectionCode];\n };\n\n private readonly __currencyStyleSetValue = (newValue: string) => {\n this.edit({\n hide_currency_symbol: Boolean(Number(newValue[0])),\n hide_decimal_characters: Boolean(Number(newValue[1])),\n use_international_currency_symbol: Boolean(Number(newValue[2])),\n });\n };\n\n private readonly __appSessionTimeOptions = [\n { value: 's', label: 'second' },\n { value: 'm', label: 'minute' },\n { value: 'h', label: 'hour' },\n { value: 'd', label: 'day' },\n ];\n\n private readonly __checkStoreDomainAvailability = async (value: string) => {\n if (this.reportingStoreDomainExists) {\n if (value === this.data?.store_domain) return true;\n\n const url = new URL(this.reportingStoreDomainExists);\n url.searchParams.set('store_domain', value);\n\n const response = await new StoreForm.API(this).fetch(url.toString());\n return response.ok || 'store-domain:v8n_unavailable';\n } else {\n throw new Error('reportingStoreDomainExists is not set.');\n }\n };\n\n private readonly __storeNameSetValue = (newValue: string) => {\n const previousSuggestedDomain = slugify(this.form.store_name ?? '');\n const currentStoreDomain = this.form.store_domain ?? '';\n const newSuggestedDomain = slugify(newValue);\n\n if (previousSuggestedDomain === currentStoreDomain) {\n this.edit({ store_domain: newSuggestedDomain });\n }\n\n this.edit({ store_name: newValue });\n };\n\n private readonly __getStoreEmailValue = (): Item[] => {\n const emails = this.form.store_email ?? '';\n return emails\n .split(',')\n .map(v => ({ value: v.trim() }))\n .filter(({ value }) => value.length > 0);\n };\n\n private readonly __setStoreEmailValue = (newValue: Item[]) => {\n this.edit({ store_email: newValue.map(v => v.value).join(',') });\n };\n\n private readonly __getUseSmtpConfigValue = () => {\n return !!this.form.smtp_config;\n };\n\n private readonly __setUseSmtpConfigValue = (newValue: boolean) => {\n if (newValue) {\n this.edit({\n smtp_config: JSON.stringify({\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n }),\n });\n } else {\n this.edit({ smtp_config: '' });\n }\n };\n\n private readonly __getAppSessionTimeValue = () => {\n const valueInSeconds = this.form.app_session_time || 43200;\n\n if (valueInSeconds % 86400 === 0) return `${valueInSeconds / 86400}d`;\n if (valueInSeconds % 3600 === 0) return `${valueInSeconds / 3600}h`;\n if (valueInSeconds % 60 === 0) return `${valueInSeconds / 60}m`;\n\n return `${valueInSeconds}s`;\n };\n\n private readonly __setAppSessionTimeValue = (newValue: string) => {\n const units = newValue[newValue.length - 1];\n const count = parseInt(newValue.substring(0, newValue.length - 1));\n const map: Record<string, number> = { d: 86400, h: 3600, m: 60, s: 1 };\n\n this.edit({ app_session_time: map[units] * count });\n };\n\n private readonly __setStoreDomainValue = (newValue: string) => {\n if (this.data) {\n if (newValue.endsWith('.foxycart.com')) {\n const domain = newValue.substring(0, newValue.length - 13);\n this.edit({ store_domain: domain, use_remote_domain: false });\n } else {\n this.edit({ store_domain: newValue, use_remote_domain: newValue.includes('.') });\n }\n } else {\n this.edit({ store_domain: newValue.split('.')[0] ?? '', use_remote_domain: false });\n }\n };\n\n private readonly __smtpConfigHostGetValue = () => {\n return this.__getSmtpConfig().host;\n };\n\n private readonly __smtpConfigHostSetValue = (newValue: string) => {\n this.__setSmtpConfig('host', newValue);\n };\n\n private readonly __smtpConfigPortGetValue = () => {\n const port = parseInt(this.__getSmtpConfig().port);\n return isNaN(port) ? undefined : port;\n };\n\n private readonly __smtpConfigPortSetValue = (newValue: number) => {\n this.__setSmtpConfig('port', String(newValue));\n };\n\n private readonly __smtpConfigUsernameGetValue = () => {\n return this.__getSmtpConfig().username;\n };\n\n private readonly __smtpConfigUsernameSetValue = (newValue: string) => {\n this.__setSmtpConfig('username', newValue);\n };\n\n private readonly __smtpConfigPasswordGetValue = () => {\n return this.__getSmtpConfig().password;\n };\n\n private readonly __smtpConfigPasswordSetValue = (newValue: string) => {\n this.__setSmtpConfig('password', newValue);\n };\n\n private readonly __smtpConfigSecurityGetValue = () => {\n return this.__getSmtpConfig().security;\n };\n\n private readonly __smtpConfigSecuritySetValue = (newValue: string) => {\n this.__setSmtpConfig('security', newValue);\n };\n\n private readonly __smtpConfigSecurityOptions = [\n { label: 'option_ssl', value: 'ssl' },\n { label: 'option_tls', value: 'tls' },\n { label: 'option_none', value: '' },\n ];\n\n private readonly __singleWebhookKeyGeneratorOptions = { length: 90, separator: '' };\n\n private readonly __jsonWebhookKeyGeneratorOptions = { length: 90, separator: '' };\n\n private readonly __useSingleWebhookKeyGetValue = () => {\n try {\n JSON.parse(this.form.webhook_key ?? '');\n return false;\n } catch {\n return true;\n }\n };\n\n private readonly __useSingleWebhookKeySetValue = (newValue: boolean) => {\n if (newValue) {\n this.edit({ webhook_key: '' });\n } else {\n const parsedKey: ParsedWebhookKey = {\n cart_signing: '',\n xml_datafeed: '',\n api_legacy: '',\n sso: '',\n };\n\n this.edit({ webhook_key: JSON.stringify(parsedKey) });\n }\n };\n\n private readonly __sendHtmlEmailOptions = [\n { label: 'option_text_only', value: 'text_only' },\n { label: 'option_text_plus_html', value: 'text_plus_html' },\n ];\n\n private readonly __sendHtmlEmailGetValue = () => {\n return this.form.send_html_email ? 'text_plus_html' : 'text_only';\n };\n\n private readonly __sendHtmlEmailSetValue = (newValue: 'text_only' | 'text_plus_html') => {\n this.edit({ send_html_email: newValue === 'text_plus_html' });\n };\n\n private __hCaptchaToken: string | null = null;\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { context: this.data?.is_active ? 'active' : 'inactive' };\n }\n\n renderBody(): TemplateResult {\n const storeDomainHelperText = this.t(\n this.form.use_remote_domain && !this.data?.use_remote_domain\n ? 'essentials-group-one.store-domain.custom_domain_note'\n : 'essentials-group-one.store-domain.helper_text'\n );\n\n const storeDomainSuffix =\n !this.form.store_domain || this.form.store_domain.includes('.') ? '' : '.foxycart.com';\n\n const customerPasswordHashTypesLoader = this.__renderLoader<Rels.CustomerPasswordHashTypes>(1);\n const shippingAddressTypesLoader = this.__renderLoader<Rels.ShippingAddressTypes>(2);\n const timezonesLoader = this.__renderLoader<Rels.Timezones>(7);\n const countriesLoader = this.__renderLoader<Rels.Countries>(8);\n const regionsLoader = this.__renderLoader<Rels.Regions>(9);\n\n const shippingAddressTypeEntries = Object.entries(\n shippingAddressTypesLoader?.data?.values ?? {}\n );\n\n const timezones = timezonesLoader?.data?.values.timezone ?? [];\n const countries = Object.values(countriesLoader?.data?.values ?? {});\n const regions = Object.values(regionsLoader?.data?.values ?? {});\n\n const customerPasswordHashTypeEntries = Object.entries(\n customerPasswordHashTypesLoader?.data?.values ?? {}\n );\n\n const customerPasswordHashTypeOptions = customerPasswordHashTypeEntries.map(v => ({\n rawLabel: v[1].description,\n value: v[0],\n }));\n\n const shippingAddressTypeOptions = shippingAddressTypeEntries.map(([value, rawLabel]) => ({\n rawLabel,\n value,\n }));\n\n const timezoneOptions = timezones.map(t => ({ rawLabel: t.description, value: t.timezone }));\n const countryOptions = countries.map(c => ({ rawLabel: c.default, value: c.cc2 }));\n const regionOptions = regions.map(r => ({ rawLabel: r.default, value: r.code }));\n\n let regionsUrl: string | undefined;\n\n try {\n const regionsURL = new URL(this.regions ?? '');\n const country = this.form.country;\n if (country) regionsURL.searchParams.set('country_code', country);\n regionsUrl = regionsURL.toString();\n } catch {\n regionsUrl = undefined;\n }\n\n const customDisplayIdConfig = this.__getCustomDisplayIdConfig();\n const transactionJournalEntriesConfig = customDisplayIdConfig.transaction_journal_entries;\n const logDetailRequestTypes = transactionJournalEntriesConfig.log_detail_request_types;\n const displayIdExamples = this.__displayIdExamples;\n const journalIdExamples = this.__journalIdExamples;\n\n const rawWebhookKey = this.data?.webhook_key ?? '';\n const parsedWebhookKey = parseWebhookKey(rawWebhookKey);\n const cartSigningKey = parsedWebhookKey?.cart_signing ?? rawWebhookKey;\n const xmlDatafeedKey = parsedWebhookKey?.xml_datafeed ?? rawWebhookKey;\n const ssoKey = parsedWebhookKey?.sso ?? rawWebhookKey;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"essentials-group-one\">\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"store-name\"\n .setValue=${this.__storeNameSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"logo-url\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n helper-text=${storeDomainHelperText}\n layout=\"summary-item\"\n suffix=${storeDomainSuffix}\n infer=\"store-domain\"\n .setValue=${this.__setStoreDomainValue}\n .checkValidityAsync=${this.reportingStoreDomainExists\n ? this.__checkStoreDomainAvailability\n : null}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"store-url\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials-group-two\">\n <foxy-internal-switch-control infer=\"is-maintenance-mode\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials-group-three\">\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"store-email\"\n .getValue=${this.__getStoreEmailValue}\n .setValue=${this.__setStoreEmailValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials-group-four\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"timezone\"\n .options=${timezoneOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"country\"\n .options=${countryOptions}\n >\n </foxy-internal-select-control>\n\n ${regionOptions.length > 0\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"region\"\n .options=${regionOptions}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"region\">\n </foxy-internal-text-control>\n `}\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"postal-code\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"currency-style\"\n .options=${this.__currencyStyleOptions}\n .getValue=${this.__currencyStyleGetValue}\n .setValue=${this.__currencyStyleSetValue}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"store-secrets\" id=\"store-secrets\">\n <foxy-internal-switch-control\n infer=\"use-single-secret\"\n .getValue=${this.__useSingleWebhookKeyGetValue}\n .setValue=${this.__useSingleWebhookKeySetValue}\n >\n </foxy-internal-switch-control>\n\n ${this.__useSingleWebhookKeyGetValue()\n ? html`\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key\"\n show-generator\n .generatorOptions=${this.__singleWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n `\n : html`\n <foxy-internal-password-control\n json-path=\"api_legacy\"\n property=\"webhook_key\"\n layout=\"summary-item\"\n infer=\"webhook-key-api-legacy\"\n show-generator\n .generatorOptions=${this.__jsonWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-password-control\n json-path=\"cart_signing\"\n property=\"webhook_key\"\n layout=\"summary-item\"\n infer=\"webhook-key-cart-signing\"\n show-generator\n .generatorOptions=${this.__jsonWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-password-control\n json-path=\"sso\"\n property=\"webhook_key\"\n layout=\"summary-item\"\n infer=\"webhook-key-sso\"\n show-generator\n .generatorOptions=${this.__jsonWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-password-control\n json-path=\"xml_datafeed\"\n property=\"webhook_key\"\n layout=\"summary-item\"\n infer=\"webhook-key-xml-datafeed\"\n show-generator\n .generatorOptions=${this.__jsonWebhookKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n `}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"emails\">\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"from-email\"\n placeholder=${this.__getStoreEmailValue()[0]?.value ??\n this.t('emails.from-email.placeholder')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-switch-control infer=\"use-email-dns\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"use-smtp-config\"\n helper-text-as-tooltip\n .getValue=${this.__getUseSmtpConfigValue}\n .setValue=${this.__setUseSmtpConfigValue}\n >\n </foxy-internal-switch-control>\n\n ${this.form.smtp_config\n ? html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"smtp-config-host\"\n .getValue=${this.__smtpConfigHostGetValue}\n .setValue=${this.__smtpConfigHostSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"smtp-config-port\"\n step=\"1\"\n min=\"0\"\n .getValue=${this.__smtpConfigPortGetValue}\n .setValue=${this.__smtpConfigPortSetValue}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"smtp-config-username\"\n .getValue=${this.__smtpConfigUsernameGetValue}\n .setValue=${this.__smtpConfigUsernameSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"smtp-config-password\"\n .getValue=${this.__smtpConfigPasswordGetValue}\n .setValue=${this.__smtpConfigPasswordSetValue}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"smtp-config-security\"\n .getValue=${this.__smtpConfigSecurityGetValue}\n .setValue=${this.__smtpConfigSecuritySetValue}\n .options=${this.__smtpConfigSecurityOptions}\n >\n </foxy-internal-select-control>\n `\n : ''}\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"send-html-email\"\n .getValue=${this.__sendHtmlEmailGetValue}\n .setValue=${this.__sendHtmlEmailSetValue}\n .options=${this.__sendHtmlEmailOptions}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"shipping\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"shipping-address-type\"\n .options=${shippingAddressTypeOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-switch-control infer=\"features-multiship\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control infer=\"require-signed-shipping-rates\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"cart\">\n <foxy-internal-frequency-control\n layout=\"summary-item\"\n infer=\"app-session-time\"\n .getValue=${this.__getAppSessionTimeValue}\n .setValue=${this.__setAppSessionTimeValue}\n .options=${this.__appSessionTimeOptions}\n >\n </foxy-internal-frequency-control>\n\n <foxy-internal-switch-control\n infer=\"products-require-expires-property\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control infer=\"use-cart-validation\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n ${cartSigningKey && this.form.use_cart_validation\n ? this.__renderReadonlyWebhookKey('webhook-key-cart-signing', cartSigningKey)\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-type\"\n .options=${customerPasswordHashTypeOptions}\n .setValue=${(newValue: string) => {\n const entry = customerPasswordHashTypeEntries.find(([v]) => v === newValue);\n this.edit({\n customer_password_hash_type: newValue,\n customer_password_hash_config: entry?.[1].config ?? '',\n });\n }}\n >\n </foxy-internal-select-control>\n\n ${typeof this.form.customer_password_hash_config === 'number'\n ? html`\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-config\"\n >\n </foxy-internal-number-control>\n `\n : html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-config\"\n >\n </foxy-internal-text-control>\n `}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\" label=\"\" helper-text=\"\">\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"unified-order-entry-password\"\n show-generator\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\" label=\"\" helper-text=\"\">\n <foxy-internal-switch-control infer=\"use-single-sign-on\"></foxy-internal-switch-control>\n ${this.form.use_single_sign_on\n ? html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"single-sign-on-url\">\n </foxy-internal-text-control>\n ${ssoKey ? this.__renderReadonlyWebhookKey('webhook-key-sso', ssoKey) : ''}\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"receipt\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"receipt-continue-url\">\n </foxy-internal-text-control>\n <foxy-internal-switch-control infer=\"bcc-on-receipt-email\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"custom-display-id-config\">\n <foxy-internal-switch-control\n infer=\"custom-display-id-config-enabled\"\n .getValue=${() => customDisplayIdConfig.enabled}\n .setValue=${(newValue: boolean) => {\n this.__setCustomDisplayIdConfig('enabled', newValue);\n }}\n >\n </foxy-internal-switch-control>\n\n ${customDisplayIdConfig.enabled\n ? html`\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-start\"\n step=\"1\"\n min=\"0\"\n .getValue=${() => parseInt(customDisplayIdConfig.start || '0')}\n .setValue=${(newValue: number) => {\n this.__setCustomDisplayIdConfig('start', String(newValue));\n }}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-length\"\n step=\"1\"\n min=\"0\"\n .getValue=${() => parseInt(customDisplayIdConfig.length || '0')}\n .setValue=${(newValue: number) => {\n this.__setCustomDisplayIdConfig('length', String(newValue));\n }}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-prefix\"\n .getValue=${() => customDisplayIdConfig.prefix}\n .setValue=${(newValue: string) => {\n this.__setCustomDisplayIdConfig('prefix', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-suffix\"\n .getValue=${() => customDisplayIdConfig.suffix}\n .setValue=${(newValue: string) => {\n this.__setCustomDisplayIdConfig('suffix', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <div class=\"text-right text-secondary\">\n <p class=\"flex justify-end\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-first-example\"></foxy-i18n>\n <span style=\"font-family: monospace\"> ${displayIdExamples?.first}</span>\n </p>\n <p class=\"flex justify-end\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-random-example\"></foxy-i18n>\n <span style=\"font-family: monospace\"> ${displayIdExamples?.random}</span>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control helper-text=\"\" label=\"\" infer=\"custom-display-id-config\">\n <foxy-internal-switch-control\n infer=\"custom-display-id-config-transaction-journal-entries-enabled\"\n class=\"sm-col-span-2\"\n .getValue=${() => transactionJournalEntriesConfig.enabled}\n .setValue=${(newValue: boolean) => {\n this.__setTransactionJournalEntriesConfig('enabled', newValue);\n }}\n >\n </foxy-internal-switch-control>\n\n ${transactionJournalEntriesConfig.enabled\n ? html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-authcapture-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_authcapture.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_authcapture', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-capture-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_capture.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_capture', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-void-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_void.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_void', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-refund-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_refund.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_refund', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-transaction-separator\"\n class=\"col-span-2\"\n .getValue=${() => transactionJournalEntriesConfig.transaction_separator}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesConfig('transaction_separator', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <div class=\"sm-col-span-2 leading-s text-right text-secondary\">\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-authcapture-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\"> ${journalIdExamples?.authcapture} </span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-capture-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.capture}</span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-void-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.void}</span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-refund-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.refund}</span>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"xml-datafeed\">\n <foxy-internal-switch-control infer=\"use-webhook\"></foxy-internal-switch-control>\n ${this.form.use_webhook\n ? html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"webhook-url\">\n </foxy-internal-text-control>\n ${xmlDatafeedKey\n ? this.__renderReadonlyWebhookKey('webhook-key-xml-datafeed', xmlDatafeedKey)\n : ''}\n `\n : ''}\n </foxy-internal-summary-control>\n\n ${this.renderTemplateOrSlot()}\n ${this.href || !this.hCaptchaSiteKey\n ? ''\n : html`\n <div class=\"text-xs text-tertiary\">\n <foxy-i18n infer=\"hcaptcha\" key=\"disclaimer\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"transition-colors hover-text-body rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://www.hcaptcha.com/privacy\"\n rel=\"noopener noreferrer\"\n >\n <foxy-i18n class=\"underline\" infer=\"hcaptcha\" key=\"privacy_policy\"></foxy-i18n>\n </a>\n <span>•</span>\n <a\n target=\"_blank\"\n class=\"transition-colors hover-text-body rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://www.hcaptcha.com/terms\"\n rel=\"noopener noreferrer\"\n >\n <foxy-i18n class=\"underline\" infer=\"hcaptcha\" key=\"terms_of_service\"></foxy-i18n>\n </a>\n <h-captcha\n site-key=${this.hCaptchaSiteKey}\n class=\"hidden\"\n size=\"invisible\"\n hl=${this.lang}\n @verified=${({ token }: Record<'token' | 'eKey', string>) => {\n this.__hCaptchaToken = token;\n super.submit();\n }}\n >\n </h-captcha>\n </div>\n `}\n ${super.renderBody()}\n ${customerPasswordHashTypesLoader.render(this.customerPasswordHashTypes)}\n ${shippingAddressTypesLoader.render(this.shippingAddressTypes)}\n ${timezonesLoader.render(this.timezones)} ${countriesLoader.render(this.countries)}\n ${regionsLoader.render(regionsUrl)}\n `;\n }\n\n submit(): void {\n if (!this.href && this.hCaptchaSiteKey) {\n this.__hCaptcha?.reset();\n this.__hCaptcha?.execute();\n } else {\n super.submit();\n }\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n const request = new StoreForm.API.WHATWGRequest(...args);\n if (this.__hCaptchaToken) request.headers.set('h-captcha-code', this.__hCaptchaToken);\n return await super._fetch(request);\n } catch (err) {\n let errorText;\n\n try {\n errorText = await (err as Response).text();\n } catch {\n throw err;\n }\n\n if (\n errorText.includes('store_domain is invalid because it has a reserved format') ||\n errorText.includes('store_domain can not end with')\n ) {\n throw ['error:store_domain_reserved'];\n }\n\n if (errorText.includes('store_domain is already in use')) {\n throw ['error:store_domain_exists'];\n }\n\n throw err;\n }\n }\n\n private get __displayIdExamples() {\n const config = this.__getCustomDisplayIdConfig();\n const startAsInt = parseInt(config.start || '0');\n const lengthAsInt = parseInt(config.length || '0');\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, lengthAsInt)),\n Math.pow(10, lengthAsInt) - 1\n );\n\n if (config.start && config.length && startAsInt / 10 <= lengthAsInt) {\n return {\n first: `${config.prefix}${startAsInt.toString().padStart(lengthAsInt, '0')}${\n config.suffix\n }`,\n random: `${config.prefix}${randomExampleNumericId.toString().padStart(lengthAsInt, '0')}${\n config.suffix\n }`,\n };\n }\n }\n\n private get __journalIdExamples() {\n const customDisplayIdConfig = this.__getCustomDisplayIdConfig();\n const transactionJournalEntriesConfig = customDisplayIdConfig.transaction_journal_entries;\n const startAsInt = parseInt(customDisplayIdConfig.start || '0');\n const lengthAsInt = parseInt(customDisplayIdConfig.length || '0');\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, lengthAsInt)),\n Math.pow(10, lengthAsInt) - 1\n );\n\n const randomExampleId = `${customDisplayIdConfig.prefix}${randomExampleNumericId\n .toString()\n .padStart(lengthAsInt, '0')}${customDisplayIdConfig.suffix}`;\n\n const randomNumericEntryId = Math.floor(Math.random() * 1000);\n const randomEntryId = String(randomNumericEntryId).padStart(3, '0');\n\n if (\n customDisplayIdConfig.start &&\n customDisplayIdConfig.length &&\n startAsInt / 10 <= lengthAsInt\n ) {\n return {\n authcapture: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_authcapture.prefix}${randomEntryId}`,\n capture: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_capture.prefix}${randomEntryId}`,\n refund: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_refund.prefix}${randomEntryId}`,\n void: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_void.prefix}${randomEntryId}`,\n };\n }\n }\n\n private get __hCaptcha() {\n return this.renderRoot.querySelector<VanillaHCaptchaWebComponent>('h-captcha');\n }\n\n private __getCustomDisplayIdConfig() {\n const defaultConfig: ParsedCustomDisplayIdConfig = {\n enabled: false,\n start: '0',\n length: '0',\n prefix: '',\n suffix: '',\n transaction_journal_entries: {\n enabled: false,\n transaction_separator: '',\n log_detail_request_types: {\n transaction_authcapture: { prefix: '' },\n transaction_capture: { prefix: '' },\n transaction_refund: { prefix: '' },\n transaction_void: { prefix: '' },\n },\n },\n };\n\n return merge(defaultConfig, this.form.custom_display_id_config || void 0);\n }\n\n private __setCustomDisplayIdConfig<TKey extends keyof ParsedCustomDisplayIdConfig>(\n key: TKey,\n value: ParsedCustomDisplayIdConfig[TKey]\n ) {\n const currentConfig = this.__getCustomDisplayIdConfig();\n currentConfig[key] = value;\n this.edit({ custom_display_id_config: currentConfig });\n }\n\n private __getTransactionJournalEntriesConfig() {\n return this.__getCustomDisplayIdConfig().transaction_journal_entries;\n }\n\n private __setTransactionJournalEntriesConfig<\n TKey extends keyof ParsedCustomDisplayIdConfig['transaction_journal_entries']\n >(key: TKey, value: ParsedCustomDisplayIdConfig['transaction_journal_entries'][TKey]) {\n const config = this.__getCustomDisplayIdConfig().transaction_journal_entries;\n config[key] = value;\n this.__setCustomDisplayIdConfig('transaction_journal_entries', config);\n }\n\n private __setTransactionJournalEntriesPrefix(\n key: keyof ParsedCustomDisplayIdConfig['transaction_journal_entries']['log_detail_request_types'],\n value: string\n ) {\n const config = this.__getTransactionJournalEntriesConfig();\n config.log_detail_request_types[key].prefix = value;\n this.__setTransactionJournalEntriesConfig(\n 'log_detail_request_types',\n config.log_detail_request_types\n );\n }\n\n private __getSmtpConfig() {\n let config: ParsedSmtpConfig;\n\n try {\n config = JSON.parse(this.form.smtp_config ?? '');\n } catch {\n config = {\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n };\n }\n\n return config;\n }\n\n private __setSmtpConfig<TKey extends keyof ParsedSmtpConfig>(\n key: TKey,\n value: ParsedSmtpConfig[TKey]\n ) {\n const config = this.__getSmtpConfig();\n config[key] = value;\n this.edit({ smtp_config: JSON.stringify(config) });\n }\n\n private __renderLoader<T extends Graph & { links: { self: unknown } }>(index: number) {\n const id = `loader-${index}`;\n return {\n data: this.renderRoot.querySelector<NucleonElement<Resource<T>>>(`#${id}`)?.data,\n render: (href?: string | null) => html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(href ?? undefined)}\n id=${id}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `,\n };\n }\n\n private __renderReadonlyWebhookKey(scope: string, key: string) {\n return html`\n <div class=\"leading-xs\">\n <div class=\"flex items-center gap-s\">\n <p class=\"flex-1\">\n <foxy-i18n infer=${scope} key=\"label\"></foxy-i18n>\n </p>\n <p class=\"text-tertiary\">${'*'.repeat(8)}${key.substr(-4)}</p>\n <foxy-copy-to-clipboard\n layout=\"complete\"\n infer=\"${scope} copy-to-clipboard\"\n theme=\"contrast tertiary-inline\"\n text=${key}\n >\n </foxy-copy-to-clipboard>\n </div>\n <p class=\"text-xs text-secondary\">\n <foxy-i18n infer=${scope} key=\"helper_text\"></foxy-i18n>\n <a\n class=\"text-body font-medium rounded-s hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${this.storeSecretsPageUrl ?? '#store-secrets'}\n >\n <foxy-i18n infer=${scope} key=\"link_text\"></foxy-i18n>\n </a>\n </p>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -3,18 +3,10 @@ import { BooleanSelector } from '@foxy.io/sdk/core';
|
|
|
3
3
|
import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
|
|
4
4
|
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
5
5
|
import { html, svg } from 'lit-html';
|
|
6
|
+
import { isHttpUrl } from "../../../utils/is-http-url.js";
|
|
6
7
|
const NS = 'store-shipping-method-form';
|
|
7
8
|
const Base = TranslatableMixin(InternalForm, NS);
|
|
8
9
|
const getKbSize = (value) => new Blob([value]).size / 1024;
|
|
9
|
-
const isURL = (value) => {
|
|
10
|
-
try {
|
|
11
|
-
new URL(value);
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
catch (_a) {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
10
|
/**
|
|
19
11
|
* Form element for creating and editing store shipping methods (`fx:store_shipping_method`).
|
|
20
12
|
*
|
|
@@ -60,7 +52,7 @@ export class StoreShippingMethodForm extends Base {
|
|
|
60
52
|
}
|
|
61
53
|
static get v8n() {
|
|
62
54
|
return [
|
|
63
|
-
({ shipping_method_uri: v }) => (v &&
|
|
55
|
+
({ shipping_method_uri: v }) => (v && isHttpUrl(v)) || 'shipping-method-uri:v8n_required',
|
|
64
56
|
({ accountid: v }) => !v || v.length <= 50 || 'accountid:v8n_too_long',
|
|
65
57
|
({ password: v }) => !v || v.length <= 50 || 'password:v8n_too_long',
|
|
66
58
|
({ meter_number: v }) => !v || v.length <= 50 || 'meter-number:v8n_too_long',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreShippingMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\n\nconst NS = 'store-shipping-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\nconst getKbSize = (value: string) => new Blob([value]).size / 1024;\nconst isURL = (value: string) => {\n try {\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Form element for creating and editing store shipping methods (`fx:store_shipping_method`).\n *\n * @element foxy-store-shipping-method-form\n * @since 1.21.0\n */\nexport class StoreShippingMethodForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n shippingMethods: { attribute: 'shipping-methods' },\n __useCustomAccount: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ shipping_method_uri: v }) => (v && isURL(v)) || 'shipping-method-uri:v8n_required',\n ({ accountid: v }) => !v || v.length <= 50 || 'accountid:v8n_too_long',\n ({ password: v }) => !v || v.length <= 50 || 'password:v8n_too_long',\n ({ meter_number: v }) => !v || v.length <= 50 || 'meter-number:v8n_too_long',\n ({ authentication_key: v }) => !v || v.length <= 50 || 'authentication-key:v8n_too_long',\n ({ custom_code: v }) => !v || getKbSize(v) <= 64 || 'custom-code:v8n_too_long',\n ];\n }\n\n /** URL of the `fx:shipping_methods` property helper. */\n shippingMethods: string | null = null;\n\n private readonly __shippingMethodLoaderId = 'shippingMethodLoader';\n\n private readonly __shippingMethodUriSetValue = (newValue: string) => {\n this.undo();\n this.edit({ shipping_method_uri: newValue });\n };\n\n private __useCustomAccount = false;\n\n private readonly __useCustomAccountGetValue = () => {\n return Boolean(\n this.__useCustomAccount ||\n this.form.authentication_key ||\n this.form.meter_number ||\n this.form.accountid ||\n this.form.password\n );\n };\n\n private readonly __useCustomAccountSetValue = (value: boolean) => {\n if (!value) {\n this.edit({\n authentication_key: '',\n meter_number: '',\n accountid: '',\n password: '',\n });\n }\n\n this.__useCustomAccount = value;\n };\n\n get hiddenSelector(): BooleanSelector {\n const hasData = !!this.data;\n const code = this.__shippingMethod?.code;\n\n // prettier-ignore\n let hiddenControls = 'general:shipping-container-uri general:shipping-drop-type-uri destinations account endpoint custom-code';\n\n if (code) {\n const codeToHiddenControls: Record<string, string> = {\n 'CUSTOM-ENDPOINT-POST': 'general destinations account custom-code',\n 'CUSTOM-CODE': 'general destinations account endpoint',\n 'CUSTOM': 'general account endpoint custom-code',\n 'FedEx': 'endpoint custom-code',\n 'USPS': 'account endpoint custom-code',\n 'UPS': 'endpoint custom-code account:accountid account:password account:authentication-key',\n };\n\n if (codeToHiddenControls[code]) hiddenControls = codeToHiddenControls[code];\n }\n\n if (!hasData || code?.startsWith('CUSTOM-')) hiddenControls += ' services';\n if (hasData) hiddenControls = `general:shipping-method-uri ${hiddenControls}`;\n\n // prettier-ignore\n if (!this.__useCustomAccountGetValue()) hiddenControls += ' account:accountid account:password account:authentication-key account:meter-number';\n\n return new BooleanSelector(`${hiddenControls} ${super.hiddenSelector}`.trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { id: this.headerCopyIdValue };\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return { ...super.headerTitleOptions, provider: this.__shippingMethod?.name };\n }\n\n renderBody(): TemplateResult {\n const shippingMethod = this.__shippingMethod;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n infer=\"shipping-method-uri\"\n first=${ifDefined(this.shippingMethods ?? this.form._links?.['fx:shipping_methods'].href)}\n item=\"foxy-shipping-method-card\"\n .setValue=${this.__shippingMethodUriSetValue}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n infer=\"shipping-container-uri\"\n first=${ifDefined(shippingMethod?._links['fx:shipping_containers'].href)}\n item=\"foxy-shipping-container-card\"\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n infer=\"shipping-drop-type-uri\"\n first=${ifDefined(shippingMethod?._links['fx:shipping_drop_types'].href)}\n item=\"foxy-shipping-drop-type-card\"\n >\n </foxy-internal-resource-picker-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"destinations\">\n <foxy-internal-switch-control infer=\"use-for-domestic\"></foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"use-for-international\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"account\">\n <foxy-internal-switch-control\n infer=\"use-custom-account\"\n .getValue=${this.__useCustomAccountGetValue}\n .setValue=${this.__useCustomAccountSetValue}\n >\n </foxy-internal-switch-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"authentication-key\">\n </foxy-internal-text-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"meter-number\">\n </foxy-internal-text-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"accountid\">\n </foxy-internal-text-control>\n <foxy-internal-password-control layout=\"summary-item\" infer=\"password\">\n </foxy-internal-password-control>\n ${this.__useCustomAccountGetValue() && this.__shippingMethod?.code === 'UPS'\n ? html`\n <div\n class=\"flex items-start\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p>\n <foxy-i18n infer=\"\" key=\"ups_use_legacy_admin_message\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"mt-xs inline-block rounded font-medium text-primary transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://admin.foxycart.com\"\n >\n admin.foxycart.com\n </a>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-text-control infer=\"endpoint\" property=\"accountid\">\n </foxy-internal-text-control>\n\n <foxy-internal-source-control infer=\"custom-code\"></foxy-internal-source-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"shipping_service_uri\"\n foreign-key-for-id=\"shipping_service_id\"\n own-key-for-uri=\"shipping_method_uri\"\n own-uri=${ifDefined(shippingMethod?._links.self.href)}\n embed-key=\"fx:store_shipping_services\"\n options-href=${ifDefined(shippingMethod?._links['fx:shipping_services'].href)}\n links-href=${ifDefined(this.data?._links['fx:store_shipping_services'].href)}\n infer=\"services\"\n limit=\"200\"\n item=\"foxy-shipping-service-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.form.shipping_method_uri || undefined)}\n id=${this.__shippingMethodLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n ${super.renderBody()}\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (changes.has('href')) this.__useCustomAccount = false;\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n return await super._fetch(...args);\n } catch (err) {\n const errors: string[] = [];\n\n try {\n for (const error of (await (err as Response).json())._embedded['fx:errors']) {\n if (error.message.startsWith('shipping_container_id must be')) {\n errors.push('shipping-container-uri:v8n_required');\n } else if (error.message.startsWith('shipping_drop_type_id must be')) {\n errors.push('shipping-drop-type-uri:v8n_required');\n }\n }\n } catch {\n // no-op\n }\n\n throw errors.length > 0 ? errors : err;\n }\n }\n\n private get __shippingMethodLoader() {\n type Loader = NucleonElement<Resource<Rels.ShippingMethod>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__shippingMethodLoaderId}`);\n }\n\n private get __shippingMethod() {\n return this.__shippingMethodLoader?.data;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StoreShippingMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { isHttpUrl } from '../../../utils/is-http-url';\n\nconst NS = 'store-shipping-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\nconst getKbSize = (value: string) => new Blob([value]).size / 1024;\n\n/**\n * Form element for creating and editing store shipping methods (`fx:store_shipping_method`).\n *\n * @element foxy-store-shipping-method-form\n * @since 1.21.0\n */\nexport class StoreShippingMethodForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n shippingMethods: { attribute: 'shipping-methods' },\n __useCustomAccount: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ shipping_method_uri: v }) => (v && isHttpUrl(v)) || 'shipping-method-uri:v8n_required',\n ({ accountid: v }) => !v || v.length <= 50 || 'accountid:v8n_too_long',\n ({ password: v }) => !v || v.length <= 50 || 'password:v8n_too_long',\n ({ meter_number: v }) => !v || v.length <= 50 || 'meter-number:v8n_too_long',\n ({ authentication_key: v }) => !v || v.length <= 50 || 'authentication-key:v8n_too_long',\n ({ custom_code: v }) => !v || getKbSize(v) <= 64 || 'custom-code:v8n_too_long',\n ];\n }\n\n /** URL of the `fx:shipping_methods` property helper. */\n shippingMethods: string | null = null;\n\n private readonly __shippingMethodLoaderId = 'shippingMethodLoader';\n\n private readonly __shippingMethodUriSetValue = (newValue: string) => {\n this.undo();\n this.edit({ shipping_method_uri: newValue });\n };\n\n private __useCustomAccount = false;\n\n private readonly __useCustomAccountGetValue = () => {\n return Boolean(\n this.__useCustomAccount ||\n this.form.authentication_key ||\n this.form.meter_number ||\n this.form.accountid ||\n this.form.password\n );\n };\n\n private readonly __useCustomAccountSetValue = (value: boolean) => {\n if (!value) {\n this.edit({\n authentication_key: '',\n meter_number: '',\n accountid: '',\n password: '',\n });\n }\n\n this.__useCustomAccount = value;\n };\n\n get hiddenSelector(): BooleanSelector {\n const hasData = !!this.data;\n const code = this.__shippingMethod?.code;\n\n // prettier-ignore\n let hiddenControls = 'general:shipping-container-uri general:shipping-drop-type-uri destinations account endpoint custom-code';\n\n if (code) {\n const codeToHiddenControls: Record<string, string> = {\n 'CUSTOM-ENDPOINT-POST': 'general destinations account custom-code',\n 'CUSTOM-CODE': 'general destinations account endpoint',\n 'CUSTOM': 'general account endpoint custom-code',\n 'FedEx': 'endpoint custom-code',\n 'USPS': 'account endpoint custom-code',\n 'UPS': 'endpoint custom-code account:accountid account:password account:authentication-key',\n };\n\n if (codeToHiddenControls[code]) hiddenControls = codeToHiddenControls[code];\n }\n\n if (!hasData || code?.startsWith('CUSTOM-')) hiddenControls += ' services';\n if (hasData) hiddenControls = `general:shipping-method-uri ${hiddenControls}`;\n\n // prettier-ignore\n if (!this.__useCustomAccountGetValue()) hiddenControls += ' account:accountid account:password account:authentication-key account:meter-number';\n\n return new BooleanSelector(`${hiddenControls} ${super.hiddenSelector}`.trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { id: this.headerCopyIdValue };\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return { ...super.headerTitleOptions, provider: this.__shippingMethod?.name };\n }\n\n renderBody(): TemplateResult {\n const shippingMethod = this.__shippingMethod;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n infer=\"shipping-method-uri\"\n first=${ifDefined(this.shippingMethods ?? this.form._links?.['fx:shipping_methods'].href)}\n item=\"foxy-shipping-method-card\"\n .setValue=${this.__shippingMethodUriSetValue}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n infer=\"shipping-container-uri\"\n first=${ifDefined(shippingMethod?._links['fx:shipping_containers'].href)}\n item=\"foxy-shipping-container-card\"\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n infer=\"shipping-drop-type-uri\"\n first=${ifDefined(shippingMethod?._links['fx:shipping_drop_types'].href)}\n item=\"foxy-shipping-drop-type-card\"\n >\n </foxy-internal-resource-picker-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"destinations\">\n <foxy-internal-switch-control infer=\"use-for-domestic\"></foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"use-for-international\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"account\">\n <foxy-internal-switch-control\n infer=\"use-custom-account\"\n .getValue=${this.__useCustomAccountGetValue}\n .setValue=${this.__useCustomAccountSetValue}\n >\n </foxy-internal-switch-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"authentication-key\">\n </foxy-internal-text-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"meter-number\">\n </foxy-internal-text-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"accountid\">\n </foxy-internal-text-control>\n <foxy-internal-password-control layout=\"summary-item\" infer=\"password\">\n </foxy-internal-password-control>\n ${this.__useCustomAccountGetValue() && this.__shippingMethod?.code === 'UPS'\n ? html`\n <div\n class=\"flex items-start\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p>\n <foxy-i18n infer=\"\" key=\"ups_use_legacy_admin_message\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"mt-xs inline-block rounded font-medium text-primary transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://admin.foxycart.com\"\n >\n admin.foxycart.com\n </a>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-text-control infer=\"endpoint\" property=\"accountid\">\n </foxy-internal-text-control>\n\n <foxy-internal-source-control infer=\"custom-code\"></foxy-internal-source-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"shipping_service_uri\"\n foreign-key-for-id=\"shipping_service_id\"\n own-key-for-uri=\"shipping_method_uri\"\n own-uri=${ifDefined(shippingMethod?._links.self.href)}\n embed-key=\"fx:store_shipping_services\"\n options-href=${ifDefined(shippingMethod?._links['fx:shipping_services'].href)}\n links-href=${ifDefined(this.data?._links['fx:store_shipping_services'].href)}\n infer=\"services\"\n limit=\"200\"\n item=\"foxy-shipping-service-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.form.shipping_method_uri || undefined)}\n id=${this.__shippingMethodLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n ${super.renderBody()}\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (changes.has('href')) this.__useCustomAccount = false;\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n return await super._fetch(...args);\n } catch (err) {\n const errors: string[] = [];\n\n try {\n for (const error of (await (err as Response).json())._embedded['fx:errors']) {\n if (error.message.startsWith('shipping_container_id must be')) {\n errors.push('shipping-container-uri:v8n_required');\n } else if (error.message.startsWith('shipping_drop_type_id must be')) {\n errors.push('shipping-drop-type-uri:v8n_required');\n }\n }\n } catch {\n // no-op\n }\n\n throw errors.length > 0 ? errors : err;\n }\n }\n\n private get __shippingMethodLoader() {\n type Loader = NucleonElement<Resource<Rels.ShippingMethod>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__shippingMethodLoaderId}`);\n }\n\n private get __shippingMethod() {\n return this.__shippingMethodLoader?.data;\n }\n}\n"]}
|
|
@@ -30,7 +30,7 @@ export class WebhookCard extends TranslatableMixin(InternalCard, 'webhook-card')
|
|
|
30
30
|
return !!((_a = this.__statusesLoader) === null || _a === void 0 ? void 0 : _a.data) && super.isBodyReady;
|
|
31
31
|
}
|
|
32
32
|
renderBody() {
|
|
33
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
33
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
34
34
|
let statusesLink;
|
|
35
35
|
try {
|
|
36
36
|
const url = new URL((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:statuses'].href) !== null && _b !== void 0 ? _b : '');
|
|
@@ -41,18 +41,21 @@ export class WebhookCard extends TranslatableMixin(InternalCard, 'webhook-card')
|
|
|
41
41
|
url.searchParams.set('resource_id', String(resourceId));
|
|
42
42
|
statusesLink = url.toString();
|
|
43
43
|
}
|
|
44
|
-
catch (
|
|
44
|
+
catch (_m) {
|
|
45
45
|
statusesLink = undefined;
|
|
46
46
|
}
|
|
47
47
|
const recentStatuses = (_e = (_d = this.__statusesLoader) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e._embedded['fx:webhook_statuses'];
|
|
48
48
|
const lastStatus = recentStatuses === null || recentStatuses === void 0 ? void 0 : recentStatuses[0];
|
|
49
49
|
const cardStatus = recentStatuses ? (_f = lastStatus === null || lastStatus === void 0 ? void 0 : lastStatus.status) !== null && _f !== void 0 ? _f : 'none' : 'loading';
|
|
50
50
|
const isActive = !!((_g = this.data) === null || _g === void 0 ? void 0 : _g.is_active);
|
|
51
|
+
// SDK types are incorrect – this is a string, not an array.
|
|
52
|
+
// TODO remove this cast when SDK is fixed.
|
|
53
|
+
const eventResource = ((_j = (_h = this.data) === null || _h === void 0 ? void 0 : _h.event_resource) !== null && _j !== void 0 ? _j : '');
|
|
51
54
|
return html `
|
|
52
55
|
<div class="grid grid-cols-1 leading-s -my-xs">
|
|
53
56
|
<p class="flex items-center gap-s justify-between">
|
|
54
57
|
<span class="text-m truncate text-body font-medium">
|
|
55
|
-
${(
|
|
58
|
+
${(_k = this.data) === null || _k === void 0 ? void 0 : _k.name}​
|
|
56
59
|
</span>
|
|
57
60
|
<span class="text-s text-tertiary">
|
|
58
61
|
<foxy-i18n
|
|
@@ -64,12 +67,12 @@ export class WebhookCard extends TranslatableMixin(InternalCard, 'webhook-card')
|
|
|
64
67
|
</span>
|
|
65
68
|
</p>
|
|
66
69
|
|
|
67
|
-
<p class="text-s truncate text-secondary">${(
|
|
70
|
+
<p class="text-s truncate text-secondary">${(_l = this.data) === null || _l === void 0 ? void 0 : _l.url}​</p>
|
|
68
71
|
|
|
69
72
|
<p class="text-s truncate text-tertiary">
|
|
70
73
|
${this.resourceUri
|
|
71
74
|
? ''
|
|
72
|
-
: html `<span class="capitalize">${(
|
|
75
|
+
: html `<span class="capitalize">${eventResource.replace(/_/g, ' ')}</span> •`}
|
|
73
76
|
<foxy-i18n
|
|
74
77
|
class=${classMap({ 'text-error': isActive && cardStatus === 'failed' })}
|
|
75
78
|
infer=""
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookCard.js","sourceRoot":"","sources":["../../../../src/elements/public/WebhookCard/WebhookCard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAO;IAAtF;;QAQE;;;WAGG;QACH,gBAAW,GAAkB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"WebhookCard.js","sourceRoot":"","sources":["../../../../src/elements/public/WebhookCard/WebhookCard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAO;IAAtF;;QAQE;;;WAGG;QACH,gBAAW,GAAkB,IAAI,CAAC;IA8EpC,CAAC;IAzFC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,WAAW,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;SAC3C,CAAC;IACJ,CAAC;IAQD,IAAI,WAAW;;QACb,OAAO,CAAC,QAAC,IAAI,CAAC,gBAAgB,0CAAE,IAAI,CAAA,IAAI,KAAK,CAAC,WAAW,CAAC;IAC5D,CAAC;IAED,UAAU;;QACR,IAAI,YAAgC,CAAC;QAErC,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,GAAG,aAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAC,aAAa,EAAE,IAAI,mCAAI,EAAE,CAAC,CAAC;YACjE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YACnD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAEnC,MAAM,UAAU,GAAG,aAAa,OAAC,IAAI,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC;YACzD,IAAI,UAAU,KAAK,IAAI;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAEjF,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;SAC/B;QAAC,WAAM;YACN,YAAY,GAAG,SAAS,CAAC;SAC1B;QAED,MAAM,cAAc,eAAG,IAAI,CAAC,gBAAgB,0CAAE,IAAI,0CAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACrF,MAAM,UAAU,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,CAAC,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,OAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,mCAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,QAAQ,GAAG,CAAC,QAAC,IAAI,CAAC,IAAI,0CAAE,SAAS,CAAA,CAAC;QAExC,4DAA4D;QAC5D,2CAA2C;QAC3C,MAAM,aAAa,GAAG,aAAC,IAAI,CAAC,IAAI,0CAAE,cAAc,mCAAI,EAAE,CAAsB,CAAC;QAE7E,OAAO,IAAI,CAAA;;;;cAID,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI;;;;sBAIP,QAAQ,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;;+BAE7B,QAAQ;;;;;;oDAMa,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG;;;YAGtD,IAAI,CAAC,WAAW;YAChB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAA,4BAA4B,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,gBAAgB;;oBAE1E,QAAQ,CAAC,EAAE,YAAY,EAAE,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;;0BAEzD,UAAU;uBACb,UAAU;;;;;;;;;eASlB,SAAS,CAAC,YAAY,CAAC;;kBAEpB,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;;;KAGvC,CAAC;IACJ,CAAC;IAED,IAAY,gBAAgB;QAE1B,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAS,iBAAiB,CAAC,CAAC;IAClE,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { getResourceId } from '@foxy.io/sdk/core';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\n/**\n * Basic card displaying webhook (`fx:webhook`) info.\n *\n * @element foxy-webhook-card\n * @since 1.17.0\n */\nexport class WebhookCard extends TranslatableMixin(InternalCard, 'webhook-card')<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n resourceUri: { attribute: 'resource-uri' },\n };\n }\n\n /**\n * Optional URI of a transaction, customer or subscription. When provided,\n * the form will display logs and statuses for that particular resource only.\n */\n resourceUri: string | null = null;\n\n get isBodyReady(): boolean {\n return !!this.__statusesLoader?.data && super.isBodyReady;\n }\n\n renderBody(): TemplateResult {\n let statusesLink: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:statuses'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n url.searchParams.set('limit', '1');\n\n const resourceId = getResourceId(this.resourceUri ?? '');\n if (resourceId !== null) url.searchParams.set('resource_id', String(resourceId));\n\n statusesLink = url.toString();\n } catch {\n statusesLink = undefined;\n }\n\n const recentStatuses = this.__statusesLoader?.data?._embedded['fx:webhook_statuses'];\n const lastStatus = recentStatuses?.[0];\n const cardStatus = recentStatuses ? lastStatus?.status ?? 'none' : 'loading';\n const isActive = !!this.data?.is_active;\n\n // SDK types are incorrect – this is a string, not an array.\n // TODO remove this cast when SDK is fixed.\n const eventResource = (this.data?.event_resource ?? '') as unknown as string;\n\n return html`\n <div class=\"grid grid-cols-1 leading-s -my-xs\">\n <p class=\"flex items-center gap-s justify-between\">\n <span class=\"text-m truncate text-body font-medium\">\n ${this.data?.name}​\n </span>\n <span class=\"text-s text-tertiary\">\n <foxy-i18n\n class=${classMap({ 'text-success': isActive })}\n infer=\"\"\n key=\"is_active_${isActive}\"\n >\n </foxy-i18n>\n </span>\n </p>\n\n <p class=\"text-s truncate text-secondary\">${this.data?.url}​</p>\n\n <p class=\"text-s truncate text-tertiary\">\n ${this.resourceUri\n ? ''\n : html`<span class=\"capitalize\">${eventResource.replace(/_/g, ' ')}</span> •`}\n <foxy-i18n\n class=${classMap({ 'text-error': isActive && cardStatus === 'failed' })}\n infer=\"\"\n key=\"status_${cardStatus}\"\n .options=${lastStatus}\n >\n </foxy-i18n>\n </p>\n </div>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(statusesLink)}\n id=\"statusesLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __statusesLoader() {\n type Loader = NucleonElement<Resource<Rels.WebhookStatuses>>;\n return this.renderRoot.querySelector<Loader>('#statusesLoader');\n }\n}\n"]}
|
|
@@ -25,6 +25,7 @@ export class WebhookForm extends TranslatableMixin(InternalForm, 'webhook-form')
|
|
|
25
25
|
this.__eventResources = [
|
|
26
26
|
{ value: 'subscription', label: 'event_resource_subscription' },
|
|
27
27
|
{ value: 'transaction', label: 'event_resource_transaction' },
|
|
28
|
+
{ value: 'transaction_log', label: 'event_resource_transaction_log' },
|
|
28
29
|
{ value: 'customer', label: 'event_resource_customer' },
|
|
29
30
|
];
|
|
30
31
|
}
|