@foxy.io/elements 1.15.0-beta.2 → 1.15.0-beta.5

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 (170) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +1 -1
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  5. package/dist/cdn/foxy-attribute-card.js +1 -1
  6. package/dist/cdn/foxy-attribute-form.js +1 -1
  7. package/dist/cdn/foxy-cancellation-form.js +1 -1
  8. package/dist/cdn/foxy-collection-page.js +1 -1
  9. package/dist/cdn/foxy-collection-pages.js +1 -1
  10. package/dist/cdn/foxy-coupon-card.js +1 -1
  11. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  12. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  13. package/dist/cdn/foxy-coupon-form.js +1 -1
  14. package/dist/cdn/foxy-custom-field-card.js +1 -1
  15. package/dist/cdn/foxy-custom-field-form.js +1 -1
  16. package/dist/cdn/foxy-customer-api.js +1 -1
  17. package/dist/cdn/foxy-customer-card.js +1 -1
  18. package/dist/cdn/foxy-customer-form.js +1 -1
  19. package/dist/cdn/foxy-customer-portal-settings.js +1 -169
  20. package/dist/cdn/foxy-customer-portal.js +1 -1
  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 -1
  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 -1
  37. package/dist/cdn/foxy-payment-card.js +1 -1
  38. package/dist/cdn/foxy-payment-method-card.js +1 -1
  39. package/dist/cdn/foxy-query-builder.js +1 -1
  40. package/dist/cdn/foxy-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-0032dc09.js +302 -0
  55. package/dist/cdn/{shared-9af7b5f0.js → shared-02945b27.js} +1 -1
  56. package/dist/cdn/{shared-c6a4b2d6.js → shared-05488216.js} +1 -1
  57. package/dist/cdn/{shared-b03b6d72.js → shared-07049bfe.js} +1 -1
  58. package/dist/cdn/{shared-ccea5a33.js → shared-08c63028.js} +1 -1
  59. package/dist/cdn/shared-09069d7c.js +1 -0
  60. package/dist/cdn/shared-0e4d19e2.js +1 -0
  61. package/dist/cdn/{shared-d3831f99.js → shared-21419f10.js} +1 -1
  62. package/dist/cdn/{shared-423a4840.js → shared-39e3ae67.js} +1 -1
  63. package/dist/cdn/{shared-51b5e223.js → shared-40b5267a.js} +1 -1
  64. package/dist/cdn/{shared-d9a260f0.js → shared-43abbdd9.js} +1 -1
  65. package/dist/cdn/{shared-fb403e1f.js → shared-448781f9.js} +1 -1
  66. package/dist/cdn/{shared-a8d96c23.js → shared-4cc1da27.js} +1 -1
  67. package/dist/cdn/{shared-8f7a66c4.js → shared-4dc6d228.js} +1 -1
  68. package/dist/cdn/{shared-c1dadefe.js → shared-5535f38f.js} +1 -1
  69. package/dist/cdn/{shared-a11160e7.js → shared-5639389e.js} +1 -1
  70. package/dist/cdn/shared-66633ff7.js +1 -0
  71. package/dist/cdn/{shared-0bda8ecb.js → shared-67ca44d2.js} +1 -1
  72. package/dist/cdn/{shared-30131f76.js → shared-756034e4.js} +1 -1
  73. package/dist/cdn/shared-7f0a9790.js +1 -0
  74. package/dist/cdn/shared-8a5ec3cf.js +1 -0
  75. package/dist/cdn/{shared-b2330475.js → shared-a23cf7c8.js} +1 -1
  76. package/dist/cdn/{shared-ff149b55.js → shared-b30bc42d.js} +1 -1
  77. package/dist/cdn/{shared-a4e6ecb0.js → shared-b9f18aaa.js} +1 -1
  78. package/dist/cdn/{shared-f875a4f8.js → shared-cf6751d3.js} +1 -1
  79. package/dist/cdn/{shared-51e28c83.js → shared-df730f90.js} +1 -1
  80. package/dist/cdn/{shared-4038cb18.js → shared-e209cb55.js} +1 -1
  81. package/dist/cdn/{shared-cd3c902e.js → shared-e68b9c83.js} +1 -1
  82. package/dist/cdn/translations/shared/en.json +178 -0
  83. package/dist/cdn/translations/shared/zh-hk.json +179 -0
  84. package/dist/elements/private/EditableList/EditableList.js +1 -0
  85. package/dist/elements/private/EditableList/EditableList.js.map +1 -1
  86. package/dist/elements/private/FrequencyInput/FrequencyInput.d.ts +2 -1
  87. package/dist/elements/private/FrequencyInput/FrequencyInput.js +3 -1
  88. package/dist/elements/private/FrequencyInput/FrequencyInput.js.map +1 -1
  89. package/dist/elements/public/CollectionPage/CollectionPage.js +3 -1
  90. package/dist/elements/public/CollectionPage/CollectionPage.js.map +1 -1
  91. package/dist/elements/public/CollectionPage/types.d.ts +2 -0
  92. package/dist/elements/public/CollectionPage/types.js.map +1 -1
  93. package/dist/elements/public/CouponCard/CouponCard.js +2 -2
  94. package/dist/elements/public/CouponCard/CouponCard.js.map +1 -1
  95. package/dist/elements/public/CouponCodesForm/CouponCodesForm.d.ts +2 -0
  96. package/dist/elements/public/CouponCodesForm/CouponCodesForm.js +7 -1
  97. package/dist/elements/public/CouponCodesForm/CouponCodesForm.js.map +1 -1
  98. package/dist/elements/public/CouponForm/CouponForm.js +0 -2
  99. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  100. package/dist/elements/public/GiftCardCard/GiftCardCard.d.ts +26 -0
  101. package/dist/elements/public/GiftCardCard/GiftCardCard.js +118 -0
  102. package/dist/elements/public/GiftCardCard/GiftCardCard.js.map +1 -0
  103. package/dist/elements/public/GiftCardCard/index.d.ts +5 -0
  104. package/dist/elements/public/GiftCardCard/index.js +7 -0
  105. package/dist/elements/public/GiftCardCard/index.js.map +1 -0
  106. package/dist/elements/public/GiftCardCard/types.d.ts +11 -0
  107. package/dist/elements/public/GiftCardCard/types.js +2 -0
  108. package/dist/elements/public/GiftCardCard/types.js.map +1 -0
  109. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +55 -0
  110. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +292 -0
  111. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -0
  112. package/dist/elements/public/GiftCardCodeForm/index.d.ts +10 -0
  113. package/dist/elements/public/GiftCardCodeForm/index.js +12 -0
  114. package/dist/elements/public/GiftCardCodeForm/index.js.map +1 -0
  115. package/dist/elements/public/GiftCardCodeForm/types.d.ts +19 -0
  116. package/dist/elements/public/GiftCardCodeForm/types.js +2 -0
  117. package/dist/elements/public/GiftCardCodeForm/types.js.map +1 -0
  118. package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.d.ts +31 -0
  119. package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.js +215 -0
  120. package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.js.map +1 -0
  121. package/dist/elements/public/GiftCardCodesForm/index.d.ts +8 -0
  122. package/dist/elements/public/GiftCardCodesForm/index.js +12 -0
  123. package/dist/elements/public/GiftCardCodesForm/index.js.map +1 -0
  124. package/dist/elements/public/GiftCardCodesForm/internal/InternalGiftCardCodesFormListItem.d.ts +19 -0
  125. package/dist/elements/public/GiftCardCodesForm/internal/InternalGiftCardCodesFormListItem.js +48 -0
  126. package/dist/elements/public/GiftCardCodesForm/internal/InternalGiftCardCodesFormListItem.js.map +1 -0
  127. package/dist/elements/public/GiftCardCodesForm/types.d.ts +16 -0
  128. package/dist/elements/public/GiftCardCodesForm/types.js +2 -0
  129. package/dist/elements/public/GiftCardCodesForm/types.js.map +1 -0
  130. package/dist/elements/public/GiftCardForm/GiftCardForm.d.ts +66 -0
  131. package/dist/elements/public/GiftCardForm/GiftCardForm.js +650 -0
  132. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -0
  133. package/dist/elements/public/GiftCardForm/currencies.d.ts +1 -0
  134. package/dist/elements/public/GiftCardForm/currencies.js +173 -0
  135. package/dist/elements/public/GiftCardForm/currencies.js.map +1 -0
  136. package/dist/elements/public/GiftCardForm/index.d.ts +18 -0
  137. package/dist/elements/public/GiftCardForm/index.js +20 -0
  138. package/dist/elements/public/GiftCardForm/index.js.map +1 -0
  139. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.d.ts +20 -0
  140. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js +99 -0
  141. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js.map +1 -0
  142. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.d.ts +20 -0
  143. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js +52 -0
  144. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js.map +1 -0
  145. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.d.ts +20 -0
  146. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js +53 -0
  147. package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js.map +1 -0
  148. package/dist/elements/public/GiftCardForm/types.d.ts +28 -0
  149. package/dist/elements/public/GiftCardForm/types.js +2 -0
  150. package/dist/elements/public/GiftCardForm/types.js.map +1 -0
  151. package/dist/elements/public/NucleonElement/NucleonElement.js +4 -4
  152. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  153. package/dist/elements/public/index.d.ts +4 -0
  154. package/dist/elements/public/index.defined.d.ts +4 -0
  155. package/dist/elements/public/index.defined.js +4 -0
  156. package/dist/elements/public/index.defined.js.map +1 -1
  157. package/dist/elements/public/index.js +4 -0
  158. package/dist/elements/public/index.js.map +1 -1
  159. package/dist/mixins/themeable.js +12 -0
  160. package/dist/mixins/themeable.js.map +1 -1
  161. package/dist/utils/parse-duration.d.ts +1 -1
  162. package/dist/utils/parse-duration.js +7 -3
  163. package/dist/utils/parse-duration.js.map +1 -1
  164. package/package.json +2 -2
  165. package/dist/cdn/shared-0fcdd1c4.js +0 -1
  166. package/dist/cdn/shared-4fa5f144.js +0 -1
  167. package/dist/cdn/shared-6b7602c7.js +0 -1
  168. package/dist/cdn/shared-710ed658.js +0 -134
  169. package/dist/cdn/shared-800a5471.js +0 -1
  170. package/dist/cdn/shared-87ca7818.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GiftCardForm.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/GiftCardForm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIlF,OAAO,EAAE,IAAI,EAAwC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAC7D,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,OAAO,EAAE,cAAc,EAAE,uDAAoD;AAE7E,OAAO,EAAE,YAAY,EAAE,mDAAgD;AAEvE,OAAO,EAAE,KAAK,EAAE,qCAAkC;AAClD,OAAO,EAAE,aAAa,EAAE,qDAAkD;AAE1E,OAAO,EAAE,cAAc,EAAE,4CAAyC;AAGlE,OAAO,EAAU,IAAI,EAAE,iCAA8B;AAErD,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAC1C,OAAO,EAAE,wBAAwB,EAAE,8CAA2C;AAG9E,MAAM,EAAE,GAAG,gBAAgB,CAAC;AAC5B,MAAM,IAAI,GAAG,mBAAmB,CAC9B,cAAc,CAAC,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAC1F,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,YAAa,SAAQ,IAAU;IAA5C;;QAyCU,wBAAmB,GAA4B;YACrD;gBACE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAA,mBAAmB,GAAG,CAAC,IAAI,kBAAkB,GAAG,CAAC,EAAE,eAAe;gBACrF,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAA;;;;mBAIJ,CAAC,GAAgB,EAAE,EAAE;oBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAa,cAAc,CAAE,CAAC;oBAC1E,MAAM,MAAM,GAAG,GAAG,CAAC,aAA8B,CAAC;oBAElD,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;;oCAEyB,GAAG,CAAC,IAAI,CAAC,IAAI;;OAE1C;aACF;YACD;gBACE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAA,mBAAmB,GAAG,CAAC,IAAI,0BAA0B,GAAG,CAAC,EAAE,eAAe;gBAC7F,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAA;;oBAEH,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;;iBAEnD,GAAG,CAAC,IAAI;;eAEV,GAAG,CAAC,EAAE;;;OAGd;aACF;YACD;gBACE,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAA,mBAAmB,CAAC,CAAC,IAAI,2BAA2B,CAAC,CAAC,EAAE,eAAe;gBACxF,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAA;;oBAEH,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;;iBAEpD,GAAG,CAAC,IAAI;;eAEV,GAAG,CAAC,EAAE;;;OAGd;aACF;YACD;gBACE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAA,mBAAmB,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,EAAE,eAAe;gBACrF,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAA,GAAG,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE;aAC/C;SACF,CAAC;QAUM,sBAAiB,GAAkB,IAAI,CAAC;QAExC,qBAAgB,GAAG,EAAE,CAAC;IA6gBhC,CAAC;IAnnBC,MAAM,KAAK,cAAc;QACvB,OAAO;YACL,mBAAmB,EAAE,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC5D,kBAAkB,EAAE,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC1D,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC;YAEpD,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;YAE5C,8BAA8B,EAAE,cAAc,CAAC,GAAG,CAAC,8BAA8B,CAAC;YAClF,uBAAuB,EAAE,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC;YACpE,oBAAoB,EAAE,cAAc,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAC9D,kBAAkB,EAAE,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC1D,iBAAiB,EAAE,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACxD,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;YAClD,YAAY,EAAE,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;YAC9C,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;YAE5C,8BAA8B,EAAE,wBAAwB;YACxD,mBAAmB,EAAE,cAAc;YACnC,kBAAkB,EAAE,aAAa;YACjC,iBAAiB,EAAE,YAAY;YAC/B,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,iBAAiB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YACvC,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACvC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe;YACvC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,eAAe;SACzD,CAAC;IACJ,CAAC;IAkED,MAAM;;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;QACnC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAExD,OAAO,IAAI,CAAA;;UAEL,YAAY,IAAI,gBAAgB,IAAI,eAAe;YACnD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAA;;kBAEE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA,8BAA8B,IAAI,CAAC,YAAY,EAAE,QAAQ;kBACjF,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE;kBAC/C,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;;aAElD;UACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;UACvE,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE;UACtF,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC3D,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE;UACrC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE;UACnE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;UAC1E,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;;;;kBAIjE,QAAQ,CAAC;YACf,2DAA2D,EAAE,IAAI;YACjE,+BAA+B,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;SACtE,CAAC;;;;;oBAKQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;mBAC/D,IAAI,CAAC,IAAI;kBACV,IAAI,CAAC,EAAE,IAAI,YAAA,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,SAAS,mCAAI,EAAE;;;;;KAK3E,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,QAAQ;QAGtB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAQ,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC;QAEvE,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;QAEjD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,iBAAiB,CAAC,MAAc;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IAEO,cAAc,CAAC,MAAc;QACnC,OAAO,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,YAAY;;QAClB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;;;0BAGxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;wBAChC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC;;;kBAG1C,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;2BACL,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;mBACnC,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE;sBACjB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;sBAC9D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;;qBAE5C,CAAC,GAAkB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;mBAC9D,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAI,GAAG,CAAC,aAAkC,CAAC,KAAK,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/B,CAAC;;;;UAID,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;;KAE5C,CAAC;IACJ,CAAC;IAEO,gBAAgB;;QACtB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;;;;;;;kBAOpC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;sBACd,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;sBACnE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;mBAClD,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,0CAAE,WAAW,qCAAM,EAAE;mBAC5C,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,GAAG;YAC9D,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;oBACO,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAgC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;;;;UAID,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;;KAEhD,CAAC;IACJ,CAAC;IAEO,eAAe;;QACrB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;;;;kBAInC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;wBACjB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;sBAClB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;sBAClE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;mBACjD,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,mCAAI,EAAE;oBAC5B,CAAC,GAA8B,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,aAA+B,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;;;;UAID,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;;KAE/C,CAAC;IACJ,CAAC;IAEO,aAAa;;QACnB,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAEzD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC;QAE7D,IAAI,eAAe,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/F,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEnC,MAAM,iBAAiB,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC;QACxE,MAAM,gBAAgB,GAAG,SAAS,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAE/E,OAAO,IAAI,CAAA;;2BAEY,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;2BACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;sCACjD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;;iBAE/E,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,mBAAmB,EAAE,IAAI,mCAAI,EAAE;gBAC7C,KAAK;eACN,IAAI;;aAEN,EAAE;;;mBAGI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;;;;;2BAKR,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;2BAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;yBACrD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;;iBAEzD,GAAG,CAAC,QAAQ,EAAE;gBACf,KAAK;eACN,IAAI;;aAEN,EAAE;;;;;;2BAMY,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;2BACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;sCAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;;iBAE/E,IAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI;gBACxC,KAAK;eACN,IAAI;;aAEN,EAAE;;;;;;UAML,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;;;;mBAKhC,IAAI;;iBAEN,EAAE;;;;;;wBAMK,UAAU;qBACb,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAa,wBAAwB,CAAC,CAAC;YACnF,MAAM,MAAM,GAAG,GAAG,CAAC,aAA8B,CAAC;YAClD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,MAAM,EAAE;QACvB,CAAC;;6CAEgC,IAAI,sBAAsB,EAAE;;;;;;wBAMjD,UAAU;qBACb,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAa,gBAAgB,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,aAA8B,CAAC;YAClD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,MAAM,EAAE;QACvB,CAAC;;6CAEgC,IAAI,oBAAoB,EAAE;;;;;8BAKzC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;wBACxC,UAAU;qBACb,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;;6CAErC,IAAI,QAAQ,iBAAiB,OAAO,EAAE;yDAC1B,gBAAgB;;;;;;iBAMxD,IAAI;eACN,EAAE;sBACK,UAAU;oBACZ,OAAO,KAAK,IAAI;qBACf,YAAY,CAAC,mBAAmB;mBAClC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;oBACZ,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,YAAY,GAAG,GAAG,CAAC,aAA6B,CAAC;YACvD,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC;QAC9C,CAAC;;;;iCAIsB,GAAG,CAAC,QAAQ,EAAE,SAAS,IAAI,OAAO,EAAE,cAAc,UAAU;;;oBAGzE,KAAK;mBACN,IAAI;iBACN,EAAE;uBACI,IAAI,CAAC,mBAAmB;;;;;UAKrC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;;KAE7C,CAAC;IACJ,CAAC;IAEO,2BAA2B;;QACjC,MAAM,KAAK,GAAG,sBAAsB,CAAC;QACrC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,YAAY,SAAG,IAAI,CAAC,IAAI,CAAC,yBAAyB,mCAAI,EAAE,CAAC;QAE/D,MAAM,MAAM,GAAG;YACb,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAyC,EAAE;YACrE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAyC,EAAE;SACtE,CAAC;QAEF,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAE5D,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC;;;;;sBAK5C,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB;;qBAEhD,IAAI,CAAC,IAAI;;mBAEX,IAAI,CAAC,EAAE;;;;;gBAKV,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,OAAO,IAAI,CAAA;;;8BAGG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;;6BAE/C,IAAI,CAAC,IAAI;4BACV,KAAK,CAAC,MAAM;2BACb,IAAI,CAAC,EAAE;;;;;6BAKL,IAAI,CAAC,IAAI;2BACX,IAAI,CAAC,EAAE;kCACA,UAAU;kCACV,UAAU;+BACb,KAAK,CAAC,KAAK;gCACV,CAAC,GAAgB,EAAE,EAAE;gBAC7B,MAAM,eAAe,GAAG;oBACtB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,aAA8B,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;oBACzE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,aAA8B,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;iBAC1E,CAAC;gBAEF,MAAM,wBAAwB,GAAG,eAAe;qBAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;qBACpE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAClC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAE1C,MAAM,eAAe,GAAG,wBAAwB,CAAC,CAAC,CAAC;qBAChD,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACrD,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEb,IAAI,CAAC,IAAI,CAAC,EAAE,yBAAyB,EAAE,eAAe,EAAE,CAAC,CAAC;YAC5D,CAAC;;;;iBAIN,CAAC;QACJ,CAAC,CAAC;;;;;oBAKI,QAAQ,CAAC;YACf,2CAA2C,EAAE,IAAI;YACjD,gBAAgB,EAAE,CAAC,UAAU;YAC7B,eAAe,EAAE,UAAU;SAC5B,CAAC;mBACK,IAAI,CAAC,IAAI;;iBAEX,IAAI,CAAC,EAAE;;;;;UAKd,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,CAAC;;KAE5D,CAAC;IACJ,CAAC;IAEO,4BAA4B;;QAClC,MAAM,KAAK,GAAG,uBAAuB,CAAC;QACtC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE9D,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,oBAAoB,CAAC,8BAA8B,CAAC;;;;kBAI/C,IAAI,CAAC,gBAAgB;iBACtB,IAAI,CAAC,IAAI;eACX,IAAI,CAAC,EAAE;sBACA,UAAU;;;;mBAIb,IAAI,CAAC,IAAI;;iBAEX,IAAI,CAAC,EAAE;;;;;wCAKgB,SAAS,OACnC,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAC,8BAA8B,EAAE,IAAI,CACvD;wBACW,IAAI,CAAC,IAAI;;oBAEb,IAAI,CAAC,KAAK;mBACX,IAAI,CAAC,IAAI;iBACX,IAAI,CAAC,EAAE;wBACA,UAAU;wBACV,UAAU;;;;;;;iBAOjB,IAAI,CAAC,IAAI;;eAEX,IAAI,CAAC,EAAE;;;;;QAKd,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC;KAC3D,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;;;;mBAIpC,CAAC,eAAe,EAAE,cAAc,CAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;;YAAC,OAAA,CAAC;gBAClE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBACnB,KAAK,EAAE,OAAA,IAAI,CAAC,IAAI,0CAAG,KAAK,GACtB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAW,CAAC,EAAE,CAAC;oBACjE,CAAC,CAAC,EAAE;aACP,CAAC,CAAA;SAAA,CAAC;;;;UAIH,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;;KAElD,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,MAAM,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,iBAAiB,GAAG,sBAAsB,IAAI,sBAAsB,CAAC;QAC3E,MAAM,gBAAgB,GAAG,sBAAsB,IAAI,sBAAsB,CAAC;QAC1E,MAAM,SAAS,GAAG,iBAAiB,IAAI,gBAAgB,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;;;;;;sBAM9B,MAAM,IAAI,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;mBACvE,IAAI,CAAC,MAAM;;0BAEJ,IAAI,CAAC,EAAE,sBAAsB,IAAI,CAAC,IAAI;;;UAGtD,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;KAE9C,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,OAAO,IAAI,CAAA;;;;;;;;;iBASE,IAAI,CAAC,IAAI;eACX,IAAI,CAAC,EAAE;;kBAEJ,CAAC,GAAoB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;;;;UAIxE,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;;;;;;sBAM9B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;mBACnE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAA0B,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAA8B,CAAC,CAAC;QACnD,CAAC;;0BAEe,IAAI,CAAC,EAAE,sBAAsB,IAAI,CAAC,IAAI;;;UAGtD,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;KAE9C,CAAC;IACJ,CAAC;;AAthBuB,gCAAmB,GAAa;IACtD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;IAClD,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;IACxE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;IACxD,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;IAChE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;CACnE,CAAC","sourcesContent":["import { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { ComboBoxElement } from '@vaadin/vaadin-combo-box';\nimport { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport { html, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { FrequencyInput } from '../../private/FrequencyInput/FrequencyInput';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { EditableList } from '../../private/EditableList/EditableList';\nimport { FrequencyInputChangeEvent } from '../../private/FrequencyInput/FrequencyInputChangeEvent';\nimport { Group } from '../../private/Group/Group';\nimport { PropertyTable } from '../../private/PropertyTable/PropertyTable';\nimport { FormDialog } from '../FormDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { QueryBuilder } from '../QueryBuilder/QueryBuilder';\nimport { Option, Type } from '../QueryBuilder/types';\nimport { Column } from '../Table/types';\nimport { currencies } from './currencies';\nimport { CategoryRestrictionsPage } from './private/CategoryRestrictionsPage';\nimport { Data, GiftCardCodes } from './types';\n\nconst NS = 'gift-card-form';\nconst Base = ScopedElementsMixin(\n ThemeableMixin(ConfigurableMixin(ResponsiveMixin(TranslatableMixin(NucleonElement, NS))))\n);\n\n/**\n * Form element for creating or editing gift cards (`fx:gift_card`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot currency:before\n * @slot currency:after\n *\n * @slot expires:before\n * @slot expires:after\n *\n * @slot codes:before\n * @slot codes:after\n *\n * @slot product-restrictions:before\n * @slot product-restrictions:after\n *\n * @slot category-restrictions:before\n * @slot category-restrictions:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @element foxy-gift-card-form\n * @since 1.15.0\n */\nexport class GiftCardForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'vaadin-combo-box': customElements.get('vaadin-combo-box'),\n 'vaadin-button': customElements.get('vaadin-button'),\n\n 'iron-icon': customElements.get('iron-icon'),\n\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-query-builder': customElements.get('foxy-query-builder'),\n 'foxy-form-dialog': customElements.get('foxy-form-dialog'),\n 'foxy-pagination': customElements.get('foxy-pagination'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-table': customElements.get('foxy-table'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n\n 'x-category-restrictions-page': CategoryRestrictionsPage,\n 'x-frequency-input': FrequencyInput,\n 'x-property-table': PropertyTable,\n 'x-editable-list': EditableList,\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __codesTableQuery: { attribute: false },\n __itemCategories: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name_required',\n ({ name: v }) => !v || v.length <= 50 || 'name_too_long',\n ];\n }\n\n private __codesTableColumns: Column<GiftCardCodes>[] = [\n {\n header: ctx => html`<foxy-i18n lang=${ctx.lang} key=\"code\" ns=${ctx.ns}></foxy-i18n>`,\n cell: ctx => html`\n <vaadin-button\n theme=\"tertiary contrast\"\n class=\"p-0\"\n @click=${(evt: CustomEvent) => {\n const dialog = this.renderRoot.querySelector<FormDialog>('#code-dialog')!;\n const button = evt.currentTarget as ButtonElement;\n\n dialog.href = ctx.data._links.self.href;\n dialog.show(button);\n }}\n >\n <span class=\"font-tnum\">${ctx.data.code}</span>\n </vaadin-button>\n `,\n },\n {\n header: ctx => html`<foxy-i18n lang=${ctx.lang} key=\"date_created\" ns=${ctx.ns}></foxy-i18n>`,\n cell: ctx => html`\n <foxy-i18n\n options=${JSON.stringify({ value: ctx.data.date_created })}\n class=\"text-tertiary\"\n lang=${ctx.lang}\n key=\"date\"\n ns=${ctx.ns}\n >\n </foxy-i18n>\n `,\n },\n {\n hideBelow: 'sm',\n header: c => html`<foxy-i18n lang=${c.lang} key=\"date_modified\" ns=${c.ns}></foxy-i18n>`,\n cell: ctx => html`\n <foxy-i18n\n options=${JSON.stringify({ value: ctx.data.date_modified })}\n class=\"text-tertiary\"\n lang=${ctx.lang}\n key=\"date\"\n ns=${ctx.ns}\n >\n </foxy-i18n>\n `,\n },\n {\n header: c => html`<foxy-i18n lang=${c.lang} key=\"used_codes\" ns=${c.ns}></foxy-i18n>`,\n cell: ctx => html`${ctx.data.current_balance}`,\n },\n ];\n\n private static readonly __codesQueryOptions: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'current_balance', path: 'current_balance', type: Type.Number },\n { label: 'end_date', path: 'end_date', type: Type.Date },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __codesTableQuery: string | null = null;\n\n private __itemCategories = '';\n\n render(): TemplateResult {\n const hidden = this.hiddenSelector;\n const isNameHidden = hidden.matches('name', true);\n const isCurrencyHidden = hidden.matches('currency', true);\n const isExpiresHidden = hidden.matches('expires', true);\n\n return html`\n <div class=\"relative space-y-l\">\n ${isNameHidden && isCurrencyHidden && isExpiresHidden\n ? ''\n : html`\n <div class=\"grid grid-cols-1 sm-grid-cols-3 md-grid-cols-4 gap-m\">\n ${isNameHidden ? '' : html`<div class=\"md-col-span-2\">${this.__renderName()}</div>`}\n ${isCurrencyHidden ? '' : this.__renderCurrency()}\n ${isExpiresHidden ? '' : this.__renderExpires()}\n </div>\n `}\n ${hidden.matches('codes', true) || !this.data ? '' : this.__renderCodes()}\n ${hidden.matches('product-restrictions', true) ? '' : this.__renderProductRestrictions()}\n ${hidden.matches('category-restrictions', true) || !this.data\n ? ''\n : this.__renderCategoryRestrictions()}\n ${hidden.matches('timestamps', true) ? '' : this.__renderTimestamps()}\n ${hidden.matches('create', true) || !!this.data ? '' : this.__renderCreate()}\n ${hidden.matches('delete', true) || !this.data ? '' : this.__renderDelete()}\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !this.in('busy') && !this.in('fail'),\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${this.in('fail') ? 'error' : this.in('busy') ? 'busy' : 'empty'}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n protected async _sendGet(): Promise<Data> {\n type Store = Resource<Rels.Store>;\n\n const giftCard = await super._sendGet();\n const store = await super._fetch<Store>(giftCard._links['fx:store'].href);\n const categoriesURL = new URL(store._links['fx:item_categories'].href);\n\n categoriesURL.searchParams.set('limit', '5');\n this.__itemCategories = categoriesURL.toString();\n\n return giftCard;\n }\n\n private __getErrorMessage(prefix: string) {\n const error = this.errors.find(err => err.startsWith(prefix));\n return error ? this.t(error.replace(prefix, 'v8n')).toString() : '';\n }\n\n private __getValidator(prefix: string) {\n return () => !this.errors.some(err => err.startsWith(prefix));\n }\n\n private __renderName() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('name:before')}\n\n <vaadin-text-field\n error-message=${this.__getErrorMessage('name')}\n helper-text=${this.t('gift_card_name_helper_text')}\n data-testid=\"name\"\n class=\"w-full\"\n label=${this.t('name')}\n .checkValidity=${this.__getValidator('name')}\n .value=${this.form.name ?? ''}\n ?disabled=${this.in('busy') || this.disabledSelector.matches('name', true)}\n ?readonly=${this.readonlySelector.matches('name', true)}\n required\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.submit()}\n @input=${(evt: CustomEvent) => {\n const newName = (evt.currentTarget as TextFieldElement).value;\n this.edit({ name: newName });\n }}\n >\n </vaadin-text-field>\n\n ${this.renderTemplateOrSlot('name:after')}\n </div>\n `;\n }\n\n private __renderCurrency() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('currency:before')}\n\n <vaadin-combo-box\n item-label-path=\"label\"\n item-value-path=\"value\"\n item-id-path=\"value\"\n class=\"w-full\"\n label=${this.t('currency')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('currency', true)}\n ?readonly=${this.readonlySelector.matches('currency', true)}\n .value=${this.form.currency_code?.toLowerCase() ?? ''}\n .items=${currencies.map(code => ({\n label: `${this.t(`currency_${code}`)} (${code.toUpperCase()})`,\n value: code,\n }))}\n @change=${(evt: CustomEvent) => {\n const comboBox = evt.currentTarget as ComboBoxElement;\n this.edit({ currency_code: comboBox.value });\n }}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot('currency:after')}\n </div>\n `;\n }\n\n private __renderExpires() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('expires:before')}\n\n <x-frequency-input\n class=\"w-full\"\n label=${this.t('expires_after')}\n placeholder=${this.t('select')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('expires', true)}\n ?readonly=${this.readonlySelector.matches('expires', true)}\n .value=${this.form.expires_after ?? ''}\n @change=${(evt: FrequencyInputChangeEvent) => {\n const input = evt.currentTarget as FrequencyInput;\n this.edit({ expires_after: input.value });\n }}\n >\n </x-frequency-input>\n\n ${this.renderTemplateOrSlot('expires:after')}\n </div>\n `;\n }\n\n private __renderCodes() {\n const { disabledSelector, group, data, lang, ns } = this;\n\n const isDisabled = !this.in('idle') || disabledSelector.matches('codes', true);\n const filters = this.__codesTableQuery;\n const url = new URL(data!._links['fx:gift_card_codes'].href);\n\n new URLSearchParams(filters ?? '').forEach((value, name) => url.searchParams.set(name, value));\n url.searchParams.set('limit', '5');\n\n const filterButtonLabel = filters === null ? 'filter' : 'clear_filters';\n const filterButtonIcon = `icons:${filters === null ? 'filter-list' : 'clear'}`;\n\n return html`\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:generate:form').toString()}\n readonlycontrols=${this.readonlySelector.zoom('codes:generate:form').toString()}\n hiddencontrols=\"save-button ${this.hiddenSelector.zoom('codes:generate:form').toString()}\"\n header=\"generate\"\n parent=${data?._links['fx:generate_codes'].href ?? ''}\n group=${group}\n lang=${lang}\n form=\"foxy-generate-codes-form\"\n ns=${ns}\n id=\"generate-codes-dialog\"\n alert\n .related=${[url.toString()]}\n >\n </foxy-form-dialog>\n\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:form').toString()}\n readonlycontrols=${this.readonlySelector.zoom('codes:form').toString()}\n hiddencontrols=${this.hiddenSelector.zoom('codes:form').toString()}\n header=\"code\"\n parent=${url.toString()}\n group=${group}\n lang=${lang}\n form=\"foxy-gift-card-code-form\"\n ns=${ns}\n id=\"code-dialog\"\n >\n </foxy-form-dialog>\n\n <foxy-form-dialog\n disabledcontrols=${disabledSelector.zoom('codes:import:form').toString()}\n readonlycontrols=${this.readonlySelector.zoom('codes:import:form').toString()}\n hiddencontrols=\"save-button ${this.hiddenSelector.zoom('codes:generate:form').toString()}\"\n header=\"import\"\n parent=${data!._links['fx:gift_card_codes'].href}\n group=${group}\n lang=${lang}\n form=\"foxy-gift-card-codes-form\"\n ns=${ns}\n id=\"import-dialog\"\n >\n </foxy-form-dialog>\n\n <div>\n ${this.renderTemplateOrSlot('codes:before')}\n\n <div class=\"flex items-center justify-between mb-xs space-x-s\">\n <foxy-i18n\n class=\"text-s font-medium text-secondary leading-none flex-1\"\n lang=${lang}\n key=\"code_plural\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <vaadin-button\n theme=\"success tertiary small\"\n ?disabled=${isDisabled}\n @click=${(evt: CustomEvent) => {\n const dialog = this.renderRoot.querySelector<FormDialog>('#generate-codes-dialog');\n const button = evt.currentTarget as ButtonElement;\n dialog?.show(button);\n }}\n >\n <foxy-i18n class=\"text-s\" lang=${lang} key=\"generate\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n theme=\"contrast tertiary small\"\n ?disabled=${isDisabled}\n @click=${(evt: CustomEvent) => {\n const dialog = this.renderRoot.querySelector<FormDialog>('#import-dialog');\n const button = evt.currentTarget as ButtonElement;\n dialog?.show(button);\n }}\n >\n <foxy-i18n class=\"text-s\" lang=${lang} key=\"import\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:open-in-browser\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n theme=\"contrast ${filters === null ? 'tertiary' : ''} small\"\n ?disabled=${isDisabled}\n @click=${() => (this.__codesTableQuery = filters === null ? '' : null)}\n >\n <foxy-i18n class=\"text-s\" lang=${lang} key=${filterButtonLabel} ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=${filterButtonIcon}></iron-icon>\n </vaadin-button>\n </div>\n\n <foxy-query-builder\n class=\"bg-contrast-5 rounded-tl-l rounded-tr-s rounded-b-l p-m mb-s\"\n lang=${lang}\n ns=${ns}\n ?disabled=${isDisabled}\n ?hidden=${filters === null}\n .options=${GiftCardForm.__codesQueryOptions}\n .value=${filters ?? ''}\n @change=${(evt: CustomEvent) => {\n const queryBuilder = evt.currentTarget as QueryBuilder;\n this.__codesTableQuery = queryBuilder.value;\n }}\n >\n </foxy-query-builder>\n\n <foxy-pagination first=${url.toString()} lang=${lang} ns=${ns} ?disabled=${isDisabled}>\n <foxy-table\n class=\"px-m mb-s border border-contrast-10 rounded-t-l rounded-b-l\"\n group=${group}\n lang=${lang}\n ns=${ns}\n .columns=${this.__codesTableColumns}\n >\n </foxy-table>\n </foxy-pagination>\n\n ${this.renderTemplateOrSlot('codes:after')}\n </div>\n `;\n }\n\n private __renderProductRestrictions() {\n const scope = 'product-restrictions';\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(scope, true);\n const isReadonly = this.readonlySelector.matches(scope, true);\n const restrictions = this.form.product_code_restrictions ?? '';\n\n const groups = [\n { header: 'allow', items: [] as { label?: string; value: string }[] },\n { header: 'block', items: [] as { label?: string; value: string }[] },\n ];\n\n if (restrictions) {\n restrictions.split(',').forEach(value => {\n const isBlocklistValue = value.startsWith('-');\n const target = isBlocklistValue ? 1 : 0;\n const label = isBlocklistValue ? value.substring(1) : value;\n\n groups[target].items.push({ label, value });\n });\n }\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('product-restrictions:before')}\n\n <div class=\"space-y-s\">\n <x-group frame>\n <foxy-i18n\n class=${isDisabled ? 'text-disabled' : 'text-secondary'}\n slot=\"header\"\n lang=${this.lang}\n key=\"product_restrictions\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <div class=\"grid sm-grid-cols-2 bg-contrast-10\" style=\"gap: 1px\">\n ${groups.map((group, index) => {\n return html`\n <x-group class=\"bg-base pt-m\">\n <foxy-i18n\n class=${isDisabled ? 'text-disabled' : 'text-tertiary'}\n slot=\"header\"\n lang=${this.lang}\n key=${group.header}\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <x-editable-list\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n .items=${group.items}\n @change=${(evt: CustomEvent) => {\n const newItemsByGroup = [\n index === 0 ? (evt.currentTarget as EditableList).items : groups[0].items,\n index === 1 ? (evt.currentTarget as EditableList).items : groups[1].items,\n ];\n\n const newSanitizedItemsByGroup = newItemsByGroup\n .map(list => list.map(v => v.value.replace(/^[\\s-]*/, '').trimEnd()))\n .map(list => list.filter(v => !!v))\n .map(list => Array.from(new Set(list)));\n\n const newRestrictions = newSanitizedItemsByGroup[0]\n .concat(newSanitizedItemsByGroup[1].map(v => `-${v}`))\n .join(',');\n\n this.edit({ product_code_restrictions: newRestrictions });\n }}\n >\n </x-editable-list>\n </x-group>\n `;\n })}\n </div>\n </x-group>\n\n <foxy-i18n\n class=${classMap({\n 'block text-xs leading-s transition-colors': true,\n 'text-secondary': !isDisabled,\n 'text-disabled': isDisabled,\n })}\n lang=${this.lang}\n key=\"gift_card_product_restrictions_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n ${this.renderTemplateOrSlot('product-restrictions:after')}\n </div>\n `;\n }\n\n private __renderCategoryRestrictions() {\n const scope = 'category-restrictions';\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(scope, true);\n const isReadonly = this.readonlySelector.matches(scope, true);\n\n return html`\n ${this.renderTemplateOrSlot('category-restrictions:before')}\n\n <div class=\"space-y-xs\">\n <foxy-pagination\n first=${this.__itemCategories}\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${isDisabled}\n >\n <foxy-i18n\n class=\"block text-s font-medium text-secondary leading-none mb-s\"\n lang=${this.lang}\n key=\"category_restrictions\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <x-category-restrictions-page\n gift-card-item-categories=${ifDefined(\n this.data?._links['fx:gift_card_item_categories'].href\n )}\n gift-card=${this.href}\n class=\"border border-contrast-10 rounded-t-l rounded-b-l mb-s\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n >\n </x-category-restrictions-page>\n </foxy-pagination>\n\n <foxy-i18n\n class=\"block text-xs leading-s text-secondary\"\n lang=${this.lang}\n key=\"gift_card_category_restrictions_helper_text\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n ${this.renderTemplateOrSlot('category-restrictions:after')}\n `;\n }\n\n private __renderTimestamps() {\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n\n <x-property-table\n data-testid=\"timestamps\"\n .items=${(['date_modified', 'date_created'] as const).map(field => ({\n name: this.t(field),\n value: this.data?.[field]\n ? this.t('date', { value: new Date(this.data[field] as string) })\n : '',\n }))}\n >\n </x-property-table>\n\n ${this.renderTemplateOrSlot('timestamps:after')}\n </div>\n `;\n }\n\n private __renderCreate() {\n const isCleanTemplateInvalid = this.in({ idle: { template: { clean: 'invalid' } } });\n const isDirtyTemplateInvalid = this.in({ idle: { template: { dirty: 'invalid' } } });\n const isCleanSnapshotInvalid = this.in({ idle: { snapshot: { clean: 'invalid' } } });\n const isDirtySnapshotInvalid = this.in({ idle: { snapshot: { dirty: 'invalid' } } });\n const isTemplateInvalid = isCleanTemplateInvalid || isDirtyTemplateInvalid;\n const isSnaphotInvalid = isCleanSnapshotInvalid || isDirtySnapshotInvalid;\n const isInvalid = isTemplateInvalid || isSnaphotInvalid;\n const isBusy = this.in('busy');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('create:before')}\n\n <vaadin-button\n data-testid=\"create\"\n class=\"w-full\"\n theme=\"primary success\"\n ?disabled=${isBusy || isInvalid || this.disabledSelector.matches('create', true)}\n @click=${this.submit}\n >\n <foxy-i18n ns=${this.ns} key=\"create\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('create:after')}\n </div>\n `;\n }\n\n private __renderDelete() {\n return html`\n <div>\n <foxy-internal-confirm-dialog\n data-testid=\"confirm\"\n message=\"delete_prompt\"\n confirm=\"delete\"\n cancel=\"cancel\"\n header=\"delete\"\n theme=\"primary error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && this.delete()}\n >\n </foxy-internal-confirm-dialog>\n\n ${this.renderTemplateOrSlot('delete:before')}\n\n <vaadin-button\n data-testid=\"delete\"\n theme=\"primary error\"\n class=\"w-full\"\n ?disabled=${this.in('busy') || this.disabledSelector.matches('delete', true)}\n @click=${(evt: CustomEvent) => {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show(evt.currentTarget as ButtonElement);\n }}\n >\n <foxy-i18n ns=${this.ns} key=\"delete\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('delete:after')}\n </div>\n `;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare const currencies: string[];
@@ -0,0 +1,173 @@
1
+ export const currencies = [
2
+ 'aed',
3
+ 'afn',
4
+ 'all',
5
+ 'amd',
6
+ 'ang',
7
+ 'aoa',
8
+ 'ars',
9
+ 'aud',
10
+ 'awg',
11
+ 'azn',
12
+ 'bam',
13
+ 'bbd',
14
+ 'bdt',
15
+ 'bgn',
16
+ 'bhd',
17
+ 'bif',
18
+ 'bmd',
19
+ 'bnd',
20
+ 'bob',
21
+ 'brl',
22
+ 'bsd',
23
+ 'btc',
24
+ 'btn',
25
+ 'bwp',
26
+ 'byn',
27
+ 'bzd',
28
+ 'cad',
29
+ 'cdf',
30
+ 'chf',
31
+ 'clf',
32
+ 'clp',
33
+ 'cnh',
34
+ 'cny',
35
+ 'cop',
36
+ 'crc',
37
+ 'cuc',
38
+ 'cup',
39
+ 'cve',
40
+ 'czk',
41
+ 'djf',
42
+ 'dkk',
43
+ 'dop',
44
+ 'dzd',
45
+ 'egp',
46
+ 'ern',
47
+ 'etb',
48
+ 'eur',
49
+ 'fjd',
50
+ 'fkp',
51
+ 'gbp',
52
+ 'gel',
53
+ 'ggp',
54
+ 'ghs',
55
+ 'gip',
56
+ 'gmd',
57
+ 'gnf',
58
+ 'gtq',
59
+ 'gyd',
60
+ 'hkd',
61
+ 'hnl',
62
+ 'hrk',
63
+ 'htg',
64
+ 'huf',
65
+ 'idr',
66
+ 'ils',
67
+ 'imp',
68
+ 'inr',
69
+ 'iqd',
70
+ 'irr',
71
+ 'isk',
72
+ 'jep',
73
+ 'jmd',
74
+ 'jod',
75
+ 'jpy',
76
+ 'kes',
77
+ 'kgs',
78
+ 'khr',
79
+ 'kmf',
80
+ 'kpw',
81
+ 'krw',
82
+ 'kwd',
83
+ 'kyd',
84
+ 'kzt',
85
+ 'lak',
86
+ 'lbp',
87
+ 'lkr',
88
+ 'lrd',
89
+ 'lsl',
90
+ 'lyd',
91
+ 'mad',
92
+ 'mdl',
93
+ 'mga',
94
+ 'mkd',
95
+ 'mmk',
96
+ 'mnt',
97
+ 'mop',
98
+ 'mru',
99
+ 'mur',
100
+ 'mvr',
101
+ 'mwk',
102
+ 'mxn',
103
+ 'myr',
104
+ 'mzn',
105
+ 'nad',
106
+ 'ngn',
107
+ 'nio',
108
+ 'nok',
109
+ 'npr',
110
+ 'nzd',
111
+ 'omr',
112
+ 'pab',
113
+ 'pen',
114
+ 'pgk',
115
+ 'php',
116
+ 'pkr',
117
+ 'pln',
118
+ 'pyg',
119
+ 'qar',
120
+ 'ron',
121
+ 'rsd',
122
+ 'rub',
123
+ 'rwf',
124
+ 'sar',
125
+ 'sbd',
126
+ 'scr',
127
+ 'sdg',
128
+ 'sek',
129
+ 'sgd',
130
+ 'shp',
131
+ 'sll',
132
+ 'sos',
133
+ 'srd',
134
+ 'ssp',
135
+ 'std',
136
+ 'stn',
137
+ 'svc',
138
+ 'syp',
139
+ 'szl',
140
+ 'thb',
141
+ 'tjs',
142
+ 'tmt',
143
+ 'tnd',
144
+ 'top',
145
+ 'try',
146
+ 'ttd',
147
+ 'twd',
148
+ 'tzs',
149
+ 'uah',
150
+ 'ugx',
151
+ 'usd',
152
+ 'uyu',
153
+ 'uzs',
154
+ 'vef',
155
+ 'ves',
156
+ 'vnd',
157
+ 'vuv',
158
+ 'wst',
159
+ 'xaf',
160
+ 'xag',
161
+ 'xau',
162
+ 'xcd',
163
+ 'xdr',
164
+ 'xof',
165
+ 'xpd',
166
+ 'xpf',
167
+ 'xpt',
168
+ 'yer',
169
+ 'zar',
170
+ 'zmw',
171
+ 'zwl',
172
+ ];
173
+ //# sourceMappingURL=currencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currencies.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/currencies.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC","sourcesContent":["export const currencies = [\n 'aed',\n 'afn',\n 'all',\n 'amd',\n 'ang',\n 'aoa',\n 'ars',\n 'aud',\n 'awg',\n 'azn',\n 'bam',\n 'bbd',\n 'bdt',\n 'bgn',\n 'bhd',\n 'bif',\n 'bmd',\n 'bnd',\n 'bob',\n 'brl',\n 'bsd',\n 'btc',\n 'btn',\n 'bwp',\n 'byn',\n 'bzd',\n 'cad',\n 'cdf',\n 'chf',\n 'clf',\n 'clp',\n 'cnh',\n 'cny',\n 'cop',\n 'crc',\n 'cuc',\n 'cup',\n 'cve',\n 'czk',\n 'djf',\n 'dkk',\n 'dop',\n 'dzd',\n 'egp',\n 'ern',\n 'etb',\n 'eur',\n 'fjd',\n 'fkp',\n 'gbp',\n 'gel',\n 'ggp',\n 'ghs',\n 'gip',\n 'gmd',\n 'gnf',\n 'gtq',\n 'gyd',\n 'hkd',\n 'hnl',\n 'hrk',\n 'htg',\n 'huf',\n 'idr',\n 'ils',\n 'imp',\n 'inr',\n 'iqd',\n 'irr',\n 'isk',\n 'jep',\n 'jmd',\n 'jod',\n 'jpy',\n 'kes',\n 'kgs',\n 'khr',\n 'kmf',\n 'kpw',\n 'krw',\n 'kwd',\n 'kyd',\n 'kzt',\n 'lak',\n 'lbp',\n 'lkr',\n 'lrd',\n 'lsl',\n 'lyd',\n 'mad',\n 'mdl',\n 'mga',\n 'mkd',\n 'mmk',\n 'mnt',\n 'mop',\n 'mru',\n 'mur',\n 'mvr',\n 'mwk',\n 'mxn',\n 'myr',\n 'mzn',\n 'nad',\n 'ngn',\n 'nio',\n 'nok',\n 'npr',\n 'nzd',\n 'omr',\n 'pab',\n 'pen',\n 'pgk',\n 'php',\n 'pkr',\n 'pln',\n 'pyg',\n 'qar',\n 'ron',\n 'rsd',\n 'rub',\n 'rwf',\n 'sar',\n 'sbd',\n 'scr',\n 'sdg',\n 'sek',\n 'sgd',\n 'shp',\n 'sll',\n 'sos',\n 'srd',\n 'ssp',\n 'std',\n 'stn',\n 'svc',\n 'syp',\n 'szl',\n 'thb',\n 'tjs',\n 'tmt',\n 'tnd',\n 'top',\n 'try',\n 'ttd',\n 'twd',\n 'tzs',\n 'uah',\n 'ugx',\n 'usd',\n 'uyu',\n 'uzs',\n 'vef',\n 'ves',\n 'vnd',\n 'vuv',\n 'wst',\n 'xaf',\n 'xag',\n 'xau',\n 'xcd',\n 'xdr',\n 'xof',\n 'xpd',\n 'xpf',\n 'xpt',\n 'yer',\n 'zar',\n 'zmw',\n 'zwl',\n];\n"]}
@@ -0,0 +1,18 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-text-field';
2
+ import '@vaadin/vaadin-combo-box';
3
+ import '@vaadin/vaadin-button';
4
+ import '@polymer/iron-icons';
5
+ import '@polymer/iron-icon';
6
+ import '../../internal/InternalConfirmDialog/index';
7
+ import '../../internal/InternalSandbox/index';
8
+ import '../GenerateCodesForm/index';
9
+ import '../GiftCardCodesForm/index';
10
+ import '../GiftCardCodeForm/index';
11
+ import '../QueryBuilder/index';
12
+ import '../Pagination/index';
13
+ import '../FormDialog/index';
14
+ import '../Spinner/index';
15
+ import '../Table/index';
16
+ import '../I18n/index';
17
+ import { GiftCardForm } from './GiftCardForm';
18
+ export { GiftCardForm };
@@ -0,0 +1,20 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-text-field';
2
+ import '@vaadin/vaadin-combo-box';
3
+ import '@vaadin/vaadin-button';
4
+ import '@polymer/iron-icons';
5
+ import '@polymer/iron-icon';
6
+ import "../../internal/InternalConfirmDialog/index.js";
7
+ import "../../internal/InternalSandbox/index.js";
8
+ import "../GenerateCodesForm/index.js";
9
+ import "../GiftCardCodesForm/index.js";
10
+ import "../GiftCardCodeForm/index.js";
11
+ import "../QueryBuilder/index.js";
12
+ import "../Pagination/index.js";
13
+ import "../FormDialog/index.js";
14
+ import "../Spinner/index.js";
15
+ import "../Table/index.js";
16
+ import "../I18n/index.js";
17
+ import { GiftCardForm } from "./GiftCardForm.js";
18
+ customElements.define('foxy-gift-card-form', GiftCardForm);
19
+ export { GiftCardForm };
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AACrD,OAAO,0BAA0B,CAAC;AAClC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAC5B,uDAAoD;AACpD,iDAA8C;AAC9C,uCAAoC;AACpC,uCAAoC;AACpC,sCAAmC;AACnC,kCAA+B;AAC/B,gCAA6B;AAC7B,gCAA6B;AAC7B,6BAA0B;AAC1B,2BAAwB;AACxB,0BAAuB;AAEvB,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAE9C,cAAc,CAAC,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-text-field';\nimport '@vaadin/vaadin-combo-box';\nimport '@vaadin/vaadin-button';\nimport '@polymer/iron-icons';\nimport '@polymer/iron-icon';\nimport '../../internal/InternalConfirmDialog/index';\nimport '../../internal/InternalSandbox/index';\nimport '../GenerateCodesForm/index';\nimport '../GiftCardCodesForm/index';\nimport '../GiftCardCodeForm/index';\nimport '../QueryBuilder/index';\nimport '../Pagination/index';\nimport '../FormDialog/index';\nimport '../Spinner/index';\nimport '../Table/index';\nimport '../I18n/index';\n\nimport { GiftCardForm } from './GiftCardForm';\n\ncustomElements.define('foxy-gift-card-form', GiftCardForm);\n\nexport { GiftCardForm };\n"]}
@@ -0,0 +1,20 @@
1
+ import { TemplateResult } from 'lit-html';
2
+ import { NucleonElement } from '../../NucleonElement/NucleonElement';
3
+ import { PropertyDeclarations } from 'lit-element';
4
+ import { Rels } from '@foxy.io/sdk/backend';
5
+ import { Resource } from '@foxy.io/sdk/core';
6
+ import { ScopedElementsMap } from '@open-wc/scoped-elements/src/types';
7
+ declare type Data = Resource<Rels.ItemCategories>;
8
+ declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../../mixins/translatable").TranslatableMixinHost> & {
9
+ defaultNS: string;
10
+ } & {
11
+ styles: import("lit-element").CSSResultArray;
12
+ } & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/src/types").ScopedElementsHost> & import("lit-element").Constructor<import("../../../../mixins/configurable").ConfigurableMixinHost>;
13
+ export declare class CategoryRestrictionsPage extends Base<Data> {
14
+ static get scopedElements(): ScopedElementsMap;
15
+ static get properties(): PropertyDeclarations;
16
+ giftCardItemCategories: string;
17
+ giftCard: string;
18
+ render(): TemplateResult;
19
+ }
20
+ export {};
@@ -0,0 +1,99 @@
1
+ import { html } from 'lit-html';
2
+ import { CategoryRestrictionsPageItem } from "./CategoryRestrictionsPageItem.js";
3
+ import { ConfigurableMixin } from "../../../../mixins/configurable.js";
4
+ import { NucleonElement } from "../../NucleonElement/NucleonElement.js";
5
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
6
+ import { ThemeableMixin } from "../../../../mixins/themeable.js";
7
+ import { TranslatableMixin } from "../../../../mixins/translatable.js";
8
+ import { classMap } from "../../../../utils/class-map.js";
9
+ const Base = ConfigurableMixin(ScopedElementsMixin(ThemeableMixin(TranslatableMixin(NucleonElement))));
10
+ export class CategoryRestrictionsPage extends Base {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.giftCardItemCategories = '';
14
+ this.giftCard = '';
15
+ }
16
+ static get scopedElements() {
17
+ return {
18
+ 'foxy-spinner': customElements.get('foxy-spinner'),
19
+ 'x-category-restrictions-page-item': CategoryRestrictionsPageItem,
20
+ };
21
+ }
22
+ static get properties() {
23
+ return {
24
+ ...super.properties,
25
+ giftCardItemCategories: { type: String, attribute: 'gift-card-item-categories' },
26
+ giftCard: { type: String, attribute: 'gift-card' },
27
+ };
28
+ }
29
+ render() {
30
+ var _a, _b, _c, _d, _e;
31
+ const categories = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._embedded['fx:item_categories']) !== null && _b !== void 0 ? _b : [];
32
+ let limit = 20;
33
+ try {
34
+ const limitFromHref = parseInt((_c = new URL(this.href).searchParams.get('limit')) !== null && _c !== void 0 ? _c : '');
35
+ if (!isNaN(limitFromHref))
36
+ limit = limitFromHref;
37
+ }
38
+ catch (_f) {
39
+ // invalid URL, use the default
40
+ }
41
+ return html `
42
+ <div class="relative">
43
+ <div class="relative divide-y divide-contrast-10 ml-m">
44
+ ${new Array(limit).fill(0).map((_, index) => {
45
+ const category = categories[index];
46
+ let href = undefined;
47
+ if (category) {
48
+ try {
49
+ const giftCardCategoryURL = new URL(this.giftCardItemCategories);
50
+ const categoryURL = new URL(category._links.self.href);
51
+ const categoryID = categoryURL.pathname.split('/').pop();
52
+ giftCardCategoryURL.searchParams.set('item_category_id', categoryID);
53
+ giftCardCategoryURL.searchParams.set('limit', '1');
54
+ href = giftCardCategoryURL.toString();
55
+ }
56
+ catch (_a) {
57
+ // invalid URL, ignore
58
+ }
59
+ }
60
+ if (!href)
61
+ return html `<div class="h-l"></div>`;
62
+ return html `
63
+ <x-category-restrictions-page-item
64
+ item-category=${category._links.self.href}
65
+ gift-card=${this.giftCard}
66
+ class="h-l"
67
+ group=${this.group}
68
+ href=${href}
69
+ lang=${this.lang}
70
+ ns=${this.ns}
71
+ ?disabled=${!this.in('idle') || this.disabled}
72
+ ?readonly=${this.readonly}
73
+ >
74
+ ${category === null || category === void 0 ? void 0 : category.name}
75
+ </x-category-restrictions-page-item>
76
+ `;
77
+ })}
78
+ </div>
79
+
80
+ <div
81
+ class=${classMap({
82
+ 'pointer-events-none absolute inset-0 flex transition-opacity': true,
83
+ 'opacity-0': !!this.data,
84
+ })}
85
+ >
86
+ <foxy-spinner
87
+ layout="vertical"
88
+ state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}
89
+ class="m-auto p-m bg-base rounded-t-l rounded-b-l shadow-xs"
90
+ lang=${this.lang}
91
+ ns="${this.ns} ${(_e = (_d = customElements.get('foxy-spinner')) === null || _d === void 0 ? void 0 : _d.defaultNS) !== null && _e !== void 0 ? _e : ''}"
92
+ >
93
+ </foxy-spinner>
94
+ </div>
95
+ </div>
96
+ `;
97
+ }
98
+ }
99
+ //# sourceMappingURL=CategoryRestrictionsPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoryRestrictionsPage.js","sourceRoot":"","sources":["../../../../../src/elements/public/GiftCardForm/private/CategoryRestrictionsPage.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { CategoryRestrictionsPageItem } from './CategoryRestrictionsPageItem';\nimport { ConfigurableMixin } from '../../../../mixins/configurable';\nimport { NucleonElement } from '../../NucleonElement/NucleonElement';\nimport { PropertyDeclarations } from 'lit-element';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ScopedElementsMap } from '@open-wc/scoped-elements/src/types';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { ThemeableMixin } from '../../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../../mixins/translatable';\nimport { classMap } from '../../../../utils/class-map';\n\ntype Data = Resource<Rels.ItemCategories>;\nconst Base = ConfigurableMixin(\n ScopedElementsMixin(ThemeableMixin(TranslatableMixin(NucleonElement)))\n);\n\nexport class CategoryRestrictionsPage extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'x-category-restrictions-page-item': CategoryRestrictionsPageItem,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n giftCardItemCategories: { type: String, attribute: 'gift-card-item-categories' },\n giftCard: { type: String, attribute: 'gift-card' },\n };\n }\n\n giftCardItemCategories = '';\n\n giftCard = '';\n\n render(): TemplateResult {\n const categories = this.data?._embedded['fx:item_categories'] ?? [];\n let limit = 20;\n\n try {\n const limitFromHref = parseInt(new URL(this.href).searchParams.get('limit') ?? '');\n if (!isNaN(limitFromHref)) limit = limitFromHref;\n } catch {\n // invalid URL, use the default\n }\n\n return html`\n <div class=\"relative\">\n <div class=\"relative divide-y divide-contrast-10 ml-m\">\n ${new Array(limit).fill(0).map((_, index) => {\n const category = categories[index];\n let href: string | undefined = undefined;\n\n if (category) {\n try {\n const giftCardCategoryURL = new URL(this.giftCardItemCategories);\n const categoryURL = new URL(category._links.self.href);\n const categoryID = categoryURL.pathname.split('/').pop() as string;\n\n giftCardCategoryURL.searchParams.set('item_category_id', categoryID);\n giftCardCategoryURL.searchParams.set('limit', '1');\n\n href = giftCardCategoryURL.toString();\n } catch {\n // invalid URL, ignore\n }\n }\n\n if (!href) return html`<div class=\"h-l\"></div>`;\n\n return html`\n <x-category-restrictions-page-item\n item-category=${category._links.self.href}\n gift-card=${this.giftCard}\n class=\"h-l\"\n group=${this.group}\n href=${href}\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${!this.in('idle') || this.disabled}\n ?readonly=${this.readonly}\n >\n ${category?.name}\n </x-category-restrictions-page-item>\n `;\n })}\n </div>\n\n <div\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition-opacity': true,\n 'opacity-0': !!this.data,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto p-m bg-base rounded-t-l rounded-b-l shadow-xs\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import { TemplateResult } from 'lit-html';
2
+ import { NucleonElement } from '../../NucleonElement/NucleonElement';
3
+ import { PropertyDeclarations } from 'lit-element';
4
+ import { Rels } from '@foxy.io/sdk/backend';
5
+ import { Resource } from '@foxy.io/sdk/core';
6
+ import { ScopedElementsMap } from '@open-wc/scoped-elements/src/types';
7
+ declare type Data = Resource<Rels.GiftCardItemCategories>;
8
+ declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../../mixins/translatable").TranslatableMixinHost> & {
9
+ defaultNS: string;
10
+ } & {
11
+ styles: import("lit-element").CSSResultArray;
12
+ } & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/src/types").ScopedElementsHost> & import("lit-element").Constructor<import("../../../../mixins/configurable").ConfigurableMixinHost>;
13
+ export declare class CategoryRestrictionsPageItem extends Base<Data> {
14
+ static get scopedElements(): ScopedElementsMap;
15
+ static get properties(): PropertyDeclarations;
16
+ itemCategory: string;
17
+ giftCard: string;
18
+ render(): TemplateResult;
19
+ }
20
+ export {};
@@ -0,0 +1,52 @@
1
+ import { html } from 'lit-html';
2
+ import { CategoryRestrictionsPageItemContent } from "./CategoryRestrictionsPageItemContent.js";
3
+ import { ConfigurableMixin } from "../../../../mixins/configurable.js";
4
+ import { NucleonElement } from "../../NucleonElement/NucleonElement.js";
5
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
6
+ import { ThemeableMixin } from "../../../../mixins/themeable.js";
7
+ import { TranslatableMixin } from "../../../../mixins/translatable.js";
8
+ import { ifDefined } from 'lit-html/directives/if-defined';
9
+ const Base = ConfigurableMixin(ScopedElementsMixin(ThemeableMixin(TranslatableMixin(NucleonElement))));
10
+ export class CategoryRestrictionsPageItem extends Base {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.itemCategory = '';
14
+ this.giftCard = '';
15
+ }
16
+ static get scopedElements() {
17
+ return {
18
+ 'foxy-spinner': customElements.get('foxy-spinner'),
19
+ 'x-category-restrictions-page-item-content': CategoryRestrictionsPageItemContent,
20
+ };
21
+ }
22
+ static get properties() {
23
+ return {
24
+ ...super.properties,
25
+ itemCategory: { type: String, attribute: 'item-category' },
26
+ giftCard: { type: String, attribute: 'gift-card' },
27
+ };
28
+ }
29
+ render() {
30
+ var _a;
31
+ const category = (_a = this.data) === null || _a === void 0 ? void 0 : _a._embedded['fx:gift_card_item_categories'][0];
32
+ const parent = category ? undefined : this.href;
33
+ const href = category ? category._links.self.href : undefined;
34
+ return html `
35
+ <x-category-restrictions-page-item-content
36
+ item-category=${this.itemCategory}
37
+ gift-card=${this.giftCard}
38
+ parent=${ifDefined(parent)}
39
+ class="h-full"
40
+ group=${this.group}
41
+ href=${ifDefined(href)}
42
+ lang=${this.lang}
43
+ ns=${this.ns}
44
+ ?disabled=${!this.in('idle') || this.disabled}
45
+ ?readonly=${this.readonly}
46
+ >
47
+ <slot></slot>
48
+ </x-category-restrictions-page-item-content>
49
+ `;
50
+ }
51
+ }
52
+ //# sourceMappingURL=CategoryRestrictionsPageItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoryRestrictionsPageItem.js","sourceRoot":"","sources":["../../../../../src/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,mCAAmC,EAAE,iDAA8C;AAC5F,OAAO,EAAE,iBAAiB,EAAE,2CAAwC;AACpE,OAAO,EAAE,cAAc,EAAE,+CAA4C;AAKrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,wCAAqC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,2CAAwC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG3D,MAAM,IAAI,GAAG,iBAAiB,CAC5B,mBAAmB,CAAC,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CACvE,CAAC;AAEF,MAAM,OAAO,4BAA6B,SAAQ,IAAU;IAA5D;;QAgBE,iBAAY,GAAG,EAAE,CAAC;QAElB,aAAQ,GAAG,EAAE,CAAC;IAwBhB,CAAC;IAzCC,MAAM,KAAK,cAAc;QACvB,OAAO;YACL,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;YAClD,2CAA2C,EAAE,mCAAmC;SACjF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE;YAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE;SACnD,CAAC;IACJ,CAAC;IAMD,MAAM;;QACJ,MAAM,QAAQ,SAAG,IAAI,CAAC,IAAI,0CAAE,SAAS,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9D,OAAO,IAAI,CAAA;;wBAES,IAAI,CAAC,YAAY;oBACrB,IAAI,CAAC,QAAQ;iBAChB,SAAS,CAAC,MAAM,CAAC;;gBAElB,IAAI,CAAC,KAAK;eACX,SAAS,CAAC,IAAI,CAAC;eACf,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,EAAE;oBACA,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;oBACjC,IAAI,CAAC,QAAQ;;;;KAI5B,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { CategoryRestrictionsPageItemContent } from './CategoryRestrictionsPageItemContent';\nimport { ConfigurableMixin } from '../../../../mixins/configurable';\nimport { NucleonElement } from '../../NucleonElement/NucleonElement';\nimport { PropertyDeclarations } from 'lit-element';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ScopedElementsMap } from '@open-wc/scoped-elements/src/types';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { ThemeableMixin } from '../../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../../mixins/translatable';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\ntype Data = Resource<Rels.GiftCardItemCategories>;\nconst Base = ConfigurableMixin(\n ScopedElementsMixin(ThemeableMixin(TranslatableMixin(NucleonElement)))\n);\n\nexport class CategoryRestrictionsPageItem extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'x-category-restrictions-page-item-content': CategoryRestrictionsPageItemContent,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n itemCategory: { type: String, attribute: 'item-category' },\n giftCard: { type: String, attribute: 'gift-card' },\n };\n }\n\n itemCategory = '';\n\n giftCard = '';\n\n render(): TemplateResult {\n const category = this.data?._embedded['fx:gift_card_item_categories'][0];\n const parent = category ? undefined : this.href;\n const href = category ? category._links.self.href : undefined;\n\n return html`\n <x-category-restrictions-page-item-content\n item-category=${this.itemCategory}\n gift-card=${this.giftCard}\n parent=${ifDefined(parent)}\n class=\"h-full\"\n group=${this.group}\n href=${ifDefined(href)}\n lang=${this.lang}\n ns=${this.ns}\n ?disabled=${!this.in('idle') || this.disabled}\n ?readonly=${this.readonly}\n >\n <slot></slot>\n </x-category-restrictions-page-item-content>\n `;\n }\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import { ScopedElementsMap } from '@open-wc/scoped-elements';
2
+ import { TemplateResult } from 'lit-html';
3
+ import { NucleonElement } from '../../NucleonElement/NucleonElement';
4
+ import { PropertyDeclarations } from 'lit-element';
5
+ import { Rels } from '@foxy.io/sdk/backend';
6
+ import { Resource } from '@foxy.io/sdk/core';
7
+ declare type Data = Resource<Rels.GiftCardItemCategory>;
8
+ declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../../mixins/translatable").TranslatableMixinHost> & {
9
+ defaultNS: string;
10
+ } & {
11
+ styles: import("lit-element").CSSResultArray;
12
+ } & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/src/types").ScopedElementsHost> & import("lit-element").Constructor<import("../../../../mixins/configurable").ConfigurableMixinHost>;
13
+ export declare class CategoryRestrictionsPageItemContent extends Base<Data> {
14
+ static get scopedElements(): ScopedElementsMap;
15
+ static get properties(): PropertyDeclarations;
16
+ itemCategory: string;
17
+ giftCard: string;
18
+ render(): TemplateResult;
19
+ }
20
+ export {};
@@ -0,0 +1,53 @@
1
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
2
+ import { html } from 'lit-html';
3
+ import { Checkbox } from "../../../private/Checkbox/Checkbox.js";
4
+ import { ConfigurableMixin } from "../../../../mixins/configurable.js";
5
+ import { NucleonElement } from "../../NucleonElement/NucleonElement.js";
6
+ import { ThemeableMixin } from "../../../../mixins/themeable.js";
7
+ import { TranslatableMixin } from "../../../../mixins/translatable.js";
8
+ const Base = ConfigurableMixin(ScopedElementsMixin(ThemeableMixin(TranslatableMixin(NucleonElement))));
9
+ export class CategoryRestrictionsPageItemContent extends Base {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.itemCategory = '';
13
+ this.giftCard = '';
14
+ }
15
+ static get scopedElements() {
16
+ return {
17
+ 'x-checkbox': Checkbox,
18
+ };
19
+ }
20
+ static get properties() {
21
+ return {
22
+ ...super.properties,
23
+ itemCategory: { type: String, attribute: 'item-category' },
24
+ giftCard: { type: String, attribute: 'gift-card' },
25
+ };
26
+ }
27
+ render() {
28
+ return html `
29
+ <div class="h-full flex items-center">
30
+ <x-checkbox
31
+ ?disabled=${!this.in('idle') || this.disabled}
32
+ ?readonly=${this.readonly}
33
+ ?checked=${!!this.data}
34
+ @change=${(evt) => {
35
+ if (evt.detail) {
36
+ this.edit({
37
+ item_category_uri: this.itemCategory,
38
+ gift_card_uri: this.giftCard,
39
+ });
40
+ this.submit();
41
+ }
42
+ else {
43
+ this.delete();
44
+ }
45
+ }}
46
+ >
47
+ <slot></slot>
48
+ </x-checkbox>
49
+ </div>
50
+ `;
51
+ }
52
+ }
53
+ //# sourceMappingURL=CategoryRestrictionsPageItemContent.js.map