@foxy.io/elements 1.18.0-beta.20 → 1.18.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +1 -1
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-api-browser.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-applied-tax-card.js +1 -1
- package/dist/cdn/foxy-attribute-card.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-card.js +1 -1
- package/dist/cdn/foxy-cart-form.js +1 -1
- package/dist/cdn/foxy-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.js +1 -1
- package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
- package/dist/cdn/foxy-coupon-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-coupon-codes-form.js +1 -1
- package/dist/cdn/foxy-coupon-detail-card.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-card.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-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 +2 -2
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-builder.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-discount-detail-card.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-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-form-dialog.js +1 -1
- package/dist/cdn/foxy-generate-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
- package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-i18n-editor.js +2 -2
- package/dist/cdn/foxy-i18n.js +1 -1
- package/dist/cdn/foxy-integration-card.js +1 -1
- package/dist/cdn/foxy-integration-form.js +1 -1
- package/dist/cdn/foxy-item-card.js +1 -1
- package/dist/cdn/foxy-item-category-card.js +1 -1
- package/dist/cdn/foxy-item-category-form.js +1 -1
- package/dist/cdn/foxy-item-form.js +1 -1
- package/dist/cdn/foxy-item-option-card.js +1 -1
- package/dist/cdn/foxy-item-option-form.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-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-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 +2 -2
- package/dist/cdn/foxy-reports-table.js +1 -1
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-shipping-method-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +1 -1
- package/dist/cdn/foxy-store-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 +4 -4
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/foxy-webhook-card.js +1 -1
- package/dist/cdn/foxy-webhook-form.js +1 -1
- package/dist/cdn/foxy-webhook-log-card.js +1 -1
- package/dist/cdn/foxy-webhook-status-card.js +1 -1
- package/dist/cdn/{shared-2b2002ac.js → shared-02d4bc14.js} +1 -1
- package/dist/cdn/shared-0301f5c5.js +1 -0
- package/dist/cdn/{shared-6cc53630.js → shared-0a40a749.js} +1 -1
- package/dist/cdn/{shared-869df7ed.js → shared-0d3bec9f.js} +1 -1
- package/dist/cdn/{shared-bae9da44.js → shared-0f29fba2.js} +1 -1
- package/dist/cdn/{shared-88c7755d.js → shared-1392183b.js} +1 -1
- package/dist/cdn/{shared-68e0cf30.js → shared-13e6fe8a.js} +1 -1
- package/dist/cdn/{shared-b48e5aaf.js → shared-18d42566.js} +1 -1
- package/dist/cdn/{shared-df462496.js → shared-206b4ae2.js} +1 -1
- package/dist/cdn/{shared-9d7bbdd8.js → shared-25ecdf66.js} +1 -1
- package/dist/cdn/{shared-179ff8af.js → shared-2bd47510.js} +3 -3
- package/dist/cdn/{shared-bf47ead0.js → shared-2d2ce3b1.js} +1 -1
- package/dist/cdn/{shared-17c1eab2.js → shared-307382e5.js} +1 -1
- package/dist/cdn/{shared-fafafc09.js → shared-324f9551.js} +1 -1
- package/dist/cdn/{shared-7fb8ecc5.js → shared-33912f50.js} +1 -1
- package/dist/cdn/{shared-13982611.js → shared-3b249b20.js} +1 -1
- package/dist/cdn/{shared-d4a652b7.js → shared-3e8cd935.js} +1 -1
- package/dist/cdn/{shared-1e94e6dd.js → shared-459a5ec4.js} +1 -1
- package/dist/cdn/{shared-cdc183c5.js → shared-45db2087.js} +1 -1
- package/dist/cdn/{shared-776f948d.js → shared-46e22714.js} +1 -1
- package/dist/cdn/{shared-0d4f9b06.js → shared-4817dcd1.js} +1 -1
- package/dist/cdn/{shared-79d6a262.js → shared-4cbd9a4f.js} +1 -1
- package/dist/cdn/{shared-ae588315.js → shared-674c1c04.js} +1 -1
- package/dist/cdn/{shared-23bf6ee6.js → shared-6ac71f60.js} +1 -1
- package/dist/cdn/{shared-0f649dc6.js → shared-715ee51e.js} +5 -5
- package/dist/cdn/{shared-5c6eb602.js → shared-71beb422.js} +1 -1
- package/dist/cdn/{shared-a41f2200.js → shared-72279946.js} +1 -1
- package/dist/cdn/shared-7304a1ab.js +1 -0
- package/dist/cdn/{shared-5b3ae513.js → shared-7788977c.js} +1 -1
- package/dist/cdn/{shared-a90a5235.js → shared-780ead03.js} +1 -1
- package/dist/cdn/{shared-e94165e9.js → shared-78f6e15f.js} +1 -1
- package/dist/cdn/{shared-1db07286.js → shared-7992035c.js} +3 -3
- package/dist/cdn/{shared-9d511d7e.js → shared-7a739f89.js} +1 -1
- package/dist/cdn/{shared-a343ec6b.js → shared-80378a15.js} +1 -1
- package/dist/cdn/{shared-dbd4a5e8.js → shared-8e6a8a88.js} +1 -1
- package/dist/cdn/{shared-c379590f.js → shared-915e8780.js} +1 -1
- package/dist/cdn/{shared-1351c1e3.js → shared-9291d900.js} +1 -1
- package/dist/cdn/{shared-7d658c02.js → shared-9643b6c8.js} +1 -1
- package/dist/cdn/{shared-21689ac0.js → shared-9862ca28.js} +1 -1
- package/dist/cdn/{shared-5ada1ccb.js → shared-a4165acb.js} +1 -1
- package/dist/cdn/{shared-ea6c8bae.js → shared-a6de944b.js} +1 -1
- package/dist/cdn/{shared-b7636a23.js → shared-ad3c1ddc.js} +1 -1
- package/dist/cdn/{shared-11ffd643.js → shared-c6567654.js} +1 -1
- package/dist/cdn/{shared-e99fa3d6.js → shared-d0c5c38f.js} +1 -1
- package/dist/cdn/{shared-90c7dbdb.js → shared-d6a78c23.js} +1 -1
- package/dist/cdn/{shared-2f6e33b6.js → shared-d7c271d2.js} +1 -1
- package/dist/cdn/{shared-d384d6a3.js → shared-d7dfd3d8.js} +1 -1
- package/dist/cdn/{shared-413415b0.js → shared-daab7e76.js} +1 -1
- package/dist/cdn/{shared-8eb4c8d7.js → shared-e0615601.js} +1 -1
- package/dist/cdn/{shared-3ca1e8e4.js → shared-e39be772.js} +1 -1
- package/dist/cdn/{shared-cf784db1.js → shared-e7e0ee80.js} +1 -1
- package/dist/cdn/{shared-034c6aeb.js → shared-ef98812b.js} +1 -1
- package/dist/cdn/{shared-39b184de.js → shared-f69afa4b.js} +1 -1
- package/dist/cdn/{shared-e06b70cc.js → shared-f821859e.js} +1 -1
- package/dist/cdn/shared-fedeb7b2.js +1 -0
- package/dist/cdn/translations/cart-card/en.json +3 -3
- package/dist/cdn/translations/gift-card-code-form/en.json +6 -3
- package/dist/cdn/translations/gift-card-code-log-card/en.json +6 -3
- package/dist/cdn/translations/integration-form/en.json +13 -15
- package/dist/cdn/translations/payments-api-fraud-protection-card/en.json +0 -2
- package/dist/cdn/translations/payments-api-payment-method-card/en.json +0 -2
- package/dist/cdn/translations/template-set-form/en.json +10 -0
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +1 -1
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +1 -1
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
- package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.d.ts +12 -0
- package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +12 -0
- package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -1
- package/dist/elements/public/AdminSubscriptionCard/index.d.ts +1 -0
- package/dist/elements/public/AdminSubscriptionCard/index.js +1 -0
- package/dist/elements/public/AdminSubscriptionCard/index.js.map +1 -1
- package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.d.ts +23 -4
- package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js +19 -0
- package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js.map +1 -1
- package/dist/elements/public/AppliedCouponCodeForm/types.d.ts +12 -0
- package/dist/elements/public/AppliedCouponCodeForm/types.js.map +1 -1
- package/dist/elements/public/CartCard/CartCard.d.ts +7 -2
- package/dist/elements/public/CartCard/CartCard.js +16 -9
- package/dist/elements/public/CartCard/CartCard.js.map +1 -1
- package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.d.ts +13 -2
- package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js +66 -76
- package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js.map +1 -1
- package/dist/elements/public/GiftCardCodeLogCard/index.d.ts +1 -2
- package/dist/elements/public/GiftCardCodeLogCard/index.js +1 -2
- package/dist/elements/public/GiftCardCodeLogCard/index.js.map +1 -1
- package/dist/elements/public/I18n/format/price.js +1 -0
- package/dist/elements/public/I18n/format/price.js.map +1 -1
- package/dist/elements/public/IntegrationForm/IntegrationForm.d.ts +35 -0
- package/dist/elements/public/IntegrationForm/IntegrationForm.js +156 -164
- package/dist/elements/public/IntegrationForm/IntegrationForm.js.map +1 -1
- package/dist/elements/public/IntegrationForm/index.d.ts +1 -0
- package/dist/elements/public/IntegrationForm/index.js +1 -0
- package/dist/elements/public/IntegrationForm/index.js.map +1 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.d.ts +24 -3
- package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js +33 -20
- package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js.map +1 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/index.d.ts +2 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/index.js +2 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/index.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.d.ts +24 -4
- package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js +32 -21
- package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/index.d.ts +2 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/index.js +2 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/index.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.d.ts +1 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +1 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.d.ts +49 -8
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.js +100 -64
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.js.map +1 -1
- package/dist/elements/public/TemplateSetForm/index.d.ts +1 -0
- package/dist/elements/public/TemplateSetForm/index.js +1 -0
- package/dist/elements/public/TemplateSetForm/index.js.map +1 -1
- package/dist/elements/public/TemplateSetForm/types.d.ts +22 -0
- package/dist/elements/public/TemplateSetForm/types.js.map +1 -1
- package/dist/mixins/themeable.js +0 -4
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-004f1a77.js +0 -1
- package/dist/cdn/shared-2f9b7791.js +0 -1
- package/dist/cdn/shared-888d690a.js +0 -1
|
@@ -6,14 +6,19 @@ import { html } from 'lit-html';
|
|
|
6
6
|
const NS = 'cart-card';
|
|
7
7
|
const Base = ConfigurableMixin(TranslatableMixin(InternalCard, NS));
|
|
8
8
|
/**
|
|
9
|
-
* Card element
|
|
9
|
+
* Card element representing cart resource (`fx:cart`).
|
|
10
10
|
*
|
|
11
11
|
* @element foxy-cart-card
|
|
12
|
-
* @since 1.
|
|
12
|
+
* @since 1.21.0
|
|
13
13
|
*/
|
|
14
14
|
export class CartCard extends Base {
|
|
15
15
|
constructor() {
|
|
16
16
|
super(...arguments);
|
|
17
|
+
/**
|
|
18
|
+
* URL of the `fx:locale_codes` property helper.
|
|
19
|
+
* This will be used to determine the currency code for carts created with hAPI
|
|
20
|
+
* since it isn't included in them.
|
|
21
|
+
*/
|
|
17
22
|
this.localeCodes = null;
|
|
18
23
|
this.__defaultTemplateSetLoaderId = 'defaultTemplateSetLoader';
|
|
19
24
|
this.__localeCodesHelperLoaderId = 'localeCodesLoader';
|
|
@@ -243,17 +248,19 @@ export class CartCard extends Base {
|
|
|
243
248
|
return items.isApproximateCount ? 'line_1_approximate' : 'line_1';
|
|
244
249
|
}
|
|
245
250
|
get __line2Options() {
|
|
251
|
+
var _a;
|
|
252
|
+
return (_a = this.__items) === null || _a === void 0 ? void 0 : _a.array[0];
|
|
253
|
+
}
|
|
254
|
+
get __line2Key() {
|
|
246
255
|
const items = this.__items;
|
|
247
256
|
if (items === undefined)
|
|
248
257
|
return;
|
|
249
258
|
if (items.count === 0)
|
|
250
|
-
return;
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
if (items)
|
|
256
|
-
return items.count === 0 ? 'line_2_no_items' : 'line_2';
|
|
259
|
+
return 'line_2_empty';
|
|
260
|
+
if (items.count === 1)
|
|
261
|
+
return 'line_2_one';
|
|
262
|
+
if (items.count > 1)
|
|
263
|
+
return 'line_2_many';
|
|
257
264
|
}
|
|
258
265
|
get __statusOptions() {
|
|
259
266
|
const data = this.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartCard.js","sourceRoot":"","sources":["../../../../src/elements/public/CartCard/CartCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'cart-card';\nconst Base = ConfigurableMixin(TranslatableMixin(InternalCard, NS));\n\n/**\n * Card element displaying cart summary.\n *\n * @element foxy-cart-card\n * @since 1.19.0\n */\nexport class CartCard extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n localeCodes: { type: String, attribute: 'locale-codes' },\n };\n }\n\n localeCodes: string | null = null;\n\n private readonly __defaultTemplateSetLoaderId = 'defaultTemplateSetLoader';\n\n private readonly __localeCodesHelperLoaderId = 'localeCodesLoader';\n\n private readonly __templateSetLoaderId = 'templateSetLoader';\n\n private readonly __itemsLoaderId = 'itemsLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n renderBody(): TemplateResult {\n const statusOptions = this.__statusOptions;\n const line1Options = this.__line1Options;\n const line1Key = this.__line1Key;\n const line2Options = this.__line2Options;\n const line2Key = this.__line2Key;\n const data = this.data;\n\n return html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__itemsHref)}\n id=${this.__itemsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__defaultTemplateSetHref)}\n id=${this.__defaultTemplateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__localeCodesHelperHref)}\n id=${this.__localeCodesHelperLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__templateSetHref)}\n id=${this.__templateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__storeHref)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <div class=\"text-left leading-s\">\n <div class=\"flex items-center space-x-s\">\n <span class=\"flex-1 font-semibold text-body truncate\">\n ${line1Options && line1Key\n ? html`<foxy-i18n infer=\"\" key=${line1Key} .options=${line1Options}></foxy-i18n>`\n : html`​`}\n </span>\n <span class=\"text-s text-tertiary\">\n ${data\n ? html`<foxy-i18n infer=\"\" key=\"status\" .options=${statusOptions}></foxy-i18n>`\n : html`​`}\n </span>\n </div>\n\n <div class=\"truncate text-s text-secondary\">\n ${line2Key\n ? html`<foxy-i18n infer=\"\" key=${line2Key} .options=${line2Options}></foxy-i18n>`\n : html`​`}\n </div>\n\n <div class=\"text-tertiary truncate text-s\">\n ${data\n ? data.customer_email\n ? html`${data.customer_email}`\n : html`<foxy-i18n infer=\"\" key=\"no_customer\"></foxy-i18n>`\n : html`​`}\n </div>\n </div>\n `;\n }\n\n get isBodyReady(): boolean {\n const isLoaded = !!this.__line1Options && !!this.__statusOptions && !!this.__line2Key;\n return super.isBodyReady && isLoaded;\n }\n\n private get __defaultTemplateSetHref() {\n const templateSetUri = this.data?.template_set_uri;\n\n if (templateSetUri === '') {\n try {\n const url = new URL(this.__store?._links['fx:template_sets'].href ?? '');\n url.searchParams.set('code', 'DEFAULT');\n return url.toString();\n } catch {\n //\n }\n }\n }\n\n private get __localeCodesHelperHref() {\n if (this.__defaultTemplateSetHref || this.__templateSetHref) {\n return this.localeCodes ?? void 0;\n }\n }\n\n private get __templateSetHref() {\n // TODO: remove the directive below once SDK is updated\n // @ts-expect-error SDK types are incomplete\n const currencyCode = this.data?.currency_code as string | undefined;\n\n if (!currencyCode) return this.data?.template_set_uri || void 0;\n }\n\n private get __itemsHref() {\n const data = this.data;\n\n if (!data) return;\n if ('_embedded' in data && 'fx:items' in data._embedded) return;\n\n const url = new URL(data._links['fx:items'].href);\n\n url.searchParams.set('order', 'price desc');\n url.searchParams.set('limit', '1');\n\n return url.toString();\n }\n\n private get __storeHref() {\n return this.data?._links['fx:store']?.href;\n }\n\n private get __defaultTemplateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSets>>;\n const selector = `#${this.__defaultTemplateSetLoaderId}`;\n const loader = this.renderRoot.querySelector<Loader>(selector);\n return loader?.data?._embedded['fx:template_sets'][0] ?? null;\n }\n\n private get __localeCodesHelper() {\n type Loader = NucleonElement<Resource<Rels.LocaleCodes>>;\n const selector = `#${this.__localeCodesHelperLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __templateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSet>>;\n const selector = `#${this.__templateSetLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __items() {\n const data = this.data;\n\n if (data && '_embedded' in data && 'fx:items' in data._embedded) {\n const items = data._embedded['fx:items'];\n\n return {\n array: items,\n count: items.length,\n isApproximateCount: items.length === 20,\n };\n }\n\n type Loader = NucleonElement<Resource<Rels.Items>>;\n const loader = this.renderRoot.querySelector<Loader>(`#${this.__itemsLoaderId}`);\n\n if (!loader?.data) return;\n\n return {\n array: loader.data._embedded['fx:items'],\n count: loader.data.total_items,\n isApproximateCount: false,\n };\n }\n\n private get __store() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n const selector = `#${this.__storeLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __currencyDisplay() {\n const useCode = this.__store?.use_international_currency_symbol;\n\n if (useCode === true) return 'code';\n if (useCode === false) return 'symbol';\n }\n\n private get __currencyCode() {\n const data = this.data;\n\n if (data && 'currency_code' in data) {\n // TODO: remove the directive below once the SDK is updated\n // @ts-expect-error SDK types are incomplete\n return data.currency_code as string;\n } else {\n const allLocaleCodes = this.__localeCodesHelper;\n const localeCode = (this.__templateSet ?? this.__defaultTemplateSet)?.locale_code;\n const localeInfo = localeCode ? allLocaleCodes?.values[localeCode] : void 0;\n\n if (localeInfo) return /Currency: ([A-Z]{3})/g.exec(localeInfo)?.[1];\n }\n }\n\n private get __line1Options() {\n const totalOrder = this.data?.total_order;\n if (totalOrder === undefined) return;\n\n const currencyDisplay = this.__currencyDisplay;\n if (currencyDisplay === undefined) return;\n\n const currencyCode = this.__currencyCode;\n if (currencyCode === undefined) return;\n\n const count = this.__items?.count;\n if (count === undefined) return;\n\n return { amount: `${totalOrder} ${currencyCode}`, currencyDisplay, count };\n }\n\n private get __line1Key() {\n const items = this.__items;\n if (items) return items.isApproximateCount ? 'line_1_approximate' : 'line_1';\n }\n\n private get __line2Options() {\n const items = this.__items;\n\n if (items === undefined) return;\n if (items.count === 0) return;\n\n return { firstItem: items.array[0], count: items.count };\n }\n\n private get __line2Key() {\n const items = this.__items;\n if (items) return items.count === 0 ? 'line_2_no_items' : 'line_2';\n }\n\n private get __statusOptions() {\n const data = this.data;\n if (data) return { dateCreated: data.date_created };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CartCard.js","sourceRoot":"","sources":["../../../../src/elements/public/CartCard/CartCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'cart-card';\nconst Base = ConfigurableMixin(TranslatableMixin(InternalCard, NS));\n\n/**\n * Card element representing cart resource (`fx:cart`).\n *\n * @element foxy-cart-card\n * @since 1.21.0\n */\nexport class CartCard extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n localeCodes: { type: String, attribute: 'locale-codes' },\n };\n }\n\n /**\n * URL of the `fx:locale_codes` property helper.\n * This will be used to determine the currency code for carts created with hAPI\n * since it isn't included in them.\n */\n localeCodes: string | null = null;\n\n private readonly __defaultTemplateSetLoaderId = 'defaultTemplateSetLoader';\n\n private readonly __localeCodesHelperLoaderId = 'localeCodesLoader';\n\n private readonly __templateSetLoaderId = 'templateSetLoader';\n\n private readonly __itemsLoaderId = 'itemsLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n renderBody(): TemplateResult {\n const statusOptions = this.__statusOptions;\n const line1Options = this.__line1Options;\n const line1Key = this.__line1Key;\n const line2Options = this.__line2Options;\n const line2Key = this.__line2Key;\n const data = this.data;\n\n return html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__itemsHref)}\n id=${this.__itemsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__defaultTemplateSetHref)}\n id=${this.__defaultTemplateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__localeCodesHelperHref)}\n id=${this.__localeCodesHelperLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__templateSetHref)}\n id=${this.__templateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__storeHref)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <div class=\"text-left leading-s\">\n <div class=\"flex items-center space-x-s\">\n <span class=\"flex-1 font-semibold text-body truncate\">\n ${line1Options && line1Key\n ? html`<foxy-i18n infer=\"\" key=${line1Key} .options=${line1Options}></foxy-i18n>`\n : html`​`}\n </span>\n <span class=\"text-s text-tertiary\">\n ${data\n ? html`<foxy-i18n infer=\"\" key=\"status\" .options=${statusOptions}></foxy-i18n>`\n : html`​`}\n </span>\n </div>\n\n <div class=\"truncate text-s text-secondary\">\n ${line2Key\n ? html`<foxy-i18n infer=\"\" key=${line2Key} .options=${line2Options}></foxy-i18n>`\n : html`​`}\n </div>\n\n <div class=\"text-tertiary truncate text-s\">\n ${data\n ? data.customer_email\n ? html`${data.customer_email}`\n : html`<foxy-i18n infer=\"\" key=\"no_customer\"></foxy-i18n>`\n : html`​`}\n </div>\n </div>\n `;\n }\n\n get isBodyReady(): boolean {\n const isLoaded = !!this.__line1Options && !!this.__statusOptions && !!this.__line2Key;\n return super.isBodyReady && isLoaded;\n }\n\n private get __defaultTemplateSetHref() {\n const templateSetUri = this.data?.template_set_uri;\n\n if (templateSetUri === '') {\n try {\n const url = new URL(this.__store?._links['fx:template_sets'].href ?? '');\n url.searchParams.set('code', 'DEFAULT');\n return url.toString();\n } catch {\n //\n }\n }\n }\n\n private get __localeCodesHelperHref() {\n if (this.__defaultTemplateSetHref || this.__templateSetHref) {\n return this.localeCodes ?? void 0;\n }\n }\n\n private get __templateSetHref() {\n // TODO: remove the directive below once SDK is updated\n // @ts-expect-error SDK types are incomplete\n const currencyCode = this.data?.currency_code as string | undefined;\n\n if (!currencyCode) return this.data?.template_set_uri || void 0;\n }\n\n private get __itemsHref() {\n const data = this.data;\n\n if (!data) return;\n if ('_embedded' in data && 'fx:items' in data._embedded) return;\n\n const url = new URL(data._links['fx:items'].href);\n\n url.searchParams.set('order', 'price desc');\n url.searchParams.set('limit', '1');\n\n return url.toString();\n }\n\n private get __storeHref() {\n return this.data?._links['fx:store']?.href;\n }\n\n private get __defaultTemplateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSets>>;\n const selector = `#${this.__defaultTemplateSetLoaderId}`;\n const loader = this.renderRoot.querySelector<Loader>(selector);\n return loader?.data?._embedded['fx:template_sets'][0] ?? null;\n }\n\n private get __localeCodesHelper() {\n type Loader = NucleonElement<Resource<Rels.LocaleCodes>>;\n const selector = `#${this.__localeCodesHelperLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __templateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSet>>;\n const selector = `#${this.__templateSetLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __items() {\n const data = this.data;\n\n if (data && '_embedded' in data && 'fx:items' in data._embedded) {\n const items = data._embedded['fx:items'];\n\n return {\n array: items,\n count: items.length,\n isApproximateCount: items.length === 20,\n };\n }\n\n type Loader = NucleonElement<Resource<Rels.Items>>;\n const loader = this.renderRoot.querySelector<Loader>(`#${this.__itemsLoaderId}`);\n\n if (!loader?.data) return;\n\n return {\n array: loader.data._embedded['fx:items'],\n count: loader.data.total_items,\n isApproximateCount: false,\n };\n }\n\n private get __store() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n const selector = `#${this.__storeLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __currencyDisplay() {\n const useCode = this.__store?.use_international_currency_symbol;\n\n if (useCode === true) return 'code';\n if (useCode === false) return 'symbol';\n }\n\n private get __currencyCode() {\n const data = this.data;\n\n if (data && 'currency_code' in data) {\n // TODO: remove the directive below once the SDK is updated\n // @ts-expect-error SDK types are incomplete\n return data.currency_code as string;\n } else {\n const allLocaleCodes = this.__localeCodesHelper;\n const localeCode = (this.__templateSet ?? this.__defaultTemplateSet)?.locale_code;\n const localeInfo = localeCode ? allLocaleCodes?.values[localeCode] : void 0;\n\n if (localeInfo) return /Currency: ([A-Z]{3})/g.exec(localeInfo)?.[1];\n }\n }\n\n private get __line1Options() {\n const totalOrder = this.data?.total_order;\n if (totalOrder === undefined) return;\n\n const currencyDisplay = this.__currencyDisplay;\n if (currencyDisplay === undefined) return;\n\n const currencyCode = this.__currencyCode;\n if (currencyCode === undefined) return;\n\n const count = this.__items?.count;\n if (count === undefined) return;\n\n return { amount: `${totalOrder} ${currencyCode}`, currencyDisplay, count };\n }\n\n private get __line1Key() {\n const items = this.__items;\n if (items) return items.isApproximateCount ? 'line_1_approximate' : 'line_1';\n }\n\n private get __line2Options() {\n return this.__items?.array[0];\n }\n\n private get __line2Key() {\n const items = this.__items;\n if (items === undefined) return;\n\n if (items.count === 0) return 'line_2_empty';\n if (items.count === 1) return 'line_2_one';\n if (items.count > 1) return 'line_2_many';\n }\n\n private get __statusOptions() {\n const data = this.data;\n if (data) return { dateCreated: data.date_created };\n }\n}\n"]}
|
|
@@ -4,9 +4,20 @@ import { InternalCard } from '../../internal/InternalCard/InternalCard';
|
|
|
4
4
|
declare const Base: typeof InternalCard & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
5
5
|
defaultNS: string;
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Card element representing a gift card code log (`fx:gift_card_code_log`).
|
|
9
|
+
*
|
|
10
|
+
* @element foxy-gift-card-code-log-card
|
|
11
|
+
* @since 1.21.1
|
|
12
|
+
*/
|
|
7
13
|
export declare class GiftCardCodeLogCard extends Base<Data> {
|
|
8
|
-
private
|
|
9
|
-
private
|
|
14
|
+
private readonly __giftCardLoaderId;
|
|
15
|
+
private readonly __storeLoaderId;
|
|
10
16
|
renderBody(): TemplateResult;
|
|
17
|
+
get isBodyReady(): boolean;
|
|
18
|
+
private get __giftCardLoader();
|
|
19
|
+
private get __storeLoader();
|
|
20
|
+
private get __giftCard();
|
|
21
|
+
private get __store();
|
|
11
22
|
}
|
|
12
23
|
export {};
|
|
@@ -5,104 +5,94 @@ import { classMap } from "../../../utils/class-map.js";
|
|
|
5
5
|
import { html } from 'lit-html';
|
|
6
6
|
const NS = 'gift-card-code-log-card';
|
|
7
7
|
const Base = TranslatableMixin(InternalCard, NS);
|
|
8
|
+
/**
|
|
9
|
+
* Card element representing a gift card code log (`fx:gift_card_code_log`).
|
|
10
|
+
*
|
|
11
|
+
* @element foxy-gift-card-code-log-card
|
|
12
|
+
* @since 1.21.1
|
|
13
|
+
*/
|
|
8
14
|
export class GiftCardCodeLogCard extends Base {
|
|
9
15
|
constructor() {
|
|
10
16
|
super(...arguments);
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
17
|
+
this.__giftCardLoaderId = 'giftCardLoader';
|
|
18
|
+
this.__storeLoaderId = 'storeLoader';
|
|
13
19
|
}
|
|
14
20
|
renderBody() {
|
|
15
|
-
var _a, _b, _c, _d
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
catch (_f) {
|
|
34
|
-
formattedBalanceAdjustment = String(balanceAdjustment);
|
|
35
|
-
}
|
|
21
|
+
var _a, _b, _c, _d;
|
|
22
|
+
const data = this.data;
|
|
23
|
+
const adjustment = (_a = data === null || data === void 0 ? void 0 : data.balance_adjustment) !== null && _a !== void 0 ? _a : 0;
|
|
24
|
+
const hasTransaction = typeof (data === null || data === void 0 ? void 0 : data.transaction_id) === 'number';
|
|
25
|
+
const titleKey = hasTransaction ? 'title_used' : 'title_updated_via_api';
|
|
26
|
+
const subtitleKey = hasTransaction ? 'subtitle_transaction' : 'subtitle_no_transaction';
|
|
27
|
+
const subtitleOptions = { transaction_id: data === null || data === void 0 ? void 0 : data.transaction_id };
|
|
28
|
+
const dateOptions = {
|
|
29
|
+
date_created: data === null || data === void 0 ? void 0 : data.date_created,
|
|
30
|
+
month: 'short',
|
|
31
|
+
};
|
|
32
|
+
const adjustmentOptions = {
|
|
33
|
+
currencyDisplay: ((_b = this.__store) === null || _b === void 0 ? void 0 : _b.use_international_currency_symbol) ? 'code' : 'symbol',
|
|
34
|
+
signDisplay: 'exceptZero',
|
|
35
|
+
amount: `${adjustment} ${(_c = this.__giftCard) === null || _c === void 0 ? void 0 : _c.currency_code}`,
|
|
36
|
+
};
|
|
36
37
|
return html `
|
|
37
38
|
<foxy-nucleon
|
|
38
39
|
infer=""
|
|
39
|
-
href=${ifDefined((_d =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.__giftCard = nucleon.data;
|
|
43
|
-
this.requestUpdate();
|
|
44
|
-
}}
|
|
40
|
+
href=${ifDefined((_d = data === null || data === void 0 ? void 0 : data._links) === null || _d === void 0 ? void 0 : _d['fx:gift_card'].href)}
|
|
41
|
+
id=${this.__giftCardLoaderId}
|
|
42
|
+
@update=${() => this.requestUpdate()}
|
|
45
43
|
>
|
|
46
44
|
</foxy-nucleon>
|
|
47
45
|
|
|
48
46
|
<foxy-nucleon
|
|
49
47
|
infer=""
|
|
50
|
-
href=${ifDefined(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.__store = nucleon.data;
|
|
54
|
-
this.requestUpdate();
|
|
55
|
-
}}
|
|
48
|
+
href=${ifDefined(data === null || data === void 0 ? void 0 : data._links['fx:store'].href)}
|
|
49
|
+
id=${this.__storeLoaderId}
|
|
50
|
+
@update=${() => this.requestUpdate()}
|
|
56
51
|
>
|
|
57
52
|
</foxy-nucleon>
|
|
58
53
|
|
|
59
|
-
<div class="
|
|
60
|
-
<
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
.options=${{ date: this.form.date_created }}
|
|
68
|
-
>
|
|
69
|
-
</foxy-i18n>
|
|
70
|
-
|
|
71
|
-
<div class="text-secondary">
|
|
72
|
-
<foxy-i18n infer="" key=${subtitleKey}></foxy-i18n>
|
|
73
|
-
${hasTransaction
|
|
74
|
-
? html `
|
|
75
|
-
•
|
|
76
|
-
<button
|
|
77
|
-
class="underline"
|
|
78
|
-
@click=${() => {
|
|
79
|
-
var _a;
|
|
80
|
-
const event = new CustomEvent('navigation', {
|
|
81
|
-
composed: true,
|
|
82
|
-
bubbles: true,
|
|
83
|
-
detail: (_a = this.form._links) === null || _a === void 0 ? void 0 : _a['fx:transaction'].href,
|
|
84
|
-
});
|
|
85
|
-
this.dispatchEvent(event);
|
|
86
|
-
}}
|
|
87
|
-
>
|
|
88
|
-
#${this.form.transaction_id}
|
|
89
|
-
</button>
|
|
90
|
-
`
|
|
91
|
-
: ''}
|
|
92
|
-
</div>
|
|
54
|
+
<div class="leading-s">
|
|
55
|
+
<div class="flex justify-between items-center">
|
|
56
|
+
<span class="text-body font-semibold truncate">
|
|
57
|
+
<foxy-i18n infer="" key=${titleKey}></foxy-i18n>
|
|
58
|
+
</span>
|
|
59
|
+
<span class="text-s text-tertiary flex-shrink-0">
|
|
60
|
+
<foxy-i18n infer="" key="date" .options=${dateOptions}></foxy-i18n>
|
|
61
|
+
</span>
|
|
93
62
|
</div>
|
|
94
63
|
|
|
95
|
-
<div
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
64
|
+
<div class="text-s text-secondary truncate">
|
|
65
|
+
<foxy-i18n infer="" key=${subtitleKey} .options=${subtitleOptions}></foxy-i18n>
|
|
66
|
+
<span class="text-tertiary">•</span>
|
|
67
|
+
<span
|
|
68
|
+
class=${classMap({
|
|
69
|
+
'text-tertiary': adjustment === 0,
|
|
70
|
+
'text-success': adjustment > 0,
|
|
71
|
+
'text-error': adjustment < 0,
|
|
100
72
|
})}
|
|
101
|
-
|
|
102
|
-
|
|
73
|
+
>
|
|
74
|
+
<foxy-i18n infer="" key="adjustment" .options=${adjustmentOptions}></foxy-i18n>
|
|
75
|
+
</span>
|
|
103
76
|
</div>
|
|
104
77
|
</div>
|
|
105
78
|
`;
|
|
106
79
|
}
|
|
80
|
+
get isBodyReady() {
|
|
81
|
+
return super.isBodyReady && !!this.__giftCard && !!this.__store;
|
|
82
|
+
}
|
|
83
|
+
get __giftCardLoader() {
|
|
84
|
+
return this.renderRoot.querySelector(`#${this.__giftCardLoaderId}`);
|
|
85
|
+
}
|
|
86
|
+
get __storeLoader() {
|
|
87
|
+
return this.renderRoot.querySelector(`#${this.__storeLoaderId}`);
|
|
88
|
+
}
|
|
89
|
+
get __giftCard() {
|
|
90
|
+
var _a;
|
|
91
|
+
return (_a = this.__giftCardLoader) === null || _a === void 0 ? void 0 : _a.data;
|
|
92
|
+
}
|
|
93
|
+
get __store() {
|
|
94
|
+
var _a;
|
|
95
|
+
return (_a = this.__storeLoader) === null || _a === void 0 ? void 0 : _a.data;
|
|
96
|
+
}
|
|
107
97
|
}
|
|
108
98
|
//# sourceMappingURL=GiftCardCodeLogCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GiftCardCodeLogCard.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GiftCardCodeLogCard.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'gift-card-code-log-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\n/**\n * Card element representing a gift card code log (`fx:gift_card_code_log`).\n *\n * @element foxy-gift-card-code-log-card\n * @since 1.21.1\n */\nexport class GiftCardCodeLogCard extends Base<Data> {\n private readonly __giftCardLoaderId = 'giftCardLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n renderBody(): TemplateResult {\n const data = this.data;\n\n const adjustment = data?.balance_adjustment ?? 0;\n const hasTransaction = typeof data?.transaction_id === 'number';\n\n const titleKey = hasTransaction ? 'title_used' : 'title_updated_via_api';\n const subtitleKey = hasTransaction ? 'subtitle_transaction' : 'subtitle_no_transaction';\n const subtitleOptions = { transaction_id: data?.transaction_id };\n\n const dateOptions = {\n date_created: data?.date_created,\n month: 'short',\n };\n\n const adjustmentOptions = {\n currencyDisplay: this.__store?.use_international_currency_symbol ? 'code' : 'symbol',\n signDisplay: 'exceptZero',\n amount: `${adjustment} ${this.__giftCard?.currency_code}`,\n };\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(data?._links?.['fx:gift_card'].href)}\n id=${this.__giftCardLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <div class=\"leading-s\">\n <div class=\"flex justify-between items-center\">\n <span class=\"text-body font-semibold truncate\">\n <foxy-i18n infer=\"\" key=${titleKey}></foxy-i18n>\n </span>\n <span class=\"text-s text-tertiary flex-shrink-0\">\n <foxy-i18n infer=\"\" key=\"date\" .options=${dateOptions}></foxy-i18n>\n </span>\n </div>\n\n <div class=\"text-s text-secondary truncate\">\n <foxy-i18n infer=\"\" key=${subtitleKey} .options=${subtitleOptions}></foxy-i18n>\n <span class=\"text-tertiary\">•</span>\n <span\n class=${classMap({\n 'text-tertiary': adjustment === 0,\n 'text-success': adjustment > 0,\n 'text-error': adjustment < 0,\n })}\n >\n <foxy-i18n infer=\"\" key=\"adjustment\" .options=${adjustmentOptions}></foxy-i18n>\n </span>\n </div>\n </div>\n `;\n }\n\n get isBodyReady(): boolean {\n return super.isBodyReady && !!this.__giftCard && !!this.__store;\n }\n\n private get __giftCardLoader() {\n type Loader = NucleonElement<Resource<Rels.GiftCard>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__giftCardLoaderId}`);\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n\n private get __giftCard() {\n return this.__giftCardLoader?.data;\n }\n\n private get __store() {\n return this.__storeLoader?.data;\n }\n}\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import '@polymer/iron-icons';
|
|
2
|
-
import '@polymer/iron-icon';
|
|
3
1
|
import "../../internal/InternalCard/index.js";
|
|
2
|
+
import "../NucleonElement/index.js";
|
|
4
3
|
import "../I18n/index.js";
|
|
5
4
|
import { GiftCardCodeLogCard } from "./GiftCardCodeLogCard.js";
|
|
6
5
|
customElements.define('foxy-gift-card-code-log-card', GiftCardCodeLogCard);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAE3C,oCAAiC;AACjC,0BAAuB;AAEvB,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalCard/index';\n\nimport '../NucleonElement/index';\nimport '../I18n/index';\n\nimport { GiftCardCodeLogCard } from './GiftCardCodeLogCard';\n\ncustomElements.define('foxy-gift-card-code-log-card', GiftCardCodeLogCard);\n\nexport { GiftCardCodeLogCard };\n"]}
|
|
@@ -10,6 +10,7 @@ export const price = (value, format, lang, options) => {
|
|
|
10
10
|
maximumFractionDigits: 2,
|
|
11
11
|
minimumFractionDigits: 2,
|
|
12
12
|
currencyDisplay: (_a = options === null || options === void 0 ? void 0 : options.currencyDisplay) !== null && _a !== void 0 ? _a : 'symbol',
|
|
13
|
+
signDisplay: options === null || options === void 0 ? void 0 : options.signDisplay,
|
|
13
14
|
style: 'currency',
|
|
14
15
|
currency,
|
|
15
16
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../../src/elements/public/I18n/format/price.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAU,EAAE;;IAC5E,IAAI;QACF,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;YAC7C,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,CAAC;YACxB,eAAe,QAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,QAAQ;YACrD,KAAK,EAAE,UAAU;YACjB,QAAQ;SACT,CAAC,CAAC;KACJ;IAAC,WAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC","sourcesContent":["import { FormatFunction } from 'i18next';\n\n/**\n * i18next formatter that formats given value as price + currency code (e.g. 9.99 USD) for current locale (e.g. $9,99).\n * @see https://www.i18next.com/translation-function/formatting\n */\nexport const price: FormatFunction = (value, format, lang, options): string => {\n try {\n const [amount, currency] = value.split(' ');\n return parseFloat(amount).toLocaleString(lang, {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n currencyDisplay: options?.currencyDisplay ?? 'symbol',\n style: 'currency',\n currency,\n });\n } catch {\n return value;\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../../src/elements/public/I18n/format/price.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAU,EAAE;;IAC5E,IAAI;QACF,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;YAC7C,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,CAAC;YACxB,eAAe,QAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,QAAQ;YACrD,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;YACjC,KAAK,EAAE,UAAU;YACjB,QAAQ;SACT,CAAC,CAAC;KACJ;IAAC,WAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC","sourcesContent":["import { FormatFunction } from 'i18next';\n\n/**\n * i18next formatter that formats given value as price + currency code (e.g. 9.99 USD) for current locale (e.g. $9,99).\n * @see https://www.i18next.com/translation-function/formatting\n */\nexport const price: FormatFunction = (value, format, lang, options): string => {\n try {\n const [amount, currency] = value.split(' ');\n return parseFloat(amount).toLocaleString(lang, {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n currencyDisplay: options?.currencyDisplay ?? 'symbol',\n signDisplay: options?.signDisplay,\n style: 'currency',\n currency,\n });\n } catch {\n return value;\n }\n};\n"]}
|
|
@@ -6,6 +6,33 @@ import { InternalForm } from '../../internal/InternalForm/InternalForm';
|
|
|
6
6
|
declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
7
7
|
defaultNS: string;
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Form element for managing integrations (`fx:integration`).
|
|
11
|
+
*
|
|
12
|
+
* @slot project-name:before
|
|
13
|
+
* @slot project-name:after
|
|
14
|
+
*
|
|
15
|
+
* @slot project-description:before
|
|
16
|
+
* @slot project-description:after
|
|
17
|
+
*
|
|
18
|
+
* @slot create:before
|
|
19
|
+
* @slot create:after
|
|
20
|
+
*
|
|
21
|
+
* @slot header:before
|
|
22
|
+
* @slot header:after
|
|
23
|
+
*
|
|
24
|
+
* @slot message:before
|
|
25
|
+
* @slot message:after
|
|
26
|
+
*
|
|
27
|
+
* @slot table:before
|
|
28
|
+
* @slot table:after
|
|
29
|
+
*
|
|
30
|
+
* @slot delete:before
|
|
31
|
+
* @slot delete:after
|
|
32
|
+
*
|
|
33
|
+
* @element foxy-integration-form
|
|
34
|
+
* @since 1.21.0
|
|
35
|
+
*/
|
|
9
36
|
export declare class IntegrationForm extends Base<Data> {
|
|
10
37
|
static get properties(): PropertyDeclarations;
|
|
11
38
|
static get v8n(): NucleonV8N<Data>;
|
|
@@ -14,5 +41,13 @@ export declare class IntegrationForm extends Base<Data> {
|
|
|
14
41
|
protected _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult>;
|
|
15
42
|
private __renderSnapshotBody;
|
|
16
43
|
private __renderTemplateBody;
|
|
44
|
+
private __renderMessage;
|
|
45
|
+
private __renderHeader;
|
|
46
|
+
private __renderTable;
|
|
47
|
+
private __renderCopiableText;
|
|
48
|
+
private __renderMailToLink;
|
|
49
|
+
private __renderLink;
|
|
50
|
+
private __renderTableRow;
|
|
51
|
+
private __renderTableI18n;
|
|
17
52
|
}
|
|
18
53
|
export {};
|