@foxy.io/elements 1.15.0-beta.8 → 1.16.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 +1 -1
- package/dist/cdn/foxy-address-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-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.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-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 +13 -13
- package/dist/cdn/foxy-customer.js +3 -3
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-donation.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-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-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-i18n.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-payment-card.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +195 -0
- package/dist/cdn/foxy-reports-table.js +41 -0
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +1 -1
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +5 -5
- 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-transaction-card.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/{shared-46ee137f.js → shared-01cbd43c.js} +10 -10
- package/dist/cdn/{shared-b710881a.js → shared-0389f098.js} +2 -2
- package/dist/cdn/{shared-1a67bc75.js → shared-147e571b.js} +4 -4
- package/dist/cdn/{shared-c5de42f7.js → shared-1d2cc2fb.js} +1 -1
- package/dist/cdn/shared-1e57180b.js +1 -0
- package/dist/cdn/{shared-02945b27.js → shared-1fa5f9a9.js} +1 -1
- package/dist/cdn/{shared-07134f93.js → shared-2558daa0.js} +1 -1
- package/dist/cdn/{shared-59e44f29.js → shared-25f67779.js} +1 -1
- package/dist/cdn/{shared-fab8c705.js → shared-269fb742.js} +10 -10
- package/dist/cdn/shared-27277bbb.js +1 -0
- package/dist/cdn/{shared-218ba06e.js → shared-2b3f17cf.js} +1 -1
- package/dist/cdn/{shared-60126eee.js → shared-2f8bf5d9.js} +1 -1
- package/dist/cdn/{shared-a23cf7c8.js → shared-312131d3.js} +1 -1
- package/dist/cdn/{shared-448781f9.js → shared-34f68715.js} +1 -1
- package/dist/cdn/{shared-b5754a42.js → shared-3a06bd7f.js} +1 -1
- package/dist/cdn/{shared-1934524e.js → shared-3c85dcd8.js} +2 -2
- package/dist/cdn/{shared-e209cb55.js → shared-3f26cae2.js} +1 -1
- package/dist/cdn/{shared-a040d79d.js → shared-41272a67.js} +1 -1
- package/dist/cdn/shared-41f3f823.js +29 -0
- package/dist/cdn/{shared-f4ad24f4.js → shared-44633760.js} +1 -1
- package/dist/cdn/{shared-223508ae.js → shared-4dc82211.js} +7 -7
- package/dist/cdn/{shared-63eaded9.js → shared-4ec62366.js} +6 -6
- package/dist/cdn/{shared-09069d7c.js → shared-57a8ee05.js} +1 -1
- package/dist/cdn/{shared-253e59d2.js → shared-5e9d8142.js} +1 -1
- package/dist/cdn/shared-5fd50b58.js +1 -0
- package/dist/cdn/{shared-21419f10.js → shared-65cfddfd.js} +1 -1
- package/dist/cdn/shared-6974569c.js +201 -0
- package/dist/cdn/{shared-9221e6b2.js → shared-701d5a7c.js} +1 -1
- package/dist/cdn/{shared-7f0a9790.js → shared-7cf914d7.js} +1 -1
- package/dist/cdn/{shared-4dc6d228.js → shared-7d337241.js} +1 -1
- package/dist/cdn/{shared-dcc9c325.js → shared-7e107668.js} +1 -1
- package/dist/cdn/shared-85b8ae57.js +12 -0
- package/dist/cdn/{shared-6d45a07b.js → shared-8695b424.js} +1 -1
- package/dist/cdn/{shared-39e3ae67.js → shared-8fc0b3ee.js} +1 -1
- package/dist/cdn/{shared-756034e4.js → shared-916ef4d3.js} +1 -1
- package/dist/cdn/{shared-08c63028.js → shared-9728b5f8.js} +1 -1
- package/dist/cdn/{shared-b9f18aaa.js → shared-a42088ee.js} +1 -1
- package/dist/cdn/{shared-5a54a9bc.js → shared-a82f8b58.js} +1 -1
- package/dist/cdn/{shared-65dfd512.js → shared-b161b269.js} +1 -1
- package/dist/cdn/{shared-5535f38f.js → shared-bad032de.js} +1 -1
- package/dist/cdn/{shared-20b9ce70.js → shared-bec9e9ce.js} +5 -5
- package/dist/cdn/{shared-a7b6feb2.js → shared-c722fc23.js} +1 -1
- package/dist/cdn/{shared-e2c878c7.js → shared-cd262e68.js} +10 -10
- package/dist/cdn/{shared-df730f90.js → shared-d2228670.js} +1 -1
- package/dist/cdn/{shared-b0f0e8b5.js → shared-d3cf78c1.js} +1 -1
- package/dist/cdn/{shared-073cb8e9.js → shared-e69e1ca3.js} +1 -1
- package/dist/cdn/shared-f0515999.js +1 -0
- package/dist/cdn/{shared-0f38a631.js → shared-f1107e25.js} +1 -1
- package/dist/cdn/translations/access-recovery-form/en.json +12 -0
- package/dist/cdn/translations/address-card/en.json +11 -0
- package/dist/cdn/translations/address-form/en.json +27 -0
- package/dist/cdn/translations/applied-tax-card/en.json +9 -0
- package/dist/cdn/translations/attribute-card/en.json +7 -0
- package/dist/cdn/translations/attribute-form/en.json +22 -0
- package/dist/cdn/translations/cancellation-form/en.json +10 -0
- package/dist/cdn/translations/country/pl.json +251 -0
- package/dist/cdn/translations/coupon-card/en.json +36 -0
- package/dist/cdn/translations/coupon-code-form/en.json +17 -0
- package/dist/cdn/translations/coupon-codes-form/en.json +20 -0
- package/dist/cdn/translations/coupon-form/en.json +186 -0
- package/dist/cdn/translations/custom-field-card/en.json +7 -0
- package/dist/cdn/translations/custom-field-form/en.json +19 -0
- package/dist/cdn/translations/customer/en.json +247 -0
- package/dist/cdn/translations/customer-card/en.json +7 -0
- package/dist/cdn/translations/customer-form/en.json +21 -0
- package/dist/cdn/translations/customer-portal/de.json +202 -14
- package/dist/cdn/translations/customer-portal/en.json +202 -14
- package/dist/cdn/translations/customer-portal/es.json +202 -14
- package/dist/cdn/translations/customer-portal/pl.json +223 -0
- package/dist/cdn/translations/customer-portal/zh-hk.json +202 -14
- package/dist/cdn/translations/customers-table/en.json +9 -0
- package/dist/cdn/translations/discount-card/en.json +8 -0
- package/dist/cdn/translations/email-template-form/en.json +25 -0
- package/dist/cdn/translations/error-entry-card/en.json +7 -0
- package/dist/cdn/translations/generate-codes-form/en.json +19 -0
- package/dist/cdn/translations/gift-card-card/en.json +9 -0
- package/dist/cdn/translations/gift-card-code-form/en.json +19 -0
- package/dist/cdn/translations/gift-card-codes-form/en.json +25 -0
- package/dist/cdn/translations/gift-card-form/en.json +314 -0
- package/dist/cdn/translations/pagination/en.json +7 -0
- package/dist/cdn/translations/payment-card/en.json +12 -0
- package/dist/cdn/translations/payment-method-card/en.json +13 -0
- package/dist/cdn/translations/query-builder/en.json +32 -0
- package/dist/cdn/translations/report-form/en.json +38 -0
- package/dist/cdn/translations/reports-table/en.json +21 -0
- package/dist/cdn/translations/sign-in-form/en.json +21 -0
- package/dist/cdn/translations/spinner/en.json +7 -0
- package/dist/cdn/translations/subscription-card/en.json +26 -0
- package/dist/cdn/translations/subscription-form/en.json +76 -0
- package/dist/cdn/translations/subscriptions-table/en.json +26 -0
- package/dist/cdn/translations/tax-card/en.json +11 -0
- package/dist/cdn/translations/tax-form/en.json +38 -0
- package/dist/cdn/translations/template-config-form/en.json +107 -0
- package/dist/cdn/translations/template-form/en.json +23 -0
- package/dist/cdn/translations/transaction-card/en.json +25 -0
- package/dist/cdn/translations/transactions-table/en.json +22 -0
- package/dist/cdn/translations/user-form/en.json +26 -0
- package/dist/cdn/translations/users-table/en.json +44 -0
- package/dist/elements/private/Choice/Choice.js +1 -0
- package/dist/elements/private/Choice/Choice.js.map +1 -1
- package/dist/elements/private/FrequencyInput/FrequencyInput.d.ts +5 -5
- package/dist/elements/private/FrequencyInput/FrequencyInput.js +7 -22
- package/dist/elements/private/FrequencyInput/FrequencyInput.js.map +1 -1
- package/dist/elements/public/AccessRecoveryForm/AccessRecoveryForm.js +1 -1
- package/dist/elements/public/AccessRecoveryForm/AccessRecoveryForm.js.map +1 -1
- package/dist/elements/public/AttributeCard/types.d.ts +3 -3
- package/dist/elements/public/AttributeCard/types.js.map +1 -1
- package/dist/elements/public/AttributeForm/AttributeForm.js +2 -1
- package/dist/elements/public/AttributeForm/AttributeForm.js.map +1 -1
- package/dist/elements/public/AttributeForm/types.d.ts +3 -3
- package/dist/elements/public/AttributeForm/types.js.map +1 -1
- package/dist/elements/public/CouponCard/CouponCard.js +2 -1
- package/dist/elements/public/CouponCard/CouponCard.js.map +1 -1
- package/dist/elements/public/CouponCodeForm/CouponCodeForm.js +5 -5
- package/dist/elements/public/CouponCodeForm/CouponCodeForm.js.map +1 -1
- package/dist/elements/public/CouponForm/CouponForm.js +199 -164
- package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.d.ts +4 -3
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js +5 -4
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPage.js.map +1 -1
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.d.ts +3 -4
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js +3 -4
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItem.js.map +1 -1
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.d.ts +3 -4
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js +3 -2
- package/dist/elements/public/CouponForm/private/CategoryRestrictionsPageItemContent.js.map +1 -1
- package/dist/elements/public/CustomFieldForm/CustomFieldForm.js +2 -1
- package/dist/elements/public/CustomFieldForm/CustomFieldForm.js.map +1 -1
- package/dist/elements/public/Customer/Customer.js +1 -1
- package/dist/elements/public/Customer/Customer.js.map +1 -1
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js +18 -5
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js.map +1 -1
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js +20 -6
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js.map +1 -1
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +2 -1
- package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
- package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js +2 -1
- package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js.map +1 -1
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +6 -6
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
- package/dist/elements/public/GiftCardForm/GiftCardForm.js +103 -85
- package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.d.ts +1 -1
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js +3 -3
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js.map +1 -1
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.d.ts +1 -3
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js +2 -4
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js.map +1 -1
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.d.ts +1 -3
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js +2 -2
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js.map +1 -1
- package/dist/elements/public/I18n/format/discount.js +2 -2
- package/dist/elements/public/I18n/format/discount.js.map +1 -1
- package/dist/elements/public/Pagination/Pagination.js +4 -0
- package/dist/elements/public/Pagination/Pagination.js.map +1 -1
- package/dist/elements/public/ReportForm/ReportForm.d.ts +48 -0
- package/dist/elements/public/ReportForm/ReportForm.js +391 -0
- package/dist/elements/public/ReportForm/ReportForm.js.map +1 -0
- package/dist/elements/public/ReportForm/index.d.ts +11 -0
- package/dist/elements/public/ReportForm/index.js +13 -0
- package/dist/elements/public/ReportForm/index.js.map +1 -0
- package/dist/elements/public/ReportForm/types.d.ts +17 -0
- package/dist/elements/public/ReportForm/types.js +2 -0
- package/dist/elements/public/ReportForm/types.js.map +1 -0
- package/dist/elements/public/ReportForm/utils.d.ts +16 -0
- package/dist/elements/public/ReportForm/utils.js +73 -0
- package/dist/elements/public/ReportForm/utils.js.map +1 -0
- package/dist/elements/public/ReportsTable/ReportsTable.d.ts +21 -0
- package/dist/elements/public/ReportsTable/ReportsTable.js +101 -0
- package/dist/elements/public/ReportsTable/ReportsTable.js.map +1 -0
- package/dist/elements/public/ReportsTable/index.d.ts +4 -0
- package/dist/elements/public/ReportsTable/index.js +6 -0
- package/dist/elements/public/ReportsTable/index.js.map +1 -0
- package/dist/elements/public/ReportsTable/types.d.ts +3 -0
- package/dist/elements/public/ReportsTable/types.js +2 -0
- package/dist/elements/public/ReportsTable/types.js.map +1 -0
- package/dist/elements/public/SignInForm/SignInForm.js +1 -1
- package/dist/elements/public/SignInForm/SignInForm.js.map +1 -1
- package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +1 -1
- package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
- package/dist/elements/public/TaxForm/TaxForm.js +16 -14
- package/dist/elements/public/TaxForm/TaxForm.js.map +1 -1
- package/dist/elements/public/TemplateForm/TemplateForm.js +1 -1
- package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
- package/dist/elements/public/UserForm/UserForm.js +2 -1
- package/dist/elements/public/UserForm/UserForm.js.map +1 -1
- package/dist/elements/public/UsersTable/UsersTable.d.ts +5 -1
- package/dist/elements/public/UsersTable/UsersTable.js +2 -1
- package/dist/elements/public/UsersTable/UsersTable.js.map +1 -1
- package/dist/elements/public/index.d.ts +2 -0
- package/dist/elements/public/index.defined.d.ts +2 -0
- package/dist/elements/public/index.defined.js +2 -0
- package/dist/elements/public/index.defined.js.map +1 -1
- package/dist/elements/public/index.js +2 -0
- package/dist/elements/public/index.js.map +1 -1
- package/dist/mixins/themeable.js +6523 -0
- package/dist/mixins/themeable.js.map +1 -1
- package/dist/mixins/translatable.js +1 -1
- package/dist/mixins/translatable.js.map +1 -1
- package/package.json +3 -3
- package/dist/cdn/shared-07049bfe.js +0 -1
- package/dist/cdn/shared-11708514.js +0 -1
- package/dist/cdn/shared-66633ff7.js +0 -1
- package/dist/cdn/shared-805d18a2.js +0 -1
- package/dist/cdn/shared-8b20bc23.js +0 -12
- package/dist/cdn/shared-e68b9c83.js +0 -1
- package/dist/cdn/shared-ff79f3f9.js +0 -230
- package/dist/cdn/translations/shared/de.json +0 -271
- package/dist/cdn/translations/shared/en.json +0 -557
- package/dist/cdn/translations/shared/es.json +0 -272
- package/dist/cdn/translations/shared/zh-hk.json +0 -179
|
@@ -4,9 +4,8 @@ import { ConfigurableMixin } from "../../../../mixins/configurable.js";
|
|
|
4
4
|
import { NucleonElement } from "../../NucleonElement/NucleonElement.js";
|
|
5
5
|
import { ScopedElementsMixin } from '@open-wc/scoped-elements';
|
|
6
6
|
import { ThemeableMixin } from "../../../../mixins/themeable.js";
|
|
7
|
-
import { TranslatableMixin } from "../../../../mixins/translatable.js";
|
|
8
7
|
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
9
|
-
const Base = ConfigurableMixin(ScopedElementsMixin(ThemeableMixin(
|
|
8
|
+
const Base = ConfigurableMixin(ScopedElementsMixin(ThemeableMixin(NucleonElement)));
|
|
10
9
|
export class CategoryRestrictionsPageItem extends Base {
|
|
11
10
|
constructor() {
|
|
12
11
|
super(...arguments);
|
|
@@ -34,13 +33,12 @@ export class CategoryRestrictionsPageItem extends Base {
|
|
|
34
33
|
return html `
|
|
35
34
|
<x-category-restrictions-page-item-content
|
|
36
35
|
item-category=${this.itemCategory}
|
|
36
|
+
data-testid="content"
|
|
37
37
|
gift-card=${this.giftCard}
|
|
38
38
|
parent=${ifDefined(parent)}
|
|
39
39
|
class="h-full"
|
|
40
40
|
group=${this.group}
|
|
41
41
|
href=${ifDefined(href)}
|
|
42
|
-
lang=${this.lang}
|
|
43
|
-
ns=${this.ns}
|
|
44
42
|
?disabled=${!this.in('idle') || this.disabled}
|
|
45
43
|
?readonly=${this.readonly}
|
|
46
44
|
>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoryRestrictionsPageItem.js","sourceRoot":"","sources":["../../../../../src/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,mCAAmC,EAAE,iDAA8C;AAC5F,OAAO,EAAE,iBAAiB,EAAE,2CAAwC;AACpE,OAAO,EAAE,cAAc,EAAE,+CAA4C;AAKrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,wCAAqC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CategoryRestrictionsPageItem.js","sourceRoot":"","sources":["../../../../../src/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,mCAAmC,EAAE,iDAA8C;AAC5F,OAAO,EAAE,iBAAiB,EAAE,2CAAwC;AACpE,OAAO,EAAE,cAAc,EAAE,+CAA4C;AAKrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,wCAAqC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG3D,MAAM,IAAI,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,OAAO,4BAA6B,SAAQ,IAAU;IAA5D;;QAgBE,iBAAY,GAAG,EAAE,CAAC;QAElB,aAAQ,GAAG,EAAE,CAAC;IAuBhB,CAAC;IAxCC,MAAM,KAAK,cAAc;QACvB,OAAO;YACL,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;YAClD,2CAA2C,EAAE,mCAAmC;SACjF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE;YAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE;SACnD,CAAC;IACJ,CAAC;IAMD,MAAM;;QACJ,MAAM,QAAQ,SAAG,IAAI,CAAC,IAAI,0CAAE,SAAS,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9D,OAAO,IAAI,CAAA;;wBAES,IAAI,CAAC,YAAY;;oBAErB,IAAI,CAAC,QAAQ;iBAChB,SAAS,CAAC,MAAM,CAAC;;gBAElB,IAAI,CAAC,KAAK;eACX,SAAS,CAAC,IAAI,CAAC;oBACV,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;oBACjC,IAAI,CAAC,QAAQ;;;;KAI5B,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { CategoryRestrictionsPageItemContent } from './CategoryRestrictionsPageItemContent';\nimport { ConfigurableMixin } from '../../../../mixins/configurable';\nimport { NucleonElement } from '../../NucleonElement/NucleonElement';\nimport { PropertyDeclarations } from 'lit-element';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ScopedElementsMap } from '@open-wc/scoped-elements/src/types';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { ThemeableMixin } from '../../../../mixins/themeable';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\ntype Data = Resource<Rels.GiftCardItemCategories>;\nconst Base = ConfigurableMixin(ScopedElementsMixin(ThemeableMixin(NucleonElement)));\n\nexport class CategoryRestrictionsPageItem extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'x-category-restrictions-page-item-content': CategoryRestrictionsPageItemContent,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n itemCategory: { type: String, attribute: 'item-category' },\n giftCard: { type: String, attribute: 'gift-card' },\n };\n }\n\n itemCategory = '';\n\n giftCard = '';\n\n render(): TemplateResult {\n const category = this.data?._embedded['fx:gift_card_item_categories'][0];\n const parent = category ? undefined : this.href;\n const href = category ? category._links.self.href : undefined;\n\n return html`\n <x-category-restrictions-page-item-content\n item-category=${this.itemCategory}\n data-testid=\"content\"\n gift-card=${this.giftCard}\n parent=${ifDefined(parent)}\n class=\"h-full\"\n group=${this.group}\n href=${ifDefined(href)}\n ?disabled=${!this.in('idle') || this.disabled}\n ?readonly=${this.readonly}\n >\n <slot></slot>\n </x-category-restrictions-page-item-content>\n `;\n }\n}\n"]}
|
|
@@ -5,9 +5,7 @@ import { PropertyDeclarations } from 'lit-element';
|
|
|
5
5
|
import { Rels } from '@foxy.io/sdk/backend';
|
|
6
6
|
import { Resource } from '@foxy.io/sdk/core';
|
|
7
7
|
declare type Data = Resource<Rels.GiftCardItemCategory>;
|
|
8
|
-
declare const Base: typeof NucleonElement &
|
|
9
|
-
defaultNS: string;
|
|
10
|
-
} & {
|
|
8
|
+
declare const Base: typeof NucleonElement & {
|
|
11
9
|
styles: import("lit-element").CSSResultArray;
|
|
12
10
|
} & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/src/types").ScopedElementsHost> & import("lit-element").Constructor<import("../../../../mixins/configurable").ConfigurableMixinHost>;
|
|
13
11
|
export declare class CategoryRestrictionsPageItemContent extends Base<Data> {
|
|
@@ -4,8 +4,7 @@ import { Checkbox } from "../../../private/Checkbox/Checkbox.js";
|
|
|
4
4
|
import { ConfigurableMixin } from "../../../../mixins/configurable.js";
|
|
5
5
|
import { NucleonElement } from "../../NucleonElement/NucleonElement.js";
|
|
6
6
|
import { ThemeableMixin } from "../../../../mixins/themeable.js";
|
|
7
|
-
|
|
8
|
-
const Base = ConfigurableMixin(ScopedElementsMixin(ThemeableMixin(TranslatableMixin(NucleonElement))));
|
|
7
|
+
const Base = ConfigurableMixin(ScopedElementsMixin(ThemeableMixin(NucleonElement)));
|
|
9
8
|
export class CategoryRestrictionsPageItemContent extends Base {
|
|
10
9
|
constructor() {
|
|
11
10
|
super(...arguments);
|
|
@@ -28,6 +27,7 @@ export class CategoryRestrictionsPageItemContent extends Base {
|
|
|
28
27
|
return html `
|
|
29
28
|
<div class="h-full flex items-center">
|
|
30
29
|
<x-checkbox
|
|
30
|
+
data-testid="checkbox"
|
|
31
31
|
?disabled=${!this.in('idle') || this.disabled}
|
|
32
32
|
?readonly=${this.readonly}
|
|
33
33
|
?checked=${!!this.data}
|
package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoryRestrictionsPageItemContent.js","sourceRoot":"","sources":["../../../../../src/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,8CAA2C;AAE9D,OAAO,EAAE,iBAAiB,EAAE,2CAAwC;AACpE,OAAO,EAAE,cAAc,EAAE,+CAA4C;AAIrE,OAAO,EAAE,cAAc,EAAE,wCAAqC;
|
|
1
|
+
{"version":3,"file":"CategoryRestrictionsPageItemContent.js","sourceRoot":"","sources":["../../../../../src/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,8CAA2C;AAE9D,OAAO,EAAE,iBAAiB,EAAE,2CAAwC;AACpE,OAAO,EAAE,cAAc,EAAE,+CAA4C;AAIrE,OAAO,EAAE,cAAc,EAAE,wCAAqC;AAG9D,MAAM,IAAI,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,OAAO,mCAAoC,SAAQ,IAAU;IAAnE;;QAeE,iBAAY,GAAG,EAAE,CAAC;QAElB,aAAQ,GAAG,EAAE,CAAC;IA4BhB,CAAC;IA5CC,MAAM,KAAK,cAAc;QACvB,OAAO;YACL,YAAY,EAAE,QAAQ;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE;YAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE;SACnD,CAAC;IACJ,CAAC;IAMD,MAAM;QACJ,OAAO,IAAI,CAAA;;;;sBAIO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;sBACjC,IAAI,CAAC,QAAQ;qBACd,CAAC,CAAC,IAAI,CAAC,IAAI;oBACZ,CAAC,GAAwB,EAAE,EAAE;YACrC,IAAI,GAAG,CAAC,MAAM,EAAE;gBACd,IAAI,CAAC,IAAI,CAAC;oBACR,iBAAiB,EAAE,IAAI,CAAC,YAAY;oBACpC,aAAa,EAAE,IAAI,CAAC,QAAQ;iBAC7B,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;iBAAM;gBACL,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;QACH,CAAC;;;;;KAKN,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { Checkbox } from '../../../private/Checkbox/Checkbox';\nimport { CheckboxChangeEvent } from '../../../private/events';\nimport { ConfigurableMixin } from '../../../../mixins/configurable';\nimport { NucleonElement } from '../../NucleonElement/NucleonElement';\nimport { PropertyDeclarations } from 'lit-element';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ThemeableMixin } from '../../../../mixins/themeable';\n\ntype Data = Resource<Rels.GiftCardItemCategory>;\nconst Base = ConfigurableMixin(ScopedElementsMixin(ThemeableMixin(NucleonElement)));\n\nexport class CategoryRestrictionsPageItemContent extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'x-checkbox': Checkbox,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n itemCategory: { type: String, attribute: 'item-category' },\n giftCard: { type: String, attribute: 'gift-card' },\n };\n }\n\n itemCategory = '';\n\n giftCard = '';\n\n render(): TemplateResult {\n return html`\n <div class=\"h-full flex items-center\">\n <x-checkbox\n data-testid=\"checkbox\"\n ?disabled=${!this.in('idle') || this.disabled}\n ?readonly=${this.readonly}\n ?checked=${!!this.data}\n @change=${(evt: CheckboxChangeEvent) => {\n if (evt.detail) {\n this.edit({\n item_category_uri: this.itemCategory,\n gift_card_uri: this.giftCard,\n });\n\n this.submit();\n } else {\n this.delete();\n }\n }}\n >\n <slot></slot>\n </x-checkbox>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* i18next formatter that returns a human-readable discount description for an API value.
|
|
3
3
|
* @see https://www.i18next.com/translation-function/formatting
|
|
4
4
|
*/
|
|
5
|
-
export const discount = ({ type, details }, format, lang) => {
|
|
5
|
+
export const discount = ({ ns, type, details }, format, lang) => {
|
|
6
6
|
const methods = ['allunits', 'incremental', 'repeat', 'single'];
|
|
7
7
|
const factor = type.endsWith('_percentage') ? 0.01 : 1;
|
|
8
8
|
const tiers = details.split('|');
|
|
@@ -13,7 +13,7 @@ export const discount = ({ type, details }, format, lang) => {
|
|
|
13
13
|
const signIndex = (_b = (_a = /[-+]/.exec(tier)) === null || _a === void 0 ? void 0 : _a.index) !== null && _b !== void 0 ? _b : -1;
|
|
14
14
|
const adjustment = parseFloat(tier.substring(signIndex)) * factor;
|
|
15
15
|
const from = parseFloat(tier.substring(0, signIndex));
|
|
16
|
-
return `$t(${i18nKey}, ${JSON.stringify({ adjustment, from })})`;
|
|
16
|
+
return `$t(${i18nKey}, ${JSON.stringify({ adjustment, from, ns })})`;
|
|
17
17
|
});
|
|
18
18
|
return translatedTiers.join('; ');
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discount.js","sourceRoot":"","sources":["../../../../../src/elements/public/I18n/format/discount.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAS,EAAE,MAAM,EAAE,IAAI,EAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"discount.js","sourceRoot":"","sources":["../../../../../src/elements/public/I18n/format/discount.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAS,EAAE,MAAM,EAAE,IAAI,EAAU,EAAE;IAC7F,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrE,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,IAAI,mBAAmB,CAAC;IAErD,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;QACvC,MAAM,SAAS,eAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,0CAAE,KAAK,mCAAI,CAAC,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;QAClE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAEtD,OAAO,MAAM,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC","sourcesContent":["import { FormatFunction } from 'i18next';\n\ntype Value = { ns: string; type: string; details: string };\n\n/**\n * i18next formatter that returns a human-readable discount description for an API value.\n * @see https://www.i18next.com/translation-function/formatting\n */\nexport const discount: FormatFunction = ({ ns, type, details }: Value, format, lang): string => {\n const methods = ['allunits', 'incremental', 'repeat', 'single'];\n const factor = type.endsWith('_percentage') ? 0.01 : 1;\n const tiers = details.split('|');\n const method = methods.includes(tiers[0]) ? tiers.shift() : 'single';\n const i18nKey = `${method}_${type}_discount_summary`;\n\n const translatedTiers = tiers.map(tier => {\n const signIndex = /[-+]/.exec(tier)?.index ?? -1;\n const adjustment = parseFloat(tier.substring(signIndex)) * factor;\n const from = parseFloat(tier.substring(0, signIndex));\n\n return `$t(${i18nKey}, ${JSON.stringify({ adjustment, from, ns })})`;\n });\n\n return translatedTiers.join('; ');\n};\n"]}
|
|
@@ -69,6 +69,7 @@ export class Pagination extends Base {
|
|
|
69
69
|
<div class="grid grid-cols-3 gap-s items-center">
|
|
70
70
|
<div class="flex items-center space-x-s">
|
|
71
71
|
<vaadin-button
|
|
72
|
+
data-testid="first"
|
|
72
73
|
theme="contrast tertiary-inline"
|
|
73
74
|
?disabled=${!canGoBack}
|
|
74
75
|
@click=${() => this.__goTo('first')}
|
|
@@ -78,6 +79,7 @@ export class Pagination extends Base {
|
|
|
78
79
|
</vaadin-button>
|
|
79
80
|
|
|
80
81
|
<vaadin-button
|
|
82
|
+
data-testid="prev"
|
|
81
83
|
theme="contrast tertiary-inline"
|
|
82
84
|
?disabled=${!canGoBack}
|
|
83
85
|
@click=${() => this.__goTo('prev')}
|
|
@@ -105,6 +107,7 @@ export class Pagination extends Base {
|
|
|
105
107
|
|
|
106
108
|
<div class="flex items-center justify-end space-x-s">
|
|
107
109
|
<vaadin-button
|
|
110
|
+
data-testid="next"
|
|
108
111
|
theme="contrast tertiary-inline"
|
|
109
112
|
?disabled=${!canGoForth}
|
|
110
113
|
@click=${() => this.__goTo('next')}
|
|
@@ -114,6 +117,7 @@ export class Pagination extends Base {
|
|
|
114
117
|
</vaadin-button>
|
|
115
118
|
|
|
116
119
|
<vaadin-button
|
|
120
|
+
data-testid="last"
|
|
117
121
|
theme="contrast tertiary-inline"
|
|
118
122
|
?disabled=${!canGoForth}
|
|
119
123
|
@click=${() => this.__goTo('last')}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/elements/public/Pagination/Pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwC,IAAI,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,4CAAyC;AAClE,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAC7D,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,GAAG,MAAM,eAAe,CAAC;AAEhC,MAAM,EAAE,GAAG,YAAY,CAAC;AACxB,MAAM,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnG;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAI;IAApC;;QASU,kBAAa,GAA+B,IAAI,CAAC;QAEjD,eAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAExC,YAAO,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/elements/public/Pagination/Pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport get from 'lodash-es/get';\n\nconst NS = 'pagination';\nconst Base = ResponsiveMixin(ConfigurableMixin(ThemeableMixin(TranslatableMixin(LitElement, NS))));\n\n/**\n * Helper element that adds pagination controls to elements\n * representing Hypermedia API collection pages. Works with NucleonElement instances only.\n * Page element **MUST** be a direct descendant of `foxy-pagination`.\n *\n * @example\n * ```html\n * <foxy-pagination first=\"https://demo.api/hapi/customers?limit=3\">\n * <foxy-customers-table></foxy-customers-table>\n * </foxy-pagination>\n * ```\n *\n * @element foxy-pagination\n * @since 1.15.0\n */\nexport class Pagination extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n first: { type: String },\n __pageElement: { attribute: false },\n };\n }\n\n private __pageElement: NucleonElement<any> | null = null;\n\n private __rerender = () => this.requestUpdate();\n\n private __first = '';\n\n /** URL of the first page of the colletion. */\n get first(): string {\n return this.__first;\n }\n\n set first(newValue: string) {\n this.__first = newValue;\n if (this.__pageElement) this.__pageElement.href = newValue;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.__connectPageElement();\n }\n\n render(): TemplateResult {\n const data = this.__pageElement?.data;\n const { disabled, lang, ns } = this;\n\n const returnedItemsValue = Number(get(data, 'returned_items'));\n const returnedItems = Number.isNaN(returnedItemsValue) ? 0 : returnedItemsValue;\n\n const totalItemsValue = Number(get(data, 'total_items'));\n const totalItems = Number.isNaN(totalItemsValue) ? 0 : totalItemsValue;\n\n const offsetValue = Number(get(data, 'offset'));\n const offset = Number.isNaN(offsetValue) ? 0 : offsetValue;\n\n const canGoBack = !disabled && offset > 0;\n const canGoForth = !disabled && offset + returnedItems < totalItems;\n\n const labelClass = 'sr-only sm-not-sr-only';\n\n return html`\n <slot @slotchange=${this.__connectPageElement}></slot>\n\n <div class=\"grid grid-cols-3 gap-s items-center\">\n <div class=\"flex items-center space-x-s\">\n <vaadin-button\n data-testid=\"first\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('first')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:first-page\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"first\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"prev\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('prev')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-left\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"previous\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n </div>\n\n <foxy-i18n\n options=${JSON.stringify({\n total: totalItems,\n from: offset ? offset + 1 : 0,\n to: offset + returnedItems,\n })}\n class=${classMap({\n 'flex-1 text-xs text-tertiary text-center leading-xs': true,\n 'opacity-0': !data,\n })}\n lang=${lang}\n key=\"pagination\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <div class=\"flex items-center justify-end space-x-s\">\n <vaadin-button\n data-testid=\"next\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('next')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"next\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-right\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"last\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('last')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"last\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:last-page\"></iron-icon>\n </vaadin-button>\n </div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__disconnectPageElement();\n }\n\n private __goTo(rel: string): void {\n this.__pageElement!.href = String(get(this.__pageElement?.data, `_links.${rel}.href`));\n }\n\n private __disconnectPageElement() {\n this.__pageElement?.removeEventListener('update', this.__rerender);\n this.__pageElement = null;\n }\n\n private __connectPageElement() {\n this.__disconnectPageElement();\n\n const slot = this.renderRoot.querySelector<HTMLSlotElement>('slot');\n const assignedElements = slot?.assignedElements() ?? [];\n const firstNucleonElement = assignedElements.find(el => el instanceof NucleonElement) as\n | NucleonElement<any>\n | undefined;\n\n if (firstNucleonElement) {\n this.__pageElement = firstNucleonElement;\n this.__pageElement.addEventListener('update', this.__rerender);\n this.__pageElement.href = this.first;\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Data, Templates } from './types';
|
|
2
|
+
import { PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
3
|
+
import { ScopedElementsMap } from '@open-wc/scoped-elements';
|
|
4
|
+
import { NucleonElement } from '../NucleonElement/NucleonElement';
|
|
5
|
+
import { NucleonV8N } from '../NucleonElement/types';
|
|
6
|
+
declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
7
|
+
defaultNS: string;
|
|
8
|
+
} & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost> & {
|
|
9
|
+
styles: import("lit-element").CSSResultArray;
|
|
10
|
+
} & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/src/types").ScopedElementsHost>;
|
|
11
|
+
/**
|
|
12
|
+
* Form element for creating or editing reports (`fx:report`).
|
|
13
|
+
*
|
|
14
|
+
* @slot name:before
|
|
15
|
+
* @slot name:after
|
|
16
|
+
*
|
|
17
|
+
* @slot range:before
|
|
18
|
+
* @slot range:after
|
|
19
|
+
*
|
|
20
|
+
* @slot timestamps:before
|
|
21
|
+
* @slot timestamps:after
|
|
22
|
+
*
|
|
23
|
+
* @slot delete:before
|
|
24
|
+
* @slot delete:after
|
|
25
|
+
*
|
|
26
|
+
* @slot create:before
|
|
27
|
+
* @slot create:after
|
|
28
|
+
*
|
|
29
|
+
* @element foxy-report-form
|
|
30
|
+
* @since 1.16.0
|
|
31
|
+
*/
|
|
32
|
+
export declare class ReportForm extends Base<Data> {
|
|
33
|
+
static get scopedElements(): ScopedElementsMap;
|
|
34
|
+
static get properties(): PropertyDeclarations;
|
|
35
|
+
static get v8n(): NucleonV8N<Data>;
|
|
36
|
+
templates: Templates;
|
|
37
|
+
private __showRangeTime;
|
|
38
|
+
render(): TemplateResult;
|
|
39
|
+
private __renderName;
|
|
40
|
+
private __renderRangePreset;
|
|
41
|
+
private __renderRangeDateTimePicker;
|
|
42
|
+
private __renderRangeDatePicker;
|
|
43
|
+
private __renderRange;
|
|
44
|
+
private __renderTimestamps;
|
|
45
|
+
private __renderCreate;
|
|
46
|
+
private __renderDelete;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
import { Choice, Group, PropertyTable } from "../../private/index.js";
|
|
2
|
+
import { html } from 'lit-element';
|
|
3
|
+
import { ScopedElementsMixin } from '@open-wc/scoped-elements';
|
|
4
|
+
import { getCurrentMonth, getCurrentQuarter, getCurrentYear, getLast30Days, getLast365Days, getPreviousMonth, getPreviousQuarter, getPreviousYear, toAPIDateTime, toDatePickerValue, toDateTimePickerValue, } from "./utils.js";
|
|
5
|
+
import { ChoiceChangeEvent } from "../../private/Choice/ChoiceChangeEvent.js";
|
|
6
|
+
import { ConfigurableMixin } from "../../../mixins/configurable.js";
|
|
7
|
+
import { NucleonElement } from "../NucleonElement/NucleonElement.js";
|
|
8
|
+
import { ResponsiveMixin } from "../../../mixins/responsive.js";
|
|
9
|
+
import { ThemeableMixin } from "../../../mixins/themeable.js";
|
|
10
|
+
import { TranslatableMixin } from "../../../mixins/translatable.js";
|
|
11
|
+
import { classMap } from "../../../utils/class-map.js";
|
|
12
|
+
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
13
|
+
import { live } from 'lit-html/directives/live';
|
|
14
|
+
import { render } from 'lit-html';
|
|
15
|
+
const Base = ScopedElementsMixin(ResponsiveMixin(ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, 'report-form')))));
|
|
16
|
+
/**
|
|
17
|
+
* Form element for creating or editing reports (`fx:report`).
|
|
18
|
+
*
|
|
19
|
+
* @slot name:before
|
|
20
|
+
* @slot name:after
|
|
21
|
+
*
|
|
22
|
+
* @slot range:before
|
|
23
|
+
* @slot range:after
|
|
24
|
+
*
|
|
25
|
+
* @slot timestamps:before
|
|
26
|
+
* @slot timestamps:after
|
|
27
|
+
*
|
|
28
|
+
* @slot delete:before
|
|
29
|
+
* @slot delete:after
|
|
30
|
+
*
|
|
31
|
+
* @slot create:before
|
|
32
|
+
* @slot create:after
|
|
33
|
+
*
|
|
34
|
+
* @element foxy-report-form
|
|
35
|
+
* @since 1.16.0
|
|
36
|
+
*/
|
|
37
|
+
export class ReportForm extends Base {
|
|
38
|
+
constructor() {
|
|
39
|
+
super(...arguments);
|
|
40
|
+
this.templates = {};
|
|
41
|
+
this.__showRangeTime = false;
|
|
42
|
+
}
|
|
43
|
+
static get scopedElements() {
|
|
44
|
+
return {
|
|
45
|
+
'vaadin-date-time-picker': customElements.get('vaadin-date-time-picker'),
|
|
46
|
+
'vaadin-date-picker': customElements.get('vaadin-date-picker'),
|
|
47
|
+
'vaadin-checkbox': customElements.get('vaadin-checkbox'),
|
|
48
|
+
'vaadin-select': customElements.get('vaadin-select'),
|
|
49
|
+
'vaadin-button': customElements.get('vaadin-button'),
|
|
50
|
+
'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),
|
|
51
|
+
'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),
|
|
52
|
+
'foxy-spinner': customElements.get('foxy-spinner'),
|
|
53
|
+
'foxy-i18n': customElements.get('foxy-i18n'),
|
|
54
|
+
'x-property-table': PropertyTable,
|
|
55
|
+
'x-choice': Choice,
|
|
56
|
+
'x-group': Group,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
static get properties() {
|
|
60
|
+
return {
|
|
61
|
+
...super.properties,
|
|
62
|
+
__showRangeTime: { attribute: false },
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
static get v8n() {
|
|
66
|
+
return [
|
|
67
|
+
({ name: v }) => !!v || 'name_required',
|
|
68
|
+
({ datetime_start: v }) => !!v || 'datetime_start_required',
|
|
69
|
+
({ datetime_end: v }) => !!v || 'datetime_end_required',
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
render() {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const hidden = this.hiddenSelector;
|
|
75
|
+
return html `
|
|
76
|
+
<div
|
|
77
|
+
data-testid="wrapper"
|
|
78
|
+
aria-busy=${this.in('busy')}
|
|
79
|
+
aria-live="polite"
|
|
80
|
+
class="space-y-l relative"
|
|
81
|
+
>
|
|
82
|
+
<div class="space-y-m">
|
|
83
|
+
${hidden.matches('name', true) ? '' : this.__renderName()}
|
|
84
|
+
${hidden.matches('range', true) ? '' : this.__renderRange()}
|
|
85
|
+
${hidden.matches('timestamps', true) || !this.data ? '' : this.__renderTimestamps()}
|
|
86
|
+
${hidden.matches('create', true) || this.data ? '' : this.__renderCreate()}
|
|
87
|
+
${hidden.matches('delete', true) || !this.data ? '' : this.__renderDelete()}
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<div
|
|
91
|
+
data-testid="spinner"
|
|
92
|
+
class=${classMap({
|
|
93
|
+
'transition duration-500 ease-in-out absolute inset-0 flex': true,
|
|
94
|
+
'opacity-0 pointer-events-none': this.in('idle'),
|
|
95
|
+
})}
|
|
96
|
+
>
|
|
97
|
+
<foxy-spinner
|
|
98
|
+
layout="vertical"
|
|
99
|
+
class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l"
|
|
100
|
+
state=${this.in('fail') ? 'error' : this.in('busy') ? 'busy' : 'empty'}
|
|
101
|
+
lang=${this.lang}
|
|
102
|
+
ns="${this.ns} ${(_b = (_a = customElements.get('foxy-spinner')) === null || _a === void 0 ? void 0 : _a.defaultNS) !== null && _b !== void 0 ? _b : ''}"
|
|
103
|
+
>
|
|
104
|
+
</foxy-spinner>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
`;
|
|
108
|
+
}
|
|
109
|
+
__renderName() {
|
|
110
|
+
const scope = 'name';
|
|
111
|
+
const items = ['complete', 'customers', 'customers_ltv'];
|
|
112
|
+
const isDisabled = !this.in('idle') || this.disabledSelector.matches(scope);
|
|
113
|
+
const isReadonly = this.readonlySelector.matches(scope);
|
|
114
|
+
return html `
|
|
115
|
+
<div data-testid=${scope}>
|
|
116
|
+
${this.renderTemplateOrSlot(`${scope}:before`)}
|
|
117
|
+
|
|
118
|
+
<x-group frame>
|
|
119
|
+
<foxy-i18n lang=${this.lang} slot="header" key="name" ns=${this.ns}></foxy-i18n>
|
|
120
|
+
|
|
121
|
+
<x-choice
|
|
122
|
+
data-testid="name-choice"
|
|
123
|
+
.value=${this.form.name}
|
|
124
|
+
.items=${items}
|
|
125
|
+
?readonly=${isReadonly}
|
|
126
|
+
?disabled=${isDisabled}
|
|
127
|
+
@change=${(evt) => {
|
|
128
|
+
if (evt instanceof ChoiceChangeEvent) {
|
|
129
|
+
this.edit({ name: evt.detail });
|
|
130
|
+
}
|
|
131
|
+
}}
|
|
132
|
+
>
|
|
133
|
+
${items.map(value => {
|
|
134
|
+
return html `
|
|
135
|
+
<div slot="${value}-label" class="py-s leading-s">
|
|
136
|
+
<foxy-i18n class="block" lang=${this.lang} key="name_${value}" ns=${this.ns}>
|
|
137
|
+
</foxy-i18n>
|
|
138
|
+
|
|
139
|
+
<foxy-i18n
|
|
140
|
+
class="block text-s opacity-70"
|
|
141
|
+
lang=${this.lang}
|
|
142
|
+
key="name_${value}_explainer"
|
|
143
|
+
ns=${this.ns}
|
|
144
|
+
>
|
|
145
|
+
</foxy-i18n>
|
|
146
|
+
</div>
|
|
147
|
+
`;
|
|
148
|
+
})}
|
|
149
|
+
</x-choice>
|
|
150
|
+
</x-group>
|
|
151
|
+
|
|
152
|
+
${this.renderTemplateOrSlot(`${scope}:after`)}
|
|
153
|
+
</div>
|
|
154
|
+
`;
|
|
155
|
+
}
|
|
156
|
+
__renderRangePreset() {
|
|
157
|
+
var _a;
|
|
158
|
+
const options = [
|
|
159
|
+
[
|
|
160
|
+
{ value: '0', label: 'preset_previous_quarter', ...getPreviousQuarter() },
|
|
161
|
+
{ value: '1', label: 'preset_previous_month', ...getPreviousMonth() },
|
|
162
|
+
{ value: '2', label: 'preset_previous_year', ...getPreviousYear() },
|
|
163
|
+
],
|
|
164
|
+
[
|
|
165
|
+
{ value: '3', label: 'preset_this_quarter', ...getCurrentQuarter() },
|
|
166
|
+
{ value: '4', label: 'preset_this_month', ...getCurrentMonth() },
|
|
167
|
+
{ value: '5', label: 'preset_this_year', ...getCurrentYear() },
|
|
168
|
+
],
|
|
169
|
+
[
|
|
170
|
+
{ value: '6', label: 'preset_last_365_days', ...getLast365Days() },
|
|
171
|
+
{ value: '7', label: 'preset_last_30_days', ...getLast30Days() },
|
|
172
|
+
],
|
|
173
|
+
];
|
|
174
|
+
const currentOption = options.flat(1).find(option => {
|
|
175
|
+
const { datetime_end: end, datetime_start: start } = this.form;
|
|
176
|
+
return (start && end && toAPIDateTime(option.start) === start && toAPIDateTime(option.end) === end);
|
|
177
|
+
});
|
|
178
|
+
const renderer = (root) => {
|
|
179
|
+
const custom = html `<vaadin-item value="custom">${this.t('preset_custom')}</vaadin-item>`;
|
|
180
|
+
const separator = html `<hr />`;
|
|
181
|
+
const predefined = options.map(group => {
|
|
182
|
+
const items = group.map(({ value, label }) => {
|
|
183
|
+
return html `<vaadin-item value=${value}>${this.t(label)}</vaadin-item>`;
|
|
184
|
+
});
|
|
185
|
+
return html `${items}${separator}`;
|
|
186
|
+
});
|
|
187
|
+
if (!root.firstElementChild)
|
|
188
|
+
root.appendChild(document.createElement('vaadin-list-box'));
|
|
189
|
+
render(html `${predefined}${custom}`, root.firstElementChild);
|
|
190
|
+
};
|
|
191
|
+
return html `
|
|
192
|
+
<div>
|
|
193
|
+
<vaadin-select
|
|
194
|
+
data-testid="range:preset"
|
|
195
|
+
label=${this.t('preset')}
|
|
196
|
+
class="w-full -mt-m -mb-xs"
|
|
197
|
+
?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}
|
|
198
|
+
?readonly=${this.readonlySelector.matches('range', true)}
|
|
199
|
+
.value=${live((_a = currentOption === null || currentOption === void 0 ? void 0 : currentOption.value) !== null && _a !== void 0 ? _a : 'custom')}
|
|
200
|
+
.renderer=${renderer}
|
|
201
|
+
@change=${(evt) => {
|
|
202
|
+
const select = evt.currentTarget;
|
|
203
|
+
const option = options.flat(1).find(option => option.value === select.value);
|
|
204
|
+
if (option) {
|
|
205
|
+
this.edit({
|
|
206
|
+
datetime_start: toAPIDateTime(option.start),
|
|
207
|
+
datetime_end: toAPIDateTime(option.end),
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}}
|
|
211
|
+
>
|
|
212
|
+
</vaadin-select>
|
|
213
|
+
</div>
|
|
214
|
+
`;
|
|
215
|
+
}
|
|
216
|
+
__renderRangeDateTimePicker(type) {
|
|
217
|
+
const field = type === 'end' ? 'datetime_end' : 'datetime_start';
|
|
218
|
+
const error = this.errors.find(error => error.startsWith(`${field}_`));
|
|
219
|
+
const value = this.form[field];
|
|
220
|
+
return html `
|
|
221
|
+
<vaadin-date-time-picker
|
|
222
|
+
date-placeholder=${this.t('select_date')}
|
|
223
|
+
time-placeholder=${this.t('select_time')}
|
|
224
|
+
error-message=${ifDefined(error ? this.t(error) : undefined)}
|
|
225
|
+
data-testid="range:${type}"
|
|
226
|
+
class="w-full"
|
|
227
|
+
label=${this.t(type)}
|
|
228
|
+
step="1"
|
|
229
|
+
?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}
|
|
230
|
+
?readonly=${this.readonlySelector.matches('range', true)}
|
|
231
|
+
.checkValidity=${() => !error}
|
|
232
|
+
.value=${value ? toDateTimePickerValue(value) : ''}
|
|
233
|
+
@keydown=${(evt) => evt.key === 'Enter' && this.submit()}
|
|
234
|
+
@change=${(evt) => {
|
|
235
|
+
const picker = evt.currentTarget;
|
|
236
|
+
this.edit({ [field]: picker.value });
|
|
237
|
+
}}
|
|
238
|
+
>
|
|
239
|
+
</vaadin-date-time-picker>
|
|
240
|
+
`;
|
|
241
|
+
}
|
|
242
|
+
__renderRangeDatePicker(type) {
|
|
243
|
+
const field = type === 'end' ? 'datetime_end' : 'datetime_start';
|
|
244
|
+
const error = this.errors.find(error => error.startsWith(`${field}_`));
|
|
245
|
+
const value = this.form[field];
|
|
246
|
+
return html `
|
|
247
|
+
<vaadin-date-picker
|
|
248
|
+
error-message=${ifDefined(error ? this.t(error) : undefined)}
|
|
249
|
+
placeholder=${this.t('select_date')}
|
|
250
|
+
data-testid="range:${type}"
|
|
251
|
+
class="w-full"
|
|
252
|
+
label=${this.t(type)}
|
|
253
|
+
step="1"
|
|
254
|
+
?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}
|
|
255
|
+
?readonly=${this.readonlySelector.matches('range', true)}
|
|
256
|
+
.checkValidity=${() => !error}
|
|
257
|
+
.value=${value ? toDatePickerValue(value) : ''}
|
|
258
|
+
@keydown=${(evt) => evt.key === 'Enter' && this.submit()}
|
|
259
|
+
@change=${(evt) => {
|
|
260
|
+
const picker = evt.currentTarget;
|
|
261
|
+
const time = type === 'end' ? '23:59:59' : '00:00:00';
|
|
262
|
+
this.edit({ [field]: `${picker.value}T${time}` });
|
|
263
|
+
}}
|
|
264
|
+
>
|
|
265
|
+
</vaadin-date-picker>
|
|
266
|
+
`;
|
|
267
|
+
}
|
|
268
|
+
__renderRange() {
|
|
269
|
+
const renderer = this.__showRangeTime
|
|
270
|
+
? this.__renderRangeDateTimePicker
|
|
271
|
+
: this.__renderRangeDatePicker;
|
|
272
|
+
return html `
|
|
273
|
+
<div data-testid="range">
|
|
274
|
+
${this.renderTemplateOrSlot('range:before')}
|
|
275
|
+
|
|
276
|
+
<x-group frame>
|
|
277
|
+
<foxy-i18n slot="header" lang=${this.lang} key="range" ns=${this.ns}></foxy-i18n>
|
|
278
|
+
|
|
279
|
+
<div class="p-m grid gap-m ${this.__showRangeTime ? 'grid-cols-1' : 'sm-grid-cols-2'}">
|
|
280
|
+
<div class=${this.__showRangeTime ? 'col-span-1' : 'sm-col-span-2'}>
|
|
281
|
+
${this.__renderRangePreset()}
|
|
282
|
+
</div>
|
|
283
|
+
|
|
284
|
+
${renderer.call(this, 'start')} ${renderer.call(this, 'end')}
|
|
285
|
+
|
|
286
|
+
<vaadin-checkbox
|
|
287
|
+
data-testid="range:toggle"
|
|
288
|
+
class="-my-xs w-full ${this.__showRangeTime ? 'col-span-1' : 'sm-col-span-2'}"
|
|
289
|
+
?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}
|
|
290
|
+
?checked=${this.__showRangeTime}
|
|
291
|
+
@change=${(evt) => {
|
|
292
|
+
const checkbox = evt.currentTarget;
|
|
293
|
+
this.__showRangeTime = checkbox.checked;
|
|
294
|
+
}}
|
|
295
|
+
>
|
|
296
|
+
<foxy-i18n lang=${this.lang} key="use_precise_time" ns=${this.ns}></foxy-i18n>
|
|
297
|
+
</vaadin-checkbox>
|
|
298
|
+
</div>
|
|
299
|
+
</x-group>
|
|
300
|
+
|
|
301
|
+
${this.renderTemplateOrSlot('range:after')}
|
|
302
|
+
</div>
|
|
303
|
+
`;
|
|
304
|
+
}
|
|
305
|
+
__renderTimestamps() {
|
|
306
|
+
return html `
|
|
307
|
+
<div>
|
|
308
|
+
${this.renderTemplateOrSlot('timestamps:before')}
|
|
309
|
+
|
|
310
|
+
<x-property-table
|
|
311
|
+
data-testid="timestamps"
|
|
312
|
+
.items=${['date_modified', 'date_created'].map(field => {
|
|
313
|
+
var _a;
|
|
314
|
+
return ({
|
|
315
|
+
name: this.t(field),
|
|
316
|
+
value: ((_a = this.data) === null || _a === void 0 ? void 0 : _a[field]) ? this.t('date', { value: new Date(this.data[field]) })
|
|
317
|
+
: '',
|
|
318
|
+
});
|
|
319
|
+
})}
|
|
320
|
+
>
|
|
321
|
+
</x-property-table>
|
|
322
|
+
|
|
323
|
+
${this.renderTemplateOrSlot('timestamps:after')}
|
|
324
|
+
</div>
|
|
325
|
+
`;
|
|
326
|
+
}
|
|
327
|
+
__renderCreate() {
|
|
328
|
+
const isCleanTemplateInvalid = this.in({ idle: { template: { clean: 'invalid' } } });
|
|
329
|
+
const isDirtyTemplateInvalid = this.in({ idle: { template: { dirty: 'invalid' } } });
|
|
330
|
+
const isCleanSnapshotInvalid = this.in({ idle: { snapshot: { clean: 'invalid' } } });
|
|
331
|
+
const isDirtySnapshotInvalid = this.in({ idle: { snapshot: { dirty: 'invalid' } } });
|
|
332
|
+
const isTemplateInvalid = isCleanTemplateInvalid || isDirtyTemplateInvalid;
|
|
333
|
+
const isSnaphotInvalid = isCleanSnapshotInvalid || isDirtySnapshotInvalid;
|
|
334
|
+
const isInvalid = isTemplateInvalid || isSnaphotInvalid;
|
|
335
|
+
const isIdle = this.in('idle');
|
|
336
|
+
return html `
|
|
337
|
+
<div>
|
|
338
|
+
${this.renderTemplateOrSlot('create:before')}
|
|
339
|
+
|
|
340
|
+
<vaadin-button
|
|
341
|
+
data-testid="create"
|
|
342
|
+
class="w-full"
|
|
343
|
+
theme="primary success"
|
|
344
|
+
?disabled=${!isIdle || isInvalid || this.disabledSelector.matches('create', true)}
|
|
345
|
+
@click=${this.submit}
|
|
346
|
+
>
|
|
347
|
+
<foxy-i18n ns=${this.ns} key="create" lang=${this.lang}></foxy-i18n>
|
|
348
|
+
</vaadin-button>
|
|
349
|
+
|
|
350
|
+
${this.renderTemplateOrSlot('create:after')}
|
|
351
|
+
</div>
|
|
352
|
+
`;
|
|
353
|
+
}
|
|
354
|
+
__renderDelete() {
|
|
355
|
+
return html `
|
|
356
|
+
<div>
|
|
357
|
+
<foxy-internal-confirm-dialog
|
|
358
|
+
data-testid="confirm"
|
|
359
|
+
message="delete_prompt"
|
|
360
|
+
confirm="delete"
|
|
361
|
+
cancel="cancel"
|
|
362
|
+
header="delete"
|
|
363
|
+
theme="primary error"
|
|
364
|
+
lang=${this.lang}
|
|
365
|
+
ns=${this.ns}
|
|
366
|
+
id="confirm"
|
|
367
|
+
@hide=${(evt) => !evt.detail.cancelled && this.delete()}
|
|
368
|
+
>
|
|
369
|
+
</foxy-internal-confirm-dialog>
|
|
370
|
+
|
|
371
|
+
${this.renderTemplateOrSlot('delete:before')}
|
|
372
|
+
|
|
373
|
+
<vaadin-button
|
|
374
|
+
data-testid="delete"
|
|
375
|
+
theme="primary error"
|
|
376
|
+
class="w-full"
|
|
377
|
+
?disabled=${!this.in('idle') || this.disabledSelector.matches('delete', true)}
|
|
378
|
+
@click=${(evt) => {
|
|
379
|
+
const confirm = this.renderRoot.querySelector('#confirm');
|
|
380
|
+
confirm.show(evt.currentTarget);
|
|
381
|
+
}}
|
|
382
|
+
>
|
|
383
|
+
<foxy-i18n ns=${this.ns} key="delete" lang=${this.lang}></foxy-i18n>
|
|
384
|
+
</vaadin-button>
|
|
385
|
+
|
|
386
|
+
${this.renderTemplateOrSlot('delete:after')}
|
|
387
|
+
</div>
|
|
388
|
+
`;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
//# sourceMappingURL=ReportForm.js.map
|