@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.
- package/dist/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +1 -1
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-api-browser.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-applied-tax-card.js +1 -1
- package/dist/cdn/foxy-attribute-card.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-billing-address-card.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-card.js +1 -1
- package/dist/cdn/foxy-cart-form.js +1 -1
- package/dist/cdn/foxy-client-card.js +1 -1
- package/dist/cdn/foxy-client-form.js +1 -1
- package/dist/cdn/foxy-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.js +1 -1
- package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
- package/dist/cdn/foxy-coupon-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-card.js +1 -0
- package/dist/cdn/foxy-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-coupon-codes-form.js +1 -1
- package/dist/cdn/foxy-coupon-detail-card.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-card.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-api.js +1 -1
- package/dist/cdn/foxy-customer-card.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +2 -2
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-builder.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-discount-detail-card.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-downloadable-card.js +1 -1
- package/dist/cdn/foxy-downloadable-form.js +2 -2
- package/dist/cdn/foxy-email-template-card.js +1 -1
- package/dist/cdn/foxy-email-template-form.js +1 -1
- package/dist/cdn/foxy-error-entry-card.js +1 -1
- package/dist/cdn/foxy-filter-attribute-card.js +1 -1
- package/dist/cdn/foxy-filter-attribute-form.js +1 -1
- package/dist/cdn/foxy-form-dialog.js +1 -1
- package/dist/cdn/foxy-generate-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
- package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-i18n-editor.js +2 -2
- package/dist/cdn/foxy-i18n.js +1 -1
- package/dist/cdn/foxy-integration-card.js +1 -1
- package/dist/cdn/foxy-integration-form.js +1 -1
- package/dist/cdn/foxy-item-card.js +1 -1
- package/dist/cdn/foxy-item-category-card.js +1 -1
- package/dist/cdn/foxy-item-category-form.js +1 -1
- package/dist/cdn/foxy-item-form.js +3 -3
- package/dist/cdn/foxy-item-option-card.js +1 -1
- package/dist/cdn/foxy-item-option-form.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-native-integration-card.js +1 -1
- package/dist/cdn/foxy-native-integration-form.js +1 -1
- package/dist/cdn/foxy-nucleon-element.js +1 -1
- package/dist/cdn/foxy-pagination.js +1 -1
- package/dist/cdn/foxy-passkey-card.js +1 -1
- package/dist/cdn/foxy-passkey-form.js +1 -1
- package/dist/cdn/foxy-payment-card.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +1 -1
- package/dist/cdn/foxy-reports-table.js +1 -1
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-shipping-method-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +1 -1
- package/dist/cdn/foxy-store-card.js +1 -1
- package/dist/cdn/foxy-store-form.js +1 -1
- package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +1 -1
- package/dist/cdn/foxy-subscription-settings-form.js +1 -1
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-table.js +1 -1
- package/dist/cdn/foxy-tax-card.js +1 -1
- package/dist/cdn/foxy-tax-form.js +1 -1
- package/dist/cdn/foxy-template-config-form.js +1 -1
- package/dist/cdn/foxy-template-form.js +1 -1
- package/dist/cdn/foxy-template-set-card.js +1 -1
- package/dist/cdn/foxy-template-set-form.js +1 -1
- package/dist/cdn/foxy-transaction-card.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +1 -1
- package/dist/cdn/foxy-user-card.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/foxy-webhook-card.js +1 -1
- package/dist/cdn/foxy-webhook-form.js +1 -1
- package/dist/cdn/foxy-webhook-log-card.js +1 -1
- package/dist/cdn/foxy-webhook-status-card.js +1 -1
- package/dist/cdn/{shared-20c4310b.js → shared-065dbdf6.js} +1 -1
- package/dist/cdn/{shared-0f49d9c3.js → shared-07d5e225.js} +1 -1
- package/dist/cdn/{shared-82435697.js → shared-0e8dceb8.js} +1 -1
- package/dist/cdn/{shared-6ef4ce19.js → shared-1a9e80fa.js} +1 -1
- package/dist/cdn/{shared-e4e0dc11.js → shared-1d6beb48.js} +1 -1
- package/dist/cdn/shared-208e37af.js +88 -0
- package/dist/cdn/shared-29f2468c.js +6 -0
- package/dist/cdn/shared-400240f8.js +1 -0
- package/dist/cdn/{shared-9db9528b.js → shared-589e5d06.js} +15 -15
- package/dist/cdn/{shared-6be0a096.js → shared-5dbb9630.js} +1 -1
- package/dist/cdn/{shared-6350f7d9.js → shared-5e35c5a5.js} +1 -1
- package/dist/cdn/{shared-3cbcd9cb.js → shared-5f09205d.js} +1 -1
- package/dist/cdn/{shared-d15c3e2d.js → shared-61f67b16.js} +1 -1
- package/dist/cdn/shared-683145e5.js +1 -0
- package/dist/cdn/shared-6c4affb9.js +1 -0
- package/dist/cdn/{shared-4fb9d21f.js → shared-77fd8dae.js} +1 -1
- package/dist/cdn/{shared-92cdd504.js → shared-80eb1fee.js} +1 -1
- package/dist/cdn/shared-850e2ae1.js +10 -0
- package/dist/cdn/{shared-872151f5.js → shared-85979316.js} +1 -1
- package/dist/cdn/{shared-4fd17baf.js → shared-8def6325.js} +1 -1
- package/dist/cdn/{shared-18d109f5.js → shared-93812e51.js} +1 -1
- package/dist/cdn/{shared-6a998243.js → shared-9a5da74d.js} +21 -27
- package/dist/cdn/{shared-e52280d9.js → shared-b30f9b10.js} +1 -1
- package/dist/cdn/shared-bb08b5ce.js +32 -0
- package/dist/cdn/{shared-89b42eef.js → shared-bba8ae80.js} +1 -1
- package/dist/cdn/{shared-bf132324.js → shared-befe135a.js} +1 -1
- package/dist/cdn/{shared-7ff496f6.js → shared-bfa30d93.js} +1 -1
- package/dist/cdn/shared-c5f57aa8.js +1 -0
- package/dist/cdn/{shared-3277bbf5.js → shared-ca15d510.js} +1 -1
- package/dist/cdn/{shared-46454866.js → shared-cab2aa63.js} +4 -4
- package/dist/cdn/shared-cc723108.js +12 -0
- package/dist/cdn/{shared-97793410.js → shared-d04c2e0c.js} +1 -1
- package/dist/cdn/{shared-59a5edee.js → shared-da7a0bfb.js} +9 -9
- package/dist/cdn/shared-e35297c9.js +1 -0
- package/dist/cdn/{shared-8778d784.js → shared-e48fbf50.js} +1 -1
- package/dist/cdn/shared-e84be1c2.js +64 -0
- package/dist/cdn/{shared-8dd03329.js → shared-e966f1ef.js} +1 -1
- package/dist/cdn/{shared-1122a125.js → shared-fb8c09b8.js} +1 -1
- package/dist/cdn/{shared-fcaf15e5.js → shared-fd041b18.js} +1 -1
- package/dist/cdn/{shared-1b0992cc.js → shared-fda63db8.js} +5 -5
- package/dist/cdn/{shared-51ac503d.js → shared-fe7b3ed2.js} +1 -1
- package/dist/cdn/translations/coupon-code-card/en.json +11 -0
- package/dist/cdn/translations/coupon-form/en.json +522 -297
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +10 -0
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +81 -2
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.d.ts +11 -0
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.js +57 -0
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.js.map +1 -0
- package/dist/elements/internal/InternalAsyncListControl/index.d.ts +1 -0
- package/dist/elements/internal/InternalAsyncListControl/index.js +3 -0
- package/dist/elements/internal/InternalAsyncListControl/index.js.map +1 -1
- package/dist/elements/internal/InternalAsyncListControl/types.d.ts +8 -0
- package/dist/elements/internal/InternalAsyncListControl/types.js +2 -0
- package/dist/elements/internal/InternalAsyncListControl/types.js.map +1 -0
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.d.ts +23 -0
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js +224 -0
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js.map +1 -0
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.d.ts +8 -0
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.js +10 -0
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.js.map +1 -0
- package/dist/elements/internal/InternalForm/InternalForm.d.ts +10 -0
- package/dist/elements/internal/InternalForm/InternalForm.js +44 -0
- package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
- package/dist/elements/internal/InternalForm/index.d.ts +2 -0
- package/dist/elements/internal/InternalForm/index.js +2 -0
- package/dist/elements/internal/InternalForm/index.js.map +1 -1
- package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +1 -0
- package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +3 -0
- package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -1
- package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.d.ts +10 -0
- package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js +51 -0
- package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js.map +1 -0
- package/dist/elements/internal/InternalQueryBuilderControl/index.d.ts +4 -0
- package/dist/elements/internal/InternalQueryBuilderControl/index.js +6 -0
- package/dist/elements/internal/InternalQueryBuilderControl/index.js.map +1 -0
- package/dist/elements/public/CartForm/CartForm.js +81 -81
- package/dist/elements/public/CartForm/CartForm.js.map +1 -1
- package/dist/elements/public/CouponCodeCard/CouponCodeCard.d.ts +16 -0
- package/dist/elements/public/CouponCodeCard/CouponCodeCard.js +41 -0
- package/dist/elements/public/CouponCodeCard/CouponCodeCard.js.map +1 -0
- package/dist/elements/public/CouponCodeCard/index.d.ts +4 -0
- package/dist/elements/public/CouponCodeCard/index.js +6 -0
- package/dist/elements/public/CouponCodeCard/index.js.map +1 -0
- package/dist/elements/public/CouponCodeCard/types.d.ts +3 -0
- package/dist/elements/public/CouponCodeCard/types.js +2 -0
- package/dist/elements/public/CouponCodeCard/types.js.map +1 -0
- package/dist/elements/public/CouponForm/CouponForm.d.ts +65 -41
- package/dist/elements/public/CouponForm/CouponForm.js +320 -1035
- package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
- package/dist/elements/public/CouponForm/index.d.ts +15 -16
- package/dist/elements/public/CouponForm/index.js +15 -16
- package/dist/elements/public/CouponForm/index.js.map +1 -1
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.d.ts +9 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.js +49 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/InternalCouponFormBulkAddControl.js.map +1 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.d.ts +6 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.js +8 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormBulkAddControl/index.js.map +1 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.d.ts +7 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js +141 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js.map +1 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.d.ts +6 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.js +8 -0
- package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/index.js.map +1 -0
- package/dist/elements/public/CouponForm/types.d.ts +10 -1
- package/dist/elements/public/CouponForm/types.js.map +1 -1
- package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js +7 -3
- package/dist/elements/public/CustomerPortalSettingsForm/CustomerPortalSettingsForm.js.map +1 -1
- package/dist/elements/public/CustomerPortalSettingsForm/toOrigin.d.ts +1 -0
- package/dist/elements/public/CustomerPortalSettingsForm/toOrigin.js +9 -0
- package/dist/elements/public/CustomerPortalSettingsForm/toOrigin.js.map +1 -0
- package/dist/elements/public/DownloadableForm/DownloadableForm.js +9 -9
- package/dist/elements/public/DownloadableForm/DownloadableForm.js.map +1 -1
- package/dist/elements/public/I18n/format/discount.js +9 -2
- package/dist/elements/public/I18n/format/discount.js.map +1 -1
- package/dist/elements/public/I18n/format/ordinal.js +6 -2
- package/dist/elements/public/I18n/format/ordinal.js.map +1 -1
- package/dist/elements/public/IntegrationForm/IntegrationForm.js +8 -6
- package/dist/elements/public/IntegrationForm/IntegrationForm.js.map +1 -1
- package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js +27 -27
- package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js.map +1 -1
- package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +4 -0
- package/dist/elements/public/QueryBuilder/QueryBuilder.js +10 -2
- package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/elements/public/QueryBuilder/components/Group.d.ts +3 -1
- package/dist/elements/public/QueryBuilder/components/Group.js +8 -1
- package/dist/elements/public/QueryBuilder/components/Group.js.map +1 -1
- package/dist/elements/public/QueryBuilder/components/OperatorToggle.d.ts +2 -1
- package/dist/elements/public/QueryBuilder/components/OperatorToggle.js +5 -4
- package/dist/elements/public/QueryBuilder/components/OperatorToggle.js.map +1 -1
- package/dist/elements/public/QueryBuilder/components/Rule.d.ts +3 -1
- package/dist/elements/public/QueryBuilder/components/Rule.js +2 -1
- package/dist/elements/public/QueryBuilder/components/Rule.js.map +1 -1
- package/dist/elements/public/StoreForm/StoreForm.js +7 -8
- package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.js +28 -28
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.js.map +1 -1
- package/dist/elements/public/index.d.ts +1 -0
- package/dist/elements/public/index.defined.d.ts +1 -0
- package/dist/elements/public/index.defined.js +1 -0
- package/dist/elements/public/index.defined.js.map +1 -1
- package/dist/elements/public/index.js +1 -0
- package/dist/elements/public/index.js.map +1 -1
- package/dist/mixins/inferrable.js +8 -3
- package/dist/mixins/inferrable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-20f65e73.js +0 -1
- package/dist/cdn/shared-27c7514d.js +0 -1
- package/dist/cdn/shared-669decee.js +0 -1
- package/dist/cdn/shared-afefe2ac.js +0 -113
- package/dist/cdn/shared-b33fd700.js +0 -1
- package/dist/cdn/shared-b51b9df7.js +0 -64
- package/dist/cdn/shared-b914895b.js +0 -1
- package/dist/cdn/shared-cce18690.js +0 -1
- package/dist/cdn/shared-d04dd602.js +0 -20
- package/dist/cdn/shared-df58b901.js +0 -1
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.d.ts +0 -20
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js +0 -99
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js.map +0 -1
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.d.ts +0 -18
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js +0 -50
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js.map +0 -1
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.d.ts +0 -18
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js +0 -53
- 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.
|
|
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"]}
|
package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.d.ts
ADDED
|
@@ -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 {};
|
package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.js
ADDED
|
@@ -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
|
package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControlFilterOverlay.js.map
ADDED
|
@@ -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.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;
|
|
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 @@
|
|
|
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
|
+
}
|