@foxy.io/elements 1.32.0-beta.7 → 1.33.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +1 -1
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-admin-subscription-form.js +1 -1
- package/dist/cdn/foxy-api-browser.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-applied-tax-card.js +1 -1
- package/dist/cdn/foxy-attribute-card.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-billing-address-card.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-card.js +1 -1
- package/dist/cdn/foxy-cart-form.js +2 -2
- package/dist/cdn/foxy-client-card.js +1 -1
- package/dist/cdn/foxy-client-form.js +1 -1
- package/dist/cdn/foxy-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.js +1 -1
- package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
- package/dist/cdn/foxy-coupon-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-card.js +1 -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-card.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +8 -8
- 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 -1
- package/dist/cdn/foxy-filter-attribute-form.js +1 -1
- package/dist/cdn/foxy-form-dialog.js +1 -1
- package/dist/cdn/foxy-generate-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-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 +3 -3
- 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-native-integration-card.js +1 -1
- package/dist/cdn/foxy-native-integration-form.js +1 -1
- package/dist/cdn/foxy-pagination.js +1 -1
- package/dist/cdn/foxy-passkey-card.js +1 -1
- package/dist/cdn/foxy-passkey-form.js +1 -1
- package/dist/cdn/foxy-payment-card-embed.js +1 -1
- package/dist/cdn/foxy-payment-card.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +1 -1
- package/dist/cdn/foxy-reports-table.js +1 -1
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-shipping-container-card.js +1 -1
- package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
- package/dist/cdn/foxy-shipping-method-card.js +1 -1
- package/dist/cdn/foxy-shipping-service-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 +1 -1
- package/dist/cdn/foxy-subscription-settings-form.js +1 -1
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-table.js +1 -1
- package/dist/cdn/foxy-tax-card.js +1 -1
- package/dist/cdn/foxy-tax-form.js +1 -1
- package/dist/cdn/foxy-template-config-form.js +1 -1
- package/dist/cdn/foxy-template-form.js +1 -1
- package/dist/cdn/foxy-template-set-card.js +1 -1
- package/dist/cdn/foxy-template-set-form.js +1 -1
- package/dist/cdn/foxy-transaction-card.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +7 -7
- package/dist/cdn/foxy-update-payment-method-form.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-user-invitation-card.js +1 -1
- package/dist/cdn/foxy-user-invitation-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-e23f134b.js → shared-01cbaba9.js} +1 -1
- package/dist/cdn/shared-0203d3da.js +1 -0
- package/dist/cdn/{shared-d99621f5.js → shared-08be5c32.js} +1 -1
- package/dist/cdn/{shared-86535307.js → shared-0b4a62e9.js} +1 -1
- package/dist/cdn/{shared-b8983324.js → shared-0d43de87.js} +1 -1
- package/dist/cdn/shared-0e83a899.js +1 -0
- package/dist/cdn/{shared-0905537a.js → shared-0f4472d2.js} +1 -1
- package/dist/cdn/{shared-55b38934.js → shared-1024aa20.js} +1 -1
- package/dist/cdn/{shared-9f160fc4.js → shared-1220bf7d.js} +1 -1
- package/dist/cdn/shared-14179b23.js +1 -0
- package/dist/cdn/{shared-b211a5c1.js → shared-14bf37ae.js} +1 -1
- package/dist/cdn/{shared-d01bb075.js → shared-2dd497e5.js} +1 -1
- package/dist/cdn/{shared-9fbbe836.js → shared-30cc688f.js} +1 -1
- package/dist/cdn/{shared-bf34ec93.js → shared-317cb721.js} +1 -1
- package/dist/cdn/{shared-37d8eb8c.js → shared-3493737e.js} +1 -1
- package/dist/cdn/{shared-4358f1b1.js → shared-359793d4.js} +1 -1
- package/dist/cdn/{shared-83dd443e.js → shared-377e3168.js} +1 -1
- package/dist/cdn/{shared-e23ba6a5.js → shared-3a7db771.js} +1 -1
- package/dist/cdn/{shared-19520c9d.js → shared-3bfbd5af.js} +1 -1
- package/dist/cdn/{shared-315b7e61.js → shared-3ca58fb9.js} +1 -1
- package/dist/cdn/{shared-36a1e2b9.js → shared-455856d9.js} +2 -2
- package/dist/cdn/{shared-6636a5bf.js → shared-4b4c8ccf.js} +1 -1
- package/dist/cdn/{shared-cfa5d8f6.js → shared-4b52b410.js} +1 -1
- package/dist/cdn/{shared-9ecba892.js → shared-4beb6fef.js} +1 -1
- package/dist/cdn/{shared-a6e35e24.js → shared-4f852fd5.js} +1 -1
- package/dist/cdn/{shared-438ba90a.js → shared-51efaf53.js} +1 -1
- package/dist/cdn/shared-529f2b48.js +2 -0
- package/dist/cdn/{shared-17c503b1.js → shared-53443b27.js} +1 -1
- package/dist/cdn/{shared-2da66878.js → shared-5452fdfe.js} +1 -1
- package/dist/cdn/shared-54d7dfdb.js +1 -0
- package/dist/cdn/{shared-450227d6.js → shared-57164953.js} +1 -1
- package/dist/cdn/{shared-d9e5dcd8.js → shared-68f01c8d.js} +1 -1
- package/dist/cdn/{shared-f6dbf1f9.js → shared-6a8ccf0c.js} +1 -1
- package/dist/cdn/{shared-7bd9ac17.js → shared-6be8e65e.js} +1 -1
- package/dist/cdn/{shared-d65e8cc0.js → shared-6d7c1a2f.js} +2 -2
- package/dist/cdn/{shared-81dce3af.js → shared-7448fda4.js} +1 -1
- package/dist/cdn/{shared-ea538020.js → shared-78bfc71e.js} +1 -1
- package/dist/cdn/{shared-5508fdff.js → shared-81bf4ca2.js} +1 -1
- package/dist/cdn/{shared-9353023e.js → shared-838bd79c.js} +1 -1
- package/dist/cdn/{shared-20f8e346.js → shared-91321de3.js} +1 -1
- package/dist/cdn/{shared-6acd8127.js → shared-91500a0f.js} +1 -1
- package/dist/cdn/{shared-300253d2.js → shared-935adc3b.js} +1 -1
- package/dist/cdn/{shared-4631ca6a.js → shared-97627d50.js} +1 -1
- package/dist/cdn/{shared-55cad23d.js → shared-9b1b4c9d.js} +1 -1
- package/dist/cdn/{shared-c1ef5741.js → shared-a84befbf.js} +1 -1
- package/dist/cdn/{shared-4e5a4514.js → shared-ad3eea80.js} +1 -1
- package/dist/cdn/{shared-bafbd5de.js → shared-b14bf56d.js} +1 -1
- package/dist/cdn/{shared-768e7a47.js → shared-b2bc3a0e.js} +2 -2
- package/dist/cdn/{shared-a08d2529.js → shared-b384e653.js} +1 -1
- package/dist/cdn/{shared-5dc12ee6.js → shared-b3d36746.js} +1 -1
- package/dist/cdn/{shared-9a996ad7.js → shared-b7dc7e64.js} +5 -5
- package/dist/cdn/{shared-84a1b7ce.js → shared-bb9f0d8b.js} +1 -1
- package/dist/cdn/{shared-f5d4d7f4.js → shared-bbc53ef2.js} +1 -1
- package/dist/cdn/{shared-2b41da9e.js → shared-bdcf2d35.js} +1 -1
- package/dist/cdn/{shared-196a767a.js → shared-c24bc616.js} +1 -1
- package/dist/cdn/{shared-f3c77c1b.js → shared-c671d5c7.js} +1 -1
- package/dist/cdn/{shared-43a7fb95.js → shared-c86db2c0.js} +1 -1
- package/dist/cdn/{shared-c01f7219.js → shared-cacd4407.js} +1 -1
- package/dist/cdn/{shared-38dbd459.js → shared-ceafb6c3.js} +1 -1
- package/dist/cdn/{shared-04d5b361.js → shared-d6985b5f.js} +1 -1
- package/dist/cdn/{shared-b1798b31.js → shared-dbe8536b.js} +1 -1
- package/dist/cdn/{shared-8a54284b.js → shared-e0c93cfa.js} +1 -1
- package/dist/cdn/{shared-1c2aeca6.js → shared-e1dea184.js} +1 -1
- package/dist/cdn/{shared-85b3cc6a.js → shared-e231722c.js} +1 -1
- package/dist/cdn/{shared-334c421b.js → shared-e39760d5.js} +1 -1
- package/dist/cdn/{shared-efaf6205.js → shared-eecba1f5.js} +1 -1
- package/dist/cdn/{shared-1faa9f13.js → shared-f09454f9.js} +1 -1
- package/dist/cdn/{shared-2a819863.js → shared-fd1adc35.js} +1 -1
- package/dist/cdn/translations/admin-subscription-form/en.json +28 -20
- package/dist/cdn/translations/cart-form/en.json +28 -20
- package/dist/cdn/translations/coupon-code-form/en.json +11 -7
- package/dist/cdn/translations/coupon-form/en.json +11 -7
- package/dist/cdn/translations/email-template-form/en.json +99 -27
- package/dist/cdn/translations/gift-card-form/en.json +208 -201
- package/dist/cdn/translations/item-category-form/en.json +1 -1
- package/dist/cdn/translations/item-form/en.json +28 -20
- package/dist/cdn/translations/item-option-form/en.json +28 -20
- package/dist/cdn/translations/store-form/en.json +1 -1
- package/dist/cdn/translations/subscription-settings-form/en.json +6 -6
- package/dist/cdn/translations/template-form/en.json +67 -19
- package/dist/cdn/translations/transaction/en.json +28 -20
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.d.ts +1 -2
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js +0 -3
- package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js.map +1 -1
- package/dist/elements/internal/InternalSourceControl/InternalSourceControl.js +6 -26
- package/dist/elements/internal/InternalSourceControl/InternalSourceControl.js.map +1 -1
- package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js +1 -1
- package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js.map +1 -1
- package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js +0 -1
- package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js.map +1 -1
- package/dist/elements/public/CouponCodeForm/CouponCodeForm.js +4 -1
- package/dist/elements/public/CouponCodeForm/CouponCodeForm.js.map +1 -1
- package/dist/elements/public/CouponCodeForm/index.d.ts +1 -0
- package/dist/elements/public/CouponCodeForm/index.js +1 -0
- package/dist/elements/public/CouponCodeForm/index.js.map +1 -1
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.d.ts +12 -20
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +100 -333
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
- package/dist/elements/public/EmailTemplateForm/index.d.ts +5 -7
- package/dist/elements/public/EmailTemplateForm/index.js +5 -7
- package/dist/elements/public/EmailTemplateForm/index.js.map +1 -1
- package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/InternalEmailTemplateFormAsyncAction.d.ts +10 -0
- package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/InternalEmailTemplateFormAsyncAction.js +49 -0
- package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/InternalEmailTemplateFormAsyncAction.js.map +1 -0
- package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/index.d.ts +5 -0
- package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/index.js +7 -0
- package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/index.js.map +1 -0
- package/dist/elements/public/EmailTemplateForm/types.d.ts +3 -1
- package/dist/elements/public/EmailTemplateForm/types.js.map +1 -1
- package/dist/elements/public/GiftCardForm/GiftCardForm.d.ts +6 -0
- package/dist/elements/public/GiftCardForm/GiftCardForm.js +100 -14
- package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
- package/dist/elements/public/GiftCardForm/index.d.ts +3 -1
- package/dist/elements/public/GiftCardForm/index.js +3 -1
- package/dist/elements/public/GiftCardForm/index.js.map +1 -1
- package/dist/elements/public/ItemOptionForm/ItemOptionForm.js +12 -6
- package/dist/elements/public/ItemOptionForm/ItemOptionForm.js.map +1 -1
- package/dist/elements/public/ItemOptionForm/index.d.ts +1 -0
- package/dist/elements/public/ItemOptionForm/index.js +1 -0
- package/dist/elements/public/ItemOptionForm/index.js.map +1 -1
- package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js +6 -6
- package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js.map +1 -1
- package/dist/elements/public/TemplateForm/TemplateForm.d.ts +10 -18
- package/dist/elements/public/TemplateForm/TemplateForm.js +54 -305
- package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
- package/dist/elements/public/TemplateForm/index.d.ts +4 -6
- package/dist/elements/public/TemplateForm/index.js +4 -6
- package/dist/elements/public/TemplateForm/index.js.map +1 -1
- package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/InternalTemplateFormAsyncAction.d.ts +10 -0
- package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/InternalTemplateFormAsyncAction.js +49 -0
- package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/InternalTemplateFormAsyncAction.js.map +1 -0
- package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/index.d.ts +5 -0
- package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/index.js +7 -0
- package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/index.js.map +1 -0
- package/dist/elements/public/Transaction/Transaction.js +19 -24
- package/dist/elements/public/Transaction/Transaction.js.map +1 -1
- package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js +3 -5
- package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js.map +1 -1
- package/dist/mixins/themeable.js +0 -16
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-4784c497.js +0 -1
- package/dist/cdn/shared-69015a94.js +0 -1
- package/dist/cdn/shared-82c14038.js +0 -1
- package/dist/cdn/shared-dc2f3f55.js +0 -2
- package/dist/cdn/shared-fb3366b1.js +0 -1
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.d.ts +0 -14
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.js +0 -94
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.js.map +0 -1
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.d.ts +0 -6
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.js +0 -8
- package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
|
|
2
|
+
import { NucleonElement } from "../../../NucleonElement/NucleonElement.js";
|
|
3
|
+
import { html } from 'lit-element';
|
|
4
|
+
export class InternalEmailTemplateFormAsyncAction extends InternalControl {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.theme = null;
|
|
8
|
+
this.href = null;
|
|
9
|
+
this.__state = 'idle';
|
|
10
|
+
}
|
|
11
|
+
static get properties() {
|
|
12
|
+
return {
|
|
13
|
+
...super.properties,
|
|
14
|
+
__state: { type: String },
|
|
15
|
+
theme: { type: String },
|
|
16
|
+
href: { type: String },
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
renderControl() {
|
|
20
|
+
const state = this.__state;
|
|
21
|
+
const theme = state === 'fail' ? 'error' : state === 'idle' ? '' : '';
|
|
22
|
+
return html `
|
|
23
|
+
<vaadin-button
|
|
24
|
+
theme=${`${this.theme} ${theme !== null && theme !== void 0 ? theme : ''}`.trim()}
|
|
25
|
+
?disabled=${state === 'busy' || this.disabled}
|
|
26
|
+
@click=${this.__submit}
|
|
27
|
+
>
|
|
28
|
+
<foxy-i18n key=${state} infer=""></foxy-i18n>
|
|
29
|
+
</vaadin-button>
|
|
30
|
+
`;
|
|
31
|
+
}
|
|
32
|
+
async __submit() {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
if (this.__state === 'busy')
|
|
35
|
+
return;
|
|
36
|
+
try {
|
|
37
|
+
this.__state = 'busy';
|
|
38
|
+
const api = new NucleonElement.API(this);
|
|
39
|
+
const response = await api.fetch((_a = this.href) !== null && _a !== void 0 ? _a : '', { method: 'POST' });
|
|
40
|
+
this.__state = response.ok ? 'idle' : 'fail';
|
|
41
|
+
if (response.ok)
|
|
42
|
+
(_b = this.nucleon) === null || _b === void 0 ? void 0 : _b.refresh();
|
|
43
|
+
}
|
|
44
|
+
catch (_c) {
|
|
45
|
+
this.__state = 'fail';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=InternalEmailTemplateFormAsyncAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalEmailTemplateFormAsyncAction.js","sourceRoot":"","sources":["../../../../../../src/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/InternalEmailTemplateFormAsyncAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,cAAc,EAAE,kDAA+C;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,MAAM,OAAO,oCAAqC,SAAQ,eAAe;IAAzE;;QAUE,UAAK,GAAkB,IAAI,CAAC;QAE5B,SAAI,GAAkB,IAAI,CAAC;QAEnB,YAAO,GAAG,MAAM,CAAC;IAgC3B,CAAC;IA7CC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CAAC;IACJ,CAAC;IAQD,aAAa;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtE,OAAO,IAAI,CAAA;;gBAEC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,EAAE,CAAC,IAAI,EAAE;oBACjC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ;iBACpC,IAAI,CAAC,QAAQ;;yBAEL,KAAK;;KAEzB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ;;QACpB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO;QAEpC,IAAI;YACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YAEtB,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,OAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAEtE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7C,IAAI,QAAQ,CAAC,EAAE;gBAAE,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,GAAG;SAC1C;QAAC,WAAM;YACN,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACvB;IACH,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport { html } from 'lit-element';\n\nexport class InternalEmailTemplateFormAsyncAction extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __state: { type: String },\n theme: { type: String },\n href: { type: String },\n };\n }\n\n theme: string | null = null;\n\n href: string | null = null;\n\n private __state = 'idle';\n\n renderControl(): TemplateResult {\n const state = this.__state;\n const theme = state === 'fail' ? 'error' : state === 'idle' ? '' : '';\n\n return html`\n <vaadin-button\n theme=${`${this.theme} ${theme ?? ''}`.trim()}\n ?disabled=${state === 'busy' || this.disabled}\n @click=${this.__submit}\n >\n <foxy-i18n key=${state} infer=\"\"></foxy-i18n>\n </vaadin-button>\n `;\n }\n\n private async __submit(): Promise<void> {\n if (this.__state === 'busy') return;\n\n try {\n this.__state = 'busy';\n\n const api = new NucleonElement.API(this);\n const response = await api.fetch(this.href ?? '', { method: 'POST' });\n\n this.__state = response.ok ? 'idle' : 'fail';\n if (response.ok) this.nucleon?.refresh();\n } catch {\n this.__state = 'fail';\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import '@vaadin/vaadin-button';
|
|
2
|
+
import '../../../../internal/InternalControl/index';
|
|
3
|
+
import '../../../I18n/index';
|
|
4
|
+
import { InternalEmailTemplateFormAsyncAction as Control } from './InternalEmailTemplateFormAsyncAction';
|
|
5
|
+
export { Control as InternalEmailTemplateFormAsyncAction };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import '@vaadin/vaadin-button';
|
|
2
|
+
import "../../../../internal/InternalControl/index.js";
|
|
3
|
+
import "../../../I18n/index.js";
|
|
4
|
+
import { InternalEmailTemplateFormAsyncAction as Control } from "./InternalEmailTemplateFormAsyncAction.js";
|
|
5
|
+
customElements.define('foxy-internal-email-template-form-async-action', Control);
|
|
6
|
+
export { Control as InternalEmailTemplateFormAsyncAction };
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,uDAAoD;AACpD,gCAA6B;AAE7B,OAAO,EAAE,oCAAoC,IAAI,OAAO,EAAE,kDAA+C;AAEzG,cAAc,CAAC,MAAM,CAAC,gDAAgD,EAAE,OAAO,CAAC,CAAC;AAEjF,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\nimport '../../../../internal/InternalControl/index';\nimport '../../../I18n/index';\n\nimport { InternalEmailTemplateFormAsyncAction as Control } from './InternalEmailTemplateFormAsyncAction';\n\ncustomElements.define('foxy-internal-email-template-form-async-action', Control);\n\nexport { Control as InternalEmailTemplateFormAsyncAction };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/EmailTemplateForm/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.EmailTemplate
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/EmailTemplateForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\n// TODO: simplify once SDK types are updated\nexport type Data = Resource<Rels.EmailTemplate> & { subject: string };\n"]}
|
|
@@ -17,6 +17,12 @@ export declare class GiftCardForm extends Base<Data> {
|
|
|
17
17
|
static get v8n(): NucleonV8N<Data>;
|
|
18
18
|
/** Returns a `fx:customer` Resource URL for a Customer ID. */
|
|
19
19
|
getCustomerHref: (id: number | string) => string;
|
|
20
|
+
private readonly __provisioningMaxBalanceValueGetter;
|
|
21
|
+
private readonly __provisioningMaxBalanceValueSetter;
|
|
22
|
+
private readonly __provisioningMinBalanceValueGetter;
|
|
23
|
+
private readonly __provisioningMinBalanceValueSetter;
|
|
24
|
+
private readonly __provisioningToggleValueGetter;
|
|
25
|
+
private readonly __provisioningToggleValueSetter;
|
|
20
26
|
private readonly __productCodeRestrictionsGetValue;
|
|
21
27
|
private readonly __productCodeRestrictionsSetValue;
|
|
22
28
|
private readonly __currencyCodeGetValue;
|
|
@@ -21,6 +21,55 @@ export class GiftCardForm extends Base {
|
|
|
21
21
|
this.getCustomerHref = id => {
|
|
22
22
|
return `https://api.foxycart.com/customers/${id}`;
|
|
23
23
|
};
|
|
24
|
+
this.__provisioningMaxBalanceValueGetter = () => {
|
|
25
|
+
var _a;
|
|
26
|
+
return (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_max;
|
|
27
|
+
};
|
|
28
|
+
this.__provisioningMaxBalanceValueSetter = (newMax) => {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
const newMin = (_b = (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_min) !== null && _b !== void 0 ? _b : newMax;
|
|
31
|
+
this.edit({
|
|
32
|
+
provisioning_config: {
|
|
33
|
+
allow_autoprovisioning: true,
|
|
34
|
+
initial_balance_min: newMin > newMax ? newMax : newMin,
|
|
35
|
+
initial_balance_max: newMax,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
this.__provisioningMinBalanceValueGetter = () => {
|
|
40
|
+
var _a;
|
|
41
|
+
return (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_min;
|
|
42
|
+
};
|
|
43
|
+
this.__provisioningMinBalanceValueSetter = (newMin) => {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
const newMax = (_b = (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_max) !== null && _b !== void 0 ? _b : newMin;
|
|
46
|
+
this.edit({
|
|
47
|
+
provisioning_config: {
|
|
48
|
+
allow_autoprovisioning: true,
|
|
49
|
+
initial_balance_min: newMin,
|
|
50
|
+
initial_balance_max: newMax < newMin ? newMin : newMax,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
this.__provisioningToggleValueGetter = () => {
|
|
55
|
+
var _a;
|
|
56
|
+
return !!((_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.allow_autoprovisioning);
|
|
57
|
+
};
|
|
58
|
+
this.__provisioningToggleValueSetter = (newValue) => {
|
|
59
|
+
var _a, _b, _c, _d;
|
|
60
|
+
if (newValue) {
|
|
61
|
+
this.edit({
|
|
62
|
+
provisioning_config: {
|
|
63
|
+
allow_autoprovisioning: true,
|
|
64
|
+
initial_balance_min: (_b = (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_min) !== null && _b !== void 0 ? _b : 0,
|
|
65
|
+
initial_balance_max: (_d = (_c = this.form.provisioning_config) === null || _c === void 0 ? void 0 : _c.initial_balance_max) !== null && _d !== void 0 ? _d : 0,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.edit({ provisioning_config: null });
|
|
71
|
+
}
|
|
72
|
+
};
|
|
24
73
|
this.__productCodeRestrictionsGetValue = () => {
|
|
25
74
|
var _a;
|
|
26
75
|
return (_a = this.form.product_code_restrictions) === null || _a === void 0 ? void 0 : _a.split(',').filter(v => !!v.trim()).map(value => ({
|
|
@@ -112,10 +161,14 @@ export class GiftCardForm extends Base {
|
|
|
112
161
|
];
|
|
113
162
|
}
|
|
114
163
|
get hiddenSelector() {
|
|
164
|
+
var _a;
|
|
115
165
|
const alwaysMatch = [super.hiddenSelector.toString()];
|
|
116
166
|
if (!this.data) {
|
|
117
167
|
alwaysMatch.push('codes', 'category-restrictions', 'attributes');
|
|
118
168
|
}
|
|
169
|
+
if (!((_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.allow_autoprovisioning)) {
|
|
170
|
+
alwaysMatch.push('provisioning:sku', 'provisioning:min-balance', 'provisioning:max-balance');
|
|
171
|
+
}
|
|
119
172
|
return new BooleanSelector(alwaysMatch.join(' ').trim());
|
|
120
173
|
}
|
|
121
174
|
get headerSubtitleOptions() {
|
|
@@ -143,40 +196,73 @@ export class GiftCardForm extends Base {
|
|
|
143
196
|
`;
|
|
144
197
|
}
|
|
145
198
|
renderBody() {
|
|
146
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
199
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
147
200
|
let codesUrl;
|
|
148
201
|
try {
|
|
149
202
|
const url = new URL((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:gift_card_codes'].href) !== null && _b !== void 0 ? _b : '');
|
|
150
203
|
url.searchParams.set('order', 'date_created desc');
|
|
151
204
|
codesUrl = url.toString();
|
|
152
205
|
}
|
|
153
|
-
catch (
|
|
206
|
+
catch (_l) {
|
|
154
207
|
codesUrl = undefined;
|
|
155
208
|
}
|
|
156
209
|
return html `
|
|
157
210
|
${this.renderHeader()}
|
|
158
211
|
|
|
159
|
-
<
|
|
160
|
-
<foxy-internal-text-control
|
|
212
|
+
<foxy-internal-summary-control infer="general">
|
|
213
|
+
<foxy-internal-text-control layout="summary-item" infer="name">
|
|
161
214
|
</foxy-internal-text-control>
|
|
162
215
|
|
|
163
216
|
<foxy-internal-select-control
|
|
164
217
|
property="currency_code"
|
|
218
|
+
layout="summary-item"
|
|
165
219
|
infer="currency"
|
|
166
220
|
.getValue=${this.__currencyCodeGetValue}
|
|
167
221
|
.options=${currencies.map(value => ({
|
|
168
|
-
label: this.t(`currency.code_${value}`),
|
|
222
|
+
label: this.t(`general.currency.code_${value}`),
|
|
169
223
|
value,
|
|
170
224
|
}))}
|
|
171
225
|
>
|
|
172
226
|
</foxy-internal-select-control>
|
|
173
227
|
|
|
174
|
-
<foxy-internal-frequency-control
|
|
228
|
+
<foxy-internal-frequency-control
|
|
229
|
+
property="expires_after"
|
|
230
|
+
layout="summary-item"
|
|
231
|
+
infer="expires"
|
|
232
|
+
>
|
|
175
233
|
</foxy-internal-frequency-control>
|
|
176
|
-
</
|
|
234
|
+
</foxy-internal-summary-control>
|
|
177
235
|
|
|
178
|
-
<foxy-internal-
|
|
179
|
-
|
|
236
|
+
<foxy-internal-summary-control infer="provisioning">
|
|
237
|
+
<foxy-internal-switch-control
|
|
238
|
+
infer="toggle"
|
|
239
|
+
.getValue=${this.__provisioningToggleValueGetter}
|
|
240
|
+
.setValue=${this.__provisioningToggleValueSetter}
|
|
241
|
+
>
|
|
242
|
+
</foxy-internal-switch-control>
|
|
243
|
+
|
|
244
|
+
<foxy-internal-text-control layout="summary-item" infer="sku"></foxy-internal-text-control>
|
|
245
|
+
|
|
246
|
+
<foxy-internal-number-control
|
|
247
|
+
layout="summary-item"
|
|
248
|
+
suffix=${ifDefined((_c = this.form.currency_code) === null || _c === void 0 ? void 0 : _c.toUpperCase())}
|
|
249
|
+
infer="min-balance"
|
|
250
|
+
min="0"
|
|
251
|
+
.getValue=${this.__provisioningMinBalanceValueGetter}
|
|
252
|
+
.setValue=${this.__provisioningMinBalanceValueSetter}
|
|
253
|
+
>
|
|
254
|
+
</foxy-internal-number-control>
|
|
255
|
+
|
|
256
|
+
<foxy-internal-number-control
|
|
257
|
+
layout="summary-item"
|
|
258
|
+
suffix=${ifDefined((_d = this.form.currency_code) === null || _d === void 0 ? void 0 : _d.toUpperCase())}
|
|
259
|
+
infer="max-balance"
|
|
260
|
+
min="0"
|
|
261
|
+
.getValue=${this.__provisioningMaxBalanceValueGetter}
|
|
262
|
+
.setValue=${this.__provisioningMaxBalanceValueSetter}
|
|
263
|
+
>
|
|
264
|
+
</foxy-internal-number-control>
|
|
265
|
+
</foxy-internal-summary-control>
|
|
180
266
|
|
|
181
267
|
<foxy-internal-async-list-control
|
|
182
268
|
first=${codesUrl}
|
|
@@ -206,10 +292,10 @@ export class GiftCardForm extends Base {
|
|
|
206
292
|
foreign-key-for-uri="item_category_uri"
|
|
207
293
|
foreign-key-for-id="item_category_id"
|
|
208
294
|
own-key-for-uri="gift_card_uri"
|
|
209
|
-
options-href=${ifDefined((
|
|
210
|
-
links-href=${ifDefined((
|
|
295
|
+
options-href=${ifDefined((_f = (_e = this.__storeLoader) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f._links['fx:item_categories'].href)}
|
|
296
|
+
links-href=${ifDefined((_g = this.data) === null || _g === void 0 ? void 0 : _g._links['fx:gift_card_item_categories'].href)}
|
|
211
297
|
embed-key="fx:gift_card_item_categories"
|
|
212
|
-
own-uri=${ifDefined((
|
|
298
|
+
own-uri=${ifDefined((_h = this.data) === null || _h === void 0 ? void 0 : _h._links.self.href)}
|
|
213
299
|
infer="category-restrictions"
|
|
214
300
|
limit="5"
|
|
215
301
|
item="foxy-item-category-card"
|
|
@@ -217,7 +303,7 @@ export class GiftCardForm extends Base {
|
|
|
217
303
|
</foxy-internal-async-resource-link-list-control>
|
|
218
304
|
|
|
219
305
|
<foxy-internal-async-list-control
|
|
220
|
-
first=${ifDefined((
|
|
306
|
+
first=${ifDefined((_j = this.data) === null || _j === void 0 ? void 0 : _j._links['fx:attributes'].href)}
|
|
221
307
|
limit="5"
|
|
222
308
|
infer="attributes"
|
|
223
309
|
item="foxy-attribute-card"
|
|
@@ -231,7 +317,7 @@ export class GiftCardForm extends Base {
|
|
|
231
317
|
<foxy-nucleon
|
|
232
318
|
infer=""
|
|
233
319
|
class="hidden"
|
|
234
|
-
href=${ifDefined((
|
|
320
|
+
href=${ifDefined((_k = this.data) === null || _k === void 0 ? void 0 : _k._links['fx:store'].href)}
|
|
235
321
|
id=${this.__storeLoaderId}
|
|
236
322
|
@update=${() => this.requestUpdate()}
|
|
237
323
|
>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GiftCardForm.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/GiftCardForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { SwipeAction } from '../../internal/InternalAsyncListControl/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { Option, Type } from '../QueryBuilder/types';\nimport { html } from 'lit-element';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { currencies } from './currencies';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nconst NS = 'gift-card-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing gift cards (`fx:gift_card`).\n *\n * @element foxy-gift-card-form\n * @since 1.15.0\n */\nexport class GiftCardForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getCustomerHref: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n\n form => {\n if (form.provisioning_config?.allow_autoprovisioning) {\n if (!form.sku) return 'sku:v8n_required';\n if (form.sku.length > 200) return 'sku:v8n_too_long';\n }\n\n return true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_min;\n return typeof v === 'number' && v < 0 ? 'min-balance:v8n_negative' : true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_max;\n return typeof v === 'number' && v < 0 ? 'max-balance:v8n_negative' : true;\n },\n\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ];\n }\n\n /** Returns a `fx:customer` Resource URL for a Customer ID. */\n getCustomerHref: (id: number | string) => string = id => {\n return `https://api.foxycart.com/customers/${id}`;\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __currencyCodeGetValue = () => {\n return this.form.currency_code?.toLowerCase();\n };\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'current_balance', path: 'current_balance', type: Type.Number },\n { label: 'end_date', path: 'end_date', type: Type.Date },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __codesActions: SwipeAction<Resource<Rels.GiftCardCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__codesActions[0].state = 'busy';\n this.__codesActions = [...this.__codesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__codesActions[0].state = 'end';\n } catch {\n this.__codesActions[0].state = 'error';\n } finally {\n this.__codesActions = [...this.__codesActions];\n setTimeout(() => {\n this.__codesActions[0].state = 'idle';\n this.__codesActions = [...this.__codesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.data) {\n alwaysMatch.push('codes', 'category-restrictions', 'attributes');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { id: this.headerCopyIdValue };\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n .related=${[data._links['fx:gift_card_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:gift_card_codes'].href}\n infer=\"import\"\n form=\"foxy-gift-card-codes-form\"\n .related=${[data._links['fx:gift_card_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:gift_card_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <div class=\"grid grid-cols-1 sm-grid-cols-3 md-grid-cols-4 gap-m\">\n <foxy-internal-text-control infer=\"name\" class=\"md-col-span-2\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n property=\"currency_code\"\n infer=\"currency\"\n .getValue=${this.__currencyCodeGetValue}\n .options=${currencies.map(value => ({\n label: this.t(`currency.code_${value}`),\n value,\n }))}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-frequency-control property=\"expires_after\" infer=\"expires\">\n </foxy-internal-frequency-control>\n </div>\n\n <foxy-internal-gift-card-form-provisioning-control infer=\"provisioning\">\n </foxy-internal-gift-card-form-provisioning-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"codes\"\n item=\"foxy-gift-card-code-card\"\n form=\"foxy-gift-card-code-form\"\n alert\n .formProps=${{ '.getCustomerHref': this.getCustomerHref }}\n .actions=${this.__codesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"gift_card_uri\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:gift_card_item_categories'].href)}\n embed-key=\"fx:gift_card_item_categories\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GiftCardForm.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/GiftCardForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { SwipeAction } from '../../internal/InternalAsyncListControl/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { Option, Type } from '../QueryBuilder/types';\nimport { html } from 'lit-element';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { currencies } from './currencies';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nconst NS = 'gift-card-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing gift cards (`fx:gift_card`).\n *\n * @element foxy-gift-card-form\n * @since 1.15.0\n */\nexport class GiftCardForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getCustomerHref: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n\n form => {\n if (form.provisioning_config?.allow_autoprovisioning) {\n if (!form.sku) return 'sku:v8n_required';\n if (form.sku.length > 200) return 'sku:v8n_too_long';\n }\n\n return true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_min;\n return typeof v === 'number' && v < 0 ? 'min-balance:v8n_negative' : true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_max;\n return typeof v === 'number' && v < 0 ? 'max-balance:v8n_negative' : true;\n },\n\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ];\n }\n\n /** Returns a `fx:customer` Resource URL for a Customer ID. */\n getCustomerHref: (id: number | string) => string = id => {\n return `https://api.foxycart.com/customers/${id}`;\n };\n\n private readonly __provisioningMaxBalanceValueGetter = () => {\n return this.form.provisioning_config?.initial_balance_max;\n };\n\n private readonly __provisioningMaxBalanceValueSetter = (newMax: number) => {\n const newMin = this.form.provisioning_config?.initial_balance_min ?? newMax;\n\n this.edit({\n provisioning_config: {\n allow_autoprovisioning: true,\n initial_balance_min: newMin > newMax ? newMax : newMin,\n initial_balance_max: newMax,\n },\n });\n };\n\n private readonly __provisioningMinBalanceValueGetter = () => {\n return this.form.provisioning_config?.initial_balance_min;\n };\n\n private readonly __provisioningMinBalanceValueSetter = (newMin: number) => {\n const newMax = this.form.provisioning_config?.initial_balance_max ?? newMin;\n\n this.edit({\n provisioning_config: {\n allow_autoprovisioning: true,\n initial_balance_min: newMin,\n initial_balance_max: newMax < newMin ? newMin : newMax,\n },\n });\n };\n\n private readonly __provisioningToggleValueGetter = () => {\n return !!this.form.provisioning_config?.allow_autoprovisioning;\n };\n\n private readonly __provisioningToggleValueSetter = (newValue: boolean) => {\n if (newValue) {\n this.edit({\n provisioning_config: {\n allow_autoprovisioning: true,\n initial_balance_min: this.form.provisioning_config?.initial_balance_min ?? 0,\n initial_balance_max: this.form.provisioning_config?.initial_balance_max ?? 0,\n },\n });\n } else {\n this.edit({ provisioning_config: null });\n }\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __currencyCodeGetValue = () => {\n return this.form.currency_code?.toLowerCase();\n };\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'current_balance', path: 'current_balance', type: Type.Number },\n { label: 'end_date', path: 'end_date', type: Type.Date },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __codesActions: SwipeAction<Resource<Rels.GiftCardCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__codesActions[0].state = 'busy';\n this.__codesActions = [...this.__codesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__codesActions[0].state = 'end';\n } catch {\n this.__codesActions[0].state = 'error';\n } finally {\n this.__codesActions = [...this.__codesActions];\n setTimeout(() => {\n this.__codesActions[0].state = 'idle';\n this.__codesActions = [...this.__codesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.data) {\n alwaysMatch.push('codes', 'category-restrictions', 'attributes');\n }\n\n if (!this.form.provisioning_config?.allow_autoprovisioning) {\n alwaysMatch.push('provisioning:sku', 'provisioning:min-balance', 'provisioning:max-balance');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { id: this.headerCopyIdValue };\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n .related=${[data._links['fx:gift_card_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:gift_card_codes'].href}\n infer=\"import\"\n form=\"foxy-gift-card-codes-form\"\n .related=${[data._links['fx:gift_card_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:gift_card_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"name\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n property=\"currency_code\"\n layout=\"summary-item\"\n infer=\"currency\"\n .getValue=${this.__currencyCodeGetValue}\n .options=${currencies.map(value => ({\n label: this.t(`general.currency.code_${value}`),\n value,\n }))}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-frequency-control\n property=\"expires_after\"\n layout=\"summary-item\"\n infer=\"expires\"\n >\n </foxy-internal-frequency-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"provisioning\">\n <foxy-internal-switch-control\n infer=\"toggle\"\n .getValue=${this.__provisioningToggleValueGetter}\n .setValue=${this.__provisioningToggleValueSetter}\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"sku\"></foxy-internal-text-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${ifDefined(this.form.currency_code?.toUpperCase())}\n infer=\"min-balance\"\n min=\"0\"\n .getValue=${this.__provisioningMinBalanceValueGetter}\n .setValue=${this.__provisioningMinBalanceValueSetter}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${ifDefined(this.form.currency_code?.toUpperCase())}\n infer=\"max-balance\"\n min=\"0\"\n .getValue=${this.__provisioningMaxBalanceValueGetter}\n .setValue=${this.__provisioningMaxBalanceValueSetter}\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"codes\"\n item=\"foxy-gift-card-code-card\"\n form=\"foxy-gift-card-code-form\"\n alert\n .formProps=${{ '.getCustomerHref': this.getCustomerHref }}\n .actions=${this.__codesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"gift_card_uri\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:gift_card_item_categories'].href)}\n embed-key=\"fx:gift_card_item_categories\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
|
|
@@ -3,7 +3,10 @@ import '../../internal/InternalBulkAddActionControl/index';
|
|
|
3
3
|
import '../../internal/InternalEditableListControl/index';
|
|
4
4
|
import '../../internal/InternalAsyncListControl/index';
|
|
5
5
|
import '../../internal/InternalFrequencyControl/index';
|
|
6
|
+
import '../../internal/InternalSummaryControl/index';
|
|
6
7
|
import '../../internal/InternalSelectControl/index';
|
|
8
|
+
import '../../internal/InternalSwitchControl/index';
|
|
9
|
+
import '../../internal/InternalNumberControl/index';
|
|
7
10
|
import '../../internal/InternalTextControl/index';
|
|
8
11
|
import '../../internal/InternalForm/index';
|
|
9
12
|
import '../GenerateCodesForm/index';
|
|
@@ -14,6 +17,5 @@ import '../GiftCardCodeForm/index';
|
|
|
14
17
|
import '../NucleonElement/index';
|
|
15
18
|
import '../AttributeCard/index';
|
|
16
19
|
import '../AttributeForm/index';
|
|
17
|
-
import './internal/InternalGiftCardFormProvisioningControl/index';
|
|
18
20
|
import { GiftCardForm } from './GiftCardForm';
|
|
19
21
|
export { GiftCardForm };
|
|
@@ -3,7 +3,10 @@ import "../../internal/InternalBulkAddActionControl/index.js";
|
|
|
3
3
|
import "../../internal/InternalEditableListControl/index.js";
|
|
4
4
|
import "../../internal/InternalAsyncListControl/index.js";
|
|
5
5
|
import "../../internal/InternalFrequencyControl/index.js";
|
|
6
|
+
import "../../internal/InternalSummaryControl/index.js";
|
|
6
7
|
import "../../internal/InternalSelectControl/index.js";
|
|
8
|
+
import "../../internal/InternalSwitchControl/index.js";
|
|
9
|
+
import "../../internal/InternalNumberControl/index.js";
|
|
7
10
|
import "../../internal/InternalTextControl/index.js";
|
|
8
11
|
import "../../internal/InternalForm/index.js";
|
|
9
12
|
import "../GenerateCodesForm/index.js";
|
|
@@ -14,7 +17,6 @@ import "../GiftCardCodeForm/index.js";
|
|
|
14
17
|
import "../NucleonElement/index.js";
|
|
15
18
|
import "../AttributeCard/index.js";
|
|
16
19
|
import "../AttributeForm/index.js";
|
|
17
|
-
import "./internal/InternalGiftCardFormProvisioningControl/index.js";
|
|
18
20
|
import { GiftCardForm } from "./GiftCardForm.js";
|
|
19
21
|
customElements.define('foxy-gift-card-form', GiftCardForm);
|
|
20
22
|
export { GiftCardForm };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,8DAA2D;AAC3D,6DAA0D;AAC1D,0DAAuD;AACvD,0DAAuD;AACvD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,uCAAoC;AACpC,uCAAoC;AACpC,sCAAmC;AACnC,sCAAmC;AACnC,sCAAmC;AACnC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAEhC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,8DAA2D;AAC3D,6DAA0D;AAC1D,0DAAuD;AACvD,0DAAuD;AACvD,wDAAqD;AACrD,uDAAoD;AACpD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,uCAAoC;AACpC,uCAAoC;AACpC,sCAAmC;AACnC,sCAAmC;AACnC,sCAAmC;AACnC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAEhC,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAE9C,cAAc,CAAC,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncResourceLinkListControl/index';\nimport '../../internal/InternalBulkAddActionControl/index';\nimport '../../internal/InternalEditableListControl/index';\nimport '../../internal/InternalAsyncListControl/index';\nimport '../../internal/InternalFrequencyControl/index';\nimport '../../internal/InternalSummaryControl/index';\nimport '../../internal/InternalSelectControl/index';\nimport '../../internal/InternalSwitchControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../GenerateCodesForm/index';\nimport '../GiftCardCodesForm/index';\nimport '../ItemCategoryCard/index';\nimport '../GiftCardCodeCard/index';\nimport '../GiftCardCodeForm/index';\nimport '../NucleonElement/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\n\nimport { GiftCardForm } from './GiftCardForm';\n\ncustomElements.define('foxy-gift-card-form', GiftCardForm);\n\nexport { GiftCardForm };\n"]}
|
|
@@ -20,12 +20,18 @@ export class ItemOptionForm extends TranslatableMixin(InternalForm, 'item-option
|
|
|
20
20
|
return html `
|
|
21
21
|
${this.renderHeader()}
|
|
22
22
|
|
|
23
|
-
<
|
|
24
|
-
<foxy-internal-text-control
|
|
25
|
-
<foxy-internal-text-control
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
<foxy-internal-summary-control infer="general">
|
|
24
|
+
<foxy-internal-text-control layout="summary-item" infer="name"></foxy-internal-text-control>
|
|
25
|
+
<foxy-internal-text-control layout="summary-item" infer="value">
|
|
26
|
+
</foxy-internal-text-control>
|
|
27
|
+
</foxy-internal-summary-control>
|
|
28
|
+
|
|
29
|
+
<foxy-internal-summary-control infer="mods">
|
|
30
|
+
<foxy-internal-number-control layout="summary-item" infer="price-mod">
|
|
31
|
+
</foxy-internal-number-control>
|
|
32
|
+
<foxy-internal-number-control layout="summary-item" infer="weight-mod">
|
|
33
|
+
</foxy-internal-number-control>
|
|
34
|
+
</foxy-internal-summary-control>
|
|
29
35
|
|
|
30
36
|
${super.renderBody()}
|
|
31
37
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemOptionForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionForm/ItemOptionForm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,iBAAiB,CAAC,YAAY,EAAE,kBAAkB,CAAO;IAC3F,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB;YAC3C,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,mBAAmB;YAChE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAoB;YAC7C,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,oBAAoB;SACpE,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,YAAY,EAAE
|
|
1
|
+
{"version":3,"file":"ItemOptionForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionForm/ItemOptionForm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,iBAAiB,CAAC,YAAY,EAAE,kBAAkB,CAAO;IAC3F,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB;YAC3C,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,mBAAmB;YAChE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAoB;YAC7C,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,oBAAoB;SACpE,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,YAAY,EAAE;;;;;;;;;;;;;;;QAenB,KAAK,CAAC,UAAU,EAAE;KACrB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\n/**\n * Form element for creating or editing item options (`fx:item_option`).\n *\n * @element foxy-item-option-form\n * @since 1.17.0\n */\nexport class ItemOptionForm extends TranslatableMixin(InternalForm, 'item-option-form')<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => (!!v && v.length <= 100) || 'name:v8n_too_long',\n ({ value: v }) => !!v || 'value:v8n_required',\n ({ value: v }) => (!!v && v.length <= 1024) || 'value:v8n_too_long',\n ];\n }\n\n renderBody(): TemplateResult {\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"name\"></foxy-internal-text-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"value\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"mods\">\n <foxy-internal-number-control layout=\"summary-item\" infer=\"price-mod\">\n </foxy-internal-number-control>\n <foxy-internal-number-control layout=\"summary-item\" infer=\"weight-mod\">\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n ${super.renderBody()}\n `;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionForm/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport { ItemOptionForm } from './ItemOptionForm';\n\ncustomElements.define('foxy-item-option-form', ItemOptionForm);\n\nexport { ItemOptionForm };\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionForm/index.ts"],"names":[],"mappings":"AAAA,wDAAqD;AACrD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import '../../internal/InternalSummaryControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport { ItemOptionForm } from './ItemOptionForm';\n\ncustomElements.define('foxy-item-option-form', ItemOptionForm);\n\nexport { ItemOptionForm };\n"]}
|
|
@@ -124,6 +124,12 @@ export class SubscriptionSettingsForm extends Base {
|
|
|
124
124
|
>
|
|
125
125
|
</foxy-internal-switch-control>
|
|
126
126
|
|
|
127
|
+
<foxy-internal-switch-control
|
|
128
|
+
infer="send-email-receipts-for-automated-billing"
|
|
129
|
+
helper-text-as-tooltip
|
|
130
|
+
>
|
|
131
|
+
</foxy-internal-switch-control>
|
|
132
|
+
|
|
127
133
|
<foxy-internal-switch-control
|
|
128
134
|
infer="prevent-customer-cancel-with-past-due"
|
|
129
135
|
helper-text-as-tooltip
|
|
@@ -158,12 +164,6 @@ export class SubscriptionSettingsForm extends Base {
|
|
|
158
164
|
</foxy-internal-summary-control>
|
|
159
165
|
|
|
160
166
|
<foxy-internal-summary-control infer="emails-group">
|
|
161
|
-
<foxy-internal-switch-control
|
|
162
|
-
infer="send-email-receipts-for-automated-billing"
|
|
163
|
-
helper-text-as-tooltip
|
|
164
|
-
>
|
|
165
|
-
</foxy-internal-switch-control>
|
|
166
|
-
|
|
167
167
|
<foxy-internal-editable-list-control
|
|
168
168
|
layout="summary-item"
|
|
169
169
|
infer="reminder-email-schedule"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionSettingsForm.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Option } from '../../internal/InternalCheckboxGroupControl/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nconst NS = 'subscription-settings-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for managing `fx:subscription_settings` resources.\n *\n * @element foxy-subscription-settings-form\n * @since 1.21.0\n */\nexport class SubscriptionSettingsForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ expiring_soon_payment_reminder_schedule: v }) => {\n return !v || v.length <= 100 || 'expiring-soon-payment-reminder-schedule:v8n_too_long';\n },\n ({ reattempt_bypass_strings: v }) => {\n return !v || v.length <= 400 || 'reattempt-bypass-strings:v8n_too_long';\n },\n ({ reminder_email_schedule: v }) => {\n return !v || v.length <= 100 || 'reminder-email-schedule:v8n_too_long';\n },\n ({ reattempt_schedule: v }) => {\n return !v || v.length <= 100 || 'reattempt-schedule:v8n_too_long';\n },\n ];\n }\n\n private __pastDueAmountHandlingOptions: Option[] = [\n { label: 'option_increment', value: 'increment' },\n { label: 'option_replace', value: 'replace' },\n ];\n\n private __positiveIntegerInputParams = {\n type: 'number',\n step: '1',\n min: '0',\n };\n\n private __expiringSoonPaymentReminderScheduleGetValue = () => {\n const days = this.form.expiring_soon_payment_reminder_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayB - dayA)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __expiringSoonPaymentReminderScheduleSetValue = (newItems: Item[]) => {\n this.edit({\n expiring_soon_payment_reminder_schedule: newItems.map(({ value }) => value).join(),\n });\n };\n\n private __reminderEmailScheduleGetValue = () => {\n const days = this.form.reminder_email_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayA - dayB)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __reminderEmailScheduleSetValue = (newItems: Item[]) => {\n this.edit({ reminder_email_schedule: newItems.map(({ value }) => value).join() });\n };\n\n private __reattemptScheduleGetValue = () => {\n const days = this.form.reattempt_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayA - dayB)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __reattemptScheduleSetValue = (newItems: Item[]) => {\n this.edit({ reattempt_schedule: newItems.map(({ value }) => value).join() });\n };\n\n private __getReattemptBypassStringsValue = () => {\n const strings = this.form.reattempt_bypass_strings?.split(',') ?? [];\n\n return strings\n .map(text => text.trim())\n .filter((text, index, strings) => text && strings.indexOf(text) === index)\n .map(text => ({ value: text }));\n };\n\n private __setReattemptBypassStringsValue = (newValue: Item[]) => {\n this.edit({ reattempt_bypass_strings: newValue.map(({ value }) => value).join() });\n };\n\n private __reattemptBypassLogicOptions: Option[] = [\n { value: '', label: 'option_always_reattempt' },\n { value: 'skip_if_exists', label: 'option_skip_if_exists' },\n { value: 'reattempt_if_exists', label: 'option_reattempt_if_exists' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['header:copy-id', super.hiddenSelector.toString()];\n\n if (!this.form.reattempt_bypass_logic) {\n alwaysMatch.push('reattempts-group:reattempt-bypass-strings');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"past-due-amount-group\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"past-due-amount-handling\"\n .options=${this.__pastDueAmountHandlingOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-switch-control\n infer=\"automatically-charge-past-due-amount\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"reset-nextdate-on-makeup-payment\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"prevent-customer-cancel-with-past-due\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"reattempts-group\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"reattempt-bypass-logic\"\n .options=${this.__reattemptBypassLogicOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reattempt-bypass-strings\"\n .getValue=${this.__getReattemptBypassStringsValue}\n .setValue=${this.__setReattemptBypassStringsValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reattempt-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__reattemptScheduleGetValue}\n .setValue=${this.__reattemptScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"emails-group\">\n <foxy-internal-switch-control\n infer=\"send-email-receipts-for-automated-billing\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reminder-email-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__reminderEmailScheduleGetValue}\n .setValue=${this.__reminderEmailScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"expiring-soon-payment-reminder-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__expiringSoonPaymentReminderScheduleGetValue}\n .setValue=${this.__expiringSoonPaymentReminderScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"modification-group\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"modification-url\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"cancellation-group\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${this.__cancellationScheduleSuffix}\n infer=\"cancellation-schedule\"\n step=\"1\"\n min=\"1\"\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n ${super.renderBody()}\n `;\n }\n\n private get __cancellationScheduleSuffix() {\n const schedule = this.form.cancellation_schedule;\n return schedule ? this.t('day_suffix', { count: schedule }) : '';\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SubscriptionSettingsForm.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,4BAA4B,CAAC;AACxC,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,OAAO,wBAAyB,SAAQ,IAAU;IAAxD;;QAkBU,mCAA8B,GAAa;YACjD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE;YACjD,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;SAC9C,CAAC;QAEM,iCAA4B,GAAG;YACrC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG;YACT,GAAG,EAAE,GAAG;SACT,CAAC;QAEM,kDAA6C,GAAG,GAAG,EAAE;;YAC3D,MAAM,IAAI,eAAG,IAAI,CAAC,IAAI,CAAC,uCAAuC,0CAAE,KAAK,CAAC,GAAG,oCAAK,EAAE,CAAC;YAEjF,OAAO,IAAI;iBACR,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;iBACzC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;iBAC9E,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;iBACjC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC;QAEM,kDAA6C,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC3E,IAAI,CAAC,IAAI,CAAC;gBACR,uCAAuC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;aACnF,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,oCAA+B,GAAG,GAAG,EAAE;;YAC7C,MAAM,IAAI,eAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,0CAAE,KAAK,CAAC,GAAG,oCAAK,EAAE,CAAC;YAEjE,OAAO,IAAI;iBACR,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;iBACzC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;iBAC9E,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;iBACjC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC;QAEM,oCAA+B,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC7D,IAAI,CAAC,IAAI,CAAC,EAAE,uBAAuB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC;QAEM,gCAA2B,GAAG,GAAG,EAAE;;YACzC,MAAM,IAAI,eAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,0CAAE,KAAK,CAAC,GAAG,oCAAK,EAAE,CAAC;YAE5D,OAAO,IAAI;iBACR,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;iBACzC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;iBAC9E,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;iBACjC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC;QAEM,gCAA2B,GAAG,CAAC,QAAgB,EAAE,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC;QAEM,qCAAgC,GAAG,GAAG,EAAE;;YAC9C,MAAM,OAAO,eAAG,IAAI,CAAC,IAAI,CAAC,wBAAwB,0CAAE,KAAK,CAAC,GAAG,oCAAK,EAAE,CAAC;YAErE,OAAO,OAAO;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBACxB,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;iBACzE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC;QAEM,qCAAgC,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC9D,IAAI,CAAC,IAAI,CAAC,EAAE,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC,CAAC;QAEM,kCAA6B,GAAa;YAChD,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE;YAC/C,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,uBAAuB,EAAE;YAC3D,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,4BAA4B,EAAE;SACtE,CAAC;IAuHJ,CAAC;IAhNC,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,uCAAuC,EAAE,CAAC,EAAE,EAAE,EAAE;gBACjD,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,sDAAsD,CAAC;YACzF,CAAC;YACD,CAAC,EAAE,wBAAwB,EAAE,CAAC,EAAE,EAAE,EAAE;gBAClC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,uCAAuC,CAAC;YAC1E,CAAC;YACD,CAAC,EAAE,uBAAuB,EAAE,CAAC,EAAE,EAAE,EAAE;gBACjC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,sCAAsC,CAAC;YACzE,CAAC;YACD,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,iCAAiC,CAAC;YACpE,CAAC;SACF,CAAC;IACJ,CAAC;IA4ED,IAAI,cAAc;QAChB,MAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACrC,WAAW,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;SAC/D;QAED,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,YAAY,EAAE;;;;;;qBAMN,IAAI,CAAC,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAiCnC,IAAI,CAAC,6BAA6B;;;;;;;sBAOjC,IAAI,CAAC,gCAAgC;sBACrC,IAAI,CAAC,gCAAgC;;;;;;;yBAOlC,IAAI,CAAC,4BAA4B;sBACpC,IAAI,CAAC,2BAA2B;sBAChC,IAAI,CAAC,2BAA2B;;;;;;;;;yBAS7B,IAAI,CAAC,4BAA4B;sBACpC,IAAI,CAAC,+BAA+B;sBACpC,IAAI,CAAC,+BAA+B;;;;;;;yBAOjC,IAAI,CAAC,4BAA4B;sBACpC,IAAI,CAAC,6CAA6C;sBAClD,IAAI,CAAC,6CAA6C;;;;;;;;;;;;;mBAarD,IAAI,CAAC,4BAA4B;;;;;;;;QAQ5C,KAAK,CAAC,UAAU,EAAE;KACrB,CAAC;IACJ,CAAC;IAED,IAAY,4BAA4B;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;QACjD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Option } from '../../internal/InternalCheckboxGroupControl/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nconst NS = 'subscription-settings-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for managing `fx:subscription_settings` resources.\n *\n * @element foxy-subscription-settings-form\n * @since 1.21.0\n */\nexport class SubscriptionSettingsForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ expiring_soon_payment_reminder_schedule: v }) => {\n return !v || v.length <= 100 || 'expiring-soon-payment-reminder-schedule:v8n_too_long';\n },\n ({ reattempt_bypass_strings: v }) => {\n return !v || v.length <= 400 || 'reattempt-bypass-strings:v8n_too_long';\n },\n ({ reminder_email_schedule: v }) => {\n return !v || v.length <= 100 || 'reminder-email-schedule:v8n_too_long';\n },\n ({ reattempt_schedule: v }) => {\n return !v || v.length <= 100 || 'reattempt-schedule:v8n_too_long';\n },\n ];\n }\n\n private __pastDueAmountHandlingOptions: Option[] = [\n { label: 'option_increment', value: 'increment' },\n { label: 'option_replace', value: 'replace' },\n ];\n\n private __positiveIntegerInputParams = {\n type: 'number',\n step: '1',\n min: '0',\n };\n\n private __expiringSoonPaymentReminderScheduleGetValue = () => {\n const days = this.form.expiring_soon_payment_reminder_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayB - dayA)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __expiringSoonPaymentReminderScheduleSetValue = (newItems: Item[]) => {\n this.edit({\n expiring_soon_payment_reminder_schedule: newItems.map(({ value }) => value).join(),\n });\n };\n\n private __reminderEmailScheduleGetValue = () => {\n const days = this.form.reminder_email_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayA - dayB)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __reminderEmailScheduleSetValue = (newItems: Item[]) => {\n this.edit({ reminder_email_schedule: newItems.map(({ value }) => value).join() });\n };\n\n private __reattemptScheduleGetValue = () => {\n const days = this.form.reattempt_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayA - dayB)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __reattemptScheduleSetValue = (newItems: Item[]) => {\n this.edit({ reattempt_schedule: newItems.map(({ value }) => value).join() });\n };\n\n private __getReattemptBypassStringsValue = () => {\n const strings = this.form.reattempt_bypass_strings?.split(',') ?? [];\n\n return strings\n .map(text => text.trim())\n .filter((text, index, strings) => text && strings.indexOf(text) === index)\n .map(text => ({ value: text }));\n };\n\n private __setReattemptBypassStringsValue = (newValue: Item[]) => {\n this.edit({ reattempt_bypass_strings: newValue.map(({ value }) => value).join() });\n };\n\n private __reattemptBypassLogicOptions: Option[] = [\n { value: '', label: 'option_always_reattempt' },\n { value: 'skip_if_exists', label: 'option_skip_if_exists' },\n { value: 'reattempt_if_exists', label: 'option_reattempt_if_exists' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['header:copy-id', super.hiddenSelector.toString()];\n\n if (!this.form.reattempt_bypass_logic) {\n alwaysMatch.push('reattempts-group:reattempt-bypass-strings');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"past-due-amount-group\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"past-due-amount-handling\"\n .options=${this.__pastDueAmountHandlingOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-switch-control\n infer=\"automatically-charge-past-due-amount\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"reset-nextdate-on-makeup-payment\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"send-email-receipts-for-automated-billing\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"prevent-customer-cancel-with-past-due\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"reattempts-group\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"reattempt-bypass-logic\"\n .options=${this.__reattemptBypassLogicOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reattempt-bypass-strings\"\n .getValue=${this.__getReattemptBypassStringsValue}\n .setValue=${this.__setReattemptBypassStringsValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reattempt-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__reattemptScheduleGetValue}\n .setValue=${this.__reattemptScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"emails-group\">\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reminder-email-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__reminderEmailScheduleGetValue}\n .setValue=${this.__reminderEmailScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"expiring-soon-payment-reminder-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__expiringSoonPaymentReminderScheduleGetValue}\n .setValue=${this.__expiringSoonPaymentReminderScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"modification-group\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"modification-url\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"cancellation-group\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${this.__cancellationScheduleSuffix}\n infer=\"cancellation-schedule\"\n step=\"1\"\n min=\"1\"\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n ${super.renderBody()}\n `;\n }\n\n private get __cancellationScheduleSuffix() {\n const schedule = this.form.cancellation_schedule;\n return schedule ? this.t('day_suffix', { count: schedule }) : '';\n }\n}\n"]}
|