@foxy.io/elements 1.18.0-beta.17 → 1.18.0-beta.18

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 (225) 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-api-browser.js +1 -1
  5. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  6. package/dist/cdn/foxy-attribute-card.js +1 -1
  7. package/dist/cdn/foxy-attribute-form.js +1 -1
  8. package/dist/cdn/foxy-cancellation-form.js +1 -1
  9. package/dist/cdn/foxy-collection-page.js +1 -1
  10. package/dist/cdn/foxy-collection-pages.js +1 -1
  11. package/dist/cdn/foxy-coupon-card.js +1 -1
  12. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  13. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  14. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  15. package/dist/cdn/foxy-coupon-form.js +1 -1
  16. package/dist/cdn/foxy-custom-field-card.js +1 -1
  17. package/dist/cdn/foxy-custom-field-form.js +1 -1
  18. package/dist/cdn/foxy-customer-card.js +1 -1
  19. package/dist/cdn/foxy-customer-form.js +1 -1
  20. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  21. package/dist/cdn/foxy-customer-portal.js +1 -1
  22. package/dist/cdn/foxy-customer.js +1 -1
  23. package/dist/cdn/foxy-customers-table.js +1 -1
  24. package/dist/cdn/foxy-discount-card.js +1 -1
  25. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  26. package/dist/cdn/foxy-donation.js +1 -1
  27. package/dist/cdn/foxy-email-template-card.js +1 -1
  28. package/dist/cdn/foxy-email-template-form.js +1 -1
  29. package/dist/cdn/foxy-error-entry-card.js +1 -1
  30. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  31. package/dist/cdn/foxy-gift-card-card.js +1 -1
  32. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  33. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  34. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  35. package/dist/cdn/foxy-gift-card-form.js +1 -1
  36. package/dist/cdn/foxy-i18n-editor.js +1 -1
  37. package/dist/cdn/foxy-integration-card.js +1 -1
  38. package/dist/cdn/foxy-integration-form.js +1 -1
  39. package/dist/cdn/foxy-item-card.js +1 -1
  40. package/dist/cdn/foxy-item-category-card.js +1 -1
  41. package/dist/cdn/foxy-item-category-form.js +1 -1
  42. package/dist/cdn/foxy-item-form.js +1 -1
  43. package/dist/cdn/foxy-item-option-card.js +1 -1
  44. package/dist/cdn/foxy-item-option-form.js +1 -1
  45. package/dist/cdn/foxy-items-form.js +1 -1
  46. package/dist/cdn/foxy-nucleon-element.js +1 -1
  47. package/dist/cdn/foxy-pagination.js +1 -1
  48. package/dist/cdn/foxy-payment-card.js +1 -1
  49. package/dist/cdn/foxy-payment-method-card.js +1 -1
  50. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  51. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  52. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  53. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  54. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  55. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  56. package/dist/cdn/foxy-report-form.js +2 -2
  57. package/dist/cdn/foxy-reports-table.js +1 -1
  58. package/dist/cdn/foxy-shipment-card.js +1 -1
  59. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  60. package/dist/cdn/foxy-sign-in-form.js +1 -1
  61. package/dist/cdn/foxy-store-form.js +1 -1
  62. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  63. package/dist/cdn/foxy-subscription-card.js +1 -1
  64. package/dist/cdn/foxy-subscription-form.js +1 -1
  65. package/dist/cdn/foxy-subscription-settings-form.js +1 -0
  66. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  67. package/dist/cdn/foxy-table.js +1 -1
  68. package/dist/cdn/foxy-tax-card.js +1 -1
  69. package/dist/cdn/foxy-tax-form.js +1 -1
  70. package/dist/cdn/foxy-template-card.js +1 -1
  71. package/dist/cdn/foxy-template-config-form.js +1 -1
  72. package/dist/cdn/foxy-template-form.js +1 -1
  73. package/dist/cdn/foxy-template-set-card.js +1 -1
  74. package/dist/cdn/foxy-template-set-form.js +1 -1
  75. package/dist/cdn/foxy-transaction-card.js +1 -1
  76. package/dist/cdn/foxy-transaction.js +1 -1
  77. package/dist/cdn/foxy-transactions-table.js +1 -1
  78. package/dist/cdn/foxy-user-form.js +1 -1
  79. package/dist/cdn/foxy-users-table.js +1 -1
  80. package/dist/cdn/foxy-webhook-card.js +1 -1
  81. package/dist/cdn/foxy-webhook-form.js +1 -1
  82. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  83. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  84. package/dist/cdn/{shared-e119731e.js → shared-07fb5be2.js} +1 -1
  85. package/dist/cdn/{shared-4c338ca6.js → shared-17d24760.js} +1 -1
  86. package/dist/cdn/{shared-e3ce88dc.js → shared-196fa627.js} +21 -11
  87. package/dist/cdn/{shared-40537775.js → shared-1f0841ec.js} +1 -1
  88. package/dist/cdn/{shared-71deb26e.js → shared-210387cb.js} +1 -1
  89. package/dist/cdn/shared-222fe491.js +1 -0
  90. package/dist/cdn/shared-262caea4.js +1 -0
  91. package/dist/cdn/{shared-74277a73.js → shared-344485cf.js} +5 -5
  92. package/dist/cdn/shared-4308cdab.js +1 -0
  93. package/dist/cdn/{shared-6003864d.js → shared-5643d0ed.js} +1 -1
  94. package/dist/cdn/{shared-29376ba1.js → shared-56d26968.js} +1 -1
  95. package/dist/cdn/{shared-facfe95a.js → shared-62c8cfa2.js} +4 -4
  96. package/dist/cdn/{shared-2f1e04ae.js → shared-6b622399.js} +1 -1
  97. package/dist/cdn/{shared-cfec6ec1.js → shared-8a5bdad3.js} +7 -7
  98. package/dist/cdn/{shared-8d533e0c.js → shared-98652709.js} +1 -1
  99. package/dist/cdn/{shared-ad8141c4.js → shared-aebbceea.js} +1 -1
  100. package/dist/cdn/shared-b0a6d48f.js +1 -0
  101. package/dist/cdn/{shared-7661b51a.js → shared-b0ff4590.js} +1 -1
  102. package/dist/cdn/{shared-6e6ed30a.js → shared-b7219771.js} +1 -1
  103. package/dist/cdn/{shared-a46a2f49.js → shared-ce1ae7e1.js} +1 -1
  104. package/dist/cdn/{shared-cced7800.js → shared-d5f242df.js} +1 -1
  105. package/dist/cdn/shared-da6cc488.js +1 -0
  106. package/dist/cdn/{shared-6bf8883f.js → shared-e08bcb6c.js} +1 -1
  107. package/dist/cdn/{shared-4457dc27.js → shared-fdac2851.js} +1 -1
  108. package/dist/cdn/translations/email-template-card/en.json +1 -1
  109. package/dist/cdn/translations/subscription-settings-form/en.json +92 -0
  110. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.js +1 -1
  111. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.js.map +1 -1
  112. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.d.ts +1 -0
  113. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js +18 -0
  114. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js.map +1 -1
  115. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.d.ts +1 -0
  116. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js +15 -6
  117. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map +1 -1
  118. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +2 -0
  119. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +6 -0
  120. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -1
  121. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js +32 -4
  122. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js.map +1 -1
  123. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +1 -3
  124. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +16 -30
  125. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
  126. package/dist/elements/internal/InternalSelectControl/index.d.ts +1 -1
  127. package/dist/elements/internal/InternalSelectControl/index.js +1 -1
  128. package/dist/elements/internal/InternalSelectControl/index.js.map +1 -1
  129. package/dist/elements/public/AddressForm/AddressForm.js +1 -1
  130. package/dist/elements/public/AddressForm/AddressForm.js.map +1 -1
  131. package/dist/elements/public/AttributeForm/AttributeForm.js +1 -1
  132. package/dist/elements/public/AttributeForm/AttributeForm.js.map +1 -1
  133. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js +1 -1
  134. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js.map +1 -1
  135. package/dist/elements/public/CouponForm/CouponForm.js +1 -1
  136. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  137. package/dist/elements/public/CustomFieldForm/CustomFieldForm.js +1 -1
  138. package/dist/elements/public/CustomFieldForm/CustomFieldForm.js.map +1 -1
  139. package/dist/elements/public/CustomerForm/CustomerForm.js +1 -1
  140. package/dist/elements/public/CustomerForm/CustomerForm.js.map +1 -1
  141. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +2 -1
  142. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
  143. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +1 -1
  144. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
  145. package/dist/elements/public/GiftCardForm/GiftCardForm.js +1 -1
  146. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  147. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.d.ts +3 -3
  148. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.js +3 -2
  149. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.js.map +1 -1
  150. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.d.ts +1 -1
  151. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.js +1 -1
  152. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.js.map +1 -1
  153. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.d.ts +2 -2
  154. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js +2 -2
  155. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js.map +1 -1
  156. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.d.ts +1 -1
  157. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js +1 -1
  158. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js.map +1 -1
  159. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.d.ts +2 -2
  160. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js +2 -2
  161. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js.map +1 -1
  162. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.d.ts +1 -1
  163. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js +1 -1
  164. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js.map +1 -1
  165. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.d.ts +2 -2
  166. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js +2 -2
  167. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js.map +1 -1
  168. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.d.ts +2 -2
  169. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js +2 -2
  170. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js.map +1 -1
  171. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.d.ts +2 -2
  172. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js +2 -2
  173. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js.map +1 -1
  174. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.d.ts +1 -1
  175. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js +1 -1
  176. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js.map +1 -1
  177. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.d.ts +2 -2
  178. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js +2 -2
  179. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js.map +1 -1
  180. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.d.ts +1 -1
  181. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js +1 -1
  182. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js.map +1 -1
  183. package/dist/elements/public/NucleonElement/NucleonElement.d.ts +2 -0
  184. package/dist/elements/public/NucleonElement/NucleonElement.js +30 -0
  185. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  186. package/dist/elements/public/ReportForm/ReportForm.js +1 -1
  187. package/dist/elements/public/ReportForm/ReportForm.js.map +1 -1
  188. package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.d.ts +33 -0
  189. package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js +208 -0
  190. package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js.map +1 -0
  191. package/dist/elements/public/SubscriptionSettingsForm/index.d.ts +9 -0
  192. package/dist/elements/public/SubscriptionSettingsForm/index.js +11 -0
  193. package/dist/elements/public/SubscriptionSettingsForm/index.js.map +1 -0
  194. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/InternalSubscriptionSettingsFormReattemptBypass.d.ts +12 -0
  195. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/InternalSubscriptionSettingsFormReattemptBypass.js +128 -0
  196. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/InternalSubscriptionSettingsFormReattemptBypass.js.map +1 -0
  197. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.d.ts +2 -0
  198. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.js +26 -0
  199. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/globalStyles.js.map +1 -0
  200. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.d.ts +6 -0
  201. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.js +12 -0
  202. package/dist/elements/public/SubscriptionSettingsForm/internal/InternalSubscriptionSettingsFormReattemptBypass/index.js.map +1 -0
  203. package/dist/elements/public/SubscriptionSettingsForm/types.d.ts +3 -0
  204. package/dist/elements/public/SubscriptionSettingsForm/types.js +2 -0
  205. package/dist/elements/public/SubscriptionSettingsForm/types.js.map +1 -0
  206. package/dist/elements/public/TaxForm/TaxForm.js +1 -1
  207. package/dist/elements/public/TaxForm/TaxForm.js.map +1 -1
  208. package/dist/elements/public/TemplateForm/TemplateForm.js +1 -1
  209. package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
  210. package/dist/elements/public/UserForm/UserForm.js +1 -1
  211. package/dist/elements/public/UserForm/UserForm.js.map +1 -1
  212. package/dist/elements/public/index.d.ts +1 -0
  213. package/dist/elements/public/index.defined.d.ts +1 -0
  214. package/dist/elements/public/index.defined.js +1 -0
  215. package/dist/elements/public/index.defined.js.map +1 -1
  216. package/dist/elements/public/index.js +1 -0
  217. package/dist/elements/public/index.js.map +1 -1
  218. package/dist/mixins/themeable.js +13 -7164
  219. package/dist/mixins/themeable.js.map +1 -1
  220. package/package.json +1 -1
  221. package/dist/cdn/shared-40d82f6b.js +0 -1
  222. package/dist/cdn/shared-5504f415.js +0 -11
  223. package/dist/cdn/shared-92bd849f.js +0 -1
  224. package/dist/cdn/shared-b7423eab.js +0 -1
  225. package/dist/cdn/shared-bd194cdf.js +0 -1
@@ -1 +1 @@
1
- import"./shared-8a5e01ae.js";import"./shared-2215e6c8.js";import"./shared-b8e9b536.js";import"./shared-7b167fe9.js";import"./shared-c484320b.js";import"./shared-f2d19582.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as e}from"./shared-7f33a83a.js";import{C as s}from"./shared-5ad8c9a0.js";import{N as i}from"./shared-b7423eab.js";import{T as t,a as r}from"./shared-29e21467.js";import{c as a}from"./shared-4e709717.js";import{i as l}from"./shared-d3bf9ac0.js";import{v as o}from"./shared-b738ee96.js";import"./shared-c52d3772.js";import"./shared-6b8874a7.js";import"./shared-ea316e64.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let n,d,m,h,c=e=>e;const p=t(s(r(i,"access-recovery-form")));class u extends p{constructor(){super(...arguments),this.templates={},this.__checkEmailValidity=()=>!this.errors.some((e=>e.startsWith("email"))),this.__renderEmail=()=>{var s;const i=this.in("fail"),t=this.in("busy"),r=this.in({idle:"snapshot"}),a=this.errors.filter((e=>e.startsWith("email"))).map((e=>e.replace("email","v8n"))),o=a[0]?this.t(a[0]).toString():"";return e(n||(n=c` <div> ${0} <vaadin-email-field error-message="${0}" data-testid="email" class="w-full" label="${0}" value="${0}" ?disabled="${0}" ?readonly="${0}" .checkValidity="${0}" @input="${0}" @keydown="${0}"> </vaadin-email-field> ${0} </div> `),this.renderTemplateOrSlot("email:before"),o,this.t("email").toString(),l(null===(s=this.form.detail)||void 0===s?void 0:s.email),t||r||i||this.disabledSelector.matches("email",!0),this.readonlySelector.matches("email",!0),this.__checkEmailValidity,(e=>{this.edit({detail:{email:e.target.value},type:"email"})}),(e=>{"Enter"===e.key&&this.submit()}),this.renderTemplateOrSlot("email:after"))},this.__renderMessage=()=>{const s=this.in("fail"),i=s?"bg-error-10 text-error":"bg-success-10 text-success",t=s?"lumo:error":"lumo:cog",r=s?"unknown_error":"recover_access_success";return e(d||(d=c` <div> ${0} <p class="leading-s flex items-start text-s rounded p-s ${0}"> <iron-icon class="flex-shrink-0 icon-inline text-l mr-s" icon="${0}"></iron-icon> <foxy-i18n lang="${0}" key="${0}" ns="${0}" data-testid="message"></foxy-i18n> </p> ${0} </div> `),this.renderTemplateOrSlot("message:before"),i,t,this.lang,r,this.ns,this.renderTemplateOrSlot("message:after"))},this.__renderSubmit=()=>{const s=this.in("fail"),i=0===this.errors.length,t=this.in("busy"),r=this.in({idle:"snapshot"}),a=t||r||!i||s;return e(m||(m=c` <div> ${0} <vaadin-button data-testid="submit" class="w-full" theme="primary" ?disabled="${0}" @click="${0}"> <foxy-i18n lang="${0}" key="recover_access" ns="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("submit:before"),a||this.disabledSelector.matches("submit",!0),(()=>this.submit()),this.lang,this.ns,this.renderTemplateOrSlot("submit:after"))}}static get v8n(){return[({detail:e})=>(null==e?void 0:e.email)&&e.email.length>0||"email_required",({detail:e})=>{var s;return o(null!==(s=null==e?void 0:e.email)&&void 0!==s?s:"")||"email_invalid_email"}]}render(){var s,i;const t=this.hiddenSelector,r=this.in({idle:"snapshot"})||this.in("fail"),l=this.in("busy");return e(h||(h=c` <main data-testid="wrapper" aria-live="polite" aria-busy="${0}" class="relative font-lumo text-m leading-m space-y-m"> ${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="busy" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </main> `),l,t.matches("email",!0)?"":this.__renderEmail(),t.matches("message",!0)||!r?"":this.__renderMessage(),t.matches("submit",!0)?"":this.__renderSubmit(),a({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!l}),this.lang,this.ns,null!==(i=null===(s=customElements.get("foxy-spinner"))||void 0===s?void 0:s.defaultNS)&&void 0!==i?i:"")}}customElements.define("foxy-access-recovery-form",u);export{u as AccessRecoveryForm};
1
+ import"./shared-8a5e01ae.js";import"./shared-2215e6c8.js";import"./shared-b8e9b536.js";import"./shared-7b167fe9.js";import"./shared-c484320b.js";import"./shared-f2d19582.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as e}from"./shared-7f33a83a.js";import{C as s}from"./shared-5ad8c9a0.js";import{N as i}from"./shared-222fe491.js";import{T as t,a as r}from"./shared-29e21467.js";import{c as a}from"./shared-4e709717.js";import{i as l}from"./shared-d3bf9ac0.js";import{v as o}from"./shared-b738ee96.js";import"./shared-c52d3772.js";import"./shared-6b8874a7.js";import"./shared-ea316e64.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let n,d,m,h,c=e=>e;const p=t(s(r(i,"access-recovery-form")));class u extends p{constructor(){super(...arguments),this.templates={},this.__checkEmailValidity=()=>!this.errors.some((e=>e.startsWith("email"))),this.__renderEmail=()=>{var s;const i=this.in("fail"),t=this.in("busy"),r=this.in({idle:"snapshot"}),a=this.errors.filter((e=>e.startsWith("email"))).map((e=>e.replace("email","v8n"))),o=a[0]?this.t(a[0]).toString():"";return e(n||(n=c` <div> ${0} <vaadin-email-field error-message="${0}" data-testid="email" class="w-full" label="${0}" value="${0}" ?disabled="${0}" ?readonly="${0}" .checkValidity="${0}" @input="${0}" @keydown="${0}"> </vaadin-email-field> ${0} </div> `),this.renderTemplateOrSlot("email:before"),o,this.t("email").toString(),l(null===(s=this.form.detail)||void 0===s?void 0:s.email),t||r||i||this.disabledSelector.matches("email",!0),this.readonlySelector.matches("email",!0),this.__checkEmailValidity,(e=>{this.edit({detail:{email:e.target.value},type:"email"})}),(e=>{"Enter"===e.key&&this.submit()}),this.renderTemplateOrSlot("email:after"))},this.__renderMessage=()=>{const s=this.in("fail"),i=s?"bg-error-10 text-error":"bg-success-10 text-success",t=s?"lumo:error":"lumo:cog",r=s?"unknown_error":"recover_access_success";return e(d||(d=c` <div> ${0} <p class="leading-s flex items-start text-s rounded p-s ${0}"> <iron-icon class="flex-shrink-0 icon-inline text-l mr-s" icon="${0}"></iron-icon> <foxy-i18n lang="${0}" key="${0}" ns="${0}" data-testid="message"></foxy-i18n> </p> ${0} </div> `),this.renderTemplateOrSlot("message:before"),i,t,this.lang,r,this.ns,this.renderTemplateOrSlot("message:after"))},this.__renderSubmit=()=>{const s=this.in("fail"),i=0===this.errors.length,t=this.in("busy"),r=this.in({idle:"snapshot"}),a=t||r||!i||s;return e(m||(m=c` <div> ${0} <vaadin-button data-testid="submit" class="w-full" theme="primary" ?disabled="${0}" @click="${0}"> <foxy-i18n lang="${0}" key="recover_access" ns="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("submit:before"),a||this.disabledSelector.matches("submit",!0),(()=>this.submit()),this.lang,this.ns,this.renderTemplateOrSlot("submit:after"))}}static get v8n(){return[({detail:e})=>(null==e?void 0:e.email)&&e.email.length>0||"email_required",({detail:e})=>{var s;return o(null!==(s=null==e?void 0:e.email)&&void 0!==s?s:"")||"email_invalid_email"}]}render(){var s,i;const t=this.hiddenSelector,r=this.in({idle:"snapshot"})||this.in("fail"),l=this.in("busy");return e(h||(h=c` <main data-testid="wrapper" aria-live="polite" aria-busy="${0}" class="relative font-lumo text-m leading-m space-y-m"> ${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="busy" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </main> `),l,t.matches("email",!0)?"":this.__renderEmail(),t.matches("message",!0)||!r?"":this.__renderMessage(),t.matches("submit",!0)?"":this.__renderSubmit(),a({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!l}),this.lang,this.ns,null!==(i=null===(s=customElements.get("foxy-spinner"))||void 0===s?void 0:s.defaultNS)&&void 0!==i?i:"")}}customElements.define("foxy-access-recovery-form",u);export{u as AccessRecoveryForm};
@@ -1,4 +1,4 @@
1
- import"./shared-c484320b.js";import"./shared-ea316e64.js";import{h as s}from"./shared-c52d3772.js";import"./shared-b5cbbdd8.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as t}from"./shared-7f33a83a.js";import{C as e}from"./shared-5ad8c9a0.js";import{N as a}from"./shared-b7423eab.js";import{T as c,a as h}from"./shared-29e21467.js";import{c as i}from"./shared-4e709717.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";
1
+ import"./shared-c484320b.js";import"./shared-ea316e64.js";import{h as s}from"./shared-c52d3772.js";import"./shared-b5cbbdd8.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as t}from"./shared-7f33a83a.js";import{C as e}from"./shared-5ad8c9a0.js";import{N as a}from"./shared-222fe491.js";import{T as c,a as h}from"./shared-29e21467.js";import{c as i}from"./shared-4e709717.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";
2
2
  /**
3
3
  @license
4
4
  Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
@@ -1 +1 @@
1
- import"./shared-b8e9b536.js";import"./shared-b28dbc68.js";import"./shared-ef0fc329.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as e}from"./shared-7f33a83a.js";import{C as t}from"./shared-5ad8c9a0.js";import{N as i}from"./shared-b7423eab.js";import{P as s}from"./shared-162fc285.js";import{S as a,T as r,a as d}from"./shared-29e21467.js";import{c as o}from"./shared-4e709717.js";import{i as n}from"./shared-d3bf9ac0.js";import{m as l}from"./shared-002b788f.js";import"./shared-7b167fe9.js";import"./shared-c52d3772.js";import"./shared-6b8874a7.js";import"./shared-e396ec04.js";import"./shared-c484320b.js";import"./shared-2215e6c8.js";import"./shared-a8ced8bf.js";import"./shared-4975f86f.js";import"./shared-dc798bf4.js";import"./shared-4f037e43.js";import"./shared-ea316e64.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";const m=["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","CW","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","SX","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","SS","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"],h=["AL","AK","AS","AZ","AR","AF","AA","AC","AE","AM","AP","CA","CO","CT","DE","DC","FM","FL","GA","GU","HI","ID","IL","IN","IA","KS","KY","LA","ME","MH","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","MP","OH","OK","OR","PA","PR","RI","SC","SD","TN","TX","UT","VT","VI","VA","WA","WV","WI","WY"];let c,_,f,p,u,b=e=>e;const g=a(t(r(d(i,"address-form"))));class y extends g{constructor(){super(...arguments),this.templates={},this.__getValidator=l((e=>()=>!this.errors.some((t=>t.startsWith(e))))),this.__bindField=l((e=>t=>{const i=t.target;this.edit({[e]:i.value})})),this.__maybeRenderComboBox=t=>{var i,s;const{source:a,field:r,custom:d=!1}=t,o=r.replace(/_/,"-");if(this.hiddenSelector.matches(o))return"";const l=customElements.get("foxy-i18n").i18next.getFixedT(this.lang,r);return e(c||(c=b` <div> ${0} <vaadin-combo-box class="w-full" label="${0}" value="${0}" error-message="${0}" data-testid="${0}" item-value-path="code" item-label-path="text" .checkValidity="${0}" .items="${0}" ?allow-custom-value="${0}" ?readonly="${0}" ?disabled="${0}" @change="${0}"> </vaadin-combo-box> ${0} </div> `),this.renderTemplateOrSlot(`${o}:before`),this.t(r).toString(),n(null===(s=null===(i=this.form)||void 0===i?void 0:i[r])||void 0===s?void 0:s.toString()),this.__getErrorMessage(r),o,this.__getValidator(r),a.map((e=>({text:l(e).toString(),code:e}))),d,this.readonlySelector.matches(o,!0),!this.in("idle")||this.disabledSelector.matches(o,!0),this.__bindField(r),this.renderTemplateOrSlot(`${o}:after`))},this.__maybeRenderTextField=t=>{var i,s;const{field:a,wide:r=!1,readonly:d=!1,required:l=!1}=t,m=a.replace(/_/,"-").replace("1","-one").replace("2","-two");return this.hiddenSelector.matches(m)?"":e(_||(_=b` <div class="${0}"> ${0} <vaadin-text-field class="w-full" label="${0}" value="${0}" error-message="${0}" data-testid="${0}" .checkValidity="${0}" ?disabled="${0}" ?required="${0}" ?readonly="${0}" @input="${0}" @keydown="${0}"> </vaadin-text-field> ${0} </div> `),o({"col-span-2":r}),this.renderTemplateOrSlot(`${m}:before`),this.t(a).toString(),n(null===(s=null===(i=this.form)||void 0===i?void 0:i[a])||void 0===s?void 0:s.toString()),this.__getErrorMessage(a),m,this.__getValidator(a),!this.in("idle")||this.disabledSelector.matches(m),l,d||this.readonlySelector.matches(m),this.__bindField(a),this.__handleKeyDown,this.renderTemplateOrSlot(`${m}:after`))},this.__renderTimestamps=()=>{const t=["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])}):""}}));return e(f||(f=b` <div> ${0} <x-property-table .items="${0}" data-testid="timestamps"></x-property-table> ${0} </div> `),this.renderTemplateOrSlot("timestamps:before"),t,this.renderTemplateOrSlot("timestamps:after"))},this.__renderAction=t=>{var i,s;const a=this.in({idle:{template:{dirty:"valid"}}}),r=this.in({idle:{snapshot:{dirty:"valid"}}}),d=!this.in("idle")||this.disabledSelector.matches(t,!0),o=!!(null===(i=this.form)||void 0===i?void 0:i.is_default_shipping),n=!!(null===(s=this.form)||void 0===s?void 0:s.is_default_billing),l=o||n,m=a||r;return e(p||(p=b` <div> ${0} <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(`${t}:before`),this.in("idle")?"primary "+(this.href?"error":"success"):"",t,this.in({idle:"template"})&&!m||d||l,this.__handleActionClick,this.ns,t,this.lang,this.renderTemplateOrSlot(`${t}:after`))}}static get scopedElements(){return{"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-combo-box":customElements.get("vaadin-combo-box"),"x-property-table":s,"vaadin-button":customElements.get("vaadin-button"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n")}}static get v8n(){return[({address_name:e})=>e&&e.length>0||"address_name_required",({address_name:e})=>!e||e.length<=100||"address_name_too_long",({first_name:e})=>!e||e.length<=50||"first_name_too_long",({last_name:e})=>!e||e.length<=50||"last_name_too_long",({region:e})=>!e||e.length<=50||"region_too_long",({city:e})=>!e||e.length<=50||"city_too_long",({phone:e})=>!e||e.length<=50||"phone_too_long",({company:e})=>!e||e.length<=50||"company_too_long",({address2:e})=>!e||e.length<=100||"address2_too_long",({address1:e})=>e&&e.length>0||"address1_required",({address1:e})=>e&&e.length<=100||"address1_too_long",({postal_code:e})=>!e||e.length<=50||"postal_code_too_long"]}connectedCallback(){super.connectedCallback(),customElements.get("foxy-i18n").i18next.loadNamespaces(["country","region"])}render(){var t,i,s,a;const{hiddenSelector:r,lang:d,ns:n}=this,l=this.href?"delete":"create",c=!!(null===(t=this.form)||void 0===t?void 0:t.is_default_shipping),_=!!(null===(i=this.form)||void 0===i?void 0:i.is_default_billing),f=c||_,p=this.in("busy"),g=this.in("fail");return e(u||(u=b` <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> <div class="space-y-l font-lumo text-m leading-m text-body relative" aria-busy="${0}" aria-live="polite" data-testid="wrapper"> <div class="grid grid-cols-2 gap-m"> ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} </div> ${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> `),d,n,this.__handleConfirmHide,this.in("busy"),this.__maybeRenderTextField({field:"address_name",wide:!0,readonly:f,required:!0}),this.__maybeRenderTextField({field:"first_name"}),this.__maybeRenderTextField({field:"last_name"}),this.__maybeRenderTextField({field:"company"}),this.__maybeRenderTextField({field:"phone"}),this.__maybeRenderTextField({field:"address1",wide:!0,required:!0}),this.__maybeRenderTextField({field:"address2",wide:!0}),this.__maybeRenderComboBox({field:"country",source:m}),this.__maybeRenderComboBox({field:"region",source:h,custom:!0}),this.__maybeRenderTextField({field:"city"}),this.__maybeRenderTextField({field:"postal_code"}),!this.data||r.matches("timestamps",!0)?"":this.__renderTimestamps(),r.matches(l,!0)?"":this.__renderAction(l),o({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!p&&!g}),g?"error":p?"busy":"empty",d,this.ns,null!==(a=null===(s=customElements.get("foxy-spinner"))||void 0===s?void 0:s.defaultNS)&&void 0!==a?a:"")}disconnectedCallback(){var e,t;super.disconnectedCallback(),null===(t=(e=this.__getValidator.cache).clear)||void 0===t||t.call(e)}__handleKeyDown(e){"Enter"===e.key&&this.submit()}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")).toString():""}__handleActionClick(e){if(this.in({idle:"snapshot"})){this.renderRoot.querySelector("#confirm").show(e.currentTarget)}else this.submit()}__handleConfirmHide(e){e.detail.cancelled||this.delete()}}customElements.define("foxy-address-form",y);export{y as AddressForm};
1
+ import"./shared-b8e9b536.js";import"./shared-b28dbc68.js";import"./shared-ef0fc329.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as e}from"./shared-7f33a83a.js";import{C as t}from"./shared-5ad8c9a0.js";import{N as i}from"./shared-222fe491.js";import{P as s}from"./shared-162fc285.js";import{S as a,T as r,a as d}from"./shared-29e21467.js";import{c as o}from"./shared-4e709717.js";import{i as n}from"./shared-d3bf9ac0.js";import{m as l}from"./shared-002b788f.js";import"./shared-7b167fe9.js";import"./shared-c52d3772.js";import"./shared-6b8874a7.js";import"./shared-e396ec04.js";import"./shared-c484320b.js";import"./shared-2215e6c8.js";import"./shared-a8ced8bf.js";import"./shared-4975f86f.js";import"./shared-dc798bf4.js";import"./shared-4f037e43.js";import"./shared-ea316e64.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";const m=["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","CW","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","SX","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","SS","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"],h=["AL","AK","AS","AZ","AR","AF","AA","AC","AE","AM","AP","CA","CO","CT","DE","DC","FM","FL","GA","GU","HI","ID","IL","IN","IA","KS","KY","LA","ME","MH","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","MP","OH","OK","OR","PA","PR","RI","SC","SD","TN","TX","UT","VT","VI","VA","WA","WV","WI","WY"];let c,_,f,p,u,g=e=>e;const b=a(t(r(d(i,"address-form"))));class y extends b{constructor(){super(...arguments),this.templates={},this.__getValidator=l((e=>()=>!this.errors.some((t=>t.startsWith(e))))),this.__bindField=l((e=>t=>{const i=t.target;this.edit({[e]:i.value})})),this.__maybeRenderComboBox=t=>{var i,s;const{source:a,field:r,custom:d=!1}=t,o=r.replace(/_/,"-");if(this.hiddenSelector.matches(o))return"";const l=customElements.get("foxy-i18n").i18next.getFixedT(this.lang,r);return e(c||(c=g` <div> ${0} <vaadin-combo-box class="w-full" label="${0}" value="${0}" error-message="${0}" data-testid="${0}" item-value-path="code" item-label-path="text" .checkValidity="${0}" .items="${0}" ?allow-custom-value="${0}" ?readonly="${0}" ?disabled="${0}" @change="${0}"> </vaadin-combo-box> ${0} </div> `),this.renderTemplateOrSlot(`${o}:before`),this.t(r).toString(),n(null===(s=null===(i=this.form)||void 0===i?void 0:i[r])||void 0===s?void 0:s.toString()),this.__getErrorMessage(r),o,this.__getValidator(r),a.map((e=>({text:l(e).toString(),code:e}))),d,this.readonlySelector.matches(o,!0),!this.in("idle")||this.disabledSelector.matches(o,!0),this.__bindField(r),this.renderTemplateOrSlot(`${o}:after`))},this.__maybeRenderTextField=t=>{var i,s;const{field:a,wide:r=!1,readonly:d=!1,required:l=!1}=t,m=a.replace(/_/,"-").replace("1","-one").replace("2","-two");return this.hiddenSelector.matches(m)?"":e(_||(_=g` <div class="${0}"> ${0} <vaadin-text-field class="w-full" label="${0}" value="${0}" error-message="${0}" data-testid="${0}" .checkValidity="${0}" ?disabled="${0}" ?required="${0}" ?readonly="${0}" @input="${0}" @keydown="${0}"> </vaadin-text-field> ${0} </div> `),o({"col-span-2":r}),this.renderTemplateOrSlot(`${m}:before`),this.t(a).toString(),n(null===(s=null===(i=this.form)||void 0===i?void 0:i[a])||void 0===s?void 0:s.toString()),this.__getErrorMessage(a),m,this.__getValidator(a),!this.in("idle")||this.disabledSelector.matches(m),l,d||this.readonlySelector.matches(m),this.__bindField(a),this.__handleKeyDown,this.renderTemplateOrSlot(`${m}:after`))},this.__renderTimestamps=()=>{const t=["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])}):""}}));return e(f||(f=g` <div> ${0} <x-property-table .items="${0}" data-testid="timestamps"></x-property-table> ${0} </div> `),this.renderTemplateOrSlot("timestamps:before"),t,this.renderTemplateOrSlot("timestamps:after"))},this.__renderAction=t=>{var i,s;const a=this.in({idle:{template:{dirty:"valid"}}}),r=this.in({idle:{snapshot:{dirty:"valid"}}}),d=!this.in("idle")||this.disabledSelector.matches(t,!0),o=!!(null===(i=this.form)||void 0===i?void 0:i.is_default_shipping),n=!!(null===(s=this.form)||void 0===s?void 0:s.is_default_billing),l=o||n,m=a||r;return e(p||(p=g` <div> ${0} <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(`${t}:before`),this.in("idle")?""+(this.href?"error":"primary success"):"",t,this.in({idle:"template"})&&!m||d||l,this.__handleActionClick,this.ns,t,this.lang,this.renderTemplateOrSlot(`${t}:after`))}}static get scopedElements(){return{"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-combo-box":customElements.get("vaadin-combo-box"),"x-property-table":s,"vaadin-button":customElements.get("vaadin-button"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n")}}static get v8n(){return[({address_name:e})=>e&&e.length>0||"address_name_required",({address_name:e})=>!e||e.length<=100||"address_name_too_long",({first_name:e})=>!e||e.length<=50||"first_name_too_long",({last_name:e})=>!e||e.length<=50||"last_name_too_long",({region:e})=>!e||e.length<=50||"region_too_long",({city:e})=>!e||e.length<=50||"city_too_long",({phone:e})=>!e||e.length<=50||"phone_too_long",({company:e})=>!e||e.length<=50||"company_too_long",({address2:e})=>!e||e.length<=100||"address2_too_long",({address1:e})=>e&&e.length>0||"address1_required",({address1:e})=>e&&e.length<=100||"address1_too_long",({postal_code:e})=>!e||e.length<=50||"postal_code_too_long"]}connectedCallback(){super.connectedCallback(),customElements.get("foxy-i18n").i18next.loadNamespaces(["country","region"])}render(){var t,i,s,a;const{hiddenSelector:r,lang:d,ns:n}=this,l=this.href?"delete":"create",c=!!(null===(t=this.form)||void 0===t?void 0:t.is_default_shipping),_=!!(null===(i=this.form)||void 0===i?void 0:i.is_default_billing),f=c||_,p=this.in("busy"),b=this.in("fail");return e(u||(u=g` <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> <div class="space-y-l font-lumo text-m leading-m text-body relative" aria-busy="${0}" aria-live="polite" data-testid="wrapper"> <div class="grid grid-cols-2 gap-m"> ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} </div> ${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> `),d,n,this.__handleConfirmHide,this.in("busy"),this.__maybeRenderTextField({field:"address_name",wide:!0,readonly:f,required:!0}),this.__maybeRenderTextField({field:"first_name"}),this.__maybeRenderTextField({field:"last_name"}),this.__maybeRenderTextField({field:"company"}),this.__maybeRenderTextField({field:"phone"}),this.__maybeRenderTextField({field:"address1",wide:!0,required:!0}),this.__maybeRenderTextField({field:"address2",wide:!0}),this.__maybeRenderComboBox({field:"country",source:m}),this.__maybeRenderComboBox({field:"region",source:h,custom:!0}),this.__maybeRenderTextField({field:"city"}),this.__maybeRenderTextField({field:"postal_code"}),!this.data||r.matches("timestamps",!0)?"":this.__renderTimestamps(),r.matches(l,!0)?"":this.__renderAction(l),o({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!p&&!b}),b?"error":p?"busy":"empty",d,this.ns,null!==(a=null===(s=customElements.get("foxy-spinner"))||void 0===s?void 0:s.defaultNS)&&void 0!==a?a:"")}disconnectedCallback(){var e,t;super.disconnectedCallback(),null===(t=(e=this.__getValidator.cache).clear)||void 0===t||t.call(e)}__handleKeyDown(e){"Enter"===e.key&&this.submit()}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")).toString():""}__handleActionClick(e){if(this.in({idle:"snapshot"})){this.renderRoot.querySelector("#confirm").show(e.currentTarget)}else this.submit()}__handleConfirmHide(e){e.detail.cancelled||this.delete()}}customElements.define("foxy-address-form",y);export{y as AddressForm};
@@ -1,4 +1,4 @@
1
- import"./shared-2215e6c8.js";import"./shared-b8e9b536.js";import"./shared-ea316e64.js";import"./shared-c484320b.js";import"./foxy-collection-page.js";import"./foxy-pagination.js";import"./shared-0672e78b.js";import{I as t}from"./shared-92bd849f.js";import"./foxy-copy-to-clipboard.js";import"./foxy-swipe-actions.js";import{_ as e}from"./shared-a8ced8bf.js";import{a as s,T as r}from"./shared-29e21467.js";import{c as i}from"./shared-4e709717.js";import{c as n,h as o}from"./shared-7f33a83a.js";import{C as a}from"./shared-5ad8c9a0.js";import{N as l}from"./shared-b7423eab.js";import"./shared-7b167fe9.js";import"./shared-c52d3772.js";import"./shared-6b8874a7.js";import"./foxy-spinner.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-d519a301.js";import"./shared-11c2efc8.js";import"./shared-4c338ca6.js";import"./shared-0479553e.js";import"./shared-ef0fc329.js";import"./shared-4975f86f.js";import"./shared-dc798bf4.js";import"./shared-d3bf9ac0.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let h,c,d,p,f,u,m,_,b,g,y,v,x,$,w=t=>t;const j=Symbol(),k=Symbol();class S extends(s(t)){constructor(){super(...arguments),this.open=!1}static get properties(){return e(e({},super.properties),{},{open:{type:Boolean,reflect:!0}})}static get styles(){return[...super.styles,n(h||(h=w`.monospace{font-family:monospace}.resize-none{resize:none}.resource{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(18.75 * var(--lumo-space-m)),1fr));grid-gap:1px}.resource>:first-child{grid-column-start:1;grid-column-end:-2}textarea::selection{background:var(--lumo-contrast-10pct)}`))]}static get v8n(){return[...super.v8n,t=>"string"!=typeof t[j]||"invalid_json"]}renderBody(){return o(c||(c=w` <details class="select-none rounded-t-l rounded-b-l overflow-hidden border border-contrast-10" ?open="${0}" @toggle="${0}"> <summary class="${0}"> <div class="flex items-center space-x-s p-s pr-m transition-colors cursor-pointer bg-contrast-5 hover-bg-contrast-10"> <foxy-copy-to-clipboard infer="copy-to-clipboard" text="${0}"> </foxy-copy-to-clipboard> <span class="font-semibold truncate">${0}</span> <span class="flex-1"></span> ${0} ${0} ${0} </div> </summary> ${0} </details> `),this.open,(t=>{const e=t.currentTarget;this.open=e.open}),i({"ring-inset ring-primary-50 rounded-t-l":!0,"focus-outline-none focus-ring-2":!0,"rounded-b-l":!this.open}),this.href||this.parent,this.__renderTitle(),this.in({idle:{snapshot:"dirty"}})||this.in({idle:"template"})?o(d||(d=w` <foxy-internal-create-control infer="create" theme="tertiary-inline success"> </foxy-internal-create-control> `)):"",this.in({idle:{snapshot:"dirty"}})||this.in({idle:{template:"dirty"}})?o(p||(p=w` <vaadin-button data-testid="undo" theme="tertiary-inline contrast" class="px-xs" @click="${0}"> <foxy-i18n infer="" key="undo"></foxy-i18n> </vaadin-button> `),(()=>this.undo())):"",this.in({idle:"snapshot"})?o(f||(f=w` <foxy-internal-delete-control infer="delete" theme="tertiary-inline error"> </foxy-internal-delete-control> `)):"",this.open?this.__renderForm():"")}updated(t){super.updated(t),this.__setTextAreaHeight()}async _fetch(...t){var e;try{const s=t[0]instanceof Request?t[0]:new Request(...t);if("POST"!==s.method)return await super._fetch(...t);const r=null!==(e=this.form[k])&&void 0!==e?e:JSON.stringify(this.form);return await super._fetch(s.url,{method:"POST",body:r})}catch(t){throw["invalid_json"]}}__setTextAreaHeight(){const t=this.renderRoot.querySelector("textarea");t&&(t.style.height="auto",t.style.height=`${t.scrollHeight}px`,t.style.overflowY="hidden")}__renderTitle(){if(!this.href)return o(u||(u=w` <span class="text-tertiary">POST</span> <span>${0}</span> `),this.parent);let t="",e="",s="";try{const r=new URL(this.href);t=r.pathname,t.startsWith("/")&&(t=t.substring(1));const i=t.split("/");t=i.slice(0,i.length-1).join("/"),i.length>1&&(t=`${t}/`,e=i[i.length-1]),s=r.search}catch(e){t=this.href}return o(m||(m=w` ${0} `),[o(_||(_=w`<span>${0}</span>`),t),o(b||(b=w`<span class="text-primary">${0}</span>`),e),o(g||(g=w`<span class="text-tertiary">${0}</span>`),s)])}__renderForm(){return o(y||(y=w` <div class="bg-base"> <div class="${0} border-t border-contrast-5 bg-contrast-10"> <div class="flex-1 flex bg-base"> <div class="monospace bg-contrast-5 leading-s text-s p-m text-tertiary text-right"> ${0} </div> <textarea class="${0}" .value="${0}" @input="${0}">
1
+ import"./shared-2215e6c8.js";import"./shared-b8e9b536.js";import"./shared-ea316e64.js";import"./shared-c484320b.js";import"./foxy-collection-page.js";import"./foxy-pagination.js";import"./shared-0672e78b.js";import{I as t}from"./shared-da6cc488.js";import"./foxy-copy-to-clipboard.js";import"./foxy-swipe-actions.js";import{_ as e}from"./shared-a8ced8bf.js";import{a as s,T as r}from"./shared-29e21467.js";import{c as i}from"./shared-4e709717.js";import{c as n,h as o}from"./shared-7f33a83a.js";import{C as a}from"./shared-5ad8c9a0.js";import{N as l}from"./shared-222fe491.js";import"./shared-7b167fe9.js";import"./shared-c52d3772.js";import"./shared-6b8874a7.js";import"./foxy-spinner.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-d519a301.js";import"./shared-11c2efc8.js";import"./shared-17d24760.js";import"./shared-0479553e.js";import"./shared-ef0fc329.js";import"./shared-4975f86f.js";import"./shared-dc798bf4.js";import"./shared-d3bf9ac0.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let h,c,d,p,f,u,m,_,g,b,y,v,x,$,w=t=>t;const j=Symbol(),k=Symbol();class S extends(s(t)){constructor(){super(...arguments),this.open=!1}static get properties(){return e(e({},super.properties),{},{open:{type:Boolean,reflect:!0}})}static get styles(){return[...super.styles,n(h||(h=w`.monospace{font-family:monospace}.resize-none{resize:none}.resource{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(18.75 * var(--lumo-space-m)),1fr));grid-gap:1px}.resource>:first-child{grid-column-start:1;grid-column-end:-2}textarea::selection{background:var(--lumo-contrast-10pct)}`))]}static get v8n(){return[...super.v8n,t=>"string"!=typeof t[j]||"invalid_json"]}renderBody(){return o(c||(c=w` <details class="select-none rounded-t-l rounded-b-l overflow-hidden border border-contrast-10" ?open="${0}" @toggle="${0}"> <summary class="${0}"> <div class="flex items-center space-x-s p-s pr-m transition-colors cursor-pointer bg-contrast-5 hover-bg-contrast-10"> <foxy-copy-to-clipboard infer="copy-to-clipboard" text="${0}"> </foxy-copy-to-clipboard> <span class="font-semibold truncate">${0}</span> <span class="flex-1"></span> ${0} ${0} ${0} </div> </summary> ${0} </details> `),this.open,(t=>{const e=t.currentTarget;this.open=e.open}),i({"ring-inset ring-primary-50 rounded-t-l":!0,"focus-outline-none focus-ring-2":!0,"rounded-b-l":!this.open}),this.href||this.parent,this.__renderTitle(),this.in({idle:{snapshot:"dirty"}})||this.in({idle:"template"})?o(d||(d=w` <foxy-internal-create-control infer="create" theme="tertiary-inline success"> </foxy-internal-create-control> `)):"",this.in({idle:{snapshot:"dirty"}})||this.in({idle:{template:"dirty"}})?o(p||(p=w` <vaadin-button data-testid="undo" theme="tertiary-inline contrast" class="px-xs" @click="${0}"> <foxy-i18n infer="" key="undo"></foxy-i18n> </vaadin-button> `),(()=>this.undo())):"",this.in({idle:"snapshot"})?o(f||(f=w` <foxy-internal-delete-control infer="delete" theme="tertiary-inline error"> </foxy-internal-delete-control> `)):"",this.open?this.__renderForm():"")}updated(t){super.updated(t),this.__setTextAreaHeight()}async _fetch(...t){var e;try{const s=t[0]instanceof Request?t[0]:new Request(...t);if("POST"!==s.method)return await super._fetch(...t);const r=null!==(e=this.form[k])&&void 0!==e?e:JSON.stringify(this.form);return await super._fetch(s.url,{method:"POST",body:r})}catch(t){throw["invalid_json"]}}__setTextAreaHeight(){const t=this.renderRoot.querySelector("textarea");t&&(t.style.height="auto",t.style.height=`${t.scrollHeight}px`,t.style.overflowY="hidden")}__renderTitle(){if(!this.href)return o(u||(u=w` <span class="text-tertiary">POST</span> <span>${0}</span> `),this.parent);let t="",e="",s="";try{const r=new URL(this.href);t=r.pathname,t.startsWith("/")&&(t=t.substring(1));const i=t.split("/");t=i.slice(0,i.length-1).join("/"),i.length>1&&(t=`${t}/`,e=i[i.length-1]),s=r.search}catch(e){t=this.href}return o(m||(m=w` ${0} `),[o(_||(_=w`<span>${0}</span>`),t),o(g||(g=w`<span class="text-primary">${0}</span>`),e),o(b||(b=w`<span class="text-tertiary">${0}</span>`),s)])}__renderForm(){return o(y||(y=w` <div class="bg-base"> <div class="${0} border-t border-contrast-5 bg-contrast-10"> <div class="flex-1 flex bg-base"> <div class="monospace bg-contrast-5 leading-s text-s p-m text-tertiary text-right"> ${0} </div> <textarea class="${0}" .value="${0}" @input="${0}">
2
2
  </textarea> </div> ${0} </div> </div> `),this.data?"resource":"",this.__formAsString.split("\n").map(((t,e)=>o(v||(v=w`<div>${0}</div>`),e+1))),i({"whitespace-pre leading-s text-s focus-outline-none":!0,"monospace resize-none p-m block w-full select-text":!0,"bg-error-10":this.errors.length>0,"bg-base":0===this.errors.length}),this.__formAsString,(t=>{const e=t.currentTarget;this.__formAsString=e.value}),this.data?o(x||(x=w` <div class="bg-base"> <ul class="bg-contrast-5 p-xs h-full"> ${0} </ul> </div> `),this.__links.map((([t,e])=>this.__renderLink(t,e.href,e.title)))):"")}get __links(){var t,e;const s=Object.entries(null!==(e=null===(t=this.data)||void 0===t?void 0:t._links)&&void 0!==e?e:{}).filter((([t,e])=>"self"!==t&&!Array.isArray(e)&&!e.templated));try{s.sort((([t],[e])=>t.localeCompare(e,this.lang)))}catch(t){s.sort((([t],[e])=>t.localeCompare(e)))}return s}get __formAsString(){const t=this.form,e=t[k],s=t[j];return"string"==typeof s?s:"string"==typeof e?e:JSON.stringify(t,((t,e)=>t.startsWith("_")?void 0:e),2)}set __formAsString(t){this.undo();try{const e=JSON.parse(t);"object"==typeof e&&this.edit(e),this.edit({[k]:t})}catch(e){this.edit({[j]:t})}}__renderLink(t,e,s){return o($||($=w` <li data-testclass="link" class="m-xs rounded overflow-hidden transition-colors hover-bg-contrast-5"> <foxy-swipe-actions> <button class="${0}" @click="${0}"> <div class="flex items-center"> <div class="flex-1 space-y-xs px-s min-w-0 text-s"> <div class="truncate font-semibold">${0}</div> <div class="opacity-75 truncate">${0}</div> </div> <iron-icon class="icon-inline text-xl text-tertiary mr-s flex-shrink-0" icon="icons:chevron-right"> </iron-icon> </div> </button> <div slot="action" class="h-full flex"> <vaadin-button theme="secondary success" class="h-full rounded-none" @click="${0}"> POST </vaadin-button> </div> </foxy-swipe-actions> </li> `),i({"rounded leading-none space-y-xs block text-left w-full py-s":!0,"ring-inset ring-primary-50":!0,"focus-outline-none focus-ring-2 ":!0}),(()=>{const t=new CustomEvent("navigate:get",{bubbles:!0,detail:e});this.dispatchEvent(t)}),s||e,t,(()=>{const t=new CustomEvent("navigate:post",{bubbles:!0,detail:e});this.dispatchEvent(t)}))}}customElements.define("foxy-internal-api-browser-resource-form",S);let T,C,E,U,A,H,O,B,P,G=t=>t;const R=a(r(s(l,"api-browser")));class q extends R{constructor(){super(...arguments),this.home=null,this.__newCurrentUrl=null,this.__history=[],this.__renderItem=({href:t,html:e})=>t?e(C||(C=G`
3
3
  <foxy-internal-api-browser-resource-form infer="" href=${0}>
4
4
  </foxy-internal-api-browser-resource-form>
@@ -1 +1 @@
1
- import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as r}from"./shared-7f33a83a.js";import{a as s}from"./shared-29e21467.js";import{T as e}from"./shared-6003864d.js";import"./shared-c484320b.js";import"./shared-c52d3772.js";import"./shared-ea316e64.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-5ad8c9a0.js";import"./shared-d3bf9ac0.js";import"./shared-b7423eab.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";import"./shared-4e709717.js";let t,a,i=r=>r;class n extends(s(e,"applied-tax-card")){constructor(){super(...arguments),this.__currencyDisplay="",this.__currency=""}render(){return super.render({title:s=>r(t||(t=i`${0}`),s.name),subtitle:s=>r(a||(a=i` <foxy-i18n options="${0}" lang="${0}" key="price" ns="${0}"> </foxy-i18n> <span>&bull;</span> <foxy-i18n options="${0}" lang="${0}" key="percent" ns="${0}"> </foxy-i18n> `),JSON.stringify({amount:`${s.amount} ${this.__currency}`,currencyDisplay:this.__currencyDisplay}),this.lang,this.ns,JSON.stringify({fraction:s.rate/100}),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-applied-tax-card",n);export{n as AppliedTaxCard};
1
+ import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as r}from"./shared-7f33a83a.js";import{a as s}from"./shared-29e21467.js";import{T as e}from"./shared-5643d0ed.js";import"./shared-c484320b.js";import"./shared-c52d3772.js";import"./shared-ea316e64.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-5ad8c9a0.js";import"./shared-d3bf9ac0.js";import"./shared-222fe491.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";import"./shared-4e709717.js";let t,a,i=r=>r;class n extends(s(e,"applied-tax-card")){constructor(){super(...arguments),this.__currencyDisplay="",this.__currency=""}render(){return super.render({title:s=>r(t||(t=i`${0}`),s.name),subtitle:s=>r(a||(a=i` <foxy-i18n options="${0}" lang="${0}" key="price" ns="${0}"> </foxy-i18n> <span>&bull;</span> <foxy-i18n options="${0}" lang="${0}" key="percent" ns="${0}"> </foxy-i18n> `),JSON.stringify({amount:`${s.amount} ${this.__currency}`,currencyDisplay:this.__currencyDisplay}),this.lang,this.ns,JSON.stringify({fraction:s.rate/100}),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-applied-tax-card",n);export{n as AppliedTaxCard};
@@ -1 +1 @@
1
- import"./shared-ea316e64.js";import"./shared-c484320b.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import{h as e}from"./shared-7f33a83a.js";import{C as t}from"./shared-5ad8c9a0.js";import{N as s}from"./shared-b7423eab.js";import{a as i,T as a}from"./shared-29e21467.js";import{c as r}from"./shared-4e709717.js";import"./shared-c52d3772.js";import"./shared-0672e78b.js";import"./shared-a8ced8bf.js";import"./shared-002b788f.js";import"./shared-4f037e43.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let n,o,d,l,m,c,h=e=>e;const p=i(t(a(s)),"attribute-card");class u extends p{constructor(){super(...arguments),this.templates={},this.__renderName=()=>{var t,s;const{data:i}=this;return e(n||(n=h` ${0} <div class="flex items-center space-x-xs text-secondary"> <div class="truncate" title="${0}" data-testid="name"> ${0} </div> ${0} </div> ${0} `),this.renderTemplateOrSlot("name:before"),null!==(t=null==i?void 0:i.name)&&void 0!==t?t:"",null!==(s=null==i?void 0:i.name)&&void 0!==s?s:e(o||(o=h`&nbsp;`)),i&&"public"!==i.visibility?e(d||(d=h`<iron-icon icon="icons:lock" class="icon-inline"></iron-icon>`)):"",this.renderTemplateOrSlot("name:after"))},this.__renderValue=()=>{var t,s;const{data:i}=this;return e(l||(l=h` ${0} <div class="truncate font-semibold" title="${0}" data-testid="value"> ${0} </div> ${0} `),this.renderTemplateOrSlot("value:before"),null!==(t=null==i?void 0:i.value)&&void 0!==t?t:"",null!==(s=null==i?void 0:i.value)&&void 0!==s?s:e(m||(m=h`&nbsp;`)),this.renderTemplateOrSlot("value:after"))}}render(){var t,s;const i=this.hiddenSelector,a=this.in({idle:"snapshot"}),n=this.in({idle:"template"});return e(c||(c=h` <div class="relative text-body text-m font-lumo leading-m" aria-live="polite" aria-busy="${0}"> ${0} ${0} <div class="${0}"> <foxy-spinner data-testid="spinner" class="m-auto" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),this.in("busy"),i.matches("name",!0)?"":this.__renderName(),i.matches("value",!0)?"":this.__renderValue(),r({"transition duration-250 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":a}),this.in("fail")?"error":n?"empty":"busy",this.lang,this.ns,null!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}}customElements.define("foxy-attribute-card",u);export{u as AttributeCard};
1
+ import"./shared-ea316e64.js";import"./shared-c484320b.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import{h as e}from"./shared-7f33a83a.js";import{C as t}from"./shared-5ad8c9a0.js";import{N as s}from"./shared-222fe491.js";import{a as i,T as a}from"./shared-29e21467.js";import{c as r}from"./shared-4e709717.js";import"./shared-c52d3772.js";import"./shared-0672e78b.js";import"./shared-a8ced8bf.js";import"./shared-002b788f.js";import"./shared-4f037e43.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let n,o,d,l,m,c,h=e=>e;const p=i(t(a(s)),"attribute-card");class u extends p{constructor(){super(...arguments),this.templates={},this.__renderName=()=>{var t,s;const{data:i}=this;return e(n||(n=h` ${0} <div class="flex items-center space-x-xs text-secondary"> <div class="truncate" title="${0}" data-testid="name"> ${0} </div> ${0} </div> ${0} `),this.renderTemplateOrSlot("name:before"),null!==(t=null==i?void 0:i.name)&&void 0!==t?t:"",null!==(s=null==i?void 0:i.name)&&void 0!==s?s:e(o||(o=h`&nbsp;`)),i&&"public"!==i.visibility?e(d||(d=h`<iron-icon icon="icons:lock" class="icon-inline"></iron-icon>`)):"",this.renderTemplateOrSlot("name:after"))},this.__renderValue=()=>{var t,s;const{data:i}=this;return e(l||(l=h` ${0} <div class="truncate font-semibold" title="${0}" data-testid="value"> ${0} </div> ${0} `),this.renderTemplateOrSlot("value:before"),null!==(t=null==i?void 0:i.value)&&void 0!==t?t:"",null!==(s=null==i?void 0:i.value)&&void 0!==s?s:e(m||(m=h`&nbsp;`)),this.renderTemplateOrSlot("value:after"))}}render(){var t,s;const i=this.hiddenSelector,a=this.in({idle:"snapshot"}),n=this.in({idle:"template"});return e(c||(c=h` <div class="relative text-body text-m font-lumo leading-m" aria-live="polite" aria-busy="${0}"> ${0} ${0} <div class="${0}"> <foxy-spinner data-testid="spinner" class="m-auto" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),this.in("busy"),i.matches("name",!0)?"":this.__renderName(),i.matches("value",!0)?"":this.__renderValue(),r({"transition duration-250 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":a}),this.in("fail")?"error":n?"empty":"busy",this.lang,this.ns,null!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}}customElements.define("foxy-attribute-card",u);export{u as AttributeCard};
@@ -1 +1 @@
1
- import"./shared-6d2064e9.js";import"./shared-2215e6c8.js";import"./shared-b8e9b536.js";import"./shared-ef0fc329.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import"./shared-c484320b.js";import"./shared-7b167fe9.js";import"./shared-f2d19582.js";import{h as e}from"./shared-7f33a83a.js";import{a as t,T as i,S as s}from"./shared-29e21467.js";import{c as a}from"./shared-4e709717.js";import{C as r}from"./shared-1b3e1a0d.js";import"./shared-4975f86f.js";import"./shared-5504f415.js";import"./shared-d43fc5cc.js";import"./shared-34b11d34.js";import"./shared-bb522838.js";import"./shared-b28dbc68.js";import{m as d}from"./shared-002b788f.js";import{G as l}from"./shared-3a3878c9.js";import"./shared-6b8874a7.js";import{P as n}from"./shared-162fc285.js";import{C as o}from"./shared-5ad8c9a0.js";import{N as h}from"./shared-b7423eab.js";import{i as m}from"./shared-d3bf9ac0.js";import"./shared-c52d3772.js";import"./shared-a8ced8bf.js";import"./shared-ea316e64.js";import"./shared-4f037e43.js";import"./shared-11c2efc8.js";import"./shared-dcbf57e0.js";import"./shared-dc798bf4.js";import"./shared-e3ce88dc.js";import"./shared-923da875.js";import"./shared-e396ec04.js";import"./shared-d6276c83.js";let c,p,f,b,v,u,y=e=>e;const _=t(o(i(s(h))),"attribute-form");class $ extends _{constructor(){super(...arguments),this.templates={},this.__getValidator=d((e=>()=>!this.errors.some((t=>t.startsWith(e))))),this.__bindField=d((e=>t=>{const i=t.target;this.edit({[e]:i.value})})),this.__maybeRenderTextField=({field:t})=>{var i,s;const a=t.replace(/_/,"-");return this.hiddenSelector.matches(a)?"":e(c||(c=y` <div> ${0} <vaadin-text-field class="w-full" label="${0}" value="${0}" error-message="${0}" data-testid="${0}" .checkValidity="${0}" ?disabled="${0}" ?readonly="${0}" @input="${0}" @keydown="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot(`${a}:before`),this.t(t).toString(),m(null===(s=null===(i=this.form)||void 0===i?void 0:i[t])||void 0===s?void 0:s.toString()),this.__getErrorMessage(t),t,this.__getValidator(t),!this.in("idle")||this.disabledSelector.matches(a),this.readonlySelector.matches(a),this.__bindField(t),this.__handleKeyDown,this.renderTemplateOrSlot(`${a}:after`))},this.__renderVisibility=()=>{var t;const{disabledSelector:i,readonlySelector:s,form:r,lang:d,ns:l}=this,n=!this.in("idle"),o=n||i.matches("visibility",!0);return e(p||(p=y` <div> ${0} <x-group frame> <foxy-i18n data-testid="visibility-label" class="${0}" lang="${0}" slot="header" key="visibility" ns="${0}"> </foxy-i18n> <x-choice data-testid="visibility" lang="${0}" ns="${0}" .items="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" @change="${0}"> <foxy-i18n slot="private-label" lang="${0}" key="visibility_private" ns="${0}"> </foxy-i18n> <foxy-i18n slot="restricted-label" lang="${0}" key="visibility_restricted" ns="${0}"> </foxy-i18n> <foxy-i18n ns="${0}" lang="${0}" slot="public-label" key="visibility_public"> </foxy-i18n> </x-choice> </x-group> ${0} </div> `),this.renderTemplateOrSlot("visibility:before"),a({"text-disabled":o}),d,l,d,$.defaultNS,$.__visibilityOptions,null!==(t=null==r?void 0:r.visibility)&&void 0!==t?t:"private",n||i.matches("visibility",!0),s.matches("visibility",!0),this.__handleChoiceChange,d,l,d,l,l,d,this.renderTemplateOrSlot("visibility:after"))},this.__renderTimestamps=()=>{const t=["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])}):""}}));return e(f||(f=y` <div> ${0} <x-property-table .items="${0}" data-testid="timestamps"></x-property-table> ${0} </div> `),this.renderTemplateOrSlot("timestamps:before"),t,this.renderTemplateOrSlot("timestamps:after"))},this.__renderDelete=()=>e(b||(b=y` <div> ${0} <vaadin-button class="w-full" data-testid="delete" theme="error primary" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="delete"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("delete:before"),!this.in("idle")||this.disabledSelector.matches("delete",!0),this.__handleDeleteClick,this.ns,this.lang,this.renderTemplateOrSlot("delete:after")),this.__renderCreate=()=>{const t=this.in({idle:{template:{dirty:"valid"}}}),i=this.in({idle:{snapshot:{dirty:"valid"}}}),s=t||i;return e(v||(v=y` <div> ${0} <vaadin-button data-testid="create" class="w-full" theme="success primary" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="create"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("create:before"),!this.in("idle")||!s||this.disabledSelector.matches("create",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("create:after"))}}static get scopedElements(){return{"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-text-area":customElements.get("vaadin-text-area"),"x-property-table":n,"vaadin-button":customElements.get("vaadin-button"),"x-choice":r,"x-group":l,"foxy-i18n":customElements.get("foxy-i18n"),"foxy-spinner":customElements.get("foxy-spinner")}}static get v8n(){return[({value:e})=>e&&e.length>0||"value_required",({value:e})=>e&&e.length<=1e3||"value_too_long",({name:e})=>e&&e.length>0||"name_required",({name:e})=>e&&e.length<=500||"name_too_long"]}render(){var t,i;const{hiddenSelector:s,data:r,lang:d,ns:l}=this,n=this.in("busy"),o=this.in("fail");return e(u||(u=y` <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> <div class="relative" aria-busy="${0}" aria-live="polite"> <div class="grid grid-cols-1 gap-l"> ${0} ${0} ${0} ${0} ${0} ${0} </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,l,this.__handleConfirmHide,this.in("busy"),this.__maybeRenderTextField({field:"name"}),this.__maybeRenderTextField({field:"value"}),s.matches("visibility",!0)?"":this.__renderVisibility(),s.matches("timestamps",!0)||!r?"":this.__renderTimestamps(),s.matches("delete",!0)||!r?"":this.__renderDelete(),s.matches("create",!0)||r?"":this.__renderCreate(),a({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!n&&!o}),o?"error":n?"busy":"empty",d,l,null!==(i=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==i?i:"")}disconnectedCallback(){var e,t,i,s;super.disconnectedCallback(),null===(t=(e=this.__bindField.cache).clear)||void 0===t||t.call(e),null===(s=(i=this.__getValidator.cache).clear)||void 0===s||s.call(i)}get __confirmDialog(){return this.renderRoot.querySelector("#confirm")}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")).toString():""}__handleKeyDown(e){"Enter"===e.key&&this.submit()}__handleChoiceChange(e){this.edit({visibility:e.detail})}__handleDeleteClick(e){this.__confirmDialog.show(e.currentTarget)}__handleConfirmHide(e){e.detail.cancelled||this.delete()}}$.__visibilityOptions=["private","restricted","public"],customElements.define("foxy-attribute-form",$);export{$ as AttributeForm};
1
+ import"./shared-6d2064e9.js";import"./shared-2215e6c8.js";import"./shared-b8e9b536.js";import"./shared-ef0fc329.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import"./shared-c484320b.js";import"./shared-7b167fe9.js";import"./shared-f2d19582.js";import{h as e}from"./shared-7f33a83a.js";import{a as t,T as i,S as s}from"./shared-29e21467.js";import{c as a}from"./shared-4e709717.js";import{C as r}from"./shared-1b3e1a0d.js";import"./shared-4975f86f.js";import"./shared-196fa627.js";import"./shared-d43fc5cc.js";import"./shared-34b11d34.js";import"./shared-bb522838.js";import"./shared-b28dbc68.js";import{m as d}from"./shared-002b788f.js";import{G as l}from"./shared-3a3878c9.js";import"./shared-6b8874a7.js";import{P as n}from"./shared-162fc285.js";import{C as o}from"./shared-5ad8c9a0.js";import{N as h}from"./shared-222fe491.js";import{i as m}from"./shared-d3bf9ac0.js";import"./shared-c52d3772.js";import"./shared-a8ced8bf.js";import"./shared-ea316e64.js";import"./shared-4f037e43.js";import"./shared-11c2efc8.js";import"./shared-dcbf57e0.js";import"./shared-dc798bf4.js";import"./shared-923da875.js";import"./shared-e396ec04.js";import"./shared-d6276c83.js";let c,f,p,b,v,u,y=e=>e;const _=t(o(i(s(h))),"attribute-form");class $ extends _{constructor(){super(...arguments),this.templates={},this.__getValidator=d((e=>()=>!this.errors.some((t=>t.startsWith(e))))),this.__bindField=d((e=>t=>{const i=t.target;this.edit({[e]:i.value})})),this.__maybeRenderTextField=({field:t})=>{var i,s;const a=t.replace(/_/,"-");return this.hiddenSelector.matches(a)?"":e(c||(c=y` <div> ${0} <vaadin-text-field class="w-full" label="${0}" value="${0}" error-message="${0}" data-testid="${0}" .checkValidity="${0}" ?disabled="${0}" ?readonly="${0}" @input="${0}" @keydown="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot(`${a}:before`),this.t(t).toString(),m(null===(s=null===(i=this.form)||void 0===i?void 0:i[t])||void 0===s?void 0:s.toString()),this.__getErrorMessage(t),t,this.__getValidator(t),!this.in("idle")||this.disabledSelector.matches(a),this.readonlySelector.matches(a),this.__bindField(t),this.__handleKeyDown,this.renderTemplateOrSlot(`${a}:after`))},this.__renderVisibility=()=>{var t;const{disabledSelector:i,readonlySelector:s,form:r,lang:d,ns:l}=this,n=!this.in("idle"),o=n||i.matches("visibility",!0);return e(f||(f=y` <div> ${0} <x-group frame> <foxy-i18n data-testid="visibility-label" class="${0}" lang="${0}" slot="header" key="visibility" ns="${0}"> </foxy-i18n> <x-choice data-testid="visibility" lang="${0}" ns="${0}" .items="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" @change="${0}"> <foxy-i18n slot="private-label" lang="${0}" key="visibility_private" ns="${0}"> </foxy-i18n> <foxy-i18n slot="restricted-label" lang="${0}" key="visibility_restricted" ns="${0}"> </foxy-i18n> <foxy-i18n ns="${0}" lang="${0}" slot="public-label" key="visibility_public"> </foxy-i18n> </x-choice> </x-group> ${0} </div> `),this.renderTemplateOrSlot("visibility:before"),a({"text-disabled":o}),d,l,d,$.defaultNS,$.__visibilityOptions,null!==(t=null==r?void 0:r.visibility)&&void 0!==t?t:"private",n||i.matches("visibility",!0),s.matches("visibility",!0),this.__handleChoiceChange,d,l,d,l,l,d,this.renderTemplateOrSlot("visibility:after"))},this.__renderTimestamps=()=>{const t=["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])}):""}}));return e(p||(p=y` <div> ${0} <x-property-table .items="${0}" data-testid="timestamps"></x-property-table> ${0} </div> `),this.renderTemplateOrSlot("timestamps:before"),t,this.renderTemplateOrSlot("timestamps:after"))},this.__renderDelete=()=>e(b||(b=y` <div> ${0} <vaadin-button class="w-full" data-testid="delete" theme="error" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="delete"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("delete:before"),!this.in("idle")||this.disabledSelector.matches("delete",!0),this.__handleDeleteClick,this.ns,this.lang,this.renderTemplateOrSlot("delete:after")),this.__renderCreate=()=>{const t=this.in({idle:{template:{dirty:"valid"}}}),i=this.in({idle:{snapshot:{dirty:"valid"}}}),s=t||i;return e(v||(v=y` <div> ${0} <vaadin-button data-testid="create" class="w-full" theme="success primary" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="create"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("create:before"),!this.in("idle")||!s||this.disabledSelector.matches("create",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("create:after"))}}static get scopedElements(){return{"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-text-area":customElements.get("vaadin-text-area"),"x-property-table":n,"vaadin-button":customElements.get("vaadin-button"),"x-choice":r,"x-group":l,"foxy-i18n":customElements.get("foxy-i18n"),"foxy-spinner":customElements.get("foxy-spinner")}}static get v8n(){return[({value:e})=>e&&e.length>0||"value_required",({value:e})=>e&&e.length<=1e3||"value_too_long",({name:e})=>e&&e.length>0||"name_required",({name:e})=>e&&e.length<=500||"name_too_long"]}render(){var t,i;const{hiddenSelector:s,data:r,lang:d,ns:l}=this,n=this.in("busy"),o=this.in("fail");return e(u||(u=y` <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> <div class="relative" aria-busy="${0}" aria-live="polite"> <div class="grid grid-cols-1 gap-l"> ${0} ${0} ${0} ${0} ${0} ${0} </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,l,this.__handleConfirmHide,this.in("busy"),this.__maybeRenderTextField({field:"name"}),this.__maybeRenderTextField({field:"value"}),s.matches("visibility",!0)?"":this.__renderVisibility(),s.matches("timestamps",!0)||!r?"":this.__renderTimestamps(),s.matches("delete",!0)||!r?"":this.__renderDelete(),s.matches("create",!0)||r?"":this.__renderCreate(),a({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!n&&!o}),o?"error":n?"busy":"empty",d,l,null!==(i=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==i?i:"")}disconnectedCallback(){var e,t,i,s;super.disconnectedCallback(),null===(t=(e=this.__bindField.cache).clear)||void 0===t||t.call(e),null===(s=(i=this.__getValidator.cache).clear)||void 0===s||s.call(i)}get __confirmDialog(){return this.renderRoot.querySelector("#confirm")}__getErrorMessage(e){const t=this.errors.find((t=>t.startsWith(e)));return t?this.t(t.replace(e,"v8n")).toString():""}__handleKeyDown(e){"Enter"===e.key&&this.submit()}__handleChoiceChange(e){this.edit({visibility:e.detail})}__handleDeleteClick(e){this.__confirmDialog.show(e.currentTarget)}__handleConfirmHide(e){e.detail.cancelled||this.delete()}}$.__visibilityOptions=["private","restricted","public"],customElements.define("foxy-attribute-form",$);export{$ as AttributeForm};
@@ -1 +1 @@
1
- import"./shared-b8e9b536.js";import"./shared-ea316e64.js";import"./shared-c484320b.js";import{L as t,h as e}from"./shared-7f33a83a.js";import{T as a,S as s,a as r}from"./shared-29e21467.js";import{c as n}from"./shared-4e709717.js";import{p as i,W as o}from"./shared-5b55627c.js";import{s as d}from"./shared-bc7f58ef.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import"./shared-7b167fe9.js";import"./shared-f2d19582.js";import"./shared-1b3e1a0d.js";import"./shared-4975f86f.js";import"./shared-5504f415.js";import"./shared-d43fc5cc.js";import"./shared-2215e6c8.js";import"./shared-34b11d34.js";import"./shared-bb522838.js";import"./shared-b28dbc68.js";import{G as l}from"./shared-3a3878c9.js";import"./shared-6b8874a7.js";import{C as h}from"./shared-5ad8c9a0.js";import{N as c}from"./shared-b7423eab.js";import{i as m}from"./shared-d3bf9ac0.js";import"./shared-c52d3772.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-6d2064e9.js";import"./shared-11c2efc8.js";import"./shared-dcbf57e0.js";import"./shared-dc798bf4.js";import"./shared-e3ce88dc.js";import"./shared-923da875.js";import"./shared-e396ec04.js";import"./shared-d6276c83.js";let u,p,g,b,f,v=t=>t;class y extends(a(t)){constructor(){super(...arguments),this.checkAvailability=()=>!0,this.readonly=!1,this.disabled=!1,this.value="",this.start="",this.lang=""}static get properties(){return{checkAvailability:{attribute:!1},readonly:{type:Boolean,reflect:!0},disabled:{type:Boolean,reflect:!0},value:{type:String},start:{type:String},lang:{type:String}}}render(){var t,a;const s=new Date(null!==(a=null!==(t=this.__startAsDate)&&void 0!==t?t:this.__valueAsDate)&&void 0!==a?a:Date.now()),r=new Date(s),i=new Date(s),o=this.lang||navigator.language;return r.setMonth(r.getMonth()-1),i.setMonth(i.getMonth()+1),e(u||(u=v` <div class="text-m text-body font-lumo leading-m"> <div class="grid p-xs" style="grid-template:auto/max-content auto max-content"> <vaadin-button data-testid="prev" aria-label="${0}" theme="icon tertiary" class="px-xs" ?disabled="${0}" @click="${0}"> <iron-icon icon="icons:chevron-left"></iron-icon> </vaadin-button> <span data-testid="month" class="${0}"> ${0} </span> <vaadin-button data-testid="next" aria-label="${0}" theme="icon tertiary" class="px-xs" ?disabled="${0}" @click="${0}"> <iron-icon icon="icons:chevron-right"></iron-icon> </vaadin-button> </div> ${0} </div> `),r.toLocaleString(o,{year:"numeric",month:"long"}),this.disabled,this.__handlePrevButtonClick,n({"text-center self-center font-medium":!0,"text-disabled":this.disabled}),s.toLocaleDateString(o,{month:"long",year:"numeric"}),i.toLocaleString(o,{year:"numeric",month:"long"}),this.disabled,this.__handleNextButtonClick,this.__renderMonth(s.getMonth(),s.getFullYear()))}get __valueAsDate(){return i(this.value)}set __valueAsDate(t){this.value=t?d(t):""}get __startAsDate(){return i(this.start)}set __startAsDate(t){this.start=t?d(t):""}__renderMonth(t,a){var s,r,i;const o=this.lang||navigator.language,d=new Date(a,t,1,0,0,0,0),l=[];for(let t=0;t<7;++t){const a=new Date;for(;a.getDay()!==t;)a.setDate(a.getDate()+1);l.push(e(p||(p=v` <span class="${0}"> ${0} </span> `),n({"self-center text-xxs uppercase font-medium tracking-wider":!0,"text-secondary":!this.disabled,"text-disabled":this.disabled}),a.toLocaleString(o,{weekday:"short"})))}for(;d.getMonth()===t;){const n=d.getFullYear()===(null===(s=this.__valueAsDate)||void 0===s?void 0:s.getFullYear())&&d.getMonth()===(null===(r=this.__valueAsDate)||void 0===r?void 0:r.getMonth())&&d.getDate()===(null===(i=this.__valueAsDate)||void 0===i?void 0:i.getDate());l.push(e(g||(g=v` <div style="grid-column:${0}" data-testclass="day-of-month"> ${0} </div> `),d.getDay()+1,this.__renderDate(d.getDate(),t,a,n))),d.setDate(d.getDate()+1)}return e(b||(b=v` <form data-testid="grid" class="grid gap-s p-s text-center" style="grid-template:auto/repeat(7,1fr)"> ${0} </form> `),l)}__renderDate(t,a,s,r=!1){const i=this.disabled||this.readonly||!this.checkAvailability(new Date(s,a,t));return e(f||(f=v` <label class="${0}"> <input name="date" type="radio" value="${0}" class="sr-only" ?disabled="${0}" @change="${0}"> ${0} </label> `),n({"font-tnum select-none relative flex h-m items-center justify-center rounded":!0,"cursor-pointer focus-within-ring-2 focus-within-ring-primary-50":!i,"bg-contrast-5 hover-bg-contrast-10":!r&&!i,"bg-primary text-primary-contrast":r&&!i,"border border-dashed border-contrast-20 text-disabled":!r&&i,"border border-dashed border-primary text-primary":r&&i}),t,this.readonly||this.disabled||i,(()=>{this.__valueAsDate=new Date(s,a,t),this.dispatchEvent(new CustomEvent("change"))}),t)}__handlePrevButtonClick(){var t;const e=new Date(null!==(t=this.start)&&void 0!==t?t:Date.now());this.__startAsDate=new Date(e.setMonth(e.getMonth()-1))}__handleNextButtonClick(){var t;const e=new Date(null!==(t=this.start)&&void 0!==t?t:Date.now());this.__startAsDate=new Date(e.setMonth(e.getMonth()+1))}}customElements.define("foxy-internal-calendar",y);let _,x,$,D,j=t=>t;const w=s(a(h(r(c,"cancellation-form"))));class S extends w{constructor(){super(...arguments),this.templates={},this.__renderWarning=()=>{const{lang:t,ns:a}=this;return e(_||(_=j` <div> ${0} <x-warning> <foxy-i18n data-testid="warning" class="${0}" lang="${0}" key="end_subscription_explainer" ns="${0}"> </foxy-i18n> </x-warning> ${0} </div> `),this.renderTemplateOrSlot("warning:before"),n({"text-disabled":!this.in({idle:"snapshot"})}),t,a,this.renderTemplateOrSlot("warning:after"))},this.__renderEndDate=()=>{var t,a;const{constructor:s,lang:r,ns:i}=this,o=s.__tomorrow.getTime(),d=this.in({idle:"snapshot"});return e(x||(x=j` <div> ${0} <x-group frame> <foxy-i18n data-testid="end-date-label" class="${0}" slot="header" lang="${0}" key="end_date" ns="${0}"> </foxy-i18n> <foxy-internal-calendar data-testid="end-date" .checkAvailability="${0}" ?disabled="${0}" ?readonly="${0}" value="${0}" lang="${0}" @change="${0}"> </foxy-internal-calendar> </x-group> ${0} </div> `),this.renderTemplateOrSlot("end-date:before"),n({"text-disabled":!d}),r,i,(t=>t.getTime()>=o),!d||this.disabledSelector.matches("end-date",!0),!!(null===(t=this.data)||void 0===t?void 0:t.end_date)||this.readonlySelector.matches("end-date",!0),m(null!==(a=this.form.end_date)&&void 0!==a?a:void 0),r,(t=>{this.edit({end_date:t.target.value})}),this.renderTemplateOrSlot("end-date:after"))},this.__renderSubmit=()=>{const t=this.in({idle:{snapshot:{clean:"valid"}}})||this.in({idle:{snapshot:{dirty:"valid"}}});return e($||($=j` <div> ${0} <vaadin-button data-testid="submit" ?disabled="${0}" theme="primary error" class="w-full" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="end_subscription"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("submit:before"),!t||this.disabledSelector.matches("submit",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("submit:after"))}}static get scopedElements(){return{"foxy-internal-calendar":customElements.get("foxy-internal-calendar"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"vaadin-button":customElements.get("vaadin-button"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"x-warning":o,"x-group":l}}static get v8n(){return[({end_date:t})=>!!t||"end_date_required"]}render(){var t,a;const s=this.hiddenSelector,r=this.in("busy"),i=this.in("fail");return e(D||(D=j` <div class="space-y-l font-lumo text-m text-body leading-m relative"> ${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> `),s.matches("warning",!0)?"":this.__renderWarning(),s.matches("end-date",!0)?"":this.__renderEndDate(),s.matches("submit",!0)?"":this.__renderSubmit(),n({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!r&&!i}),i?"error":r?"busy":"empty",this.lang,this.ns,null!==(a=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==a?a:"")}submit(){if(!this.form.end_date){const t=this.constructor;this.edit({end_date:d(t.__tomorrow)})}super.submit()}static get __tomorrow(){const t=new Date;return t.setDate(t.getDate()+1),t.setHours(0,0,0,0),t}}customElements.define("foxy-cancellation-form",S);export{S as CancellationForm};
1
+ import"./shared-b8e9b536.js";import"./shared-ea316e64.js";import"./shared-c484320b.js";import{L as t,h as e}from"./shared-7f33a83a.js";import{T as a,S as s,a as r}from"./shared-29e21467.js";import{c as n}from"./shared-4e709717.js";import{p as i,W as o}from"./shared-5b55627c.js";import{s as d}from"./shared-bc7f58ef.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import"./shared-7b167fe9.js";import"./shared-f2d19582.js";import"./shared-1b3e1a0d.js";import"./shared-4975f86f.js";import"./shared-196fa627.js";import"./shared-d43fc5cc.js";import"./shared-2215e6c8.js";import"./shared-34b11d34.js";import"./shared-bb522838.js";import"./shared-b28dbc68.js";import{G as l}from"./shared-3a3878c9.js";import"./shared-6b8874a7.js";import{C as h}from"./shared-5ad8c9a0.js";import{N as c}from"./shared-222fe491.js";import{i as m}from"./shared-d3bf9ac0.js";import"./shared-c52d3772.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-6d2064e9.js";import"./shared-11c2efc8.js";import"./shared-dcbf57e0.js";import"./shared-dc798bf4.js";import"./shared-923da875.js";import"./shared-e396ec04.js";import"./shared-d6276c83.js";let u,p,g,b,f,v=t=>t;class y extends(a(t)){constructor(){super(...arguments),this.checkAvailability=()=>!0,this.readonly=!1,this.disabled=!1,this.value="",this.start="",this.lang=""}static get properties(){return{checkAvailability:{attribute:!1},readonly:{type:Boolean,reflect:!0},disabled:{type:Boolean,reflect:!0},value:{type:String},start:{type:String},lang:{type:String}}}render(){var t,a;const s=new Date(null!==(a=null!==(t=this.__startAsDate)&&void 0!==t?t:this.__valueAsDate)&&void 0!==a?a:Date.now()),r=new Date(s),i=new Date(s),o=this.lang||navigator.language;return r.setMonth(r.getMonth()-1),i.setMonth(i.getMonth()+1),e(u||(u=v` <div class="text-m text-body font-lumo leading-m"> <div class="grid p-xs" style="grid-template:auto/max-content auto max-content"> <vaadin-button data-testid="prev" aria-label="${0}" theme="icon tertiary" class="px-xs" ?disabled="${0}" @click="${0}"> <iron-icon icon="icons:chevron-left"></iron-icon> </vaadin-button> <span data-testid="month" class="${0}"> ${0} </span> <vaadin-button data-testid="next" aria-label="${0}" theme="icon tertiary" class="px-xs" ?disabled="${0}" @click="${0}"> <iron-icon icon="icons:chevron-right"></iron-icon> </vaadin-button> </div> ${0} </div> `),r.toLocaleString(o,{year:"numeric",month:"long"}),this.disabled,this.__handlePrevButtonClick,n({"text-center self-center font-medium":!0,"text-disabled":this.disabled}),s.toLocaleDateString(o,{month:"long",year:"numeric"}),i.toLocaleString(o,{year:"numeric",month:"long"}),this.disabled,this.__handleNextButtonClick,this.__renderMonth(s.getMonth(),s.getFullYear()))}get __valueAsDate(){return i(this.value)}set __valueAsDate(t){this.value=t?d(t):""}get __startAsDate(){return i(this.start)}set __startAsDate(t){this.start=t?d(t):""}__renderMonth(t,a){var s,r,i;const o=this.lang||navigator.language,d=new Date(a,t,1,0,0,0,0),l=[];for(let t=0;t<7;++t){const a=new Date;for(;a.getDay()!==t;)a.setDate(a.getDate()+1);l.push(e(p||(p=v` <span class="${0}"> ${0} </span> `),n({"self-center text-xxs uppercase font-medium tracking-wider":!0,"text-secondary":!this.disabled,"text-disabled":this.disabled}),a.toLocaleString(o,{weekday:"short"})))}for(;d.getMonth()===t;){const n=d.getFullYear()===(null===(s=this.__valueAsDate)||void 0===s?void 0:s.getFullYear())&&d.getMonth()===(null===(r=this.__valueAsDate)||void 0===r?void 0:r.getMonth())&&d.getDate()===(null===(i=this.__valueAsDate)||void 0===i?void 0:i.getDate());l.push(e(g||(g=v` <div style="grid-column:${0}" data-testclass="day-of-month"> ${0} </div> `),d.getDay()+1,this.__renderDate(d.getDate(),t,a,n))),d.setDate(d.getDate()+1)}return e(b||(b=v` <form data-testid="grid" class="grid gap-s p-s text-center" style="grid-template:auto/repeat(7,1fr)"> ${0} </form> `),l)}__renderDate(t,a,s,r=!1){const i=this.disabled||this.readonly||!this.checkAvailability(new Date(s,a,t));return e(f||(f=v` <label class="${0}"> <input name="date" type="radio" value="${0}" class="sr-only" ?disabled="${0}" @change="${0}"> ${0} </label> `),n({"font-tnum select-none relative flex h-m items-center justify-center rounded":!0,"cursor-pointer focus-within-ring-2 focus-within-ring-primary-50":!i,"bg-contrast-5 hover-bg-contrast-10":!r&&!i,"bg-primary text-primary-contrast":r&&!i,"border border-dashed border-contrast-20 text-disabled":!r&&i,"border border-dashed border-primary text-primary":r&&i}),t,this.readonly||this.disabled||i,(()=>{this.__valueAsDate=new Date(s,a,t),this.dispatchEvent(new CustomEvent("change"))}),t)}__handlePrevButtonClick(){var t;const e=new Date(null!==(t=this.start)&&void 0!==t?t:Date.now());this.__startAsDate=new Date(e.setMonth(e.getMonth()-1))}__handleNextButtonClick(){var t;const e=new Date(null!==(t=this.start)&&void 0!==t?t:Date.now());this.__startAsDate=new Date(e.setMonth(e.getMonth()+1))}}customElements.define("foxy-internal-calendar",y);let _,x,$,D,j=t=>t;const w=s(a(h(r(c,"cancellation-form"))));class S extends w{constructor(){super(...arguments),this.templates={},this.__renderWarning=()=>{const{lang:t,ns:a}=this;return e(_||(_=j` <div> ${0} <x-warning> <foxy-i18n data-testid="warning" class="${0}" lang="${0}" key="end_subscription_explainer" ns="${0}"> </foxy-i18n> </x-warning> ${0} </div> `),this.renderTemplateOrSlot("warning:before"),n({"text-disabled":!this.in({idle:"snapshot"})}),t,a,this.renderTemplateOrSlot("warning:after"))},this.__renderEndDate=()=>{var t,a;const{constructor:s,lang:r,ns:i}=this,o=s.__tomorrow.getTime(),d=this.in({idle:"snapshot"});return e(x||(x=j` <div> ${0} <x-group frame> <foxy-i18n data-testid="end-date-label" class="${0}" slot="header" lang="${0}" key="end_date" ns="${0}"> </foxy-i18n> <foxy-internal-calendar data-testid="end-date" .checkAvailability="${0}" ?disabled="${0}" ?readonly="${0}" value="${0}" lang="${0}" @change="${0}"> </foxy-internal-calendar> </x-group> ${0} </div> `),this.renderTemplateOrSlot("end-date:before"),n({"text-disabled":!d}),r,i,(t=>t.getTime()>=o),!d||this.disabledSelector.matches("end-date",!0),!!(null===(t=this.data)||void 0===t?void 0:t.end_date)||this.readonlySelector.matches("end-date",!0),m(null!==(a=this.form.end_date)&&void 0!==a?a:void 0),r,(t=>{this.edit({end_date:t.target.value})}),this.renderTemplateOrSlot("end-date:after"))},this.__renderSubmit=()=>{const t=this.in({idle:{snapshot:{clean:"valid"}}})||this.in({idle:{snapshot:{dirty:"valid"}}});return e($||($=j` <div> ${0} <vaadin-button data-testid="submit" ?disabled="${0}" theme="primary error" class="w-full" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="end_subscription"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot("submit:before"),!t||this.disabledSelector.matches("submit",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("submit:after"))}}static get scopedElements(){return{"foxy-internal-calendar":customElements.get("foxy-internal-calendar"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"vaadin-button":customElements.get("vaadin-button"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"x-warning":o,"x-group":l}}static get v8n(){return[({end_date:t})=>!!t||"end_date_required"]}render(){var t,a;const s=this.hiddenSelector,r=this.in("busy"),i=this.in("fail");return e(D||(D=j` <div class="space-y-l font-lumo text-m text-body leading-m relative"> ${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> `),s.matches("warning",!0)?"":this.__renderWarning(),s.matches("end-date",!0)?"":this.__renderEndDate(),s.matches("submit",!0)?"":this.__renderSubmit(),n({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!r&&!i}),i?"error":r?"busy":"empty",this.lang,this.ns,null!==(a=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==a?a:"")}submit(){if(!this.form.end_date){const t=this.constructor;this.edit({end_date:d(t.__tomorrow)})}super.submit()}static get __tomorrow(){const t=new Date;return t.setDate(t.getDate()+1),t.setHours(0,0,0,0),t}}customElements.define("foxy-cancellation-form",S);export{S as CancellationForm};
@@ -1 +1 @@
1
- import"./foxy-spinner.js";import{_ as e}from"./shared-a8ced8bf.js";import{h as t}from"./shared-7f33a83a.js";import{a as s}from"./shared-29e21467.js";import{C as r}from"./shared-5ad8c9a0.js";import{F as n}from"./shared-002b788f.js";import{N as a}from"./shared-b7423eab.js";import{r as i}from"./shared-d519a301.js";import{s as o}from"./shared-11c2efc8.js";import"./shared-c484320b.js";import"./shared-c52d3772.js";import"./shared-ea316e64.js";import"./shared-0672e78b.js";import"./shared-4f037e43.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let l,d=e=>e;const h=r(s(a));class p extends h{constructor(){super(),this.props={},this.__pageFetchEventHandler=e=>this.__handlePageFetchEvent(e),this.item="foxy-null"}static get properties(){return e(e({},super.properties),{},{props:{type:Object},item:{type:String}})}get item(){return this.__item}set item(e){this.__renderItem="string"==typeof e?new Function("ctx",`return ctx.html\`\n <${e}\n disabledcontrols=\${ctx.disabledControls.toString()}\n readonlycontrols=\${ctx.readonlyControls.toString()}\n hiddencontrols=\${ctx.hiddenControls.toString()}\n data-testclass="items"\n related=\${JSON.stringify(ctx.related)}\n parent=\${ctx.parent}\n group=\${ctx.group}\n href=\${ctx.href}\n lang=\${ctx.lang}\n ns="\${ctx.ns} \${customElements.get('${e}')?.defaultNS ?? ''}"\n ?disabled=\${ctx.disabled}\n ?readonly=\${ctx.readonly}\n ?hidden=\${ctx.hidden}\n .templates=\${ctx.templates}\n ...=\${ctx.spread(ctx.props)}\n >\n </${e}>\``):e,this.__item=e,this.requestUpdate()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.addEventListener("fetch",this.__pageFetchEventHandler)}render(){const e=this.__items.map((e=>({key:e._links.self.href,href:e._links.self.href,data:e})));return this.in("busy")?e.push({key:"stalled",href:"foxy://collection-page/stall",data:null}):this.in("fail")?e.push({key:"failed",href:"foxy://collection-page/fail",data:null}):(this.in({idle:"template"})||0===this.__items.length)&&e.push({key:"empty",href:"",data:null}),t(l||(l=d`${0}`),i(e,(e=>e.key),((s,r)=>{var n,a,i,l,d;return null===(n=this.__renderItem)||void 0===n?void 0:n.call(this,{disabledControls:this.disabledControls,readonlyControls:this.readonlyControls,hiddenControls:this.hiddenControls,templates:this.templates,disabled:this.disabled,readonly:this.readonly,previous:null!==(i=null===(a=e[r-1])||void 0===a?void 0:a.data)&&void 0!==i?i:null,related:this.related,hidden:this.hidden,parent:this.href,spread:o,props:this.props,group:this.group,lang:this.lang,data:s.data,href:s.href,next:null!==(d=null===(l=e[r+1])||void 0===l?void 0:l.data)&&void 0!==d?d:null,ns:this.ns,html:t})})))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("fetch",this.__pageFetchEventHandler)}get __items(){var e,t;return Array.from(Object.values(null!==(t=null===(e=this.form)||void 0===e?void 0:e._embedded)&&void 0!==t?t:{})).reduce(((e,t)=>[...e,...t]),[])}__handlePageFetchEvent(e){if(!(e instanceof n)||e.target===this)return;const{method:t,url:s}=e.request;return"GET"===t?"foxy://collection-page/stall"===s?this.__stallRequest(e):"foxy://collection-page/fail"===s?this.__failRequest(e):void 0:void 0}__stallRequest(e){e.stopImmediatePropagation(),e.respondWith(new Promise((()=>{})))}__failRequest(e){e.stopImmediatePropagation(),e.respondWith(Promise.resolve(new Response(null,{status:500})))}}customElements.define("foxy-collection-page",p);export{p as CollectionPage};
1
+ import"./foxy-spinner.js";import{_ as e}from"./shared-a8ced8bf.js";import{h as t}from"./shared-7f33a83a.js";import{a as s}from"./shared-29e21467.js";import{C as r}from"./shared-5ad8c9a0.js";import{F as n}from"./shared-002b788f.js";import{N as a}from"./shared-222fe491.js";import{r as i}from"./shared-d519a301.js";import{s as o}from"./shared-11c2efc8.js";import"./shared-c484320b.js";import"./shared-c52d3772.js";import"./shared-ea316e64.js";import"./shared-0672e78b.js";import"./shared-4f037e43.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let l,d=e=>e;const h=r(s(a));class p extends h{constructor(){super(),this.props={},this.__pageFetchEventHandler=e=>this.__handlePageFetchEvent(e),this.item="foxy-null"}static get properties(){return e(e({},super.properties),{},{props:{type:Object},item:{type:String}})}get item(){return this.__item}set item(e){this.__renderItem="string"==typeof e?new Function("ctx",`return ctx.html\`\n <${e}\n disabledcontrols=\${ctx.disabledControls.toString()}\n readonlycontrols=\${ctx.readonlyControls.toString()}\n hiddencontrols=\${ctx.hiddenControls.toString()}\n data-testclass="items"\n related=\${JSON.stringify(ctx.related)}\n parent=\${ctx.parent}\n group=\${ctx.group}\n href=\${ctx.href}\n lang=\${ctx.lang}\n ns="\${ctx.ns} \${customElements.get('${e}')?.defaultNS ?? ''}"\n ?disabled=\${ctx.disabled}\n ?readonly=\${ctx.readonly}\n ?hidden=\${ctx.hidden}\n .templates=\${ctx.templates}\n ...=\${ctx.spread(ctx.props)}\n >\n </${e}>\``):e,this.__item=e,this.requestUpdate()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.addEventListener("fetch",this.__pageFetchEventHandler)}render(){const e=this.__items.map((e=>({key:e._links.self.href,href:e._links.self.href,data:e})));return this.in("busy")?e.push({key:"stalled",href:"foxy://collection-page/stall",data:null}):this.in("fail")?e.push({key:"failed",href:"foxy://collection-page/fail",data:null}):(this.in({idle:"template"})||0===this.__items.length)&&e.push({key:"empty",href:"",data:null}),t(l||(l=d`${0}`),i(e,(e=>e.key),((s,r)=>{var n,a,i,l,d;return null===(n=this.__renderItem)||void 0===n?void 0:n.call(this,{disabledControls:this.disabledControls,readonlyControls:this.readonlyControls,hiddenControls:this.hiddenControls,templates:this.templates,disabled:this.disabled,readonly:this.readonly,previous:null!==(i=null===(a=e[r-1])||void 0===a?void 0:a.data)&&void 0!==i?i:null,related:this.related,hidden:this.hidden,parent:this.href,spread:o,props:this.props,group:this.group,lang:this.lang,data:s.data,href:s.href,next:null!==(d=null===(l=e[r+1])||void 0===l?void 0:l.data)&&void 0!==d?d:null,ns:this.ns,html:t})})))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("fetch",this.__pageFetchEventHandler)}get __items(){var e,t;return Array.from(Object.values(null!==(t=null===(e=this.form)||void 0===e?void 0:e._embedded)&&void 0!==t?t:{})).reduce(((e,t)=>[...e,...t]),[])}__handlePageFetchEvent(e){if(!(e instanceof n)||e.target===this)return;const{method:t,url:s}=e.request;return"GET"===t?"foxy://collection-page/stall"===s?this.__stallRequest(e):"foxy://collection-page/fail"===s?this.__failRequest(e):void 0:void 0}__stallRequest(e){e.stopImmediatePropagation(),e.respondWith(new Promise((()=>{})))}__failRequest(e){e.stopImmediatePropagation(),e.respondWith(Promise.resolve(new Response(null,{status:500})))}}customElements.define("foxy-collection-page",p);export{p as CollectionPage};
@@ -1 +1 @@
1
- import"./shared-b8e9b536.js";import"./foxy-collection-page.js";import"./shared-0672e78b.js";import{_ as e}from"./shared-a8ced8bf.js";import{h as t,L as s}from"./shared-7f33a83a.js";import{C as r}from"./shared-5ad8c9a0.js";import{b as a,a7 as i,R as n,F as o}from"./shared-002b788f.js";import{N as d,s as l}from"./shared-b7423eab.js";import{r as c}from"./shared-d519a301.js";import{I as h}from"./shared-4f037e43.js";import{i as p}from"./shared-dcbf57e0.js";import{s as u}from"./shared-11c2efc8.js";import"./shared-7b167fe9.js";import"./shared-c52d3772.js";import"./shared-29e21467.js";import"./foxy-spinner.js";import"./shared-c484320b.js";import"./shared-ea316e64.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";const _=a({manual:(e,t)=>t.data}),g=a({error:(e,t)=>t.data}),m=a({first:(e,t)=>t.data,pages:[],error:null}),f=a({first:(e,t)=>{var s,r;return null!==(r=null===(s=t.data[0])||void 0===s?void 0:s._links.self.href)&&void 0!==r?r:""},pages:(e,t)=>t.data,error:null}),v=a({pages:(e,t)=>0===t.data.returned_items?e.pages:[...e.pages,t.data]}),y=e=>e.manual,b=i({id:"pages",initial:"idle",context:{first:"",pages:[],error:null,manual:!1},states:{busy:{invoke:{src:"sendGet",onError:{target:"fail",actions:g},onDone:[{target:"idle.empty",cond:(e,t)=>0==t.data.total_items},{target:"idle.end",cond:(e,t)=>t.data.returned_items<t.data.limit,actions:v},{target:"idle.paused.manual",cond:y,actions:v},{target:"idle.paused.auto",actions:v}]},on:{SET_MANUAL:{actions:_}}},fail:{on:{SET_MANUAL:{actions:_}}},idle:{initial:"empty",states:{paused:{states:{auto:{invoke:{src:"observeChildren"}},manual:{}},on:{RESUME:"#pages.busy",SET_MANUAL:[{cond:y,actions:_,target:".manual"},{actions:_,target:".auto"}]}},empty:{on:{SET_MANUAL:{actions:_}}},end:{on:{SET_MANUAL:{actions:_}}}}}},on:{SET_FIRST:[{cond:(e,t)=>0===t.data.trim().length,target:"idle.empty",actions:m},{target:"busy",actions:m}],SET_PAGES:[{cond:(e,t)=>0===t.data.length,target:"idle.empty",actions:f},{target:"idle.paused",actions:f}]}});let x,E,k,S=e=>e;const R=r(h(s));class $ extends R{constructor(){var e;super(),e=this,this.props={},this.lang="",this.ns="",this.__group="",this.__fetchEventHandler=e=>this.__handleFetchEvent(e),this.__service=p(b.withConfig({services:{observeChildren:()=>e=>{const t=new IntersectionObserver((t=>{t.some((e=>e.isIntersecting))&&e("RESUME")}));return t.observe(this.renderRoot.children[this.renderRoot.children.length-1]),()=>t.disconnect()},sendGet:async function(t){var s;const r=t.pages[t.pages.length-1],a=null!==(s=null==r?void 0:r._links.next.href)&&void 0!==s?s:t.first,i=await new d.API(e).fetch(a);if(!i.ok)throw i;const n=await i.json();return e.__stopTrackingRumour(),d.Rumour(e.group).share({source:n._links.self.href,data:n}),e.__trackRumour(),n}}})),this.page="foxy-collection-page foxy-null"}static get properties(){return e(e({},super.properties),{},{manual:{type:Boolean,reflect:!0},first:{type:String,noAccessor:!0},pages:{type:Array,noAccessor:!0},group:{type:String},props:{type:Object},lang:{type:String},page:{type:String},ns:{type:String}})}get page(){return this.__page}set page(e){if("string"==typeof e){const t=e.split(" ").pop(),s=t?`item="${t}"`:"";this.__renderPage=new Function("ctx",`return ctx.html\`\n <${e}\n disabledcontrols=\${ctx.disabledControls.toString()}\n readonlycontrols=\${ctx.readonlyControls.toString()}\n hiddencontrols=\${ctx.hiddenControls.toString()}\n group=\${ctx.group}\n href=\${ctx.href}\n lang=\${ctx.lang}\n ns="\${ctx.ns} \${customElements.get('${e}')?.defaultNS ?? ''}"\n ${s}\n ?disabled=\${ctx.disabled}\n ?readonly=\${ctx.readonly}\n ?hidden=\${ctx.hidden}\n .templates=\${ctx.templates}\n ...=\${ctx.spread(ctx.props)}\n >\n </${e}>\``)}else this.__renderPage=e;this.__page=e,this.requestUpdate()}get first(){return this.__service.state.context.first}set first(e){this.__service.send({type:"SET_FIRST",data:e})}get pages(){return this.__service.state.context.pages}set pages(e){this.__service.send({type:"SET_PAGES",data:e})}get group(){return this.__group}set group(e){var t;this.__group=e,null===(t=this.__stopTrackingRumour)||void 0===t||t.call(this),this.__trackRumour()}get manual(){return this.__service.state.context.manual}set manual(e){this.__service.send({type:"SET_MANUAL",data:e})}in(e){return this.__service.state.matches(e)}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.addEventListener("fetch",this.__fetchEventHandler),this.__createService(),this.__trackRumour()}render(){const e=this.pages.map((e=>({key:e._links.self.href,href:e._links.self.href})));return this.__service.state.matches("busy")?e.push({key:"stalled",href:"foxy://collection-pages/stall"}):this.__service.state.matches("fail")?e.push({key:"failed",href:"foxy://collection-pages/fail"}):this.__service.state.matches({idle:"empty"})&&e.push({key:"empty",href:""}),t(x||(x=S` ${0} ${0} `),c(e,(e=>e.key),((e,s)=>{var r;return this.__renderPage({disabledControls:this.disabledControls,readonlyControls:this.readonlyControls,hiddenControls:this.hiddenControls,templates:this.templates,disabled:this.disabled,readonly:this.readonly,hidden:this.hidden,spread:u,props:this.props,group:this.group,data:null!==(r=this.pages[s])&&void 0!==r?r:null,href:e.href,lang:this.lang,ns:this.ns,html:t})})),this.manual?this.in({idle:"paused"})?t(E||(E=S` <vaadin-button theme="small contrast" @click="${0}"> <foxy-i18n lang="${0}" key="load_more" ns="${0}"></foxy-i18n> </vaadin-button> `),(()=>this.__service.send("RESUME")),this.lang,this.ns):"":t(k||(k=S` <span></span> `)))}updated(e){super.updated(e),this.dispatchEvent(new d.UpdateEvent)}disconnectedCallback(){var e;super.disconnectedCallback(),this.removeEventListener("fetch",this.__fetchEventHandler),this.__service.stop(),null===(e=this.__stopTrackingRumour)||void 0===e||e.call(this)}__trackRumour(){this.__stopTrackingRumour=d.Rumour(this.group).track((e=>{try{0===this.pages.length?e({_links:{self:{href:this.first}}}):this.pages.map((t=>e(t)))}catch(e){if(!(e instanceof n.UpdateError))throw e;this.__service.send({type:"SET_FIRST",data:this.first})}}))}__createService(){this.__service.onTransition((({changed:e})=>e&&this.requestUpdate())).onChange((()=>this.requestUpdate())).start()}__handleFetchEvent(e){if(!(e instanceof o)||e.target===this)return;const{method:t,url:s}=e.request;return"GET"===t?"foxy://collection-pages/stall"===s?this.__stallRequest(e):"foxy://collection-pages/fail"===s?this.__failRequest(e):void this.__respondIfPossible(e):void 0}__respondIfPossible(e){const t=l(e.request.url,this.pages);t.ok&&(e.respondWith(Promise.resolve(t)),console.debug(`%c@foxy.io/elements::${this.localName}\n%c200%c GET ${e.request.url}`,"color: gray","background: gray; padding: 0 .2em; border-radius: .2em; color: white;",""))}__stallRequest(e){e.stopImmediatePropagation(),e.respondWith(new Promise((()=>{})))}__failRequest(e){e.stopImmediatePropagation(),e.respondWith(Promise.resolve(this.__service.state.context.error))}}customElements.define("foxy-collection-pages",$);export{$ as CollectionPages};
1
+ import"./shared-b8e9b536.js";import"./foxy-collection-page.js";import"./shared-0672e78b.js";import{_ as e}from"./shared-a8ced8bf.js";import{h as t,L as s}from"./shared-7f33a83a.js";import{C as r}from"./shared-5ad8c9a0.js";import{b as a,a7 as i,R as n,F as o}from"./shared-002b788f.js";import{N as d,s as l}from"./shared-222fe491.js";import{r as c}from"./shared-d519a301.js";import{I as h}from"./shared-4f037e43.js";import{i as p}from"./shared-dcbf57e0.js";import{s as u}from"./shared-11c2efc8.js";import"./shared-7b167fe9.js";import"./shared-c52d3772.js";import"./shared-29e21467.js";import"./foxy-spinner.js";import"./shared-c484320b.js";import"./shared-ea316e64.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";const _=a({manual:(e,t)=>t.data}),g=a({error:(e,t)=>t.data}),m=a({first:(e,t)=>t.data,pages:[],error:null}),f=a({first:(e,t)=>{var s,r;return null!==(r=null===(s=t.data[0])||void 0===s?void 0:s._links.self.href)&&void 0!==r?r:""},pages:(e,t)=>t.data,error:null}),v=a({pages:(e,t)=>0===t.data.returned_items?e.pages:[...e.pages,t.data]}),y=e=>e.manual,b=i({id:"pages",initial:"idle",context:{first:"",pages:[],error:null,manual:!1},states:{busy:{invoke:{src:"sendGet",onError:{target:"fail",actions:g},onDone:[{target:"idle.empty",cond:(e,t)=>0==t.data.total_items},{target:"idle.end",cond:(e,t)=>t.data.returned_items<t.data.limit,actions:v},{target:"idle.paused.manual",cond:y,actions:v},{target:"idle.paused.auto",actions:v}]},on:{SET_MANUAL:{actions:_}}},fail:{on:{SET_MANUAL:{actions:_}}},idle:{initial:"empty",states:{paused:{states:{auto:{invoke:{src:"observeChildren"}},manual:{}},on:{RESUME:"#pages.busy",SET_MANUAL:[{cond:y,actions:_,target:".manual"},{actions:_,target:".auto"}]}},empty:{on:{SET_MANUAL:{actions:_}}},end:{on:{SET_MANUAL:{actions:_}}}}}},on:{SET_FIRST:[{cond:(e,t)=>0===t.data.trim().length,target:"idle.empty",actions:m},{target:"busy",actions:m}],SET_PAGES:[{cond:(e,t)=>0===t.data.length,target:"idle.empty",actions:f},{target:"idle.paused",actions:f}]}});let x,E,k,S=e=>e;const R=r(h(s));class $ extends R{constructor(){var e;super(),e=this,this.props={},this.lang="",this.ns="",this.__group="",this.__fetchEventHandler=e=>this.__handleFetchEvent(e),this.__service=p(b.withConfig({services:{observeChildren:()=>e=>{const t=new IntersectionObserver((t=>{t.some((e=>e.isIntersecting))&&e("RESUME")}));return t.observe(this.renderRoot.children[this.renderRoot.children.length-1]),()=>t.disconnect()},sendGet:async function(t){var s;const r=t.pages[t.pages.length-1],a=null!==(s=null==r?void 0:r._links.next.href)&&void 0!==s?s:t.first,i=await new d.API(e).fetch(a);if(!i.ok)throw i;const n=await i.json();return e.__stopTrackingRumour(),d.Rumour(e.group).share({source:n._links.self.href,data:n}),e.__trackRumour(),n}}})),this.page="foxy-collection-page foxy-null"}static get properties(){return e(e({},super.properties),{},{manual:{type:Boolean,reflect:!0},first:{type:String,noAccessor:!0},pages:{type:Array,noAccessor:!0},group:{type:String},props:{type:Object},lang:{type:String},page:{type:String},ns:{type:String}})}get page(){return this.__page}set page(e){if("string"==typeof e){const t=e.split(" ").pop(),s=t?`item="${t}"`:"";this.__renderPage=new Function("ctx",`return ctx.html\`\n <${e}\n disabledcontrols=\${ctx.disabledControls.toString()}\n readonlycontrols=\${ctx.readonlyControls.toString()}\n hiddencontrols=\${ctx.hiddenControls.toString()}\n group=\${ctx.group}\n href=\${ctx.href}\n lang=\${ctx.lang}\n ns="\${ctx.ns} \${customElements.get('${e}')?.defaultNS ?? ''}"\n ${s}\n ?disabled=\${ctx.disabled}\n ?readonly=\${ctx.readonly}\n ?hidden=\${ctx.hidden}\n .templates=\${ctx.templates}\n ...=\${ctx.spread(ctx.props)}\n >\n </${e}>\``)}else this.__renderPage=e;this.__page=e,this.requestUpdate()}get first(){return this.__service.state.context.first}set first(e){this.__service.send({type:"SET_FIRST",data:e})}get pages(){return this.__service.state.context.pages}set pages(e){this.__service.send({type:"SET_PAGES",data:e})}get group(){return this.__group}set group(e){var t;this.__group=e,null===(t=this.__stopTrackingRumour)||void 0===t||t.call(this),this.__trackRumour()}get manual(){return this.__service.state.context.manual}set manual(e){this.__service.send({type:"SET_MANUAL",data:e})}in(e){return this.__service.state.matches(e)}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.addEventListener("fetch",this.__fetchEventHandler),this.__createService(),this.__trackRumour()}render(){const e=this.pages.map((e=>({key:e._links.self.href,href:e._links.self.href})));return this.__service.state.matches("busy")?e.push({key:"stalled",href:"foxy://collection-pages/stall"}):this.__service.state.matches("fail")?e.push({key:"failed",href:"foxy://collection-pages/fail"}):this.__service.state.matches({idle:"empty"})&&e.push({key:"empty",href:""}),t(x||(x=S` ${0} ${0} `),c(e,(e=>e.key),((e,s)=>{var r;return this.__renderPage({disabledControls:this.disabledControls,readonlyControls:this.readonlyControls,hiddenControls:this.hiddenControls,templates:this.templates,disabled:this.disabled,readonly:this.readonly,hidden:this.hidden,spread:u,props:this.props,group:this.group,data:null!==(r=this.pages[s])&&void 0!==r?r:null,href:e.href,lang:this.lang,ns:this.ns,html:t})})),this.manual?this.in({idle:"paused"})?t(E||(E=S` <vaadin-button theme="small contrast" @click="${0}"> <foxy-i18n lang="${0}" key="load_more" ns="${0}"></foxy-i18n> </vaadin-button> `),(()=>this.__service.send("RESUME")),this.lang,this.ns):"":t(k||(k=S` <span></span> `)))}updated(e){super.updated(e),this.dispatchEvent(new d.UpdateEvent)}disconnectedCallback(){var e;super.disconnectedCallback(),this.removeEventListener("fetch",this.__fetchEventHandler),this.__service.stop(),null===(e=this.__stopTrackingRumour)||void 0===e||e.call(this)}__trackRumour(){this.__stopTrackingRumour=d.Rumour(this.group).track((e=>{try{0===this.pages.length?e({_links:{self:{href:this.first}}}):this.pages.map((t=>e(t)))}catch(e){if(!(e instanceof n.UpdateError))throw e;this.__service.send({type:"SET_FIRST",data:this.first})}}))}__createService(){this.__service.onTransition((({changed:e})=>e&&this.requestUpdate())).onChange((()=>this.requestUpdate())).start()}__handleFetchEvent(e){if(!(e instanceof o)||e.target===this)return;const{method:t,url:s}=e.request;return"GET"===t?"foxy://collection-pages/stall"===s?this.__stallRequest(e):"foxy://collection-pages/fail"===s?this.__failRequest(e):void this.__respondIfPossible(e):void 0}__respondIfPossible(e){const t=l(e.request.url,this.pages);t.ok&&(e.respondWith(Promise.resolve(t)),console.debug(`%c@foxy.io/elements::${this.localName}\n%c200%c GET ${e.request.url}`,"color: gray","background: gray; padding: 0 .2em; border-radius: .2em; color: white;",""))}__stallRequest(e){e.stopImmediatePropagation(),e.respondWith(new Promise((()=>{})))}__failRequest(e){e.stopImmediatePropagation(),e.respondWith(Promise.resolve(this.__service.state.context.error))}}customElements.define("foxy-collection-pages",$);export{$ as CollectionPages};
@@ -1 +1 @@
1
- import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as t}from"./shared-7f33a83a.js";import{C as e}from"./shared-5ad8c9a0.js";import{N as s}from"./shared-b7423eab.js";import{T as i,a}from"./shared-29e21467.js";import{c as r}from"./shared-4e709717.js";import"./shared-c484320b.js";import"./shared-c52d3772.js";import"./shared-ea316e64.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let n,o,d,l,c,p,h,u=t=>t;const m=i(e(a(s,"coupon-card")));class f extends m{constructor(){super(...arguments),this.templates={}}render(){var e,s;const i=this.hiddenSelector;return t(n||(n=u` <div aria-busy="${0}" aria-live="polite" class="relative leading-m font-lumo text-m"> <div class="${0}"> ${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"),r({"transition-opacity":!0,"opacity-0":!this.data}),i.matches("title",!0)?"":this.__renderTitle(),i.matches("description",!0)?"":this.__renderDescription(),i.matches("status",!0)?"":this.__renderStatus(),r({"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,a,r,n;const l=null!==(s=null===(e=this.data)||void 0===e?void 0:e.number_of_uses_to_date)&&void 0!==s?s:0,c=null!==(a=null===(i=this.data)||void 0===i?void 0:i.number_of_uses_allowed)&&void 0!==a?a:0;return t(o||(o=u` <div data-testid="title"> ${0} <div class="flex items-center justify-between"> <div class="font-semibold truncate">${0}</div> <foxy-i18n options="${0}" class="text-tertiary text-s flex-shrink-0" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> </div> ${0} </div> `),this.renderTemplateOrSlot("title:before"),null!==(n=null===(r=this.data)||void 0===r?void 0:r.name)&&void 0!==n?n:t(d||(d=u`&ZeroWidthSpace;`)),JSON.stringify({count:l,total:c}),this.lang,0===c?"uses_count":"uses_to_total_count",this.ns,this.renderTemplateOrSlot("title:after"))}__renderDescription(){let e=null;if(this.data){const s=this.data.coupon_discount_details,i=this.data.coupon_discount_type,a=this.ns;e=t(l||(l=u` <foxy-i18n options="${0}" lang="${0}" key="discount_summary" ns="${0}"> </foxy-i18n> `),JSON.stringify({params:{details:s,type:i,ns:a}}),this.lang,this.ns)}return t(c||(c=u` <div data-testid="description"> ${0} <div class="truncate text-s text-secondary">${0}</div> ${0} </div> `),this.renderTemplateOrSlot("description:before"),null!=e?e:t(p||(p=u`&ZeroWidthSpace;`)),this.renderTemplateOrSlot("description:after"))}__renderStatus(){var e;const{start_date:s,end_date:i}=null!==(e=this.data)&&void 0!==e?e:{},a=s&&i?"complete":s?"from":i?"until":"any";return t(h||(h=u` <div data-testid="status"> ${0} <foxy-i18n options="${0}" class="block truncate text-s text-tertiary" lang="${0}" key="date_range_${0}" ns="${0}"> </foxy-i18n> ${0} </div> `),this.renderTemplateOrSlot("status:before"),JSON.stringify({start:s,end:i}),this.lang,a,this.ns,this.renderTemplateOrSlot("status:after"))}}customElements.define("foxy-coupon-card",f);export{f as CouponCard};
1
+ import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as t}from"./shared-7f33a83a.js";import{C as e}from"./shared-5ad8c9a0.js";import{N as s}from"./shared-222fe491.js";import{T as i,a}from"./shared-29e21467.js";import{c as r}from"./shared-4e709717.js";import"./shared-c484320b.js";import"./shared-c52d3772.js";import"./shared-ea316e64.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-d3bf9ac0.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let n,o,d,l,c,p,h,u=t=>t;const m=i(e(a(s,"coupon-card")));class f extends m{constructor(){super(...arguments),this.templates={}}render(){var e,s;const i=this.hiddenSelector;return t(n||(n=u` <div aria-busy="${0}" aria-live="polite" class="relative leading-m font-lumo text-m"> <div class="${0}"> ${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"),r({"transition-opacity":!0,"opacity-0":!this.data}),i.matches("title",!0)?"":this.__renderTitle(),i.matches("description",!0)?"":this.__renderDescription(),i.matches("status",!0)?"":this.__renderStatus(),r({"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,a,r,n;const l=null!==(s=null===(e=this.data)||void 0===e?void 0:e.number_of_uses_to_date)&&void 0!==s?s:0,c=null!==(a=null===(i=this.data)||void 0===i?void 0:i.number_of_uses_allowed)&&void 0!==a?a:0;return t(o||(o=u` <div data-testid="title"> ${0} <div class="flex items-center justify-between"> <div class="font-semibold truncate">${0}</div> <foxy-i18n options="${0}" class="text-tertiary text-s flex-shrink-0" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> </div> ${0} </div> `),this.renderTemplateOrSlot("title:before"),null!==(n=null===(r=this.data)||void 0===r?void 0:r.name)&&void 0!==n?n:t(d||(d=u`&ZeroWidthSpace;`)),JSON.stringify({count:l,total:c}),this.lang,0===c?"uses_count":"uses_to_total_count",this.ns,this.renderTemplateOrSlot("title:after"))}__renderDescription(){let e=null;if(this.data){const s=this.data.coupon_discount_details,i=this.data.coupon_discount_type,a=this.ns;e=t(l||(l=u` <foxy-i18n options="${0}" lang="${0}" key="discount_summary" ns="${0}"> </foxy-i18n> `),JSON.stringify({params:{details:s,type:i,ns:a}}),this.lang,this.ns)}return t(c||(c=u` <div data-testid="description"> ${0} <div class="truncate text-s text-secondary">${0}</div> ${0} </div> `),this.renderTemplateOrSlot("description:before"),null!=e?e:t(p||(p=u`&ZeroWidthSpace;`)),this.renderTemplateOrSlot("description:after"))}__renderStatus(){var e;const{start_date:s,end_date:i}=null!==(e=this.data)&&void 0!==e?e:{},a=s&&i?"complete":s?"from":i?"until":"any";return t(h||(h=u` <div data-testid="status"> ${0} <foxy-i18n options="${0}" class="block truncate text-s text-tertiary" lang="${0}" key="date_range_${0}" ns="${0}"> </foxy-i18n> ${0} </div> `),this.renderTemplateOrSlot("status:before"),JSON.stringify({start:s,end:i}),this.lang,a,this.ns,this.renderTemplateOrSlot("status:after"))}}customElements.define("foxy-coupon-card",f);export{f as CouponCard};
@@ -1 +1 @@
1
- import"./shared-ef0fc329.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import"./shared-2215e6c8.js";import"./shared-b8e9b536.js";import{h as e}from"./shared-7f33a83a.js";import{C as t}from"./shared-5ad8c9a0.js";import{N as s}from"./shared-b7423eab.js";import"./shared-c484320b.js";import"./shared-7b167fe9.js";import"./shared-f2d19582.js";import{T as r,S as i,a}from"./shared-29e21467.js";import{c as d}from"./shared-4e709717.js";import"./shared-1b3e1a0d.js";import"./shared-4975f86f.js";import"./shared-5504f415.js";import"./shared-d43fc5cc.js";import"./shared-34b11d34.js";import"./shared-bb522838.js";import"./shared-b28dbc68.js";import"./shared-6b8874a7.js";import{P as o}from"./shared-162fc285.js";import{i as n}from"./shared-d3bf9ac0.js";import"./shared-a8ced8bf.js";import"./shared-ea316e64.js";import"./shared-c52d3772.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";import"./shared-6d2064e9.js";import"./shared-11c2efc8.js";import"./shared-e3ce88dc.js";import"./shared-923da875.js";import"./shared-e396ec04.js";let l,m,h,c,p,f=e=>e;const u=t(r(i(a(s,"coupon-code-form"))));class b extends u{constructor(){super(...arguments),this.templates={}}static get scopedElements(){return{"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":o}}static get v8n(){return[({code:e})=>!!e||"code_required",({code:e})=>!e||e.length<=50||"code_too_long"]}render(){var t,s;return e(l||(l=f` <div class="relative 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> `),this.__isCodeHidden?null:this.__renderCode(),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!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}get __isCodeHidden(){return this.hiddenSelector.matches("code",!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(m||(m=f` <div> ${0} <vaadin-text-field data-testid="code" class="w-full" label="${0}" value="${0}" .checkValidity="${0}" .errorMessage="${0}" ?disabled="${0}" ?readonly="${0}" required @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot("code:before"),this.t("code"),n(this.form.code),this.__getValidator("code"),this.__getErrorMessage("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"))}__renderTimestamps(){return e(h||(h=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"}}}),s=this.in({idle:{template:{dirty:"invalid"}}}),r=this.in({idle:{snapshot:{clean:"invalid"}}}),i=this.in({idle:{snapshot:{dirty:"invalid"}}}),a=t||s||(r||i),d=this.in("idle");return e(c||(c=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||a||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("idle")||this.disabledSelector.matches("delete",!0),(e=>{this.renderRoot.querySelector("#confirm").show(e.currentTarget)}),this.ns,this.lang,this.renderTemplateOrSlot("delete:after"))}}customElements.define("foxy-coupon-code-form",b);export{b as CouponCodeForm};
1
+ import"./shared-ef0fc329.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import"./shared-2215e6c8.js";import"./shared-b8e9b536.js";import{h as e}from"./shared-7f33a83a.js";import{C as t}from"./shared-5ad8c9a0.js";import{N as s}from"./shared-222fe491.js";import"./shared-c484320b.js";import"./shared-7b167fe9.js";import"./shared-f2d19582.js";import{T as r,S as i,a}from"./shared-29e21467.js";import{c as d}from"./shared-4e709717.js";import"./shared-1b3e1a0d.js";import"./shared-4975f86f.js";import"./shared-196fa627.js";import"./shared-d43fc5cc.js";import"./shared-34b11d34.js";import"./shared-bb522838.js";import"./shared-b28dbc68.js";import"./shared-6b8874a7.js";import{P as o}from"./shared-162fc285.js";import{i as n}from"./shared-d3bf9ac0.js";import"./shared-a8ced8bf.js";import"./shared-ea316e64.js";import"./shared-c52d3772.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";import"./shared-6d2064e9.js";import"./shared-11c2efc8.js";import"./shared-923da875.js";import"./shared-e396ec04.js";let l,m,h,c,p,f=e=>e;const u=t(r(i(a(s,"coupon-code-form"))));class b extends u{constructor(){super(...arguments),this.templates={}}static get scopedElements(){return{"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":o}}static get v8n(){return[({code:e})=>!!e||"code_required",({code:e})=>!e||e.length<=50||"code_too_long"]}render(){var t,s;return e(l||(l=f` <div class="relative 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> `),this.__isCodeHidden?null:this.__renderCode(),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!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}get __isCodeHidden(){return this.hiddenSelector.matches("code",!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(m||(m=f` <div> ${0} <vaadin-text-field data-testid="code" class="w-full" label="${0}" value="${0}" .checkValidity="${0}" .errorMessage="${0}" ?disabled="${0}" ?readonly="${0}" required @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot("code:before"),this.t("code"),n(this.form.code),this.__getValidator("code"),this.__getErrorMessage("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"))}__renderTimestamps(){return e(h||(h=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"}}}),s=this.in({idle:{template:{dirty:"invalid"}}}),r=this.in({idle:{snapshot:{clean:"invalid"}}}),i=this.in({idle:{snapshot:{dirty:"invalid"}}}),a=t||s||(r||i),d=this.in("idle");return e(c||(c=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||a||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="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"))}}customElements.define("foxy-coupon-code-form",b);export{b as CouponCodeForm};
@@ -1 +1 @@
1
- import"./shared-b8e9b536.js";import"./shared-ea316e64.js";import"./shared-c484320b.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as e}from"./shared-7f33a83a.js";import{C as t}from"./shared-5ad8c9a0.js";import{E as s}from"./shared-b7f7f15f.js";import{G as i}from"./shared-3a3878c9.js";import{N as o}from"./shared-b7423eab.js";import{T as n,S as r,a}from"./shared-29e21467.js";import{c as d}from"./shared-4e709717.js";import"./shared-7b167fe9.js";import"./shared-c52d3772.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-d3bf9ac0.js";import"./shared-f3b35364.js";import"./shared-d519a301.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let l,c,m,h,p=e=>e;const u=t(n(r(a(o,"coupon-codes-form"))));class f extends u{constructor(){super(...arguments),this.templates={}}static get scopedElements(){return{"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":i}}static get v8n(){return[({coupon_codes:e})=>e&&e.length>0||"coupon_codes_required"]}render(){var t,s;const{hiddenSelector:i,lang:o,ns:n}=this,r=this.in("busy"),a=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=p` <div class="relative"> <div class="${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}),i.matches("codes",!0)?"":this.__renderCodes(),i.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}),o,n,d({"absolute inset-0 flex":!0,[h]:!0,[u]:!r&&!a}),a?"error":m?"empty":"busy",o,n,null!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}__renderCodes(){var t;const s=null!==(t=this.form.coupon_codes)&&void 0!==t?t:[],i=s.length>16?s.slice(-16):s,o=s.length>16?s.slice(0,-16):[],n=i.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=p` <foxy-internal-coupon-codes-form-list-item group="${0}" href="${0}" lang="${0}" ns="${0}"> </foxy-internal-coupon-codes-form-list-item> `),this.group,s,this.lang,this.ns)}}));return e(m||(m=p` <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),n,(e=>{const t=e.currentTarget,s=new Set([...o,...t.items.map((e=>e.value))]);this.edit({coupon_codes:[...s]})}),(e=>{var t,i;e.preventDefault();const o=(null!==(i=null===(t=e.clipboardData)||void 0===t?void 0:t.getData("text"))&&void 0!==i?i:"").split(/\s/).map((e=>e.trim())).filter((e=>e.length>0));this.edit({coupon_codes:Array.from(new Set([...s,...o]))})}),0===o.length,JSON.stringify({count:o.length}),this.lang,this.ns,this.lang,this.ns,this.lang,this.ns,this.renderTemplateOrSlot("codes:after"))}__renderImport(){const t=this.in({idle:{template:{dirty:"valid"}}}),s=this.in({idle:{snapshot:{dirty:"valid"}}}),i=t||s;return e(h||(h=p` <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"),!i||!this.in("idle")||this.disabledSelector.matches("import",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("import:after"))}}let x,y,b=e=>e;const g=a(n(o));customElements.define("foxy-coupon-codes-form",f),customElements.define("foxy-internal-coupon-codes-form-list-item",class extends g{render(){var t,s;let i;try{i=null!==(t=new URL(this.href).searchParams.get("code"))&&void 0!==t?t:""}catch(t){return e(x||(x=b``))}let o,n="text-tertiary bg-contrast-5",r="text-body";return this.in("fail")?o="loading_error":this.in("busy")?o="loading_busy":0===(null===(s=this.data)||void 0===s?void 0:s.returned_items)?(n="text-success bg-success-10",o="unique"):(n="text-error bg-error-10",o="duplicate",r="text-error"),e(y||(y=b` <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> `),r,i,n,this.lang,o,this.ns)}});export{f as CouponCodesForm};
1
+ import"./shared-b8e9b536.js";import"./shared-ea316e64.js";import"./shared-c484320b.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as e}from"./shared-7f33a83a.js";import{C as t}from"./shared-5ad8c9a0.js";import{E as s}from"./shared-b7f7f15f.js";import{G as i}from"./shared-3a3878c9.js";import{N as o}from"./shared-222fe491.js";import{T as n,S as r,a}from"./shared-29e21467.js";import{c as d}from"./shared-4e709717.js";import"./shared-7b167fe9.js";import"./shared-c52d3772.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-d3bf9ac0.js";import"./shared-f3b35364.js";import"./shared-d519a301.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";let l,c,m,h,p=e=>e;const u=t(n(r(a(o,"coupon-codes-form"))));class f extends u{constructor(){super(...arguments),this.templates={}}static get scopedElements(){return{"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":i}}static get v8n(){return[({coupon_codes:e})=>e&&e.length>0||"coupon_codes_required"]}render(){var t,s;const{hiddenSelector:i,lang:o,ns:n}=this,r=this.in("busy"),a=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=p` <div class="relative"> <div class="${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}),i.matches("codes",!0)?"":this.__renderCodes(),i.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}),o,n,d({"absolute inset-0 flex":!0,[h]:!0,[u]:!r&&!a}),a?"error":m?"empty":"busy",o,n,null!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}__renderCodes(){var t;const s=null!==(t=this.form.coupon_codes)&&void 0!==t?t:[],i=s.length>16?s.slice(-16):s,o=s.length>16?s.slice(0,-16):[],n=i.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=p` <foxy-internal-coupon-codes-form-list-item group="${0}" href="${0}" lang="${0}" ns="${0}"> </foxy-internal-coupon-codes-form-list-item> `),this.group,s,this.lang,this.ns)}}));return e(m||(m=p` <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),n,(e=>{const t=e.currentTarget,s=new Set([...o,...t.items.map((e=>e.value))]);this.edit({coupon_codes:[...s]})}),(e=>{var t,i;e.preventDefault();const o=(null!==(i=null===(t=e.clipboardData)||void 0===t?void 0:t.getData("text"))&&void 0!==i?i:"").split(/\s/).map((e=>e.trim())).filter((e=>e.length>0));this.edit({coupon_codes:Array.from(new Set([...s,...o]))})}),0===o.length,JSON.stringify({count:o.length}),this.lang,this.ns,this.lang,this.ns,this.lang,this.ns,this.renderTemplateOrSlot("codes:after"))}__renderImport(){const t=this.in({idle:{template:{dirty:"valid"}}}),s=this.in({idle:{snapshot:{dirty:"valid"}}}),i=t||s;return e(h||(h=p` <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"),!i||!this.in("idle")||this.disabledSelector.matches("import",!0),(()=>this.submit()),this.ns,this.lang,this.renderTemplateOrSlot("import:after"))}}let x,y,b=e=>e;const g=a(n(o));customElements.define("foxy-coupon-codes-form",f),customElements.define("foxy-internal-coupon-codes-form-list-item",class extends g{render(){var t,s;let i;try{i=null!==(t=new URL(this.href).searchParams.get("code"))&&void 0!==t?t:""}catch(t){return e(x||(x=b``))}let o,n="text-tertiary bg-contrast-5",r="text-body";return this.in("fail")?o="loading_error":this.in("busy")?o="loading_busy":0===(null===(s=this.data)||void 0===s?void 0:s.returned_items)?(n="text-success bg-success-10",o="unique"):(n="text-error bg-error-10",o="duplicate",r="text-error"),e(y||(y=b` <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> `),r,i,n,this.lang,o,this.ns)}});export{f as CouponCodesForm};
@@ -1 +1 @@
1
- import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as r}from"./shared-7f33a83a.js";import{a as e}from"./shared-29e21467.js";import{T as s}from"./shared-6003864d.js";import"./shared-c484320b.js";import"./shared-c52d3772.js";import"./shared-ea316e64.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-5ad8c9a0.js";import"./shared-d3bf9ac0.js";import"./shared-b7423eab.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";import"./shared-4e709717.js";let t,a,c=r=>r;const i=e(s,"coupon-detail-card");class o extends i{constructor(){super(...arguments),this.__currencyDisplay="",this.__currency=""}render(){return super.render({title:e=>r(t||(t=c`${0} &bull; ${0}`),e.name,e.code),subtitle:e=>{let s;try{s=Math.abs(e.amount_per).toLocaleString(this.lang||"en",{maximumFractionDigits:2,minimumFractionDigits:2,currencyDisplay:this.__currencyDisplay,currency:this.__currency,style:"currency"})}catch(r){s="--"}return r(a||(a=c` <span class="${0}">${0}</span> `),e.amount_per>0?"text-success":"text-error",s)}})}async _sendGet(){const r=await super._sendGet(),[e,s]=await Promise.all([super._fetch(r._links["fx:transaction"].href),super._fetch(r._links["fx:store"].href)]);return this.__currency=e.currency_code,this.__currencyDisplay=s.use_international_currency_symbol?"code":"symbol",r}}customElements.define("foxy-coupon-detail-card",o);export{o as CouponDetailCard};
1
+ import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-0672e78b.js";import{h as r}from"./shared-7f33a83a.js";import{a as e}from"./shared-29e21467.js";import{T as s}from"./shared-5643d0ed.js";import"./shared-c484320b.js";import"./shared-c52d3772.js";import"./shared-ea316e64.js";import"./shared-a8ced8bf.js";import"./shared-4f037e43.js";import"./shared-002b788f.js";import"./shared-5ad8c9a0.js";import"./shared-d3bf9ac0.js";import"./shared-222fe491.js";import"./shared-dc798bf4.js";import"./shared-d6276c83.js";import"./shared-dcbf57e0.js";import"./shared-4e709717.js";let t,a,c=r=>r;const i=e(s,"coupon-detail-card");class o extends i{constructor(){super(...arguments),this.__currencyDisplay="",this.__currency=""}render(){return super.render({title:e=>r(t||(t=c`${0} &bull; ${0}`),e.name,e.code),subtitle:e=>{let s;try{s=Math.abs(e.amount_per).toLocaleString(this.lang||"en",{maximumFractionDigits:2,minimumFractionDigits:2,currencyDisplay:this.__currencyDisplay,currency:this.__currency,style:"currency"})}catch(r){s="--"}return r(a||(a=c` <span class="${0}">${0}</span> `),e.amount_per>0?"text-success":"text-error",s)}})}async _sendGet(){const r=await super._sendGet(),[e,s]=await Promise.all([super._fetch(r._links["fx:transaction"].href),super._fetch(r._links["fx:store"].href)]);return this.__currency=e.currency_code,this.__currencyDisplay=s.use_international_currency_symbol?"code":"symbol",r}}customElements.define("foxy-coupon-detail-card",o);export{o as CouponDetailCard};