@foxy.io/elements 1.49.0 → 1.50.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/foxy-admin-subscription-form.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-form.js +1 -1
- package/dist/cdn/foxy-coupon-codes-form.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +1 -1
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-experimental-add-to-cart-builder.js +1 -1
- package/dist/cdn/foxy-filter-attribute-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-item-form.js +1 -1
- package/dist/cdn/foxy-native-integration-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +15 -15
- package/dist/cdn/foxy-store-form.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-template-config-form.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/shared-200aa12d.js +1 -0
- package/dist/cdn/shared-2a84ee72.js +1 -0
- package/dist/cdn/{shared-4bafbc5f.js → shared-986bcd05.js} +1 -1
- package/dist/cdn/{shared-4ffaa9b7.js → shared-ddc1c32f.js} +1 -1
- package/dist/cdn/shared-e6c743bd.js +1 -0
- package/dist/cdn/shared-f05c924a.js +1 -0
- package/dist/cdn/translations/admin-subscription-form/en.json +8 -2
- package/dist/cdn/translations/coupon-form/en.json +1 -1
- package/dist/cdn/translations/customer/en.json +1 -1
- package/dist/cdn/translations/customer-portal/de.json +1 -1
- package/dist/cdn/translations/customer-portal/en.json +1 -1
- package/dist/cdn/translations/customer-portal/sv.json +1 -1
- package/dist/cdn/translations/subscription-form/en.json +1 -1
- package/dist/cdn/translations/transaction/en.json +4 -2
- package/dist/cdn/translations/transaction-card/en.json +1 -1
- package/dist/elements/internal/InternalCalendar/InternalCalendar.js +4 -3
- package/dist/elements/internal/InternalCalendar/InternalCalendar.js.map +1 -1
- package/dist/elements/internal/InternalDateControl/InternalDateControl.js +2 -1
- package/dist/elements/internal/InternalDateControl/InternalDateControl.js.map +1 -1
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js +1 -0
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map +1 -1
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/InternalAdminSubscriptionFormStatusActionForm.d.ts +1 -0
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/InternalAdminSubscriptionFormStatusActionForm.js +28 -9
- package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/InternalAdminSubscriptionFormStatusActionForm.js.map +1 -1
- package/dist/elements/public/CouponForm/CouponForm.js +1 -1
- package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +2 -2
- package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
- package/dist/elements/public/ReportForm/utils.js +16 -15
- package/dist/elements/public/ReportForm/utils.js.map +1 -1
- package/dist/elements/public/Transaction/Transaction.js +8 -3
- package/dist/elements/public/Transaction/Transaction.js.map +1 -1
- package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.d.ts +2 -0
- package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js +16 -2
- package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js.map +1 -1
- package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.d.ts +1 -0
- package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +30 -0
- package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -1
- package/dist/utils/parse-date.js +2 -1
- package/dist/utils/parse-date.js.map +1 -1
- package/dist/utils/safe-date.d.ts +1 -0
- package/dist/utils/safe-date.js +9 -0
- package/dist/utils/safe-date.js.map +1 -0
- package/package.json +1 -1
- package/dist/cdn/shared-5078246e.js +0 -1
- package/dist/cdn/shared-af688fe3.js +0 -1
- package/dist/cdn/shared-f0fa0a88.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../src/elements/public/Transaction/Transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Badge } from '../../internal/InternalForm/types';\nimport type { Data } from './types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-element';\n\nconst NS = 'transaction';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Transaction summary page (`fx:transaction`).\n *\n * @element foxy-transaction\n * @since 1.17.0\n */\nexport class Transaction extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n hostedPaymentGatewaysHelper: { attribute: 'hosted-payment-gateways-helper' },\n paymentGatewaysHelper: { attribute: 'payment-gateways-helper' },\n getSubscriptionPageHref: { attribute: false },\n getCustomerPageHref: { attribute: false },\n localeCodes: { attribute: 'locale-codes' },\n };\n }\n\n /** URL of the `fx:hosted_payment_gateways` property helper resource. */\n hostedPaymentGatewaysHelper: string | null = null;\n\n /** URL of the `fx:payment_gateways` property helper resource. */\n paymentGatewaysHelper: string | null = null;\n\n /** Link to the `fx:locale_codes` property helper for currency formatting. */\n localeCodes: string | null = null;\n\n getSubscriptionPageHref: ((href: string) => string) | null = null;\n\n getCustomerPageHref: ((href: string) => string) | null = null;\n\n private readonly __webhooksBulkActions = [\n {\n name: 'refeed',\n onClick: async (selection: Resource<Rels.Webhook>[]) => {\n if (!this.data) return;\n\n const url = this.data._links['fx:send_webhooks'].href;\n const api = new Transaction.API(this);\n const response = await api.fetch(url, {\n method: 'POST',\n body: JSON.stringify({\n refeed_hooks: selection.map(hook => getResourceId(hook._links['self'].href)),\n event: 'refeed',\n }),\n });\n\n selection.forEach(hook => {\n Transaction.Rumour('').share({\n related: [\n ...selection.map(hook => hook._links['fx:logs'].href),\n ...selection.map(hook => hook._links['fx:statuses'].href),\n ],\n source: hook._links.self.href,\n data: hook,\n });\n });\n\n if (!response.ok) throw new Error(await response.text());\n },\n },\n ];\n\n get readonlySelector(): BooleanSelector {\n const alwaysMatch = [\n 'billing-addresses',\n 'datafeed:data-is-fed',\n 'webhooks:dialog:url',\n super.readonlySelector,\n ];\n\n const isEditable = Boolean(this.data?._links['fx:void'] ?? this.data?._links['fx:refund']);\n if (!isEditable) alwaysMatch.push('items', 'attributes', 'custom-fields');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [\n 'billing-addresses:dialog:delete',\n 'billing-addresses:dialog:timestamps',\n 'webhooks:dialog:header:copy-json',\n 'webhooks:dialog:header:copy-id',\n 'webhooks:dialog:timestamps',\n 'webhooks:dialog:name',\n 'webhooks:dialog:query',\n 'webhooks:dialog:encryption-key',\n 'webhooks:dialog:delete',\n super.readonlySelector,\n ];\n\n const type = this.data?.type;\n\n if (!this.data?._links['fx:subscription']) alwaysMatch.unshift('subscription');\n if (type === 'subscription_modification') alwaysMatch.unshift('actions');\n\n if (type === 'updateinfo') {\n alwaysMatch.unshift('not=customer,subscription,payments,custom-fields,attributes');\n }\n\n if (type === 'subscription_cancellation') {\n alwaysMatch.unshift('not=customer,subscription,custom-fields,attributes');\n }\n\n if (!this.__storeLoader?.data?.use_webhook) alwaysMatch.unshift('datafeed');\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n const source = this.data?.source;\n const type = this.data?.type;\n\n let context = '';\n\n if (type === 'updateinfo') {\n if (!source || source?.startsWith('cit_')) {\n context = 'customer_changed_payment_method';\n } else if (source === 'mit_uoe') {\n context = 'admin_changed_payment_method_with_uoe';\n } else if (source === 'mit_api') {\n context = 'integration_changed_payment_method';\n } else {\n context = 'admin_changed_payment_method';\n }\n } else if (type === 'subscription_modification') {\n if (!source || source?.startsWith('cit_')) {\n context = 'customer_changed_subscription';\n } else if (source === 'mit_uoe') {\n context = 'admin_changed_subscription_with_uoe';\n } else if (source === 'mit_api') {\n context = 'integration_changed_subscription';\n } else {\n context = 'admin_changed_subscription';\n }\n } else if (type === 'subscription_renewal') {\n if (source === 'mit_recurring') {\n context = 'subscription_renewal_attempt';\n } else if (source === 'mit_recurring_reattempt_automated') {\n context = 'subscription_renewal_automated_reattempt';\n } else if (source === 'mit_recurring_reattempt_manual') {\n context = 'subscription_renewal_manual_reattempt';\n }\n } else if (type === 'subscription_cancellation') {\n if (source === 'cit_recurring_cancellation') {\n context = 'customer_canceled_subscription';\n } else if (source === 'mit_recurring_cancellation') {\n context = 'admin_canceled_subscription';\n }\n } else {\n if (this.data?._links['fx:subscription']) {\n if (source?.startsWith('cit_')) {\n context = 'customer_subscribed';\n } else if (source === 'mit_uoe') {\n context = 'admin_subscribed_with_uoe';\n } else if (source === 'mit_api') {\n context = 'integration_subscribed';\n }\n } else {\n if (source?.startsWith('cit_')) {\n context = 'customer_placed_order';\n } else if (source === 'mit_uoe') {\n context = 'admin_placed_order_with_uoe';\n } else if (source === 'mit_api') {\n context = 'integration_placed_order';\n }\n }\n }\n\n return {\n transaction_date: this.data?.transaction_date,\n ip_country: this.data?.ip_country,\n context,\n };\n }\n\n get headerSubtitleBadges(): Badge[] {\n const badges = super.headerSubtitleBadges;\n const folder = this.data?._embedded?.['fx:folder'];\n\n if (folder?.name) {\n const folderColor = folder.color ?? '';\n const colors: Record<string, string> = {\n 'red': 'bg-folder-red text-white',\n 'red_pale': 'bg-folder-red-pale text-black',\n 'green': 'bg-folder-green text-white',\n 'green_pale': 'bg-folder-green-pale text-black',\n 'blue': 'bg-folder-blue text-white',\n 'blue_pale': 'bg-folder-blue-pale text-black',\n 'orange': 'bg-folder-orange text-white',\n 'orange_pale': 'bg-folder-orange-pale text-black',\n 'violet': 'bg-folder-violet text-white',\n 'violet_pale': 'bg-folder-violet-pale text-black',\n '': 'bg-contrast-5 text-body',\n };\n\n badges.push({\n class: colors[folderColor in colors ? folderColor : ''],\n icon: svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" style=\"width: 1em; height: 1em;\"><path d=\"M3.75 3A1.75 1.75 0 0 0 2 4.75v3.26a3.235 3.235 0 0 1 1.75-.51h12.5c.644 0 1.245.188 1.75.51V6.75A1.75 1.75 0 0 0 16.25 5h-4.836a.25.25 0 0 1-.177-.073L9.823 3.513A1.75 1.75 0 0 0 8.586 3H3.75ZM3.75 9A1.75 1.75 0 0 0 2 10.75v4.5c0 .966.784 1.75 1.75 1.75h12.5A1.75 1.75 0 0 0 18 15.25v-4.5A1.75 1.75 0 0 0 16.25 9H3.75Z\" /></svg>`,\n text: folder.name,\n });\n }\n\n if (this.data?.hide_transaction) badges.push({ key: 'archived' });\n if (this.data?.is_test) badges.push({ key: 'test' });\n\n return badges;\n }\n\n get headerCopyIdValue(): string {\n return this.data?.display_id?.toString() ?? '';\n }\n\n renderHeaderActions(): TemplateResult {\n const foldersHref = this.__storeLoader?.data?._links['fx:transaction_folders'].href;\n\n return html`\n <foxy-internal-transaction-actions-control folders=${ifDefined(foldersHref)} infer=\"actions\">\n </foxy-internal-transaction-actions-control>\n `;\n }\n\n renderBody(): TemplateResult {\n let shipmentsLink: string | undefined = undefined;\n let webhooksLink: string | undefined = undefined;\n let itemsLink: string | undefined = undefined;\n\n const alertStatuses = ['problem', 'pending_fraud_review', 'rejected', 'declined'];\n const hidden = this.hiddenSelector;\n\n if (this.data) {\n try {\n const shipmentsUrl = new URL(this.data._links['fx:shipments'].href);\n const webhooksUrl = new URL(this.__storeLoader?.data?._links['fx:webhooks'].href ?? '');\n const itemsUrl = new URL(this.data._links['fx:items'].href);\n\n shipmentsUrl.searchParams.set('zoom', 'items:item_category');\n webhooksUrl.searchParams.set('event_resource', 'transaction');\n itemsUrl.searchParams.set('zoom', 'item_options');\n\n shipmentsLink = shipmentsUrl.toString();\n webhooksLink = webhooksUrl.toString();\n itemsLink = itemsUrl.toString();\n } catch {\n //\n }\n }\n\n return html`\n ${this.renderHeader()}\n ${alertStatuses.includes(this.data?.status ?? '')\n ? html`\n <p\n class=\"leading-xs text-body rounded bg-error-10 block\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <foxy-i18n infer=\"header\" key=\"alert_status_${this.data?.status}\"></foxy-i18n>\n </p>\n `\n : ''}\n\n <foxy-internal-transaction-customer-control infer=\"customer\">\n </foxy-internal-transaction-customer-control>\n\n <div\n class=\"grid gap-s\"\n ?hidden=${hidden.matches('items', true) && hidden.matches('summary', true)}\n >\n <foxy-internal-async-list-control\n infer=\"items\"\n class=\"min-w-0\"\n first=${ifDefined(itemsLink)}\n limit=\"10\"\n item=\"foxy-item-card\"\n form=\"foxy-item-form\"\n alert\n wide\n .related=${[this.href]}\n .itemProps=${{ 'locale-codes': this.localeCodes }}\n .formProps=${{\n 'item-categories': this.__storeLoader?.data?._links['fx:item_categories'].href,\n 'locale-codes': this.localeCodes,\n 'store': this.data?._links['fx:store'].href,\n }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-transaction-summary-control infer=\"summary\" class=\"min-w-0\">\n </foxy-internal-transaction-summary-control>\n </div>\n\n <foxy-internal-async-list-control\n infer=\"billing-addresses\"\n first=${ifDefined(this.data?._links['fx:billing_addresses'].href)}\n item=\"foxy-billing-address-card\"\n form=\"foxy-address-form\"\n hide-create-button\n hide-delete-button\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"payments\"\n first=${ifDefined(this.data?._links['fx:payments'].href)}\n item=\"foxy-payment-card\"\n .itemProps=${{\n 'hosted-payment-gateways-helper': this.hostedPaymentGatewaysHelper,\n 'payment-gateways-helper': this.paymentGatewaysHelper,\n }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"custom-fields\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:custom_fields'].href)}\n limit=\"5\"\n form=\"foxy-custom-field-form\"\n item=\"foxy-custom-field-card\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n form=\"foxy-attribute-form\"\n item=\"foxy-attribute-card\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"shipments\"\n first=${ifDefined(shipmentsLink)}\n item=\"foxy-shipment-card\"\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"webhooks\"\n first=${ifDefined(webhooksLink)}\n item=\"foxy-webhook-card\"\n form=\"foxy-webhook-form\"\n hide-create-button\n hide-delete-button\n alert\n .bulkActions=${this.__webhooksBulkActions}\n .itemProps=${{ 'resource-uri': this.href }}\n .formProps=${{ 'resource-uri': this.href }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-summary-control infer=\"datafeed\">\n <foxy-internal-switch-control infer=\"data-is-fed\"></foxy-internal-switch-control>\n <foxy-internal-post-action-control\n infer=\"process-webhook\"\n theme=\"tertiary-inline\"\n href=${ifDefined(this.data?._links['fx:process_webhook']?.href)}\n @success=${() => this.refresh()}\n >\n </foxy-internal-post-action-control>\n </foxy-internal-summary-control>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=\"storeLoader\"\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>('#storeLoader');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../src/elements/public/Transaction/Transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Badge } from '../../internal/InternalForm/types';\nimport type { Data } from './types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-element';\n\nconst NS = 'transaction';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Transaction summary page (`fx:transaction`).\n *\n * @element foxy-transaction\n * @since 1.17.0\n */\nexport class Transaction extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n hostedPaymentGatewaysHelper: { attribute: 'hosted-payment-gateways-helper' },\n paymentGatewaysHelper: { attribute: 'payment-gateways-helper' },\n getSubscriptionPageHref: { attribute: false },\n getCustomerPageHref: { attribute: false },\n localeCodes: { attribute: 'locale-codes' },\n };\n }\n\n /** URL of the `fx:hosted_payment_gateways` property helper resource. */\n hostedPaymentGatewaysHelper: string | null = null;\n\n /** URL of the `fx:payment_gateways` property helper resource. */\n paymentGatewaysHelper: string | null = null;\n\n /** Link to the `fx:locale_codes` property helper for currency formatting. */\n localeCodes: string | null = null;\n\n getSubscriptionPageHref: ((href: string) => string) | null = null;\n\n getCustomerPageHref: ((href: string) => string) | null = null;\n\n private readonly __webhooksBulkActions = [\n {\n name: 'refeed',\n onClick: async (selection: Resource<Rels.Webhook>[]) => {\n if (!this.data) return;\n\n const url = this.data._links['fx:send_webhooks'].href;\n const api = new Transaction.API(this);\n const response = await api.fetch(url, {\n method: 'POST',\n body: JSON.stringify({\n refeed_hooks: selection.map(hook => getResourceId(hook._links['self'].href)),\n event: 'refeed',\n }),\n });\n\n selection.forEach(hook => {\n Transaction.Rumour('').share({\n related: [\n ...selection.map(hook => hook._links['fx:logs'].href),\n ...selection.map(hook => hook._links['fx:statuses'].href),\n ],\n source: hook._links.self.href,\n data: hook,\n });\n });\n\n if (!response.ok) throw new Error(await response.text());\n },\n },\n ];\n\n get readonlySelector(): BooleanSelector {\n const alwaysMatch = [\n 'billing-addresses',\n 'datafeed:data-is-fed',\n 'webhooks:dialog:url',\n super.readonlySelector,\n ];\n\n const isEditable = Boolean(this.data?._links['fx:void'] ?? this.data?._links['fx:refund']);\n if (!isEditable) alwaysMatch.push('items', 'attributes', 'custom-fields');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [\n 'billing-addresses:dialog:delete',\n 'billing-addresses:dialog:timestamps',\n 'webhooks:dialog:header:copy-json',\n 'webhooks:dialog:header:copy-id',\n 'webhooks:dialog:timestamps',\n 'webhooks:dialog:name',\n 'webhooks:dialog:query',\n 'webhooks:dialog:encryption-key',\n 'webhooks:dialog:delete',\n super.readonlySelector,\n ];\n\n const type = this.data?.type;\n\n if (!this.data?._links['fx:subscription']) alwaysMatch.unshift('subscription');\n if (type === 'subscription_modification') alwaysMatch.unshift('actions');\n\n if (type === 'updateinfo') {\n alwaysMatch.unshift('not=customer,subscription,payments,custom-fields,attributes');\n }\n\n if (type === 'subscription_cancellation') {\n alwaysMatch.unshift('not=customer,subscription,custom-fields,attributes');\n }\n\n if (!this.__storeLoader?.data?.use_webhook) alwaysMatch.unshift('datafeed');\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n const source = this.data?.source;\n const type = this.data?.type;\n\n let context = '';\n\n if (type === 'updateinfo') {\n if (!source || source?.startsWith('cit_')) {\n context = 'customer_changed_payment_method';\n } else if (source === 'mit_uoe') {\n context = 'admin_changed_payment_method_with_uoe';\n } else if (source === 'mit_api') {\n context = 'integration_changed_payment_method';\n } else {\n context = 'admin_changed_payment_method';\n }\n } else if (type === 'subscription_modification') {\n if (!source || source?.startsWith('cit_')) {\n context = 'customer_changed_subscription';\n } else if (source === 'mit_uoe') {\n context = 'admin_changed_subscription_with_uoe';\n } else if (source === 'mit_api') {\n context = 'integration_changed_subscription';\n } else {\n context = 'admin_changed_subscription';\n }\n } else if (type === 'subscription_renewal') {\n if (source === 'mit_recurring') {\n context = 'subscription_renewal_attempt';\n } else if (source === 'mit_recurring_reattempt_automated') {\n context = 'subscription_renewal_automated_reattempt';\n } else if (source === 'mit_recurring_reattempt_manual') {\n context = 'subscription_renewal_manual_reattempt';\n }\n } else if (type === 'subscription_cancellation') {\n if (source === 'cit_recurring_cancellation') {\n context = 'customer_canceled_subscription';\n } else if (source === 'mit_recurring_cancellation') {\n context = 'admin_canceled_subscription';\n }\n } else {\n if (this.data?._links['fx:subscription']) {\n if (source?.startsWith('cit_')) {\n context = 'customer_subscribed';\n } else if (source === 'mit_uoe') {\n context = 'admin_subscribed_with_uoe';\n } else if (source === 'mit_api') {\n context = 'integration_subscribed';\n }\n } else {\n if (source?.startsWith('cit_')) {\n context = 'customer_placed_order';\n } else if (source === 'mit_uoe') {\n context = 'admin_placed_order_with_uoe';\n } else if (source === 'mit_api') {\n context = 'integration_placed_order';\n }\n }\n }\n\n return {\n transaction_date: this.data?.transaction_date,\n ip_country: this.data?.ip_country,\n context,\n };\n }\n\n get headerSubtitleBadges(): Badge[] {\n const badges = super.headerSubtitleBadges;\n const folder = this.data?._embedded?.['fx:folder'];\n\n if (folder?.name) {\n const folderColor = folder.color ?? '';\n const colors: Record<string, string> = {\n 'red': 'bg-folder-red text-white',\n 'red_pale': 'bg-folder-red-pale text-black',\n 'green': 'bg-folder-green text-white',\n 'green_pale': 'bg-folder-green-pale text-black',\n 'blue': 'bg-folder-blue text-white',\n 'blue_pale': 'bg-folder-blue-pale text-black',\n 'orange': 'bg-folder-orange text-white',\n 'orange_pale': 'bg-folder-orange-pale text-black',\n 'violet': 'bg-folder-violet text-white',\n 'violet_pale': 'bg-folder-violet-pale text-black',\n '': 'bg-contrast-5 text-body',\n };\n\n badges.push({\n class: colors[folderColor in colors ? folderColor : ''],\n icon: svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" style=\"width: 1em; height: 1em;\"><path d=\"M3.75 3A1.75 1.75 0 0 0 2 4.75v3.26a3.235 3.235 0 0 1 1.75-.51h12.5c.644 0 1.245.188 1.75.51V6.75A1.75 1.75 0 0 0 16.25 5h-4.836a.25.25 0 0 1-.177-.073L9.823 3.513A1.75 1.75 0 0 0 8.586 3H3.75ZM3.75 9A1.75 1.75 0 0 0 2 10.75v4.5c0 .966.784 1.75 1.75 1.75h12.5A1.75 1.75 0 0 0 18 15.25v-4.5A1.75 1.75 0 0 0 16.25 9H3.75Z\" /></svg>`,\n text: folder.name,\n });\n }\n\n if (this.data?.hide_transaction) badges.push({ key: 'archived' });\n if (this.data?.is_test) badges.push({ key: 'test' });\n\n return badges;\n }\n\n get headerCopyIdValue(): string {\n return this.data?.display_id?.toString() ?? '';\n }\n\n renderHeaderActions(): TemplateResult {\n const store = this.__storeLoader?.data;\n const foldersHref = store?._links['fx:transaction_folders'].href;\n\n return html`\n <foxy-internal-transaction-actions-control\n currency-display=${store?.use_international_currency_symbol ? 'code' : 'symbol'}\n folders=${ifDefined(foldersHref)}\n infer=\"actions\"\n >\n </foxy-internal-transaction-actions-control>\n `;\n }\n\n renderBody(): TemplateResult {\n let shipmentsLink: string | undefined = undefined;\n let webhooksLink: string | undefined = undefined;\n let itemsLink: string | undefined = undefined;\n\n const alertStatuses = ['problem', 'pending_fraud_review', 'rejected', 'declined'];\n const hidden = this.hiddenSelector;\n\n if (this.data) {\n try {\n const shipmentsUrl = new URL(this.data._links['fx:shipments'].href);\n const webhooksUrl = new URL(this.__storeLoader?.data?._links['fx:webhooks'].href ?? '');\n const itemsUrl = new URL(this.data._links['fx:items'].href);\n\n shipmentsUrl.searchParams.set('zoom', 'items:item_category');\n webhooksUrl.searchParams.set('event_resource', 'transaction');\n itemsUrl.searchParams.set('zoom', 'item_options');\n\n shipmentsLink = shipmentsUrl.toString();\n webhooksLink = webhooksUrl.toString();\n itemsLink = itemsUrl.toString();\n } catch {\n //\n }\n }\n\n return html`\n ${this.renderHeader()}\n ${alertStatuses.includes(this.data?.status ?? '')\n ? html`\n <p\n class=\"leading-xs text-body rounded bg-error-10 block\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <foxy-i18n infer=\"header\" key=\"alert_status_${this.data?.status}\"></foxy-i18n>\n </p>\n `\n : ''}\n\n <foxy-internal-transaction-customer-control infer=\"customer\">\n </foxy-internal-transaction-customer-control>\n\n <div\n class=\"grid gap-s\"\n ?hidden=${hidden.matches('items', true) && hidden.matches('summary', true)}\n >\n <foxy-internal-async-list-control\n infer=\"items\"\n class=\"min-w-0\"\n first=${ifDefined(itemsLink)}\n limit=\"10\"\n item=\"foxy-item-card\"\n form=\"foxy-item-form\"\n alert\n wide\n .related=${[this.href]}\n .itemProps=${{ 'locale-codes': this.localeCodes }}\n .formProps=${{\n 'item-categories': this.__storeLoader?.data?._links['fx:item_categories'].href,\n 'locale-codes': this.localeCodes,\n 'store': this.data?._links['fx:store'].href,\n }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-transaction-summary-control infer=\"summary\" class=\"min-w-0\">\n </foxy-internal-transaction-summary-control>\n </div>\n\n <foxy-internal-async-list-control\n infer=\"billing-addresses\"\n first=${ifDefined(this.data?._links['fx:billing_addresses'].href)}\n item=\"foxy-billing-address-card\"\n form=\"foxy-address-form\"\n hide-create-button\n hide-delete-button\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"payments\"\n first=${ifDefined(this.data?._links['fx:payments'].href)}\n item=\"foxy-payment-card\"\n .itemProps=${{\n 'hosted-payment-gateways-helper': this.hostedPaymentGatewaysHelper,\n 'payment-gateways-helper': this.paymentGatewaysHelper,\n }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"custom-fields\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:custom_fields'].href)}\n limit=\"5\"\n form=\"foxy-custom-field-form\"\n item=\"foxy-custom-field-card\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n form=\"foxy-attribute-form\"\n item=\"foxy-attribute-card\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"shipments\"\n first=${ifDefined(shipmentsLink)}\n item=\"foxy-shipment-card\"\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"webhooks\"\n first=${ifDefined(webhooksLink)}\n item=\"foxy-webhook-card\"\n form=\"foxy-webhook-form\"\n hide-create-button\n hide-delete-button\n alert\n .bulkActions=${this.__webhooksBulkActions}\n .itemProps=${{ 'resource-uri': this.href }}\n .formProps=${{ 'resource-uri': this.href }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-summary-control infer=\"datafeed\">\n <foxy-internal-switch-control infer=\"data-is-fed\"></foxy-internal-switch-control>\n <foxy-internal-post-action-control\n infer=\"process-webhook\"\n theme=\"tertiary-inline\"\n href=${ifDefined(this.data?._links['fx:process_webhook']?.href)}\n @success=${() => this.refresh()}\n >\n </foxy-internal-post-action-control>\n </foxy-internal-summary-control>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=\"storeLoader\"\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>('#storeLoader');\n }\n}\n"]}
|
|
@@ -2,8 +2,10 @@ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
|
2
2
|
import { InternalControl } from '../../../../internal/InternalControl/InternalControl';
|
|
3
3
|
export declare class InternalTransactionActionsControl extends InternalControl {
|
|
4
4
|
static get properties(): PropertyDeclarations;
|
|
5
|
+
currencyDisplay: string | null;
|
|
5
6
|
folders: string | null;
|
|
6
7
|
renderControl(): TemplateResult;
|
|
8
|
+
private get __refundAmount();
|
|
7
9
|
private __renderSendEmailsAction;
|
|
8
10
|
private __renderCaptureAction;
|
|
9
11
|
private __renderVoidAction;
|
|
@@ -4,11 +4,13 @@ import { html, svg } from 'lit-html';
|
|
|
4
4
|
export class InternalTransactionActionsControl extends InternalControl {
|
|
5
5
|
constructor() {
|
|
6
6
|
super(...arguments);
|
|
7
|
+
this.currencyDisplay = null;
|
|
7
8
|
this.folders = null;
|
|
8
9
|
}
|
|
9
10
|
static get properties() {
|
|
10
11
|
return {
|
|
11
12
|
...super.properties,
|
|
13
|
+
currencyDisplay: { attribute: 'currency-display' },
|
|
12
14
|
folders: {},
|
|
13
15
|
};
|
|
14
16
|
}
|
|
@@ -27,6 +29,13 @@ export class InternalTransactionActionsControl extends InternalControl {
|
|
|
27
29
|
</div>
|
|
28
30
|
`;
|
|
29
31
|
}
|
|
32
|
+
get __refundAmount() {
|
|
33
|
+
var _a, _b, _c, _d;
|
|
34
|
+
const data = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data;
|
|
35
|
+
const originalTotal = (_b = data === null || data === void 0 ? void 0 : data.total_order) !== null && _b !== void 0 ? _b : 0;
|
|
36
|
+
// @ts-expect-error SDK types do not include amount on fx:refund
|
|
37
|
+
return parseFloat((_d = (_c = data === null || data === void 0 ? void 0 : data._links['fx:refund']) === null || _c === void 0 ? void 0 : _c.amount) !== null && _d !== void 0 ? _d : originalTotal);
|
|
38
|
+
}
|
|
30
39
|
__renderSendEmailsAction() {
|
|
31
40
|
var _a, _b;
|
|
32
41
|
return html `
|
|
@@ -64,12 +73,17 @@ export class InternalTransactionActionsControl extends InternalControl {
|
|
|
64
73
|
`;
|
|
65
74
|
}
|
|
66
75
|
__renderRefundAction() {
|
|
67
|
-
var _a, _b, _c;
|
|
76
|
+
var _a, _b, _c, _d, _e;
|
|
77
|
+
const currencyCode = (_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.currency_code;
|
|
68
78
|
return html `
|
|
69
79
|
<foxy-internal-post-action-control
|
|
80
|
+
message-options=${JSON.stringify({
|
|
81
|
+
currencyDisplay: this.currencyDisplay,
|
|
82
|
+
amount: `${this.__refundAmount} ${currencyCode}`,
|
|
83
|
+
})}
|
|
70
84
|
infer="refund"
|
|
71
85
|
theme="tertiary-inline"
|
|
72
|
-
href=${ifDefined((
|
|
86
|
+
href=${ifDefined((_e = (_d = (_c = this.nucleon) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d._links['fx:refund']) === null || _e === void 0 ? void 0 : _e.href)}
|
|
73
87
|
@success=${() => { var _a; return (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.refresh(); }}
|
|
74
88
|
>
|
|
75
89
|
</foxy-internal-post-action-control>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalTransactionActionsControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport type { Transaction } from '../../Transaction';\nimport type { Resource } from '@foxy.io/sdk/core';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { Rels } from '@foxy.io/sdk/backend';\n\nexport class InternalTransactionActionsControl extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n folders: {},\n };\n }\n\n folders: string | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <div class=\"flex flex-wrap gap-x-m gap-y-xs\">\n ${this.nucleon?.data?._links['fx:capture'] ? this.__renderCaptureAction() : ''}\n ${this.nucleon?.data?._links['fx:void'] ? this.__renderVoidAction() : ''}\n ${this.nucleon?.data?._links['fx:refund'] ? this.__renderRefundAction() : ''}\n ${this.nucleon?.data?._links['fx:send_emails'] ? this.__renderSendEmailsAction() : ''}\n ${this.nucleon?.data?._links['fx:subscription'] ? this.__renderSubscriptionAction() : ''}\n ${this.nucleon?.data?._links['fx:receipt'] ? this.__renderReceiptAction() : ''}\n ${this.__renderArchiveAction()}\n ${this.folders ? this.__renderFolderSelector(this.folders) : ''}\n </div>\n `;\n }\n\n private __renderSendEmailsAction() {\n return html`\n <foxy-internal-post-action-control\n infer=\"send-emails\"\n theme=\"tertiary-inline\"\n href=${ifDefined(this.nucleon?.data?._links['fx:send_emails'].href)}\n @success=${() => this.nucleon?.refresh()}\n >\n </foxy-internal-post-action-control>\n `;\n }\n\n private __renderCaptureAction() {\n return html`\n <foxy-internal-post-action-control\n theme=\"tertiary-inline success\"\n infer=\"capture\"\n href=${ifDefined(this.nucleon?.data?._links['fx:capture'].href)}\n @success=${() => this.nucleon?.refresh()}\n >\n </foxy-internal-post-action-control>\n `;\n }\n\n private __renderVoidAction() {\n return html`\n <foxy-internal-post-action-control\n theme=\"tertiary-inline error\"\n infer=\"void\"\n href=${ifDefined(this.nucleon?.data?._links['fx:void']?.href)}\n @success=${() => this.nucleon?.refresh()}\n >\n </foxy-internal-post-action-control>\n `;\n }\n\n private __renderRefundAction() {\n return html`\n <foxy-internal-post-action-control\n infer=\"refund\"\n theme=\"tertiary-inline\"\n href=${ifDefined(this.nucleon?.data?._links['fx:refund']?.href)}\n @success=${() => this.nucleon?.refresh()}\n >\n </foxy-internal-post-action-control>\n `;\n }\n\n private __renderSubscriptionAction() {\n const host = this.nucleon as Transaction | null;\n const subHref = host?.data?._links['fx:subscription']?.href;\n const subPageHref = subHref ? host?.getSubscriptionPageHref?.(subHref) : void 0;\n\n return html`\n <a\n class=\"rounded text-m font-medium text-primary cursor-pointer transition-opacity hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${ifDefined(subPageHref)}\n >\n <foxy-i18n infer=\"subscription\" key=\"caption\"></foxy-i18n>\n </a>\n `;\n }\n\n private __renderReceiptAction() {\n const host = this.nucleon as Transaction | null;\n\n return html`\n <a\n target=\"_blank\"\n class=\"rounded text-m font-medium text-primary cursor-pointer transition-opacity hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${ifDefined(host?.data?._links['fx:receipt']?.href)}\n >\n <foxy-i18n infer=\"receipt\" key=\"caption\"></foxy-i18n>\n </a>\n `;\n }\n\n private __renderArchiveAction() {\n const host = this.nucleon as Transaction | null;\n\n return html`\n <vaadin-button\n theme=\"tertiary-inline\"\n ?disabled=${this.disabledSelector.matches('archive', true)}\n @click=${() => {\n host?.edit({ hide_transaction: !host?.form.hide_transaction });\n host?.submit();\n }}\n >\n <foxy-i18n\n infer=\"archive\"\n key=\"caption_${host?.form.hide_transaction ? 'unarchive' : 'archive'}\"\n >\n </foxy-i18n>\n </vaadin-button>\n `;\n }\n\n private __renderFolderSelector(foldersHref: string) {\n type FoldersLoader = NucleonElement<Resource<Rels.StoreTransactionFolders>>;\n\n const foldersLoader = this.renderRoot.querySelector<FoldersLoader>('#foldersLoader');\n const folders = Array.from(foldersLoader?.data?._embedded?.['fx:transaction_folders'] ?? []);\n const host = this.nucleon as Transaction | null;\n\n return html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${foldersHref}\n id=\"foldersLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <label\n class=\"group relative rounded focus-within-ring-2 focus-within-ring-primary-50\"\n ?hidden=${folders.length === 0}\n >\n <span\n class=\"inline-flex items-center gap-xs relative transition-opacity group-hover-opacity-80\"\n >\n <foxy-i18n class=\"font-medium text-primary\" infer=\"folder\" key=\"caption\"></foxy-i18n>\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" class=\"text-primary transform scale-125\" style=\"width: 1em; height: 1em\"><path fill-rule=\"evenodd\" d=\"M10.53 3.47a.75.75 0 0 0-1.06 0L6.22 6.72a.75.75 0 0 0 1.06 1.06L10 5.06l2.72 2.72a.75.75 0 1 0 1.06-1.06l-3.25-3.25Zm-4.31 9.81 3.25 3.25a.75.75 0 0 0 1.06 0l3.25-3.25a.75.75 0 1 0-1.06-1.06L10 14.94l-2.72-2.72a.75.75 0 0 0-1.06 1.06Z\" clip-rule=\"evenodd\" /></svg>`}\n </span>\n\n <select\n class=\"absolute inset-0 opacity-0 cursor-pointer\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${(evt: Event) => {\n host?.edit({ folder_uri: (evt.currentTarget as HTMLSelectElement).value });\n host?.submit(false);\n }}\n >\n <option value=\"\" ?selected=${!host?.form.folder_uri} ?disabled=${!host?.form.folder_uri}>\n ${this.t('folder.option_none')}\n </option>\n\n ${folders\n .sort((a, b) => a.sort_order - b.sort_order)\n .map(folder => {\n const folderHref = folder._links.self.href;\n const isSelected = host?.form.folder_uri === folderHref;\n return html`\n <option value=${folderHref} ?selected=${isSelected} ?disabled=${isSelected}>\n ${folder.name}\n </option>\n `;\n })}\n </select>\n </label>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalTransactionActionsControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport type { Transaction } from '../../Transaction';\nimport type { Resource } from '@foxy.io/sdk/core';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { Rels } from '@foxy.io/sdk/backend';\n\nexport class InternalTransactionActionsControl extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n currencyDisplay: { attribute: 'currency-display' },\n folders: {},\n };\n }\n\n currencyDisplay: string | null = null;\n\n folders: string | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <div class=\"flex flex-wrap gap-x-m gap-y-xs\">\n ${this.nucleon?.data?._links['fx:capture'] ? this.__renderCaptureAction() : ''}\n ${this.nucleon?.data?._links['fx:void'] ? this.__renderVoidAction() : ''}\n ${this.nucleon?.data?._links['fx:refund'] ? this.__renderRefundAction() : ''}\n ${this.nucleon?.data?._links['fx:send_emails'] ? this.__renderSendEmailsAction() : ''}\n ${this.nucleon?.data?._links['fx:subscription'] ? this.__renderSubscriptionAction() : ''}\n ${this.nucleon?.data?._links['fx:receipt'] ? this.__renderReceiptAction() : ''}\n ${this.__renderArchiveAction()}\n ${this.folders ? this.__renderFolderSelector(this.folders) : ''}\n </div>\n `;\n }\n\n private get __refundAmount(): number {\n const data = (this.nucleon as Transaction | null)?.data;\n const originalTotal = data?.total_order ?? 0;\n // @ts-expect-error SDK types do not include amount on fx:refund\n return parseFloat(data?._links['fx:refund']?.amount ?? originalTotal);\n }\n\n private __renderSendEmailsAction() {\n return html`\n <foxy-internal-post-action-control\n infer=\"send-emails\"\n theme=\"tertiary-inline\"\n href=${ifDefined(this.nucleon?.data?._links['fx:send_emails'].href)}\n @success=${() => this.nucleon?.refresh()}\n >\n </foxy-internal-post-action-control>\n `;\n }\n\n private __renderCaptureAction() {\n return html`\n <foxy-internal-post-action-control\n theme=\"tertiary-inline success\"\n infer=\"capture\"\n href=${ifDefined(this.nucleon?.data?._links['fx:capture'].href)}\n @success=${() => this.nucleon?.refresh()}\n >\n </foxy-internal-post-action-control>\n `;\n }\n\n private __renderVoidAction() {\n return html`\n <foxy-internal-post-action-control\n theme=\"tertiary-inline error\"\n infer=\"void\"\n href=${ifDefined(this.nucleon?.data?._links['fx:void']?.href)}\n @success=${() => this.nucleon?.refresh()}\n >\n </foxy-internal-post-action-control>\n `;\n }\n\n private __renderRefundAction() {\n const currencyCode = (this.nucleon as Transaction | null)?.data?.currency_code;\n\n return html`\n <foxy-internal-post-action-control\n message-options=${JSON.stringify({\n currencyDisplay: this.currencyDisplay,\n amount: `${this.__refundAmount} ${currencyCode}`,\n })}\n infer=\"refund\"\n theme=\"tertiary-inline\"\n href=${ifDefined(this.nucleon?.data?._links['fx:refund']?.href)}\n @success=${() => this.nucleon?.refresh()}\n >\n </foxy-internal-post-action-control>\n `;\n }\n\n private __renderSubscriptionAction() {\n const host = this.nucleon as Transaction | null;\n const subHref = host?.data?._links['fx:subscription']?.href;\n const subPageHref = subHref ? host?.getSubscriptionPageHref?.(subHref) : void 0;\n\n return html`\n <a\n class=\"rounded text-m font-medium text-primary cursor-pointer transition-opacity hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${ifDefined(subPageHref)}\n >\n <foxy-i18n infer=\"subscription\" key=\"caption\"></foxy-i18n>\n </a>\n `;\n }\n\n private __renderReceiptAction() {\n const host = this.nucleon as Transaction | null;\n\n return html`\n <a\n target=\"_blank\"\n class=\"rounded text-m font-medium text-primary cursor-pointer transition-opacity hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${ifDefined(host?.data?._links['fx:receipt']?.href)}\n >\n <foxy-i18n infer=\"receipt\" key=\"caption\"></foxy-i18n>\n </a>\n `;\n }\n\n private __renderArchiveAction() {\n const host = this.nucleon as Transaction | null;\n\n return html`\n <vaadin-button\n theme=\"tertiary-inline\"\n ?disabled=${this.disabledSelector.matches('archive', true)}\n @click=${() => {\n host?.edit({ hide_transaction: !host?.form.hide_transaction });\n host?.submit();\n }}\n >\n <foxy-i18n\n infer=\"archive\"\n key=\"caption_${host?.form.hide_transaction ? 'unarchive' : 'archive'}\"\n >\n </foxy-i18n>\n </vaadin-button>\n `;\n }\n\n private __renderFolderSelector(foldersHref: string) {\n type FoldersLoader = NucleonElement<Resource<Rels.StoreTransactionFolders>>;\n\n const foldersLoader = this.renderRoot.querySelector<FoldersLoader>('#foldersLoader');\n const folders = Array.from(foldersLoader?.data?._embedded?.['fx:transaction_folders'] ?? []);\n const host = this.nucleon as Transaction | null;\n\n return html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${foldersHref}\n id=\"foldersLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <label\n class=\"group relative rounded focus-within-ring-2 focus-within-ring-primary-50\"\n ?hidden=${folders.length === 0}\n >\n <span\n class=\"inline-flex items-center gap-xs relative transition-opacity group-hover-opacity-80\"\n >\n <foxy-i18n class=\"font-medium text-primary\" infer=\"folder\" key=\"caption\"></foxy-i18n>\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" class=\"text-primary transform scale-125\" style=\"width: 1em; height: 1em\"><path fill-rule=\"evenodd\" d=\"M10.53 3.47a.75.75 0 0 0-1.06 0L6.22 6.72a.75.75 0 0 0 1.06 1.06L10 5.06l2.72 2.72a.75.75 0 1 0 1.06-1.06l-3.25-3.25Zm-4.31 9.81 3.25 3.25a.75.75 0 0 0 1.06 0l3.25-3.25a.75.75 0 1 0-1.06-1.06L10 14.94l-2.72-2.72a.75.75 0 0 0-1.06 1.06Z\" clip-rule=\"evenodd\" /></svg>`}\n </span>\n\n <select\n class=\"absolute inset-0 opacity-0 cursor-pointer\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${(evt: Event) => {\n host?.edit({ folder_uri: (evt.currentTarget as HTMLSelectElement).value });\n host?.submit(false);\n }}\n >\n <option value=\"\" ?selected=${!host?.form.folder_uri} ?disabled=${!host?.form.folder_uri}>\n ${this.t('folder.option_none')}\n </option>\n\n ${folders\n .sort((a, b) => a.sort_order - b.sort_order)\n .map(folder => {\n const folderHref = folder._links.self.href;\n const isSelected = host?.form.folder_uri === folderHref;\n return html`\n <option value=${folderHref} ?selected=${isSelected} ?disabled=${isSelected}>\n ${folder.name}\n </option>\n `;\n })}\n </select>\n </label>\n `;\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import { InternalControl } from '../../../../internal/InternalControl/InternalCo
|
|
|
3
3
|
export declare class InternalTransactionSummaryControl extends InternalControl {
|
|
4
4
|
private readonly __storeLoaderId;
|
|
5
5
|
renderControl(): TemplateResult;
|
|
6
|
+
private get __refundableAmount();
|
|
6
7
|
private get __storeHref();
|
|
7
8
|
private get __store();
|
|
8
9
|
private __renderPrice;
|
|
@@ -13,6 +13,7 @@ export class InternalTransactionSummaryControl extends InternalControl {
|
|
|
13
13
|
return html ``;
|
|
14
14
|
const taxes = (_c = (_b = data === null || data === void 0 ? void 0 : data._embedded) === null || _b === void 0 ? void 0 : _b['fx:applied_taxes']) !== null && _c !== void 0 ? _c : [];
|
|
15
15
|
const shipments = (_e = (_d = data._embedded) === null || _d === void 0 ? void 0 : _d['fx:shipments']) !== null && _e !== void 0 ? _e : [];
|
|
16
|
+
const refundableAmount = this.__refundableAmount;
|
|
16
17
|
return html `
|
|
17
18
|
<foxy-nucleon
|
|
18
19
|
infer=""
|
|
@@ -80,9 +81,38 @@ export class InternalTransactionSummaryControl extends InternalControl {
|
|
|
80
81
|
${this.__renderPrice(data.total_order)}
|
|
81
82
|
</span>
|
|
82
83
|
</span>
|
|
84
|
+
|
|
85
|
+
${refundableAmount !== data.total_order
|
|
86
|
+
? html `
|
|
87
|
+
<span class="col-span-2 border-t border-dashed border-contrast-20 my-s"></span>
|
|
88
|
+
<span class="col-span-2 flex justify-end">
|
|
89
|
+
<span>
|
|
90
|
+
<span class="text-xl font-medium leading-xs">
|
|
91
|
+
<foxy-i18n infer="" key="refundable_amount"></foxy-i18n>:
|
|
92
|
+
${this.__renderPrice(refundableAmount)}
|
|
93
|
+
</span>
|
|
94
|
+
<br />
|
|
95
|
+
<foxy-i18n
|
|
96
|
+
class="inline-block whitespace-normal leading-s text-tertiary"
|
|
97
|
+
style="max-width: 48ch"
|
|
98
|
+
infer=""
|
|
99
|
+
key="refundable_amount_note"
|
|
100
|
+
>
|
|
101
|
+
</foxy-i18n>
|
|
102
|
+
</span>
|
|
103
|
+
</span>
|
|
104
|
+
`
|
|
105
|
+
: ''}
|
|
83
106
|
</p>
|
|
84
107
|
`;
|
|
85
108
|
}
|
|
109
|
+
get __refundableAmount() {
|
|
110
|
+
var _a, _b, _c, _d;
|
|
111
|
+
const data = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data;
|
|
112
|
+
const originalTotal = (_b = data === null || data === void 0 ? void 0 : data.total_order) !== null && _b !== void 0 ? _b : 0;
|
|
113
|
+
// @ts-expect-error SDK types do not include amount on fx:refund
|
|
114
|
+
return parseFloat((_d = (_c = data === null || data === void 0 ? void 0 : data._links['fx:refund']) === null || _c === void 0 ? void 0 : _c.amount) !== null && _d !== void 0 ? _d : originalTotal);
|
|
115
|
+
}
|
|
86
116
|
get __storeHref() {
|
|
87
117
|
var _a, _b, _c;
|
|
88
118
|
return (_c = (_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b._links['fx:store']) === null || _c === void 0 ? void 0 : _c.href;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalTransactionSummaryControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Data } from '../../types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nexport class InternalTransactionSummaryControl extends InternalControl {\n private readonly __storeLoaderId = 'storeLoader';\n\n renderControl(): TemplateResult {\n const data = this.nucleon?.data as Data | undefined;\n if (!data) return html``;\n\n const taxes = data?._embedded?.['fx:applied_taxes'] ?? [];\n const shipments = data._embedded?.['fx:shipments'] ?? [];\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(this.__storeHref)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <p\n class=\"grid gap-x-s text-right text-s leading-m border-dashed border rounded border-contrast-20 whitespace-nowrap overflow-auto\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 2px); grid-template-columns: 1fr min-content\"\n >\n <span><foxy-i18n key=\"subtotal\" infer=\"\"></foxy-i18n>:</span>\n <span>${this.__renderPrice(data.total_item_price as unknown as number)}</span>\n\n ${shipments.length === 0 || (data.total_shipping as unknown as number) === 0\n ? html`\n <span><foxy-i18n infer=\"\" key=\"total_shipping\"></foxy-i18n>:</span>\n <span>${this.__renderPrice(data.total_shipping as unknown as number, true)} </span>\n `\n : shipments.map(shipment => {\n return html`\n <span>${shipment.shipping_service_description}:</span>\n <span>${this.__renderPrice(shipment.total_shipping, true)}</span>\n `;\n })}\n ${taxes.length === 0 || (data.total_tax as unknown as number) === 0\n ? html`\n <span><foxy-i18n infer=\"\" key=\"total_tax\"></foxy-i18n>:</span>\n <span>${this.__renderPrice(data.total_tax as unknown as number, true)}</span>\n `\n : taxes.map(tax => {\n return html`\n <span>${tax.name}:</span>\n <span>${this.__renderPrice(tax.amount, true)}</span>\n `;\n })}\n ${data?._embedded?.['fx:gift_card_code_logs']?.map(log => {\n // @ts-expect-error deep zoom is not supported by the SDK types\n const name = log._embedded?.['fx:gift_card']?.name;\n // @ts-expect-error deep zoom is not supported by the SDK types\n const code = log._embedded?.['fx:gift_card_code']?.code;\n\n if (name && code) {\n return html`\n <span data-testclass=\"gift-card-code\">${name} • ${code}:</span>\n <span>${this.__renderPrice(log.balance_adjustment ?? 0, true)}</span>\n `;\n }\n })}\n ${data?._embedded?.['fx:discounts']?.map(({ name, code: c, amount }) => {\n return html`\n <span data-testclass=\"discount\">${name}${c ? html` • ${c}` : ''}:</span>\n <span>${this.__renderPrice(amount, true)}</span>\n `;\n })}\n\n <span class=\"col-span-2 border-t border-dashed border-contrast-20 my-s\"></span>\n\n <span class=\"col-span-2 flex gap-s justify-between items-center\">\n ${this.__renderStatus()}\n <span class=\"text-xl font-medium leading-xs\">\n <foxy-i18n infer=\"\" key=\"total\"></foxy-i18n>:\n ${this.__renderPrice(data.total_order)}\n </span>\n </span>\n </p>\n `;\n }\n\n private get __storeHref() {\n return this.nucleon?.data?._links['fx:store']?.href as string | undefined;\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 __renderPrice(amount: number, isAdditive = false) {\n const currencyDisplay = this.__store?.use_international_currency_symbol ? 'code' : 'symbol';\n const currencyCode = this.nucleon?.data?.currency_code as string | undefined;\n\n return html`\n <foxy-i18n\n class=${isAdditive && amount !== 0 ? (amount > 0 ? 'text-success' : 'text-error') : ''}\n infer=\"\"\n key=\"price\"\n .options=${{\n currencyDisplay,\n signDisplay: isAdditive ? 'exceptZero' : 'auto',\n amount: `${amount} ${currencyCode}`,\n }}\n >\n </foxy-i18n>\n `;\n }\n\n private __renderStatus() {\n const status = this.nucleon?.data?.status || 'completed';\n let color = '';\n\n if (['capturing', 'captured', 'approved', 'authorized', 'pending'].includes(status)) {\n color = 'text-success bg-success-10';\n } else if (!status || status === 'completed') {\n color = 'text-success-contrast bg-success';\n } else if (['problem', 'pending_fraud_review', 'rejected', 'declined'].includes(status)) {\n color = 'text-error-contrast bg-error';\n } else {\n color = 'bg-contrast-5 text-body';\n }\n\n return html`\n <foxy-i18n\n infer=\"\"\n class=\"${color} rounded-s py-xs px-s font-medium text-s leading-xs\"\n key=\"status_${status}\"\n ></foxy-i18n>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalTransactionSummaryControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Data } from '../../types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nexport class InternalTransactionSummaryControl extends InternalControl {\n private readonly __storeLoaderId = 'storeLoader';\n\n renderControl(): TemplateResult {\n const data = this.nucleon?.data as Data | undefined;\n if (!data) return html``;\n\n const taxes = data?._embedded?.['fx:applied_taxes'] ?? [];\n const shipments = data._embedded?.['fx:shipments'] ?? [];\n const refundableAmount = this.__refundableAmount;\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(this.__storeHref)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <p\n class=\"grid gap-x-s text-right text-s leading-m border-dashed border rounded border-contrast-20 whitespace-nowrap overflow-auto\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 2px); grid-template-columns: 1fr min-content\"\n >\n <span><foxy-i18n key=\"subtotal\" infer=\"\"></foxy-i18n>:</span>\n <span>${this.__renderPrice(data.total_item_price as unknown as number)}</span>\n\n ${shipments.length === 0 || (data.total_shipping as unknown as number) === 0\n ? html`\n <span><foxy-i18n infer=\"\" key=\"total_shipping\"></foxy-i18n>:</span>\n <span>${this.__renderPrice(data.total_shipping as unknown as number, true)} </span>\n `\n : shipments.map(shipment => {\n return html`\n <span>${shipment.shipping_service_description}:</span>\n <span>${this.__renderPrice(shipment.total_shipping, true)}</span>\n `;\n })}\n ${taxes.length === 0 || (data.total_tax as unknown as number) === 0\n ? html`\n <span><foxy-i18n infer=\"\" key=\"total_tax\"></foxy-i18n>:</span>\n <span>${this.__renderPrice(data.total_tax as unknown as number, true)}</span>\n `\n : taxes.map(tax => {\n return html`\n <span>${tax.name}:</span>\n <span>${this.__renderPrice(tax.amount, true)}</span>\n `;\n })}\n ${data?._embedded?.['fx:gift_card_code_logs']?.map(log => {\n // @ts-expect-error deep zoom is not supported by the SDK types\n const name = log._embedded?.['fx:gift_card']?.name;\n // @ts-expect-error deep zoom is not supported by the SDK types\n const code = log._embedded?.['fx:gift_card_code']?.code;\n\n if (name && code) {\n return html`\n <span data-testclass=\"gift-card-code\">${name} • ${code}:</span>\n <span>${this.__renderPrice(log.balance_adjustment ?? 0, true)}</span>\n `;\n }\n })}\n ${data?._embedded?.['fx:discounts']?.map(({ name, code: c, amount }) => {\n return html`\n <span data-testclass=\"discount\">${name}${c ? html` • ${c}` : ''}:</span>\n <span>${this.__renderPrice(amount, true)}</span>\n `;\n })}\n\n <span class=\"col-span-2 border-t border-dashed border-contrast-20 my-s\"></span>\n\n <span class=\"col-span-2 flex gap-s justify-between items-center\">\n ${this.__renderStatus()}\n <span class=\"text-xl font-medium leading-xs\">\n <foxy-i18n infer=\"\" key=\"total\"></foxy-i18n>:\n ${this.__renderPrice(data.total_order)}\n </span>\n </span>\n\n ${refundableAmount !== data.total_order\n ? html`\n <span class=\"col-span-2 border-t border-dashed border-contrast-20 my-s\"></span>\n <span class=\"col-span-2 flex justify-end\">\n <span>\n <span class=\"text-xl font-medium leading-xs\">\n <foxy-i18n infer=\"\" key=\"refundable_amount\"></foxy-i18n>:\n ${this.__renderPrice(refundableAmount)}\n </span>\n <br />\n <foxy-i18n\n class=\"inline-block whitespace-normal leading-s text-tertiary\"\n style=\"max-width: 48ch\"\n infer=\"\"\n key=\"refundable_amount_note\"\n >\n </foxy-i18n>\n </span>\n </span>\n `\n : ''}\n </p>\n `;\n }\n\n private get __refundableAmount(): number {\n const data = this.nucleon?.data as Data | undefined;\n const originalTotal = data?.total_order ?? 0;\n // @ts-expect-error SDK types do not include amount on fx:refund\n return parseFloat(data?._links['fx:refund']?.amount ?? originalTotal);\n }\n\n private get __storeHref() {\n return this.nucleon?.data?._links['fx:store']?.href as string | undefined;\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 __renderPrice(amount: number, isAdditive = false) {\n const currencyDisplay = this.__store?.use_international_currency_symbol ? 'code' : 'symbol';\n const currencyCode = this.nucleon?.data?.currency_code as string | undefined;\n\n return html`\n <foxy-i18n\n class=${isAdditive && amount !== 0 ? (amount > 0 ? 'text-success' : 'text-error') : ''}\n infer=\"\"\n key=\"price\"\n .options=${{\n currencyDisplay,\n signDisplay: isAdditive ? 'exceptZero' : 'auto',\n amount: `${amount} ${currencyCode}`,\n }}\n >\n </foxy-i18n>\n `;\n }\n\n private __renderStatus() {\n const status = this.nucleon?.data?.status || 'completed';\n let color = '';\n\n if (['capturing', 'captured', 'approved', 'authorized', 'pending'].includes(status)) {\n color = 'text-success bg-success-10';\n } else if (!status || status === 'completed') {\n color = 'text-success-contrast bg-success';\n } else if (['problem', 'pending_fraud_review', 'rejected', 'declined'].includes(status)) {\n color = 'text-error-contrast bg-error';\n } else {\n color = 'bg-contrast-5 text-body';\n }\n\n return html`\n <foxy-i18n\n infer=\"\"\n class=\"${color} rounded-s py-xs px-s font-medium text-s leading-xs\"\n key=\"status_${status}\"\n ></foxy-i18n>\n `;\n }\n}\n"]}
|
package/dist/utils/parse-date.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { safeDate } from "./safe-date.js";
|
|
1
2
|
export function parseDate(strDate) {
|
|
2
3
|
if (strDate === '0000-00-00')
|
|
3
4
|
return null;
|
|
4
5
|
const [year, month, day] = strDate.split('-').map(v => parseInt(v, 10));
|
|
5
6
|
if ([year, month, day].some(v => typeof v !== 'number' || isNaN(v)))
|
|
6
7
|
return null;
|
|
7
|
-
return
|
|
8
|
+
return safeDate(year, month - 1, day);
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=parse-date.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-date.js","sourceRoot":"","sources":["../../src/utils/parse-date.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"parse-date.js","sourceRoot":"","sources":["../../src/utils/parse-date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,uBAAoB;AAEvC,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjF,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC","sourcesContent":["import { safeDate } from './safe-date';\n\nexport function parseDate(strDate: string): Date | null {\n if (strDate === '0000-00-00') return null;\n const [year, month, day] = strDate.split('-').map(v => parseInt(v, 10));\n if ([year, month, day].some(v => typeof v !== 'number' || isNaN(v))) return null;\n return safeDate(year, month - 1, day);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function safeDate(year: number, month: number, day?: number): Date;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function safeDate(year, month, day) {
|
|
2
|
+
// 0-99 map to 1900-1999 in JS Date, so we need to use
|
|
3
|
+
// setFullYear to set the correct year.
|
|
4
|
+
const date = new Date();
|
|
5
|
+
date.setFullYear(year, month, day);
|
|
6
|
+
date.setHours(0, 0, 0, 0);
|
|
7
|
+
return date;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=safe-date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-date.js","sourceRoot":"","sources":["../../src/utils/safe-date.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAa,EAAE,GAAY;IAChE,sDAAsD;IACtD,uCAAuC;IACvC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["export function safeDate(year: number, month: number, day?: number): Date {\n // 0-99 map to 1900-1999 in JS Date, so we need to use\n // setFullYear to set the correct year.\n const date = new Date();\n date.setFullYear(year, month, day);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./shared-fc6e64a4.js";import{I as e}from"./shared-9a454e09.js";import{x as t}from"./shared-328aa161.js";import{c as a,h as r}from"./shared-ba5c42c7.js";import{_ as i}from"./shared-8f9014ff.js";import{s as o}from"./shared-2061be9a.js";import{p as l}from"./shared-f0fa0a88.js";import{i as s}from"./shared-53e42a77.js";let n;function m(e){return new Array(7).fill(new Date).map(((t,a)=>{for(;t.getDay()!==a;)t.setDate(t.getDate()+1);return t.toLocaleDateString(e,{weekday:"short"})}))}function h(e){return new Array(7).fill(new Date).map(((t,a)=>{for(;t.getDay()!==a;)t.setDate(t.getDate()+1);return t.toLocaleDateString(e,{weekday:"long"})}))}t("vaadin-date-picker-text-field",a(n||(n=(e=>e)`:host([theme~=summary-item])::before{display:none}:host([theme~=summary-item]) .vaadin-text-field-container{display:grid;grid-template-columns:auto 1fr;grid-template-rows:repeat(3,min-content);gap:0 var(--lumo-space-m)}:host([theme~=summary-item]) [part=label]{font:normal var(--lumo-font-size-m) var(--lumo-font-family);color:var(--lumo-body-text-color)!important;grid-row:1;-webkit-text-fill-color:var(--lumo-body-text-color)!important}:host([theme~=summary-item]) [part=helper-text]{font:normal var(--lumo-font-size-s) var(--lumo-font-family);color:var(--lumo-secondary-text-color)!important;grid-row:2}:host([theme~=summary-item]) [part=helper-text]::before{display:none}:host([theme~=summary-item]) [part=error-message]{font:normal var(--lumo-font-size-s) var(--lumo-font-family);color:var(--lumo-error-text-color);grid-row:3}:host([theme~=summary-item]) [part=error-message],:host([theme~=summary-item]) [part=helper-text],:host([theme~=summary-item]) [part=label]{line-height:var(--lumo-line-height-xs);grid-column:1;padding:0}:host([theme~=summary-item]) [part=input-field]{grid-column:2;grid-row:1;padding:0;background:0 0;align-self:start;height:1em;--lumo-icon-size-m:1rem}:host([theme~=summary-item]) [part=input-field]::after,:host([theme~=summary-item][readonly]) [part=input-field] slot[name=suffix]{display:none}:host([theme~=summary-item]) [part=value]{line-height:var(--lumo-line-height-xs);text-align:right;min-height:auto;padding:0;margin-right:var(--lumo-space-xs);-webkit-mask-image:none}:host([theme~=summary-item][readonly]) [part=value]{margin-right:0}:host([theme~=summary-item]) [part=clear-button]{transform:scale(1.5)}:host([has-value]) slot[name=suffix]{display:none}`)));let u,d=e=>e;customElements.define("foxy-internal-date-control",class extends e{constructor(){super(...arguments),this.hideClearButton=!1,this.format=null,this.layout=null,this.min=null}static get properties(){return i(i({},super.properties),{},{hideClearButton:{type:Boolean,attribute:"hide-clear-button",reflect:!0},format:{},layout:{},min:{}})}renderControl(){var e,t,a,i;let n;return n="0000-00-00"!==this._value&&this._value?"unix"===this.format?o(new Date(1e3*(null!==(e=this._value)&&void 0!==e?e:0))):"iso-long"===this.format?o(new Date(this._value)):(null!==(t=this._value)&&void 0!==t?t:"").substring(0,10):"",r(u||(u=d` <vaadin-date-picker error-message="${0}" placeholder="${0}" helper-text="${0}" label="${0}" class="w-full" theme="${0}" min="${0}" ?clear-button-visible="${0}" ?disabled="${0}" ?readonly="${0}" .checkValidity="${0}" .value="${0}" .i18n="${0}" @keydown="${0}" @change="${0}"> </vaadin-date-picker> `),s(this._errorMessage),this.placeholder,this.helperText,this.label,null!==(a=this.layout)&&void 0!==a?a:"standalone",s(null!==(i=this.min)&&void 0!==i?i:void 0),!this.hideClearButton,this.disabled,this.readonly,this._checkValidity,n,this.__pickerI18n,(e=>{var t;return"Enter"===e.key&&(null===(t=this.nucleon)||void 0===t?void 0:t.submit())}),(e=>{var t,a,r,i;const o=e.currentTarget;"unix"===this.format?this._value=Math.floor((null!==(a=null===(t=l(o.value))||void 0===t?void 0:t.getTime())&&void 0!==a?a:0)/1e3):"iso-long"===this.format?this._value=null!==(i=null===(r=l(o.value))||void 0===r?void 0:r.toISOString())&&void 0!==i?i:null:this._value=o.value}))}get __pickerI18n(){return{monthNames:(e=this.lang||"en",new Array(12).fill(null).map(((t,a)=>new Date(2e3,a,1).toLocaleDateString(e,{month:"long"})))),weekdays:h(this.lang||"en"),weekdaysShort:m(this.lang||"en"),firstDayOfWeek:0,week:this.t("week"),calendar:this.t("calendar"),clear:this.t("clear"),today:this.t("today"),cancel:this.t("cancel"),referenceDate:"",parseDate:null,formatTitle:(e,t)=>e+" "+t,formatDate:e=>this.t("display_value",{value:new Date(e.year,e.month,e.day)})};var e}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./shared-be071e3d.js";import"./shared-b0453b08.js";import"./shared-18e301f2.js";import{L as t,h as e}from"./shared-ba5c42c7.js";import{T as a}from"./shared-328aa161.js";import{c as s}from"./shared-4e709717.js";import{p as n}from"./shared-f0fa0a88.js";import{s as r}from"./shared-2061be9a.js";let i,o,l,d,h,c=t=>t;class u extends(a(t)){constructor(){super(...arguments),this.checkAvailability=()=>!0,this.readonly=!1,this.disabled=!1,this.value="",this.start="",this.lang=""}static get properties(){return{checkAvailability:{attribute:!1},readonly:{type:Boolean,reflect:!0},disabled:{type:Boolean,reflect:!0},value:{type:String},start:{type:String},lang:{type:String}}}render(){var t,a;const n=new Date(null!==(a=null!==(t=this.__startAsDate)&&void 0!==t?t:this.__valueAsDate)&&void 0!==a?a:Date.now()),r=new Date(n),o=new Date(n),l=this.lang||navigator.language;return r.setMonth(r.getMonth()-1),o.setMonth(o.getMonth()+1),e(i||(i=c` <div class="text-m text-body font-lumo leading-m"> <div class="grid p-xs" style="grid-template:auto/max-content auto max-content"> <vaadin-button data-testid="prev" aria-label="${0}" theme="icon tertiary" class="px-xs" ?disabled="${0}" @click="${0}"> <iron-icon icon="icons:chevron-left"></iron-icon> </vaadin-button> <span data-testid="month" class="${0}"> ${0} </span> <vaadin-button data-testid="next" aria-label="${0}" theme="icon tertiary" class="px-xs" ?disabled="${0}" @click="${0}"> <iron-icon icon="icons:chevron-right"></iron-icon> </vaadin-button> </div> ${0} </div> `),r.toLocaleString(l,{year:"numeric",month:"long"}),this.disabled,this.__handlePrevButtonClick,s({"text-center self-center font-medium":!0,"text-disabled":this.disabled}),n.toLocaleDateString(l,{month:"long",year:"numeric"}),o.toLocaleString(l,{year:"numeric",month:"long"}),this.disabled,this.__handleNextButtonClick,this.__renderMonth(n.getMonth(),n.getFullYear()))}get __valueAsDate(){return n(this.value)}set __valueAsDate(t){this.value=t?r(t):""}get __startAsDate(){return n(this.start)}set __startAsDate(t){this.start=t?r(t):""}__renderMonth(t,a){var n,r,i;const h=this.lang||navigator.language,u=new Date(a,t,1,0,0,0,0),g=[];for(let t=0;t<7;++t){const a=new Date;for(;a.getDay()!==t;)a.setDate(a.getDate()+1);g.push(e(o||(o=c` <span class="${0}"> ${0} </span> `),s({"self-center text-xxs uppercase font-medium tracking-wider":!0,"text-secondary":!this.disabled,"text-disabled":this.disabled}),a.toLocaleString(h,{weekday:"short"})))}for(;u.getMonth()===t;){const s=u.getFullYear()===(null===(n=this.__valueAsDate)||void 0===n?void 0:n.getFullYear())&&u.getMonth()===(null===(r=this.__valueAsDate)||void 0===r?void 0:r.getMonth())&&u.getDate()===(null===(i=this.__valueAsDate)||void 0===i?void 0:i.getDate());g.push(e(l||(l=c` <div style="grid-column:${0}" data-testclass="day-of-month"> ${0} </div> `),u.getDay()+1,this.__renderDate(u.getDate(),t,a,s))),u.setDate(u.getDate()+1)}return e(d||(d=c` <form data-testid="grid" class="grid gap-s p-s text-center" style="grid-template:auto/repeat(7,1fr)"> ${0} </form> `),g)}__renderDate(t,a,n,r=!1){const i=this.disabled||this.readonly||!this.checkAvailability(new Date(n,a,t));return e(h||(h=c` <label class="${0}"> <input name="date" type="radio" value="${0}" class="sr-only" ?disabled="${0}" @change="${0}"> ${0} </label> `),s({"relative flex w-m h-m items-center justify-center rounded-s":!0,"font-tnum text-l select-none leading-none":!0,"cursor-pointer focus-within-ring-2 focus-within-ring-primary-50":!i,"bg-contrast-5 hover-bg-contrast-10":!r&&!i,"bg-primary text-primary-contrast":r&&!i,"border border-dashed border-contrast-20 text-disabled":!r&&i,"border border-dashed border-primary text-primary":r&&i}),t,this.readonly||this.disabled||i,(()=>{this.__valueAsDate=new Date(n,a,t),this.dispatchEvent(new CustomEvent("change"))}),t)}__handlePrevButtonClick(){var t;const e=null!==(t=this.__startAsDate)&&void 0!==t?t:new Date;this.__startAsDate=new Date(e.setMonth(e.getMonth()-1))}__handleNextButtonClick(){var t;const e=null!==(t=this.__startAsDate)&&void 0!==t?t:new Date;this.__startAsDate=new Date(e.setMonth(e.getMonth()+1))}}customElements.define("foxy-internal-calendar",u);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function n(n){if("0000-00-00"===n)return null;const[e,t,r]=n.split("-").map((n=>parseInt(n,10)));return[e,t,r].some((n=>"number"!=typeof n||isNaN(n)))?null:new Date(e,t-1,r)}export{n as p};
|