@foxy.io/elements 1.49.0 → 1.50.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/foxy-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 +4 -0
- 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/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":"CouponForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/CouponForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult, PropertyDeclarations } from 'lit-element';\nimport type { Data, TransactionPageHrefGetter } from './types';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Option, Rule } from '../QueryBuilder/types';\nimport type { SwipeAction } from '../../internal/InternalAsyncListControl/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { Type, Operator } from '../QueryBuilder/types';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\nimport { parse } from '../QueryBuilder/utils/parse';\nimport { stringify } from '../QueryBuilder/utils/stringify';\n\nconst NS = 'coupon-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing coupons (`fx:coupon`).\n *\n * @element foxy-coupon-form\n * @since 1.15.0\n */\nexport class CouponForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\n __couponCodesActions: { type: Array },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n ({ inclusive_tax_rate: v }) => !v || v >= 0 || 'inclusive-tax-rate:v8n_too_small',\n ({ inclusive_tax_rate: v }) => !v || v <= 1 || 'inclusive-tax-rate:v8n_too_big',\n ({ number_of_uses_allowed: v }) => !v || v >= 0 || 'number-of-uses-allowed:v8n_too_small',\n ({ coupon_discount_details: v }) => !!v || 'rules:v8n_required',\n ({ coupon_discount_details: v }) => !v || v.length <= 200 || 'rules:v8n_too_long',\n ({ item_option_restrictions: v }) => {\n return !v || JSON.stringify(v).length <= 6000 || 'item-option-restrictions:v8n_too_long';\n },\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ({ customer_attribute_restrictions: v }) => {\n return !v || v.length <= 2000 || 'customer-attribute-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_code: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-code:v8n_too_small';\n },\n ({ customer_subscription_restrictions: v }) => {\n return !v || v.length <= 200 || 'customer-subscription-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_customer: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-customer:v8n_too_small';\n },\n ];\n }\n\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n private readonly __customerAttributeRestrictionsOperators: Operator[] = [\n Operator.Not,\n Operator.In,\n ];\n\n private readonly __customerAttributeRestrictionsGetValue = () => {\n const simplifiedValue = parse(this.form.customer_attribute_restrictions ?? '')\n .filter(value => Array.isArray(value) || typeof value.name === 'string')\n .map(value => {\n if (Array.isArray(value)) {\n return value\n .filter(({ name }) => typeof name === 'string')\n .map(({ name, operator, value }) => {\n const output: Rule = { path: name as string, operator, value };\n return output;\n });\n }\n\n const output: Rule = {\n operator: value.operator,\n value: value.value,\n path: value.name as string,\n };\n\n return output;\n });\n\n return stringify(simplifiedValue, true);\n };\n\n private readonly __customerAttributeRestrictionsSetValue = (newValue: string) => {\n const augmentedValue = parse(newValue).map(value => {\n if (Array.isArray(value)) {\n return value.map(({ path, operator, value }) => {\n const output: Rule = { name: path, path: 'attributes', operator, value };\n return output;\n });\n } else {\n const output: Rule = {\n operator: value.operator,\n value: value.value,\n path: 'attributes',\n name: value.path,\n };\n\n return output;\n }\n });\n\n this.edit({ customer_attribute_restrictions: stringify(augmentedValue, true) });\n };\n\n private readonly __customerSubscriptionRestrictionsGetValue = () => {\n const items = this.form.customer_subscription_restrictions\n ?.split(',')\n .map(value => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .map(value => ({ value }));\n\n return items ?? [];\n };\n\n private readonly __customerSubscriptionRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n customer_subscription_restrictions: newValue\n .map(({ value }) => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .join(),\n });\n\n this.edit({\n customer_auto_apply:\n !!this.form.customer_subscription_restrictions ||\n !!this.form.customer_attribute_restrictions,\n });\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'option_code', path: 'code', type: Type.String },\n { label: 'option_number_of_uses_to_date', path: 'number_of_uses_to_date', type: Type.Number },\n { label: 'option_date_created', path: 'date_created', type: Type.Date },\n { label: 'option_date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __couponCodesActions: SwipeAction<Resource<Rels.CouponCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__couponCodesActions[0].state = 'busy';\n this.__couponCodesActions = [...this.__couponCodesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__couponCodesActions[0].state = 'end';\n } catch {\n this.__couponCodesActions[0].state = 'error';\n } finally {\n this.__couponCodesActions = [...this.__couponCodesActions];\n setTimeout(() => {\n this.__couponCodesActions[0].state = 'idle';\n this.__couponCodesActions = [...this.__couponCodesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (this.data) {\n alwaysMatch.push('coupon-codes-stub', 'category-restrictions-stub', 'attributes-stub');\n } else {\n alwaysMatch.push('coupon-codes', 'category-restrictions', 'attributes');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { ...super.headerSubtitleOptions, id: this.headerCopyIdValue };\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:coupon_codes'].href}\n infer=\"import\"\n form=\"foxy-coupon-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:coupon_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"name\"></foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-coupon-form-rules-control infer=\"rules\">\n </foxy-internal-coupon-form-rules-control>\n\n <foxy-internal-summary-control infer=\"coupon-codes-stub\">\n <p class=\"text-disabled\"><foxy-i18n infer=\"\" key=\"text\"></foxy-i18n></p>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"coupon-codes\"\n item=\"foxy-coupon-code-card\"\n form=\"foxy-coupon-code-form\"\n alert\n .formProps=${{ '.getTransactionPageHref': this.getTransactionPageHref }}\n .actions=${this.__couponCodesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-array-map-control infer=\"item-option-restrictions\">\n </foxy-internal-array-map-control>\n\n <foxy-internal-query-builder-control\n infer=\"customer-attribute-restrictions\"\n disable-zoom\n disable-or\n .operators=${this.__customerAttributeRestrictionsOperators}\n .getValue=${this.__customerAttributeRestrictionsGetValue}\n .setValue=${this.__customerAttributeRestrictionsSetValue}\n >\n </foxy-internal-query-builder-control>\n\n <foxy-internal-editable-list-control\n infer=\"customer-subscription-restrictions\"\n .getValue=${this.__customerSubscriptionRestrictionsGetValue}\n .setValue=${this.__customerSubscriptionRestrictionsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-summary-control infer=\"auto-apply\">\n <foxy-internal-switch-control infer=\"customer-auto-apply\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"category-restrictions-stub\">\n <p class=\"text-disabled\"><foxy-i18n infer=\"\" key=\"text\"></foxy-i18n></p>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"coupon_uri\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n embed-key=\"fx:coupon_item_categories\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:coupon_item_categories'].href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-internal-summary-control infer=\"uses\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"number-of-uses-allowed\"\n step=\"1\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"number-of-uses-allowed-per-customer\"\n step=\"1\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"number-of-uses-allowed-per-code\"\n step=\"1\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"timeframe\">\n <foxy-internal-date-control layout=\"summary-item\" infer=\"start-date\">\n </foxy-internal-date-control>\n <foxy-internal-date-control layout=\"summary-item\" infer=\"end-date\">\n </foxy-internal-date-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"taxes\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"inclusive-tax-rate\"\n min=\"0\"\n max=\"1\"\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"options\">\n <foxy-internal-switch-control infer=\"multiple-codes-allowed\"></foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"combinable\"></foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"exclude-category-discounts\">\n </foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"exclude-line-item-discounts\">\n </foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"is-taxable\"></foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"shared-codes-allowed\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"attributes-stub\">\n <p class=\"text-disabled\"><foxy-i18n infer=\"\" key=\"text\"></foxy-i18n></p>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CouponForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponForm/CouponForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult, PropertyDeclarations } from 'lit-element';\nimport type { Data, TransactionPageHrefGetter } from './types';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Option, Rule } from '../QueryBuilder/types';\nimport type { SwipeAction } from '../../internal/InternalAsyncListControl/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { Type, Operator } from '../QueryBuilder/types';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\nimport { parse } from '../QueryBuilder/utils/parse';\nimport { stringify } from '../QueryBuilder/utils/stringify';\n\nconst NS = 'coupon-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing coupons (`fx:coupon`).\n *\n * @element foxy-coupon-form\n * @since 1.15.0\n */\nexport class CouponForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\n __couponCodesActions: { type: Array },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n ({ inclusive_tax_rate: v }) => !v || v >= 0 || 'inclusive-tax-rate:v8n_too_small',\n ({ inclusive_tax_rate: v }) => !v || v <= 1 || 'inclusive-tax-rate:v8n_too_big',\n ({ number_of_uses_allowed: v }) => !v || v >= 0 || 'number-of-uses-allowed:v8n_too_small',\n ({ coupon_discount_details: v }) => !!v || 'rules:v8n_required',\n ({ coupon_discount_details: v }) => !v || v.length <= 200 || 'rules:v8n_too_long',\n ({ item_option_restrictions: v }) => {\n return !v || JSON.stringify(v).length <= 6000 || 'item-option-restrictions:v8n_too_long';\n },\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ({ customer_attribute_restrictions: v }) => {\n return !v || v.length <= 2000 || 'customer-attribute-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_code: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-code:v8n_too_small';\n },\n ({ customer_subscription_restrictions: v }) => {\n return !v || v.length <= 200 || 'customer-subscription-restrictions:v8n_too_long';\n },\n ({ number_of_uses_allowed_per_customer: v }) => {\n return !v || v >= 0 || 'number-of-uses-allowed-per-customer:v8n_too_small';\n },\n ];\n }\n\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n private readonly __customerAttributeRestrictionsOperators: Operator[] = [\n Operator.Not,\n Operator.In,\n ];\n\n private readonly __customerAttributeRestrictionsGetValue = () => {\n const simplifiedValue = parse(this.form.customer_attribute_restrictions ?? '')\n .filter(value => Array.isArray(value) || typeof value.name === 'string')\n .map(value => {\n if (Array.isArray(value)) {\n return value\n .filter(({ name }) => typeof name === 'string')\n .map(({ name, operator, value }) => {\n const output: Rule = { path: name as string, operator, value };\n return output;\n });\n }\n\n const output: Rule = {\n operator: value.operator,\n value: value.value,\n path: value.name as string,\n };\n\n return output;\n });\n\n return stringify(simplifiedValue, true);\n };\n\n private readonly __customerAttributeRestrictionsSetValue = (newValue: string) => {\n const augmentedValue = parse(newValue).map(value => {\n if (Array.isArray(value)) {\n return value.map(({ path, operator, value }) => {\n const output: Rule = { name: path, path: 'attributes', operator, value };\n return output;\n });\n } else {\n const output: Rule = {\n operator: value.operator,\n value: value.value,\n path: 'attributes',\n name: value.path,\n };\n\n return output;\n }\n });\n\n this.edit({ customer_attribute_restrictions: stringify(augmentedValue, true) });\n };\n\n private readonly __customerSubscriptionRestrictionsGetValue = () => {\n const items = this.form.customer_subscription_restrictions\n ?.split(',')\n .map(value => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .map(value => ({ value }));\n\n return items ?? [];\n };\n\n private readonly __customerSubscriptionRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n customer_subscription_restrictions: newValue\n .map(({ value }) => value.trim())\n .filter((value, index, values) => !!value && values.indexOf(value) === index)\n .join(),\n });\n\n this.edit({\n customer_auto_apply:\n !!this.form.customer_subscription_restrictions ||\n !!this.form.customer_attribute_restrictions,\n });\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .map(v => v.trim())\n .filter(v => v.length > 0)\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'option_code', path: 'code', type: Type.String },\n { label: 'option_number_of_uses_to_date', path: 'number_of_uses_to_date', type: Type.Number },\n { label: 'option_date_created', path: 'date_created', type: Type.Date },\n { label: 'option_date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __couponCodesActions: SwipeAction<Resource<Rels.CouponCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__couponCodesActions[0].state = 'busy';\n this.__couponCodesActions = [...this.__couponCodesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__couponCodesActions[0].state = 'end';\n } catch {\n this.__couponCodesActions[0].state = 'error';\n } finally {\n this.__couponCodesActions = [...this.__couponCodesActions];\n setTimeout(() => {\n this.__couponCodesActions[0].state = 'idle';\n this.__couponCodesActions = [...this.__couponCodesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (this.data) {\n alwaysMatch.push('coupon-codes-stub', 'category-restrictions-stub', 'attributes-stub');\n } else {\n alwaysMatch.push('coupon-codes', 'category-restrictions', 'attributes');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { ...super.headerSubtitleOptions, id: this.headerCopyIdValue };\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:coupon_codes'].href}\n infer=\"import\"\n form=\"foxy-coupon-codes-form\"\n .related=${[data._links['fx:coupon_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:coupon_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"name\"></foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-coupon-form-rules-control infer=\"rules\">\n </foxy-internal-coupon-form-rules-control>\n\n <foxy-internal-summary-control infer=\"coupon-codes-stub\">\n <p class=\"text-disabled\"><foxy-i18n infer=\"\" key=\"text\"></foxy-i18n></p>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"coupon-codes\"\n item=\"foxy-coupon-code-card\"\n form=\"foxy-coupon-code-form\"\n alert\n .formProps=${{ '.getTransactionPageHref': this.getTransactionPageHref }}\n .actions=${this.__couponCodesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-array-map-control infer=\"item-option-restrictions\">\n </foxy-internal-array-map-control>\n\n <foxy-internal-query-builder-control\n infer=\"customer-attribute-restrictions\"\n disable-zoom\n disable-or\n .operators=${this.__customerAttributeRestrictionsOperators}\n .getValue=${this.__customerAttributeRestrictionsGetValue}\n .setValue=${this.__customerAttributeRestrictionsSetValue}\n >\n </foxy-internal-query-builder-control>\n\n <foxy-internal-editable-list-control\n infer=\"customer-subscription-restrictions\"\n .getValue=${this.__customerSubscriptionRestrictionsGetValue}\n .setValue=${this.__customerSubscriptionRestrictionsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-summary-control infer=\"auto-apply\">\n <foxy-internal-switch-control infer=\"customer-auto-apply\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"category-restrictions-stub\">\n <p class=\"text-disabled\"><foxy-i18n infer=\"\" key=\"text\"></foxy-i18n></p>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"coupon_uri\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n embed-key=\"fx:coupon_item_categories\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:coupon_item_categories'].href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-internal-summary-control infer=\"uses\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"number-of-uses-allowed\"\n step=\"1\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"number-of-uses-allowed-per-customer\"\n step=\"1\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"number-of-uses-allowed-per-code\"\n step=\"1\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"timeframe\">\n <foxy-internal-date-control layout=\"summary-item\" infer=\"start-date\">\n </foxy-internal-date-control>\n <foxy-internal-date-control layout=\"summary-item\" infer=\"end-date\">\n </foxy-internal-date-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"taxes\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n infer=\"inclusive-tax-rate\"\n min=\"0\"\n max=\"1\"\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"options\">\n <foxy-internal-switch-control infer=\"multiple-codes-allowed\"></foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"combinable\"></foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"exclude-category-discounts\">\n </foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"exclude-line-item-discounts\">\n </foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"is-taxable\"></foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"shared-codes-allowed\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"attributes-stub\">\n <p class=\"text-disabled\"><foxy-i18n infer=\"\" key=\"text\"></foxy-i18n></p>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
|
|
@@ -211,11 +211,11 @@ export class PaymentsApiPaymentMethodForm extends Base {
|
|
|
211
211
|
.map(v => v.item)
|
|
212
212
|
: allMethods;
|
|
213
213
|
return filteredMethods
|
|
214
|
-
.sort((a, b) => a[
|
|
214
|
+
.sort((a, b) => a[1].name.localeCompare(b[1].name, 'en'))
|
|
215
215
|
.reduce((groups, [type, helper]) => {
|
|
216
216
|
if (helper.is_deprecated)
|
|
217
217
|
return groups;
|
|
218
|
-
const firstChar =
|
|
218
|
+
const firstChar = helper.name.charAt(0).toUpperCase();
|
|
219
219
|
const isSpecialCharacter = !/\w/.test(firstChar);
|
|
220
220
|
const name = isSpecialCharacter ? '#' : firstChar;
|
|
221
221
|
const group = groups.find(group => group.name === name);
|
package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentsApiPaymentMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AvailablePaymentMethods, PaymentPreset } from '../PaymentsApi/api/types';\nimport type { Block, Data } from './types';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\n\nimport Fuse from 'fuse.js';\nimport has from 'lodash-es/has';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\n\ntype PaymentMethod = {\n helper: AvailablePaymentMethods['values'][string];\n type: string;\n};\n\nconst NS = 'payments-api-payment-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for the `fx:payment_method` resource of Payments API.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-method-form\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentMethodForm extends Base<Data> {\n static get defaultImageSrc(): string {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E\";\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n paymentPreset: { attribute: 'payment-preset' },\n getImageSrc: { attribute: false },\n store: {},\n __search: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ description: v }) => !v || v.length <= 100 || 'description:v8n_too_long',\n ({ type: v }) => !!v || 'type:v8n_required',\n\n form => {\n const blocks = form.helper?.additional_fields?.blocks ?? [];\n let additionalFields: Record<string, unknown>;\n\n try {\n additionalFields = JSON.parse(form.additional_fields ?? '{}');\n } catch {\n additionalFields = {};\n }\n\n for (const block of blocks) {\n for (const field of block.fields) {\n if ('optional' in (field as Record<string, unknown>)) {\n if (!(field as Record<string, unknown>).optional) {\n if (!has(additionalFields, field.id)) {\n if (field.type !== 'checkbox') {\n return 'additional-fields:v8n_invalid';\n }\n }\n }\n }\n }\n }\n\n return true;\n },\n ];\n }\n\n /** URL of the linked `fx:payment_preset` resource from the virtual Payments API. */\n paymentPreset: string | null = null;\n\n /** A function that returns a URL of a payment method icon based on the given type. */\n getImageSrc: ((type: string) => string) | null = null;\n\n /** URL of the linked `fx:store` resource. */\n store: string | null = null;\n\n private readonly __availablePaymentMethodsLoaderId = 'availablePaymentMethodsLoader';\n\n private readonly __paymentPresetLoaderId = 'paymentPresetLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __threeDSecureResponseGetValue = () => {\n return this.form.config_3d_secure?.endsWith('require_valid_response');\n };\n\n private readonly __threeDSecureResponseSetValue = (newValue: boolean) => {\n const postfix = newValue ? '_require_valid_response' : '';\n const config = this.form.config_3d_secure;\n const type = config?.startsWith('all_cards') ? 'all_cards' : 'maestro_only';\n\n this.edit({ config_3d_secure: `${type}${postfix}` as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleGetValue = () => {\n const config = this.form.config_3d_secure;\n\n if (config?.startsWith('all_cards')) return 'all_cards';\n if (config?.startsWith('maestro_only')) return 'maestro_only';\n\n return 'off';\n };\n\n private readonly __threeDSecureToggleSetValue = (\n newValue: 'off' | 'all_cards' | 'maestro_only'\n ) => {\n let newFormValue = '';\n\n if (newValue === 'all_cards' || newValue === 'maestro_only') {\n if (this.form.config_3d_secure?.endsWith('require_valid_response')) {\n newFormValue = `${newValue}_require_valid_response`;\n } else {\n newFormValue = newValue;\n }\n }\n\n this.edit({ config_3d_secure: newFormValue as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleOptions = [\n { value: 'off', label: 'option_off' },\n { value: 'all_cards', label: 'option_all_cards' },\n { value: 'maestro_only', label: 'option_maestro_only' },\n ];\n\n private readonly __cardVerificationOptions = [\n { label: 'option_disabled', value: 'disabled' },\n { label: 'option_enabled_automatically', value: 'enabled_automatically' },\n { label: 'option_enabled_override', value: 'enabled_override' },\n ];\n\n private __search = '';\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`header:copy-json ${super.hiddenSelector}`.trimEnd());\n }\n\n renderHeader(...params: Parameters<InternalForm<Data>['renderHeader']>): TemplateResult {\n return html`\n <div>\n ${super.renderHeader(...params)}\n ${this.data?.type || !this.form.type\n ? html``\n : html`\n <vaadin-button\n data-testid=\"select-another-button\"\n theme=\"tertiary-inline\"\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"select_another_button_label\"></foxy-i18n>\n </vaadin-button>\n `}\n </div>\n `;\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return {\n context: this.form.type ? 'selected' : 'new',\n name: this.form.helper?.name,\n };\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n if (this.href) {\n const vId = getResourceId(this.href) as string;\n const id = this.headerCopyIdValue;\n if (vId.startsWith('R')) return { context: 'regular', id };\n return { context: 'hosted', id };\n }\n\n return {};\n }\n\n get headerCopyIdValue(): string | number {\n if (this.href) {\n const id = getResourceId(this.href) as string;\n return id.startsWith('R') ? id.slice(1) : id.slice(1).split('C')[0];\n } else {\n return '';\n }\n }\n\n renderBody(): TemplateResult {\n const paymentPreset = this.__paymentPresetLoader?.data;\n\n const loaders = html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(paymentPreset?._links['fx:available_payment_methods'].href)}\n id=${this.__availablePaymentMethodsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.store)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.paymentPreset)}\n id=${this.__paymentPresetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n\n return html`${this.renderHeader()}${this.form.type\n ? this.__renderPaymentMethodConfig()\n : this.__renderPaymentMethodSelector()}${loaders}`;\n }\n\n private get __groupedAvailablePaymentMethods() {\n const allMethods = Object.entries(this.__availablePaymentMethods ?? {});\n const filteredMethods = this.__search\n ? new Fuse(allMethods, { keys: ['1.name'], threshold: 0.25 })\n .search(this.__search)\n .map(v => v.item)\n : allMethods;\n\n return filteredMethods\n .sort((a, b) => a[0].localeCompare(b[0], 'en'))\n .reduce((groups, [type, helper]) => {\n if (helper.is_deprecated) return groups;\n\n const firstChar = type.charAt(0).toUpperCase();\n const isSpecialCharacter = !/\\w/.test(firstChar);\n const name = isSpecialCharacter ? '#' : firstChar;\n const group = groups.find(group => group.name === name);\n\n if (group) {\n group.items.push({ type, helper });\n } else {\n groups.push({ name, items: [{ type, helper }] });\n }\n\n return groups;\n }, [] as { name: string; items: PaymentMethod[] }[]);\n }\n\n private get __availablePaymentMethodsLoader() {\n type Loader = NucleonElement<AvailablePaymentMethods>;\n return this.renderRoot.querySelector<Loader>(`#${this.__availablePaymentMethodsLoaderId}`);\n }\n\n private get __availablePaymentMethods() {\n return this.__availablePaymentMethodsLoader?.data?.values;\n }\n\n private get __paymentPresetLoader() {\n type Loader = NucleonElement<PaymentPreset>;\n return this.renderRoot.querySelector<Loader>(`#${this.__paymentPresetLoaderId}`);\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 __liveBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => block.is_live) ?? [];\n }\n\n private get __testBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => !block.is_live) ?? [];\n }\n\n private __renderPaymentMethodSelector() {\n const loader = this.__availablePaymentMethodsLoader;\n\n if (!loader?.data) {\n return html`\n <foxy-spinner infer=\"list-spinner\" state=${loader?.in('fail') ? 'error' : 'busy'}>\n </foxy-spinner>\n `;\n }\n\n return html`\n <div>\n <input\n placeholder=${this.t('search_placeholder')}\n class=\"w-full leading-m font-medium bg-contrast-5 rounded text-body transition-colors hover-bg-contrast-10 focus-bg-contrast-10 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n style=\"padding: var(--lumo-space-xs) calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n type=\"search\"\n .value=${this.__search}\n @input=${(evt: Event) => {\n this.__search = (evt.currentTarget as HTMLInputElement).value;\n }}\n />\n\n <section data-testid=\"select-method-list\">\n ${this.__groupedAvailablePaymentMethods.map(({ name, items }) => {\n return html`\n <p class=\"font-medium text-tertiary py-m\">${name}</p>\n <foxy-internal-summary-control infer=\"\" label=\"\" helper-text=\"\">\n ${items.map((item, index) =>\n this.__renderPaymentMethodButton(item, index, items.length)\n )}\n </foxy-internal-summary-control>\n `;\n })}\n </section>\n </div>\n `;\n }\n\n private __renderPaymentMethodConfig() {\n const oauthGateways = [\n 'stripe_connect',\n 'square_up',\n 'quickbook_payments',\n 'amazon_mws',\n 'paypal_platform',\n ];\n\n if (this.form.type && oauthGateways.includes(this.form.type)) {\n return html`\n <div\n class=\"flex items-start rounded border border-primary\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p>\n <foxy-i18n infer=\"\" key=\"no_oauth_support_message\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"mt-xs inline-block rounded font-medium text-primary transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://admin.foxycart.com\"\n >\n admin.foxycart.com\n </a>\n </p>\n </div>\n `;\n }\n\n return html`\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"description\">\n </foxy-internal-text-control>\n\n ${this.form.helper?.supports_auth_only\n ? html`\n <foxy-internal-switch-control infer=\"use-auth-only\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n `\n : ''}\n ${this.form.helper?.supports_3d_secure\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"three-d-secure-toggle\"\n .getValue=${this.__threeDSecureToggleGetValue}\n .setValue=${this.__threeDSecureToggleSetValue}\n .options=${this.__threeDSecureToggleOptions}\n >\n </foxy-internal-select-control>\n\n ${this.form.config_3d_secure\n ? html`\n <foxy-internal-switch-control\n layout=\"summary-item\"\n infer=\"three-d-secure-response\"\n .getValue=${this.__threeDSecureResponseGetValue}\n .setValue=${this.__threeDSecureResponseSetValue}\n >\n </foxy-internal-switch-control>\n `\n : ''}\n `\n : ''}\n </foxy-internal-summary-control>\n\n ${['live', 'test'].map((type, index) => {\n const propertyPrefix = index === 0 ? '' : (`${type}_` as '' | 'test_');\n const inferPrefix = index === 0 ? '' : `${type}-`;\n const blocks = index === 0 ? this.__liveBlocks : this.__testBlocks;\n const scope = `${type}-group`;\n\n if (type === 'live' && !this.__storeLoader?.data) return html``;\n if (type === 'live' && !this.__storeLoader?.data?.is_active) {\n return html`\n <foxy-internal-summary-control infer=\"${type}-group\">\n <div\n class=\"flex items-start\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p><foxy-i18n infer=\"\" key=\"inactive_message\"></foxy-i18n></p>\n </div>\n </foxy-internal-summary-control>\n `;\n }\n\n const showInactiveSetText =\n this.__storeLoader?.data?.is_active === true &&\n ((type === 'test' && this.__paymentPresetLoader?.data?.is_live === true) ||\n (type === 'live' && this.__paymentPresetLoader?.data?.is_live === false));\n\n return html`\n <foxy-internal-summary-control\n helper-text=${ifDefined(\n showInactiveSetText ? this.t(`${scope}.helper_text_inactive`) : void 0\n )}\n layout=\"section\"\n label=${ifDefined(showInactiveSetText ? this.t(`${scope}.label_inactive`) : void 0)}\n infer=${scope}\n >\n <foxy-internal-summary-control infer=\"\" label=\"\" helper-text=\"\">\n ${this.form.helper?.id_description\n ? html`\n <foxy-internal-text-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.id_description}\n infer=\"${inferPrefix}account-id\"\n >\n </foxy-internal-text-control>\n `\n : ''}\n ${this.form.helper?.third_party_key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.third_party_key_description}\n infer=\"${inferPrefix}third-party-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${this.form.helper?.key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n helper-text=\"\"\n label=${this.form.helper.key_description}\n infer=\"${inferPrefix}account-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${blocks.map(block => this.__renderBlock(block))}\n ${this.form.helper?.supports_card_verification\n ? html`\n <foxy-internal-select-control\n helper-text=${this.t(\n `${scope}.${inferPrefix}card-verification.helper_text_${\n this.form[`${propertyPrefix}card_verification` as const] || 'disabled'\n }`\n )}\n layout=\"summary-item\"\n infer=\"${inferPrefix}card-verification\"\n .options=${this.__cardVerificationOptions}\n .getValue=${() => {\n return (\n this.form[`${propertyPrefix}card_verification` as const] || 'disabled'\n );\n }}\n >\n </foxy-internal-select-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n ${this.form.helper?.supports_card_verification &&\n this.form[`${propertyPrefix}card_verification` as const]?.startsWith('enabled_')\n ? html`\n <foxy-internal-summary-control\n layout=\"details\"\n class=\"mt-s\"\n infer=\"${inferPrefix}card-verification-config\"\n >\n ${['visa', 'mastercard', 'american-express', 'discover', 'default'].map(\n type => {\n return html`\n <foxy-internal-number-control\n json-template=${ifDefined(this.form.helper?.card_verification_config)}\n json-path=\"verification_amounts.${type.replace(/-/g, '_')}\"\n property=\"${propertyPrefix}card_verification_config\"\n layout=\"summary-item\"\n infer=\"${inferPrefix}card-verification-config-verification-amounts-${type}\"\n step=\"0.01\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n `;\n }\n )}\n </foxy-internal-summary-control>\n `\n : ''}\n </foxy-internal-summary-control>\n `;\n })}\n ${super.renderBody()}\n `;\n }\n\n private __renderPaymentMethodButton(\n { type, helper }: PaymentMethod,\n index: number,\n total: number\n ) {\n const defaultSrc = PaymentsApiPaymentMethodForm.defaultImageSrc;\n const src = this.getImageSrc?.(type) ?? defaultSrc;\n const onError = (evt: Event) => ((evt.currentTarget as HTMLImageElement).src = defaultSrc);\n\n return html`\n <button\n class=${classMap({\n 'relative w-full block text-left bg-contrast-5 overflow-hidden': true,\n 'focus-outline-none focus-ring-inset focus-ring-2 focus-ring-primary-50': true,\n 'transition-colors hover-bg-contrast-10': !helper.conflict,\n 'cursor-default': !!helper.conflict,\n 'rounded-t': index === 0,\n 'rounded-b': index === total - 1,\n })}\n ?disabled=${!!helper.conflict}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n @click=${() => this.edit({ type, helper })}\n >\n <figure\n class=\"relative flex items-center\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <img\n class=${classMap({\n 'h-m w-m object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs': true,\n 'filter grayscale': !!helper.conflict,\n })}\n src=${src}\n alt=\"\"\n @error=${onError}\n />\n <figcaption\n class=${classMap({\n 'min-w-0 flex-1 grid leading-xs': true,\n 'text-disabled': !!helper.conflict,\n })}\n >\n <span class=\"font-medium\">${helper.name}​</span>\n ${helper.conflict\n ? html`<span class=\"text-xs\"> ${this.t('conflict_message', helper.conflict)}</span>`\n : ''}\n </figcaption>\n </figure>\n </button>\n `;\n }\n\n private __renderBlock(block: Block) {\n return html`${block.fields.map(field => {\n if (field.type === 'hidden') return;\n const scope = ['additional-fields', field.id].join('-').replace(/_/g, '-');\n\n const getValue = () => {\n try {\n const config = JSON.parse(this.form.additional_fields ?? '{}');\n return get(config, field.id) ?? config.default_value;\n } catch {\n return field.default_value;\n }\n };\n\n const setValue = (newValue: unknown) => {\n let config: Record<string, unknown> = {};\n\n try {\n config = JSON.parse(this.form.additional_fields ?? '');\n } catch {\n // ignore\n }\n\n this.edit({ additional_fields: JSON.stringify(set(config, field.id, newValue)) });\n };\n\n type Option = { name: string; value: string };\n const options = (field as { options?: Option[] }).options;\n\n return html`\n ${field.type === 'checkbox'\n ? html`\n <foxy-internal-switch-control\n helper-text=${field.description ?? ''}\n label=${field.name}\n infer=${scope}\n helper-text-as-tooltip\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-switch-control>\n `\n : field.type === 'select'\n ? html`\n <foxy-internal-select-control\n placeholder=${this.t('default_additional_field_select_placeholder')}\n helper-text=${field.description ?? ''}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .options=${options!.map(({ name, value }) => ({ label: name, value }))}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control\n helper-text=${field.description ?? ''}\n placeholder=${field.default_value || this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-text-control>\n `}\n `;\n })}`;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PaymentsApiPaymentMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AvailablePaymentMethods, PaymentPreset } from '../PaymentsApi/api/types';\nimport type { Block, Data } from './types';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\n\nimport Fuse from 'fuse.js';\nimport has from 'lodash-es/has';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\n\ntype PaymentMethod = {\n helper: AvailablePaymentMethods['values'][string];\n type: string;\n};\n\nconst NS = 'payments-api-payment-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for the `fx:payment_method` resource of Payments API.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-method-form\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentMethodForm extends Base<Data> {\n static get defaultImageSrc(): string {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E\";\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n paymentPreset: { attribute: 'payment-preset' },\n getImageSrc: { attribute: false },\n store: {},\n __search: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ description: v }) => !v || v.length <= 100 || 'description:v8n_too_long',\n ({ type: v }) => !!v || 'type:v8n_required',\n\n form => {\n const blocks = form.helper?.additional_fields?.blocks ?? [];\n let additionalFields: Record<string, unknown>;\n\n try {\n additionalFields = JSON.parse(form.additional_fields ?? '{}');\n } catch {\n additionalFields = {};\n }\n\n for (const block of blocks) {\n for (const field of block.fields) {\n if ('optional' in (field as Record<string, unknown>)) {\n if (!(field as Record<string, unknown>).optional) {\n if (!has(additionalFields, field.id)) {\n if (field.type !== 'checkbox') {\n return 'additional-fields:v8n_invalid';\n }\n }\n }\n }\n }\n }\n\n return true;\n },\n ];\n }\n\n /** URL of the linked `fx:payment_preset` resource from the virtual Payments API. */\n paymentPreset: string | null = null;\n\n /** A function that returns a URL of a payment method icon based on the given type. */\n getImageSrc: ((type: string) => string) | null = null;\n\n /** URL of the linked `fx:store` resource. */\n store: string | null = null;\n\n private readonly __availablePaymentMethodsLoaderId = 'availablePaymentMethodsLoader';\n\n private readonly __paymentPresetLoaderId = 'paymentPresetLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __threeDSecureResponseGetValue = () => {\n return this.form.config_3d_secure?.endsWith('require_valid_response');\n };\n\n private readonly __threeDSecureResponseSetValue = (newValue: boolean) => {\n const postfix = newValue ? '_require_valid_response' : '';\n const config = this.form.config_3d_secure;\n const type = config?.startsWith('all_cards') ? 'all_cards' : 'maestro_only';\n\n this.edit({ config_3d_secure: `${type}${postfix}` as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleGetValue = () => {\n const config = this.form.config_3d_secure;\n\n if (config?.startsWith('all_cards')) return 'all_cards';\n if (config?.startsWith('maestro_only')) return 'maestro_only';\n\n return 'off';\n };\n\n private readonly __threeDSecureToggleSetValue = (\n newValue: 'off' | 'all_cards' | 'maestro_only'\n ) => {\n let newFormValue = '';\n\n if (newValue === 'all_cards' || newValue === 'maestro_only') {\n if (this.form.config_3d_secure?.endsWith('require_valid_response')) {\n newFormValue = `${newValue}_require_valid_response`;\n } else {\n newFormValue = newValue;\n }\n }\n\n this.edit({ config_3d_secure: newFormValue as Data['config_3d_secure'] });\n };\n\n private readonly __threeDSecureToggleOptions = [\n { value: 'off', label: 'option_off' },\n { value: 'all_cards', label: 'option_all_cards' },\n { value: 'maestro_only', label: 'option_maestro_only' },\n ];\n\n private readonly __cardVerificationOptions = [\n { label: 'option_disabled', value: 'disabled' },\n { label: 'option_enabled_automatically', value: 'enabled_automatically' },\n { label: 'option_enabled_override', value: 'enabled_override' },\n ];\n\n private __search = '';\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`header:copy-json ${super.hiddenSelector}`.trimEnd());\n }\n\n renderHeader(...params: Parameters<InternalForm<Data>['renderHeader']>): TemplateResult {\n return html`\n <div>\n ${super.renderHeader(...params)}\n ${this.data?.type || !this.form.type\n ? html``\n : html`\n <vaadin-button\n data-testid=\"select-another-button\"\n theme=\"tertiary-inline\"\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"select_another_button_label\"></foxy-i18n>\n </vaadin-button>\n `}\n </div>\n `;\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return {\n context: this.form.type ? 'selected' : 'new',\n name: this.form.helper?.name,\n };\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n if (this.href) {\n const vId = getResourceId(this.href) as string;\n const id = this.headerCopyIdValue;\n if (vId.startsWith('R')) return { context: 'regular', id };\n return { context: 'hosted', id };\n }\n\n return {};\n }\n\n get headerCopyIdValue(): string | number {\n if (this.href) {\n const id = getResourceId(this.href) as string;\n return id.startsWith('R') ? id.slice(1) : id.slice(1).split('C')[0];\n } else {\n return '';\n }\n }\n\n renderBody(): TemplateResult {\n const paymentPreset = this.__paymentPresetLoader?.data;\n\n const loaders = html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(paymentPreset?._links['fx:available_payment_methods'].href)}\n id=${this.__availablePaymentMethodsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.store)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.paymentPreset)}\n id=${this.__paymentPresetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n\n return html`${this.renderHeader()}${this.form.type\n ? this.__renderPaymentMethodConfig()\n : this.__renderPaymentMethodSelector()}${loaders}`;\n }\n\n private get __groupedAvailablePaymentMethods() {\n const allMethods = Object.entries(this.__availablePaymentMethods ?? {});\n const filteredMethods = this.__search\n ? new Fuse(allMethods, { keys: ['1.name'], threshold: 0.25 })\n .search(this.__search)\n .map(v => v.item)\n : allMethods;\n\n return filteredMethods\n .sort((a, b) => a[1].name.localeCompare(b[1].name, 'en'))\n .reduce((groups, [type, helper]) => {\n if (helper.is_deprecated) return groups;\n\n const firstChar = helper.name.charAt(0).toUpperCase();\n const isSpecialCharacter = !/\\w/.test(firstChar);\n const name = isSpecialCharacter ? '#' : firstChar;\n const group = groups.find(group => group.name === name);\n\n if (group) {\n group.items.push({ type, helper });\n } else {\n groups.push({ name, items: [{ type, helper }] });\n }\n\n return groups;\n }, [] as { name: string; items: PaymentMethod[] }[]);\n }\n\n private get __availablePaymentMethodsLoader() {\n type Loader = NucleonElement<AvailablePaymentMethods>;\n return this.renderRoot.querySelector<Loader>(`#${this.__availablePaymentMethodsLoaderId}`);\n }\n\n private get __availablePaymentMethods() {\n return this.__availablePaymentMethodsLoader?.data?.values;\n }\n\n private get __paymentPresetLoader() {\n type Loader = NucleonElement<PaymentPreset>;\n return this.renderRoot.querySelector<Loader>(`#${this.__paymentPresetLoaderId}`);\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 __liveBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => block.is_live) ?? [];\n }\n\n private get __testBlocks() {\n return this.form.helper?.additional_fields?.blocks.filter(block => !block.is_live) ?? [];\n }\n\n private __renderPaymentMethodSelector() {\n const loader = this.__availablePaymentMethodsLoader;\n\n if (!loader?.data) {\n return html`\n <foxy-spinner infer=\"list-spinner\" state=${loader?.in('fail') ? 'error' : 'busy'}>\n </foxy-spinner>\n `;\n }\n\n return html`\n <div>\n <input\n placeholder=${this.t('search_placeholder')}\n class=\"w-full leading-m font-medium bg-contrast-5 rounded text-body transition-colors hover-bg-contrast-10 focus-bg-contrast-10 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n style=\"padding: var(--lumo-space-xs) calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n type=\"search\"\n .value=${this.__search}\n @input=${(evt: Event) => {\n this.__search = (evt.currentTarget as HTMLInputElement).value;\n }}\n />\n\n <section data-testid=\"select-method-list\">\n ${this.__groupedAvailablePaymentMethods.map(({ name, items }) => {\n return html`\n <p class=\"font-medium text-tertiary py-m\">${name}</p>\n <foxy-internal-summary-control infer=\"\" label=\"\" helper-text=\"\">\n ${items.map((item, index) =>\n this.__renderPaymentMethodButton(item, index, items.length)\n )}\n </foxy-internal-summary-control>\n `;\n })}\n </section>\n </div>\n `;\n }\n\n private __renderPaymentMethodConfig() {\n const oauthGateways = [\n 'stripe_connect',\n 'square_up',\n 'quickbook_payments',\n 'amazon_mws',\n 'paypal_platform',\n ];\n\n if (this.form.type && oauthGateways.includes(this.form.type)) {\n return html`\n <div\n class=\"flex items-start rounded border border-primary\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p>\n <foxy-i18n infer=\"\" key=\"no_oauth_support_message\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"mt-xs inline-block rounded font-medium text-primary transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://admin.foxycart.com\"\n >\n admin.foxycart.com\n </a>\n </p>\n </div>\n `;\n }\n\n return html`\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"description\">\n </foxy-internal-text-control>\n\n ${this.form.helper?.supports_auth_only\n ? html`\n <foxy-internal-switch-control infer=\"use-auth-only\" helper-text-as-tooltip>\n </foxy-internal-switch-control>\n `\n : ''}\n ${this.form.helper?.supports_3d_secure\n ? html`\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"three-d-secure-toggle\"\n .getValue=${this.__threeDSecureToggleGetValue}\n .setValue=${this.__threeDSecureToggleSetValue}\n .options=${this.__threeDSecureToggleOptions}\n >\n </foxy-internal-select-control>\n\n ${this.form.config_3d_secure\n ? html`\n <foxy-internal-switch-control\n layout=\"summary-item\"\n infer=\"three-d-secure-response\"\n .getValue=${this.__threeDSecureResponseGetValue}\n .setValue=${this.__threeDSecureResponseSetValue}\n >\n </foxy-internal-switch-control>\n `\n : ''}\n `\n : ''}\n </foxy-internal-summary-control>\n\n ${['live', 'test'].map((type, index) => {\n const propertyPrefix = index === 0 ? '' : (`${type}_` as '' | 'test_');\n const inferPrefix = index === 0 ? '' : `${type}-`;\n const blocks = index === 0 ? this.__liveBlocks : this.__testBlocks;\n const scope = `${type}-group`;\n\n if (type === 'live' && !this.__storeLoader?.data) return html``;\n if (type === 'live' && !this.__storeLoader?.data?.is_active) {\n return html`\n <foxy-internal-summary-control infer=\"${type}-group\">\n <div\n class=\"flex items-start\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-primary\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p><foxy-i18n infer=\"\" key=\"inactive_message\"></foxy-i18n></p>\n </div>\n </foxy-internal-summary-control>\n `;\n }\n\n const showInactiveSetText =\n this.__storeLoader?.data?.is_active === true &&\n ((type === 'test' && this.__paymentPresetLoader?.data?.is_live === true) ||\n (type === 'live' && this.__paymentPresetLoader?.data?.is_live === false));\n\n return html`\n <foxy-internal-summary-control\n helper-text=${ifDefined(\n showInactiveSetText ? this.t(`${scope}.helper_text_inactive`) : void 0\n )}\n layout=\"section\"\n label=${ifDefined(showInactiveSetText ? this.t(`${scope}.label_inactive`) : void 0)}\n infer=${scope}\n >\n <foxy-internal-summary-control infer=\"\" label=\"\" helper-text=\"\">\n ${this.form.helper?.id_description\n ? html`\n <foxy-internal-text-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.id_description}\n infer=\"${inferPrefix}account-id\"\n >\n </foxy-internal-text-control>\n `\n : ''}\n ${this.form.helper?.third_party_key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n helper-text=\"\"\n layout=\"summary-item\"\n label=${this.form.helper.third_party_key_description}\n infer=\"${inferPrefix}third-party-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${this.form.helper?.key_description\n ? html`\n <foxy-internal-password-control\n placeholder=${this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n helper-text=\"\"\n label=${this.form.helper.key_description}\n infer=\"${inferPrefix}account-key\"\n >\n </foxy-internal-password-control>\n `\n : ''}\n ${blocks.map(block => this.__renderBlock(block))}\n ${this.form.helper?.supports_card_verification\n ? html`\n <foxy-internal-select-control\n helper-text=${this.t(\n `${scope}.${inferPrefix}card-verification.helper_text_${\n this.form[`${propertyPrefix}card_verification` as const] || 'disabled'\n }`\n )}\n layout=\"summary-item\"\n infer=\"${inferPrefix}card-verification\"\n .options=${this.__cardVerificationOptions}\n .getValue=${() => {\n return (\n this.form[`${propertyPrefix}card_verification` as const] || 'disabled'\n );\n }}\n >\n </foxy-internal-select-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n ${this.form.helper?.supports_card_verification &&\n this.form[`${propertyPrefix}card_verification` as const]?.startsWith('enabled_')\n ? html`\n <foxy-internal-summary-control\n layout=\"details\"\n class=\"mt-s\"\n infer=\"${inferPrefix}card-verification-config\"\n >\n ${['visa', 'mastercard', 'american-express', 'discover', 'default'].map(\n type => {\n return html`\n <foxy-internal-number-control\n json-template=${ifDefined(this.form.helper?.card_verification_config)}\n json-path=\"verification_amounts.${type.replace(/-/g, '_')}\"\n property=\"${propertyPrefix}card_verification_config\"\n layout=\"summary-item\"\n infer=\"${inferPrefix}card-verification-config-verification-amounts-${type}\"\n step=\"0.01\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n `;\n }\n )}\n </foxy-internal-summary-control>\n `\n : ''}\n </foxy-internal-summary-control>\n `;\n })}\n ${super.renderBody()}\n `;\n }\n\n private __renderPaymentMethodButton(\n { type, helper }: PaymentMethod,\n index: number,\n total: number\n ) {\n const defaultSrc = PaymentsApiPaymentMethodForm.defaultImageSrc;\n const src = this.getImageSrc?.(type) ?? defaultSrc;\n const onError = (evt: Event) => ((evt.currentTarget as HTMLImageElement).src = defaultSrc);\n\n return html`\n <button\n class=${classMap({\n 'relative w-full block text-left bg-contrast-5 overflow-hidden': true,\n 'focus-outline-none focus-ring-inset focus-ring-2 focus-ring-primary-50': true,\n 'transition-colors hover-bg-contrast-10': !helper.conflict,\n 'cursor-default': !!helper.conflict,\n 'rounded-t': index === 0,\n 'rounded-b': index === total - 1,\n })}\n ?disabled=${!!helper.conflict}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n @click=${() => this.edit({ type, helper })}\n >\n <figure\n class=\"relative flex items-center\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <img\n class=${classMap({\n 'h-m w-m object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs': true,\n 'filter grayscale': !!helper.conflict,\n })}\n src=${src}\n alt=\"\"\n @error=${onError}\n />\n <figcaption\n class=${classMap({\n 'min-w-0 flex-1 grid leading-xs': true,\n 'text-disabled': !!helper.conflict,\n })}\n >\n <span class=\"font-medium\">${helper.name}​</span>\n ${helper.conflict\n ? html`<span class=\"text-xs\"> ${this.t('conflict_message', helper.conflict)}</span>`\n : ''}\n </figcaption>\n </figure>\n </button>\n `;\n }\n\n private __renderBlock(block: Block) {\n return html`${block.fields.map(field => {\n if (field.type === 'hidden') return;\n const scope = ['additional-fields', field.id].join('-').replace(/_/g, '-');\n\n const getValue = () => {\n try {\n const config = JSON.parse(this.form.additional_fields ?? '{}');\n return get(config, field.id) ?? config.default_value;\n } catch {\n return field.default_value;\n }\n };\n\n const setValue = (newValue: unknown) => {\n let config: Record<string, unknown> = {};\n\n try {\n config = JSON.parse(this.form.additional_fields ?? '');\n } catch {\n // ignore\n }\n\n this.edit({ additional_fields: JSON.stringify(set(config, field.id, newValue)) });\n };\n\n type Option = { name: string; value: string };\n const options = (field as { options?: Option[] }).options;\n\n return html`\n ${field.type === 'checkbox'\n ? html`\n <foxy-internal-switch-control\n helper-text=${field.description ?? ''}\n label=${field.name}\n infer=${scope}\n helper-text-as-tooltip\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-switch-control>\n `\n : field.type === 'select'\n ? html`\n <foxy-internal-select-control\n placeholder=${this.t('default_additional_field_select_placeholder')}\n helper-text=${field.description ?? ''}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .options=${options!.map(({ name, value }) => ({ label: name, value }))}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-select-control>\n `\n : html`\n <foxy-internal-text-control\n helper-text=${field.description ?? ''}\n placeholder=${field.default_value || this.t('default_additional_field_placeholder')}\n layout=\"summary-item\"\n label=${field.name}\n infer=${scope}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-text-control>\n `}\n `;\n })}`;\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { safeDate } from "../../../utils/safe-date.js";
|
|
1
2
|
const quarters = [
|
|
2
3
|
[0, 1, 2],
|
|
3
4
|
[3, 4, 5],
|
|
@@ -10,7 +11,7 @@ export function getPreviousQuarter(now = new Date()) {
|
|
|
10
11
|
const previousQuarter = currentQuarter === 0 ? quarters.length - 1 : currentQuarter - 1;
|
|
11
12
|
const previousQuarterYear = now.getFullYear() - (currentQuarter === 0 ? 1 : 0);
|
|
12
13
|
const previousQuarterStart = quarters[previousQuarter][0];
|
|
13
|
-
const start =
|
|
14
|
+
const start = safeDate(previousQuarterYear, previousQuarterStart);
|
|
14
15
|
const previousQuarterEnd = quarters[previousQuarter][2];
|
|
15
16
|
const end = new Date(new Date(previousQuarterYear, previousQuarterEnd + 1).getTime() - 1);
|
|
16
17
|
return { start, end };
|
|
@@ -19,39 +20,39 @@ export function getCurrentQuarter(now = new Date()) {
|
|
|
19
20
|
const currentMonth = now.getMonth();
|
|
20
21
|
const currentQuarter = quarters.findIndex(months => months.includes(currentMonth));
|
|
21
22
|
const currentQuarterStart = quarters[currentQuarter][0];
|
|
22
|
-
const start =
|
|
23
|
+
const start = safeDate(now.getFullYear(), currentQuarterStart);
|
|
23
24
|
const currentQuarterEnd = quarters[currentQuarter][2];
|
|
24
|
-
const end = new Date(
|
|
25
|
+
const end = new Date(safeDate(now.getFullYear(), currentQuarterEnd + 1).getTime() - 1);
|
|
25
26
|
return { start, end };
|
|
26
27
|
}
|
|
27
28
|
export function getPreviousMonth(now = new Date()) {
|
|
28
|
-
const start =
|
|
29
|
-
const end = new Date(
|
|
29
|
+
const start = safeDate(now.getFullYear(), now.getMonth() - 1);
|
|
30
|
+
const end = new Date(safeDate(now.getFullYear(), now.getMonth()).getTime() - 1);
|
|
30
31
|
return { start, end };
|
|
31
32
|
}
|
|
32
33
|
export function getCurrentMonth(now = new Date()) {
|
|
33
|
-
const start =
|
|
34
|
-
const end = new Date(
|
|
34
|
+
const start = safeDate(now.getFullYear(), now.getMonth());
|
|
35
|
+
const end = new Date(safeDate(now.getFullYear(), now.getMonth() + 1).getTime() - 1);
|
|
35
36
|
return { start, end };
|
|
36
37
|
}
|
|
37
38
|
export function getPreviousYear(now = new Date()) {
|
|
38
|
-
const start =
|
|
39
|
-
const end = new Date(
|
|
39
|
+
const start = safeDate(now.getFullYear() - 1, 0);
|
|
40
|
+
const end = new Date(safeDate(now.getFullYear(), 0).getTime() - 1);
|
|
40
41
|
return { start, end };
|
|
41
42
|
}
|
|
42
43
|
export function getCurrentYear(now = new Date()) {
|
|
43
|
-
const start =
|
|
44
|
-
const end = new Date(
|
|
44
|
+
const start = safeDate(now.getFullYear(), 0);
|
|
45
|
+
const end = new Date(safeDate(now.getFullYear() + 1, 0).getTime() - 1);
|
|
45
46
|
return { start, end };
|
|
46
47
|
}
|
|
47
48
|
export function getLast365Days(now = new Date()) {
|
|
48
|
-
const start =
|
|
49
|
-
const end = new Date(
|
|
49
|
+
const start = safeDate(now.getFullYear(), now.getMonth(), now.getDate() - 365);
|
|
50
|
+
const end = new Date(safeDate(now.getFullYear(), now.getMonth(), now.getDate() + 1).getTime() - 1);
|
|
50
51
|
return { start, end };
|
|
51
52
|
}
|
|
52
53
|
export function getLast30Days(now = new Date()) {
|
|
53
|
-
const start =
|
|
54
|
-
const end = new Date(
|
|
54
|
+
const start = safeDate(now.getFullYear(), now.getMonth(), now.getDate() - 30);
|
|
55
|
+
const end = new Date(safeDate(now.getFullYear(), now.getMonth(), now.getDate() + 1).getTime() - 1);
|
|
55
56
|
return { start, end };
|
|
56
57
|
}
|
|
57
58
|
export function toAPIDateTime(date) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/elements/public/ReportForm/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/elements/public/ReportForm/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { safeDate } from '../../../utils/safe-date';\n\ntype Quarter = [number, number, number];\ntype Year = [Quarter, Quarter, Quarter, Quarter];\ntype Range = { start: Date; end: Date };\n\nconst quarters: Year = [\n [0, 1, 2],\n [3, 4, 5],\n [6, 7, 8],\n [9, 10, 11],\n];\n\nexport function getPreviousQuarter(now = new Date()): Range {\n const currentMonth = now.getMonth();\n const currentQuarter = quarters.findIndex(months => months.includes(currentMonth));\n const previousQuarter = currentQuarter === 0 ? quarters.length - 1 : currentQuarter - 1;\n const previousQuarterYear = now.getFullYear() - (currentQuarter === 0 ? 1 : 0);\n\n const previousQuarterStart = quarters[previousQuarter][0];\n const start = safeDate(previousQuarterYear, previousQuarterStart);\n\n const previousQuarterEnd = quarters[previousQuarter][2];\n const end = new Date(new Date(previousQuarterYear, previousQuarterEnd + 1).getTime() - 1);\n\n return { start, end };\n}\n\nexport function getCurrentQuarter(now = new Date()): Range {\n const currentMonth = now.getMonth();\n const currentQuarter = quarters.findIndex(months => months.includes(currentMonth));\n\n const currentQuarterStart = quarters[currentQuarter][0];\n const start = safeDate(now.getFullYear(), currentQuarterStart);\n\n const currentQuarterEnd = quarters[currentQuarter][2];\n const end = new Date(safeDate(now.getFullYear(), currentQuarterEnd + 1).getTime() - 1);\n\n return { start, end };\n}\n\nexport function getPreviousMonth(now = new Date()): Range {\n const start = safeDate(now.getFullYear(), now.getMonth() - 1);\n const end = new Date(safeDate(now.getFullYear(), now.getMonth()).getTime() - 1);\n\n return { start, end };\n}\n\nexport function getCurrentMonth(now = new Date()): Range {\n const start = safeDate(now.getFullYear(), now.getMonth());\n const end = new Date(safeDate(now.getFullYear(), now.getMonth() + 1).getTime() - 1);\n\n return { start, end };\n}\n\nexport function getPreviousYear(now = new Date()): Range {\n const start = safeDate(now.getFullYear() - 1, 0);\n const end = new Date(safeDate(now.getFullYear(), 0).getTime() - 1);\n\n return { start, end };\n}\n\nexport function getCurrentYear(now = new Date()): Range {\n const start = safeDate(now.getFullYear(), 0);\n const end = new Date(safeDate(now.getFullYear() + 1, 0).getTime() - 1);\n\n return { start, end };\n}\n\nexport function getLast365Days(now = new Date()): Range {\n const start = safeDate(now.getFullYear(), now.getMonth(), now.getDate() - 365);\n const end = new Date(\n safeDate(now.getFullYear(), now.getMonth(), now.getDate() + 1).getTime() - 1\n );\n\n return { start, end };\n}\n\nexport function getLast30Days(now = new Date()): Range {\n const start = safeDate(now.getFullYear(), now.getMonth(), now.getDate() - 30);\n const end = new Date(\n safeDate(now.getFullYear(), now.getMonth(), now.getDate() + 1).getTime() - 1\n );\n\n return { start, end };\n}\n\nexport function toAPIDateTime(date: Date): string {\n const YYYY = date.getFullYear().toString().padStart(4, '0');\n const MM = (date.getMonth() + 1).toString().padStart(2, '0');\n const DD = date.getDate().toString().padStart(2, '0');\n const hh = date.getHours().toString().padStart(2, '0');\n const mm = date.getMinutes().toString().padStart(2, '0');\n const ss = date.getSeconds().toString().padStart(2, '0');\n\n return `${YYYY}-${MM}-${DD}T${hh}:${mm}:${ss}`;\n}\n\nexport function toDateTimePickerValue(apiValue: string): string {\n return /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/.exec(apiValue)?.[0] ?? '';\n}\n\nexport function toDatePickerValue(apiValue: string): string {\n return /^\\d{4}-\\d{2}-\\d{2}/.exec(apiValue)?.[0] ?? '';\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};
|