@foxy.io/elements 1.15.0-beta.8 → 1.16.0-beta.2

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 (266) 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-applied-tax-card.js +1 -1
  5. package/dist/cdn/foxy-attribute-card.js +1 -1
  6. package/dist/cdn/foxy-attribute-form.js +1 -1
  7. package/dist/cdn/foxy-cancellation-form.js +1 -1
  8. package/dist/cdn/foxy-collection-page.js +1 -1
  9. package/dist/cdn/foxy-collection-pages.js +1 -1
  10. package/dist/cdn/foxy-coupon-card.js +1 -1
  11. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  12. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  13. package/dist/cdn/foxy-coupon-form.js +1 -1
  14. package/dist/cdn/foxy-custom-field-card.js +1 -1
  15. package/dist/cdn/foxy-custom-field-form.js +1 -1
  16. package/dist/cdn/foxy-customer-api.js +1 -1
  17. package/dist/cdn/foxy-customer-card.js +1 -1
  18. package/dist/cdn/foxy-customer-form.js +1 -1
  19. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  20. package/dist/cdn/foxy-customer-portal.js +13 -13
  21. package/dist/cdn/foxy-customer.js +3 -3
  22. package/dist/cdn/foxy-customers-table.js +1 -1
  23. package/dist/cdn/foxy-discount-card.js +1 -1
  24. package/dist/cdn/foxy-donation.js +1 -1
  25. package/dist/cdn/foxy-email-template-form.js +1 -1
  26. package/dist/cdn/foxy-error-entry-card.js +1 -1
  27. package/dist/cdn/foxy-form-dialog.js +1 -1
  28. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  29. package/dist/cdn/foxy-gift-card-card.js +1 -1
  30. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  31. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  32. package/dist/cdn/foxy-gift-card-form.js +1 -1
  33. package/dist/cdn/foxy-i18n.js +1 -1
  34. package/dist/cdn/foxy-items-form.js +1 -1
  35. package/dist/cdn/foxy-nucleon-element.js +1 -1
  36. package/dist/cdn/foxy-pagination.js +1 -1
  37. package/dist/cdn/foxy-payment-card.js +1 -1
  38. package/dist/cdn/foxy-payment-method-card.js +1 -1
  39. package/dist/cdn/foxy-query-builder.js +1 -1
  40. package/dist/cdn/foxy-report-form.js +195 -0
  41. package/dist/cdn/foxy-reports-table.js +41 -0
  42. package/dist/cdn/foxy-sign-in-form.js +1 -1
  43. package/dist/cdn/foxy-spinner.js +1 -1
  44. package/dist/cdn/foxy-subscription-card.js +1 -1
  45. package/dist/cdn/foxy-subscription-form.js +5 -5
  46. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  47. package/dist/cdn/foxy-table.js +1 -1
  48. package/dist/cdn/foxy-tax-card.js +1 -1
  49. package/dist/cdn/foxy-tax-form.js +1 -1
  50. package/dist/cdn/foxy-template-config-form.js +1 -1
  51. package/dist/cdn/foxy-template-form.js +1 -1
  52. package/dist/cdn/foxy-transaction-card.js +1 -1
  53. package/dist/cdn/foxy-transactions-table.js +1 -1
  54. package/dist/cdn/foxy-user-form.js +1 -1
  55. package/dist/cdn/foxy-users-table.js +1 -1
  56. package/dist/cdn/{shared-46ee137f.js → shared-01cbd43c.js} +10 -10
  57. package/dist/cdn/{shared-b710881a.js → shared-0389f098.js} +2 -2
  58. package/dist/cdn/{shared-1a67bc75.js → shared-147e571b.js} +4 -4
  59. package/dist/cdn/{shared-c5de42f7.js → shared-1d2cc2fb.js} +1 -1
  60. package/dist/cdn/shared-1e57180b.js +1 -0
  61. package/dist/cdn/{shared-02945b27.js → shared-1fa5f9a9.js} +1 -1
  62. package/dist/cdn/{shared-07134f93.js → shared-2558daa0.js} +1 -1
  63. package/dist/cdn/{shared-59e44f29.js → shared-25f67779.js} +1 -1
  64. package/dist/cdn/{shared-fab8c705.js → shared-269fb742.js} +10 -10
  65. package/dist/cdn/shared-27277bbb.js +1 -0
  66. package/dist/cdn/{shared-218ba06e.js → shared-2b3f17cf.js} +1 -1
  67. package/dist/cdn/{shared-60126eee.js → shared-2f8bf5d9.js} +1 -1
  68. package/dist/cdn/{shared-a23cf7c8.js → shared-312131d3.js} +1 -1
  69. package/dist/cdn/{shared-448781f9.js → shared-34f68715.js} +1 -1
  70. package/dist/cdn/{shared-b5754a42.js → shared-3a06bd7f.js} +1 -1
  71. package/dist/cdn/{shared-1934524e.js → shared-3c85dcd8.js} +2 -2
  72. package/dist/cdn/{shared-e209cb55.js → shared-3f26cae2.js} +1 -1
  73. package/dist/cdn/{shared-a040d79d.js → shared-41272a67.js} +1 -1
  74. package/dist/cdn/shared-41f3f823.js +29 -0
  75. package/dist/cdn/{shared-f4ad24f4.js → shared-44633760.js} +1 -1
  76. package/dist/cdn/{shared-223508ae.js → shared-4dc82211.js} +7 -7
  77. package/dist/cdn/{shared-63eaded9.js → shared-4ec62366.js} +6 -6
  78. package/dist/cdn/{shared-09069d7c.js → shared-57a8ee05.js} +1 -1
  79. package/dist/cdn/{shared-253e59d2.js → shared-5e9d8142.js} +1 -1
  80. package/dist/cdn/shared-5fd50b58.js +1 -0
  81. package/dist/cdn/{shared-21419f10.js → shared-65cfddfd.js} +1 -1
  82. package/dist/cdn/shared-6974569c.js +201 -0
  83. package/dist/cdn/{shared-9221e6b2.js → shared-701d5a7c.js} +1 -1
  84. package/dist/cdn/{shared-7f0a9790.js → shared-7cf914d7.js} +1 -1
  85. package/dist/cdn/{shared-4dc6d228.js → shared-7d337241.js} +1 -1
  86. package/dist/cdn/{shared-dcc9c325.js → shared-7e107668.js} +1 -1
  87. package/dist/cdn/shared-85b8ae57.js +12 -0
  88. package/dist/cdn/{shared-6d45a07b.js → shared-8695b424.js} +1 -1
  89. package/dist/cdn/{shared-39e3ae67.js → shared-8fc0b3ee.js} +1 -1
  90. package/dist/cdn/{shared-756034e4.js → shared-916ef4d3.js} +1 -1
  91. package/dist/cdn/{shared-08c63028.js → shared-9728b5f8.js} +1 -1
  92. package/dist/cdn/{shared-b9f18aaa.js → shared-a42088ee.js} +1 -1
  93. package/dist/cdn/{shared-5a54a9bc.js → shared-a82f8b58.js} +1 -1
  94. package/dist/cdn/{shared-65dfd512.js → shared-b161b269.js} +1 -1
  95. package/dist/cdn/{shared-5535f38f.js → shared-bad032de.js} +1 -1
  96. package/dist/cdn/{shared-20b9ce70.js → shared-bec9e9ce.js} +5 -5
  97. package/dist/cdn/{shared-a7b6feb2.js → shared-c722fc23.js} +1 -1
  98. package/dist/cdn/{shared-e2c878c7.js → shared-cd262e68.js} +10 -10
  99. package/dist/cdn/{shared-df730f90.js → shared-d2228670.js} +1 -1
  100. package/dist/cdn/{shared-b0f0e8b5.js → shared-d3cf78c1.js} +1 -1
  101. package/dist/cdn/{shared-073cb8e9.js → shared-e69e1ca3.js} +1 -1
  102. package/dist/cdn/shared-f0515999.js +1 -0
  103. package/dist/cdn/{shared-0f38a631.js → shared-f1107e25.js} +1 -1
  104. package/dist/cdn/translations/access-recovery-form/en.json +12 -0
  105. package/dist/cdn/translations/address-card/en.json +11 -0
  106. package/dist/cdn/translations/address-form/en.json +27 -0
  107. package/dist/cdn/translations/applied-tax-card/en.json +9 -0
  108. package/dist/cdn/translations/attribute-card/en.json +7 -0
  109. package/dist/cdn/translations/attribute-form/en.json +22 -0
  110. package/dist/cdn/translations/cancellation-form/en.json +10 -0
  111. package/dist/cdn/translations/country/pl.json +251 -0
  112. package/dist/cdn/translations/coupon-card/en.json +36 -0
  113. package/dist/cdn/translations/coupon-code-form/en.json +17 -0
  114. package/dist/cdn/translations/coupon-codes-form/en.json +20 -0
  115. package/dist/cdn/translations/coupon-form/en.json +186 -0
  116. package/dist/cdn/translations/custom-field-card/en.json +7 -0
  117. package/dist/cdn/translations/custom-field-form/en.json +19 -0
  118. package/dist/cdn/translations/customer/en.json +247 -0
  119. package/dist/cdn/translations/customer-card/en.json +7 -0
  120. package/dist/cdn/translations/customer-form/en.json +21 -0
  121. package/dist/cdn/translations/customer-portal/de.json +202 -14
  122. package/dist/cdn/translations/customer-portal/en.json +202 -14
  123. package/dist/cdn/translations/customer-portal/es.json +202 -14
  124. package/dist/cdn/translations/customer-portal/pl.json +223 -0
  125. package/dist/cdn/translations/customer-portal/zh-hk.json +202 -14
  126. package/dist/cdn/translations/customers-table/en.json +9 -0
  127. package/dist/cdn/translations/discount-card/en.json +8 -0
  128. package/dist/cdn/translations/email-template-form/en.json +25 -0
  129. package/dist/cdn/translations/error-entry-card/en.json +7 -0
  130. package/dist/cdn/translations/generate-codes-form/en.json +19 -0
  131. package/dist/cdn/translations/gift-card-card/en.json +9 -0
  132. package/dist/cdn/translations/gift-card-code-form/en.json +19 -0
  133. package/dist/cdn/translations/gift-card-codes-form/en.json +25 -0
  134. package/dist/cdn/translations/gift-card-form/en.json +314 -0
  135. package/dist/cdn/translations/pagination/en.json +7 -0
  136. package/dist/cdn/translations/payment-card/en.json +12 -0
  137. package/dist/cdn/translations/payment-method-card/en.json +13 -0
  138. package/dist/cdn/translations/query-builder/en.json +32 -0
  139. package/dist/cdn/translations/report-form/en.json +38 -0
  140. package/dist/cdn/translations/reports-table/en.json +21 -0
  141. package/dist/cdn/translations/sign-in-form/en.json +21 -0
  142. package/dist/cdn/translations/spinner/en.json +7 -0
  143. package/dist/cdn/translations/subscription-card/en.json +26 -0
  144. package/dist/cdn/translations/subscription-form/en.json +76 -0
  145. package/dist/cdn/translations/subscriptions-table/en.json +26 -0
  146. package/dist/cdn/translations/tax-card/en.json +11 -0
  147. package/dist/cdn/translations/tax-form/en.json +38 -0
  148. package/dist/cdn/translations/template-config-form/en.json +107 -0
  149. package/dist/cdn/translations/template-form/en.json +23 -0
  150. package/dist/cdn/translations/transaction-card/en.json +25 -0
  151. package/dist/cdn/translations/transactions-table/en.json +22 -0
  152. package/dist/cdn/translations/user-form/en.json +26 -0
  153. package/dist/cdn/translations/users-table/en.json +44 -0
  154. package/dist/elements/private/Choice/Choice.js +1 -0
  155. package/dist/elements/private/Choice/Choice.js.map +1 -1
  156. package/dist/elements/private/FrequencyInput/FrequencyInput.d.ts +5 -5
  157. package/dist/elements/private/FrequencyInput/FrequencyInput.js +7 -22
  158. package/dist/elements/private/FrequencyInput/FrequencyInput.js.map +1 -1
  159. package/dist/elements/public/AccessRecoveryForm/AccessRecoveryForm.js +1 -1
  160. package/dist/elements/public/AccessRecoveryForm/AccessRecoveryForm.js.map +1 -1
  161. package/dist/elements/public/AttributeCard/types.d.ts +3 -3
  162. package/dist/elements/public/AttributeCard/types.js.map +1 -1
  163. package/dist/elements/public/AttributeForm/AttributeForm.js +2 -1
  164. package/dist/elements/public/AttributeForm/AttributeForm.js.map +1 -1
  165. package/dist/elements/public/AttributeForm/types.d.ts +3 -3
  166. package/dist/elements/public/AttributeForm/types.js.map +1 -1
  167. package/dist/elements/public/CouponCard/CouponCard.js +2 -1
  168. package/dist/elements/public/CouponCard/CouponCard.js.map +1 -1
  169. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js +5 -5
  170. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js.map +1 -1
  171. package/dist/elements/public/CouponForm/CouponForm.js +199 -164
  172. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  173. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.d.ts +4 -3
  174. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js +5 -4
  175. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js.map +1 -1
  176. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.d.ts +3 -4
  177. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js +3 -4
  178. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js.map +1 -1
  179. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.d.ts +3 -4
  180. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js +3 -2
  181. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js.map +1 -1
  182. package/dist/elements/public/CustomFieldForm/CustomFieldForm.js +2 -1
  183. package/dist/elements/public/CustomFieldForm/CustomFieldForm.js.map +1 -1
  184. package/dist/elements/public/Customer/Customer.js +1 -1
  185. package/dist/elements/public/Customer/Customer.js.map +1 -1
  186. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js +18 -5
  187. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js.map +1 -1
  188. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js +20 -6
  189. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js.map +1 -1
  190. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +2 -1
  191. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  192. package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js +2 -1
  193. package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js.map +1 -1
  194. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +6 -6
  195. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
  196. package/dist/elements/public/GiftCardForm/GiftCardForm.js +103 -85
  197. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  198. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.d.ts +1 -1
  199. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js +3 -3
  200. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js.map +1 -1
  201. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.d.ts +1 -3
  202. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js +2 -4
  203. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js.map +1 -1
  204. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.d.ts +1 -3
  205. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js +2 -2
  206. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js.map +1 -1
  207. package/dist/elements/public/I18n/format/discount.js +2 -2
  208. package/dist/elements/public/I18n/format/discount.js.map +1 -1
  209. package/dist/elements/public/Pagination/Pagination.js +4 -0
  210. package/dist/elements/public/Pagination/Pagination.js.map +1 -1
  211. package/dist/elements/public/ReportForm/ReportForm.d.ts +48 -0
  212. package/dist/elements/public/ReportForm/ReportForm.js +391 -0
  213. package/dist/elements/public/ReportForm/ReportForm.js.map +1 -0
  214. package/dist/elements/public/ReportForm/index.d.ts +11 -0
  215. package/dist/elements/public/ReportForm/index.js +13 -0
  216. package/dist/elements/public/ReportForm/index.js.map +1 -0
  217. package/dist/elements/public/ReportForm/types.d.ts +17 -0
  218. package/dist/elements/public/ReportForm/types.js +2 -0
  219. package/dist/elements/public/ReportForm/types.js.map +1 -0
  220. package/dist/elements/public/ReportForm/utils.d.ts +16 -0
  221. package/dist/elements/public/ReportForm/utils.js +73 -0
  222. package/dist/elements/public/ReportForm/utils.js.map +1 -0
  223. package/dist/elements/public/ReportsTable/ReportsTable.d.ts +21 -0
  224. package/dist/elements/public/ReportsTable/ReportsTable.js +101 -0
  225. package/dist/elements/public/ReportsTable/ReportsTable.js.map +1 -0
  226. package/dist/elements/public/ReportsTable/index.d.ts +4 -0
  227. package/dist/elements/public/ReportsTable/index.js +6 -0
  228. package/dist/elements/public/ReportsTable/index.js.map +1 -0
  229. package/dist/elements/public/ReportsTable/types.d.ts +3 -0
  230. package/dist/elements/public/ReportsTable/types.js +2 -0
  231. package/dist/elements/public/ReportsTable/types.js.map +1 -0
  232. package/dist/elements/public/SignInForm/SignInForm.js +1 -1
  233. package/dist/elements/public/SignInForm/SignInForm.js.map +1 -1
  234. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +1 -1
  235. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
  236. package/dist/elements/public/TaxForm/TaxForm.js +16 -14
  237. package/dist/elements/public/TaxForm/TaxForm.js.map +1 -1
  238. package/dist/elements/public/TemplateForm/TemplateForm.js +1 -1
  239. package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
  240. package/dist/elements/public/UserForm/UserForm.js +2 -1
  241. package/dist/elements/public/UserForm/UserForm.js.map +1 -1
  242. package/dist/elements/public/UsersTable/UsersTable.d.ts +5 -1
  243. package/dist/elements/public/UsersTable/UsersTable.js +2 -1
  244. package/dist/elements/public/UsersTable/UsersTable.js.map +1 -1
  245. package/dist/elements/public/index.d.ts +2 -0
  246. package/dist/elements/public/index.defined.d.ts +2 -0
  247. package/dist/elements/public/index.defined.js +2 -0
  248. package/dist/elements/public/index.defined.js.map +1 -1
  249. package/dist/elements/public/index.js +2 -0
  250. package/dist/elements/public/index.js.map +1 -1
  251. package/dist/mixins/themeable.js +6523 -0
  252. package/dist/mixins/themeable.js.map +1 -1
  253. package/dist/mixins/translatable.js +1 -1
  254. package/dist/mixins/translatable.js.map +1 -1
  255. package/package.json +3 -3
  256. package/dist/cdn/shared-07049bfe.js +0 -1
  257. package/dist/cdn/shared-11708514.js +0 -1
  258. package/dist/cdn/shared-66633ff7.js +0 -1
  259. package/dist/cdn/shared-805d18a2.js +0 -1
  260. package/dist/cdn/shared-8b20bc23.js +0 -12
  261. package/dist/cdn/shared-e68b9c83.js +0 -1
  262. package/dist/cdn/shared-ff79f3f9.js +0 -230
  263. package/dist/cdn/translations/shared/de.json +0 -271
  264. package/dist/cdn/translations/shared/en.json +0 -557
  265. package/dist/cdn/translations/shared/es.json +0 -272
  266. package/dist/cdn/translations/shared/zh-hk.json +0 -179
@@ -1,4 +1,4 @@
1
- import"./shared-46ee137f.js";import"./shared-60126eee.js";import{h as t}from"./shared-ff79f3f9.js";import"./shared-5a54a9bc.js";import"./shared-9221e6b2.js";import"./foxy-payment-method-card.js";import"./foxy-subscription-form.js";import"./foxy-form-dialog.js";import"./foxy-transactions-table.js";import"./foxy-collection-pages.js";import"./foxy-collection-page.js";import"./foxy-attribute-card.js";import"./foxy-attribute-form.js";import"./foxy-customer-form.js";import"./foxy-address-card.js";import"./foxy-address-form.js";import"./foxy-spinner.js";import"./foxy-table.js";import"./shared-11708514.js";import{L as e,h as s,j as r,w as a}from"./shared-63eaded9.js";import{C as o}from"./shared-df730f90.js";import"./shared-8b20bc23.js";import"./shared-073cb8e9.js";import{b as h,S as i,T as d,a as n}from"./shared-e68b9c83.js";import{c as l}from"./shared-4e709717.js";import"./shared-223508ae.js";import"./shared-66633ff7.js";import{S as m}from"./shared-e2c878c7.js";import"./shared-65dfd512.js";import"./shared-a040d79d.js";import"./shared-fab8c705.js";import{G as c}from"./shared-02945b27.js";import{N as v}from"./shared-39e3ae67.js";import{S as p}from"./shared-20b9ce70.js";import{i as g}from"./shared-6d45a07b.js";import"./shared-c5de42f7.js";import"./shared-218ba06e.js";import"./shared-5535f38f.js";import"./foxy-nucleon-element.js";import"./shared-7f0a9790.js";import"./shared-7684cb05.js";import"./shared-756034e4.js";import"./foxy-cancellation-form.js";import"./shared-07049bfe.js";import"./shared-2061be9a.js";import"./shared-b0f0e8b5.js";import"./shared-a7b6feb2.js";import"./shared-dcc9c325.js";import"./shared-448781f9.js";import"./shared-59e44f29.js";import"./shared-b9f18aaa.js";import"./shared-a23cf7c8.js";import"./shared-805d18a2.js";import"./shared-b710881a.js";import"./shared-4dc6d228.js";import"./shared-b738ee96.js";let z,f,u,b=t=>t;class $ extends e{constructor(){super(...arguments),this.value=0,this.size=0}static get properties(){return{value:{type:Number},size:{type:Number}}}static get styles(){return h.styles}render(){const t=[],e=[];for(let r=0;r<this.size;++r)t.push(s(z||(z=b` <button id="tab-${0}" role="tab" class="${0}" aria-controls="panel-${0}" aria-selected="${0}" @click="${0}" @keydown="${0}"> <slot name="tab-${0}"></slot> </button> `),r,l({"text-l font-semibold px-s rounded focus-outline-none focus-shadow-outline":!0,"text-tertiary hover-text-body focus-text-body":this.value!==r}),r,this.value===r,(()=>this.value=r),this.__handleKeyDown,r)),e.push(s(f||(f=b` <slot id="panel-${0}" role="tabpanel" name="panel-${0}" class="${0}" aria-hidden="${0}" aria-labelledby="tab-${0}"> </slot> `),r,r,l({hidden:this.value!==r}),this.value!==r,r));return s(u||(u=b` <div role="tablist" aria-orientation="horizontal" class="-mx-s mb-s">${0}</div> ${0} `),t,e)}__handleKeyDown(t){if(t.key.startsWith("Arrow")){t.preventDefault();const e=t.target;let s=null;"ArrowRight"===t.key||"ArrowDown"===t.key?s=e.nextElementSibling:"ArrowLeft"!==t.key&&"ArrowUp"!==t.key||(s=e.previousElementSibling),null==s||s.click(),null==s||s.focus()}}}
1
+ import"./shared-01cbd43c.js";import"./shared-2f8bf5d9.js";import{h as t}from"./shared-6974569c.js";import"./shared-a82f8b58.js";import"./shared-701d5a7c.js";import"./foxy-payment-method-card.js";import"./foxy-subscription-form.js";import"./foxy-form-dialog.js";import"./foxy-transactions-table.js";import"./foxy-collection-pages.js";import"./foxy-collection-page.js";import"./foxy-attribute-card.js";import"./foxy-attribute-form.js";import"./foxy-customer-form.js";import"./foxy-address-card.js";import"./foxy-address-form.js";import"./foxy-spinner.js";import"./foxy-table.js";import"./shared-27277bbb.js";import{L as e,h as s,j as r,w as a}from"./shared-4ec62366.js";import{C as o}from"./shared-d2228670.js";import"./shared-85b8ae57.js";import"./shared-e69e1ca3.js";import{w as h,S as i,T as d,a as n}from"./shared-41f3f823.js";import{c as l}from"./shared-4e709717.js";import"./shared-4dc82211.js";import"./shared-f0515999.js";import{S as m}from"./shared-cd262e68.js";import"./shared-b161b269.js";import"./shared-41272a67.js";import"./shared-269fb742.js";import{G as c}from"./shared-1fa5f9a9.js";import{N as v}from"./shared-8fc0b3ee.js";import{S as p}from"./shared-bec9e9ce.js";import{i as g}from"./shared-8695b424.js";import"./shared-1d2cc2fb.js";import"./shared-2b3f17cf.js";import"./shared-bad032de.js";import"./foxy-nucleon-element.js";import"./shared-7cf914d7.js";import"./shared-7684cb05.js";import"./shared-916ef4d3.js";import"./foxy-cancellation-form.js";import"./shared-5fd50b58.js";import"./shared-2061be9a.js";import"./shared-d3cf78c1.js";import"./shared-c722fc23.js";import"./shared-7e107668.js";import"./shared-34f68715.js";import"./shared-25f67779.js";import"./shared-a42088ee.js";import"./shared-312131d3.js";import"./shared-1e57180b.js";import"./shared-0389f098.js";import"./shared-7d337241.js";import"./shared-b738ee96.js";let z,f,u,b=t=>t;class $ extends e{constructor(){super(...arguments),this.value=0,this.size=0}static get properties(){return{value:{type:Number},size:{type:Number}}}static get styles(){return h.styles}render(){const t=[],e=[];for(let r=0;r<this.size;++r)t.push(s(z||(z=b` <button id="tab-${0}" role="tab" class="${0}" aria-controls="panel-${0}" aria-selected="${0}" @click="${0}" @keydown="${0}"> <slot name="tab-${0}"></slot> </button> `),r,l({"text-l font-semibold px-s rounded focus-outline-none focus-shadow-outline":!0,"text-tertiary hover-text-body focus-text-body":this.value!==r}),r,this.value===r,(()=>this.value=r),this.__handleKeyDown,r)),e.push(s(f||(f=b` <slot id="panel-${0}" role="tabpanel" name="panel-${0}" class="${0}" aria-hidden="${0}" aria-labelledby="tab-${0}"> </slot> `),r,r,l({hidden:this.value!==r}),this.value!==r,r));return s(u||(u=b` <div role="tablist" aria-orientation="horizontal" class="-mx-s mb-s">${0}</div> ${0} `),t,e)}__handleKeyDown(t){if(t.key.startsWith("Arrow")){t.preventDefault();const e=t.target;let s=null;"ArrowRight"===t.key||"ArrowDown"===t.key?s=e.nextElementSibling:"ArrowLeft"!==t.key&&"ArrowUp"!==t.key||(s=e.previousElementSibling),null==s||s.click(),null==s||s.focus()}}}
2
2
  /**
3
3
  @license
4
4
  Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
@@ -79,7 +79,7 @@ found at http://polymer.github.io/PATENTS.txt
79
79
  <g id="vertical-align-top"><path d="M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z"></path></g>
80
80
  <g id="wrap-text"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></g>
81
81
  </defs></svg>
82
- </iron-iconset-svg>`;document.head.appendChild(H.content);let y;const x=r(y||(y=(t=>t)`:host{--tile-width:16rem}.w-tile{width:var(--tile-width)}.w-payment-method-card{width:calc(var(--tile-width) + ((var(--lumo-space-m) * 2)) + 2px)}`)),V=["html"];let M,S,_,j,L,T,k,w,A,C,O,E,N,P,R,q,D,U,K,G,W,B,F,I,J,Q,X=t=>t;const Y=i(o(d(n(v,"customer"))));class Z extends Y{constructor(){super(...arguments),this.templates={},this.__renderHeaderActionsEdit=()=>{const{readonlySelector:t,disabledSelector:e,hiddenSelector:r}=this,a="header:actions:edit:form",o="customer-dialog",h=!this.in({idle:"snapshot"})||e.matches("header:actions:edit",!0);return s(M||(M=X` ${0} <foxy-form-dialog data-testid="header:actions:edit:form" header="update" parent="${0}" group="${0}" href="${0}" form="foxy-customer-form" lang="${0}" ns="${0}" id="${0}" readonlycontrols="${0}" disabledcontrols="${0}" hiddencontrols="${0}" .templates="${0}"> </foxy-form-dialog> <vaadin-button data-testid="header:actions:edit" aria-label="${0}" class="px-xs rounded-full" theme="icon" ?disabled="${0}" @click="${0}"> <iron-icon icon="editor:mode-edit"></iron-icon> </vaadin-button> ${0} `),this.renderTemplateOrSlot("header:actions:edit:before"),this.parent,this.group,this.href,this.lang,this.ns,o,t.zoom(a).toString(),e.zoom(a).toString(),r.zoom(a).toString(),this.getNestedTemplates("header:actions:edit:form"),this.t("update").toString(),h,(t=>{this.renderRoot.querySelector(`#${o}`).show(t.currentTarget)}),this.renderTemplateOrSlot("header:actions:edit:after"))},this.__renderHeaderActions=()=>{const t=this.hiddenSelector.zoom("header:actions");return s(S||(S=X` <div class="flex" data-testid="header:actions"> ${0} ${0} ${0} </div> `),this.renderTemplateOrSlot("header:actions:before"),t.matches("edit",!0)?"":this.__renderHeaderActionsEdit(),this.renderTemplateOrSlot("header:actions:after"))},this.__renderHeader=()=>{const t=g(this.in("busy")?void 0:"static");return s(_||(_=X` ${0} <header class="flex items-center justify-between space-x-m pb-s border-b border-contrast-10" data-testid="header"> <h1 class="text-xxl font-bold truncate min-w-0 flex-1"> ${0} </h1> ${0} </header> ${0} `),this.renderTemplateOrSlot("header:before"),this.in({idle:"snapshot"})?s(j||(j=X`${0} ${0}`),this.data.first_name,this.data.last_name):s(L||(L=X`<x-skeleton class="w-full" variant="${0}">&nbsp;</x-skeleton>`),t),this.hiddenSelector.matches("header:actions",!0)?"":this.__renderHeaderActions(),this.renderTemplateOrSlot("header:after"))},this.__renderAddressesActionsCreate=()=>{var t;const{data:e,lang:r,ns:a}=this,o=this.disabledSelector.zoom("addresses:actions"),h=this.readonlySelector.zoom("addresses:actions"),i=this.hiddenSelector.zoom("addresses:actions"),d=!this.in({idle:"snapshot"})||o.matches("create",!0);return s(T||(T=X` ${0} <vaadin-button data-testid="addresses:actions:create" aria-label="${0}" class="px-xs rounded-full" theme="small icon" ?disabled="${0}" @click="${0}"> <foxy-form-dialog readonlycontrols="${0}" disabledcontrols="${0}" hiddencontrols="${0}" data-testid="addresses:actions:create:form" parent="${0}" header="create" group="${0}" form="foxy-address-form" lang="${0}" ns="${0}" id="address-dialog" .templates="${0}"> </foxy-form-dialog> <iron-icon slot="suffix" icon="icons:add"></iron-icon> </vaadin-button> ${0} `),this.renderTemplateOrSlot("addresses:actions:create:before"),this.t("create").toString(),d,(t=>{if(null===e)return;const s=t.target;s.firstElementChild.show(s)}),h.zoom("create:form").toString(),o.zoom("create:form").toString(),i.zoom("create:form").toString(),null!==(t=null==e?void 0:e._links["fx:customer_addresses"].href)&&void 0!==t?t:"",this.group,r,a,this.getNestedTemplates("addresses:actions:create:form"),this.renderTemplateOrSlot("addresses:actions:create:after"))},this.__renderAddressesActions=()=>{const t=this.hiddenSelector.zoom("addresses:actions");return s(k||(k=X` <div data-testid="addresses:actions"> ${0} ${0} ${0} </div> `),this.renderTemplateOrSlot("addresses:actions:before"),t.matches("create",!0)?"":this.__renderAddressesActionsCreate(),this.renderTemplateOrSlot("addresses:actions:after"))},this.__renderAddressesListCard=t=>{var e,r;const a=l({"snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0":!0,"border border-contrast-10":!0,"hover-border-contrast-30 focus-outline-none focus-border-primary":null!==t.data}),o=this.readonlySelector.matches("addresses:list:card",!0),h=this.disabledSelector.matches("addresses:list:card",!0);return s(w||(w=X` <button data-testclass="addresses:list:card" class="${0}" ?disabled="${0}" @click="${0}"> <foxy-address-card hiddencontrols="${0}" parent="${0}" class="w-tile" group="${0}" lang="${0}" href="${0}" ns="${0} ${0}" .templates="${0}"> </foxy-address-card> </button> `),a,!t.data||o||h,(e=>{if(null===t.data)return;const s=e.target,r=s.getRootNode().querySelector("#addresses-list-form");r.href=t.data._links.self.href,r.show(s)}),t.hiddenControls.toString(),t.parent,t.group,t.lang,t.href,t.ns,null!==(r=null===(e=customElements.get("foxy-address-card"))||void 0===e?void 0:e.defaultNS)&&void 0!==r?r:"",t.templates)},this.__renderAddressesListPage=t=>t.html(A||(A=X`
82
+ </iron-iconset-svg>`;document.head.appendChild(H.content);let y;const x=r(y||(y=(t=>t)`:host{--tile-width:16rem}.w-tile{width:var(--tile-width)}.w-payment-method-card{width:calc(var(--tile-width) + ((var(--lumo-space-m) * 2)) + 2px)}`)),V=["html"];let M,S,_,j,L,T,w,k,A,C,O,E,N,P,R,q,D,U,K,G,W,B,F,I,J,Q,X=t=>t;const Y=i(o(d(n(v,"customer"))));class Z extends Y{constructor(){super(...arguments),this.templates={},this.__renderHeaderActionsEdit=()=>{const{readonlySelector:t,disabledSelector:e,hiddenSelector:r}=this,a="header:actions:edit:form",o="customer-dialog",h=!this.in({idle:"snapshot"})||e.matches("header:actions:edit",!0);return s(M||(M=X` ${0} <foxy-form-dialog data-testid="header:actions:edit:form" header="update" parent="${0}" group="${0}" href="${0}" form="foxy-customer-form" lang="${0}" ns="${0}" id="${0}" readonlycontrols="${0}" disabledcontrols="${0}" hiddencontrols="${0}" .templates="${0}"> </foxy-form-dialog> <vaadin-button data-testid="header:actions:edit" aria-label="${0}" class="px-xs rounded-full" theme="icon" ?disabled="${0}" @click="${0}"> <iron-icon icon="editor:mode-edit"></iron-icon> </vaadin-button> ${0} `),this.renderTemplateOrSlot("header:actions:edit:before"),this.parent,this.group,this.href,this.lang,this.ns,o,t.zoom(a).toString(),e.zoom(a).toString(),r.zoom(a).toString(),this.getNestedTemplates("header:actions:edit:form"),this.t("update").toString(),h,(t=>{this.renderRoot.querySelector(`#${o}`).show(t.currentTarget)}),this.renderTemplateOrSlot("header:actions:edit:after"))},this.__renderHeaderActions=()=>{const t=this.hiddenSelector.zoom("header:actions");return s(S||(S=X` <div class="flex" data-testid="header:actions"> ${0} ${0} ${0} </div> `),this.renderTemplateOrSlot("header:actions:before"),t.matches("edit",!0)?"":this.__renderHeaderActionsEdit(),this.renderTemplateOrSlot("header:actions:after"))},this.__renderHeader=()=>{const t=g(this.in("busy")?void 0:"static");return s(_||(_=X` ${0} <header class="flex items-center justify-between space-x-m pb-s border-b border-contrast-10" data-testid="header"> <h1 class="text-xxl font-bold truncate min-w-0 flex-1"> ${0} </h1> ${0} </header> ${0} `),this.renderTemplateOrSlot("header:before"),this.in({idle:"snapshot"})?s(j||(j=X`${0} ${0}`),this.data.first_name,this.data.last_name):s(L||(L=X`<x-skeleton class="w-full" variant="${0}">&nbsp;</x-skeleton>`),t),this.hiddenSelector.matches("header:actions",!0)?"":this.__renderHeaderActions(),this.renderTemplateOrSlot("header:after"))},this.__renderAddressesActionsCreate=()=>{var t;const{data:e,lang:r,ns:a}=this,o=this.disabledSelector.zoom("addresses:actions"),h=this.readonlySelector.zoom("addresses:actions"),i=this.hiddenSelector.zoom("addresses:actions"),d=!this.in({idle:"snapshot"})||o.matches("create",!0);return s(T||(T=X` ${0} <vaadin-button data-testid="addresses:actions:create" aria-label="${0}" class="px-xs rounded-full" theme="small icon" ?disabled="${0}" @click="${0}"> <foxy-form-dialog readonlycontrols="${0}" disabledcontrols="${0}" hiddencontrols="${0}" data-testid="addresses:actions:create:form" parent="${0}" header="create" group="${0}" form="foxy-address-form" lang="${0}" ns="${0}" id="address-dialog" .templates="${0}"> </foxy-form-dialog> <iron-icon slot="suffix" icon="icons:add"></iron-icon> </vaadin-button> ${0} `),this.renderTemplateOrSlot("addresses:actions:create:before"),this.t("create").toString(),d,(t=>{if(null===e)return;const s=t.target;s.firstElementChild.show(s)}),h.zoom("create:form").toString(),o.zoom("create:form").toString(),i.zoom("create:form").toString(),null!==(t=null==e?void 0:e._links["fx:customer_addresses"].href)&&void 0!==t?t:"",this.group,r,a,this.getNestedTemplates("addresses:actions:create:form"),this.renderTemplateOrSlot("addresses:actions:create:after"))},this.__renderAddressesActions=()=>{const t=this.hiddenSelector.zoom("addresses:actions");return s(w||(w=X` <div data-testid="addresses:actions"> ${0} ${0} ${0} </div> `),this.renderTemplateOrSlot("addresses:actions:before"),t.matches("create",!0)?"":this.__renderAddressesActionsCreate(),this.renderTemplateOrSlot("addresses:actions:after"))},this.__renderAddressesListCard=t=>{var e,r;const a=l({"snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0":!0,"border border-contrast-10":!0,"hover-border-contrast-30 focus-outline-none focus-border-primary":null!==t.data}),o=this.readonlySelector.matches("addresses:list:card",!0),h=this.disabledSelector.matches("addresses:list:card",!0);return s(k||(k=X` <button data-testclass="addresses:list:card" class="${0}" ?disabled="${0}" @click="${0}"> <foxy-address-card hiddencontrols="${0}" parent="${0}" class="w-tile" group="${0}" lang="${0}" href="${0}" ns="${0} ${0}" .templates="${0}"> </foxy-address-card> </button> `),a,!t.data||o||h,(e=>{if(null===t.data)return;const s=e.target,r=s.getRootNode().querySelector("#addresses-list-form");r.href=t.data._links.self.href,r.show(s)}),t.hiddenControls.toString(),t.parent,t.group,t.lang,t.href,t.ns,null!==(r=null===(e=customElements.get("foxy-address-card"))||void 0===e?void 0:e.defaultNS)&&void 0!==r?r:"",t.templates)},this.__renderAddressesListPage=t=>t.html(A||(A=X`
83
83
  <foxy-collection-page
84
84
  hiddencontrols=${0}
85
85
  class="space-x-m flex"
@@ -124,7 +124,7 @@ found at http://polymer.github.io/PATENTS.txt
124
124
  group=${0}
125
125
  href=${0}
126
126
  lang=${0}
127
- ns=${0}
127
+ ns="${0} subscriptions-table"
128
128
  .columns=${0}
129
129
  .templates=${0}
130
130
  >
@@ -1 +1 @@
1
- import"./foxy-spinner.js";import"./shared-11708514.js";import{T as s}from"./shared-a23cf7c8.js";import{a as e}from"./shared-e68b9c83.js";import{h as a}from"./shared-63eaded9.js";import"./shared-46ee137f.js";import"./shared-ff79f3f9.js";import"./shared-60126eee.js";import"./shared-5535f38f.js";import"./shared-df730f90.js";import"./shared-6d45a07b.js";import"./foxy-nucleon-element.js";import"./shared-39e3ae67.js";import"./shared-7f0a9790.js";import"./shared-7684cb05.js";import"./shared-756034e4.js";import"./shared-4e709717.js";let t,n,o,r,m=s=>s;class d extends(e(s,"customers-table")){constructor(){super(...arguments),this.columns=[d.nameColumn,d.idColumn,d.dateColumn,d.emailColumn]}}d.nameColumn={cell:s=>a(t||(t=m` <span data-testclass="names">${0} ${0}</span> `),s.data.first_name,s.data.last_name)},d.idColumn={hideBelow:"md",cell:s=>a(n||(n=m` <span role="presentation" class="text-m text-tertiary">ID&nbsp;</span> <span data-testclass="ids" class="text-m text-secondary font-tnum">${0}</span> `),s.data.id)},d.dateColumn={hideBelow:"md",cell:s=>a(o||(o=m` <span class="text-m text-secondary font-tnum"> <foxy-i18n data-testclass="i18n" lang="${0}" key="date_created" ns="${0}"> </foxy-i18n> <foxy-i18n data-testclass="dates i18n" lang="${0}" key="date" ns="${0}" .options="${0}"> </foxy-i18n> </span> `),s.lang,s.ns,s.lang,s.ns,{value:s.data.date_created})},d.emailColumn={cell:s=>a(r||(r=m`<span data-testclass="emails" class="text-m text-secondary">${0}</span>`),s.data.email)},d.__ns="customers-table",customElements.define("foxy-customers-table",d);export{d as CustomersTable};
1
+ import"./foxy-spinner.js";import"./shared-27277bbb.js";import{T as s}from"./shared-312131d3.js";import{a}from"./shared-41f3f823.js";import{h as e}from"./shared-4ec62366.js";import"./shared-01cbd43c.js";import"./shared-6974569c.js";import"./shared-2f8bf5d9.js";import"./shared-bad032de.js";import"./shared-d2228670.js";import"./shared-8695b424.js";import"./foxy-nucleon-element.js";import"./shared-8fc0b3ee.js";import"./shared-7cf914d7.js";import"./shared-7684cb05.js";import"./shared-916ef4d3.js";import"./shared-4e709717.js";let t,n,o,d,r=s=>s;class m extends(a(s,"customers-table")){constructor(){super(...arguments),this.columns=[m.nameColumn,m.idColumn,m.dateColumn,m.emailColumn]}}m.nameColumn={cell:s=>e(t||(t=r` <span data-testclass="names">${0} ${0}</span> `),s.data.first_name,s.data.last_name)},m.idColumn={hideBelow:"md",cell:s=>e(n||(n=r` <span role="presentation" class="text-m text-tertiary">ID&nbsp;</span> <span data-testclass="ids" class="text-m text-secondary font-tnum">${0}</span> `),s.data.id)},m.dateColumn={hideBelow:"md",cell:s=>e(o||(o=r` <span class="text-m text-secondary font-tnum"> <foxy-i18n data-testclass="i18n" lang="${0}" key="date_created" ns="${0}"> </foxy-i18n> <foxy-i18n data-testclass="dates i18n" lang="${0}" key="date" ns="${0}" .options="${0}"> </foxy-i18n> </span> `),s.lang,s.ns,s.lang,s.ns,{value:s.data.date_created})},m.emailColumn={cell:s=>e(d||(d=r`<span data-testclass="emails" class="text-m text-secondary">${0}</span>`),s.data.email)},m.__ns="customers-table",customElements.define("foxy-customers-table",m);export{m as CustomersTable};
@@ -1 +1 @@
1
- import"./shared-9221e6b2.js";import"./foxy-spinner.js";import"./shared-11708514.js";import{h as r}from"./shared-63eaded9.js";import{a as s}from"./shared-e68b9c83.js";import{T as e}from"./shared-e209cb55.js";import"./shared-46ee137f.js";import"./shared-ff79f3f9.js";import"./shared-60126eee.js";import"./shared-5535f38f.js";import"./shared-df730f90.js";import"./shared-6d45a07b.js";import"./shared-39e3ae67.js";import"./shared-7f0a9790.js";import"./shared-7684cb05.js";import"./shared-756034e4.js";import"./shared-4e709717.js";let t,i,a=r=>r;class o extends(s(e,"discount-card")){constructor(){super(...arguments),this.__currencyDisplay="",this.__currency=""}render(){return super.render({title:s=>r(t||(t=a`${0} &bull; ${0}`),s.name,s.code),subtitle:s=>r(i||(i=a` <foxy-i18n options="${0}" lang="${0}" key="price" ns="${0}"> </foxy-i18n> `),JSON.stringify({currencyDisplay:this.__currencyDisplay,amount:`${Math.abs(s.amount)} ${this.__currency}`}),this.lang,this.ns)})}async _sendGet(){const r=await super._sendGet(),[s,e]=await Promise.all([super._fetch(r._links["fx:transaction"].href),super._fetch(r._links["fx:store"].href)]);return this.__currency=s.currency_code,this.__currencyDisplay=e.use_international_currency_symbol?"code":"symbol",r}}customElements.define("foxy-discount-card",o);export{o as DiscountCard};
1
+ import"./shared-701d5a7c.js";import"./foxy-spinner.js";import"./shared-27277bbb.js";import{h as r}from"./shared-4ec62366.js";import{a as s}from"./shared-41f3f823.js";import{T as e}from"./shared-3f26cae2.js";import"./shared-01cbd43c.js";import"./shared-6974569c.js";import"./shared-2f8bf5d9.js";import"./shared-bad032de.js";import"./shared-d2228670.js";import"./shared-8695b424.js";import"./shared-8fc0b3ee.js";import"./shared-7cf914d7.js";import"./shared-7684cb05.js";import"./shared-916ef4d3.js";import"./shared-4e709717.js";let t,i,a=r=>r;class c extends(s(e,"discount-card")){constructor(){super(...arguments),this.__currencyDisplay="",this.__currency=""}render(){return super.render({title:s=>r(t||(t=a`${0} &bull; ${0}`),s.name,s.code),subtitle:s=>r(i||(i=a` <foxy-i18n options="${0}" lang="${0}" key="price" ns="${0}"> </foxy-i18n> `),JSON.stringify({currencyDisplay:this.__currencyDisplay,amount:`${Math.abs(s.amount)} ${this.__currency}`}),this.lang,this.ns)})}async _sendGet(){const r=await super._sendGet(),[s,e]=await Promise.all([super._fetch(r._links["fx:transaction"].href),super._fetch(r._links["fx:store"].href)]);return this.__currency=s.currency_code,this.__currencyDisplay=e.use_international_currency_symbol?"code":"symbol",r}}customElements.define("foxy-discount-card",c);export{c as DiscountCard};
@@ -1 +1 @@
1
- import{_ as t,h as e}from"./shared-63eaded9.js";import"./shared-5a54a9bc.js";import{C as s}from"./shared-223508ae.js";import"./shared-a040d79d.js";import{c as n}from"./shared-e68b9c83.js";import{p as i}from"./shared-11708514.js";import{C as r}from"./shared-b5754a42.js";import"./shared-66633ff7.js";import{D as a,I as o}from"./shared-e2c878c7.js";import{E as c}from"./shared-dcc9c325.js";import"./shared-65dfd512.js";import"./shared-fab8c705.js";import{G as m}from"./shared-02945b27.js";import"./shared-8b20bc23.js";import"./shared-46ee137f.js";import"./shared-073cb8e9.js";import"./shared-ff79f3f9.js";import"./shared-5535f38f.js";import"./shared-b0f0e8b5.js";import"./shared-756034e4.js";import"./shared-4e709717.js";import"./shared-7f0a9790.js";import"./shared-df730f90.js";import"./shared-6d45a07b.js";class h extends CustomEvent{constructor(t){super("change",{detail:t})}}class u extends CustomEvent{constructor(){super("submit",{cancelable:!0})}}let d,l,p,y,g,f,$,x,_=t=>t;class b extends n{constructor(){super("donation"),this.currency=null,this.amount=null,this.store=null,this.name=null,this.custom=null,this.amounts=null,this.frequency=null,this.frequencies=null,this.designation=null,this.designations=null,this.comment=null,this.anonymity=!1,this.anonymous=!1,this.image=null,this.code=null,this.url=null,this.cart="checkout",this.target="_top"}static get scopedElements(){return{"vaadin-text-area":customElements.get("vaadin-text-area"),"x-error-screen":c,"vaadin-button":customElements.get("vaadin-button"),"x-dropdown":a,"x-checkbox":r,"x-choice":s,"x-group":m,"x-i18n":o}}static get properties(){return t(t({},super.properties),{},{currency:{type:String},custom:{type:Array},amount:{type:Number},amounts:{type:Array},frequency:{type:String},frequencies:{type:Array},designation:{type:Array},designations:{type:Array},comment:{type:String},anonymity:{reflect:!0,type:Boolean},anonymous:{reflect:!0,type:Boolean},image:{type:String},store:{type:String},name:{type:String},code:{type:String},url:{type:String},cart:{type:String},target:{type:String},empty:{type:String}})}static get events(){return{change:h,submit:u}}submit(){this.dispatchEvent(new u)&&this.__form.submit()}render(){var t,s;if(!(this.currency&&this.amount&&this.store&&this.name))return e(d||(d=_` <x-error-screen data-testid="error" type="setup_needed" class="relative"></x-error-screen> `));const n=this.store.includes(".")?this.store:`${this.store}.foxycart.com`;return e(l||(l=_` <form target="${0}" class="sr-only" method="POST" action="https://${0}/cart" data-testid="form"> ${0} </form> <section> ${0} </section> <section> ${0} </section> <section> ${0} </section> <section> ${0} <div class="flex flex-wrap -m-s"> ${0} <div class="flex-1 p-s"> <vaadin-button class="w-full" theme="primary" data-testid="submit" @click="${0}"> <x-i18n .opts="${0}" lang="${0}" key="${0}" ns="${0}"> </x-i18n> </vaadin-button> </div> </div> </section> `),this.target,n,[...this.__data.entries()].map((([t,s])=>e(p||(p=_`<input type="hidden" name="${0}" value="${0}">`),t,s))),this.amounts&&this.amounts.length>0?e(y||(y=_` <x-group frame> <x-i18n ns="${0}" lang="${0}" key="amount" slot="header"></x-i18n> <x-choice ?custom="${0}" .getText="${0}" .items="${0}" .value="${0}" type="integer" lang="${0}" min="1" ns="${0}" data-testid="amount" @change="${0}"> </x-choice> </x-group> <slot name="amount" class="block my-m"></slot> `),this.ns,this.lang,!!(null===(t=this.custom)||void 0===t?void 0:t.includes("amount")),(t=>this.__translateAmount(parseInt(t,10))),this.amounts.map(String),this.amount.toString(),this.lang,this.ns,(t=>{const e=parseInt(t.detail);this.amount=isNaN(e)?1:e})):"",this.designations&&this.designations.length>0?e(g||(g=_` <x-dropdown .label="${0}" .items="${0}" .value="${0}" data-testid="designation" @change="${0}"> </x-dropdown> <slot name="designation" class="block my-m"></slot> `),this._t("designation").toString(),this.designations,Array.isArray(this.designation)?"${this.designation[0]}: ${this.designation[1]}":this.designation,(t=>{this.designation=t.detail})):"","string"==typeof this.comment?e(f||(f=_` <vaadin-text-area placeholder="${0}" value="${0}" label="${0}" class="w-full" data-testid="comment" @input="${0}"> </vaadin-text-area> <slot name="comment" class="block my-m"></slot> `),this._t("comment_placeholder").toString(),this.comment,this._t("comment_label").toString(),(t=>{t.stopPropagation(),this.comment=t.target.value})):"",this.anonymity?e($||($=_` <x-checkbox class="my-m" data-testid="anonymity" ?checked="${0}" @change="${0}"> ${0} </x-checkbox> `),this.anonymous,(t=>this.anonymous=t.detail),this._t("anonymous")):"",this.frequencies&&this.frequencies.length>0?e(x||(x=_` <div class="flex-1 p-s"> <x-dropdown .value="${0}" .items="${0}" .getText="${0}" data-testid="frequency" @change="${0}"> </x-dropdown> </div> `),this.frequency,this.frequencies,this.__translateFrequency.bind(this),(t=>{this.frequency=t.detail})):"",(()=>this.submit()),{amount:this.__translateAmount(this.amount),frequency:this.frequency?this.__translateFrequency(this.frequency):""},this.lang,this.frequency&&!(null===(s=this.frequencies)||void 0===s?void 0:s.length)?"donate_recurrently":"donate",this.ns)}updated(){this.dispatchEvent(new h(this.__data))}get __data(){const t=new FormData;return"string"==typeof this.designation&&t.set("Designation",this.designation.trim()),"number"==typeof this.amount&&"string"==typeof this.currency&&t.set("price",`${this.amount.toFixed(2)}${this.currency}`),this.frequency&&t.set("sub_frequency",this.frequency),"string"==typeof this.comment&&t.set("Comment",this.comment.trim()),"string"==typeof this.image&&t.set("image",this.image),"string"==typeof this.code&&t.set("code",this.code),"string"==typeof this.name&&t.set("name",this.name.trim()),"string"==typeof this.url&&t.set("url",this.url),"string"==typeof this.cart&&t.set("cart",this.cart),this.empty&&t.set("empty",this.empty),this.anonymous&&t.set("Anonymous","true"),t.set("quantity","1"),t}get __form(){return this.shadowRoot.querySelector("form")}__translateFrequency(t){if(!t||t.match(/^\s*$/))return this._t("frequency_once");if(".5m"===t)return this._t("frequency_0_5m");const{count:e,units:s}=i(t);return this._t("frequency",{units:this._t(s,{count:e}),count:e})}__translateAmount(t){return t.toLocaleString(this.lang,{minimumFractionDigits:0,currency:this.currency,style:"currency"})}}customElements.define("foxy-donation",b);export{b as Donation};
1
+ import{_ as t,h as e}from"./shared-4ec62366.js";import"./shared-a82f8b58.js";import{C as s}from"./shared-4dc82211.js";import"./shared-41272a67.js";import{x as n}from"./shared-41f3f823.js";import{p as i}from"./shared-27277bbb.js";import{C as r}from"./shared-3a06bd7f.js";import"./shared-f0515999.js";import{D as a,I as o}from"./shared-cd262e68.js";import{E as c}from"./shared-7e107668.js";import"./shared-b161b269.js";import"./shared-269fb742.js";import{G as m}from"./shared-1fa5f9a9.js";import"./shared-85b8ae57.js";import"./shared-01cbd43c.js";import"./shared-e69e1ca3.js";import"./shared-6974569c.js";import"./shared-bad032de.js";import"./shared-d3cf78c1.js";import"./shared-916ef4d3.js";import"./shared-4e709717.js";import"./shared-7cf914d7.js";import"./shared-d2228670.js";import"./shared-8695b424.js";class h extends CustomEvent{constructor(t){super("change",{detail:t})}}class u extends CustomEvent{constructor(){super("submit",{cancelable:!0})}}let d,l,p,y,g,f,$,x,_=t=>t;class b extends n{constructor(){super("donation"),this.currency=null,this.amount=null,this.store=null,this.name=null,this.custom=null,this.amounts=null,this.frequency=null,this.frequencies=null,this.designation=null,this.designations=null,this.comment=null,this.anonymity=!1,this.anonymous=!1,this.image=null,this.code=null,this.url=null,this.cart="checkout",this.target="_top"}static get scopedElements(){return{"vaadin-text-area":customElements.get("vaadin-text-area"),"x-error-screen":c,"vaadin-button":customElements.get("vaadin-button"),"x-dropdown":a,"x-checkbox":r,"x-choice":s,"x-group":m,"x-i18n":o}}static get properties(){return t(t({},super.properties),{},{currency:{type:String},custom:{type:Array},amount:{type:Number},amounts:{type:Array},frequency:{type:String},frequencies:{type:Array},designation:{type:Array},designations:{type:Array},comment:{type:String},anonymity:{reflect:!0,type:Boolean},anonymous:{reflect:!0,type:Boolean},image:{type:String},store:{type:String},name:{type:String},code:{type:String},url:{type:String},cart:{type:String},target:{type:String},empty:{type:String}})}static get events(){return{change:h,submit:u}}submit(){this.dispatchEvent(new u)&&this.__form.submit()}render(){var t,s;if(!(this.currency&&this.amount&&this.store&&this.name))return e(d||(d=_` <x-error-screen data-testid="error" type="setup_needed" class="relative"></x-error-screen> `));const n=this.store.includes(".")?this.store:`${this.store}.foxycart.com`;return e(l||(l=_` <form target="${0}" class="sr-only" method="POST" action="https://${0}/cart" data-testid="form"> ${0} </form> <section> ${0} </section> <section> ${0} </section> <section> ${0} </section> <section> ${0} <div class="flex flex-wrap -m-s"> ${0} <div class="flex-1 p-s"> <vaadin-button class="w-full" theme="primary" data-testid="submit" @click="${0}"> <x-i18n .opts="${0}" lang="${0}" key="${0}" ns="${0}"> </x-i18n> </vaadin-button> </div> </div> </section> `),this.target,n,[...this.__data.entries()].map((([t,s])=>e(p||(p=_`<input type="hidden" name="${0}" value="${0}">`),t,s))),this.amounts&&this.amounts.length>0?e(y||(y=_` <x-group frame> <x-i18n ns="${0}" lang="${0}" key="amount" slot="header"></x-i18n> <x-choice ?custom="${0}" .getText="${0}" .items="${0}" .value="${0}" type="integer" lang="${0}" min="1" ns="${0}" data-testid="amount" @change="${0}"> </x-choice> </x-group> <slot name="amount" class="block my-m"></slot> `),this.ns,this.lang,!!(null===(t=this.custom)||void 0===t?void 0:t.includes("amount")),(t=>this.__translateAmount(parseInt(t,10))),this.amounts.map(String),this.amount.toString(),this.lang,this.ns,(t=>{const e=parseInt(t.detail);this.amount=isNaN(e)?1:e})):"",this.designations&&this.designations.length>0?e(g||(g=_` <x-dropdown .label="${0}" .items="${0}" .value="${0}" data-testid="designation" @change="${0}"> </x-dropdown> <slot name="designation" class="block my-m"></slot> `),this._t("designation").toString(),this.designations,Array.isArray(this.designation)?"${this.designation[0]}: ${this.designation[1]}":this.designation,(t=>{this.designation=t.detail})):"","string"==typeof this.comment?e(f||(f=_` <vaadin-text-area placeholder="${0}" value="${0}" label="${0}" class="w-full" data-testid="comment" @input="${0}"> </vaadin-text-area> <slot name="comment" class="block my-m"></slot> `),this._t("comment_placeholder").toString(),this.comment,this._t("comment_label").toString(),(t=>{t.stopPropagation(),this.comment=t.target.value})):"",this.anonymity?e($||($=_` <x-checkbox class="my-m" data-testid="anonymity" ?checked="${0}" @change="${0}"> ${0} </x-checkbox> `),this.anonymous,(t=>this.anonymous=t.detail),this._t("anonymous")):"",this.frequencies&&this.frequencies.length>0?e(x||(x=_` <div class="flex-1 p-s"> <x-dropdown .value="${0}" .items="${0}" .getText="${0}" data-testid="frequency" @change="${0}"> </x-dropdown> </div> `),this.frequency,this.frequencies,this.__translateFrequency.bind(this),(t=>{this.frequency=t.detail})):"",(()=>this.submit()),{amount:this.__translateAmount(this.amount),frequency:this.frequency?this.__translateFrequency(this.frequency):""},this.lang,this.frequency&&!(null===(s=this.frequencies)||void 0===s?void 0:s.length)?"donate_recurrently":"donate",this.ns)}updated(){this.dispatchEvent(new h(this.__data))}get __data(){const t=new FormData;return"string"==typeof this.designation&&t.set("Designation",this.designation.trim()),"number"==typeof this.amount&&"string"==typeof this.currency&&t.set("price",`${this.amount.toFixed(2)}${this.currency}`),this.frequency&&t.set("sub_frequency",this.frequency),"string"==typeof this.comment&&t.set("Comment",this.comment.trim()),"string"==typeof this.image&&t.set("image",this.image),"string"==typeof this.code&&t.set("code",this.code),"string"==typeof this.name&&t.set("name",this.name.trim()),"string"==typeof this.url&&t.set("url",this.url),"string"==typeof this.cart&&t.set("cart",this.cart),this.empty&&t.set("empty",this.empty),this.anonymous&&t.set("Anonymous","true"),t.set("quantity","1"),t}get __form(){return this.shadowRoot.querySelector("form")}__translateFrequency(t){if(!t||t.match(/^\s*$/))return this._t("frequency_once");if(".5m"===t)return this._t("frequency_0_5m");const{count:e,units:s}=i(t);return this._t("frequency",{units:this._t(s,{count:e}),count:e})}__translateAmount(t){return t.toLocaleString(this.lang,{minimumFractionDigits:0,currency:this.currency,style:"currency"})}}customElements.define("foxy-donation",b);export{b as Donation};
@@ -1 +1 @@
1
- import"./shared-a040d79d.js";import{C as e,b as t}from"./shared-223508ae.js";import"./shared-5a54a9bc.js";import"./shared-c5de42f7.js";import"./shared-9221e6b2.js";import"./foxy-spinner.js";import"./shared-11708514.js";import{_ as a,j as i,h as s}from"./shared-63eaded9.js";import"./shared-46ee137f.js";import"./shared-8b20bc23.js";import"./shared-073cb8e9.js";import{S as r,T as n,a as d}from"./shared-e68b9c83.js";import{c as o}from"./shared-4e709717.js";import"./shared-66633ff7.js";import"./shared-e2c878c7.js";import"./shared-65dfd512.js";import"./shared-fab8c705.js";import{G as l}from"./shared-02945b27.js";import{P as c}from"./shared-4dc6d228.js";import{C as h}from"./shared-df730f90.js";import{N as m}from"./shared-39e3ae67.js";import{i as p}from"./shared-6d45a07b.js";import"./shared-ff79f3f9.js";import"./shared-5535f38f.js";import"./shared-b0f0e8b5.js";import"./shared-756034e4.js";import"./shared-60126eee.js";import"./shared-7f0a9790.js";import"./shared-7684cb05.js";let f,u,$,v,y,_,b,x,g=e=>e;const j=r(n(h(d(m,"email-template-form"))));class S extends j{constructor(){super(...arguments),this.templates={},this.__cacheState="idle",this.__contentChoice="default"}static get properties(){return a(a({},super.properties),{},{__cacheState:{attribute:!1},__contentChoice:{attribute:!1}})}static get styles(){return[...super.styles,i(f||(f=g`#cached-content::part(input-field){max-height:15em}`))]}static get scopedElements(){return{"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-text-area":customElements.get("vaadin-text-area"),"vaadin-button":customElements.get("vaadin-button"),"x-property-table":c,"x-choice":e,"x-group":l}}render(){var e,t;const{hiddenSelector:a,href:i,lang:r,ns:n}=this,d=i?"delete":"create",l=this.in("busy"),c=this.in("fail");return s(u||(u=g` <div class="space-y-m"> ${0} ${0} ${0} ${0} <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),a.matches("description",!0)?"":this.__renderDescription(),a.matches("content",!0)?"":this.__renderContent(),a.matches("timestamps",!0)||!i?"":this.__renderTimestamps(),a.matches(d)?"":this.__renderAction(d),o({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!l&&!c}),c?"error":l?"busy":"empty",r,n,null!==(t=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==t?t:"")}__renderDescription(){var e,t;const a="description";return s($||($=g` <div> ${0} <vaadin-text-field data-testid="${0}" class="w-full mb-s" label="${0}" ?disabled="${0}" ?readonly="${0}" .value="${0}" @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot(`${a}:before`),a,this.t(a),!this.in("idle")||this.disabledSelector.matches(a),this.readonlySelector.matches(a),null!==(t=null===(e=this.form)||void 0===e?void 0:e.description)&&void 0!==t?t:"",(e=>"Enter"===e.key&&this.submit()),(e=>{this.edit({description:e.currentTarget.value})}),this.renderTemplateOrSlot(`${a}:after`))}__renderContent(){return s(v||(v=g` <div data-testid="content"> ${0} <div class="space-y-l"> ${0} ${0} </div> ${0} </div> `),this.renderTemplateOrSlot("content:before"),this.__renderContentVariant("content_text_url","content_text","text_template"),this.__renderContentVariant("content_html_url","content_html","html_template"),this.renderTemplateOrSlot("content:after"))}__renderContentVariant(e,a,i){var r;const n=!this.in("idle")||this.disabledSelector.matches("content",!0),d=this.readonlySelector.matches("content",!0),l=this.form[e]?"url":this.form[a]?"clipboard":this.__contentChoice;return s(y||(y=g` <x-group frame> <foxy-i18n class="${0}" lang="${0}" slot="header" key="${0}" ns="${0}"> </foxy-i18n> <x-choice data-testid="${0}-type" .value="${0}" .items="${0}" ?readonly="${0}" ?disabled="${0}" @change="${0}"> ${0} <div slot="url" ?hidden="${0}"> <div class="flex items-center mt-0 mb-m"> <vaadin-text-field data-testid="${0}-url" value="${0}" class="mr-s flex-grow" ?readonly="${0}" ?disabled="${0}" @keydown="${0}" @input="${0}"> </vaadin-text-field> <vaadin-button data-testid="${0}-cache" class="relative" ?disabled="${0}" ?hidden="${0}" @click="${0}"> <foxy-i18n class="${0}" lang="${0}" key="cache" ns="${0}"> </foxy-i18n> <div class="${0}"> <foxy-spinner layout="no-label" class="m-auto" state="${0}" lang="${0}" ns="${0}"> </foxy-spinner> </div> </vaadin-button> </div> </div> <div slot="clipboard" ?hidden="${0}"> <vaadin-text-area data-testid="${0}-clipboard" id="cached-content" class="w-full mb-m" ?readonly="${0}" ?disabled="${0}" .value="${0}" @input="${0}"> </vaadin-text-area> </div> </x-choice> </x-group> `),o({"transition-colors":!0,"text-disabled":n}),this.lang,i,this.ns,a.replace("_","-"),l,["default","url","clipboard"],d,n,(i=>{i instanceof t&&(this.edit({[a]:"",[e]:""}),this.__contentChoice=i.detail)}),["default","url","clipboard"].map((e=>s(_||(_=g` <div slot="${0}-label" class="py-s leading-s"> <foxy-i18n class="block" lang="${0}" key="template_${0}" ns="${0}"> </foxy-i18n> <foxy-i18n class="block text-s opacity-70" lang="${0}" key="template_${0}_explainer" ns="${0}"> </foxy-i18n> </div> `),e,this.lang,e,this.ns,this.lang,e,this.ns))),"url"!==l,a.replace("_","-"),p(this.form[e]),d,n,(e=>"Enter"===e.key&&this.submit()),(t=>{const i=t.currentTarget.value;this.edit({[a]:"",[e]:i})}),a.replace("_","-"),n||"busy"===this.__cacheState,d||this.form[e]!==(null===(r=this.data)||void 0===r?void 0:r[e]),this.__cache,o({"relative transition-opacity":!0,"opacity-0":"idle"!==this.__cacheState}),this.lang,this.ns,o({"absolute inset-0 flex transition-opacity":!0,"opacity-0":"idle"===this.__cacheState}),"fail"===this.__cacheState?"error":"busy",this.lang,this.ns,"clipboard"!==l,a.replace("_","-"),d,n,this.form[a],(t=>{const i=t.currentTarget.value;this.edit({[a]:i,[e]:""})}))}__renderTimestamps(){const e="timestamps";return s(b||(b=g` <div> ${0} <x-property-table data-testid="timestamps" .items="${0}"> </x-property-table> ${0} </div> `),this.renderTemplateOrSlot(`${e}:before`),["date_modified","date_created"].map((e=>{var t;return{name:this.t(e),value:(null===(t=this.data)||void 0===t?void 0:t[e])?this.t("date",{value:new Date(this.data[e])}):""}})),this.renderTemplateOrSlot(`${e}:after`))}__renderAction(e){const{disabledSelector:t,href:a,lang:i,ns:r}=this,n=this.in({idle:{template:{dirty:"valid"}}}),d=this.in({idle:{snapshot:{dirty:"valid"}}}),o=!this.in("idle")||t.matches(e,!0),l=n||d;return s(x||(x=g` <div> ${0} <foxy-internal-confirm-dialog message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" lang="${0}" ns="${0}" id="confirm" data-testid="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> <vaadin-button class="w-full" theme="${0}" data-testid="${0}" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="${0}" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot(`${e}:before`),i,r,(e=>{e.detail.cancelled||this.delete()}),this.in("idle")?"primary "+(a?"error":"success"):"",e,this.in({idle:"template"})&&!l||o,(t=>{if("delete"===e){this.renderRoot.querySelector("#confirm").show(t.currentTarget)}else this.submit()}),r,e,i,this.renderTemplateOrSlot(`${e}:after`))}async __cache(){var e,t;this.__cacheState="busy";try{const a=null!==(t=null===(e=this.data)||void 0===e?void 0:e._links["fx:cache"].href)&&void 0!==t?t:"",i=await new S.API(this).fetch(a,{method:"POST"});this.__cacheState=i.ok?"idle":"fail"}catch(e){this.__cacheState="fail"}}}customElements.define("foxy-email-template-form",S);export{S as EmailTemplateForm};
1
+ import"./shared-41272a67.js";import{C as e,b as t}from"./shared-4dc82211.js";import"./shared-a82f8b58.js";import"./shared-1d2cc2fb.js";import"./shared-701d5a7c.js";import"./foxy-spinner.js";import"./shared-27277bbb.js";import{_ as a,j as i,h as s}from"./shared-4ec62366.js";import"./shared-01cbd43c.js";import"./shared-85b8ae57.js";import"./shared-e69e1ca3.js";import{S as r,T as n,a as d}from"./shared-41f3f823.js";import{c as o}from"./shared-4e709717.js";import"./shared-f0515999.js";import"./shared-cd262e68.js";import"./shared-b161b269.js";import"./shared-269fb742.js";import{G as l}from"./shared-1fa5f9a9.js";import{P as c}from"./shared-7d337241.js";import{C as h}from"./shared-d2228670.js";import{N as m}from"./shared-8fc0b3ee.js";import{i as p}from"./shared-8695b424.js";import"./shared-6974569c.js";import"./shared-bad032de.js";import"./shared-d3cf78c1.js";import"./shared-916ef4d3.js";import"./shared-2f8bf5d9.js";import"./shared-7cf914d7.js";import"./shared-7684cb05.js";let f,u,$,v,y,_,b,x,g=e=>e;const j=r(n(h(d(m,"email-template-form"))));class S extends j{constructor(){super(...arguments),this.templates={},this.__cacheState="idle",this.__contentChoice="default"}static get properties(){return a(a({},super.properties),{},{__cacheState:{attribute:!1},__contentChoice:{attribute:!1}})}static get styles(){return[...super.styles,i(f||(f=g`#cached-content::part(input-field){max-height:15em}`))]}static get scopedElements(){return{"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-text-area":customElements.get("vaadin-text-area"),"vaadin-button":customElements.get("vaadin-button"),"x-property-table":c,"x-choice":e,"x-group":l}}render(){var e,t;const{hiddenSelector:a,href:i,lang:r,ns:n}=this,d=i?"delete":"create",l=this.in("busy"),c=this.in("fail");return s(u||(u=g` <div class="space-y-m"> ${0} ${0} ${0} ${0} <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),a.matches("description",!0)?"":this.__renderDescription(),a.matches("content",!0)?"":this.__renderContent(),a.matches("timestamps",!0)||!i?"":this.__renderTimestamps(),a.matches(d)?"":this.__renderAction(d),o({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!l&&!c}),c?"error":l?"busy":"empty",r,n,null!==(t=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==t?t:"")}__renderDescription(){var e,t;const a="description";return s($||($=g` <div> ${0} <vaadin-text-field data-testid="${0}" class="w-full mb-s" label="${0}" ?disabled="${0}" ?readonly="${0}" .value="${0}" @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot(`${a}:before`),a,this.t(a),!this.in("idle")||this.disabledSelector.matches(a),this.readonlySelector.matches(a),null!==(t=null===(e=this.form)||void 0===e?void 0:e.description)&&void 0!==t?t:"",(e=>"Enter"===e.key&&this.submit()),(e=>{this.edit({description:e.currentTarget.value})}),this.renderTemplateOrSlot(`${a}:after`))}__renderContent(){return s(v||(v=g` <div data-testid="content"> ${0} <div class="space-y-l"> ${0} ${0} </div> ${0} </div> `),this.renderTemplateOrSlot("content:before"),this.__renderContentVariant("content_text_url","content_text","text_template"),this.__renderContentVariant("content_html_url","content_html","html_template"),this.renderTemplateOrSlot("content:after"))}__renderContentVariant(e,a,i){var r;const n=!this.in("idle")||this.disabledSelector.matches("content",!0),d=this.readonlySelector.matches("content",!0),l=this.form[e]?"url":this.form[a]?"clipboard":this.__contentChoice;return s(y||(y=g` <x-group frame> <foxy-i18n class="${0}" lang="${0}" slot="header" key="${0}" ns="${0}"> </foxy-i18n> <x-choice data-testid="${0}-type" .value="${0}" .items="${0}" ?readonly="${0}" ?disabled="${0}" @change="${0}"> ${0} <div slot="url" ?hidden="${0}"> <div class="flex items-center mt-0 mb-m"> <vaadin-text-field data-testid="${0}-url" value="${0}" class="mr-s flex-grow" ?readonly="${0}" ?disabled="${0}" @keydown="${0}" @input="${0}"> </vaadin-text-field> <vaadin-button data-testid="${0}-cache" class="relative" ?disabled="${0}" ?hidden="${0}" @click="${0}"> <foxy-i18n class="${0}" lang="${0}" key="cache" ns="${0}"> </foxy-i18n> <div class="${0}"> <foxy-spinner layout="no-label" class="m-auto" state="${0}" lang="${0}" ns="${0}"> </foxy-spinner> </div> </vaadin-button> </div> </div> <div slot="clipboard" ?hidden="${0}"> <vaadin-text-area data-testid="${0}-clipboard" id="cached-content" class="w-full mb-m" ?readonly="${0}" ?disabled="${0}" .value="${0}" @input="${0}"> </vaadin-text-area> </div> </x-choice> </x-group> `),o({"transition-colors":!0,"text-disabled":n}),this.lang,i,this.ns,a.replace("_","-"),l,["default","url","clipboard"],d,n,(i=>{i instanceof t&&(this.edit({[a]:"",[e]:""}),this.__contentChoice=i.detail)}),["default","url","clipboard"].map((e=>s(_||(_=g` <div slot="${0}-label" class="py-s leading-s"> <foxy-i18n class="block" lang="${0}" key="template_${0}" ns="${0}"> </foxy-i18n> <foxy-i18n class="block text-s opacity-70" lang="${0}" key="template_${0}_explainer" ns="${0}"> </foxy-i18n> </div> `),e,this.lang,e,this.ns,this.lang,e,this.ns))),"url"!==l,a.replace("_","-"),p(this.form[e]),d,n,(e=>"Enter"===e.key&&this.submit()),(t=>{const i=t.currentTarget.value;this.edit({[a]:"",[e]:i})}),a.replace("_","-"),n||"busy"===this.__cacheState,d||this.form[e]!==(null===(r=this.data)||void 0===r?void 0:r[e]),this.__cache,o({"relative transition-opacity":!0,"opacity-0":"idle"!==this.__cacheState}),this.lang,this.ns,o({"absolute inset-0 flex transition-opacity":!0,"opacity-0":"idle"===this.__cacheState}),"fail"===this.__cacheState?"error":"busy",this.lang,this.ns,"clipboard"!==l,a.replace("_","-"),d,n,this.form[a],(t=>{const i=t.currentTarget.value;this.edit({[a]:i,[e]:""})}))}__renderTimestamps(){const e="timestamps";return s(b||(b=g` <div> ${0} <x-property-table data-testid="timestamps" .items="${0}"> </x-property-table> ${0} </div> `),this.renderTemplateOrSlot(`${e}:before`),["date_modified","date_created"].map((e=>{var t;return{name:this.t(e),value:(null===(t=this.data)||void 0===t?void 0:t[e])?this.t("date",{value:new Date(this.data[e])}):""}})),this.renderTemplateOrSlot(`${e}:after`))}__renderAction(e){const{disabledSelector:t,href:a,lang:i,ns:r}=this,n=this.in({idle:{template:{dirty:"valid"}}}),d=this.in({idle:{snapshot:{dirty:"valid"}}}),o=!this.in("idle")||t.matches(e,!0),l=n||d;return s(x||(x=g` <div> ${0} <foxy-internal-confirm-dialog message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" lang="${0}" ns="${0}" id="confirm" data-testid="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> <vaadin-button class="w-full" theme="${0}" data-testid="${0}" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="${0}" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot(`${e}:before`),i,r,(e=>{e.detail.cancelled||this.delete()}),this.in("idle")?"primary "+(a?"error":"success"):"",e,this.in({idle:"template"})&&!l||o,(t=>{if("delete"===e){this.renderRoot.querySelector("#confirm").show(t.currentTarget)}else this.submit()}),r,e,i,this.renderTemplateOrSlot(`${e}:after`))}async __cache(){var e,t;this.__cacheState="busy";try{const a=null!==(t=null===(e=this.data)||void 0===e?void 0:e._links["fx:cache"].href)&&void 0!==t?t:"",i=await new S.API(this).fetch(a,{method:"POST"});this.__cacheState=i.ok?"idle":"fail"}catch(e){this.__cacheState="fail"}}}customElements.define("foxy-email-template-form",S);export{S as EmailTemplateForm};
@@ -1 +1 @@
1
- import{L as e,j as s,h as t,w as r,_ as a}from"./shared-63eaded9.js";import{T as i,a as n,S as o}from"./shared-e68b9c83.js";import{c as l}from"./shared-4e709717.js";import{G as d}from"./shared-02945b27.js";import"./foxy-nucleon-element.js";import{N as c}from"./shared-39e3ae67.js";import"./shared-5535f38f.js";import"./shared-7f0a9790.js";import"./shared-7684cb05.js";import"./shared-756034e4.js";let p,u,m,f=e=>e;class x extends(i(e)){constructor(){super(...arguments),this.data=[]}static get properties(){return{data:{type:Array}}}static get styles(){return[super.styles,s(p||(p=f`dd,dt{display:inline-block;overflow:hidden;vertical-align:top;overflow-wrap:anywhere}dt{min-width:calc(5 * var(--lumo-size-l));padding-right:.5em}dd{max-width:calc(15 * var(--lumo-size-l));min-width:calc(10 * var(--lumo-size-l))}`))]}render(){return t(u||(u=f` <dl class="space-y-s"> ${0} </dl> `),this.data.map((e=>{const s=String(e[1]).trim();return t(m||(m=f` <div> <dt class="text-secondary truncate">${0}</dt> <dd class="${0}">${0}</dd> </div> `),e[0],l({"text-tertiary":!s}),s||"–")})))}}let y,h,g=e=>e;const v=["_links","_embedded"],$=n(i(o(c)));class _ extends ${static get scopedElements(){return{"foxy-spinner":customElements.get("foxy-spinner"),"x-data-list":x}}render(){if(this.in({idle:"snapshot"})){const e=this.data,s=r(e,v);return t(y||(y=g` <x-data-list aria-live="polite" aria-busy="false" class="leading-s text-s" data="${0}"> </x-data-list> `),JSON.stringify(Array.from(Object.entries(s))))}const e=this.in("busy");return t(h||(h=g` <div aria-live="polite" aria-busy="${0}" data-testid="wrapper" class="flex justify-center"> <foxy-spinner data-testid="spinner" layout="horizontal" state="${0}" lang="${0}" ns="${0}"> </foxy-spinner> </div> `),e,this.in("fail")?"error":e?"busy":"empty",this.lang,this.ns)}}let b,w,j,k,S,E,O,N,T,z=e=>e;const G=n(i(o(c)),"error-entry-card");class J extends G{constructor(){super(...arguments),this.open=!1}static get scopedElements(){return{"x-resource-viewer":_,"foxy-spinner":customElements.get("foxy-spinner"),"x-data-list":x,"iron-icon":customElements.get("iron-icon"),"foxy-i18n":customElements.get("foxy-i18n"),"x-group":d}}static get properties(){return a(a({},super.properties),{},{open:{type:Boolean,reflect:!0}})}render(){const e=this.data,s=this.in("busy");if(e){const{hide_error:r}=e,{open:a}=this;return t(b||(b=z` <details aria-busy="${0}" aria-live="polite" class="text-body w-full" ?open="${0}" @toggle="${0}"> <summary class="rounded-s ring-offset-4 ring-offset-base ring-primary-50 focus-outline-none focus-ring-2"> <div style="padding-left:calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)" class="${0}"> ${0} </div> </summary> ${0} </details> `),s,a,this.__handleToggle,l({"border-l-2 leading-s relative cursor-pointer":!0,"border-contrast":r&&!a,"border-primary":!r,"border-error":r&&a,"h-l":!a}),this.__renderSummary(e),a?this.__renderDetails(e):"")}return t(w||(w=z` <div aria-busy="${0}" aria-live="polite" style="padding-left:calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)" class="flex items-center justify-center border-l-2 leading-s relative border-contrast-10 h-l"> <foxy-spinner data-testid="spinner" layout="horizontal" state="${0}" lang="${0}" ns="${0}"> </foxy-spinner> </div> `),s,s?"busy":this.in("fail")?"error":"empty",this.lang,this.ns)}__renderGetOrPostValues(e,s){const r=e||s,a=new URLSearchParams(this.__decodeHtml(r));return t(j||(j=z` <div class="relative leading-xs pt-s"> <div class="absolute font-semibold right-0 text-tertiary text-xs top-0 mt-s">${0}</div> <x-data-list data="${0}"></x-data-list> </div> `),e?"GET":"POST",JSON.stringify(Array.from(a.entries())))}__renderReferrer(e){return t(k||(k=z` <span class="text-secondary">Navigated from</span> <a target="_blank" class="font-semibold text-primary hover-underline" href="${0}" rel="nofollow noopener noreferrer"> ${0} </a> `),e,e)}__renderSummary(e){return t(S||(S=z` <div class="text-s absolute right-0 top-0 text-tertiary"> <iron-icon icon="icons:expand-${0}"></iron-icon> </div> <div class="text-s mb-xs ${0}"> <foxy-i18n options="${0}" lang="${0}" key="date" ns="${0}"> </foxy-i18n> <foxy-i18n options="${0}" lang="${0}" key="time" ns="${0}"> </foxy-i18n> </div> <p class="${0} overflow-hidden font-medium"> ${0} </p> `),this.open?"less":"more",e.hide_error?"text-error":"text-primary",JSON.stringify({value:e.date_created}),this.lang,this.ns,JSON.stringify({value:e.date_created}),this.lang,this.ns,this.open?"":"truncate",e.error_message)}__renderDetails(e){return t(E||(E=z` <div class="space-y-m pt-m"> <x-group frame> <foxy-i18n slot="header" lang="${0}" key="request" ns="${0}"></foxy-i18n> <div class="mx-xs p-s text-s divide-y divide-contrast-10 space-y-s"> <p> <span class="block font-semibold">${0}</span> ${0} </p> ${0} </div> </x-group> <x-group frame> <foxy-i18n slot="header" lang="${0}" key="client" ns="${0}"></foxy-i18n> <div class="text-s flex flex-col mx-xs p-s"> <span class="font-semibold"> ${0} ${0} </span> ${0} </div> </x-group> ${0} </div> `),this.lang,this.ns,e.url,e.referrer?this.__renderReferrer(e.referrer):"",e.get_values||e.post_values?this.__renderGetOrPostValues(e.get_values,e.post_values):"",this.lang,this.ns,e.ip_address,e.ip_country?t(O||(O=z`<span class="text-tertiary"> • </span>${0}`),e.ip_country):"",e.user_agent?t(N||(N=z`<span class="text-secondary">${0}</span>`),e.user_agent):"",Object.entries(e._links).map((([e,s])=>["self","fx:store","curies"].includes(e)?"":t(T||(T=z` <x-group frame> <foxy-i18n slot="header" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> <x-resource-viewer class="p-s mx-xs" href="${0}" lang="${0}" ns="${0}"> </x-resource-viewer> </x-group> `),this.lang,e.substr(3),this.ns,s.href,this.lang,this.ns))))}__handleToggle(e){var s;const t=e.target;t.open&&!1===(null===(s=this.data)||void 0===s?void 0:s.hide_error)&&(this.edit({hide_error:!0}),this.submit()),this.open=t.open}__decodeHtml(e){const s=document.createElement("textarea");return s.innerHTML=e,s.value}}customElements.define("foxy-error-entry-card",J);export{J as ErrorEntryCard};
1
+ import{L as e,j as s,h as t,w as r,_ as a}from"./shared-4ec62366.js";import{T as i,a as n,S as o}from"./shared-41f3f823.js";import{c as l}from"./shared-4e709717.js";import{G as d}from"./shared-1fa5f9a9.js";import"./foxy-nucleon-element.js";import{N as c}from"./shared-8fc0b3ee.js";import"./shared-bad032de.js";import"./shared-7cf914d7.js";import"./shared-7684cb05.js";import"./shared-916ef4d3.js";let p,u,m,f=e=>e;class x extends(i(e)){constructor(){super(...arguments),this.data=[]}static get properties(){return{data:{type:Array}}}static get styles(){return[super.styles,s(p||(p=f`dd,dt{display:inline-block;overflow:hidden;vertical-align:top;overflow-wrap:anywhere}dt{min-width:calc(5 * var(--lumo-size-l));padding-right:.5em}dd{max-width:calc(15 * var(--lumo-size-l));min-width:calc(10 * var(--lumo-size-l))}`))]}render(){return t(u||(u=f` <dl class="space-y-s"> ${0} </dl> `),this.data.map((e=>{const s=String(e[1]).trim();return t(m||(m=f` <div> <dt class="text-secondary truncate">${0}</dt> <dd class="${0}">${0}</dd> </div> `),e[0],l({"text-tertiary":!s}),s||"–")})))}}let y,h,g=e=>e;const v=["_links","_embedded"],$=n(i(o(c)));class _ extends ${static get scopedElements(){return{"foxy-spinner":customElements.get("foxy-spinner"),"x-data-list":x}}render(){if(this.in({idle:"snapshot"})){const e=this.data,s=r(e,v);return t(y||(y=g` <x-data-list aria-live="polite" aria-busy="false" class="leading-s text-s" data="${0}"> </x-data-list> `),JSON.stringify(Array.from(Object.entries(s))))}const e=this.in("busy");return t(h||(h=g` <div aria-live="polite" aria-busy="${0}" data-testid="wrapper" class="flex justify-center"> <foxy-spinner data-testid="spinner" layout="horizontal" state="${0}" lang="${0}" ns="${0}"> </foxy-spinner> </div> `),e,this.in("fail")?"error":e?"busy":"empty",this.lang,this.ns)}}let b,w,j,S,k,E,O,N,T,z=e=>e;const G=n(i(o(c)),"error-entry-card");class J extends G{constructor(){super(...arguments),this.open=!1}static get scopedElements(){return{"x-resource-viewer":_,"foxy-spinner":customElements.get("foxy-spinner"),"x-data-list":x,"iron-icon":customElements.get("iron-icon"),"foxy-i18n":customElements.get("foxy-i18n"),"x-group":d}}static get properties(){return a(a({},super.properties),{},{open:{type:Boolean,reflect:!0}})}render(){var e,s;const r=this.data,a=this.in("busy");if(r){const{hide_error:e}=r,{open:s}=this;return t(b||(b=z` <details aria-busy="${0}" aria-live="polite" class="text-body w-full" ?open="${0}" @toggle="${0}"> <summary class="rounded-s ring-offset-4 ring-offset-base ring-primary-50 focus-outline-none focus-ring-2"> <div style="padding-left:calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)" class="${0}"> ${0} </div> </summary> ${0} </details> `),a,s,this.__handleToggle,l({"border-l-2 leading-s relative cursor-pointer":!0,"border-contrast":e&&!s,"border-primary":!e,"border-error":e&&s,"h-l":!s}),this.__renderSummary(r),s?this.__renderDetails(r):"")}return t(w||(w=z` <div aria-busy="${0}" aria-live="polite" style="padding-left:calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)" class="flex items-center justify-center border-l-2 leading-s relative border-contrast-10 h-l"> <foxy-spinner data-testid="spinner" layout="horizontal" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> `),a,a?"busy":this.in("fail")?"error":"empty",this.lang,this.ns,null!==(s=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==s?s:"")}__renderGetOrPostValues(e,s){const r=e||s,a=new URLSearchParams(this.__decodeHtml(r));return t(j||(j=z` <div class="relative leading-xs pt-s"> <div class="absolute font-semibold right-0 text-tertiary text-xs top-0 mt-s">${0}</div> <x-data-list data="${0}"></x-data-list> </div> `),e?"GET":"POST",JSON.stringify(Array.from(a.entries())))}__renderReferrer(e){return t(S||(S=z` <span class="text-secondary">Navigated from</span> <a target="_blank" class="font-semibold text-primary hover-underline" href="${0}" rel="nofollow noopener noreferrer"> ${0} </a> `),e,e)}__renderSummary(e){return t(k||(k=z` <div class="text-s absolute right-0 top-0 text-tertiary"> <iron-icon icon="icons:expand-${0}"></iron-icon> </div> <div class="text-s mb-xs ${0}"> <foxy-i18n options="${0}" lang="${0}" key="date" ns="${0}"> </foxy-i18n> <foxy-i18n options="${0}" lang="${0}" key="time" ns="${0}"> </foxy-i18n> </div> <p class="${0} overflow-hidden font-medium"> ${0} </p> `),this.open?"less":"more",e.hide_error?"text-error":"text-primary",JSON.stringify({value:e.date_created}),this.lang,this.ns,JSON.stringify({value:e.date_created}),this.lang,this.ns,this.open?"":"truncate",e.error_message)}__renderDetails(e){return t(E||(E=z` <div class="space-y-m pt-m"> <x-group frame> <foxy-i18n slot="header" lang="${0}" key="request" ns="${0}"></foxy-i18n> <div class="mx-xs p-s text-s divide-y divide-contrast-10 space-y-s"> <p> <span class="block font-semibold">${0}</span> ${0} </p> ${0} </div> </x-group> <x-group frame> <foxy-i18n slot="header" lang="${0}" key="client" ns="${0}"></foxy-i18n> <div class="text-s flex flex-col mx-xs p-s"> <span class="font-semibold"> ${0} ${0} </span> ${0} </div> </x-group> ${0} </div> `),this.lang,this.ns,e.url,e.referrer?this.__renderReferrer(e.referrer):"",e.get_values||e.post_values?this.__renderGetOrPostValues(e.get_values,e.post_values):"",this.lang,this.ns,e.ip_address,e.ip_country?t(O||(O=z`<span class="text-tertiary"> • </span>${0}`),e.ip_country):"",e.user_agent?t(N||(N=z`<span class="text-secondary">${0}</span>`),e.user_agent):"",Object.entries(e._links).map((([e,s])=>["self","fx:store","curies"].includes(e)?"":t(T||(T=z` <x-group frame> <foxy-i18n slot="header" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> <x-resource-viewer class="p-s mx-xs" href="${0}" lang="${0}" ns="${0}"> </x-resource-viewer> </x-group> `),this.lang,e.substr(3),this.ns,s.href,this.lang,this.ns))))}__handleToggle(e){var s;const t=e.target;t.open&&!1===(null===(s=this.data)||void 0===s?void 0:s.hide_error)&&(this.edit({hide_error:!0}),this.submit()),this.open=t.open}__decodeHtml(e){const s=document.createElement("textarea");return s.innerHTML=e,s.value}}customElements.define("foxy-error-entry-card",J);export{J as ErrorEntryCard};
@@ -1 +1 @@
1
- import"./shared-11708514.js";import"./shared-c5de42f7.js";import{_ as e,h as t}from"./shared-63eaded9.js";import{A as r}from"./shared-7f0a9790.js";import{D as o}from"./shared-66633ff7.js";import{F as n}from"./shared-5535f38f.js";import{U as s}from"./shared-7684cb05.js";import"./shared-e68b9c83.js";import"./shared-5a54a9bc.js";import"./shared-8b20bc23.js";import"./shared-ff79f3f9.js";import"./shared-df730f90.js";import"./shared-6d45a07b.js";import"./shared-4e709717.js";let i,a,d=e=>e;class l extends o{constructor(){super(...arguments),this.related=[],this.parent="",this.group="",this.href="",this.__form=null,this.__renderForm=null,this.__handleFetch=e=>{e instanceof n&&(e.stopImmediatePropagation(),e.preventDefault(),e.respondWith(new r(this).fetch(e.request).then((t=>{const r=e.request.url===this.href&&"DELETE"===e.request.method,o=e.request.url===this.parent&&"POST"===e.request.method;return t.ok&&(r||o)&&(this.open=!1),t}))))},this.__handleUpdate=e=>{if(!(e instanceof s))return;const t=e.target;this.closable=!t.in("busy"),this.editable=t.in({idle:{template:{clean:"valid"}}})||t.in({idle:{template:{dirty:"valid"}}})||t.in({idle:{snapshot:{dirty:"valid"}}})}}static get properties(){return e(e({},super.properties),{},{href:{type:String},form:{type:String,noAccessor:!0},group:{type:String},parent:{type:String},related:{type:Array}})}get form(){return this.__form}set form(e){this.__form=e,this.__renderForm="string"==typeof e?new Function("options",`return options.html\`\n <${e}\n id="form"\n ns="\${options.dialog.ns} \${customElements.get('${e}')?.defaultNS ?? ''}"\n href=\${options.dialog.href}\n lang=\${options.dialog.lang}\n group=\${options.dialog.group}\n parent=\${options.dialog.parent}\n disabledcontrols=\${options.dialog.disabledControls.toString()}\n readonlycontrols=\${options.dialog.readonlyControls.toString()}\n hiddencontrols=\${options.dialog.hiddenControls.toString()}\n ?disabled=\${options.dialog.disabled}\n ?readonly=\${options.dialog.readonly}\n ?hidden=\${options.dialog.hidden}\n .templates=\${options.dialog.templates}\n .related=\${options.dialog.related}\n @fetch=\${options.handleFetch}\n @update=\${options.handleUpdate}\n >\n </${e}>\``):e,this.requestUpdate()}render(){return t(i||(i=d` <foxy-internal-confirm-dialog message="undo_message" confirm="undo_confirm" cancel="undo_cancel" header="undo_header" theme="error" lang="${0}" ns="${0}" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> ${0} `),this.lang,this.ns,(e=>!e.detail.cancelled&&super.hide(!0)),super.render((()=>{var e;return t(a||(a=d`${0}`),null===(e=this.__renderForm)||void 0===e?void 0:e.call(this,{handleUpdate:this.__handleUpdate,handleFetch:this.__handleFetch,dialog:this,html:t}))})))}async hide(e=!1){if(!e)return super.hide(e);this.renderRoot.querySelector("#confirm").show()}async save(){this.renderRoot.querySelector("#form").submit()}}customElements.define("foxy-form-dialog",l);export{l as FormDialog};
1
+ import"./shared-27277bbb.js";import"./shared-1d2cc2fb.js";import{_ as e,h as t}from"./shared-4ec62366.js";import{A as r}from"./shared-7cf914d7.js";import{D as o}from"./shared-f0515999.js";import{F as n}from"./shared-bad032de.js";import{U as s}from"./shared-7684cb05.js";import"./shared-41f3f823.js";import"./shared-a82f8b58.js";import"./shared-85b8ae57.js";import"./shared-6974569c.js";import"./shared-d2228670.js";import"./shared-8695b424.js";import"./shared-4e709717.js";let i,d,a=e=>e;class l extends o{constructor(){super(...arguments),this.related=[],this.parent="",this.group="",this.href="",this.__form=null,this.__renderForm=null,this.__handleFetch=e=>{e instanceof n&&(e.stopImmediatePropagation(),e.preventDefault(),e.respondWith(new r(this).fetch(e.request).then((t=>{const r=e.request.url===this.href&&"DELETE"===e.request.method,o=e.request.url===this.parent&&"POST"===e.request.method;return t.ok&&(r||o)&&(this.open=!1),t}))))},this.__handleUpdate=e=>{if(!(e instanceof s))return;const t=e.target;this.closable=!t.in("busy"),this.editable=t.in({idle:{template:{clean:"valid"}}})||t.in({idle:{template:{dirty:"valid"}}})||t.in({idle:{snapshot:{dirty:"valid"}}})}}static get properties(){return e(e({},super.properties),{},{href:{type:String},form:{type:String,noAccessor:!0},group:{type:String},parent:{type:String},related:{type:Array}})}get form(){return this.__form}set form(e){this.__form=e,this.__renderForm="string"==typeof e?new Function("options",`return options.html\`\n <${e}\n id="form"\n ns="\${options.dialog.ns} \${customElements.get('${e}')?.defaultNS ?? ''}"\n href=\${options.dialog.href}\n lang=\${options.dialog.lang}\n group=\${options.dialog.group}\n parent=\${options.dialog.parent}\n disabledcontrols=\${options.dialog.disabledControls.toString()}\n readonlycontrols=\${options.dialog.readonlyControls.toString()}\n hiddencontrols=\${options.dialog.hiddenControls.toString()}\n ?disabled=\${options.dialog.disabled}\n ?readonly=\${options.dialog.readonly}\n ?hidden=\${options.dialog.hidden}\n .templates=\${options.dialog.templates}\n .related=\${options.dialog.related}\n @fetch=\${options.handleFetch}\n @update=\${options.handleUpdate}\n >\n </${e}>\``):e,this.requestUpdate()}render(){return t(i||(i=a` <foxy-internal-confirm-dialog message="undo_message" confirm="undo_confirm" cancel="undo_cancel" header="undo_header" theme="error" lang="${0}" ns="${0}" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> ${0} `),this.lang,this.ns,(e=>!e.detail.cancelled&&super.hide(!0)),super.render((()=>{var e;return t(d||(d=a`${0}`),null===(e=this.__renderForm)||void 0===e?void 0:e.call(this,{handleUpdate:this.__handleUpdate,handleFetch:this.__handleFetch,dialog:this,html:t}))})))}async hide(e=!1){if(!e)return super.hide(e);this.renderRoot.querySelector("#confirm").show()}async save(){this.renderRoot.querySelector("#form").submit()}}customElements.define("foxy-form-dialog",l);export{l as FormDialog};
@@ -1 +1 @@
1
- import"./shared-65dfd512.js";import"./shared-a040d79d.js";import"./shared-5a54a9bc.js";import"./shared-9221e6b2.js";import"./foxy-spinner.js";import"./shared-11708514.js";import{h as e}from"./shared-63eaded9.js";import{C as t}from"./shared-df730f90.js";import{N as r}from"./shared-39e3ae67.js";import{T as s,a}from"./shared-e68b9c83.js";import{c as i}from"./shared-4e709717.js";import"./shared-8b20bc23.js";import"./shared-ff79f3f9.js";import"./shared-46ee137f.js";import"./shared-60126eee.js";import"./shared-5535f38f.js";import"./shared-6d45a07b.js";import"./shared-7f0a9790.js";import"./shared-7684cb05.js";import"./shared-756034e4.js";let n,l,d,o,c,h,m=e=>e;const u=t(s(a(r,"generate-codes-form")));class f extends u{constructor(){super(...arguments),this.templates={}}static get v8n(){return[({number_of_codes:e})=>e&&e>0||"number_of_codes_required",({current_balance:e})=>!e||e>=0||"current_balance_negative",({length:e})=>e&&e>0||"length_required"]}render(){var t,r;const{hiddenSelector:s,lang:a,ns:l}=this,d=this.in("busy"),o=this.in("fail"),c=this.in({idle:"snapshot"}),h=this.in({idle:"template"}),u="transition-opacity duration-500",f="opacity-0 pointer-events-none";return e(n||(n=m` <div aria-busy="${0}" aria-live="polite" class="relative"> <div class="${0}"> ${0} ${0} ${0} ${0} ${0} </div> <div class="${0}"> <div class="mx-auto flex mb-m w-l h-l rounded-t-l rounded-b-l bg-success"> <iron-icon icon="icons:done-all" class="m-auto text-success-contrast"></iron-icon> </div> <foxy-i18n class="block" lang="${0}" key="generate_codes_done" ns="${0}"></foxy-i18n> </div> <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),d,i({"grid grid-cols-2 gap-m":!0,[u]:!0,[f]:c}),s.matches("length",!0)?"":this.__renderLength(),s.matches("number-of-codes",!0)?"":this.__renderNumberOfCodes(),s.matches("current-balance",!0)?"":this.__renderCurrentBalance(),s.matches("prefix",!0)?"":this.__renderPrefix(),s.matches("generate",!0)?"":this.__renderGenerate(),i({"absolute inset-0 flex flex-col items-center justify-center":!0,"text-center text-m text-secondary leading-m":!0,[u]:!0,[f]:!c}),a,l,i({"absolute inset-0 flex":!0,[u]:!0,[f]:!d&&!o}),o?"error":h?"empty":"busy",a,l,null!==(r=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==r?r:"")}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")):""}__getValidator(e){return()=>!this.errors.some((t=>t.startsWith(e)))}__renderLength(){const t=this.in({idle:"template"});return e(l||(l=m` <div> ${0} <vaadin-integer-field error-message="${0}" data-testid="length" label="${0}" class="w-full" min="1" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls .checkValidity="${0}" .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-integer-field> ${0} </div> `),this.renderTemplateOrSlot("length:before"),this.__getErrorMessage("length"),this.t("length"),!t||this.disabledSelector.matches("length",!0),this.readonlySelector.matches("length",!0),this.__getValidator("length"),t?this.form.length:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({length:parseInt(t.value)})}),this.renderTemplateOrSlot("length:after"))}__renderNumberOfCodes(){const t=this.in({idle:"template"});return e(d||(d=m` <div> ${0} <vaadin-integer-field error-message="${0}" data-testid="number-of-codes" label="${0}" class="w-full" min="1" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls .checkValidity="${0}" .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-integer-field> ${0} </div> `),this.renderTemplateOrSlot("number-of-codes:before"),this.__getErrorMessage("number_of_codes"),this.t("number_of_codes"),!t||this.disabledSelector.matches("number-of-codes",!0),this.readonlySelector.matches("number-of-codes",!0),this.__getValidator("number_of_codes"),t?this.form.number_of_codes:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({number_of_codes:parseInt(t.value)})}),this.renderTemplateOrSlot("number-of-codes:after"))}__renderCurrentBalance(){var t;const r=this.in({idle:"template"});return e(o||(o=m` <div class="col-span-2"> ${0} <vaadin-integer-field error-message="${0}" data-testid="current-balance" label="${0}" class="w-full" min="0" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls .checkValidity="${0}" .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-integer-field> ${0} </div> `),this.renderTemplateOrSlot("current-balance:before"),this.__getErrorMessage("current_balance"),this.t("balance"),!r||this.disabledSelector.matches("current-balance",!0),this.readonlySelector.matches("current-balance",!0),this.__getValidator("current_balance"),r?null!==(t=this.form.current_balance)&&void 0!==t?t:0:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({current_balance:parseInt(t.value)})}),this.renderTemplateOrSlot("current-balance:after"))}__renderPrefix(){const t=this.in({idle:"template"});return e(c||(c=m` <div class="col-span-2"> ${0} <vaadin-text-field helper-text="${0}" data-testid="prefix" label="${0}" class="w-full" min="1" ?disabled="${0}" ?readonly="${0}" clear-button-visible .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot("prefix:before"),this.t("leave_empty_for_random_codes"),this.t("prefix"),!t||this.disabledSelector.matches("prefix",!0),this.readonlySelector.matches("prefix",!0),t?this.form.prefix:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({prefix:t.value})}),this.renderTemplateOrSlot("prefix:after"))}__renderGenerate(){const t=this.in({idle:{template:{dirty:"valid"}}});return e(h||(h=m` <div class="col-span-2 mt-m"> ${0} <vaadin-button data-testid="generate" class="w-full" theme="success primary" ?disabled="${0}" @click="${0}"> <foxy-i18n lang="${0}" key="generate" ns="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("generate:before"),!t||this.disabledSelector.matches("generate",!0),(()=>this.submit()),this.lang,this.ns,this.renderTemplateOrSlot("generate:after"))}}customElements.define("foxy-generate-codes-form",f);export{f as GenerateCodesForm};
1
+ import"./shared-b161b269.js";import"./shared-41272a67.js";import"./shared-a82f8b58.js";import"./shared-701d5a7c.js";import"./foxy-spinner.js";import"./shared-27277bbb.js";import{h as e}from"./shared-4ec62366.js";import{C as t}from"./shared-d2228670.js";import{N as r}from"./shared-8fc0b3ee.js";import{T as s,a}from"./shared-41f3f823.js";import{c as i}from"./shared-4e709717.js";import"./shared-85b8ae57.js";import"./shared-6974569c.js";import"./shared-01cbd43c.js";import"./shared-2f8bf5d9.js";import"./shared-bad032de.js";import"./shared-8695b424.js";import"./shared-7cf914d7.js";import"./shared-7684cb05.js";import"./shared-916ef4d3.js";let n,l,d,o,c,h,m=e=>e;const u=t(s(a(r,"generate-codes-form")));class f extends u{constructor(){super(...arguments),this.templates={}}static get v8n(){return[({number_of_codes:e})=>e&&e>0||"number_of_codes_required",({current_balance:e})=>!e||e>=0||"current_balance_negative",({length:e})=>e&&e>0||"length_required"]}render(){var t,r;const{hiddenSelector:s,lang:a,ns:l}=this,d=this.in("busy"),o=this.in("fail"),c=this.in({idle:"snapshot"}),h=this.in({idle:"template"}),u="transition-opacity duration-500",f="opacity-0 pointer-events-none";return e(n||(n=m` <div aria-busy="${0}" aria-live="polite" class="relative"> <div class="${0}"> ${0} ${0} ${0} ${0} ${0} </div> <div class="${0}"> <div class="mx-auto flex mb-m w-l h-l rounded-t-l rounded-b-l bg-success"> <iron-icon icon="icons:done-all" class="m-auto text-success-contrast"></iron-icon> </div> <foxy-i18n class="block" lang="${0}" key="generate_codes_done" ns="${0}"></foxy-i18n> </div> <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),d,i({"grid grid-cols-2 gap-m":!0,[u]:!0,[f]:c}),s.matches("length",!0)?"":this.__renderLength(),s.matches("number-of-codes",!0)?"":this.__renderNumberOfCodes(),s.matches("current-balance",!0)?"":this.__renderCurrentBalance(),s.matches("prefix",!0)?"":this.__renderPrefix(),s.matches("generate",!0)?"":this.__renderGenerate(),i({"absolute inset-0 flex flex-col items-center justify-center":!0,"text-center text-m text-secondary leading-m":!0,[u]:!0,[f]:!c}),a,l,i({"absolute inset-0 flex":!0,[u]:!0,[f]:!d&&!o}),o?"error":h?"empty":"busy",a,l,null!==(r=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==r?r:"")}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")):""}__getValidator(e){return()=>!this.errors.some((t=>t.startsWith(e)))}__renderLength(){const t=this.in({idle:"template"});return e(l||(l=m` <div> ${0} <vaadin-integer-field error-message="${0}" data-testid="length" label="${0}" class="w-full" min="1" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls .checkValidity="${0}" .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-integer-field> ${0} </div> `),this.renderTemplateOrSlot("length:before"),this.__getErrorMessage("length"),this.t("length"),!t||this.disabledSelector.matches("length",!0),this.readonlySelector.matches("length",!0),this.__getValidator("length"),t?this.form.length:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({length:parseInt(t.value)})}),this.renderTemplateOrSlot("length:after"))}__renderNumberOfCodes(){const t=this.in({idle:"template"});return e(d||(d=m` <div> ${0} <vaadin-integer-field error-message="${0}" data-testid="number-of-codes" label="${0}" class="w-full" min="1" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls .checkValidity="${0}" .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-integer-field> ${0} </div> `),this.renderTemplateOrSlot("number-of-codes:before"),this.__getErrorMessage("number_of_codes"),this.t("number_of_codes"),!t||this.disabledSelector.matches("number-of-codes",!0),this.readonlySelector.matches("number-of-codes",!0),this.__getValidator("number_of_codes"),t?this.form.number_of_codes:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({number_of_codes:parseInt(t.value)})}),this.renderTemplateOrSlot("number-of-codes:after"))}__renderCurrentBalance(){var t;const r=this.in({idle:"template"});return e(o||(o=m` <div class="col-span-2"> ${0} <vaadin-integer-field error-message="${0}" data-testid="current-balance" label="${0}" class="w-full" min="0" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls .checkValidity="${0}" .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-integer-field> ${0} </div> `),this.renderTemplateOrSlot("current-balance:before"),this.__getErrorMessage("current_balance"),this.t("balance"),!r||this.disabledSelector.matches("current-balance",!0),this.readonlySelector.matches("current-balance",!0),this.__getValidator("current_balance"),r?null!==(t=this.form.current_balance)&&void 0!==t?t:0:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({current_balance:parseInt(t.value)})}),this.renderTemplateOrSlot("current-balance:after"))}__renderPrefix(){const t=this.in({idle:"template"});return e(c||(c=m` <div class="col-span-2"> ${0} <vaadin-text-field helper-text="${0}" data-testid="prefix" label="${0}" class="w-full" min="1" ?disabled="${0}" ?readonly="${0}" clear-button-visible .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot("prefix:before"),this.t("leave_empty_for_random_codes"),this.t("prefix"),!t||this.disabledSelector.matches("prefix",!0),this.readonlySelector.matches("prefix",!0),t?this.form.prefix:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({prefix:t.value})}),this.renderTemplateOrSlot("prefix:after"))}__renderGenerate(){const t=this.in({idle:{template:{dirty:"valid"}}});return e(h||(h=m` <div class="col-span-2 mt-m"> ${0} <vaadin-button data-testid="generate" class="w-full" theme="success primary" ?disabled="${0}" @click="${0}"> <foxy-i18n lang="${0}" key="generate" ns="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("generate:before"),!t||this.disabledSelector.matches("generate",!0),(()=>this.submit()),this.lang,this.ns,this.renderTemplateOrSlot("generate:after"))}}customElements.define("foxy-generate-codes-form",f);export{f as GenerateCodesForm};
@@ -1 +1 @@
1
- import"./shared-9221e6b2.js";import"./foxy-spinner.js";import"./shared-11708514.js";import{h as t}from"./shared-63eaded9.js";import{C as e}from"./shared-df730f90.js";import{N as s}from"./shared-39e3ae67.js";import{T as i,a as r}from"./shared-e68b9c83.js";import{c as a}from"./shared-4e709717.js";import"./shared-46ee137f.js";import"./shared-ff79f3f9.js";import"./shared-60126eee.js";import"./shared-5535f38f.js";import"./shared-6d45a07b.js";import"./shared-7f0a9790.js";import"./shared-7684cb05.js";import"./shared-756034e4.js";let d,o,n,l,p,h=t=>t;const c=i(e(r(s,"gift-card-card")));class m extends c{constructor(){super(...arguments),this.templates={}}render(){var e,s;const i=this.hiddenSelector;return t(d||(d=h` <div aria-busy="${0}" aria-live="polite" class="relative leading-m font-lumo text-m"> <div class="${0}"> ${0} ${0} </div> <div class="${0}"> <foxy-spinner data-testid="spinner" state="${0}" class="m-auto" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),this.in("busy"),a({"transition-opacity":!0,"opacity-0":!this.data}),i.matches("title",!0)?"":this.__renderTitle(),i.matches("status",!0)?"":this.__renderStatus(),a({"pointer-events-none absolute inset-0 flex transition-opacity":!0,"opacity-0":!!this.data}),this.in("fail")?"error":this.in({idle:"template"})?"empty":"busy",this.lang,this.ns,null!==(s=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==s?s:"")}__renderTitle(){var e,s,i,r;const a=null!==(s=null===(e=this.data)||void 0===e?void 0:e.name)&&void 0!==s?s:t(o||(o=h`&ZeroWidthSpace;`)),d=null!==(r=null===(i=this.data)||void 0===i?void 0:i.currency_code)&&void 0!==r?r:t(n||(n=h`&ZeroWidthSpace;`));return t(l||(l=h` <div data-testid="title"> ${0} <div class="flex items-center justify-between"> <div class="font-semibold truncate">${0}</div> <div class="text-tertiary uppercase text-s flex-shrink-0">${0}</div> </div> ${0} </div> `),this.renderTemplateOrSlot("title:before"),a,d,this.renderTemplateOrSlot("title:after"))}__renderStatus(){var e;const s=null===(e=this.data)||void 0===e?void 0:e.expires_after;return t(p||(p=h` <div data-testid="status"> ${0} <foxy-i18n options="${0}" class="block truncate text-s text-tertiary" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> ${0} </div> `),this.renderTemplateOrSlot("status:before"),JSON.stringify({value:s}),this.lang,s?"expires_after_value":"never_expires",this.ns,this.renderTemplateOrSlot("status:after"))}}customElements.define("foxy-gift-card-card",m);export{m as GiftCardCard};
1
+ import"./shared-701d5a7c.js";import"./foxy-spinner.js";import"./shared-27277bbb.js";import{h as t}from"./shared-4ec62366.js";import{C as e}from"./shared-d2228670.js";import{N as s}from"./shared-8fc0b3ee.js";import{T as i,a as r}from"./shared-41f3f823.js";import{c as a}from"./shared-4e709717.js";import"./shared-01cbd43c.js";import"./shared-6974569c.js";import"./shared-2f8bf5d9.js";import"./shared-bad032de.js";import"./shared-8695b424.js";import"./shared-7cf914d7.js";import"./shared-7684cb05.js";import"./shared-916ef4d3.js";let d,o,n,l,c,p=t=>t;const h=i(e(r(s,"gift-card-card")));class m extends h{constructor(){super(...arguments),this.templates={}}render(){var e,s;const i=this.hiddenSelector;return t(d||(d=p` <div aria-busy="${0}" aria-live="polite" class="relative leading-m font-lumo text-m"> <div class="${0}"> ${0} ${0} </div> <div class="${0}"> <foxy-spinner data-testid="spinner" state="${0}" class="m-auto" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),this.in("busy"),a({"transition-opacity":!0,"opacity-0":!this.data}),i.matches("title",!0)?"":this.__renderTitle(),i.matches("status",!0)?"":this.__renderStatus(),a({"pointer-events-none absolute inset-0 flex transition-opacity":!0,"opacity-0":!!this.data}),this.in("fail")?"error":this.in({idle:"template"})?"empty":"busy",this.lang,this.ns,null!==(s=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==s?s:"")}__renderTitle(){var e,s,i,r;const a=null!==(s=null===(e=this.data)||void 0===e?void 0:e.name)&&void 0!==s?s:t(o||(o=p`&ZeroWidthSpace;`)),d=null!==(r=null===(i=this.data)||void 0===i?void 0:i.currency_code)&&void 0!==r?r:t(n||(n=p`&ZeroWidthSpace;`));return t(l||(l=p` <div data-testid="title"> ${0} <div class="flex items-center justify-between"> <div class="font-semibold truncate">${0}</div> <div class="text-tertiary uppercase text-s flex-shrink-0">${0}</div> </div> ${0} </div> `),this.renderTemplateOrSlot("title:before"),a,d,this.renderTemplateOrSlot("title:after"))}__renderStatus(){var e;const s=null===(e=this.data)||void 0===e?void 0:e.expires_after;return t(c||(c=p` <div data-testid="status"> ${0} <foxy-i18n options="${0}" class="block truncate text-s text-tertiary" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> ${0} </div> `),this.renderTemplateOrSlot("status:before"),JSON.stringify({value:s}),this.lang,s?"expires_after_value":"never_expires",this.ns,this.renderTemplateOrSlot("status:after"))}}customElements.define("foxy-gift-card-card",m);export{m as GiftCardCard};
@@ -1 +1 @@
1
- import"./shared-c5de42f7.js";import"./shared-9221e6b2.js";import"./foxy-spinner.js";import"./shared-11708514.js";import"./shared-65dfd512.js";import"./shared-a040d79d.js";import"./shared-1934524e.js";import"./shared-5a54a9bc.js";import{h as e}from"./shared-63eaded9.js";import{C as t}from"./shared-df730f90.js";import{N as r}from"./shared-39e3ae67.js";import"./shared-46ee137f.js";import"./shared-8b20bc23.js";import"./shared-073cb8e9.js";import{T as a,S as i,a as s}from"./shared-e68b9c83.js";import{c as d}from"./shared-4e709717.js";import"./shared-223508ae.js";import"./shared-66633ff7.js";import"./shared-e2c878c7.js";import"./shared-fab8c705.js";import{P as n}from"./shared-4dc6d228.js";import"./shared-60126eee.js";import"./shared-ff79f3f9.js";import"./shared-5535f38f.js";import"./shared-6d45a07b.js";import"./shared-7f0a9790.js";import"./shared-7684cb05.js";import"./shared-756034e4.js";import"./shared-b0f0e8b5.js";let l,o,c,h,m,u,p,f=e=>e;const _=t(a(i(s(r,"gift-card-code-form"))));class b extends _{constructor(){super(...arguments),this.templates={}}static get scopedElements(){return{"vaadin-number-field":customElements.get("vaadin-number-field"),"vaadin-date-picker":customElements.get("vaadin-date-picker"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-button":customElements.get("vaadin-button"),"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"x-property-table":n}}static get v8n(){return[({code:e})=>!!e||"code_required",({code:e})=>!e||e.length<=50||"code_too_long",({current_balance:e})=>!!e||"current_balance_required",({current_balance:e})=>!e||!isNaN(e)||"current_balance_required"]}render(){var t,r;return e(l||(l=f` <div class="relative space-y-m"> ${0} ${0} ${0} ${0} ${0} ${0} <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),this.__isCodeHidden?null:this.__renderCode(),this.__isCurrentBalanceHidden?null:this.__renderCurrentBalance(),this.__isEndDateHidden?null:this.__renderEndDate(),this.__isTimestampsHidden?null:this.__renderTimestamps(),this.__isCreateHidden?null:this.__renderCreate(),this.__isDeleteHidden?null:this.__renderDelete(),d({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!this.in("busy")&&!this.in("fail")}),this.in("fail")?"error":this.in("busy")?"busy":"empty",this.lang,this.ns,null!==(r=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==r?r:"")}get __isCodeHidden(){return this.hiddenSelector.matches("code",!0)}get __isCurrentBalanceHidden(){return this.hiddenSelector.matches("current-balance",!0)}get __isEndDateHidden(){return this.hiddenSelector.matches("end-date",!0)}get __isTimestampsHidden(){return!!this.hiddenSelector.matches("timestamps",!0)||!this.data}get __isCreateHidden(){return!!this.hiddenSelector.matches("create",!0)||!!this.data}get __isDeleteHidden(){return!!this.hiddenSelector.matches("delete",!0)||!this.data}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")).toString():""}__getValidator(e){return()=>!this.errors.some((t=>t.startsWith(e)))}__renderCode(){return e(o||(o=f` <div> ${0} <vaadin-text-field data-testid="code" class="w-full" label="${0}" .checkValidity="${0}" .errorMessage="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" required @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot("code:before"),this.t("code"),this.__getValidator("code"),this.__getErrorMessage("code"),this.form.code,this.in("busy")||this.disabledSelector.matches("code",!0),this.readonlySelector.matches("code",!0),(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget.value;this.edit({code:t})}),this.renderTemplateOrSlot("code:after"))}__renderCurrentBalance(){return e(c||(c=f` <div> ${0} <vaadin-number-field data-testid="current-balance" class="w-full" label="${0}" min="0" .checkValidity="${0}" .errorMessage="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls required @keydown="${0}" @change="${0}"> </vaadin-number-field> ${0} </div> `),this.renderTemplateOrSlot("current-balance:before"),this.t("current_balance"),this.__getValidator("current_balance"),this.__getErrorMessage("current_balance"),this.form.current_balance,this.in("busy")||this.disabledSelector.matches("current-balance",!0),this.readonlySelector.matches("current-balance",!0),(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget.value;this.edit({current_balance:parseFloat(t)})}),this.renderTemplateOrSlot("current-balance:after"))}__renderEndDate(){return e(h||(h=f` <div> ${0} <vaadin-date-picker data-testid="end-date" class="w-full" label="${0}" min="0" .checkValidity="${0}" .errorMessage="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" @keydown="${0}" @change="${0}"> </vaadin-date-picker> ${0} </div> `),this.renderTemplateOrSlot("end-date:before"),this.t("end_date"),this.__getValidator("end_date"),this.__getErrorMessage("end_date"),this.form.end_date,this.in("busy")||this.disabledSelector.matches("end-date",!0),this.readonlySelector.matches("end-date",!0),(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget.value;this.edit({end_date:t})}),this.renderTemplateOrSlot("end-date:after"))}__renderTimestamps(){return e(m||(m=f` <div> ${0} <x-property-table data-testid="timestamps" .items="${0}"> </x-property-table> ${0} </div> `),this.renderTemplateOrSlot("timestamps:before"),["date_modified","date_created"].map((e=>{var t;return{name:this.t(e),value:(null===(t=this.data)||void 0===t?void 0:t[e])?this.t("date",{value:new Date(this.data[e])}):""}})),this.renderTemplateOrSlot("timestamps:after"))}__renderCreate(){const t=this.in({idle:{template:{clean:"invalid"}}}),r=this.in({idle:{template:{dirty:"invalid"}}}),a=this.in({idle:{snapshot:{clean:"invalid"}}}),i=this.in({idle:{snapshot:{dirty:"invalid"}}}),s=t||r||(a||i),d=this.in("busy");return e(u||(u=f` <div> ${0} <vaadin-button data-testid="create" class="w-full" theme="primary success" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="create" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("create:before"),d||s||this.disabledSelector.matches("create",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("create:after"))}__renderDelete(){return e(p||(p=f` <div> <foxy-internal-confirm-dialog data-testid="confirm" message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" lang="${0}" ns="${0}" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> ${0} <vaadin-button data-testid="delete" theme="primary error" class="w-full" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="delete" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.lang,this.ns,(e=>!e.detail.cancelled&&this.delete()),this.renderTemplateOrSlot("delete:before"),this.in("busy")||this.disabledSelector.matches("delete",!0),(e=>{this.renderRoot.querySelector("#confirm").show(e.currentTarget)}),this.ns,this.lang,this.renderTemplateOrSlot("delete:after"))}}customElements.define("foxy-gift-card-code-form",b);export{b as GiftCardCodeForm};
1
+ import"./shared-1d2cc2fb.js";import"./shared-701d5a7c.js";import"./foxy-spinner.js";import"./shared-27277bbb.js";import"./shared-b161b269.js";import"./shared-41272a67.js";import"./shared-3c85dcd8.js";import"./shared-a82f8b58.js";import{h as e}from"./shared-4ec62366.js";import{C as t}from"./shared-d2228670.js";import{N as r}from"./shared-8fc0b3ee.js";import"./shared-01cbd43c.js";import"./shared-85b8ae57.js";import"./shared-e69e1ca3.js";import{T as a,S as i,a as s}from"./shared-41f3f823.js";import{c as d}from"./shared-4e709717.js";import"./shared-4dc82211.js";import"./shared-f0515999.js";import"./shared-cd262e68.js";import"./shared-269fb742.js";import{P as n}from"./shared-7d337241.js";import"./shared-2f8bf5d9.js";import"./shared-6974569c.js";import"./shared-bad032de.js";import"./shared-8695b424.js";import"./shared-7cf914d7.js";import"./shared-7684cb05.js";import"./shared-916ef4d3.js";import"./shared-d3cf78c1.js";let l,o,c,h,m,u,p,_=e=>e;const f=t(a(i(s(r,"gift-card-code-form"))));class b extends f{constructor(){super(...arguments),this.templates={}}static get scopedElements(){return{"vaadin-number-field":customElements.get("vaadin-number-field"),"vaadin-date-picker":customElements.get("vaadin-date-picker"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-button":customElements.get("vaadin-button"),"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"x-property-table":n}}static get v8n(){return[({code:e})=>!!e||"code_required",({code:e})=>!e||e.length<=50||"code_too_long",({current_balance:e})=>!!e||"current_balance_required",({current_balance:e})=>!e||!isNaN(e)||"current_balance_required"]}render(){var t,r;return e(l||(l=_` <div class="relative space-y-m"> ${0} ${0} ${0} ${0} ${0} ${0} <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),this.__isCodeHidden?null:this.__renderCode(),this.__isCurrentBalanceHidden?null:this.__renderCurrentBalance(),this.__isEndDateHidden?null:this.__renderEndDate(),this.__isTimestampsHidden?null:this.__renderTimestamps(),this.__isCreateHidden?null:this.__renderCreate(),this.__isDeleteHidden?null:this.__renderDelete(),d({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":this.in("idle")}),this.in("fail")?"error":this.in("busy")?"busy":"empty",this.lang,this.ns,null!==(r=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==r?r:"")}get __isCodeHidden(){return this.hiddenSelector.matches("code",!0)}get __isCurrentBalanceHidden(){return this.hiddenSelector.matches("current-balance",!0)}get __isEndDateHidden(){return this.hiddenSelector.matches("end-date",!0)}get __isTimestampsHidden(){return!!this.hiddenSelector.matches("timestamps",!0)||!this.data}get __isCreateHidden(){return!!this.hiddenSelector.matches("create",!0)||!!this.data}get __isDeleteHidden(){return!!this.hiddenSelector.matches("delete",!0)||!this.data}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")).toString():""}__getValidator(e){return()=>!this.errors.some((t=>t.startsWith(e)))}__renderCode(){return e(o||(o=_` <div> ${0} <vaadin-text-field data-testid="code" class="w-full" label="${0}" .checkValidity="${0}" .errorMessage="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" required @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot("code:before"),this.t("code"),this.__getValidator("code"),this.__getErrorMessage("code"),this.form.code,!this.in("idle")||this.disabledSelector.matches("code",!0),this.readonlySelector.matches("code",!0),(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget.value;this.edit({code:t})}),this.renderTemplateOrSlot("code:after"))}__renderCurrentBalance(){return e(c||(c=_` <div> ${0} <vaadin-number-field data-testid="current-balance" class="w-full" label="${0}" min="0" .checkValidity="${0}" .errorMessage="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls required @keydown="${0}" @change="${0}"> </vaadin-number-field> ${0} </div> `),this.renderTemplateOrSlot("current-balance:before"),this.t("current_balance"),this.__getValidator("current_balance"),this.__getErrorMessage("current_balance"),this.form.current_balance,!this.in("idle")||this.disabledSelector.matches("current-balance",!0),this.readonlySelector.matches("current-balance",!0),(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget.value;this.edit({current_balance:parseFloat(t)})}),this.renderTemplateOrSlot("current-balance:after"))}__renderEndDate(){return e(h||(h=_` <div> ${0} <vaadin-date-picker data-testid="end-date" class="w-full" label="${0}" min="0" .checkValidity="${0}" .errorMessage="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" @keydown="${0}" @change="${0}"> </vaadin-date-picker> ${0} </div> `),this.renderTemplateOrSlot("end-date:before"),this.t("end_date"),this.__getValidator("end_date"),this.__getErrorMessage("end_date"),this.form.end_date,!this.in("idle")||this.disabledSelector.matches("end-date",!0),this.readonlySelector.matches("end-date",!0),(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget.value;this.edit({end_date:t})}),this.renderTemplateOrSlot("end-date:after"))}__renderTimestamps(){return e(m||(m=_` <div> ${0} <x-property-table data-testid="timestamps" .items="${0}"> </x-property-table> ${0} </div> `),this.renderTemplateOrSlot("timestamps:before"),["date_modified","date_created"].map((e=>{var t;return{name:this.t(e),value:(null===(t=this.data)||void 0===t?void 0:t[e])?this.t("date",{value:new Date(this.data[e])}):""}})),this.renderTemplateOrSlot("timestamps:after"))}__renderCreate(){const t=this.in({idle:{template:{clean:"invalid"}}}),r=this.in({idle:{template:{dirty:"invalid"}}}),a=this.in({idle:{snapshot:{clean:"invalid"}}}),i=this.in({idle:{snapshot:{dirty:"invalid"}}}),s=t||r||(a||i),d=this.in("idle");return e(u||(u=_` <div> ${0} <vaadin-button data-testid="create" class="w-full" theme="primary success" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="create" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("create:before"),!d||s||this.disabledSelector.matches("create",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("create:after"))}__renderDelete(){return e(p||(p=_` <div> <foxy-internal-confirm-dialog data-testid="confirm" message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" lang="${0}" ns="${0}" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> ${0} <vaadin-button data-testid="delete" theme="primary error" class="w-full" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="delete" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.lang,this.ns,(e=>!e.detail.cancelled&&this.delete()),this.renderTemplateOrSlot("delete:before"),this.in("busy")||this.disabledSelector.matches("delete",!0),(e=>{this.renderRoot.querySelector("#confirm").show(e.currentTarget)}),this.ns,this.lang,this.renderTemplateOrSlot("delete:after"))}}customElements.define("foxy-gift-card-code-form",b);export{b as GiftCardCodeForm};
@@ -1 +1 @@
1
- import"./shared-65dfd512.js";import"./shared-a040d79d.js";import"./shared-5a54a9bc.js";import"./shared-60126eee.js";import"./shared-46ee137f.js";import"./shared-9221e6b2.js";import"./foxy-spinner.js";import"./shared-11708514.js";import{h as e}from"./shared-63eaded9.js";import{C as t}from"./shared-df730f90.js";import{E as s}from"./shared-09069d7c.js";import{G as r}from"./shared-02945b27.js";import{N as i}from"./shared-39e3ae67.js";import{T as a,S as n,a as o}from"./shared-e68b9c83.js";import{c as d}from"./shared-4e709717.js";import"./shared-8b20bc23.js";import"./shared-ff79f3f9.js";import"./shared-5535f38f.js";import"./shared-6d45a07b.js";import"./shared-07134f93.js";import"./shared-b710881a.js";import"./shared-7f0a9790.js";import"./shared-7684cb05.js";import"./shared-756034e4.js";let l,c,m,h,f,u=e=>e;const p=t(a(n(o(i,"gift-card-codes-form"))));class g extends p{constructor(){super(...arguments),this.templates={}}static get scopedElements(){return{"vaadin-integer-field":customElements.get("vaadin-integer-field"),"vaadin-button":customElements.get("vaadin-button"),"iron-icon":customElements.get("iron-icon"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"x-editable-list":s,"x-group":r}}static get v8n(){return[({gift_card_codes:e})=>e&&e.length>0||"gift_card_codes_required",({current_balance:e})=>!e||e>=0||"current_balance_negative"]}render(){var t,s;const{hiddenSelector:r,lang:i,ns:a}=this,n=this.in("busy"),o=this.in("fail"),c=this.in({idle:"snapshot"}),m=this.in({idle:"template"}),h="transition-opacity duration-500",f="opacity-0 pointer-events-none";return e(l||(l=u` <div class="relative"> <div class="${0}"> ${0} ${0} ${0} </div> <div class="${0}"> <div class="mx-auto flex mb-m w-l h-l rounded-t-l rounded-b-l bg-success"> <iron-icon icon="icons:done-all" class="m-auto text-success-contrast"></iron-icon> </div> <foxy-i18n class="block" lang="${0}" key="import_codes_done" ns="${0}"></foxy-i18n> </div> <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),d({"relative space-y-m":!0,[h]:!0,[f]:c}),r.matches("codes",!0)?"":this.__renderCodes(),r.matches("current-balance",!0)?"":this.__renderCurrentBalance(),r.matches("import",!0)?"":this.__renderImport(),d({"absolute inset-0 flex flex-col items-center justify-center":!0,"text-center text-m text-secondary leading-m":!0,[h]:!0,[f]:!c}),i,a,d({"absolute inset-0 flex":!0,[h]:!0,[f]:!n&&!o}),o?"error":m?"empty":"busy",i,a,null!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")):""}__getValidator(e){return()=>!this.errors.some((t=>t.startsWith(e)))}__renderCodes(){var t;const s=null!==(t=this.form.gift_card_codes)&&void 0!==t?t:[],r=s.length>16?s.slice(-16):s,i=s.length>16?s.slice(0,-16):[],a=r.map((t=>{let s;try{const e=new URL(this.parent);e.searchParams.set("code",t),s=e.toString()}catch(e){s=this.parent}return{value:t,label:e(c||(c=u` <foxy-internal-gift-card-codes-form-list-item group="${0}" href="${0}" lang="${0}" ns="${0}"> </foxy-internal-gift-card-codes-form-list-item> `),this.group,s,this.lang,this.ns)}}));return e(m||(m=u` <div data-testid="codes"> ${0} <x-group class="mb-xs" frame> <foxy-i18n slot="header" lang="${0}" key="code_plural" ns="${0}"></foxy-i18n> <x-editable-list data-testid="codes:list" lang="${0}" ns="${0}" ?disabled="${0}" ?readonly="${0}" .items="${0}" @change="${0}" @paste="${0}"> <div class="ml-m py-s border-b border-contrast-10 font-lumo" ?hidden="${0}"> <foxy-i18n options="${0}" class="block text-body text-m mb-xs" lang="${0}" key="hidden_codes_header" ns="${0}"> </foxy-i18n> <foxy-i18n class="block text-xs text-tertiary" lang="${0}" key="hidden_codes_explainer" ns="${0}"> </foxy-i18n> </div> </x-editable-list> </x-group> <foxy-i18n class="block text-xs text-tertiary leading-s" lang="${0}" key="code_import_hint" ns="${0}"> </foxy-i18n> ${0} </div> `),this.renderTemplateOrSlot("codes:before"),this.lang,this.ns,this.lang,this.ns,!this.in("idle")||this.disabledSelector.matches("codes",!0),this.readonlySelector.matches("codes",!0),a,(e=>{const t=e.currentTarget,s=new Set([...i,...t.items.map((e=>e.value))]);this.edit({gift_card_codes:[...s]})}),(e=>{var t,r;e.preventDefault();const i=(null!==(r=null===(t=e.clipboardData)||void 0===t?void 0:t.getData("text"))&&void 0!==r?r:"").split(/\s/).map((e=>e.trim())).filter((e=>e.length>0));this.edit({gift_card_codes:Array.from(new Set([...s,...i]))})}),0===i.length,JSON.stringify({count:i.length}),this.lang,this.ns,this.lang,this.ns,this.lang,this.ns,this.renderTemplateOrSlot("codes:after"))}__renderCurrentBalance(){var t;const s=this.in({idle:"template"});return e(h||(h=u` <div> ${0} <vaadin-integer-field error-message="${0}" data-testid="current-balance" label="${0}" class="w-full" min="0" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls .checkValidity="${0}" .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-integer-field> ${0} </div> `),this.renderTemplateOrSlot("current-balance:before"),this.__getErrorMessage("current_balance"),this.t("balance"),!s||this.disabledSelector.matches("current-balance",!0),this.readonlySelector.matches("current-balance",!0),this.__getValidator("current_balance"),s?null!==(t=this.form.current_balance)&&void 0!==t?t:0:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({current_balance:parseInt(t.value)})}),this.renderTemplateOrSlot("current-balance:after"))}__renderImport(){const t=this.in({idle:{template:{dirty:"valid"}}}),s=this.in({idle:{snapshot:{dirty:"valid"}}}),r=t||s;return e(f||(f=u` <div> ${0} <vaadin-button data-testid="import" class="w-full mb-xs" theme="primary success" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="import" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("import:before"),!r||!this.in("idle")||this.disabledSelector.matches("import",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("import:after"))}}let b,x,y=e=>e;const v=o(a(i));customElements.define("foxy-gift-card-codes-form",g),customElements.define("foxy-internal-gift-card-codes-form-list-item",class extends v{render(){var t,s;let r;try{r=null!==(t=new URL(this.href).searchParams.get("code"))&&void 0!==t?t:""}catch(t){return e(b||(b=y``))}let i,a="text-tertiary bg-contrast-5",n="text-body";return this.in("fail")?i="loading_error":this.in("busy")?i="loading_busy":0===(null===(s=this.data)||void 0===s?void 0:s.returned_items)?(a="text-success bg-success-10",i="unique"):(a="text-error bg-error-10",i="duplicate",n="text-error"),e(x||(x=y` <div class="flex justify-between items-center font-lumo leading-m"> <div class="text-m ${0}">${0}</div> <foxy-i18n class="text-xs font-medium px-xs rounded ${0}" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> </div> `),n,r,a,this.lang,i,this.ns)}});export{g as GiftCardCodesForm};
1
+ import"./shared-b161b269.js";import"./shared-41272a67.js";import"./shared-a82f8b58.js";import"./shared-2f8bf5d9.js";import"./shared-01cbd43c.js";import"./shared-701d5a7c.js";import"./foxy-spinner.js";import"./shared-27277bbb.js";import{h as e}from"./shared-4ec62366.js";import{C as t}from"./shared-d2228670.js";import{E as s}from"./shared-57a8ee05.js";import{G as r}from"./shared-1fa5f9a9.js";import{N as i}from"./shared-8fc0b3ee.js";import{T as a,S as n,a as o}from"./shared-41f3f823.js";import{c as d}from"./shared-4e709717.js";import"./shared-85b8ae57.js";import"./shared-6974569c.js";import"./shared-bad032de.js";import"./shared-8695b424.js";import"./shared-2558daa0.js";import"./shared-0389f098.js";import"./shared-7cf914d7.js";import"./shared-7684cb05.js";import"./shared-916ef4d3.js";let l,c,m,h,u,f=e=>e;const p=t(a(n(o(i,"gift-card-codes-form"))));class g extends p{constructor(){super(...arguments),this.templates={}}static get scopedElements(){return{"vaadin-integer-field":customElements.get("vaadin-integer-field"),"vaadin-button":customElements.get("vaadin-button"),"iron-icon":customElements.get("iron-icon"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"x-editable-list":s,"x-group":r}}static get v8n(){return[({gift_card_codes:e})=>e&&e.length>0||"gift_card_codes_required",({current_balance:e})=>!e||e>=0||"current_balance_negative"]}render(){var t,s;const{hiddenSelector:r,lang:i,ns:a}=this,n=this.in("busy"),o=this.in("fail"),c=this.in({idle:"snapshot"}),m=this.in({idle:"template"}),h="transition-opacity duration-500",u="opacity-0 pointer-events-none";return e(l||(l=f` <div class="relative"> <div class="${0}"> ${0} ${0} ${0} </div> <div class="${0}"> <div class="mx-auto flex mb-m w-l h-l rounded-t-l rounded-b-l bg-success"> <iron-icon icon="icons:done-all" class="m-auto text-success-contrast"></iron-icon> </div> <foxy-i18n class="block" lang="${0}" key="import_codes_done" ns="${0}"></foxy-i18n> </div> <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),d({"relative space-y-m":!0,[h]:!0,[u]:c}),r.matches("codes",!0)?"":this.__renderCodes(),r.matches("current-balance",!0)?"":this.__renderCurrentBalance(),r.matches("import",!0)?"":this.__renderImport(),d({"absolute inset-0 flex flex-col items-center justify-center":!0,"text-center text-m text-secondary leading-m":!0,[h]:!0,[u]:!c}),i,a,d({"absolute inset-0 flex":!0,[h]:!0,[u]:!n&&!o}),o?"error":m?"empty":"busy",i,a,null!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")):""}__getValidator(e){return()=>!this.errors.some((t=>t.startsWith(e)))}__renderCodes(){var t;const s=null!==(t=this.form.gift_card_codes)&&void 0!==t?t:[],r=s.length>16?s.slice(-16):s,i=s.length>16?s.slice(0,-16):[],a=r.map((t=>{let s;try{const e=new URL(this.parent);e.searchParams.set("code",t),s=e.toString()}catch(e){s=this.parent}return{value:t,label:e(c||(c=f` <foxy-internal-gift-card-codes-form-list-item group="${0}" href="${0}" lang="${0}" ns="${0}"> </foxy-internal-gift-card-codes-form-list-item> `),this.group,s,this.lang,this.ns)}}));return e(m||(m=f` <div data-testid="codes"> ${0} <x-group class="mb-xs" frame> <foxy-i18n slot="header" lang="${0}" key="code_plural" ns="${0}"></foxy-i18n> <x-editable-list data-testid="codes:list" lang="${0}" ns="${0}" ?disabled="${0}" ?readonly="${0}" .items="${0}" @change="${0}" @paste="${0}"> <div class="ml-m py-s border-b border-contrast-10 font-lumo" ?hidden="${0}"> <foxy-i18n options="${0}" class="block text-body text-m mb-xs" lang="${0}" key="hidden_codes_header" ns="${0}"> </foxy-i18n> <foxy-i18n class="block text-xs text-tertiary" lang="${0}" key="hidden_codes_explainer" ns="${0}"> </foxy-i18n> </div> </x-editable-list> </x-group> <foxy-i18n class="block text-xs text-tertiary leading-s" lang="${0}" key="code_import_hint" ns="${0}"> </foxy-i18n> ${0} </div> `),this.renderTemplateOrSlot("codes:before"),this.lang,this.ns,this.lang,this.ns,!this.in("idle")||this.disabledSelector.matches("codes",!0),this.readonlySelector.matches("codes",!0),a,(e=>{const t=e.currentTarget,s=new Set([...i,...t.items.map((e=>e.value))]);this.edit({gift_card_codes:[...s]})}),(e=>{var t,r;e.preventDefault();const i=(null!==(r=null===(t=e.clipboardData)||void 0===t?void 0:t.getData("text"))&&void 0!==r?r:"").split(/\s/).map((e=>e.trim())).filter((e=>e.length>0));this.edit({gift_card_codes:Array.from(new Set([...s,...i]))})}),0===i.length,JSON.stringify({count:i.length}),this.lang,this.ns,this.lang,this.ns,this.lang,this.ns,this.renderTemplateOrSlot("codes:after"))}__renderCurrentBalance(){var t;const s=this.in({idle:"template"});return e(h||(h=f` <div> ${0} <vaadin-integer-field error-message="${0}" data-testid="current-balance" label="${0}" class="w-full" min="0" ?disabled="${0}" ?readonly="${0}" prevent-invalid-input has-controls .checkValidity="${0}" .value="${0}" @keydown="${0}" @change="${0}"> </vaadin-integer-field> ${0} </div> `),this.renderTemplateOrSlot("current-balance:before"),this.__getErrorMessage("current_balance"),this.t("balance"),!s||this.disabledSelector.matches("current-balance",!0),this.readonlySelector.matches("current-balance",!0),this.__getValidator("current_balance"),s?null!==(t=this.form.current_balance)&&void 0!==t?t:0:"",(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget;this.edit({current_balance:parseInt(t.value)})}),this.renderTemplateOrSlot("current-balance:after"))}__renderImport(){const t=this.in({idle:{template:{dirty:"valid"}}}),s=this.in({idle:{snapshot:{dirty:"valid"}}}),r=t||s;return e(u||(u=f` <div> ${0} <vaadin-button data-testid="import" class="w-full mb-xs" theme="primary success" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="import" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("import:before"),!r||!this.in("idle")||this.disabledSelector.matches("import",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("import:after"))}}let b,x,y=e=>e;const v=o(a(i));customElements.define("foxy-gift-card-codes-form",g),customElements.define("foxy-internal-gift-card-codes-form-list-item",class extends v{render(){var t,s;let r;try{r=null!==(t=new URL(this.href).searchParams.get("code"))&&void 0!==t?t:""}catch(t){return e(b||(b=y``))}let i,a="text-tertiary bg-contrast-5",n="text-body";return this.in("fail")?i="loading_error":this.in("busy")?i="loading_busy":0===(null===(s=this.data)||void 0===s?void 0:s.returned_items)?(a="text-success bg-success-10",i="unique"):(a="text-error bg-error-10",i="duplicate",n="text-error"),e(x||(x=y` <div class="flex justify-between items-center font-lumo leading-m"> <div class="text-m ${0}">${0}</div> <foxy-i18n class="text-xs font-medium px-xs rounded ${0}" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> </div> `),n,r,a,this.lang,i,this.ns)}});export{g as GiftCardCodesForm};
@@ -1 +1 @@
1
- import"./shared-a040d79d.js";import"./shared-fab8c705.js";import"./shared-5a54a9bc.js";import"./shared-60126eee.js";import"./shared-46ee137f.js";import"./shared-c5de42f7.js";import"./shared-9221e6b2.js";import"./foxy-generate-codes-form.js";import"./foxy-gift-card-codes-form.js";import"./foxy-gift-card-code-form.js";import{T as e}from"./shared-08c63028.js";import"./foxy-pagination.js";import"./foxy-form-dialog.js";import"./foxy-spinner.js";import"./foxy-table.js";import"./shared-11708514.js";import{_ as t,h as r}from"./shared-63eaded9.js";import{C as s}from"./shared-b5754a42.js";import{C as i}from"./shared-df730f90.js";import{N as a}from"./shared-39e3ae67.js";import{S as n,T as o,a as d,R as l}from"./shared-e68b9c83.js";import{i as c}from"./shared-6d45a07b.js";import{c as m}from"./shared-4e709717.js";import{E as h}from"./shared-09069d7c.js";import{F as g}from"./shared-223508ae.js";import{G as f}from"./shared-02945b27.js";import{P as p}from"./shared-4dc6d228.js";import"./shared-8b20bc23.js";import"./shared-ff79f3f9.js";import"./shared-66633ff7.js";import"./shared-7f0a9790.js";import"./shared-5535f38f.js";import"./shared-65dfd512.js";import"./shared-7684cb05.js";import"./shared-756034e4.js";import"./shared-07134f93.js";import"./shared-b710881a.js";import"./shared-1934524e.js";import"./shared-e2c878c7.js";import"./shared-073cb8e9.js";import"./shared-b0f0e8b5.js";import"./shared-2061be9a.js";import"./shared-a23cf7c8.js";import"./foxy-nucleon-element.js";let u,y=e=>e;const $=i(n(o(d(a))));class b extends ${constructor(){super(...arguments),this.itemCategory="",this.giftCard=""}static get scopedElements(){return{"x-checkbox":s}}static get properties(){return t(t({},super.properties),{},{itemCategory:{type:String,attribute:"item-category"},giftCard:{type:String,attribute:"gift-card"}})}render(){return r(u||(u=y` <div class="h-full flex items-center"> <x-checkbox ?disabled="${0}" ?readonly="${0}" ?checked="${0}" @change="${0}"> <slot></slot> </x-checkbox> </div> `),!this.in("idle")||this.disabled,this.readonly,!!this.data,(e=>{e.detail?(this.edit({item_category_uri:this.itemCategory,gift_card_uri:this.giftCard}),this.submit()):this.delete()}))}}let x,_=e=>e;const v=i(n(o(d(a))));class S extends v{constructor(){super(...arguments),this.itemCategory="",this.giftCard=""}static get scopedElements(){return{"foxy-spinner":customElements.get("foxy-spinner"),"x-category-restrictions-page-item-content":b}}static get properties(){return t(t({},super.properties),{},{itemCategory:{type:String,attribute:"item-category"},giftCard:{type:String,attribute:"gift-card"}})}render(){var e;const t=null===(e=this.data)||void 0===e?void 0:e._embedded["fx:gift_card_item_categories"][0],s=t?void 0:this.href,i=t?t._links.self.href:void 0;return r(x||(x=_` <x-category-restrictions-page-item-content item-category="${0}" gift-card="${0}" parent="${0}" class="h-full" group="${0}" href="${0}" lang="${0}" ns="${0}" ?disabled="${0}" ?readonly="${0}"> <slot></slot> </x-category-restrictions-page-item-content> `),this.itemCategory,this.giftCard,c(s),this.group,c(i),this.lang,this.ns,!this.in("idle")||this.disabled,this.readonly)}}let k,j,w,C=e=>e;const T=i(n(o(d(a))));class E extends T{constructor(){super(...arguments),this.giftCardItemCategories="",this.giftCard=""}static get scopedElements(){return{"foxy-spinner":customElements.get("foxy-spinner"),"x-category-restrictions-page-item":S}}static get properties(){return t(t({},super.properties),{},{giftCardItemCategories:{type:String,attribute:"gift-card-item-categories"},giftCard:{type:String,attribute:"gift-card"}})}render(){var e,t,s,i,a;const n=null!==(t=null===(e=this.data)||void 0===e?void 0:e._embedded["fx:item_categories"])&&void 0!==t?t:[];let o=20;try{const e=parseInt(null!==(s=new URL(this.href).searchParams.get("limit"))&&void 0!==s?s:"");isNaN(e)||(o=e)}catch(e){}return r(k||(k=C` <div class="relative"> <div class="relative divide-y divide-contrast-10 ml-m"> ${0} </div> <div class="${0}"> <foxy-spinner layout="vertical" state="${0}" class="m-auto p-m bg-base rounded-t-l rounded-b-l shadow-xs" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),new Array(o).fill(0).map(((e,t)=>{const s=n[t];let i;if(s)try{const e=new URL(this.giftCardItemCategories),t=new URL(s._links.self.href).pathname.split("/").pop();e.searchParams.set("item_category_id",t),e.searchParams.set("limit","1"),i=e.toString()}catch(e){}return i?r(w||(w=C` <x-category-restrictions-page-item item-category="${0}" gift-card="${0}" class="h-l" group="${0}" href="${0}" lang="${0}" ns="${0}" ?disabled="${0}" ?readonly="${0}"> ${0} </x-category-restrictions-page-item> `),s._links.self.href,this.giftCard,this.group,i,this.lang,this.ns,!this.in("idle")||this.disabled,this.readonly,null==s?void 0:s.name):r(j||(j=C`<div class="h-l"></div>`))})),m({"pointer-events-none absolute inset-0 flex transition-opacity":!0,"opacity-0":!!this.data}),this.in("fail")?"error":this.in({idle:"template"})?"empty":"busy",this.lang,this.ns,null!==(a=null===(i=customElements.get("foxy-spinner"))||void 0===i?void 0:i.defaultNS)&&void 0!==a?a:"")}}const O=["aed","afn","all","amd","ang","aoa","ars","aud","awg","azn","bam","bbd","bdt","bgn","bhd","bif","bmd","bnd","bob","brl","bsd","btc","btn","bwp","byn","bzd","cad","cdf","chf","clf","clp","cnh","cny","cop","crc","cuc","cup","cve","czk","djf","dkk","dop","dzd","egp","ern","etb","eur","fjd","fkp","gbp","gel","ggp","ghs","gip","gmd","gnf","gtq","gyd","hkd","hnl","hrk","htg","huf","idr","ils","imp","inr","iqd","irr","isk","jep","jmd","jod","jpy","kes","kgs","khr","kmf","kpw","krw","kwd","kyd","kzt","lak","lbp","lkr","lrd","lsl","lyd","mad","mdl","mga","mkd","mmk","mnt","mop","mru","mur","mvr","mwk","mxn","myr","mzn","nad","ngn","nio","nok","npr","nzd","omr","pab","pen","pgk","php","pkr","pln","pyg","qar","ron","rsd","rub","rwf","sar","sbd","scr","sdg","sek","sgd","shp","sll","sos","srd","ssp","std","stn","svc","syp","szl","thb","tjs","tmt","tnd","top","try","ttd","twd","tzs","uah","ugx","usd","uyu","uzs","vef","ves","vnd","vuv","wst","xaf","xag","xau","xcd","xdr","xof","xpd","xpf","xpt","yer","zar","zmw","zwl"];let z,q,R,N,D,P,L,Q,U,I,G,J,V,W,A,M,B,F,H,K,X,Y=e=>e;const Z=n(o(i(l(d(a,"gift-card-form")))));class ee extends Z{constructor(){super(...arguments),this.__codesTableColumns=[{header:e=>r(z||(z=Y`<foxy-i18n lang="${0}" key="code" ns="${0}"></foxy-i18n>`),e.lang,e.ns),cell:e=>r(q||(q=Y` <vaadin-button theme="tertiary contrast" class="p-0" @click="${0}"> <span class="font-tnum">${0}</span> </vaadin-button> `),(t=>{const r=this.renderRoot.querySelector("#code-dialog"),s=t.currentTarget;r.href=e.data._links.self.href,r.show(s)}),e.data.code)},{header:e=>r(R||(R=Y`<foxy-i18n lang="${0}" key="date_created" ns="${0}"></foxy-i18n>`),e.lang,e.ns),cell:e=>r(N||(N=Y` <foxy-i18n options="${0}" class="text-tertiary" lang="${0}" key="date" ns="${0}"> </foxy-i18n> `),JSON.stringify({value:e.data.date_created}),e.lang,e.ns)},{hideBelow:"sm",header:e=>r(D||(D=Y`<foxy-i18n lang="${0}" key="end_date" ns="${0}"></foxy-i18n>`),e.lang,e.ns),cell:e=>r(P||(P=Y` <foxy-i18n options="${0}" class="text-tertiary" lang="${0}" key="date" ns="${0}"> </foxy-i18n> `),JSON.stringify({value:e.data.end_date}),e.lang,e.ns)},{header:e=>r(L||(L=Y`<foxy-i18n lang="${0}" key="current_balance" ns="${0}"></foxy-i18n>`),e.lang,e.ns),cell:e=>{var t;return r(Q||(Q=Y` <foxy-i18n options="${0}" lang="${0}" key="price" ns="${0}"> </foxy-i18n> `),JSON.stringify({amount:`${e.data.current_balance} ${null===(t=this.data)||void 0===t?void 0:t.currency_code}`,currencyDisplay:this.__currencyDisplay}),e.lang,e.ns)}}],this.__codesTableQuery=null,this.__currencyDisplay="",this.__itemCategories=""}static get scopedElements(){return{"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-combo-box":customElements.get("vaadin-combo-box"),"vaadin-button":customElements.get("vaadin-button"),"iron-icon":customElements.get("iron-icon"),"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-query-builder":customElements.get("foxy-query-builder"),"foxy-form-dialog":customElements.get("foxy-form-dialog"),"foxy-pagination":customElements.get("foxy-pagination"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-table":customElements.get("foxy-table"),"foxy-i18n":customElements.get("foxy-i18n"),"x-category-restrictions-page":E,"x-frequency-input":g,"x-property-table":p,"x-editable-list":h,"x-group":f}}static get properties(){return t(t({},super.properties),{},{__codesTableQuery:{attribute:!1},__itemCategories:{attribute:!1}})}static get v8n(){return[({name:e})=>!!e||"name_required",({name:e})=>!e||e.length<=50||"name_too_long"]}render(){var e,t;const s=this.hiddenSelector,i=s.matches("name",!0),a=s.matches("currency",!0),n=s.matches("expires",!0);return r(U||(U=Y` <div class="relative space-y-l"> ${0} ${0} ${0} ${0} ${0} ${0} ${0} <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),i&&a&&n?"":r(I||(I=Y` <div class="grid grid-cols-1 sm-grid-cols-3 md-grid-cols-4 gap-m"> ${0} ${0} ${0} </div> `),i?"":r(G||(G=Y`<div class="md-col-span-2">${0}</div>`),this.__renderName()),a?"":this.__renderCurrency(),n?"":this.__renderExpires()),s.matches("codes",!0)||!this.data?"":this.__renderCodes(),s.matches("product-restrictions",!0)?"":this.__renderProductRestrictions(),s.matches("category-restrictions",!0)||!this.data?"":this.__renderCategoryRestrictions(),s.matches("timestamps",!0)?"":this.__renderTimestamps(),s.matches("create",!0)||this.data?"":this.__renderCreate(),s.matches("delete",!0)||!this.data?"":this.__renderDelete(),m({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!this.in("busy")&&!this.in("fail")}),this.in("fail")?"error":this.in("busy")?"busy":"empty",this.lang,this.ns,null!==(t=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==t?t:"")}async _sendGet(){const e=await super._sendGet(),t=await super._fetch(e._links["fx:store"].href),r=new URL(t._links["fx:item_categories"].href);return r.searchParams.set("limit","5"),this.__currencyDisplay=t.use_international_currency_symbol?"code":"symbol",this.__itemCategories=r.toString(),e}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")).toString():""}__getValidator(e){return()=>!this.errors.some((t=>t.startsWith(e)))}__renderName(){var e;return r(J||(J=Y` <div> ${0} <vaadin-text-field error-message="${0}" helper-text="${0}" data-testid="name" class="w-full" label="${0}" .checkValidity="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" required @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot("name:before"),this.__getErrorMessage("name"),this.t("gift_card_name_helper_text"),this.t("name"),this.__getValidator("name"),null!==(e=this.form.name)&&void 0!==e?e:"",this.in("busy")||this.disabledSelector.matches("name",!0),this.readonlySelector.matches("name",!0),(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget.value;this.edit({name:t})}),this.renderTemplateOrSlot("name:after"))}__renderCurrency(){var e,t;return r(V||(V=Y` <div> ${0} <vaadin-combo-box item-label-path="label" item-value-path="value" item-id-path="value" class="w-full" label="${0}" ?disabled="${0}" ?readonly="${0}" .value="${0}" .items="${0}" @change="${0}"> </vaadin-combo-box> ${0} </div> `),this.renderTemplateOrSlot("currency:before"),this.t("currency"),!this.in("idle")||this.disabledSelector.matches("currency",!0),this.readonlySelector.matches("currency",!0),null!==(t=null===(e=this.form.currency_code)||void 0===e?void 0:e.toLowerCase())&&void 0!==t?t:"",O.map((e=>({label:`${this.t(`currency_${e}`)} (${e.toUpperCase()})`,value:e}))),(e=>{const t=e.currentTarget;this.edit({currency_code:t.value})}),this.renderTemplateOrSlot("currency:after"))}__renderExpires(){var e;return r(W||(W=Y` <div> ${0} <x-frequency-input class="w-full" label="${0}" placeholder="${0}" ?disabled="${0}" ?readonly="${0}" .value="${0}" @change="${0}"> </x-frequency-input> ${0} </div> `),this.renderTemplateOrSlot("expires:before"),this.t("expires_after"),this.t("select"),!this.in("idle")||this.disabledSelector.matches("expires",!0),this.readonlySelector.matches("expires",!0),null!==(e=this.form.expires_after)&&void 0!==e?e:"",(e=>{const t=e.currentTarget;this.edit({expires_after:t.value})}),this.renderTemplateOrSlot("expires:after"))}__renderCodes(){var e;const{disabledSelector:t,group:s,data:i,lang:a,ns:n}=this,o=!this.in("idle")||t.matches("codes",!0),d=this.__codesTableQuery,l=new URL(i._links["fx:gift_card_codes"].href);new URLSearchParams(null!=d?d:"").forEach(((e,t)=>l.searchParams.set(t,e))),l.searchParams.set("limit","5");const c=null===d?"filter":"clear_filters",m="icons:"+(null===d?"filter-list":"clear");return r(A||(A=Y` <foxy-form-dialog disabledcontrols="${0}" readonlycontrols="${0}" hiddencontrols="save-button ${0}" header="generate" parent="${0}" group="${0}" lang="${0}" form="foxy-generate-codes-form" ns="${0}" id="generate-codes-dialog" alert .related="${0}"> </foxy-form-dialog> <foxy-form-dialog disabledcontrols="${0}" readonlycontrols="${0}" hiddencontrols="${0}" header="code" parent="${0}" group="${0}" lang="${0}" form="foxy-gift-card-code-form" ns="${0}" id="code-dialog"> </foxy-form-dialog> <foxy-form-dialog disabledcontrols="${0}" readonlycontrols="${0}" hiddencontrols="save-button ${0}" header="import" parent="${0}" group="${0}" lang="${0}" form="foxy-gift-card-codes-form" ns="${0}" id="import-dialog"> </foxy-form-dialog> <div> ${0} <div class="flex items-center justify-between mb-xs space-x-s"> <foxy-i18n class="text-s font-medium text-secondary leading-none flex-1" lang="${0}" key="code_plural" ns="${0}"> </foxy-i18n> <vaadin-button theme="success tertiary small" ?disabled="${0}" @click="${0}"> <foxy-i18n class="text-s" lang="${0}" key="generate" ns="${0}"></foxy-i18n> <iron-icon class="icon-inline text-s" icon="icons:add"></iron-icon> </vaadin-button> <vaadin-button theme="contrast tertiary small" ?disabled="${0}" @click="${0}"> <foxy-i18n class="text-s" lang="${0}" key="import" ns="${0}"></foxy-i18n> <iron-icon class="icon-inline text-s" icon="icons:open-in-browser"></iron-icon> </vaadin-button> <vaadin-button theme="contrast ${0} small" ?disabled="${0}" @click="${0}"> <foxy-i18n class="text-s" lang="${0}" key="${0}" ns="${0}"></foxy-i18n> <iron-icon class="icon-inline text-s" icon="${0}"></iron-icon> </vaadin-button> </div> <foxy-query-builder class="bg-contrast-5 rounded-tl-l rounded-tr-s rounded-b-l p-m mb-s" lang="${0}" ns="${0}" ?disabled="${0}" ?hidden="${0}" .options="${0}" .value="${0}" @change="${0}"> </foxy-query-builder> <foxy-pagination first="${0}" lang="${0}" ns="${0}" ?disabled="${0}"> <foxy-table class="px-m mb-s border border-contrast-10 rounded-t-l rounded-b-l" group="${0}" lang="${0}" ns="${0}" .columns="${0}"> </foxy-table> </foxy-pagination> ${0} </div> `),t.zoom("codes:generate:form").toString(),this.readonlySelector.zoom("codes:generate:form").toString(),this.hiddenSelector.zoom("codes:generate:form").toString(),null!==(e=null==i?void 0:i._links["fx:generate_codes"].href)&&void 0!==e?e:"",s,a,n,[l.toString()],t.zoom("codes:form").toString(),this.readonlySelector.zoom("codes:form").toString(),this.hiddenSelector.zoom("codes:form").toString(),l.toString(),s,a,n,t.zoom("codes:import:form").toString(),this.readonlySelector.zoom("codes:import:form").toString(),this.hiddenSelector.zoom("codes:generate:form").toString(),i._links["fx:gift_card_codes"].href,s,a,n,this.renderTemplateOrSlot("codes:before"),a,n,o,(e=>{const t=this.renderRoot.querySelector("#generate-codes-dialog"),r=e.currentTarget;null==t||t.show(r)}),a,n,o,(e=>{const t=this.renderRoot.querySelector("#import-dialog"),r=e.currentTarget;null==t||t.show(r)}),a,n,null===d?"tertiary":"",o,(()=>this.__codesTableQuery=null===d?"":null),a,c,n,m,a,n,o,null===d,ee.__codesQueryOptions,null!=d?d:"",(e=>{const t=e.currentTarget;this.__codesTableQuery=t.value}),l.toString(),a,n,o,s,a,n,this.__codesTableColumns,this.renderTemplateOrSlot("codes:after"))}__renderProductRestrictions(){var e;const t="product-restrictions",s=!this.in("idle")||this.disabledSelector.matches(t,!0),i=this.readonlySelector.matches(t,!0),a=null!==(e=this.form.product_code_restrictions)&&void 0!==e?e:"",n=[{header:"allow",items:[]},{header:"block",items:[]}];return a&&a.split(",").forEach((e=>{const t=e.startsWith("-"),r=t?1:0,s=t?e.substring(1):e;n[r].items.push({label:s,value:e})})),r(M||(M=Y` <div> ${0} <div class="space-y-s"> <x-group frame> <foxy-i18n class="${0}" slot="header" lang="${0}" key="product_restrictions" ns="${0}"> </foxy-i18n> <div class="grid sm-grid-cols-2 bg-contrast-10" style="gap:1px"> ${0} </div> </x-group> <foxy-i18n class="${0}" lang="${0}" key="gift_card_product_restrictions_explainer" ns="${0}"> </foxy-i18n> </div> ${0} </div> `),this.renderTemplateOrSlot("product-restrictions:before"),s?"text-disabled":"text-secondary",this.lang,this.ns,n.map(((e,t)=>r(B||(B=Y` <x-group class="bg-base pt-m"> <foxy-i18n class="${0}" slot="header" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> <x-editable-list lang="${0}" ns="${0}" ?disabled="${0}" ?readonly="${0}" .items="${0}" @change="${0}"> </x-editable-list> </x-group> `),s?"text-disabled":"text-tertiary",this.lang,e.header,this.ns,this.lang,this.ns,s,i,e.items,(e=>{const r=[0===t?e.currentTarget.items:n[0].items,1===t?e.currentTarget.items:n[1].items].map((e=>e.map((e=>e.value.replace(/^[\s-]*/,"").trimEnd())))).map((e=>e.filter((e=>!!e)))).map((e=>Array.from(new Set(e)))),s=r[0].concat(r[1].map((e=>`-${e}`))).join(",");this.edit({product_code_restrictions:s})})))),m({"block text-xs leading-s transition-colors":!0,"text-secondary":!s,"text-disabled":s}),this.lang,this.ns,this.renderTemplateOrSlot("product-restrictions:after"))}__renderCategoryRestrictions(){var e;const t="category-restrictions",s=!this.in("idle")||this.disabledSelector.matches(t,!0),i=this.readonlySelector.matches(t,!0);return r(F||(F=Y` ${0} <div class="space-y-xs"> <foxy-pagination first="${0}" lang="${0}" ns="${0}" ?disabled="${0}"> <foxy-i18n class="block text-s font-medium text-secondary leading-none mb-s" lang="${0}" key="category_restrictions" ns="${0}"> </foxy-i18n> <x-category-restrictions-page gift-card-item-categories="${0}" gift-card="${0}" class="border border-contrast-10 rounded-t-l rounded-b-l mb-s" group="${0}" lang="${0}" ns="${0}" ?disabled="${0}" ?readonly="${0}"> </x-category-restrictions-page> </foxy-pagination> <foxy-i18n class="block text-xs leading-s text-secondary" lang="${0}" key="gift_card_category_restrictions_helper_text" ns="${0}"> </foxy-i18n> </div> ${0} `),this.renderTemplateOrSlot("category-restrictions:before"),this.__itemCategories,this.lang,this.ns,s,this.lang,this.ns,c(null===(e=this.data)||void 0===e?void 0:e._links["fx:gift_card_item_categories"].href),this.href,this.group,this.lang,this.ns,s,i,this.lang,this.ns,this.renderTemplateOrSlot("category-restrictions:after"))}__renderTimestamps(){return r(H||(H=Y` <div> ${0} <x-property-table data-testid="timestamps" .items="${0}"> </x-property-table> ${0} </div> `),this.renderTemplateOrSlot("timestamps:before"),["date_modified","date_created"].map((e=>{var t;return{name:this.t(e),value:(null===(t=this.data)||void 0===t?void 0:t[e])?this.t("date",{value:new Date(this.data[e])}):""}})),this.renderTemplateOrSlot("timestamps:after"))}__renderCreate(){const e=this.in({idle:{template:{clean:"invalid"}}}),t=this.in({idle:{template:{dirty:"invalid"}}}),s=this.in({idle:{snapshot:{clean:"invalid"}}}),i=this.in({idle:{snapshot:{dirty:"invalid"}}}),a=e||t||(s||i),n=this.in("busy");return r(K||(K=Y` <div> ${0} <vaadin-button data-testid="create" class="w-full" theme="primary success" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="create" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("create:before"),n||a||this.disabledSelector.matches("create",!0),this.submit,this.ns,this.lang,this.renderTemplateOrSlot("create:after"))}__renderDelete(){return r(X||(X=Y` <div> <foxy-internal-confirm-dialog data-testid="confirm" message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" lang="${0}" ns="${0}" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> ${0} <vaadin-button data-testid="delete" theme="primary error" class="w-full" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="delete" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.lang,this.ns,(e=>!e.detail.cancelled&&this.delete()),this.renderTemplateOrSlot("delete:before"),this.in("busy")||this.disabledSelector.matches("delete",!0),(e=>{this.renderRoot.querySelector("#confirm").show(e.currentTarget)}),this.ns,this.lang,this.renderTemplateOrSlot("delete:after"))}}ee.__codesQueryOptions=[{label:"code",path:"code",type:e.String},{label:"current_balance",path:"current_balance",type:e.Number},{label:"end_date",path:"end_date",type:e.Date},{label:"date_created",path:"date_created",type:e.Date},{label:"date_modified",path:"date_modified",type:e.Date}],customElements.define("foxy-gift-card-form",ee);export{ee as GiftCardForm};
1
+ import"./shared-41272a67.js";import"./shared-269fb742.js";import"./shared-a82f8b58.js";import"./shared-2f8bf5d9.js";import"./shared-01cbd43c.js";import"./shared-1d2cc2fb.js";import"./shared-701d5a7c.js";import"./foxy-generate-codes-form.js";import"./foxy-gift-card-codes-form.js";import"./foxy-gift-card-code-form.js";import{T as e}from"./shared-9728b5f8.js";import"./foxy-pagination.js";import"./foxy-form-dialog.js";import"./foxy-spinner.js";import"./foxy-table.js";import"./shared-27277bbb.js";import{_ as t,h as r}from"./shared-4ec62366.js";import{C as s}from"./shared-3a06bd7f.js";import{C as i}from"./shared-d2228670.js";import{N as a}from"./shared-8fc0b3ee.js";import{S as o,T as n,a as d,R as l}from"./shared-41f3f823.js";import{i as c}from"./shared-8695b424.js";import{c as m}from"./shared-4e709717.js";import{E as h}from"./shared-57a8ee05.js";import{F as f}from"./shared-4dc82211.js";import{G as g}from"./shared-1fa5f9a9.js";import{P as p}from"./shared-7d337241.js";import"./shared-85b8ae57.js";import"./shared-6974569c.js";import"./shared-f0515999.js";import"./shared-7cf914d7.js";import"./shared-bad032de.js";import"./shared-b161b269.js";import"./shared-7684cb05.js";import"./shared-916ef4d3.js";import"./shared-2558daa0.js";import"./shared-0389f098.js";import"./shared-3c85dcd8.js";import"./shared-cd262e68.js";import"./shared-e69e1ca3.js";import"./shared-d3cf78c1.js";import"./shared-2061be9a.js";import"./shared-312131d3.js";import"./foxy-nucleon-element.js";let u,y=e=>e;const b=i(o(n(a)));class $ extends b{constructor(){super(...arguments),this.itemCategory="",this.giftCard=""}static get scopedElements(){return{"x-checkbox":s}}static get properties(){return t(t({},super.properties),{},{itemCategory:{type:String,attribute:"item-category"},giftCard:{type:String,attribute:"gift-card"}})}render(){return r(u||(u=y` <div class="h-full flex items-center"> <x-checkbox data-testid="checkbox" ?disabled="${0}" ?readonly="${0}" ?checked="${0}" @change="${0}"> <slot></slot> </x-checkbox> </div> `),!this.in("idle")||this.disabled,this.readonly,!!this.data,(e=>{e.detail?(this.edit({item_category_uri:this.itemCategory,gift_card_uri:this.giftCard}),this.submit()):this.delete()}))}}let x,_=e=>e;const v=i(o(n(a)));class S extends v{constructor(){super(...arguments),this.itemCategory="",this.giftCard=""}static get scopedElements(){return{"foxy-spinner":customElements.get("foxy-spinner"),"x-category-restrictions-page-item-content":$}}static get properties(){return t(t({},super.properties),{},{itemCategory:{type:String,attribute:"item-category"},giftCard:{type:String,attribute:"gift-card"}})}render(){var e;const t=null===(e=this.data)||void 0===e?void 0:e._embedded["fx:gift_card_item_categories"][0],s=t?void 0:this.href,i=t?t._links.self.href:void 0;return r(x||(x=_` <x-category-restrictions-page-item-content item-category="${0}" data-testid="content" gift-card="${0}" parent="${0}" class="h-full" group="${0}" href="${0}" ?disabled="${0}" ?readonly="${0}"> <slot></slot> </x-category-restrictions-page-item-content> `),this.itemCategory,this.giftCard,c(s),this.group,c(i),!this.in("idle")||this.disabled,this.readonly)}}let k,j,w,C=e=>e;const T=i(o(n(d(a))));class E extends T{constructor(){super(...arguments),this.giftCardItemCategories="",this.giftCard=""}static get scopedElements(){return{"foxy-spinner":customElements.get("foxy-spinner"),"x-category-restrictions-page-item":S}}static get properties(){return t(t({},super.properties),{},{giftCardItemCategories:{type:String,attribute:"gift-card-item-categories"},giftCard:{type:String,attribute:"gift-card"}})}render(){var e,t,s,i,a;const o=null!==(t=null===(e=this.data)||void 0===e?void 0:e._embedded["fx:item_categories"])&&void 0!==t?t:[];let n=20;try{const e=parseInt(null!==(s=new URL(this.href).searchParams.get("limit"))&&void 0!==s?s:"");isNaN(e)||(n=e)}catch(e){}return r(k||(k=C` <div class="relative"> <div class="relative divide-y divide-contrast-10 ml-m"> ${0} </div> <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" state="${0}" class="m-auto p-m bg-base rounded-t-l rounded-b-l shadow-xs" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),new Array(n).fill(0).map(((e,t)=>{const s=o[t];let i;if(s)try{const e=new URL(this.giftCardItemCategories),t=new URL(s._links.self.href).pathname.split("/").pop();e.searchParams.set("item_category_id",t),e.searchParams.set("limit","1"),i=e.toString()}catch(e){}return i?r(w||(w=C` <x-category-restrictions-page-item data-testclass="item" item-category="${0}" gift-card="${0}" class="h-l" group="${0}" href="${0}" ?disabled="${0}" ?readonly="${0}"> ${0} </x-category-restrictions-page-item> `),s._links.self.href,this.giftCard,this.group,i,!this.in("idle")||this.disabled,this.readonly,null==s?void 0:s.name):r(j||(j=C`<div class="h-l"></div>`))})),m({"pointer-events-none absolute inset-0 flex transition-opacity":!0,"opacity-0":!!this.data}),this.in("fail")?"error":this.in({idle:"template"})?"empty":"busy",this.lang,this.ns,null!==(a=null===(i=customElements.get("foxy-spinner"))||void 0===i?void 0:i.defaultNS)&&void 0!==a?a:"")}}const O=["aed","afn","all","amd","ang","aoa","ars","aud","awg","azn","bam","bbd","bdt","bgn","bhd","bif","bmd","bnd","bob","brl","bsd","btc","btn","bwp","byn","bzd","cad","cdf","chf","clf","clp","cnh","cny","cop","crc","cuc","cup","cve","czk","djf","dkk","dop","dzd","egp","ern","etb","eur","fjd","fkp","gbp","gel","ggp","ghs","gip","gmd","gnf","gtq","gyd","hkd","hnl","hrk","htg","huf","idr","ils","imp","inr","iqd","irr","isk","jep","jmd","jod","jpy","kes","kgs","khr","kmf","kpw","krw","kwd","kyd","kzt","lak","lbp","lkr","lrd","lsl","lyd","mad","mdl","mga","mkd","mmk","mnt","mop","mru","mur","mvr","mwk","mxn","myr","mzn","nad","ngn","nio","nok","npr","nzd","omr","pab","pen","pgk","php","pkr","pln","pyg","qar","ron","rsd","rub","rwf","sar","sbd","scr","sdg","sek","sgd","shp","sll","sos","srd","ssp","std","stn","svc","syp","szl","thb","tjs","tmt","tnd","top","try","ttd","twd","tzs","uah","ugx","usd","uyu","uzs","vef","ves","vnd","vuv","wst","xaf","xag","xau","xcd","xdr","xof","xpd","xpf","xpt","yer","zar","zmw","zwl"];let z,q,R,N,D,P,L,Q,U,I,G,J,V,W,A,M,B,F,H,K,X,Y=e=>e;const Z=o(n(i(l(d(a,"gift-card-form")))));class ee extends Z{constructor(){super(...arguments),this.__codesTableColumns=[{header:e=>r(z||(z=Y`<foxy-i18n lang="${0}" key="code" ns="${0}"></foxy-i18n>`),e.lang,e.ns),cell:e=>r(q||(q=Y` <vaadin-button theme="tertiary contrast" class="p-0" ?disabled="${0}" @click="${0}"> <span class="font-tnum">${0}</span> </vaadin-button> `),!this.in("idle")||this.disabledSelector.matches("codes",!0),(t=>{const r=this.renderRoot.querySelector("#code-dialog"),s=t.currentTarget;r.href=e.data._links.self.href,r.show(s)}),e.data.code)},{header:e=>r(R||(R=Y`<foxy-i18n lang="${0}" key="date_created" ns="${0}"></foxy-i18n>`),e.lang,e.ns),cell:e=>r(N||(N=Y` <foxy-i18n options="${0}" class="text-tertiary" lang="${0}" key="date" ns="${0}"> </foxy-i18n> `),JSON.stringify({value:e.data.date_created}),e.lang,e.ns)},{hideBelow:"sm",header:e=>r(D||(D=Y`<foxy-i18n lang="${0}" key="end_date" ns="${0}"></foxy-i18n>`),e.lang,e.ns),cell:e=>r(P||(P=Y` <foxy-i18n options="${0}" class="text-tertiary" lang="${0}" key="date" ns="${0}"> </foxy-i18n> `),JSON.stringify({value:e.data.end_date}),e.lang,e.ns)},{header:e=>r(L||(L=Y`<foxy-i18n lang="${0}" key="current_balance" ns="${0}"></foxy-i18n>`),e.lang,e.ns),cell:e=>{var t;return r(Q||(Q=Y` <foxy-i18n options="${0}" lang="${0}" key="price" ns="${0}"> </foxy-i18n> `),JSON.stringify({amount:`${e.data.current_balance} ${null===(t=this.data)||void 0===t?void 0:t.currency_code}`,currencyDisplay:this.__currencyDisplay}),e.lang,e.ns)}}],this.__codesTableQuery=null,this.__currencyDisplay="",this.__itemCategories=""}static get scopedElements(){return{"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-combo-box":customElements.get("vaadin-combo-box"),"vaadin-button":customElements.get("vaadin-button"),"iron-icon":customElements.get("iron-icon"),"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-query-builder":customElements.get("foxy-query-builder"),"foxy-form-dialog":customElements.get("foxy-form-dialog"),"foxy-pagination":customElements.get("foxy-pagination"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-table":customElements.get("foxy-table"),"foxy-i18n":customElements.get("foxy-i18n"),"x-category-restrictions-page":E,"x-frequency-input":f,"x-property-table":p,"x-editable-list":h,"x-group":g}}static get properties(){return t(t({},super.properties),{},{__codesTableQuery:{attribute:!1},__itemCategories:{attribute:!1}})}static get v8n(){return[({name:e})=>!!e||"name_required",({name:e})=>!e||e.length<=50||"name_too_long"]}render(){var e,t;const s=this.hiddenSelector,i=s.matches("name",!0),a=s.matches("currency",!0),o=s.matches("expires",!0);return r(U||(U=Y` <div class="relative space-y-l"> ${0} ${0} ${0} ${0} ${0} ${0} ${0} <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),i&&a&&o?"":r(I||(I=Y` <div class="grid grid-cols-1 sm-grid-cols-3 md-grid-cols-4 gap-m"> ${0} ${0} ${0} </div> `),i?"":r(G||(G=Y`<div class="md-col-span-2">${0}</div>`),this.__renderName()),a?"":this.__renderCurrency(),o?"":this.__renderExpires()),s.matches("codes",!0)||!this.data?"":this.__renderCodes(),s.matches("product-restrictions",!0)?"":this.__renderProductRestrictions(),s.matches("category-restrictions",!0)||!this.data?"":this.__renderCategoryRestrictions(),s.matches("timestamps",!0)?"":this.__renderTimestamps(),s.matches("create",!0)||this.data?"":this.__renderCreate(),s.matches("delete",!0)||!this.data?"":this.__renderDelete(),m({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!this.in("busy")&&!this.in("fail")}),this.in("fail")?"error":this.in("busy")?"busy":"empty",this.lang,this.ns,null!==(t=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==t?t:"")}async _sendGet(){const e=await super._sendGet(),t=await super._fetch(e._links["fx:store"].href),r=new URL(t._links["fx:item_categories"].href);return r.searchParams.set("limit","5"),this.__currencyDisplay=t.use_international_currency_symbol?"code":"symbol",this.__itemCategories=r.toString(),e}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")).toString():""}__getValidator(e){return()=>!this.errors.some((t=>t.startsWith(e)))}__renderName(){var e;return r(J||(J=Y` <div> ${0} <vaadin-text-field error-message="${0}" helper-text="${0}" data-testid="name" class="w-full" label="${0}" .checkValidity="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" required @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot("name:before"),this.__getErrorMessage("name"),this.t("gift_card_name_helper_text"),this.t("name"),this.__getValidator("name"),null!==(e=this.form.name)&&void 0!==e?e:"",!this.in("idle")||this.disabledSelector.matches("name",!0),this.readonlySelector.matches("name",!0),(e=>"Enter"===e.key&&this.submit()),(e=>{const t=e.currentTarget.value;this.edit({name:t})}),this.renderTemplateOrSlot("name:after"))}__renderCurrency(){var e,t;return r(V||(V=Y` <div> ${0} <vaadin-combo-box item-label-path="label" item-value-path="value" item-id-path="value" data-testid="currency" class="w-full" label="${0}" ?disabled="${0}" ?readonly="${0}" .value="${0}" .items="${0}" @change="${0}"> </vaadin-combo-box> ${0} </div> `),this.renderTemplateOrSlot("currency:before"),this.t("currency"),!this.in("idle")||this.disabledSelector.matches("currency",!0),this.readonlySelector.matches("currency",!0),null!==(t=null===(e=this.form.currency_code)||void 0===e?void 0:e.toLowerCase())&&void 0!==t?t:"",O.map((e=>({label:`${this.t(`currency_${e}`)} (${e.toUpperCase()})`,value:e}))),(e=>{const t=e.currentTarget;this.edit({currency_code:t.value})}),this.renderTemplateOrSlot("currency:after"))}__renderExpires(){var e;return r(W||(W=Y` <div> ${0} <x-frequency-input placeholder="${0}" data-testid="expires" label="${0}" class="w-full" lang="${0}" ns="${0}" ?disabled="${0}" ?readonly="${0}" .value="${0}" @change="${0}"> </x-frequency-input> ${0} </div> `),this.renderTemplateOrSlot("expires:before"),this.t("select"),this.t("expires_after"),this.lang,this.ns,!this.in("idle")||this.disabledSelector.matches("expires",!0),this.readonlySelector.matches("expires",!0),null!==(e=this.form.expires_after)&&void 0!==e?e:"",(e=>{const t=e.currentTarget;this.edit({expires_after:t.value})}),this.renderTemplateOrSlot("expires:after"))}__renderCodes(){var e,t,s,i,a;const{disabledSelector:o,readonlySelector:n,hiddenSelector:d,group:l,data:c,lang:m,ns:h}=this,f=!this.in("idle")||o.matches("codes",!0),g=this.__codesTableQuery,p=new URL(c._links["fx:gift_card_codes"].href);new URLSearchParams(null!=g?g:"").forEach(((e,t)=>p.searchParams.set(t,e))),p.searchParams.set("limit","5");const u=null===g?"filter":"clear_filters",y="icons:"+(null===g?"filter-list":"clear");return r(A||(A=Y` <div data-testid="codes"> <foxy-form-dialog disabledcontrols="${0}" readonlycontrols="${0}" hiddencontrols="save-button ${0}" header="generate" parent="${0}" group="${0}" lang="${0}" form="foxy-generate-codes-form" ns="${0}" id="generate-codes-dialog" alert .related="${0}"> </foxy-form-dialog> <foxy-form-dialog disabledcontrols="${0}" readonlycontrols="${0}" hiddencontrols="${0}" header="code" parent="${0}" group="${0}" lang="${0}" form="foxy-gift-card-code-form" ns="${0}" id="code-dialog"> </foxy-form-dialog> <foxy-form-dialog disabledcontrols="${0}" readonlycontrols="${0}" hiddencontrols="save-button ${0}" header="import" parent="${0}" group="${0}" lang="${0}" form="foxy-gift-card-codes-form" ns="${0}" id="import-dialog"> </foxy-form-dialog> ${0} <div class="flex items-center justify-between mb-xs space-x-s"> <foxy-i18n class="text-s font-medium text-secondary leading-none flex-1" lang="${0}" key="code_plural" ns="${0}"> </foxy-i18n> <vaadin-button data-testid="codes:generate-button" theme="success tertiary small" ?disabled="${0}" @click="${0}"> <foxy-i18n class="text-s" lang="${0}" key="generate" ns="${0}"></foxy-i18n> <iron-icon class="icon-inline text-s" icon="icons:add"></iron-icon> </vaadin-button> <vaadin-button data-testid="codes:import-button" theme="contrast tertiary small" ?disabled="${0}" @click="${0}"> <foxy-i18n class="text-s" lang="${0}" key="import" ns="${0}"></foxy-i18n> <iron-icon class="icon-inline text-s" icon="icons:open-in-browser"></iron-icon> </vaadin-button> <vaadin-button data-testid="codes:filter-button" theme="contrast ${0} small" ?disabled="${0}" @click="${0}"> <foxy-i18n class="text-s" lang="${0}" key="${0}" ns="${0}"></foxy-i18n> <iron-icon class="icon-inline text-s" icon="${0}"></iron-icon> </vaadin-button> </div> <foxy-query-builder class="bg-contrast-5 rounded-tl-l rounded-tr-s rounded-b-l p-m mb-s" lang="${0}" ns="${0} ${0}" ?disabled="${0}" ?hidden="${0}" .options="${0}" .value="${0}" @change="${0}"> </foxy-query-builder> <foxy-pagination first="${0}" lang="${0}" ns="${0} ${0}" ?disabled="${0}"> <foxy-table class="px-m mb-s border border-contrast-10 rounded-t-l rounded-b-l" group="${0}" lang="${0}" ns="${0}" .columns="${0}"> </foxy-table> </foxy-pagination> ${0} </div> `),o.zoom("codes:generate:form").toString(),n.zoom("codes:generate:form").toString(),d.zoom("codes:generate:form").toString(),null!==(e=null==c?void 0:c._links["fx:generate_codes"].href)&&void 0!==e?e:"",l,m,h,[p.toString()],o.zoom("codes:form").toString(),n.zoom("codes:form").toString(),d.zoom("codes:form").toString(),p.toString(),l,m,h,o.zoom("codes:import:form").toString(),n.zoom("codes:import:form").toString(),d.zoom("codes:import:form").toString(),c._links["fx:gift_card_codes"].href,l,m,h,this.renderTemplateOrSlot("codes:before"),m,h,f,(e=>{const t=this.renderRoot.querySelector("#generate-codes-dialog"),r=e.currentTarget;null==t||t.show(r)}),m,h,f,(e=>{const t=this.renderRoot.querySelector("#import-dialog"),r=e.currentTarget;null==t||t.show(r)}),m,h,null===g?"tertiary":"",f,(()=>this.__codesTableQuery=null===g?"":null),m,u,h,y,m,h,null!==(s=null===(t=customElements.get("foxy-query-builder"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"",f,null===g,ee.__codesQueryOptions,null!=g?g:"",(e=>{const t=e.currentTarget;this.__codesTableQuery=t.value}),p.toString(),m,h,null!==(a=null===(i=customElements.get("foxy-pagination"))||void 0===i?void 0:i.defaultNS)&&void 0!==a?a:"",f,l,m,h,this.__codesTableColumns,this.renderTemplateOrSlot("codes:after"))}__renderProductRestrictions(){var e;const t="product-restrictions",s=!this.in("idle")||this.disabledSelector.matches(t,!0),i=this.readonlySelector.matches(t,!0),a=null!==(e=this.form.product_code_restrictions)&&void 0!==e?e:"",o=[{header:"allow",items:[]},{header:"block",items:[]}];return a&&a.split(",").forEach((e=>{const t=e.startsWith("-"),r=t?1:0,s=t?e.substring(1):e;o[r].items.push({label:s,value:e})})),r(M||(M=Y` <div data-testid="product-restrictions"> ${0} <div class="space-y-s"> <x-group frame> <foxy-i18n class="${0}" slot="header" lang="${0}" key="product_restrictions" ns="${0}"> </foxy-i18n> <div class="grid sm-grid-cols-2 bg-contrast-10" style="gap:1px"> ${0} </div> </x-group> <foxy-i18n class="${0}" lang="${0}" key="gift_card_product_restrictions_explainer" ns="${0}"> </foxy-i18n> </div> ${0} </div> `),this.renderTemplateOrSlot("product-restrictions:before"),s?"text-disabled":"text-secondary",this.lang,this.ns,o.map(((e,t)=>r(B||(B=Y` <x-group class="bg-base pt-m"> <foxy-i18n class="${0}" slot="header" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> <x-editable-list data-testid="product-restrictions:${0}" lang="${0}" ns="${0}" ?disabled="${0}" ?readonly="${0}" .items="${0}" @change="${0}"> </x-editable-list> </x-group> `),s?"text-disabled":"text-tertiary",this.lang,e.header,this.ns,e.header,this.lang,this.ns,s,i,e.items,(e=>{const r=[0===t?e.currentTarget.items:o[0].items,1===t?e.currentTarget.items:o[1].items].map((e=>e.map((e=>e.value.replace(/^[\s-]*/,"").trimEnd())))).map((e=>e.filter((e=>!!e)))).map((e=>Array.from(new Set(e)))),s=r[0].concat(r[1].map((e=>`-${e}`))).join(",");this.edit({product_code_restrictions:s})})))),m({"block text-xs leading-s transition-colors":!0,"text-secondary":!s,"text-disabled":s}),this.lang,this.ns,this.renderTemplateOrSlot("product-restrictions:after"))}__renderCategoryRestrictions(){var e,t,s;const i="category-restrictions",a=!this.in("idle")||this.disabledSelector.matches(i,!0),o=this.readonlySelector.matches(i,!0),n=null===(e=this.data)||void 0===e?void 0:e._links["fx:gift_card_item_categories"].href;return r(F||(F=Y` <div data-testid="category-restrictions"> ${0} <div class="space-y-xs"> <foxy-pagination first="${0}" lang="${0}" ns="${0} ${0}" ?disabled="${0}"> <foxy-i18n class="block text-s font-medium text-secondary leading-none mb-s" lang="${0}" key="category_restrictions" ns="${0}"> </foxy-i18n> <x-category-restrictions-page gift-card-item-categories="${0}" data-testid="category-restrictions:page" gift-card="${0}" class="border border-contrast-10 rounded-t-l rounded-b-l mb-s" group="${0}" lang="${0}" ns="${0}" ?disabled="${0}" ?readonly="${0}"> </x-category-restrictions-page> </foxy-pagination> <foxy-i18n class="block text-xs leading-s text-secondary" lang="${0}" key="gift_card_category_restrictions_helper_text" ns="${0}"> </foxy-i18n> </div> ${0} </div> `),this.renderTemplateOrSlot(`${i}:before`),this.__itemCategories,this.lang,this.ns,null!==(s=null===(t=customElements.get("foxy-pagination"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"",a,this.lang,this.ns,c(n),this.href,this.group,this.lang,this.ns,a,o,this.lang,this.ns,this.renderTemplateOrSlot(`${i}:after`))}__renderTimestamps(){return r(H||(H=Y` <div> ${0} <x-property-table data-testid="timestamps" .items="${0}"> </x-property-table> ${0} </div> `),this.renderTemplateOrSlot("timestamps:before"),["date_modified","date_created"].map((e=>{var t;return{name:this.t(e),value:(null===(t=this.data)||void 0===t?void 0:t[e])?this.t("date",{value:new Date(this.data[e])}):""}})),this.renderTemplateOrSlot("timestamps:after"))}__renderCreate(){const e=this.in({idle:{template:{clean:"invalid"}}}),t=this.in({idle:{template:{dirty:"invalid"}}}),s=this.in({idle:{snapshot:{clean:"invalid"}}}),i=this.in({idle:{snapshot:{dirty:"invalid"}}}),a=e||t||(s||i),o=this.in("busy");return r(K||(K=Y` <div> ${0} <vaadin-button data-testid="create" class="w-full" theme="primary success" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="create" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("create:before"),o||a||this.disabledSelector.matches("create",!0),this.submit,this.ns,this.lang,this.renderTemplateOrSlot("create:after"))}__renderDelete(){return r(X||(X=Y` <div> <foxy-internal-confirm-dialog data-testid="confirm" message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" lang="${0}" ns="${0}" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> ${0} <vaadin-button data-testid="delete" theme="primary error" class="w-full" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="delete" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.lang,this.ns,(e=>!e.detail.cancelled&&this.delete()),this.renderTemplateOrSlot("delete:before"),!this.in("idle")||this.disabledSelector.matches("delete",!0),(e=>{this.renderRoot.querySelector("#confirm").show(e.currentTarget)}),this.ns,this.lang,this.renderTemplateOrSlot("delete:after"))}}ee.__codesQueryOptions=[{label:"code",path:"code",type:e.String},{label:"current_balance",path:"current_balance",type:e.Number},{label:"end_date",path:"end_date",type:e.Date},{label:"date_created",path:"date_created",type:e.Date},{label:"date_modified",path:"date_modified",type:e.Date}],customElements.define("foxy-gift-card-form",ee);export{ee as GiftCardForm};
@@ -1 +1 @@
1
- export{I as I18n}from"./shared-11708514.js";import"./shared-63eaded9.js";import"./shared-e68b9c83.js";import"./shared-5535f38f.js";
1
+ export{I as I18n}from"./shared-27277bbb.js";import"./shared-4ec62366.js";import"./shared-41f3f823.js";import"./shared-bad032de.js";
@@ -1 +1 @@
1
- export{a as Item,I as ItemsForm}from"./shared-a7b6feb2.js";import"./shared-63eaded9.js";import"./shared-5a54a9bc.js";import"./shared-8b20bc23.js";import"./shared-ff79f3f9.js";import"./shared-11708514.js";import"./shared-e68b9c83.js";import"./shared-5535f38f.js";import"./shared-46ee137f.js";import"./shared-073cb8e9.js";import"./shared-223508ae.js";import"./shared-65dfd512.js";import"./shared-a040d79d.js";import"./shared-fab8c705.js";import"./shared-b0f0e8b5.js";import"./shared-756034e4.js";import"./shared-66633ff7.js";import"./shared-7f0a9790.js";import"./shared-df730f90.js";import"./shared-6d45a07b.js";import"./shared-4e709717.js";import"./shared-e2c878c7.js";import"./shared-dcc9c325.js";import"./shared-60126eee.js";
1
+ export{a as Item,I as ItemsForm}from"./shared-c722fc23.js";import"./shared-4ec62366.js";import"./shared-a82f8b58.js";import"./shared-85b8ae57.js";import"./shared-6974569c.js";import"./shared-41f3f823.js";import"./shared-27277bbb.js";import"./shared-bad032de.js";import"./shared-01cbd43c.js";import"./shared-e69e1ca3.js";import"./shared-4dc82211.js";import"./shared-b161b269.js";import"./shared-41272a67.js";import"./shared-269fb742.js";import"./shared-d3cf78c1.js";import"./shared-916ef4d3.js";import"./shared-f0515999.js";import"./shared-7cf914d7.js";import"./shared-d2228670.js";import"./shared-8695b424.js";import"./shared-4e709717.js";import"./shared-cd262e68.js";import"./shared-7e107668.js";import"./shared-2f8bf5d9.js";