@foxy.io/elements 1.42.0-beta.3 → 1.42.0-beta.5

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.
Files changed (85) hide show
  1. package/dist/cdn/foxy-address-form.js +1 -1
  2. package/dist/cdn/foxy-admin-subscription-form.js +1 -1
  3. package/dist/cdn/foxy-api-browser.js +1 -1
  4. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  5. package/dist/cdn/foxy-attribute-form.js +1 -1
  6. package/dist/cdn/foxy-cart-form.js +1 -1
  7. package/dist/cdn/foxy-client-form.js +1 -1
  8. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  9. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  10. package/dist/cdn/foxy-coupon-form.js +1 -1
  11. package/dist/cdn/foxy-custom-field-form.js +1 -1
  12. package/dist/cdn/foxy-customer-form.js +1 -1
  13. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  14. package/dist/cdn/foxy-customer-portal.js +2 -2
  15. package/dist/cdn/foxy-customer.js +1 -1
  16. package/dist/cdn/foxy-downloadable-form.js +1 -1
  17. package/dist/cdn/foxy-email-template-form.js +1 -1
  18. package/dist/cdn/foxy-experimental-add-to-cart-builder.js +1 -1
  19. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  20. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  21. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  22. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  23. package/dist/cdn/foxy-gift-card-form.js +1 -1
  24. package/dist/cdn/foxy-integration-form.js +1 -1
  25. package/dist/cdn/foxy-item-category-form.js +1 -1
  26. package/dist/cdn/foxy-item-form.js +1 -1
  27. package/dist/cdn/foxy-item-option-form.js +1 -1
  28. package/dist/cdn/foxy-native-integration-form.js +1 -1
  29. package/dist/cdn/foxy-pagination.js +1 -1
  30. package/dist/cdn/foxy-passkey-form.js +1 -1
  31. package/dist/cdn/foxy-payment-method-card.js +1 -1
  32. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  33. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  34. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  35. package/dist/cdn/foxy-store-form.js +1 -1
  36. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  37. package/dist/cdn/foxy-subscription-form.js +1 -1
  38. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  39. package/dist/cdn/foxy-tax-form.js +1 -1
  40. package/dist/cdn/foxy-template-config-form.js +1 -1
  41. package/dist/cdn/foxy-template-form.js +1 -1
  42. package/dist/cdn/foxy-template-set-form.js +1 -1
  43. package/dist/cdn/foxy-transaction-card.js +1 -1
  44. package/dist/cdn/foxy-transaction.js +1 -1
  45. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  46. package/dist/cdn/foxy-user-form.js +1 -1
  47. package/dist/cdn/foxy-user-invitation-form.js +1 -1
  48. package/dist/cdn/foxy-users-table.js +1 -1
  49. package/dist/cdn/foxy-webhook-form.js +1 -1
  50. package/dist/cdn/{shared-f15af5d1.js → shared-076f086a.js} +1 -1
  51. package/dist/cdn/{shared-6286efb1.js → shared-0e1ad508.js} +1 -1
  52. package/dist/cdn/shared-21fba20d.js +1 -0
  53. package/dist/cdn/{shared-63b647a8.js → shared-2a5d1cdf.js} +1 -1
  54. package/dist/cdn/{shared-9f4f8e95.js → shared-3ca95e21.js} +1 -1
  55. package/dist/cdn/{shared-ef98e595.js → shared-56d91134.js} +1 -1
  56. package/dist/cdn/{shared-6332db39.js → shared-5960c279.js} +1 -1
  57. package/dist/cdn/{shared-32883b02.js → shared-663794ff.js} +1 -1
  58. package/dist/cdn/shared-677953e0.js +1 -0
  59. package/dist/cdn/{shared-42a4540f.js → shared-77f39a8a.js} +1 -1
  60. package/dist/cdn/{shared-0643656a.js → shared-7995cbcf.js} +1 -1
  61. package/dist/cdn/{shared-bfdbe217.js → shared-7f5f6657.js} +1 -1
  62. package/dist/cdn/{shared-93c8789e.js → shared-90754404.js} +1 -1
  63. package/dist/cdn/{shared-79a6aa1a.js → shared-a1f654fc.js} +1 -1
  64. package/dist/cdn/{shared-38eb8858.js → shared-a3a18e8d.js} +1 -1
  65. package/dist/cdn/{shared-dd2a66a5.js → shared-df369311.js} +1 -1
  66. package/dist/cdn/{shared-bf5b2106.js → shared-e653b80e.js} +1 -1
  67. package/dist/cdn/{shared-c92d72ba.js → shared-eb086cef.js} +1 -1
  68. package/dist/cdn/{shared-d6f46d44.js → shared-fc66cb5d.js} +1 -1
  69. package/dist/cdn/{shared-91bf0fa2.js → shared-fca3a317.js} +1 -1
  70. package/dist/cdn/translations/payments-api-payment-method-form/en.json +36 -15
  71. package/dist/cdn/translations/payments-api-payment-preset-form/en.json +36 -15
  72. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js +15 -4
  73. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js.map +1 -1
  74. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js +2 -2
  75. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js.map +1 -1
  76. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.d.ts +1 -0
  77. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +31 -33
  78. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
  79. package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js +1 -0
  80. package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js.map +1 -1
  81. package/dist/elements/public/TransactionCard/TransactionCard.js +2 -1
  82. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  83. package/package.json +1 -1
  84. package/dist/cdn/shared-303dc2a6.js +0 -1
  85. package/dist/cdn/shared-cc5e4c06.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InternalEditableControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableControl/InternalEditableControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\n\nimport { InternalControl } from '../InternalControl/InternalControl';\n\nimport debounce from 'lodash-es/debounce';\nimport { get, set } from 'lodash-es';\n\n/**\n * An internal base class for controls that have editing functionality, e.g. a text field.\n * Instances of this class will provide shortcuts for translatable placeholder, label, helper\n * text and more. Unlike a regular control, editable control can not only read from a NucleonElement\n * instance up the DOM tree, but also send changes to it and trigger validation process.\n *\n * @element foxy-internal-editable-control\n * @since 1.17.0\n */\nexport class InternalEditableControl extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n checkValidityAsync: { attribute: false },\n jsonTemplate: { attribute: 'json-template' },\n placeholder: { type: String, noAccessor: true },\n helperText: { type: String, attribute: 'helper-text', noAccessor: true },\n v8nPrefix: { type: String, attribute: 'v8n-prefix', noAccessor: true },\n jsonPath: { attribute: 'json-path' },\n getValue: { attribute: false },\n setValue: { attribute: false },\n property: { type: String, noAccessor: true },\n label: { type: String, noAccessor: true },\n __asyncError: { attribute: false },\n };\n }\n\n checkValidityAsync: ((value: unknown) => Promise<true | string>) | null = null;\n\n jsonTemplate: string | null = null;\n\n jsonPath: string | null = null;\n\n getValue = (): unknown => {\n const value = get(this.nucleon?.form, this.property);\n if (this.jsonPath) return get(JSON.parse(value ?? this.jsonTemplate), this.jsonPath);\n return value;\n };\n\n setValue = (newValue: unknown): void => {\n const [formProperty, ...nestedPath] = this.property.split('.');\n\n if (nestedPath.length) {\n const nestedForm = this.nucleon?.form[formProperty] ?? {};\n\n if (this.jsonPath) {\n const json = JSON.parse(this.nucleon?.form[formProperty] ?? this.jsonTemplate);\n set(json, this.jsonPath, newValue);\n set(nestedForm, nestedPath, JSON.stringify(json));\n } else {\n set(nestedForm, nestedPath, newValue);\n }\n\n this.nucleon?.edit({ [formProperty]: nestedForm });\n } else {\n if (this.jsonPath) {\n const json = JSON.parse(this.nucleon?.form[formProperty] ?? this.jsonTemplate);\n set(json, this.jsonPath, newValue);\n this.nucleon?.edit({ [formProperty]: JSON.stringify(json) });\n } else {\n this.nucleon?.edit({ [formProperty]: newValue });\n }\n }\n };\n\n private __debouncedCheckValidityAsync = debounce(async (newValue: unknown) => {\n const validOrError = await this.checkValidityAsync?.(newValue);\n if (this._value !== newValue) return;\n this.__asyncError = validOrError === true ? null : validOrError ?? null;\n }, 300);\n\n private __previousValue: unknown | null = null;\n\n private __placeholder: string | null = null;\n\n private __helperText: string | null = null;\n\n private __asyncError: string | null = null;\n\n private __v8nPrefix: string | null = null;\n\n private __property: string | null = null;\n\n private __label: string | null = null;\n\n /**\n * Translated placeholder text for this control. You can set your own placeholder text\n * if the default key in the inferred namespace doesn't work for you. Use `.resetPlaceholder()`\n * to restore the default translation.\n */\n get placeholder(): string {\n return typeof this.__placeholder === 'string' ? this.__placeholder : this.t('placeholder');\n }\n\n set placeholder(newValue: string) {\n const oldValue = this.__placeholder;\n this.__placeholder = newValue;\n this.requestUpdate('placeholder', oldValue);\n }\n\n /**\n * Translated helper text for this control. You can set your own helper text\n * if the default key in the inferred namespace doesn't work for you. Use `.resetHelperText()`\n * to restore the default translation.\n */\n get helperText(): string {\n return typeof this.__helperText === 'string' ? this.__helperText : this.t('helper_text');\n }\n\n set helperText(newValue: string) {\n const oldValue = this.__helperText;\n this.__helperText = newValue;\n this.requestUpdate('helperText', oldValue);\n }\n\n /**\n * A prefix for all v8n errors related to this control. You can set your own v8n prefix\n * if the default one doesn't work for you. Use `.resetV8nPrefix()`\n * to restore the default v8n prefix.\n */\n get v8nPrefix(): string {\n if (typeof this.__v8nPrefix === 'string') return this.__v8nPrefix;\n if (typeof this.infer === 'string') return `${this.infer}:`;\n return '';\n }\n\n set v8nPrefix(newValue: string) {\n const oldValue = this.__v8nPrefix;\n this.__v8nPrefix = newValue;\n this.requestUpdate('v8nPrefix', oldValue);\n }\n\n /**\n * Name of the property to bind to inferred from the control name by converting it to snake_case.\n * You can set your own property name if the default inference method produces an incorrect result.\n * Use `.resetProperty()` to restore the default property name.\n */\n get property(): string {\n if (typeof this.__property === 'string') return this.__property;\n if (typeof this.infer === 'string') return this.infer.replace(/-/g, '_');\n return '';\n }\n\n set property(newValue: string) {\n const oldValue = this.__property;\n this.__property = newValue;\n this.requestUpdate('property', oldValue);\n }\n\n /**\n * Translated label for this control. You can set your own label if the default key in the inferred\n * namespace doesn't work for you. Use `.resetLabel()` to restore the default translation.\n */\n get label(): string {\n return typeof this.__label === 'string' ? this.__label : this.t('label');\n }\n\n set label(newValue: string) {\n const oldValue = this.__label;\n this.__label = newValue;\n this.requestUpdate('label', oldValue);\n }\n\n /** Restores the default placeholder translation. */\n resetPlaceholder(): void {\n const oldValue = this.__placeholder;\n this.__placeholder = null;\n this.requestUpdate('placeholder', oldValue);\n }\n\n /** Restores the default helper text translation. */\n resetHelperText(): void {\n const oldValue = this.__helperText;\n this.__helperText = null;\n this.requestUpdate('helperText', oldValue);\n }\n\n /** Restores the default v8n prefix for errors. */\n resetV8nPrefix(): void {\n const oldValue = this.__v8nPrefix;\n this.__v8nPrefix = null;\n this.requestUpdate('v8nPrefix', oldValue);\n }\n\n /** Restores the default property name. */\n resetProperty(): void {\n const oldValue = this.__property;\n this.__property = null;\n this.requestUpdate('property', oldValue);\n }\n\n /** Restores the default label translation. */\n resetLabel(): void {\n const oldValue = this.__label;\n this.__label = null;\n this.requestUpdate('label', oldValue);\n }\n\n reportValidity(): void {\n const walker = this.ownerDocument.createTreeWalker(this.renderRoot, NodeFilter.SHOW_ELEMENT);\n\n do {\n type Input = Node & Record<string, () => unknown>;\n\n const node = walker.currentNode as Input;\n const methods = ['reportValidity', 'validate'];\n\n for (const method of methods) {\n if (method in node) {\n try {\n node[method]();\n break;\n } catch {\n continue;\n }\n }\n }\n } while (walker.nextNode());\n }\n\n /**\n * A shortcut to get the inferred value from the NucleonElement instance\n * up the DOM tree. If no such value or instance exists, returns `undefined`.\n * Assigning a value to this property will dispatch a cancelable `change` event\n * with the new value in the detail and write changes to the NucleonElement instance if permitted.\n */\n protected get _value(): unknown | undefined {\n return this.getValue();\n }\n\n protected set _value(newValue: unknown | undefined) {\n this.__previousValue = this._value;\n this.__asyncError = null;\n if (!this._error && this.__previousValue !== newValue) {\n this.__debouncedCheckValidityAsync(newValue);\n }\n\n const event = new CustomEvent('change', { cancelable: true, detail: newValue });\n const useDefaultAction = this.dispatchEvent(event);\n if (useDefaultAction) this.setValue(newValue);\n }\n\n /** A shortcut returning the first v8n error associated with this control. */\n protected get _error(): string | undefined {\n const syncError = this.nucleon?.errors.find(v => v.startsWith(this.v8nPrefix));\n return syncError ?? this.__asyncError ?? void 0;\n }\n\n /** A shortcut returning the localized text of the first v8n error associated with this control. */\n protected get _errorMessage(): string | undefined {\n return this._error ? this.t(this._error.substring(this.v8nPrefix.length)) : undefined;\n }\n\n /** A helper returning a `.checkValidity()` function for use with Vaadin elements. */\n protected get _checkValidity(): () => boolean {\n return () => !this._error;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalEditableControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableControl/InternalEditableControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\n\nimport { InternalControl } from '../InternalControl/InternalControl';\n\nimport debounce from 'lodash-es/debounce';\nimport { get, set } from 'lodash-es';\n\nfunction safeParse(value: any): any {\n try {\n return JSON.parse(value as string);\n } catch {\n return null;\n }\n}\n\n/**\n * An internal base class for controls that have editing functionality, e.g. a text field.\n * Instances of this class will provide shortcuts for translatable placeholder, label, helper\n * text and more. Unlike a regular control, editable control can not only read from a NucleonElement\n * instance up the DOM tree, but also send changes to it and trigger validation process.\n *\n * @element foxy-internal-editable-control\n * @since 1.17.0\n */\nexport class InternalEditableControl extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n checkValidityAsync: { attribute: false },\n jsonTemplate: { attribute: 'json-template' },\n placeholder: { type: String, noAccessor: true },\n helperText: { type: String, attribute: 'helper-text', noAccessor: true },\n v8nPrefix: { type: String, attribute: 'v8n-prefix', noAccessor: true },\n jsonPath: { attribute: 'json-path' },\n getValue: { attribute: false },\n setValue: { attribute: false },\n property: { type: String, noAccessor: true },\n label: { type: String, noAccessor: true },\n __asyncError: { attribute: false },\n };\n }\n\n checkValidityAsync: ((value: unknown) => Promise<true | string>) | null = null;\n\n jsonTemplate: string | null = null;\n\n jsonPath: string | null = null;\n\n getValue = (): unknown => {\n const value = get(this.nucleon?.form, this.property);\n\n if (this.jsonPath) {\n const parsedValue = safeParse(value);\n const defaults = safeParse(this.jsonTemplate);\n return get(parsedValue, this.jsonPath, get(defaults, this.jsonPath));\n }\n\n return value;\n };\n\n setValue = (newValue: unknown): void => {\n const [formProperty, ...nestedPath] = this.property.split('.');\n\n if (nestedPath.length) {\n const nestedForm = this.nucleon?.form[formProperty] ?? {};\n\n if (this.jsonPath) {\n const json = safeParse(this.nucleon?.form[formProperty]) ?? safeParse(this.jsonTemplate);\n set(json, this.jsonPath, newValue);\n set(nestedForm, nestedPath, JSON.stringify(json));\n } else {\n set(nestedForm, nestedPath, newValue);\n }\n\n this.nucleon?.edit({ [formProperty]: nestedForm });\n } else {\n if (this.jsonPath) {\n const json = safeParse(this.nucleon?.form[formProperty]) ?? safeParse(this.jsonTemplate);\n set(json, this.jsonPath, newValue);\n this.nucleon?.edit({ [formProperty]: JSON.stringify(json) });\n } else {\n this.nucleon?.edit({ [formProperty]: newValue });\n }\n }\n };\n\n private __debouncedCheckValidityAsync = debounce(async (newValue: unknown) => {\n const validOrError = await this.checkValidityAsync?.(newValue);\n if (this._value !== newValue) return;\n this.__asyncError = validOrError === true ? null : validOrError ?? null;\n }, 300);\n\n private __previousValue: unknown | null = null;\n\n private __placeholder: string | null = null;\n\n private __helperText: string | null = null;\n\n private __asyncError: string | null = null;\n\n private __v8nPrefix: string | null = null;\n\n private __property: string | null = null;\n\n private __label: string | null = null;\n\n /**\n * Translated placeholder text for this control. You can set your own placeholder text\n * if the default key in the inferred namespace doesn't work for you. Use `.resetPlaceholder()`\n * to restore the default translation.\n */\n get placeholder(): string {\n return typeof this.__placeholder === 'string' ? this.__placeholder : this.t('placeholder');\n }\n\n set placeholder(newValue: string) {\n const oldValue = this.__placeholder;\n this.__placeholder = newValue;\n this.requestUpdate('placeholder', oldValue);\n }\n\n /**\n * Translated helper text for this control. You can set your own helper text\n * if the default key in the inferred namespace doesn't work for you. Use `.resetHelperText()`\n * to restore the default translation.\n */\n get helperText(): string {\n return typeof this.__helperText === 'string' ? this.__helperText : this.t('helper_text');\n }\n\n set helperText(newValue: string) {\n const oldValue = this.__helperText;\n this.__helperText = newValue;\n this.requestUpdate('helperText', oldValue);\n }\n\n /**\n * A prefix for all v8n errors related to this control. You can set your own v8n prefix\n * if the default one doesn't work for you. Use `.resetV8nPrefix()`\n * to restore the default v8n prefix.\n */\n get v8nPrefix(): string {\n if (typeof this.__v8nPrefix === 'string') return this.__v8nPrefix;\n if (typeof this.infer === 'string') return `${this.infer}:`;\n return '';\n }\n\n set v8nPrefix(newValue: string) {\n const oldValue = this.__v8nPrefix;\n this.__v8nPrefix = newValue;\n this.requestUpdate('v8nPrefix', oldValue);\n }\n\n /**\n * Name of the property to bind to inferred from the control name by converting it to snake_case.\n * You can set your own property name if the default inference method produces an incorrect result.\n * Use `.resetProperty()` to restore the default property name.\n */\n get property(): string {\n if (typeof this.__property === 'string') return this.__property;\n if (typeof this.infer === 'string') return this.infer.replace(/-/g, '_');\n return '';\n }\n\n set property(newValue: string) {\n const oldValue = this.__property;\n this.__property = newValue;\n this.requestUpdate('property', oldValue);\n }\n\n /**\n * Translated label for this control. You can set your own label if the default key in the inferred\n * namespace doesn't work for you. Use `.resetLabel()` to restore the default translation.\n */\n get label(): string {\n return typeof this.__label === 'string' ? this.__label : this.t('label');\n }\n\n set label(newValue: string) {\n const oldValue = this.__label;\n this.__label = newValue;\n this.requestUpdate('label', oldValue);\n }\n\n /** Restores the default placeholder translation. */\n resetPlaceholder(): void {\n const oldValue = this.__placeholder;\n this.__placeholder = null;\n this.requestUpdate('placeholder', oldValue);\n }\n\n /** Restores the default helper text translation. */\n resetHelperText(): void {\n const oldValue = this.__helperText;\n this.__helperText = null;\n this.requestUpdate('helperText', oldValue);\n }\n\n /** Restores the default v8n prefix for errors. */\n resetV8nPrefix(): void {\n const oldValue = this.__v8nPrefix;\n this.__v8nPrefix = null;\n this.requestUpdate('v8nPrefix', oldValue);\n }\n\n /** Restores the default property name. */\n resetProperty(): void {\n const oldValue = this.__property;\n this.__property = null;\n this.requestUpdate('property', oldValue);\n }\n\n /** Restores the default label translation. */\n resetLabel(): void {\n const oldValue = this.__label;\n this.__label = null;\n this.requestUpdate('label', oldValue);\n }\n\n reportValidity(): void {\n const walker = this.ownerDocument.createTreeWalker(this.renderRoot, NodeFilter.SHOW_ELEMENT);\n\n do {\n type Input = Node & Record<string, () => unknown>;\n\n const node = walker.currentNode as Input;\n const methods = ['reportValidity', 'validate'];\n\n for (const method of methods) {\n if (method in node) {\n try {\n node[method]();\n break;\n } catch {\n continue;\n }\n }\n }\n } while (walker.nextNode());\n }\n\n /**\n * A shortcut to get the inferred value from the NucleonElement instance\n * up the DOM tree. If no such value or instance exists, returns `undefined`.\n * Assigning a value to this property will dispatch a cancelable `change` event\n * with the new value in the detail and write changes to the NucleonElement instance if permitted.\n */\n protected get _value(): unknown | undefined {\n return this.getValue();\n }\n\n protected set _value(newValue: unknown | undefined) {\n this.__previousValue = this._value;\n this.__asyncError = null;\n if (!this._error && this.__previousValue !== newValue) {\n this.__debouncedCheckValidityAsync(newValue);\n }\n\n const event = new CustomEvent('change', { cancelable: true, detail: newValue });\n const useDefaultAction = this.dispatchEvent(event);\n if (useDefaultAction) this.setValue(newValue);\n }\n\n /** A shortcut returning the first v8n error associated with this control. */\n protected get _error(): string | undefined {\n const syncError = this.nucleon?.errors.find(v => v.startsWith(this.v8nPrefix));\n return syncError ?? this.__asyncError ?? void 0;\n }\n\n /** A shortcut returning the localized text of the first v8n error associated with this control. */\n protected get _errorMessage(): string | undefined {\n return this._error ? this.t(this._error.substring(this.v8nPrefix.length)) : undefined;\n }\n\n /** A helper returning a `.checkValidity()` function for use with Vaadin elements. */\n protected get _checkValidity(): () => boolean {\n return () => !this._error;\n }\n}\n"]}
@@ -232,14 +232,14 @@ export class InternalCustomerPortalLoggedOutView extends Base {
232
232
  const isSignUpButtonHidden = hiddenSelector.matches('signup', true) || !isSignUpEnabled;
233
233
  return html `
234
234
  <div class="h-full flex" data-testid="sign-in">
235
- <div class="m-auto max-w-25rem flex-1">
235
+ <div class="m-auto max-w-25rem flex-1 min-w-0">
236
236
  ${this.renderTemplateOrSlot(`${scope}:before`)}
237
237
 
238
238
  <div class="space-y-m">
239
239
  ${hiddenSelector.matches('header', true) ? '' : this.__renderSignInHeader()}
240
240
  <div class="space-y-s">
241
241
  ${hiddenSelector.matches('form', true) ? '' : this.__renderSignInForm()}
242
- <div class="flex justify-center gap-s">
242
+ <div class="flex justify-center gap-x-s flex-wrap">
243
243
  ${isSignUpButtonHidden ? '' : this.__renderSignInSignUp()}
244
244
  ${hiddenSelector.matches('recover', true) ? '' : this.__renderSignInRecover()}
245
245
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"InternalCustomerPortalLoggedOutView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { AccessRecoveryForm } from '../AccessRecoveryForm/AccessRecoveryForm';\nimport type { CustomerForm } from '../CustomerForm/CustomerForm';\nimport type { SignInForm } from '../SignInForm/SignInForm';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/customer';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { css, html } from 'lit-element';\n\ntype Data = Resource<Rels.CustomerPortalSettings>;\nconst Base = TranslatableMixin(InternalForm);\n\nexport class InternalCustomerPortalLoggedOutView extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n group: { type: String },\n page: { type: String },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .max-w-25rem {\n max-width: 25rem;\n }\n `,\n ];\n }\n\n page: 'sign-up' | 'sign-in' | 'access-recovery' = 'sign-in';\n\n private readonly __renderAccessRecoveryHeader = () => {\n const { lang, ns } = this;\n const formId = '#access-recovery-form';\n const form = this.renderRoot.querySelector(formId) as AccessRecoveryForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-s font-lumo\" data-testid=\"access-recovery:header\">\n ${this.renderTemplateOrSlot('access-recovery:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"recover_access\"\n ns=\"${ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"recover_access_hint\"\n ns=\"${ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('access-recovery:header:after')}\n </div>\n `;\n };\n\n private readonly __renderAccessRecoveryBack = () => {\n const formId = '#access-recovery-form';\n const form = this.renderRoot.querySelector(formId) as AccessRecoveryForm | null;\n const disabledSelector = this.disabledSelector.zoom('access-recovery');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('access-recovery:back:before')}\n\n <vaadin-button\n data-testid=\"access-recovery:back\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('back', true)}\n @click=${() => (this.page = 'sign-in')}\n >\n <foxy-i18n\n lang=${this.lang}\n key=\"back\"\n ns=\"${this.ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('access-recovery:back:after')}\n </div>\n `;\n };\n\n private readonly __renderAccessRecoveryForm = () => {\n const scope = 'access-recovery:form';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-access-recovery-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${hiddenSelector.toString()}\n data-testid=\"access-recovery:form\"\n parent=\"foxy://customer-api/recover\"\n group=${this.group}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n id=\"access-recovery-form\"\n .templates=${this.getNestedTemplates(scope)}\n @update=${() => this.requestUpdate()}\n >\n </foxy-access-recovery-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderAccessRecovery = () => {\n const scope = 'access-recovery';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div class=\"h-full flex\" data-testid=\"access-recovery\">\n <div class=\"m-auto max-w-25rem flex-1\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderAccessRecoveryHeader()}\n <div class=\"space-y-s\">\n ${hiddenSelector.matches('form', true) ? '' : this.__renderAccessRecoveryForm()}\n ${hiddenSelector.matches('back', true) ? '' : this.__renderAccessRecoveryBack()}\n </div>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n private readonly __renderSignInHeader = () => {\n const { lang, ns } = this;\n const formId = '#sign-in-form';\n const form = this.renderRoot.querySelector(formId) as SignInForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-s font-lumo\" data-testid=\"sign-in:header\">\n ${this.renderTemplateOrSlot('sign-in:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"sign_in\"\n ns=\"${ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"sign_in_hint\"\n ns=\"${ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('sign-in:header:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInRecover = () => {\n const form = this.renderRoot.querySelector<AccessRecoveryForm>('#sign-in-form');\n const disabledSelector = this.disabledSelector.zoom('sign-in');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('sign-in:recover:before')}\n\n <vaadin-button\n data-testid=\"sign-in:recover\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('recover', true)}\n @click=${() => (this.page = 'access-recovery')}\n >\n <foxy-i18n\n lang=${this.lang}\n key=\"recover_access\"\n ns=\"${this.ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('sign-in:recover:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInSignUp = () => {\n const form = this.renderRoot.querySelector<AccessRecoveryForm>('#sign-in-form');\n const disabledSelector = this.disabledSelector.zoom('sign-in');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('sign-in:signup:before')}\n\n <vaadin-button\n data-testid=\"sign-in:signup\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('signup', true)}\n @click=${() => (this.page = 'sign-up')}\n >\n <foxy-i18n lang=${this.lang} key=\"sign_up\" ns=\"${this.ns} sign-in-form\"> </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('sign-in:signup:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInForm = () => {\n const scope = 'sign-in:form';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-sign-in-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${hiddenSelector.toString()}\n data-testid=\"sign-in:form\"\n parent=\"foxy://customer-api/session\"\n group=${this.group}\n lang=${this.lang}\n id=\"sign-in-form\"\n ns=\"${this.ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n .templates=${this.getNestedTemplates('sign-in:form')}\n @update=${(evt: CustomEvent) => {\n const target = evt.currentTarget as SignInForm;\n const password = target.form.credential?.password ?? null;\n this.dispatchEvent(new CustomEvent('password', { detail: password }));\n this.requestUpdate();\n }}\n >\n </foxy-sign-in-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSignIn = () => {\n const scope = 'sign-in';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n const isSignUpEnabled = this.data?.sign_up?.enabled === true;\n const isSignUpButtonHidden = hiddenSelector.matches('signup', true) || !isSignUpEnabled;\n\n return html`\n <div class=\"h-full flex\" data-testid=\"sign-in\">\n <div class=\"m-auto max-w-25rem flex-1\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderSignInHeader()}\n <div class=\"space-y-s\">\n ${hiddenSelector.matches('form', true) ? '' : this.__renderSignInForm()}\n <div class=\"flex justify-center gap-s\">\n ${isSignUpButtonHidden ? '' : this.__renderSignInSignUp()}\n ${hiddenSelector.matches('recover', true) ? '' : this.__renderSignInRecover()}\n </div>\n </div>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n private readonly __renderSignUpHeader = () => {\n const { lang, ns } = this;\n const formId = '#sign-up-form';\n const form = this.renderRoot.querySelector(formId) as CustomerForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-s font-lumo\" data-testid=\"sign-up:header\">\n ${this.renderTemplateOrSlot('sign-up:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"sign_up\"\n ns=\"${ns} sign-up-form\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"sign_up_hint\"\n ns=\"${ns} sign-up-form\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('sign-up:header:after')}\n </div>\n `;\n };\n\n private readonly __renderSignUpGoBack = () => {\n const form = this.renderRoot.querySelector<CustomerForm>('#sign-up-form');\n const disabledSelector = this.disabledSelector.zoom('sign-up');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('sign-up:go-back:before')}\n\n <vaadin-button\n data-testid=\"sign-up:go-back\"\n class=\"w-full\"\n theme=\"tertiary-inline\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('go-back', true)}\n @click=${() => (this.page = 'sign-in')}\n >\n <foxy-i18n lang=${this.lang} key=\"go_back\" ns=\"${this.ns} sign-up-form\"> </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('sign-up:go-back:after')}\n </div>\n `;\n };\n\n private readonly __renderSignUpForm = () => {\n const scope = 'sign-up:form';\n const hidden = [\n 'header',\n 'tax-id',\n 'is-anonymous',\n 'password-old',\n 'forgot-password',\n 'timestamps',\n 'delete',\n this.hiddenSelector.zoom(scope).toString(),\n ];\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-customer-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${new BooleanSelector(hidden.join(' ').trim())}\n data-testid=\"sign-up:form\"\n parent=\"foxy://customer-api/signup\"\n group=${this.group}\n lang=${this.lang}\n id=\"sign-up-form\"\n ns=\"${this.ns} sign-up-form\"\n .templates=${this.getNestedTemplates('sign-up:form')}\n .settings=${this.data}\n @update=${() => this.requestUpdate()}\n >\n </foxy-customer-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSignUp = () => {\n const scope = 'sign-up';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div class=\"h-full flex\" data-testid=\"sign-up\">\n <div class=\"m-auto max-w-25rem flex-1\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderSignUpHeader()}\n ${hiddenSelector.matches('form', true) ? '' : this.__renderSignUpForm()}\n ${hiddenSelector.matches('go-back', true) ? '' : this.__renderSignUpGoBack()}\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n renderBody(): TemplateResult {\n const { page, hiddenSelector } = this;\n\n if (page === 'access-recovery' && !hiddenSelector.matches('access-recovery', true)) {\n return this.__renderAccessRecovery();\n }\n\n if (page === 'sign-in' && !hiddenSelector.matches('sign-in', true)) {\n return this.__renderSignIn();\n }\n\n if (page === 'sign-up' && !hiddenSelector.matches('sign-up', true)) {\n return this.__renderSignUp();\n }\n\n return html``;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalCustomerPortalLoggedOutView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { AccessRecoveryForm } from '../AccessRecoveryForm/AccessRecoveryForm';\nimport type { CustomerForm } from '../CustomerForm/CustomerForm';\nimport type { SignInForm } from '../SignInForm/SignInForm';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/customer';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { css, html } from 'lit-element';\n\ntype Data = Resource<Rels.CustomerPortalSettings>;\nconst Base = TranslatableMixin(InternalForm);\n\nexport class InternalCustomerPortalLoggedOutView extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n group: { type: String },\n page: { type: String },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .max-w-25rem {\n max-width: 25rem;\n }\n `,\n ];\n }\n\n page: 'sign-up' | 'sign-in' | 'access-recovery' = 'sign-in';\n\n private readonly __renderAccessRecoveryHeader = () => {\n const { lang, ns } = this;\n const formId = '#access-recovery-form';\n const form = this.renderRoot.querySelector(formId) as AccessRecoveryForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-s font-lumo\" data-testid=\"access-recovery:header\">\n ${this.renderTemplateOrSlot('access-recovery:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"recover_access\"\n ns=\"${ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"recover_access_hint\"\n ns=\"${ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('access-recovery:header:after')}\n </div>\n `;\n };\n\n private readonly __renderAccessRecoveryBack = () => {\n const formId = '#access-recovery-form';\n const form = this.renderRoot.querySelector(formId) as AccessRecoveryForm | null;\n const disabledSelector = this.disabledSelector.zoom('access-recovery');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('access-recovery:back:before')}\n\n <vaadin-button\n data-testid=\"access-recovery:back\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('back', true)}\n @click=${() => (this.page = 'sign-in')}\n >\n <foxy-i18n\n lang=${this.lang}\n key=\"back\"\n ns=\"${this.ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('access-recovery:back:after')}\n </div>\n `;\n };\n\n private readonly __renderAccessRecoveryForm = () => {\n const scope = 'access-recovery:form';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-access-recovery-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${hiddenSelector.toString()}\n data-testid=\"access-recovery:form\"\n parent=\"foxy://customer-api/recover\"\n group=${this.group}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n id=\"access-recovery-form\"\n .templates=${this.getNestedTemplates(scope)}\n @update=${() => this.requestUpdate()}\n >\n </foxy-access-recovery-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderAccessRecovery = () => {\n const scope = 'access-recovery';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div class=\"h-full flex\" data-testid=\"access-recovery\">\n <div class=\"m-auto max-w-25rem flex-1\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderAccessRecoveryHeader()}\n <div class=\"space-y-s\">\n ${hiddenSelector.matches('form', true) ? '' : this.__renderAccessRecoveryForm()}\n ${hiddenSelector.matches('back', true) ? '' : this.__renderAccessRecoveryBack()}\n </div>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n private readonly __renderSignInHeader = () => {\n const { lang, ns } = this;\n const formId = '#sign-in-form';\n const form = this.renderRoot.querySelector(formId) as SignInForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-s font-lumo\" data-testid=\"sign-in:header\">\n ${this.renderTemplateOrSlot('sign-in:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"sign_in\"\n ns=\"${ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"sign_in_hint\"\n ns=\"${ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('sign-in:header:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInRecover = () => {\n const form = this.renderRoot.querySelector<AccessRecoveryForm>('#sign-in-form');\n const disabledSelector = this.disabledSelector.zoom('sign-in');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('sign-in:recover:before')}\n\n <vaadin-button\n data-testid=\"sign-in:recover\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('recover', true)}\n @click=${() => (this.page = 'access-recovery')}\n >\n <foxy-i18n\n lang=${this.lang}\n key=\"recover_access\"\n ns=\"${this.ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('sign-in:recover:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInSignUp = () => {\n const form = this.renderRoot.querySelector<AccessRecoveryForm>('#sign-in-form');\n const disabledSelector = this.disabledSelector.zoom('sign-in');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('sign-in:signup:before')}\n\n <vaadin-button\n data-testid=\"sign-in:signup\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('signup', true)}\n @click=${() => (this.page = 'sign-up')}\n >\n <foxy-i18n lang=${this.lang} key=\"sign_up\" ns=\"${this.ns} sign-in-form\"> </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('sign-in:signup:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInForm = () => {\n const scope = 'sign-in:form';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-sign-in-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${hiddenSelector.toString()}\n data-testid=\"sign-in:form\"\n parent=\"foxy://customer-api/session\"\n group=${this.group}\n lang=${this.lang}\n id=\"sign-in-form\"\n ns=\"${this.ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n .templates=${this.getNestedTemplates('sign-in:form')}\n @update=${(evt: CustomEvent) => {\n const target = evt.currentTarget as SignInForm;\n const password = target.form.credential?.password ?? null;\n this.dispatchEvent(new CustomEvent('password', { detail: password }));\n this.requestUpdate();\n }}\n >\n </foxy-sign-in-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSignIn = () => {\n const scope = 'sign-in';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n const isSignUpEnabled = this.data?.sign_up?.enabled === true;\n const isSignUpButtonHidden = hiddenSelector.matches('signup', true) || !isSignUpEnabled;\n\n return html`\n <div class=\"h-full flex\" data-testid=\"sign-in\">\n <div class=\"m-auto max-w-25rem flex-1 min-w-0\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderSignInHeader()}\n <div class=\"space-y-s\">\n ${hiddenSelector.matches('form', true) ? '' : this.__renderSignInForm()}\n <div class=\"flex justify-center gap-x-s flex-wrap\">\n ${isSignUpButtonHidden ? '' : this.__renderSignInSignUp()}\n ${hiddenSelector.matches('recover', true) ? '' : this.__renderSignInRecover()}\n </div>\n </div>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n private readonly __renderSignUpHeader = () => {\n const { lang, ns } = this;\n const formId = '#sign-up-form';\n const form = this.renderRoot.querySelector(formId) as CustomerForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-s font-lumo\" data-testid=\"sign-up:header\">\n ${this.renderTemplateOrSlot('sign-up:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"sign_up\"\n ns=\"${ns} sign-up-form\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"sign_up_hint\"\n ns=\"${ns} sign-up-form\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('sign-up:header:after')}\n </div>\n `;\n };\n\n private readonly __renderSignUpGoBack = () => {\n const form = this.renderRoot.querySelector<CustomerForm>('#sign-up-form');\n const disabledSelector = this.disabledSelector.zoom('sign-up');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('sign-up:go-back:before')}\n\n <vaadin-button\n data-testid=\"sign-up:go-back\"\n class=\"w-full\"\n theme=\"tertiary-inline\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('go-back', true)}\n @click=${() => (this.page = 'sign-in')}\n >\n <foxy-i18n lang=${this.lang} key=\"go_back\" ns=\"${this.ns} sign-up-form\"> </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('sign-up:go-back:after')}\n </div>\n `;\n };\n\n private readonly __renderSignUpForm = () => {\n const scope = 'sign-up:form';\n const hidden = [\n 'header',\n 'tax-id',\n 'is-anonymous',\n 'password-old',\n 'forgot-password',\n 'timestamps',\n 'delete',\n this.hiddenSelector.zoom(scope).toString(),\n ];\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-customer-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${new BooleanSelector(hidden.join(' ').trim())}\n data-testid=\"sign-up:form\"\n parent=\"foxy://customer-api/signup\"\n group=${this.group}\n lang=${this.lang}\n id=\"sign-up-form\"\n ns=\"${this.ns} sign-up-form\"\n .templates=${this.getNestedTemplates('sign-up:form')}\n .settings=${this.data}\n @update=${() => this.requestUpdate()}\n >\n </foxy-customer-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSignUp = () => {\n const scope = 'sign-up';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div class=\"h-full flex\" data-testid=\"sign-up\">\n <div class=\"m-auto max-w-25rem flex-1\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderSignUpHeader()}\n ${hiddenSelector.matches('form', true) ? '' : this.__renderSignUpForm()}\n ${hiddenSelector.matches('go-back', true) ? '' : this.__renderSignUpGoBack()}\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n renderBody(): TemplateResult {\n const { page, hiddenSelector } = this;\n\n if (page === 'access-recovery' && !hiddenSelector.matches('access-recovery', true)) {\n return this.__renderAccessRecovery();\n }\n\n if (page === 'sign-in' && !hiddenSelector.matches('sign-in', true)) {\n return this.__renderSignIn();\n }\n\n if (page === 'sign-up' && !hiddenSelector.matches('sign-up', true)) {\n return this.__renderSignUp();\n }\n\n return html``;\n }\n}\n"]}
@@ -36,6 +36,7 @@ export declare class PaymentsApiPaymentMethodForm extends Base<Data> {
36
36
  private readonly __threeDSecureToggleGetValue;
37
37
  private readonly __threeDSecureToggleSetValue;
38
38
  private readonly __threeDSecureToggleOptions;
39
+ private readonly __cardVerificationGetValue;
39
40
  private readonly __cardVerificationOptions;
40
41
  get hiddenSelector(): BooleanSelector;
41
42
  renderHeader(...params: Parameters<InternalForm<Data>['renderHeader']>): TemplateResult;
@@ -68,6 +68,10 @@ export class PaymentsApiPaymentMethodForm extends Base {
68
68
  { value: 'all_cards', label: 'option_all_cards' },
69
69
  { value: 'maestro_only', label: 'option_maestro_only' },
70
70
  ];
71
+ this.__cardVerificationGetValue = () => {
72
+ // @ts-expect-error SDK typings are incomplete
73
+ return this.form.card_verification || 'disabled';
74
+ };
71
75
  this.__cardVerificationOptions = [
72
76
  { label: 'option_disabled', value: 'disabled' },
73
77
  { label: 'option_enabled_automatically', value: 'enabled_automatically' },
@@ -264,7 +268,7 @@ export class PaymentsApiPaymentMethodForm extends Base {
264
268
  `;
265
269
  }
266
270
  __renderPaymentMethodConfig() {
267
- var _a, _b, _c, _d, _e;
271
+ var _a, _b, _c;
268
272
  const oauthGateways = [
269
273
  'stripe_connect',
270
274
  'square_up',
@@ -332,6 +336,7 @@ export class PaymentsApiPaymentMethodForm extends Base {
332
336
  <foxy-internal-select-control
333
337
  layout="summary-item"
334
338
  infer="card-verification"
339
+ .getValue=${this.__cardVerificationGetValue}
335
340
  .options=${this.__cardVerificationOptions}
336
341
  >
337
342
  </foxy-internal-select-control>
@@ -339,39 +344,8 @@ export class PaymentsApiPaymentMethodForm extends Base {
339
344
  : ''}
340
345
  </foxy-internal-summary-control>
341
346
 
342
- ${
343
- // @ts-expect-error SDK typings are incomplete
344
- ((_d = this.form.helper) === null || _d === void 0 ? void 0 : _d.supports_card_verification) && ((_e =
345
- // @ts-expect-error SDK typings are incomplete
346
- this.form.card_verification) === null || _e === void 0 ? void 0 : _e.startsWith('enabled_'))
347
- ? html `
348
- <foxy-internal-summary-control
349
- layout="details"
350
- infer="card-verification-config-verification-amounts"
351
- >
352
- ${['visa', 'mastercard', 'american-express', 'discover', 'default'].map(type => {
353
- var _a;
354
- return html `
355
- <foxy-internal-number-control
356
- json-template=${ifDefined((_a =
357
- // @ts-expect-error SDK typings are incomplete
358
- this.form.helper) === null || _a === void 0 ? void 0 : _a.card_verification_config)}
359
- json-path="verification_amounts.${type.replace(/-/g, '_')}"
360
- property="card_verification_config"
361
- layout="summary-item"
362
- suffix="¤"
363
- infer="card-verification-config-verification-amounts-${type}"
364
- step="0.01"
365
- min="0"
366
- >
367
- </foxy-internal-number-control>
368
- `;
369
- })}
370
- </foxy-internal-summary-control>
371
- `
372
- : ''}
373
347
  ${['live', 'test'].map((type, index) => {
374
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
348
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
375
349
  const prefix = index === 0 ? '' : `${type}-`;
376
350
  const blocks = index === 0 ? this.__liveBlocks : this.__testBlocks;
377
351
  const scope = `${type}-group`;
@@ -435,6 +409,30 @@ export class PaymentsApiPaymentMethodForm extends Base {
435
409
  `
436
410
  : ''}
437
411
  ${blocks.map(block => this.__renderBlock(block))}
412
+ ${
413
+ // @ts-expect-error SDK typings are incomplete
414
+ ((_o = this.form.helper) === null || _o === void 0 ? void 0 : _o.supports_card_verification) && ((_p =
415
+ // @ts-expect-error SDK typings are incomplete
416
+ this.form.card_verification) === null || _p === void 0 ? void 0 : _p.startsWith('enabled_'))
417
+ ? ['visa', 'mastercard', 'american-express', 'discover', 'default'].map(type => {
418
+ var _a;
419
+ return html `
420
+ <foxy-internal-number-control
421
+ json-template=${ifDefined((_a =
422
+ // @ts-expect-error SDK typings are incomplete
423
+ this.form.helper) === null || _a === void 0 ? void 0 : _a.card_verification_config)}
424
+ json-path="verification_amounts.${type.replace(/-/g, '_')}"
425
+ property="${prefix.replace(/-/g, '_')}card_verification_config"
426
+ layout="summary-item"
427
+ suffix="¤"
428
+ infer="card-verification-config-verification-amounts-${type}"
429
+ step="0.01"
430
+ min="0"
431
+ >
432
+ </foxy-internal-number-control>
433
+ `;
434
+ })
435
+ : ''}
438
436
  </foxy-internal-summary-control>
439
437
  `;
440
438
  })}
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsApiPaymentMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AvailablePaymentMethods, PaymentPreset } from '../PaymentsApi/api/types';\nimport type { Block, Data } from './types';\nimport 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';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\n\nimport has from 'lodash-es/has';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\n\ntype PaymentMethod = {\n helper: AvailablePaymentMethods['values'][string];\n type: string;\n};\n\nconst NS = 'payments-api-payment-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for the `fx:payment_method` resource of Payments API.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-method-form\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentMethodForm extends Base<Data> {\n static get defaultImageSrc(): string {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E\";\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n paymentPreset: { attribute: 'payment-preset' },\n getImageSrc: { attribute: false },\n store: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ description: v }) => !v || v.length <= 100 || 'description:v8n_too_long',\n ({ type: v }) => !!v || 'type:v8n_required',\n\n form => {\n const blocks = form.helper?.additional_fields?.blocks ?? [];\n let additionalFields: Record<string, unknown>;\n\n try {\n additionalFields = JSON.parse(form.additional_fields ?? '{}');\n } catch {\n additionalFields = {};\n }\n\n for (const block of blocks) {\n for (const field of block.fields) {\n if ('optional' in (field as Record<string, unknown>)) {\n if (!(field as Record<string, unknown>).optional) {\n if (!has(additionalFields, field.id)) {\n if (field.type !== 'checkbox') {\n return 'additional-fields:v8n_invalid';\n }\n }\n }\n }\n }\n }\n\n return true;\n },\n ];\n }\n\n /** URL of the linked `fx:payment_preset` resource from the virtual Payments API. */\n paymentPreset: string | null = null;\n\n /** A function that returns a URL of a payment method icon based on the given type. */\n getImageSrc: ((type: string) => string) | null = null;\n\n /** URL of the linked `fx:store` resource. */\n store: string | null = null;\n\n private readonly __availablePaymentMethodsLoaderId = 'availablePaymentMethodsLoader';\n\n private readonly __paymentPresetLoaderId = 'paymentPresetLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __threeDSecureResponseGetValue = () => {\n return this.form.config_3d_secure?.endsWith('require_valid_response');\n };\n\n private readonly __threeDSecureResponseSetValue = (newValue: boolean) => {\n const postfix = newValue ? '_require_valid_response' : '';\n const config = this.form.config_3d_secure;\n const type = config?.startsWith('all_cards') ? 'all_cards' : 'maestro_only';\n\n this.edit({ config_3d_secure: `${type}${postfix}` as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleGetValue = () => {\n const config = this.form.config_3d_secure;\n\n if (config?.startsWith('all_cards')) return 'all_cards';\n if (config?.startsWith('maestro_only')) return 'maestro_only';\n\n return 'off';\n };\n\n private readonly __threeDSecureToggleSetValue = (\n newValue: 'off' | 'all_cards' | 'maestro_only'\n ) => {\n let newFormValue = '';\n\n if (newValue === 'all_cards' || newValue === 'maestro_only') {\n if (this.form.config_3d_secure?.endsWith('require_valid_response')) {\n newFormValue = `${newValue}_require_valid_response`;\n } else {\n newFormValue = newValue;\n }\n }\n\n this.edit({ config_3d_secure: newFormValue as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleOptions = [\n { value: 'off', label: 'option_off' },\n { value: 'all_cards', label: 'option_all_cards' },\n { value: 'maestro_only', label: 'option_maestro_only' },\n ];\n\n private readonly __cardVerificationOptions = [\n { label: 'option_disabled', value: 'disabled' },\n { label: 'option_enabled_automatically', value: 'enabled_automatically' },\n { label: 'option_enabled_override', value: 'enabled_override' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`header:copy-json ${super.hiddenSelector}`.trimEnd());\n }\n\n renderHeader(...params: Parameters<InternalForm<Data>['renderHeader']>): TemplateResult {\n return html`\n <div>\n ${super.renderHeader(...params)}\n ${this.data?.type || !this.form.type\n ? html``\n : html`\n <vaadin-button\n data-testid=\"select-another-button\"\n theme=\"tertiary-inline\"\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"select_another_button_label\"></foxy-i18n>\n </vaadin-button>\n `}\n </div>\n `;\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return {\n context: this.form.type ? 'selected' : 'new',\n name: this.form.helper?.name,\n };\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n if (this.href) {\n const vId = getResourceId(this.href) as string;\n const id = this.headerCopyIdValue;\n if (vId.startsWith('R')) return { context: 'regular', id };\n return { context: 'hosted', id };\n }\n\n return {};\n }\n\n get headerCopyIdValue(): string | number {\n if (this.href) {\n const id = getResourceId(this.href) as string;\n return id.startsWith('R') ? id.slice(1) : id.slice(1).split('C')[0];\n } else {\n return '';\n }\n }\n\n renderBody(): TemplateResult {\n const paymentPreset = this.__paymentPresetLoader?.data;\n\n const loaders = html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(paymentPreset?._links['fx:available_payment_methods'].href)}\n id=${this.__availablePaymentMethodsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.store)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.paymentPreset)}\n id=${this.__paymentPresetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n\n return html`${this.renderHeader()}${this.form.type\n ? this.__renderPaymentMethodConfig()\n : this.__renderPaymentMethodSelector()}${loaders}`;\n }\n\n private get __groupedAvailablePaymentMethods() {\n return Object.entries(this.__availablePaymentMethods ?? {})\n .sort((a, b) => a[0].localeCompare(b[0], 'en'))\n .reduce((groups, [type, helper]) => {\n if (helper.is_deprecated) return groups;\n\n const firstChar = type.charAt(0).toUpperCase();\n const isSpecialCharacter = !/\\w/.test(firstChar);\n const name = isSpecialCharacter ? '#' : firstChar;\n const group = groups.find(group => group.name === name);\n\n if (group) {\n group.items.push({ type, helper });\n } else {\n groups.push({ name, items: [{ type, helper }] });\n }\n\n return groups;\n }, [] as { name: string; items: PaymentMethod[] }[]);\n }\n\n private get __availablePaymentMethodsLoader() {\n type Loader = NucleonElement<AvailablePaymentMethods>;\n return this.renderRoot.querySelector<Loader>(`#${this.__availablePaymentMethodsLoaderId}`);\n }\n\n private get __availablePaymentMethods() {\n return this.__availablePaymentMethodsLoader?.data?.values;\n }\n\n private get __paymentPresetLoader() {\n type Loader = NucleonElement<PaymentPreset>;\n return this.renderRoot.querySelector<Loader>(`#${this.__paymentPresetLoaderId}`);\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n\n private get __liveBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => block.is_live) ?? [];\n }\n\n private get __testBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => !block.is_live) ?? [];\n }\n\n private __renderPaymentMethodSelector() {\n const loader = this.__availablePaymentMethodsLoader;\n\n if (!loader?.data) {\n return html`\n <foxy-spinner infer=\"list-spinner\" state=${loader?.in('fail') ? 'error' : 'busy'}>\n </foxy-spinner>\n `;\n }\n\n return html`\n <div>\n <section data-testid=\"select-method-list\" class=\"-mt-m\">\n ${this.__groupedAvailablePaymentMethods.map(({ name, items }) => {\n return html`\n <p class=\"font-medium text-tertiary py-m\">${name}</p>\n <ul class=\"grid grid-cols-2 gap-m\">\n ${items.map(item => html`<li>${this.__renderPaymentMethodButton(item)}</li>`)}\n </ul>\n `;\n })}\n </section>\n </div>\n `;\n }\n\n private __renderPaymentMethodConfig() {\n const oauthGateways = [\n 'stripe_connect',\n 'square_up',\n 'quickbook_payments',\n 'amazon_mws',\n 'paypal_platform',\n ];\n\n if (this.form.type && oauthGateways.includes(this.form.type)) {\n return html`\n <div\n class=\"flex items-start rounded border border-primary\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); padding: 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=\"no_oauth_support_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\n return html`\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"description\">\n </foxy-internal-text-control>\n\n ${this.form.helper?.supports_auth_only\n ? html`\n <foxy-internal-switch-control infer=\"use-auth-only\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n `\n : ''}\n ${this.form.helper?.supports_3d_secure\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"three-d-secure-toggle\"\n .getValue=${this.__threeDSecureToggleGetValue}\n .setValue=${this.__threeDSecureToggleSetValue}\n .options=${this.__threeDSecureToggleOptions}\n >\n </foxy-internal-select-control>\n\n ${this.form.config_3d_secure\n ? html`\n <foxy-internal-switch-control\n layout=\"summary-item\"\n infer=\"three-d-secure-response\"\n .getValue=${this.__threeDSecureResponseGetValue}\n .setValue=${this.__threeDSecureResponseSetValue}\n >\n </foxy-internal-switch-control>\n `\n : ''}\n `\n : ''}\n ${\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.supports_card_verification\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"card-verification\"\n .options=${this.__cardVerificationOptions}\n >\n </foxy-internal-select-control>\n `\n : ''\n }\n </foxy-internal-summary-control>\n\n ${\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.supports_card_verification &&\n // @ts-expect-error SDK typings are incomplete\n this.form.card_verification?.startsWith('enabled_')\n ? html`\n <foxy-internal-summary-control\n layout=\"details\"\n infer=\"card-verification-config-verification-amounts\"\n >\n ${['visa', 'mastercard', 'american-express', 'discover', 'default'].map(type => {\n return html`\n <foxy-internal-number-control\n json-template=${ifDefined(\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.card_verification_config\n )}\n json-path=\"verification_amounts.${type.replace(/-/g, '_')}\"\n property=\"card_verification_config\"\n layout=\"summary-item\"\n suffix=\"¤\"\n infer=\"card-verification-config-verification-amounts-${type}\"\n step=\"0.01\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n `;\n })}\n </foxy-internal-summary-control>\n `\n : ''\n }\n ${['live', 'test'].map((type, index) => {\n const prefix = index === 0 ? '' : `${type}-`;\n const blocks = index === 0 ? this.__liveBlocks : this.__testBlocks;\n const scope = `${type}-group`;\n\n if (type === 'live' && !this.__storeLoader?.data) return html``;\n if (type === 'live' && !this.__storeLoader?.data?.is_active) {\n return html`\n <foxy-internal-summary-control infer=\"${type}-group\">\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><foxy-i18n infer=\"\" key=\"inactive_message\"></foxy-i18n></p>\n </div>\n </foxy-internal-summary-control>\n `;\n }\n\n const showInactiveSetText =\n this.__storeLoader?.data?.is_active === true &&\n ((type === 'test' && this.__paymentPresetLoader?.data?.is_live === true) ||\n (type === 'live' && this.__paymentPresetLoader?.data?.is_live === false));\n\n return html`\n <foxy-internal-summary-control\n helper-text=${ifDefined(\n showInactiveSetText ? this.t(`${scope}.helper_text_inactive`) : void 0\n )}\n layout=\"details\"\n label=${ifDefined(showInactiveSetText ? this.t(`${scope}.label_inactive`) : void 0)}\n infer=${scope}\n ?open=${!showInactiveSetText}\n >\n ${this.form.helper?.id_description\n ? html`\n <foxy-internal-text-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.id_description}\n infer=\"${prefix}account-id\"\n >\n </foxy-internal-text-control>\n `\n : ''}\n ${this.form.helper?.third_party_key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.third_party_key_description}\n infer=\"${prefix}third-party-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${this.form.helper?.key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n helper-text=\"\"\n label=${this.form.helper.key_description}\n infer=\"${prefix}account-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${blocks.map(block => this.__renderBlock(block))}\n </foxy-internal-summary-control>\n `;\n })}\n ${super.renderBody()}\n `;\n }\n\n private __renderPaymentMethodButton({ type, helper }: PaymentMethod) {\n const defaultSrc = PaymentsApiPaymentMethodForm.defaultImageSrc;\n const src = this.getImageSrc?.(type) ?? defaultSrc;\n const onError = (evt: Event) => ((evt.currentTarget as HTMLImageElement).src = defaultSrc);\n\n return html`\n <button\n class=${classMap({\n 'relative w-full block text-left p-s rounded bg-contrast-5 overflow-hidden': true,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n 'transition-colors hover-bg-contrast-10': !helper.conflict,\n 'cursor-default': !!helper.conflict,\n })}\n ?disabled=${!!helper.conflict}\n title=${helper.conflict ? this.t('conflict_message', helper.conflict) : ''}\n @click=${() => this.edit({ type, helper })}\n >\n <img\n class=\"absolute top-0 left-0 w-1-2 h-full object-cover bg-center filter saturate-200 blur-3xl\"\n style=\"transform: translate3d(0, 0, 0)\"\n src=${src}\n alt=\"\"\n ?hidden=${!!helper.conflict}\n @error=${onError}\n />\n\n <figure class=\"relative flex flex-col gap-m\">\n <img\n class=${classMap({\n 'h-m w-m object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs': true,\n 'filter grayscale': !!helper.conflict,\n })}\n src=${src}\n alt=\"\"\n @error=${onError}\n />\n\n <figcaption\n class=${classMap({\n 'min-w-0 flex-1 truncate leading-s': true,\n 'text-disabled': !!helper.conflict,\n })}\n >\n <div class=\"font-medium\">${helper.name}&ZeroWidthSpace;</div>\n <div class=\"text-xs ${helper.conflict ? '' : 'text-secondary'}\">${type}</div>\n </figcaption>\n </figure>\n </button>\n `;\n }\n\n private __renderBlock(block: Block) {\n return html`${block.fields.map(field => {\n if (field.type === 'hidden') return;\n const scope = ['additional-fields', field.id].join('-').replace(/_/g, '-');\n\n const getValue = () => {\n try {\n const config = JSON.parse(this.form.additional_fields ?? '{}');\n return get(config, field.id) ?? config.default_value;\n } catch {\n return field.default_value;\n }\n };\n\n const setValue = (newValue: unknown) => {\n let config: Record<string, unknown> = {};\n\n try {\n config = JSON.parse(this.form.additional_fields ?? '');\n } catch {\n // ignore\n }\n\n this.edit({ additional_fields: JSON.stringify(set(config, field.id, newValue)) });\n };\n\n type Option = { name: string; value: string };\n const options = (field as { options?: Option[] }).options;\n\n return html`\n ${field.type === 'checkbox'\n ? html`\n <foxy-internal-switch-control\n helper-text=${field.description ?? ''}\n label=${field.name}\n infer=${scope}\n helper-text-as-tooltip\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-switch-control>\n `\n : field.type === 'select'\n ? html`\n <foxy-internal-select-control\n placeholder=${this.t('default_additional_field_select_placeholder')}\n helper-text=${field.description ?? ''}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .options=${options!.map(({ name, value }) => ({ label: name, value }))}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control\n helper-text=${field.description ?? ''}\n placeholder=${field.default_value || this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-text-control>\n `}\n `;\n })}`;\n }\n}\n"]}
1
+ {"version":3,"file":"PaymentsApiPaymentMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AvailablePaymentMethods, PaymentPreset } from '../PaymentsApi/api/types';\nimport type { Block, Data } from './types';\nimport 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';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\n\nimport has from 'lodash-es/has';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\n\ntype PaymentMethod = {\n helper: AvailablePaymentMethods['values'][string];\n type: string;\n};\n\nconst NS = 'payments-api-payment-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for the `fx:payment_method` resource of Payments API.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-method-form\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentMethodForm extends Base<Data> {\n static get defaultImageSrc(): string {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E\";\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n paymentPreset: { attribute: 'payment-preset' },\n getImageSrc: { attribute: false },\n store: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ description: v }) => !v || v.length <= 100 || 'description:v8n_too_long',\n ({ type: v }) => !!v || 'type:v8n_required',\n\n form => {\n const blocks = form.helper?.additional_fields?.blocks ?? [];\n let additionalFields: Record<string, unknown>;\n\n try {\n additionalFields = JSON.parse(form.additional_fields ?? '{}');\n } catch {\n additionalFields = {};\n }\n\n for (const block of blocks) {\n for (const field of block.fields) {\n if ('optional' in (field as Record<string, unknown>)) {\n if (!(field as Record<string, unknown>).optional) {\n if (!has(additionalFields, field.id)) {\n if (field.type !== 'checkbox') {\n return 'additional-fields:v8n_invalid';\n }\n }\n }\n }\n }\n }\n\n return true;\n },\n ];\n }\n\n /** URL of the linked `fx:payment_preset` resource from the virtual Payments API. */\n paymentPreset: string | null = null;\n\n /** A function that returns a URL of a payment method icon based on the given type. */\n getImageSrc: ((type: string) => string) | null = null;\n\n /** URL of the linked `fx:store` resource. */\n store: string | null = null;\n\n private readonly __availablePaymentMethodsLoaderId = 'availablePaymentMethodsLoader';\n\n private readonly __paymentPresetLoaderId = 'paymentPresetLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __threeDSecureResponseGetValue = () => {\n return this.form.config_3d_secure?.endsWith('require_valid_response');\n };\n\n private readonly __threeDSecureResponseSetValue = (newValue: boolean) => {\n const postfix = newValue ? '_require_valid_response' : '';\n const config = this.form.config_3d_secure;\n const type = config?.startsWith('all_cards') ? 'all_cards' : 'maestro_only';\n\n this.edit({ config_3d_secure: `${type}${postfix}` as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleGetValue = () => {\n const config = this.form.config_3d_secure;\n\n if (config?.startsWith('all_cards')) return 'all_cards';\n if (config?.startsWith('maestro_only')) return 'maestro_only';\n\n return 'off';\n };\n\n private readonly __threeDSecureToggleSetValue = (\n newValue: 'off' | 'all_cards' | 'maestro_only'\n ) => {\n let newFormValue = '';\n\n if (newValue === 'all_cards' || newValue === 'maestro_only') {\n if (this.form.config_3d_secure?.endsWith('require_valid_response')) {\n newFormValue = `${newValue}_require_valid_response`;\n } else {\n newFormValue = newValue;\n }\n }\n\n this.edit({ config_3d_secure: newFormValue as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleOptions = [\n { value: 'off', label: 'option_off' },\n { value: 'all_cards', label: 'option_all_cards' },\n { value: 'maestro_only', label: 'option_maestro_only' },\n ];\n\n private readonly __cardVerificationGetValue = () => {\n // @ts-expect-error SDK typings are incomplete\n return this.form.card_verification || 'disabled';\n };\n\n private readonly __cardVerificationOptions = [\n { label: 'option_disabled', value: 'disabled' },\n { label: 'option_enabled_automatically', value: 'enabled_automatically' },\n { label: 'option_enabled_override', value: 'enabled_override' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`header:copy-json ${super.hiddenSelector}`.trimEnd());\n }\n\n renderHeader(...params: Parameters<InternalForm<Data>['renderHeader']>): TemplateResult {\n return html`\n <div>\n ${super.renderHeader(...params)}\n ${this.data?.type || !this.form.type\n ? html``\n : html`\n <vaadin-button\n data-testid=\"select-another-button\"\n theme=\"tertiary-inline\"\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"select_another_button_label\"></foxy-i18n>\n </vaadin-button>\n `}\n </div>\n `;\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return {\n context: this.form.type ? 'selected' : 'new',\n name: this.form.helper?.name,\n };\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n if (this.href) {\n const vId = getResourceId(this.href) as string;\n const id = this.headerCopyIdValue;\n if (vId.startsWith('R')) return { context: 'regular', id };\n return { context: 'hosted', id };\n }\n\n return {};\n }\n\n get headerCopyIdValue(): string | number {\n if (this.href) {\n const id = getResourceId(this.href) as string;\n return id.startsWith('R') ? id.slice(1) : id.slice(1).split('C')[0];\n } else {\n return '';\n }\n }\n\n renderBody(): TemplateResult {\n const paymentPreset = this.__paymentPresetLoader?.data;\n\n const loaders = html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(paymentPreset?._links['fx:available_payment_methods'].href)}\n id=${this.__availablePaymentMethodsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.store)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.paymentPreset)}\n id=${this.__paymentPresetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n\n return html`${this.renderHeader()}${this.form.type\n ? this.__renderPaymentMethodConfig()\n : this.__renderPaymentMethodSelector()}${loaders}`;\n }\n\n private get __groupedAvailablePaymentMethods() {\n return Object.entries(this.__availablePaymentMethods ?? {})\n .sort((a, b) => a[0].localeCompare(b[0], 'en'))\n .reduce((groups, [type, helper]) => {\n if (helper.is_deprecated) return groups;\n\n const firstChar = type.charAt(0).toUpperCase();\n const isSpecialCharacter = !/\\w/.test(firstChar);\n const name = isSpecialCharacter ? '#' : firstChar;\n const group = groups.find(group => group.name === name);\n\n if (group) {\n group.items.push({ type, helper });\n } else {\n groups.push({ name, items: [{ type, helper }] });\n }\n\n return groups;\n }, [] as { name: string; items: PaymentMethod[] }[]);\n }\n\n private get __availablePaymentMethodsLoader() {\n type Loader = NucleonElement<AvailablePaymentMethods>;\n return this.renderRoot.querySelector<Loader>(`#${this.__availablePaymentMethodsLoaderId}`);\n }\n\n private get __availablePaymentMethods() {\n return this.__availablePaymentMethodsLoader?.data?.values;\n }\n\n private get __paymentPresetLoader() {\n type Loader = NucleonElement<PaymentPreset>;\n return this.renderRoot.querySelector<Loader>(`#${this.__paymentPresetLoaderId}`);\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n\n private get __liveBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => block.is_live) ?? [];\n }\n\n private get __testBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => !block.is_live) ?? [];\n }\n\n private __renderPaymentMethodSelector() {\n const loader = this.__availablePaymentMethodsLoader;\n\n if (!loader?.data) {\n return html`\n <foxy-spinner infer=\"list-spinner\" state=${loader?.in('fail') ? 'error' : 'busy'}>\n </foxy-spinner>\n `;\n }\n\n return html`\n <div>\n <section data-testid=\"select-method-list\" class=\"-mt-m\">\n ${this.__groupedAvailablePaymentMethods.map(({ name, items }) => {\n return html`\n <p class=\"font-medium text-tertiary py-m\">${name}</p>\n <ul class=\"grid grid-cols-2 gap-m\">\n ${items.map(item => html`<li>${this.__renderPaymentMethodButton(item)}</li>`)}\n </ul>\n `;\n })}\n </section>\n </div>\n `;\n }\n\n private __renderPaymentMethodConfig() {\n const oauthGateways = [\n 'stripe_connect',\n 'square_up',\n 'quickbook_payments',\n 'amazon_mws',\n 'paypal_platform',\n ];\n\n if (this.form.type && oauthGateways.includes(this.form.type)) {\n return html`\n <div\n class=\"flex items-start rounded border border-primary\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); padding: 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=\"no_oauth_support_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\n return html`\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"description\">\n </foxy-internal-text-control>\n\n ${this.form.helper?.supports_auth_only\n ? html`\n <foxy-internal-switch-control infer=\"use-auth-only\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n `\n : ''}\n ${this.form.helper?.supports_3d_secure\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"three-d-secure-toggle\"\n .getValue=${this.__threeDSecureToggleGetValue}\n .setValue=${this.__threeDSecureToggleSetValue}\n .options=${this.__threeDSecureToggleOptions}\n >\n </foxy-internal-select-control>\n\n ${this.form.config_3d_secure\n ? html`\n <foxy-internal-switch-control\n layout=\"summary-item\"\n infer=\"three-d-secure-response\"\n .getValue=${this.__threeDSecureResponseGetValue}\n .setValue=${this.__threeDSecureResponseSetValue}\n >\n </foxy-internal-switch-control>\n `\n : ''}\n `\n : ''}\n ${\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.supports_card_verification\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"card-verification\"\n .getValue=${this.__cardVerificationGetValue}\n .options=${this.__cardVerificationOptions}\n >\n </foxy-internal-select-control>\n `\n : ''\n }\n </foxy-internal-summary-control>\n\n ${['live', 'test'].map((type, index) => {\n const prefix = index === 0 ? '' : `${type}-`;\n const blocks = index === 0 ? this.__liveBlocks : this.__testBlocks;\n const scope = `${type}-group`;\n\n if (type === 'live' && !this.__storeLoader?.data) return html``;\n if (type === 'live' && !this.__storeLoader?.data?.is_active) {\n return html`\n <foxy-internal-summary-control infer=\"${type}-group\">\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><foxy-i18n infer=\"\" key=\"inactive_message\"></foxy-i18n></p>\n </div>\n </foxy-internal-summary-control>\n `;\n }\n\n const showInactiveSetText =\n this.__storeLoader?.data?.is_active === true &&\n ((type === 'test' && this.__paymentPresetLoader?.data?.is_live === true) ||\n (type === 'live' && this.__paymentPresetLoader?.data?.is_live === false));\n\n return html`\n <foxy-internal-summary-control\n helper-text=${ifDefined(\n showInactiveSetText ? this.t(`${scope}.helper_text_inactive`) : void 0\n )}\n layout=\"details\"\n label=${ifDefined(showInactiveSetText ? this.t(`${scope}.label_inactive`) : void 0)}\n infer=${scope}\n ?open=${!showInactiveSetText}\n >\n ${this.form.helper?.id_description\n ? html`\n <foxy-internal-text-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.id_description}\n infer=\"${prefix}account-id\"\n >\n </foxy-internal-text-control>\n `\n : ''}\n ${this.form.helper?.third_party_key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.third_party_key_description}\n infer=\"${prefix}third-party-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${this.form.helper?.key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n helper-text=\"\"\n label=${this.form.helper.key_description}\n infer=\"${prefix}account-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${blocks.map(block => this.__renderBlock(block))}\n ${\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.supports_card_verification &&\n // @ts-expect-error SDK typings are incomplete\n this.form.card_verification?.startsWith('enabled_')\n ? ['visa', 'mastercard', 'american-express', 'discover', 'default'].map(type => {\n return html`\n <foxy-internal-number-control\n json-template=${ifDefined(\n // @ts-expect-error SDK typings are incomplete\n this.form.helper?.card_verification_config\n )}\n json-path=\"verification_amounts.${type.replace(/-/g, '_')}\"\n property=\"${prefix.replace(/-/g, '_')}card_verification_config\"\n layout=\"summary-item\"\n suffix=\"¤\"\n infer=\"card-verification-config-verification-amounts-${type}\"\n step=\"0.01\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n `;\n })\n : ''\n }\n </foxy-internal-summary-control>\n `;\n })}\n ${super.renderBody()}\n `;\n }\n\n private __renderPaymentMethodButton({ type, helper }: PaymentMethod) {\n const defaultSrc = PaymentsApiPaymentMethodForm.defaultImageSrc;\n const src = this.getImageSrc?.(type) ?? defaultSrc;\n const onError = (evt: Event) => ((evt.currentTarget as HTMLImageElement).src = defaultSrc);\n\n return html`\n <button\n class=${classMap({\n 'relative w-full block text-left p-s rounded bg-contrast-5 overflow-hidden': true,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n 'transition-colors hover-bg-contrast-10': !helper.conflict,\n 'cursor-default': !!helper.conflict,\n })}\n ?disabled=${!!helper.conflict}\n title=${helper.conflict ? this.t('conflict_message', helper.conflict) : ''}\n @click=${() => this.edit({ type, helper })}\n >\n <img\n class=\"absolute top-0 left-0 w-1-2 h-full object-cover bg-center filter saturate-200 blur-3xl\"\n style=\"transform: translate3d(0, 0, 0)\"\n src=${src}\n alt=\"\"\n ?hidden=${!!helper.conflict}\n @error=${onError}\n />\n\n <figure class=\"relative flex flex-col gap-m\">\n <img\n class=${classMap({\n 'h-m w-m object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs': true,\n 'filter grayscale': !!helper.conflict,\n })}\n src=${src}\n alt=\"\"\n @error=${onError}\n />\n\n <figcaption\n class=${classMap({\n 'min-w-0 flex-1 truncate leading-s': true,\n 'text-disabled': !!helper.conflict,\n })}\n >\n <div class=\"font-medium\">${helper.name}&ZeroWidthSpace;</div>\n <div class=\"text-xs ${helper.conflict ? '' : 'text-secondary'}\">${type}</div>\n </figcaption>\n </figure>\n </button>\n `;\n }\n\n private __renderBlock(block: Block) {\n return html`${block.fields.map(field => {\n if (field.type === 'hidden') return;\n const scope = ['additional-fields', field.id].join('-').replace(/_/g, '-');\n\n const getValue = () => {\n try {\n const config = JSON.parse(this.form.additional_fields ?? '{}');\n return get(config, field.id) ?? config.default_value;\n } catch {\n return field.default_value;\n }\n };\n\n const setValue = (newValue: unknown) => {\n let config: Record<string, unknown> = {};\n\n try {\n config = JSON.parse(this.form.additional_fields ?? '');\n } catch {\n // ignore\n }\n\n this.edit({ additional_fields: JSON.stringify(set(config, field.id, newValue)) });\n };\n\n type Option = { name: string; value: string };\n const options = (field as { options?: Option[] }).options;\n\n return html`\n ${field.type === 'checkbox'\n ? html`\n <foxy-internal-switch-control\n helper-text=${field.description ?? ''}\n label=${field.name}\n infer=${scope}\n helper-text-as-tooltip\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-switch-control>\n `\n : field.type === 'select'\n ? html`\n <foxy-internal-select-control\n placeholder=${this.t('default_additional_field_select_placeholder')}\n helper-text=${field.description ?? ''}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .options=${options!.map(({ name, value }) => ({ label: name, value }))}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control\n helper-text=${field.description ?? ''}\n placeholder=${field.default_value || this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-text-control>\n `}\n `;\n })}`;\n }\n}\n"]}
@@ -99,6 +99,7 @@ export class PaymentsApiPaymentPresetForm extends Base {
99
99
  item="foxy-payments-api-payment-method-card"
100
100
  form="foxy-payments-api-payment-method-form"
101
101
  alert
102
+ wide
102
103
  .itemProps=${{ '.getImageSrc': this.getPaymentMethodImageSrc }}
103
104
  .formProps=${{
104
105
  '.getImageSrc': this.getPaymentMethodImageSrc,
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsApiPaymentPresetForm.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Data } from './types';\nimport type { Rels } from '@foxy.io/sdk/backend';\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 } from 'lit-html';\n\nconst NS = 'payments-api-payment-preset-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for the `fx:payment_preset` resource of Payments API.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-preset-form\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentPresetForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getFraudProtectionImageSrc: { attribute: false },\n getPaymentMethodImageSrc: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ description: v }) => !!v || 'description:v8n_required',\n ({ description: v }) => (v && v.length <= 100) || 'description:v8n_too_long',\n ];\n }\n\n /** A function that returns image URL for given fraud protection `type`. */\n getFraudProtectionImageSrc: ((type: string) => string) | null = null;\n\n /** A function that returns image URL for given payment method `type`. */\n getPaymentMethodImageSrc: ((type: string) => string) | null = null;\n\n private readonly __isPurchaseOrderEnabledGetValue = () => {\n return this.__storeLoader?.data?.is_active ? this.form.is_purchase_order_enabled : false;\n };\n\n private readonly __isLiveGetValue = () => {\n return this.__storeLoader?.data?.is_active ? this.form.is_live : false;\n };\n\n private readonly __storeLoaderId = 'storeLoader';\n\n get readonlySelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.__storeLoader?.data?.is_active) {\n alwaysMatch.unshift('general:is-live', 'general:is-purchase-order-enabled');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['header:copy-json', super.hiddenSelector.toString()];\n const store = this.__storeLoader?.data;\n\n if (!this.data) alwaysMatch.unshift('payment-methods', 'fraud-protections');\n if (!store) alwaysMatch.unshift('general:is-live', 'general:is-purchase-order-enabled');\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n const isStoreActive = !!this.__storeLoader?.data?.is_active;\n const helperTextSuffix = isStoreActive ? '' : '_inactive_store';\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"description\">\n </foxy-internal-text-control>\n\n <foxy-internal-switch-control\n helper-text=${this.t(`general.is-live.helper_text${helperTextSuffix}`)}\n infer=\"is-live\"\n helper-text-as-tooltip\n .getValue=${this.__isLiveGetValue}\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n helper-text=${this.t(`general.is-purchase-order-enabled.helper_text${helperTextSuffix}`)}\n infer=\"is-purchase-order-enabled\"\n helper-text-as-tooltip\n .getValue=${this.__isPurchaseOrderEnabledGetValue}\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n infer=\"payment-methods\"\n first=${ifDefined(this.data?._links['fx:payment_methods'].href)}\n limit=\"5\"\n item=\"foxy-payments-api-payment-method-card\"\n form=\"foxy-payments-api-payment-method-form\"\n alert\n .itemProps=${{ '.getImageSrc': this.getPaymentMethodImageSrc }}\n .formProps=${{\n '.getImageSrc': this.getPaymentMethodImageSrc,\n 'payment-preset': this.href,\n 'store': this.data?._links['fx:store'].href,\n }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"fraud-protections\"\n first=${ifDefined(this.data?._links['fx:fraud_protections'].href)}\n limit=\"5\"\n item=\"foxy-payments-api-fraud-protection-card\"\n form=\"foxy-payments-api-fraud-protection-form\"\n alert\n .itemProps=${{ '.getImageSrc': this.getFraudProtectionImageSrc }}\n .formProps=${{ '.getImageSrc': this.getFraudProtectionImageSrc }}\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
1
+ {"version":3,"file":"PaymentsApiPaymentPresetForm.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Data } from './types';\nimport type { Rels } from '@foxy.io/sdk/backend';\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 } from 'lit-html';\n\nconst NS = 'payments-api-payment-preset-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for the `fx:payment_preset` resource of Payments API.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-preset-form\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentPresetForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getFraudProtectionImageSrc: { attribute: false },\n getPaymentMethodImageSrc: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ description: v }) => !!v || 'description:v8n_required',\n ({ description: v }) => (v && v.length <= 100) || 'description:v8n_too_long',\n ];\n }\n\n /** A function that returns image URL for given fraud protection `type`. */\n getFraudProtectionImageSrc: ((type: string) => string) | null = null;\n\n /** A function that returns image URL for given payment method `type`. */\n getPaymentMethodImageSrc: ((type: string) => string) | null = null;\n\n private readonly __isPurchaseOrderEnabledGetValue = () => {\n return this.__storeLoader?.data?.is_active ? this.form.is_purchase_order_enabled : false;\n };\n\n private readonly __isLiveGetValue = () => {\n return this.__storeLoader?.data?.is_active ? this.form.is_live : false;\n };\n\n private readonly __storeLoaderId = 'storeLoader';\n\n get readonlySelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.__storeLoader?.data?.is_active) {\n alwaysMatch.unshift('general:is-live', 'general:is-purchase-order-enabled');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['header:copy-json', super.hiddenSelector.toString()];\n const store = this.__storeLoader?.data;\n\n if (!this.data) alwaysMatch.unshift('payment-methods', 'fraud-protections');\n if (!store) alwaysMatch.unshift('general:is-live', 'general:is-purchase-order-enabled');\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n const isStoreActive = !!this.__storeLoader?.data?.is_active;\n const helperTextSuffix = isStoreActive ? '' : '_inactive_store';\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"description\">\n </foxy-internal-text-control>\n\n <foxy-internal-switch-control\n helper-text=${this.t(`general.is-live.helper_text${helperTextSuffix}`)}\n infer=\"is-live\"\n helper-text-as-tooltip\n .getValue=${this.__isLiveGetValue}\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n helper-text=${this.t(`general.is-purchase-order-enabled.helper_text${helperTextSuffix}`)}\n infer=\"is-purchase-order-enabled\"\n helper-text-as-tooltip\n .getValue=${this.__isPurchaseOrderEnabledGetValue}\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n infer=\"payment-methods\"\n first=${ifDefined(this.data?._links['fx:payment_methods'].href)}\n limit=\"5\"\n item=\"foxy-payments-api-payment-method-card\"\n form=\"foxy-payments-api-payment-method-form\"\n alert\n wide\n .itemProps=${{ '.getImageSrc': this.getPaymentMethodImageSrc }}\n .formProps=${{\n '.getImageSrc': this.getPaymentMethodImageSrc,\n 'payment-preset': this.href,\n 'store': this.data?._links['fx:store'].href,\n }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"fraud-protections\"\n first=${ifDefined(this.data?._links['fx:fraud_protections'].href)}\n limit=\"5\"\n item=\"foxy-payments-api-fraud-protection-card\"\n form=\"foxy-payments-api-fraud-protection-form\"\n alert\n .itemProps=${{ '.getImageSrc': this.getFraudProtectionImageSrc }}\n .formProps=${{ '.getImageSrc': this.getFraudProtectionImageSrc }}\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
@@ -84,7 +84,8 @@ class TransactionCard extends Base {
84
84
  ${data.type !== 'updateinfo' && data.type !== 'subscription_cancellation'
85
85
  ? html `
86
86
  <span>&bull;</span>
87
- <foxy-i18n .options=${options} infer="" key="price"></foxy-i18n>
87
+ <foxy-i18n .options=${options} infer="" class="whitespace-nowrap" key="price">
88
+ </foxy-i18n>
88
89
  `
89
90
  : ''}
90
91
  ${(data === null || data === void 0 ? void 0 : data.is_test) ? html `