@foxy.io/elements 1.15.0-beta.1 → 1.15.0-beta.4

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 (247) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +1 -1
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  5. package/dist/cdn/foxy-attribute-card.js +1 -1
  6. package/dist/cdn/foxy-attribute-form.js +1 -1
  7. package/dist/cdn/foxy-cancellation-form.js +1 -1
  8. package/dist/cdn/foxy-collection-page.js +1 -1
  9. package/dist/cdn/foxy-collection-pages.js +1 -1
  10. package/dist/cdn/foxy-coupon-card.js +1 -0
  11. package/dist/cdn/foxy-coupon-code-form.js +1 -0
  12. package/dist/cdn/foxy-coupon-codes-form.js +1 -0
  13. package/dist/cdn/foxy-coupon-form.js +1 -0
  14. package/dist/cdn/foxy-custom-field-card.js +1 -1
  15. package/dist/cdn/foxy-custom-field-form.js +1 -1
  16. package/dist/cdn/foxy-customer-api.js +1 -1
  17. package/dist/cdn/foxy-customer-card.js +1 -1
  18. package/dist/cdn/foxy-customer-form.js +1 -1
  19. package/dist/cdn/foxy-customer-portal-settings.js +1 -972
  20. package/dist/cdn/foxy-customer-portal.js +3 -3
  21. package/dist/cdn/foxy-customer.js +1 -1
  22. package/dist/cdn/foxy-customers-table.js +1 -1
  23. package/dist/cdn/foxy-discount-card.js +1 -1
  24. package/dist/cdn/foxy-donation.js +1 -1
  25. package/dist/cdn/foxy-email-template-form.js +1 -1
  26. package/dist/cdn/foxy-error-entry-card.js +1 -1
  27. package/dist/cdn/foxy-form-dialog.js +1 -1
  28. package/dist/cdn/foxy-generate-codes-form.js +1 -0
  29. package/dist/cdn/foxy-gift-card-card.js +1 -0
  30. package/dist/cdn/foxy-gift-card-code-form.js +1 -0
  31. package/dist/cdn/foxy-gift-card-codes-form.js +1 -0
  32. package/dist/cdn/foxy-gift-card-form.js +1 -0
  33. package/dist/cdn/foxy-i18n.js +1 -1
  34. package/dist/cdn/foxy-items-form.js +1 -1
  35. package/dist/cdn/foxy-nucleon-element.js +1 -1
  36. package/dist/cdn/foxy-pagination.js +1 -0
  37. package/dist/cdn/foxy-payment-card.js +1 -1
  38. package/dist/cdn/foxy-payment-method-card.js +1 -1
  39. package/dist/cdn/foxy-query-builder.js +1 -69
  40. package/dist/cdn/foxy-sign-in-form.js +1 -1
  41. package/dist/cdn/foxy-spinner.js +1 -1
  42. package/dist/cdn/foxy-subscription-card.js +1 -1
  43. package/dist/cdn/foxy-subscription-form.js +1 -1
  44. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  45. package/dist/cdn/foxy-table.js +1 -1
  46. package/dist/cdn/foxy-tax-card.js +1 -1
  47. package/dist/cdn/foxy-tax-form.js +1 -1
  48. package/dist/cdn/foxy-template-config-form.js +1 -1
  49. package/dist/cdn/foxy-template-form.js +1 -1
  50. package/dist/cdn/foxy-transaction-card.js +1 -1
  51. package/dist/cdn/foxy-transactions-table.js +1 -1
  52. package/dist/cdn/foxy-user-form.js +1 -1
  53. package/dist/cdn/foxy-users-table.js +1 -1
  54. package/dist/cdn/shared-00db6da0.js +1 -0
  55. package/dist/cdn/{shared-91e768be.js → shared-02945b27.js} +1 -1
  56. package/dist/cdn/{shared-322e60b1.js → shared-07049bfe.js} +1 -1
  57. package/dist/cdn/shared-08c63028.js +69 -0
  58. package/dist/cdn/shared-0e4d19e2.js +1 -0
  59. package/dist/cdn/{shared-5f54e916.js → shared-1497778c.js} +1 -1
  60. package/dist/cdn/{shared-e5cbf291.js → shared-1f307a03.js} +1 -1
  61. package/dist/cdn/{shared-bc2bfe52.js → shared-203923ef.js} +1 -1
  62. package/dist/cdn/{shared-a46edf4b.js → shared-30131f76.js} +1 -1
  63. package/dist/cdn/shared-301a57fe.js +1 -0
  64. package/dist/cdn/{shared-7a42073a.js → shared-347cb5d5.js} +5 -5
  65. package/dist/cdn/shared-36629ded.js +131 -0
  66. package/dist/cdn/{shared-5c8b531d.js → shared-3b8cfbb1.js} +1 -1
  67. package/dist/cdn/shared-40b5267a.js +1 -0
  68. package/dist/cdn/{shared-44cfc617.js → shared-423a4840.js} +1 -1
  69. package/dist/cdn/shared-47223541.js +804 -0
  70. package/dist/cdn/{shared-8a7bee0d.js → shared-4dc6d228.js} +1 -1
  71. package/dist/cdn/shared-4fa5f144.js +1 -0
  72. package/dist/cdn/{shared-593f7e2c.js → shared-51e28c83.js} +1 -1
  73. package/dist/cdn/{shared-b5147166.js → shared-680cb883.js} +1 -1
  74. package/dist/cdn/shared-80ce089c.js +1 -0
  75. package/dist/cdn/shared-8a5ec3cf.js +1 -0
  76. package/dist/cdn/{shared-1761daef.js → shared-c1dadefe.js} +1 -1
  77. package/dist/cdn/{shared-34b2c1e2.js → shared-d3831f99.js} +1 -1
  78. package/dist/cdn/shared-d4d7391d.js +302 -0
  79. package/dist/cdn/{shared-07abcd7b.js → shared-e563e7b0.js} +1 -1
  80. package/dist/cdn/shared-e68b9c83.js +1 -0
  81. package/dist/cdn/shared-f7805cfe.js +1 -0
  82. package/dist/cdn/{shared-e7f8ffe9.js → shared-fb403e1f.js} +1 -1
  83. package/dist/cdn/translations/shared/en.json +283 -0
  84. package/dist/cdn/translations/shared/zh-hk.json +179 -0
  85. package/dist/elements/private/Checkbox/Checkbox.js +36 -22
  86. package/dist/elements/private/Checkbox/Checkbox.js.map +1 -1
  87. package/dist/elements/private/EditableList/EditableList.d.ts +20 -0
  88. package/dist/elements/private/EditableList/EditableList.js +123 -0
  89. package/dist/elements/private/EditableList/EditableList.js.map +1 -0
  90. package/dist/elements/private/FrequencyInput/FrequencyInput.d.ts +2 -1
  91. package/dist/elements/private/FrequencyInput/FrequencyInput.js +3 -1
  92. package/dist/elements/private/FrequencyInput/FrequencyInput.js.map +1 -1
  93. package/dist/elements/public/CollectionPage/CollectionPage.js +3 -1
  94. package/dist/elements/public/CollectionPage/CollectionPage.js.map +1 -1
  95. package/dist/elements/public/CollectionPage/types.d.ts +2 -0
  96. package/dist/elements/public/CollectionPage/types.js.map +1 -1
  97. package/dist/elements/public/CouponCard/CouponCard.d.ts +29 -0
  98. package/dist/elements/public/CouponCard/CouponCard.js +130 -0
  99. package/dist/elements/public/CouponCard/CouponCard.js.map +1 -0
  100. package/dist/elements/public/CouponCard/index.d.ts +5 -0
  101. package/dist/elements/public/CouponCard/index.js +7 -0
  102. package/dist/elements/public/CouponCard/index.js.map +1 -0
  103. package/dist/elements/public/CouponCard/types.d.ts +15 -0
  104. package/dist/elements/public/CouponCard/types.js +2 -0
  105. package/dist/elements/public/CouponCard/types.js.map +1 -0
  106. package/dist/elements/public/CouponCodeForm/CouponCodeForm.d.ts +45 -0
  107. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js +218 -0
  108. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js.map +1 -0
  109. package/dist/elements/public/CouponCodeForm/index.d.ts +8 -0
  110. package/dist/elements/public/CouponCodeForm/index.js +10 -0
  111. package/dist/elements/public/CouponCodeForm/index.js.map +1 -0
  112. package/dist/elements/public/CouponCodeForm/types.d.ts +15 -0
  113. package/dist/elements/public/CouponCodeForm/types.js +2 -0
  114. package/dist/elements/public/CouponCodeForm/types.js.map +1 -0
  115. package/dist/elements/public/CouponCodesForm/CouponCodesForm.d.ts +29 -0
  116. package/dist/elements/public/CouponCodesForm/CouponCodesForm.js +209 -0
  117. package/dist/elements/public/CouponCodesForm/CouponCodesForm.js.map +1 -0
  118. package/dist/elements/public/CouponCodesForm/index.d.ts +8 -0
  119. package/dist/elements/public/CouponCodesForm/index.js +12 -0
  120. package/dist/elements/public/CouponCodesForm/index.js.map +1 -0
  121. package/dist/elements/public/CouponCodesForm/internal/InternalCouponCodesFormListItem.d.ts +14 -0
  122. package/dist/elements/public/CouponCodesForm/internal/InternalCouponCodesFormListItem.js +48 -0
  123. package/dist/elements/public/CouponCodesForm/internal/InternalCouponCodesFormListItem.js.map +1 -0
  124. package/dist/elements/public/CouponCodesForm/types.d.ts +16 -0
  125. package/dist/elements/public/CouponCodesForm/types.js +2 -0
  126. package/dist/elements/public/CouponCodesForm/types.js.map +1 -0
  127. package/dist/elements/public/CouponForm/CouponForm.d.ts +77 -0
  128. package/dist/elements/public/CouponForm/CouponForm.js +1266 -0
  129. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -0
  130. package/dist/elements/public/CouponForm/index.d.ts +19 -0
  131. package/dist/elements/public/CouponForm/index.js +21 -0
  132. package/dist/elements/public/CouponForm/index.js.map +1 -0
  133. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.d.ts +19 -0
  134. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js +98 -0
  135. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js.map +1 -0
  136. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.d.ts +19 -0
  137. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js +51 -0
  138. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js.map +1 -0
  139. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.d.ts +19 -0
  140. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js +52 -0
  141. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js.map +1 -0
  142. package/dist/elements/public/CouponForm/types.d.ts +27 -0
  143. package/dist/elements/public/CouponForm/types.js +2 -0
  144. package/dist/elements/public/CouponForm/types.js.map +1 -0
  145. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js +19 -6
  146. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js.map +1 -1
  147. package/dist/elements/public/GenerateCodesForm/GenerateCodesForm.d.ts +39 -0
  148. package/dist/elements/public/GenerateCodesForm/GenerateCodesForm.js +197 -0
  149. package/dist/elements/public/GenerateCodesForm/GenerateCodesForm.js.map +1 -0
  150. package/dist/elements/public/GenerateCodesForm/index.d.ts +8 -0
  151. package/dist/elements/public/GenerateCodesForm/index.js +10 -0
  152. package/dist/elements/public/GenerateCodesForm/index.js.map +1 -0
  153. package/dist/elements/public/GenerateCodesForm/types.d.ts +24 -0
  154. package/dist/elements/public/GenerateCodesForm/types.js +2 -0
  155. package/dist/elements/public/GenerateCodesForm/types.js.map +1 -0
  156. package/dist/elements/public/GiftCardCard/GiftCardCard.d.ts +26 -0
  157. package/dist/elements/public/GiftCardCard/GiftCardCard.js +118 -0
  158. package/dist/elements/public/GiftCardCard/GiftCardCard.js.map +1 -0
  159. package/dist/elements/public/GiftCardCard/index.d.ts +5 -0
  160. package/dist/elements/public/GiftCardCard/index.js +7 -0
  161. package/dist/elements/public/GiftCardCard/index.js.map +1 -0
  162. package/dist/elements/public/GiftCardCard/types.d.ts +36 -0
  163. package/dist/elements/public/GiftCardCard/types.js +2 -0
  164. package/dist/elements/public/GiftCardCard/types.js.map +1 -0
  165. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +55 -0
  166. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +292 -0
  167. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -0
  168. package/dist/elements/public/GiftCardCodeForm/index.d.ts +10 -0
  169. package/dist/elements/public/GiftCardCodeForm/index.js +12 -0
  170. package/dist/elements/public/GiftCardCodeForm/index.js.map +1 -0
  171. package/dist/elements/public/GiftCardCodeForm/types.d.ts +40 -0
  172. package/dist/elements/public/GiftCardCodeForm/types.js +2 -0
  173. package/dist/elements/public/GiftCardCodeForm/types.js.map +1 -0
  174. package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.d.ts +29 -0
  175. package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.js +209 -0
  176. package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.js.map +1 -0
  177. package/dist/elements/public/GiftCardCodesForm/index.d.ts +8 -0
  178. package/dist/elements/public/GiftCardCodesForm/index.js +12 -0
  179. package/dist/elements/public/GiftCardCodesForm/index.js.map +1 -0
  180. package/dist/elements/public/GiftCardCodesForm/internal/InternalGiftCardCodesFormListItem.d.ts +19 -0
  181. package/dist/elements/public/GiftCardCodesForm/internal/InternalGiftCardCodesFormListItem.js +48 -0
  182. package/dist/elements/public/GiftCardCodesForm/internal/InternalGiftCardCodesFormListItem.js.map +1 -0
  183. package/dist/elements/public/GiftCardCodesForm/types.d.ts +16 -0
  184. package/dist/elements/public/GiftCardCodesForm/types.js +2 -0
  185. package/dist/elements/public/GiftCardCodesForm/types.js.map +1 -0
  186. package/dist/elements/public/GiftCardForm/GiftCardForm.d.ts +66 -0
  187. package/dist/elements/public/GiftCardForm/GiftCardForm.js +650 -0
  188. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -0
  189. package/dist/elements/public/GiftCardForm/currencies.d.ts +1 -0
  190. package/dist/elements/public/GiftCardForm/currencies.js +173 -0
  191. package/dist/elements/public/GiftCardForm/currencies.js.map +1 -0
  192. package/dist/elements/public/GiftCardForm/index.d.ts +18 -0
  193. package/dist/elements/public/GiftCardForm/index.js +20 -0
  194. package/dist/elements/public/GiftCardForm/index.js.map +1 -0
  195. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.d.ts +19 -0
  196. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js +98 -0
  197. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js.map +1 -0
  198. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.d.ts +33 -0
  199. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js +52 -0
  200. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js.map +1 -0
  201. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.d.ts +26 -0
  202. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js +53 -0
  203. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js.map +1 -0
  204. package/dist/elements/public/GiftCardForm/types.d.ts +52 -0
  205. package/dist/elements/public/GiftCardForm/types.js +2 -0
  206. package/dist/elements/public/GiftCardForm/types.js.map +1 -0
  207. package/dist/elements/public/I18n/I18n.js +1 -1
  208. package/dist/elements/public/I18n/I18n.js.map +1 -1
  209. package/dist/elements/public/I18n/format/date.js +7 -6
  210. package/dist/elements/public/I18n/format/date.js.map +1 -1
  211. package/dist/elements/public/I18n/format/discount.d.ts +6 -0
  212. package/dist/elements/public/I18n/format/discount.js +20 -0
  213. package/dist/elements/public/I18n/format/discount.js.map +1 -0
  214. package/dist/elements/public/I18n/format/index.js +4 -0
  215. package/dist/elements/public/I18n/format/index.js.map +1 -1
  216. package/dist/elements/public/I18n/format/ordinal.d.ts +6 -0
  217. package/dist/elements/public/I18n/format/ordinal.js +9 -0
  218. package/dist/elements/public/I18n/format/ordinal.js.map +1 -0
  219. package/dist/elements/public/Pagination/Pagination.d.ts +37 -0
  220. package/dist/elements/public/Pagination/Pagination.js +154 -0
  221. package/dist/elements/public/Pagination/Pagination.js.map +1 -0
  222. package/dist/elements/public/Pagination/index.d.ts +6 -0
  223. package/dist/elements/public/Pagination/index.js +8 -0
  224. package/dist/elements/public/Pagination/index.js.map +1 -0
  225. package/dist/elements/public/Table/Table.js +20 -5
  226. package/dist/elements/public/Table/Table.js.map +1 -1
  227. package/dist/elements/public/index.d.ts +10 -0
  228. package/dist/elements/public/index.defined.d.ts +10 -0
  229. package/dist/elements/public/index.defined.js +10 -0
  230. package/dist/elements/public/index.defined.js.map +1 -1
  231. package/dist/elements/public/index.js +10 -0
  232. package/dist/elements/public/index.js.map +1 -1
  233. package/dist/mixins/themeable.js +92 -4
  234. package/dist/mixins/themeable.js.map +1 -1
  235. package/dist/utils/parse-duration.d.ts +1 -1
  236. package/dist/utils/parse-duration.js +7 -3
  237. package/dist/utils/parse-duration.js.map +1 -1
  238. package/package.json +1 -1
  239. package/dist/cdn/shared-00563cb0.js +0 -1
  240. package/dist/cdn/shared-35dbd2c5.js +0 -1
  241. package/dist/cdn/shared-6b7602c7.js +0 -1
  242. package/dist/cdn/shared-87ca7818.js +0 -1
  243. package/dist/cdn/shared-9a40309d.js +0 -1
  244. package/dist/cdn/shared-ce1da35d.js +0 -1
  245. package/dist/cdn/shared-d01d809a.js +0 -1
  246. package/dist/cdn/shared-d8ffb279.js +0 -264
  247. package/dist/cdn/shared-f1dc1c6c.js +0 -1
@@ -0,0 +1 @@
1
+ import{L as t,_ as e,j as i,h as s}from"./shared-63eaded9.js";import"./shared-0ced76a0.js";import{p as r}from"./shared-0e4d19e2.js";import"./shared-46ee137f.js";import"./shared-df573cea.js";import"./shared-f0a83bd6.js";import{b as a,S as n,c as o}from"./shared-e68b9c83.js";import"./shared-d4d7391d.js";import"./shared-e563e7b0.js";import{I as l,D as c}from"./shared-680cb883.js";import{E as h}from"./shared-3b8cfbb1.js";import"./shared-36629ded.js";import"./shared-bb824ab4.js";import"./shared-ec861f31.js";import"./foxy-i18n.js";import"./shared-60126eee.js";import{s as d}from"./shared-b0f0e8b5.js";class u extends CustomEvent{constructor(t){super("change",{detail:t})}}class m extends CustomEvent{constructor(t){super("submit",{detail:t,cancelable:!0})}}let _,p,g=t=>t;var y;!function(t){t[t.Excluded=0]="Excluded",t[t.BeforeEnter=1]="BeforeEnter",t[t.Default=2]="Default",t[t.Previous=3]="Previous",t[t.BeforeExit=4]="BeforeExit"}(y||(y={}));class f extends t{constructor(){super(...arguments),this.quantity=0,this.image=""}static get properties(){return e(e({},super.properties),{},{quantity:{attribute:!1},image:{attribute:!1}})}static get styles(){return[a.styles,i(_||(_=g`.ease-out-back{transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.blur-1{filter:blur(1px)}.blur-2{filter:blur(2px)}.grayscale{filter:grayscale()}.rotate-12{--tw-rotate:12deg}.-rotate-12{--tw-rotate:-12deg}.-rotate-24{--tw-rotate:-24deg}.translate-y-half{--tw-translate-y:50%}`))]}set empty(t){this.updateComplete.then((()=>{if(t){const[,...t]=this.__stack;t.forEach((t=>t.remove()))}else this.quantity>1&&this.__stack.length<2&&this.__insertImage(y.Previous,this.__stack[0])}))}set data({quantity:t,image:e}){this.quantity=t,this.image=e}render(){return s(p||(p=g`<div id="image" class="w-full h-full relative"></div>`))}firstUpdated(){const t=this.__insertImage(y.Default);this.quantity>1&&this.__insertImage(y.Previous,t)}updated(t){if(t.has("quantity")){const e=t.get("quantity");void 0!==e&&(this.quantity>e?this.__add():this.__remove())}t.has("image")&&this.__stack.forEach((t=>t.src=this.image))}get __container(){return this.shadowRoot.getElementById("image")}get __stack(){var t,e;return[...null!==(e=null===(t=this.__container)||void 0===t?void 0:t.querySelectorAll(":not(.opacity-0)"))&&void 0!==e?e:[]].reverse()}__add(){const[t,e]=this.__stack;this.quantity>1?(t&&this.__setImageState(t,y.Previous),e&&(this.__setImageState(e,y.BeforeExit),e.ontransitionend=()=>e.remove()),this.__setImageState(this.__insertImage(y.BeforeEnter),y.Default)):t&&this.__setImageState(t,y.Default)}__remove(){const[t,e]=this.__stack;let i;if(this.quantity>0?(e&&this.__setImageState(e,y.Default),i=t):(t&&this.__setImageState(t,y.Excluded),i=e),i&&(this.__setImageState(i,y.BeforeEnter),i.ontransitionend=()=>i.remove()),this.quantity>1){const t=this.__insertImage(y.BeforeExit,this.__container.firstElementChild);this.__setImageState(t,y.Previous)}}__insertImage(t,e=null){const i=new Image;return i.src=this.image,i.setAttribute("part","picture"),i.addEventListener("error",(()=>i.src=f.placeholder)),this.__setImageState(i,t),this.__container.insertBefore(i,e),i}__setImageState(t,e){t.offsetHeight,t.className=["absolute inset-0 w-full h-full object-cover rounded transform transition duration-700 ease-out-back",["grayscale","shadow-m translate-y-half scale-110 rotate-12 opacity-0","shadow-m","blur-1 -rotate-12 opacity-25","blur-2 -rotate-24 opacity-0"][e]].join(" ")}}f.placeholder='data:image/svg+xml,%3Csvg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Crect width="40" height="40" fill="%23E8E8E8"/%3E%3Cpath d="M31.5143 0H24.5476L0 24.5476V31.5143L11.7046 19.8097L11.9841 17.0782C12.0983 15.9624 13.0131 15.1154 14.1038 15.1154H15.7373V12.1923C15.7373 10.9815 16.6915 10 17.8687 10H21.5143L31.5143 0Z" fill="white"/%3E%3Cpath d="M11.5434 21.3852L0 32.9285V39.8953L11.5822 28.3131C11.172 27.8663 10.9438 27.2444 11.012 26.5782L11.5434 21.3852Z" fill="white"/%3E%3Cpath d="M12.4305 28.879L1.30951 40H8.27631L19.2763 29H13.1316C12.8853 29 12.6495 28.9573 12.4305 28.879Z" fill="white"/%3E%3Cpath d="M28.3113 19.965L28.0159 17.0782C27.9116 16.0591 27.1395 15.2642 26.1754 15.1341L40 1.3095V8.27627L28.3113 19.965Z" fill="white"/%3E%3Cpath d="M20.6905 29L9.69049 40H16.6572L27.9755 28.6817C27.6541 28.8832 27.2756 29 26.8684 29H20.6905Z" fill="white"/%3E%3Cpath d="M28.6572 28C28.9128 27.5952 29.0415 27.1003 28.988 26.5782L28.4426 21.2479L40 9.69053V16.6572L28.6572 28Z" fill="white"/%3E%3Cpath d="M25.0381 40H18.0715L40 18.0715V25.0381L25.0381 40Z" fill="white"/%3E%3Cpath d="M26.4524 40H33.4191L40 33.4191V26.4524L26.4524 40Z" fill="white"/%3E%3Cpath d="M40 40H34.8333L40 34.8333V40Z" fill="white"/%3E%3Cpath d="M16.1666 0H23.1334L0 23.1334V16.1666L16.1666 0Z" fill="white"/%3E%3Cpath d="M14.7524 0H7.78571L0 7.78573V14.7524L14.7524 0Z" fill="white"/%3E%3Cpath d="M0 0H6.37152L0 6.37151V0Z" fill="white"/%3E%3Cpath d="M21.467 11.4615H17.8687C17.4763 11.4615 17.1582 11.7887 17.1582 12.1923V15.1154H22.8418V12.1923C22.8418 11.7887 22.5237 11.4615 22.1313 11.4615H21.467Z" fill="white"/%3E%3Cpath d="M24.7798 15.1154H24.2627V12.1923C24.2627 11.227 23.6562 10.4075 22.8138 10.1148L32.9286 0H39.89L24.7798 15.1154Z" fill="white"/%3E%3C/svg%3E';let v,b,w,x,q,I,E,$,C=t=>t;class S extends(n(t)){constructor(){super(...arguments),this.empty=!1,this.data=[]}static get properties(){return e(e({},super.properties),{},{empty:{attribute:!1},data:{attribute:!1}})}static get styles(){return[a.styles,i(v||(v=C`.w-preview{width:5.5rem}.h-preview{height:5.5rem}.ease-out-back{transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.grayscale{filter:grayscale()}.grid-2>:nth-child(1),.grid-3>:nth-child(1),.grid-4-plus>:nth-child(1),.grid-4>:nth-child(1){--tw-scale-x:calc(2.5 / 5.5);--tw-scale-y:var(--tw-scale-x)}.grid-1>:nth-child(2){opacity:0;--tw-translate-x:100%;--tw-translate-y:var(--tw-translate-x)}.grid-2>:nth-child(2),.grid-3>:nth-child(2),.grid-4-plus>:nth-child(2),.grid-4>:nth-child(2){--tw-scale-x:calc(2.5 / 5.5);--tw-scale-y:var(--tw-scale-x)}.grid-3>:nth-child(2),.grid-4-plus>:nth-child(2),.grid-4>:nth-child(2){transform-origin:top right}.grid-1>:nth-child(3),.grid-2>:nth-child(3),.grid-3>:nth-child(3),.grid-4-plus>:nth-child(3),.grid-4>:nth-child(3){--tw-scale-x:calc(2.5 / 5.5);--tw-scale-y:var(--tw-scale-x)}.grid-1>:nth-child(3),.grid-2>:nth-child(3){opacity:0;--tw-translate-y:100%}.grid-3>:nth-child(3){transform-origin:bottom right}.grid-4-plus>:nth-child(3),.grid-4>:nth-child(3){transform-origin:bottom left}.grid-1>:nth-child(4),.grid-2>:nth-child(4),.grid-3>:nth-child(4),.grid-4-plus>:nth-child(4),.grid-4>:nth-child(4){--tw-scale-x:calc(2.5 / 5.5);--tw-scale-y:var(--tw-scale-x)}.grid-1>:nth-child(4),.grid-2>:nth-child(4),.grid-3>:nth-child(4){opacity:0;transform-origin:bottom left;--tw-translate-x:100%}.grid-1>:nth-child(4)>:first-child,.grid-2>:nth-child(4)>:first-child,.grid-3>:nth-child(4)>:first-child,.grid-4>:nth-child(4)>:first-child{transform:perspective(250px) rotateX(-90deg)}.grid-4-plus>:nth-child(4)>:first-child,.grid-4>:nth-child(4)>:last-child{transition-delay:.15s;transition-timing-function:ease-out}.grid-4-plus>:nth-child(4)>:last-child,.grid-4>:nth-child(4)>:first-child{transition-timing-function:ease-in}.grid-4-plus>:nth-child(4)>:last-child{transform:perspective(250px) rotateX(90deg)}.grid-1>:nth-child(5),.grid-3>:nth-child(5),.grid-4-plus>:nth-child(5),.grid-4>:nth-child(5){opacity:0}.grid-1>:nth-child(5){--tw-translate-x:100%}.grid-2>:nth-child(5),.grid-3>:nth-child(5),.grid-4-plus>:nth-child(5),.grid-4>:nth-child(5){--tw-scale-x:calc(2.5 / 5.5);--tw-scale-y:var(--tw-scale-x)}.grid-3>:nth-child(5),.grid-4-plus>:nth-child(5),.grid-4>:nth-child(5){--tw-translate-y:-100%}.grid-1>:nth-child(6),.grid-4-plus>:nth-child(6),.grid-4>:nth-child(6){opacity:0}.grid-1>:nth-child(6){--tw-translate-y:100%}.grid-2>:nth-child(6),.grid-3>:nth-child(6),.grid-4-plus>:nth-child(6),.grid-4>:nth-child(6){--tw-scale-x:calc(2.5 / 5.5);--tw-scale-y:var(--tw-scale-x)}.grid-4-plus>:nth-child(6),.grid-4>:nth-child(6){--tw-translate-x:-100%}`))]}render(){const t=this.data.length,e="rounded bg-contrast-10",i="transition-all duration-700 ease-out-back transform absolute inset-0",r=this.empty?"grayscale":"",a=t>4?"grid-4-plus":`grid-${Math.max(1,t)}`,n=d({exportparts:"picture",class:"w-full h-full",".empty":this.empty}),[o,l,c,h]=this.data;return s(b||(b=C` <div class="${0} w-preview h-preview relative font-lumo"> <div class="${0} ${0} origin-top-left"> ${0} </div> <div class="${0} ${0} origin-bottom-right"> ${0} </div> <div class="${0} ${0} origin-top-right"> ${0} </div> <div class="${0} ${0} origin-bottom-right"> <div class="${0} flex text-body transition duration-150 absolute inset-0"> ${0} </div> <div class="transition duration-150 absolute inset-0"> ${0} </div> </div> <div class="${0} ${0} origin-top-right"></div> <div class="${0} ${0} origin-bottom-left"></div> </div> `),a,i,r,o?s(w||(w=C`<x-pic ...="${0}" .data="${0}"></x-pic>`),n,o):"",i,r,l?s(x||(x=C`<x-pic ...="${0}" .data="${0}"></x-pic>`),n,l):"",i,r,c?s(q||(q=C`<x-pic ...="${0}" .data="${0}"></x-pic>`),n,c):"",i,r,e,t>102?s(I||(I=C`<iron-icon icon="icons:more-horiz" class="m-auto w-xl h-xl"></iron-icon>`)):s(E||(E=C`<div class="m-auto text-xxxl">+${0}</div>`),t-3),h?s($||($=C`<x-pic ...="${0}" .data="${0}"></x-pic>`),n,h):"",i,e,i,e)}}let D,k,L=t=>t;class A extends S{static get scopedElements(){return{"x-pic":f}}}class N extends S{static get scopedElements(){return{"x-pic":A}}}class P extends(n(t)){constructor(){super(...arguments),this.quantity=0,this.items=[]}static get scopedElements(){return{"x-picture":f,"x-bundle-grid":N}}static get properties(){return{quantity:{attribute:!1},image:{attribute:!1},items:{attribute:!1}}}static get styles(){return a.styles}render(){const{quantity:t,image:e=""}=this,i=0===t,r=d({class:"w-full h-full",exportparts:"picture"});if(0===this.items.length)return s(D||(D=L`<x-picture ...="${0}" .data="${0}"></x-picture>`),r,{quantity:t,image:e});{const e=new Array(Math.max(1,t)).fill(this.items);return s(k||(k=L`<x-bundle-grid ...="${0}" .empty="${0}" .data="${0}"></x-bundle-grid>`),r,i,e)}}}class j extends o{static get properties(){return e(e({},super.properties),{},{open:{type:Object},signatures:{type:Object,converter:t=>{const e=JSON.parse(t);for(const t of Object.keys(e))64!=e[t].length&&console.error("There is something wrong with the signature. It should have 64 characters.");return e}}})}signedName(t){return this.signatures&&this.signatures[t]?`${t}||${this.signatures[t]}${this.isOpen(t)?"||open":""}`:t}isOpen(t){return!(!this.open||!this.open[t])}}let F,T,O,V,M,H,B,Z=t=>t;class R extends j{constructor(){super("items-form"),this.rel="product_item",this.readonly=!1,this.quantity=0,this.total=this.__computeTotalPrice(),this.currency="",this.isItem=!0,this.isChildItem=!1,this.pid=R.__newId(),this.__modified=!1,this.__childPrices=[],this.__images=[],this.__childrenCount=0,this.__itemDescription="",this.__handleQuantity={handleEvent:t=>{const e=Number(t.target.value);this.quantity=e,this.__modified=!0,this.__images=[this.getImageDescription()].concat(this.__images.slice(1,this.__images.length))}},this.__childItemsObserver=new MutationObserver(this.__observeItems.bind(this)),this.__childItemsObserver.observe(this,{childList:!0,attributes:!1,subtree:!0}),this.updateComplete.then((()=>{this.__setCode(),this.__acknowledgeChildItems(),this.__changedChildItem(),this.__isValid()||console.error("Invalid item",this.value)}))}static get styles(){return[super.styles,i(F||(F=Z`:host{--quantity-width:6.5rem;--preview-size:5.5rem;--threshold:20rem}.min-w-description::before{content:'';width:var(--threshold);display:block;overflow:hidden}.ml-description{--min-width:calc(var(--threshold) + var(--preview-size) + var(--lumo-space-l));--free-space:calc(100% - var(--min-width));--max-margin-left:calc(var(--preview-size) + var(--lumo-space-l));--final-margin-left:clamp(0rem, var(--free-space) * 999999999, var(--max-margin-left));margin-left:var(--final-margin-left)}.mr-quantity{--min-width:var(--threshold);--free-space:calc(100% - var(--min-width));--max-margin-right:calc(var(--quantity-width) + var(--lumo-space-l));--final-margin-right:clamp(0rem, var(--free-space) * 999999999, var(--max-margin-right));margin-right:var(--final-margin-right)}:host([data-bundled]:not(:last-of-type)) .separator::after{content:' ';display:block;position:absolute;width:100vw;border-bottom:solid thin var(--lumo-shade-10pct);left:0;bottom:0}.w-quantity{width:var(--quantity-width)}.w-preview{width:var(--preview-size)}.h-preview{height:var(--preview-size)}`))]}static get scopedElements(){return{"vaadin-integer-field":customElements.get("vaadin-integer-field"),"x-error-screen":h,"x-preview":P,"x-i18n":l}}static get properties(){return e(e({},super.properties),{},{__modified:{},readonly:{type:Boolean,reflect:!0},currency:{type:String},category:{type:String},code:{type:String,reflect:!0},expires:{type:String},height:{type:Number},image:{type:String},length:{type:Number},name:{type:String},parent_code:{type:String},price:{type:Number},quantity:{type:Number,reflect:!0},quantity_max:{type:Number},quantity_min:{type:String},shipto:{type:String},total:{type:Number,reflect:!0,attribute:"total"},url:{type:String},value:{type:Object},weight:{type:Number},width:{type:Number},__childPrices:{},__childrenCount:{},__images:{},alt:{type:String},isChildItem:{type:Boolean,reflect:!0,attribute:"data-bundled"},isItem:{type:Boolean,reflect:!0,attribute:"data-item"},open:{type:Object},pid:{type:Number,reflect:!0},items:{type:Array}})}get items(){const t=[];return this.__onEachChildItem([e=>t.push(e.value)]),t}set items(t){this.__createItems(t)}get value(){const t={};for(let e=0;e<this.attributes.length;e++)t[this.attributes[e].name]=this.attributes[e].value;return t.items=this.items,t}set value(t){this.__itemDescription="";for(const e in t){let i="";if("description"!=e){if("object"==typeof t[e])i=JSON.stringify(t[e]);else{const s=e;(t[s]&&"undefined"!==t[s]||0===t[s])&&(i=t[e].toString())}this.setAttribute(e,t[e]?i:"")}else this.__itemDescription=t[e]}}updated(t){t.forEach(((t,e)=>{"__itemDescription"!=e&&"isChildItem"!=e||this.__updateDescriptionEl()})),this.__setTotalPrice(),this.dispatchEvent(new Event("change"))}render(){var t;if(!this.__isValid())return s(T||(T=Z`<x-error-screen type="setup_needed" class="relative"></x-error-screen>`));const e=`font-lumo text-body text-s leading-m transition duration-100 ${this.quantity?"":"removed opacity-50"}`;if(this.isChildItem)return s(O||(O=Z` <article part="item" class="py-s w-full relative separator item-summary flex justify-between ${0}"> <div class="description flex-1"> <h1 class="text-header font-medium">${0}</h1> <section class="description text-secondary"> <slot></slot> </section> </div> ${0} </article> `),e,this.name,this.quantity<2?"":s(V||(V=Z` <section class="quantity font-medium text-tertiary whitespace-nowrap"> ${0} </section> `),this._t("item.items",{quantity:this.quantity})));{const i=(null!==(t=this.price)&&void 0!==t?t:0)+this.__childPrices.reduce(((t,e)=>t+e),0),r=this.__translateAmount(i*this.quantity),a=this.__translateAmount(i);return s(M||(M=Z` <article part="item" class="p-l relative item ${0} ${0}"> <x-preview class="preview float-left w-preview h-preview mr-l mb-l" exportparts="picture" .image="${0}" .quantity="${0}" .items="${0}"> </x-preview> <section class="description min-w-description ml-description"> <h1 class="text-header font-medium text-l leading-none mr-quantity mb-s"> ${0} </h1> <div class="item-description text-secondary mr-quantity mb-s"> <slot></slot> </div> <div class="child-items mb-s"> <slot name="items"></slot> </div> ${0} </section> <section class="quantity w-quantity absolute top-0 right-0 m-l"> <vaadin-integer-field class="w-full p-0" name="quantity" @change="${0}" value="${0}" min="0" has-controls ?readonly="${0}"> </vaadin-integer-field> ${0} </section> </article> `),e,this.__modified?"modified":"",this.image,this.quantity,[...this.querySelectorAll("[data-bundled]")].map((t=>{var e;return{quantity:t.quantity,image:null!==(e=t.image)&&void 0!==e?e:""}})),this.name,a?s(H||(H=Z`<div class="font-medium price text-l">${0}</div>`),a):"",this.__handleQuantity,this.quantity,this.readonly,this.quantity>1?s(B||(B=Z` <x-i18n .ns="${0}" .lang="${0}" .opts="${0}" class="price-total text-secondary text-xs text-center block mt-xs" key="price.total"> </x-i18n> `),this.ns,this.lang,{amount:r}):"")}}getImageDescription(){return{src:this.image,alt:this.alt,quantity:this.quantity}}signedName(t){const e=super.signedName(t);return`${this.pid.toString()}:${e}`}static __newId(){const t=R.__existingIds.reduce(((t,e)=>e>t?e:t),0)+1;return R.__existingIds.push(t),t}__updateDescriptionEl(){if(this.__itemDescription){let t=this.shadowRoot.querySelector("data-item-description");t||(t=document.createElement("p"),t.dataset.itemDescription="true",this.__addSlottedEl(t)),t.innerText=this.__itemDescription}else{const t=this.shadowRoot.querySelector("data-item-description");t&&t.remove()}}__addSlottedEl(t){const e=this.shadowRoot.querySelector("article");e&&e.appendChild(t)}__setCode(){this.code||(this.code=`RAND${Math.random()}`)}__createItems(t){t.forEach((t=>{const e=document.createElement(this.tagName);e.value=t,e.currency=this.currency,e.__computeTotalPrice(),this.__acknowledgeItem(e),this.appendChild(e)}))}__setTotalPrice(){this.total=this.__computeTotalPrice()}__computeTotalPrice(){if(!this.__childPrices)return this.price?this.price*this.quantity:0;let t=0;return this.__childPrices.forEach((e=>{t+=e})),t+=this.price,t*=this.quantity,t}__isValid(){const t=[];return this.name&&this.name.length||t.push("The name attribute of an item is required."),this.price||0===this.price||t.push("The price attribute of an item is required."),this.price&&this.price<0&&t.push("Item added with negative price."),this.quantity_min&&this.quantity&&this.quantity<this.quantity_min&&t.push("Quantity amount is less than minimum quantity."),this.quantity_max&&this.quantity&&this.quantity>this.quantity_max&&t.push("Quantity amount is more than maximum quantity."),console.error(...t),!t.length}__translateAmount(t){return this.currency?t.toLocaleString(this.lang,{minimumFractionDigits:2,currency:this.currency,style:"currency"}):""}__observeItems(t){t.forEach((t=>{"childList"==t.type&&t.addedNodes.forEach((t=>{t.nodeType===Node.DOCUMENT_NODE&&this.__acknowledgeItem(t)}))})),this.__setTotalPrice()}__acknowledgeChildItems(){var t;null===(t=this.shadowRoot)||void 0===t||t.querySelectorAll("[data-item]").forEach((t=>this.__acknowledgeItem(t))),this.querySelectorAll("[data-item]").forEach((t=>this.__acknowledgeItem(t)))}__acknowledgeItem(t){t.addEventListener("change",this.__changedChildItem.bind(this)),t.currency=this.currency,t.isItem=!1,t.isChildItem=!0,this.code&&(t.parent_code=this.code)}__changedChildItem(){const t=[],e=[];let i=0;this.__onEachChildItem([e=>{void 0!==e.total&&t.push(e.total)},t=>{e.push(t.getImageDescription())},()=>i+=1]),this.image&&0===e.length&&e.push(this.getImageDescription()),this.__childPrices=t,this.__images=e,this.__childrenCount=i,this.__setTotalPrice()}__onEachChildItem(t){const e=this.querySelectorAll("[data-bundled]");for(const i of e)for(const e of t)e(i)}}R.__existingIds=[];let z,Q,W,J,U,X,G=t=>t;class K extends j{constructor(){super("items-form"),this.readonly=!1,this.target="_top",this.cart="checkout",this.sub_modify="replace",this.sub_restart="auto",this.frequencies=[],this.handleSubmit={handleEvent:()=>{null!==this.__data&&this.dispatchEvent(new m(this.__data))&&this.shadowRoot.querySelector("form").submit()}},this.__hasValidItems=!1,this.__total=0,this.__handleFrequency={handleEvent:t=>{const e=t.detail.replace(/([wydm])\w*/,"$1").replace(/ /g,"").replace(/^0/,"");K.__validFrequency(e)?this.sub_frequency=e:this.sub_frequency="",this.__updateData()}},this.__data=new FormData,this.__childItemsObserver=new MutationObserver(this.__observeChildren.bind(this)),this.__childItemsObserver.observe(this,{childList:!0,attributes:!1,subtree:!0}),this.updateComplete.then((()=>{this.__acknowledgeItemElements(),this.__computeTotalPrice(),this.__updateData()}))}static get scopedElements(){return{"x-error-screen":h,"vaadin-button":customElements.get("vaadin-button"),"x-dropdown":c,"x-item":R}}static get properties(){return e(e({},super.properties),{},{currency:{type:String},readonly:{type:Boolean},cart:{type:String,converter:t=>t&&!["checkout","add"].includes(t)?null:t},target:{type:String},store:{type:String,attribute:"store"},sub_frequency:{type:String},sub_startdate:{type:String,converter:t=>K.__validDate(t)?t:(console.error("Invalid start date",t),"")},sub_enddate:{type:String,converter:t=>K.__validDateFuture(t)?t:(console.error("Invalid end date",t),"")},sub_token:{type:String},sub_modify:{type:String,converter:t=>""===t||"append"===t?"":"replace"},sub_restart:{type:String,converter:t=>"true"===t?t:"auto"},frequencies:{converter:t=>{if(!t)return[];const e=JSON.parse(t);if(!Array.isArray(e))return console.error("Invalid frequency","Frequency options must be an array."),[];for(const t of e)if(!K.__validFrequency(t))return console.error("Invalid frequency","Invalid frequency option.\n Please, check https://wiki.foxycart.com/v/2.0/products#subscription_product_options for possible values.\n Each frequency must be a in the format:\n - 1d (a number followed by d, for day)\n - 1w (a number followed by w, for week)\n - 1m (a number followed by m, for month)\n - 1y (a number followed by y, for year)\n or .5m (no other decimals are allowed, and this is only for months)\n ",t),[];return e.filter(K.__validFrequency)}},items:{type:Array},__hasValidItems:{attribute:!1},__total:{attribute:!1},__data:{attribute:!1}})}get items(){const t=[];return this.__itemElements.forEach((e=>{const i=new Proxy(e,{set:function(t,e,i){const s=Object.keys(t.value);return!("string"!=typeof e||!s.includes(e))&&(t[e]=i,!0)},get:function(t,e){return t.value[e]}});t.push(i)})),t}set items(t){this.__removeItems(),this.__createItemsFromItemArray(t)}get total(){return this.__total}render(){var t;return this.store&&this.currency?s(Q||(Q=G` <div> <form class="overflow-hidden" method="POST" target="${0}" action="https://${0}/cart" data-testid="form" class="hidden" hidden> ${0} </form> <section class="items"> <slot></slot> </section> ${0} </div> `),this.target,this.store,this.__data?s(W||(W=G` ${0}`),[...this.__data.entries()].map((([t,e])=>s(J||(J=G`<input type="hidden" name="${0}" value="${0}">`),t,e)))):"",this.readonly?"":s(U||(U=G` <section class="actions flex flex-wrap justify-end m-m"> ${0} <vaadin-button class="m-s w-full sm-w-auto" theme="primary" data-testid="submit" ?disabled="${0}" @click="${0}"> <span class="total"> ${0} </span> </vaadin-button> </section> `),this.frequencies&&this.frequencies.length?s(X||(X=G` <x-dropdown type="text" name="frequency" class="subscription m-s w-full sm-w-auto" lang="${0}" .value="${0}" .items="${0}" .getText="${0}" @change="${0}"> </x-dropdown> `),this.lang,null!==(t=this.sub_frequency)&&void 0!==t?t:"0",this.frequencies.concat(["0"]),this.__translateFrequency.bind(this),this.__handleFrequency):"",!this.__hasValidItems,this.handleSubmit,this.__submitBtnText(this.__translateAmount(this.total)))):s(z||(z=G`<x-error-screen type="setup_needed" class="relative"></x-error-screen>`))}addItems(t){for(const e of t){const t=this.createItem(e);this.appendChild(t),this.__acknowledgeItemElement(t)}}removeItems(t){this.__removeItems((e=>t.includes(e.pid)))}updated(){this.dispatchEvent(new u(this.__data))}createItem(t){const e=this.constructor.getScopedTagName("x-item"),i=document.createElement(e);return i.value=t,i.currency=this.currency,i.readonly=this.readonly,i}__submitBtnText(t){if(this.sub_frequency&&"0"!=this.sub_frequency){const e=r(this.sub_frequency);return 1===e.count?this._t("checkout.subscribe_single_unit",{value:t,period:this._t(e.units).toLowerCase()}):this._t("checkout.subscribe_muiltiple_units",{value:t,period:this.__translateFrequency(this.sub_frequency).toLowerCase()})}return this._t("checkout.buy",{value:t})}get __itemElements(){return this.querySelectorAll("[data-item]")}__createItemsFromItemArray(t){this.addItems(t)}__removeItems(t=(()=>!0)){this.__itemElements.forEach((e=>{t(e)&&e.remove()}))}__addSignature(t,e,i){return`${t}||${e}${i?"||open":""}`}__formDataFill(t){let e=0;return this.__itemElements.forEach((i=>{e+=this.__formDataAddItem(t,i)})),this.__formDataAddCartWideSubscriptionFields(t),e}__formDataCustomInputs(t){this.querySelectorAll("[name]").forEach((e=>{const i=e;"INPUT"==i.tagName&&["checkbox","radio"].includes(i.type)&&!i.checked||"OPTION"!=i.tagName&&i.value&&["number","string"].includes(typeof i.value)&&t.set(i.name,i.value)}))}__isAttributeReserved(t){return["alt","currency","description","isChildren","isItem","items","open","pid","signatures","slot","total"].includes(t)}__formDataAddItem(t,e,i=null){let s=0;if(this.__validItem(e)){if(!e.value.pid)throw new Error("Attempt to convert a item without a propper ID");i&&i.getAttribute("code")&&e.setAttribute("parent_code",i.getAttribute("code"));for(let s=0;s<e.attributes.length;s++){const r=e.attributes[s];if(!this.__isAttributeReserved(r.name)&&!r.name.startsWith("data-")){let s=e[r.name];e.code&&["string","number"].includes(typeof s)&&(i&&"quantity"==r.name&&(s=Number(r.value)*i.quantity),t.set(e.signedName(r.name),s.toString()))}}s+=1,this.__formDataAddSubscriptionFields(t,e)}const r=e.querySelectorAll("[data-bundled]");if(r&&e.quantity>0)for(const i of r)s+=this.__formDataAddItem(t,i,e);return s}__formDataAddSubscriptionFields(t,e){if(this.sub_frequency)for(const i of["sub_frequency","sub_startdate","sub_enddate"])this[i]&&t.set(e.signedName(i),this[i])}__formDataAddCartWideSubscriptionFields(t){this.sub_frequency&&(this.sub_token&&t.set(this.signedName("sub_token"),this.sub_token),t.set(this.signedName("sub_modify"),this.sub_modify),t.set(this.signedName("sub_restart"),this.sub_restart))}__formDataAddCartFields(t){this.cart?t.set("cart",this.cart):t.delete("cart")}static __validDate(t){return null!=t&&(t.match(/^(\d{1,2}|\d{8})$/)?!(t.match(/^\d{2}$/)&&Number(t)>31):!(t.match(/^\.5m/)||!K.__validFrequency(t)))}static __validDateFuture(t){let e=!1;if(K.__validDate(t))if(t.match(/^\d{8}/)){e=(new Date).toISOString().replace(/(-|T.*)/g,"")<=t}else e=!0;return e}static __validFrequency(t){return!!t&&!!t.match(/^(\.5m|\d+[dwmy])$/)}__observeChildren(t){t.forEach((t=>{"childList"==t.type&&t.addedNodes.forEach((t=>{t.addEventListener("change",this.__itemChange.bind(this))}))})),this.__acknowledgeItemElements(),this.__computeTotalPrice(),this.__updateData()}__itemChange(){this.__computeTotalPrice(),this.__updateData()}__computeTotalPrice(){let t=0;this.__itemElements.forEach((e=>{const i=e;i.total&&(t+=Number(i.total))})),this.__total=Number(t.toFixed(2))}__acknowledgeItemElements(){this.__itemElements.forEach((t=>{const e=t;this.__acknowledgeItemElement(e)}))}__acknowledgeItemElement(t){t.addEventListener("change",this.__itemChange.bind(this)),t.currency=this.currency}__validItem(t){const e=t.getAttribute("pid"),i=Number(t.getAttribute("quantity")),s=Number(t.getAttribute("price"));return!!(e&&i>0&&s>=0)}__translateFrequency(t){if(t.startsWith("0"))return this._t("frequency_once");if(".5m"===t)return this._t("frequency_0_5m");const{count:e,units:i}=r(t);return this._t("frequency",{units:this._t(i,{count:e}),count:e})}__translateAmount(t){return t.toLocaleString(this.lang,{minimumFractionDigits:2,currency:this.currency,style:"currency"})}__updateData(){this.__data=null;if(!this.shadowRoot.querySelector("form"))return;const t=new FormData,e=this.__formDataFill(t);this.__hasValidItems=!!e,this.__formDataAddCartFields(t),this.__formDataCustomInputs(t),this.__data=t}}customElements.define("foxy-items-form",K),customElements.define("foxy-item",R);export{K as I,P,R as a};
@@ -1 +1 @@
1
- import{A as e,a7 as t}from"./shared-1761daef.js";import{d as s}from"./shared-63eaded9.js";var n=function(e,t,s,n){return new(s||(s=Promise))((function(i,o){function r(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(r,a)}c((n=n.apply(e,t||[])).next())}))};class i extends e{constructor(e){super(Object.assign(Object.assign({},e),{fetch:(...e)=>this.__fetch(...e)}))}signIn(t){return n(this,void 0,void 0,(function*(){i.v8n.credentials.check(t);const s=yield this.fetch(new URL("./authenticate",this.base).toString(),{body:JSON.stringify(t),method:"POST"});if(!s.ok){const t=401===s.status?"UNAUTHORIZED":"UNKNOWN";throw new e.AuthError({code:t})}{const e=yield s.json(),t=Object.assign(Object.assign({},e),{date_created:(new Date).toISOString()});this.storage.setItem(i.SESSION,JSON.stringify(t))}}))}sendPasswordResetEmail(t){return n(this,void 0,void 0,(function*(){i.v8n.email.check(t.email);if(!(yield this.fetch(new URL("./forgot_password",this.base).toString(),{body:JSON.stringify(t),method:"POST"})).ok)throw new e.AuthError({code:"UNKNOWN"})}))}signOut(){return n(this,void 0,void 0,(function*(){if(!(yield this.fetch(new URL("./authenticate",this.base).toString(),{method:"DELETE"})).ok)throw new e.AuthError({code:"UNKNOWN"});this.storage.clear(),this.cache.clear()}))}__fetch(e,t){var o;return n(this,void 0,void 0,(function*(){let n=JSON.parse(null!==(o=this.storage.getItem(i.SESSION))&&void 0!==o?o:"null");const r=new s.Request(e,t);if(null!==n){new Date(n.date_created).getTime()+1e3*n.expires_in<Date.now()?(this.console.info("Session has expired, signing out."),this.storage.clear(),this.cache.clear(),n=null):r.headers.set("Authorization",`Bearer ${n.session_token}`)}r.headers.set("Content-Type","application/json"),r.headers.set("FOXY-API-VERSION","1"),this.console.trace(`${r.method} ${r.url}`);const a=yield s.fetch(r);if(n&&a.ok){const e=Object.assign(Object.assign({},n),{date_created:(new Date).toISOString()});this.storage.setItem(i.SESSION,JSON.stringify(e))}return a}))}}i.SESSION="session",i.v8n=Object.assign({},e.v8n,{credentials:t().schema({email:t().string(),newPassword:t().optional(t().string()),password:t().string()}),email:t().string()});let o=/(-?(?:\d+\.?\d*|\d*\.?\d+)(?:e[-+]?\d+)?)\s*([a-zµμ]*)/gi;function r(e="",t="ms"){var s=null;return(e=e.replace(/(\d),(\d)/g,"$1$2")).replace(o,(function(e,t,n){(n=r[n]||r[n.toLowerCase().replace(/s$/,"")])&&(s=(s||0)+parseFloat(t,10)*n)})),s&&s/r[t]}r.nanosecond=r.ns=1e-6,r["µs"]=r["μs"]=r.us=r.microsecond=.001,r.millisecond=r.ms=1,r.second=r.sec=r.s=1e3*r.ms,r.minute=r.min=r.m=60*r.s,r.hour=r.hr=r.h=60*r.m,r.day=r.d=24*r.h,r.week=r.wk=r.w=7*r.d,r.month=r.b=30.4375*r.d,r.year=r.yr=r.y=365.25*r.d;export{i as A,r as p};
1
+ import{A as e,a8 as t}from"./shared-c1dadefe.js";import{d as s}from"./shared-63eaded9.js";var n=function(e,t,s,n){return new(s||(s=Promise))((function(i,o){function r(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(r,a)}c((n=n.apply(e,t||[])).next())}))};class i extends e{constructor(e){super(Object.assign(Object.assign({},e),{fetch:(...e)=>this.__fetch(...e)}))}signIn(t){return n(this,void 0,void 0,(function*(){i.v8n.credentials.check(t);const s=yield this.fetch(new URL("./authenticate",this.base).toString(),{body:JSON.stringify(t),method:"POST"});if(!s.ok){const t=401===s.status?"UNAUTHORIZED":"UNKNOWN";throw new e.AuthError({code:t})}{const e=yield s.json(),t=Object.assign(Object.assign({},e),{date_created:(new Date).toISOString()});this.storage.setItem(i.SESSION,JSON.stringify(t))}}))}sendPasswordResetEmail(t){return n(this,void 0,void 0,(function*(){i.v8n.email.check(t.email);if(!(yield this.fetch(new URL("./forgot_password",this.base).toString(),{body:JSON.stringify(t),method:"POST"})).ok)throw new e.AuthError({code:"UNKNOWN"})}))}signOut(){return n(this,void 0,void 0,(function*(){if(!(yield this.fetch(new URL("./authenticate",this.base).toString(),{method:"DELETE"})).ok)throw new e.AuthError({code:"UNKNOWN"});this.storage.clear(),this.cache.clear()}))}__fetch(e,t){var o;return n(this,void 0,void 0,(function*(){let n=JSON.parse(null!==(o=this.storage.getItem(i.SESSION))&&void 0!==o?o:"null");const r=new s.Request(e,t);if(null!==n){new Date(n.date_created).getTime()+1e3*n.expires_in<Date.now()?(this.console.info("Session has expired, signing out."),this.storage.clear(),this.cache.clear(),n=null):r.headers.set("Authorization",`Bearer ${n.session_token}`)}r.headers.set("Content-Type","application/json"),r.headers.set("FOXY-API-VERSION","1"),this.console.trace(`${r.method} ${r.url}`);const a=yield s.fetch(r);if(n&&a.ok){const e=Object.assign(Object.assign({},n),{date_created:(new Date).toISOString()});this.storage.setItem(i.SESSION,JSON.stringify(e))}return a}))}}i.SESSION="session",i.v8n=Object.assign({},e.v8n,{credentials:t().schema({email:t().string(),newPassword:t().optional(t().string()),password:t().string()}),email:t().string()});let o=/(-?(?:\d+\.?\d*|\d*\.?\d+)(?:e[-+]?\d+)?)\s*([a-zµμ]*)/gi;function r(e="",t="ms"){var s=null;return(e=e.replace(/(\d),(\d)/g,"$1$2")).replace(o,(function(e,t,n){(n=r[n]||r[n.toLowerCase().replace(/s$/,"")])&&(s=(s||0)+parseFloat(t,10)*n)})),s&&s/r[t]}r.nanosecond=r.ns=1e-6,r["µs"]=r["μs"]=r.us=r.microsecond=.001,r.millisecond=r.ms=1,r.second=r.sec=r.s=1e3*r.ms,r.minute=r.min=r.m=60*r.s,r.hour=r.hr=r.h=60*r.m,r.day=r.d=24*r.h,r.week=r.wk=r.w=7*r.d,r.month=r.b=30.4375*r.d,r.year=r.yr=r.y=365.25*r.d;export{i as A,r as p};
@@ -8,12 +8,20 @@
8
8
  "address2": "Address Line 2",
9
9
  "address_name": "Address name",
10
10
  "address_plural": "Addresses",
11
+ "allow": "Allow",
11
12
  "allowlist": "Allow all except",
13
+ "allunits_price_amount_discount_summary": "{{adjustment}}¤ each after {{from}}",
14
+ "allunits_price_percentage_discount_summary": "{{adjustment, percent}} after {{from}}",
15
+ "allunits_quantity_amount_discount_summary": "{{adjustment}}¤ each on orders of {{from}}+",
16
+ "allunits_quantity_percentage_discount_summary": "{{adjustment, percent}} on orders of {{from}}+",
17
+ "apply_taxes_before_coupon": "Apply taxes before this coupon",
18
+ "apply_taxes_before_coupon_explainer": "Calculate taxes before applying this coupon.",
12
19
  "attribute_plural": "Attributes",
13
20
  "back": "Back",
14
21
  "backend_developer": "Backend developer",
15
22
  "backend_developer_explainer": "Manages server-side code in PHP, Python, Ruby, etc.",
16
23
  "billing": "Billing",
24
+ "block": "Block",
17
25
  "blocklist": "Ban all except",
18
26
  "cache": "Cache",
19
27
  "cancel": "Cancel",
@@ -25,6 +33,8 @@
25
33
  "cart_type_default_explainer": "Default cart appearance in version 2.0",
26
34
  "cart_type_fullpage": "Full page",
27
35
  "cart_type_fullpage_explainer": "Send all customers to a full page cart while still including minicart functionality",
36
+ "category_restrictions": "Category restrictions",
37
+ "category_restrictions_helper_text": "Select which item categories this coupon can be applied to. If you’d like this coupon to be available to all items regardless of the category, keep your selection empty. All changes are saved automatically.",
28
38
  "checked_by_default": "Checked by default",
29
39
  "checkout_type": "Accounts",
30
40
  "checkout_type_account_only": "Allow customer accounts only",
@@ -33,16 +43,202 @@
33
43
  "checkout_type_guest_only": "Allow guests only",
34
44
  "checkout_type_helper_text": "If you select $t(checkout_type_guest_only), your store will not be able to use subscriptions.",
35
45
  "city": "City",
46
+ "clear_filters": "Clear filters",
36
47
  "client": "Client",
37
48
  "close": "Close",
38
49
  "close_icon": "Close icon",
50
+ "code": "Code",
51
+ "code_import_hint": "Paste multiple space-separated codes in the field above to add all of them at once. Importing duplicate codes clears their usage stats.",
52
+ "code_plural": "Codes",
53
+ "combinable": "Combine with other coupons",
54
+ "combinable_explainer": "Let customers apply this coupon when there are other coupons in the cart.",
55
+ "combine_with_category_discounts": "Combine with category discounts",
56
+ "combine_with_category_discounts_explainer": "Let customers apply this coupon when category discounts are applied to the cart.",
57
+ "combine_with_line_discounts": "Combine with line item discounts",
58
+ "combine_with_line_discounts_explainer": "Let customers apply this coupon when line item discounts are applied to the cart.",
39
59
  "company": "Company",
40
60
  "consent": "Consent",
61
+ "copied": "Copied",
62
+ "copy": "Copy",
41
63
  "country": "Country",
42
64
  "coupon_entry": "Coupon code",
65
+ "coupon_name_helper_text": "Coupon name is visible to the customers.",
43
66
  "create": "Create",
67
+ "currency": "Currency",
68
+ "currency_aed": "United Arab Emirates Dirham",
69
+ "currency_afn": "Afghan Afghani",
70
+ "currency_all": "Albanian Lek",
71
+ "currency_amd": "Armenian Dram",
72
+ "currency_ang": "Netherlands Antillean Guilder",
73
+ "currency_aoa": "Angolan Kwanza",
74
+ "currency_ars": "Argentine Peso",
75
+ "currency_aud": "Australian Dollar",
76
+ "currency_awg": "Aruban Florin",
77
+ "currency_azn": "Azerbaijani Manat",
78
+ "currency_bam": "Bosnia-Herzegovina Convertible Mark",
79
+ "currency_bbd": "Barbadian Dollar",
80
+ "currency_bdt": "Bangladeshi Taka",
81
+ "currency_bgn": "Bulgarian Lev",
82
+ "currency_bhd": "Bahraini Dinar",
83
+ "currency_bif": "Burundian Franc",
84
+ "currency_bmd": "Bermudan Dollar",
85
+ "currency_bnd": "Brunei Dollar",
86
+ "currency_bob": "Bolivian Boliviano",
87
+ "currency_brl": "Brazilian Real",
88
+ "currency_bsd": "Bahamian Dollar",
89
+ "currency_btc": "Bitcoin",
90
+ "currency_btn": "Bhutanese Ngultrum",
91
+ "currency_bwp": "Botswanan Pula",
92
+ "currency_byn": "Belarusian Ruble",
93
+ "currency_bzd": "Belize Dollar",
94
+ "currency_cad": "Canadian Dollar",
95
+ "currency_cdf": "Congolese Franc",
96
+ "currency_chf": "Swiss Franc",
97
+ "currency_clf": "Chilean Unit of Account (UF)",
98
+ "currency_clp": "Chilean Peso",
99
+ "currency_cnh": "Chinese Yuan (Offshore)",
100
+ "currency_cny": "Chinese Yuan",
101
+ "currency_cop": "Colombian Peso",
102
+ "currency_crc": "Costa Rican Colón",
103
+ "currency_cuc": "Cuban Convertible Peso",
104
+ "currency_cup": "Cuban Peso",
105
+ "currency_cve": "Cape Verdean Escudo",
106
+ "currency_czk": "Czech Republic Koruna",
107
+ "currency_djf": "Djiboutian Franc",
108
+ "currency_dkk": "Danish Krone",
109
+ "currency_dop": "Dominican Peso",
110
+ "currency_dzd": "Algerian Dinar",
111
+ "currency_egp": "Egyptian Pound",
112
+ "currency_ern": "Eritrean Nakfa",
113
+ "currency_etb": "Ethiopian Birr",
114
+ "currency_eur": "Euro",
115
+ "currency_fjd": "Fijian Dollar",
116
+ "currency_fkp": "Falkland Islands Pound",
117
+ "currency_gbp": "British Pound Sterling",
118
+ "currency_gel": "Georgian Lari",
119
+ "currency_ggp": "Guernsey Pound",
120
+ "currency_ghs": "Ghanaian Cedi",
121
+ "currency_gip": "Gibraltar Pound",
122
+ "currency_gmd": "Gambian Dalasi",
123
+ "currency_gnf": "Guinean Franc",
124
+ "currency_gtq": "Guatemalan Quetzal",
125
+ "currency_gyd": "Guyanaese Dollar",
126
+ "currency_hkd": "Hong Kong Dollar",
127
+ "currency_hnl": "Honduran Lempira",
128
+ "currency_hrk": "Croatian Kuna",
129
+ "currency_htg": "Haitian Gourde",
130
+ "currency_huf": "Hungarian Forint",
131
+ "currency_idr": "Indonesian Rupiah",
132
+ "currency_ils": "Israeli New Sheqel",
133
+ "currency_imp": "Manx pound",
134
+ "currency_inr": "Indian Rupee",
135
+ "currency_iqd": "Iraqi Dinar",
136
+ "currency_irr": "Iranian Rial",
137
+ "currency_isk": "Icelandic Króna",
138
+ "currency_jep": "Jersey Pound",
139
+ "currency_jmd": "Jamaican Dollar",
140
+ "currency_jod": "Jordanian Dinar",
141
+ "currency_jpy": "Japanese Yen",
142
+ "currency_kes": "Kenyan Shilling",
143
+ "currency_kgs": "Kyrgystani Som",
144
+ "currency_khr": "Cambodian Riel",
145
+ "currency_kmf": "Comorian Franc",
146
+ "currency_kpw": "North Korean Won",
147
+ "currency_krw": "South Korean Won",
148
+ "currency_kwd": "Kuwaiti Dinar",
149
+ "currency_kyd": "Cayman Islands Dollar",
150
+ "currency_kzt": "Kazakhstani Tenge",
151
+ "currency_lak": "Laotian Kip",
152
+ "currency_lbp": "Lebanese Pound",
153
+ "currency_lkr": "Sri Lankan Rupee",
154
+ "currency_lrd": "Liberian Dollar",
155
+ "currency_lsl": "Lesotho Loti",
156
+ "currency_lyd": "Libyan Dinar",
157
+ "currency_mad": "Moroccan Dirham",
158
+ "currency_mdl": "Moldovan Leu",
159
+ "currency_mga": "Malagasy Ariary",
160
+ "currency_mkd": "Macedonian Denar",
161
+ "currency_mmk": "Myanma Kyat",
162
+ "currency_mnt": "Mongolian Tugrik",
163
+ "currency_mop": "Macanese Pataca",
164
+ "currency_mru": "Mauritanian Ouguiya",
165
+ "currency_mur": "Mauritian Rupee",
166
+ "currency_mvr": "Maldivian Rufiyaa",
167
+ "currency_mwk": "Malawian Kwacha",
168
+ "currency_mxn": "Mexican Peso",
169
+ "currency_myr": "Malaysian Ringgit",
170
+ "currency_mzn": "Mozambican Metical",
171
+ "currency_nad": "Namibian Dollar",
172
+ "currency_ngn": "Nigerian Naira",
173
+ "currency_nio": "Nicaraguan Córdoba",
174
+ "currency_nok": "Norwegian Krone",
175
+ "currency_npr": "Nepalese Rupee",
176
+ "currency_nzd": "New Zealand Dollar",
177
+ "currency_omr": "Omani Rial",
178
+ "currency_pab": "Panamanian Balboa",
179
+ "currency_pen": "Peruvian Nuevo Sol",
180
+ "currency_pgk": "Papua New Guinean Kina",
181
+ "currency_php": "Philippine Peso",
182
+ "currency_pkr": "Pakistani Rupee",
183
+ "currency_pln": "Polish Zloty",
184
+ "currency_pyg": "Paraguayan Guarani",
185
+ "currency_qar": "Qatari Rial",
186
+ "currency_ron": "Romanian Leu",
187
+ "currency_rsd": "Serbian Dinar",
188
+ "currency_rub": "Russian Ruble",
189
+ "currency_rwf": "Rwandan Franc",
190
+ "currency_sar": "Saudi Riyal",
191
+ "currency_sbd": "Solomon Islands Dollar",
192
+ "currency_scr": "Seychellois Rupee",
193
+ "currency_sdg": "Sudanese Pound",
194
+ "currency_sek": "Swedish Krona",
195
+ "currency_sgd": "Singapore Dollar",
196
+ "currency_shp": "Saint Helena Pound",
197
+ "currency_sll": "Sierra Leonean Leone",
198
+ "currency_sos": "Somali Shilling",
199
+ "currency_srd": "Surinamese Dollar",
200
+ "currency_ssp": "South Sudanese Pound",
201
+ "currency_std": "São Tomé and Príncipe Dobra (pre-2018)",
202
+ "currency_stn": "São Tomé and Príncipe Dobra",
203
+ "currency_svc": "Salvadoran Colón",
204
+ "currency_syp": "Syrian Pound",
205
+ "currency_szl": "Swazi Lilangeni",
206
+ "currency_thb": "Thai Baht",
207
+ "currency_tjs": "Tajikistani Somoni",
208
+ "currency_tmt": "Turkmenistani Manat",
209
+ "currency_tnd": "Tunisian Dinar",
210
+ "currency_top": "Tongan Pa'anga",
211
+ "currency_try": "Turkish Lira",
212
+ "currency_ttd": "Trinidad and Tobago Dollar",
213
+ "currency_twd": "New Taiwan Dollar",
214
+ "currency_tzs": "Tanzanian Shilling",
215
+ "currency_uah": "Ukrainian Hryvnia",
216
+ "currency_ugx": "Ugandan Shilling",
217
+ "currency_usd": "United States Dollar",
218
+ "currency_uyu": "Uruguayan Peso",
219
+ "currency_uzs": "Uzbekistan Som",
220
+ "currency_vef": "Venezuelan Bolívar Fuerte (Old)",
221
+ "currency_ves": "Venezuelan Bolívar Soberano",
222
+ "currency_vnd": "Vietnamese Dong",
223
+ "currency_vuv": "Vanuatu Vatu",
224
+ "currency_wst": "Samoan Tala",
225
+ "currency_xaf": "CFA Franc BEAC",
226
+ "currency_xag": "Silver Ounce",
227
+ "currency_xau": "Gold Ounce",
228
+ "currency_xcd": "East Caribbean Dollar",
229
+ "currency_xdr": "Special Drawing Rights",
230
+ "currency_xof": "CFA Franc BCEAO",
231
+ "currency_xpd": "Palladium Ounce",
232
+ "currency_xpf": "CFP Franc",
233
+ "currency_xpt": "Platinum Ounce",
234
+ "currency_yer": "Yemeni Rial",
235
+ "currency_zar": "South African Rand",
236
+ "currency_zmw": "Zambian Kwacha",
237
+ "currency_zwl": "Zimbabwean Dollar",
238
+ "current_balance": "Current balance",
44
239
  "custom_config": "Custom config",
45
240
  "custom_config_helper_text": "If you have any custom values you'd like to make available to your twig template, you can add them here as a valid JSON string.",
241
+ "custom_discount": "Custom discount",
46
242
  "custom_fields": "Custom fields",
47
243
  "custom_fields_helper_text": "If you have information you'd like to collect from the customer on the checkout page, you can add custom form fields here which will be added to the checkout form. We recommend you follow the same HTML container structure used on other checkout fields for consistency. You can use Twig syntax here.",
48
244
  "custom_footer": "Custom footer",
@@ -55,6 +251,10 @@
55
251
  "date": "{{value, date}}",
56
252
  "date_created": "Created on",
57
253
  "date_modified": "Last updated",
254
+ "date_range_any": "Ongoing",
255
+ "date_range_complete": "{{start, date}} – {{end, date}}",
256
+ "date_range_from": "From {{start, date}}",
257
+ "date_range_until": "Until {{end, date}}",
58
258
  "day": "Day",
59
259
  "day_plural": "Days",
60
260
  "default": "Default",
@@ -66,19 +266,27 @@
66
266
  "designer": "Designer",
67
267
  "designer_explainer": "Manages appearance, art and user interface.",
68
268
  "disabled": "Disabled",
269
+ "discount_preset": "Discount preset",
270
+ "discount_summary": "{{params, discount}}",
69
271
  "display_sdta": "Display a Secure Data Transfer agreement to EU customers",
70
272
  "display_sdta_explainer": "If you have customers in the European Union, enable this feature so they can opt in to sending their data to our secure servers in the United States.",
71
273
  "display_tos_link": "Display a link to Terms & Conditions",
72
274
  "display_tos_link_explainer": "Include a checkbox to ask your customers to agree to your Terms of Service.",
275
+ "duplicate": "Duplicate",
73
276
  "email": "Email",
74
277
  "enable_postcode_lookup": "Offer city and state suggestions based on postcode",
75
278
  "enabled": "Enabled",
76
279
  "end_date": "End date",
77
280
  "end_subscription": "End subscription",
78
281
  "end_subscription_explainer": "Your subscription will remain active until the selected end date. You might have to resubscribe if you decide to resume this subscription later.",
282
+ "error": "Error",
79
283
  "expires": "Expires",
284
+ "expires_after": "Expires after",
285
+ "expires_after_value": "Expires {{value}}",
80
286
  "field": "Field",
81
287
  "field_plural": "Fields",
288
+ "filter": "Filter",
289
+ "first": "First",
82
290
  "first_name": "First name",
83
291
  "foxycomplete": "Location autocomplete",
84
292
  "foxycomplete_combobox": "Combo Box",
@@ -99,17 +307,34 @@
99
307
  "ga_account_id_explainer": "You can find the ID in the Admin section of your Analytics in Tracking info > Tracking code.",
100
308
  "ga_include_on_site": "Include via loader.js",
101
309
  "ga_include_on_site_explainer": "Enable Google Analytics on any page where the loader.js file is included.",
310
+ "generate": "Generate",
311
+ "generate_codes_done": "All done! We've added new codes for you.",
312
+ "gift_card_category_restrictions_helper_text": "Select which item categories this gift card can be applied to. If you’d like this gift card to be available to all items regardless of the category, keep your selection empty. All changes are saved automatically.",
313
+ "gift_card_name_helper_text": "Gift card names are displayed to the customer.",
314
+ "gift_card_product_restrictions_explainer": "If you want to limit which products can use this gift card, you can enter full product codes or partial product codes using * as a wild card at the beginning or end of the value. So abc123, fun_*, *-small would match abc123, fun_ and fun_times, and example-small. It wouldn't match abc12, abc1234, fun, or good-smalls.",
102
315
  "hidden": "Hidden",
316
+ "hidden_codes_explainer": "We’ve hidden some of your codes because there were too many of them. Don’t worry – we’ll import them anyway.",
317
+ "hidden_codes_header": "{{count}} code is hidden",
318
+ "hidden_codes_header_plural": "{{count}} codes are hidden",
103
319
  "hidden_fields": "Hidden fields",
104
320
  "html_template": "HTML template",
321
+ "import": "Import",
322
+ "import_codes_done": "All done! We've imported your codes into the system.",
323
+ "incremental_price_amount_discount_summary": "{{adjustment}}¤ each on orders of {{from}}+",
324
+ "incremental_price_percentage_discount_summary": "{{adjustment, percent}} on orders of {{from}}+",
325
+ "incremental_quantity_amount_discount_summary": "{{adjustment}}¤ each on items {{from}}+",
326
+ "incremental_quantity_percentage_discount_summary": "{{adjustment, percent}} on items {{from}}+",
105
327
  "invalid_credential_error": "Incorrect email or password. Please check your credentials and try again.",
106
328
  "is_defined_false": "Not defined",
107
329
  "is_defined_true": "Defined",
108
330
  "item": "Item",
109
331
  "item_plural": "Items",
332
+ "last": "Last",
110
333
  "last_4_digits": "Last 4 digits",
111
334
  "last_login_date": "Last login",
112
335
  "last_name": "Last name",
336
+ "leave_empty_for_random_codes": "Leave empty to generate completely random codes.",
337
+ "length": "Length",
113
338
  "load_more": "Load more",
114
339
  "loading_busy": "Loading",
115
340
  "loading_empty": "No data",
@@ -129,13 +354,18 @@
129
354
  "month_plural": "Months",
130
355
  "monthly": "Monthly",
131
356
  "monthly_plural": "Every {{count}} months",
357
+ "multiple_codes_allowed": "Allow multiple codes per customer",
358
+ "multiple_codes_allowed_explainer": "Let customers apply this coupon multiple times to the same order.",
132
359
  "name": "Name",
360
+ "never_expires": "Never expires",
133
361
  "new_password": "New password",
134
362
  "new_password_format_error": "The new password you've chosen is too weak. Please enter a secure new password.",
135
363
  "new_password_required_error": "To keep your account secure, please change your password before logging in this time.",
136
364
  "newsletter_subscribe": "Allow users to sign up for your newsletter",
137
365
  "newsletter_subscribe_explainer": "This includes a checkbox on your checkout to allow customers to choose to sign up to your newsletter, available in the transaction reports, the API and webhooks.",
366
+ "next": "Next",
138
367
  "next_transaction_date": "Next transaction date",
368
+ "number_of_codes": "Number of codes",
139
369
  "open_icon": "Open icon",
140
370
  "operator_equal": "Equal",
141
371
  "operator_greaterthan": "Greater than",
@@ -145,20 +375,32 @@
145
375
  "operator_lessthan": "Less than",
146
376
  "operator_lessthanorequal": "Less than or equal",
147
377
  "operator_not": "Not equal",
378
+ "option_plural": "Options",
148
379
  "optional": "Optional",
149
380
  "or": "Or",
381
+ "ordinal_few": "rd",
382
+ "ordinal_many": "th",
383
+ "ordinal_one": "st",
384
+ "ordinal_other": "th",
385
+ "ordinal_two": "nd",
386
+ "ordinal_zero": "th",
387
+ "pagination": "{{from}}-{{to}} out of {{total}}",
150
388
  "password": "Password",
151
389
  "payment_method_plural": "Payment methods",
152
390
  "percent": "{{fraction, percent}}",
153
391
  "phone": "Phone",
154
392
  "postal_code": "Postal code",
393
+ "prefix": "Prefix",
155
394
  "preview": "Preview",
395
+ "previous": "Previous",
156
396
  "price": "{{amount, price}}",
157
397
  "price_recurring": "{{amount, price}} $t(frequency, { \"count\": \"{{count}}\", \"units\": \"{{units}}\" })",
158
398
  "price_twice_a_month": "{{amount, price}} $t(twice_a_month)",
159
399
  "product_category": "Product category",
160
400
  "product_code": "Product code",
161
401
  "product_options": "Product options",
402
+ "product_restrictions": "Product restrictions",
403
+ "product_restrictions_explainer": "If you want to limit which products can use this coupon, you can enter full product codes or partial product codes using * as a wild card at the beginning or end of the value. So abc123, fun_*, *-small would match abc123, fun_ and fun_times, and example-small. It wouldn't match abc12, abc1234, fun, or good-smalls.",
162
404
  "product_weight": "Product weight",
163
405
  "query_builder_group": "Group of filters",
164
406
  "query_builder_rule": "Filter",
@@ -169,20 +411,33 @@
169
411
  "recover_access_hint": "Enter your email and we'll send you a temporary password",
170
412
  "recover_access_success": "Done! Please check your email for further instructions.",
171
413
  "region": "Region",
414
+ "repeat_price_amount_discount_summary": "for each {{from}}, {{adjustment}}¤ on the next item",
415
+ "repeat_price_percentage_discount_summary": "for each {{from}}, {{adjustment, percent}} on the next item",
416
+ "repeat_quantity_amount_discount_summary": "{{adjustment}}¤ on each {{from, ordinal}} item",
417
+ "repeat_quantity_percentage_discount_summary": "{{adjustment, percent}} on each {{from, ordinal}} item",
172
418
  "request": "Request",
173
419
  "require_consent": "Require consent to proceed",
174
420
  "required": "Required",
421
+ "rule_plural": "Rules",
175
422
  "same_as_shipping": "Same as shipping",
176
423
  "save": "Save",
424
+ "select": "Select...",
425
+ "set_time_constraints": "Set time constraints",
426
+ "set_time_constraints_explainer": "Limit when your customers can apply this coupon.",
177
427
  "shipping": "Shipping",
178
428
  "show_country_flags": "Show country flags",
179
429
  "show_on_receipt": "Show on receipt",
180
430
  "sign_in": "Sign in",
181
431
  "sign_in_hint": "Please enter your email and password",
432
+ "single_price_amount_discount_summary": "{{adjustment}}¤ after {{from}}",
433
+ "single_price_percentage_discount_summary": "{{adjustment, percent}} after {{from}}",
434
+ "single_quantity_amount_discount_summary": "{{adjustment}}¤ after {{from}} items",
435
+ "single_quantity_percentage_discount_summary": "{{adjustment, percent}} after {{from}} items",
182
436
  "sio_account_id": "Write Key",
183
437
  "sio_account_id_explainer": "You can find the write key in your project set up guide or in the source’s settings.",
184
438
  "skip_csc_for_saved": "Skip CSC for saved cards",
185
439
  "skip_csc_for_sso": "Skip CSC for single sign-on",
440
+ "start_date": "Start date",
186
441
  "sub_enddate": "Subscription end date",
187
442
  "sub_frequency": "Subscription frequency",
188
443
  "sub_nextdate": "Subscription next date",
@@ -219,6 +474,14 @@
219
474
  "template_url": "From URL",
220
475
  "template_url_explainer": "Fetch the template from a public URL",
221
476
  "text_template": "Text template",
477
+ "tier": "Tier",
478
+ "tier_allunits": "price of each item",
479
+ "tier_by": "by",
480
+ "tier_if": "if",
481
+ "tier_incremental": "price of additional items",
482
+ "tier_repeat": "price of next item",
483
+ "tier_single": "order total",
484
+ "tier_then": "then",
222
485
  "time": "{{value, time}}",
223
486
  "transaction": "Transaction",
224
487
  "transaction_approved": "Approved",
@@ -242,16 +505,36 @@
242
505
  "type_any": "Field of unknown type",
243
506
  "type_attribute": "Key-value resource",
244
507
  "type_date": "Date field",
508
+ "type_here": "Type here...",
245
509
  "type_number": "Numeric field",
246
510
  "type_string": "Text field",
247
511
  "undo_cancel": "Review",
248
512
  "undo_confirm": "Discard",
249
513
  "undo_header": "Unsaved changes",
250
514
  "undo_message": "Looks like you didn't save your changes! What would you like to do with them?",
515
+ "unique": "Unique",
516
+ "unknown": "Unknown",
251
517
  "unknown_error": "An unknown error has occured. Please try again later.",
518
+ "unlimited": "Unlimited",
252
519
  "update": "Update",
253
520
  "update_billing": "Update billing",
254
521
  "update_items": "Edit",
522
+ "url_parameter": "URL parameter",
523
+ "used_codes": "Codes used",
524
+ "uses_count": "{{count}} uses",
525
+ "uses_per_coupon": "Uses per coupon",
526
+ "uses_per_coupon_code": "Uses per code",
527
+ "uses_per_coupon_code_summary": "Each coupon code can be used only one time.",
528
+ "uses_per_coupon_code_summary_0": "Each coupon code can be used unlimited times.",
529
+ "uses_per_coupon_code_summary_plural": "Each coupon code can be used only {{count}} times.",
530
+ "uses_per_coupon_summary": "Only the first customer can use this coupon.",
531
+ "uses_per_coupon_summary_0": "All customers can use this coupon.",
532
+ "uses_per_coupon_summary_plural": "Only the first {{count}} customers can use this coupon.",
533
+ "uses_per_customer": "Uses per customer",
534
+ "uses_per_customer_summary": "Customers can use this coupon for one order only.",
535
+ "uses_per_customer_summary_0": "Customers can use this coupon for as many orders as they like.",
536
+ "uses_per_customer_summary_plural": "Customers can use this coupon for {{count}} orders only.",
537
+ "uses_to_total_count": "{{count}}/{{total}} uses",
255
538
  "v8n_format_error": "Invalid format",
256
539
  "v8n_invalid_email": "Invalid email",
257
540
  "v8n_required": "Required",