@foxy.io/elements 1.27.0-beta.5 → 1.27.0-beta.6

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 (275) 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-billing-address-card.js +1 -1
  12. package/dist/cdn/foxy-cancellation-form.js +1 -1
  13. package/dist/cdn/foxy-cart-card.js +1 -1
  14. package/dist/cdn/foxy-cart-form.js +1 -1
  15. package/dist/cdn/foxy-client-card.js +1 -1
  16. package/dist/cdn/foxy-client-form.js +1 -1
  17. package/dist/cdn/foxy-collection-page.js +1 -1
  18. package/dist/cdn/foxy-collection-pages.js +1 -1
  19. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  20. package/dist/cdn/foxy-coupon-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-code-card.js +1 -0
  22. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  23. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  25. package/dist/cdn/foxy-coupon-form.js +1 -1
  26. package/dist/cdn/foxy-custom-field-card.js +1 -1
  27. package/dist/cdn/foxy-custom-field-form.js +1 -1
  28. package/dist/cdn/foxy-customer-api.js +1 -1
  29. package/dist/cdn/foxy-customer-card.js +1 -1
  30. package/dist/cdn/foxy-customer-form.js +1 -1
  31. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  33. package/dist/cdn/foxy-customer-portal.js +2 -2
  34. package/dist/cdn/foxy-customer.js +1 -1
  35. package/dist/cdn/foxy-customers-table.js +1 -1
  36. package/dist/cdn/foxy-discount-builder.js +1 -1
  37. package/dist/cdn/foxy-discount-card.js +1 -1
  38. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  39. package/dist/cdn/foxy-donation.js +1 -1
  40. package/dist/cdn/foxy-downloadable-card.js +1 -1
  41. package/dist/cdn/foxy-downloadable-form.js +2 -2
  42. package/dist/cdn/foxy-email-template-card.js +1 -1
  43. package/dist/cdn/foxy-email-template-form.js +1 -1
  44. package/dist/cdn/foxy-error-entry-card.js +1 -1
  45. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  47. package/dist/cdn/foxy-form-dialog.js +1 -1
  48. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  49. package/dist/cdn/foxy-gift-card-card.js +1 -1
  50. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  51. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  52. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  53. package/dist/cdn/foxy-gift-card-form.js +1 -1
  54. package/dist/cdn/foxy-i18n-editor.js +2 -2
  55. package/dist/cdn/foxy-i18n.js +1 -1
  56. package/dist/cdn/foxy-integration-card.js +1 -1
  57. package/dist/cdn/foxy-integration-form.js +1 -1
  58. package/dist/cdn/foxy-item-card.js +1 -1
  59. package/dist/cdn/foxy-item-category-card.js +1 -1
  60. package/dist/cdn/foxy-item-category-form.js +1 -1
  61. package/dist/cdn/foxy-item-form.js +3 -3
  62. package/dist/cdn/foxy-item-option-card.js +1 -1
  63. package/dist/cdn/foxy-item-option-form.js +1 -1
  64. package/dist/cdn/foxy-items-form.js +1 -1
  65. package/dist/cdn/foxy-native-integration-card.js +1 -1
  66. package/dist/cdn/foxy-native-integration-form.js +1 -1
  67. package/dist/cdn/foxy-nucleon-element.js +1 -1
  68. package/dist/cdn/foxy-pagination.js +1 -1
  69. package/dist/cdn/foxy-passkey-card.js +1 -1
  70. package/dist/cdn/foxy-passkey-form.js +1 -1
  71. package/dist/cdn/foxy-payment-card.js +1 -1
  72. package/dist/cdn/foxy-payment-method-card.js +1 -1
  73. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  74. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  75. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  76. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  79. package/dist/cdn/foxy-query-builder.js +1 -1
  80. package/dist/cdn/foxy-report-form.js +1 -1
  81. package/dist/cdn/foxy-reports-table.js +1 -1
  82. package/dist/cdn/foxy-shipment-card.js +1 -1
  83. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  84. package/dist/cdn/foxy-sign-in-form.js +1 -1
  85. package/dist/cdn/foxy-spinner.js +1 -1
  86. package/dist/cdn/foxy-store-card.js +1 -1
  87. package/dist/cdn/foxy-store-form.js +1 -1
  88. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  89. package/dist/cdn/foxy-subscription-card.js +1 -1
  90. package/dist/cdn/foxy-subscription-form.js +1 -1
  91. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  92. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  93. package/dist/cdn/foxy-table.js +1 -1
  94. package/dist/cdn/foxy-tax-card.js +1 -1
  95. package/dist/cdn/foxy-tax-form.js +1 -1
  96. package/dist/cdn/foxy-template-config-form.js +1 -1
  97. package/dist/cdn/foxy-template-form.js +1 -1
  98. package/dist/cdn/foxy-template-set-card.js +1 -1
  99. package/dist/cdn/foxy-template-set-form.js +1 -1
  100. package/dist/cdn/foxy-transaction-card.js +1 -1
  101. package/dist/cdn/foxy-transaction.js +1 -1
  102. package/dist/cdn/foxy-transactions-table.js +1 -1
  103. package/dist/cdn/foxy-user-card.js +1 -1
  104. package/dist/cdn/foxy-user-form.js +1 -1
  105. package/dist/cdn/foxy-users-table.js +1 -1
  106. package/dist/cdn/foxy-webhook-card.js +1 -1
  107. package/dist/cdn/foxy-webhook-form.js +1 -1
  108. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  109. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  110. package/dist/cdn/{shared-20c4310b.js → shared-065dbdf6.js} +1 -1
  111. package/dist/cdn/{shared-0f49d9c3.js → shared-07d5e225.js} +1 -1
  112. package/dist/cdn/{shared-82435697.js → shared-0e8dceb8.js} +1 -1
  113. package/dist/cdn/{shared-6ef4ce19.js → shared-1a9e80fa.js} +1 -1
  114. package/dist/cdn/{shared-e4e0dc11.js → shared-1d6beb48.js} +1 -1
  115. package/dist/cdn/shared-208e37af.js +88 -0
  116. package/dist/cdn/shared-29f2468c.js +6 -0
  117. package/dist/cdn/shared-400240f8.js +1 -0
  118. package/dist/cdn/{shared-9db9528b.js → shared-589e5d06.js} +15 -15
  119. package/dist/cdn/{shared-6be0a096.js → shared-5dbb9630.js} +1 -1
  120. package/dist/cdn/{shared-6350f7d9.js → shared-5e35c5a5.js} +1 -1
  121. package/dist/cdn/{shared-3cbcd9cb.js → shared-5f09205d.js} +1 -1
  122. package/dist/cdn/{shared-d15c3e2d.js → shared-61f67b16.js} +1 -1
  123. package/dist/cdn/shared-683145e5.js +1 -0
  124. package/dist/cdn/shared-6c4affb9.js +1 -0
  125. package/dist/cdn/{shared-4fb9d21f.js → shared-77fd8dae.js} +1 -1
  126. package/dist/cdn/{shared-92cdd504.js → shared-80eb1fee.js} +1 -1
  127. package/dist/cdn/shared-850e2ae1.js +10 -0
  128. package/dist/cdn/{shared-872151f5.js → shared-85979316.js} +1 -1
  129. package/dist/cdn/{shared-4fd17baf.js → shared-8def6325.js} +1 -1
  130. package/dist/cdn/{shared-18d109f5.js → shared-93812e51.js} +1 -1
  131. package/dist/cdn/{shared-6a998243.js → shared-9a5da74d.js} +21 -27
  132. package/dist/cdn/{shared-e52280d9.js → shared-b30f9b10.js} +1 -1
  133. package/dist/cdn/shared-bb08b5ce.js +32 -0
  134. package/dist/cdn/{shared-89b42eef.js → shared-bba8ae80.js} +1 -1
  135. package/dist/cdn/{shared-bf132324.js → shared-befe135a.js} +1 -1
  136. package/dist/cdn/{shared-7ff496f6.js → shared-bfa30d93.js} +1 -1
  137. package/dist/cdn/shared-c5f57aa8.js +1 -0
  138. package/dist/cdn/{shared-3277bbf5.js → shared-ca15d510.js} +1 -1
  139. package/dist/cdn/{shared-46454866.js → shared-cab2aa63.js} +4 -4
  140. package/dist/cdn/shared-cc723108.js +12 -0
  141. package/dist/cdn/{shared-97793410.js → shared-d04c2e0c.js} +1 -1
  142. package/dist/cdn/{shared-59a5edee.js → shared-da7a0bfb.js} +9 -9
  143. package/dist/cdn/shared-e35297c9.js +1 -0
  144. package/dist/cdn/{shared-8778d784.js → shared-e48fbf50.js} +1 -1
  145. package/dist/cdn/shared-e84be1c2.js +64 -0
  146. package/dist/cdn/{shared-8dd03329.js → shared-e966f1ef.js} +1 -1
  147. package/dist/cdn/{shared-1122a125.js → shared-fb8c09b8.js} +1 -1
  148. package/dist/cdn/{shared-fcaf15e5.js → shared-fd041b18.js} +1 -1
  149. package/dist/cdn/{shared-1b0992cc.js → shared-fda63db8.js} +5 -5
  150. package/dist/cdn/{shared-51ac503d.js → shared-fe7b3ed2.js} +1 -1
  151. package/dist/cdn/translations/coupon-code-card/en.json +11 -0
  152. package/dist/cdn/translations/coupon-form/en.json +522 -297
  153. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +10 -0
  154. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +81 -2
  155. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  156. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.d.ts +11 -0
  157. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.js +57 -0
  158. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.js.map +1 -0
  159. package/dist/elements/internal/InternalAsyncListControl/index.d.ts +1 -0
  160. package/dist/elements/internal/InternalAsyncListControl/index.js +3 -0
  161. package/dist/elements/internal/InternalAsyncListControl/index.js.map +1 -1
  162. package/dist/elements/internal/InternalAsyncListControl/types.d.ts +8 -0
  163. package/dist/elements/internal/InternalAsyncListControl/types.js +2 -0
  164. package/dist/elements/internal/InternalAsyncListControl/types.js.map +1 -0
  165. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.d.ts +23 -0
  166. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js +224 -0
  167. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js.map +1 -0
  168. package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.d.ts +8 -0
  169. package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.js +10 -0
  170. package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.js.map +1 -0
  171. package/dist/elements/internal/InternalForm/InternalForm.d.ts +10 -0
  172. package/dist/elements/internal/InternalForm/InternalForm.js +44 -0
  173. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
  174. package/dist/elements/internal/InternalForm/index.d.ts +2 -0
  175. package/dist/elements/internal/InternalForm/index.js +2 -0
  176. package/dist/elements/internal/InternalForm/index.js.map +1 -1
  177. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +1 -0
  178. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +3 -0
  179. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -1
  180. package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.d.ts +10 -0
  181. package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js +51 -0
  182. package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js.map +1 -0
  183. package/dist/elements/internal/InternalQueryBuilderControl/index.d.ts +4 -0
  184. package/dist/elements/internal/InternalQueryBuilderControl/index.js +6 -0
  185. package/dist/elements/internal/InternalQueryBuilderControl/index.js.map +1 -0
  186. package/dist/elements/public/CartForm/CartForm.js +81 -81
  187. package/dist/elements/public/CartForm/CartForm.js.map +1 -1
  188. package/dist/elements/public/CouponCodeCard/CouponCodeCard.d.ts +16 -0
  189. package/dist/elements/public/CouponCodeCard/CouponCodeCard.js +41 -0
  190. package/dist/elements/public/CouponCodeCard/CouponCodeCard.js.map +1 -0
  191. package/dist/elements/public/CouponCodeCard/index.d.ts +4 -0
  192. package/dist/elements/public/CouponCodeCard/index.js +6 -0
  193. package/dist/elements/public/CouponCodeCard/index.js.map +1 -0
  194. package/dist/elements/public/CouponCodeCard/types.d.ts +3 -0
  195. package/dist/elements/public/CouponCodeCard/types.js +2 -0
  196. package/dist/elements/public/CouponCodeCard/types.js.map +1 -0
  197. package/dist/elements/public/CouponForm/CouponForm.d.ts +65 -41
  198. package/dist/elements/public/CouponForm/CouponForm.js +320 -1035
  199. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  200. package/dist/elements/public/CouponForm/index.d.ts +15 -16
  201. package/dist/elements/public/CouponForm/index.js +15 -16
  202. package/dist/elements/public/CouponForm/index.js.map +1 -1
  203. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.d.ts +9 -0
  204. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.js +49 -0
  205. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.js.map +1 -0
  206. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.d.ts +6 -0
  207. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.js +8 -0
  208. package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.js.map +1 -0
  209. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.d.ts +7 -0
  210. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js +141 -0
  211. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js.map +1 -0
  212. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.d.ts +6 -0
  213. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.js +8 -0
  214. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.js.map +1 -0
  215. package/dist/elements/public/CouponForm/types.d.ts +10 -1
  216. package/dist/elements/public/CouponForm/types.js.map +1 -1
  217. package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js +7 -3
  218. package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js.map +1 -1
  219. package/dist/elements/public/CustomerPortalSettingsForm/toOrigin.d.ts +1 -0
  220. package/dist/elements/public/CustomerPortalSettingsForm/toOrigin.js +9 -0
  221. package/dist/elements/public/CustomerPortalSettingsForm/toOrigin.js.map +1 -0
  222. package/dist/elements/public/DownloadableForm/DownloadableForm.js +9 -9
  223. package/dist/elements/public/DownloadableForm/DownloadableForm.js.map +1 -1
  224. package/dist/elements/public/I18n/format/discount.js +9 -2
  225. package/dist/elements/public/I18n/format/discount.js.map +1 -1
  226. package/dist/elements/public/I18n/format/ordinal.js +6 -2
  227. package/dist/elements/public/I18n/format/ordinal.js.map +1 -1
  228. package/dist/elements/public/IntegrationForm/IntegrationForm.js +8 -6
  229. package/dist/elements/public/IntegrationForm/IntegrationForm.js.map +1 -1
  230. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js +27 -27
  231. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js.map +1 -1
  232. package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +4 -0
  233. package/dist/elements/public/QueryBuilder/QueryBuilder.js +10 -2
  234. package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
  235. package/dist/elements/public/QueryBuilder/components/Group.d.ts +3 -1
  236. package/dist/elements/public/QueryBuilder/components/Group.js +8 -1
  237. package/dist/elements/public/QueryBuilder/components/Group.js.map +1 -1
  238. package/dist/elements/public/QueryBuilder/components/OperatorToggle.d.ts +2 -1
  239. package/dist/elements/public/QueryBuilder/components/OperatorToggle.js +5 -4
  240. package/dist/elements/public/QueryBuilder/components/OperatorToggle.js.map +1 -1
  241. package/dist/elements/public/QueryBuilder/components/Rule.d.ts +3 -1
  242. package/dist/elements/public/QueryBuilder/components/Rule.js +2 -1
  243. package/dist/elements/public/QueryBuilder/components/Rule.js.map +1 -1
  244. package/dist/elements/public/StoreForm/StoreForm.js +7 -8
  245. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  246. package/dist/elements/public/TemplateSetForm/TemplateSetForm.js +28 -28
  247. package/dist/elements/public/TemplateSetForm/TemplateSetForm.js.map +1 -1
  248. package/dist/elements/public/index.d.ts +1 -0
  249. package/dist/elements/public/index.defined.d.ts +1 -0
  250. package/dist/elements/public/index.defined.js +1 -0
  251. package/dist/elements/public/index.defined.js.map +1 -1
  252. package/dist/elements/public/index.js +1 -0
  253. package/dist/elements/public/index.js.map +1 -1
  254. package/dist/mixins/inferrable.js +8 -3
  255. package/dist/mixins/inferrable.js.map +1 -1
  256. package/package.json +1 -1
  257. package/dist/cdn/shared-20f65e73.js +0 -1
  258. package/dist/cdn/shared-27c7514d.js +0 -1
  259. package/dist/cdn/shared-669decee.js +0 -1
  260. package/dist/cdn/shared-afefe2ac.js +0 -113
  261. package/dist/cdn/shared-b33fd700.js +0 -1
  262. package/dist/cdn/shared-b51b9df7.js +0 -64
  263. package/dist/cdn/shared-b914895b.js +0 -1
  264. package/dist/cdn/shared-cce18690.js +0 -1
  265. package/dist/cdn/shared-d04dd602.js +0 -20
  266. package/dist/cdn/shared-df58b901.js +0 -1
  267. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.d.ts +0 -20
  268. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js +0 -99
  269. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js.map +0 -1
  270. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.d.ts +0 -18
  271. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js +0 -50
  272. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js.map +0 -1
  273. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.d.ts +0 -18
  274. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js +0 -53
  275. package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js.map +0 -1
@@ -1,6 +1,8 @@
1
1
  import type { PropertyDeclarations, TemplateResult } from 'lit-element';
2
2
  import type { CollectionPage } from '../../public/index';
3
3
  import type { FormDialog } from '../../index';
4
+ import type { Option } from '../../public/QueryBuilder/types';
5
+ import type { Action } from './types';
4
6
  import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
5
7
  export declare class InternalAsyncListControl extends InternalEditableControl {
6
8
  static get properties(): PropertyDeclarations;
@@ -12,12 +14,18 @@ export declare class InternalAsyncListControl extends InternalEditableControl {
12
14
  createPageHref: string | null;
13
15
  /** Same as the `related` property of `NucleonElement`. */
14
16
  related: string[];
17
+ /** Swipe actions. */
18
+ actions: Action<import("../../public/NucleonElement/types").HALJSONResource>[];
19
+ /** Query parameters to apply to the `first` URL. */
20
+ filters: Option[];
15
21
  /** Limit query parameter to apply to the `first` URL. */
16
22
  limit: number;
17
23
  /** URI of the first page of the hAPI collection to display. */
18
24
  first: string | null;
19
25
  /** Same as the `form` property of `FormDialog`. If set, will open a dialog on item click. */
20
26
  form: FormDialog['form'];
27
+ /** Props to pass through to the form rendered by `FormDialog`. */
28
+ formProps: Record<string, unknown>;
21
29
  /** Same as the `item` property of `CollectionPage`. */
22
30
  item: CollectionPage<any>['item'];
23
31
  /** Props to pass through to the `CollectionPage` rendering items. */
@@ -34,7 +42,9 @@ export declare class InternalAsyncListControl extends InternalEditableControl {
34
42
  getPageHref: ((itemHref: string, item: unknown) => string | null) | null;
35
43
  private __deletionConfimationCallback;
36
44
  private __cachedCardRenderer;
45
+ private __isFilterVisible;
37
46
  private __itemRenderer;
47
+ private __filter;
38
48
  renderControl(): TemplateResult;
39
49
  private get __dialog();
40
50
  private get __cardRenderer();
@@ -13,12 +13,18 @@ export class InternalAsyncListControl extends InternalEditableControl {
13
13
  this.createPageHref = null;
14
14
  /** Same as the `related` property of `NucleonElement`. */
15
15
  this.related = [];
16
+ /** Swipe actions. */
17
+ this.actions = [];
18
+ /** Query parameters to apply to the `first` URL. */
19
+ this.filters = [];
16
20
  /** Limit query parameter to apply to the `first` URL. */
17
21
  this.limit = 20;
18
22
  /** URI of the first page of the hAPI collection to display. */
19
23
  this.first = null;
20
24
  /** Same as the `form` property of `FormDialog`. If set, will open a dialog on item click. */
21
25
  this.form = null;
26
+ /** Props to pass through to the form rendered by `FormDialog`. */
27
+ this.formProps = {};
22
28
  /** Same as the `item` property of `CollectionPage`. */
23
29
  this.item = null;
24
30
  /** Props to pass through to the `CollectionPage` rendering items. */
@@ -35,6 +41,7 @@ export class InternalAsyncListControl extends InternalEditableControl {
35
41
  this.getPageHref = null;
36
42
  this.__deletionConfimationCallback = null;
37
43
  this.__cachedCardRenderer = null;
44
+ this.__isFilterVisible = false;
38
45
  this.__itemRenderer = ctx => {
39
46
  var _a;
40
47
  if (!ctx.data)
@@ -78,17 +85,48 @@ export class InternalAsyncListControl extends InternalEditableControl {
78
85
  return html `
79
86
  <foxy-swipe-actions class="block">
80
87
  ${clickableItem}
88
+ ${this.actions.map(action => {
89
+ return html `
90
+ <vaadin-button
91
+ data-testclass="action"
92
+ theme=${action.theme}
93
+ class="h-full rounded-none relative"
94
+ slot="action"
95
+ ?disabled=${this.disabled}
96
+ @click=${() => action.onClick(ctx.data)}
97
+ >
98
+ <foxy-i18n
99
+ class=${classMap({
100
+ 'transition-opacity': true,
101
+ 'opacity-0': action.state !== 'idle',
102
+ })}
103
+ infer=""
104
+ key=${action.text}
105
+ >
106
+ </foxy-i18n>
107
+ <div
108
+ class=${classMap({
109
+ 'absolute inset-0 flex items-center justify-center transition-opacity': true,
110
+ 'opacity-0': action.state === 'idle',
111
+ })}
112
+ >
113
+ <foxy-spinner layout="no-label" infer="spinner" state=${action.state}>
114
+ </foxy-spinner>
115
+ </div>
116
+ </vaadin-button>
117
+ `;
118
+ })}
81
119
 
82
120
  <vaadin-button
83
121
  theme="primary error"
84
- class="h-full"
122
+ class="h-full rounded-none"
85
123
  slot="action"
86
124
  @click=${(evt) => {
87
125
  const button = evt.currentTarget;
88
126
  const confirm = this.renderRoot.querySelector('#confirm');
89
127
  confirm.show(button);
90
128
  this.__deletionConfimationCallback = () => {
91
- const cardButton = button.previousElementSibling;
129
+ const cardButton = button.parentElement.firstElementChild;
92
130
  const card = cardButton.querySelector('[href]');
93
131
  card === null || card === void 0 ? void 0 : card.delete();
94
132
  this.__deletionConfimationCallback = null;
@@ -100,6 +138,7 @@ export class InternalAsyncListControl extends InternalEditableControl {
100
138
  </foxy-swipe-actions>
101
139
  `;
102
140
  };
141
+ this.__filter = '';
103
142
  }
104
143
  static get properties() {
105
144
  return {
@@ -114,10 +153,15 @@ export class InternalAsyncListControl extends InternalEditableControl {
114
153
  first: {},
115
154
  limit: { type: Number },
116
155
  form: {},
156
+ formProps: { type: Object, attribute: 'form-props' },
117
157
  item: {},
118
158
  itemProps: { type: Object, attribute: 'item-props' },
119
159
  wide: { type: Boolean },
120
160
  alert: { type: Boolean },
161
+ actions: { type: Array },
162
+ filters: { type: Array },
163
+ __filter: { attribute: false },
164
+ __isFilterVisible: { attribute: false },
121
165
  };
122
166
  }
123
167
  renderControl() {
@@ -125,7 +169,9 @@ export class InternalAsyncListControl extends InternalEditableControl {
125
169
  let first;
126
170
  try {
127
171
  const url = new URL((_a = this.first) !== null && _a !== void 0 ? _a : '');
172
+ const filter = new URLSearchParams(this.__filter);
128
173
  url.searchParams.set('limit', String(this.limit));
174
+ filter.forEach((value, key) => url.searchParams.set(key, value));
129
175
  first = url.toString();
130
176
  }
131
177
  catch (_c) {
@@ -143,6 +189,7 @@ export class InternalAsyncListControl extends InternalEditableControl {
143
189
  ?keep-open-on-post=${this.keepDialogOpenOnPost}
144
190
  ?keep-open-on-delete=${this.keepDialogOpenOnDelete}
145
191
  .related=${this.related}
192
+ .props=${this.formProps}
146
193
  .form=${this.form}
147
194
  >
148
195
  </foxy-form-dialog>
@@ -171,6 +218,38 @@ export class InternalAsyncListControl extends InternalEditableControl {
171
218
  <span class="text-secondary">
172
219
  ${this.label && this.label !== 'label' ? this.label : ''}
173
220
  </span>
221
+
222
+ ${this.filters.length > 0
223
+ ? html `
224
+ <foxy-internal-async-list-control-filter-overlay
225
+ .noVerticalOverlap=${true}
226
+ .positionTarget=${this.renderRoot.querySelector('#filters')}
227
+ .model=${{
228
+ options: this.filters,
229
+ value: this.__filter,
230
+ lang: this.lang,
231
+ ns: this.ns,
232
+ }}
233
+ ?opened=${this.__isFilterVisible}
234
+ @vaadin-overlay-close=${() => (this.__isFilterVisible = false)}
235
+ @search=${(evt) => {
236
+ var _a;
237
+ this.__filter = (_a = evt.detail) !== null && _a !== void 0 ? _a : '';
238
+ }}
239
+ >
240
+ </foxy-internal-async-list-control-filter-overlay>
241
+
242
+ <vaadin-button
243
+ theme="tertiary-inline contrast"
244
+ class="ml-auto mr-m"
245
+ id="filters"
246
+ ?disabled=${this.disabled}
247
+ @click=${() => (this.__isFilterVisible = !this.__isFilterVisible)}
248
+ >
249
+ <foxy-i18n infer="pagination" key="search_button_text"></foxy-i18n>
250
+ </vaadin-button>
251
+ `
252
+ : ''}
174
253
  ${(!this.form && !this.createPageHref) || this.readonly || this.hideCreateButton
175
254
  ? ''
176
255
  : this.createPageHref && !this.disabled
@@ -1 +1 @@
1
- {"version":3,"file":"InternalAsyncListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncListControl/InternalAsyncListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { CollectionPage, NucleonElement } from '../../public/index';\nimport type { InternalConfirmDialog } from '../InternalConfirmDialog';\nimport type { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { FormDialog } from '../../index';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-element';\n\nexport class InternalAsyncListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n keepDialogOpenOnDelete: { type: Boolean, attribute: 'keep-dialog-open-on-delete' },\n keepDialogOpenOnPost: { type: Boolean, attribute: 'keep-dialog-open-on-post' },\n hideDeleteButton: { type: Boolean, attribute: 'hide-delete-button' },\n hideCreateButton: { type: Boolean, attribute: 'hide-create-button' },\n createPageHref: { attribute: 'create-page-href' },\n getPageHref: { attribute: false },\n related: { type: Array },\n first: {},\n limit: { type: Number },\n form: {},\n item: {},\n itemProps: { type: Object, attribute: 'item-props' },\n wide: { type: Boolean },\n alert: { type: Boolean },\n };\n }\n\n /** If true, FormDialog won't automatically close after the associated form deletes the resource. */\n keepDialogOpenOnDelete = false;\n\n /** If true, FormDialog won't automatically close after the associated form creates a resource. */\n keepDialogOpenOnPost = false;\n\n /** If provided, renders Create button as a link to this page. */\n createPageHref: string | null = null;\n\n /** Same as the `related` property of `NucleonElement`. */\n related = [] as string[];\n\n /** Limit query parameter to apply to the `first` URL. */\n limit = 20;\n\n /** URI of the first page of the hAPI collection to display. */\n first: string | null = null;\n\n /** Same as the `form` property of `FormDialog`. If set, will open a dialog on item click. */\n form: FormDialog['form'] = null;\n\n /** Same as the `item` property of `CollectionPage`. */\n item: CollectionPage<any>['item'] = null;\n\n /** Props to pass through to the `CollectionPage` rendering items. */\n itemProps: Record<string, unknown> = {};\n\n /** Same as the `wide` property of `FormDialog`. */\n wide = false;\n\n /** Same as the `alert` property of `FormDialog`. */\n alert = false;\n\n /** Hides Delete Swipe Action if true. */\n hideDeleteButton = false;\n\n /** Hides Create button if true. */\n hideCreateButton = false;\n\n /** If set, renders list items as <a> tags. */\n getPageHref: ((itemHref: string, item: unknown) => string | null) | null = null;\n\n private __deletionConfimationCallback: (() => void) | null = null;\n\n private __cachedCardRenderer: {\n item: InternalAsyncListControl['item'];\n render: ItemRenderer;\n } | null = null;\n\n private __itemRenderer: ItemRenderer = ctx => {\n if (!ctx.data) return this.__cardRenderer(ctx);\n\n const href = this.getPageHref?.(ctx.href, ctx.data);\n if (typeof href !== 'string' && !this.form) return this.__cardRenderer(ctx);\n\n const isDisabled = this.disabledSelector.matches('card', true);\n const card = this.__cardRenderer(ctx);\n let clickableItem: TemplateResult;\n\n const wrapperClass = classMap({\n 'rounded-t': !ctx.previous,\n 'rounded-b': !ctx.next,\n 'focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50': true,\n 'text-left w-full block transition-colors': true,\n 'hover-bg-contrast-5': !isDisabled,\n });\n\n if (this.getPageHref) {\n if (isDisabled) {\n clickableItem = html`<div class=${wrapperClass}>${card}</div>`;\n } else {\n const href = this.getPageHref(ctx.href, ctx.data);\n clickableItem = html`<a class=${wrapperClass} href=${href}>${card}</a>`;\n }\n } else {\n const handleClick = (evt: Event) => {\n const button = evt.currentTarget as HTMLButtonElement;\n const dialog = this.__dialog;\n\n dialog.header = 'header_update';\n dialog.href = ctx.href;\n dialog.show(button);\n };\n\n clickableItem = html`\n <button ?disabled=${isDisabled} class=${wrapperClass} @click=${handleClick}>${card}</button>\n `;\n }\n\n if (this.hideDeleteButton || this.readonly) return clickableItem;\n\n return html`\n <foxy-swipe-actions class=\"block\">\n ${clickableItem}\n\n <vaadin-button\n theme=\"primary error\"\n class=\"h-full\"\n slot=\"action\"\n @click=${(evt: CustomEvent) => {\n const button = evt.currentTarget as HTMLElement;\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n\n confirm.show(button);\n\n this.__deletionConfimationCallback = () => {\n const cardButton = button.previousElementSibling!;\n const card = cardButton.querySelector<NucleonElement<any>>('[href]');\n\n card?.delete();\n this.__deletionConfimationCallback = null;\n };\n }}\n >\n <foxy-i18n infer=\"\" key=\"delete_button_text\"></foxy-i18n>\n </vaadin-button>\n </foxy-swipe-actions>\n `;\n };\n\n renderControl(): TemplateResult {\n let first: string | undefined;\n\n try {\n const url = new URL(this.first ?? '');\n url.searchParams.set('limit', String(this.limit));\n first = url.toString();\n } catch {\n first = undefined;\n }\n\n return html`\n ${this.form\n ? html`\n <foxy-form-dialog\n parent=${ifDefined(this.first ?? void 0)}\n infer=\"dialog\"\n id=\"form\"\n ?wide=${this.wide}\n ?alert=${this.alert}\n ?keep-open-on-post=${this.keepDialogOpenOnPost}\n ?keep-open-on-delete=${this.keepDialogOpenOnDelete}\n .related=${this.related}\n .form=${this.form as any}\n >\n </foxy-form-dialog>\n `\n : ''}\n ${this.hideDeleteButton || this.readonly\n ? ''\n : html`\n <foxy-internal-confirm-dialog\n message=\"delete_message\"\n confirm=\"delete_confirm\"\n cancel=\"delete_cancel\"\n header=\"delete_header\"\n theme=\"error\"\n infer=\"\"\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => {\n if (!evt.detail.cancelled) this.__deletionConfimationCallback?.();\n }}\n >\n </foxy-internal-confirm-dialog>\n `}\n <div class=\"flex items-center justify-between mb-xs text-s font-medium\">\n <span class=\"text-secondary\">\n ${this.label && this.label !== 'label' ? this.label : ''}\n </span>\n ${(!this.form && !this.createPageHref) || this.readonly || this.hideCreateButton\n ? ''\n : this.createPageHref && !this.disabled\n ? html`\n <a\n class=\"rounded-s text-primary group focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${this.createPageHref}\n >\n <foxy-i18n\n class=\"transition-opacity group-hover-opacity-80\"\n infer=\"\"\n key=\"create_button_text\"\n >\n </foxy-i18n>\n </a>\n `\n : html`\n <vaadin-button\n theme=\"tertiary-inline\"\n ?disabled=${this.disabled}\n @click=${(evt: Event) => {\n evt.preventDefault();\n evt.stopPropagation();\n\n const dialog = this.__dialog;\n const button = evt.currentTarget as HTMLButtonElement;\n\n dialog.header = 'header_create';\n dialog.href = '';\n dialog.show(button);\n }}\n >\n <foxy-i18n infer=\"pagination\" key=\"create_button_text\"></foxy-i18n>\n </vaadin-button>\n `}\n </div>\n\n <foxy-pagination first=${ifDefined(first)} infer=\"pagination\">\n <foxy-collection-page\n class=${classMap({\n 'block divide-y divide-contrast-5 rounded overflow-hidden': true,\n 'ring-1 ring-inset ring-contrast-10': !this.form && !this.getPageHref,\n 'bg-contrast-5': !!this.form || !!this.getPageHref,\n })}\n infer=\"card\"\n .related=${this.related}\n .props=${this.itemProps}\n .item=${this.__itemRenderer as any}\n >\n </foxy-collection-page>\n </foxy-pagination>\n\n <div\n class=${classMap({\n 'transition-colors mt-xs text-xs': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-disabled': this.disabled,\n })}\n ?hidden=${!this.helperText || this.helperText === 'helper_text'}\n >\n ${this.helperText}\n </div>\n\n <div\n class=\"mt-xs text-xs leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n `;\n }\n\n private get __dialog() {\n return this.renderRoot.querySelector('#form') as FormDialog;\n }\n\n private get __cardRenderer() {\n const item = this.item;\n\n if (this.__cachedCardRenderer?.item !== item) {\n this.__cachedCardRenderer = {\n item: item,\n render:\n typeof item === 'string'\n ? (new Function(\n 'ctx',\n `return ctx.html\\`\n <${item}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n infer=\"\"\n href=\\${ctx.href}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item}>\\``\n ) as ItemRenderer)\n : ctx => html`\n <div style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\">\n ${item?.(ctx)}\n </div>\n `,\n };\n }\n\n return this.__cachedCardRenderer.render;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalAsyncListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncListControl/InternalAsyncListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { CollectionPage, NucleonElement } from '../../public/index';\nimport type { InternalConfirmDialog } from '../InternalConfirmDialog';\nimport type { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { FormDialog } from '../../index';\nimport type { Option } from '../../public/QueryBuilder/types';\nimport type { Action } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-element';\n\nexport class InternalAsyncListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n keepDialogOpenOnDelete: { type: Boolean, attribute: 'keep-dialog-open-on-delete' },\n keepDialogOpenOnPost: { type: Boolean, attribute: 'keep-dialog-open-on-post' },\n hideDeleteButton: { type: Boolean, attribute: 'hide-delete-button' },\n hideCreateButton: { type: Boolean, attribute: 'hide-create-button' },\n createPageHref: { attribute: 'create-page-href' },\n getPageHref: { attribute: false },\n related: { type: Array },\n first: {},\n limit: { type: Number },\n form: {},\n formProps: { type: Object, attribute: 'form-props' },\n item: {},\n itemProps: { type: Object, attribute: 'item-props' },\n wide: { type: Boolean },\n alert: { type: Boolean },\n actions: { type: Array },\n filters: { type: Array },\n __filter: { attribute: false },\n __isFilterVisible: { attribute: false },\n };\n }\n\n /** If true, FormDialog won't automatically close after the associated form deletes the resource. */\n keepDialogOpenOnDelete = false;\n\n /** If true, FormDialog won't automatically close after the associated form creates a resource. */\n keepDialogOpenOnPost = false;\n\n /** If provided, renders Create button as a link to this page. */\n createPageHref: string | null = null;\n\n /** Same as the `related` property of `NucleonElement`. */\n related = [] as string[];\n\n /** Swipe actions. */\n actions = [] as Action[];\n\n /** Query parameters to apply to the `first` URL. */\n filters = [] as Option[];\n\n /** Limit query parameter to apply to the `first` URL. */\n limit = 20;\n\n /** URI of the first page of the hAPI collection to display. */\n first: string | null = null;\n\n /** Same as the `form` property of `FormDialog`. If set, will open a dialog on item click. */\n form: FormDialog['form'] = null;\n\n /** Props to pass through to the form rendered by `FormDialog`. */\n formProps: Record<string, unknown> = {};\n\n /** Same as the `item` property of `CollectionPage`. */\n item: CollectionPage<any>['item'] = null;\n\n /** Props to pass through to the `CollectionPage` rendering items. */\n itemProps: Record<string, unknown> = {};\n\n /** Same as the `wide` property of `FormDialog`. */\n wide = false;\n\n /** Same as the `alert` property of `FormDialog`. */\n alert = false;\n\n /** Hides Delete Swipe Action if true. */\n hideDeleteButton = false;\n\n /** Hides Create button if true. */\n hideCreateButton = false;\n\n /** If set, renders list items as <a> tags. */\n getPageHref: ((itemHref: string, item: unknown) => string | null) | null = null;\n\n private __deletionConfimationCallback: (() => void) | null = null;\n\n private __cachedCardRenderer: {\n item: InternalAsyncListControl['item'];\n render: ItemRenderer;\n } | null = null;\n\n private __isFilterVisible = false;\n\n private __itemRenderer: ItemRenderer = ctx => {\n if (!ctx.data) return this.__cardRenderer(ctx);\n\n const href = this.getPageHref?.(ctx.href, ctx.data);\n if (typeof href !== 'string' && !this.form) return this.__cardRenderer(ctx);\n\n const isDisabled = this.disabledSelector.matches('card', true);\n const card = this.__cardRenderer(ctx);\n let clickableItem: TemplateResult;\n\n const wrapperClass = classMap({\n 'rounded-t': !ctx.previous,\n 'rounded-b': !ctx.next,\n 'focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50': true,\n 'text-left w-full block transition-colors': true,\n 'hover-bg-contrast-5': !isDisabled,\n });\n\n if (this.getPageHref) {\n if (isDisabled) {\n clickableItem = html`<div class=${wrapperClass}>${card}</div>`;\n } else {\n const href = this.getPageHref(ctx.href, ctx.data);\n clickableItem = html`<a class=${wrapperClass} href=${href}>${card}</a>`;\n }\n } else {\n const handleClick = (evt: Event) => {\n const button = evt.currentTarget as HTMLButtonElement;\n const dialog = this.__dialog;\n\n dialog.header = 'header_update';\n dialog.href = ctx.href;\n dialog.show(button);\n };\n\n clickableItem = html`\n <button ?disabled=${isDisabled} class=${wrapperClass} @click=${handleClick}>${card}</button>\n `;\n }\n\n if (this.hideDeleteButton || this.readonly) return clickableItem;\n\n return html`\n <foxy-swipe-actions class=\"block\">\n ${clickableItem}\n ${this.actions.map(action => {\n return html`\n <vaadin-button\n data-testclass=\"action\"\n theme=${action.theme}\n class=\"h-full rounded-none relative\"\n slot=\"action\"\n ?disabled=${this.disabled}\n @click=${() => action.onClick(ctx.data!)}\n >\n <foxy-i18n\n class=${classMap({\n 'transition-opacity': true,\n 'opacity-0': action.state !== 'idle',\n })}\n infer=\"\"\n key=${action.text}\n >\n </foxy-i18n>\n <div\n class=${classMap({\n 'absolute inset-0 flex items-center justify-center transition-opacity': true,\n 'opacity-0': action.state === 'idle',\n })}\n >\n <foxy-spinner layout=\"no-label\" infer=\"spinner\" state=${action.state}>\n </foxy-spinner>\n </div>\n </vaadin-button>\n `;\n })}\n\n <vaadin-button\n theme=\"primary error\"\n class=\"h-full rounded-none\"\n slot=\"action\"\n @click=${(evt: CustomEvent) => {\n const button = evt.currentTarget as HTMLElement;\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n\n confirm.show(button);\n\n this.__deletionConfimationCallback = () => {\n const cardButton = button.parentElement!.firstElementChild!;\n const card = cardButton.querySelector<NucleonElement<any>>('[href]');\n\n card?.delete();\n this.__deletionConfimationCallback = null;\n };\n }}\n >\n <foxy-i18n infer=\"\" key=\"delete_button_text\"></foxy-i18n>\n </vaadin-button>\n </foxy-swipe-actions>\n `;\n };\n\n private __filter = '';\n\n renderControl(): TemplateResult {\n let first: string | undefined;\n\n try {\n const url = new URL(this.first ?? '');\n const filter = new URLSearchParams(this.__filter);\n\n url.searchParams.set('limit', String(this.limit));\n filter.forEach((value, key) => url.searchParams.set(key, value));\n first = url.toString();\n } catch {\n first = undefined;\n }\n\n return html`\n ${this.form\n ? html`\n <foxy-form-dialog\n parent=${ifDefined(this.first ?? void 0)}\n infer=\"dialog\"\n id=\"form\"\n ?wide=${this.wide}\n ?alert=${this.alert}\n ?keep-open-on-post=${this.keepDialogOpenOnPost}\n ?keep-open-on-delete=${this.keepDialogOpenOnDelete}\n .related=${this.related}\n .props=${this.formProps}\n .form=${this.form as any}\n >\n </foxy-form-dialog>\n `\n : ''}\n ${this.hideDeleteButton || this.readonly\n ? ''\n : html`\n <foxy-internal-confirm-dialog\n message=\"delete_message\"\n confirm=\"delete_confirm\"\n cancel=\"delete_cancel\"\n header=\"delete_header\"\n theme=\"error\"\n infer=\"\"\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => {\n if (!evt.detail.cancelled) this.__deletionConfimationCallback?.();\n }}\n >\n </foxy-internal-confirm-dialog>\n `}\n <div class=\"flex items-center justify-between mb-xs text-s font-medium\">\n <span class=\"text-secondary\">\n ${this.label && this.label !== 'label' ? this.label : ''}\n </span>\n\n ${this.filters.length > 0\n ? html`\n <foxy-internal-async-list-control-filter-overlay\n .noVerticalOverlap=${true}\n .positionTarget=${this.renderRoot.querySelector('#filters')}\n .model=${{\n options: this.filters,\n value: this.__filter,\n lang: this.lang,\n ns: this.ns,\n }}\n ?opened=${this.__isFilterVisible}\n @vaadin-overlay-close=${() => (this.__isFilterVisible = false)}\n @search=${(evt: CustomEvent<string | undefined>) => {\n this.__filter = evt.detail ?? '';\n }}\n >\n </foxy-internal-async-list-control-filter-overlay>\n\n <vaadin-button\n theme=\"tertiary-inline contrast\"\n class=\"ml-auto mr-m\"\n id=\"filters\"\n ?disabled=${this.disabled}\n @click=${() => (this.__isFilterVisible = !this.__isFilterVisible)}\n >\n <foxy-i18n infer=\"pagination\" key=\"search_button_text\"></foxy-i18n>\n </vaadin-button>\n `\n : ''}\n ${(!this.form && !this.createPageHref) || this.readonly || this.hideCreateButton\n ? ''\n : this.createPageHref && !this.disabled\n ? html`\n <a\n class=\"rounded-s text-primary group focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${this.createPageHref}\n >\n <foxy-i18n\n class=\"transition-opacity group-hover-opacity-80\"\n infer=\"\"\n key=\"create_button_text\"\n >\n </foxy-i18n>\n </a>\n `\n : html`\n <vaadin-button\n theme=\"tertiary-inline\"\n ?disabled=${this.disabled}\n @click=${(evt: Event) => {\n evt.preventDefault();\n evt.stopPropagation();\n\n const dialog = this.__dialog;\n const button = evt.currentTarget as HTMLButtonElement;\n\n dialog.header = 'header_create';\n dialog.href = '';\n dialog.show(button);\n }}\n >\n <foxy-i18n infer=\"pagination\" key=\"create_button_text\"></foxy-i18n>\n </vaadin-button>\n `}\n </div>\n\n <foxy-pagination first=${ifDefined(first)} infer=\"pagination\">\n <foxy-collection-page\n class=${classMap({\n 'block divide-y divide-contrast-5 rounded overflow-hidden': true,\n 'ring-1 ring-inset ring-contrast-10': !this.form && !this.getPageHref,\n 'bg-contrast-5': !!this.form || !!this.getPageHref,\n })}\n infer=\"card\"\n .related=${this.related}\n .props=${this.itemProps}\n .item=${this.__itemRenderer as any}\n >\n </foxy-collection-page>\n </foxy-pagination>\n\n <div\n class=${classMap({\n 'transition-colors mt-xs text-xs': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-disabled': this.disabled,\n })}\n ?hidden=${!this.helperText || this.helperText === 'helper_text'}\n >\n ${this.helperText}\n </div>\n\n <div\n class=\"mt-xs text-xs leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n `;\n }\n\n private get __dialog() {\n return this.renderRoot.querySelector('#form') as FormDialog;\n }\n\n private get __cardRenderer() {\n const item = this.item;\n\n if (this.__cachedCardRenderer?.item !== item) {\n this.__cachedCardRenderer = {\n item: item,\n render:\n typeof item === 'string'\n ? (new Function(\n 'ctx',\n `return ctx.html\\`\n <${item}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n infer=\"\"\n href=\\${ctx.href}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item}>\\``\n ) as ItemRenderer)\n : ctx => html`\n <div style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\">\n ${item?.(ctx)}\n </div>\n `,\n };\n }\n\n return this.__cachedCardRenderer.render;\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import type { Constructor } from 'lit-element';
2
+ import { OverlayElement } from '@vaadin/vaadin-overlay/src/vaadin-overlay';
3
+ declare class PositionMixinHost {
4
+ positionTarget: HTMLElement | null;
5
+ }
6
+ declare const InternalAsyncListControlFilterOverlay_base: Constructor<OverlayElement> & Constructor<PositionMixinHost>;
7
+ export declare class InternalAsyncListControlFilterOverlay extends InternalAsyncListControlFilterOverlay_base {
8
+ static get is(): string;
9
+ renderer: (root: HTMLElement, _: unknown, model: unknown) => void;
10
+ }
11
+ export {};
@@ -0,0 +1,57 @@
1
+ import { _PositionMixin } from '@vaadin/vaadin-overlay/src/vaadin-overlay-position-mixin';
2
+ import { OverlayElement } from '@vaadin/vaadin-overlay/src/vaadin-overlay';
3
+ import { html, render } from 'lit-html';
4
+ const PositionMixin = _PositionMixin;
5
+ export class InternalAsyncListControlFilterOverlay extends PositionMixin(OverlayElement) {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.renderer = (root, _, model) => {
9
+ var _a;
10
+ const litRoot = (_a = root.firstElementChild) !== null && _a !== void 0 ? _a : document.createElement('div');
11
+ if (!root.firstElementChild)
12
+ root.appendChild(litRoot);
13
+ const m = model;
14
+ const result = html `
15
+ <div
16
+ style="display: grid; gap: var(--lumo-space-m); padding: var(--lumo-space-s); width: 22rem"
17
+ >
18
+ <foxy-query-builder
19
+ lang=${m.lang}
20
+ ns=${`${m.ns} query-builder`.trim()}
21
+ .options=${m.options}
22
+ .value=${m.value}
23
+ >
24
+ </foxy-query-builder>
25
+
26
+ <div style="display: flex; justify-content: space-between">
27
+ <vaadin-button
28
+ theme="primary"
29
+ style="margin: 0"
30
+ @click=${() => {
31
+ var _a;
32
+ const queryBuilder = litRoot.querySelector('foxy-query-builder');
33
+ const detail = (_a = queryBuilder.value) !== null && _a !== void 0 ? _a : '';
34
+ this.dispatchEvent(new CustomEvent('search', { detail }));
35
+ }}
36
+ >
37
+ <foxy-i18n lang=${m.lang} ns=${m.ns} key="search"></foxy-i18n>
38
+ </vaadin-button>
39
+
40
+ <vaadin-button
41
+ theme="secondary contrast"
42
+ style="margin: 0"
43
+ @click=${() => this.dispatchEvent(new CustomEvent('search'))}
44
+ >
45
+ <foxy-i18n lang=${m.lang} ns=${m.ns} key="clear"></foxy-i18n>
46
+ </vaadin-button>
47
+ </div>
48
+ </div>
49
+ `;
50
+ render(result, litRoot);
51
+ };
52
+ }
53
+ static get is() {
54
+ return 'foxy-internal-async-list-control-filter-overlay';
55
+ }
56
+ }
57
+ //# sourceMappingURL=InternalAsyncListControlFilterOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalAsyncListControlFilterOverlay.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOxC,MAAM,aAAa,GAAG,cAE2C,CAAC;AAElE,MAAM,OAAO,qCAAsC,SAAQ,aAAa,CAAC,cAAc,CAAC;IAAxF;;QAKE,aAAQ,GAAG,CAAC,IAAiB,EAAE,CAAU,EAAE,KAAc,EAAQ,EAAE;;YACjE,MAAM,OAAO,SAAG,IAAI,CAAC,iBAAiB,mCAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEvD,MAAM,CAAC,GAAG,KAAuE,CAAC;YAElF,MAAM,MAAM,GAAG,IAAI,CAAA;;;;;iBAKN,CAAC,CAAC,IAAI;eACR,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,EAAE;qBACxB,CAAC,CAAC,OAAO;mBACX,CAAC,CAAC,KAAK;;;;;;;;qBAQL,GAAG,EAAE;;gBACZ,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAiB,CAAC;gBACjF,MAAM,MAAM,SAAG,YAAY,CAAC,KAAK,mCAAI,EAAE,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;;8BAEiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE;;;;;;qBAM1B,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;;8BAE1C,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE;;;;KAI1C,CAAC;YAEF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC;IAhDC,MAAM,KAAK,EAAE;QACX,OAAO,iDAAiD,CAAC;IAC3D,CAAC;CA8CF","sourcesContent":["import type { Constructor } from 'lit-element';\nimport type { Option } from '../../public/QueryBuilder/types';\n\nimport { _PositionMixin } from '@vaadin/vaadin-overlay/src/vaadin-overlay-position-mixin';\nimport { OverlayElement } from '@vaadin/vaadin-overlay/src/vaadin-overlay';\nimport { html, render } from 'lit-html';\nimport { QueryBuilder } from '../../public';\n\ndeclare class PositionMixinHost {\n positionTarget: HTMLElement | null;\n}\n\nconst PositionMixin = _PositionMixin as (\n superClass: Constructor<OverlayElement>\n) => Constructor<OverlayElement> & Constructor<PositionMixinHost>;\n\nexport class InternalAsyncListControlFilterOverlay extends PositionMixin(OverlayElement) {\n static get is(): string {\n return 'foxy-internal-async-list-control-filter-overlay';\n }\n\n renderer = (root: HTMLElement, _: unknown, model: unknown): void => {\n const litRoot = root.firstElementChild ?? document.createElement('div');\n if (!root.firstElementChild) root.appendChild(litRoot);\n\n const m = model as { options: Option[]; value: string; lang: string; ns: string };\n\n const result = html`\n <div\n style=\"display: grid; gap: var(--lumo-space-m); padding: var(--lumo-space-s); width: 22rem\"\n >\n <foxy-query-builder\n lang=${m.lang}\n ns=${`${m.ns} query-builder`.trim()}\n .options=${m.options}\n .value=${m.value}\n >\n </foxy-query-builder>\n\n <div style=\"display: flex; justify-content: space-between\">\n <vaadin-button\n theme=\"primary\"\n style=\"margin: 0\"\n @click=${() => {\n const queryBuilder = litRoot.querySelector('foxy-query-builder') as QueryBuilder;\n const detail = queryBuilder.value ?? '';\n this.dispatchEvent(new CustomEvent('search', { detail }));\n }}\n >\n <foxy-i18n lang=${m.lang} ns=${m.ns} key=\"search\"></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n theme=\"secondary contrast\"\n style=\"margin: 0\"\n @click=${() => this.dispatchEvent(new CustomEvent('search'))}\n >\n <foxy-i18n lang=${m.lang} ns=${m.ns} key=\"clear\"></foxy-i18n>\n </vaadin-button>\n </div>\n </div>\n `;\n\n render(result, litRoot);\n };\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import '@vaadin/vaadin-overlay';
1
2
  import '@vaadin/vaadin-button';
2
3
  import '../../public/CollectionPage/index';
3
4
  import '../../public/SwipeActions/index';
@@ -1,3 +1,4 @@
1
+ import '@vaadin/vaadin-overlay';
1
2
  import '@vaadin/vaadin-button';
2
3
  import "../../public/CollectionPage/index.js";
3
4
  import "../../public/SwipeActions/index.js";
@@ -6,7 +7,9 @@ import "../../public/Pagination/index.js";
6
7
  import "../../public/I18n/index.js";
7
8
  import "../InternalEditableControl/index.js";
8
9
  import "../InternalConfirmDialog/index.js";
10
+ import { InternalAsyncListControlFilterOverlay as Overlay } from "./InternalAsyncListControlFilterOverlay.js";
9
11
  import { InternalAsyncListControl as Control } from "./InternalAsyncListControl.js";
10
12
  customElements.define('foxy-internal-async-list-control', Control);
13
+ customElements.define(Overlay.is, Overlay);
11
14
  export { Control as InternalAsyncListControl };
12
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncListControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,8CAA2C;AAC3C,4CAAyC;AACzC,0CAAuC;AACvC,0CAAuC;AACvC,oCAAiC;AAEjC,6CAA0C;AAC1C,2CAAwC;AAExC,OAAO,EAAE,wBAAwB,IAAI,OAAO,EAAE,sCAAmC;AAEjF,cAAc,CAAC,MAAM,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;AAEnE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\n\nimport '../../public/CollectionPage/index';\nimport '../../public/SwipeActions/index';\nimport '../../public/FormDialog/index';\nimport '../../public/Pagination/index';\nimport '../../public/I18n/index';\n\nimport '../InternalEditableControl/index';\nimport '../InternalConfirmDialog/index';\n\nimport { InternalAsyncListControl as Control } from './InternalAsyncListControl';\n\ncustomElements.define('foxy-internal-async-list-control', Control);\n\nexport { Control as InternalAsyncListControl };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncListControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAChC,OAAO,uBAAuB,CAAC;AAE/B,8CAA2C;AAC3C,4CAAyC;AACzC,0CAAuC;AACvC,0CAAuC;AACvC,oCAAiC;AAEjC,6CAA0C;AAC1C,2CAAwC;AAExC,OAAO,EAAE,qCAAqC,IAAI,OAAO,EAAE,mDAAgD;AAC3G,OAAO,EAAE,wBAAwB,IAAI,OAAO,EAAE,sCAAmC;AAEjF,cAAc,CAAC,MAAM,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;AACnE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAE3C,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-overlay';\nimport '@vaadin/vaadin-button';\n\nimport '../../public/CollectionPage/index';\nimport '../../public/SwipeActions/index';\nimport '../../public/FormDialog/index';\nimport '../../public/Pagination/index';\nimport '../../public/I18n/index';\n\nimport '../InternalEditableControl/index';\nimport '../InternalConfirmDialog/index';\n\nimport { InternalAsyncListControlFilterOverlay as Overlay } from './InternalAsyncListControlFilterOverlay';\nimport { InternalAsyncListControl as Control } from './InternalAsyncListControl';\n\ncustomElements.define('foxy-internal-async-list-control', Control);\ncustomElements.define(Overlay.is, Overlay);\n\nexport { Control as InternalAsyncListControl };\n"]}
@@ -0,0 +1,8 @@
1
+ import type { HALJSONResource } from '../../public/NucleonElement/types';
2
+ import type { SpinnerState } from '../../public/Spinner/Spinner';
3
+ export declare type Action<TData = HALJSONResource> = {
4
+ theme: string;
5
+ state: 'idle' | SpinnerState;
6
+ text: string;
7
+ onClick: (data: TData) => unknown;
8
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncListControl/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { HALJSONResource } from '../../public/NucleonElement/types';\nimport type { SpinnerState } from '../../public/Spinner/Spinner';\n\nexport type Action<TData = HALJSONResource> = {\n theme: string;\n state: 'idle' | SpinnerState;\n text: string;\n onClick: (data: TData) => unknown;\n};\n"]}
@@ -0,0 +1,23 @@
1
+ import type { CSSResultArray, PropertyDeclarations } from 'lit-element';
2
+ import type { TemplateResult } from 'lit-html';
3
+ import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
4
+ export declare class InternalAsyncResourceLinkListControl extends InternalEditableControl {
5
+ static get properties(): PropertyDeclarations;
6
+ static get styles(): CSSResultArray;
7
+ foreignKeyForUri: string | null;
8
+ foreignKeyForId: string | null;
9
+ ownKeyForUri: string | null;
10
+ optionsHref: string | null;
11
+ linksHref: string | null;
12
+ embedKey: string | null;
13
+ ownUri: string | null;
14
+ limit: number;
15
+ item: string | null;
16
+ private readonly __getItemRenderer;
17
+ private readonly __renderItem;
18
+ private __isFetching;
19
+ renderControl(): TemplateResult;
20
+ updated(changes: Map<keyof this, unknown>): void;
21
+ private __insertLink;
22
+ private __deleteLink;
23
+ }