@foxy.io/elements 1.23.0 → 1.24.0-beta.2
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 +2 -2
- 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-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 -0
- package/dist/cdn/foxy-client-form.js +1 -0
- 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-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.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +1 -1
- 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 +1 -1
- 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 -0
- package/dist/cdn/foxy-filter-attribute-form.js +1 -0
- 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 +1 -1
- 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-nucleon-element.js +1 -1
- package/dist/cdn/foxy-pagination.js +1 -1
- package/dist/cdn/foxy-passkey-card.js +1 -0
- package/dist/cdn/foxy-passkey-form.js +1 -0
- 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-payments-api.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 +2 -2
- 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 +3 -3
- 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-16b542bc.js → shared-09d4fbb8.js} +2 -2
- package/dist/cdn/{shared-5dd31b4e.js → shared-0a248c0d.js} +1 -1
- package/dist/cdn/{shared-c40d85dc.js → shared-17d0db7f.js} +1 -1
- package/dist/cdn/{shared-7c5754a4.js → shared-1b060170.js} +1 -1
- package/dist/cdn/shared-1d08a5ad.js +1 -0
- package/dist/cdn/{shared-03b39ec4.js → shared-1d28220a.js} +1 -1
- package/dist/cdn/{shared-daf52401.js → shared-1eac92fa.js} +1 -1
- package/dist/cdn/{shared-6fb923d5.js → shared-25f64060.js} +1 -1
- package/dist/cdn/{shared-98755831.js → shared-307262a1.js} +1 -1
- package/dist/cdn/{shared-4c9f96ec.js → shared-31651a9c.js} +1 -1
- package/dist/cdn/{shared-a89cb472.js → shared-332f2997.js} +1 -1
- package/dist/cdn/shared-36725fe3.js +1 -0
- package/dist/cdn/{shared-6b53ef85.js → shared-379b37e6.js} +2 -2
- package/dist/cdn/{shared-b5517c1b.js → shared-39f3b48d.js} +1 -1
- package/dist/cdn/{shared-f3f5e87e.js → shared-432c5183.js} +1 -1
- package/dist/cdn/{shared-e28f16db.js → shared-4674063d.js} +1 -1
- package/dist/cdn/{shared-6f465111.js → shared-479ad951.js} +1 -1
- package/dist/cdn/{shared-08ff9a8d.js → shared-4904bca4.js} +1 -1
- package/dist/cdn/{shared-a8cf402a.js → shared-4b67d699.js} +1 -1
- package/dist/cdn/{shared-bd81cc08.js → shared-4bbd600d.js} +1 -1
- package/dist/cdn/{shared-ad396f3c.js → shared-4c956a8e.js} +1 -1
- package/dist/cdn/{shared-fbfb0943.js → shared-4dc58b73.js} +1 -1
- package/dist/cdn/{shared-39761436.js → shared-4dee79d4.js} +1 -1
- package/dist/cdn/{shared-b88e35b7.js → shared-51d28e6d.js} +1 -1
- package/dist/cdn/shared-53061389.js +1 -0
- package/dist/cdn/{shared-7a290f36.js → shared-59042137.js} +1 -1
- package/dist/cdn/{shared-068480a3.js → shared-64f98a0f.js} +1 -1
- package/dist/cdn/{shared-23923638.js → shared-65318cc1.js} +1 -1
- package/dist/cdn/shared-65ba8b39.js +1 -0
- package/dist/cdn/{shared-380db651.js → shared-665d6cc4.js} +1 -1
- package/dist/cdn/{shared-7bf46d6d.js → shared-69a21b9d.js} +1 -1
- package/dist/cdn/{shared-8349938a.js → shared-6abdfcf2.js} +1 -1
- package/dist/cdn/{shared-0dc1d012.js → shared-6dc64a17.js} +1 -1
- package/dist/cdn/shared-6f84ac3e.js +1 -0
- package/dist/cdn/{shared-86768244.js → shared-77a4d8e8.js} +1 -1
- package/dist/cdn/{shared-a6518411.js → shared-7995407d.js} +1 -1
- package/dist/cdn/shared-7f5618ba.js +1 -0
- package/dist/cdn/{shared-61a510d8.js → shared-8474bc4a.js} +1 -1
- package/dist/cdn/{shared-0543c6e0.js → shared-88e36564.js} +1 -1
- package/dist/cdn/{shared-ca5e1c6b.js → shared-92f27a38.js} +1 -1
- package/dist/cdn/{shared-e5c19ea3.js → shared-984fcdf5.js} +3 -3
- package/dist/cdn/{shared-43520428.js → shared-9c626d58.js} +1 -1
- package/dist/cdn/{shared-8b73191b.js → shared-9caffb4d.js} +1 -1
- package/dist/cdn/{shared-1e5292a1.js → shared-a3c73e91.js} +1 -1
- package/dist/cdn/{shared-3a252ccd.js → shared-a92ae606.js} +1 -1
- package/dist/cdn/{shared-ee13d1a6.js → shared-b0f534ef.js} +1 -1
- package/dist/cdn/{shared-d493355a.js → shared-b3ac59eb.js} +1 -1
- package/dist/cdn/{shared-e6066f46.js → shared-b48a83b0.js} +1 -1
- package/dist/cdn/{shared-939fc890.js → shared-ba658670.js} +1 -1
- package/dist/cdn/{shared-85bc54a6.js → shared-bafcab47.js} +1 -1
- package/dist/cdn/{shared-cd096e97.js → shared-bdb51db9.js} +1 -1
- package/dist/cdn/{shared-9048c076.js → shared-be24dd36.js} +1 -1
- package/dist/cdn/shared-bf62a65b.js +1 -0
- package/dist/cdn/{shared-eb900735.js → shared-c2d3b32b.js} +1 -1
- package/dist/cdn/{shared-3a82d3f5.js → shared-c4240bc6.js} +1 -1
- package/dist/cdn/{shared-ca58ef47.js → shared-c6c6ba69.js} +1 -1
- package/dist/cdn/{shared-de790de9.js → shared-c7f2f1ab.js} +1 -1
- package/dist/cdn/{shared-53fee01f.js → shared-c97e0d6e.js} +1 -1
- package/dist/cdn/{shared-bd819b5b.js → shared-cf269a17.js} +1 -1
- package/dist/cdn/{shared-4db2c7b1.js → shared-d14c2060.js} +3 -3
- package/dist/cdn/{shared-dcbaa1c5.js → shared-db21f6db.js} +1 -1
- package/dist/cdn/{shared-2756a4f0.js → shared-dccf0420.js} +1 -1
- package/dist/cdn/{shared-0c02b4ee.js → shared-dfe2602a.js} +1 -1
- package/dist/cdn/{shared-4abfda9b.js → shared-e10052d0.js} +1 -1
- package/dist/cdn/{shared-b95ef318.js → shared-e6828dbf.js} +1 -1
- package/dist/cdn/{shared-cb6f2388.js → shared-e6997950.js} +1 -1
- package/dist/cdn/{shared-eb4b4597.js → shared-e7c3b7b6.js} +1 -1
- package/dist/cdn/{shared-6eb7dc77.js → shared-e84fa0ea.js} +1 -1
- package/dist/cdn/{shared-6bfa699d.js → shared-e8e92fe3.js} +1 -1
- package/dist/cdn/shared-fe54babe.js +1 -0
- package/dist/cdn/{shared-aeec3cab.js → shared-fef9ecc1.js} +1 -1
- package/dist/cdn/{shared-c3c67413.js → shared-ff992ead.js} +1 -1
- package/dist/cdn/translations/client-card/en.json +10 -0
- package/dist/cdn/translations/client-form/en.json +74 -0
- package/dist/cdn/translations/filter-attribute-card/en.json +8 -0
- package/dist/cdn/translations/filter-attribute-form/en.json +49 -0
- package/dist/cdn/translations/passkey-card/en.json +9 -0
- package/dist/cdn/translations/passkey-form/en.json +34 -0
- package/dist/cdn/translations/transaction-card/en.json +8 -0
- package/dist/elements/private/Dialog/Dialog.js +10 -1
- package/dist/elements/private/Dialog/Dialog.js.map +1 -1
- package/dist/elements/public/ClientCard/ClientCard.d.ts +17 -0
- package/dist/elements/public/ClientCard/ClientCard.js +46 -0
- package/dist/elements/public/ClientCard/ClientCard.js.map +1 -0
- package/dist/elements/public/ClientCard/index.d.ts +3 -0
- package/dist/elements/public/ClientCard/index.js +5 -0
- package/dist/elements/public/ClientCard/index.js.map +1 -0
- package/dist/elements/public/ClientCard/types.d.ts +3 -0
- package/dist/elements/public/ClientCard/types.js +2 -0
- package/dist/elements/public/ClientCard/types.js.map +1 -0
- package/dist/elements/public/ClientForm/ClientForm.d.ts +62 -0
- package/dist/elements/public/ClientForm/ClientForm.js +108 -0
- package/dist/elements/public/ClientForm/ClientForm.js.map +1 -0
- package/dist/elements/public/ClientForm/index.d.ts +5 -0
- package/dist/elements/public/ClientForm/index.js +7 -0
- package/dist/elements/public/ClientForm/index.js.map +1 -0
- package/dist/elements/public/ClientForm/types.d.ts +35 -0
- package/dist/elements/public/ClientForm/types.js +2 -0
- package/dist/elements/public/ClientForm/types.js.map +1 -0
- package/dist/elements/public/FilterAttributeCard/FilterAttributeCard.d.ts +31 -0
- package/dist/elements/public/FilterAttributeCard/FilterAttributeCard.js +113 -0
- package/dist/elements/public/FilterAttributeCard/FilterAttributeCard.js.map +1 -0
- package/dist/elements/public/FilterAttributeCard/index.d.ts +4 -0
- package/dist/elements/public/FilterAttributeCard/index.js +6 -0
- package/dist/elements/public/FilterAttributeCard/index.js.map +1 -0
- package/dist/elements/public/FilterAttributeCard/types.d.ts +3 -0
- package/dist/elements/public/FilterAttributeCard/types.js +2 -0
- package/dist/elements/public/FilterAttributeCard/types.js.map +1 -0
- package/dist/elements/public/FilterAttributeForm/FilterAttributeForm.d.ts +46 -0
- package/dist/elements/public/FilterAttributeForm/FilterAttributeForm.js +131 -0
- package/dist/elements/public/FilterAttributeForm/FilterAttributeForm.js.map +1 -0
- package/dist/elements/public/FilterAttributeForm/index.d.ts +6 -0
- package/dist/elements/public/FilterAttributeForm/index.js +8 -0
- package/dist/elements/public/FilterAttributeForm/index.js.map +1 -0
- package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/InternalFilterAttributeFormActionControl.d.ts +5 -0
- package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/InternalFilterAttributeFormActionControl.js +34 -0
- package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/InternalFilterAttributeFormActionControl.js.map +1 -0
- package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/index.d.ts +5 -0
- package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/index.js +7 -0
- package/dist/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/index.js.map +1 -0
- package/dist/elements/public/FilterAttributeForm/types.d.ts +14 -0
- package/dist/elements/public/FilterAttributeForm/types.js +2 -0
- package/dist/elements/public/FilterAttributeForm/types.js.map +1 -0
- package/dist/elements/public/PasskeyCard/PasskeyCard.d.ts +22 -0
- package/dist/elements/public/PasskeyCard/PasskeyCard.js +42 -0
- package/dist/elements/public/PasskeyCard/PasskeyCard.js.map +1 -0
- package/dist/elements/public/PasskeyCard/index.d.ts +3 -0
- package/dist/elements/public/PasskeyCard/index.js +5 -0
- package/dist/elements/public/PasskeyCard/index.js.map +1 -0
- package/dist/elements/public/PasskeyCard/types.d.ts +33 -0
- package/dist/elements/public/PasskeyCard/types.js +2 -0
- package/dist/elements/public/PasskeyCard/types.js.map +1 -0
- package/dist/elements/public/PasskeyForm/PasskeyForm.d.ts +36 -0
- package/dist/elements/public/PasskeyForm/PasskeyForm.js +52 -0
- package/dist/elements/public/PasskeyForm/PasskeyForm.js.map +1 -0
- package/dist/elements/public/PasskeyForm/index.d.ts +6 -0
- package/dist/elements/public/PasskeyForm/index.js +8 -0
- package/dist/elements/public/PasskeyForm/index.js.map +1 -0
- package/dist/elements/public/PasskeyForm/types.d.ts +17 -0
- package/dist/elements/public/PasskeyForm/types.js +2 -0
- package/dist/elements/public/PasskeyForm/types.js.map +1 -0
- package/dist/elements/public/TransactionCard/TransactionCard.js +26 -4
- package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
- package/dist/elements/public/TransactionCard/types.d.ts +4 -1
- package/dist/elements/public/TransactionCard/types.js.map +1 -1
- package/dist/elements/public/WebhookCard/WebhookCard.js +5 -17
- package/dist/elements/public/WebhookCard/WebhookCard.js.map +1 -1
- package/dist/elements/public/WebhookCard/index.d.ts +0 -2
- package/dist/elements/public/WebhookCard/index.js +0 -2
- package/dist/elements/public/WebhookCard/index.js.map +1 -1
- package/dist/elements/public/index.d.ts +6 -0
- package/dist/elements/public/index.defined.d.ts +6 -0
- package/dist/elements/public/index.defined.js +6 -0
- package/dist/elements/public/index.defined.js.map +1 -1
- package/dist/elements/public/index.js +6 -0
- package/dist/elements/public/index.js.map +1 -1
- package/dist/mixins/themeable.js +4 -0
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +5 -3
- package/dist/cdn/shared-49d978e1.js +0 -1
- package/dist/cdn/shared-509a2f52.js +0 -1
- package/dist/cdn/shared-9e60ef60.js +0 -1
- package/dist/cdn/shared-bb009254.js +0 -1
- package/dist/cdn/shared-bfdbd733.js +0 -1
- package/dist/cdn/shared-c7f56c90.js +0 -1
- package/dist/cdn/shared-e41e53c0.js +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import "../../internal/InternalTextAreaControl/index.js";
|
|
2
|
+
import "../../internal/InternalTextControl/index.js";
|
|
3
|
+
import "../../internal/InternalForm/index.js";
|
|
4
|
+
import { ClientForm } from "./ClientForm.js";
|
|
5
|
+
customElements.define('foxy-client-form', ClientForm);
|
|
6
|
+
export { ClientForm };
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ClientForm/index.ts"],"names":[],"mappings":"AAAA,yDAAsD;AACtD,qDAAkD;AAClD,8CAA2C;AAE3C,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import '../../internal/InternalTextAreaControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport { ClientForm } from './ClientForm';\n\ncustomElements.define('foxy-client-form', ClientForm);\n\nexport { ClientForm };\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ClientForm } from './ClientForm';
|
|
2
|
+
import type { Renderer } from '../../../mixins/configurable';
|
|
3
|
+
import type { Resource } from '@foxy.io/sdk/core';
|
|
4
|
+
import type { Rels } from '@foxy.io/sdk/backend';
|
|
5
|
+
export declare type Data = Resource<Rels.Client>;
|
|
6
|
+
export declare type Templates = {
|
|
7
|
+
'client-id:before'?: Renderer<ClientForm>;
|
|
8
|
+
'client-id:after'?: Renderer<ClientForm>;
|
|
9
|
+
'client-secret:before'?: Renderer<ClientForm>;
|
|
10
|
+
'client-secret:after'?: Renderer<ClientForm>;
|
|
11
|
+
'redirect-uri:before'?: Renderer<ClientForm>;
|
|
12
|
+
'redirect-uri:after'?: Renderer<ClientForm>;
|
|
13
|
+
'project-name:before'?: Renderer<ClientForm>;
|
|
14
|
+
'project-name:after'?: Renderer<ClientForm>;
|
|
15
|
+
'project-description:before'?: Renderer<ClientForm>;
|
|
16
|
+
'project-description:after'?: Renderer<ClientForm>;
|
|
17
|
+
'company-name:before'?: Renderer<ClientForm>;
|
|
18
|
+
'company-name:after'?: Renderer<ClientForm>;
|
|
19
|
+
'company-url:before'?: Renderer<ClientForm>;
|
|
20
|
+
'company-url:after'?: Renderer<ClientForm>;
|
|
21
|
+
'company-logo:before'?: Renderer<ClientForm>;
|
|
22
|
+
'company-logo:after'?: Renderer<ClientForm>;
|
|
23
|
+
'contact-name:before'?: Renderer<ClientForm>;
|
|
24
|
+
'contact-name:after'?: Renderer<ClientForm>;
|
|
25
|
+
'contact-email:before'?: Renderer<ClientForm>;
|
|
26
|
+
'contact-email:after'?: Renderer<ClientForm>;
|
|
27
|
+
'contact-phone:before'?: Renderer<ClientForm>;
|
|
28
|
+
'contact-phone:after'?: Renderer<ClientForm>;
|
|
29
|
+
'timestamps:before'?: Renderer<ClientForm>;
|
|
30
|
+
'timestamps:after'?: Renderer<ClientForm>;
|
|
31
|
+
'create:before'?: Renderer<ClientForm>;
|
|
32
|
+
'create:after'?: Renderer<ClientForm>;
|
|
33
|
+
'delete:before'?: Renderer<ClientForm>;
|
|
34
|
+
'delete:after'?: Renderer<ClientForm>;
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/ClientForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ClientForm } from './ClientForm';\nimport type { Renderer } from '../../../mixins/configurable';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type Data = Resource<Rels.Client>;\n\nexport type Templates = {\n 'client-id:before'?: Renderer<ClientForm>;\n 'client-id:after'?: Renderer<ClientForm>;\n 'client-secret:before'?: Renderer<ClientForm>;\n 'client-secret:after'?: Renderer<ClientForm>;\n 'redirect-uri:before'?: Renderer<ClientForm>;\n 'redirect-uri:after'?: Renderer<ClientForm>;\n 'project-name:before'?: Renderer<ClientForm>;\n 'project-name:after'?: Renderer<ClientForm>;\n 'project-description:before'?: Renderer<ClientForm>;\n 'project-description:after'?: Renderer<ClientForm>;\n 'company-name:before'?: Renderer<ClientForm>;\n 'company-name:after'?: Renderer<ClientForm>;\n 'company-url:before'?: Renderer<ClientForm>;\n 'company-url:after'?: Renderer<ClientForm>;\n 'company-logo:before'?: Renderer<ClientForm>;\n 'company-logo:after'?: Renderer<ClientForm>;\n 'contact-name:before'?: Renderer<ClientForm>;\n 'contact-name:after'?: Renderer<ClientForm>;\n 'contact-email:before'?: Renderer<ClientForm>;\n 'contact-email:after'?: Renderer<ClientForm>;\n 'contact-phone:before'?: Renderer<ClientForm>;\n 'contact-phone:after'?: Renderer<ClientForm>;\n 'timestamps:before'?: Renderer<ClientForm>;\n 'timestamps:after'?: Renderer<ClientForm>;\n 'create:before'?: Renderer<ClientForm>;\n 'create:after'?: Renderer<ClientForm>;\n 'delete:before'?: Renderer<ClientForm>;\n 'delete:after'?: Renderer<ClientForm>;\n};\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PropertyDeclarations } from 'lit-element';
|
|
2
|
+
import type { TemplateResult } from 'lit-html';
|
|
3
|
+
import type { Data } from './types';
|
|
4
|
+
import { InternalCard } from '../../internal/InternalCard/InternalCard';
|
|
5
|
+
declare const Base: typeof InternalCard & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
6
|
+
defaultNS: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Card element displaying a saved filter in Admin. Saved filters
|
|
10
|
+
* are powered by the Bookmark attribute format that allows adding custom sidebar items
|
|
11
|
+
* to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a
|
|
12
|
+
* relative URL of the bookmarked Admin page in the value.
|
|
13
|
+
*
|
|
14
|
+
* @element foxy-filter-attribute-card
|
|
15
|
+
* @since 1.24.0
|
|
16
|
+
*/
|
|
17
|
+
export declare class FilterAttributeCard extends Base<Data> {
|
|
18
|
+
static readonly countRefreshInterval: number;
|
|
19
|
+
static readonly filterQueryKey: string;
|
|
20
|
+
static readonly filterNameKey: string;
|
|
21
|
+
static get properties(): PropertyDeclarations;
|
|
22
|
+
getCountLoaderHref: ((value: string) => string) | null;
|
|
23
|
+
private readonly __countLoaderId;
|
|
24
|
+
private __refreshTimeout;
|
|
25
|
+
disconnectedCallback(): void;
|
|
26
|
+
updated(changes: Map<keyof this, unknown>): void;
|
|
27
|
+
render(): TemplateResult;
|
|
28
|
+
private __getCountLoader;
|
|
29
|
+
private __getValueParam;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { TranslatableMixin } from "../../../mixins/translatable.js";
|
|
2
|
+
import { InternalCard } from "../../internal/InternalCard/InternalCard.js";
|
|
3
|
+
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
4
|
+
import { classMap } from "../../../utils/class-map.js";
|
|
5
|
+
import { decode } from 'html-entities';
|
|
6
|
+
import { html } from 'lit-html';
|
|
7
|
+
const NS = 'filter-attribute-card';
|
|
8
|
+
const Base = TranslatableMixin(InternalCard, NS);
|
|
9
|
+
/**
|
|
10
|
+
* Card element displaying a saved filter in Admin. Saved filters
|
|
11
|
+
* are powered by the Bookmark attribute format that allows adding custom sidebar items
|
|
12
|
+
* to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a
|
|
13
|
+
* relative URL of the bookmarked Admin page in the value.
|
|
14
|
+
*
|
|
15
|
+
* @element foxy-filter-attribute-card
|
|
16
|
+
* @since 1.24.0
|
|
17
|
+
*/
|
|
18
|
+
export class FilterAttributeCard extends Base {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.getCountLoaderHref = null;
|
|
22
|
+
this.__countLoaderId = 'countLoader';
|
|
23
|
+
this.__refreshTimeout = null;
|
|
24
|
+
}
|
|
25
|
+
static get properties() {
|
|
26
|
+
return {
|
|
27
|
+
...super.properties,
|
|
28
|
+
countRefreshInterval: { attribute: 'count-refresh-interval', type: Number },
|
|
29
|
+
getCountLoaderHref: { attribute: false },
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
disconnectedCallback() {
|
|
33
|
+
super.disconnectedCallback();
|
|
34
|
+
if (typeof this.__refreshTimeout === 'number')
|
|
35
|
+
clearTimeout(this.__refreshTimeout);
|
|
36
|
+
}
|
|
37
|
+
updated(changes) {
|
|
38
|
+
super.updated(changes);
|
|
39
|
+
if (typeof this.__refreshTimeout !== 'number') {
|
|
40
|
+
const constructor = this.constructor;
|
|
41
|
+
const interval = constructor.countRefreshInterval;
|
|
42
|
+
this.__refreshTimeout = setTimeout(() => { var _a; return (_a = this.__getCountLoader()) === null || _a === void 0 ? void 0 : _a.refresh(); }, interval);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
render() {
|
|
46
|
+
var _a, _b;
|
|
47
|
+
const constructor = this.constructor;
|
|
48
|
+
const count = (_b = (_a = this.__getCountLoader()) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.total_items;
|
|
49
|
+
let countUrl;
|
|
50
|
+
try {
|
|
51
|
+
if (this.data && this.getCountLoaderHref) {
|
|
52
|
+
countUrl = new URL(this.getCountLoaderHref(decode(this.data.value)));
|
|
53
|
+
countUrl.searchParams.set('limit', '1');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (_c) {
|
|
57
|
+
countUrl = undefined;
|
|
58
|
+
}
|
|
59
|
+
return html `
|
|
60
|
+
<foxy-nucleon
|
|
61
|
+
infer=""
|
|
62
|
+
href=${ifDefined(countUrl === null || countUrl === void 0 ? void 0 : countUrl.toString())}
|
|
63
|
+
id=${this.__countLoaderId}
|
|
64
|
+
@update=${() => this.requestUpdate()}
|
|
65
|
+
>
|
|
66
|
+
</foxy-nucleon>
|
|
67
|
+
|
|
68
|
+
<div
|
|
69
|
+
class=${classMap({
|
|
70
|
+
'transition-colors flex gap-s font-medium text-m leading-xs rounded-s': true,
|
|
71
|
+
'bg-contrast-5': !this.in('fail') && !this.data,
|
|
72
|
+
'bg-error-10': this.in('fail'),
|
|
73
|
+
})}
|
|
74
|
+
>
|
|
75
|
+
<span
|
|
76
|
+
class=${classMap({
|
|
77
|
+
'transition-opacity truncate min-w-0': true,
|
|
78
|
+
'opacity-0': !this.data,
|
|
79
|
+
})}
|
|
80
|
+
>
|
|
81
|
+
${this.__getValueParam(constructor.filterNameKey) ||
|
|
82
|
+
html `<foxy-i18n infer="" key="no_name"></foxy-i18n>`}
|
|
83
|
+
</span>
|
|
84
|
+
|
|
85
|
+
<span
|
|
86
|
+
class=${classMap({
|
|
87
|
+
'transition-opacity bg-contrast-5 px-xs rounded-s': true,
|
|
88
|
+
'opacity-0': !this.data || typeof count !== 'number',
|
|
89
|
+
})}
|
|
90
|
+
>
|
|
91
|
+
${count !== null && count !== void 0 ? count : 0}
|
|
92
|
+
</span>
|
|
93
|
+
</div>
|
|
94
|
+
`;
|
|
95
|
+
}
|
|
96
|
+
__getCountLoader() {
|
|
97
|
+
return this.renderRoot.querySelector(`#${this.__countLoaderId}`);
|
|
98
|
+
}
|
|
99
|
+
__getValueParam(key) {
|
|
100
|
+
var _a, _b, _c;
|
|
101
|
+
try {
|
|
102
|
+
const url = new URL(decode((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ''), 'https://example.com');
|
|
103
|
+
return (_c = url.searchParams.get(key)) !== null && _c !== void 0 ? _c : '';
|
|
104
|
+
}
|
|
105
|
+
catch (_d) {
|
|
106
|
+
return '';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
FilterAttributeCard.countRefreshInterval = 60000;
|
|
111
|
+
FilterAttributeCard.filterQueryKey = 'filter_query';
|
|
112
|
+
FilterAttributeCard.filterNameKey = 'filter_name';
|
|
113
|
+
//# sourceMappingURL=FilterAttributeCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterAttributeCard.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeCard/FilterAttributeCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { decode } from 'html-entities';\nimport { html } from 'lit-html';\n\nconst NS = 'filter-attribute-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\n/**\n * Card element displaying a saved filter in Admin. Saved filters\n * are powered by the Bookmark attribute format that allows adding custom sidebar items\n * to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a\n * relative URL of the bookmarked Admin page in the value.\n *\n * @element foxy-filter-attribute-card\n * @since 1.24.0\n */\nexport class FilterAttributeCard extends Base<Data> {\n static readonly countRefreshInterval: number = 60000;\n\n static readonly filterQueryKey: string = 'filter_query';\n\n static readonly filterNameKey: string = 'filter_name';\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n countRefreshInterval: { attribute: 'count-refresh-interval', type: Number },\n getCountLoaderHref: { attribute: false },\n };\n }\n\n getCountLoaderHref: ((value: string) => string) | null = null;\n\n private readonly __countLoaderId = 'countLoader';\n\n private __refreshTimeout: NodeJS.Timeout | null = null;\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (typeof this.__refreshTimeout === 'number') clearTimeout(this.__refreshTimeout);\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (typeof this.__refreshTimeout !== 'number') {\n const constructor = this.constructor as typeof FilterAttributeCard;\n const interval = constructor.countRefreshInterval;\n this.__refreshTimeout = setTimeout(() => this.__getCountLoader()?.refresh(), interval);\n }\n }\n\n render(): TemplateResult {\n const constructor = this.constructor as typeof FilterAttributeCard;\n const count = this.__getCountLoader()?.data?.total_items;\n let countUrl: URL | undefined;\n\n try {\n if (this.data && this.getCountLoaderHref) {\n countUrl = new URL(this.getCountLoaderHref(decode(this.data.value)));\n countUrl.searchParams.set('limit', '1');\n }\n } catch {\n countUrl = undefined;\n }\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(countUrl?.toString())}\n id=${this.__countLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <div\n class=${classMap({\n 'transition-colors flex gap-s font-medium text-m leading-xs rounded-s': true,\n 'bg-contrast-5': !this.in('fail') && !this.data,\n 'bg-error-10': this.in('fail'),\n })}\n >\n <span\n class=${classMap({\n 'transition-opacity truncate min-w-0': true,\n 'opacity-0': !this.data,\n })}\n >\n ${this.__getValueParam(constructor.filterNameKey) ||\n html`<foxy-i18n infer=\"\" key=\"no_name\"></foxy-i18n>`}\n </span>\n\n <span\n class=${classMap({\n 'transition-opacity bg-contrast-5 px-xs rounded-s': true,\n 'opacity-0': !this.data || typeof count !== 'number',\n })}\n >\n ${count ?? 0}\n </span>\n </div>\n `;\n }\n\n private __getCountLoader() {\n type AnyCollection = NucleonElement<Resource<Rels.Attributes>>;\n type Loader = Omit<AnyCollection, '_embedded'> & { _embedded: unknown };\n return this.renderRoot.querySelector<Loader>(`#${this.__countLoaderId}`);\n }\n\n private __getValueParam(key: string) {\n try {\n const url = new URL(decode(this.data?.value ?? ''), 'https://example.com');\n return url.searchParams.get(key) ?? '';\n } catch {\n return '';\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import "../../internal/InternalCard/index.js";
|
|
2
|
+
import "../NucleonElement/index.js";
|
|
3
|
+
import { FilterAttributeCard } from "./FilterAttributeCard.js";
|
|
4
|
+
customElements.define('foxy-filter-attribute-card', FilterAttributeCard);
|
|
5
|
+
export { FilterAttributeCard };
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeCard/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAC3C,oCAAiC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,cAAc,CAAC,MAAM,CAAC,4BAA4B,EAAE,mBAAmB,CAAC,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalCard/index';\nimport '../NucleonElement/index';\n\nimport { FilterAttributeCard } from './FilterAttributeCard';\n\ncustomElements.define('foxy-filter-attribute-card', FilterAttributeCard);\n\nexport { FilterAttributeCard };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeCard/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type Data = Resource<Rels.Attribute>;\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { PropertyDeclarations } from 'lit-element';
|
|
2
|
+
import type { TemplateResult } from 'lit-html';
|
|
3
|
+
import type { Option } from '../QueryBuilder/types';
|
|
4
|
+
import type { Data } from './types';
|
|
5
|
+
import { BooleanSelector } from '@foxy.io/sdk/core';
|
|
6
|
+
import { InternalForm } from '../../internal/InternalForm/InternalForm';
|
|
7
|
+
declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
8
|
+
defaultNS: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Form element for creating and editing saved filters in Admin. Saved filters
|
|
12
|
+
* are powered by the Bookmark attribute format that allows adding custom sidebar items
|
|
13
|
+
* to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a
|
|
14
|
+
* relative URL of the bookmarked Admin page in the value.
|
|
15
|
+
*
|
|
16
|
+
* @slot filter-query:before
|
|
17
|
+
* @slot filter-query:after
|
|
18
|
+
* @slot filter-name:before
|
|
19
|
+
* @slot filter-name:after
|
|
20
|
+
* @slot action:before
|
|
21
|
+
* @slot action:after
|
|
22
|
+
*
|
|
23
|
+
* @element foxy-filter-attribute-form
|
|
24
|
+
* @since 1.24.0
|
|
25
|
+
*/
|
|
26
|
+
export declare class FilterAttributeForm extends Base<Data> {
|
|
27
|
+
static readonly attributeVisibility: Data['visibility'];
|
|
28
|
+
static readonly filterQueryKey: string;
|
|
29
|
+
static readonly attributeName: string;
|
|
30
|
+
static readonly filterNameKey: string;
|
|
31
|
+
static get properties(): PropertyDeclarations;
|
|
32
|
+
/** Admin page pathname. */
|
|
33
|
+
pathname: string | null;
|
|
34
|
+
/** Filter options passed down to `QueryBuilder.options.` */
|
|
35
|
+
options: Option[];
|
|
36
|
+
private readonly __filterNameGetValue;
|
|
37
|
+
private readonly __filterNameSetValue;
|
|
38
|
+
get hiddenSelector(): BooleanSelector;
|
|
39
|
+
renderBody(): TemplateResult;
|
|
40
|
+
updated(changes: Map<keyof this, unknown>): void;
|
|
41
|
+
submit(): void;
|
|
42
|
+
private __getValueParam;
|
|
43
|
+
private __setValueParam;
|
|
44
|
+
private __handleFilterQueryChange;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { TranslatableMixin } from "../../../mixins/translatable.js";
|
|
2
|
+
import { BooleanSelector } from '@foxy.io/sdk/core';
|
|
3
|
+
import { encode, decode } from 'html-entities';
|
|
4
|
+
import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
|
|
5
|
+
import { html } from 'lit-html';
|
|
6
|
+
const NS = 'filter-attribute-form';
|
|
7
|
+
const Base = TranslatableMixin(InternalForm, NS);
|
|
8
|
+
/**
|
|
9
|
+
* Form element for creating and editing saved filters in Admin. Saved filters
|
|
10
|
+
* are powered by the Bookmark attribute format that allows adding custom sidebar items
|
|
11
|
+
* to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a
|
|
12
|
+
* relative URL of the bookmarked Admin page in the value.
|
|
13
|
+
*
|
|
14
|
+
* @slot filter-query:before
|
|
15
|
+
* @slot filter-query:after
|
|
16
|
+
* @slot filter-name:before
|
|
17
|
+
* @slot filter-name:after
|
|
18
|
+
* @slot action:before
|
|
19
|
+
* @slot action:after
|
|
20
|
+
*
|
|
21
|
+
* @element foxy-filter-attribute-form
|
|
22
|
+
* @since 1.24.0
|
|
23
|
+
*/
|
|
24
|
+
export class FilterAttributeForm extends Base {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
27
|
+
/** Admin page pathname. */
|
|
28
|
+
this.pathname = null;
|
|
29
|
+
/** Filter options passed down to `QueryBuilder.options.` */
|
|
30
|
+
this.options = [];
|
|
31
|
+
this.__filterNameGetValue = () => {
|
|
32
|
+
const constructor = this.constructor;
|
|
33
|
+
return this.__getValueParam(constructor.filterNameKey);
|
|
34
|
+
};
|
|
35
|
+
this.__filterNameSetValue = (v) => {
|
|
36
|
+
const constructor = this.constructor;
|
|
37
|
+
this.__setValueParam(constructor.filterNameKey, v);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
static get properties() {
|
|
41
|
+
return {
|
|
42
|
+
...super.properties,
|
|
43
|
+
pathname: {},
|
|
44
|
+
options: { type: Array },
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
get hiddenSelector() {
|
|
48
|
+
const alwaysHidden = [];
|
|
49
|
+
const constructor = this.constructor;
|
|
50
|
+
const filterQuery = this.__getValueParam(constructor.filterQueryKey);
|
|
51
|
+
const hasData = !!this.data;
|
|
52
|
+
if (!hasData)
|
|
53
|
+
alwaysHidden.push('filter-name');
|
|
54
|
+
if (!filterQuery && !hasData)
|
|
55
|
+
alwaysHidden.push('action');
|
|
56
|
+
return new BooleanSelector(`${alwaysHidden.join(' ')} ${super.hiddenSelector}`.trim());
|
|
57
|
+
}
|
|
58
|
+
renderBody() {
|
|
59
|
+
const constructor = this.constructor;
|
|
60
|
+
return html `
|
|
61
|
+
<foxy-query-builder
|
|
62
|
+
infer="filter-query"
|
|
63
|
+
.options=${this.options}
|
|
64
|
+
.value=${this.__getValueParam(constructor.filterQueryKey)}
|
|
65
|
+
@change=${this.__handleFilterQueryChange}
|
|
66
|
+
>
|
|
67
|
+
</foxy-query-builder>
|
|
68
|
+
|
|
69
|
+
<foxy-internal-text-control
|
|
70
|
+
infer="filter-name"
|
|
71
|
+
.getValue=${this.__filterNameGetValue}
|
|
72
|
+
.setValue=${this.__filterNameSetValue}
|
|
73
|
+
>
|
|
74
|
+
</foxy-internal-text-control>
|
|
75
|
+
|
|
76
|
+
<foxy-internal-filter-attribute-form-action-control infer="action">
|
|
77
|
+
</foxy-internal-filter-attribute-form-action-control>
|
|
78
|
+
`;
|
|
79
|
+
}
|
|
80
|
+
updated(changes) {
|
|
81
|
+
var _a;
|
|
82
|
+
super.updated(changes);
|
|
83
|
+
if (typeof this.form.value === 'string') {
|
|
84
|
+
const url = new URL(decode(this.form.value), 'https://example.com');
|
|
85
|
+
url.pathname = (_a = this.pathname) !== null && _a !== void 0 ? _a : '';
|
|
86
|
+
const value = encode(url.toString().substring(url.origin.length));
|
|
87
|
+
if (value !== this.form.value)
|
|
88
|
+
this.edit({ value });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
submit() {
|
|
92
|
+
const constructor = this.constructor;
|
|
93
|
+
this.edit({
|
|
94
|
+
visibility: constructor.attributeVisibility,
|
|
95
|
+
name: constructor.attributeName,
|
|
96
|
+
});
|
|
97
|
+
super.submit();
|
|
98
|
+
}
|
|
99
|
+
__getValueParam(key) {
|
|
100
|
+
var _a, _b;
|
|
101
|
+
try {
|
|
102
|
+
const url = new URL(decode((_a = this.form.value) !== null && _a !== void 0 ? _a : ''), 'https://example.com');
|
|
103
|
+
return (_b = url.searchParams.get(key)) !== null && _b !== void 0 ? _b : '';
|
|
104
|
+
}
|
|
105
|
+
catch (_c) {
|
|
106
|
+
return '';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
__setValueParam(key, value) {
|
|
110
|
+
var _a;
|
|
111
|
+
try {
|
|
112
|
+
const url = new URL(decode((_a = this.form.value) !== null && _a !== void 0 ? _a : ''), 'https://example.com');
|
|
113
|
+
url.searchParams.set(key, value);
|
|
114
|
+
this.edit({ value: encode(url.toString().substring(url.origin.length)) });
|
|
115
|
+
}
|
|
116
|
+
catch (_b) {
|
|
117
|
+
// ignore
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
__handleFilterQueryChange(evt) {
|
|
121
|
+
var _a;
|
|
122
|
+
const constructor = this.constructor;
|
|
123
|
+
const element = evt.currentTarget;
|
|
124
|
+
this.__setValueParam(constructor.filterQueryKey, (_a = element.value) !== null && _a !== void 0 ? _a : '');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
FilterAttributeForm.attributeVisibility = 'restricted';
|
|
128
|
+
FilterAttributeForm.filterQueryKey = 'filter_query';
|
|
129
|
+
FilterAttributeForm.attributeName = 'foxy-admin-bookmark';
|
|
130
|
+
FilterAttributeForm.filterNameKey = 'filter_name';
|
|
131
|
+
//# sourceMappingURL=FilterAttributeForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterAttributeForm.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeForm/FilterAttributeForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { QueryBuilder } from '../QueryBuilder/QueryBuilder';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { encode, decode } from 'html-entities';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nconst NS = 'filter-attribute-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for creating and editing saved filters in Admin. Saved filters\n * are powered by the Bookmark attribute format that allows adding custom sidebar items\n * to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a\n * relative URL of the bookmarked Admin page in the value.\n *\n * @slot filter-query:before\n * @slot filter-query:after\n * @slot filter-name:before\n * @slot filter-name:after\n * @slot action:before\n * @slot action:after\n *\n * @element foxy-filter-attribute-form\n * @since 1.24.0\n */\nexport class FilterAttributeForm extends Base<Data> {\n static readonly attributeVisibility: Data['visibility'] = 'restricted';\n\n static readonly filterQueryKey: string = 'filter_query';\n\n static readonly attributeName: string = 'foxy-admin-bookmark';\n\n static readonly filterNameKey: string = 'filter_name';\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n pathname: {},\n options: { type: Array },\n };\n }\n\n /** Admin page pathname. */\n pathname: string | null = null;\n\n /** Filter options passed down to `QueryBuilder.options.` */\n options: Option[] = [];\n\n private readonly __filterNameGetValue = () => {\n const constructor = this.constructor as typeof FilterAttributeForm;\n return this.__getValueParam(constructor.filterNameKey);\n };\n\n private readonly __filterNameSetValue = (v: string) => {\n const constructor = this.constructor as typeof FilterAttributeForm;\n this.__setValueParam(constructor.filterNameKey, v);\n };\n\n get hiddenSelector(): BooleanSelector {\n const alwaysHidden: string[] = [];\n const constructor = this.constructor as typeof FilterAttributeForm;\n const filterQuery = this.__getValueParam(constructor.filterQueryKey);\n const hasData = !!this.data;\n\n if (!hasData) alwaysHidden.push('filter-name');\n if (!filterQuery && !hasData) alwaysHidden.push('action');\n\n return new BooleanSelector(`${alwaysHidden.join(' ')} ${super.hiddenSelector}`.trim());\n }\n\n renderBody(): TemplateResult {\n const constructor = this.constructor as typeof FilterAttributeForm;\n\n return html`\n <foxy-query-builder\n infer=\"filter-query\"\n .options=${this.options}\n .value=${this.__getValueParam(constructor.filterQueryKey)}\n @change=${this.__handleFilterQueryChange}\n >\n </foxy-query-builder>\n\n <foxy-internal-text-control\n infer=\"filter-name\"\n .getValue=${this.__filterNameGetValue}\n .setValue=${this.__filterNameSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-filter-attribute-form-action-control infer=\"action\">\n </foxy-internal-filter-attribute-form-action-control>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (typeof this.form.value === 'string') {\n const url = new URL(decode(this.form.value), 'https://example.com');\n url.pathname = this.pathname ?? '';\n const value = encode(url.toString().substring(url.origin.length));\n if (value !== this.form.value) this.edit({ value });\n }\n }\n\n submit(): void {\n const constructor = this.constructor as typeof FilterAttributeForm;\n\n this.edit({\n visibility: constructor.attributeVisibility,\n name: constructor.attributeName,\n });\n\n super.submit();\n }\n\n private __getValueParam(key: string) {\n try {\n const url = new URL(decode(this.form.value ?? ''), 'https://example.com');\n return url.searchParams.get(key) ?? '';\n } catch {\n return '';\n }\n }\n\n private __setValueParam(key: string, value: string) {\n try {\n const url = new URL(decode(this.form.value ?? ''), 'https://example.com');\n url.searchParams.set(key, value);\n this.edit({ value: encode(url.toString().substring(url.origin.length)) });\n } catch {\n // ignore\n }\n }\n\n private __handleFilterQueryChange(evt: CustomEvent) {\n const constructor = this.constructor as typeof FilterAttributeForm;\n const element = evt.currentTarget as QueryBuilder;\n this.__setValueParam(constructor.filterQueryKey, element.value ?? '');\n }\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import './internal/InternalFilterAttributeFormActionControl/index';
|
|
2
|
+
import '../../internal/InternalTextControl/index';
|
|
3
|
+
import '../../internal/InternalForm/index';
|
|
4
|
+
import '../QueryBuilder/index';
|
|
5
|
+
import { FilterAttributeForm } from './FilterAttributeForm';
|
|
6
|
+
export { FilterAttributeForm };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "./internal/InternalFilterAttributeFormActionControl/index.js";
|
|
2
|
+
import "../../internal/InternalTextControl/index.js";
|
|
3
|
+
import "../../internal/InternalForm/index.js";
|
|
4
|
+
import "../QueryBuilder/index.js";
|
|
5
|
+
import { FilterAttributeForm } from "./FilterAttributeForm.js";
|
|
6
|
+
customElements.define('foxy-filter-attribute-form', FilterAttributeForm);
|
|
7
|
+
export { FilterAttributeForm };
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,qDAAkD;AAClD,8CAA2C;AAC3C,kCAA+B;AAE/B,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,cAAc,CAAC,MAAM,CAAC,4BAA4B,EAAE,mBAAmB,CAAC,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["import './internal/InternalFilterAttributeFormActionControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\nimport '../QueryBuilder/index';\n\nimport { FilterAttributeForm } from './FilterAttributeForm';\n\ncustomElements.define('foxy-filter-attribute-form', FilterAttributeForm);\n\nexport { FilterAttributeForm };\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
|
|
2
|
+
import { html } from 'lit-html';
|
|
3
|
+
export class InternalFilterAttributeFormActionControl extends InternalControl {
|
|
4
|
+
renderControl() {
|
|
5
|
+
const nucleon = this.nucleon;
|
|
6
|
+
const hasChanges = nucleon === null || nucleon === void 0 ? void 0 : nucleon.in({ idle: { snapshot: 'dirty' } });
|
|
7
|
+
const hasData = !!(nucleon === null || nucleon === void 0 ? void 0 : nucleon.data);
|
|
8
|
+
return html `
|
|
9
|
+
<div class="grid grid-cols-2 gap-m">
|
|
10
|
+
${hasData && hasChanges
|
|
11
|
+
? html `
|
|
12
|
+
<vaadin-button
|
|
13
|
+
theme="contrast"
|
|
14
|
+
?disabled=${this.disabled}
|
|
15
|
+
@click=${() => nucleon === null || nucleon === void 0 ? void 0 : nucleon.undo()}
|
|
16
|
+
>
|
|
17
|
+
<foxy-i18n infer="" key="reset"></foxy-i18n>
|
|
18
|
+
</vaadin-button>
|
|
19
|
+
`
|
|
20
|
+
: ''}
|
|
21
|
+
<vaadin-button
|
|
22
|
+
theme=${hasData ? (hasChanges ? 'secondary' : 'error') : 'success'}
|
|
23
|
+
class=${hasData && hasChanges ? '' : 'col-span-2'}
|
|
24
|
+
?disabled=${this.disabled}
|
|
25
|
+
@click=${() => (!hasData || hasChanges ? nucleon === null || nucleon === void 0 ? void 0 : nucleon.submit() : nucleon === null || nucleon === void 0 ? void 0 : nucleon.delete())}
|
|
26
|
+
>
|
|
27
|
+
<foxy-i18n infer="" key=${hasData ? (hasChanges ? 'update' : 'delete') : 'create'}>
|
|
28
|
+
</foxy-i18n>
|
|
29
|
+
</vaadin-button>
|
|
30
|
+
</div>
|
|
31
|
+
`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=InternalFilterAttributeFormActionControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalFilterAttributeFormActionControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/InternalFilterAttributeFormActionControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,wCAAyC,SAAQ,eAAe;IAC3E,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAqC,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAA,CAAC;QAEhC,OAAO,IAAI,CAAA;;UAEL,OAAO,IAAI,UAAU;YACrB,CAAC,CAAC,IAAI,CAAA;;;4BAGY,IAAI,CAAC,QAAQ;yBAChB,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;;;;aAIjC;YACH,CAAC,CAAC,EAAE;;kBAEI,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;kBAC1D,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;sBACrC,IAAI,CAAC,QAAQ;mBAChB,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,GAAG,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC;;oCAErD,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;;;;KAItF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { FilterAttributeForm } from '../../FilterAttributeForm';\nimport type { TemplateResult } from 'lit-html';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { html } from 'lit-html';\n\nexport class InternalFilterAttributeFormActionControl extends InternalControl {\n renderControl(): TemplateResult {\n const nucleon = this.nucleon as FilterAttributeForm | null;\n const hasChanges = nucleon?.in({ idle: { snapshot: 'dirty' } });\n const hasData = !!nucleon?.data;\n\n return html`\n <div class=\"grid grid-cols-2 gap-m\">\n ${hasData && hasChanges\n ? html`\n <vaadin-button\n theme=\"contrast\"\n ?disabled=${this.disabled}\n @click=${() => nucleon?.undo()}\n >\n <foxy-i18n infer=\"\" key=\"reset\"></foxy-i18n>\n </vaadin-button>\n `\n : ''}\n <vaadin-button\n theme=${hasData ? (hasChanges ? 'secondary' : 'error') : 'success'}\n class=${hasData && hasChanges ? '' : 'col-span-2'}\n ?disabled=${this.disabled}\n @click=${() => (!hasData || hasChanges ? nucleon?.submit() : nucleon?.delete())}\n >\n <foxy-i18n infer=\"\" key=${hasData ? (hasChanges ? 'update' : 'delete') : 'create'}>\n </foxy-i18n>\n </vaadin-button>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import '../../../../internal/InternalControl/index';
|
|
2
|
+
import '@vaadin/vaadin-button';
|
|
3
|
+
import '../../../I18n/index';
|
|
4
|
+
import { InternalFilterAttributeFormActionControl as Control } from './InternalFilterAttributeFormActionControl';
|
|
5
|
+
export { Control as InternalFilterAttributeFormActionControl };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import "../../../../internal/InternalControl/index.js";
|
|
2
|
+
import '@vaadin/vaadin-button';
|
|
3
|
+
import "../../../I18n/index.js";
|
|
4
|
+
import { InternalFilterAttributeFormActionControl as Control } from "./InternalFilterAttributeFormActionControl.js";
|
|
5
|
+
customElements.define('foxy-internal-filter-attribute-form-action-control', Control);
|
|
6
|
+
export { Control as InternalFilterAttributeFormActionControl };
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/FilterAttributeForm/internal/InternalFilterAttributeFormActionControl/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,OAAO,uBAAuB,CAAC;AAC/B,gCAA6B;AAE7B,OAAO,EAAE,wCAAwC,IAAI,OAAO,EAAE,sDAAmD;AAEjH,cAAc,CAAC,MAAM,CAAC,oDAAoD,EAAE,OAAO,CAAC,CAAC;AAErF,OAAO,EAAE,OAAO,IAAI,wCAAwC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\nimport '@vaadin/vaadin-button';\nimport '../../../I18n/index';\n\nimport { InternalFilterAttributeFormActionControl as Control } from './InternalFilterAttributeFormActionControl';\n\ncustomElements.define('foxy-internal-filter-attribute-form-action-control', Control);\n\nexport { Control as InternalFilterAttributeFormActionControl };\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FilterAttributeForm } from './FilterAttributeForm';
|
|
2
|
+
import type { Renderer } from '../../../mixins/configurable';
|
|
3
|
+
import type { Resource } from '@foxy.io/sdk/core';
|
|
4
|
+
import type { Rels } from '@foxy.io/sdk/backend';
|
|
5
|
+
export declare type Templates = {
|
|
6
|
+
'filter-query:before': Renderer<FilterAttributeForm>;
|
|
7
|
+
'filter-query:after': Renderer<FilterAttributeForm>;
|
|
8
|
+
'filter-name:before': Renderer<FilterAttributeForm>;
|
|
9
|
+
'filter-name:after': Renderer<FilterAttributeForm>;
|
|
10
|
+
'action:before': Renderer<FilterAttributeForm>;
|
|
11
|
+
'action:after': Renderer<FilterAttributeForm>;
|
|
12
|
+
};
|
|
13
|
+
export declare type Data = Resource<Rels.Attribute>;
|
|
14
|
+
export type { Option } from '../QueryBuilder/types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { FilterAttributeForm } from './FilterAttributeForm';\nimport type { Renderer } from '../../../mixins/configurable';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type Templates = {\n 'filter-query:before': Renderer<FilterAttributeForm>;\n 'filter-query:after': Renderer<FilterAttributeForm>;\n 'filter-name:before': Renderer<FilterAttributeForm>;\n 'filter-name:after': Renderer<FilterAttributeForm>;\n 'action:before': Renderer<FilterAttributeForm>;\n 'action:after': Renderer<FilterAttributeForm>;\n};\n\nexport type Data = Resource<Rels.Attribute>;\n\nexport type { Option } from '../QueryBuilder/types';\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-element';
|
|
2
|
+
import type { Data } from './types';
|
|
3
|
+
import { TwoLineCard } from '../CustomFieldCard/TwoLineCard';
|
|
4
|
+
declare const Base: typeof TwoLineCard & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
5
|
+
defaultNS: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Basic card displaying a saved passkey.
|
|
9
|
+
*
|
|
10
|
+
* @slot title:before
|
|
11
|
+
* @slot title:after
|
|
12
|
+
*
|
|
13
|
+
* @slot subtitle:before
|
|
14
|
+
* @slot subtitle:after
|
|
15
|
+
*
|
|
16
|
+
* @element foxy-passkey-card
|
|
17
|
+
* @since 1.24.0
|
|
18
|
+
*/
|
|
19
|
+
export declare class PasskeyCard extends Base<Data> {
|
|
20
|
+
renderBody(): TemplateResult;
|
|
21
|
+
}
|
|
22
|
+
export {};
|