@foxy.io/elements 1.27.0-beta.6 → 1.27.0-beta.8

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 (355) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +5 -5
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-api-browser.js +2 -2
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-billing-address-card.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-client-card.js +1 -1
  16. package/dist/cdn/foxy-client-form.js +1 -1
  17. package/dist/cdn/foxy-collection-page.js +1 -1
  18. package/dist/cdn/foxy-collection-pages.js +1 -1
  19. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  20. package/dist/cdn/foxy-coupon-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-code-card.js +1 -1
  22. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  23. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  25. package/dist/cdn/foxy-coupon-form.js +1 -1
  26. package/dist/cdn/foxy-custom-field-card.js +1 -1
  27. package/dist/cdn/foxy-custom-field-form.js +1 -1
  28. package/dist/cdn/foxy-customer-api.js +1 -1
  29. package/dist/cdn/foxy-customer-card.js +1 -1
  30. package/dist/cdn/foxy-customer-form.js +1 -1
  31. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  33. package/dist/cdn/foxy-customer-portal.js +13 -13
  34. package/dist/cdn/foxy-customer.js +6 -6
  35. package/dist/cdn/foxy-customers-table.js +1 -1
  36. package/dist/cdn/foxy-discount-builder.js +1 -1
  37. package/dist/cdn/foxy-discount-card.js +1 -1
  38. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  39. package/dist/cdn/foxy-donation.js +1 -1
  40. package/dist/cdn/foxy-downloadable-card.js +1 -1
  41. package/dist/cdn/foxy-downloadable-form.js +7 -7
  42. package/dist/cdn/foxy-email-template-card.js +1 -1
  43. package/dist/cdn/foxy-email-template-form.js +1 -1
  44. package/dist/cdn/foxy-error-entry-card.js +1 -1
  45. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  47. package/dist/cdn/foxy-form-dialog.js +1 -1
  48. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  49. package/dist/cdn/foxy-gift-card-card.js +1 -1
  50. package/dist/cdn/foxy-gift-card-code-card.js +1 -0
  51. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  53. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  54. package/dist/cdn/foxy-gift-card-form.js +1 -1
  55. package/dist/cdn/foxy-i18n-editor.js +2 -2
  56. package/dist/cdn/foxy-i18n.js +1 -1
  57. package/dist/cdn/foxy-integration-card.js +1 -1
  58. package/dist/cdn/foxy-integration-form.js +1 -1
  59. package/dist/cdn/foxy-item-card.js +1 -1
  60. package/dist/cdn/foxy-item-category-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-form.js +1 -1
  62. package/dist/cdn/foxy-item-form.js +1 -1
  63. package/dist/cdn/foxy-item-option-card.js +1 -1
  64. package/dist/cdn/foxy-item-option-form.js +1 -1
  65. package/dist/cdn/foxy-items-form.js +1 -1
  66. package/dist/cdn/foxy-native-integration-card.js +1 -1
  67. package/dist/cdn/foxy-native-integration-form.js +1 -1
  68. package/dist/cdn/foxy-nucleon-element.js +1 -1
  69. package/dist/cdn/foxy-pagination.js +1 -1
  70. package/dist/cdn/foxy-passkey-card.js +1 -1
  71. package/dist/cdn/foxy-passkey-form.js +1 -1
  72. package/dist/cdn/foxy-payment-card-embed-element.js +1 -0
  73. package/dist/cdn/foxy-payment-card.js +1 -1
  74. package/dist/cdn/foxy-payment-method-card.js +1 -1
  75. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  76. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  80. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  81. package/dist/cdn/foxy-payments-api.js +1 -1
  82. package/dist/cdn/foxy-query-builder.js +64 -1
  83. package/dist/cdn/foxy-report-form.js +2 -2
  84. package/dist/cdn/foxy-reports-table.js +3 -3
  85. package/dist/cdn/foxy-shipment-card.js +1 -1
  86. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  87. package/dist/cdn/foxy-sign-in-form.js +1 -1
  88. package/dist/cdn/foxy-spinner.js +1 -1
  89. package/dist/cdn/foxy-store-card.js +1 -1
  90. package/dist/cdn/foxy-store-form.js +1 -1
  91. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  92. package/dist/cdn/foxy-subscription-card.js +1 -1
  93. package/dist/cdn/foxy-subscription-form.js +1 -1
  94. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  95. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  96. package/dist/cdn/foxy-table.js +1 -1
  97. package/dist/cdn/foxy-tax-card.js +1 -1
  98. package/dist/cdn/foxy-tax-form.js +1 -1
  99. package/dist/cdn/foxy-template-config-form.js +1 -1
  100. package/dist/cdn/foxy-template-form.js +1 -1
  101. package/dist/cdn/foxy-template-set-card.js +1 -1
  102. package/dist/cdn/foxy-template-set-form.js +1 -1
  103. package/dist/cdn/foxy-transaction-card.js +1 -1
  104. package/dist/cdn/foxy-transaction.js +1 -1
  105. package/dist/cdn/foxy-transactions-table.js +1 -1
  106. package/dist/cdn/foxy-update-payment-method-form.js +1 -0
  107. package/dist/cdn/foxy-user-card.js +1 -1
  108. package/dist/cdn/foxy-user-form.js +1 -1
  109. package/dist/cdn/foxy-users-table.js +1 -1
  110. package/dist/cdn/foxy-webhook-card.js +1 -1
  111. package/dist/cdn/foxy-webhook-form.js +1 -1
  112. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  113. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  114. package/dist/cdn/{shared-205721a3.js → shared-0062cab1.js} +1 -1
  115. package/dist/cdn/{shared-c5f57aa8.js → shared-036b25a3.js} +1 -1
  116. package/dist/cdn/shared-04d8a434.js +1 -0
  117. package/dist/cdn/{shared-065dbdf6.js → shared-0aa511d0.js} +1 -1
  118. package/dist/cdn/shared-102dfbe0.js +1 -0
  119. package/dist/cdn/shared-12e531b8.js +1 -0
  120. package/dist/cdn/{shared-f7a5b12a.js → shared-15fe01fe.js} +1 -1
  121. package/dist/cdn/{shared-cc723108.js → shared-1ab8b12e.js} +1 -1
  122. package/dist/cdn/{shared-f2a8fb36.js → shared-1d12db26.js} +1 -1
  123. package/dist/cdn/{shared-0e5ea9cf.js → shared-25fc0ceb.js} +1 -1
  124. package/dist/cdn/shared-272e7269.js +1 -0
  125. package/dist/cdn/{shared-8def6325.js → shared-2808f43a.js} +1 -1
  126. package/dist/cdn/{shared-61f67b16.js → shared-292585a0.js} +1 -1
  127. package/dist/cdn/shared-2e2d45c4.js +1 -0
  128. package/dist/cdn/{shared-48b76c74.js → shared-2f2b5a28.js} +1 -1
  129. package/dist/cdn/{shared-bfa30d93.js → shared-30143820.js} +1 -1
  130. package/dist/cdn/{shared-4329ffa1.js → shared-328e5fdc.js} +1 -1
  131. package/dist/cdn/{shared-80eb1fee.js → shared-337f2fe9.js} +1 -1
  132. package/dist/cdn/{shared-039de1fd.js → shared-34f4330c.js} +1 -1
  133. package/dist/cdn/shared-37391934.js +1 -0
  134. package/dist/cdn/shared-39fc8fed.js +1 -0
  135. package/dist/cdn/{shared-11014aad.js → shared-3c58ddf1.js} +1 -1
  136. package/dist/cdn/{shared-589e5d06.js → shared-40cbbbae.js} +1 -1
  137. package/dist/cdn/{shared-da7a0bfb.js → shared-4128d453.js} +1 -1
  138. package/dist/cdn/{shared-850e2ae1.js → shared-41e9ef02.js} +2 -2
  139. package/dist/cdn/{shared-f03dacf5.js → shared-432d66f4.js} +1 -1
  140. package/dist/cdn/{shared-6e977271.js → shared-4885670b.js} +1 -1
  141. package/dist/cdn/{shared-5c542149.js → shared-550608b8.js} +1 -1
  142. package/dist/cdn/shared-5758adbc.js +1 -0
  143. package/dist/cdn/{shared-bb08b5ce.js → shared-5a18985c.js} +2 -2
  144. package/dist/cdn/{shared-dccfe5e7.js → shared-5e9395ec.js} +1 -1
  145. package/dist/cdn/{shared-845f8bf1.js → shared-62f3fc5a.js} +1 -1
  146. package/dist/cdn/{shared-fd041b18.js → shared-66a515e3.js} +1 -1
  147. package/dist/cdn/shared-66d2a0d7.js +1 -0
  148. package/dist/cdn/{shared-b81aa01c.js → shared-68aebcc4.js} +1 -1
  149. package/dist/cdn/{shared-1d6beb48.js → shared-6dfb57b1.js} +1 -1
  150. package/dist/cdn/{shared-85979316.js → shared-739a8fe4.js} +1 -1
  151. package/dist/cdn/{shared-e966f1ef.js → shared-7535b32d.js} +1 -1
  152. package/dist/cdn/{shared-931db653.js → shared-7c819ebc.js} +1 -1
  153. package/dist/cdn/{shared-9a5da74d.js → shared-84215d13.js} +1 -1
  154. package/dist/cdn/{shared-b30f9b10.js → shared-8452c492.js} +1 -1
  155. package/dist/cdn/{shared-5f09205d.js → shared-8540c2c7.js} +1 -1
  156. package/dist/cdn/shared-8874ec69.js +1 -0
  157. package/dist/cdn/{shared-208e37af.js → shared-8c5b4c81.js} +1 -1
  158. package/dist/cdn/{shared-5dbb9630.js → shared-8d7e2e2c.js} +1 -1
  159. package/dist/cdn/{shared-ca15d510.js → shared-8e59a71e.js} +1 -1
  160. package/dist/cdn/shared-8e75c372.js +1 -0
  161. package/dist/cdn/shared-90ddf541.js +1 -0
  162. package/dist/cdn/{shared-e35297c9.js → shared-91009494.js} +1 -1
  163. package/dist/cdn/shared-9f5c636a.js +1 -0
  164. package/dist/cdn/{shared-fda63db8.js → shared-a30fcaf6.js} +4 -4
  165. package/dist/cdn/shared-a33be18f.js +6 -0
  166. package/dist/cdn/{shared-7e201abd.js → shared-a911ab73.js} +1 -1
  167. package/dist/cdn/{shared-fe7b3ed2.js → shared-b1c7300a.js} +1 -1
  168. package/dist/cdn/{shared-bc95d87e.js → shared-b2ce84fa.js} +1 -1
  169. package/dist/cdn/{shared-1a9e80fa.js → shared-b55f1de3.js} +1 -1
  170. package/dist/cdn/{shared-8cd0f36d.js → shared-b6c1aa47.js} +1 -1
  171. package/dist/cdn/{shared-fb8c09b8.js → shared-b73fd633.js} +1 -1
  172. package/dist/cdn/{shared-a0cbfb2f.js → shared-b99daf13.js} +1 -1
  173. package/dist/cdn/{shared-1d257548.js → shared-bac00622.js} +1 -1
  174. package/dist/cdn/{shared-6af480b8.js → shared-bd99107c.js} +1 -1
  175. package/dist/cdn/{shared-2c70f0b6.js → shared-c0b1a51d.js} +1 -1
  176. package/dist/cdn/shared-c5106605.js +1 -0
  177. package/dist/cdn/{shared-0e8dceb8.js → shared-cb732375.js} +1 -1
  178. package/dist/cdn/shared-cd96ff03.js +1 -0
  179. package/dist/cdn/{shared-93812e51.js → shared-da2a367a.js} +1 -1
  180. package/dist/cdn/{shared-a73e7be4.js → shared-e075ca81.js} +1 -1
  181. package/dist/cdn/{shared-d04c2e0c.js → shared-e10b5dca.js} +1 -1
  182. package/dist/cdn/{shared-cab2aa63.js → shared-e2cbc382.js} +1 -1
  183. package/dist/cdn/{shared-bba8ae80.js → shared-e4403332.js} +1 -1
  184. package/dist/cdn/{shared-befe135a.js → shared-e5f6ca48.js} +1 -1
  185. package/dist/cdn/{shared-56addb06.js → shared-e989e47e.js} +2 -2
  186. package/dist/cdn/{shared-683145e5.js → shared-ecb7a183.js} +1 -1
  187. package/dist/cdn/{shared-e48fbf50.js → shared-f090c63a.js} +1 -1
  188. package/dist/cdn/{shared-4877ed05.js → shared-f14856e0.js} +1 -1
  189. package/dist/cdn/{shared-abf72e2f.js → shared-f2721fae.js} +1 -1
  190. package/dist/cdn/{shared-d4322854.js → shared-f548d023.js} +1 -1
  191. package/dist/cdn/{shared-724e9a20.js → shared-fd95cd52.js} +1 -1
  192. package/dist/cdn/translations/customer/en.json +149 -2
  193. package/dist/cdn/translations/customer-portal/README.md +4 -0
  194. package/dist/cdn/translations/customer-portal/de.json +1063 -113
  195. package/dist/cdn/translations/customer-portal/en.json +151 -5
  196. package/dist/cdn/translations/customer-portal/es.json +1072 -123
  197. package/dist/cdn/translations/customer-portal/fr.json +1084 -134
  198. package/dist/cdn/translations/customer-portal/nl.json +1085 -135
  199. package/dist/cdn/translations/customer-portal/pl.json +1092 -142
  200. package/dist/cdn/translations/customer-portal/sv.json +1173 -0
  201. package/dist/cdn/translations/customer-portal/zh-hk.json +1110 -160
  202. package/dist/cdn/translations/gift-card-code-card/en.json +10 -0
  203. package/dist/cdn/translations/gift-card-code-form/en.json +86 -0
  204. package/dist/cdn/translations/gift-card-form/en.json +638 -397
  205. package/dist/cdn/translations/payment-card-embed/en.json +48 -0
  206. package/dist/cdn/translations/payment-method-card/en.json +149 -2
  207. package/dist/cdn/translations/payments-api-payment-method-form/en.json +2 -2
  208. package/dist/cdn/translations/update-payment-method-form/en.json +140 -0
  209. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +15 -7
  210. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  211. package/dist/elements/internal/InternalBulkAddActionControl/InternalBulkAddActionControl.d.ts +10 -0
  212. package/dist/elements/{public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.js → internal/InternalBulkAddActionControl/InternalBulkAddActionControl.js} +9 -9
  213. package/dist/elements/internal/InternalBulkAddActionControl/InternalBulkAddActionControl.js.map +1 -0
  214. package/dist/elements/internal/InternalBulkAddActionControl/index.d.ts +6 -0
  215. package/dist/elements/internal/InternalBulkAddActionControl/index.js +8 -0
  216. package/dist/elements/internal/InternalBulkAddActionControl/index.js.map +1 -0
  217. package/dist/elements/internal/InternalForm/InternalForm.js +2 -0
  218. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
  219. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts +16 -0
  220. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +167 -0
  221. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -0
  222. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.d.ts +14 -0
  223. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js +40 -0
  224. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js.map +1 -0
  225. package/dist/elements/internal/InternalResourcePickerControl/index.d.ts +6 -0
  226. package/dist/elements/internal/InternalResourcePickerControl/index.js +10 -0
  227. package/dist/elements/internal/InternalResourcePickerControl/index.js.map +1 -0
  228. package/dist/elements/public/CouponForm/CouponForm.js +6 -4
  229. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  230. package/dist/elements/public/CouponForm/index.d.ts +1 -1
  231. package/dist/elements/public/CouponForm/index.js +1 -1
  232. package/dist/elements/public/CouponForm/index.js.map +1 -1
  233. package/dist/elements/public/CouponForm/types.d.ts +1 -10
  234. package/dist/elements/public/CouponForm/types.js.map +1 -1
  235. package/dist/elements/public/Customer/Customer.d.ts +5 -0
  236. package/dist/elements/public/Customer/Customer.js +13 -6
  237. package/dist/elements/public/Customer/Customer.js.map +1 -1
  238. package/dist/elements/public/Customer/index.d.ts +1 -0
  239. package/dist/elements/public/Customer/index.js +1 -0
  240. package/dist/elements/public/Customer/index.js.map +1 -1
  241. package/dist/elements/public/CustomerPortal/CustomerPortal.d.ts +14 -0
  242. package/dist/elements/public/CustomerPortal/CustomerPortal.js +23 -6
  243. package/dist/elements/public/CustomerPortal/CustomerPortal.js.map +1 -1
  244. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.d.ts +1 -0
  245. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js +7 -2
  246. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js.map +1 -1
  247. package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js +0 -6
  248. package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js.map +1 -1
  249. package/dist/elements/public/DownloadableForm/DownloadableForm.js.map +1 -1
  250. package/dist/elements/public/FormDialog/FormDialog.d.ts +2 -0
  251. package/dist/elements/public/FormDialog/FormDialog.js +8 -4
  252. package/dist/elements/public/FormDialog/FormDialog.js.map +1 -1
  253. package/dist/elements/public/GiftCardCodeCard/GiftCardCodeCard.d.ts +21 -0
  254. package/dist/elements/public/GiftCardCodeCard/GiftCardCodeCard.js +78 -0
  255. package/dist/elements/public/GiftCardCodeCard/GiftCardCodeCard.js.map +1 -0
  256. package/dist/elements/public/GiftCardCodeCard/index.d.ts +5 -0
  257. package/dist/elements/public/GiftCardCodeCard/index.js +7 -0
  258. package/dist/elements/public/GiftCardCodeCard/index.js.map +1 -0
  259. package/dist/elements/public/GiftCardCodeCard/types.d.ts +3 -0
  260. package/dist/elements/public/GiftCardCodeCard/types.js +2 -0
  261. package/dist/elements/public/GiftCardCodeCard/types.js.map +1 -0
  262. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +12 -0
  263. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +69 -4
  264. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
  265. package/dist/elements/public/GiftCardCodeForm/index.d.ts +2 -0
  266. package/dist/elements/public/GiftCardCodeForm/index.js +2 -0
  267. package/dist/elements/public/GiftCardCodeForm/index.js.map +1 -1
  268. package/dist/elements/public/GiftCardCodeForm/types.d.ts +5 -1
  269. package/dist/elements/public/GiftCardCodeForm/types.js.map +1 -1
  270. package/dist/elements/public/GiftCardForm/GiftCardForm.d.ts +22 -28
  271. package/dist/elements/public/GiftCardForm/GiftCardForm.js +183 -633
  272. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  273. package/dist/elements/public/GiftCardForm/index.d.ts +13 -12
  274. package/dist/elements/public/GiftCardForm/index.js +13 -12
  275. package/dist/elements/public/GiftCardForm/index.js.map +1 -1
  276. package/dist/elements/public/GiftCardForm/types.d.ts +2 -27
  277. package/dist/elements/public/GiftCardForm/types.js.map +1 -1
  278. package/dist/elements/public/NucleonElement/NucleonElement.js +7 -1
  279. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  280. package/dist/elements/public/NucleonElement/UpdateEvent.d.ts +3 -1
  281. package/dist/elements/public/NucleonElement/UpdateEvent.js +2 -0
  282. package/dist/elements/public/NucleonElement/UpdateEvent.js.map +1 -1
  283. package/dist/elements/public/PaymentCardEmbedElement/PaymentCardEmbedElement.d.ts +47 -0
  284. package/dist/elements/public/PaymentCardEmbedElement/PaymentCardEmbedElement.js +198 -0
  285. package/dist/elements/public/PaymentCardEmbedElement/PaymentCardEmbedElement.js.map +1 -0
  286. package/dist/elements/public/PaymentCardEmbedElement/index.d.ts +4 -0
  287. package/dist/elements/public/PaymentCardEmbedElement/index.js +6 -0
  288. package/dist/elements/public/PaymentCardEmbedElement/index.js.map +1 -0
  289. package/dist/elements/public/PaymentMethodCard/PaymentMethodCard.d.ts +14 -4
  290. package/dist/elements/public/PaymentMethodCard/PaymentMethodCard.js +79 -10
  291. package/dist/elements/public/PaymentMethodCard/PaymentMethodCard.js.map +1 -1
  292. package/dist/elements/public/PaymentMethodCard/index.d.ts +2 -0
  293. package/dist/elements/public/PaymentMethodCard/index.js +2 -0
  294. package/dist/elements/public/PaymentMethodCard/index.js.map +1 -1
  295. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +66 -56
  296. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
  297. package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js +1 -0
  298. package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js.map +1 -1
  299. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
  300. package/dist/elements/public/UpdatePaymentMethodForm/UpdatePaymentMethodForm.d.ts +37 -0
  301. package/dist/elements/public/UpdatePaymentMethodForm/UpdatePaymentMethodForm.js +142 -0
  302. package/dist/elements/public/UpdatePaymentMethodForm/UpdatePaymentMethodForm.js.map +1 -0
  303. package/dist/elements/public/UpdatePaymentMethodForm/index.d.ts +8 -0
  304. package/dist/elements/public/UpdatePaymentMethodForm/index.js +10 -0
  305. package/dist/elements/public/UpdatePaymentMethodForm/index.js.map +1 -0
  306. package/dist/elements/public/{CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.d.ts → UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/InternalUpdatePaymentMethodFormCcTokenControl.d.ts} +3 -3
  307. package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/InternalUpdatePaymentMethodFormCcTokenControl.js +46 -0
  308. package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/InternalUpdatePaymentMethodFormCcTokenControl.js.map +1 -0
  309. package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/index.d.ts +6 -0
  310. package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/index.js +8 -0
  311. package/dist/elements/public/UpdatePaymentMethodForm/internal/InternalUpdatePaymentMethodFormCcTokenControl/index.js.map +1 -0
  312. package/dist/elements/public/UpdatePaymentMethodForm/types.d.ts +13 -0
  313. package/dist/elements/public/UpdatePaymentMethodForm/types.js +2 -0
  314. package/dist/elements/public/UpdatePaymentMethodForm/types.js.map +1 -0
  315. package/dist/elements/public/index.d.ts +3 -0
  316. package/dist/elements/public/index.defined.d.ts +3 -0
  317. package/dist/elements/public/index.defined.js +3 -0
  318. package/dist/elements/public/index.defined.js.map +1 -1
  319. package/dist/elements/public/index.js +3 -0
  320. package/dist/elements/public/index.js.map +1 -1
  321. package/dist/mixins/themeable.js +45 -0
  322. package/dist/mixins/themeable.js.map +1 -1
  323. package/dist/mixins/translatable.js +89 -79
  324. package/dist/mixins/translatable.js.map +1 -1
  325. package/package.json +2 -2
  326. package/dist/cdn/shared-03ccfd62.js +0 -1
  327. package/dist/cdn/shared-07d5e225.js +0 -1
  328. package/dist/cdn/shared-250e652f.js +0 -1
  329. package/dist/cdn/shared-29f2468c.js +0 -6
  330. package/dist/cdn/shared-3ab0306f.js +0 -1
  331. package/dist/cdn/shared-400240f8.js +0 -1
  332. package/dist/cdn/shared-5e35c5a5.js +0 -1
  333. package/dist/cdn/shared-6c4affb9.js +0 -1
  334. package/dist/cdn/shared-77fd8dae.js +0 -1
  335. package/dist/cdn/shared-8a04bea3.js +0 -1
  336. package/dist/cdn/shared-bfeff3bb.js +0 -1
  337. package/dist/cdn/shared-e07b24ca.js +0 -1
  338. package/dist/cdn/shared-e84be1c2.js +0 -64
  339. package/dist/cdn/translations/customer-portal/se.json +0 -223
  340. package/dist/elements/private/EditableList/EditableList.d.ts +0 -23
  341. package/dist/elements/private/EditableList/EditableList.js +0 -127
  342. package/dist/elements/private/EditableList/EditableList.js.map +0 -1
  343. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.js.map +0 -1
  344. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.d.ts +0 -6
  345. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.js +0 -8
  346. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.js.map +0 -1
  347. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.d.ts +0 -20
  348. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js +0 -99
  349. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js.map +0 -1
  350. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.d.ts +0 -18
  351. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js +0 -50
  352. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js.map +0 -1
  353. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.d.ts +0 -18
  354. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js +0 -53
  355. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InternalForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalForm/InternalForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { HALJSONResource } from '../../public/NucleonElement/types';\nimport type { TemplateResult } from 'lit-html';\nimport type { Status } from './types';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { NucleonElement } from '../../public/NucleonElement/NucleonElement';\nimport { getResourceId } from '@foxy.io/sdk/core';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst Base = ConfigurableMixin(ThemeableMixin(NucleonElement));\n\n/**\n * An internal base class for any nucleon-powered form. Renders create/delete\n * buttons and timestamps by default, displays a spinner in non-idle states.\n *\n * @element foxy-internal-form\n * @since 1.17.0\n */\nexport class InternalForm<TData extends HALJSONResource> extends Base<TData> {\n /** Validation errors with this prefix will show up at the top of the form. */\n static generalErrorPrefix = 'error:';\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n status: { type: Object },\n };\n }\n\n /** Status message to render at the top of the form. If `null`, the message is hidden. */\n status: null | Status = null;\n\n /**\n * Renders header actions when the optional header is rendered.\n * Empty by default.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n renderHeaderActions(data: TData): TemplateResult | null {\n return null;\n }\n\n /**\n * Renders optional form header with ID, last update timestamp and actions list (snapshot-only).\n * Customize which actions are rendered with `.renderHeaderActions()` method.\n */\n renderHeader(): TemplateResult {\n const data = this.data;\n const actions = data ? this.renderHeaderActions(data) : null;\n const id = data ? getResourceId(data._links.self.href) : '';\n\n return html`\n <h2>\n <span class=\"flex items-center gap-s leading-xs text-xxl font-medium break-all\">\n <foxy-i18n infer=\"header\" key=${data ? 'title_existing' : 'title_new'} .options=${{ id }}>\n </foxy-i18n>\n ${data\n ? html`\n <foxy-copy-to-clipboard infer=\"header\" class=\"text-m\" text=${id}>\n </foxy-copy-to-clipboard>\n `\n : ''}\n </span>\n ${data\n ? html`\n <foxy-i18n\n infer=\"header\"\n class=\"text-l text-secondary\"\n key=\"subtitle\"\n .options=${data}\n >\n </foxy-i18n>\n ${actions ? html`<div class=\"mt-xs flex gap-m\">${actions}</div>` : ''}\n `\n : ''}\n </h2>\n `;\n }\n\n /**\n * Renders form body. This is the method you should implement in your forms\n * instead of `.render()`. If you'd like to keep the submit button and the timestamps,\n * don't forget to add `super.renderBody()` to your template.\n */\n renderBody(): TemplateResult {\n return this.data\n ? html`\n <foxy-internal-timestamps-control infer=\"timestamps\"></foxy-internal-timestamps-control>\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n `\n : html`<foxy-internal-create-control infer=\"create\"></foxy-internal-create-control>`;\n }\n\n /**\n * Renders the entire form. You should probably implement `.renderBody()`\n * instead of this method in your form to keep the spinner and the common layout features.\n */\n render(): TemplateResult {\n const isSpinnerVisible = !this.in('idle') && (!this.in({ busy: 'fetching' }) || !this.data);\n\n return html`\n <div aria-busy=${this.in('busy')} aria-live=\"polite\" class=\"relative\">\n <div\n class=${classMap({\n 'space-y-m': true,\n 'transition-opacity': true,\n 'opacity-0 pointer-events-none': isSpinnerVisible,\n })}\n >\n ${this.__generalErrors.map(err => this.__renderGeneralError(err))}\n ${this.status ? this.__renderStatus(this.status) : ''} ${this.renderBody()}\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'flex flex-col items-center justify-center gap-m': true,\n 'transition-opacity absolute inset-0': true,\n 'opacity-0 pointer-events-none': !isSpinnerVisible,\n })}\n >\n <foxy-spinner\n layout=${this.in('fail') ? 'vertical' : 'no-label'}\n state=${this.in('fail') ? 'error' : 'busy'}\n infer=\"spinner\"\n >\n </foxy-spinner>\n ${this.href && this.in('fail')\n ? html`\n <vaadin-button theme=\"small contrast\" @click=${() => this.refresh()}>\n <foxy-i18n infer=\"spinner\" key=\"refresh\"></foxy-i18n>\n </vaadin-button>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n private get __generalErrors() {\n const prefix = (this.constructor as typeof InternalForm).generalErrorPrefix;\n return this.errors.filter(v => v.startsWith(prefix));\n }\n\n private __renderGeneralError(err: string) {\n return html`\n <foxy-i18n\n class=\"leading-xs text-body rounded bg-error-10 block\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n infer=\"error\"\n key=${err.replace('error:', '')}\n >\n </foxy-i18n>\n `;\n }\n\n private __renderStatus({ key, options }: Status) {\n return html`\n <p\n data-testid=\"status\"\n class=\"leading-xs text-body rounded bg-success-10 flex items-start gap-m\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <foxy-i18n class=\"flex-1\" infer=\"status\" key=${key} .options=${options}></foxy-i18n>\n <vaadin-button\n class=\"flex-shrink-0\"\n theme=\"success tertiary-inline\"\n @click=${() => (this.status = null)}\n >\n <foxy-i18n class=\"flex-1\" infer=\"status\" key=\"close\"></foxy-i18n>\n </vaadin-button>\n </p>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalForm/InternalForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { HALJSONResource } from '../../public/NucleonElement/types';\nimport type { TemplateResult } from 'lit-html';\nimport type { Status } from './types';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { NucleonElement } from '../../public/NucleonElement/NucleonElement';\nimport { getResourceId } from '@foxy.io/sdk/core';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst Base = ConfigurableMixin(ThemeableMixin(NucleonElement));\n\n/**\n * An internal base class for any nucleon-powered form. Renders create/delete\n * buttons and timestamps by default, displays a spinner in non-idle states.\n *\n * @element foxy-internal-form\n * @since 1.17.0\n */\nexport class InternalForm<TData extends HALJSONResource> extends Base<TData> {\n /** Validation errors with this prefix will show up at the top of the form. */\n static generalErrorPrefix = 'error:';\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n status: { type: Object },\n };\n }\n\n /** Status message to render at the top of the form. If `null`, the message is hidden. */\n status: null | Status = null;\n\n /**\n * Renders header actions when the optional header is rendered.\n * Empty by default.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n renderHeaderActions(data: TData): TemplateResult | null {\n return null;\n }\n\n /**\n * Renders optional form header with ID, last update timestamp and actions list (snapshot-only).\n * Customize which actions are rendered with `.renderHeaderActions()` method.\n */\n renderHeader(): TemplateResult {\n const data = this.data;\n const actions = data ? this.renderHeaderActions(data) : null;\n const id = data ? getResourceId(data._links.self.href) : '';\n\n return html`\n <h2>\n <span class=\"flex items-center gap-s leading-xs text-xxl font-medium break-all\">\n <foxy-i18n infer=\"header\" key=${data ? 'title_existing' : 'title_new'} .options=${{ id }}>\n </foxy-i18n>\n ${data\n ? html`\n <foxy-copy-to-clipboard infer=\"header\" class=\"text-m\" text=${id}>\n </foxy-copy-to-clipboard>\n `\n : ''}\n </span>\n ${data\n ? html`\n <foxy-i18n\n infer=\"header\"\n class=\"text-l text-secondary\"\n key=\"subtitle\"\n .options=${data}\n >\n </foxy-i18n>\n ${actions ? html`<div class=\"mt-xs flex gap-m\">${actions}</div>` : ''}\n `\n : ''}\n </h2>\n `;\n }\n\n /**\n * Renders form body. This is the method you should implement in your forms\n * instead of `.render()`. If you'd like to keep the submit button and the timestamps,\n * don't forget to add `super.renderBody()` to your template.\n */\n renderBody(): TemplateResult {\n return this.data\n ? html`\n <foxy-internal-timestamps-control infer=\"timestamps\"></foxy-internal-timestamps-control>\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n `\n : html`<foxy-internal-create-control infer=\"create\"></foxy-internal-create-control>`;\n }\n\n /**\n * Renders the entire form. You should probably implement `.renderBody()`\n * instead of this method in your form to keep the spinner and the common layout features.\n */\n render(): TemplateResult {\n const isSpinnerVisible = !this.in('idle') && (!this.in({ busy: 'fetching' }) || !this.data);\n\n return html`\n <div aria-busy=${this.in('busy')} aria-live=\"polite\" class=\"relative\">\n <div\n class=${classMap({\n 'space-y-m': true,\n 'transition-opacity': true,\n 'opacity-0 pointer-events-none': isSpinnerVisible,\n })}\n >\n ${this.__generalErrors.map(err => this.__renderGeneralError(err))}\n ${this.status ? this.__renderStatus(this.status) : ''} ${this.renderBody()}\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'flex flex-col items-center justify-center gap-m': true,\n 'transition-opacity absolute inset-0': true,\n 'opacity-0 pointer-events-none': !isSpinnerVisible,\n })}\n >\n <foxy-spinner\n layout=${this.in('fail') ? 'vertical' : 'no-label'}\n state=${this.in('fail') ? 'error' : 'busy'}\n infer=\"spinner\"\n >\n </foxy-spinner>\n ${this.href && this.in('fail')\n ? html`\n <vaadin-button theme=\"small contrast\" @click=${() => this.refresh()}>\n <foxy-i18n infer=\"spinner\" key=\"refresh\"></foxy-i18n>\n </vaadin-button>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n private get __generalErrors() {\n const prefix = (this.constructor as typeof InternalForm).generalErrorPrefix;\n return this.errors.filter(v => v.startsWith(prefix));\n }\n\n private __renderGeneralError(err: string) {\n return html`\n <foxy-i18n\n class=\"leading-xs text-body rounded bg-error-10 block\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n infer=\"error\"\n key=${err.replace('error:', '')}\n >\n </foxy-i18n>\n `;\n }\n\n private __renderStatus({ key, options }: Status) {\n if (this.hiddenSelector.matches('status', true)) return;\n return html`\n <p\n data-testid=\"status\"\n class=\"leading-xs text-body rounded bg-success-10 flex items-start gap-m\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <foxy-i18n class=\"flex-1\" infer=\"status\" key=${key} .options=${options}></foxy-i18n>\n <vaadin-button\n class=\"flex-shrink-0\"\n theme=\"success tertiary-inline\"\n @click=${() => (this.status = null)}\n >\n <foxy-i18n class=\"flex-1\" infer=\"status\" key=\"close\"></foxy-i18n>\n </vaadin-button>\n </p>\n `;\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
2
+ import type { Option } from '../../public/QueryBuilder/types';
3
+ import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
4
+ export declare class InternalResourcePickerControl extends InternalEditableControl {
5
+ static get properties(): PropertyDeclarations;
6
+ virtualHost: string;
7
+ filters: Option[];
8
+ first: string | null;
9
+ item: string | null;
10
+ private readonly __getItemRenderer;
11
+ renderControl(): TemplateResult;
12
+ updated(changes: Map<keyof this, unknown>): void;
13
+ private __handleFetchEvent;
14
+ private __handleEmpty;
15
+ private __handleSelect;
16
+ }
@@ -0,0 +1,167 @@
1
+ import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { FetchEvent } from "../../public/NucleonElement/FetchEvent.js";
3
+ import { classMap } from "../../../utils/class-map.js";
4
+ import { uniqueId } from 'lodash-es';
5
+ import { spread } from '@open-wc/lit-helpers';
6
+ import { html } from 'lit-html';
7
+ import memoize from 'lodash-es/memoize';
8
+ export class InternalResourcePickerControl extends InternalEditableControl {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.virtualHost = uniqueId('internal-resource-picker-control-');
12
+ this.filters = [];
13
+ this.first = null;
14
+ this.item = null;
15
+ this.__getItemRenderer = memoize((item) => {
16
+ return new Function('ctx', `return ctx.html\`
17
+ <${item !== null && item !== void 0 ? item : 'foxy-null'}
18
+ related=\${JSON.stringify(ctx.related)}
19
+ parent=\${ctx.parent}
20
+ infer="card"
21
+ href=$\{ctx.href}
22
+ ...=\${ctx.spread(ctx.props)}
23
+ >
24
+ </${item !== null && item !== void 0 ? item : 'foxy-null'}>\``);
25
+ });
26
+ }
27
+ static get properties() {
28
+ return {
29
+ ...super.properties,
30
+ virtualHost: {},
31
+ filters: { type: Array },
32
+ first: {},
33
+ item: {},
34
+ };
35
+ }
36
+ renderControl() {
37
+ var _a, _b;
38
+ return html `
39
+ <foxy-form-dialog
40
+ parent="foxy://${this.virtualHost}/select"
41
+ infer="dialog"
42
+ form="foxy-internal-resource-picker-control-form"
43
+ alert
44
+ .props=${{
45
+ '.selectionProps': {
46
+ '.filters': this.filters,
47
+ '.first': this.first,
48
+ '.item': this.item,
49
+ },
50
+ }}
51
+ @fetch=${this.__handleFetchEvent}
52
+ >
53
+ </foxy-form-dialog>
54
+
55
+ <div class="block group">
56
+ <div
57
+ class=${classMap({
58
+ 'transition-colors mb-xs font-medium text-s': true,
59
+ 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,
60
+ 'text-secondary': this.readonly,
61
+ 'text-disabled': this.disabled,
62
+ })}
63
+ >
64
+ ${this.label}
65
+ </div>
66
+
67
+ <button
68
+ class=${classMap({
69
+ 'block w-full rounded text-left transition-colors': true,
70
+ 'border border-dashed': true,
71
+ 'border-transparent': !this.readonly,
72
+ 'cursor-pointer bg-contrast-5 hover-bg-contrast-10': !this.disabled && !this.readonly,
73
+ 'cursor-default bg-contrast-5': this.disabled,
74
+ 'cursor-default border-contrast-30': this.readonly,
75
+ 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,
76
+ })}
77
+ style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
78
+ ?disabled=${this.disabled || this.readonly}
79
+ @click=${(evt) => {
80
+ const button = evt.currentTarget;
81
+ const dialog = this.renderRoot.querySelector('foxy-form-dialog');
82
+ dialog.href = '';
83
+ dialog.show(button);
84
+ }}
85
+ >
86
+ <div class=${classMap({ 'transition-opacity': true, 'opacity-50': this.disabled })}>
87
+ ${this.__getItemRenderer(this.item)({
88
+ html,
89
+ data: null,
90
+ href: this._value || '',
91
+ related: [],
92
+ parent: '',
93
+ props: {},
94
+ spread: spread,
95
+ simplifyNsLoading: this.simplifyNsLoading,
96
+ disabled: this.disabled,
97
+ disabledControls: this.disabledControls,
98
+ readonly: this.readonly,
99
+ readonlyControls: this.readonlyControls,
100
+ hidden: this.hidden,
101
+ hiddenControls: this.hiddenControls,
102
+ templates: this.templates,
103
+ previous: null,
104
+ next: null,
105
+ group: (_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.group) !== null && _b !== void 0 ? _b : '',
106
+ lang: this.lang,
107
+ ns: this.ns,
108
+ })}
109
+ </div>
110
+ </button>
111
+
112
+ <div
113
+ class=${classMap({
114
+ 'transition-colors mt-xs text-xs': true,
115
+ 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,
116
+ 'text-secondary': this.readonly,
117
+ 'text-disabled': this.disabled,
118
+ })}
119
+ ?hidden=${!this.helperText}
120
+ >
121
+ ${this.helperText}
122
+ </div>
123
+
124
+ <div
125
+ class="mt-xs text-xs leading-xs text-error"
126
+ ?hidden=${!this._errorMessage || this.disabled || this.readonly}
127
+ >
128
+ ${this._errorMessage}
129
+ </div>
130
+ </div>
131
+ `;
132
+ }
133
+ updated(changes) {
134
+ var _a, _b;
135
+ super.updated(changes);
136
+ if (changes.has('item'))
137
+ (_b = (_a = this.__getItemRenderer.cache).clear) === null || _b === void 0 ? void 0 : _b.call(_a);
138
+ }
139
+ __handleFetchEvent(event) {
140
+ if (!(event instanceof FetchEvent))
141
+ return;
142
+ if (event.defaultPrevented)
143
+ return;
144
+ const { url, method } = event.request;
145
+ if (url === `foxy://${this.virtualHost}/select` && method === 'POST') {
146
+ return event.respondWith(this.__handleSelect(event.request));
147
+ }
148
+ if (url === `foxy://${this.virtualHost}/empty` && method === 'GET') {
149
+ return event.respondWith(this.__handleEmpty());
150
+ }
151
+ }
152
+ async __handleEmpty() {
153
+ return new Response(JSON.stringify({
154
+ _links: { self: { href: `foxy://${this.virtualHost}/empty` } },
155
+ message: 'Resource selected.',
156
+ }));
157
+ }
158
+ async __handleSelect(request) {
159
+ const body = (await request.clone().json());
160
+ this._value = body.selection;
161
+ return new Response(JSON.stringify({
162
+ _links: { self: { href: `foxy://${this.virtualHost}/empty` } },
163
+ message: 'Resource selected.',
164
+ }));
165
+ }
166
+ }
167
+ //# sourceMappingURL=InternalResourcePickerControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalResourcePickerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { FormDialog } from '../../public/FormDialog/FormDialog';\nimport type { Option } from '../../public/QueryBuilder/types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { FetchEvent } from '../../public/NucleonElement/FetchEvent';\nimport { classMap } from '../../../utils/class-map';\nimport { uniqueId } from 'lodash-es';\nimport { spread } from '@open-wc/lit-helpers';\nimport { html } from 'lit-html';\n\nimport memoize from 'lodash-es/memoize';\n\nexport class InternalResourcePickerControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n virtualHost: {},\n filters: { type: Array },\n first: {},\n item: {},\n };\n }\n\n virtualHost = uniqueId('internal-resource-picker-control-');\n\n filters: Option[] = [];\n\n first: string | null = null;\n\n item: string | null = null;\n\n private readonly __getItemRenderer = memoize((item: string | null) => {\n return new Function(\n 'ctx',\n `return ctx.html\\`\n <${item ?? 'foxy-null'}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n infer=\"card\"\n href=$\\{ctx.href}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item ?? 'foxy-null'}>\\``\n ) as ItemRenderer;\n });\n\n renderControl(): TemplateResult {\n return html`\n <foxy-form-dialog\n parent=\"foxy://${this.virtualHost}/select\"\n infer=\"dialog\"\n form=\"foxy-internal-resource-picker-control-form\"\n alert\n .props=${{\n '.selectionProps': {\n '.filters': this.filters,\n '.first': this.first,\n '.item': this.item,\n },\n }}\n @fetch=${this.__handleFetchEvent}\n >\n </foxy-form-dialog>\n\n <div class=\"block group\">\n <div\n class=${classMap({\n 'transition-colors mb-xs font-medium text-s': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n })}\n >\n ${this.label}\n </div>\n\n <button\n class=${classMap({\n 'block w-full rounded text-left transition-colors': true,\n 'border border-dashed': true,\n 'border-transparent': !this.readonly,\n 'cursor-pointer bg-contrast-5 hover-bg-contrast-10': !this.disabled && !this.readonly,\n 'cursor-default bg-contrast-5': this.disabled,\n 'cursor-default border-contrast-30': this.readonly,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n })}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n ?disabled=${this.disabled || this.readonly}\n @click=${(evt: MouseEvent) => {\n const button = evt.currentTarget as HTMLButtonElement;\n const dialog = this.renderRoot.querySelector('foxy-form-dialog') as FormDialog;\n\n dialog.href = '';\n dialog.show(button);\n }}\n >\n <div class=${classMap({ 'transition-opacity': true, 'opacity-50': this.disabled })}>\n ${this.__getItemRenderer(this.item)({\n html,\n data: null,\n href: (this._value as string | undefined) || '',\n related: [],\n parent: '',\n props: {},\n spread: spread,\n simplifyNsLoading: this.simplifyNsLoading,\n disabled: this.disabled,\n disabledControls: this.disabledControls,\n readonly: this.readonly,\n readonlyControls: this.readonlyControls,\n hidden: this.hidden,\n hiddenControls: this.hiddenControls,\n templates: this.templates,\n previous: null,\n next: null,\n group: this.nucleon?.group ?? '',\n lang: this.lang,\n ns: this.ns,\n })}\n </div>\n </button>\n\n <div\n class=${classMap({\n 'transition-colors mt-xs text-xs': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n })}\n ?hidden=${!this.helperText}\n >\n ${this.helperText}\n </div>\n\n <div\n class=\"mt-xs text-xs leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n </div>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (changes.has('item')) this.__getItemRenderer.cache.clear?.();\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n\n const { url, method } = event.request;\n\n if (url === `foxy://${this.virtualHost}/select` && method === 'POST') {\n return event.respondWith(this.__handleSelect(event.request));\n }\n\n if (url === `foxy://${this.virtualHost}/empty` && method === 'GET') {\n return event.respondWith(this.__handleEmpty());\n }\n }\n\n private async __handleEmpty(): Promise<Response> {\n return new Response(\n JSON.stringify({\n _links: { self: { href: `foxy://${this.virtualHost}/empty` } },\n message: 'Resource selected.',\n })\n );\n }\n\n private async __handleSelect(request: Request): Promise<Response> {\n const body = (await request.clone().json()) as { selection: string };\n this._value = body.selection;\n return new Response(\n JSON.stringify({\n _links: { self: { href: `foxy://${this.virtualHost}/empty` } },\n message: 'Resource selected.',\n })\n );\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
2
+ import type { HALJSONResource, NucleonV8N } from '../../public/NucleonElement/types';
3
+ import { InternalForm } from '../InternalForm/InternalForm';
4
+ declare type Data = HALJSONResource & {
5
+ selection: string;
6
+ query: string;
7
+ };
8
+ export declare class InternalResourcePickerControlForm extends InternalForm<Data> {
9
+ static get properties(): PropertyDeclarations;
10
+ static get v8n(): NucleonV8N<Data>;
11
+ selectionProps: Record<PropertyKey, unknown>;
12
+ renderBody(): TemplateResult;
13
+ }
14
+ export {};
@@ -0,0 +1,40 @@
1
+ import { InternalForm } from "../InternalForm/InternalForm.js";
2
+ import { spread } from '@open-wc/lit-helpers';
3
+ import { html } from 'lit-html';
4
+ export class InternalResourcePickerControlForm extends InternalForm {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.selectionProps = {};
8
+ }
9
+ static get properties() {
10
+ return {
11
+ ...super.properties,
12
+ selectionProps: { attribute: false },
13
+ };
14
+ }
15
+ static get v8n() {
16
+ return [({ selection: v }) => (v === undefined ? 'silent:selection_required' : true)];
17
+ }
18
+ renderBody() {
19
+ return html `
20
+ <h2 class="leading-xs text-xxl font-medium break-all">
21
+ <foxy-i18n infer="" key="header"></foxy-i18n>
22
+ </h2>
23
+
24
+ <foxy-internal-async-list-control
25
+ infer="selection"
26
+ form="foxy-null"
27
+ hide-delete-button
28
+ hide-create-button
29
+ @itemclick=${(evt) => {
30
+ evt.preventDefault();
31
+ this.edit({ selection: evt.detail });
32
+ this.submit();
33
+ }}
34
+ ...=${spread(this.selectionProps)}
35
+ >
36
+ </foxy-internal-async-list-control>
37
+ `;
38
+ }
39
+ }
40
+ //# sourceMappingURL=InternalResourcePickerControlForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalResourcePickerControlForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,wCAAqC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAIhC,MAAM,OAAO,iCAAkC,SAAQ,YAAkB;IAAzE;;QAYE,mBAAc,GAAiC,EAAE,CAAC;IAuBpD,CAAC;IAlCC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC;IAID,UAAU;QACR,OAAO,IAAI,CAAA;;;;;;;;;;qBAUM,CAAC,GAAwB,EAAE,EAAE;YACxC,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;cACK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;;;KAGpC,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { HALJSONResource, NucleonV8N } from '../../public/NucleonElement/types';\n\nimport { InternalForm } from '../InternalForm/InternalForm';\nimport { spread } from '@open-wc/lit-helpers';\nimport { html } from 'lit-html';\n\ntype Data = HALJSONResource & { selection: string; query: string };\n\nexport class InternalResourcePickerControlForm extends InternalForm<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n selectionProps: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [({ selection: v }) => (v === undefined ? 'silent:selection_required' : true)];\n }\n\n selectionProps: Record<PropertyKey, unknown> = {};\n\n renderBody(): TemplateResult {\n return html`\n <h2 class=\"leading-xs text-xxl font-medium break-all\">\n <foxy-i18n infer=\"\" key=\"header\"></foxy-i18n>\n </h2>\n\n <foxy-internal-async-list-control\n infer=\"selection\"\n form=\"foxy-null\"\n hide-delete-button\n hide-create-button\n @itemclick=${(evt: CustomEvent<string>) => {\n evt.preventDefault();\n this.edit({ selection: evt.detail });\n this.submit();\n }}\n ...=${spread(this.selectionProps)}\n >\n </foxy-internal-async-list-control>\n `;\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import '../InternalAsyncListControl/index';
2
+ import '../InternalEditableControl/index';
3
+ import '../InternalForm/index';
4
+ import '../../public/FormDialog/index';
5
+ import { InternalResourcePickerControl } from './InternalResourcePickerControl';
6
+ export { InternalResourcePickerControl };
@@ -0,0 +1,10 @@
1
+ import "../InternalAsyncListControl/index.js";
2
+ import "../InternalEditableControl/index.js";
3
+ import "../InternalForm/index.js";
4
+ import "../../public/FormDialog/index.js";
5
+ import { InternalResourcePickerControlForm } from "./InternalResourcePickerControlForm.js";
6
+ import { InternalResourcePickerControl } from "./InternalResourcePickerControl.js";
7
+ customElements.define('foxy-internal-resource-picker-control-form', InternalResourcePickerControlForm);
8
+ customElements.define('foxy-internal-resource-picker-control', InternalResourcePickerControl);
9
+ export { InternalResourcePickerControl };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAC3C,6CAA0C;AAC1C,kCAA+B;AAE/B,0CAAuC;AAEvC,OAAO,EAAE,iCAAiC,EAAE,+CAA4C;AACxF,OAAO,EAAE,6BAA6B,EAAE,2CAAwC;AAEhF,cAAc,CAAC,MAAM,CACnB,4CAA4C,EAC5C,iCAAiC,CAClC,CAAC;AAEF,cAAc,CAAC,MAAM,CAAC,uCAAuC,EAAE,6BAA6B,CAAC,CAAC;AAE9F,OAAO,EAAE,6BAA6B,EAAE,CAAC","sourcesContent":["import '../InternalAsyncListControl/index';\nimport '../InternalEditableControl/index';\nimport '../InternalForm/index';\n\nimport '../../public/FormDialog/index';\n\nimport { InternalResourcePickerControlForm } from './InternalResourcePickerControlForm';\nimport { InternalResourcePickerControl } from './InternalResourcePickerControl';\n\ncustomElements.define(\n 'foxy-internal-resource-picker-control-form',\n InternalResourcePickerControlForm\n);\n\ncustomElements.define('foxy-internal-resource-picker-control', InternalResourcePickerControl);\n\nexport { InternalResourcePickerControl };\n"]}
@@ -250,19 +250,21 @@ export class CouponForm extends Base {
250
250
  }
251
251
  renderHeaderActions(data) {
252
252
  return html `
253
- <foxy-internal-coupon-form-bulk-add-control
253
+ <foxy-internal-bulk-add-action-control
254
254
  parent=${data._links['fx:generate_codes'].href}
255
255
  infer="generate"
256
256
  form="foxy-generate-codes-form"
257
+ .related=${[data._links['fx:coupon_codes'].href]}
257
258
  >
258
- </foxy-internal-coupon-form-bulk-add-control>
259
+ </foxy-internal-bulk-add-action-control>
259
260
 
260
- <foxy-internal-coupon-form-bulk-add-control
261
+ <foxy-internal-bulk-add-action-control
261
262
  parent=${data._links['fx:coupon_codes'].href}
262
263
  infer="import"
263
264
  form="foxy-coupon-codes-form"
265
+ .related=${[data._links['fx:coupon_codes'].href]}
264
266
  >
265
- </foxy-internal-coupon-form-bulk-add-control>
267
+ </foxy-internal-bulk-add-action-control>
266
268
 
267
269
  ${super.renderHeaderActions(data)}
268
270
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"CouponForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/CouponForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult, PropertyDeclarations } from 'lit-element';\nimport type { Data, TransactionPageHrefGetter } from './types';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Action } from '../../internal/InternalAsyncListControl/types';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { Operator, Type } from '../QueryBuilder/types';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'coupon-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing coupons (`fx:coupon`).\n *\n * @slot import:before\n * @slot import:after\n *\n * @slot generate:before\n * @slot generate:after\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot rules:before\n * @slot rules:after\n *\n * @slot coupon-codes:before\n * @slot coupon-codes:after\n *\n * @slot item-option-restrictions:before\n * @slot item-option-restrictions:after\n *\n * @slot product-code-restrictions:before\n * @slot product-code-restrictions:after\n *\n * @slot category-restrictions:before\n * @slot category-restrictions:after\n *\n * @slot number-of-uses-allowed:before\n * @slot number-of-uses-allowed:after\n *\n * @slot number-of-uses-allowed-per-customer:before\n * @slot number-of-uses-allowed-per-customer:after\n *\n * @slot number-of-uses-allowed-per-code:before\n * @slot number-of-uses-allowed-per-code:after\n *\n * @slot start-date:before\n * @slot start-date:after\n *\n * @slot end-date:before\n * @slot end-date:after\n *\n * @slot inclusive-tax-rate:before\n * @slot inclusive-tax-rate:after\n *\n * @slot options:before\n * @slot options:after\n *\n * @slot customer-subscription-restrictions:before\n * @slot customer-subscription-restrictions:after\n *\n * @slot customer-attribute-restrictions:before\n * @slot customer-attribute-restrictions:after\n *\n * @slot attributes:before\n * @slot attributes:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n *\n * @element foxy-coupon-form\n * @since 1.15.0\n */\nexport class CouponForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\n __couponCodesActions: { type: Array },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n ({ inclusive_tax_rate: v }) => !v || v >= 0 || 'inclusive-tax-rate:v8n_too_small',\n ({ inclusive_tax_rate: v }) => !v || v <= 1 || 'inclusive-tax-rate:v8n_too_big',\n ({ number_of_uses_allowed: v }) => !v || v >= 0 || 'number-of-uses-allowed:v8n_too_small',\n ({ coupon_discount_details: v }) => !!v || 'rules:v8n_required',\n ({ coupon_discount_details: v }) => !v || v.length <= 200 || 'rules:v8n_too_long',\n ({ item_option_restrictions: v }) => {\n return !v || JSON.stringify(v).length <= 6000 || 'item-option-restrictions:v8n_too_long';\n },\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ({ customer_attribute_restrictions: v }) => {\n return !v || v.length <= 2000 || 'customer-attribute-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_code: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-code:v8n_too_small';\n },\n ({ customer_subscription_restrictions: v }) => {\n return !v || v.length <= 200 || 'customer-subscription-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_customer: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-customer:v8n_too_small';\n },\n ];\n }\n\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n private readonly __customerSubscriptionRestrictionsGetValue = () => {\n const items = this.form.customer_subscription_restrictions\n ?.split(',')\n .map(value => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .map(value => ({ value }));\n\n return items ?? [];\n };\n\n private readonly __customerSubscriptionRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n customer_subscription_restrictions: newValue\n .map(({ value }) => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .join(),\n });\n\n this.edit({\n customer_auto_apply:\n !!this.form.customer_subscription_restrictions ||\n !!this.form.customer_attribute_restrictions,\n });\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __itemOptionRestrictionsOperators = [Operator.In];\n\n private readonly __itemOptionRestrictionsGetValue = () => {\n const query = new URLSearchParams();\n const rules = this.form.item_option_restrictions ?? {};\n\n for (const key in rules) {\n query.set(`${key}:in`, rules[key].join(','));\n }\n\n return query.toString();\n };\n\n private readonly __itemOptionRestrictionsSetValue = (newValue: string) => {\n const rules = Object.fromEntries(\n Array.from(new URLSearchParams(newValue).entries()).map(([key, value]) => {\n return [key.replace(':in', ''), value.split(',').filter(v => !!v.trim())];\n })\n );\n\n this.edit({ item_option_restrictions: rules });\n };\n\n private readonly __optionsGetValue = () => {\n const value: string[] = [];\n\n if (this.form.multiple_codes_allowed) value.push('multiple_codes_allowed');\n if (this.form.combinable) value.push('combinable');\n if (this.form.exclude_category_discounts) value.push('exclude_category_discounts');\n if (this.form.exclude_line_item_discounts) value.push('exclude_line_item_discounts');\n if (this.form.is_taxable) value.push('is_taxable');\n if (this.form.shared_codes_allowed) value.push('shared_codes_allowed');\n if (this.form.customer_auto_apply) value.push('customer_auto_apply');\n\n return value;\n };\n\n private readonly __optionsSetValue = (newValue: string[]) => {\n this.edit({\n multiple_codes_allowed: newValue.includes('multiple_codes_allowed'),\n combinable: newValue.includes('combinable'),\n exclude_category_discounts: newValue.includes('exclude_category_discounts'),\n exclude_line_item_discounts: newValue.includes('exclude_line_item_discounts'),\n is_taxable: newValue.includes('is_taxable'),\n shared_codes_allowed: newValue.includes('shared_codes_allowed'),\n customer_auto_apply: newValue.includes('customer_auto_apply'),\n });\n };\n\n private readonly __optionsOptions = [\n { value: 'multiple_codes_allowed', label: 'option_multiple_codes_allowed' },\n { value: 'combinable', label: 'option_combinable' },\n { value: 'exclude_category_discounts', label: 'option_exclude_category_discounts' },\n { value: 'exclude_line_item_discounts', label: 'option_exclude_line_item_discounts' },\n { value: 'is_taxable', label: 'option_is_taxable' },\n { value: 'shared_codes_allowed', label: 'option_shared_codes_allowed' },\n { value: 'customer_auto_apply', label: 'option_customer_auto_apply' },\n ];\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'used_codes', path: 'number_of_uses_to_date', type: Type.Number },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __couponCodesActions: Action<Resource<Rels.CouponCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__couponCodesActions[0].state = 'busy';\n this.__couponCodesActions = [...this.__couponCodesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__couponCodesActions[0].state = 'end';\n } catch {\n this.__couponCodesActions[0].state = 'error';\n } finally {\n this.__couponCodesActions = [...this.__couponCodesActions];\n setTimeout(() => {\n this.__couponCodesActions[0].state = 'idle';\n this.__couponCodesActions = [...this.__couponCodesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.data) {\n alwaysMatch.push('coupon-codes', 'category-restrictions', 'attributes');\n }\n\n if (!this.form.customer_auto_apply) {\n alwaysMatch.push('customer-attribute-restrictions', 'customer-subscription-restrictions');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-coupon-form-bulk-add-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n >\n </foxy-internal-coupon-form-bulk-add-control>\n\n <foxy-internal-coupon-form-bulk-add-control\n parent=${data._links['fx:coupon_codes'].href}\n infer=\"import\"\n form=\"foxy-coupon-codes-form\"\n >\n </foxy-internal-coupon-form-bulk-add-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:coupon_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-text-control infer=\"name\"></foxy-internal-text-control>\n\n <foxy-internal-coupon-form-rules-control infer=\"rules\">\n </foxy-internal-coupon-form-rules-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"coupon-codes\"\n item=\"foxy-coupon-code-card\"\n form=\"foxy-coupon-code-form\"\n alert\n .formProps=${{ '.getTransactionPageHref': this.getTransactionPageHref }}\n .actions=${this.__couponCodesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-query-builder-control\n infer=\"item-option-restrictions\"\n disable-or\n .operators=${this.__itemOptionRestrictionsOperators}\n .getValue=${this.__itemOptionRestrictionsGetValue}\n .setValue=${this.__itemOptionRestrictionsSetValue}\n >\n </foxy-internal-query-builder-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"coupon_uri\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n embed-key=\"fx:coupon_item_categories\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:coupon_item_categories'].href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <div class=\"grid gap-l sm-grid-cols-3\">\n <foxy-internal-integer-control infer=\"number-of-uses-allowed\" min=\"0\" show-controls>\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-customer\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-code\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n </div>\n\n <div class=\"grid gap-l sm-grid-cols-2\">\n <foxy-internal-date-control infer=\"start-date\"></foxy-internal-date-control>\n <foxy-internal-date-control infer=\"end-date\"></foxy-internal-date-control>\n </div>\n\n <foxy-internal-number-control min=\"0\" max=\"1\" infer=\"inclusive-tax-rate\">\n </foxy-internal-number-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"options\"\n theme=\"vertical\"\n .getValue=${this.__optionsGetValue}\n .setValue=${this.__optionsSetValue}\n .options=${this.__optionsOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-editable-list-control\n infer=\"customer-subscription-restrictions\"\n .getValue=${this.__customerSubscriptionRestrictionsGetValue}\n .setValue=${this.__customerSubscriptionRestrictionsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-query-builder-control infer=\"customer-attribute-restrictions\">\n </foxy-internal-query-builder-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
1
+ {"version":3,"file":"CouponForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/CouponForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult, PropertyDeclarations } from 'lit-element';\nimport type { Data, TransactionPageHrefGetter } from './types';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Action } from '../../internal/InternalAsyncListControl/types';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { Operator, Type } from '../QueryBuilder/types';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'coupon-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing coupons (`fx:coupon`).\n *\n * @slot import:before\n * @slot import:after\n *\n * @slot generate:before\n * @slot generate:after\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot rules:before\n * @slot rules:after\n *\n * @slot coupon-codes:before\n * @slot coupon-codes:after\n *\n * @slot item-option-restrictions:before\n * @slot item-option-restrictions:after\n *\n * @slot product-code-restrictions:before\n * @slot product-code-restrictions:after\n *\n * @slot category-restrictions:before\n * @slot category-restrictions:after\n *\n * @slot number-of-uses-allowed:before\n * @slot number-of-uses-allowed:after\n *\n * @slot number-of-uses-allowed-per-customer:before\n * @slot number-of-uses-allowed-per-customer:after\n *\n * @slot number-of-uses-allowed-per-code:before\n * @slot number-of-uses-allowed-per-code:after\n *\n * @slot start-date:before\n * @slot start-date:after\n *\n * @slot end-date:before\n * @slot end-date:after\n *\n * @slot inclusive-tax-rate:before\n * @slot inclusive-tax-rate:after\n *\n * @slot options:before\n * @slot options:after\n *\n * @slot customer-subscription-restrictions:before\n * @slot customer-subscription-restrictions:after\n *\n * @slot customer-attribute-restrictions:before\n * @slot customer-attribute-restrictions:after\n *\n * @slot attributes:before\n * @slot attributes:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n *\n * @element foxy-coupon-form\n * @since 1.15.0\n */\nexport class CouponForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\n __couponCodesActions: { type: Array },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n ({ inclusive_tax_rate: v }) => !v || v >= 0 || 'inclusive-tax-rate:v8n_too_small',\n ({ inclusive_tax_rate: v }) => !v || v <= 1 || 'inclusive-tax-rate:v8n_too_big',\n ({ number_of_uses_allowed: v }) => !v || v >= 0 || 'number-of-uses-allowed:v8n_too_small',\n ({ coupon_discount_details: v }) => !!v || 'rules:v8n_required',\n ({ coupon_discount_details: v }) => !v || v.length <= 200 || 'rules:v8n_too_long',\n ({ item_option_restrictions: v }) => {\n return !v || JSON.stringify(v).length <= 6000 || 'item-option-restrictions:v8n_too_long';\n },\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ({ customer_attribute_restrictions: v }) => {\n return !v || v.length <= 2000 || 'customer-attribute-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_code: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-code:v8n_too_small';\n },\n ({ customer_subscription_restrictions: v }) => {\n return !v || v.length <= 200 || 'customer-subscription-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_customer: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-customer:v8n_too_small';\n },\n ];\n }\n\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n private readonly __customerSubscriptionRestrictionsGetValue = () => {\n const items = this.form.customer_subscription_restrictions\n ?.split(',')\n .map(value => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .map(value => ({ value }));\n\n return items ?? [];\n };\n\n private readonly __customerSubscriptionRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n customer_subscription_restrictions: newValue\n .map(({ value }) => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .join(),\n });\n\n this.edit({\n customer_auto_apply:\n !!this.form.customer_subscription_restrictions ||\n !!this.form.customer_attribute_restrictions,\n });\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __itemOptionRestrictionsOperators = [Operator.In];\n\n private readonly __itemOptionRestrictionsGetValue = () => {\n const query = new URLSearchParams();\n const rules = this.form.item_option_restrictions ?? {};\n\n for (const key in rules) {\n query.set(`${key}:in`, rules[key].join(','));\n }\n\n return query.toString();\n };\n\n private readonly __itemOptionRestrictionsSetValue = (newValue: string) => {\n const rules = Object.fromEntries(\n Array.from(new URLSearchParams(newValue).entries()).map(([key, value]) => {\n return [key.replace(':in', ''), value.split(',').filter(v => !!v.trim())];\n })\n );\n\n this.edit({ item_option_restrictions: rules });\n };\n\n private readonly __optionsGetValue = () => {\n const value: string[] = [];\n\n if (this.form.multiple_codes_allowed) value.push('multiple_codes_allowed');\n if (this.form.combinable) value.push('combinable');\n if (this.form.exclude_category_discounts) value.push('exclude_category_discounts');\n if (this.form.exclude_line_item_discounts) value.push('exclude_line_item_discounts');\n if (this.form.is_taxable) value.push('is_taxable');\n if (this.form.shared_codes_allowed) value.push('shared_codes_allowed');\n if (this.form.customer_auto_apply) value.push('customer_auto_apply');\n\n return value;\n };\n\n private readonly __optionsSetValue = (newValue: string[]) => {\n this.edit({\n multiple_codes_allowed: newValue.includes('multiple_codes_allowed'),\n combinable: newValue.includes('combinable'),\n exclude_category_discounts: newValue.includes('exclude_category_discounts'),\n exclude_line_item_discounts: newValue.includes('exclude_line_item_discounts'),\n is_taxable: newValue.includes('is_taxable'),\n shared_codes_allowed: newValue.includes('shared_codes_allowed'),\n customer_auto_apply: newValue.includes('customer_auto_apply'),\n });\n };\n\n private readonly __optionsOptions = [\n { value: 'multiple_codes_allowed', label: 'option_multiple_codes_allowed' },\n { value: 'combinable', label: 'option_combinable' },\n { value: 'exclude_category_discounts', label: 'option_exclude_category_discounts' },\n { value: 'exclude_line_item_discounts', label: 'option_exclude_line_item_discounts' },\n { value: 'is_taxable', label: 'option_is_taxable' },\n { value: 'shared_codes_allowed', label: 'option_shared_codes_allowed' },\n { value: 'customer_auto_apply', label: 'option_customer_auto_apply' },\n ];\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'used_codes', path: 'number_of_uses_to_date', type: Type.Number },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __couponCodesActions: Action<Resource<Rels.CouponCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__couponCodesActions[0].state = 'busy';\n this.__couponCodesActions = [...this.__couponCodesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__couponCodesActions[0].state = 'end';\n } catch {\n this.__couponCodesActions[0].state = 'error';\n } finally {\n this.__couponCodesActions = [...this.__couponCodesActions];\n setTimeout(() => {\n this.__couponCodesActions[0].state = 'idle';\n this.__couponCodesActions = [...this.__couponCodesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.data) {\n alwaysMatch.push('coupon-codes', 'category-restrictions', 'attributes');\n }\n\n if (!this.form.customer_auto_apply) {\n alwaysMatch.push('customer-attribute-restrictions', 'customer-subscription-restrictions');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:coupon_codes'].href}\n infer=\"import\"\n form=\"foxy-coupon-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:coupon_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-text-control infer=\"name\"></foxy-internal-text-control>\n\n <foxy-internal-coupon-form-rules-control infer=\"rules\">\n </foxy-internal-coupon-form-rules-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"coupon-codes\"\n item=\"foxy-coupon-code-card\"\n form=\"foxy-coupon-code-form\"\n alert\n .formProps=${{ '.getTransactionPageHref': this.getTransactionPageHref }}\n .actions=${this.__couponCodesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-query-builder-control\n infer=\"item-option-restrictions\"\n disable-or\n .operators=${this.__itemOptionRestrictionsOperators}\n .getValue=${this.__itemOptionRestrictionsGetValue}\n .setValue=${this.__itemOptionRestrictionsSetValue}\n >\n </foxy-internal-query-builder-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"coupon_uri\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n embed-key=\"fx:coupon_item_categories\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:coupon_item_categories'].href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <div class=\"grid gap-l sm-grid-cols-3\">\n <foxy-internal-integer-control infer=\"number-of-uses-allowed\" min=\"0\" show-controls>\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-customer\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-code\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n </div>\n\n <div class=\"grid gap-l sm-grid-cols-2\">\n <foxy-internal-date-control infer=\"start-date\"></foxy-internal-date-control>\n <foxy-internal-date-control infer=\"end-date\"></foxy-internal-date-control>\n </div>\n\n <foxy-internal-number-control min=\"0\" max=\"1\" infer=\"inclusive-tax-rate\">\n </foxy-internal-number-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"options\"\n theme=\"vertical\"\n .getValue=${this.__optionsGetValue}\n .setValue=${this.__optionsSetValue}\n .options=${this.__optionsOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-editable-list-control\n infer=\"customer-subscription-restrictions\"\n .getValue=${this.__customerSubscriptionRestrictionsGetValue}\n .setValue=${this.__customerSubscriptionRestrictionsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-query-builder-control infer=\"customer-attribute-restrictions\">\n </foxy-internal-query-builder-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import '../../internal/InternalAsyncResourceLinkListControl/index';
2
2
  import '../../internal/InternalCheckboxGroupControl/index';
3
+ import '../../internal/InternalBulkAddActionControl/index';
3
4
  import '../../internal/InternalEditableListControl/index';
4
5
  import '../../internal/InternalQueryBuilderControl/index';
5
6
  import '../../internal/InternalIntegerControl/index';
@@ -15,7 +16,6 @@ import '../CouponCodeForm/index';
15
16
  import '../NucleonElement/index';
16
17
  import '../AttributeForm/index';
17
18
  import '../AttributeCard/index';
18
- import './internal/InternalCouponFormBulkAddControl/index';
19
19
  import './internal/InternalCouponFormRulesControl/index';
20
20
  import { CouponForm } from './CouponForm';
21
21
  export { CouponForm };
@@ -1,5 +1,6 @@
1
1
  import "../../internal/InternalAsyncResourceLinkListControl/index.js";
2
2
  import "../../internal/InternalCheckboxGroupControl/index.js";
3
+ import "../../internal/InternalBulkAddActionControl/index.js";
3
4
  import "../../internal/InternalEditableListControl/index.js";
4
5
  import "../../internal/InternalQueryBuilderControl/index.js";
5
6
  import "../../internal/InternalIntegerControl/index.js";
@@ -15,7 +16,6 @@ import "../CouponCodeForm/index.js";
15
16
  import "../NucleonElement/index.js";
16
17
  import "../AttributeForm/index.js";
17
18
  import "../AttributeCard/index.js";
18
- import "./internal/InternalCouponFormBulkAddControl/index.js";
19
19
  import "./internal/InternalCouponFormRulesControl/index.js";
20
20
  import { CouponForm } from "./CouponForm.js";
21
21
  customElements.define('foxy-coupon-form', CouponForm);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,8DAA2D;AAC3D,6DAA0D;AAC1D,6DAA0D;AAC1D,wDAAqD;AACrD,uDAAoD;AACpD,qDAAkD;AAClD,qDAAkD;AAClD,8CAA2C;AAE3C,uCAAoC;AACpC,sCAAmC;AACnC,qCAAkC;AAClC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAEhC,8DAA2D;AAC3D,4DAAyD;AAEzD,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncResourceLinkListControl/index';\nimport '../../internal/InternalCheckboxGroupControl/index';\nimport '../../internal/InternalEditableListControl/index';\nimport '../../internal/InternalQueryBuilderControl/index';\nimport '../../internal/InternalIntegerControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalDateControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../GenerateCodesForm/index';\nimport '../ItemCategoryCard/index';\nimport '../CouponCodesForm/index';\nimport '../CouponCodeCard/index';\nimport '../CouponCodeForm/index';\nimport '../NucleonElement/index';\nimport '../AttributeForm/index';\nimport '../AttributeCard/index';\n\nimport './internal/InternalCouponFormBulkAddControl/index';\nimport './internal/InternalCouponFormRulesControl/index';\n\nimport { CouponForm } from './CouponForm';\n\ncustomElements.define('foxy-coupon-form', CouponForm);\n\nexport { CouponForm };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,8DAA2D;AAC3D,8DAA2D;AAC3D,6DAA0D;AAC1D,6DAA0D;AAC1D,wDAAqD;AACrD,uDAAoD;AACpD,qDAAkD;AAClD,qDAAkD;AAClD,8CAA2C;AAE3C,uCAAoC;AACpC,sCAAmC;AACnC,qCAAkC;AAClC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAEhC,4DAAyD;AAEzD,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncResourceLinkListControl/index';\nimport '../../internal/InternalCheckboxGroupControl/index';\nimport '../../internal/InternalBulkAddActionControl/index';\nimport '../../internal/InternalEditableListControl/index';\nimport '../../internal/InternalQueryBuilderControl/index';\nimport '../../internal/InternalIntegerControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalDateControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../GenerateCodesForm/index';\nimport '../ItemCategoryCard/index';\nimport '../CouponCodesForm/index';\nimport '../CouponCodeCard/index';\nimport '../CouponCodeForm/index';\nimport '../NucleonElement/index';\nimport '../AttributeForm/index';\nimport '../AttributeCard/index';\n\nimport './internal/InternalCouponFormRulesControl/index';\n\nimport { CouponForm } from './CouponForm';\n\ncustomElements.define('foxy-coupon-form', CouponForm);\n\nexport { CouponForm };\n"]}
@@ -3,13 +3,4 @@ import type { Rels } from '@foxy.io/sdk/backend';
3
3
  export declare type TransactionPageHrefGetter = (transactionHref: string, transaction: Resource<Rels.Transaction, {
4
4
  zoom: 'items';
5
5
  }>) => string | null;
6
- export declare type Data = Resource<Rels.Coupon> & {
7
- item_option_restrictions: null | Record<string, string[]>;
8
- shared_codes_allowed: boolean;
9
- inclusive_tax_rate: number;
10
- _links: {
11
- 'fx:attributes': {
12
- href: string;
13
- };
14
- };
15
- };
6
+ export declare type Data = Resource<Rels.Coupon>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type TransactionPageHrefGetter = (\n transactionHref: string,\n transaction: Resource<Rels.Transaction, { zoom: 'items' }>\n) => string | null;\n\nexport type Data = Resource<Rels.Coupon> & {\n // TODO: remove this once SDK is updated\n item_option_restrictions: null | Record<string, string[]>;\n shared_codes_allowed: boolean;\n inclusive_tax_rate: number;\n _links: { 'fx:attributes': { href: string } };\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type TransactionPageHrefGetter = (\n transactionHref: string,\n transaction: Resource<Rels.Transaction, { zoom: 'items' }>\n) => string | null;\n\nexport type Data = Resource<Rels.Coupon>;\n"]}
@@ -54,6 +54,11 @@ export declare class Customer extends Base<Data> {
54
54
  static get properties(): PropertyDeclarations;
55
55
  static get styles(): CSSResultArray;
56
56
  templates: Templates;
57
+ /**
58
+ * Configuration URL for the Payment Card Embed. If provided, this element will allow
59
+ * the customer to update their default payment method using the Payment Card Embed.
60
+ */
61
+ embedUrl: string | null;
57
62
  /** Customer Portal settings for use in Customer mode. */
58
63
  settings: Settings | null;
59
64
  private readonly __renderHeaderActionsEdit;