@foxy.io/elements 1.24.0-beta.1 → 1.24.0-beta.3

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 (228) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +1 -1
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-api-browser.js +1 -1
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-cancellation-form.js +1 -1
  12. package/dist/cdn/foxy-cart-card.js +1 -1
  13. package/dist/cdn/foxy-cart-form.js +1 -1
  14. package/dist/cdn/foxy-client-card.js +1 -1
  15. package/dist/cdn/foxy-client-form.js +1 -1
  16. package/dist/cdn/foxy-collection-page.js +1 -1
  17. package/dist/cdn/foxy-collection-pages.js +1 -1
  18. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  19. package/dist/cdn/foxy-coupon-card.js +1 -1
  20. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  21. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  22. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  23. package/dist/cdn/foxy-coupon-form.js +1 -1
  24. package/dist/cdn/foxy-custom-field-card.js +1 -1
  25. package/dist/cdn/foxy-custom-field-form.js +1 -1
  26. package/dist/cdn/foxy-customer-api.js +1 -1
  27. package/dist/cdn/foxy-customer-card.js +1 -1
  28. package/dist/cdn/foxy-customer-form.js +1 -1
  29. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  30. package/dist/cdn/foxy-customer-portal.js +1 -1
  31. package/dist/cdn/foxy-customer.js +1 -1
  32. package/dist/cdn/foxy-customers-table.js +1 -1
  33. package/dist/cdn/foxy-discount-builder.js +1 -1
  34. package/dist/cdn/foxy-discount-card.js +1 -1
  35. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  36. package/dist/cdn/foxy-donation.js +1 -1
  37. package/dist/cdn/foxy-downloadable-card.js +1 -1
  38. package/dist/cdn/foxy-downloadable-form.js +1 -1
  39. package/dist/cdn/foxy-email-template-card.js +1 -1
  40. package/dist/cdn/foxy-email-template-form.js +1 -1
  41. package/dist/cdn/foxy-error-entry-card.js +1 -1
  42. package/dist/cdn/foxy-filter-attribute-card.js +1 -0
  43. package/dist/cdn/foxy-filter-attribute-form.js +1 -0
  44. package/dist/cdn/foxy-form-dialog.js +1 -1
  45. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  46. package/dist/cdn/foxy-gift-card-card.js +1 -1
  47. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  48. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  49. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  50. package/dist/cdn/foxy-gift-card-form.js +1 -1
  51. package/dist/cdn/foxy-i18n-editor.js +2 -2
  52. package/dist/cdn/foxy-i18n.js +1 -1
  53. package/dist/cdn/foxy-integration-card.js +1 -1
  54. package/dist/cdn/foxy-integration-form.js +1 -1
  55. package/dist/cdn/foxy-item-card.js +1 -1
  56. package/dist/cdn/foxy-item-category-card.js +1 -1
  57. package/dist/cdn/foxy-item-category-form.js +1 -1
  58. package/dist/cdn/foxy-item-form.js +1 -1
  59. package/dist/cdn/foxy-item-option-card.js +1 -1
  60. package/dist/cdn/foxy-item-option-form.js +1 -1
  61. package/dist/cdn/foxy-items-form.js +1 -1
  62. package/dist/cdn/foxy-nucleon-element.js +1 -1
  63. package/dist/cdn/foxy-pagination.js +1 -1
  64. package/dist/cdn/foxy-passkey-card.js +1 -1
  65. package/dist/cdn/foxy-passkey-form.js +1 -1
  66. package/dist/cdn/foxy-payment-card.js +1 -1
  67. package/dist/cdn/foxy-payment-method-card.js +1 -1
  68. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  69. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  70. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  71. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  72. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  73. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  74. package/dist/cdn/foxy-payments-api.js +1 -1
  75. package/dist/cdn/foxy-query-builder.js +1 -1
  76. package/dist/cdn/foxy-report-form.js +1 -1
  77. package/dist/cdn/foxy-reports-table.js +1 -1
  78. package/dist/cdn/foxy-shipment-card.js +1 -1
  79. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  80. package/dist/cdn/foxy-sign-in-form.js +1 -1
  81. package/dist/cdn/foxy-spinner.js +2 -2
  82. package/dist/cdn/foxy-store-card.js +1 -1
  83. package/dist/cdn/foxy-store-form.js +1 -1
  84. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  85. package/dist/cdn/foxy-subscription-card.js +1 -1
  86. package/dist/cdn/foxy-subscription-form.js +1 -1
  87. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  88. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  89. package/dist/cdn/foxy-table.js +1 -1
  90. package/dist/cdn/foxy-tax-card.js +1 -1
  91. package/dist/cdn/foxy-tax-form.js +1 -1
  92. package/dist/cdn/foxy-template-config-form.js +1 -1
  93. package/dist/cdn/foxy-template-form.js +1 -1
  94. package/dist/cdn/foxy-template-set-card.js +1 -1
  95. package/dist/cdn/foxy-template-set-form.js +1 -1
  96. package/dist/cdn/foxy-transaction-card.js +1 -1
  97. package/dist/cdn/foxy-transaction.js +1 -1
  98. package/dist/cdn/foxy-transactions-table.js +1 -1
  99. package/dist/cdn/foxy-user-card.js +1 -1
  100. package/dist/cdn/foxy-user-form.js +1 -1
  101. package/dist/cdn/foxy-users-table.js +1 -1
  102. package/dist/cdn/foxy-webhook-card.js +1 -1
  103. package/dist/cdn/foxy-webhook-form.js +1 -1
  104. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  105. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  106. package/dist/cdn/{shared-95f9f57d.js → shared-09d4fbb8.js} +1 -1
  107. package/dist/cdn/{shared-2b1da608.js → shared-0a248c0d.js} +1 -1
  108. package/dist/cdn/{shared-1add7ad8.js → shared-17d0db7f.js} +1 -1
  109. package/dist/cdn/{shared-f4561476.js → shared-1b060170.js} +1 -1
  110. package/dist/cdn/shared-1d08a5ad.js +1 -0
  111. package/dist/cdn/{shared-8a671339.js → shared-1d28220a.js} +1 -1
  112. package/dist/cdn/{shared-daf52401.js → shared-1eac92fa.js} +1 -1
  113. package/dist/cdn/{shared-4f999ef4.js → shared-25f64060.js} +1 -1
  114. package/dist/cdn/{shared-98755831.js → shared-307262a1.js} +1 -1
  115. package/dist/cdn/{shared-88455d27.js → shared-31651a9c.js} +1 -1
  116. package/dist/cdn/{shared-a89cb472.js → shared-332f2997.js} +1 -1
  117. package/dist/cdn/{shared-5e5784f4.js → shared-36725fe3.js} +1 -1
  118. package/dist/cdn/{shared-427496b1.js → shared-379b37e6.js} +1 -1
  119. package/dist/cdn/{shared-b5517c1b.js → shared-39f3b48d.js} +1 -1
  120. package/dist/cdn/{shared-1e866f0d.js → shared-432c5183.js} +1 -1
  121. package/dist/cdn/{shared-6f373aa7.js → shared-4674063d.js} +1 -1
  122. package/dist/cdn/{shared-4c7106a1.js → shared-479ad951.js} +1 -1
  123. package/dist/cdn/{shared-f7fc8f00.js → shared-4904bca4.js} +1 -1
  124. package/dist/cdn/{shared-a8cf402a.js → shared-4b67d699.js} +1 -1
  125. package/dist/cdn/{shared-919a9e3e.js → shared-4bbd600d.js} +1 -1
  126. package/dist/cdn/{shared-4b9546a9.js → shared-4c956a8e.js} +1 -1
  127. package/dist/cdn/{shared-ffb7548e.js → shared-4dc58b73.js} +1 -1
  128. package/dist/cdn/{shared-7a5338f3.js → shared-4dee79d4.js} +1 -1
  129. package/dist/cdn/{shared-f7469049.js → shared-51d28e6d.js} +1 -1
  130. package/dist/cdn/shared-53061389.js +1 -0
  131. package/dist/cdn/{shared-47915d1c.js → shared-59042137.js} +1 -1
  132. package/dist/cdn/{shared-7996b565.js → shared-64f98a0f.js} +1 -1
  133. package/dist/cdn/{shared-15517503.js → shared-65318cc1.js} +1 -1
  134. package/dist/cdn/shared-65ba8b39.js +1 -0
  135. package/dist/cdn/{shared-4b870dd4.js → shared-665d6cc4.js} +1 -1
  136. package/dist/cdn/{shared-5816e5e2.js → shared-69a21b9d.js} +1 -1
  137. package/dist/cdn/{shared-14ca3629.js → shared-6abdfcf2.js} +1 -1
  138. package/dist/cdn/{shared-d09de321.js → shared-6dc64a17.js} +1 -1
  139. package/dist/cdn/shared-6f84ac3e.js +1 -0
  140. package/dist/cdn/{shared-5db24486.js → shared-77a4d8e8.js} +1 -1
  141. package/dist/cdn/{shared-58c3cfdd.js → shared-7995407d.js} +1 -1
  142. package/dist/cdn/shared-7f5618ba.js +1 -0
  143. package/dist/cdn/{shared-52d27d8c.js → shared-8474bc4a.js} +1 -1
  144. package/dist/cdn/{shared-8e83d3b5.js → shared-88e36564.js} +1 -1
  145. package/dist/cdn/{shared-ca5e1c6b.js → shared-92f27a38.js} +1 -1
  146. package/dist/cdn/{shared-964cc4a1.js → shared-984fcdf5.js} +3 -3
  147. package/dist/cdn/{shared-b7d2ce09.js → shared-9c626d58.js} +1 -1
  148. package/dist/cdn/{shared-1fe6fb5d.js → shared-9caffb4d.js} +1 -1
  149. package/dist/cdn/{shared-4fd4a4d5.js → shared-a3c73e91.js} +1 -1
  150. package/dist/cdn/{shared-049782e9.js → shared-a92ae606.js} +1 -1
  151. package/dist/cdn/{shared-fae8bf5d.js → shared-b0f534ef.js} +1 -1
  152. package/dist/cdn/{shared-2084b156.js → shared-b3ac59eb.js} +1 -1
  153. package/dist/cdn/{shared-8ed26326.js → shared-b48a83b0.js} +1 -1
  154. package/dist/cdn/{shared-4e03da46.js → shared-ba658670.js} +1 -1
  155. package/dist/cdn/{shared-67fe293e.js → shared-bafcab47.js} +1 -1
  156. package/dist/cdn/{shared-0b5d50ce.js → shared-bdb51db9.js} +1 -1
  157. package/dist/cdn/{shared-a6a5bf97.js → shared-be24dd36.js} +1 -1
  158. package/dist/cdn/shared-bf62a65b.js +1 -0
  159. package/dist/cdn/{shared-eb900735.js → shared-c2d3b32b.js} +1 -1
  160. package/dist/cdn/{shared-689612d6.js → shared-c4240bc6.js} +1 -1
  161. package/dist/cdn/{shared-63bee480.js → shared-c6c6ba69.js} +1 -1
  162. package/dist/cdn/{shared-de790de9.js → shared-c7f2f1ab.js} +1 -1
  163. package/dist/cdn/{shared-ae0df6b9.js → shared-c97e0d6e.js} +1 -1
  164. package/dist/cdn/{shared-bd819b5b.js → shared-cf269a17.js} +1 -1
  165. package/dist/cdn/{shared-5cd8b9a2.js → shared-d14c2060.js} +4 -4
  166. package/dist/cdn/{shared-538d1b55.js → shared-db21f6db.js} +1 -1
  167. package/dist/cdn/{shared-eac3b80a.js → shared-dccf0420.js} +1 -1
  168. package/dist/cdn/{shared-99440d56.js → shared-dfe2602a.js} +1 -1
  169. package/dist/cdn/{shared-d8052238.js → shared-e10052d0.js} +1 -1
  170. package/dist/cdn/{shared-e62effb6.js → shared-e6828dbf.js} +1 -1
  171. package/dist/cdn/{shared-3b92a24f.js → shared-e6997950.js} +1 -1
  172. package/dist/cdn/{shared-58197bb8.js → shared-e7c3b7b6.js} +1 -1
  173. package/dist/cdn/{shared-432ae505.js → shared-e84fa0ea.js} +1 -1
  174. package/dist/cdn/{shared-7f9147ce.js → shared-e8e92fe3.js} +1 -1
  175. package/dist/cdn/shared-fe54babe.js +1 -0
  176. package/dist/cdn/{shared-cf05ab20.js → shared-fef9ecc1.js} +1 -1
  177. package/dist/cdn/{shared-7a386999.js → shared-ff992ead.js} +1 -1
  178. package/dist/cdn/translations/filter-attribute-card/en.json +8 -0
  179. package/dist/cdn/translations/filter-attribute-form/en.json +49 -0
  180. package/dist/cdn/translations/item-category-form/en.json +3 -3
  181. package/dist/cdn/translations/transaction-card/en.json +8 -0
  182. package/dist/elements/public/FilterAttributeCard/FilterAttributeCard.d.ts +31 -0
  183. package/dist/elements/public/FilterAttributeCard/FilterAttributeCard.js +113 -0
  184. package/dist/elements/public/FilterAttributeCard/FilterAttributeCard.js.map +1 -0
  185. package/dist/elements/public/FilterAttributeCard/index.d.ts +4 -0
  186. package/dist/elements/public/FilterAttributeCard/index.js +6 -0
  187. package/dist/elements/public/FilterAttributeCard/index.js.map +1 -0
  188. package/dist/elements/public/FilterAttributeCard/types.d.ts +3 -0
  189. package/dist/elements/public/FilterAttributeCard/types.js +2 -0
  190. package/dist/elements/public/FilterAttributeCard/types.js.map +1 -0
  191. package/dist/elements/public/FilterAttributeForm/FilterAttributeForm.d.ts +46 -0
  192. package/dist/elements/public/FilterAttributeForm/FilterAttributeForm.js +131 -0
  193. package/dist/elements/public/FilterAttributeForm/FilterAttributeForm.js.map +1 -0
  194. package/dist/elements/public/FilterAttributeForm/index.d.ts +6 -0
  195. package/dist/elements/public/FilterAttributeForm/index.js +8 -0
  196. package/dist/elements/public/FilterAttributeForm/index.js.map +1 -0
  197. package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/InternalFilterAttributeFormActionControl.d.ts +5 -0
  198. package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/InternalFilterAttributeFormActionControl.js +34 -0
  199. package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/InternalFilterAttributeFormActionControl.js.map +1 -0
  200. package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/index.d.ts +5 -0
  201. package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/index.js +7 -0
  202. package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/index.js.map +1 -0
  203. package/dist/elements/public/FilterAttributeForm/types.d.ts +14 -0
  204. package/dist/elements/public/FilterAttributeForm/types.js +2 -0
  205. package/dist/elements/public/FilterAttributeForm/types.js.map +1 -0
  206. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.d.ts +6 -0
  207. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js +45 -3
  208. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js.map +1 -1
  209. package/dist/elements/public/ItemCategoryForm/index.d.ts +1 -0
  210. package/dist/elements/public/ItemCategoryForm/index.js +1 -0
  211. package/dist/elements/public/ItemCategoryForm/index.js.map +1 -1
  212. package/dist/elements/public/TransactionCard/TransactionCard.js +20 -4
  213. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  214. package/dist/elements/public/TransactionCard/types.d.ts +4 -1
  215. package/dist/elements/public/TransactionCard/types.js.map +1 -1
  216. package/dist/elements/public/index.d.ts +2 -0
  217. package/dist/elements/public/index.defined.d.ts +2 -0
  218. package/dist/elements/public/index.defined.js +2 -0
  219. package/dist/elements/public/index.defined.js.map +1 -1
  220. package/dist/elements/public/index.js +2 -0
  221. package/dist/elements/public/index.js.map +1 -1
  222. package/package.json +3 -2
  223. package/dist/cdn/shared-12931460.js +0 -1
  224. package/dist/cdn/shared-509a2f52.js +0 -1
  225. package/dist/cdn/shared-bfdbd733.js +0 -1
  226. package/dist/cdn/shared-c7f56c90.js +0 -1
  227. package/dist/cdn/shared-e41e53c0.js +0 -1
  228. package/dist/cdn/shared-ff45081a.js +0 -1
@@ -1 +1 @@
1
- import{C as t}from"./shared-de790de9.js";import{R as e}from"./shared-95f9f57d.js";import{I as s}from"./shared-049782e9.js";import{h as i}from"./shared-7f33a83a.js";let r,d,l,a=t=>t;const o=e(t(s));class n extends o{constructor(){super(...arguments),this.templates={},this.__renderTitle=t=>i(r||(r=a` <div data-testid="title"> ${0} <div class="font-medium truncate"> ${0}&ZeroWidthSpace; </div> ${0} </div> `),this.renderTemplateOrSlot("title:before"),this.data?null==t?void 0:t(this.data):"",this.renderTemplateOrSlot("title:after")),this.__renderSubtitle=t=>i(d||(d=a` <div data-testid="subtitle"> ${0} <div class="text-tertiary truncate text-s sm-text-m"> ${0}&ZeroWidthSpace; </div> ${0} </div> `),this.renderTemplateOrSlot("subtitle:before"),this.data?null==t?void 0:t(this.data):"",this.renderTemplateOrSlot("subtitle:after"))}renderBody(t){const e=this.hiddenSelector;return i(l||(l=a` <div class="h-s flex flex-col justify-center relative text-body text-m font-lumo leading-xs sm-h-xs sm-flex-row sm-items-center sm-justify-between"> ${0} ${0} </div> `),e.matches("title",!0)?"":this.__renderTitle(null==t?void 0:t.title),e.matches("subtitle",!0)?"":this.__renderSubtitle(null==t?void 0:t.subtitle))}}export{n as T};
1
+ import{C as t}from"./shared-c7f2f1ab.js";import{R as e}from"./shared-09d4fbb8.js";import{I as s}from"./shared-a92ae606.js";import{h as i}from"./shared-7f33a83a.js";let r,a,d,l=t=>t;const o=e(t(s));class n extends o{constructor(){super(...arguments),this.templates={},this.__renderTitle=t=>i(r||(r=l` <div data-testid="title"> ${0} <div class="font-medium truncate"> ${0}&ZeroWidthSpace; </div> ${0} </div> `),this.renderTemplateOrSlot("title:before"),this.data?null==t?void 0:t(this.data):"",this.renderTemplateOrSlot("title:after")),this.__renderSubtitle=t=>i(a||(a=l` <div data-testid="subtitle"> ${0} <div class="text-tertiary truncate text-s sm-text-m"> ${0}&ZeroWidthSpace; </div> ${0} </div> `),this.renderTemplateOrSlot("subtitle:before"),this.data?null==t?void 0:t(this.data):"",this.renderTemplateOrSlot("subtitle:after"))}renderBody(t){const e=this.hiddenSelector;return i(d||(d=l` <div class="h-s flex flex-col justify-center relative text-body text-m font-lumo leading-xs sm-h-xs sm-flex-row sm-items-center sm-justify-between"> ${0} ${0} </div> `),e.matches("title",!0)?"":this.__renderTitle(null==t?void 0:t.title),e.matches("subtitle",!0)?"":this.__renderSubtitle(null==t?void 0:t.subtitle))}}export{n as T};
@@ -0,0 +1,8 @@
1
+ {
2
+ "no_name": "Custom filter",
3
+ "spinner": {
4
+ "loading_busy": "Loading",
5
+ "loading_empty": "No data",
6
+ "loading_error": "Failed to load"
7
+ }
8
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "filter-query": {
3
+ "add_or_clause": "Add OR clause",
4
+ "add_value": "Add value",
5
+ "date": "{{value, date}}",
6
+ "delete": "Delete",
7
+ "field": "Field",
8
+ "hidden": "Hidden",
9
+ "is_defined_false": "Not defined",
10
+ "is_defined_true": "Defined",
11
+ "name": "Name",
12
+ "operator_equal": "Equal",
13
+ "operator_greaterthan": "Greater than",
14
+ "operator_greaterthanorequal": "Greater than or equal",
15
+ "operator_in": "One of",
16
+ "operator_isdefined": "Is defined",
17
+ "operator_lessthan": "Less than",
18
+ "operator_lessthanorequal": "Less than or equal",
19
+ "operator_not": "Not equal",
20
+ "or": "Or",
21
+ "query_builder_group": "Group of filters",
22
+ "query_builder_rule": "Filter",
23
+ "range_from": "From",
24
+ "range_to": "To",
25
+ "type": "Type",
26
+ "type_any": "Field of unknown type",
27
+ "type_attribute": "Key-value resource",
28
+ "type_date": "Date field",
29
+ "type_here": "Type here...",
30
+ "type_number": "Numeric field",
31
+ "type_string": "Text field",
32
+ "value": "Value"
33
+ },
34
+ "filter-name": {
35
+ "label": "Name",
36
+ "placeholder": "My custom filter",
37
+ "helper_text": ""
38
+ },
39
+ "action": {
40
+ "create": "Pin to sidebar",
41
+ "update": "Save changes",
42
+ "delete": "Unpin",
43
+ "reset": "Reset"
44
+ },
45
+ "spinner": {
46
+ "loading_busy": "Loading",
47
+ "loading_error": "Failed to load"
48
+ }
49
+ }
@@ -156,7 +156,7 @@
156
156
  "increase": "increase"
157
157
  },
158
158
  "admin-email-template-uri": {
159
- "label": "Email to admin",
159
+ "label": "Message to admin",
160
160
  "placeholder": "None (don't send)",
161
161
  "helper_text": ""
162
162
  },
@@ -167,12 +167,12 @@
167
167
  "v8n_required": "Please enter an email"
168
168
  },
169
169
  "customer-email-template-uri": {
170
- "label": "Email to customer",
170
+ "label": "Message to customer",
171
171
  "placeholder": "None (don't send)",
172
172
  "helper_text": ""
173
173
  },
174
174
  "gift-recipient-email-template-uri": {
175
- "label": "Email to gift recipient",
175
+ "label": "Message to gift recipient",
176
176
  "placeholder": "None (don't send)",
177
177
  "helper_text": ""
178
178
  },
@@ -17,6 +17,14 @@
17
17
  "transaction_summary_plural": "{{most_expensive_item.name}} and {{count_minus_one}} more",
18
18
  "transaction_verified": "Verified",
19
19
  "transaction_voided": "Voided",
20
+ "type_subscription_cancellation": "Cancellation",
21
+ "type_subscription_modification": "Modification",
22
+ "type_subscription_renewal": "Renewal",
23
+ "type_updateinfo": "Update",
24
+ "type_new_order": "Order",
25
+ "type_new_subscription": "Subscription",
26
+ "source_MIT": "This transaction was initiated by merchant",
27
+ "source_CIT": "This transaction was initiated by customer",
20
28
  "spinner": {
21
29
  "loading_busy": "Loading",
22
30
  "loading_empty": "No data",
@@ -0,0 +1,31 @@
1
+ import type { PropertyDeclarations } from 'lit-element';
2
+ import type { TemplateResult } from 'lit-html';
3
+ import type { Data } from './types';
4
+ import { InternalCard } from '../../internal/InternalCard/InternalCard';
5
+ declare const Base: typeof InternalCard & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
6
+ defaultNS: string;
7
+ };
8
+ /**
9
+ * Card element displaying a saved filter in Admin. Saved filters
10
+ * are powered by the Bookmark attribute format that allows adding custom sidebar items
11
+ * to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a
12
+ * relative URL of the bookmarked Admin page in the value.
13
+ *
14
+ * @element foxy-filter-attribute-card
15
+ * @since 1.24.0
16
+ */
17
+ export declare class FilterAttributeCard extends Base<Data> {
18
+ static readonly countRefreshInterval: number;
19
+ static readonly filterQueryKey: string;
20
+ static readonly filterNameKey: string;
21
+ static get properties(): PropertyDeclarations;
22
+ getCountLoaderHref: ((value: string) => string) | null;
23
+ private readonly __countLoaderId;
24
+ private __refreshTimeout;
25
+ disconnectedCallback(): void;
26
+ updated(changes: Map<keyof this, unknown>): void;
27
+ render(): TemplateResult;
28
+ private __getCountLoader;
29
+ private __getValueParam;
30
+ }
31
+ export {};
@@ -0,0 +1,113 @@
1
+ import { TranslatableMixin } from "../../../mixins/translatable.js";
2
+ import { InternalCard } from "../../internal/InternalCard/InternalCard.js";
3
+ import { ifDefined } from 'lit-html/directives/if-defined';
4
+ import { classMap } from "../../../utils/class-map.js";
5
+ import { decode } from 'html-entities';
6
+ import { html } from 'lit-html';
7
+ const NS = 'filter-attribute-card';
8
+ const Base = TranslatableMixin(InternalCard, NS);
9
+ /**
10
+ * Card element displaying a saved filter in Admin. Saved filters
11
+ * are powered by the Bookmark attribute format that allows adding custom sidebar items
12
+ * to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a
13
+ * relative URL of the bookmarked Admin page in the value.
14
+ *
15
+ * @element foxy-filter-attribute-card
16
+ * @since 1.24.0
17
+ */
18
+ export class FilterAttributeCard extends Base {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.getCountLoaderHref = null;
22
+ this.__countLoaderId = 'countLoader';
23
+ this.__refreshTimeout = null;
24
+ }
25
+ static get properties() {
26
+ return {
27
+ ...super.properties,
28
+ countRefreshInterval: { attribute: 'count-refresh-interval', type: Number },
29
+ getCountLoaderHref: { attribute: false },
30
+ };
31
+ }
32
+ disconnectedCallback() {
33
+ super.disconnectedCallback();
34
+ if (typeof this.__refreshTimeout === 'number')
35
+ clearTimeout(this.__refreshTimeout);
36
+ }
37
+ updated(changes) {
38
+ super.updated(changes);
39
+ if (typeof this.__refreshTimeout !== 'number') {
40
+ const constructor = this.constructor;
41
+ const interval = constructor.countRefreshInterval;
42
+ this.__refreshTimeout = setTimeout(() => { var _a; return (_a = this.__getCountLoader()) === null || _a === void 0 ? void 0 : _a.refresh(); }, interval);
43
+ }
44
+ }
45
+ render() {
46
+ var _a, _b;
47
+ const constructor = this.constructor;
48
+ const count = (_b = (_a = this.__getCountLoader()) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.total_items;
49
+ let countUrl;
50
+ try {
51
+ if (this.data && this.getCountLoaderHref) {
52
+ countUrl = new URL(this.getCountLoaderHref(decode(this.data.value)));
53
+ countUrl.searchParams.set('limit', '1');
54
+ }
55
+ }
56
+ catch (_c) {
57
+ countUrl = undefined;
58
+ }
59
+ return html `
60
+ <foxy-nucleon
61
+ infer=""
62
+ href=${ifDefined(countUrl === null || countUrl === void 0 ? void 0 : countUrl.toString())}
63
+ id=${this.__countLoaderId}
64
+ @update=${() => this.requestUpdate()}
65
+ >
66
+ </foxy-nucleon>
67
+
68
+ <div
69
+ class=${classMap({
70
+ 'transition-colors flex gap-s font-medium text-m leading-xs rounded-s': true,
71
+ 'bg-contrast-5': !this.in('fail') && !this.data,
72
+ 'bg-error-10': this.in('fail'),
73
+ })}
74
+ >
75
+ <span
76
+ class=${classMap({
77
+ 'transition-opacity truncate min-w-0': true,
78
+ 'opacity-0': !this.data,
79
+ })}
80
+ >
81
+ ${this.__getValueParam(constructor.filterNameKey) ||
82
+ html `<foxy-i18n infer="" key="no_name"></foxy-i18n>`}
83
+ </span>
84
+
85
+ <span
86
+ class=${classMap({
87
+ 'transition-opacity bg-contrast-5 px-xs rounded-s': true,
88
+ 'opacity-0': !this.data || typeof count !== 'number',
89
+ })}
90
+ >
91
+ ${count !== null && count !== void 0 ? count : 0}
92
+ </span>
93
+ </div>
94
+ `;
95
+ }
96
+ __getCountLoader() {
97
+ return this.renderRoot.querySelector(`#${this.__countLoaderId}`);
98
+ }
99
+ __getValueParam(key) {
100
+ var _a, _b, _c;
101
+ try {
102
+ const url = new URL(decode((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ''), 'https://example.com');
103
+ return (_c = url.searchParams.get(key)) !== null && _c !== void 0 ? _c : '';
104
+ }
105
+ catch (_d) {
106
+ return '';
107
+ }
108
+ }
109
+ }
110
+ FilterAttributeCard.countRefreshInterval = 60000;
111
+ FilterAttributeCard.filterQueryKey = 'filter_query';
112
+ FilterAttributeCard.filterNameKey = 'filter_name';
113
+ //# sourceMappingURL=FilterAttributeCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterAttributeCard.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeCard/FilterAttributeCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { decode } from 'html-entities';\nimport { html } from 'lit-html';\n\nconst NS = 'filter-attribute-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\n/**\n * Card element displaying a saved filter in Admin. Saved filters\n * are powered by the Bookmark attribute format that allows adding custom sidebar items\n * to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a\n * relative URL of the bookmarked Admin page in the value.\n *\n * @element foxy-filter-attribute-card\n * @since 1.24.0\n */\nexport class FilterAttributeCard extends Base<Data> {\n static readonly countRefreshInterval: number = 60000;\n\n static readonly filterQueryKey: string = 'filter_query';\n\n static readonly filterNameKey: string = 'filter_name';\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n countRefreshInterval: { attribute: 'count-refresh-interval', type: Number },\n getCountLoaderHref: { attribute: false },\n };\n }\n\n getCountLoaderHref: ((value: string) => string) | null = null;\n\n private readonly __countLoaderId = 'countLoader';\n\n private __refreshTimeout: NodeJS.Timeout | null = null;\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (typeof this.__refreshTimeout === 'number') clearTimeout(this.__refreshTimeout);\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (typeof this.__refreshTimeout !== 'number') {\n const constructor = this.constructor as typeof FilterAttributeCard;\n const interval = constructor.countRefreshInterval;\n this.__refreshTimeout = setTimeout(() => this.__getCountLoader()?.refresh(), interval);\n }\n }\n\n render(): TemplateResult {\n const constructor = this.constructor as typeof FilterAttributeCard;\n const count = this.__getCountLoader()?.data?.total_items;\n let countUrl: URL | undefined;\n\n try {\n if (this.data && this.getCountLoaderHref) {\n countUrl = new URL(this.getCountLoaderHref(decode(this.data.value)));\n countUrl.searchParams.set('limit', '1');\n }\n } catch {\n countUrl = undefined;\n }\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(countUrl?.toString())}\n id=${this.__countLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <div\n class=${classMap({\n 'transition-colors flex gap-s font-medium text-m leading-xs rounded-s': true,\n 'bg-contrast-5': !this.in('fail') && !this.data,\n 'bg-error-10': this.in('fail'),\n })}\n >\n <span\n class=${classMap({\n 'transition-opacity truncate min-w-0': true,\n 'opacity-0': !this.data,\n })}\n >\n ${this.__getValueParam(constructor.filterNameKey) ||\n html`<foxy-i18n infer=\"\" key=\"no_name\"></foxy-i18n>`}\n </span>\n\n <span\n class=${classMap({\n 'transition-opacity bg-contrast-5 px-xs rounded-s': true,\n 'opacity-0': !this.data || typeof count !== 'number',\n })}\n >\n ${count ?? 0}\n </span>\n </div>\n `;\n }\n\n private __getCountLoader() {\n type AnyCollection = NucleonElement<Resource<Rels.Attributes>>;\n type Loader = Omit<AnyCollection, '_embedded'> & { _embedded: unknown };\n return this.renderRoot.querySelector<Loader>(`#${this.__countLoaderId}`);\n }\n\n private __getValueParam(key: string) {\n try {\n const url = new URL(decode(this.data?.value ?? ''), 'https://example.com');\n return url.searchParams.get(key) ?? '';\n } catch {\n return '';\n }\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import '../../internal/InternalCard/index';
2
+ import '../NucleonElement/index';
3
+ import { FilterAttributeCard } from './FilterAttributeCard';
4
+ export { FilterAttributeCard };
@@ -0,0 +1,6 @@
1
+ import "../../internal/InternalCard/index.js";
2
+ import "../NucleonElement/index.js";
3
+ import { FilterAttributeCard } from "./FilterAttributeCard.js";
4
+ customElements.define('foxy-filter-attribute-card', FilterAttributeCard);
5
+ export { FilterAttributeCard };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeCard/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAC3C,oCAAiC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,cAAc,CAAC,MAAM,CAAC,4BAA4B,EAAE,mBAAmB,CAAC,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalCard/index';\nimport '../NucleonElement/index';\n\nimport { FilterAttributeCard } from './FilterAttributeCard';\n\ncustomElements.define('foxy-filter-attribute-card', FilterAttributeCard);\n\nexport { FilterAttributeCard };\n"]}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from '@foxy.io/sdk/core';
2
+ import type { Rels } from '@foxy.io/sdk/backend';
3
+ export declare type Data = Resource<Rels.Attribute>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeCard/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type Data = Resource<Rels.Attribute>;\n"]}
@@ -0,0 +1,46 @@
1
+ import type { PropertyDeclarations } from 'lit-element';
2
+ import type { TemplateResult } from 'lit-html';
3
+ import type { Option } from '../QueryBuilder/types';
4
+ import type { Data } from './types';
5
+ import { BooleanSelector } from '@foxy.io/sdk/core';
6
+ import { InternalForm } from '../../internal/InternalForm/InternalForm';
7
+ declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
8
+ defaultNS: string;
9
+ };
10
+ /**
11
+ * Form element for creating and editing saved filters in Admin. Saved filters
12
+ * are powered by the Bookmark attribute format that allows adding custom sidebar items
13
+ * to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a
14
+ * relative URL of the bookmarked Admin page in the value.
15
+ *
16
+ * @slot filter-query:before
17
+ * @slot filter-query:after
18
+ * @slot filter-name:before
19
+ * @slot filter-name:after
20
+ * @slot action:before
21
+ * @slot action:after
22
+ *
23
+ * @element foxy-filter-attribute-form
24
+ * @since 1.24.0
25
+ */
26
+ export declare class FilterAttributeForm extends Base<Data> {
27
+ static readonly attributeVisibility: Data['visibility'];
28
+ static readonly filterQueryKey: string;
29
+ static readonly attributeName: string;
30
+ static readonly filterNameKey: string;
31
+ static get properties(): PropertyDeclarations;
32
+ /** Admin page pathname. */
33
+ pathname: string | null;
34
+ /** Filter options passed down to `QueryBuilder.options.` */
35
+ options: Option[];
36
+ private readonly __filterNameGetValue;
37
+ private readonly __filterNameSetValue;
38
+ get hiddenSelector(): BooleanSelector;
39
+ renderBody(): TemplateResult;
40
+ updated(changes: Map<keyof this, unknown>): void;
41
+ submit(): void;
42
+ private __getValueParam;
43
+ private __setValueParam;
44
+ private __handleFilterQueryChange;
45
+ }
46
+ export {};
@@ -0,0 +1,131 @@
1
+ import { TranslatableMixin } from "../../../mixins/translatable.js";
2
+ import { BooleanSelector } from '@foxy.io/sdk/core';
3
+ import { encode, decode } from 'html-entities';
4
+ import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
5
+ import { html } from 'lit-html';
6
+ const NS = 'filter-attribute-form';
7
+ const Base = TranslatableMixin(InternalForm, NS);
8
+ /**
9
+ * Form element for creating and editing saved filters in Admin. Saved filters
10
+ * are powered by the Bookmark attribute format that allows adding custom sidebar items
11
+ * to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a
12
+ * relative URL of the bookmarked Admin page in the value.
13
+ *
14
+ * @slot filter-query:before
15
+ * @slot filter-query:after
16
+ * @slot filter-name:before
17
+ * @slot filter-name:after
18
+ * @slot action:before
19
+ * @slot action:after
20
+ *
21
+ * @element foxy-filter-attribute-form
22
+ * @since 1.24.0
23
+ */
24
+ export class FilterAttributeForm extends Base {
25
+ constructor() {
26
+ super(...arguments);
27
+ /** Admin page pathname. */
28
+ this.pathname = null;
29
+ /** Filter options passed down to `QueryBuilder.options.` */
30
+ this.options = [];
31
+ this.__filterNameGetValue = () => {
32
+ const constructor = this.constructor;
33
+ return this.__getValueParam(constructor.filterNameKey);
34
+ };
35
+ this.__filterNameSetValue = (v) => {
36
+ const constructor = this.constructor;
37
+ this.__setValueParam(constructor.filterNameKey, v);
38
+ };
39
+ }
40
+ static get properties() {
41
+ return {
42
+ ...super.properties,
43
+ pathname: {},
44
+ options: { type: Array },
45
+ };
46
+ }
47
+ get hiddenSelector() {
48
+ const alwaysHidden = [];
49
+ const constructor = this.constructor;
50
+ const filterQuery = this.__getValueParam(constructor.filterQueryKey);
51
+ const hasData = !!this.data;
52
+ if (!hasData)
53
+ alwaysHidden.push('filter-name');
54
+ if (!filterQuery && !hasData)
55
+ alwaysHidden.push('action');
56
+ return new BooleanSelector(`${alwaysHidden.join(' ')} ${super.hiddenSelector}`.trim());
57
+ }
58
+ renderBody() {
59
+ const constructor = this.constructor;
60
+ return html `
61
+ <foxy-query-builder
62
+ infer="filter-query"
63
+ .options=${this.options}
64
+ .value=${this.__getValueParam(constructor.filterQueryKey)}
65
+ @change=${this.__handleFilterQueryChange}
66
+ >
67
+ </foxy-query-builder>
68
+
69
+ <foxy-internal-text-control
70
+ infer="filter-name"
71
+ .getValue=${this.__filterNameGetValue}
72
+ .setValue=${this.__filterNameSetValue}
73
+ >
74
+ </foxy-internal-text-control>
75
+
76
+ <foxy-internal-filter-attribute-form-action-control infer="action">
77
+ </foxy-internal-filter-attribute-form-action-control>
78
+ `;
79
+ }
80
+ updated(changes) {
81
+ var _a;
82
+ super.updated(changes);
83
+ if (typeof this.form.value === 'string') {
84
+ const url = new URL(decode(this.form.value), 'https://example.com');
85
+ url.pathname = (_a = this.pathname) !== null && _a !== void 0 ? _a : '';
86
+ const value = encode(url.toString().substring(url.origin.length));
87
+ if (value !== this.form.value)
88
+ this.edit({ value });
89
+ }
90
+ }
91
+ submit() {
92
+ const constructor = this.constructor;
93
+ this.edit({
94
+ visibility: constructor.attributeVisibility,
95
+ name: constructor.attributeName,
96
+ });
97
+ super.submit();
98
+ }
99
+ __getValueParam(key) {
100
+ var _a, _b;
101
+ try {
102
+ const url = new URL(decode((_a = this.form.value) !== null && _a !== void 0 ? _a : ''), 'https://example.com');
103
+ return (_b = url.searchParams.get(key)) !== null && _b !== void 0 ? _b : '';
104
+ }
105
+ catch (_c) {
106
+ return '';
107
+ }
108
+ }
109
+ __setValueParam(key, value) {
110
+ var _a;
111
+ try {
112
+ const url = new URL(decode((_a = this.form.value) !== null && _a !== void 0 ? _a : ''), 'https://example.com');
113
+ url.searchParams.set(key, value);
114
+ this.edit({ value: encode(url.toString().substring(url.origin.length)) });
115
+ }
116
+ catch (_b) {
117
+ // ignore
118
+ }
119
+ }
120
+ __handleFilterQueryChange(evt) {
121
+ var _a;
122
+ const constructor = this.constructor;
123
+ const element = evt.currentTarget;
124
+ this.__setValueParam(constructor.filterQueryKey, (_a = element.value) !== null && _a !== void 0 ? _a : '');
125
+ }
126
+ }
127
+ FilterAttributeForm.attributeVisibility = 'restricted';
128
+ FilterAttributeForm.filterQueryKey = 'filter_query';
129
+ FilterAttributeForm.attributeName = 'foxy-admin-bookmark';
130
+ FilterAttributeForm.filterNameKey = 'filter_name';
131
+ //# sourceMappingURL=FilterAttributeForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterAttributeForm.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeForm/FilterAttributeForm.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,uBAAuB,CAAC;AACnC,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,mBAAoB,SAAQ,IAAU;IAAnD;;QAiBE,2BAA2B;QAC3B,aAAQ,GAAkB,IAAI,CAAC;QAE/B,4DAA4D;QAC5D,YAAO,GAAa,EAAE,CAAC;QAEN,yBAAoB,GAAG,GAAG,EAAE;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAyC,CAAC;YACnE,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACzD,CAAC,CAAC;QAEe,yBAAoB,GAAG,CAAC,CAAS,EAAE,EAAE;YACpD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAyC,CAAC;YACnE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC;IAmFJ,CAAC;IAzGC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACzB,CAAC;IACJ,CAAC;IAkBD,IAAI,cAAc;QAChB,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAyC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAE5B,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1D,OAAO,IAAI,eAAe,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,UAAU;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,WAAyC,CAAC;QAEnE,OAAO,IAAI,CAAA;;;mBAGI,IAAI,CAAC,OAAO;iBACd,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC;kBAC/C,IAAI,CAAC,yBAAyB;;;;;;oBAM5B,IAAI,CAAC,oBAAoB;oBACzB,IAAI,CAAC,oBAAoB;;;;;;KAMxC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,OAAiC;;QACvC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,CAAC;YACpE,GAAG,CAAC,QAAQ,SAAG,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAClE,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SACrD;IACH,CAAC;IAED,MAAM;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAyC,CAAC;QAEnE,IAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,WAAW,CAAC,mBAAmB;YAC3C,IAAI,EAAE,WAAW,CAAC,aAAa;SAChC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,GAAW;;QACjC,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,OAAC,IAAI,CAAC,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC1E,aAAO,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;SACxC;QAAC,WAAM;YACN,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAEO,eAAe,CAAC,GAAW,EAAE,KAAa;;QAChD,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,OAAC,IAAI,CAAC,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC1E,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3E;QAAC,WAAM;YACN,SAAS;SACV;IACH,CAAC;IAEO,yBAAyB,CAAC,GAAgB;;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAyC,CAAC;QACnE,MAAM,OAAO,GAAG,GAAG,CAAC,aAA6B,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,cAAc,QAAE,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC;IACxE,CAAC;;AAhHe,uCAAmB,GAAuB,YAAY,CAAC;AAEvD,kCAAc,GAAW,cAAc,CAAC;AAExC,iCAAa,GAAW,qBAAqB,CAAC;AAE9C,iCAAa,GAAW,aAAa,CAAC","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { QueryBuilder } from '../QueryBuilder/QueryBuilder';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { encode, decode } from 'html-entities';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nconst NS = 'filter-attribute-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for creating and editing saved filters in Admin. Saved filters\n * are powered by the Bookmark attribute format that allows adding custom sidebar items\n * to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a\n * relative URL of the bookmarked Admin page in the value.\n *\n * @slot filter-query:before\n * @slot filter-query:after\n * @slot filter-name:before\n * @slot filter-name:after\n * @slot action:before\n * @slot action:after\n *\n * @element foxy-filter-attribute-form\n * @since 1.24.0\n */\nexport class FilterAttributeForm extends Base<Data> {\n static readonly attributeVisibility: Data['visibility'] = 'restricted';\n\n static readonly filterQueryKey: string = 'filter_query';\n\n static readonly attributeName: string = 'foxy-admin-bookmark';\n\n static readonly filterNameKey: string = 'filter_name';\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n pathname: {},\n options: { type: Array },\n };\n }\n\n /** Admin page pathname. */\n pathname: string | null = null;\n\n /** Filter options passed down to `QueryBuilder.options.` */\n options: Option[] = [];\n\n private readonly __filterNameGetValue = () => {\n const constructor = this.constructor as typeof FilterAttributeForm;\n return this.__getValueParam(constructor.filterNameKey);\n };\n\n private readonly __filterNameSetValue = (v: string) => {\n const constructor = this.constructor as typeof FilterAttributeForm;\n this.__setValueParam(constructor.filterNameKey, v);\n };\n\n get hiddenSelector(): BooleanSelector {\n const alwaysHidden: string[] = [];\n const constructor = this.constructor as typeof FilterAttributeForm;\n const filterQuery = this.__getValueParam(constructor.filterQueryKey);\n const hasData = !!this.data;\n\n if (!hasData) alwaysHidden.push('filter-name');\n if (!filterQuery && !hasData) alwaysHidden.push('action');\n\n return new BooleanSelector(`${alwaysHidden.join(' ')} ${super.hiddenSelector}`.trim());\n }\n\n renderBody(): TemplateResult {\n const constructor = this.constructor as typeof FilterAttributeForm;\n\n return html`\n <foxy-query-builder\n infer=\"filter-query\"\n .options=${this.options}\n .value=${this.__getValueParam(constructor.filterQueryKey)}\n @change=${this.__handleFilterQueryChange}\n >\n </foxy-query-builder>\n\n <foxy-internal-text-control\n infer=\"filter-name\"\n .getValue=${this.__filterNameGetValue}\n .setValue=${this.__filterNameSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-filter-attribute-form-action-control infer=\"action\">\n </foxy-internal-filter-attribute-form-action-control>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (typeof this.form.value === 'string') {\n const url = new URL(decode(this.form.value), 'https://example.com');\n url.pathname = this.pathname ?? '';\n const value = encode(url.toString().substring(url.origin.length));\n if (value !== this.form.value) this.edit({ value });\n }\n }\n\n submit(): void {\n const constructor = this.constructor as typeof FilterAttributeForm;\n\n this.edit({\n visibility: constructor.attributeVisibility,\n name: constructor.attributeName,\n });\n\n super.submit();\n }\n\n private __getValueParam(key: string) {\n try {\n const url = new URL(decode(this.form.value ?? ''), 'https://example.com');\n return url.searchParams.get(key) ?? '';\n } catch {\n return '';\n }\n }\n\n private __setValueParam(key: string, value: string) {\n try {\n const url = new URL(decode(this.form.value ?? ''), 'https://example.com');\n url.searchParams.set(key, value);\n this.edit({ value: encode(url.toString().substring(url.origin.length)) });\n } catch {\n // ignore\n }\n }\n\n private __handleFilterQueryChange(evt: CustomEvent) {\n const constructor = this.constructor as typeof FilterAttributeForm;\n const element = evt.currentTarget as QueryBuilder;\n this.__setValueParam(constructor.filterQueryKey, element.value ?? '');\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import './internal/InternalFilterAttributeFormActionControl/index';
2
+ import '../../internal/InternalTextControl/index';
3
+ import '../../internal/InternalForm/index';
4
+ import '../QueryBuilder/index';
5
+ import { FilterAttributeForm } from './FilterAttributeForm';
6
+ export { FilterAttributeForm };
@@ -0,0 +1,8 @@
1
+ import "./internal/InternalFilterAttributeFormActionControl/index.js";
2
+ import "../../internal/InternalTextControl/index.js";
3
+ import "../../internal/InternalForm/index.js";
4
+ import "../QueryBuilder/index.js";
5
+ import { FilterAttributeForm } from "./FilterAttributeForm.js";
6
+ customElements.define('foxy-filter-attribute-form', FilterAttributeForm);
7
+ export { FilterAttributeForm };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,qDAAkD;AAClD,8CAA2C;AAC3C,kCAA+B;AAE/B,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,cAAc,CAAC,MAAM,CAAC,4BAA4B,EAAE,mBAAmB,CAAC,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["import './internal/InternalFilterAttributeFormActionControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\nimport '../QueryBuilder/index';\n\nimport { FilterAttributeForm } from './FilterAttributeForm';\n\ncustomElements.define('foxy-filter-attribute-form', FilterAttributeForm);\n\nexport { FilterAttributeForm };\n"]}
@@ -0,0 +1,5 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import { InternalControl } from '../../../../internal/InternalControl/InternalControl';
3
+ export declare class InternalFilterAttributeFormActionControl extends InternalControl {
4
+ renderControl(): TemplateResult;
5
+ }
@@ -0,0 +1,34 @@
1
+ import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
2
+ import { html } from 'lit-html';
3
+ export class InternalFilterAttributeFormActionControl extends InternalControl {
4
+ renderControl() {
5
+ const nucleon = this.nucleon;
6
+ const hasChanges = nucleon === null || nucleon === void 0 ? void 0 : nucleon.in({ idle: { snapshot: 'dirty' } });
7
+ const hasData = !!(nucleon === null || nucleon === void 0 ? void 0 : nucleon.data);
8
+ return html `
9
+ <div class="grid grid-cols-2 gap-m">
10
+ ${hasData && hasChanges
11
+ ? html `
12
+ <vaadin-button
13
+ theme="contrast"
14
+ ?disabled=${this.disabled}
15
+ @click=${() => nucleon === null || nucleon === void 0 ? void 0 : nucleon.undo()}
16
+ >
17
+ <foxy-i18n infer="" key="reset"></foxy-i18n>
18
+ </vaadin-button>
19
+ `
20
+ : ''}
21
+ <vaadin-button
22
+ theme=${hasData ? (hasChanges ? 'secondary' : 'error') : 'success'}
23
+ class=${hasData && hasChanges ? '' : 'col-span-2'}
24
+ ?disabled=${this.disabled}
25
+ @click=${() => (!hasData || hasChanges ? nucleon === null || nucleon === void 0 ? void 0 : nucleon.submit() : nucleon === null || nucleon === void 0 ? void 0 : nucleon.delete())}
26
+ >
27
+ <foxy-i18n infer="" key=${hasData ? (hasChanges ? 'update' : 'delete') : 'create'}>
28
+ </foxy-i18n>
29
+ </vaadin-button>
30
+ </div>
31
+ `;
32
+ }
33
+ }
34
+ //# sourceMappingURL=InternalFilterAttributeFormActionControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalFilterAttributeFormActionControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/InternalFilterAttributeFormActionControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,wCAAyC,SAAQ,eAAe;IAC3E,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAqC,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAA,CAAC;QAEhC,OAAO,IAAI,CAAA;;UAEL,OAAO,IAAI,UAAU;YACrB,CAAC,CAAC,IAAI,CAAA;;;4BAGY,IAAI,CAAC,QAAQ;yBAChB,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;;;;aAIjC;YACH,CAAC,CAAC,EAAE;;kBAEI,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;kBAC1D,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;sBACrC,IAAI,CAAC,QAAQ;mBAChB,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,GAAG,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC;;oCAErD,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;;;;KAItF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { FilterAttributeForm } from '../../FilterAttributeForm';\nimport type { TemplateResult } from 'lit-html';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { html } from 'lit-html';\n\nexport class InternalFilterAttributeFormActionControl extends InternalControl {\n renderControl(): TemplateResult {\n const nucleon = this.nucleon as FilterAttributeForm | null;\n const hasChanges = nucleon?.in({ idle: { snapshot: 'dirty' } });\n const hasData = !!nucleon?.data;\n\n return html`\n <div class=\"grid grid-cols-2 gap-m\">\n ${hasData && hasChanges\n ? html`\n <vaadin-button\n theme=\"contrast\"\n ?disabled=${this.disabled}\n @click=${() => nucleon?.undo()}\n >\n <foxy-i18n infer=\"\" key=\"reset\"></foxy-i18n>\n </vaadin-button>\n `\n : ''}\n <vaadin-button\n theme=${hasData ? (hasChanges ? 'secondary' : 'error') : 'success'}\n class=${hasData && hasChanges ? '' : 'col-span-2'}\n ?disabled=${this.disabled}\n @click=${() => (!hasData || hasChanges ? nucleon?.submit() : nucleon?.delete())}\n >\n <foxy-i18n infer=\"\" key=${hasData ? (hasChanges ? 'update' : 'delete') : 'create'}>\n </foxy-i18n>\n </vaadin-button>\n </div>\n `;\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import '../../../../internal/InternalControl/index';
2
+ import '@vaadin/vaadin-button';
3
+ import '../../../I18n/index';
4
+ import { InternalFilterAttributeFormActionControl as Control } from './InternalFilterAttributeFormActionControl';
5
+ export { Control as InternalFilterAttributeFormActionControl };
@@ -0,0 +1,7 @@
1
+ import "../../../../internal/InternalControl/index.js";
2
+ import '@vaadin/vaadin-button';
3
+ import "../../../I18n/index.js";
4
+ import { InternalFilterAttributeFormActionControl as Control } from "./InternalFilterAttributeFormActionControl.js";
5
+ customElements.define('foxy-internal-filter-attribute-form-action-control', Control);
6
+ export { Control as InternalFilterAttributeFormActionControl };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,OAAO,uBAAuB,CAAC;AAC/B,gCAA6B;AAE7B,OAAO,EAAE,wCAAwC,IAAI,OAAO,EAAE,sDAAmD;AAEjH,cAAc,CAAC,MAAM,CAAC,oDAAoD,EAAE,OAAO,CAAC,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,wCAAwC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\nimport '@vaadin/vaadin-button';\nimport '../../../I18n/index';\n\nimport { InternalFilterAttributeFormActionControl as Control } from './InternalFilterAttributeFormActionControl';\n\ncustomElements.define('foxy-internal-filter-attribute-form-action-control', Control);\n\nexport { Control as InternalFilterAttributeFormActionControl };\n"]}
@@ -0,0 +1,14 @@
1
+ import type { FilterAttributeForm } from './FilterAttributeForm';
2
+ import type { Renderer } from '../../../mixins/configurable';
3
+ import type { Resource } from '@foxy.io/sdk/core';
4
+ import type { Rels } from '@foxy.io/sdk/backend';
5
+ export declare type Templates = {
6
+ 'filter-query:before': Renderer<FilterAttributeForm>;
7
+ 'filter-query:after': Renderer<FilterAttributeForm>;
8
+ 'filter-name:before': Renderer<FilterAttributeForm>;
9
+ 'filter-name:after': Renderer<FilterAttributeForm>;
10
+ 'action:before': Renderer<FilterAttributeForm>;
11
+ 'action:after': Renderer<FilterAttributeForm>;
12
+ };
13
+ export declare type Data = Resource<Rels.Attribute>;
14
+ export type { Option } from '../QueryBuilder/types';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { FilterAttributeForm } from './FilterAttributeForm';\nimport type { Renderer } from '../../../mixins/configurable';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type Templates = {\n 'filter-query:before': Renderer<FilterAttributeForm>;\n 'filter-query:after': Renderer<FilterAttributeForm>;\n 'filter-name:before': Renderer<FilterAttributeForm>;\n 'filter-name:after': Renderer<FilterAttributeForm>;\n 'action:before': Renderer<FilterAttributeForm>;\n 'action:after': Renderer<FilterAttributeForm>;\n};\n\nexport type Data = Resource<Rels.Attribute>;\n\nexport type { Option } from '../QueryBuilder/types';\n"]}