@foxy.io/elements 1.32.0-beta.5 → 1.32.0-beta.7

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 (219) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +2 -2
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-admin-subscription-form.js +1 -1
  6. package/dist/cdn/foxy-api-browser.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  8. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  9. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-card.js +1 -1
  11. package/dist/cdn/foxy-attribute-form.js +1 -1
  12. package/dist/cdn/foxy-billing-address-card.js +1 -1
  13. package/dist/cdn/foxy-cancellation-form.js +1 -1
  14. package/dist/cdn/foxy-cart-card.js +1 -1
  15. package/dist/cdn/foxy-cart-form.js +1 -1
  16. package/dist/cdn/foxy-client-card.js +1 -1
  17. package/dist/cdn/foxy-client-form.js +1 -1
  18. package/dist/cdn/foxy-collection-page.js +1 -1
  19. package/dist/cdn/foxy-collection-pages.js +1 -1
  20. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  21. package/dist/cdn/foxy-coupon-card.js +1 -1
  22. package/dist/cdn/foxy-coupon-code-card.js +1 -1
  23. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  25. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  26. package/dist/cdn/foxy-coupon-form.js +1 -1
  27. package/dist/cdn/foxy-custom-field-card.js +1 -1
  28. package/dist/cdn/foxy-custom-field-form.js +1 -1
  29. package/dist/cdn/foxy-customer-card.js +1 -1
  30. package/dist/cdn/foxy-customer-form.js +1 -1
  31. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  33. package/dist/cdn/foxy-customer-portal.js +8 -8
  34. package/dist/cdn/foxy-customer.js +1 -1
  35. package/dist/cdn/foxy-customers-table.js +1 -1
  36. package/dist/cdn/foxy-discount-builder.js +1 -1
  37. package/dist/cdn/foxy-discount-card.js +1 -1
  38. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  39. package/dist/cdn/foxy-donation.js +1 -1
  40. package/dist/cdn/foxy-downloadable-card.js +1 -1
  41. package/dist/cdn/foxy-downloadable-form.js +1 -1
  42. package/dist/cdn/foxy-email-template-card.js +1 -1
  43. package/dist/cdn/foxy-email-template-form.js +1 -1
  44. package/dist/cdn/foxy-error-entry-card.js +1 -1
  45. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  47. package/dist/cdn/foxy-form-dialog.js +1 -1
  48. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  49. package/dist/cdn/foxy-gift-card-card.js +1 -1
  50. package/dist/cdn/foxy-gift-card-code-card.js +1 -1
  51. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  53. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  54. package/dist/cdn/foxy-gift-card-form.js +1 -1
  55. package/dist/cdn/foxy-i18n-editor.js +1 -1
  56. package/dist/cdn/foxy-i18n.js +1 -1
  57. package/dist/cdn/foxy-integration-card.js +1 -1
  58. package/dist/cdn/foxy-integration-form.js +1 -1
  59. package/dist/cdn/foxy-item-card.js +1 -1
  60. package/dist/cdn/foxy-item-category-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-form.js +1 -1
  62. package/dist/cdn/foxy-item-form.js +1 -1
  63. package/dist/cdn/foxy-item-option-card.js +1 -1
  64. package/dist/cdn/foxy-item-option-form.js +1 -1
  65. package/dist/cdn/foxy-items-form.js +1 -1
  66. package/dist/cdn/foxy-native-integration-card.js +1 -1
  67. package/dist/cdn/foxy-native-integration-form.js +1 -1
  68. package/dist/cdn/foxy-nucleon-element.js +1 -1
  69. package/dist/cdn/foxy-pagination.js +1 -1
  70. package/dist/cdn/foxy-passkey-card.js +1 -1
  71. package/dist/cdn/foxy-passkey-form.js +1 -1
  72. package/dist/cdn/foxy-payment-card-embed.js +1 -1
  73. package/dist/cdn/foxy-payment-card.js +1 -1
  74. package/dist/cdn/foxy-payment-method-card.js +1 -1
  75. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  76. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  80. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  81. package/dist/cdn/foxy-query-builder.js +1 -1
  82. package/dist/cdn/foxy-report-form.js +1 -1
  83. package/dist/cdn/foxy-reports-table.js +5 -5
  84. package/dist/cdn/foxy-shipment-card.js +1 -1
  85. package/dist/cdn/foxy-shipping-container-card.js +1 -1
  86. package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
  87. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  88. package/dist/cdn/foxy-shipping-service-card.js +1 -1
  89. package/dist/cdn/foxy-sign-in-form.js +1 -1
  90. package/dist/cdn/foxy-spinner.js +1 -1
  91. package/dist/cdn/foxy-store-card.js +1 -1
  92. package/dist/cdn/foxy-store-form.js +1 -1
  93. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  94. package/dist/cdn/foxy-subscription-card.js +1 -1
  95. package/dist/cdn/foxy-subscription-form.js +1 -1
  96. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  97. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  98. package/dist/cdn/foxy-table.js +1 -1
  99. package/dist/cdn/foxy-tax-card.js +1 -1
  100. package/dist/cdn/foxy-tax-form.js +1 -1
  101. package/dist/cdn/foxy-template-config-form.js +1 -1
  102. package/dist/cdn/foxy-template-form.js +1 -1
  103. package/dist/cdn/foxy-template-set-card.js +1 -1
  104. package/dist/cdn/foxy-template-set-form.js +1 -1
  105. package/dist/cdn/foxy-transaction-card.js +1 -1
  106. package/dist/cdn/foxy-transaction.js +1 -1
  107. package/dist/cdn/foxy-transactions-table.js +7 -7
  108. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  109. package/dist/cdn/foxy-user-card.js +1 -1
  110. package/dist/cdn/foxy-user-form.js +1 -1
  111. package/dist/cdn/foxy-user-invitation-card.js +1 -1
  112. package/dist/cdn/foxy-user-invitation-form.js +1 -1
  113. package/dist/cdn/foxy-users-table.js +1 -1
  114. package/dist/cdn/foxy-webhook-card.js +1 -1
  115. package/dist/cdn/foxy-webhook-form.js +1 -1
  116. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  117. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  118. package/dist/cdn/{shared-abc64854.js → shared-04d5b361.js} +1 -1
  119. package/dist/cdn/{shared-772745f5.js → shared-0905537a.js} +1 -1
  120. package/dist/cdn/{shared-2ae2767e.js → shared-17c503b1.js} +1 -1
  121. package/dist/cdn/{shared-af70646d.js → shared-19520c9d.js} +1 -1
  122. package/dist/cdn/{shared-10674b72.js → shared-196a767a.js} +1 -1
  123. package/dist/cdn/{shared-6745d2ec.js → shared-1c2aeca6.js} +1 -1
  124. package/dist/cdn/{shared-68470d06.js → shared-1faa9f13.js} +1 -1
  125. package/dist/cdn/{shared-fa5e0813.js → shared-20f8e346.js} +1 -1
  126. package/dist/cdn/{shared-1183a365.js → shared-2a819863.js} +1 -1
  127. package/dist/cdn/{shared-a811962b.js → shared-2b41da9e.js} +1 -1
  128. package/dist/cdn/{shared-f23cde6c.js → shared-2da66878.js} +1 -1
  129. package/dist/cdn/{shared-12c2e2c7.js → shared-300253d2.js} +1 -1
  130. package/dist/cdn/{shared-94965d32.js → shared-315b7e61.js} +1 -1
  131. package/dist/cdn/{shared-58e2c070.js → shared-334c421b.js} +1 -1
  132. package/dist/cdn/{shared-acba6fbd.js → shared-36a1e2b9.js} +2 -2
  133. package/dist/cdn/{shared-394d6660.js → shared-37d8eb8c.js} +1 -1
  134. package/dist/cdn/{shared-fc176bc4.js → shared-38dbd459.js} +1 -1
  135. package/dist/cdn/{shared-960eac62.js → shared-4358f1b1.js} +1 -1
  136. package/dist/cdn/{shared-33c54c6e.js → shared-438ba90a.js} +1 -1
  137. package/dist/cdn/{shared-ca0700a7.js → shared-43a7fb95.js} +1 -1
  138. package/dist/cdn/{shared-51415f88.js → shared-450227d6.js} +1 -1
  139. package/dist/cdn/{shared-297ee58c.js → shared-4631ca6a.js} +1 -1
  140. package/dist/cdn/{shared-b9af1789.js → shared-4784c497.js} +1 -1
  141. package/dist/cdn/{shared-b4b7767a.js → shared-4e5a4514.js} +1 -1
  142. package/dist/cdn/{shared-b79fd251.js → shared-5508fdff.js} +1 -1
  143. package/dist/cdn/{shared-68ae5d92.js → shared-55b38934.js} +1 -1
  144. package/dist/cdn/{shared-ea378d0a.js → shared-55cad23d.js} +1 -1
  145. package/dist/cdn/{shared-5f00bc80.js → shared-5dc12ee6.js} +2 -2
  146. package/dist/cdn/{shared-65c53765.js → shared-6636a5bf.js} +1 -1
  147. package/dist/cdn/shared-69015a94.js +1 -0
  148. package/dist/cdn/{shared-513e54c9.js → shared-6acd8127.js} +1 -1
  149. package/dist/cdn/{shared-b8bdf3ae.js → shared-768e7a47.js} +2 -2
  150. package/dist/cdn/{shared-e24f4d30.js → shared-7bd9ac17.js} +1 -1
  151. package/dist/cdn/{shared-b7ee8271.js → shared-81dce3af.js} +1 -1
  152. package/dist/cdn/{shared-0ec6badf.js → shared-82c14038.js} +1 -1
  153. package/dist/cdn/{shared-0e80f20c.js → shared-83dd443e.js} +1 -1
  154. package/dist/cdn/{shared-11902e83.js → shared-84a1b7ce.js} +1 -1
  155. package/dist/cdn/{shared-20b733ff.js → shared-85b3cc6a.js} +1 -1
  156. package/dist/cdn/{shared-c1c481c3.js → shared-86535307.js} +1 -1
  157. package/dist/cdn/{shared-bd59ddc4.js → shared-8a54284b.js} +1 -1
  158. package/dist/cdn/{shared-f7474be7.js → shared-9353023e.js} +1 -1
  159. package/dist/cdn/{shared-de2dfe65.js → shared-9a996ad7.js} +5 -5
  160. package/dist/cdn/{shared-3e302c9e.js → shared-9ecba892.js} +1 -1
  161. package/dist/cdn/{shared-8405bdfa.js → shared-9f160fc4.js} +1 -1
  162. package/dist/cdn/{shared-532dd9aa.js → shared-9fbbe836.js} +1 -1
  163. package/dist/cdn/{shared-ad9eae20.js → shared-a08d2529.js} +1 -1
  164. package/dist/cdn/shared-a6b2bd14.js +1 -0
  165. package/dist/cdn/{shared-f0c7a963.js → shared-a6e35e24.js} +1 -1
  166. package/dist/cdn/{shared-08e7b7e5.js → shared-b1798b31.js} +1 -1
  167. package/dist/cdn/{shared-e86b8958.js → shared-b211a5c1.js} +1 -1
  168. package/dist/cdn/{shared-c1c20484.js → shared-b8983324.js} +1 -1
  169. package/dist/cdn/{shared-32af1656.js → shared-bafbd5de.js} +1 -1
  170. package/dist/cdn/{shared-09350008.js → shared-bf34ec93.js} +1 -1
  171. package/dist/cdn/{shared-e95ac70b.js → shared-c01f7219.js} +1 -1
  172. package/dist/cdn/{shared-89db9c39.js → shared-c1ef5741.js} +1 -1
  173. package/dist/cdn/{shared-676a6445.js → shared-cfa5d8f6.js} +1 -1
  174. package/dist/cdn/{shared-1e827d8b.js → shared-d01bb075.js} +1 -1
  175. package/dist/cdn/{shared-001dfdb6.js → shared-d65e8cc0.js} +1 -1
  176. package/dist/cdn/{shared-555c2785.js → shared-d99621f5.js} +1 -1
  177. package/dist/cdn/{shared-b6c5ab3b.js → shared-d9e5dcd8.js} +1 -1
  178. package/dist/cdn/{shared-2d2e210c.js → shared-dc2f3f55.js} +1 -1
  179. package/dist/cdn/{shared-395b2f4c.js → shared-e23ba6a5.js} +1 -1
  180. package/dist/cdn/{shared-35093aea.js → shared-e23f134b.js} +1 -1
  181. package/dist/cdn/{shared-2ad18636.js → shared-e8b8c8d0.js} +1 -1
  182. package/dist/cdn/{shared-8f8c3902.js → shared-ea538020.js} +1 -1
  183. package/dist/cdn/{shared-02d4f592.js → shared-efaf6205.js} +1 -1
  184. package/dist/cdn/{shared-a62af87b.js → shared-f3c77c1b.js} +1 -1
  185. package/dist/cdn/{shared-0e58c95c.js → shared-f5d4d7f4.js} +1 -1
  186. package/dist/cdn/{shared-d6bf2433.js → shared-f6dbf1f9.js} +1 -1
  187. package/dist/cdn/shared-fb3366b1.js +1 -0
  188. package/dist/cdn/translations/gift-card-code-form/en.json +26 -21
  189. package/dist/cdn/translations/gift-card-form/en.json +26 -21
  190. package/dist/cdn/translations/store-form/en.json +6 -1
  191. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +12 -16
  192. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  193. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +4 -13
  194. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -1
  195. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +1 -0
  196. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +30 -9
  197. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
  198. package/dist/elements/public/GiftCardCodeForm/index.d.ts +1 -1
  199. package/dist/elements/public/GiftCardCodeForm/index.js +1 -1
  200. package/dist/elements/public/GiftCardCodeForm/index.js.map +1 -1
  201. package/dist/elements/public/NucleonElement/NucleonElement.js +1 -1
  202. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  203. package/dist/elements/public/StoreForm/StoreForm.d.ts +6 -0
  204. package/dist/elements/public/StoreForm/StoreForm.js +59 -0
  205. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  206. package/dist/elements/public/StoreForm/index.d.ts +1 -0
  207. package/dist/elements/public/StoreForm/index.js +1 -0
  208. package/dist/elements/public/StoreForm/index.js.map +1 -1
  209. package/dist/mixins/themeable.js +4 -6
  210. package/dist/mixins/themeable.js.map +1 -1
  211. package/package.json +1 -1
  212. package/dist/cdn/shared-03427c91.js +0 -1
  213. package/dist/cdn/shared-7c1d9bf8.js +0 -1
  214. package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/InternalGiftCardCodeFormItemControl.d.ts +0 -5
  215. package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/InternalGiftCardCodeFormItemControl.js +0 -34
  216. package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/InternalGiftCardCodeFormItemControl.js.map +0 -1
  217. package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/index.d.ts +0 -5
  218. package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/index.js +0 -7
  219. package/dist/elements/public/GiftCardCodeForm/internal/InternalGiftCardCodeFormItemControl/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NucleonElement.js","sourceRoot":"","sources":["../../../../src/elements/public/NucleonElement/NucleonElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputedElementProperties, HALJSONResource, NucleonMachine, NucleonV8N } from './types';\nimport { html, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Nucleon, Rumour } from '@foxy.io/sdk/core';\nimport { assign, interpret } from 'xstate';\n\nimport { API } from './API';\nimport { FetchEvent } from './FetchEvent';\nimport { UpdateEvent, UpdateResult } from './UpdateEvent';\nimport memoize from 'lodash-es/memoize';\nimport { serveFromCache } from './serveFromCache';\nimport { InferrableMixin } from '../../../mixins/inferrable';\nimport { internalServer } from './internalServer';\nimport { uniqueId } from 'lodash-es';\n\n/**\n * Base class for custom elements working with remote HAL+JSON resources.\n *\n * @fires NucleonElement#update - Instance of `NucleonElement.UpdateEvent`. Dispatched on an element whenever it changes its state.\n * @fires NucleonElement#fetch - Instance of `NucleonElement.API.FetchEvent`. Emitted before each API request.\n *\n * @element foxy-nucleon\n * @since 1.1.0\n */\nexport class NucleonElement<TData extends HALJSONResource> extends InferrableMixin(LitElement) {\n /**\n * Instances of this event are dispatched on an element whenever it changes its\n * state (e.g. when going from `busy` to `idle` or on `form` data change).\n * This event isn't cancelable, and it does not bubble.\n * @readonly\n */\n static readonly UpdateEvent = UpdateEvent;\n\n /**\n * Creates a tagged [Rumour](https://sdk.foxy.dev/classes/_core_index_.rumour.html)\n * instance if it doesn't exist or returns cached one otherwise. NucleonElements\n * use empty Rumour group by default.\n * @readonly\n */\n static readonly Rumour = memoize<(group: string) => Rumour>(() => new Rumour());\n\n /**\n * Universal [API](https://sdk.foxy.dev/classes/_core_index_.api.html) client\n * that dispatches cancellable `FetchEvent` on an element before each request.\n * @readonly\n */\n static readonly API = API;\n\n static get inferredProperties(): string[] {\n return [...super.inferredProperties, 'group', 'lang'];\n }\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n __state: { type: String, reflect: true, attribute: 'state' },\n virtualHost: { attribute: 'virtual-host' },\n related: { type: Array },\n parent: { type: String },\n group: { type: String, noAccessor: true },\n href: { type: String, noAccessor: true },\n lang: { type: String },\n };\n }\n\n /**\n * Array of validation functions. Each function accepts `element.form` and must return\n * either an error code string if form data fails the check or `true` otherwise.\n * Error codes are collected in `element.errors`. Empty by default.\n */\n static get v8n(): NucleonV8N<any, any> {\n return [];\n }\n\n /**\n * Optional ISO 639-1 code describing the language element content is written in.\n * Changing the `lang` attribute will update the value of this property.\n */\n lang = '';\n\n /**\n * Optional URL of the collection this element's resource belongs to.\n * Changing the `parent` attribute will update the value of this property.\n */\n parent = '';\n\n /**\n * Optional URI list of the related resources. If Rumour encounters a related\n * resource on creation or deletion, it will be reloaded from source.\n */\n related: string[] = [];\n\n /**\n * Unique identifier for the virtual host used by the element to serve internal requests.\n *\n * Currently only one endpoint is supported: `foxy://<virtualHost>/form/<path>`.\n * This endpoint supports POST, GET, PATCH and DELETE methods and functions like a hAPI server.\n *\n * For example, `GET foxy://nucleon-123/form/subscriptions/allowNextDateModification/0` on a NucleonElement\n * with `fx:customer_portal_settings` will return the first item of the `subscriptions.allowNextDateModification` array.\n */\n virtualHost: string | null = uniqueId('nucleon-');\n\n private __hrefToLoad: string | null = null;\n\n private __group = '';\n\n private __unsubscribeFromRumour: (() => void) | null = null;\n\n private __fetchEventHandler!: (evt: Event) => void;\n\n private __fetchEventQueue: FetchEvent[] = [];\n\n private readonly __service = interpret(\n (Nucleon.machine as NucleonMachine<TData>).withConfig({\n services: {\n sendDelete: () => this._sendDelete(),\n sendPatch: ({ edits }) => this._sendPatch(edits!),\n sendPost: ({ edits }) => this._sendPost(edits!),\n sendGet: () => this._sendGet(),\n },\n\n actions: {\n validate: assign<Nucleon.Context<TData, string>, Nucleon.Event<TData>>({\n errors: context => {\n const rules = (this.constructor as typeof NucleonElement).v8n;\n const form = { ...context.data, ...context.edits };\n\n return rules\n .map(validate => validate(form, this))\n .filter(v8nResult => typeof v8nResult === 'string')\n .filter((err, errIndex, errs) => errs.indexOf(err) === errIndex) as string[];\n },\n }),\n },\n })\n );\n\n constructor() {\n super();\n this.__createService();\n }\n\n /**\n * If network request returns non-2XX code, the entire error response\n * will be available via this getter.\n *\n * This property is readonly. Changing failure records via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override error status.\n *\n * @since 1.4.0\n */\n get failure(): Response | null {\n return this.__service.state?.context.failure ?? null;\n }\n\n /**\n * Array of validation errors returned from `NucleonElement.v8n` checks.\n *\n * This property is readonly. Adding or removing error codes via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override validity status.\n */\n get errors(): string[] {\n return this.__service.state?.context.errors ?? [];\n }\n\n /**\n * Resource snapshot with edits applied. Empty object if unavailable.\n *\n * This property and its value are readonly. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please use `element.edit({ foo: 'bar' })` instead.\n * If you need to replace the entire data object, consider using `element.data`.\n */\n get form(): Partial<TData> {\n const { data, edits } = this.__service.state?.context ?? {};\n return { ...data, ...edits } as Partial<TData>;\n }\n\n /**\n * Resource snapshot as-is, no edits applied. Null if unavailable.\n *\n * Returned value is not reactive. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please set the property instead: `element.data = { ...element.data, foo: 'bar' }`.\n * If you're processing user input, consider using `element.form` and `element.edit()` instead.\n */\n get data(): TData | null {\n return this.__service.state?.context.data ?? null;\n }\n\n set data(data: TData | null) {\n this.__destroyRumour();\n this.__hrefToLoad = null;\n this.__service.send({ type: 'SET_DATA', data });\n if (data) this.__createRumour();\n }\n\n /**\n * Rumour group. Elements in different groups will not share updates. Empty by default.\n * @example element.group = 'my-group'\n */\n get group(): string {\n return this.__group;\n }\n\n set group(value: string) {\n this.__group = value;\n this.__destroyRumour();\n this.__createRumour();\n }\n\n /**\n * Optional URL of the resource to load. Switches element to `idle.template` state if empty (default).\n * @example element.href = 'https://demo.foxycart.com/s/customer/attributes/0'\n */\n get href(): string {\n return this.form._links?.self.href ?? this.__hrefToLoad ?? '';\n }\n\n set href(value: string) {\n this.__hrefToLoad = value;\n\n if (value) {\n this.__service.send({ type: 'FETCH' });\n } else {\n this.data = null;\n }\n }\n\n /**\n * Checks if this element is in the given state.\n * @example element.in({ idle: 'snapshot' })\n */\n in<TStateValue extends Nucleon.State<TData, string>['value']>(\n stateValue: TStateValue\n ): this is this & ComputedElementProperties<TData, TStateValue> {\n return !!this.__service.state?.matches(stateValue);\n }\n\n /**\n * Clears all edits and emits the `update` event.\n * @example element.undo()\n */\n undo(): void {\n this.__service.send({ type: 'UNDO' });\n }\n\n /**\n * Applies an edit to the local resource snapshot or its template and emits the `update` event.\n * @example element.edit({ first_name: 'Alex' })\n */\n edit(data: Partial<TData>): void {\n if (typeof data._links?.self.href === 'string') this.__hrefToLoad = null;\n this.__service.send({ type: 'EDIT', data });\n }\n\n /**\n * Submits the form, updating the resource if href isn't empty or creating it otherwise.\n * Emits multiple `update` events as element state changes. Has no effect on invalid forms.\n * @example element.submit()\n */\n submit(): void {\n this.reportValidity();\n this.__service.send({ type: 'SUBMIT' });\n }\n\n checkValidity(): boolean {\n const isTemplateDirtyValid = this.in({ idle: { template: { dirty: 'valid' } } });\n const isSnapshotDirtyValid = this.in({ idle: { snapshot: { dirty: 'valid' } } });\n const isTemplateCleanValid = this.in({ idle: { template: { clean: 'valid' } } });\n const isSnapshotCleanValid = this.in({ idle: { snapshot: { clean: 'valid' } } });\n const isTemplateValid = isTemplateCleanValid || isTemplateDirtyValid;\n const isSnapshotValid = isSnapshotCleanValid || isSnapshotDirtyValid;\n const isValid = isTemplateValid || isSnapshotValid;\n\n return isValid;\n }\n\n reportValidity(): boolean {\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 return this.checkValidity();\n }\n\n /**\n * Sends a DELETE request to `element.href` and clears local data on success.\n * Emits multiple update events as element state changes.\n * @example element.delete()\n */\n delete(): void {\n this.__service.send({ type: 'DELETE' });\n }\n\n /**\n * Fetches data from `element.href` in background, keeping the edits and v8n errors.\n * @example element.refresh()\n */\n refresh(): void {\n this.__service.send({ type: 'REFRESH' });\n }\n\n render(): TemplateResult {\n return html`<slot></slot>`;\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n if (this.href && !this.data) this.__service.send({ type: 'FETCH' });\n\n this.__createRumour();\n this.__createServer();\n this.__processFetchEventQueue();\n\n this.dispatchEvent(new UpdateEvent());\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this.__destroyRumour();\n this.__destroyServer();\n this.__flushFetchEventQueue('parent element was disconnected');\n\n this.dispatchEvent(new UpdateEvent());\n }\n\n applyInferredProperties(context: Map<string, unknown>): void {\n super.applyInferredProperties(context);\n\n if (this.infer === null) return;\n\n this.group = (context.get('group') as string | undefined) ?? '';\n this.lang = (context.get('lang') as string | undefined) ?? '';\n }\n\n /** Sends API request. Throws an error on non-2XX response. */\n protected async _fetch<TResult = TData>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const response = await new API(this).fetch(...args);\n if (!response.ok) throw response;\n return response.json();\n }\n\n /** POSTs to `element.parent`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPost(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n let data: TData;\n\n try {\n const body = JSON.stringify(edits);\n const postData = await this._fetch(this.parent, { body, method: 'POST' });\n data = await this._fetch(postData._links.self.href);\n\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n rumour.share({ data, related, source: data._links.self.href });\n } finally {\n this.__createRumour();\n }\n\n return data;\n }\n\n /** GETs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendGet(): Promise<TData> {\n this.__destroyRumour();\n let data: TData;\n\n try {\n data = await this._fetch(this.href);\n NucleonElement.Rumour(this.group).share({ data, source: this.href });\n } finally {\n this.__createRumour();\n }\n\n return data;\n }\n\n /** PATCHes `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPatch(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n let data: TData;\n\n try {\n const body = JSON.stringify(edits);\n data = await this._fetch(this.href, { body, method: 'PATCH' });\n\n const rumour = NucleonElement.Rumour(this.group);\n rumour.share({ data, source: this.href, related: this.related });\n } finally {\n this.__createRumour();\n }\n\n return data;\n }\n\n /** DELETEs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendDelete(): Promise<null> {\n this.__destroyRumour();\n\n try {\n await this._fetch(this.href, { method: 'DELETE' });\n\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n rumour.share({ data: null, source: this.href, related });\n } finally {\n this.__createRumour();\n }\n\n return null;\n }\n\n // this getter is used by LitElement to set the \"state\" attribute\n private get __state(): string {\n const state = this.__service.state;\n const flags = state?.toStrings().reduce((p, c) => [...p, ...c.split('.')], [] as string[]);\n return [...new Set(flags ?? [])].join(' ');\n }\n\n private __createService() {\n this.__service.onTransition(state => {\n if (!state.changed) return;\n\n let result: UpdateResult | undefined = undefined;\n\n if (state.matches('idle')) {\n if (state.history?.matches({ busy: 'deleting' })) {\n result = UpdateResult.ResourceDeleted;\n } else if (state.history?.matches({ busy: 'creating' })) {\n result = UpdateResult.ResourceCreated;\n } else if (state.history?.matches({ busy: 'updating' })) {\n result = UpdateResult.ResourceUpdated;\n } else if (state.history?.matches({ busy: 'fetching' })) {\n result = UpdateResult.ResourceFetched;\n }\n }\n\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent('update', { detail: { result } }));\n\n if (!state.matches('busy')) this.__processFetchEventQueue();\n });\n\n this.__service.onChange(() => {\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent());\n });\n\n this.__service.start();\n }\n\n private __createRumour() {\n const rumour = NucleonElement.Rumour(this.group);\n this.__unsubscribeFromRumour = rumour.track(update => this.__handleRumourUpdate(update));\n }\n\n private __destroyRumour() {\n this.__unsubscribeFromRumour?.();\n this.__unsubscribeFromRumour = null;\n }\n\n private __createServer() {\n this.__fetchEventHandler = this.__handleFetchEvent.bind(this);\n this.addEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __destroyServer() {\n this.removeEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __handleRumourUpdate(update: (oldData: TData) => TData | null) {\n try {\n const oldData = this.__service.state?.context.data;\n const newData = oldData ? update(oldData) : oldData;\n\n if (newData !== oldData) {\n this.data = newData;\n\n if (!newData) {\n const result = UpdateResult.ResourceDeleted;\n const event = new UpdateEvent('update', { detail: { result } });\n this.dispatchEvent(event);\n }\n }\n } catch (err) {\n if (err instanceof Rumour.UpdateError) {\n setTimeout(() => this.refresh());\n } else {\n throw err;\n }\n }\n }\n\n private __processFetchEventQueue() {\n const api = new NucleonElement.API(this);\n\n this.__fetchEventQueue.forEach(event => {\n const request = event.request;\n\n if (this.virtualHost && request.url.startsWith(`foxy://${this.virtualHost}/form/`)) {\n return event.respondWith(internalServer(request, this));\n }\n\n const cacheResponse = serveFromCache(request.url, this.data);\n const whenResponseReady = cacheResponse.ok ? cacheResponse : api.fetch(request);\n\n event.respondWith(Promise.resolve(whenResponseReady));\n\n if (cacheResponse.ok) {\n console.debug(\n `%c@foxy.io/elements::${this.localName}\\n%c200%c GET ${request.url}`,\n 'color: gray',\n `background: gray; padding: 0 .2em; border-radius: .2em; color: white;`,\n ''\n );\n }\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __flushFetchEventQueue(errorMessage: string) {\n this.__fetchEventQueue.forEach(event => {\n event.respondWith(Promise.reject(new Error(errorMessage)));\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n if (event.composedPath()[0] === this) return;\n\n const { url, method } = event.request;\n\n if (url.startsWith('foxy://')) {\n if (this.virtualHost && url.startsWith(`foxy://${this.virtualHost}/form/`)) {\n if (method !== 'GET') return event.respondWith(internalServer(event.request, this));\n } else {\n return;\n }\n }\n\n if (method === 'GET') {\n event.preventDefault();\n this.__fetchEventQueue.push(event);\n if (!this.__service.state?.matches('busy')) this.__processFetchEventQueue();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"NucleonElement.js","sourceRoot":"","sources":["../../../../src/elements/public/NucleonElement/NucleonElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputedElementProperties, HALJSONResource, NucleonMachine, NucleonV8N } from './types';\nimport { html, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Nucleon, Rumour } from '@foxy.io/sdk/core';\nimport { assign, interpret } from 'xstate';\n\nimport { API } from './API';\nimport { FetchEvent } from './FetchEvent';\nimport { UpdateEvent, UpdateResult } from './UpdateEvent';\nimport memoize from 'lodash-es/memoize';\nimport { serveFromCache } from './serveFromCache';\nimport { InferrableMixin } from '../../../mixins/inferrable';\nimport { internalServer } from './internalServer';\nimport { uniqueId } from 'lodash-es';\n\n/**\n * Base class for custom elements working with remote HAL+JSON resources.\n *\n * @fires NucleonElement#update - Instance of `NucleonElement.UpdateEvent`. Dispatched on an element whenever it changes its state.\n * @fires NucleonElement#fetch - Instance of `NucleonElement.API.FetchEvent`. Emitted before each API request.\n *\n * @element foxy-nucleon\n * @since 1.1.0\n */\nexport class NucleonElement<TData extends HALJSONResource> extends InferrableMixin(LitElement) {\n /**\n * Instances of this event are dispatched on an element whenever it changes its\n * state (e.g. when going from `busy` to `idle` or on `form` data change).\n * This event isn't cancelable, and it does not bubble.\n * @readonly\n */\n static readonly UpdateEvent = UpdateEvent;\n\n /**\n * Creates a tagged [Rumour](https://sdk.foxy.dev/classes/_core_index_.rumour.html)\n * instance if it doesn't exist or returns cached one otherwise. NucleonElements\n * use empty Rumour group by default.\n * @readonly\n */\n static readonly Rumour = memoize<(group: string) => Rumour>(() => new Rumour());\n\n /**\n * Universal [API](https://sdk.foxy.dev/classes/_core_index_.api.html) client\n * that dispatches cancellable `FetchEvent` on an element before each request.\n * @readonly\n */\n static readonly API = API;\n\n static get inferredProperties(): string[] {\n return [...super.inferredProperties, 'group', 'lang'];\n }\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n __state: { type: String, reflect: true, attribute: 'state' },\n virtualHost: { attribute: 'virtual-host' },\n related: { type: Array },\n parent: { type: String },\n group: { type: String, noAccessor: true },\n href: { type: String, noAccessor: true },\n lang: { type: String },\n };\n }\n\n /**\n * Array of validation functions. Each function accepts `element.form` and must return\n * either an error code string if form data fails the check or `true` otherwise.\n * Error codes are collected in `element.errors`. Empty by default.\n */\n static get v8n(): NucleonV8N<any, any> {\n return [];\n }\n\n /**\n * Optional ISO 639-1 code describing the language element content is written in.\n * Changing the `lang` attribute will update the value of this property.\n */\n lang = '';\n\n /**\n * Optional URL of the collection this element's resource belongs to.\n * Changing the `parent` attribute will update the value of this property.\n */\n parent = '';\n\n /**\n * Optional URI list of the related resources. If Rumour encounters a related\n * resource on creation or deletion, it will be reloaded from source.\n */\n related: string[] = [];\n\n /**\n * Unique identifier for the virtual host used by the element to serve internal requests.\n *\n * Currently only one endpoint is supported: `foxy://<virtualHost>/form/<path>`.\n * This endpoint supports POST, GET, PATCH and DELETE methods and functions like a hAPI server.\n *\n * For example, `GET foxy://nucleon-123/form/subscriptions/allowNextDateModification/0` on a NucleonElement\n * with `fx:customer_portal_settings` will return the first item of the `subscriptions.allowNextDateModification` array.\n */\n virtualHost: string | null = uniqueId('nucleon-');\n\n private __hrefToLoad: string | null = null;\n\n private __group = '';\n\n private __unsubscribeFromRumour: (() => void) | null = null;\n\n private __fetchEventHandler!: (evt: Event) => void;\n\n private __fetchEventQueue: FetchEvent[] = [];\n\n private readonly __service = interpret(\n (Nucleon.machine as NucleonMachine<TData>).withConfig({\n services: {\n sendDelete: () => this._sendDelete(),\n sendPatch: ({ edits }) => this._sendPatch(edits!),\n sendPost: ({ edits }) => this._sendPost(edits!),\n sendGet: () => this._sendGet(),\n },\n\n actions: {\n validate: assign<Nucleon.Context<TData, string>, Nucleon.Event<TData>>({\n errors: context => {\n const rules = (this.constructor as typeof NucleonElement).v8n;\n const form = { ...context.data, ...context.edits };\n\n return rules\n .map(validate => validate(form, this))\n .filter(v8nResult => typeof v8nResult === 'string')\n .filter((err, errIndex, errs) => errs.indexOf(err) === errIndex) as string[];\n },\n }),\n },\n })\n );\n\n constructor() {\n super();\n this.__createService();\n }\n\n /**\n * If network request returns non-2XX code, the entire error response\n * will be available via this getter.\n *\n * This property is readonly. Changing failure records via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override error status.\n *\n * @since 1.4.0\n */\n get failure(): Response | null {\n return this.__service.state?.context.failure ?? null;\n }\n\n /**\n * Array of validation errors returned from `NucleonElement.v8n` checks.\n *\n * This property is readonly. Adding or removing error codes via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override validity status.\n */\n get errors(): string[] {\n return this.__service.state?.context.errors ?? [];\n }\n\n /**\n * Resource snapshot with edits applied. Empty object if unavailable.\n *\n * This property and its value are readonly. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please use `element.edit({ foo: 'bar' })` instead.\n * If you need to replace the entire data object, consider using `element.data`.\n */\n get form(): Partial<TData> {\n const { data, edits } = this.__service.state?.context ?? {};\n return { ...data, ...edits } as Partial<TData>;\n }\n\n /**\n * Resource snapshot as-is, no edits applied. Null if unavailable.\n *\n * Returned value is not reactive. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please set the property instead: `element.data = { ...element.data, foo: 'bar' }`.\n * If you're processing user input, consider using `element.form` and `element.edit()` instead.\n */\n get data(): TData | null {\n return this.__service.state?.context.data ?? null;\n }\n\n set data(data: TData | null) {\n this.__destroyRumour();\n this.__hrefToLoad = null;\n this.__service.send({ type: 'SET_DATA', data });\n if (data) this.__createRumour();\n }\n\n /**\n * Rumour group. Elements in different groups will not share updates. Empty by default.\n * @example element.group = 'my-group'\n */\n get group(): string {\n return this.__group;\n }\n\n set group(value: string) {\n this.__group = value;\n this.__destroyRumour();\n this.__createRumour();\n }\n\n /**\n * Optional URL of the resource to load. Switches element to `idle.template` state if empty (default).\n * @example element.href = 'https://demo.foxycart.com/s/customer/attributes/0'\n */\n get href(): string {\n return this.form._links?.self.href ?? this.__hrefToLoad ?? '';\n }\n\n set href(value: string) {\n this.__hrefToLoad = value;\n\n if (value) {\n this.__service.send({ type: 'FETCH' });\n } else {\n this.data = null;\n }\n }\n\n /**\n * Checks if this element is in the given state.\n * @example element.in({ idle: 'snapshot' })\n */\n in<TStateValue extends Nucleon.State<TData, string>['value']>(\n stateValue: TStateValue\n ): this is this & ComputedElementProperties<TData, TStateValue> {\n return !!this.__service.state?.matches(stateValue);\n }\n\n /**\n * Clears all edits and emits the `update` event.\n * @example element.undo()\n */\n undo(): void {\n this.__service.send({ type: 'UNDO' });\n }\n\n /**\n * Applies an edit to the local resource snapshot or its template and emits the `update` event.\n * @example element.edit({ first_name: 'Alex' })\n */\n edit(data: Partial<TData>): void {\n if (typeof data._links?.self.href === 'string') this.__hrefToLoad = null;\n this.__service.send({ type: 'EDIT', data });\n }\n\n /**\n * Submits the form, updating the resource if href isn't empty or creating it otherwise.\n * Emits multiple `update` events as element state changes. Has no effect on invalid forms.\n * @example element.submit()\n */\n submit(): void {\n this.reportValidity();\n this.__service.send({ type: 'SUBMIT' });\n }\n\n checkValidity(): boolean {\n const isTemplateDirtyValid = this.in({ idle: { template: { dirty: 'valid' } } });\n const isSnapshotDirtyValid = this.in({ idle: { snapshot: { dirty: 'valid' } } });\n const isTemplateCleanValid = this.in({ idle: { template: { clean: 'valid' } } });\n const isSnapshotCleanValid = this.in({ idle: { snapshot: { clean: 'valid' } } });\n const isTemplateValid = isTemplateCleanValid || isTemplateDirtyValid;\n const isSnapshotValid = isSnapshotCleanValid || isSnapshotDirtyValid;\n const isValid = isTemplateValid || isSnapshotValid;\n\n return isValid;\n }\n\n reportValidity(): boolean {\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 return this.checkValidity();\n }\n\n /**\n * Sends a DELETE request to `element.href` and clears local data on success.\n * Emits multiple update events as element state changes.\n * @example element.delete()\n */\n delete(): void {\n this.__service.send({ type: 'DELETE' });\n }\n\n /**\n * Fetches data from `element.href` in background, keeping the edits and v8n errors.\n * @example element.refresh()\n */\n refresh(): void {\n this.__service.send({ type: 'REFRESH' });\n }\n\n render(): TemplateResult {\n return html`<slot></slot>`;\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n if (this.href && !this.data) this.__service.send({ type: 'FETCH' });\n\n this.__createRumour();\n this.__createServer();\n this.__processFetchEventQueue();\n\n this.dispatchEvent(new UpdateEvent());\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this.__destroyRumour();\n this.__destroyServer();\n this.__flushFetchEventQueue('parent element was disconnected');\n\n this.dispatchEvent(new UpdateEvent());\n }\n\n applyInferredProperties(context: Map<string, unknown>): void {\n super.applyInferredProperties(context);\n\n if (this.infer === null) return;\n\n this.group = (context.get('group') as string | undefined) ?? '';\n this.lang = (context.get('lang') as string | undefined) ?? '';\n }\n\n /** Sends API request. Throws an error on non-2XX response. */\n protected async _fetch<TResult = TData>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const response = await new API(this).fetch(...args);\n if (!response.ok) throw response;\n return response.json();\n }\n\n /** POSTs to `element.parent`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPost(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n let data: TData;\n\n try {\n const body = JSON.stringify(edits);\n const postData = await this._fetch(this.parent, { body, method: 'POST' });\n data = await this._fetch(postData._links.self.href);\n\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n rumour.share({ data, related, source: data._links.self.href });\n } finally {\n this.__createRumour();\n }\n\n return data;\n }\n\n /** GETs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendGet(): Promise<TData> {\n this.__destroyRumour();\n let data: TData;\n\n try {\n data = await this._fetch(this.href);\n NucleonElement.Rumour(this.group).share({ data, source: this.href });\n } finally {\n this.__createRumour();\n }\n\n return data;\n }\n\n /** PATCHes `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPatch(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n let data: TData;\n\n try {\n const body = JSON.stringify(edits);\n data = await this._fetch(this.href, { body, method: 'PATCH' });\n\n const rumour = NucleonElement.Rumour(this.group);\n rumour.share({ data, source: this.href, related: this.related });\n } finally {\n this.__createRumour();\n }\n\n return data;\n }\n\n /** DELETEs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendDelete(): Promise<null> {\n this.__destroyRumour();\n\n try {\n await this._fetch(this.href, { method: 'DELETE' });\n\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n rumour.share({ data: null, source: this.href, related });\n } finally {\n this.__createRumour();\n }\n\n return null;\n }\n\n // this getter is used by LitElement to set the \"state\" attribute\n private get __state(): string {\n const state = this.__service.state;\n const flags = state?.toStrings().reduce((p, c) => [...p, ...c.split('.')], [] as string[]);\n return [...new Set(flags ?? [])].join(' ');\n }\n\n private __createService() {\n this.__service.onTransition(state => {\n if (!state.changed) return;\n\n let result: UpdateResult | undefined = undefined;\n\n if (state.matches('idle') && state.context.errors.length === 0) {\n if (state.history?.matches({ busy: 'deleting' })) {\n result = UpdateResult.ResourceDeleted;\n } else if (state.history?.matches({ busy: 'creating' })) {\n result = UpdateResult.ResourceCreated;\n } else if (state.history?.matches({ busy: 'updating' })) {\n result = UpdateResult.ResourceUpdated;\n } else if (state.history?.matches({ busy: 'fetching' })) {\n result = UpdateResult.ResourceFetched;\n }\n }\n\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent('update', { detail: { result } }));\n\n if (!state.matches('busy')) this.__processFetchEventQueue();\n });\n\n this.__service.onChange(() => {\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent());\n });\n\n this.__service.start();\n }\n\n private __createRumour() {\n const rumour = NucleonElement.Rumour(this.group);\n this.__unsubscribeFromRumour = rumour.track(update => this.__handleRumourUpdate(update));\n }\n\n private __destroyRumour() {\n this.__unsubscribeFromRumour?.();\n this.__unsubscribeFromRumour = null;\n }\n\n private __createServer() {\n this.__fetchEventHandler = this.__handleFetchEvent.bind(this);\n this.addEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __destroyServer() {\n this.removeEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __handleRumourUpdate(update: (oldData: TData) => TData | null) {\n try {\n const oldData = this.__service.state?.context.data;\n const newData = oldData ? update(oldData) : oldData;\n\n if (newData !== oldData) {\n this.data = newData;\n\n if (!newData) {\n const result = UpdateResult.ResourceDeleted;\n const event = new UpdateEvent('update', { detail: { result } });\n this.dispatchEvent(event);\n }\n }\n } catch (err) {\n if (err instanceof Rumour.UpdateError) {\n setTimeout(() => this.refresh());\n } else {\n throw err;\n }\n }\n }\n\n private __processFetchEventQueue() {\n const api = new NucleonElement.API(this);\n\n this.__fetchEventQueue.forEach(event => {\n const request = event.request;\n\n if (this.virtualHost && request.url.startsWith(`foxy://${this.virtualHost}/form/`)) {\n return event.respondWith(internalServer(request, this));\n }\n\n const cacheResponse = serveFromCache(request.url, this.data);\n const whenResponseReady = cacheResponse.ok ? cacheResponse : api.fetch(request);\n\n event.respondWith(Promise.resolve(whenResponseReady));\n\n if (cacheResponse.ok) {\n console.debug(\n `%c@foxy.io/elements::${this.localName}\\n%c200%c GET ${request.url}`,\n 'color: gray',\n `background: gray; padding: 0 .2em; border-radius: .2em; color: white;`,\n ''\n );\n }\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __flushFetchEventQueue(errorMessage: string) {\n this.__fetchEventQueue.forEach(event => {\n event.respondWith(Promise.reject(new Error(errorMessage)));\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n if (event.composedPath()[0] === this) return;\n\n const { url, method } = event.request;\n\n if (url.startsWith('foxy://')) {\n if (this.virtualHost && url.startsWith(`foxy://${this.virtualHost}/form/`)) {\n if (method !== 'GET') return event.respondWith(internalServer(event.request, this));\n } else {\n return;\n }\n }\n\n if (method === 'GET') {\n event.preventDefault();\n this.__fetchEventQueue.push(event);\n if (!this.__service.state?.matches('busy')) this.__processFetchEventQueue();\n }\n }\n}\n"]}
@@ -19,6 +19,8 @@ export declare class StoreForm extends Base<Data> {
19
19
  customerPasswordHashTypes: string | null;
20
20
  /** URL of the `fx:shipping_address_types` property helper resource. */
21
21
  shippingAddressTypes: string | null;
22
+ /** hCaptcha site key for signup verification. If provided, requires users to complete a captcha before creating a store. */
23
+ hCaptchaSiteKey: string | null;
22
24
  /**
23
25
  * URL of the `fx:store_versions` property helper resource.
24
26
  * @deprecated All elements in this library are designed to work with store version 2.0.
@@ -76,10 +78,14 @@ export declare class StoreForm extends Base<Data> {
76
78
  private readonly __webhookKeyXmlDatafeedSetValue;
77
79
  private readonly __webhookKeySsoGetValue;
78
80
  private readonly __webhookKeySsoSetValue;
81
+ private __hCaptchaToken;
79
82
  get headerSubtitleOptions(): Record<string, unknown>;
80
83
  renderBody(): TemplateResult;
84
+ submit(): void;
85
+ protected _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult>;
81
86
  private get __displayIdExamples();
82
87
  private get __journalIdExamples();
88
+ private get __hCaptcha();
83
89
  private __getWebhookKey;
84
90
  private __setWebhookKey;
85
91
  private __getCustomDisplayIdConfig;
@@ -19,6 +19,8 @@ export class StoreForm extends Base {
19
19
  this.customerPasswordHashTypes = null;
20
20
  /** URL of the `fx:shipping_address_types` property helper resource. */
21
21
  this.shippingAddressTypes = null;
22
+ /** hCaptcha site key for signup verification. If provided, requires users to complete a captcha before creating a store. */
23
+ this.hCaptchaSiteKey = null;
22
24
  /**
23
25
  * URL of the `fx:store_versions` property helper resource.
24
26
  * @deprecated All elements in this library are designed to work with store version 2.0.
@@ -202,12 +204,14 @@ export class StoreForm extends Base {
202
204
  this.__webhookKeySsoSetValue = (newValue) => {
203
205
  this.__setWebhookKey('sso', newValue);
204
206
  };
207
+ this.__hCaptchaToken = null;
205
208
  }
206
209
  static get properties() {
207
210
  return {
208
211
  ...super.properties,
209
212
  customerPasswordHashTypes: { attribute: 'customer-password-hash-types' },
210
213
  shippingAddressTypes: { attribute: 'shipping-address-types' },
214
+ hCaptchaSiteKey: { attribute: 'h-captcha-site-key' },
211
215
  storeVersions: { attribute: 'store-versions' },
212
216
  checkoutTypes: { attribute: 'checkout-types' },
213
217
  localeCodes: { attribute: 'locale-codes' },
@@ -770,6 +774,42 @@ export class StoreForm extends Base {
770
774
  : ''}
771
775
  </foxy-internal-summary-control>
772
776
 
777
+ ${this.href || !this.hCaptchaSiteKey
778
+ ? ''
779
+ : html `
780
+ <div class="text-xs text-tertiary">
781
+ <foxy-i18n infer="hcaptcha" key="disclaimer"></foxy-i18n>
782
+ <br />
783
+ <a
784
+ target="_blank"
785
+ class="transition-colors hover-text-body rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50"
786
+ href="https://www.hcaptcha.com/privacy"
787
+ rel="noopener noreferrer"
788
+ >
789
+ <foxy-i18n class="underline" infer="hcaptcha" key="privacy_policy"></foxy-i18n>
790
+ </a>
791
+ <span>&bull;</span>
792
+ <a
793
+ target="_blank"
794
+ class="transition-colors hover-text-body rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50"
795
+ href="https://www.hcaptcha.com/terms"
796
+ rel="noopener noreferrer"
797
+ >
798
+ <foxy-i18n class="underline" infer="hcaptcha" key="terms_of_service"></foxy-i18n>
799
+ </a>
800
+ <h-captcha
801
+ site-key=${this.hCaptchaSiteKey}
802
+ class="hidden"
803
+ size="invisible"
804
+ hl=${this.lang}
805
+ @verified=${({ token }) => {
806
+ this.__hCaptchaToken = token;
807
+ super.submit();
808
+ }}
809
+ >
810
+ </h-captcha>
811
+ </div>
812
+ `}
773
813
  ${super.renderBody()}
774
814
  ${customerPasswordHashTypesLoader.render(this.customerPasswordHashTypes)}
775
815
  ${shippingAddressTypesLoader.render(this.shippingAddressTypes)}
@@ -777,6 +817,22 @@ export class StoreForm extends Base {
777
817
  ${regionsLoader.render(regionsUrl)}
778
818
  `;
779
819
  }
820
+ submit() {
821
+ var _a, _b;
822
+ if (!this.href && this.hCaptchaSiteKey) {
823
+ (_a = this.__hCaptcha) === null || _a === void 0 ? void 0 : _a.reset();
824
+ (_b = this.__hCaptcha) === null || _b === void 0 ? void 0 : _b.execute();
825
+ }
826
+ else {
827
+ super.submit();
828
+ }
829
+ }
830
+ async _fetch(...args) {
831
+ const request = new StoreForm.API.WHATWGRequest(...args);
832
+ if (this.__hCaptchaToken)
833
+ request.headers.set('h-captcha-code', this.__hCaptchaToken);
834
+ return super._fetch(request);
835
+ }
780
836
  get __displayIdExamples() {
781
837
  const config = this.__getCustomDisplayIdConfig();
782
838
  const startAsInt = parseInt(config.start || '0');
@@ -813,6 +869,9 @@ export class StoreForm extends Base {
813
869
  };
814
870
  }
815
871
  }
872
+ get __hCaptcha() {
873
+ return this.renderRoot.querySelector('h-captcha');
874
+ }
816
875
  __getWebhookKey() {
817
876
  var _a, _b;
818
877
  let parsedKey;
@@ -1 +1 @@
1
- {"version":3,"file":"StoreForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreForm/StoreForm.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAC7D,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAE5C,MAAM,EAAE,GAAG,YAAY,CAAC;AACxB,MAAM,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,OAAO,SAAU,SAAQ,IAAU;IAAzC;;QAsEE,6EAA6E;QAC7E,8BAAyB,GAAkB,IAAI,CAAC;QAEhD,uEAAuE;QACvE,yBAAoB,GAAkB,IAAI,CAAC;QAE3C;;;WAGG;QACH,kBAAa,GAAkB,IAAI,CAAC;QAEpC;;;WAGG;QACH,kBAAa,GAAkB,IAAI,CAAC;QAEpC;;;WAGG;QACH,gBAAW,GAAkB,IAAI,CAAC;QAElC;;;WAGG;QACH,cAAS,GAAkB,IAAI,CAAC;QAEhC,0DAA0D;QAC1D,cAAS,GAAkB,IAAI,CAAC;QAEhC,0DAA0D;QAC1D,cAAS,GAAkB,IAAI,CAAC;QAEhC,wDAAwD;QACxD,YAAO,GAAkB,IAAI,CAAC;QAEb,2BAAsB,GAAG;YACxC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE;YACvC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;YAChC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;SAClC,CAAC;QAEe,4BAAuB,GAAG,GAAG,EAAE;YAC9C,MAAM,GAAG,GAA2B;gBAClC,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;aACb,CAAC;YAEF,MAAM,aAAa,GAAG;gBACpB,IAAI,CAAC,IAAI,CAAC,oBAAoB;gBAC9B,IAAI,CAAC,IAAI,CAAC,uBAAuB;gBACjC,IAAI,CAAC,IAAI,CAAC,iCAAiC;aAC5C;iBACE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;YAEZ,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEe,4BAAuB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC9D,IAAI,CAAC,IAAI,CAAC;gBACR,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,iCAAiC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aAChE,CAAC,CAAC;QACL,CAAC,CAAC;QAEe,4BAAuB,GAAG;YACzC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC/B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC/B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;YAC7B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;SAC7B,CAAC;QAEe,yBAAoB,GAAG,GAAW,EAAE;;YACnD,MAAM,MAAM,SAAG,IAAI,CAAC,IAAI,CAAC,WAAW,mCAAI,EAAE,CAAC;YAC3C,OAAO,MAAM;iBACV,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;iBAC/B,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEe,yBAAoB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC3D,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC;QAEe,4BAAuB,GAAG,GAAG,EAAE;YAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACjC,CAAC,CAAC;QAEe,4BAAuB,GAAG,CAAC,QAAiB,EAAE,EAAE;YAC/D,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC;oBACR,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;wBAC1B,QAAQ,EAAE,EAAE;wBACZ,QAAQ,EAAE,EAAE;wBACZ,QAAQ,EAAE,EAAE;wBACZ,IAAI,EAAE,EAAE;wBACR,IAAI,EAAE,EAAE;qBACT,CAAC;iBACH,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;aAChC;QACH,CAAC,CAAC;QAEe,6BAAwB,GAAG,GAAG,EAAE;YAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC;YAE3D,IAAI,cAAc,GAAG,KAAK,KAAK,CAAC;gBAAE,OAAO,GAAG,cAAc,GAAG,KAAK,GAAG,CAAC;YACtE,IAAI,cAAc,GAAG,IAAI,KAAK,CAAC;gBAAE,OAAO,GAAG,cAAc,GAAG,IAAI,GAAG,CAAC;YACpE,IAAI,cAAc,GAAG,EAAE,KAAK,CAAC;gBAAE,OAAO,GAAG,cAAc,GAAG,EAAE,GAAG,CAAC;YAEhE,OAAO,GAAG,cAAc,GAAG,CAAC;QAC9B,CAAC,CAAC;QAEe,6BAAwB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,GAAG,GAA2B,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAEvE,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC;QAEe,0BAAqB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC5D,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC9E;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAClF;QACH,CAAC,CAAC;QAEe,6BAAwB,GAAG,GAAG,EAAE;YAC/C,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC;QACrC,CAAC,CAAC;QAEe,6BAAwB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC/D,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC;QAEe,6BAAwB,GAAG,GAAG,EAAE;YAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,CAAC,CAAC;QAEe,6BAAwB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC/D,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC;QAEe,iCAA4B,GAAG,GAAG,EAAE;YACnD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;QACzC,CAAC,CAAC;QAEe,iCAA4B,GAAG,CAAC,QAAgB,EAAE,EAAE;YACnE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEe,iCAA4B,GAAG,GAAG,EAAE;YACnD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;QACzC,CAAC,CAAC;QAEe,iCAA4B,GAAG,CAAC,QAAgB,EAAE,EAAE;YACnE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEe,iCAA4B,GAAG,GAAG,EAAE;YACnD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;QACzC,CAAC,CAAC;QAEe,iCAA4B,GAAG,CAAC,QAAgB,EAAE,EAAE;YACnE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEe,gCAA2B,GAAG;YAC7C,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;YACrC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;YACrC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE;SACpC,CAAC;QAEe,iCAA4B,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAE7D,kCAA6B,GAAG,GAAG,EAAE;YACpD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC;QAC3C,CAAC,CAAC;QAEe,kCAA6B,GAAG,CAAC,QAAgB,EAAE,EAAE;YACpE,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEe,oCAA+B,GAAG,GAAG,EAAE;YACtD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC;QAC7C,CAAC,CAAC;QAEe,oCAA+B,GAAG,CAAC,QAAgB,EAAE,EAAE;YACtE,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC;QAEe,oCAA+B,GAAG,GAAG,EAAE;YACtD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC;QAC7C,CAAC,CAAC;QAEe,oCAA+B,GAAG,CAAC,QAAgB,EAAE,EAAE;YACtE,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC;QAEe,4BAAuB,GAAG,GAAG,EAAE;YAC9C,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC;QACpC,CAAC,CAAC;QAEe,4BAAuB,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC9D,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC;IA2sBJ,CAAC;IAh/BC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,yBAAyB,EAAE,EAAE,SAAS,EAAE,8BAA8B,EAAE;YACxE,oBAAoB,EAAE,EAAE,SAAS,EAAE,wBAAwB,EAAE;YAC7D,aAAa,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;YAC9C,aAAa,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;YAC9C,WAAW,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;YAC1C,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAyB;YACvD,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,yBAAyB;YACzE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,2BAA2B;YAC3D,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,2BAA2B;YAC9E,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,wBAAwB;YACrD,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,wBAAwB;YACxE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,mCAAmC;YAC7F,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,0BAA0B;YACzD,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,0BAA0B;YAC5E,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,yBAAyB;YACzE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,8BAA8B;YAChF,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,0BAA0B;YACzD,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,0BAA0B;YAC3E,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAqB;YAC/C,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,qBAAqB;YAClE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,sBAAsB;YACjD,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,uBAAuB;YAErE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBAClC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,0BAA0B,CAAC;YAC7E,CAAC;YAED,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE;gBACjE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC;YAC7D,CAAC;YAED,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE;gBACjE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,0BAA0B,CAAC;YAC/E,CAAC;YAED,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE;gBACpD,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,iCAAiC,CAAC;YACzD,CAAC;YAED,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE;gBACpD,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,iCAAiC,CAAC;YAC3E,CAAC;YAED,CAAC,EAAE,6BAA6B,EAAE,CAAC,EAAE,EAAE,EAAE;gBACvC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,4CAA4C,CAAC;YACvF,CAAC;YAED,CAAC,EAAE,4BAA4B,EAAE,CAAC,EAAE,EAAE,EAAE;gBACtC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,2CAA2C,CAAC;YACtF,CAAC;YAED,CAAC,EAAE,wBAAwB,EAAE,CAAC,EAAE,EAAE,EAAE;gBAClC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,+CAA+C,CAAC;YAC1F,CAAC;SACF,CAAC;IACJ,CAAC;IAoOD,IAAI,qBAAqB;;QACvB,OAAO,EAAE,OAAO,EAAE,OAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACnE,CAAC;IAED,UAAU;;QACR,MAAM,qBAAqB,GAAG,IAAI,CAAC,CAAC,CAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,QAAC,IAAI,CAAC,IAAI,0CAAE,iBAAiB,CAAA;YAC1D,CAAC,CAAC,4CAA4C;YAC9C,CAAC,CAAC,qCAAqC,CAC1C,CAAC;QAEF,MAAM,iBAAiB,GACrB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QAEzF,MAAM,+BAA+B,GAAG,IAAI,CAAC,cAAc,CAAiC,CAAC,CAAC,CAAC;QAC/F,MAAM,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAA4B,CAAC,CAAC,CAAC;QACrF,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAiB,CAAC,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAiB,CAAC,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAe,CAAC,CAAC,CAAC;QAE3D,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,aAC/C,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAE,IAAI,0CAAE,MAAM,mCAAI,EAAE,CAC/C,CAAC;QAEF,MAAM,SAAS,eAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,0CAAE,MAAM,CAAC,QAAQ,mCAAI,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,aAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,0CAAE,MAAM,mCAAI,EAAE,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,aAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,0CAAE,MAAM,mCAAI,EAAE,CAAC,CAAC;QAEjE,MAAM,+BAA+B,GAAG,MAAM,CAAC,OAAO,aACpD,+BAA+B,aAA/B,+BAA+B,uBAA/B,+BAA+B,CAAE,IAAI,0CAAE,MAAM,mCAAI,EAAE,CACpD,CAAC;QAEF,MAAM,+BAA+B,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChF,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;YAC1B,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;SACZ,CAAC,CAAC,CAAC;QAEJ,MAAM,0BAA0B,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACxF,QAAQ;YACR,KAAK;SACN,CAAC,CAAC,CAAC;QAEJ,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7F,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEjF,IAAI,UAA8B,CAAC;QAEnC,IAAI;YACF,MAAM,UAAU,GAAG,IAAI,GAAG,OAAC,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,IAAI,OAAO;gBAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAClE,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;SACpC;QAAC,WAAM;YACN,UAAU,GAAG,SAAS,CAAC;SACxB;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChE,MAAM,+BAA+B,GAAG,qBAAqB,CAAC,2BAA2B,CAAC;QAC1F,MAAM,qBAAqB,GAAG,+BAA+B,CAAC,wBAAwB,CAAC;QACvF,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAEnD,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,YAAY,EAAE;;;;;;;;;;wBAUH,qBAAqB;;mBAE1B,iBAAiB;;sBAEd,IAAI,CAAC,qBAAqB;;;;;;;;;;;;;;;;sBAgB1B,IAAI,CAAC,oBAAoB;sBACzB,IAAI,CAAC,oBAAoB;;;;;;;;;qBAS1B,eAAe;;;;;;;qBAOf,cAAc;;;;UAIzB,aAAa,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,IAAI,CAAA;;;;2BAIW,aAAa;;;aAG3B;YACH,CAAC,CAAC,IAAI,CAAA;;;aAGH;;;;;;;;qBAQQ,IAAI,CAAC,sBAAsB;sBAC1B,IAAI,CAAC,uBAAuB;sBAC5B,IAAI,CAAC,uBAAuB;;;;;;;;;;8BAUpB,IAAI,CAAC,4BAA4B;sBACzC,IAAI,CAAC,6BAA6B;sBAClC,IAAI,CAAC,6BAA6B;;;;;;;;;wBAShC,YAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,0CAAE,KAAK,mCACnD,IAAI,CAAC,CAAC,CAAC,+BAA+B,CAAC;;;;;;;;;;sBAU3B,IAAI,CAAC,uBAAuB;sBAC5B,IAAI,CAAC,uBAAuB;;;;UAIxC,IAAI,CAAC,IAAI,CAAC,WAAW;YACrB,CAAC,CAAC,IAAI,CAAA;;;;4BAIY,IAAI,CAAC,wBAAwB;4BAC7B,IAAI,CAAC,wBAAwB;;;;;;;;;4BAS7B,IAAI,CAAC,wBAAwB;4BAC7B,IAAI,CAAC,wBAAwB;;;;;;;4BAO7B,IAAI,CAAC,4BAA4B;4BACjC,IAAI,CAAC,4BAA4B;;;;;;;4BAOjC,IAAI,CAAC,4BAA4B;4BACjC,IAAI,CAAC,4BAA4B;;;;;;;4BAOjC,IAAI,CAAC,4BAA4B;4BACjC,IAAI,CAAC,4BAA4B;2BAClC,IAAI,CAAC,2BAA2B;;;aAG9C;YACH,CAAC,CAAC,EAAE;;;;;;;qBAOO,0BAA0B;;;;;;;;;;;;;;;sBAezB,IAAI,CAAC,wBAAwB;sBAC7B,IAAI,CAAC,wBAAwB;qBAC9B,IAAI,CAAC,uBAAuB;;;;;;;;;;;;;;;;;8BAiBnB,IAAI,CAAC,4BAA4B;sBACzC,IAAI,CAAC,+BAA+B;sBACpC,IAAI,CAAC,+BAA+B;;;;;;;;;qBASrC,+BAA+B;sBAC9B,CAAC,QAAgB,EAAE,EAAE;;YAC/B,MAAM,KAAK,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC;gBACR,2BAA2B,EAAE,QAAQ;gBACrC,6BAA6B,QAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,EAAE,MAAM,mCAAI,EAAE;aACvD,CAAC,CAAC;QACL,CAAC;;;;UAID,OAAO,IAAI,CAAC,IAAI,CAAC,6BAA6B,KAAK,QAAQ;YAC3D,CAAC,CAAC,IAAI,CAAA;;;;;;aAMH;YACH,CAAC,CAAC,IAAI,CAAA;;;;;;aAMH;;;;;;;;;;;;;;UAcH,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAC5B,CAAC,CAAC,IAAI,CAAA;;;;;;;oCAOoB,IAAI,CAAC,4BAA4B;4BACzC,IAAI,CAAC,uBAAuB;4BAC5B,IAAI,CAAC,uBAAuB;;;aAG3C;YACH,CAAC,CAAC,EAAE;;;;;;;;;;;;sBAYQ,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO;sBACnC,CAAC,QAAiB,EAAE,EAAE;YAChC,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;;;;UAID,qBAAqB,CAAC,OAAO;YAC7B,CAAC,CAAC,IAAI,CAAA;;;;;;4BAMY,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,IAAI,GAAG,CAAC;4BAClD,CAAC,QAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7D,CAAC;;;;;;;;;4BASW,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,IAAI,GAAG,CAAC;4BACnD,CAAC,QAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9D,CAAC;;;;;;;4BAOW,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM;4BAClC,CAAC,QAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,CAAC;;;;;;;4BAOW,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM;4BAClC,CAAC,QAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,CAAC;;;;;;;+DAO8C,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,KAAK;;;;+DAIxB,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM;;;aAG3E;YACH,CAAC,CAAC,EAAE;;;;;;;sBAOQ,GAAG,EAAE,CAAC,+BAA+B,CAAC,OAAO;sBAC7C,CAAC,QAAiB,EAAE,EAAE;YAChC,IAAI,CAAC,oCAAoC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjE,CAAC;;;;UAID,+BAA+B,CAAC,OAAO;YACvC,CAAC,CAAC,IAAI,CAAA;;;;4BAIY,GAAG,EAAE,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,MAAM;4BAC1D,CAAC,QAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,oCAAoC,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;YACjF,CAAC;;;;;;;4BAOW,GAAG,EAAE,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,MAAM;4BACtD,CAAC,QAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,oCAAoC,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YAC7E,CAAC;;;;;;;4BAOW,GAAG,EAAE,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,MAAM;4BACnD,CAAC,QAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,oCAAoC,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;YAC1E,CAAC;;;;;;;4BAOW,GAAG,EAAE,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,MAAM;4BACrD,CAAC,QAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,oCAAoC,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;YAC5E,CAAC;;;;;;;;4BAQW,GAAG,EAAE,CAAC,+BAA+B,CAAC,qBAAqB;4BAC3D,CAAC,QAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,oCAAoC,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;YAC/E,CAAC;;;;;;;;;;;0DAWyC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,WAAW;;;;;;;;yDAQ/B,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,OAAO;;;;;;;;yDAQ1B,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI;;;;;;;;yDAQvB,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM;;;aAGrE;YACH,CAAC,CAAC,EAAE;;;;;UAKJ,IAAI,CAAC,IAAI,CAAC,WAAW;YACrB,CAAC,CAAC,IAAI,CAAA;;;;;;;oCAOoB,IAAI,CAAC,4BAA4B;4BACzC,IAAI,CAAC,+BAA+B;4BACpC,IAAI,CAAC,+BAA+B;;;aAGnD;YACH,CAAC,CAAC,EAAE;;;QAGN,KAAK,CAAC,UAAU,EAAE;QAClB,+BAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC;QACtE,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC5D,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAChF,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC;KACnC,CAAC;IACJ,CAAC;IAED,IAAY,mBAAmB;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAChF,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CACrC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,EACpE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAChC,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,UAAU,GAAG,EAAE,IAAI,aAAa,EAAE;YACrE,OAAO;gBACL,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,GAC1E,MAAM,CAAC,MACT,EAAE;gBACF,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,GACvF,MAAM,CAAC,MACT,EAAE;aACH,CAAC;SACH;IACH,CAAC;IAED,IAAY,mBAAmB;QAC7B,MAAM,qBAAqB,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChE,MAAM,+BAA+B,GAAG,qBAAqB,CAAC,2BAA2B,CAAC;QAC1F,MAAM,UAAU,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,QAAQ,CAAC,qBAAqB,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;QAClE,MAAM,aAAa,GACjB,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC;QAE1F,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CACrC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,EACpE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAChC,CAAC;QAEF,MAAM,eAAe,GAAG,GAAG,qBAAqB,CAAC,MAAM,GAAG,sBAAsB;aAC7E,QAAQ,EAAE;aACV,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC;QAEjE,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAEpE,IACE,qBAAqB,CAAC,KAAK;YAC3B,qBAAqB,CAAC,MAAM;YAC5B,UAAU,GAAG,EAAE,IAAI,aAAa,EAChC;YACA,OAAO;gBACL,WAAW,EAAE,GAAG,eAAe,GAAG,+BAA+B,CAAC,qBAAqB,GAAG,+BAA+B,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,MAAM,GAAG,aAAa,EAAE;gBACnM,OAAO,EAAE,GAAG,eAAe,GAAG,+BAA+B,CAAC,qBAAqB,GAAG,+BAA+B,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,MAAM,GAAG,aAAa,EAAE;gBAC3L,MAAM,EAAE,GAAG,eAAe,GAAG,+BAA+B,CAAC,qBAAqB,GAAG,+BAA+B,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,MAAM,GAAG,aAAa,EAAE;gBACzL,IAAI,EAAE,GAAG,eAAe,GAAG,+BAA+B,CAAC,qBAAqB,GAAG,+BAA+B,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,MAAM,GAAG,aAAa,EAAE;aACtL,CAAC;SACH;IACH,CAAC;IAEO,eAAe;;QACrB,IAAI,SAA2B,CAAC;QAEhC,IAAI;YACF,SAAS,GAAG,IAAI,CAAC,KAAK,OAAC,IAAI,CAAC,IAAI,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC;SACrD;QAAC,WAAM;YACN,MAAM,CAAC,SAAG,IAAI,CAAC,IAAI,CAAC,WAAW,mCAAI,EAAE,CAAC;YACtC,SAAS,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;SACzE;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,GAA2B,EAAE,KAAa;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAEO,0BAA0B;;QAChC,MAAM,aAAa,GAAgC;YACjD,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;YACX,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,2BAA2B,EAAE;gBAC3B,OAAO,EAAE,KAAK;gBACd,qBAAqB,EAAE,EAAE;gBACzB,wBAAwB,EAAE;oBACxB,uBAAuB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;oBACvC,mBAAmB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;oBACnC,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;oBAClC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;iBACjC;aACF;SACF,CAAC;QAEF,IAAI,MAAmC,CAAC;QAExC,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,KAAK,OAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,mCAAI,EAAE,CAAC,CAAC;SAC/D;QAAC,WAAM;YACN,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;SACnC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,0BAA0B,CAChC,GAAS,EACT,KAAwC;QAExC,MAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACxD,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAEO,oCAAoC;QAC1C,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC,2BAA2B,CAAC;IACvE,CAAC;IAEO,oCAAoC,CAE1C,GAAS,EAAE,KAAuE;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC,2BAA2B,CAAC;QAC7E,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,0BAA0B,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAEO,oCAAoC,CAC1C,GAAiG,EACjG,KAAa;QAEb,MAAM,MAAM,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAC3D,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACpD,IAAI,CAAC,oCAAoC,CACvC,0BAA0B,EAC1B,MAAM,CAAC,wBAAwB,CAChC,CAAC;IACJ,CAAC;IAEO,eAAe;;QACrB,IAAI,MAAwB,CAAC;QAE7B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,KAAK,OAAC,IAAI,CAAC,IAAI,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC;SAClD;QAAC,WAAM;YACN,MAAM,GAAG;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,EAAE;aACT,CAAC;SACH;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe,CACrB,GAAS,EACT,KAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAEO,cAAc,CAAiD,KAAa;;QAClF,MAAM,EAAE,GAAG,UAAU,KAAK,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,QAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAA8B,IAAI,EAAE,EAAE,CAAC,0CAAE,IAAI;YAChF,MAAM,EAAE,CAAC,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAA;;;;iBAI3B,SAAS,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,SAAS,CAAC;eAC9B,EAAE;oBACG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;;;OAGvC;SACF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { Resource, Graph } from '@foxy.io/sdk/core';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport type {\n ParsedCustomDisplayIdConfig,\n ParsedSmtpConfig,\n ParsedWebhookKey,\n Data,\n} from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nimport cloneDeep from 'lodash-es/cloneDeep';\n\nconst NS = 'store-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for store settings (`fx:store`).\n *\n * @element foxy-store-form\n * @since 1.21.0\n */\nexport class StoreForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customerPasswordHashTypes: { attribute: 'customer-password-hash-types' },\n shippingAddressTypes: { attribute: 'shipping-address-types' },\n storeVersions: { attribute: 'store-versions' },\n checkoutTypes: { attribute: 'checkout-types' },\n localeCodes: { attribute: 'locale-codes' },\n languages: {},\n timezones: {},\n countries: {},\n regions: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ store_name: v }) => !!v || 'store-name:v8n_required',\n ({ store_name: v }) => (v && v.length <= 50) || 'store-name:v8n_too_long',\n ({ store_domain: v }) => !!v || 'store-domain:v8n_required',\n ({ store_domain: v }) => (v && v.length <= 100) || 'store-domain:v8n_too_long',\n ({ store_url: v }) => !!v || 'store-url:v8n_required',\n ({ store_url: v }) => (v && v.length <= 300) || 'store-url:v8n_too_long',\n ({ receipt_continue_url: v }) => !v || v.length <= 300 || 'receipt-continue-url:v8n_too_long',\n ({ store_email: v }) => !!v || 'store-email:v8n_required',\n ({ store_email: v }) => (v && v.length <= 300) || 'store-email:v8n_too_long',\n ({ from_email: v }) => !v || v.length <= 100 || 'from-email:v8n_too_long',\n ({ smtp_config: v }) => !v || v.length <= 1000 || 'use-smtp-config:v8n_too_long',\n ({ postal_code: v }) => !!v || 'postal-code:v8n_required',\n ({ postal_code: v }) => (v && v.length <= 50) || 'postal-code:v8n_too_long',\n ({ region: v }) => !!v || 'region:v8n_required',\n ({ region: v }) => (v && v.length <= 100) || 'region:v8n_too_long',\n ({ country: v }) => !!v || 'country:v8n_required',\n ({ logo_url: v }) => !v || v.length <= 200 || 'logo-url:v8n_too_long',\n\n ({ webhook_url: v, use_webhook }) => {\n return !use_webhook || !v || v.length <= 300 || 'webhook-url:v8n_too_long';\n },\n\n ({ webhook_key: v, use_webhook: on, use_cart_validation: hmac }) => {\n return (!on && !hmac) || !!v || 'webhook-key:v8n_required';\n },\n\n ({ webhook_key: v, use_webhook: on, use_cart_validation: hmac }) => {\n return (!on && !hmac) || !v || v.length <= 200 || 'webhook-key:v8n_too_long';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !!v || 'single-sign-on-url:v8n_required';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !v || v.length <= 300 || 'single-sign-on-url:v8n_too_long';\n },\n\n ({ customer_password_hash_config: v }) => {\n return !v || String(v).length <= 100 || 'customer-password-hash-config:v8n_too_long';\n },\n\n ({ unified_order_entry_password: v }) => {\n return !v || String(v).length <= 100 || 'unified-order-entry-password:v8n_too_long';\n },\n\n ({ custom_display_id_config: v }) => {\n return !v || String(v).length <= 500 || 'custom-display-id-config-enabled:v8n_too_long';\n },\n ];\n }\n\n /** URL of the `fx:customer_password_hash_types` property helper resource. */\n customerPasswordHashTypes: string | null = null;\n\n /** URL of the `fx:shipping_address_types` property helper resource. */\n shippingAddressTypes: string | null = null;\n\n /**\n * URL of the `fx:store_versions` property helper resource.\n * @deprecated All elements in this library are designed to work with store version 2.0.\n */\n storeVersions: string | null = null;\n\n /**\n * URL of the `fx:checkout_types` property helper resource.\n * @deprecated Checkout type is effectively controlled by the default template config.\n */\n checkoutTypes: string | null = null;\n\n /**\n * URL of the `fx:locale_codes` property helper resource.\n * @deprecated Default locale code is effectively controlled by the active template set.\n */\n localeCodes: string | null = null;\n\n /**\n * URL of the `fx:languages` property helper resource.\n * @deprecated Default language is effectively controlled by the active template set.\n */\n languages: string | null = null;\n\n /** URL of the `fx:timezones` property helper resource. */\n timezones: string | null = null;\n\n /** URL of the `fx:countries` property helper resource. */\n countries: string | null = null;\n\n /** URL of the `fx:regions` property helper resource. */\n regions: string | null = null;\n\n private readonly __currencyStyleOptions = [\n { rawLabel: '12.34', value: '101' },\n { rawLabel: 'USD 12.34', value: '001' },\n { rawLabel: '$12.34', value: '000' },\n { rawLabel: '12', value: '111' },\n { rawLabel: 'USD 12', value: '011' },\n { rawLabel: '$12', value: '010' },\n ];\n\n private readonly __currencyStyleGetValue = () => {\n const map: Record<string, string> = {\n '101': '101',\n '100': '101',\n '001': '001',\n '000': '000',\n '111': '111',\n '110': '111',\n '011': '011',\n '010': '010',\n };\n\n const selectionCode = [\n this.form.hide_currency_symbol,\n this.form.hide_decimal_characters,\n this.form.use_international_currency_symbol,\n ]\n .map(v => Number(Boolean(v)))\n .join('');\n\n return map[selectionCode];\n };\n\n private readonly __currencyStyleSetValue = (newValue: string) => {\n this.edit({\n hide_currency_symbol: Boolean(Number(newValue[0])),\n hide_decimal_characters: Boolean(Number(newValue[1])),\n use_international_currency_symbol: Boolean(Number(newValue[2])),\n });\n };\n\n private readonly __appSessionTimeOptions = [\n { value: 's', label: 'second' },\n { value: 'm', label: 'minute' },\n { value: 'h', label: 'hour' },\n { value: 'd', label: 'day' },\n ];\n\n private readonly __getStoreEmailValue = (): Item[] => {\n const emails = this.form.store_email ?? '';\n return emails\n .split(',')\n .map(v => ({ value: v.trim() }))\n .filter(({ value }) => value.length > 0);\n };\n\n private readonly __setStoreEmailValue = (newValue: Item[]) => {\n this.edit({ store_email: newValue.map(v => v.value).join(',') });\n };\n\n private readonly __getUseSmtpConfigValue = () => {\n return !!this.form.smtp_config;\n };\n\n private readonly __setUseSmtpConfigValue = (newValue: boolean) => {\n if (newValue) {\n this.edit({\n smtp_config: JSON.stringify({\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n }),\n });\n } else {\n this.edit({ smtp_config: '' });\n }\n };\n\n private readonly __getAppSessionTimeValue = () => {\n const valueInSeconds = this.form.app_session_time || 43200;\n\n if (valueInSeconds % 86400 === 0) return `${valueInSeconds / 86400}d`;\n if (valueInSeconds % 3600 === 0) return `${valueInSeconds / 3600}h`;\n if (valueInSeconds % 60 === 0) return `${valueInSeconds / 60}m`;\n\n return `${valueInSeconds}s`;\n };\n\n private readonly __setAppSessionTimeValue = (newValue: string) => {\n const units = newValue[newValue.length - 1];\n const count = parseInt(newValue.substring(0, newValue.length - 1));\n const map: Record<string, number> = { d: 86400, h: 3600, m: 60, s: 1 };\n\n this.edit({ app_session_time: map[units] * count });\n };\n\n private readonly __setStoreDomainValue = (newValue: string) => {\n if (newValue.endsWith('.foxycart.com')) {\n const domain = newValue.substring(0, newValue.length - 13);\n this.edit({ store_domain: domain, use_remote_domain: domain.includes('.') });\n } else {\n this.edit({ store_domain: newValue, use_remote_domain: newValue.includes('.') });\n }\n };\n\n private readonly __smtpConfigHostGetValue = () => {\n return this.__getSmtpConfig().host;\n };\n\n private readonly __smtpConfigHostSetValue = (newValue: string) => {\n this.__setSmtpConfig('host', newValue);\n };\n\n private readonly __smtpConfigPortGetValue = () => {\n const port = parseInt(this.__getSmtpConfig().port);\n return isNaN(port) ? undefined : port;\n };\n\n private readonly __smtpConfigPortSetValue = (newValue: number) => {\n this.__setSmtpConfig('port', String(newValue));\n };\n\n private readonly __smtpConfigUsernameGetValue = () => {\n return this.__getSmtpConfig().username;\n };\n\n private readonly __smtpConfigUsernameSetValue = (newValue: string) => {\n this.__setSmtpConfig('username', newValue);\n };\n\n private readonly __smtpConfigPasswordGetValue = () => {\n return this.__getSmtpConfig().password;\n };\n\n private readonly __smtpConfigPasswordSetValue = (newValue: string) => {\n this.__setSmtpConfig('password', newValue);\n };\n\n private readonly __smtpConfigSecurityGetValue = () => {\n return this.__getSmtpConfig().security;\n };\n\n private readonly __smtpConfigSecuritySetValue = (newValue: string) => {\n this.__setSmtpConfig('security', newValue);\n };\n\n private readonly __smtpConfigSecurityOptions = [\n { label: 'option_ssl', value: 'ssl' },\n { label: 'option_tls', value: 'tls' },\n { label: 'option_none', value: '' },\n ];\n\n private readonly __webhookKeyGeneratorOptions = { length: 32, separator: '' };\n\n private readonly __webhookKeyApiLegacyGetValue = () => {\n return this.__getWebhookKey().api_legacy;\n };\n\n private readonly __webhookKeyApiLegacySetValue = (newValue: string) => {\n this.__setWebhookKey('api_legacy', newValue);\n };\n\n private readonly __webhookKeyCartSigningGetValue = () => {\n return this.__getWebhookKey().cart_signing;\n };\n\n private readonly __webhookKeyCartSigningSetValue = (newValue: string) => {\n this.__setWebhookKey('cart_signing', newValue);\n };\n\n private readonly __webhookKeyXmlDatafeedGetValue = () => {\n return this.__getWebhookKey().xml_datafeed;\n };\n\n private readonly __webhookKeyXmlDatafeedSetValue = (newValue: string) => {\n this.__setWebhookKey('xml_datafeed', newValue);\n };\n\n private readonly __webhookKeySsoGetValue = () => {\n return this.__getWebhookKey().sso;\n };\n\n private readonly __webhookKeySsoSetValue = (newValue: string) => {\n this.__setWebhookKey('sso', newValue);\n };\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { context: this.data?.is_active ? 'active' : 'inactive' };\n }\n\n renderBody(): TemplateResult {\n const storeDomainHelperText = this.t(\n this.form.use_remote_domain && !this.data?.use_remote_domain\n ? 'essentials.store-domain.custom_domain_note'\n : 'essentials.store-domain.helper_text'\n );\n\n const storeDomainSuffix =\n !this.form.store_domain || this.form.store_domain.includes('.') ? '' : '.foxycart.com';\n\n const customerPasswordHashTypesLoader = this.__renderLoader<Rels.CustomerPasswordHashTypes>(1);\n const shippingAddressTypesLoader = this.__renderLoader<Rels.ShippingAddressTypes>(2);\n const timezonesLoader = this.__renderLoader<Rels.Timezones>(7);\n const countriesLoader = this.__renderLoader<Rels.Countries>(8);\n const regionsLoader = this.__renderLoader<Rels.Regions>(9);\n\n const shippingAddressTypeEntries = Object.entries(\n shippingAddressTypesLoader?.data?.values ?? {}\n );\n\n const timezones = timezonesLoader?.data?.values.timezone ?? [];\n const countries = Object.values(countriesLoader?.data?.values ?? {});\n const regions = Object.values(regionsLoader?.data?.values ?? {});\n\n const customerPasswordHashTypeEntries = Object.entries(\n customerPasswordHashTypesLoader?.data?.values ?? {}\n );\n\n const customerPasswordHashTypeOptions = customerPasswordHashTypeEntries.map(v => ({\n rawLabel: v[1].description,\n value: v[0],\n }));\n\n const shippingAddressTypeOptions = shippingAddressTypeEntries.map(([value, rawLabel]) => ({\n rawLabel,\n value,\n }));\n\n const timezoneOptions = timezones.map(t => ({ rawLabel: t.description, value: t.timezone }));\n const countryOptions = countries.map(c => ({ rawLabel: c.default, value: c.cc2 }));\n const regionOptions = regions.map(r => ({ rawLabel: r.default, value: r.code }));\n\n let regionsUrl: string | undefined;\n\n try {\n const regionsURL = new URL(this.regions ?? '');\n const country = this.form.country;\n if (country) regionsURL.searchParams.set('country_code', country);\n regionsUrl = regionsURL.toString();\n } catch {\n regionsUrl = undefined;\n }\n\n const customDisplayIdConfig = this.__getCustomDisplayIdConfig();\n const transactionJournalEntriesConfig = customDisplayIdConfig.transaction_journal_entries;\n const logDetailRequestTypes = transactionJournalEntriesConfig.log_detail_request_types;\n const displayIdExamples = this.__displayIdExamples;\n const journalIdExamples = this.__journalIdExamples;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"essentials\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"store-name\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"logo-url\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n helper-text=${storeDomainHelperText}\n layout=\"summary-item\"\n suffix=${storeDomainSuffix}\n infer=\"store-domain\"\n .setValue=${this.__setStoreDomainValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"store-url\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials\" label=\"\" helper-text=\"\">\n <foxy-internal-switch-control infer=\"is-maintenance-mode\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials\" label=\"\" helper-text=\"\">\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"store-email\"\n .getValue=${this.__getStoreEmailValue}\n .setValue=${this.__setStoreEmailValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials\" label=\"\" helper-text=\"\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"timezone\"\n .options=${timezoneOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"country\"\n .options=${countryOptions}\n >\n </foxy-internal-select-control>\n\n ${regionOptions.length > 0\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"region\"\n .options=${regionOptions}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"region\">\n </foxy-internal-text-control>\n `}\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"postal-code\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"currency-style\"\n .options=${this.__currencyStyleOptions}\n .getValue=${this.__currencyStyleGetValue}\n .setValue=${this.__currencyStyleSetValue}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"legacy-api\">\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key-api-legacy\"\n show-generator\n .generatorOptions=${this.__webhookKeyGeneratorOptions}\n .getValue=${this.__webhookKeyApiLegacyGetValue}\n .setValue=${this.__webhookKeyApiLegacySetValue}\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"emails\">\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"from-email\"\n placeholder=${this.__getStoreEmailValue()[0]?.value ??\n this.t('emails.from-email.placeholder')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-switch-control infer=\"use-email-dns\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"use-smtp-config\"\n helper-text-as-tooltip\n .getValue=${this.__getUseSmtpConfigValue}\n .setValue=${this.__setUseSmtpConfigValue}\n >\n </foxy-internal-switch-control>\n\n ${this.form.smtp_config\n ? html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"smtp-config-host\"\n .getValue=${this.__smtpConfigHostGetValue}\n .setValue=${this.__smtpConfigHostSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"smtp-config-port\"\n step=\"1\"\n min=\"0\"\n .getValue=${this.__smtpConfigPortGetValue}\n .setValue=${this.__smtpConfigPortSetValue}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"smtp-config-username\"\n .getValue=${this.__smtpConfigUsernameGetValue}\n .setValue=${this.__smtpConfigUsernameSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"smtp-config-password\"\n .getValue=${this.__smtpConfigPasswordGetValue}\n .setValue=${this.__smtpConfigPasswordSetValue}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"smtp-config-security\"\n .getValue=${this.__smtpConfigSecurityGetValue}\n .setValue=${this.__smtpConfigSecuritySetValue}\n .options=${this.__smtpConfigSecurityOptions}\n >\n </foxy-internal-select-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"shipping\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"shipping-address-type\"\n .options=${shippingAddressTypeOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-switch-control infer=\"features-multiship\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control infer=\"require-signed-shipping-rates\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"cart\">\n <foxy-internal-frequency-control\n layout=\"summary-item\"\n infer=\"app-session-time\"\n .getValue=${this.__getAppSessionTimeValue}\n .setValue=${this.__setAppSessionTimeValue}\n .options=${this.__appSessionTimeOptions}\n >\n </foxy-internal-frequency-control>\n\n <foxy-internal-switch-control\n infer=\"products-require-expires-property\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control infer=\"use-cart-validation\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key-cart-signing\"\n show-generator\n .generatorOptions=${this.__webhookKeyGeneratorOptions}\n .getValue=${this.__webhookKeyCartSigningGetValue}\n .setValue=${this.__webhookKeyCartSigningSetValue}\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-type\"\n .options=${customerPasswordHashTypeOptions}\n .setValue=${(newValue: string) => {\n const entry = customerPasswordHashTypeEntries.find(([v]) => v === newValue);\n this.edit({\n customer_password_hash_type: newValue,\n customer_password_hash_config: entry?.[1].config ?? '',\n });\n }}\n >\n </foxy-internal-select-control>\n\n ${typeof this.form.customer_password_hash_config === 'number'\n ? html`\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-config\"\n >\n </foxy-internal-number-control>\n `\n : html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-config\"\n >\n </foxy-internal-text-control>\n `}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\" label=\"\" helper-text=\"\">\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"unified-order-entry-password\"\n show-generator\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\" label=\"\" helper-text=\"\">\n <foxy-internal-switch-control infer=\"use-single-sign-on\"></foxy-internal-switch-control>\n ${this.form.use_single_sign_on\n ? html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"single-sign-on-url\">\n </foxy-internal-text-control>\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key-sso\"\n show-generator\n .generatorOptions=${this.__webhookKeyGeneratorOptions}\n .getValue=${this.__webhookKeySsoGetValue}\n .setValue=${this.__webhookKeySsoSetValue}\n >\n </foxy-internal-password-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"receipt\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"receipt-continue-url\">\n </foxy-internal-text-control>\n <foxy-internal-switch-control infer=\"bcc-on-receipt-email\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"custom-display-id-config\">\n <foxy-internal-switch-control\n infer=\"custom-display-id-config-enabled\"\n .getValue=${() => customDisplayIdConfig.enabled}\n .setValue=${(newValue: boolean) => {\n this.__setCustomDisplayIdConfig('enabled', newValue);\n }}\n >\n </foxy-internal-switch-control>\n\n ${customDisplayIdConfig.enabled\n ? html`\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-start\"\n step=\"1\"\n min=\"0\"\n .getValue=${() => parseInt(customDisplayIdConfig.start || '0')}\n .setValue=${(newValue: number) => {\n this.__setCustomDisplayIdConfig('start', String(newValue));\n }}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-length\"\n step=\"1\"\n min=\"0\"\n .getValue=${() => parseInt(customDisplayIdConfig.length || '0')}\n .setValue=${(newValue: number) => {\n this.__setCustomDisplayIdConfig('length', String(newValue));\n }}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-prefix\"\n .getValue=${() => customDisplayIdConfig.prefix}\n .setValue=${(newValue: string) => {\n this.__setCustomDisplayIdConfig('prefix', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-suffix\"\n .getValue=${() => customDisplayIdConfig.suffix}\n .setValue=${(newValue: string) => {\n this.__setCustomDisplayIdConfig('suffix', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <div class=\"text-right text-secondary\">\n <p class=\"flex justify-end\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-first-example\"></foxy-i18n>\n <span style=\"font-family: monospace\">&nbsp;${displayIdExamples?.first}</span>\n </p>\n <p class=\"flex justify-end\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-random-example\"></foxy-i18n>\n <span style=\"font-family: monospace\">&nbsp;${displayIdExamples?.random}</span>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control helper-text=\"\" label=\"\" infer=\"custom-display-id-config\">\n <foxy-internal-switch-control\n infer=\"custom-display-id-config-transaction-journal-entries-enabled\"\n class=\"sm-col-span-2\"\n .getValue=${() => transactionJournalEntriesConfig.enabled}\n .setValue=${(newValue: boolean) => {\n this.__setTransactionJournalEntriesConfig('enabled', newValue);\n }}\n >\n </foxy-internal-switch-control>\n\n ${transactionJournalEntriesConfig.enabled\n ? html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-authcapture-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_authcapture.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_authcapture', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-capture-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_capture.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_capture', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-void-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_void.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_void', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-refund-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_refund.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_refund', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-transaction-separator\"\n class=\"col-span-2\"\n .getValue=${() => transactionJournalEntriesConfig.transaction_separator}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesConfig('transaction_separator', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <div class=\"sm-col-span-2 leading-s text-right text-secondary\">\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-authcapture-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\"> ${journalIdExamples?.authcapture} </span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-capture-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.capture}</span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-void-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.void}</span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-refund-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.refund}</span>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"xml-datafeed\">\n <foxy-internal-switch-control infer=\"use-webhook\"></foxy-internal-switch-control>\n ${this.form.use_webhook\n ? html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"webhook-url\">\n </foxy-internal-text-control>\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key-xml-datafeed\"\n show-generator\n .generatorOptions=${this.__webhookKeyGeneratorOptions}\n .getValue=${this.__webhookKeyXmlDatafeedGetValue}\n .setValue=${this.__webhookKeyXmlDatafeedSetValue}\n >\n </foxy-internal-password-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n ${super.renderBody()}\n ${customerPasswordHashTypesLoader.render(this.customerPasswordHashTypes)}\n ${shippingAddressTypesLoader.render(this.shippingAddressTypes)}\n ${timezonesLoader.render(this.timezones)} ${countriesLoader.render(this.countries)}\n ${regionsLoader.render(regionsUrl)}\n `;\n }\n\n private get __displayIdExamples() {\n const config = this.__getCustomDisplayIdConfig();\n const startAsInt = parseInt(config.start || '0');\n const lengthAsInt = parseInt(config.length || '0');\n const numericLength = lengthAsInt - config.prefix.length - config.suffix.length;\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, numericLength)),\n Math.pow(10, numericLength) - 1\n );\n\n if (config.start && config.length && startAsInt / 10 <= numericLength) {\n return {\n first: `${config.prefix}${startAsInt.toString().padStart(numericLength, '0')}${\n config.suffix\n }`,\n random: `${config.prefix}${randomExampleNumericId.toString().padStart(numericLength, '0')}${\n config.suffix\n }`,\n };\n }\n }\n\n private get __journalIdExamples() {\n const customDisplayIdConfig = this.__getCustomDisplayIdConfig();\n const transactionJournalEntriesConfig = customDisplayIdConfig.transaction_journal_entries;\n const startAsInt = parseInt(customDisplayIdConfig.start || '0');\n const lengthAsInt = parseInt(customDisplayIdConfig.length || '0');\n const numericLength =\n lengthAsInt - customDisplayIdConfig.prefix.length - customDisplayIdConfig.suffix.length;\n\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, numericLength)),\n Math.pow(10, numericLength) - 1\n );\n\n const randomExampleId = `${customDisplayIdConfig.prefix}${randomExampleNumericId\n .toString()\n .padStart(numericLength, '0')}${customDisplayIdConfig.suffix}`;\n\n const randomNumericEntryId = Math.floor(Math.random() * 1000);\n const randomEntryId = String(randomNumericEntryId).padStart(3, '0');\n\n if (\n customDisplayIdConfig.start &&\n customDisplayIdConfig.length &&\n startAsInt / 10 <= numericLength\n ) {\n return {\n authcapture: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_authcapture.prefix}${randomEntryId}`,\n capture: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_capture.prefix}${randomEntryId}`,\n refund: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_refund.prefix}${randomEntryId}`,\n void: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_void.prefix}${randomEntryId}`,\n };\n }\n }\n\n private __getWebhookKey() {\n let parsedKey: ParsedWebhookKey;\n\n try {\n parsedKey = JSON.parse(this.form.webhook_key ?? '');\n } catch {\n const v = this.form.webhook_key ?? '';\n parsedKey = { cart_signing: v, xml_datafeed: v, api_legacy: v, sso: v };\n }\n\n return parsedKey;\n }\n\n private __setWebhookKey(key: keyof ParsedWebhookKey, value: string) {\n const parsedKey = this.__getWebhookKey();\n parsedKey[key] = value;\n this.edit({ webhook_key: JSON.stringify(parsedKey) });\n }\n\n private __getCustomDisplayIdConfig() {\n const defaultConfig: ParsedCustomDisplayIdConfig = {\n enabled: false,\n start: '0',\n length: '0',\n prefix: '',\n suffix: '',\n transaction_journal_entries: {\n enabled: false,\n transaction_separator: '',\n log_detail_request_types: {\n transaction_authcapture: { prefix: '' },\n transaction_capture: { prefix: '' },\n transaction_refund: { prefix: '' },\n transaction_void: { prefix: '' },\n },\n },\n };\n\n let config: ParsedCustomDisplayIdConfig;\n\n try {\n config = JSON.parse(this.form.custom_display_id_config ?? '');\n } catch {\n config = cloneDeep(defaultConfig);\n }\n\n return config;\n }\n\n private __setCustomDisplayIdConfig<TKey extends keyof ParsedCustomDisplayIdConfig>(\n key: TKey,\n value: ParsedCustomDisplayIdConfig[TKey]\n ) {\n const currentConfig = this.__getCustomDisplayIdConfig();\n currentConfig[key] = value;\n this.edit({ custom_display_id_config: JSON.stringify(currentConfig) });\n }\n\n private __getTransactionJournalEntriesConfig() {\n return this.__getCustomDisplayIdConfig().transaction_journal_entries;\n }\n\n private __setTransactionJournalEntriesConfig<\n TKey extends keyof ParsedCustomDisplayIdConfig['transaction_journal_entries']\n >(key: TKey, value: ParsedCustomDisplayIdConfig['transaction_journal_entries'][TKey]) {\n const config = this.__getCustomDisplayIdConfig().transaction_journal_entries;\n config[key] = value;\n this.__setCustomDisplayIdConfig('transaction_journal_entries', config);\n }\n\n private __setTransactionJournalEntriesPrefix(\n key: keyof ParsedCustomDisplayIdConfig['transaction_journal_entries']['log_detail_request_types'],\n value: string\n ) {\n const config = this.__getTransactionJournalEntriesConfig();\n config.log_detail_request_types[key].prefix = value;\n this.__setTransactionJournalEntriesConfig(\n 'log_detail_request_types',\n config.log_detail_request_types\n );\n }\n\n private __getSmtpConfig() {\n let config: ParsedSmtpConfig;\n\n try {\n config = JSON.parse(this.form.smtp_config ?? '');\n } catch {\n config = {\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n };\n }\n\n return config;\n }\n\n private __setSmtpConfig<TKey extends keyof ParsedSmtpConfig>(\n key: TKey,\n value: ParsedSmtpConfig[TKey]\n ) {\n const config = this.__getSmtpConfig();\n config[key] = value;\n this.edit({ smtp_config: JSON.stringify(config) });\n }\n\n private __renderLoader<T extends Graph & { links: { self: unknown } }>(index: number) {\n const id = `loader-${index}`;\n return {\n data: this.renderRoot.querySelector<NucleonElement<Resource<T>>>(`#${id}`)?.data,\n render: (href?: string | null) => html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(href ?? undefined)}\n id=${id}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"StoreForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreForm/StoreForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { VanillaHCaptchaWebComponent } from 'vanilla-hcaptcha';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { Resource, Graph } from '@foxy.io/sdk/core';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport type {\n ParsedCustomDisplayIdConfig,\n ParsedSmtpConfig,\n ParsedWebhookKey,\n Data,\n} from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nimport cloneDeep from 'lodash-es/cloneDeep';\n\nconst NS = 'store-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for store settings (`fx:store`).\n *\n * @element foxy-store-form\n * @since 1.21.0\n */\nexport class StoreForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customerPasswordHashTypes: { attribute: 'customer-password-hash-types' },\n shippingAddressTypes: { attribute: 'shipping-address-types' },\n hCaptchaSiteKey: { attribute: 'h-captcha-site-key' },\n storeVersions: { attribute: 'store-versions' },\n checkoutTypes: { attribute: 'checkout-types' },\n localeCodes: { attribute: 'locale-codes' },\n languages: {},\n timezones: {},\n countries: {},\n regions: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ store_name: v }) => !!v || 'store-name:v8n_required',\n ({ store_name: v }) => (v && v.length <= 50) || 'store-name:v8n_too_long',\n ({ store_domain: v }) => !!v || 'store-domain:v8n_required',\n ({ store_domain: v }) => (v && v.length <= 100) || 'store-domain:v8n_too_long',\n ({ store_url: v }) => !!v || 'store-url:v8n_required',\n ({ store_url: v }) => (v && v.length <= 300) || 'store-url:v8n_too_long',\n ({ receipt_continue_url: v }) => !v || v.length <= 300 || 'receipt-continue-url:v8n_too_long',\n ({ store_email: v }) => !!v || 'store-email:v8n_required',\n ({ store_email: v }) => (v && v.length <= 300) || 'store-email:v8n_too_long',\n ({ from_email: v }) => !v || v.length <= 100 || 'from-email:v8n_too_long',\n ({ smtp_config: v }) => !v || v.length <= 1000 || 'use-smtp-config:v8n_too_long',\n ({ postal_code: v }) => !!v || 'postal-code:v8n_required',\n ({ postal_code: v }) => (v && v.length <= 50) || 'postal-code:v8n_too_long',\n ({ region: v }) => !!v || 'region:v8n_required',\n ({ region: v }) => (v && v.length <= 100) || 'region:v8n_too_long',\n ({ country: v }) => !!v || 'country:v8n_required',\n ({ logo_url: v }) => !v || v.length <= 200 || 'logo-url:v8n_too_long',\n\n ({ webhook_url: v, use_webhook }) => {\n return !use_webhook || !v || v.length <= 300 || 'webhook-url:v8n_too_long';\n },\n\n ({ webhook_key: v, use_webhook: on, use_cart_validation: hmac }) => {\n return (!on && !hmac) || !!v || 'webhook-key:v8n_required';\n },\n\n ({ webhook_key: v, use_webhook: on, use_cart_validation: hmac }) => {\n return (!on && !hmac) || !v || v.length <= 200 || 'webhook-key:v8n_too_long';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !!v || 'single-sign-on-url:v8n_required';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !v || v.length <= 300 || 'single-sign-on-url:v8n_too_long';\n },\n\n ({ customer_password_hash_config: v }) => {\n return !v || String(v).length <= 100 || 'customer-password-hash-config:v8n_too_long';\n },\n\n ({ unified_order_entry_password: v }) => {\n return !v || String(v).length <= 100 || 'unified-order-entry-password:v8n_too_long';\n },\n\n ({ custom_display_id_config: v }) => {\n return !v || String(v).length <= 500 || 'custom-display-id-config-enabled:v8n_too_long';\n },\n ];\n }\n\n /** URL of the `fx:customer_password_hash_types` property helper resource. */\n customerPasswordHashTypes: string | null = null;\n\n /** URL of the `fx:shipping_address_types` property helper resource. */\n shippingAddressTypes: string | null = null;\n\n /** hCaptcha site key for signup verification. If provided, requires users to complete a captcha before creating a store. */\n hCaptchaSiteKey: string | null = null;\n\n /**\n * URL of the `fx:store_versions` property helper resource.\n * @deprecated All elements in this library are designed to work with store version 2.0.\n */\n storeVersions: string | null = null;\n\n /**\n * URL of the `fx:checkout_types` property helper resource.\n * @deprecated Checkout type is effectively controlled by the default template config.\n */\n checkoutTypes: string | null = null;\n\n /**\n * URL of the `fx:locale_codes` property helper resource.\n * @deprecated Default locale code is effectively controlled by the active template set.\n */\n localeCodes: string | null = null;\n\n /**\n * URL of the `fx:languages` property helper resource.\n * @deprecated Default language is effectively controlled by the active template set.\n */\n languages: string | null = null;\n\n /** URL of the `fx:timezones` property helper resource. */\n timezones: string | null = null;\n\n /** URL of the `fx:countries` property helper resource. */\n countries: string | null = null;\n\n /** URL of the `fx:regions` property helper resource. */\n regions: string | null = null;\n\n private readonly __currencyStyleOptions = [\n { rawLabel: '12.34', value: '101' },\n { rawLabel: 'USD 12.34', value: '001' },\n { rawLabel: '$12.34', value: '000' },\n { rawLabel: '12', value: '111' },\n { rawLabel: 'USD 12', value: '011' },\n { rawLabel: '$12', value: '010' },\n ];\n\n private readonly __currencyStyleGetValue = () => {\n const map: Record<string, string> = {\n '101': '101',\n '100': '101',\n '001': '001',\n '000': '000',\n '111': '111',\n '110': '111',\n '011': '011',\n '010': '010',\n };\n\n const selectionCode = [\n this.form.hide_currency_symbol,\n this.form.hide_decimal_characters,\n this.form.use_international_currency_symbol,\n ]\n .map(v => Number(Boolean(v)))\n .join('');\n\n return map[selectionCode];\n };\n\n private readonly __currencyStyleSetValue = (newValue: string) => {\n this.edit({\n hide_currency_symbol: Boolean(Number(newValue[0])),\n hide_decimal_characters: Boolean(Number(newValue[1])),\n use_international_currency_symbol: Boolean(Number(newValue[2])),\n });\n };\n\n private readonly __appSessionTimeOptions = [\n { value: 's', label: 'second' },\n { value: 'm', label: 'minute' },\n { value: 'h', label: 'hour' },\n { value: 'd', label: 'day' },\n ];\n\n private readonly __getStoreEmailValue = (): Item[] => {\n const emails = this.form.store_email ?? '';\n return emails\n .split(',')\n .map(v => ({ value: v.trim() }))\n .filter(({ value }) => value.length > 0);\n };\n\n private readonly __setStoreEmailValue = (newValue: Item[]) => {\n this.edit({ store_email: newValue.map(v => v.value).join(',') });\n };\n\n private readonly __getUseSmtpConfigValue = () => {\n return !!this.form.smtp_config;\n };\n\n private readonly __setUseSmtpConfigValue = (newValue: boolean) => {\n if (newValue) {\n this.edit({\n smtp_config: JSON.stringify({\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n }),\n });\n } else {\n this.edit({ smtp_config: '' });\n }\n };\n\n private readonly __getAppSessionTimeValue = () => {\n const valueInSeconds = this.form.app_session_time || 43200;\n\n if (valueInSeconds % 86400 === 0) return `${valueInSeconds / 86400}d`;\n if (valueInSeconds % 3600 === 0) return `${valueInSeconds / 3600}h`;\n if (valueInSeconds % 60 === 0) return `${valueInSeconds / 60}m`;\n\n return `${valueInSeconds}s`;\n };\n\n private readonly __setAppSessionTimeValue = (newValue: string) => {\n const units = newValue[newValue.length - 1];\n const count = parseInt(newValue.substring(0, newValue.length - 1));\n const map: Record<string, number> = { d: 86400, h: 3600, m: 60, s: 1 };\n\n this.edit({ app_session_time: map[units] * count });\n };\n\n private readonly __setStoreDomainValue = (newValue: string) => {\n if (newValue.endsWith('.foxycart.com')) {\n const domain = newValue.substring(0, newValue.length - 13);\n this.edit({ store_domain: domain, use_remote_domain: domain.includes('.') });\n } else {\n this.edit({ store_domain: newValue, use_remote_domain: newValue.includes('.') });\n }\n };\n\n private readonly __smtpConfigHostGetValue = () => {\n return this.__getSmtpConfig().host;\n };\n\n private readonly __smtpConfigHostSetValue = (newValue: string) => {\n this.__setSmtpConfig('host', newValue);\n };\n\n private readonly __smtpConfigPortGetValue = () => {\n const port = parseInt(this.__getSmtpConfig().port);\n return isNaN(port) ? undefined : port;\n };\n\n private readonly __smtpConfigPortSetValue = (newValue: number) => {\n this.__setSmtpConfig('port', String(newValue));\n };\n\n private readonly __smtpConfigUsernameGetValue = () => {\n return this.__getSmtpConfig().username;\n };\n\n private readonly __smtpConfigUsernameSetValue = (newValue: string) => {\n this.__setSmtpConfig('username', newValue);\n };\n\n private readonly __smtpConfigPasswordGetValue = () => {\n return this.__getSmtpConfig().password;\n };\n\n private readonly __smtpConfigPasswordSetValue = (newValue: string) => {\n this.__setSmtpConfig('password', newValue);\n };\n\n private readonly __smtpConfigSecurityGetValue = () => {\n return this.__getSmtpConfig().security;\n };\n\n private readonly __smtpConfigSecuritySetValue = (newValue: string) => {\n this.__setSmtpConfig('security', newValue);\n };\n\n private readonly __smtpConfigSecurityOptions = [\n { label: 'option_ssl', value: 'ssl' },\n { label: 'option_tls', value: 'tls' },\n { label: 'option_none', value: '' },\n ];\n\n private readonly __webhookKeyGeneratorOptions = { length: 32, separator: '' };\n\n private readonly __webhookKeyApiLegacyGetValue = () => {\n return this.__getWebhookKey().api_legacy;\n };\n\n private readonly __webhookKeyApiLegacySetValue = (newValue: string) => {\n this.__setWebhookKey('api_legacy', newValue);\n };\n\n private readonly __webhookKeyCartSigningGetValue = () => {\n return this.__getWebhookKey().cart_signing;\n };\n\n private readonly __webhookKeyCartSigningSetValue = (newValue: string) => {\n this.__setWebhookKey('cart_signing', newValue);\n };\n\n private readonly __webhookKeyXmlDatafeedGetValue = () => {\n return this.__getWebhookKey().xml_datafeed;\n };\n\n private readonly __webhookKeyXmlDatafeedSetValue = (newValue: string) => {\n this.__setWebhookKey('xml_datafeed', newValue);\n };\n\n private readonly __webhookKeySsoGetValue = () => {\n return this.__getWebhookKey().sso;\n };\n\n private readonly __webhookKeySsoSetValue = (newValue: string) => {\n this.__setWebhookKey('sso', newValue);\n };\n\n private __hCaptchaToken: string | null = null;\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { context: this.data?.is_active ? 'active' : 'inactive' };\n }\n\n renderBody(): TemplateResult {\n const storeDomainHelperText = this.t(\n this.form.use_remote_domain && !this.data?.use_remote_domain\n ? 'essentials.store-domain.custom_domain_note'\n : 'essentials.store-domain.helper_text'\n );\n\n const storeDomainSuffix =\n !this.form.store_domain || this.form.store_domain.includes('.') ? '' : '.foxycart.com';\n\n const customerPasswordHashTypesLoader = this.__renderLoader<Rels.CustomerPasswordHashTypes>(1);\n const shippingAddressTypesLoader = this.__renderLoader<Rels.ShippingAddressTypes>(2);\n const timezonesLoader = this.__renderLoader<Rels.Timezones>(7);\n const countriesLoader = this.__renderLoader<Rels.Countries>(8);\n const regionsLoader = this.__renderLoader<Rels.Regions>(9);\n\n const shippingAddressTypeEntries = Object.entries(\n shippingAddressTypesLoader?.data?.values ?? {}\n );\n\n const timezones = timezonesLoader?.data?.values.timezone ?? [];\n const countries = Object.values(countriesLoader?.data?.values ?? {});\n const regions = Object.values(regionsLoader?.data?.values ?? {});\n\n const customerPasswordHashTypeEntries = Object.entries(\n customerPasswordHashTypesLoader?.data?.values ?? {}\n );\n\n const customerPasswordHashTypeOptions = customerPasswordHashTypeEntries.map(v => ({\n rawLabel: v[1].description,\n value: v[0],\n }));\n\n const shippingAddressTypeOptions = shippingAddressTypeEntries.map(([value, rawLabel]) => ({\n rawLabel,\n value,\n }));\n\n const timezoneOptions = timezones.map(t => ({ rawLabel: t.description, value: t.timezone }));\n const countryOptions = countries.map(c => ({ rawLabel: c.default, value: c.cc2 }));\n const regionOptions = regions.map(r => ({ rawLabel: r.default, value: r.code }));\n\n let regionsUrl: string | undefined;\n\n try {\n const regionsURL = new URL(this.regions ?? '');\n const country = this.form.country;\n if (country) regionsURL.searchParams.set('country_code', country);\n regionsUrl = regionsURL.toString();\n } catch {\n regionsUrl = undefined;\n }\n\n const customDisplayIdConfig = this.__getCustomDisplayIdConfig();\n const transactionJournalEntriesConfig = customDisplayIdConfig.transaction_journal_entries;\n const logDetailRequestTypes = transactionJournalEntriesConfig.log_detail_request_types;\n const displayIdExamples = this.__displayIdExamples;\n const journalIdExamples = this.__journalIdExamples;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"essentials\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"store-name\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"logo-url\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n helper-text=${storeDomainHelperText}\n layout=\"summary-item\"\n suffix=${storeDomainSuffix}\n infer=\"store-domain\"\n .setValue=${this.__setStoreDomainValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"store-url\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials\" label=\"\" helper-text=\"\">\n <foxy-internal-switch-control infer=\"is-maintenance-mode\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials\" label=\"\" helper-text=\"\">\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"store-email\"\n .getValue=${this.__getStoreEmailValue}\n .setValue=${this.__setStoreEmailValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"essentials\" label=\"\" helper-text=\"\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"timezone\"\n .options=${timezoneOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"country\"\n .options=${countryOptions}\n >\n </foxy-internal-select-control>\n\n ${regionOptions.length > 0\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"region\"\n .options=${regionOptions}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"region\">\n </foxy-internal-text-control>\n `}\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"postal-code\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"currency-style\"\n .options=${this.__currencyStyleOptions}\n .getValue=${this.__currencyStyleGetValue}\n .setValue=${this.__currencyStyleSetValue}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"legacy-api\">\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key-api-legacy\"\n show-generator\n .generatorOptions=${this.__webhookKeyGeneratorOptions}\n .getValue=${this.__webhookKeyApiLegacyGetValue}\n .setValue=${this.__webhookKeyApiLegacySetValue}\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"emails\">\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"from-email\"\n placeholder=${this.__getStoreEmailValue()[0]?.value ??\n this.t('emails.from-email.placeholder')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-switch-control infer=\"use-email-dns\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"use-smtp-config\"\n helper-text-as-tooltip\n .getValue=${this.__getUseSmtpConfigValue}\n .setValue=${this.__setUseSmtpConfigValue}\n >\n </foxy-internal-switch-control>\n\n ${this.form.smtp_config\n ? html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"smtp-config-host\"\n .getValue=${this.__smtpConfigHostGetValue}\n .setValue=${this.__smtpConfigHostSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"smtp-config-port\"\n step=\"1\"\n min=\"0\"\n .getValue=${this.__smtpConfigPortGetValue}\n .setValue=${this.__smtpConfigPortSetValue}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"smtp-config-username\"\n .getValue=${this.__smtpConfigUsernameGetValue}\n .setValue=${this.__smtpConfigUsernameSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"smtp-config-password\"\n .getValue=${this.__smtpConfigPasswordGetValue}\n .setValue=${this.__smtpConfigPasswordSetValue}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"smtp-config-security\"\n .getValue=${this.__smtpConfigSecurityGetValue}\n .setValue=${this.__smtpConfigSecuritySetValue}\n .options=${this.__smtpConfigSecurityOptions}\n >\n </foxy-internal-select-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"shipping\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"shipping-address-type\"\n .options=${shippingAddressTypeOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-switch-control infer=\"features-multiship\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control infer=\"require-signed-shipping-rates\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"cart\">\n <foxy-internal-frequency-control\n layout=\"summary-item\"\n infer=\"app-session-time\"\n .getValue=${this.__getAppSessionTimeValue}\n .setValue=${this.__setAppSessionTimeValue}\n .options=${this.__appSessionTimeOptions}\n >\n </foxy-internal-frequency-control>\n\n <foxy-internal-switch-control\n infer=\"products-require-expires-property\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control infer=\"use-cart-validation\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key-cart-signing\"\n show-generator\n .generatorOptions=${this.__webhookKeyGeneratorOptions}\n .getValue=${this.__webhookKeyCartSigningGetValue}\n .setValue=${this.__webhookKeyCartSigningSetValue}\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-type\"\n .options=${customerPasswordHashTypeOptions}\n .setValue=${(newValue: string) => {\n const entry = customerPasswordHashTypeEntries.find(([v]) => v === newValue);\n this.edit({\n customer_password_hash_type: newValue,\n customer_password_hash_config: entry?.[1].config ?? '',\n });\n }}\n >\n </foxy-internal-select-control>\n\n ${typeof this.form.customer_password_hash_config === 'number'\n ? html`\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-config\"\n >\n </foxy-internal-number-control>\n `\n : html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"customer-password-hash-config\"\n >\n </foxy-internal-text-control>\n `}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\" label=\"\" helper-text=\"\">\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"unified-order-entry-password\"\n show-generator\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"checkout\" label=\"\" helper-text=\"\">\n <foxy-internal-switch-control infer=\"use-single-sign-on\"></foxy-internal-switch-control>\n ${this.form.use_single_sign_on\n ? html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"single-sign-on-url\">\n </foxy-internal-text-control>\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key-sso\"\n show-generator\n .generatorOptions=${this.__webhookKeyGeneratorOptions}\n .getValue=${this.__webhookKeySsoGetValue}\n .setValue=${this.__webhookKeySsoSetValue}\n >\n </foxy-internal-password-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"receipt\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"receipt-continue-url\">\n </foxy-internal-text-control>\n <foxy-internal-switch-control infer=\"bcc-on-receipt-email\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"custom-display-id-config\">\n <foxy-internal-switch-control\n infer=\"custom-display-id-config-enabled\"\n .getValue=${() => customDisplayIdConfig.enabled}\n .setValue=${(newValue: boolean) => {\n this.__setCustomDisplayIdConfig('enabled', newValue);\n }}\n >\n </foxy-internal-switch-control>\n\n ${customDisplayIdConfig.enabled\n ? html`\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-start\"\n step=\"1\"\n min=\"0\"\n .getValue=${() => parseInt(customDisplayIdConfig.start || '0')}\n .setValue=${(newValue: number) => {\n this.__setCustomDisplayIdConfig('start', String(newValue));\n }}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-length\"\n step=\"1\"\n min=\"0\"\n .getValue=${() => parseInt(customDisplayIdConfig.length || '0')}\n .setValue=${(newValue: number) => {\n this.__setCustomDisplayIdConfig('length', String(newValue));\n }}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-prefix\"\n .getValue=${() => customDisplayIdConfig.prefix}\n .setValue=${(newValue: string) => {\n this.__setCustomDisplayIdConfig('prefix', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-suffix\"\n .getValue=${() => customDisplayIdConfig.suffix}\n .setValue=${(newValue: string) => {\n this.__setCustomDisplayIdConfig('suffix', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <div class=\"text-right text-secondary\">\n <p class=\"flex justify-end\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-first-example\"></foxy-i18n>\n <span style=\"font-family: monospace\">&nbsp;${displayIdExamples?.first}</span>\n </p>\n <p class=\"flex justify-end\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-random-example\"></foxy-i18n>\n <span style=\"font-family: monospace\">&nbsp;${displayIdExamples?.random}</span>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control helper-text=\"\" label=\"\" infer=\"custom-display-id-config\">\n <foxy-internal-switch-control\n infer=\"custom-display-id-config-transaction-journal-entries-enabled\"\n class=\"sm-col-span-2\"\n .getValue=${() => transactionJournalEntriesConfig.enabled}\n .setValue=${(newValue: boolean) => {\n this.__setTransactionJournalEntriesConfig('enabled', newValue);\n }}\n >\n </foxy-internal-switch-control>\n\n ${transactionJournalEntriesConfig.enabled\n ? html`\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-authcapture-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_authcapture.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_authcapture', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-capture-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_capture.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_capture', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-void-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_void.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_void', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-refund-prefix\"\n .getValue=${() => logDetailRequestTypes.transaction_refund.prefix}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesPrefix('transaction_refund', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n layout=\"summary-item\"\n infer=\"custom-display-id-config-transaction-journal-entries-transaction-separator\"\n class=\"col-span-2\"\n .getValue=${() => transactionJournalEntriesConfig.transaction_separator}\n .setValue=${(newValue: string) => {\n this.__setTransactionJournalEntriesConfig('transaction_separator', newValue);\n }}\n >\n </foxy-internal-text-control>\n\n <div class=\"sm-col-span-2 leading-s text-right text-secondary\">\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-authcapture-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\"> ${journalIdExamples?.authcapture} </span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-capture-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.capture}</span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-void-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.void}</span>\n </p>\n <p>\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-refund-example\"\n >\n </foxy-i18n>\n <span style=\"font-family: monospace\">${journalIdExamples?.refund}</span>\n </p>\n </div>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"xml-datafeed\">\n <foxy-internal-switch-control infer=\"use-webhook\"></foxy-internal-switch-control>\n ${this.form.use_webhook\n ? html`\n <foxy-internal-text-control layout=\"summary-item\" infer=\"webhook-url\">\n </foxy-internal-text-control>\n <foxy-internal-password-control\n layout=\"summary-item\"\n infer=\"webhook-key-xml-datafeed\"\n show-generator\n .generatorOptions=${this.__webhookKeyGeneratorOptions}\n .getValue=${this.__webhookKeyXmlDatafeedGetValue}\n .setValue=${this.__webhookKeyXmlDatafeedSetValue}\n >\n </foxy-internal-password-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n ${this.href || !this.hCaptchaSiteKey\n ? ''\n : html`\n <div class=\"text-xs text-tertiary\">\n <foxy-i18n infer=\"hcaptcha\" key=\"disclaimer\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"transition-colors hover-text-body rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://www.hcaptcha.com/privacy\"\n rel=\"noopener noreferrer\"\n >\n <foxy-i18n class=\"underline\" infer=\"hcaptcha\" key=\"privacy_policy\"></foxy-i18n>\n </a>\n <span>&bull;</span>\n <a\n target=\"_blank\"\n class=\"transition-colors hover-text-body rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://www.hcaptcha.com/terms\"\n rel=\"noopener noreferrer\"\n >\n <foxy-i18n class=\"underline\" infer=\"hcaptcha\" key=\"terms_of_service\"></foxy-i18n>\n </a>\n <h-captcha\n site-key=${this.hCaptchaSiteKey}\n class=\"hidden\"\n size=\"invisible\"\n hl=${this.lang}\n @verified=${({ token }: Record<'token' | 'eKey', string>) => {\n this.__hCaptchaToken = token;\n super.submit();\n }}\n >\n </h-captcha>\n </div>\n `}\n ${super.renderBody()}\n ${customerPasswordHashTypesLoader.render(this.customerPasswordHashTypes)}\n ${shippingAddressTypesLoader.render(this.shippingAddressTypes)}\n ${timezonesLoader.render(this.timezones)} ${countriesLoader.render(this.countries)}\n ${regionsLoader.render(regionsUrl)}\n `;\n }\n\n submit(): void {\n if (!this.href && this.hCaptchaSiteKey) {\n this.__hCaptcha?.reset();\n this.__hCaptcha?.execute();\n } else {\n super.submit();\n }\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const request = new StoreForm.API.WHATWGRequest(...args);\n if (this.__hCaptchaToken) request.headers.set('h-captcha-code', this.__hCaptchaToken);\n return super._fetch(request);\n }\n\n private get __displayIdExamples() {\n const config = this.__getCustomDisplayIdConfig();\n const startAsInt = parseInt(config.start || '0');\n const lengthAsInt = parseInt(config.length || '0');\n const numericLength = lengthAsInt - config.prefix.length - config.suffix.length;\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, numericLength)),\n Math.pow(10, numericLength) - 1\n );\n\n if (config.start && config.length && startAsInt / 10 <= numericLength) {\n return {\n first: `${config.prefix}${startAsInt.toString().padStart(numericLength, '0')}${\n config.suffix\n }`,\n random: `${config.prefix}${randomExampleNumericId.toString().padStart(numericLength, '0')}${\n config.suffix\n }`,\n };\n }\n }\n\n private get __journalIdExamples() {\n const customDisplayIdConfig = this.__getCustomDisplayIdConfig();\n const transactionJournalEntriesConfig = customDisplayIdConfig.transaction_journal_entries;\n const startAsInt = parseInt(customDisplayIdConfig.start || '0');\n const lengthAsInt = parseInt(customDisplayIdConfig.length || '0');\n const numericLength =\n lengthAsInt - customDisplayIdConfig.prefix.length - customDisplayIdConfig.suffix.length;\n\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, numericLength)),\n Math.pow(10, numericLength) - 1\n );\n\n const randomExampleId = `${customDisplayIdConfig.prefix}${randomExampleNumericId\n .toString()\n .padStart(numericLength, '0')}${customDisplayIdConfig.suffix}`;\n\n const randomNumericEntryId = Math.floor(Math.random() * 1000);\n const randomEntryId = String(randomNumericEntryId).padStart(3, '0');\n\n if (\n customDisplayIdConfig.start &&\n customDisplayIdConfig.length &&\n startAsInt / 10 <= numericLength\n ) {\n return {\n authcapture: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_authcapture.prefix}${randomEntryId}`,\n capture: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_capture.prefix}${randomEntryId}`,\n refund: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_refund.prefix}${randomEntryId}`,\n void: `${randomExampleId}${transactionJournalEntriesConfig.transaction_separator}${transactionJournalEntriesConfig.log_detail_request_types.transaction_void.prefix}${randomEntryId}`,\n };\n }\n }\n\n private get __hCaptcha() {\n return this.renderRoot.querySelector<VanillaHCaptchaWebComponent>('h-captcha');\n }\n\n private __getWebhookKey() {\n let parsedKey: ParsedWebhookKey;\n\n try {\n parsedKey = JSON.parse(this.form.webhook_key ?? '');\n } catch {\n const v = this.form.webhook_key ?? '';\n parsedKey = { cart_signing: v, xml_datafeed: v, api_legacy: v, sso: v };\n }\n\n return parsedKey;\n }\n\n private __setWebhookKey(key: keyof ParsedWebhookKey, value: string) {\n const parsedKey = this.__getWebhookKey();\n parsedKey[key] = value;\n this.edit({ webhook_key: JSON.stringify(parsedKey) });\n }\n\n private __getCustomDisplayIdConfig() {\n const defaultConfig: ParsedCustomDisplayIdConfig = {\n enabled: false,\n start: '0',\n length: '0',\n prefix: '',\n suffix: '',\n transaction_journal_entries: {\n enabled: false,\n transaction_separator: '',\n log_detail_request_types: {\n transaction_authcapture: { prefix: '' },\n transaction_capture: { prefix: '' },\n transaction_refund: { prefix: '' },\n transaction_void: { prefix: '' },\n },\n },\n };\n\n let config: ParsedCustomDisplayIdConfig;\n\n try {\n config = JSON.parse(this.form.custom_display_id_config ?? '');\n } catch {\n config = cloneDeep(defaultConfig);\n }\n\n return config;\n }\n\n private __setCustomDisplayIdConfig<TKey extends keyof ParsedCustomDisplayIdConfig>(\n key: TKey,\n value: ParsedCustomDisplayIdConfig[TKey]\n ) {\n const currentConfig = this.__getCustomDisplayIdConfig();\n currentConfig[key] = value;\n this.edit({ custom_display_id_config: JSON.stringify(currentConfig) });\n }\n\n private __getTransactionJournalEntriesConfig() {\n return this.__getCustomDisplayIdConfig().transaction_journal_entries;\n }\n\n private __setTransactionJournalEntriesConfig<\n TKey extends keyof ParsedCustomDisplayIdConfig['transaction_journal_entries']\n >(key: TKey, value: ParsedCustomDisplayIdConfig['transaction_journal_entries'][TKey]) {\n const config = this.__getCustomDisplayIdConfig().transaction_journal_entries;\n config[key] = value;\n this.__setCustomDisplayIdConfig('transaction_journal_entries', config);\n }\n\n private __setTransactionJournalEntriesPrefix(\n key: keyof ParsedCustomDisplayIdConfig['transaction_journal_entries']['log_detail_request_types'],\n value: string\n ) {\n const config = this.__getTransactionJournalEntriesConfig();\n config.log_detail_request_types[key].prefix = value;\n this.__setTransactionJournalEntriesConfig(\n 'log_detail_request_types',\n config.log_detail_request_types\n );\n }\n\n private __getSmtpConfig() {\n let config: ParsedSmtpConfig;\n\n try {\n config = JSON.parse(this.form.smtp_config ?? '');\n } catch {\n config = {\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n };\n }\n\n return config;\n }\n\n private __setSmtpConfig<TKey extends keyof ParsedSmtpConfig>(\n key: TKey,\n value: ParsedSmtpConfig[TKey]\n ) {\n const config = this.__getSmtpConfig();\n config[key] = value;\n this.edit({ smtp_config: JSON.stringify(config) });\n }\n\n private __renderLoader<T extends Graph & { links: { self: unknown } }>(index: number) {\n const id = `loader-${index}`;\n return {\n data: this.renderRoot.querySelector<NucleonElement<Resource<T>>>(`#${id}`)?.data,\n render: (href?: string | null) => html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(href ?? undefined)}\n id=${id}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `,\n };\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import 'vanilla-hcaptcha';
1
2
  import '../../internal/InternalEditableListControl/index';
2
3
  import '../../internal/InternalFrequencyControl/index';
3
4
  import '../../internal/InternalPasswordControl/index';