@foxy.io/elements 1.21.0-beta.1 → 1.21.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +4 -0
  2. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  3. package/dist/cdn/foxy-address-card.js +1 -1
  4. package/dist/cdn/foxy-address-form.js +1 -1
  5. package/dist/cdn/foxy-admin-subscription-card.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-cancellation-form.js +1 -1
  13. package/dist/cdn/foxy-cart-card.js +1 -1
  14. package/dist/cdn/foxy-cart-form.js +1 -1
  15. package/dist/cdn/foxy-collection-page.js +1 -1
  16. package/dist/cdn/foxy-collection-pages.js +1 -1
  17. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  18. package/dist/cdn/foxy-coupon-card.js +1 -1
  19. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  20. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  21. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  22. package/dist/cdn/foxy-coupon-form.js +1 -1
  23. package/dist/cdn/foxy-custom-field-card.js +1 -1
  24. package/dist/cdn/foxy-custom-field-form.js +1 -1
  25. package/dist/cdn/foxy-customer-api.js +1 -1
  26. package/dist/cdn/foxy-customer-card.js +1 -1
  27. package/dist/cdn/foxy-customer-form.js +1 -1
  28. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  29. package/dist/cdn/foxy-customer-portal.js +1 -1
  30. package/dist/cdn/foxy-customer.js +6 -6
  31. package/dist/cdn/foxy-customers-table.js +1 -1
  32. package/dist/cdn/foxy-discount-builder.js +1 -1
  33. package/dist/cdn/foxy-discount-card.js +1 -1
  34. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  35. package/dist/cdn/foxy-donation.js +1 -1
  36. package/dist/cdn/foxy-email-template-card.js +1 -1
  37. package/dist/cdn/foxy-email-template-form.js +1 -1
  38. package/dist/cdn/foxy-error-entry-card.js +1 -1
  39. package/dist/cdn/foxy-form-dialog.js +1 -1
  40. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  41. package/dist/cdn/foxy-gift-card-card.js +1 -1
  42. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  43. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  44. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  45. package/dist/cdn/foxy-gift-card-form.js +1 -1
  46. package/dist/cdn/foxy-i18n-editor.js +2 -2
  47. package/dist/cdn/foxy-i18n.js +1 -1
  48. package/dist/cdn/foxy-integration-card.js +1 -1
  49. package/dist/cdn/foxy-integration-form.js +1 -1
  50. package/dist/cdn/foxy-item-card.js +1 -1
  51. package/dist/cdn/foxy-item-category-card.js +1 -1
  52. package/dist/cdn/foxy-item-category-form.js +1 -1
  53. package/dist/cdn/foxy-item-form.js +1 -1
  54. package/dist/cdn/foxy-item-option-card.js +1 -1
  55. package/dist/cdn/foxy-item-option-form.js +1 -1
  56. package/dist/cdn/foxy-items-form.js +1 -1
  57. package/dist/cdn/foxy-nucleon-element.js +1 -1
  58. package/dist/cdn/foxy-pagination.js +1 -1
  59. package/dist/cdn/foxy-payment-card.js +1 -1
  60. package/dist/cdn/foxy-payment-method-card.js +1 -1
  61. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  62. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  63. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  64. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  65. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  66. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  67. package/dist/cdn/foxy-payments-api.js +1 -1
  68. package/dist/cdn/foxy-query-builder.js +1 -1
  69. package/dist/cdn/foxy-report-form.js +2 -2
  70. package/dist/cdn/foxy-reports-table.js +5 -5
  71. package/dist/cdn/foxy-shipment-card.js +1 -1
  72. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  73. package/dist/cdn/foxy-sign-in-form.js +1 -1
  74. package/dist/cdn/foxy-spinner.js +1 -1
  75. package/dist/cdn/foxy-store-form.js +1 -1
  76. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  77. package/dist/cdn/foxy-subscription-card.js +1 -1
  78. package/dist/cdn/foxy-subscription-form.js +2 -2
  79. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  80. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  81. package/dist/cdn/foxy-table.js +1 -1
  82. package/dist/cdn/foxy-tax-card.js +1 -1
  83. package/dist/cdn/foxy-tax-form.js +1 -1
  84. package/dist/cdn/foxy-template-config-form.js +1 -1
  85. package/dist/cdn/foxy-template-form.js +1 -1
  86. package/dist/cdn/foxy-template-set-card.js +1 -1
  87. package/dist/cdn/foxy-template-set-form.js +1 -1
  88. package/dist/cdn/foxy-transaction-card.js +1 -1
  89. package/dist/cdn/foxy-transaction.js +1 -1
  90. package/dist/cdn/foxy-transactions-table.js +7 -7
  91. package/dist/cdn/foxy-user-form.js +1 -1
  92. package/dist/cdn/foxy-users-table.js +1 -1
  93. package/dist/cdn/foxy-webhook-card.js +1 -1
  94. package/dist/cdn/foxy-webhook-form.js +1 -1
  95. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  96. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  97. package/dist/cdn/shared-11438c42.js +1 -0
  98. package/dist/cdn/{shared-868065de.js → shared-1433fc29.js} +1 -1
  99. package/dist/cdn/{shared-a37abe4c.js → shared-242b3ee9.js} +1 -1
  100. package/dist/cdn/{shared-988ec916.js → shared-274c49b0.js} +1 -1
  101. package/dist/cdn/{shared-ea67b3f3.js → shared-38b37888.js} +1 -1
  102. package/dist/cdn/{shared-8dd0af4d.js → shared-3d241b7f.js} +1 -1
  103. package/dist/cdn/{shared-d518bd55.js → shared-3dbe9aaa.js} +1 -1
  104. package/dist/cdn/{shared-de036570.js → shared-454f172e.js} +1 -1
  105. package/dist/cdn/shared-45926e43.js +1 -0
  106. package/dist/cdn/{shared-839dd3a8.js → shared-531bb690.js} +1 -1
  107. package/dist/cdn/{shared-d61b3e4f.js → shared-5c804971.js} +1 -1
  108. package/dist/cdn/{shared-4f9d2417.js → shared-61e74612.js} +2 -2
  109. package/dist/cdn/{shared-486d7bb5.js → shared-62d636b5.js} +1 -1
  110. package/dist/cdn/{shared-43bcce74.js → shared-67546e10.js} +1 -1
  111. package/dist/cdn/{shared-bb0e33c3.js → shared-6f5c3101.js} +1 -1
  112. package/dist/cdn/{shared-0821cfdc.js → shared-7097364f.js} +1 -1
  113. package/dist/cdn/{shared-2add595d.js → shared-747b6d74.js} +1 -1
  114. package/dist/cdn/{shared-8b6addec.js → shared-758859b5.js} +1 -1
  115. package/dist/cdn/{shared-af226a9a.js → shared-81f9dc9a.js} +1 -1
  116. package/dist/cdn/{shared-6581241a.js → shared-8c11a711.js} +1 -1
  117. package/dist/cdn/{shared-80fc2b6a.js → shared-8f8abcd6.js} +1 -1
  118. package/dist/cdn/shared-94fc438b.js +1 -0
  119. package/dist/cdn/{shared-a85afa33.js → shared-955db6b4.js} +1 -1
  120. package/dist/cdn/{shared-62a54a6c.js → shared-9f905d9f.js} +1 -1
  121. package/dist/cdn/{shared-39c10b22.js → shared-a01b5597.js} +1 -1
  122. package/dist/cdn/shared-a29b600a.js +1 -0
  123. package/dist/cdn/{shared-b40cf0dd.js → shared-a2d619b4.js} +1 -1
  124. package/dist/cdn/{shared-63139d9e.js → shared-a5364194.js} +1 -1
  125. package/dist/cdn/{shared-1c94a156.js → shared-be99323d.js} +1 -1
  126. package/dist/cdn/{shared-c774d080.js → shared-c6a01446.js} +1 -1
  127. package/dist/cdn/{shared-c95c17e6.js → shared-c8f5c306.js} +1 -1
  128. package/dist/cdn/{shared-a41234b4.js → shared-ca87cf22.js} +1 -1
  129. package/dist/cdn/{shared-4979dca4.js → shared-cbdf08d8.js} +1 -1
  130. package/dist/cdn/{shared-f80f402a.js → shared-d3bf404a.js} +1 -1
  131. package/dist/cdn/{shared-744cf66b.js → shared-d807ae5c.js} +1 -1
  132. package/dist/cdn/shared-dc91f7ae.js +1 -0
  133. package/dist/cdn/{shared-76b3d76a.js → shared-dcdb6ea1.js} +1 -1
  134. package/dist/cdn/{shared-9bdacf65.js → shared-e262920d.js} +1 -1
  135. package/dist/cdn/{shared-2f7dcefa.js → shared-e3ab56d1.js} +1 -1
  136. package/dist/cdn/{shared-cba08e1c.js → shared-ee5a7812.js} +1 -1
  137. package/dist/cdn/shared-efa137cd.js +1 -0
  138. package/dist/cdn/{shared-71f2ef1f.js → shared-efc1aeae.js} +1 -1
  139. package/dist/cdn/{shared-101d1234.js → shared-f621ccee.js} +1 -1
  140. package/dist/cdn/translations/cart-form/en.json +5 -5
  141. package/dist/cdn/translations/customer/en.json +2 -2
  142. package/dist/cdn/translations/customer-portal/de.json +1 -1
  143. package/dist/cdn/translations/customer-portal/en.json +1 -1
  144. package/dist/cdn/translations/customer-portal/es.json +1 -1
  145. package/dist/cdn/translations/customer-portal/fr.json +2 -2
  146. package/dist/cdn/translations/customer-portal/nl.json +1 -1
  147. package/dist/cdn/translations/customer-portal/pl.json +1 -1
  148. package/dist/cdn/translations/customer-portal/se.json +1 -1
  149. package/dist/cdn/translations/item-category-form/en.json +2 -2
  150. package/dist/cdn/translations/item-form/en.json +1 -1
  151. package/dist/cdn/translations/shipment-card/en.json +1 -1
  152. package/dist/cdn/translations/subscription-form/en.json +1 -1
  153. package/dist/cdn/translations/transaction/en.json +3 -3
  154. package/dist/cdn/translations/transaction-card/en.json +1 -1
  155. package/dist/cdn/translations/transactions-table/en.json +1 -1
  156. package/dist/elements/internal/InternalAsyncDetailsControl/InternalAsyncDetailsControl.js +13 -7
  157. package/dist/elements/internal/InternalAsyncDetailsControl/InternalAsyncDetailsControl.js.map +1 -1
  158. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +2 -2
  159. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +33 -33
  160. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  161. package/dist/elements/internal/InternalAsyncListControl/index.d.ts +0 -2
  162. package/dist/elements/internal/InternalAsyncListControl/index.js +0 -2
  163. package/dist/elements/internal/InternalAsyncListControl/index.js.map +1 -1
  164. package/dist/elements/internal/InternalCalendar/InternalCalendar.js +2 -2
  165. package/dist/elements/internal/InternalCalendar/InternalCalendar.js.map +1 -1
  166. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +2 -7
  167. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -1
  168. package/dist/elements/public/AppliedCouponCodeForm/types.d.ts +1 -3
  169. package/dist/elements/public/AppliedCouponCodeForm/types.js.map +1 -1
  170. package/dist/elements/public/CartCard/CartCard.js +2 -7
  171. package/dist/elements/public/CartCard/CartCard.js.map +1 -1
  172. package/dist/elements/public/CartForm/CartForm.js +1 -3
  173. package/dist/elements/public/CartForm/CartForm.js.map +1 -1
  174. package/dist/elements/public/CollectionPage/CollectionPage.d.ts +2 -2
  175. package/dist/elements/public/CollectionPage/CollectionPage.js +6 -5
  176. package/dist/elements/public/CollectionPage/CollectionPage.js.map +1 -1
  177. package/dist/elements/public/CouponForm/CouponForm.js +5 -1
  178. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  179. package/dist/elements/public/Customer/Customer.js +2 -2
  180. package/dist/elements/public/Customer/Customer.js.map +1 -1
  181. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +0 -1
  182. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  183. package/dist/elements/public/ItemCard/ItemCard.js +2 -7
  184. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  185. package/dist/elements/public/ItemForm/ItemForm.js +6 -23
  186. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -1
  187. package/dist/elements/public/ItemOptionCard/ItemOptionCard.d.ts +3 -0
  188. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js +31 -27
  189. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js.map +1 -1
  190. package/dist/elements/public/ItemOptionCard/index.d.ts +0 -2
  191. package/dist/elements/public/ItemOptionCard/index.js +0 -2
  192. package/dist/elements/public/ItemOptionCard/index.js.map +1 -1
  193. package/dist/elements/public/NucleonElement/NucleonElement.js +4 -4
  194. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  195. package/dist/elements/public/PaymentsApi/PaymentsApi.d.ts +21 -2
  196. package/dist/elements/public/PaymentsApi/PaymentsApi.js +22 -3
  197. package/dist/elements/public/PaymentsApi/PaymentsApi.js.map +1 -1
  198. package/dist/elements/public/QueryBuilder/components/RangeValue.js +6 -6
  199. package/dist/elements/public/QueryBuilder/components/RangeValue.js.map +1 -1
  200. package/dist/elements/public/ReportForm/utils.js +3 -2
  201. package/dist/elements/public/ReportForm/utils.js.map +1 -1
  202. package/dist/elements/public/StoreForm/StoreForm.js +1 -1
  203. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  204. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.d.ts +2 -1
  205. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
  206. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js +1 -0
  207. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js.map +1 -1
  208. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +2 -7
  209. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
  210. package/dist/elements/public/SubscriptionForm/types.d.ts +1 -1
  211. package/dist/elements/public/SubscriptionForm/types.js.map +1 -1
  212. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.js.map +1 -1
  213. package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.d.ts +2 -2
  214. package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js +3 -2
  215. package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js.map +1 -1
  216. package/dist/elements/public/SubscriptionsTable/types.d.ts +2 -2
  217. package/dist/elements/public/SubscriptionsTable/types.js.map +1 -1
  218. package/dist/elements/public/TaxCard/TaxCard.js +6 -2
  219. package/dist/elements/public/TaxCard/TaxCard.js.map +1 -1
  220. package/dist/elements/public/TransactionCard/TransactionCard.js +1 -0
  221. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  222. package/dist/elements/public/TransactionsTable/TransactionsTable.js +1 -0
  223. package/dist/elements/public/TransactionsTable/TransactionsTable.js.map +1 -1
  224. package/package.json +5 -4
  225. package/dist/cdn/shared-09eb558f.js +0 -1
  226. package/dist/cdn/shared-1000b848.js +0 -1
  227. package/dist/cdn/shared-181f51bd.js +0 -1
  228. package/dist/cdn/shared-21679ebd.js +0 -1
  229. package/dist/cdn/shared-a0c8faf2.js +0 -1
  230. package/dist/cdn/shared-bcc6e13b.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ItemForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemForm/ItemForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { ItemRenderer } from '../CollectionPage/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\n/**\n * Form element for creating or editing items (`fx:item`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot price:before\n * @slot price:after\n *\n * @slot quantity:before\n * @slot quantity:after\n *\n * @slot subscription:before\n * @slot subscription:after\n *\n * @slot line-item-discount:before\n * @slot line-item-discount:after\n *\n * @slot cart:before\n * @slot cart:after\n *\n * @slot shipping:before\n * @slot shipping:after\n *\n * @slot inventory:before\n * @slot inventory:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @element foxy-item-form\n * @since 1.17.0\n */\nexport class ItemForm extends TranslatableMixin(InternalForm, 'item-form')<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customerAddresses: { type: String, attribute: 'customer-addresses' },\n itemCategories: { type: String, attribute: 'item-categories' },\n localeCodes: { attribute: 'locale-codes' },\n coupons: { type: String },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => (!!v && v.length <= 255) || 'name:v8n_too_long',\n ({ price: v }) => (typeof v === 'number' && !isNaN(v)) || 'price:v8n_required',\n ({ price: v }) => (typeof v === 'number' && v >= 0) || 'price:v8n_negative',\n ({ quantity: v }) => (typeof v === 'number' && v >= 1) || 'quantity:v8n_less_than_one',\n ];\n }\n\n /** Link to the collection of customer addresses that can be used with this item. */\n customerAddresses: string | null = null;\n\n /** Link to the collection of item categories that can be used with this item. */\n itemCategories: string | null = null;\n\n /** Link to the `fx:locale_codes` property helper for currency formatting. */\n localeCodes: string | null = null;\n\n /** Link to the collection of coupons that can be used with this item. */\n coupons: string | null = null;\n\n private __itemsLink = '';\n\n renderBody(): TemplateResult {\n const renderItemOptionCard: ItemRenderer = ctx => html`\n <foxy-item-option-card\n locale-codes=${ifDefined(this.localeCodes ?? void 0)}\n parent=${ctx.parent}\n class=\"p-m\"\n infer=\"\"\n href=${ctx.href}\n .related=${ctx.related}\n >\n </foxy-item-option-card>\n `;\n\n return html`\n <foxy-internal-text-control infer=\"name\"></foxy-internal-text-control>\n\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-number-control infer=\"price\"></foxy-internal-number-control>\n <foxy-internal-integer-control infer=\"quantity\"></foxy-internal-integer-control>\n </div>\n\n <foxy-internal-item-form-subscription-control></foxy-internal-item-form-subscription-control>\n <foxy-internal-item-form-line-item-discount-control></foxy-internal-item-form-line-item-discount-control>\n <foxy-internal-item-form-cart-control></foxy-internal-item-form-cart-control>\n <foxy-internal-item-form-shipping-control></foxy-internal-item-form-shipping-control>\n <foxy-internal-item-form-inventory-control></foxy-internal-item-form-inventory-control>\n\n ${this.data\n ? html`\n <foxy-internal-async-details-control\n infer=\"discount-details\"\n first=${this.data._links['fx:discount_details'].href}\n limit=\"5\"\n item=\"foxy-discount-detail-card\"\n >\n </foxy-internal-async-details-control>\n\n <foxy-internal-async-details-control\n infer=\"coupon-details\"\n first=${this.data._links['fx:coupon_details'].href}\n limit=\"5\"\n item=\"foxy-coupon-detail-card\"\n >\n </foxy-internal-async-details-control>\n\n <foxy-internal-async-details-control\n infer=\"attributes\"\n first=${this.data._links['fx:attributes'].href}\n limit=\"5\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n >\n </foxy-internal-async-details-control>\n\n <foxy-internal-async-details-control\n infer=\"item-options\"\n first=${this.data._links['fx:item_options'].href}\n limit=\"5\"\n form=\"foxy-item-option-form\"\n .item=${renderItemOptionCard}\n .related=${this.__itemOptionRelatedUrls}\n >\n </foxy-internal-async-details-control>\n `\n : ''}\n ${super.renderBody()}\n `;\n }\n\n protected async _sendGet(): Promise<Data> {\n type TransactionTemplate = Resource<Rels.TransactionTemplate>;\n type Subscription = Resource<Rels.Subscription>;\n type Transaction = Resource<Rels.Transaction>;\n type Cart = Resource<Rels.Cart>;\n\n const item = await super._sendGet();\n\n if ('fx:subscription' in item._links) {\n // TODO: remove the directive below once SDK is updated\n // @ts-expect-error SDK types are incomplete\n const subscriptionHref = item._links['fx:subscription'].href;\n const subscription = await super._fetch<Subscription>(subscriptionHref);\n\n const transactionTemplateHref = subscription._links['fx:transaction_template'].href;\n const transactionTemplate = await super._fetch<TransactionTemplate>(transactionTemplateHref);\n\n this.__itemsLink = transactionTemplate._links['fx:items'].href;\n return item;\n }\n\n if ('fx:transaction' in item._links) {\n const transaction = await super._fetch<Transaction>(item._links['fx:transaction'].href);\n this.__itemsLink = transaction._links['fx:items'].href;\n return item;\n }\n\n if ('fx:cart' in item._links) {\n // TODO: remove the directive below once SDK is updated\n // @ts-expect-error SDK types are incomplete\n const cart = await super._fetch<Cart>(item._links['fx:cart'].href);\n this.__itemsLink = cart._links['fx:items'].href;\n return item;\n }\n\n return item;\n }\n\n private get __itemOptionRelatedUrls() {\n const links = (this.data?._links ?? {}) as Record<string, { href: string }>;\n const urls: string[] = [];\n\n if (links['fx:subscription']) urls.push(links['fx:subscription'].href);\n if (links['fx:transaction']) urls.push(links['fx:transaction'].href);\n if (links['fx:shipment']) urls.push(links['fx:shipment'].href);\n if (links['fx:cart']) urls.push(links['fx:cart'].href);\n if (this.__itemsLink) urls.push(this.__itemsLink);\n\n return urls;\n }\n}\n"]}
1
+ {"version":3,"file":"ItemForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemForm/ItemForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\n/**\n * Form element for creating or editing items (`fx:item`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot price:before\n * @slot price:after\n *\n * @slot quantity:before\n * @slot quantity:after\n *\n * @slot subscription:before\n * @slot subscription:after\n *\n * @slot line-item-discount:before\n * @slot line-item-discount:after\n *\n * @slot cart:before\n * @slot cart:after\n *\n * @slot shipping:before\n * @slot shipping:after\n *\n * @slot inventory:before\n * @slot inventory:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @element foxy-item-form\n * @since 1.17.0\n */\nexport class ItemForm extends TranslatableMixin(InternalForm, 'item-form')<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customerAddresses: { type: String, attribute: 'customer-addresses' },\n itemCategories: { type: String, attribute: 'item-categories' },\n localeCodes: { attribute: 'locale-codes' },\n coupons: { type: String },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => (!!v && v.length <= 255) || 'name:v8n_too_long',\n ({ price: v }) => (typeof v === 'number' && !isNaN(v)) || 'price:v8n_required',\n ({ price: v }) => (typeof v === 'number' && v >= 0) || 'price:v8n_negative',\n ({ quantity: v }) => (typeof v === 'number' && v >= 1) || 'quantity:v8n_less_than_one',\n ];\n }\n\n /** Link to the collection of customer addresses that can be used with this item. */\n customerAddresses: string | null = null;\n\n /** Link to the collection of item categories that can be used with this item. */\n itemCategories: string | null = null;\n\n /** Link to the `fx:locale_codes` property helper for currency formatting. */\n localeCodes: string | null = null;\n\n /** Link to the collection of coupons that can be used with this item. */\n coupons: string | null = null;\n\n private __itemsLink = '';\n\n renderBody(): TemplateResult {\n return html`\n <foxy-internal-text-control infer=\"name\"></foxy-internal-text-control>\n\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-number-control infer=\"price\"></foxy-internal-number-control>\n <foxy-internal-integer-control infer=\"quantity\"></foxy-internal-integer-control>\n </div>\n\n <foxy-internal-item-form-subscription-control></foxy-internal-item-form-subscription-control>\n <foxy-internal-item-form-line-item-discount-control></foxy-internal-item-form-line-item-discount-control>\n <foxy-internal-item-form-cart-control></foxy-internal-item-form-cart-control>\n <foxy-internal-item-form-shipping-control></foxy-internal-item-form-shipping-control>\n <foxy-internal-item-form-inventory-control></foxy-internal-item-form-inventory-control>\n\n ${this.data\n ? html`\n <foxy-internal-async-details-control\n infer=\"discount-details\"\n first=${this.data._links['fx:discount_details'].href}\n limit=\"5\"\n item=\"foxy-discount-detail-card\"\n >\n </foxy-internal-async-details-control>\n\n <foxy-internal-async-details-control\n infer=\"coupon-details\"\n first=${this.data._links['fx:coupon_details'].href}\n limit=\"5\"\n item=\"foxy-coupon-detail-card\"\n >\n </foxy-internal-async-details-control>\n\n <foxy-internal-async-details-control\n infer=\"attributes\"\n first=${this.data._links['fx:attributes'].href}\n limit=\"5\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n >\n </foxy-internal-async-details-control>\n\n <foxy-internal-async-details-control\n infer=\"item-options\"\n first=${this.data._links['fx:item_options'].href}\n limit=\"5\"\n form=\"foxy-item-option-form\"\n item=\"foxy-item-option-card\"\n .related=${this.__itemOptionRelatedUrls}\n .props=${{ 'locale-codes': this.localeCodes ?? '' }}\n >\n </foxy-internal-async-details-control>\n `\n : ''}\n ${super.renderBody()}\n `;\n }\n\n protected async _sendGet(): Promise<Data> {\n type TransactionTemplate = Resource<Rels.TransactionTemplate>;\n type Subscription = Resource<Rels.Subscription>;\n type Transaction = Resource<Rels.Transaction>;\n type Cart = Resource<Rels.Cart>;\n\n const item = await super._sendGet();\n\n if (item._links['fx:subscription']) {\n const subscriptionHref = item._links['fx:subscription'].href;\n const subscription = await super._fetch<Subscription>(subscriptionHref);\n\n const transactionTemplateHref = subscription._links['fx:transaction_template'].href;\n const transactionTemplate = await super._fetch<TransactionTemplate>(transactionTemplateHref);\n\n this.__itemsLink = transactionTemplate._links['fx:items'].href;\n return item;\n }\n\n if (item._links['fx:transaction']) {\n const transaction = await super._fetch<Transaction>(item._links['fx:transaction'].href);\n this.__itemsLink = transaction._links['fx:items'].href;\n return item;\n }\n\n if (item._links['fx:cart']) {\n const cart = await super._fetch<Cart>(item._links['fx:cart'].href);\n this.__itemsLink = cart._links['fx:items'].href;\n return item;\n }\n\n return item;\n }\n\n private get __itemOptionRelatedUrls() {\n const links = (this.data?._links ?? {}) as Record<string, { href: string }>;\n const urls: string[] = [];\n\n if (links['fx:subscription']) urls.push(links['fx:subscription'].href);\n if (links['fx:transaction']) urls.push(links['fx:transaction'].href);\n if (links['fx:shipment']) urls.push(links['fx:shipment'].href);\n if (links['fx:cart']) urls.push(links['fx:cart'].href);\n if (this.__itemsLink) urls.push(this.__itemsLink);\n\n return urls;\n }\n}\n"]}
@@ -27,6 +27,7 @@ export declare class ItemOptionCard extends Base<Data> {
27
27
  private readonly __storeLoaderId;
28
28
  private readonly __cartLoaderId;
29
29
  renderBody(): TemplateResult;
30
+ get isBodyReady(): boolean;
30
31
  private get __transactionTemplateHref();
31
32
  private get __defaultTemplateSetHref();
32
33
  private get __localeCodesHelperHref();
@@ -41,5 +42,7 @@ export declare class ItemOptionCard extends Base<Data> {
41
42
  private get __templateSet();
42
43
  private get __store();
43
44
  private get __cart();
45
+ private get __currencyCode();
46
+ private get __currencyDisplay();
44
47
  }
45
48
  export {};
@@ -31,32 +31,12 @@ export class ItemOptionCard extends Base {
31
31
  static get properties() {
32
32
  return {
33
33
  ...super.properties,
34
- localeCodes: { type: String, attribute: 'locale-codes' },
34
+ localeCodes: { attribute: 'locale-codes' },
35
35
  };
36
36
  }
37
37
  renderBody() {
38
- var _a, _b, _c, _d, _e, _f;
39
- const currencyDisplay = ((_a = this.__store) === null || _a === void 0 ? void 0 : _a.use_international_currency_symbol) ? 'code' : 'symbol';
40
- const transaction = this.__transaction;
41
- let currencyCode = null;
42
- if (transaction) {
43
- currencyCode = transaction.currency_code;
44
- }
45
- else {
46
- const cart = (_b = this.__cart) !== null && _b !== void 0 ? _b : this.__transactionTemplate;
47
- if (cart && 'currency_code' in cart) {
48
- // TODO: remove the directive below once the SDK is updated
49
- // @ts-expect-error SDK types are incomplete
50
- currencyCode = cart.currency_code;
51
- }
52
- else {
53
- const allLocaleCodes = this.__localeCodesHelper;
54
- const localeCode = (_d = ((_c = this.__templateSet) !== null && _c !== void 0 ? _c : this.__defaultTemplateSet)) === null || _d === void 0 ? void 0 : _d.locale_code;
55
- const localeInfo = localeCode ? allLocaleCodes === null || allLocaleCodes === void 0 ? void 0 : allLocaleCodes.values[localeCode] : void 0;
56
- if (localeInfo)
57
- currencyCode = (_f = (_e = /Currency: ([A-Z]{3})/g.exec(localeInfo)) === null || _e === void 0 ? void 0 : _e[1]) !== null && _f !== void 0 ? _f : null;
58
- }
59
- }
38
+ const currencyDisplay = this.__currencyDisplay;
39
+ const currencyCode = this.__currencyCode;
60
40
  return html `
61
41
  <foxy-nucleon
62
42
  class="hidden"
@@ -144,6 +124,9 @@ export class ItemOptionCard extends Base {
144
124
  })}
145
125
  `;
146
126
  }
127
+ get isBodyReady() {
128
+ return super.isBodyReady && !!this.__currencyCode && !!this.__currencyDisplay;
129
+ }
147
130
  get __transactionTemplateHref() {
148
131
  var _a, _b, _c;
149
132
  try {
@@ -183,10 +166,7 @@ export class ItemOptionCard extends Base {
183
166
  get __templateSetHref() {
184
167
  var _a;
185
168
  const cart = (_a = this.__cart) !== null && _a !== void 0 ? _a : this.__transactionTemplate;
186
- // TODO: remove the directive below once SDK is updated
187
- // @ts-expect-error SDK types are incomplete
188
- const currencyCode = cart === null || cart === void 0 ? void 0 : cart.currency_code;
189
- if (!currencyCode)
169
+ if (!(cart === null || cart === void 0 ? void 0 : cart.currency_code))
190
170
  return (cart === null || cart === void 0 ? void 0 : cart.template_set_uri) || void 0;
191
171
  }
192
172
  get __storeHref() {
@@ -235,5 +215,29 @@ export class ItemOptionCard extends Base {
235
215
  const selector = `#${this.__cartLoaderId}`;
236
216
  return (_b = (_a = this.renderRoot.querySelector(selector)) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : null;
237
217
  }
218
+ get __currencyCode() {
219
+ var _a, _b, _c, _d, _e;
220
+ const transaction = this.__transaction;
221
+ if (transaction) {
222
+ return transaction.currency_code;
223
+ }
224
+ else {
225
+ const cart = (_a = this.__cart) !== null && _a !== void 0 ? _a : this.__transactionTemplate;
226
+ if (cart === null || cart === void 0 ? void 0 : cart.currency_code) {
227
+ return cart.currency_code;
228
+ }
229
+ else {
230
+ const allLocaleCodes = this.__localeCodesHelper;
231
+ const localeCode = (_c = ((_b = this.__templateSet) !== null && _b !== void 0 ? _b : this.__defaultTemplateSet)) === null || _c === void 0 ? void 0 : _c.locale_code;
232
+ const localeInfo = localeCode ? allLocaleCodes === null || allLocaleCodes === void 0 ? void 0 : allLocaleCodes.values[localeCode] : void 0;
233
+ if (localeInfo)
234
+ return (_e = (_d = /Currency: ([A-Z]{3})/g.exec(localeInfo)) === null || _d === void 0 ? void 0 : _d[1]) !== null && _e !== void 0 ? _e : null;
235
+ }
236
+ }
237
+ }
238
+ get __currencyDisplay() {
239
+ var _a;
240
+ return ((_a = this.__store) === null || _a === void 0 ? void 0 : _a.use_international_currency_symbol) ? 'code' : 'symbol';
241
+ }
238
242
  }
239
243
  //# sourceMappingURL=ItemOptionCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ItemOptionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionCard/ItemOptionCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TwoLineCard } from '../CustomFieldCard/TwoLineCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'item-option-card';\nconst Base = TranslatableMixin(TwoLineCard, NS);\n\n/**\n * Basic card displaying an item option.\n *\n * @slot title:before\n * @slot title:after\n *\n * @slot subtitle:before\n * @slot subtitle:after\n *\n * @element foxy-item-option-card\n * @since 1.17.0\n */\nexport class ItemOptionCard extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n localeCodes: { type: String, attribute: 'locale-codes' },\n };\n }\n\n localeCodes: string | null = null;\n\n private readonly __transactionTemplateLoaderId = 'transactionTemplateLoader';\n\n private readonly __defaultTemplateSetLoaderId = 'defaultTemplateSetLoader';\n\n private readonly __localeCodesHelperLoaderId = 'localeCodesLoader';\n\n private readonly __transactionLoaderId = 'transactionLoader';\n\n private readonly __templateSetLoaderId = 'templateSetLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __cartLoaderId = 'cartLoader';\n\n renderBody(): TemplateResult {\n const currencyDisplay = this.__store?.use_international_currency_symbol ? 'code' : 'symbol';\n const transaction = this.__transaction;\n\n let currencyCode: string | null = null;\n\n if (transaction) {\n currencyCode = transaction.currency_code;\n } else {\n const cart = this.__cart ?? this.__transactionTemplate;\n\n if (cart && 'currency_code' in cart) {\n // TODO: remove the directive below once the SDK is updated\n // @ts-expect-error SDK types are incomplete\n currencyCode = cart.currency_code;\n } else {\n const allLocaleCodes = this.__localeCodesHelper;\n const localeCode = (this.__templateSet ?? this.__defaultTemplateSet)?.locale_code;\n const localeInfo = localeCode ? allLocaleCodes?.values[localeCode] : void 0;\n\n if (localeInfo) currencyCode = /Currency: ([A-Z]{3})/g.exec(localeInfo)?.[1] ?? null;\n }\n }\n\n return html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__transactionTemplateHref)}\n id=${this.__transactionTemplateLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__defaultTemplateSetHref)}\n id=${this.__defaultTemplateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__localeCodesHelperHref)}\n id=${this.__localeCodesHelperLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__transactionHref)}\n id=${this.__transactionLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__templateSetHref)}\n id=${this.__templateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__storeHref)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__cartHref)}\n id=${this.__cartLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n ${super.renderBody({\n title: data => {\n if (!currencyCode || !currencyDisplay) return html`&ZeroWidthSpace;`;\n\n let priceMod: string;\n\n try {\n priceMod = Math.abs(data.price_mod).toLocaleString(this.lang || 'en', {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n currencyDisplay: currencyDisplay,\n currency: currencyCode,\n style: 'currency',\n });\n } catch {\n priceMod = '--';\n }\n\n return html`${data.name} &bull; ${priceMod} &bull; ${data.weight_mod}`;\n },\n subtitle: data => html`${data.value}`,\n })}\n `;\n }\n\n private get __transactionTemplateHref() {\n try {\n const links = this.data?._links as Partial<Record<string, { href: string }>> | undefined;\n const url = new URL(links?.['fx:subscription']?.href ?? '');\n url.searchParams.set('zoom', 'transaction_template');\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __defaultTemplateSetHref() {\n const templateSetUri = (this.__cart ?? this.__transactionTemplate)?.template_set_uri;\n\n if (templateSetUri === '') {\n try {\n const url = new URL(this.__store?._links['fx:template_sets'].href ?? '');\n url.searchParams.set('code', 'DEFAULT');\n return url.toString();\n } catch {\n //\n }\n }\n }\n\n private get __localeCodesHelperHref() {\n if (this.__defaultTemplateSetHref || this.__templateSetHref) {\n return this.localeCodes ?? void 0;\n }\n }\n\n private get __transactionHref() {\n return this.data?._links['fx:transaction']?.href;\n }\n\n private get __templateSetHref() {\n const cart = this.__cart ?? this.__transactionTemplate;\n // TODO: remove the directive below once SDK is updated\n // @ts-expect-error SDK types are incomplete\n const currencyCode = cart?.currency_code as string | undefined;\n\n if (!currencyCode) return cart?.template_set_uri || void 0;\n }\n\n private get __storeHref() {\n return this.data?._links['fx:store']?.href;\n }\n\n private get __cartHref() {\n const links = this.data?._links as Partial<Record<string, { href: string }>> | undefined;\n return links?.['fx:cart']?.href;\n }\n\n private get __transactionTemplate() {\n type Loader = NucleonElement<Resource<Rels.Subscription, { zoom: 'transaction_template' }>>;\n const selector = `#${this.__transactionTemplateLoaderId}`;\n const loader = this.renderRoot.querySelector<Loader>(selector);\n return loader?.data?._embedded['fx:transaction_template'] ?? null;\n }\n\n private get __defaultTemplateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSets>>;\n const selector = `#${this.__defaultTemplateSetLoaderId}`;\n const loader = this.renderRoot.querySelector<Loader>(selector);\n return loader?.data?._embedded['fx:template_sets'][0] ?? null;\n }\n\n private get __localeCodesHelper() {\n type Loader = NucleonElement<Resource<Rels.LocaleCodes>>;\n const selector = `#${this.__localeCodesHelperLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __transaction() {\n type Loader = NucleonElement<Resource<Rels.Transaction>>;\n const selector = `#${this.__transactionLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __templateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSet>>;\n const selector = `#${this.__templateSetLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __store() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n const selector = `#${this.__storeLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __cart() {\n type Loader = NucleonElement<Resource<Rels.Cart>>;\n const selector = `#${this.__cartLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n}\n"]}
1
+ {"version":3,"file":"ItemOptionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionCard/ItemOptionCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TwoLineCard } from '../CustomFieldCard/TwoLineCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'item-option-card';\nconst Base = TranslatableMixin(TwoLineCard, NS);\n\n/**\n * Basic card displaying an item option.\n *\n * @slot title:before\n * @slot title:after\n *\n * @slot subtitle:before\n * @slot subtitle:after\n *\n * @element foxy-item-option-card\n * @since 1.17.0\n */\nexport class ItemOptionCard extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n localeCodes: { attribute: 'locale-codes' },\n };\n }\n\n localeCodes: string | null = null;\n\n private readonly __transactionTemplateLoaderId = 'transactionTemplateLoader';\n\n private readonly __defaultTemplateSetLoaderId = 'defaultTemplateSetLoader';\n\n private readonly __localeCodesHelperLoaderId = 'localeCodesLoader';\n\n private readonly __transactionLoaderId = 'transactionLoader';\n\n private readonly __templateSetLoaderId = 'templateSetLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __cartLoaderId = 'cartLoader';\n\n renderBody(): TemplateResult {\n const currencyDisplay = this.__currencyDisplay;\n const currencyCode = this.__currencyCode;\n\n return html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__transactionTemplateHref)}\n id=${this.__transactionTemplateLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__defaultTemplateSetHref)}\n id=${this.__defaultTemplateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__localeCodesHelperHref)}\n id=${this.__localeCodesHelperLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__transactionHref)}\n id=${this.__transactionLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__templateSetHref)}\n id=${this.__templateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__storeHref)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__cartHref)}\n id=${this.__cartLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n ${super.renderBody({\n title: data => {\n if (!currencyCode || !currencyDisplay) return html`&ZeroWidthSpace;`;\n\n let priceMod: string;\n\n try {\n priceMod = Math.abs(data.price_mod).toLocaleString(this.lang || 'en', {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n currencyDisplay: currencyDisplay,\n currency: currencyCode,\n style: 'currency',\n });\n } catch {\n priceMod = '--';\n }\n\n return html`${data.name} &bull; ${priceMod} &bull; ${data.weight_mod}`;\n },\n subtitle: data => html`${data.value}`,\n })}\n `;\n }\n\n get isBodyReady(): boolean {\n return super.isBodyReady && !!this.__currencyCode && !!this.__currencyDisplay;\n }\n\n private get __transactionTemplateHref() {\n try {\n const links = this.data?._links as Partial<Record<string, { href: string }>> | undefined;\n const url = new URL(links?.['fx:subscription']?.href ?? '');\n url.searchParams.set('zoom', 'transaction_template');\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __defaultTemplateSetHref() {\n const templateSetUri = (this.__cart ?? this.__transactionTemplate)?.template_set_uri;\n\n if (templateSetUri === '') {\n try {\n const url = new URL(this.__store?._links['fx:template_sets'].href ?? '');\n url.searchParams.set('code', 'DEFAULT');\n return url.toString();\n } catch {\n //\n }\n }\n }\n\n private get __localeCodesHelperHref() {\n if (this.__defaultTemplateSetHref || this.__templateSetHref) {\n return this.localeCodes ?? void 0;\n }\n }\n\n private get __transactionHref() {\n return this.data?._links['fx:transaction']?.href;\n }\n\n private get __templateSetHref() {\n const cart = this.__cart ?? this.__transactionTemplate;\n if (!cart?.currency_code) return cart?.template_set_uri || void 0;\n }\n\n private get __storeHref() {\n return this.data?._links['fx:store']?.href;\n }\n\n private get __cartHref() {\n const links = this.data?._links as Partial<Record<string, { href: string }>> | undefined;\n return links?.['fx:cart']?.href;\n }\n\n private get __transactionTemplate() {\n type Loader = NucleonElement<Resource<Rels.Subscription, { zoom: 'transaction_template' }>>;\n const selector = `#${this.__transactionTemplateLoaderId}`;\n const loader = this.renderRoot.querySelector<Loader>(selector);\n return loader?.data?._embedded['fx:transaction_template'] ?? null;\n }\n\n private get __defaultTemplateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSets>>;\n const selector = `#${this.__defaultTemplateSetLoaderId}`;\n const loader = this.renderRoot.querySelector<Loader>(selector);\n return loader?.data?._embedded['fx:template_sets'][0] ?? null;\n }\n\n private get __localeCodesHelper() {\n type Loader = NucleonElement<Resource<Rels.LocaleCodes>>;\n const selector = `#${this.__localeCodesHelperLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __transaction() {\n type Loader = NucleonElement<Resource<Rels.Transaction>>;\n const selector = `#${this.__transactionLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __templateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSet>>;\n const selector = `#${this.__templateSetLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __store() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n const selector = `#${this.__storeLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __cart() {\n type Loader = NucleonElement<Resource<Rels.Cart>>;\n const selector = `#${this.__cartLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __currencyCode() {\n const transaction = this.__transaction;\n\n if (transaction) {\n return transaction.currency_code;\n } else {\n const cart = this.__cart ?? this.__transactionTemplate;\n\n if (cart?.currency_code) {\n return cart.currency_code;\n } else {\n const allLocaleCodes = this.__localeCodesHelper;\n const localeCode = (this.__templateSet ?? this.__defaultTemplateSet)?.locale_code;\n const localeInfo = localeCode ? allLocaleCodes?.values[localeCode] : void 0;\n\n if (localeInfo) return /Currency: ([A-Z]{3})/g.exec(localeInfo)?.[1] ?? null;\n }\n }\n }\n\n private get __currencyDisplay() {\n return this.__store?.use_international_currency_symbol ? 'code' : 'symbol';\n }\n}\n"]}
@@ -1,5 +1,3 @@
1
- import '@polymer/iron-icons';
2
- import '@polymer/iron-icon';
3
1
  import '../../internal/InternalSandbox/index';
4
2
  import '../NucleonElement/index';
5
3
  import '../Spinner/index';
@@ -1,5 +1,3 @@
1
- import '@polymer/iron-icons';
2
- import '@polymer/iron-icon';
3
1
  import "../../internal/InternalSandbox/index.js";
4
2
  import "../NucleonElement/index.js";
5
3
  import "../Spinner/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAE5B,iDAA8C;AAE9C,oCAAiC;AACjC,6BAA0B;AAE1B,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import '@polymer/iron-icons';\nimport '@polymer/iron-icon';\n\nimport '../../internal/InternalSandbox/index';\n\nimport '../NucleonElement/index';\nimport '../Spinner/index';\n\nimport { ItemOptionCard } from './ItemOptionCard';\n\ncustomElements.define('foxy-item-option-card', ItemOptionCard);\n\nexport { ItemOptionCard };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionCard/index.ts"],"names":[],"mappings":"AAAA,iDAA8C;AAC9C,oCAAiC;AACjC,6BAA0B;AAE1B,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import '../../internal/InternalSandbox/index';\nimport '../NucleonElement/index';\nimport '../Spinner/index';\n\nimport { ItemOptionCard } from './ItemOptionCard';\n\ncustomElements.define('foxy-item-option-card', ItemOptionCard);\n\nexport { ItemOptionCard };\n"]}
@@ -126,8 +126,8 @@ export class NucleonElement extends InferrableMixin(LitElement) {
126
126
  }
127
127
  set data(data) {
128
128
  this.__destroyRumour();
129
- this.__service.send({ type: 'SET_DATA', data });
130
129
  this.__hrefToLoad = null;
130
+ this.__service.send({ type: 'SET_DATA', data });
131
131
  if (data)
132
132
  this.__createRumour();
133
133
  }
@@ -152,8 +152,8 @@ export class NucleonElement extends InferrableMixin(LitElement) {
152
152
  return (_c = (_b = (_a = this.form._links) === null || _a === void 0 ? void 0 : _a.self.href) !== null && _b !== void 0 ? _b : this.__hrefToLoad) !== null && _c !== void 0 ? _c : '';
153
153
  }
154
154
  set href(value) {
155
+ this.__hrefToLoad = value;
155
156
  if (value) {
156
- this.__hrefToLoad = value;
157
157
  this.__service.send({ type: 'FETCH' });
158
158
  }
159
159
  else {
@@ -243,8 +243,8 @@ export class NucleonElement extends InferrableMixin(LitElement) {
243
243
  /** @readonly */
244
244
  connectedCallback() {
245
245
  super.connectedCallback();
246
- if (this.href)
247
- this.refresh();
246
+ if (this.href && !this.data)
247
+ this.__service.send({ type: 'FETCH' });
248
248
  this.__createRumour();
249
249
  this.__createServer();
250
250
  this.__processFetchEventQueue();
@@ -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';\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 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> {\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 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))\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;\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;\n }\n\n set data(data: TData | null) {\n this.__destroyRumour();\n this.__service.send({ type: 'SET_DATA', data });\n this.__hrefToLoad = null;\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 if (value) {\n this.__hrefToLoad = 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.refresh();\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 }\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 this.__service.send({ type: '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 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.request.method !== 'GET') return;\n if (event.request.url.startsWith('foxy://')) return;\n if (event.composedPath()[0] === this) return;\n\n event.preventDefault();\n this.__fetchEventQueue.push(event);\n\n if (!this.__service.state.matches('busy')) this.__processFetchEventQueue();\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';\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 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> {\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 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))\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;\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;\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 }\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 this.__service.send({ type: '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 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.request.method !== 'GET') return;\n if (event.request.url.startsWith('foxy://')) return;\n if (event.composedPath()[0] === this) return;\n\n event.preventDefault();\n this.__fetchEventQueue.push(event);\n\n if (!this.__service.state.matches('busy')) this.__processFetchEventQueue();\n }\n}\n"]}
@@ -1,18 +1,37 @@
1
- import type { PropertyDeclarations, TemplateResult } from 'lit-element';
1
+ import type { PropertyDeclarations } from 'lit-element';
2
2
  import { LitElement } from 'lit-element';
3
+ /**
4
+ * Adapter element for Payments API. This element requires an additional hAPI adapter
5
+ * that will handle authentication and session management.
6
+ *
7
+ * _Payments API is a client-side virtual API layer built on top of hAPI
8
+ * in an attempt to streamline access to stores' payment method settings
9
+ * that is currently a bit quirky due to the legacy functionality. To use
10
+ * Payments API elements with hAPI, wrap them into this node._
11
+ *
12
+ * @element foxy-payments-api
13
+ * @since 1.21.0
14
+ */
3
15
  export declare class PaymentsApi extends LitElement {
4
16
  static get properties(): PropertyDeclarations;
17
+ /** URL of the `fx:payment_method_set_hosted_payment_gateways` collection. */
5
18
  paymentMethodSetHostedPaymentGatewaysUrl: string | null;
19
+ /** URL of the `fx:hosted_payment_gateways` property helper. */
6
20
  hostedPaymentGatewaysHelperUrl: string | null;
21
+ /** URL of the `fx:hosted_payment_gateways` collection. */
7
22
  hostedPaymentGatewaysUrl: string | null;
23
+ /** URL of the `fx:payment_gateways` property helper. */
8
24
  paymentGatewaysHelperUrl: string | null;
25
+ /** URL of the `fx:payment_method_sets` collection. */
9
26
  paymentMethodSetsUrl: string | null;
27
+ /** URL of the `fx:fraud_protections` collection. */
10
28
  fraudProtectionsUrl: string | null;
29
+ /** URL of the `fx:payment_gateways` collection. */
11
30
  paymentGatewaysUrl: string | null;
12
31
  private readonly __api;
13
32
  private readonly __fetch;
14
33
  private readonly __handleFetch;
15
34
  connectedCallback(): void;
16
- render(): TemplateResult;
35
+ createRenderRoot(): Element | ShadowRoot;
17
36
  disconnectedCallback(): void;
18
37
  }
@@ -1,16 +1,35 @@
1
- import { html, LitElement } from 'lit-element';
1
+ import { LitElement } from 'lit-element';
2
2
  import { FetchEvent } from "../NucleonElement/FetchEvent.js";
3
3
  import { getHandler } from "./api/index.js";
4
4
  import { API } from "../NucleonElement/API.js";
5
+ /**
6
+ * Adapter element for Payments API. This element requires an additional hAPI adapter
7
+ * that will handle authentication and session management.
8
+ *
9
+ * _Payments API is a client-side virtual API layer built on top of hAPI
10
+ * in an attempt to streamline access to stores' payment method settings
11
+ * that is currently a bit quirky due to the legacy functionality. To use
12
+ * Payments API elements with hAPI, wrap them into this node._
13
+ *
14
+ * @element foxy-payments-api
15
+ * @since 1.21.0
16
+ */
5
17
  export class PaymentsApi extends LitElement {
6
18
  constructor() {
7
19
  super(...arguments);
20
+ /** URL of the `fx:payment_method_set_hosted_payment_gateways` collection. */
8
21
  this.paymentMethodSetHostedPaymentGatewaysUrl = null;
22
+ /** URL of the `fx:hosted_payment_gateways` property helper. */
9
23
  this.hostedPaymentGatewaysHelperUrl = null;
24
+ /** URL of the `fx:hosted_payment_gateways` collection. */
10
25
  this.hostedPaymentGatewaysUrl = null;
26
+ /** URL of the `fx:payment_gateways` property helper. */
11
27
  this.paymentGatewaysHelperUrl = null;
28
+ /** URL of the `fx:payment_method_sets` collection. */
12
29
  this.paymentMethodSetsUrl = null;
30
+ /** URL of the `fx:fraud_protections` collection. */
13
31
  this.fraudProtectionsUrl = null;
32
+ /** URL of the `fx:payment_gateways` collection. */
14
33
  this.paymentGatewaysUrl = null;
15
34
  this.__api = new API(this);
16
35
  this.__fetch = this.__api.fetch.bind(this.__api);
@@ -81,8 +100,8 @@ export class PaymentsApi extends LitElement {
81
100
  super.connectedCallback();
82
101
  this.addEventListener('fetch', this.__handleFetch);
83
102
  }
84
- render() {
85
- return html `<slot></slot>`;
103
+ createRenderRoot() {
104
+ return this;
86
105
  }
87
106
  disconnectedCallback() {
88
107
  super.disconnectedCallback();
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsApi.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApi/PaymentsApi.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\n\nimport { html, LitElement } from 'lit-element';\nimport { FetchEvent } from '../NucleonElement/FetchEvent';\nimport { getHandler } from './api/index';\nimport { API } from '../NucleonElement/API';\n\nexport class PaymentsApi extends LitElement {\n static get properties(): PropertyDeclarations {\n return {\n paymentMethodSetHostedPaymentGatewaysUrl: {\n attribute: 'payment-method-set-hosted-payment-gateways-url',\n },\n\n hostedPaymentGatewaysHelperUrl: { attribute: 'hosted-payment-gateways-helper-url' },\n hostedPaymentGatewaysUrl: { attribute: 'hosted-payment-gateways-url' },\n paymentGatewaysHelperUrl: { attribute: 'payment-gateways-helper-url' },\n paymentMethodSetsUrl: { attribute: 'payment-method-sets-url' },\n fraudProtectionsUrl: { attribute: 'fraud-protections-url' },\n paymentGatewaysUrl: { attribute: 'payment-gateways-url' },\n };\n }\n\n paymentMethodSetHostedPaymentGatewaysUrl: string | null = null;\n\n hostedPaymentGatewaysHelperUrl: string | null = null;\n\n hostedPaymentGatewaysUrl: string | null = null;\n\n paymentGatewaysHelperUrl: string | null = null;\n\n paymentMethodSetsUrl: string | null = null;\n\n fraudProtectionsUrl: string | null = null;\n\n paymentGatewaysUrl: string | null = null;\n\n private readonly __api = new API(this);\n\n private readonly __fetch = this.__api.fetch.bind(this.__api);\n\n private readonly __handleFetch = (evt: Event) => {\n if (!(evt instanceof FetchEvent)) return;\n if (!evt.request.url.startsWith('https://foxy-payments-api.element/')) return;\n if (evt.defaultPrevented) return;\n\n const {\n paymentMethodSetHostedPaymentGatewaysUrl,\n hostedPaymentGatewaysHelperUrl,\n paymentGatewaysHelperUrl,\n hostedPaymentGatewaysUrl,\n paymentMethodSetsUrl,\n fraudProtectionsUrl,\n paymentGatewaysUrl,\n } = this;\n\n if (paymentMethodSetHostedPaymentGatewaysUrl === null) return;\n if (hostedPaymentGatewaysHelperUrl === null) return;\n if (paymentGatewaysHelperUrl === null) return;\n if (hostedPaymentGatewaysUrl === null) return;\n if (paymentMethodSetsUrl === null) return;\n if (fraudProtectionsUrl === null) return;\n if (paymentGatewaysUrl === null) return;\n\n const createGetter = (link: string) => (id: string) => {\n const url = new URL(link);\n if (!url.pathname.endsWith('/')) url.pathname += '/';\n url.pathname += id;\n return url.toString();\n };\n\n const handler = getHandler({\n hostedPaymentGatewaysHelperUrl,\n paymentGatewaysHelperUrl,\n hostedPaymentGatewaysUrl,\n paymentMethodSetsUrl,\n fraudProtectionsUrl,\n paymentGatewaysUrl,\n\n getPaymentMethodSetHostedPaymentGatewayUrl: createGetter(\n paymentMethodSetHostedPaymentGatewaysUrl\n ),\n\n getHostedPaymentGatewayUrl: createGetter(hostedPaymentGatewaysUrl),\n getPaymentMethodSetUrl: createGetter(paymentMethodSetsUrl),\n getFraudProtectionUrl: createGetter(fraudProtectionsUrl),\n getPaymentGatewayUrl: createGetter(paymentGatewaysUrl),\n\n request: evt.request,\n fetch: this.__fetch,\n });\n\n if (handler) {\n evt.preventDefault();\n evt.respondWith(handler);\n }\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('fetch', this.__handleFetch);\n }\n\n render(): TemplateResult {\n return html`<slot></slot>`;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('fetch', this.__handleFetch);\n }\n}\n"]}
1
+ {"version":3,"file":"PaymentsApi.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApi/PaymentsApi.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\n\nimport { LitElement } from 'lit-element';\nimport { FetchEvent } from '../NucleonElement/FetchEvent';\nimport { getHandler } from './api/index';\nimport { API } from '../NucleonElement/API';\n\n/**\n * Adapter element for Payments API. This element requires an additional hAPI adapter\n * that will handle authentication and session management.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * Payments API elements with hAPI, wrap them into this node._\n *\n * @element foxy-payments-api\n * @since 1.21.0\n */\nexport class PaymentsApi extends LitElement {\n static get properties(): PropertyDeclarations {\n return {\n paymentMethodSetHostedPaymentGatewaysUrl: {\n attribute: 'payment-method-set-hosted-payment-gateways-url',\n },\n\n hostedPaymentGatewaysHelperUrl: { attribute: 'hosted-payment-gateways-helper-url' },\n hostedPaymentGatewaysUrl: { attribute: 'hosted-payment-gateways-url' },\n paymentGatewaysHelperUrl: { attribute: 'payment-gateways-helper-url' },\n paymentMethodSetsUrl: { attribute: 'payment-method-sets-url' },\n fraudProtectionsUrl: { attribute: 'fraud-protections-url' },\n paymentGatewaysUrl: { attribute: 'payment-gateways-url' },\n };\n }\n\n /** URL of the `fx:payment_method_set_hosted_payment_gateways` collection. */\n paymentMethodSetHostedPaymentGatewaysUrl: string | null = null;\n\n /** URL of the `fx:hosted_payment_gateways` property helper. */\n hostedPaymentGatewaysHelperUrl: string | null = null;\n\n /** URL of the `fx:hosted_payment_gateways` collection. */\n hostedPaymentGatewaysUrl: string | null = null;\n\n /** URL of the `fx:payment_gateways` property helper. */\n paymentGatewaysHelperUrl: string | null = null;\n\n /** URL of the `fx:payment_method_sets` collection. */\n paymentMethodSetsUrl: string | null = null;\n\n /** URL of the `fx:fraud_protections` collection. */\n fraudProtectionsUrl: string | null = null;\n\n /** URL of the `fx:payment_gateways` collection. */\n paymentGatewaysUrl: string | null = null;\n\n private readonly __api = new API(this);\n\n private readonly __fetch = this.__api.fetch.bind(this.__api);\n\n private readonly __handleFetch = (evt: Event) => {\n if (!(evt instanceof FetchEvent)) return;\n if (!evt.request.url.startsWith('https://foxy-payments-api.element/')) return;\n if (evt.defaultPrevented) return;\n\n const {\n paymentMethodSetHostedPaymentGatewaysUrl,\n hostedPaymentGatewaysHelperUrl,\n paymentGatewaysHelperUrl,\n hostedPaymentGatewaysUrl,\n paymentMethodSetsUrl,\n fraudProtectionsUrl,\n paymentGatewaysUrl,\n } = this;\n\n if (paymentMethodSetHostedPaymentGatewaysUrl === null) return;\n if (hostedPaymentGatewaysHelperUrl === null) return;\n if (paymentGatewaysHelperUrl === null) return;\n if (hostedPaymentGatewaysUrl === null) return;\n if (paymentMethodSetsUrl === null) return;\n if (fraudProtectionsUrl === null) return;\n if (paymentGatewaysUrl === null) return;\n\n const createGetter = (link: string) => (id: string) => {\n const url = new URL(link);\n if (!url.pathname.endsWith('/')) url.pathname += '/';\n url.pathname += id;\n return url.toString();\n };\n\n const handler = getHandler({\n hostedPaymentGatewaysHelperUrl,\n paymentGatewaysHelperUrl,\n hostedPaymentGatewaysUrl,\n paymentMethodSetsUrl,\n fraudProtectionsUrl,\n paymentGatewaysUrl,\n\n getPaymentMethodSetHostedPaymentGatewayUrl: createGetter(\n paymentMethodSetHostedPaymentGatewaysUrl\n ),\n\n getHostedPaymentGatewayUrl: createGetter(hostedPaymentGatewaysUrl),\n getPaymentMethodSetUrl: createGetter(paymentMethodSetsUrl),\n getFraudProtectionUrl: createGetter(fraudProtectionsUrl),\n getPaymentGatewayUrl: createGetter(paymentGatewaysUrl),\n\n request: evt.request,\n fetch: this.__fetch,\n });\n\n if (handler) {\n evt.preventDefault();\n evt.respondWith(handler);\n }\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('fetch', this.__handleFetch);\n }\n\n createRenderRoot(): Element | ShadowRoot {\n return this;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('fetch', this.__handleFetch);\n }\n}\n"]}
@@ -3,20 +3,20 @@ import { html } from 'lit-html';
3
3
  import { Input } from "./Input.js";
4
4
  import { Select } from "./Select.js";
5
5
  export function RangeValue(params) {
6
- var _a, _b, _c, _d;
6
+ var _a, _b, _c;
7
7
  const { t, parsedValue, option, onChange } = params;
8
8
  const splitValue = parsedValue.value.split('..');
9
- const from = splitValue.length >= 2 ? splitValue[0] : '';
10
- const to = splitValue.length >= 2 ? splitValue[1] : (_a = splitValue[0]) !== null && _a !== void 0 ? _a : '';
9
+ const from = splitValue.length >= 1 ? splitValue[0] : '';
10
+ const to = splitValue.length >= 2 ? splitValue[1] : '';
11
11
  const Field = (option === null || option === void 0 ? void 0 : option.list) ? Select : Input;
12
- const optionType = (_b = option === null || option === void 0 ? void 0 : option.type) !== null && _b !== void 0 ? _b : Type.Any;
12
+ const optionType = (_a = option === null || option === void 0 ? void 0 : option.type) !== null && _a !== void 0 ? _a : Type.Any;
13
13
  const type = optionType === Type.Number ? 'number' : optionType === Type.Date ? 'date' : 'text';
14
14
  const list = option === null || option === void 0 ? void 0 : option.list;
15
15
  return html `
16
16
  <div class="grid bg-contrast-10 gap-1px grid-cols-1 grid-rows-2 sm-grid-cols-2 sm-grid-rows-1">
17
17
  <div class="bg-base">
18
18
  ${Field({
19
- displayValue: (_c = list === null || list === void 0 ? void 0 : list.find(v => v.value === from)) === null || _c === void 0 ? void 0 : _c.label,
19
+ displayValue: (_b = list === null || list === void 0 ? void 0 : list.find(v => v.value === from)) === null || _b === void 0 ? void 0 : _b.label,
20
20
  value: from,
21
21
  label: 'range_from',
22
22
  type: type,
@@ -28,7 +28,7 @@ export function RangeValue(params) {
28
28
 
29
29
  <div class="bg-base">
30
30
  ${Field({
31
- displayValue: (_d = list === null || list === void 0 ? void 0 : list.find(v => v.value === to)) === null || _d === void 0 ? void 0 : _d.label,
31
+ displayValue: (_c = list === null || list === void 0 ? void 0 : list.find(v => v.value === to)) === null || _c === void 0 ? void 0 : _c.label,
32
32
  label: 'range_to',
33
33
  value: to,
34
34
  type: type,