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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +1 -1
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-api-browser.js +1 -1
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-billing-address-card.js +1 -1
  12. package/dist/cdn/foxy-cancellation-form.js +1 -1
  13. package/dist/cdn/foxy-cart-card.js +1 -1
  14. package/dist/cdn/foxy-cart-form.js +1 -1
  15. package/dist/cdn/foxy-client-card.js +1 -1
  16. package/dist/cdn/foxy-client-form.js +1 -1
  17. package/dist/cdn/foxy-collection-page.js +1 -1
  18. package/dist/cdn/foxy-collection-pages.js +1 -1
  19. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  20. package/dist/cdn/foxy-coupon-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-code-card.js +1 -0
  22. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  23. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  25. package/dist/cdn/foxy-coupon-form.js +1 -1
  26. package/dist/cdn/foxy-custom-field-card.js +1 -1
  27. package/dist/cdn/foxy-custom-field-form.js +1 -1
  28. package/dist/cdn/foxy-customer-api.js +1 -1
  29. package/dist/cdn/foxy-customer-card.js +1 -1
  30. package/dist/cdn/foxy-customer-form.js +1 -1
  31. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  33. package/dist/cdn/foxy-customer-portal.js +2 -2
  34. package/dist/cdn/foxy-customer.js +3 -3
  35. package/dist/cdn/foxy-customers-table.js +1 -1
  36. package/dist/cdn/foxy-discount-builder.js +1 -1
  37. package/dist/cdn/foxy-discount-card.js +1 -1
  38. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  39. package/dist/cdn/foxy-donation.js +1 -1
  40. package/dist/cdn/foxy-downloadable-card.js +1 -1
  41. package/dist/cdn/foxy-downloadable-form.js +2 -2
  42. package/dist/cdn/foxy-email-template-card.js +1 -1
  43. package/dist/cdn/foxy-email-template-form.js +1 -1
  44. package/dist/cdn/foxy-error-entry-card.js +1 -1
  45. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  47. package/dist/cdn/foxy-form-dialog.js +1 -1
  48. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  49. package/dist/cdn/foxy-gift-card-card.js +1 -1
  50. package/dist/cdn/foxy-gift-card-code-card.js +1 -0
  51. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  53. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  54. package/dist/cdn/foxy-gift-card-form.js +1 -1
  55. package/dist/cdn/foxy-i18n-editor.js +2 -2
  56. package/dist/cdn/foxy-i18n.js +1 -1
  57. package/dist/cdn/foxy-integration-card.js +1 -1
  58. package/dist/cdn/foxy-integration-form.js +1 -1
  59. package/dist/cdn/foxy-item-card.js +1 -1
  60. package/dist/cdn/foxy-item-category-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-form.js +1 -1
  62. package/dist/cdn/foxy-item-form.js +1 -1
  63. package/dist/cdn/foxy-item-option-card.js +1 -1
  64. package/dist/cdn/foxy-item-option-form.js +1 -1
  65. package/dist/cdn/foxy-items-form.js +1 -1
  66. package/dist/cdn/foxy-native-integration-card.js +1 -1
  67. package/dist/cdn/foxy-native-integration-form.js +1 -1
  68. package/dist/cdn/foxy-nucleon-element.js +1 -1
  69. package/dist/cdn/foxy-pagination.js +1 -1
  70. package/dist/cdn/foxy-passkey-card.js +1 -1
  71. package/dist/cdn/foxy-passkey-form.js +1 -1
  72. package/dist/cdn/foxy-payment-card.js +1 -1
  73. package/dist/cdn/foxy-payment-method-card.js +1 -1
  74. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  75. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  76. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  80. package/dist/cdn/foxy-payments-api.js +1 -1
  81. package/dist/cdn/foxy-query-builder.js +64 -1
  82. package/dist/cdn/foxy-report-form.js +1 -1
  83. package/dist/cdn/foxy-reports-table.js +1 -1
  84. package/dist/cdn/foxy-shipment-card.js +1 -1
  85. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  86. package/dist/cdn/foxy-sign-in-form.js +1 -1
  87. package/dist/cdn/foxy-spinner.js +2 -2
  88. package/dist/cdn/foxy-store-card.js +1 -1
  89. package/dist/cdn/foxy-store-form.js +1 -1
  90. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  91. package/dist/cdn/foxy-subscription-card.js +1 -1
  92. package/dist/cdn/foxy-subscription-form.js +1 -1
  93. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  94. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  95. package/dist/cdn/foxy-table.js +1 -1
  96. package/dist/cdn/foxy-tax-card.js +1 -1
  97. package/dist/cdn/foxy-tax-form.js +1 -1
  98. package/dist/cdn/foxy-template-config-form.js +1 -1
  99. package/dist/cdn/foxy-template-form.js +1 -1
  100. package/dist/cdn/foxy-template-set-card.js +1 -1
  101. package/dist/cdn/foxy-template-set-form.js +1 -1
  102. package/dist/cdn/foxy-transaction-card.js +1 -1
  103. package/dist/cdn/foxy-transaction.js +1 -1
  104. package/dist/cdn/foxy-transactions-table.js +1 -1
  105. package/dist/cdn/foxy-user-card.js +1 -1
  106. package/dist/cdn/foxy-user-form.js +1 -1
  107. package/dist/cdn/foxy-users-table.js +1 -1
  108. package/dist/cdn/foxy-webhook-card.js +1 -1
  109. package/dist/cdn/foxy-webhook-form.js +1 -1
  110. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  111. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  112. package/dist/cdn/{shared-59a5edee.js → shared-018d5724.js} +9 -9
  113. package/dist/cdn/{shared-92cdd504.js → shared-03673673.js} +1 -1
  114. package/dist/cdn/{shared-20c4310b.js → shared-07e7d118.js} +1 -1
  115. package/dist/cdn/{shared-46454866.js → shared-0a8161e5.js} +4 -4
  116. package/dist/cdn/{shared-48b76c74.js → shared-0a9d860d.js} +1 -1
  117. package/dist/cdn/{shared-f03dacf5.js → shared-0f59fd6a.js} +1 -1
  118. package/dist/cdn/{shared-a73e7be4.js → shared-122cccac.js} +1 -1
  119. package/dist/cdn/{shared-03ccfd62.js → shared-186e41cf.js} +1 -1
  120. package/dist/cdn/shared-18918efe.js +1 -0
  121. package/dist/cdn/shared-18bfe97c.js +1 -0
  122. package/dist/cdn/{shared-e4e0dc11.js → shared-1e7639e6.js} +1 -1
  123. package/dist/cdn/shared-2314add3.js +12 -0
  124. package/dist/cdn/{shared-931db653.js → shared-25198d9a.js} +1 -1
  125. package/dist/cdn/{shared-6a998243.js → shared-285f8cee.js} +21 -27
  126. package/dist/cdn/shared-28be347b.js +10 -0
  127. package/dist/cdn/{shared-6af480b8.js → shared-2b5a3c80.js} +1 -1
  128. package/dist/cdn/{shared-4fd17baf.js → shared-3cabd589.js} +1 -1
  129. package/dist/cdn/{shared-7ff496f6.js → shared-412c19c2.js} +1 -1
  130. package/dist/cdn/shared-467e5b06.js +1 -0
  131. package/dist/cdn/shared-482b2b86.js +1 -0
  132. package/dist/cdn/{shared-e52280d9.js → shared-4affec66.js} +1 -1
  133. package/dist/cdn/{shared-4877ed05.js → shared-4c611015.js} +2 -2
  134. package/dist/cdn/{shared-f2a8fb36.js → shared-4c7a8fcc.js} +1 -1
  135. package/dist/cdn/shared-540063aa.js +88 -0
  136. package/dist/cdn/{shared-18d109f5.js → shared-55630cac.js} +1 -1
  137. package/dist/cdn/{shared-b81aa01c.js → shared-584df8a8.js} +1 -1
  138. package/dist/cdn/shared-5875cb66.js +1 -0
  139. package/dist/cdn/{shared-9db9528b.js → shared-58951f74.js} +15 -15
  140. package/dist/cdn/{shared-fcaf15e5.js → shared-5debeb1b.js} +1 -1
  141. package/dist/cdn/{shared-6e977271.js → shared-612ea9ed.js} +1 -1
  142. package/dist/cdn/{shared-d4322854.js → shared-62e9c883.js} +1 -1
  143. package/dist/cdn/shared-6586ffd5.js +1 -0
  144. package/dist/cdn/{shared-205721a3.js → shared-684cd55a.js} +1 -1
  145. package/dist/cdn/{shared-7e201abd.js → shared-6b68b3b6.js} +1 -1
  146. package/dist/cdn/{shared-6be0a096.js → shared-6cd4e618.js} +1 -1
  147. package/dist/cdn/{shared-4329ffa1.js → shared-739f24fe.js} +1 -1
  148. package/dist/cdn/{shared-bf132324.js → shared-75d13e1b.js} +1 -1
  149. package/dist/cdn/{shared-89b42eef.js → shared-77258081.js} +1 -1
  150. package/dist/cdn/{shared-250e652f.js → shared-79d35787.js} +1 -1
  151. package/dist/cdn/{shared-724e9a20.js → shared-7b2bd917.js} +1 -1
  152. package/dist/cdn/{shared-97793410.js → shared-7f60c1c1.js} +1 -1
  153. package/dist/cdn/{shared-56addb06.js → shared-7ff78b4a.js} +1 -1
  154. package/dist/cdn/{shared-dccfe5e7.js → shared-8258443c.js} +1 -1
  155. package/dist/cdn/{shared-8a04bea3.js → shared-851a7db5.js} +1 -1
  156. package/dist/cdn/shared-8874ec69.js +1 -0
  157. package/dist/cdn/shared-8a247f48.js +1 -0
  158. package/dist/cdn/{shared-8778d784.js → shared-8b521111.js} +1 -1
  159. package/dist/cdn/shared-90877857.js +1 -0
  160. package/dist/cdn/shared-90cbed56.js +32 -0
  161. package/dist/cdn/{shared-039de1fd.js → shared-91c88f14.js} +1 -1
  162. package/dist/cdn/{shared-0e5ea9cf.js → shared-99e354b1.js} +1 -1
  163. package/dist/cdn/{shared-51ac503d.js → shared-9cfef94a.js} +1 -1
  164. package/dist/cdn/{shared-845f8bf1.js → shared-a24b2aa7.js} +1 -1
  165. package/dist/cdn/{shared-a0cbfb2f.js → shared-ad11b006.js} +1 -1
  166. package/dist/cdn/{shared-f7a5b12a.js → shared-b2fd98e6.js} +1 -1
  167. package/dist/cdn/{shared-11014aad.js → shared-b3db7611.js} +1 -1
  168. package/dist/cdn/{shared-872151f5.js → shared-b900e1b5.js} +1 -1
  169. package/dist/cdn/{shared-3cbcd9cb.js → shared-b9ea6d85.js} +1 -1
  170. package/dist/cdn/{shared-1122a125.js → shared-bb1d162b.js} +1 -1
  171. package/dist/cdn/{shared-6ef4ce19.js → shared-bd919e3b.js} +1 -1
  172. package/dist/cdn/{shared-d15c3e2d.js → shared-be0fca15.js} +1 -1
  173. package/dist/cdn/{shared-8dd03329.js → shared-cdf873d4.js} +1 -1
  174. package/dist/cdn/{shared-82435697.js → shared-d10d6cba.js} +1 -1
  175. package/dist/cdn/shared-d222bd1e.js +6 -0
  176. package/dist/cdn/{shared-1b0992cc.js → shared-d56a3799.js} +5 -5
  177. package/dist/cdn/{shared-8cd0f36d.js → shared-d72e87ee.js} +1 -1
  178. package/dist/cdn/{shared-1d257548.js → shared-da2e66a4.js} +1 -1
  179. package/dist/cdn/{shared-bc95d87e.js → shared-ea5fa631.js} +1 -1
  180. package/dist/cdn/{shared-abf72e2f.js → shared-ee13d85c.js} +3 -3
  181. package/dist/cdn/shared-f0fcd613.js +1 -0
  182. package/dist/cdn/{shared-2c70f0b6.js → shared-f4bb452b.js} +1 -1
  183. package/dist/cdn/{shared-3277bbf5.js → shared-f7c60ee0.js} +1 -1
  184. package/dist/cdn/{shared-5c542149.js → shared-fc5ace3b.js} +1 -1
  185. package/dist/cdn/shared-fe45779e.js +1 -0
  186. package/dist/cdn/translations/coupon-code-card/en.json +11 -0
  187. package/dist/cdn/translations/coupon-form/en.json +522 -297
  188. package/dist/cdn/translations/gift-card-code-card/en.json +10 -0
  189. package/dist/cdn/translations/gift-card-code-form/en.json +86 -0
  190. package/dist/cdn/translations/gift-card-form/en.json +638 -397
  191. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +10 -0
  192. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +95 -8
  193. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  194. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.d.ts +11 -0
  195. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.js +57 -0
  196. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.js.map +1 -0
  197. package/dist/elements/internal/InternalAsyncListControl/index.d.ts +1 -0
  198. package/dist/elements/internal/InternalAsyncListControl/index.js +3 -0
  199. package/dist/elements/internal/InternalAsyncListControl/index.js.map +1 -1
  200. package/dist/elements/internal/InternalAsyncListControl/types.d.ts +8 -0
  201. package/dist/elements/internal/InternalAsyncListControl/types.js +2 -0
  202. package/dist/elements/internal/InternalAsyncListControl/types.js.map +1 -0
  203. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.d.ts +23 -0
  204. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js +224 -0
  205. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js.map +1 -0
  206. package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.d.ts +8 -0
  207. package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.js +10 -0
  208. package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.js.map +1 -0
  209. package/dist/elements/internal/InternalBulkAddActionControl/InternalBulkAddActionControl.d.ts +10 -0
  210. package/dist/elements/internal/InternalBulkAddActionControl/InternalBulkAddActionControl.js +49 -0
  211. package/dist/elements/internal/InternalBulkAddActionControl/InternalBulkAddActionControl.js.map +1 -0
  212. package/dist/elements/internal/InternalBulkAddActionControl/index.d.ts +6 -0
  213. package/dist/elements/internal/InternalBulkAddActionControl/index.js +8 -0
  214. package/dist/elements/internal/InternalBulkAddActionControl/index.js.map +1 -0
  215. package/dist/elements/internal/InternalForm/InternalForm.d.ts +10 -0
  216. package/dist/elements/internal/InternalForm/InternalForm.js +44 -0
  217. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
  218. package/dist/elements/internal/InternalForm/index.d.ts +2 -0
  219. package/dist/elements/internal/InternalForm/index.js +2 -0
  220. package/dist/elements/internal/InternalForm/index.js.map +1 -1
  221. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +1 -0
  222. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +3 -0
  223. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -1
  224. package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.d.ts +10 -0
  225. package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js +51 -0
  226. package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js.map +1 -0
  227. package/dist/elements/internal/InternalQueryBuilderControl/index.d.ts +4 -0
  228. package/dist/elements/internal/InternalQueryBuilderControl/index.js +6 -0
  229. package/dist/elements/internal/InternalQueryBuilderControl/index.js.map +1 -0
  230. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts +16 -0
  231. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +167 -0
  232. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -0
  233. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.d.ts +14 -0
  234. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js +40 -0
  235. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js.map +1 -0
  236. package/dist/elements/internal/InternalResourcePickerControl/index.d.ts +6 -0
  237. package/dist/elements/internal/InternalResourcePickerControl/index.js +10 -0
  238. package/dist/elements/internal/InternalResourcePickerControl/index.js.map +1 -0
  239. package/dist/elements/public/CartForm/CartForm.js +81 -81
  240. package/dist/elements/public/CartForm/CartForm.js.map +1 -1
  241. package/dist/elements/public/CouponCodeCard/CouponCodeCard.d.ts +16 -0
  242. package/dist/elements/public/CouponCodeCard/CouponCodeCard.js +41 -0
  243. package/dist/elements/public/CouponCodeCard/CouponCodeCard.js.map +1 -0
  244. package/dist/elements/public/CouponCodeCard/index.d.ts +4 -0
  245. package/dist/elements/public/CouponCodeCard/index.js +6 -0
  246. package/dist/elements/public/CouponCodeCard/index.js.map +1 -0
  247. package/dist/elements/public/CouponCodeCard/types.d.ts +3 -0
  248. package/dist/elements/public/CouponCodeCard/types.js +2 -0
  249. package/dist/elements/public/CouponCodeCard/types.js.map +1 -0
  250. package/dist/elements/public/CouponForm/CouponForm.d.ts +65 -41
  251. package/dist/elements/public/CouponForm/CouponForm.js +322 -1035
  252. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  253. package/dist/elements/public/CouponForm/index.d.ts +15 -16
  254. package/dist/elements/public/CouponForm/index.js +15 -16
  255. package/dist/elements/public/CouponForm/index.js.map +1 -1
  256. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.d.ts +7 -0
  257. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js +141 -0
  258. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js.map +1 -0
  259. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.d.ts +6 -0
  260. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.js +8 -0
  261. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.js.map +1 -0
  262. package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js +7 -9
  263. package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js.map +1 -1
  264. package/dist/elements/public/CustomerPortalSettingsForm/toOrigin.d.ts +1 -0
  265. package/dist/elements/public/CustomerPortalSettingsForm/toOrigin.js +9 -0
  266. package/dist/elements/public/CustomerPortalSettingsForm/toOrigin.js.map +1 -0
  267. package/dist/elements/public/DownloadableForm/DownloadableForm.js +9 -9
  268. package/dist/elements/public/DownloadableForm/DownloadableForm.js.map +1 -1
  269. package/dist/elements/public/GiftCardCodeCard/GiftCardCodeCard.d.ts +21 -0
  270. package/dist/elements/public/GiftCardCodeCard/GiftCardCodeCard.js +78 -0
  271. package/dist/elements/public/GiftCardCodeCard/GiftCardCodeCard.js.map +1 -0
  272. package/dist/elements/public/GiftCardCodeCard/index.d.ts +5 -0
  273. package/dist/elements/public/GiftCardCodeCard/index.js +7 -0
  274. package/dist/elements/public/GiftCardCodeCard/index.js.map +1 -0
  275. package/dist/elements/public/GiftCardCodeCard/types.d.ts +3 -0
  276. package/dist/elements/public/GiftCardCodeCard/types.js +2 -0
  277. package/dist/elements/public/GiftCardCodeCard/types.js.map +1 -0
  278. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +12 -0
  279. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +69 -4
  280. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
  281. package/dist/elements/public/GiftCardCodeForm/index.d.ts +2 -0
  282. package/dist/elements/public/GiftCardCodeForm/index.js +2 -0
  283. package/dist/elements/public/GiftCardCodeForm/index.js.map +1 -1
  284. package/dist/elements/public/GiftCardCodeForm/types.d.ts +5 -1
  285. package/dist/elements/public/GiftCardCodeForm/types.js.map +1 -1
  286. package/dist/elements/public/GiftCardForm/GiftCardForm.d.ts +22 -28
  287. package/dist/elements/public/GiftCardForm/GiftCardForm.js +183 -633
  288. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  289. package/dist/elements/public/GiftCardForm/index.d.ts +13 -12
  290. package/dist/elements/public/GiftCardForm/index.js +13 -12
  291. package/dist/elements/public/GiftCardForm/index.js.map +1 -1
  292. package/dist/elements/public/GiftCardForm/types.d.ts +2 -27
  293. package/dist/elements/public/GiftCardForm/types.js.map +1 -1
  294. package/dist/elements/public/I18n/format/discount.js +9 -2
  295. package/dist/elements/public/I18n/format/discount.js.map +1 -1
  296. package/dist/elements/public/I18n/format/ordinal.js +6 -2
  297. package/dist/elements/public/I18n/format/ordinal.js.map +1 -1
  298. package/dist/elements/public/IntegrationForm/IntegrationForm.js +8 -6
  299. package/dist/elements/public/IntegrationForm/IntegrationForm.js.map +1 -1
  300. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js +27 -27
  301. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js.map +1 -1
  302. package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +4 -0
  303. package/dist/elements/public/QueryBuilder/QueryBuilder.js +10 -2
  304. package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
  305. package/dist/elements/public/QueryBuilder/components/Group.d.ts +3 -1
  306. package/dist/elements/public/QueryBuilder/components/Group.js +8 -1
  307. package/dist/elements/public/QueryBuilder/components/Group.js.map +1 -1
  308. package/dist/elements/public/QueryBuilder/components/OperatorToggle.d.ts +2 -1
  309. package/dist/elements/public/QueryBuilder/components/OperatorToggle.js +5 -4
  310. package/dist/elements/public/QueryBuilder/components/OperatorToggle.js.map +1 -1
  311. package/dist/elements/public/QueryBuilder/components/Rule.d.ts +3 -1
  312. package/dist/elements/public/QueryBuilder/components/Rule.js +2 -1
  313. package/dist/elements/public/QueryBuilder/components/Rule.js.map +1 -1
  314. package/dist/elements/public/StoreForm/StoreForm.js +7 -8
  315. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  316. package/dist/elements/public/TemplateSetForm/TemplateSetForm.js +28 -28
  317. package/dist/elements/public/TemplateSetForm/TemplateSetForm.js.map +1 -1
  318. package/dist/elements/public/index.d.ts +2 -0
  319. package/dist/elements/public/index.defined.d.ts +2 -0
  320. package/dist/elements/public/index.defined.js +2 -0
  321. package/dist/elements/public/index.defined.js.map +1 -1
  322. package/dist/elements/public/index.js +2 -0
  323. package/dist/elements/public/index.js.map +1 -1
  324. package/dist/mixins/inferrable.js +8 -3
  325. package/dist/mixins/inferrable.js.map +1 -1
  326. package/package.json +2 -2
  327. package/dist/cdn/shared-0f49d9c3.js +0 -1
  328. package/dist/cdn/shared-20f65e73.js +0 -1
  329. package/dist/cdn/shared-27c7514d.js +0 -1
  330. package/dist/cdn/shared-4fb9d21f.js +0 -1
  331. package/dist/cdn/shared-6350f7d9.js +0 -1
  332. package/dist/cdn/shared-669decee.js +0 -1
  333. package/dist/cdn/shared-afefe2ac.js +0 -113
  334. package/dist/cdn/shared-b33fd700.js +0 -1
  335. package/dist/cdn/shared-b51b9df7.js +0 -64
  336. package/dist/cdn/shared-b914895b.js +0 -1
  337. package/dist/cdn/shared-bfeff3bb.js +0 -1
  338. package/dist/cdn/shared-cce18690.js +0 -1
  339. package/dist/cdn/shared-d04dd602.js +0 -20
  340. package/dist/cdn/shared-df58b901.js +0 -1
  341. package/dist/cdn/shared-e07b24ca.js +0 -1
  342. package/dist/elements/private/EditableList/EditableList.d.ts +0 -23
  343. package/dist/elements/private/EditableList/EditableList.js +0 -127
  344. package/dist/elements/private/EditableList/EditableList.js.map +0 -1
  345. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.d.ts +0 -20
  346. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js +0 -99
  347. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js.map +0 -1
  348. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.d.ts +0 -18
  349. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js +0 -50
  350. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js.map +0 -1
  351. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.d.ts +0 -18
  352. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js +0 -53
  353. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js.map +0 -1
  354. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.d.ts +0 -20
  355. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js +0 -99
  356. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js.map +0 -1
  357. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.d.ts +0 -18
  358. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js +0 -50
  359. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js.map +0 -1
  360. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.d.ts +0 -18
  361. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js +0 -53
  362. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CouponForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/CouponForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Data, TransactionPageHrefGetter } from './types';\nimport type { DiscountBuilder } from '../DiscountBuilder/DiscountBuilder';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\n\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 { Checkbox } from '../../private/Checkbox/Checkbox';\nimport { CheckboxChangeEvent } from '../../private/Checkbox/CheckboxChangeEvent';\nimport { Column } from '../Table/types';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DatePickerElement } from '@vaadin/vaadin-date-picker';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { EditableList } from '../../private/EditableList/EditableList';\nimport { FormDialog } from '../FormDialog';\nimport { Group } from '../../private/Group/Group';\nimport { IntegerFieldElement } from '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { Metadata } from '../../private/Metadata/Metadata';\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 { ifDefined } from 'lit-html/directives/if-defined';\nimport { live } from 'lit-html/directives/live';\nimport { serializeDate } from '../../../utils/serialize-date';\n\nconst NS = 'coupon-form';\nconst Base = ScopedElementsMixin(\n ThemeableMixin(ConfigurableMixin(ResponsiveMixin(TranslatableMixin(NucleonElement, NS))))\n);\n\n/**\n * Form element for creating or editing coupons (`fx:coupon`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot rules:before\n * @slot rules:after\n *\n * @slot codes:before\n * @slot codes:after\n *\n * @slot usage:before\n * @slot usage: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 options:before\n * @slot options: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-coupon-form\n * @since 1.15.0\n */\nexport class CouponForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-integer-field': customElements.get('vaadin-integer-field'),\n 'vaadin-date-picker': customElements.get('vaadin-date-picker'),\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'vaadin-button': customElements.get('vaadin-button'),\n\n 'iron-dropdown': customElements.get('iron-dropdown'),\n 'iron-icon': customElements.get('iron-icon'),\n\n 'foxy-internal-editable-list-control': customElements.get(\n 'foxy-internal-editable-list-control'\n ),\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-copy-to-clipboard': customElements.get('foxy-copy-to-clipboard'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-discount-builder': customElements.get('foxy-discount-builder'),\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-metadata': Metadata,\n 'x-editable-list': EditableList,\n 'x-checkbox': Checkbox,\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\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 }\n\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n private __codesTableColumns: Column<Resource<Rels.CouponCodes>>[] = [\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=\"date_modified\" ns=${c.ns}></foxy-i18n>`,\n cell: ctx => html`\n <foxy-i18n\n options=${JSON.stringify({ value: ctx.data.date_modified })}\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=\"used_codes\" ns=${c.ns}></foxy-i18n>`,\n cell: ctx => html`${ctx.data.number_of_uses_to_date}`,\n },\n ];\n\n private static readonly __codesQueryOptions: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'used_codes', path: 'number_of_uses_to_date', type: Type.Number },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private readonly __customerSubscriptionRestrictionsGetValue = () => {\n const items = this.form.customer_subscription_restrictions\n ?.split(',')\n .map(value => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .map(value => ({ value }));\n\n return items ?? [];\n };\n\n private readonly __customerSubscriptionRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n customer_subscription_restrictions: newValue\n .map(({ value }) => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .join(),\n });\n\n this.edit({\n customer_auto_apply:\n !!this.form.customer_subscription_restrictions ||\n !!this.form.customer_attribute_restrictions,\n });\n };\n\n private __codesTableQuery: string | null = null;\n\n private __itemCategories = '';\n\n render(): TemplateResult {\n const hidden = this.hiddenSelector;\n\n return html`\n <div class=\"relative space-y-l\">\n ${hidden.matches('name', true) ? '' : this.__renderName()}\n ${hidden.matches('rules', true) ? '' : this.__renderRules()}\n ${hidden.matches('codes', true) || !this.data ? '' : this.__renderCodes()}\n ${hidden.matches('usage', true) ? '' : this.__renderUsage()}\n ${hidden.matches('product-restrictions', true) ? '' : this.__renderProductRestrictions()}\n ${hidden.matches('category-restrictions', true) || !this.data\n ? ''\n : this.__renderCategoryRestrictions()}\n\n <foxy-internal-editable-list-control\n infer=\"customer-subscription-restrictions\"\n .getValue=${this.__customerSubscriptionRestrictionsGetValue}\n .setValue=${this.__customerSubscriptionRestrictionsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n ${hidden.matches('customer-attribute-restrictions', true)\n ? ''\n : this.__renderCustomerAttributeRestrictions()}\n ${hidden.matches('options', true) ? '' : this.__renderOptions()}\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('idle'),\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 coupon = await super._sendGet();\n const store = await super._fetch<Store>(coupon._links['fx:store'].href);\n const categoriesURL = new URL(store._links['fx:item_categories'].href);\n\n categoriesURL.searchParams.set('limit', '5');\n this.__itemCategories = categoriesURL.toString();\n\n return coupon;\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('coupon_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 __renderRulesPreset() {\n const isDisabled = !this.in('idle') || this.disabledSelector.matches('rules', true);\n const isReadonly = this.readonlySelector.matches('rules', true);\n const details = this.form.coupon_discount_details;\n const type = this.form.coupon_discount_type;\n\n const presets = [\n { type: 'quantity_amount', details: 'allunits|2-2' },\n { type: 'quantity_percentage', details: 'allunits|5-10|10-20' },\n { type: 'quantity_amount', details: 'incremental|3-5' },\n { type: 'quantity_percentage', details: 'incremental|11-10|51-15|101-20' },\n { type: 'quantity_percentage', details: 'repeat|2-100' },\n { type: 'quantity_percentage', details: 'repeat|4-50' },\n { type: 'quantity_amount', details: 'single|5-10' },\n { type: 'price_percentage', details: 'single|99.99-10' },\n ] as const;\n\n const selectedPreset = presets.find(p => p.details === details && p.type === type);\n\n return html`\n <label\n data-testid=\"rules:preset\"\n class=${classMap({\n 'whitespace-nowrap block ring-primary-50 rounded px-xs -mx-xs transition-colors': true,\n 'text-body hover-text-primary focus-within-ring-2': !isDisabled && !isReadonly,\n 'text-disabled': isDisabled,\n 'text-secondary': isReadonly,\n })}\n >\n <foxy-i18n class=\"sr-only\" lang=${this.lang} key=\"preset\" ns=${this.ns}></foxy-i18n>\n\n <span class=\"relative font-medium flex items-center\">\n <span class=\"truncate\">\n ${selectedPreset\n ? this.t('discount_summary', { params: { ...selectedPreset, ns: this.ns } })\n : this.t('custom_discount')}\n </span>\n\n <iron-icon class=\"icon-inline text-xl ml-xs -mr-xs\" icon=\"icons:expand-more\"></iron-icon>\n\n <select\n data-testclass=\"interactive editable\"\n data-testid=\"rules:preset:select\"\n class=\"opacity-0 absolute inset-0 focus-outline-none\"\n ?disabled=${isDisabled || isReadonly}\n @change=${(evt: Event) => {\n const select = evt.currentTarget as HTMLSelectElement;\n const preset = presets[select.selectedIndex];\n\n this.edit({\n coupon_discount_details: preset?.details ?? '',\n coupon_discount_type: preset?.type ?? 'quantity_amount',\n });\n }}\n >\n ${presets.map(option => {\n return html`\n <option value=${option.details} ?selected=${option === selectedPreset}>\n ${this.t('discount_summary', { params: { ...option, ns: this.ns } })}\n </option>\n `;\n })}\n\n <option value=\"custom\" ?selected=${!selectedPreset}>\n ${this.t('custom_discount')}\n </option>\n </select>\n </span>\n </label>\n `;\n }\n\n private __renderRulesUrlParameter() {\n const name = this.form.name ?? '';\n const type = this.form.coupon_discount_type ?? 'quantity_amount';\n const details = this.form.coupon_discount_details ?? '';\n const urlParameter = `discount_${type}=${encodeURIComponent(`${name}{${details}}`)}`;\n const isDisabled = !this.in('idle') || this.disabledSelector.matches('rules', true);\n\n return html`\n <div data-testid=\"rules:url\" class=\"text-xs flex space-x-xs\">\n <span\n class=${classMap({\n 'flex-shrink-0 transition-colors': true,\n 'text-tertiary': !isDisabled,\n 'text-disabled': isDisabled,\n })}\n >\n <foxy-i18n lang=${this.lang} key=\"url_parameter\" ns=${this.ns}></foxy-i18n>&#58;\n </span>\n\n <code\n class=${classMap({\n 'bg-contrast-5 transition-colors font-lumo truncate rounded-s px-xs': true,\n 'text-secondary': !isDisabled,\n 'text-disabled': isDisabled,\n })}\n >\n ${urlParameter}\n </code>\n\n <foxy-copy-to-clipboard\n data-testid=\"rules:url:copy\"\n text=${urlParameter}\n lang=${this.lang}\n ns=\"${this.ns} copy-to-clipboard\"\n ?disabled=${isDisabled}\n >\n </foxy-copy-to-clipboard>\n </div>\n `;\n }\n\n private __renderRulesDescription() {\n const type = this.form.coupon_discount_type ?? 'quantity_amount';\n const details = this.form.coupon_discount_details ?? '';\n const isDisabled = !this.in('idle') || this.disabledSelector.matches('rules', true);\n\n return html`\n <div data-testid=\"rules:description\" class=\"text-xs leading-m\">\n <span class=\"transition-colors ${isDisabled ? 'text-disabled' : 'text-tertiary'}\">\n <foxy-i18n lang=${this.lang} key=\"description\" ns=${this.ns}></foxy-i18n>&#58;\n </span>\n\n <foxy-i18n\n options=${JSON.stringify({ params: { details, type, ns: this.ns } })}\n class=\"transition-colors ${isDisabled ? 'text-disabled' : 'text-secondary'}\"\n lang=${this.lang}\n key=\"discount_summary\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n `;\n }\n\n private __renderRules() {\n const isDisabled = !this.in('idle') || this.disabledSelector.matches('rules', true);\n const isReadonly = this.readonlySelector.matches('rules', true);\n const details = this.form.coupon_discount_details ?? '';\n const type = this.form.coupon_discount_type ?? 'quantity_amount';\n\n return html`\n <div data-testid=\"rules\">\n ${this.renderTemplateOrSlot('rules:before')}\n\n <div>\n <div class=\"flex items-center justify-between space-x-m text-s mb-xs\">\n <foxy-i18n\n class=${classMap({\n 'transition-colors font-medium flex-1': true,\n 'text-secondary': !isDisabled,\n 'text-disabled': isDisabled,\n })}\n lang=${this.lang}\n key=\"rule_plural\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <div class=\"min-w-0\">${this.__renderRulesPreset()}</div>\n </div>\n\n <foxy-discount-builder\n data-testclass=\"interactive\"\n lang=${this.lang}\n ns=${this.ns}\n ?readonly=${isReadonly}\n ?disabled=${isDisabled}\n .parsedValue=${{ details, type, name: 'Rules' }}\n @change=${(evt: CustomEvent) => {\n const builder = evt.currentTarget as DiscountBuilder;\n const newParsedValue = builder.parsedValue;\n this.edit({\n coupon_discount_details: newParsedValue.details,\n coupon_discount_type: newParsedValue.type,\n });\n }}\n >\n </foxy-discount-builder>\n\n <div class=\"space-y-xs mt-m\">\n ${this.__renderRulesUrlParameter()} ${this.__renderRulesDescription()}\n </div>\n </div>\n\n ${this.renderTemplateOrSlot('rules:after')}\n </div>\n `;\n }\n\n private __renderCodes() {\n const { disabledSelector, 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:coupon_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=${this.readonlySelector.zoom('codes:generate:form').toString()}\n hiddencontrols=\"save-button current-balance ${this.hiddenSelector\n .zoom('codes:generate:form')\n .toString()}\"\n related=${JSON.stringify([url.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=${this.readonlySelector.zoom('codes:form').toString()}\n hiddencontrols=${this.hiddenSelector.zoom('codes:form').toString()}\n header=\"code\"\n parent=${url.toString()}\n group=${group}\n lang=${lang}\n form=\"foxy-coupon-code-form\"\n ns=${ns}\n id=\"code-dialog\"\n alert\n .props=${{ '.getTransactionPageHref': this.getTransactionPageHref }}\n >\n </foxy-form-dialog>\n\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:import:form').toString()}\n readonlycontrols=${this.readonlySelector.zoom('codes:import:form').toString()}\n hiddencontrols=\"save-button ${this.hiddenSelector.zoom('codes:import:form').toString()}\"\n header=\"import\"\n parent=${data!._links['fx:coupon_codes'].href}\n group=${group}\n lang=${lang}\n form=\"foxy-coupon-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=${CouponForm.__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 __renderUsage() {\n const isDisabled = !this.in('idle') || this.disabledSelector.matches('usage', true);\n const isReadonly = this.readonlySelector.matches('usage', true);\n const usesPerCoupon = this.form.number_of_uses_allowed ?? 0;\n const usesPerCustomer = this.form.number_of_uses_allowed_per_customer ?? 0;\n const usesPerCouponCode = this.form.number_of_uses_allowed_per_code ?? 0;\n\n return html`\n <div data-testid=\"usage\">\n ${this.renderTemplateOrSlot('usage:before')}\n\n <div class=\"space-y-s\">\n <div class=\"grid gap-m grid-cols-3\">\n <vaadin-integer-field\n placeholder=${this.t('unlimited')}\n data-testid=\"usage:per-coupon\"\n label=${this.t('uses_per_coupon')}\n class=\"w-full\"\n min=\"0\"\n prevent-invalid-input\n has-controls\n .value=${usesPerCoupon || ''}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as IntegerFieldElement;\n this.edit({ number_of_uses_allowed: parseInt(field.value) });\n }}\n >\n </vaadin-integer-field>\n\n <vaadin-integer-field\n placeholder=${this.t('unlimited')}\n data-testid=\"usage:per-coupon-code\"\n label=${this.t('uses_per_coupon_code')}\n class=\"w-full\"\n min=\"0\"\n prevent-invalid-input\n has-controls\n .value=${usesPerCouponCode || ''}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as IntegerFieldElement;\n this.edit({ number_of_uses_allowed_per_code: parseInt(field.value) });\n }}\n >\n </vaadin-integer-field>\n\n <vaadin-integer-field\n placeholder=${this.t('unlimited')}\n data-testid=\"usage:per-customer\"\n label=${this.t('uses_per_customer')}\n class=\"w-full\"\n min=\"0\"\n prevent-invalid-input\n has-controls\n .value=${usesPerCustomer || ''}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as IntegerFieldElement;\n this.edit({ number_of_uses_allowed_per_customer: parseInt(field.value) });\n }}\n >\n </vaadin-integer-field>\n </div>\n\n <div\n class=${classMap({\n 'transition-colors text-xs leading-s': true,\n 'text-secondary': !isDisabled,\n 'text-disabled': isDisabled,\n })}\n >\n <foxy-i18n\n options=${JSON.stringify({ count: usesPerCoupon })}\n lang=${this.lang}\n key=\"uses_per_coupon_summary${usesPerCoupon ? '' : '_0'}\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n options=${JSON.stringify({ count: usesPerCouponCode })}\n lang=${this.lang}\n key=\"uses_per_coupon_code_summary${usesPerCouponCode ? '' : '_0'}\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n options=${JSON.stringify({ count: usesPerCustomer })}\n lang=${this.lang}\n key=\"uses_per_customer_summary${usesPerCustomer ? '' : '_0'}\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n </div>\n\n ${this.renderTemplateOrSlot('usage: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 trimmedValue = value.trim();\n if (!trimmedValue) return;\n\n const isBlocklistValue = trimmedValue.startsWith('-');\n const target = isBlocklistValue ? 1 : 0;\n const label = isBlocklistValue ? trimmedValue.substring(1) : trimmedValue;\n\n groups[target].items.push({ label, value: trimmedValue });\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=\"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\n return html`\n <div data-testid=\"category-restrictions\">\n ${this.renderTemplateOrSlot('category-restrictions: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 coupon-item-categories=${ifDefined(\n this.data?._links['fx:coupon_item_categories'].href\n )}\n data-testid=\"category-restrictions:page\"\n coupon=${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-tertiary\"\n lang=${this.lang}\n key=\"category_restrictions_helper_text\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n ${this.renderTemplateOrSlot('category-restrictions:after')}\n </div>\n `;\n }\n\n private __renderCustomerAttributeRestrictions() {\n const scope = 'customer-attribute-restrictions';\n const isDisabled = this.disabledSelector.matches(scope, true);\n const isReadonly = this.readonlySelector.matches(scope, true);\n\n return html`\n <div data-testid=\"customer-attribute-restrictions\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div\n class=${classMap({\n 'grid gap-xs leading-xs transition-colors': true,\n 'text-secondary hover-text-body': !isDisabled && !isReadonly,\n 'text-disabled': isDisabled,\n 'text-body': isReadonly,\n })}\n >\n <foxy-i18n class=\"text-s font-medium\" infer=${scope} key=\"label\"></foxy-i18n>\n\n <foxy-query-builder\n infer=${scope}\n .value=${this.form.customer_attribute_restrictions ?? null}\n @change=${(evt: CustomEvent) => {\n const queryBuilder = evt.currentTarget as QueryBuilder;\n this.edit({ customer_attribute_restrictions: queryBuilder.value ?? '' });\n this.edit({\n customer_auto_apply:\n !!this.form.customer_subscription_restrictions ||\n !!this.form.customer_attribute_restrictions,\n });\n }}\n >\n </foxy-query-builder>\n\n <foxy-i18n class=\"text-xs\" infer=${scope} key=\"helper_text\"></foxy-i18n>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n }\n\n private __renderOptions() {\n type Option = { param: keyof Data; label?: string; flip?: boolean };\n\n const isDisabled = !this.in('idle') || this.disabledSelector.matches('options', true);\n const isReadonly = this.readonlySelector.matches('options', true);\n const options: Option[] = [\n { param: 'multiple_codes_allowed' },\n { param: 'combinable' },\n { param: 'exclude_category_discounts', label: 'combine_with_category_discounts', flip: true },\n { param: 'exclude_line_item_discounts', label: 'combine_with_line_discounts', flip: true },\n { param: 'is_taxable', label: 'apply_taxes_before_coupon' },\n ];\n\n return html`\n <div data-testid=\"options\">\n ${this.renderTemplateOrSlot('options:before')}\n\n <x-group frame>\n <foxy-i18n\n class=\"transition-colors ${isDisabled ? 'text-disabled' : 'text-secondary'}\"\n slot=\"header\"\n lang=${this.lang}\n key=\"option_plural\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n ${options.map(option => {\n const value = this.form[option.param];\n const label = option.label ?? option.param;\n const color = isDisabled ? 'text-disabled' : 'text-secondary';\n\n return html`\n <x-checkbox\n data-testclass=\"inputs\"\n data-testid=\"options:${option.param.replace(/_/g, '-')}\"\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n ?checked=${option.flip ? !value : value}\n class=\"m-m\"\n @change=${(evt: CheckboxChangeEvent) => {\n this.edit({ [option.param]: option.flip ? !evt.detail : evt.detail });\n }}\n >\n <div class=\"flex flex-col\">\n <foxy-i18n lang=${this.lang} key=${label} ns=${this.ns}></foxy-i18n>\n <foxy-i18n\n class=\"transition-colors text-xs leading-s ${color}\"\n lang=${this.lang}\n key=\"${label}_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n </x-checkbox>\n\n <div style=\"margin-left: calc(1.125rem + (var(--lumo-space-m) * 2))\">\n <div class=\"border-b border-contrast-10\"></div>\n </div>\n `;\n })}\n\n <x-checkbox\n data-testclass=\"inputs\"\n data-testid=\"options:dates\"\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n ?checked=${this.form.start_date || this.form.end_date}\n class=\"m-m\"\n @change=${(evt: Event) => {\n if (evt instanceof CheckboxChangeEvent) {\n let startDate: string | null = null;\n let endDate: string | null = null;\n\n if (evt.detail) {\n const today = Date.now();\n const oneMonthFromToday = new Date(today).setMonth(new Date().getMonth() + 1);\n\n startDate = serializeDate(new Date(today));\n endDate = serializeDate(new Date(oneMonthFromToday));\n }\n\n this.edit({ start_date: startDate, end_date: endDate });\n }\n }}\n >\n <div class=\"flex flex-col\">\n <foxy-i18n lang=${this.lang} key=\"set_time_constraints\" ns=${this.ns}></foxy-i18n>\n <foxy-i18n\n class=\"text-xs leading-s ${isDisabled ? 'text-disabled' : 'text-secondary'}\"\n lang=${this.lang}\n key=\"set_time_constraints_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n ${this.form.start_date || this.form.end_date\n ? html`\n <div\n class=\"grid grid-cols-2 gap-m mt-m\"\n slot=\"content\"\n style=\"--lumo-border-radius: var(--lumo-border-radius-s)\"\n >\n ${(['start_date', 'end_date'] as const).map(property => {\n const formValue = this.form[property];\n const pickerValue = formValue\n ? formValue.length > 10\n ? serializeDate(new Date(formValue))\n : formValue\n : '';\n\n return html`\n <vaadin-date-picker\n data-testclass=\"inputs\"\n data-testid=\"options:${property.replace('_', '-')}\"\n placeholder=${this.t('select')}\n label=${this.t(property)}\n clear-button-visible\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n .value=${live(pickerValue)}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as DatePickerElement;\n this.edit({ [property]: field.value });\n }}\n >\n </vaadin-date-picker>\n `;\n })}\n </div>\n `\n : ''}\n </x-checkbox>\n </x-group>\n\n ${this.renderTemplateOrSlot('options:after')}\n </div>\n `;\n }\n\n private __renderTimestamps() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n\n <x-metadata\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-metadata>\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 isIdle = this.in('idle');\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=${!isIdle || 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":"CouponForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/CouponForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult, PropertyDeclarations } from 'lit-element';\nimport type { Data, TransactionPageHrefGetter } from './types';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Action } from '../../internal/InternalAsyncListControl/types';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { Operator, Type } from '../QueryBuilder/types';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'coupon-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing coupons (`fx:coupon`).\n *\n * @slot import:before\n * @slot import:after\n *\n * @slot generate:before\n * @slot generate:after\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot rules:before\n * @slot rules:after\n *\n * @slot coupon-codes:before\n * @slot coupon-codes:after\n *\n * @slot item-option-restrictions:before\n * @slot item-option-restrictions:after\n *\n * @slot product-code-restrictions:before\n * @slot product-code-restrictions:after\n *\n * @slot category-restrictions:before\n * @slot category-restrictions:after\n *\n * @slot number-of-uses-allowed:before\n * @slot number-of-uses-allowed:after\n *\n * @slot number-of-uses-allowed-per-customer:before\n * @slot number-of-uses-allowed-per-customer:after\n *\n * @slot number-of-uses-allowed-per-code:before\n * @slot number-of-uses-allowed-per-code:after\n *\n * @slot start-date:before\n * @slot start-date:after\n *\n * @slot end-date:before\n * @slot end-date:after\n *\n * @slot inclusive-tax-rate:before\n * @slot inclusive-tax-rate:after\n *\n * @slot options:before\n * @slot options:after\n *\n * @slot customer-subscription-restrictions:before\n * @slot customer-subscription-restrictions:after\n *\n * @slot customer-attribute-restrictions:before\n * @slot customer-attribute-restrictions:after\n *\n * @slot attributes:before\n * @slot attributes:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n *\n * @element foxy-coupon-form\n * @since 1.15.0\n */\nexport class CouponForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\n __couponCodesActions: { type: Array },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n ({ inclusive_tax_rate: v }) => !v || v >= 0 || 'inclusive-tax-rate:v8n_too_small',\n ({ inclusive_tax_rate: v }) => !v || v <= 1 || 'inclusive-tax-rate:v8n_too_big',\n ({ number_of_uses_allowed: v }) => !v || v >= 0 || 'number-of-uses-allowed:v8n_too_small',\n ({ coupon_discount_details: v }) => !!v || 'rules:v8n_required',\n ({ coupon_discount_details: v }) => !v || v.length <= 200 || 'rules:v8n_too_long',\n ({ item_option_restrictions: v }) => {\n return !v || JSON.stringify(v).length <= 6000 || 'item-option-restrictions:v8n_too_long';\n },\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ({ customer_attribute_restrictions: v }) => {\n return !v || v.length <= 2000 || 'customer-attribute-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_code: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-code:v8n_too_small';\n },\n ({ customer_subscription_restrictions: v }) => {\n return !v || v.length <= 200 || 'customer-subscription-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_customer: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-customer:v8n_too_small';\n },\n ];\n }\n\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n private readonly __customerSubscriptionRestrictionsGetValue = () => {\n const items = this.form.customer_subscription_restrictions\n ?.split(',')\n .map(value => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .map(value => ({ value }));\n\n return items ?? [];\n };\n\n private readonly __customerSubscriptionRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n customer_subscription_restrictions: newValue\n .map(({ value }) => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .join(),\n });\n\n this.edit({\n customer_auto_apply:\n !!this.form.customer_subscription_restrictions ||\n !!this.form.customer_attribute_restrictions,\n });\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __itemOptionRestrictionsOperators = [Operator.In];\n\n private readonly __itemOptionRestrictionsGetValue = () => {\n const query = new URLSearchParams();\n const rules = this.form.item_option_restrictions ?? {};\n\n for (const key in rules) {\n query.set(`${key}:in`, rules[key].join(','));\n }\n\n return query.toString();\n };\n\n private readonly __itemOptionRestrictionsSetValue = (newValue: string) => {\n const rules = Object.fromEntries(\n Array.from(new URLSearchParams(newValue).entries()).map(([key, value]) => {\n return [key.replace(':in', ''), value.split(',').filter(v => !!v.trim())];\n })\n );\n\n this.edit({ item_option_restrictions: rules });\n };\n\n private readonly __optionsGetValue = () => {\n const value: string[] = [];\n\n if (this.form.multiple_codes_allowed) value.push('multiple_codes_allowed');\n if (this.form.combinable) value.push('combinable');\n if (this.form.exclude_category_discounts) value.push('exclude_category_discounts');\n if (this.form.exclude_line_item_discounts) value.push('exclude_line_item_discounts');\n if (this.form.is_taxable) value.push('is_taxable');\n if (this.form.shared_codes_allowed) value.push('shared_codes_allowed');\n if (this.form.customer_auto_apply) value.push('customer_auto_apply');\n\n return value;\n };\n\n private readonly __optionsSetValue = (newValue: string[]) => {\n this.edit({\n multiple_codes_allowed: newValue.includes('multiple_codes_allowed'),\n combinable: newValue.includes('combinable'),\n exclude_category_discounts: newValue.includes('exclude_category_discounts'),\n exclude_line_item_discounts: newValue.includes('exclude_line_item_discounts'),\n is_taxable: newValue.includes('is_taxable'),\n shared_codes_allowed: newValue.includes('shared_codes_allowed'),\n customer_auto_apply: newValue.includes('customer_auto_apply'),\n });\n };\n\n private readonly __optionsOptions = [\n { value: 'multiple_codes_allowed', label: 'option_multiple_codes_allowed' },\n { value: 'combinable', label: 'option_combinable' },\n { value: 'exclude_category_discounts', label: 'option_exclude_category_discounts' },\n { value: 'exclude_line_item_discounts', label: 'option_exclude_line_item_discounts' },\n { value: 'is_taxable', label: 'option_is_taxable' },\n { value: 'shared_codes_allowed', label: 'option_shared_codes_allowed' },\n { value: 'customer_auto_apply', label: 'option_customer_auto_apply' },\n ];\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'used_codes', path: 'number_of_uses_to_date', type: Type.Number },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __couponCodesActions: Action<Resource<Rels.CouponCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__couponCodesActions[0].state = 'busy';\n this.__couponCodesActions = [...this.__couponCodesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__couponCodesActions[0].state = 'end';\n } catch {\n this.__couponCodesActions[0].state = 'error';\n } finally {\n this.__couponCodesActions = [...this.__couponCodesActions];\n setTimeout(() => {\n this.__couponCodesActions[0].state = 'idle';\n this.__couponCodesActions = [...this.__couponCodesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.data) {\n alwaysMatch.push('coupon-codes', 'category-restrictions', 'attributes');\n }\n\n if (!this.form.customer_auto_apply) {\n alwaysMatch.push('customer-attribute-restrictions', 'customer-subscription-restrictions');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:coupon_codes'].href}\n infer=\"import\"\n form=\"foxy-coupon-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:coupon_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-text-control infer=\"name\"></foxy-internal-text-control>\n\n <foxy-internal-coupon-form-rules-control infer=\"rules\">\n </foxy-internal-coupon-form-rules-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"coupon-codes\"\n item=\"foxy-coupon-code-card\"\n form=\"foxy-coupon-code-form\"\n alert\n .formProps=${{ '.getTransactionPageHref': this.getTransactionPageHref }}\n .actions=${this.__couponCodesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-query-builder-control\n infer=\"item-option-restrictions\"\n disable-or\n .operators=${this.__itemOptionRestrictionsOperators}\n .getValue=${this.__itemOptionRestrictionsGetValue}\n .setValue=${this.__itemOptionRestrictionsSetValue}\n >\n </foxy-internal-query-builder-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"coupon_uri\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n embed-key=\"fx:coupon_item_categories\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:coupon_item_categories'].href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <div class=\"grid gap-l sm-grid-cols-3\">\n <foxy-internal-integer-control infer=\"number-of-uses-allowed\" min=\"0\" show-controls>\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-customer\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"number-of-uses-allowed-per-code\"\n min=\"0\"\n show-controls\n >\n </foxy-internal-integer-control>\n </div>\n\n <div class=\"grid gap-l sm-grid-cols-2\">\n <foxy-internal-date-control infer=\"start-date\"></foxy-internal-date-control>\n <foxy-internal-date-control infer=\"end-date\"></foxy-internal-date-control>\n </div>\n\n <foxy-internal-number-control min=\"0\" max=\"1\" infer=\"inclusive-tax-rate\">\n </foxy-internal-number-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"options\"\n theme=\"vertical\"\n .getValue=${this.__optionsGetValue}\n .setValue=${this.__optionsSetValue}\n .options=${this.__optionsOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-editable-list-control\n infer=\"customer-subscription-restrictions\"\n .getValue=${this.__customerSubscriptionRestrictionsGetValue}\n .setValue=${this.__customerSubscriptionRestrictionsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-query-builder-control infer=\"customer-attribute-restrictions\">\n </foxy-internal-query-builder-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
@@ -1,22 +1,21 @@
1
- import '@vaadin/vaadin-text-field/vaadin-integer-field';
2
- import '@vaadin/vaadin-text-field/vaadin-text-field';
3
- import '@vaadin/vaadin-date-picker';
4
- import '@vaadin/vaadin-button';
5
- import '@polymer/iron-icons';
6
- import '@polymer/iron-icon';
1
+ import '../../internal/InternalAsyncResourceLinkListControl/index';
2
+ import '../../internal/InternalCheckboxGroupControl/index';
3
+ import '../../internal/InternalBulkAddActionControl/index';
7
4
  import '../../internal/InternalEditableListControl/index';
8
- import '../../internal/InternalConfirmDialog/index';
9
- import '../../internal/InternalSandbox/index';
5
+ import '../../internal/InternalQueryBuilderControl/index';
6
+ import '../../internal/InternalIntegerControl/index';
7
+ import '../../internal/InternalNumberControl/index';
8
+ import '../../internal/InternalTextControl/index';
9
+ import '../../internal/InternalDateControl/index';
10
+ import '../../internal/InternalForm/index';
10
11
  import '../GenerateCodesForm/index';
12
+ import '../ItemCategoryCard/index';
11
13
  import '../CouponCodesForm/index';
12
- import '../CopyToClipboard/index';
13
- import '../DiscountBuilder/index';
14
+ import '../CouponCodeCard/index';
14
15
  import '../CouponCodeForm/index';
15
- import '../QueryBuilder/index';
16
- import '../Pagination/index';
17
- import '../FormDialog/index';
18
- import '../Spinner/index';
19
- import '../Table/index';
20
- import '../I18n/index';
16
+ import '../NucleonElement/index';
17
+ import '../AttributeForm/index';
18
+ import '../AttributeCard/index';
19
+ import './internal/InternalCouponFormRulesControl/index';
21
20
  import { CouponForm } from './CouponForm';
22
21
  export { CouponForm };
@@ -1,23 +1,22 @@
1
- import '@vaadin/vaadin-text-field/vaadin-integer-field';
2
- import '@vaadin/vaadin-text-field/vaadin-text-field';
3
- import '@vaadin/vaadin-date-picker';
4
- import '@vaadin/vaadin-button';
5
- import '@polymer/iron-icons';
6
- import '@polymer/iron-icon';
1
+ import "../../internal/InternalAsyncResourceLinkListControl/index.js";
2
+ import "../../internal/InternalCheckboxGroupControl/index.js";
3
+ import "../../internal/InternalBulkAddActionControl/index.js";
7
4
  import "../../internal/InternalEditableListControl/index.js";
8
- import "../../internal/InternalConfirmDialog/index.js";
9
- import "../../internal/InternalSandbox/index.js";
5
+ import "../../internal/InternalQueryBuilderControl/index.js";
6
+ import "../../internal/InternalIntegerControl/index.js";
7
+ import "../../internal/InternalNumberControl/index.js";
8
+ import "../../internal/InternalTextControl/index.js";
9
+ import "../../internal/InternalDateControl/index.js";
10
+ import "../../internal/InternalForm/index.js";
10
11
  import "../GenerateCodesForm/index.js";
12
+ import "../ItemCategoryCard/index.js";
11
13
  import "../CouponCodesForm/index.js";
12
- import "../CopyToClipboard/index.js";
13
- import "../DiscountBuilder/index.js";
14
+ import "../CouponCodeCard/index.js";
14
15
  import "../CouponCodeForm/index.js";
15
- import "../QueryBuilder/index.js";
16
- import "../Pagination/index.js";
17
- import "../FormDialog/index.js";
18
- import "../Spinner/index.js";
19
- import "../Table/index.js";
20
- import "../I18n/index.js";
16
+ import "../NucleonElement/index.js";
17
+ import "../AttributeForm/index.js";
18
+ import "../AttributeCard/index.js";
19
+ import "./internal/InternalCouponFormRulesControl/index.js";
21
20
  import { CouponForm } from "./CouponForm.js";
22
21
  customElements.define('foxy-coupon-form', CouponForm);
23
22
  export { CouponForm };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAgD,CAAC;AACxD,OAAO,6CAA6C,CAAC;AACrD,OAAO,4BAA4B,CAAC;AACpC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAC5B,6DAA0D;AAC1D,uDAAoD;AACpD,iDAA8C;AAC9C,uCAAoC;AACpC,qCAAkC;AAClC,qCAAkC;AAClC,qCAAkC;AAClC,oCAAiC;AACjC,kCAA+B;AAC/B,gCAA6B;AAC7B,gCAA6B;AAC7B,6BAA0B;AAC1B,2BAAwB;AACxB,0BAAuB;AAEvB,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport '@vaadin/vaadin-text-field/vaadin-text-field';\nimport '@vaadin/vaadin-date-picker';\nimport '@vaadin/vaadin-button';\nimport '@polymer/iron-icons';\nimport '@polymer/iron-icon';\nimport '../../internal/InternalEditableListControl/index';\nimport '../../internal/InternalConfirmDialog/index';\nimport '../../internal/InternalSandbox/index';\nimport '../GenerateCodesForm/index';\nimport '../CouponCodesForm/index';\nimport '../CopyToClipboard/index';\nimport '../DiscountBuilder/index';\nimport '../CouponCodeForm/index';\nimport '../QueryBuilder/index';\nimport '../Pagination/index';\nimport '../FormDialog/index';\nimport '../Spinner/index';\nimport '../Table/index';\nimport '../I18n/index';\n\nimport { CouponForm } from './CouponForm';\n\ncustomElements.define('foxy-coupon-form', CouponForm);\n\nexport { CouponForm };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,8DAA2D;AAC3D,8DAA2D;AAC3D,6DAA0D;AAC1D,6DAA0D;AAC1D,wDAAqD;AACrD,uDAAoD;AACpD,qDAAkD;AAClD,qDAAkD;AAClD,8CAA2C;AAE3C,uCAAoC;AACpC,sCAAmC;AACnC,qCAAkC;AAClC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAEhC,4DAAyD;AAEzD,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncResourceLinkListControl/index';\nimport '../../internal/InternalCheckboxGroupControl/index';\nimport '../../internal/InternalBulkAddActionControl/index';\nimport '../../internal/InternalEditableListControl/index';\nimport '../../internal/InternalQueryBuilderControl/index';\nimport '../../internal/InternalIntegerControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalDateControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../GenerateCodesForm/index';\nimport '../ItemCategoryCard/index';\nimport '../CouponCodesForm/index';\nimport '../CouponCodeCard/index';\nimport '../CouponCodeForm/index';\nimport '../NucleonElement/index';\nimport '../AttributeForm/index';\nimport '../AttributeCard/index';\n\nimport './internal/InternalCouponFormRulesControl/index';\n\nimport { CouponForm } from './CouponForm';\n\ncustomElements.define('foxy-coupon-form', CouponForm);\n\nexport { CouponForm };\n"]}
@@ -0,0 +1,7 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import { InternalEditableControl } from '../../../../internal/InternalEditableControl/InternalEditableControl';
3
+ export declare class InternalCouponFormRulesControl extends InternalEditableControl {
4
+ renderControl(): TemplateResult;
5
+ private __renderRulesDescription;
6
+ private __renderPreset;
7
+ }
@@ -0,0 +1,141 @@
1
+ import { InternalEditableControl } from "../../../../internal/InternalEditableControl/InternalEditableControl.js";
2
+ import { classMap } from "../../../../../utils/class-map.js";
3
+ import { html } from 'lit-html';
4
+ export class InternalCouponFormRulesControl extends InternalEditableControl {
5
+ renderControl() {
6
+ var _a, _b;
7
+ const nucleon = this.nucleon;
8
+ const details = (_a = nucleon === null || nucleon === void 0 ? void 0 : nucleon.form.coupon_discount_details) !== null && _a !== void 0 ? _a : '';
9
+ const type = (_b = nucleon === null || nucleon === void 0 ? void 0 : nucleon.form.coupon_discount_type) !== null && _b !== void 0 ? _b : 'quantity_amount';
10
+ const helperText = this.helperText;
11
+ const description = this.__renderRulesDescription();
12
+ const errorMessage = this._errorMessage;
13
+ return html `
14
+ <section>
15
+ <p class="leading-xs flex items-center justify-between space-x-m text-s mb-xs">
16
+ <span
17
+ class=${classMap({
18
+ 'transition-colors font-medium flex-1': true,
19
+ 'text-secondary': !this.disabled,
20
+ 'text-disabled': this.disabled,
21
+ })}
22
+ >
23
+ ${this.label}
24
+ </span>
25
+ <span class="min-w-0">${this.__renderPreset()}</span>
26
+ </p>
27
+
28
+ <foxy-discount-builder
29
+ infer="discount-builder"
30
+ .parsedValue=${{ details, type, name: 'Rules' }}
31
+ @change=${(evt) => {
32
+ const builder = evt.currentTarget;
33
+ const newParsedValue = builder.parsedValue;
34
+ const nucleon = this.nucleon;
35
+ nucleon === null || nucleon === void 0 ? void 0 : nucleon.edit({
36
+ coupon_discount_details: newParsedValue.details,
37
+ coupon_discount_type: newParsedValue.type,
38
+ });
39
+ }}
40
+ >
41
+ </foxy-discount-builder>
42
+
43
+ ${helperText || description
44
+ ? html `
45
+ <p
46
+ class=${classMap({
47
+ 'text-xs mt-xs leading-xs transition-colors': true,
48
+ 'text-secondary': !this.disabled && !this.readonly,
49
+ 'text-disabled': this.disabled,
50
+ 'text-body': this.readonly,
51
+ })}
52
+ >
53
+ ${description || helperText}
54
+ </p>
55
+ `
56
+ : ''}
57
+ ${errorMessage && !this.disabled && !this.readonly
58
+ ? html `<p class="mt-xs text-xs leading-xs text-error">${this._errorMessage}</p>`
59
+ : ''}
60
+ </section>
61
+ `;
62
+ }
63
+ __renderRulesDescription() {
64
+ var _a, _b;
65
+ const nucleon = this.nucleon;
66
+ const type = (_a = nucleon === null || nucleon === void 0 ? void 0 : nucleon.form.coupon_discount_type) !== null && _a !== void 0 ? _a : 'quantity_amount';
67
+ const details = (_b = nucleon === null || nucleon === void 0 ? void 0 : nucleon.form.coupon_discount_details) !== null && _b !== void 0 ? _b : '';
68
+ if (!details)
69
+ return null;
70
+ return this.t('discount_summary', { params: { details, type, ns: this.ns } });
71
+ }
72
+ __renderPreset() {
73
+ const nucleon = this.nucleon;
74
+ const details = nucleon === null || nucleon === void 0 ? void 0 : nucleon.form.coupon_discount_details;
75
+ const type = nucleon === null || nucleon === void 0 ? void 0 : nucleon.form.coupon_discount_type;
76
+ const presets = [
77
+ { type: 'quantity_amount', details: 'allunits|2-2' },
78
+ { type: 'quantity_percentage', details: 'allunits|5-10|10-20' },
79
+ { type: 'quantity_amount', details: 'incremental|3-5' },
80
+ { type: 'quantity_percentage', details: 'incremental|11-10|51-15|101-20' },
81
+ { type: 'quantity_percentage', details: 'repeat|2-100' },
82
+ { type: 'quantity_percentage', details: 'repeat|4-50' },
83
+ { type: 'quantity_amount', details: 'single|5-10' },
84
+ { type: 'price_percentage', details: 'single|99.99-10' },
85
+ ];
86
+ const selectedPreset = presets.find(p => p.details === details && p.type === type);
87
+ return html `
88
+ <label
89
+ data-testid="rules:preset"
90
+ class=${classMap({
91
+ 'whitespace-nowrap block ring-primary-50 rounded px-xs -mx-xs transition-colors': true,
92
+ 'text-body hover-text-primary focus-within-ring-2': !this.disabled && !this.readonly,
93
+ 'text-secondary': this.readonly,
94
+ 'text-disabled': this.disabled,
95
+ })}
96
+ >
97
+ <foxy-i18n class="sr-only" infer="" key="preset"></foxy-i18n>
98
+
99
+ <span class="relative font-medium flex items-center">
100
+ <span class="truncate">
101
+ ${selectedPreset
102
+ ? this.t('discount_summary', { params: { ...selectedPreset, ns: this.ns } })
103
+ : this.t('custom_discount')}
104
+ </span>
105
+
106
+ <iron-icon class="icon-inline text-xl ml-xs -mr-xs" icon="icons:expand-more"></iron-icon>
107
+
108
+ <select
109
+ data-testclass="interactive editable"
110
+ data-testid="rules:preset:select"
111
+ class="opacity-0 absolute inset-0 focus-outline-none"
112
+ ?disabled=${this.disabled || this.readonly}
113
+ @change=${(evt) => {
114
+ var _a, _b;
115
+ const select = evt.currentTarget;
116
+ const preset = presets[select.selectedIndex];
117
+ const nucleon = this.nucleon;
118
+ nucleon === null || nucleon === void 0 ? void 0 : nucleon.edit({
119
+ coupon_discount_details: (_a = preset === null || preset === void 0 ? void 0 : preset.details) !== null && _a !== void 0 ? _a : '',
120
+ coupon_discount_type: (_b = preset === null || preset === void 0 ? void 0 : preset.type) !== null && _b !== void 0 ? _b : 'quantity_amount',
121
+ });
122
+ }}
123
+ >
124
+ ${presets.map(option => {
125
+ return html `
126
+ <option value=${option.details} ?selected=${option === selectedPreset}>
127
+ ${this.t('discount_summary', { params: { ...option, ns: this.ns } })}
128
+ </option>
129
+ `;
130
+ })}
131
+
132
+ <option value="custom" ?selected=${!selectedPreset && !!details && !!type}>
133
+ ${this.t('custom_discount')}
134
+ </option>
135
+ </select>
136
+ </span>
137
+ </label>
138
+ `;
139
+ }
140
+ }
141
+ //# sourceMappingURL=InternalCouponFormRulesControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalCouponFormRulesControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DiscountBuilder } from '../../../DiscountBuilder/DiscountBuilder';\nimport type { TemplateResult } from 'lit-html';\nimport type { CouponForm } from '../../CouponForm';\n\nimport { InternalEditableControl } from '../../../../internal/InternalEditableControl/InternalEditableControl';\nimport { classMap } from '../../../../../utils/class-map';\nimport { html } from 'lit-html';\n\nexport class InternalCouponFormRulesControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n const nucleon = this.nucleon as CouponForm | null;\n const details = nucleon?.form.coupon_discount_details ?? '';\n const type = nucleon?.form.coupon_discount_type ?? 'quantity_amount';\n const helperText = this.helperText;\n const description = this.__renderRulesDescription();\n const errorMessage = this._errorMessage;\n\n return html`\n <section>\n <p class=\"leading-xs flex items-center justify-between space-x-m text-s mb-xs\">\n <span\n class=${classMap({\n 'transition-colors font-medium flex-1': true,\n 'text-secondary': !this.disabled,\n 'text-disabled': this.disabled,\n })}\n >\n ${this.label}\n </span>\n <span class=\"min-w-0\">${this.__renderPreset()}</span>\n </p>\n\n <foxy-discount-builder\n infer=\"discount-builder\"\n .parsedValue=${{ details, type, name: 'Rules' }}\n @change=${(evt: CustomEvent) => {\n const builder = evt.currentTarget as DiscountBuilder;\n const newParsedValue = builder.parsedValue;\n const nucleon = this.nucleon as CouponForm | null;\n\n nucleon?.edit({\n coupon_discount_details: newParsedValue.details,\n coupon_discount_type: newParsedValue.type,\n });\n }}\n >\n </foxy-discount-builder>\n\n ${helperText || description\n ? html`\n <p\n class=${classMap({\n 'text-xs mt-xs leading-xs transition-colors': true,\n 'text-secondary': !this.disabled && !this.readonly,\n 'text-disabled': this.disabled,\n 'text-body': this.readonly,\n })}\n >\n ${description || helperText}\n </p>\n `\n : ''}\n ${errorMessage && !this.disabled && !this.readonly\n ? html`<p class=\"mt-xs text-xs leading-xs text-error\">${this._errorMessage}</p>`\n : ''}\n </section>\n `;\n }\n\n private __renderRulesDescription() {\n const nucleon = this.nucleon as CouponForm | null;\n const type = nucleon?.form.coupon_discount_type ?? 'quantity_amount';\n const details = nucleon?.form.coupon_discount_details ?? '';\n\n if (!details) return null;\n return this.t('discount_summary', { params: { details, type, ns: this.ns } });\n }\n\n private __renderPreset() {\n const nucleon = this.nucleon as CouponForm | null;\n const details = nucleon?.form.coupon_discount_details;\n const type = nucleon?.form.coupon_discount_type;\n\n const presets = [\n { type: 'quantity_amount', details: 'allunits|2-2' },\n { type: 'quantity_percentage', details: 'allunits|5-10|10-20' },\n { type: 'quantity_amount', details: 'incremental|3-5' },\n { type: 'quantity_percentage', details: 'incremental|11-10|51-15|101-20' },\n { type: 'quantity_percentage', details: 'repeat|2-100' },\n { type: 'quantity_percentage', details: 'repeat|4-50' },\n { type: 'quantity_amount', details: 'single|5-10' },\n { type: 'price_percentage', details: 'single|99.99-10' },\n ] as const;\n\n const selectedPreset = presets.find(p => p.details === details && p.type === type);\n\n return html`\n <label\n data-testid=\"rules:preset\"\n class=${classMap({\n 'whitespace-nowrap block ring-primary-50 rounded px-xs -mx-xs transition-colors': true,\n 'text-body hover-text-primary focus-within-ring-2': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n })}\n >\n <foxy-i18n class=\"sr-only\" infer=\"\" key=\"preset\"></foxy-i18n>\n\n <span class=\"relative font-medium flex items-center\">\n <span class=\"truncate\">\n ${selectedPreset\n ? this.t('discount_summary', { params: { ...selectedPreset, ns: this.ns } })\n : this.t('custom_discount')}\n </span>\n\n <iron-icon class=\"icon-inline text-xl ml-xs -mr-xs\" icon=\"icons:expand-more\"></iron-icon>\n\n <select\n data-testclass=\"interactive editable\"\n data-testid=\"rules:preset:select\"\n class=\"opacity-0 absolute inset-0 focus-outline-none\"\n ?disabled=${this.disabled || this.readonly}\n @change=${(evt: Event) => {\n const select = evt.currentTarget as HTMLSelectElement;\n const preset = presets[select.selectedIndex];\n const nucleon = this.nucleon as CouponForm | null;\n\n nucleon?.edit({\n coupon_discount_details: preset?.details ?? '',\n coupon_discount_type: preset?.type ?? 'quantity_amount',\n });\n }}\n >\n ${presets.map(option => {\n return html`\n <option value=${option.details} ?selected=${option === selectedPreset}>\n ${this.t('discount_summary', { params: { ...option, ns: this.ns } })}\n </option>\n `;\n })}\n\n <option value=\"custom\" ?selected=${!selectedPreset && !!details && !!type}>\n ${this.t('custom_discount')}\n </option>\n </select>\n </span>\n </label>\n `;\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import '../../../../internal/InternalEditableControl/index';
2
+ import '../../../CopyToClipboard/index';
3
+ import '../../../DiscountBuilder/index';
4
+ import '../../../I18n/index';
5
+ import { InternalCouponFormRulesControl } from './InternalCouponFormRulesControl';
6
+ export { InternalCouponFormRulesControl };
@@ -0,0 +1,8 @@
1
+ import "../../../../internal/InternalEditableControl/index.js";
2
+ import "../../../CopyToClipboard/index.js";
3
+ import "../../../DiscountBuilder/index.js";
4
+ import "../../../I18n/index.js";
5
+ import { InternalCouponFormRulesControl } from "./InternalCouponFormRulesControl.js";
6
+ customElements.define('foxy-internal-coupon-form-rules-control', InternalCouponFormRulesControl);
7
+ export { InternalCouponFormRulesControl };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.ts"],"names":[],"mappings":"AAAA,+DAA4D;AAE5D,2CAAwC;AACxC,2CAAwC;AACxC,gCAA6B;AAE7B,OAAO,EAAE,8BAA8B,EAAE,4CAAyC;AAElF,cAAc,CAAC,MAAM,CAAC,yCAAyC,EAAE,8BAA8B,CAAC,CAAC;AAEjG,OAAO,EAAE,8BAA8B,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalEditableControl/index';\n\nimport '../../../CopyToClipboard/index';\nimport '../../../DiscountBuilder/index';\nimport '../../../I18n/index';\n\nimport { InternalCouponFormRulesControl } from './InternalCouponFormRulesControl';\n\ncustomElements.define('foxy-internal-coupon-form-rules-control', InternalCouponFormRulesControl);\n\nexport { InternalCouponFormRulesControl };\n"]}
@@ -3,6 +3,7 @@ import { BooleanSelector } from '@foxy.io/sdk/core';
3
3
  import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
4
4
  import { isOrigin } from "./isOrigin.js";
5
5
  import { html } from 'lit-html';
6
+ import { toOrigin } from "./toOrigin.js";
6
7
  const NS = 'customer-portal-settings-form';
7
8
  const Base = TranslatableMixin(InternalForm, NS);
8
9
  /**
@@ -48,13 +49,16 @@ export class CustomerPortalSettingsForm extends Base {
48
49
  };
49
50
  this.__allowedOriginsGetValue = () => {
50
51
  var _a;
51
- return (_a = this.form.allowedOrigins) === null || _a === void 0 ? void 0 : _a.map(value => ({ value }));
52
+ return (_a = this.form.allowedOrigins) === null || _a === void 0 ? void 0 : _a.map(value => ({
53
+ label: isOrigin(value) ? value : `⚠️ ${value}`,
54
+ value,
55
+ }));
52
56
  };
53
57
  this.__allowedOriginsSetValue = (newValue) => {
54
58
  this.edit({
55
59
  allowedOrigins: newValue
56
- .filter(({ value }) => isOrigin(value))
57
- .map(({ value }) => value.toLowerCase()),
60
+ .map(({ value }) => toOrigin(value))
61
+ .filter((v, i, a) => a.indexOf(v) === i),
58
62
  });
59
63
  };
60
64
  this.__featuresOptions = [
@@ -152,18 +156,12 @@ export class CustomerPortalSettingsForm extends Base {
152
156
  ({ allowedOrigins: v = [] }) => {
153
157
  return v.every(isOrigin) || 'allowed-origins:v8n_invalid';
154
158
  },
155
- // TODO remove this once SDK types are fixed
156
- // @ts-expect-error SDK types are incorrect
157
159
  ({ jwtSharedSecret: v }) => {
158
160
  return !v || /^[a-z0-9-]+$/.test(v) || 'jwt-shared-secret:v8n_invalid';
159
161
  },
160
- // TODO remove this once SDK types are fixed
161
- // @ts-expect-error SDK types are incorrect
162
162
  ({ jwtSharedSecret: v }) => {
163
163
  return !v || v.length >= 40 || 'jwt-shared-secret:v8n_too_short';
164
164
  },
165
- // TODO remove this once SDK types are fixed
166
- // @ts-expect-error SDK types are incorrect
167
165
  ({ jwtSharedSecret: v }) => {
168
166
  return !v || v.length <= 100 || 'jwt-shared-secret:v8n_too_long';
169
167
  },