@foxy.io/elements 1.18.0-beta.20 → 1.18.0-beta.22

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 (337) hide show
  1. package/README.md +6 -1
  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-card.js +1 -1
  26. package/dist/cdn/foxy-customer-form.js +1 -1
  27. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  28. package/dist/cdn/foxy-customer-portal.js +1 -1
  29. package/dist/cdn/foxy-customer.js +1 -1
  30. package/dist/cdn/foxy-customers-table.js +1 -1
  31. package/dist/cdn/foxy-discount-builder.js +1 -1
  32. package/dist/cdn/foxy-discount-card.js +1 -1
  33. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  34. package/dist/cdn/foxy-donation.js +1 -1
  35. package/dist/cdn/foxy-email-template-card.js +1 -1
  36. package/dist/cdn/foxy-email-template-form.js +1 -1
  37. package/dist/cdn/foxy-error-entry-card.js +1 -1
  38. package/dist/cdn/foxy-form-dialog.js +1 -1
  39. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  40. package/dist/cdn/foxy-gift-card-card.js +1 -1
  41. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  42. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  43. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  44. package/dist/cdn/foxy-gift-card-form.js +1 -1
  45. package/dist/cdn/foxy-i18n-editor.js +2 -2
  46. package/dist/cdn/foxy-i18n.js +1 -1
  47. package/dist/cdn/foxy-integration-card.js +1 -1
  48. package/dist/cdn/foxy-integration-form.js +1 -1
  49. package/dist/cdn/foxy-item-card.js +1 -1
  50. package/dist/cdn/foxy-item-category-card.js +1 -1
  51. package/dist/cdn/foxy-item-category-form.js +1 -1
  52. package/dist/cdn/foxy-item-form.js +1 -1
  53. package/dist/cdn/foxy-item-option-card.js +1 -1
  54. package/dist/cdn/foxy-item-option-form.js +1 -1
  55. package/dist/cdn/foxy-items-form.js +1 -1
  56. package/dist/cdn/foxy-pagination.js +1 -1
  57. package/dist/cdn/foxy-payment-card.js +1 -1
  58. package/dist/cdn/foxy-payment-method-card.js +1 -1
  59. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  60. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  61. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  62. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  63. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  64. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  65. package/dist/cdn/foxy-query-builder.js +1 -1
  66. package/dist/cdn/foxy-report-form.js +2 -2
  67. package/dist/cdn/foxy-reports-table.js +5 -5
  68. package/dist/cdn/foxy-shipment-card.js +1 -1
  69. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  70. package/dist/cdn/foxy-sign-in-form.js +1 -1
  71. package/dist/cdn/foxy-spinner.js +1 -1
  72. package/dist/cdn/foxy-store-form.js +1 -1
  73. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  74. package/dist/cdn/foxy-subscription-card.js +1 -1
  75. package/dist/cdn/foxy-subscription-form.js +1 -1
  76. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  77. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  78. package/dist/cdn/foxy-table.js +1 -1
  79. package/dist/cdn/foxy-tax-card.js +1 -1
  80. package/dist/cdn/foxy-tax-form.js +1 -1
  81. package/dist/cdn/foxy-template-config-form.js +1 -1
  82. package/dist/cdn/foxy-template-form.js +1 -1
  83. package/dist/cdn/foxy-template-set-card.js +1 -1
  84. package/dist/cdn/foxy-template-set-form.js +1 -1
  85. package/dist/cdn/foxy-transaction-card.js +1 -1
  86. package/dist/cdn/foxy-transaction.js +1 -1
  87. package/dist/cdn/foxy-transactions-table.js +7 -7
  88. package/dist/cdn/foxy-user-form.js +1 -1
  89. package/dist/cdn/foxy-users-table.js +1 -1
  90. package/dist/cdn/foxy-webhook-card.js +1 -1
  91. package/dist/cdn/foxy-webhook-form.js +1 -1
  92. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  93. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  94. package/dist/cdn/{shared-39b184de.js → shared-08156595.js} +1 -1
  95. package/dist/cdn/shared-0821cfdc.js +1 -0
  96. package/dist/cdn/{shared-23bf6ee6.js → shared-08e27fe9.js} +3 -3
  97. package/dist/cdn/{shared-68e0cf30.js → shared-0ce006b9.js} +1 -1
  98. package/dist/cdn/shared-1000b848.js +1 -0
  99. package/dist/cdn/{shared-d384d6a3.js → shared-101d1234.js} +2 -2
  100. package/dist/cdn/{shared-7d658c02.js → shared-1c94a156.js} +1 -1
  101. package/dist/cdn/{shared-3ca1e8e4.js → shared-2092d86f.js} +1 -1
  102. package/dist/cdn/shared-21679ebd.js +1 -0
  103. package/dist/cdn/{shared-dbd4a5e8.js → shared-2add595d.js} +1 -1
  104. package/dist/cdn/{shared-1e94e6dd.js → shared-2cc638ad.js} +1 -1
  105. package/dist/cdn/{shared-0d4f9b06.js → shared-39c10b22.js} +1 -1
  106. package/dist/cdn/{shared-e99fa3d6.js → shared-404aa9cc.js} +1 -1
  107. package/dist/cdn/{shared-17c1eab2.js → shared-4849ef5b.js} +1 -1
  108. package/dist/cdn/shared-486d7bb5.js +1 -0
  109. package/dist/cdn/{shared-0f649dc6.js → shared-4f9d2417.js} +5 -5
  110. package/dist/cdn/{shared-413415b0.js → shared-5378bd8c.js} +1 -1
  111. package/dist/cdn/{shared-a90a5235.js → shared-5a4829e3.js} +1 -1
  112. package/dist/cdn/{shared-90c7dbdb.js → shared-5b177708.js} +1 -1
  113. package/dist/cdn/{shared-5b3ae513.js → shared-5ea18e60.js} +1 -1
  114. package/dist/cdn/{shared-ae588315.js → shared-62a54a6c.js} +1 -1
  115. package/dist/cdn/{shared-2f6e33b6.js → shared-62c088b7.js} +1 -1
  116. package/dist/cdn/{shared-5c6eb602.js → shared-639c666f.js} +1 -1
  117. package/dist/cdn/{shared-21689ac0.js → shared-6581241a.js} +1 -1
  118. package/dist/cdn/{shared-df462496.js → shared-6cb1015f.js} +1 -1
  119. package/dist/cdn/{shared-179ff8af.js → shared-71d8d167.js} +1 -1
  120. package/dist/cdn/{shared-cdc183c5.js → shared-71f2ef1f.js} +1 -1
  121. package/dist/cdn/{shared-9d7bbdd8.js → shared-744cf66b.js} +1 -1
  122. package/dist/cdn/{shared-a343ec6b.js → shared-7d4fb1a2.js} +1 -1
  123. package/dist/cdn/{shared-5ada1ccb.js → shared-80fc2b6a.js} +1 -1
  124. package/dist/cdn/{shared-034c6aeb.js → shared-83596b46.js} +1 -1
  125. package/dist/cdn/shared-868065de.js +1 -0
  126. package/dist/cdn/{shared-2b2002ac.js → shared-88c4cfec.js} +1 -1
  127. package/dist/cdn/{shared-cf784db1.js → shared-8dd0af4d.js} +1 -1
  128. package/dist/cdn/{shared-776f948d.js → shared-988ec916.js} +1 -1
  129. package/dist/cdn/{shared-c379590f.js → shared-9bdacf65.js} +1 -1
  130. package/dist/cdn/{shared-a41f2200.js → shared-9f436277.js} +1 -1
  131. package/dist/cdn/shared-a0c8faf2.js +1 -0
  132. package/dist/cdn/{shared-bae9da44.js → shared-a37abe4c.js} +2 -2
  133. package/dist/cdn/{shared-ea6c8bae.js → shared-a41234b4.js} +1 -1
  134. package/dist/cdn/{shared-6cc53630.js → shared-af226a9a.js} +1 -1
  135. package/dist/cdn/{shared-13982611.js → shared-b40cf0dd.js} +1 -1
  136. package/dist/cdn/{shared-9d511d7e.js → shared-bb0e33c3.js} +1 -1
  137. package/dist/cdn/{shared-b48e5aaf.js → shared-bc814810.js} +1 -1
  138. package/dist/cdn/{shared-88c7755d.js → shared-bd252323.js} +1 -1
  139. package/dist/cdn/{shared-869df7ed.js → shared-be66c2e7.js} +1 -1
  140. package/dist/cdn/{shared-e06b70cc.js → shared-c774d080.js} +1 -1
  141. package/dist/cdn/{shared-e94165e9.js → shared-c95c17e6.js} +1 -1
  142. package/dist/cdn/shared-cba08e1c.js +1 -0
  143. package/dist/cdn/{shared-7fb8ecc5.js → shared-d518bd55.js} +1 -1
  144. package/dist/cdn/{shared-004f1a77.js → shared-d61b3e4f.js} +1 -1
  145. package/dist/cdn/{shared-d4a652b7.js → shared-d8dc97f0.js} +1 -1
  146. package/dist/cdn/{shared-bf47ead0.js → shared-de036570.js} +1 -1
  147. package/dist/cdn/{shared-1db07286.js → shared-ed0dee03.js} +1 -1
  148. package/dist/cdn/shared-f7e4cd67.js +1 -0
  149. package/dist/cdn/{shared-8eb4c8d7.js → shared-f80f402a.js} +1 -1
  150. package/dist/cdn/translations/cart-card/en.json +3 -3
  151. package/dist/cdn/translations/gift-card-code-form/en.json +6 -3
  152. package/dist/cdn/translations/gift-card-code-log-card/en.json +6 -3
  153. package/dist/cdn/translations/integration-form/en.json +13 -15
  154. package/dist/cdn/translations/payments-api-fraud-protection-card/en.json +0 -2
  155. package/dist/cdn/translations/payments-api-payment-method-card/en.json +0 -2
  156. package/dist/cdn/translations/payments-api-payment-preset-form/en.json +2 -2
  157. package/dist/cdn/translations/template-set-form/en.json +10 -0
  158. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +10 -5
  159. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  160. package/dist/elements/internal/InternalControl/InternalControl.js +2 -2
  161. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -1
  162. package/dist/elements/internal/InternalDetails/InternalDetails.js +3 -3
  163. package/dist/elements/internal/InternalDetails/InternalDetails.js.map +1 -1
  164. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js +1 -1
  165. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js.map +1 -1
  166. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +1 -1
  167. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +3 -2
  168. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
  169. package/dist/elements/private/Group/Group.js +1 -1
  170. package/dist/elements/private/Group/Group.js.map +1 -1
  171. package/dist/elements/private/Warning/Warning.js +1 -3
  172. package/dist/elements/private/Warning/Warning.js.map +1 -1
  173. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.d.ts +12 -0
  174. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +12 -0
  175. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -1
  176. package/dist/elements/public/AdminSubscriptionCard/index.d.ts +1 -0
  177. package/dist/elements/public/AdminSubscriptionCard/index.js +1 -0
  178. package/dist/elements/public/AdminSubscriptionCard/index.js.map +1 -1
  179. package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.d.ts +2 -2
  180. package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.js +7 -8
  181. package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.js.map +1 -1
  182. package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.d.ts +23 -4
  183. package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js +19 -0
  184. package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js.map +1 -1
  185. package/dist/elements/public/AppliedCouponCodeForm/types.d.ts +12 -0
  186. package/dist/elements/public/AppliedCouponCodeForm/types.js.map +1 -1
  187. package/dist/elements/public/AppliedTaxCard/AppliedTaxCard.d.ts +1 -1
  188. package/dist/elements/public/AppliedTaxCard/AppliedTaxCard.js +2 -2
  189. package/dist/elements/public/AppliedTaxCard/AppliedTaxCard.js.map +1 -1
  190. package/dist/elements/public/AttributeCard/AttributeCard.js +28 -14
  191. package/dist/elements/public/AttributeCard/AttributeCard.js.map +1 -1
  192. package/dist/elements/public/CartCard/CartCard.d.ts +7 -2
  193. package/dist/elements/public/CartCard/CartCard.js +16 -9
  194. package/dist/elements/public/CartCard/CartCard.js.map +1 -1
  195. package/dist/elements/public/CartForm/CartForm.d.ts +106 -1
  196. package/dist/elements/public/CartForm/CartForm.js +167 -37
  197. package/dist/elements/public/CartForm/CartForm.js.map +1 -1
  198. package/dist/elements/public/CartForm/index.d.ts +2 -0
  199. package/dist/elements/public/CartForm/index.js +2 -0
  200. package/dist/elements/public/CartForm/index.js.map +1 -1
  201. package/dist/elements/public/CartForm/types.d.ts +64 -0
  202. package/dist/elements/public/CartForm/types.js.map +1 -1
  203. package/dist/elements/public/CouponDetailCard/CouponDetailCard.d.ts +1 -1
  204. package/dist/elements/public/CouponDetailCard/CouponDetailCard.js +2 -2
  205. package/dist/elements/public/CouponDetailCard/CouponDetailCard.js.map +1 -1
  206. package/dist/elements/public/CouponForm/CouponForm.js +13 -9
  207. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  208. package/dist/elements/public/CustomFieldCard/CustomFieldCard.d.ts +1 -1
  209. package/dist/elements/public/CustomFieldCard/CustomFieldCard.js +2 -2
  210. package/dist/elements/public/CustomFieldCard/CustomFieldCard.js.map +1 -1
  211. package/dist/elements/public/CustomFieldCard/TwoLineCard.d.ts +6 -12
  212. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +5 -35
  213. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  214. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +4 -4
  215. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -1
  216. package/dist/elements/public/DiscountCard/DiscountCard.d.ts +1 -1
  217. package/dist/elements/public/DiscountCard/DiscountCard.js +2 -2
  218. package/dist/elements/public/DiscountCard/DiscountCard.js.map +1 -1
  219. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.d.ts +1 -1
  220. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js +2 -2
  221. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js.map +1 -1
  222. package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.d.ts +1 -1
  223. package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.js +2 -2
  224. package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.js.map +1 -1
  225. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +10 -2
  226. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
  227. package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.d.ts +13 -2
  228. package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js +66 -76
  229. package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js.map +1 -1
  230. package/dist/elements/public/GiftCardCodeLogCard/index.d.ts +1 -2
  231. package/dist/elements/public/GiftCardCodeLogCard/index.js +1 -2
  232. package/dist/elements/public/GiftCardCodeLogCard/index.js.map +1 -1
  233. package/dist/elements/public/GiftCardForm/GiftCardForm.js +3 -3
  234. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  235. package/dist/elements/public/I18n/format/price.js +1 -0
  236. package/dist/elements/public/I18n/format/price.js.map +1 -1
  237. package/dist/elements/public/I18nEditor/I18nEditor.d.ts +9 -0
  238. package/dist/elements/public/I18nEditor/I18nEditor.js +13 -4
  239. package/dist/elements/public/I18nEditor/I18nEditor.js.map +1 -1
  240. package/dist/elements/public/IntegrationForm/IntegrationForm.d.ts +35 -0
  241. package/dist/elements/public/IntegrationForm/IntegrationForm.js +156 -164
  242. package/dist/elements/public/IntegrationForm/IntegrationForm.js.map +1 -1
  243. package/dist/elements/public/IntegrationForm/index.d.ts +1 -0
  244. package/dist/elements/public/IntegrationForm/index.js +1 -0
  245. package/dist/elements/public/IntegrationForm/index.js.map +1 -1
  246. package/dist/elements/public/ItemCard/ItemCard.js +14 -15
  247. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  248. package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.d.ts +1 -1
  249. package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js +2 -2
  250. package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js.map +1 -1
  251. package/dist/elements/public/ItemOptionCard/ItemOptionCard.d.ts +1 -1
  252. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js +2 -2
  253. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js.map +1 -1
  254. package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.d.ts +23 -2
  255. package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js +35 -19
  256. package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js.map +1 -1
  257. package/dist/elements/public/PaymentsApiFraudProtectionCard/index.d.ts +2 -1
  258. package/dist/elements/public/PaymentsApiFraudProtectionCard/index.js +2 -1
  259. package/dist/elements/public/PaymentsApiFraudProtectionCard/index.js.map +1 -1
  260. package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.d.ts +41 -3
  261. package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.js +142 -84
  262. package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.js.map +1 -1
  263. package/dist/elements/public/PaymentsApiFraudProtectionForm/index.d.ts +2 -3
  264. package/dist/elements/public/PaymentsApiFraudProtectionForm/index.js +2 -3
  265. package/dist/elements/public/PaymentsApiFraudProtectionForm/index.js.map +1 -1
  266. package/dist/elements/public/PaymentsApiFraudProtectionForm/types.d.ts +15 -0
  267. package/dist/elements/public/PaymentsApiFraudProtectionForm/types.js.map +1 -1
  268. package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.d.ts +23 -3
  269. package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js +34 -20
  270. package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js.map +1 -1
  271. package/dist/elements/public/PaymentsApiPaymentMethodCard/index.d.ts +2 -1
  272. package/dist/elements/public/PaymentsApiPaymentMethodCard/index.js +2 -1
  273. package/dist/elements/public/PaymentsApiPaymentMethodCard/index.js.map +1 -1
  274. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.d.ts +70 -3
  275. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +314 -263
  276. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
  277. package/dist/elements/public/PaymentsApiPaymentMethodForm/index.d.ts +2 -0
  278. package/dist/elements/public/PaymentsApiPaymentMethodForm/index.js +2 -0
  279. package/dist/elements/public/PaymentsApiPaymentMethodForm/index.js.map +1 -1
  280. package/dist/elements/public/PaymentsApiPaymentMethodForm/types.d.ts +29 -0
  281. package/dist/elements/public/PaymentsApiPaymentMethodForm/types.js.map +1 -1
  282. package/dist/elements/public/PaymentsApiPaymentPresetCard/PaymentsApiPaymentPresetCard.d.ts +1 -1
  283. package/dist/elements/public/PaymentsApiPaymentPresetCard/PaymentsApiPaymentPresetCard.js +2 -2
  284. package/dist/elements/public/PaymentsApiPaymentPresetCard/PaymentsApiPaymentPresetCard.js.map +1 -1
  285. package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.d.ts +40 -1
  286. package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js +93 -74
  287. package/dist/elements/public/PaymentsApiPaymentPresetForm/PaymentsApiPaymentPresetForm.js.map +1 -1
  288. package/dist/elements/public/PaymentsApiPaymentPresetForm/types.d.ts +14 -0
  289. package/dist/elements/public/PaymentsApiPaymentPresetForm/types.js.map +1 -1
  290. package/dist/elements/public/ReportForm/ReportForm.js +4 -1
  291. package/dist/elements/public/ReportForm/ReportForm.js.map +1 -1
  292. package/dist/elements/public/StoreForm/StoreForm.d.ts +153 -1
  293. package/dist/elements/public/StoreForm/StoreForm.js +191 -27
  294. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  295. package/dist/elements/public/StoreForm/index.d.ts +1 -0
  296. package/dist/elements/public/StoreForm/index.js +1 -0
  297. package/dist/elements/public/StoreForm/index.js.map +1 -1
  298. package/dist/elements/public/StoreForm/types.d.ts +94 -0
  299. package/dist/elements/public/StoreForm/types.js.map +1 -1
  300. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.d.ts +1 -1
  301. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +1 -1
  302. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
  303. package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.d.ts +50 -1
  304. package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js +49 -0
  305. package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js.map +1 -1
  306. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.js +1 -1
  307. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.js.map +1 -1
  308. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.d.ts +1 -0
  309. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.js +1 -0
  310. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.js.map +1 -1
  311. package/dist/elements/public/SubscriptionSettingsForm/types.d.ts +33 -1
  312. package/dist/elements/public/SubscriptionSettingsForm/types.js.map +1 -1
  313. package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js +4 -1
  314. package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js.map +1 -1
  315. package/dist/elements/public/TemplateForm/TemplateForm.js +10 -2
  316. package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
  317. package/dist/elements/public/TemplateSetCard/TemplateSetCard.d.ts +1 -1
  318. package/dist/elements/public/TemplateSetCard/TemplateSetCard.js +2 -2
  319. package/dist/elements/public/TemplateSetCard/TemplateSetCard.js.map +1 -1
  320. package/dist/elements/public/TemplateSetForm/TemplateSetForm.d.ts +49 -8
  321. package/dist/elements/public/TemplateSetForm/TemplateSetForm.js +100 -64
  322. package/dist/elements/public/TemplateSetForm/TemplateSetForm.js.map +1 -1
  323. package/dist/elements/public/TemplateSetForm/index.d.ts +1 -0
  324. package/dist/elements/public/TemplateSetForm/index.js +1 -0
  325. package/dist/elements/public/TemplateSetForm/index.js.map +1 -1
  326. package/dist/elements/public/TemplateSetForm/types.d.ts +22 -0
  327. package/dist/elements/public/TemplateSetForm/types.js.map +1 -1
  328. package/dist/mixins/themeable.js +19 -12
  329. package/dist/mixins/themeable.js.map +1 -1
  330. package/package.json +2 -1
  331. package/dist/cdn/shared-11ffd643.js +0 -1
  332. package/dist/cdn/shared-1351c1e3.js +0 -1
  333. package/dist/cdn/shared-2f9b7791.js +0 -1
  334. package/dist/cdn/shared-79d6a262.js +0 -1
  335. package/dist/cdn/shared-888d690a.js +0 -1
  336. package/dist/cdn/shared-b7636a23.js +0 -1
  337. package/dist/cdn/shared-fafafc09.js +0 -1
@@ -5,104 +5,94 @@ import { classMap } from "../../../utils/class-map.js";
5
5
  import { html } from 'lit-html';
6
6
  const NS = 'gift-card-code-log-card';
7
7
  const Base = TranslatableMixin(InternalCard, NS);
8
+ /**
9
+ * Card element representing a gift card code log (`fx:gift_card_code_log`).
10
+ *
11
+ * @element foxy-gift-card-code-log-card
12
+ * @since 1.21.1
13
+ */
8
14
  export class GiftCardCodeLogCard extends Base {
9
15
  constructor() {
10
16
  super(...arguments);
11
- this.__giftCard = null;
12
- this.__store = null;
17
+ this.__giftCardLoaderId = 'giftCardLoader';
18
+ this.__storeLoaderId = 'storeLoader';
13
19
  }
14
20
  renderBody() {
15
- var _a, _b, _c, _d, _e;
16
- const balanceAdjustment = (_a = this.form.balance_adjustment) !== null && _a !== void 0 ? _a : 0;
17
- const hasTransaction = typeof this.form.transaction_id === 'number';
18
- const subtitleKey = hasTransaction ? 'status_used' : 'status_updated_via_api';
19
- const currency = (_b = this.__giftCard) === null || _b === void 0 ? void 0 : _b.currency_code;
20
- const icon = hasTransaction ? 'icons:shopping-cart' : 'icons:settings';
21
- const lang = this.lang || 'en';
22
- let formattedBalanceAdjustment;
23
- try {
24
- formattedBalanceAdjustment = balanceAdjustment.toLocaleString(lang, {
25
- maximumFractionDigits: 2,
26
- minimumFractionDigits: 2,
27
- currencyDisplay: ((_c = this.__store) === null || _c === void 0 ? void 0 : _c.use_international_currency_symbol) ? 'code' : 'symbol',
28
- signDisplay: 'exceptZero',
29
- currency,
30
- style: 'currency',
31
- });
32
- }
33
- catch (_f) {
34
- formattedBalanceAdjustment = String(balanceAdjustment);
35
- }
21
+ var _a, _b, _c, _d;
22
+ const data = this.data;
23
+ const adjustment = (_a = data === null || data === void 0 ? void 0 : data.balance_adjustment) !== null && _a !== void 0 ? _a : 0;
24
+ const hasTransaction = typeof (data === null || data === void 0 ? void 0 : data.transaction_id) === 'number';
25
+ const titleKey = hasTransaction ? 'title_used' : 'title_updated_via_api';
26
+ const subtitleKey = hasTransaction ? 'subtitle_transaction' : 'subtitle_no_transaction';
27
+ const subtitleOptions = { transaction_id: data === null || data === void 0 ? void 0 : data.transaction_id };
28
+ const dateOptions = {
29
+ date_created: data === null || data === void 0 ? void 0 : data.date_created,
30
+ month: 'short',
31
+ };
32
+ const adjustmentOptions = {
33
+ currencyDisplay: ((_b = this.__store) === null || _b === void 0 ? void 0 : _b.use_international_currency_symbol) ? 'code' : 'symbol',
34
+ signDisplay: 'exceptZero',
35
+ amount: `${adjustment} ${(_c = this.__giftCard) === null || _c === void 0 ? void 0 : _c.currency_code}`,
36
+ };
36
37
  return html `
37
38
  <foxy-nucleon
38
39
  infer=""
39
- href=${ifDefined((_d = this.form._links) === null || _d === void 0 ? void 0 : _d['fx:gift_card'].href)}
40
- @update=${(evt) => {
41
- const nucleon = evt.currentTarget;
42
- this.__giftCard = nucleon.data;
43
- this.requestUpdate();
44
- }}
40
+ href=${ifDefined((_d = data === null || data === void 0 ? void 0 : data._links) === null || _d === void 0 ? void 0 : _d['fx:gift_card'].href)}
41
+ id=${this.__giftCardLoaderId}
42
+ @update=${() => this.requestUpdate()}
45
43
  >
46
44
  </foxy-nucleon>
47
45
 
48
46
  <foxy-nucleon
49
47
  infer=""
50
- href=${ifDefined((_e = this.form._links) === null || _e === void 0 ? void 0 : _e['fx:store'].href)}
51
- @update=${(evt) => {
52
- const nucleon = evt.currentTarget;
53
- this.__store = nucleon.data;
54
- this.requestUpdate();
55
- }}
48
+ href=${ifDefined(data === null || data === void 0 ? void 0 : data._links['fx:store'].href)}
49
+ id=${this.__storeLoaderId}
50
+ @update=${() => this.requestUpdate()}
56
51
  >
57
52
  </foxy-nucleon>
58
53
 
59
- <div class="flex items-start gap-s leading-none">
60
- <iron-icon class="icon-inline text-m" icon=${icon}></iron-icon>
61
-
62
- <div class="flex-1">
63
- <foxy-i18n
64
- infer=""
65
- class="block mb-xs font-semibold"
66
- key="title"
67
- .options=${{ date: this.form.date_created }}
68
- >
69
- </foxy-i18n>
70
-
71
- <div class="text-secondary">
72
- <foxy-i18n infer="" key=${subtitleKey}></foxy-i18n>
73
- ${hasTransaction
74
- ? html `
75
- &bull;
76
- <button
77
- class="underline"
78
- @click=${() => {
79
- var _a;
80
- const event = new CustomEvent('navigation', {
81
- composed: true,
82
- bubbles: true,
83
- detail: (_a = this.form._links) === null || _a === void 0 ? void 0 : _a['fx:transaction'].href,
84
- });
85
- this.dispatchEvent(event);
86
- }}
87
- >
88
- #${this.form.transaction_id}
89
- </button>
90
- `
91
- : ''}
92
- </div>
54
+ <div class="leading-s">
55
+ <div class="flex justify-between items-center">
56
+ <span class="text-body font-semibold truncate">
57
+ <foxy-i18n infer="" key=${titleKey}></foxy-i18n>
58
+ </span>
59
+ <span class="text-s text-tertiary flex-shrink-0">
60
+ <foxy-i18n infer="" key="date" .options=${dateOptions}></foxy-i18n>
61
+ </span>
93
62
  </div>
94
63
 
95
- <div
96
- class=${classMap({
97
- 'font-semibold font-tnum': true,
98
- 'text-success': balanceAdjustment > 0,
99
- 'text-error': balanceAdjustment < 0,
64
+ <div class="text-s text-secondary truncate">
65
+ <foxy-i18n infer="" key=${subtitleKey} .options=${subtitleOptions}></foxy-i18n>
66
+ <span class="text-tertiary">&bull;</span>
67
+ <span
68
+ class=${classMap({
69
+ 'text-tertiary': adjustment === 0,
70
+ 'text-success': adjustment > 0,
71
+ 'text-error': adjustment < 0,
100
72
  })}
101
- >
102
- ${formattedBalanceAdjustment}
73
+ >
74
+ <foxy-i18n infer="" key="adjustment" .options=${adjustmentOptions}></foxy-i18n>
75
+ </span>
103
76
  </div>
104
77
  </div>
105
78
  `;
106
79
  }
80
+ get isBodyReady() {
81
+ return super.isBodyReady && !!this.__giftCard && !!this.__store;
82
+ }
83
+ get __giftCardLoader() {
84
+ return this.renderRoot.querySelector(`#${this.__giftCardLoaderId}`);
85
+ }
86
+ get __storeLoader() {
87
+ return this.renderRoot.querySelector(`#${this.__storeLoaderId}`);
88
+ }
89
+ get __giftCard() {
90
+ var _a;
91
+ return (_a = this.__giftCardLoader) === null || _a === void 0 ? void 0 : _a.data;
92
+ }
93
+ get __store() {
94
+ var _a;
95
+ return (_a = this.__storeLoader) === null || _a === void 0 ? void 0 : _a.data;
96
+ }
107
97
  }
108
98
  //# sourceMappingURL=GiftCardCodeLogCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GiftCardCodeLogCard.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\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 { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\nimport { NucleonElement } from '../NucleonElement';\n\nconst NS = 'gift-card-code-log-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\nexport class GiftCardCodeLogCard extends Base<Data> {\n private __giftCard: Resource<Rels.GiftCard> | null = null;\n\n private __store: Resource<Rels.Store> | null = null;\n\n renderBody(): TemplateResult {\n const balanceAdjustment = this.form.balance_adjustment ?? 0;\n const hasTransaction = typeof this.form.transaction_id === 'number';\n const subtitleKey = hasTransaction ? 'status_used' : 'status_updated_via_api';\n const currency = this.__giftCard?.currency_code;\n const icon = hasTransaction ? 'icons:shopping-cart' : 'icons:settings';\n const lang = this.lang || 'en';\n\n let formattedBalanceAdjustment: string;\n\n try {\n formattedBalanceAdjustment = balanceAdjustment.toLocaleString(lang, {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n currencyDisplay: this.__store?.use_international_currency_symbol ? 'code' : 'symbol',\n signDisplay: 'exceptZero',\n currency,\n style: 'currency',\n });\n } catch {\n formattedBalanceAdjustment = String(balanceAdjustment);\n }\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(this.form._links?.['fx:gift_card'].href)}\n @update=${(evt: CustomEvent) => {\n const nucleon = evt.currentTarget as NucleonElement<Resource<Rels.GiftCard>>;\n this.__giftCard = nucleon.data;\n this.requestUpdate();\n }}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(this.form._links?.['fx:store'].href)}\n @update=${(evt: CustomEvent) => {\n const nucleon = evt.currentTarget as NucleonElement<Resource<Rels.Store>>;\n this.__store = nucleon.data;\n this.requestUpdate();\n }}\n >\n </foxy-nucleon>\n\n <div class=\"flex items-start gap-s leading-none\">\n <iron-icon class=\"icon-inline text-m\" icon=${icon}></iron-icon>\n\n <div class=\"flex-1\">\n <foxy-i18n\n infer=\"\"\n class=\"block mb-xs font-semibold\"\n key=\"title\"\n .options=${{ date: this.form.date_created }}\n >\n </foxy-i18n>\n\n <div class=\"text-secondary\">\n <foxy-i18n infer=\"\" key=${subtitleKey}></foxy-i18n>\n ${hasTransaction\n ? html`\n &bull;\n <button\n class=\"underline\"\n @click=${() => {\n const event = new CustomEvent('navigation', {\n composed: true,\n bubbles: true,\n detail: this.form._links?.['fx:transaction'].href,\n });\n\n this.dispatchEvent(event);\n }}\n >\n #${this.form.transaction_id}\n </button>\n `\n : ''}\n </div>\n </div>\n\n <div\n class=${classMap({\n 'font-semibold font-tnum': true,\n 'text-success': balanceAdjustment > 0,\n 'text-error': balanceAdjustment < 0,\n })}\n >\n ${formattedBalanceAdjustment}\n </div>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"GiftCardCodeLogCard.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'gift-card-code-log-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\n/**\n * Card element representing a gift card code log (`fx:gift_card_code_log`).\n *\n * @element foxy-gift-card-code-log-card\n * @since 1.21.1\n */\nexport class GiftCardCodeLogCard extends Base<Data> {\n private readonly __giftCardLoaderId = 'giftCardLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n renderBody(): TemplateResult {\n const data = this.data;\n\n const adjustment = data?.balance_adjustment ?? 0;\n const hasTransaction = typeof data?.transaction_id === 'number';\n\n const titleKey = hasTransaction ? 'title_used' : 'title_updated_via_api';\n const subtitleKey = hasTransaction ? 'subtitle_transaction' : 'subtitle_no_transaction';\n const subtitleOptions = { transaction_id: data?.transaction_id };\n\n const dateOptions = {\n date_created: data?.date_created,\n month: 'short',\n };\n\n const adjustmentOptions = {\n currencyDisplay: this.__store?.use_international_currency_symbol ? 'code' : 'symbol',\n signDisplay: 'exceptZero',\n amount: `${adjustment} ${this.__giftCard?.currency_code}`,\n };\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(data?._links?.['fx:gift_card'].href)}\n id=${this.__giftCardLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <div class=\"leading-s\">\n <div class=\"flex justify-between items-center\">\n <span class=\"text-body font-semibold truncate\">\n <foxy-i18n infer=\"\" key=${titleKey}></foxy-i18n>\n </span>\n <span class=\"text-s text-tertiary flex-shrink-0\">\n <foxy-i18n infer=\"\" key=\"date\" .options=${dateOptions}></foxy-i18n>\n </span>\n </div>\n\n <div class=\"text-s text-secondary truncate\">\n <foxy-i18n infer=\"\" key=${subtitleKey} .options=${subtitleOptions}></foxy-i18n>\n <span class=\"text-tertiary\">&bull;</span>\n <span\n class=${classMap({\n 'text-tertiary': adjustment === 0,\n 'text-success': adjustment > 0,\n 'text-error': adjustment < 0,\n })}\n >\n <foxy-i18n infer=\"\" key=\"adjustment\" .options=${adjustmentOptions}></foxy-i18n>\n </span>\n </div>\n </div>\n `;\n }\n\n get isBodyReady(): boolean {\n return super.isBodyReady && !!this.__giftCard && !!this.__store;\n }\n\n private get __giftCardLoader() {\n type Loader = NucleonElement<Resource<Rels.GiftCard>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__giftCardLoaderId}`);\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n\n private get __giftCard() {\n return this.__giftCardLoader?.data;\n }\n\n private get __store() {\n return this.__storeLoader?.data;\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
- import '@polymer/iron-icons';
2
- import '@polymer/iron-icon';
3
1
  import '../../internal/InternalCard/index';
2
+ import '../NucleonElement/index';
4
3
  import '../I18n/index';
5
4
  import { GiftCardCodeLogCard } from './GiftCardCodeLogCard';
6
5
  export { GiftCardCodeLogCard };
@@ -1,6 +1,5 @@
1
- import '@polymer/iron-icons';
2
- import '@polymer/iron-icon';
3
1
  import "../../internal/InternalCard/index.js";
2
+ import "../NucleonElement/index.js";
4
3
  import "../I18n/index.js";
5
4
  import { GiftCardCodeLogCard } from "./GiftCardCodeLogCard.js";
6
5
  customElements.define('foxy-gift-card-code-log-card', GiftCardCodeLogCard);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAE5B,8CAA2C;AAE3C,0BAAuB;AAEvB,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["import '@polymer/iron-icons';\nimport '@polymer/iron-icon';\n\nimport '../../internal/InternalCard/index';\n\nimport '../I18n/index';\n\nimport { GiftCardCodeLogCard } from './GiftCardCodeLogCard';\n\ncustomElements.define('foxy-gift-card-code-log-card', GiftCardCodeLogCard);\n\nexport { GiftCardCodeLogCard };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAE3C,oCAAiC;AACjC,0BAAuB;AAEvB,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalCard/index';\n\nimport '../NucleonElement/index';\nimport '../I18n/index';\n\nimport { GiftCardCodeLogCard } from './GiftCardCodeLogCard';\n\ncustomElements.define('foxy-gift-card-code-log-card', GiftCardCodeLogCard);\n\nexport { GiftCardCodeLogCard };\n"]}
@@ -448,7 +448,7 @@ export class GiftCardForm extends Base {
448
448
  </div>
449
449
 
450
450
  <foxy-query-builder
451
- class="bg-contrast-5 rounded-tl-l rounded-tr-s rounded-b-l p-m mb-s"
451
+ class="my-s"
452
452
  lang=${lang}
453
453
  ns="${ns} ${(_c = (_b = customElements.get('foxy-query-builder')) === null || _b === void 0 ? void 0 : _b.defaultNS) !== null && _c !== void 0 ? _c : ''}"
454
454
  ?disabled=${isDisabled}
@@ -469,7 +469,7 @@ export class GiftCardForm extends Base {
469
469
  ?disabled=${isDisabled}
470
470
  >
471
471
  <foxy-table
472
- class="px-m mb-s border border-contrast-10 rounded-t-l rounded-b-l"
472
+ class="px-m mb-s border border-contrast-10 rounded"
473
473
  group=${group}
474
474
  lang=${lang}
475
475
  ns=${ns}
@@ -603,7 +603,7 @@ export class GiftCardForm extends Base {
603
603
  gift-card-item-categories=${ifDefined(giftCardItemCategories)}
604
604
  data-testid="category-restrictions:page"
605
605
  gift-card=${this.href}
606
- class="border border-contrast-10 rounded-t-l rounded-b-l mb-s"
606
+ class="border border-contrast-10 rounded mb-s"
607
607
  group=${this.group}
608
608
  lang=${this.lang}
609
609
  ns=${this.ns}
@@ -1 +1 @@
1
- {"version":3,"file":"GiftCardForm.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/GiftCardForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data, GiftCardCodes } from './types';\nimport { Option, Type } from '../QueryBuilder/types';\nimport { PropertyDeclarations, TemplateResult, html } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { CategoryRestrictionsPage } from './private/CategoryRestrictionsPage';\nimport { Column } from '../Table/types';\nimport { ComboBoxElement } from '@vaadin/vaadin-combo-box';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { EditableList } from '../../private/EditableList/EditableList';\nimport { FormDialog } from '../FormDialog';\nimport { FrequencyInput } from '../../private/FrequencyInput/FrequencyInput';\nimport { FrequencyInputChangeEvent } from '../../private/FrequencyInput/FrequencyInputChangeEvent';\nimport { Group } from '../../private/Group/Group';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { PropertyTable } from '../../private/PropertyTable/PropertyTable';\nimport { QueryBuilder } from '../QueryBuilder/QueryBuilder';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { currencies } from './currencies';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nconst NS = 'gift-card-form';\nconst Base = ScopedElementsMixin(\n ThemeableMixin(ConfigurableMixin(ResponsiveMixin(TranslatableMixin(NucleonElement, NS))))\n);\n\n/**\n * Form element for creating or editing gift cards (`fx:gift_card`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot currency:before\n * @slot currency:after\n *\n * @slot expires:before\n * @slot expires:after\n *\n * @slot codes:before\n * @slot codes:after\n *\n * @slot product-restrictions:before\n * @slot product-restrictions:after\n *\n * @slot category-restrictions:before\n * @slot category-restrictions: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-gift-card-form\n * @since 1.15.0\n */\nexport class GiftCardForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'vaadin-combo-box': customElements.get('vaadin-combo-box'),\n 'vaadin-button': customElements.get('vaadin-button'),\n\n 'iron-icon': customElements.get('iron-icon'),\n\n 'foxy-internal-gift-card-form-provisioning-control': customElements.get(\n 'foxy-internal-gift-card-form-provisioning-control'\n ),\n\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-query-builder': customElements.get('foxy-query-builder'),\n 'foxy-form-dialog': customElements.get('foxy-form-dialog'),\n 'foxy-pagination': customElements.get('foxy-pagination'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-table': customElements.get('foxy-table'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n\n 'x-category-restrictions-page': CategoryRestrictionsPage,\n 'x-frequency-input': FrequencyInput,\n 'x-property-table': PropertyTable,\n 'x-editable-list': EditableList,\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __codesTableQuery: { attribute: false },\n __itemCategories: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name_required',\n ({ name: v }) => !v || v.length <= 50 || 'name_too_long',\n\n form => {\n if (form.provisioning_config?.allow_autoprovisioning) {\n if (!form.sku) return 'sku:v8n_required';\n if (form.sku.length > 200) return 'sku:v8n_too_long';\n }\n\n return true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_min;\n return typeof v === 'number' && v <= 0 ? 'min-balance:v8n_negative' : true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_max;\n return typeof v === 'number' && v <= 0 ? 'max-balance:v8n_negative' : true;\n },\n ];\n }\n\n private __codesTableColumns: Column<GiftCardCodes>[] = [\n {\n header: ctx => html`<foxy-i18n lang=${ctx.lang} key=\"code\" ns=${ctx.ns}></foxy-i18n>`,\n cell: ctx => {\n const isDisabled = !this.in('idle') || this.disabledSelector.matches('codes', true);\n\n return html`\n <div class=\"flex items-center gap-xs\">\n <vaadin-button\n theme=\"tertiary-inline contrast\"\n class=\"p-0\"\n ?disabled=${isDisabled}\n @click=${(evt: CustomEvent) => {\n const dialog = this.renderRoot.querySelector<FormDialog>('#code-dialog')!;\n const button = evt.currentTarget as ButtonElement;\n\n dialog.href = ctx.data._links.self.href;\n dialog.show(button);\n }}\n >\n <span class=\"font-tnum\">${ctx.data.code}</span>\n </vaadin-button>\n\n <foxy-copy-to-clipboard\n ?disabled=${isDisabled}\n text=${ctx.data.code}\n lang=${ctx.lang}\n ns=\"${ctx.ns} copy-to-clipboard\"\n >\n </foxy-copy-to-clipboard>\n </div>\n `;\n },\n },\n {\n header: ctx => html`<foxy-i18n lang=${ctx.lang} key=\"date_created\" ns=${ctx.ns}></foxy-i18n>`,\n cell: ctx => html`\n <foxy-i18n\n options=${JSON.stringify({ value: ctx.data.date_created })}\n class=\"text-tertiary\"\n lang=${ctx.lang}\n key=\"date\"\n ns=${ctx.ns}\n >\n </foxy-i18n>\n `,\n },\n {\n hideBelow: 'sm',\n header: c => html`<foxy-i18n lang=${c.lang} key=\"end_date\" ns=${c.ns}></foxy-i18n>`,\n cell: ctx => html`\n <foxy-i18n\n options=${JSON.stringify({ value: ctx.data.end_date })}\n class=\"text-tertiary\"\n lang=${ctx.lang}\n key=\"date\"\n ns=${ctx.ns}\n >\n </foxy-i18n>\n `,\n },\n {\n header: c => html`<foxy-i18n lang=${c.lang} key=\"current_balance\" ns=${c.ns}></foxy-i18n>`,\n cell: ctx => html`\n <foxy-i18n\n options=${JSON.stringify({\n amount: `${ctx.data.current_balance} ${this.data?.currency_code}`,\n currencyDisplay: this.__currencyDisplay,\n })}\n lang=${ctx.lang}\n key=\"price\"\n ns=${ctx.ns}\n >\n </foxy-i18n>\n `,\n },\n ];\n\n private static readonly __codesQueryOptions: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'current_balance', path: 'current_balance', type: Type.Number },\n { label: 'end_date', path: 'end_date', type: Type.Date },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __codesTableQuery: string | null = null;\n\n private __currencyDisplay = '';\n\n private __itemCategories = '';\n\n render(): TemplateResult {\n const hidden = this.hiddenSelector;\n const isNameHidden = hidden.matches('name', true);\n const isCurrencyHidden = hidden.matches('currency', true);\n const isExpiresHidden = hidden.matches('expires', true);\n\n return html`\n <div class=\"relative space-y-l\">\n ${isNameHidden && isCurrencyHidden && isExpiresHidden\n ? ''\n : html`\n <div class=\"grid grid-cols-1 sm-grid-cols-3 md-grid-cols-4 gap-m\">\n ${isNameHidden ? '' : html`<div class=\"md-col-span-2\">${this.__renderName()}</div>`}\n ${isCurrencyHidden ? '' : this.__renderCurrency()}\n ${isExpiresHidden ? '' : this.__renderExpires()}\n </div>\n `}\n\n <foxy-internal-gift-card-form-provisioning-control infer=\"provisioning\">\n </foxy-internal-gift-card-form-provisioning-control>\n\n ${hidden.matches('codes', true) || !this.data ? '' : this.__renderCodes()}\n ${hidden.matches('product-restrictions', true) ? '' : this.__renderProductRestrictions()}\n ${hidden.matches('category-restrictions', true) || !this.data\n ? ''\n : this.__renderCategoryRestrictions()}\n ${hidden.matches('timestamps', true) ? '' : this.__renderTimestamps()}\n ${hidden.matches('create', true) || !!this.data ? '' : this.__renderCreate()}\n ${hidden.matches('delete', true) || !this.data ? '' : this.__renderDelete()}\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !this.in('busy') && !this.in('fail'),\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${this.in('fail') ? 'error' : this.in('busy') ? 'busy' : 'empty'}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n protected async _sendGet(): Promise<Data> {\n type Store = Resource<Rels.Store>;\n\n const giftCard = await super._sendGet();\n const store = await super._fetch<Store>(giftCard._links['fx:store'].href);\n const categoriesURL = new URL(store._links['fx:item_categories'].href);\n\n categoriesURL.searchParams.set('limit', '5');\n this.__currencyDisplay = store.use_international_currency_symbol ? 'code' : 'symbol';\n this.__itemCategories = categoriesURL.toString();\n\n return giftCard;\n }\n\n private __getErrorMessage(prefix: string) {\n const error = this.errors.find(err => err.startsWith(prefix));\n return error ? this.t(error.replace(prefix, 'v8n')).toString() : '';\n }\n\n private __getValidator(prefix: string) {\n return () => !this.errors.some(err => err.startsWith(prefix));\n }\n\n private __renderName() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('name:before')}\n\n <vaadin-text-field\n error-message=${this.__getErrorMessage('name')}\n helper-text=${this.t('gift_card_name_helper_text')}\n data-testid=\"name\"\n class=\"w-full\"\n label=${this.t('name')}\n .checkValidity=${this.__getValidator('name')}\n .value=${this.form.name ?? ''}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('name', true)}\n ?readonly=${this.readonlySelector.matches('name', true)}\n required\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.submit()}\n @input=${(evt: CustomEvent) => {\n const newName = (evt.currentTarget as TextFieldElement).value;\n this.edit({ name: newName });\n }}\n >\n </vaadin-text-field>\n\n ${this.renderTemplateOrSlot('name:after')}\n </div>\n `;\n }\n\n private __renderCurrency() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('currency:before')}\n\n <vaadin-combo-box\n item-label-path=\"label\"\n item-value-path=\"value\"\n item-id-path=\"value\"\n data-testid=\"currency\"\n class=\"w-full\"\n label=${this.t('currency')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('currency', true)}\n ?readonly=${this.readonlySelector.matches('currency', true)}\n .value=${this.form.currency_code?.toLowerCase() ?? ''}\n .items=${currencies.map(code => ({\n label: `${this.t(`currency_${code}`)} (${code.toUpperCase()})`,\n value: code,\n }))}\n @change=${(evt: CustomEvent) => {\n const comboBox = evt.currentTarget as ComboBoxElement;\n this.edit({ currency_code: comboBox.value });\n }}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot('currency:after')}\n </div>\n `;\n }\n\n private __renderExpires() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('expires:before')}\n\n <x-frequency-input\n placeholder=${this.t('select')}\n data-testid=\"expires\"\n label=${this.t('expires_after')}\n class=\"w-full\"\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('expires', true)}\n ?readonly=${this.readonlySelector.matches('expires', true)}\n .value=${this.form.expires_after ?? ''}\n @change=${(evt: FrequencyInputChangeEvent) => {\n const input = evt.currentTarget as FrequencyInput;\n this.edit({ expires_after: input.value });\n }}\n >\n </x-frequency-input>\n\n ${this.renderTemplateOrSlot('expires:after')}\n </div>\n `;\n }\n\n private __renderCodes() {\n const { disabledSelector, readonlySelector, hiddenSelector, group, data, lang, ns } = this;\n\n const isDisabled = !this.in('idle') || disabledSelector.matches('codes', true);\n const filters = this.__codesTableQuery;\n const url = new URL(data!._links['fx:gift_card_codes'].href);\n\n new URLSearchParams(filters ?? '').forEach((value, name) => url.searchParams.set(name, value));\n url.searchParams.set('limit', '5');\n\n const filterButtonLabel = filters === null ? 'filter' : 'clear_filters';\n const filterButtonIcon = `icons:${filters === null ? 'filter-list' : 'clear'}`;\n\n return html`\n <div data-testid=\"codes\">\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:generate:form').toString()}\n readonlycontrols=${readonlySelector.zoom('codes:generate:form').toString()}\n hiddencontrols=\"save-button ${hiddenSelector.zoom('codes:generate:form').toString()}\"\n header=\"generate\"\n parent=${data?._links['fx:generate_codes'].href ?? ''}\n group=${group}\n lang=${lang}\n form=\"foxy-generate-codes-form\"\n ns=${ns}\n id=\"generate-codes-dialog\"\n alert\n .related=${[url.toString()]}\n >\n </foxy-form-dialog>\n\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:form').toString()}\n readonlycontrols=${readonlySelector.zoom('codes:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('codes:form').toString()}\n header=\"code\"\n parent=${url.toString()}\n group=${group}\n lang=${lang}\n form=\"foxy-gift-card-code-form\"\n ns=${ns}\n id=\"code-dialog\"\n >\n </foxy-form-dialog>\n\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:import:form').toString()}\n readonlycontrols=${readonlySelector.zoom('codes:import:form').toString()}\n hiddencontrols=\"save-button ${hiddenSelector.zoom('codes:import:form').toString()}\"\n header=\"import\"\n parent=${data!._links['fx:gift_card_codes'].href}\n group=${group}\n lang=${lang}\n form=\"foxy-gift-card-codes-form\"\n ns=${ns}\n id=\"import-dialog\"\n >\n </foxy-form-dialog>\n\n ${this.renderTemplateOrSlot('codes:before')}\n\n <div class=\"flex items-center justify-between mb-xs space-x-s\">\n <foxy-i18n\n class=\"text-s font-medium text-secondary leading-none flex-1\"\n lang=${lang}\n key=\"code_plural\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <vaadin-button\n data-testid=\"codes:generate-button\"\n theme=\"success tertiary small\"\n ?disabled=${isDisabled}\n @click=${(evt: CustomEvent) => {\n const dialog = this.renderRoot.querySelector<FormDialog>('#generate-codes-dialog');\n const button = evt.currentTarget as ButtonElement;\n dialog?.show(button);\n }}\n >\n <foxy-i18n class=\"text-s\" lang=${lang} key=\"generate\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"codes:import-button\"\n theme=\"contrast tertiary small\"\n ?disabled=${isDisabled}\n @click=${(evt: CustomEvent) => {\n const dialog = this.renderRoot.querySelector<FormDialog>('#import-dialog');\n const button = evt.currentTarget as ButtonElement;\n dialog?.show(button);\n }}\n >\n <foxy-i18n class=\"text-s\" lang=${lang} key=\"import\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:open-in-browser\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"codes:filter-button\"\n theme=\"contrast ${filters === null ? 'tertiary' : ''} small\"\n ?disabled=${isDisabled}\n @click=${() => (this.__codesTableQuery = filters === null ? '' : null)}\n >\n <foxy-i18n class=\"text-s\" lang=${lang} key=${filterButtonLabel} ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=${filterButtonIcon}></iron-icon>\n </vaadin-button>\n </div>\n\n <foxy-query-builder\n class=\"bg-contrast-5 rounded-tl-l rounded-tr-s rounded-b-l p-m mb-s\"\n lang=${lang}\n ns=\"${ns} ${customElements.get('foxy-query-builder')?.defaultNS ?? ''}\"\n ?disabled=${isDisabled}\n ?hidden=${filters === null}\n .options=${GiftCardForm.__codesQueryOptions}\n .value=${filters ?? ''}\n @change=${(evt: CustomEvent) => {\n const queryBuilder = evt.currentTarget as QueryBuilder;\n this.__codesTableQuery = queryBuilder.value;\n }}\n >\n </foxy-query-builder>\n\n <foxy-pagination\n first=${url.toString()}\n lang=${lang}\n ns=\"${ns} ${customElements.get('foxy-pagination')?.defaultNS ?? ''}\"\n ?disabled=${isDisabled}\n >\n <foxy-table\n class=\"px-m mb-s border border-contrast-10 rounded-t-l rounded-b-l\"\n group=${group}\n lang=${lang}\n ns=${ns}\n .columns=${this.__codesTableColumns}\n >\n </foxy-table>\n </foxy-pagination>\n\n ${this.renderTemplateOrSlot('codes:after')}\n </div>\n `;\n }\n\n private __renderProductRestrictions() {\n const scope = 'product-restrictions';\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(scope, true);\n const isReadonly = this.readonlySelector.matches(scope, true);\n const restrictions = this.form.product_code_restrictions ?? '';\n\n const groups = [\n { header: 'allow', items: [] as { label?: string; value: string }[] },\n { header: 'block', items: [] as { label?: string; value: string }[] },\n ];\n\n if (restrictions) {\n restrictions.split(',').forEach(value => {\n const isBlocklistValue = value.startsWith('-');\n const target = isBlocklistValue ? 1 : 0;\n const label = isBlocklistValue ? value.substring(1) : value;\n\n groups[target].items.push({ label, value });\n });\n }\n\n return html`\n <div data-testid=\"product-restrictions\">\n ${this.renderTemplateOrSlot('product-restrictions:before')}\n\n <div class=\"space-y-s\">\n <x-group frame>\n <foxy-i18n\n class=${isDisabled ? 'text-disabled' : 'text-secondary'}\n slot=\"header\"\n lang=${this.lang}\n key=\"product_restrictions\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <div class=\"grid sm-grid-cols-2 bg-contrast-10\" style=\"gap: 1px\">\n ${groups.map((group, index) => {\n return html`\n <x-group class=\"bg-base pt-m\">\n <foxy-i18n\n class=${isDisabled ? 'text-disabled' : 'text-tertiary'}\n slot=\"header\"\n lang=${this.lang}\n key=${group.header}\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <x-editable-list\n data-testid=\"product-restrictions:${group.header}\"\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n .items=${group.items}\n @change=${(evt: CustomEvent) => {\n const newItemsByGroup = [\n index === 0 ? (evt.currentTarget as EditableList).items : groups[0].items,\n index === 1 ? (evt.currentTarget as EditableList).items : groups[1].items,\n ];\n\n const newSanitizedItemsByGroup = newItemsByGroup\n .map(list => list.map(v => v.value.replace(/^[\\s-]*/, '').trimEnd()))\n .map(list => list.filter(v => !!v))\n .map(list => Array.from(new Set(list)));\n\n const newRestrictions = newSanitizedItemsByGroup[0]\n .concat(newSanitizedItemsByGroup[1].map(v => `-${v}`))\n .join(',');\n\n this.edit({ product_code_restrictions: newRestrictions });\n }}\n >\n </x-editable-list>\n </x-group>\n `;\n })}\n </div>\n </x-group>\n\n <foxy-i18n\n class=${classMap({\n 'block text-xs leading-s transition-colors': true,\n 'text-secondary': !isDisabled,\n 'text-disabled': isDisabled,\n })}\n lang=${this.lang}\n key=\"gift_card_product_restrictions_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n ${this.renderTemplateOrSlot('product-restrictions:after')}\n </div>\n `;\n }\n\n private __renderCategoryRestrictions() {\n const scope = 'category-restrictions';\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(scope, true);\n const isReadonly = this.readonlySelector.matches(scope, true);\n const giftCardItemCategories = this.data?._links['fx:gift_card_item_categories'].href;\n\n return html`\n <div data-testid=\"category-restrictions\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-xs\">\n <foxy-pagination\n first=${this.__itemCategories}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-pagination')?.defaultNS ?? ''}\"\n ?disabled=${isDisabled}\n >\n <foxy-i18n\n class=\"block text-s font-medium text-secondary leading-none mb-s\"\n lang=${this.lang}\n key=\"category_restrictions\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <x-category-restrictions-page\n gift-card-item-categories=${ifDefined(giftCardItemCategories)}\n data-testid=\"category-restrictions:page\"\n gift-card=${this.href}\n class=\"border border-contrast-10 rounded-t-l rounded-b-l mb-s\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n >\n </x-category-restrictions-page>\n </foxy-pagination>\n\n <foxy-i18n\n class=\"block text-xs leading-s text-secondary\"\n lang=${this.lang}\n key=\"gift_card_category_restrictions_helper_text\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n }\n\n private __renderTimestamps() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n\n <x-property-table\n data-testid=\"timestamps\"\n .items=${(['date_modified', 'date_created'] as const).map(field => ({\n name: this.t(field),\n value: this.data?.[field]\n ? this.t('date', { value: new Date(this.data[field] as string) })\n : '',\n }))}\n >\n </x-property-table>\n\n ${this.renderTemplateOrSlot('timestamps:after')}\n </div>\n `;\n }\n\n private __renderCreate() {\n const isCleanTemplateInvalid = this.in({ idle: { template: { clean: 'invalid' } } });\n const isDirtyTemplateInvalid = this.in({ idle: { template: { dirty: 'invalid' } } });\n const isCleanSnapshotInvalid = this.in({ idle: { snapshot: { clean: 'invalid' } } });\n const isDirtySnapshotInvalid = this.in({ idle: { snapshot: { dirty: 'invalid' } } });\n const isTemplateInvalid = isCleanTemplateInvalid || isDirtyTemplateInvalid;\n const isSnaphotInvalid = isCleanSnapshotInvalid || isDirtySnapshotInvalid;\n const isInvalid = isTemplateInvalid || isSnaphotInvalid;\n const isBusy = this.in('busy');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('create:before')}\n\n <vaadin-button\n data-testid=\"create\"\n class=\"w-full\"\n theme=\"primary success\"\n ?disabled=${isBusy || isInvalid || this.disabledSelector.matches('create', true)}\n @click=${this.submit}\n >\n <foxy-i18n ns=${this.ns} key=\"create\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('create:after')}\n </div>\n `;\n }\n\n private __renderDelete() {\n return html`\n <div>\n <foxy-internal-confirm-dialog\n data-testid=\"confirm\"\n message=\"delete_prompt\"\n confirm=\"delete\"\n cancel=\"cancel\"\n header=\"delete\"\n theme=\"primary error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && this.delete()}\n >\n </foxy-internal-confirm-dialog>\n\n ${this.renderTemplateOrSlot('delete:before')}\n\n <vaadin-button\n data-testid=\"delete\"\n theme=\"error\"\n class=\"w-full\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('delete', true)}\n @click=${(evt: CustomEvent) => {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show(evt.currentTarget as ButtonElement);\n }}\n >\n <foxy-i18n ns=${this.ns} key=\"delete\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('delete:after')}\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"GiftCardForm.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/GiftCardForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data, GiftCardCodes } from './types';\nimport { Option, Type } from '../QueryBuilder/types';\nimport { PropertyDeclarations, TemplateResult, html } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { CategoryRestrictionsPage } from './private/CategoryRestrictionsPage';\nimport { Column } from '../Table/types';\nimport { ComboBoxElement } from '@vaadin/vaadin-combo-box';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { EditableList } from '../../private/EditableList/EditableList';\nimport { FormDialog } from '../FormDialog';\nimport { FrequencyInput } from '../../private/FrequencyInput/FrequencyInput';\nimport { FrequencyInputChangeEvent } from '../../private/FrequencyInput/FrequencyInputChangeEvent';\nimport { Group } from '../../private/Group/Group';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { PropertyTable } from '../../private/PropertyTable/PropertyTable';\nimport { QueryBuilder } from '../QueryBuilder/QueryBuilder';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { currencies } from './currencies';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nconst NS = 'gift-card-form';\nconst Base = ScopedElementsMixin(\n ThemeableMixin(ConfigurableMixin(ResponsiveMixin(TranslatableMixin(NucleonElement, NS))))\n);\n\n/**\n * Form element for creating or editing gift cards (`fx:gift_card`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot currency:before\n * @slot currency:after\n *\n * @slot expires:before\n * @slot expires:after\n *\n * @slot codes:before\n * @slot codes:after\n *\n * @slot product-restrictions:before\n * @slot product-restrictions:after\n *\n * @slot category-restrictions:before\n * @slot category-restrictions: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-gift-card-form\n * @since 1.15.0\n */\nexport class GiftCardForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'vaadin-combo-box': customElements.get('vaadin-combo-box'),\n 'vaadin-button': customElements.get('vaadin-button'),\n\n 'iron-icon': customElements.get('iron-icon'),\n\n 'foxy-internal-gift-card-form-provisioning-control': customElements.get(\n 'foxy-internal-gift-card-form-provisioning-control'\n ),\n\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-query-builder': customElements.get('foxy-query-builder'),\n 'foxy-form-dialog': customElements.get('foxy-form-dialog'),\n 'foxy-pagination': customElements.get('foxy-pagination'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-table': customElements.get('foxy-table'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n\n 'x-category-restrictions-page': CategoryRestrictionsPage,\n 'x-frequency-input': FrequencyInput,\n 'x-property-table': PropertyTable,\n 'x-editable-list': EditableList,\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __codesTableQuery: { attribute: false },\n __itemCategories: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name_required',\n ({ name: v }) => !v || v.length <= 50 || 'name_too_long',\n\n form => {\n if (form.provisioning_config?.allow_autoprovisioning) {\n if (!form.sku) return 'sku:v8n_required';\n if (form.sku.length > 200) return 'sku:v8n_too_long';\n }\n\n return true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_min;\n return typeof v === 'number' && v <= 0 ? 'min-balance:v8n_negative' : true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_max;\n return typeof v === 'number' && v <= 0 ? 'max-balance:v8n_negative' : true;\n },\n ];\n }\n\n private __codesTableColumns: Column<GiftCardCodes>[] = [\n {\n header: ctx => html`<foxy-i18n lang=${ctx.lang} key=\"code\" ns=${ctx.ns}></foxy-i18n>`,\n cell: ctx => {\n const isDisabled = !this.in('idle') || this.disabledSelector.matches('codes', true);\n\n return html`\n <div class=\"flex items-center gap-xs\">\n <vaadin-button\n theme=\"tertiary-inline contrast\"\n class=\"p-0\"\n ?disabled=${isDisabled}\n @click=${(evt: CustomEvent) => {\n const dialog = this.renderRoot.querySelector<FormDialog>('#code-dialog')!;\n const button = evt.currentTarget as ButtonElement;\n\n dialog.href = ctx.data._links.self.href;\n dialog.show(button);\n }}\n >\n <span class=\"font-tnum\">${ctx.data.code}</span>\n </vaadin-button>\n\n <foxy-copy-to-clipboard\n ?disabled=${isDisabled}\n text=${ctx.data.code}\n lang=${ctx.lang}\n ns=\"${ctx.ns} copy-to-clipboard\"\n >\n </foxy-copy-to-clipboard>\n </div>\n `;\n },\n },\n {\n header: ctx => html`<foxy-i18n lang=${ctx.lang} key=\"date_created\" ns=${ctx.ns}></foxy-i18n>`,\n cell: ctx => html`\n <foxy-i18n\n options=${JSON.stringify({ value: ctx.data.date_created })}\n class=\"text-tertiary\"\n lang=${ctx.lang}\n key=\"date\"\n ns=${ctx.ns}\n >\n </foxy-i18n>\n `,\n },\n {\n hideBelow: 'sm',\n header: c => html`<foxy-i18n lang=${c.lang} key=\"end_date\" ns=${c.ns}></foxy-i18n>`,\n cell: ctx => html`\n <foxy-i18n\n options=${JSON.stringify({ value: ctx.data.end_date })}\n class=\"text-tertiary\"\n lang=${ctx.lang}\n key=\"date\"\n ns=${ctx.ns}\n >\n </foxy-i18n>\n `,\n },\n {\n header: c => html`<foxy-i18n lang=${c.lang} key=\"current_balance\" ns=${c.ns}></foxy-i18n>`,\n cell: ctx => html`\n <foxy-i18n\n options=${JSON.stringify({\n amount: `${ctx.data.current_balance} ${this.data?.currency_code}`,\n currencyDisplay: this.__currencyDisplay,\n })}\n lang=${ctx.lang}\n key=\"price\"\n ns=${ctx.ns}\n >\n </foxy-i18n>\n `,\n },\n ];\n\n private static readonly __codesQueryOptions: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'current_balance', path: 'current_balance', type: Type.Number },\n { label: 'end_date', path: 'end_date', type: Type.Date },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __codesTableQuery: string | null = null;\n\n private __currencyDisplay = '';\n\n private __itemCategories = '';\n\n render(): TemplateResult {\n const hidden = this.hiddenSelector;\n const isNameHidden = hidden.matches('name', true);\n const isCurrencyHidden = hidden.matches('currency', true);\n const isExpiresHidden = hidden.matches('expires', true);\n\n return html`\n <div class=\"relative space-y-l\">\n ${isNameHidden && isCurrencyHidden && isExpiresHidden\n ? ''\n : html`\n <div class=\"grid grid-cols-1 sm-grid-cols-3 md-grid-cols-4 gap-m\">\n ${isNameHidden ? '' : html`<div class=\"md-col-span-2\">${this.__renderName()}</div>`}\n ${isCurrencyHidden ? '' : this.__renderCurrency()}\n ${isExpiresHidden ? '' : this.__renderExpires()}\n </div>\n `}\n\n <foxy-internal-gift-card-form-provisioning-control infer=\"provisioning\">\n </foxy-internal-gift-card-form-provisioning-control>\n\n ${hidden.matches('codes', true) || !this.data ? '' : this.__renderCodes()}\n ${hidden.matches('product-restrictions', true) ? '' : this.__renderProductRestrictions()}\n ${hidden.matches('category-restrictions', true) || !this.data\n ? ''\n : this.__renderCategoryRestrictions()}\n ${hidden.matches('timestamps', true) ? '' : this.__renderTimestamps()}\n ${hidden.matches('create', true) || !!this.data ? '' : this.__renderCreate()}\n ${hidden.matches('delete', true) || !this.data ? '' : this.__renderDelete()}\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !this.in('busy') && !this.in('fail'),\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${this.in('fail') ? 'error' : this.in('busy') ? 'busy' : 'empty'}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n protected async _sendGet(): Promise<Data> {\n type Store = Resource<Rels.Store>;\n\n const giftCard = await super._sendGet();\n const store = await super._fetch<Store>(giftCard._links['fx:store'].href);\n const categoriesURL = new URL(store._links['fx:item_categories'].href);\n\n categoriesURL.searchParams.set('limit', '5');\n this.__currencyDisplay = store.use_international_currency_symbol ? 'code' : 'symbol';\n this.__itemCategories = categoriesURL.toString();\n\n return giftCard;\n }\n\n private __getErrorMessage(prefix: string) {\n const error = this.errors.find(err => err.startsWith(prefix));\n return error ? this.t(error.replace(prefix, 'v8n')).toString() : '';\n }\n\n private __getValidator(prefix: string) {\n return () => !this.errors.some(err => err.startsWith(prefix));\n }\n\n private __renderName() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('name:before')}\n\n <vaadin-text-field\n error-message=${this.__getErrorMessage('name')}\n helper-text=${this.t('gift_card_name_helper_text')}\n data-testid=\"name\"\n class=\"w-full\"\n label=${this.t('name')}\n .checkValidity=${this.__getValidator('name')}\n .value=${this.form.name ?? ''}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('name', true)}\n ?readonly=${this.readonlySelector.matches('name', true)}\n required\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.submit()}\n @input=${(evt: CustomEvent) => {\n const newName = (evt.currentTarget as TextFieldElement).value;\n this.edit({ name: newName });\n }}\n >\n </vaadin-text-field>\n\n ${this.renderTemplateOrSlot('name:after')}\n </div>\n `;\n }\n\n private __renderCurrency() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('currency:before')}\n\n <vaadin-combo-box\n item-label-path=\"label\"\n item-value-path=\"value\"\n item-id-path=\"value\"\n data-testid=\"currency\"\n class=\"w-full\"\n label=${this.t('currency')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('currency', true)}\n ?readonly=${this.readonlySelector.matches('currency', true)}\n .value=${this.form.currency_code?.toLowerCase() ?? ''}\n .items=${currencies.map(code => ({\n label: `${this.t(`currency_${code}`)} (${code.toUpperCase()})`,\n value: code,\n }))}\n @change=${(evt: CustomEvent) => {\n const comboBox = evt.currentTarget as ComboBoxElement;\n this.edit({ currency_code: comboBox.value });\n }}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot('currency:after')}\n </div>\n `;\n }\n\n private __renderExpires() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('expires:before')}\n\n <x-frequency-input\n placeholder=${this.t('select')}\n data-testid=\"expires\"\n label=${this.t('expires_after')}\n class=\"w-full\"\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('expires', true)}\n ?readonly=${this.readonlySelector.matches('expires', true)}\n .value=${this.form.expires_after ?? ''}\n @change=${(evt: FrequencyInputChangeEvent) => {\n const input = evt.currentTarget as FrequencyInput;\n this.edit({ expires_after: input.value });\n }}\n >\n </x-frequency-input>\n\n ${this.renderTemplateOrSlot('expires:after')}\n </div>\n `;\n }\n\n private __renderCodes() {\n const { disabledSelector, readonlySelector, hiddenSelector, group, data, lang, ns } = this;\n\n const isDisabled = !this.in('idle') || disabledSelector.matches('codes', true);\n const filters = this.__codesTableQuery;\n const url = new URL(data!._links['fx:gift_card_codes'].href);\n\n new URLSearchParams(filters ?? '').forEach((value, name) => url.searchParams.set(name, value));\n url.searchParams.set('limit', '5');\n\n const filterButtonLabel = filters === null ? 'filter' : 'clear_filters';\n const filterButtonIcon = `icons:${filters === null ? 'filter-list' : 'clear'}`;\n\n return html`\n <div data-testid=\"codes\">\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:generate:form').toString()}\n readonlycontrols=${readonlySelector.zoom('codes:generate:form').toString()}\n hiddencontrols=\"save-button ${hiddenSelector.zoom('codes:generate:form').toString()}\"\n header=\"generate\"\n parent=${data?._links['fx:generate_codes'].href ?? ''}\n group=${group}\n lang=${lang}\n form=\"foxy-generate-codes-form\"\n ns=${ns}\n id=\"generate-codes-dialog\"\n alert\n .related=${[url.toString()]}\n >\n </foxy-form-dialog>\n\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:form').toString()}\n readonlycontrols=${readonlySelector.zoom('codes:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('codes:form').toString()}\n header=\"code\"\n parent=${url.toString()}\n group=${group}\n lang=${lang}\n form=\"foxy-gift-card-code-form\"\n ns=${ns}\n id=\"code-dialog\"\n >\n </foxy-form-dialog>\n\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:import:form').toString()}\n readonlycontrols=${readonlySelector.zoom('codes:import:form').toString()}\n hiddencontrols=\"save-button ${hiddenSelector.zoom('codes:import:form').toString()}\"\n header=\"import\"\n parent=${data!._links['fx:gift_card_codes'].href}\n group=${group}\n lang=${lang}\n form=\"foxy-gift-card-codes-form\"\n ns=${ns}\n id=\"import-dialog\"\n >\n </foxy-form-dialog>\n\n ${this.renderTemplateOrSlot('codes:before')}\n\n <div class=\"flex items-center justify-between mb-xs space-x-s\">\n <foxy-i18n\n class=\"text-s font-medium text-secondary leading-none flex-1\"\n lang=${lang}\n key=\"code_plural\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <vaadin-button\n data-testid=\"codes:generate-button\"\n theme=\"success tertiary small\"\n ?disabled=${isDisabled}\n @click=${(evt: CustomEvent) => {\n const dialog = this.renderRoot.querySelector<FormDialog>('#generate-codes-dialog');\n const button = evt.currentTarget as ButtonElement;\n dialog?.show(button);\n }}\n >\n <foxy-i18n class=\"text-s\" lang=${lang} key=\"generate\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"codes:import-button\"\n theme=\"contrast tertiary small\"\n ?disabled=${isDisabled}\n @click=${(evt: CustomEvent) => {\n const dialog = this.renderRoot.querySelector<FormDialog>('#import-dialog');\n const button = evt.currentTarget as ButtonElement;\n dialog?.show(button);\n }}\n >\n <foxy-i18n class=\"text-s\" lang=${lang} key=\"import\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:open-in-browser\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"codes:filter-button\"\n theme=\"contrast ${filters === null ? 'tertiary' : ''} small\"\n ?disabled=${isDisabled}\n @click=${() => (this.__codesTableQuery = filters === null ? '' : null)}\n >\n <foxy-i18n class=\"text-s\" lang=${lang} key=${filterButtonLabel} ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=${filterButtonIcon}></iron-icon>\n </vaadin-button>\n </div>\n\n <foxy-query-builder\n class=\"my-s\"\n lang=${lang}\n ns=\"${ns} ${customElements.get('foxy-query-builder')?.defaultNS ?? ''}\"\n ?disabled=${isDisabled}\n ?hidden=${filters === null}\n .options=${GiftCardForm.__codesQueryOptions}\n .value=${filters ?? ''}\n @change=${(evt: CustomEvent) => {\n const queryBuilder = evt.currentTarget as QueryBuilder;\n this.__codesTableQuery = queryBuilder.value;\n }}\n >\n </foxy-query-builder>\n\n <foxy-pagination\n first=${url.toString()}\n lang=${lang}\n ns=\"${ns} ${customElements.get('foxy-pagination')?.defaultNS ?? ''}\"\n ?disabled=${isDisabled}\n >\n <foxy-table\n class=\"px-m mb-s border border-contrast-10 rounded\"\n group=${group}\n lang=${lang}\n ns=${ns}\n .columns=${this.__codesTableColumns}\n >\n </foxy-table>\n </foxy-pagination>\n\n ${this.renderTemplateOrSlot('codes:after')}\n </div>\n `;\n }\n\n private __renderProductRestrictions() {\n const scope = 'product-restrictions';\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(scope, true);\n const isReadonly = this.readonlySelector.matches(scope, true);\n const restrictions = this.form.product_code_restrictions ?? '';\n\n const groups = [\n { header: 'allow', items: [] as { label?: string; value: string }[] },\n { header: 'block', items: [] as { label?: string; value: string }[] },\n ];\n\n if (restrictions) {\n restrictions.split(',').forEach(value => {\n const isBlocklistValue = value.startsWith('-');\n const target = isBlocklistValue ? 1 : 0;\n const label = isBlocklistValue ? value.substring(1) : value;\n\n groups[target].items.push({ label, value });\n });\n }\n\n return html`\n <div data-testid=\"product-restrictions\">\n ${this.renderTemplateOrSlot('product-restrictions:before')}\n\n <div class=\"space-y-s\">\n <x-group frame>\n <foxy-i18n\n class=${isDisabled ? 'text-disabled' : 'text-secondary'}\n slot=\"header\"\n lang=${this.lang}\n key=\"product_restrictions\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <div class=\"grid sm-grid-cols-2 bg-contrast-10\" style=\"gap: 1px\">\n ${groups.map((group, index) => {\n return html`\n <x-group class=\"bg-base pt-m\">\n <foxy-i18n\n class=${isDisabled ? 'text-disabled' : 'text-tertiary'}\n slot=\"header\"\n lang=${this.lang}\n key=${group.header}\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <x-editable-list\n data-testid=\"product-restrictions:${group.header}\"\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n .items=${group.items}\n @change=${(evt: CustomEvent) => {\n const newItemsByGroup = [\n index === 0 ? (evt.currentTarget as EditableList).items : groups[0].items,\n index === 1 ? (evt.currentTarget as EditableList).items : groups[1].items,\n ];\n\n const newSanitizedItemsByGroup = newItemsByGroup\n .map(list => list.map(v => v.value.replace(/^[\\s-]*/, '').trimEnd()))\n .map(list => list.filter(v => !!v))\n .map(list => Array.from(new Set(list)));\n\n const newRestrictions = newSanitizedItemsByGroup[0]\n .concat(newSanitizedItemsByGroup[1].map(v => `-${v}`))\n .join(',');\n\n this.edit({ product_code_restrictions: newRestrictions });\n }}\n >\n </x-editable-list>\n </x-group>\n `;\n })}\n </div>\n </x-group>\n\n <foxy-i18n\n class=${classMap({\n 'block text-xs leading-s transition-colors': true,\n 'text-secondary': !isDisabled,\n 'text-disabled': isDisabled,\n })}\n lang=${this.lang}\n key=\"gift_card_product_restrictions_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n ${this.renderTemplateOrSlot('product-restrictions:after')}\n </div>\n `;\n }\n\n private __renderCategoryRestrictions() {\n const scope = 'category-restrictions';\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(scope, true);\n const isReadonly = this.readonlySelector.matches(scope, true);\n const giftCardItemCategories = this.data?._links['fx:gift_card_item_categories'].href;\n\n return html`\n <div data-testid=\"category-restrictions\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-xs\">\n <foxy-pagination\n first=${this.__itemCategories}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-pagination')?.defaultNS ?? ''}\"\n ?disabled=${isDisabled}\n >\n <foxy-i18n\n class=\"block text-s font-medium text-secondary leading-none mb-s\"\n lang=${this.lang}\n key=\"category_restrictions\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <x-category-restrictions-page\n gift-card-item-categories=${ifDefined(giftCardItemCategories)}\n data-testid=\"category-restrictions:page\"\n gift-card=${this.href}\n class=\"border border-contrast-10 rounded mb-s\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n >\n </x-category-restrictions-page>\n </foxy-pagination>\n\n <foxy-i18n\n class=\"block text-xs leading-s text-secondary\"\n lang=${this.lang}\n key=\"gift_card_category_restrictions_helper_text\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n }\n\n private __renderTimestamps() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n\n <x-property-table\n data-testid=\"timestamps\"\n .items=${(['date_modified', 'date_created'] as const).map(field => ({\n name: this.t(field),\n value: this.data?.[field]\n ? this.t('date', { value: new Date(this.data[field] as string) })\n : '',\n }))}\n >\n </x-property-table>\n\n ${this.renderTemplateOrSlot('timestamps:after')}\n </div>\n `;\n }\n\n private __renderCreate() {\n const isCleanTemplateInvalid = this.in({ idle: { template: { clean: 'invalid' } } });\n const isDirtyTemplateInvalid = this.in({ idle: { template: { dirty: 'invalid' } } });\n const isCleanSnapshotInvalid = this.in({ idle: { snapshot: { clean: 'invalid' } } });\n const isDirtySnapshotInvalid = this.in({ idle: { snapshot: { dirty: 'invalid' } } });\n const isTemplateInvalid = isCleanTemplateInvalid || isDirtyTemplateInvalid;\n const isSnaphotInvalid = isCleanSnapshotInvalid || isDirtySnapshotInvalid;\n const isInvalid = isTemplateInvalid || isSnaphotInvalid;\n const isBusy = this.in('busy');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('create:before')}\n\n <vaadin-button\n data-testid=\"create\"\n class=\"w-full\"\n theme=\"primary success\"\n ?disabled=${isBusy || isInvalid || this.disabledSelector.matches('create', true)}\n @click=${this.submit}\n >\n <foxy-i18n ns=${this.ns} key=\"create\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('create:after')}\n </div>\n `;\n }\n\n private __renderDelete() {\n return html`\n <div>\n <foxy-internal-confirm-dialog\n data-testid=\"confirm\"\n message=\"delete_prompt\"\n confirm=\"delete\"\n cancel=\"cancel\"\n header=\"delete\"\n theme=\"primary error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && this.delete()}\n >\n </foxy-internal-confirm-dialog>\n\n ${this.renderTemplateOrSlot('delete:before')}\n\n <vaadin-button\n data-testid=\"delete\"\n theme=\"error\"\n class=\"w-full\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('delete', true)}\n @click=${(evt: CustomEvent) => {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show(evt.currentTarget as ButtonElement);\n }}\n >\n <foxy-i18n ns=${this.ns} key=\"delete\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('delete:after')}\n </div>\n `;\n }\n}\n"]}
@@ -10,6 +10,7 @@ export const price = (value, format, lang, options) => {
10
10
  maximumFractionDigits: 2,
11
11
  minimumFractionDigits: 2,
12
12
  currencyDisplay: (_a = options === null || options === void 0 ? void 0 : options.currencyDisplay) !== null && _a !== void 0 ? _a : 'symbol',
13
+ signDisplay: options === null || options === void 0 ? void 0 : options.signDisplay,
13
14
  style: 'currency',
14
15
  currency,
15
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../../src/elements/public/I18n/format/price.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAU,EAAE;;IAC5E,IAAI;QACF,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;YAC7C,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,CAAC;YACxB,eAAe,QAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,QAAQ;YACrD,KAAK,EAAE,UAAU;YACjB,QAAQ;SACT,CAAC,CAAC;KACJ;IAAC,WAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC","sourcesContent":["import { FormatFunction } from 'i18next';\n\n/**\n * i18next formatter that formats given value as price + currency code (e.g. 9.99 USD) for current locale (e.g. $9,99).\n * @see https://www.i18next.com/translation-function/formatting\n */\nexport const price: FormatFunction = (value, format, lang, options): string => {\n try {\n const [amount, currency] = value.split(' ');\n return parseFloat(amount).toLocaleString(lang, {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n currencyDisplay: options?.currencyDisplay ?? 'symbol',\n style: 'currency',\n currency,\n });\n } catch {\n return value;\n }\n};\n"]}
1
+ {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../../src/elements/public/I18n/format/price.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAU,EAAE;;IAC5E,IAAI;QACF,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;YAC7C,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,CAAC;YACxB,eAAe,QAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,QAAQ;YACrD,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;YACjC,KAAK,EAAE,UAAU;YACjB,QAAQ;SACT,CAAC,CAAC;KACJ;IAAC,WAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC","sourcesContent":["import { FormatFunction } from 'i18next';\n\n/**\n * i18next formatter that formats given value as price + currency code (e.g. 9.99 USD) for current locale (e.g. $9,99).\n * @see https://www.i18next.com/translation-function/formatting\n */\nexport const price: FormatFunction = (value, format, lang, options): string => {\n try {\n const [amount, currency] = value.split(' ');\n return parseFloat(amount).toLocaleString(lang, {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n currencyDisplay: options?.currencyDisplay ?? 'symbol',\n signDisplay: options?.signDisplay,\n style: 'currency',\n currency,\n });\n } catch {\n return value;\n }\n};\n"]}
@@ -6,9 +6,18 @@ declare const Base: typeof NucleonElement & {
6
6
  } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost> & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
7
7
  defaultNS: string;
8
8
  };
9
+ /**
10
+ * Editor for language string overrides. Loads language strings
11
+ * property helper (`fx:language_strings`) as main resource.
12
+ *
13
+ * @since 1.21.0
14
+ * @element foxy-i18n-editor
15
+ */
9
16
  export declare class I18nEditor extends Base<Data> {
10
17
  static get properties(): PropertyDeclarations;
18
+ /** URL of the `fx:language_overrides` resource for a template set. */
11
19
  languageOverrides: string | null;
20
+ /** Language from the `fx:language_strings` property helper for which the default values will be pulled from. */
12
21
  selectedLanguage: string | null;
13
22
  private __selectedTabIndex;
14
23
  render(): TemplateResult;
@@ -8,11 +8,20 @@ import { repeat } from 'lit-html/directives/repeat';
8
8
  import { html } from 'lit-html';
9
9
  const NS = 'i18n-editor';
10
10
  const Base = TranslatableMixin(ConfigurableMixin(ThemeableMixin(NucleonElement)), NS);
11
+ /**
12
+ * Editor for language string overrides. Loads language strings
13
+ * property helper (`fx:language_strings`) as main resource.
14
+ *
15
+ * @since 1.21.0
16
+ * @element foxy-i18n-editor
17
+ */
11
18
  export class I18nEditor extends Base {
12
19
  constructor() {
13
20
  super(...arguments);
14
- this.languageOverrides = 'https://demo.api/hapi/language_overrides';
15
- this.selectedLanguage = 'english';
21
+ /** URL of the `fx:language_overrides` resource for a template set. */
22
+ this.languageOverrides = null;
23
+ /** Language from the `fx:language_strings` property helper for which the default values will be pulled from. */
24
+ this.selectedLanguage = null;
16
25
  this.__selectedTabIndex = 0;
17
26
  }
18
27
  static get properties() {
@@ -75,7 +84,7 @@ export class I18nEditor extends Base {
75
84
  })}
76
85
  </vaadin-tabs>
77
86
 
78
- ${repeat(Object.entries(filteredValues), ([keyOrGroup]) => keyOrGroup, ([keyOrGroup, translationOrDictionary]) => {
87
+ ${repeat(Object.entries(filteredValues), ([keyOrGroup]) => keyOrGroup, ([keyOrGroup, defaultValue]) => {
79
88
  var _a;
80
89
  let code;
81
90
  let gateway;
@@ -92,7 +101,7 @@ export class I18nEditor extends Base {
92
101
  }
93
102
  return html `
94
103
  <foxy-internal-i18n-editor-entry
95
- default-value=${translationOrDictionary}
104
+ default-value=${defaultValue}
96
105
  gateway=${ifDefined(gateway)}
97
106
  parent=${ifDefined((_a = this.languageOverrides) !== null && _a !== void 0 ? _a : void 0)}
98
107
  code=${code}