rebill-web-components-sdk 1.8.14 → 1.8.15
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/cjs/card-identification_5.cjs.entry.js +1 -1
- package/dist/cjs/{installment-utils-D4qKgjN9.js → installment-utils-CaZDiH-J.js} +10 -7
- package/dist/cjs/installment-utils-CaZDiH-J.js.map +1 -0
- package/dist/cjs/otp-component_7.cjs.entry.js +1 -1
- package/dist/collection/utils/installment-utils.js +8 -5
- package/dist/collection/utils/installment-utils.js.map +1 -1
- package/dist/components/card-fields-wrapper.js +1 -1
- package/dist/components/{p-Y1V1tI5U.js → p-BQYAXUmg.js} +11 -8
- package/dist/components/p-BQYAXUmg.js.map +1 -0
- package/dist/components/{p-DioD4ps1.js → p-BW4DxIWR.js} +4 -4
- package/dist/components/{p-DioD4ps1.js.map → p-BW4DxIWR.js.map} +1 -1
- package/dist/components/{p-Ds8iyCAd.js → p-CU82jZID.js} +3 -3
- package/dist/components/{p-Ds8iyCAd.js.map → p-CU82jZID.js.map} +1 -1
- package/dist/components/{p-BIat5a1z.js → p-D5G2GZlN.js} +3 -3
- package/dist/components/{p-BIat5a1z.js.map → p-D5G2GZlN.js.map} +1 -1
- package/dist/components/{p-CW7bdfSw.js → p-Sh874KyF.js} +3 -3
- package/dist/components/{p-CW7bdfSw.js.map → p-Sh874KyF.js.map} +1 -1
- package/dist/components/{p-DG3R157p.js → p-puDOAJZP.js} +3 -3
- package/dist/components/{p-DG3R157p.js.map → p-puDOAJZP.js.map} +1 -1
- package/dist/components/payment-method-selector.js +1 -1
- package/dist/components/rebill-checkout.js +5 -5
- package/dist/components/rebill-installments.js +1 -1
- package/dist/components/rebill-renewal.js +3 -3
- package/dist/components/rebill-summary.js +1 -1
- package/dist/components/success-page.js +1 -1
- package/dist/esm/card-identification_5.entry.js +1 -1
- package/dist/esm/{installment-utils-BCJJSszJ.js → installment-utils-CxQxVtur.js} +10 -7
- package/dist/esm/installment-utils-CxQxVtur.js.map +1 -0
- package/dist/esm/otp-component_7.entry.js +1 -1
- package/dist/rebill-web-components-sdk/{p-c41119c0.entry.js → p-91432c62.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-KStTLJ_c.js → p-DKzHMy1G.js} +2 -2
- package/dist/rebill-web-components-sdk/p-DKzHMy1G.js.map +1 -0
- package/dist/rebill-web-components-sdk/{p-7f487ad7.entry.js → p-ad9bd33b.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/installment-utils-D4qKgjN9.js.map +0 -1
- package/dist/components/p-Y1V1tI5U.js.map +0 -1
- package/dist/esm/installment-utils-BCJJSszJ.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-KStTLJ_c.js.map +0 -1
- /package/dist/rebill-web-components-sdk/{p-c41119c0.entry.js.map → p-91432c62.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-7f487ad7.entry.js.map → p-ad9bd33b.entry.js.map} +0 -0
|
@@ -5,7 +5,7 @@ var index$1 = require('./index-BCzOaoSU.js');
|
|
|
5
5
|
var i18n_service = require('./i18n.service-B8abfOI5.js');
|
|
6
6
|
var renewal_store = require('./renewal.store-DQBdrGAS.js');
|
|
7
7
|
var config = require('./config-ClgjQet_.js');
|
|
8
|
-
var installmentUtils = require('./installment-utils-
|
|
8
|
+
var installmentUtils = require('./installment-utils-CaZDiH-J.js');
|
|
9
9
|
var colorClassMapper = require('./color-class-mapper-CtKnrxwI.js');
|
|
10
10
|
require('./_commonjsHelpers-B83fTs8d.js');
|
|
11
11
|
|
|
@@ -75,11 +75,14 @@ const getInstallmentDisabledPlaceholderByCurrency = (currency) => {
|
|
|
75
75
|
*/
|
|
76
76
|
const getInstallmentLabel = (installment, amount, currency, cft, model) => {
|
|
77
77
|
const installmentText = getInstallmentTextByCurrency(installment, currency);
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
i18n_service.state.data.pricing?.currency === i18n_service.CURRENCY_ENUM.ARS
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
const hasInterest = cft > 0;
|
|
79
|
+
const isArsCustomerFinanced = model === exports.ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&
|
|
80
|
+
i18n_service.state.data.pricing?.currency === i18n_service.CURRENCY_ENUM.ARS;
|
|
81
|
+
const cftText = hasInterest
|
|
82
|
+
? isArsCustomerFinanced
|
|
83
|
+
? `- CFT ${cft}% *`
|
|
84
|
+
: ''
|
|
85
|
+
: installment === 1 || currency !== i18n_service.CURRENCY_ENUM.ARS
|
|
83
86
|
? ''
|
|
84
87
|
: `<span style="background-color: rgba(183, 233, 221, 1); border-radius: 4px; padding: 2px 6px; display: inline-flex; align-items: center; color: #257c67; font-size: 0.75rem; font-weight: 600; margin-left: 4px;">${i18n_service.I18nService.translate('installments.samePrice')}</span>`;
|
|
85
88
|
return `${installment} ${installmentText} ${i18n_service.formatAmountToIntlFormat(amount, currency)} ${cftText}`;
|
|
@@ -123,6 +126,6 @@ exports.getInstallmentLabel = getInstallmentLabel;
|
|
|
123
126
|
exports.getInstallmentLabelSummary = getInstallmentLabelSummary;
|
|
124
127
|
exports.getInstallmentPlaceholderByCurrency = getInstallmentPlaceholderByCurrency;
|
|
125
128
|
exports.getRecalculatedInstallmentAmount = getRecalculatedInstallmentAmount;
|
|
126
|
-
//# sourceMappingURL=installment-utils-
|
|
129
|
+
//# sourceMappingURL=installment-utils-CaZDiH-J.js.map
|
|
127
130
|
|
|
128
|
-
//# sourceMappingURL=installment-utils-
|
|
131
|
+
//# sourceMappingURL=installment-utils-CaZDiH-J.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installment-utils-CaZDiH-J.js","sources":["src/models/enums/installment.enum.ts","src/utils/installment-utils.ts"],"sourcesContent":["export enum ENUM_INSTALLMENT_MODEL {\n CUSTOMER_FINANCED = 'customer_financed',\n MERCHANT_FINANCED = 'merchant_financed',\n ISSUER_FINANCED = 'issuer_financed',\n}\n","import { I18nService } from '../i18n/i18n.service';\nimport { CURRENCY_ENUM } from '../models/enums/currency.enum';\nimport { ENUM_INSTALLMENT_MODEL } from '../models/enums/installment.enum';\nimport { sessionState } from '../store/session.store';\nimport { formatAmountToIntlFormat } from './currency-formatter';\n\n/**\n * Obtiene la descripción de cuotas\n */\nexport const getInstallmentDescription = (installment: number, amount: number): string => {\n return I18nService.translate('summary.installmentDescription', {\n installment,\n amount: formatAmountToIntlFormat(amount, sessionState.data.pricing?.currency),\n });\n};\n\n/**\n * Obtiene el texto de cuota según la moneda\n * @param installment - El número de cuotas\n * @param currency - La moneda para determinar el texto apropiado\n * @returns String del texto de cuota según la moneda\n */\nconst getInstallmentTextByCurrency = (installment: number, currency: CURRENCY_ENUM): string => {\n if (currency === CURRENCY_ENUM.BRL) {\n return I18nService.translate('installments.brazilian');\n }\n\n if (currency === CURRENCY_ENUM.MXN) {\n return installment === 1\n ? I18nService.translate('installments.singleMexican')\n : I18nService.translate('installments.pluralMexican');\n }\n\n return installment === 1\n ? I18nService.translate('installments.single')\n : I18nService.translate('installments.plural');\n};\n\n/**\n * Obtiene el placeholder del selector de cuotas según la moneda\n * @param currency - La moneda para determinar el placeholder apropiado\n * @returns String del placeholder según la moneda\n */\nexport const getInstallmentPlaceholderByCurrency = (currency: CURRENCY_ENUM): string => {\n if (currency === CURRENCY_ENUM.BRL) {\n return I18nService.translate('installments.selectBrazilian');\n }\n\n if (currency === CURRENCY_ENUM.MXN) {\n return I18nService.translate('installments.selectMexican');\n }\n\n return I18nService.translate('installments.select');\n};\n\n/**\n * Obtiene el placeholder disabled del selector de cuotas según la moneda\n * @param currency - La moneda para determinar el placeholder disabled apropiado\n * @returns String del placeholder disabled según la moneda\n */\nexport const getInstallmentDisabledPlaceholderByCurrency = (currency: CURRENCY_ENUM): string => {\n if (currency === CURRENCY_ENUM.BRL) {\n return I18nService.translate('installments.disabledBrazilian');\n }\n\n if (currency === CURRENCY_ENUM.MXN) {\n return I18nService.translate('installments.disabledMexican');\n }\n\n return I18nService.translate('installments.disabled');\n};\n\n/**\n * Genera la etiqueta para una cuota específica\n * @param installment - El número de cuotas\n * @param amount - El monto por cuota\n * @param currency - La moneda a usar para el formateo\n * @param cft - El interés de la cuota\n * @returns String formateado de la etiqueta de cuota\n */\nexport const getInstallmentLabel = (\n installment: number,\n amount: number,\n currency: CURRENCY_ENUM,\n cft: number,\n model: ENUM_INSTALLMENT_MODEL,\n): string => {\n const installmentText = getInstallmentTextByCurrency(installment, currency);\n const hasInterest = cft > 0;\n const isArsCustomerFinanced =\n model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&\n sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS;\n\n const cftText = hasInterest\n ? isArsCustomerFinanced\n ? `- CFT ${cft}% *`\n : ''\n : installment === 1 || currency !== CURRENCY_ENUM.ARS\n ? ''\n : `<span style=\"background-color: rgba(183, 233, 221, 1); border-radius: 4px; padding: 2px 6px; display: inline-flex; align-items: center; color: #257c67; font-size: 0.75rem; font-weight: 600; margin-left: 4px;\">${I18nService.translate('installments.samePrice')}</span>`;\n\n return `${installment} ${installmentText} ${formatAmountToIntlFormat(amount, currency)} ${cftText}`;\n};\n/**\n * Genera la etiqueta para una cuota específica\n * @param installment - El número de cuotas\n * @param amount - El monto por cuota\n * @param currency - La moneda a usar para el formateo\n * @param cft - El interés de la cuota\n * @returns String formateado de la etiqueta de cuota\n */\nexport const getInstallmentLabelSummary = (\n installment: number,\n amount: number,\n currency: CURRENCY_ENUM,\n cft: number,\n model: ENUM_INSTALLMENT_MODEL,\n): string => {\n const installmentText = getInstallmentTextByCurrency(installment, currency);\n const cftText =\n cft > 0 &&\n model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&\n sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS\n ? `- CFT ${cft}% *`\n : '';\n\n return `${installment} ${installmentText} ${formatAmountToIntlFormat(amount, currency)} ${cftText} `;\n};\n\n/**\n * Recalcula el monto de la cuota considerando descuentos aplicados\n * @param installmentAmount - El monto original de la cuota\n * @returns El monto recalculado de la cuota con descuento aplicado\n */\nexport const getRecalculatedInstallmentAmount = (installmentAmount: number): number => {\n // Si hay un descuento aplicado, recalcular el monto de la cuota\n if (sessionState.data.pricing.discountAmount > 0) {\n const originalTotal = sessionState.data.pricing.subtotal;\n const currentTotal = sessionState.data.pricing.totalWithoutInstallment;\n const discountRatio = currentTotal / originalTotal;\n\n return Math.round(installmentAmount * discountRatio * 100) / 100;\n }\n\n return installmentAmount;\n};\n"],"names":["ENUM_INSTALLMENT_MODEL","I18nService","formatAmountToIntlFormat","sessionState","CURRENCY_ENUM"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ var i18n_service = require('./i18n.service-B8abfOI5.js');
|
|
|
6
6
|
var colorClassMapper = require('./color-class-mapper-CtKnrxwI.js');
|
|
7
7
|
var clipboard = require('./clipboard-QX5QCUa7.js');
|
|
8
8
|
var breakpoint = require('./breakpoint-CWd4pcNv.js');
|
|
9
|
-
var installmentUtils = require('./installment-utils-
|
|
9
|
+
var installmentUtils = require('./installment-utils-CaZDiH-J.js');
|
|
10
10
|
var assets = require('./assets-Bp8hbwFO.js');
|
|
11
11
|
var html2canvas = require('./pdf-generator-zX0ZE6Aa.js');
|
|
12
12
|
var dateFormatter = require('./date-formatter-xd8_5eZA.js');
|
|
@@ -69,11 +69,14 @@ export const getInstallmentDisabledPlaceholderByCurrency = (currency) => {
|
|
|
69
69
|
*/
|
|
70
70
|
export const getInstallmentLabel = (installment, amount, currency, cft, model) => {
|
|
71
71
|
const installmentText = getInstallmentTextByCurrency(installment, currency);
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
const hasInterest = cft > 0;
|
|
73
|
+
const isArsCustomerFinanced = model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&
|
|
74
|
+
sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS;
|
|
75
|
+
const cftText = hasInterest
|
|
76
|
+
? isArsCustomerFinanced
|
|
77
|
+
? `- CFT ${cft}% *`
|
|
78
|
+
: ''
|
|
79
|
+
: installment === 1 || currency !== CURRENCY_ENUM.ARS
|
|
77
80
|
? ''
|
|
78
81
|
: `<span style="background-color: rgba(183, 233, 221, 1); border-radius: 4px; padding: 2px 6px; display: inline-flex; align-items: center; color: #257c67; font-size: 0.75rem; font-weight: 600; margin-left: 4px;">${I18nService.translate('installments.samePrice')}</span>`;
|
|
79
82
|
return `${installment} ${installmentText} ${formatAmountToIntlFormat(amount, currency)} ${cftText}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installment-utils.js","sourceRoot":"","sources":["../../src/utils/installment-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,WAAmB,EAAE,MAAc,EAAU,EAAE;IACvF,OAAO,WAAW,CAAC,SAAS,CAAC,gCAAgC,EAAE;QAC7D,WAAW;QACX,MAAM,EAAE,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC9E,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,4BAA4B,GAAG,CAAC,WAAmB,EAAE,QAAuB,EAAU,EAAE;IAC5F,IAAI,QAAQ,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,QAAQ,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,WAAW,KAAK,CAAC;YACtB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,4BAA4B,CAAC;YACrD,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,WAAW,KAAK,CAAC;QACtB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,qBAAqB,CAAC;QAC9C,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,QAAuB,EAAU,EAAE;IACrF,IAAI,QAAQ,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,QAAQ,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,WAAW,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAAG,CAAC,QAAuB,EAAU,EAAE;IAC7F,IAAI,QAAQ,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,QAAQ,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,MAAc,EACd,QAAuB,EACvB,GAAW,EACX,KAA6B,EACrB,EAAE;IACV,MAAM,eAAe,GAAG,4BAA4B,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5E,MAAM,
|
|
1
|
+
{"version":3,"file":"installment-utils.js","sourceRoot":"","sources":["../../src/utils/installment-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { I18nService } from '../i18n/i18n.service';\nimport { CURRENCY_ENUM } from '../models/enums/currency.enum';\nimport { ENUM_INSTALLMENT_MODEL } from '../models/enums/installment.enum';\nimport { sessionState } from '../store/session.store';\nimport { formatAmountToIntlFormat } from './currency-formatter';\n\n/**\n * Obtiene la descripción de cuotas\n */\nexport const getInstallmentDescription = (installment: number, amount: number): string => {\n return I18nService.translate('summary.installmentDescription', {\n installment,\n amount: formatAmountToIntlFormat(amount, sessionState.data.pricing?.currency),\n });\n};\n\n/**\n * Obtiene el texto de cuota según la moneda\n * @param installment - El número de cuotas\n * @param currency - La moneda para determinar el texto apropiado\n * @returns String del texto de cuota según la moneda\n */\nconst getInstallmentTextByCurrency = (installment: number, currency: CURRENCY_ENUM): string => {\n if (currency === CURRENCY_ENUM.BRL) {\n return I18nService.translate('installments.brazilian');\n }\n\n if (currency === CURRENCY_ENUM.MXN) {\n return installment === 1\n ? I18nService.translate('installments.singleMexican')\n : I18nService.translate('installments.pluralMexican');\n }\n\n return installment === 1\n ? I18nService.translate('installments.single')\n : I18nService.translate('installments.plural');\n};\n\n/**\n * Obtiene el placeholder del selector de cuotas según la moneda\n * @param currency - La moneda para determinar el placeholder apropiado\n * @returns String del placeholder según la moneda\n */\nexport const getInstallmentPlaceholderByCurrency = (currency: CURRENCY_ENUM): string => {\n if (currency === CURRENCY_ENUM.BRL) {\n return I18nService.translate('installments.selectBrazilian');\n }\n\n if (currency === CURRENCY_ENUM.MXN) {\n return I18nService.translate('installments.selectMexican');\n }\n\n return I18nService.translate('installments.select');\n};\n\n/**\n * Obtiene el placeholder disabled del selector de cuotas según la moneda\n * @param currency - La moneda para determinar el placeholder disabled apropiado\n * @returns String del placeholder disabled según la moneda\n */\nexport const getInstallmentDisabledPlaceholderByCurrency = (currency: CURRENCY_ENUM): string => {\n if (currency === CURRENCY_ENUM.BRL) {\n return I18nService.translate('installments.disabledBrazilian');\n }\n\n if (currency === CURRENCY_ENUM.MXN) {\n return I18nService.translate('installments.disabledMexican');\n }\n\n return I18nService.translate('installments.disabled');\n};\n\n/**\n * Genera la etiqueta para una cuota específica\n * @param installment - El número de cuotas\n * @param amount - El monto por cuota\n * @param currency - La moneda a usar para el formateo\n * @param cft - El interés de la cuota\n * @returns String formateado de la etiqueta de cuota\n */\nexport const getInstallmentLabel = (\n installment: number,\n amount: number,\n currency: CURRENCY_ENUM,\n cft: number,\n model: ENUM_INSTALLMENT_MODEL,\n): string => {\n const installmentText = getInstallmentTextByCurrency(installment, currency);\n const hasInterest = cft > 0;\n const isArsCustomerFinanced =\n model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&\n sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS;\n\n const cftText = hasInterest\n ? isArsCustomerFinanced\n ? `- CFT ${cft}% *`\n : ''\n : installment === 1 || currency !== CURRENCY_ENUM.ARS\n ? ''\n : `<span style=\"background-color: rgba(183, 233, 221, 1); border-radius: 4px; padding: 2px 6px; display: inline-flex; align-items: center; color: #257c67; font-size: 0.75rem; font-weight: 600; margin-left: 4px;\">${I18nService.translate('installments.samePrice')}</span>`;\n\n return `${installment} ${installmentText} ${formatAmountToIntlFormat(amount, currency)} ${cftText}`;\n};\n/**\n * Genera la etiqueta para una cuota específica\n * @param installment - El número de cuotas\n * @param amount - El monto por cuota\n * @param currency - La moneda a usar para el formateo\n * @param cft - El interés de la cuota\n * @returns String formateado de la etiqueta de cuota\n */\nexport const getInstallmentLabelSummary = (\n installment: number,\n amount: number,\n currency: CURRENCY_ENUM,\n cft: number,\n model: ENUM_INSTALLMENT_MODEL,\n): string => {\n const installmentText = getInstallmentTextByCurrency(installment, currency);\n const cftText =\n cft > 0 &&\n model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&\n sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS\n ? `- CFT ${cft}% *`\n : '';\n\n return `${installment} ${installmentText} ${formatAmountToIntlFormat(amount, currency)} ${cftText} `;\n};\n\n/**\n * Recalcula el monto de la cuota considerando descuentos aplicados\n * @param installmentAmount - El monto original de la cuota\n * @returns El monto recalculado de la cuota con descuento aplicado\n */\nexport const getRecalculatedInstallmentAmount = (installmentAmount: number): number => {\n // Si hay un descuento aplicado, recalcular el monto de la cuota\n if (sessionState.data.pricing.discountAmount > 0) {\n const originalTotal = sessionState.data.pricing.subtotal;\n const currentTotal = sessionState.data.pricing.totalWithoutInstallment;\n const discountRatio = currentTotal / originalTotal;\n\n return Math.round(installmentAmount * discountRatio * 100) / 100;\n }\n\n return installmentAmount;\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CardFieldsWrapper$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { C as CardFieldsWrapper$1, d as defineCustomElement$1 } from './p-CU82jZID.js';
|
|
2
2
|
|
|
3
3
|
const CardFieldsWrapper = CardFieldsWrapper$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CURRENCY_ENUM, I as I18nService,
|
|
1
|
+
import { C as CURRENCY_ENUM, I as I18nService, e as formatAmountToIntlFormat, s as state } from './p-72CzTHAw.js';
|
|
2
2
|
|
|
3
3
|
var ENUM_INSTALLMENT_MODEL;
|
|
4
4
|
(function (ENUM_INSTALLMENT_MODEL) {
|
|
@@ -73,11 +73,14 @@ const getInstallmentDisabledPlaceholderByCurrency = (currency) => {
|
|
|
73
73
|
*/
|
|
74
74
|
const getInstallmentLabel = (installment, amount, currency, cft, model) => {
|
|
75
75
|
const installmentText = getInstallmentTextByCurrency(installment, currency);
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
state.data.pricing?.currency === CURRENCY_ENUM.ARS
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
const hasInterest = cft > 0;
|
|
77
|
+
const isArsCustomerFinanced = model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&
|
|
78
|
+
state.data.pricing?.currency === CURRENCY_ENUM.ARS;
|
|
79
|
+
const cftText = hasInterest
|
|
80
|
+
? isArsCustomerFinanced
|
|
81
|
+
? `- CFT ${cft}% *`
|
|
82
|
+
: ''
|
|
83
|
+
: installment === 1 || currency !== CURRENCY_ENUM.ARS
|
|
81
84
|
? ''
|
|
82
85
|
: `<span style="background-color: rgba(183, 233, 221, 1); border-radius: 4px; padding: 2px 6px; display: inline-flex; align-items: center; color: #257c67; font-size: 0.75rem; font-weight: 600; margin-left: 4px;">${I18nService.translate('installments.samePrice')}</span>`;
|
|
83
86
|
return `${installment} ${installmentText} ${formatAmountToIntlFormat(amount, currency)} ${cftText}`;
|
|
@@ -116,6 +119,6 @@ const getRecalculatedInstallmentAmount = (installmentAmount) => {
|
|
|
116
119
|
};
|
|
117
120
|
|
|
118
121
|
export { ENUM_INSTALLMENT_MODEL as E, getInstallmentPlaceholderByCurrency as a, getInstallmentLabel as b, getRecalculatedInstallmentAmount as c, getInstallmentDescription as d, getInstallmentLabelSummary as e, getInstallmentDisabledPlaceholderByCurrency as g };
|
|
119
|
-
//# sourceMappingURL=p-
|
|
122
|
+
//# sourceMappingURL=p-BQYAXUmg.js.map
|
|
120
123
|
|
|
121
|
-
//# sourceMappingURL=p-
|
|
124
|
+
//# sourceMappingURL=p-BQYAXUmg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-BQYAXUmg.js","mappings":"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","names":["sessionState"],"sources":["src/models/enums/installment.enum.ts","src/utils/installment-utils.ts"],"sourcesContent":["export enum ENUM_INSTALLMENT_MODEL {\n CUSTOMER_FINANCED = 'customer_financed',\n MERCHANT_FINANCED = 'merchant_financed',\n ISSUER_FINANCED = 'issuer_financed',\n}\n","import { I18nService } from '../i18n/i18n.service';\nimport { CURRENCY_ENUM } from '../models/enums/currency.enum';\nimport { ENUM_INSTALLMENT_MODEL } from '../models/enums/installment.enum';\nimport { sessionState } from '../store/session.store';\nimport { formatAmountToIntlFormat } from './currency-formatter';\n\n/**\n * Obtiene la descripción de cuotas\n */\nexport const getInstallmentDescription = (installment: number, amount: number): string => {\n return I18nService.translate('summary.installmentDescription', {\n installment,\n amount: formatAmountToIntlFormat(amount, sessionState.data.pricing?.currency),\n });\n};\n\n/**\n * Obtiene el texto de cuota según la moneda\n * @param installment - El número de cuotas\n * @param currency - La moneda para determinar el texto apropiado\n * @returns String del texto de cuota según la moneda\n */\nconst getInstallmentTextByCurrency = (installment: number, currency: CURRENCY_ENUM): string => {\n if (currency === CURRENCY_ENUM.BRL) {\n return I18nService.translate('installments.brazilian');\n }\n\n if (currency === CURRENCY_ENUM.MXN) {\n return installment === 1\n ? I18nService.translate('installments.singleMexican')\n : I18nService.translate('installments.pluralMexican');\n }\n\n return installment === 1\n ? I18nService.translate('installments.single')\n : I18nService.translate('installments.plural');\n};\n\n/**\n * Obtiene el placeholder del selector de cuotas según la moneda\n * @param currency - La moneda para determinar el placeholder apropiado\n * @returns String del placeholder según la moneda\n */\nexport const getInstallmentPlaceholderByCurrency = (currency: CURRENCY_ENUM): string => {\n if (currency === CURRENCY_ENUM.BRL) {\n return I18nService.translate('installments.selectBrazilian');\n }\n\n if (currency === CURRENCY_ENUM.MXN) {\n return I18nService.translate('installments.selectMexican');\n }\n\n return I18nService.translate('installments.select');\n};\n\n/**\n * Obtiene el placeholder disabled del selector de cuotas según la moneda\n * @param currency - La moneda para determinar el placeholder disabled apropiado\n * @returns String del placeholder disabled según la moneda\n */\nexport const getInstallmentDisabledPlaceholderByCurrency = (currency: CURRENCY_ENUM): string => {\n if (currency === CURRENCY_ENUM.BRL) {\n return I18nService.translate('installments.disabledBrazilian');\n }\n\n if (currency === CURRENCY_ENUM.MXN) {\n return I18nService.translate('installments.disabledMexican');\n }\n\n return I18nService.translate('installments.disabled');\n};\n\n/**\n * Genera la etiqueta para una cuota específica\n * @param installment - El número de cuotas\n * @param amount - El monto por cuota\n * @param currency - La moneda a usar para el formateo\n * @param cft - El interés de la cuota\n * @returns String formateado de la etiqueta de cuota\n */\nexport const getInstallmentLabel = (\n installment: number,\n amount: number,\n currency: CURRENCY_ENUM,\n cft: number,\n model: ENUM_INSTALLMENT_MODEL,\n): string => {\n const installmentText = getInstallmentTextByCurrency(installment, currency);\n const hasInterest = cft > 0;\n const isArsCustomerFinanced =\n model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&\n sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS;\n\n const cftText = hasInterest\n ? isArsCustomerFinanced\n ? `- CFT ${cft}% *`\n : ''\n : installment === 1 || currency !== CURRENCY_ENUM.ARS\n ? ''\n : `<span style=\"background-color: rgba(183, 233, 221, 1); border-radius: 4px; padding: 2px 6px; display: inline-flex; align-items: center; color: #257c67; font-size: 0.75rem; font-weight: 600; margin-left: 4px;\">${I18nService.translate('installments.samePrice')}</span>`;\n\n return `${installment} ${installmentText} ${formatAmountToIntlFormat(amount, currency)} ${cftText}`;\n};\n/**\n * Genera la etiqueta para una cuota específica\n * @param installment - El número de cuotas\n * @param amount - El monto por cuota\n * @param currency - La moneda a usar para el formateo\n * @param cft - El interés de la cuota\n * @returns String formateado de la etiqueta de cuota\n */\nexport const getInstallmentLabelSummary = (\n installment: number,\n amount: number,\n currency: CURRENCY_ENUM,\n cft: number,\n model: ENUM_INSTALLMENT_MODEL,\n): string => {\n const installmentText = getInstallmentTextByCurrency(installment, currency);\n const cftText =\n cft > 0 &&\n model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&\n sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS\n ? `- CFT ${cft}% *`\n : '';\n\n return `${installment} ${installmentText} ${formatAmountToIntlFormat(amount, currency)} ${cftText} `;\n};\n\n/**\n * Recalcula el monto de la cuota considerando descuentos aplicados\n * @param installmentAmount - El monto original de la cuota\n * @returns El monto recalculado de la cuota con descuento aplicado\n */\nexport const getRecalculatedInstallmentAmount = (installmentAmount: number): number => {\n // Si hay un descuento aplicado, recalcular el monto de la cuota\n if (sessionState.data.pricing.discountAmount > 0) {\n const originalTotal = sessionState.data.pricing.subtotal;\n const currentTotal = sessionState.data.pricing.totalWithoutInstallment;\n const discountRatio = currentTotal / originalTotal;\n\n return Math.round(installmentAmount * discountRatio * 100) / 100;\n }\n\n return installmentAmount;\n};\n"],"version":3}
|
|
@@ -3,7 +3,7 @@ import { P as PAYMENT_METHOD_ENUM, I as I18nService, s as state, b as SESSION_IT
|
|
|
3
3
|
import { C as COLORS_ENUM } from './p-DA598vBj.js';
|
|
4
4
|
import { g as getCountryPaymentMethods } from './p-BXbwokPV.js';
|
|
5
5
|
import { g as getPaymentMethodDisplayName } from './p-DOUVwjyF.js';
|
|
6
|
-
import { d as defineCustomElement$c } from './p-
|
|
6
|
+
import { d as defineCustomElement$c } from './p-CU82jZID.js';
|
|
7
7
|
import { d as defineCustomElement$b } from './p-Dp86wPXR.js';
|
|
8
8
|
import { d as defineCustomElement$a } from './p-De0GcRDq.js';
|
|
9
9
|
import { d as defineCustomElement$9 } from './p-C1PdnVhw.js';
|
|
@@ -11,7 +11,7 @@ import { d as defineCustomElement$8 } from './p-BOqiXySU.js';
|
|
|
11
11
|
import { d as defineCustomElement$7 } from './p-oVqOm9fT.js';
|
|
12
12
|
import { d as defineCustomElement$6 } from './p-BmDnwjPK.js';
|
|
13
13
|
import { d as defineCustomElement$5 } from './p-CRss3Wug.js';
|
|
14
|
-
import { d as defineCustomElement$4 } from './p-
|
|
14
|
+
import { d as defineCustomElement$4 } from './p-Sh874KyF.js';
|
|
15
15
|
import { d as defineCustomElement$3 } from './p-C_txMekS.js';
|
|
16
16
|
import { d as defineCustomElement$2 } from './p-xpOb67FC.js';
|
|
17
17
|
import { d as defineCustomElement$1 } from './p-Bp-N_G2i.js';
|
|
@@ -242,6 +242,6 @@ function defineCustomElement() {
|
|
|
242
242
|
defineCustomElement();
|
|
243
243
|
|
|
244
244
|
export { PaymentMethodSelector as P, defineCustomElement as d };
|
|
245
|
-
//# sourceMappingURL=p-
|
|
245
|
+
//# sourceMappingURL=p-BW4DxIWR.js.map
|
|
246
246
|
|
|
247
|
-
//# sourceMappingURL=p-
|
|
247
|
+
//# sourceMappingURL=p-BW4DxIWR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-DioD4ps1.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/payment-method-selector/payment-method-selector.css?tag=payment-method-selector","src/components/checkout/payment-method-selector/payment-method-selector.tsx"],"sourcesContent":[".payment-method-selector {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.card-description-container {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: flex-start;\n width: 100%;\n}\n","import { Component, Event, EventEmitter, h, Listen, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SESSION_ITEM_TYPE_ENUM } from '../../../models';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport { getCountryPaymentMethods } from '../../../utils/countries-payment-methods';\nimport { getPaymentMethodDisplayName } from '../../../utils/get-payment-method-display-name';\n\nexport interface CardError {\n showCardInvalid: boolean;\n type: 'tokenization_error' | 'card_error' | null;\n}\n@Component({\n tag: 'payment-method-selector',\n styleUrl: 'payment-method-selector.css',\n shadow: false,\n})\nexport class PaymentMethodSelector {\n @Prop() enabledPaymentMethods: PAYMENT_METHOD_ENUM[] = [];\n\n @Prop() defaultSelected?: PAYMENT_METHOD_ENUM;\n @Prop() showErrorComponent: boolean = false;\n @Prop() cardError: CardError;\n // currency country\n @Prop() country?: string;\n @Prop() installmentsError?: string;\n @Prop() documentTypeError?: string;\n @Prop() showDocument?: boolean;\n @Prop() documentNumberError?: string;\n @Prop() customCSS?: string;\n @Prop() errorComponent?: {\n showErrorComponent: boolean;\n alertTitle?: string;\n message: string;\n };\n @Prop() disabled?: boolean = false;\n @State() icon: string = '';\n\n @State() selectedPaymentMethod: PAYMENT_METHOD_ENUM;\n @State() saveCard: boolean = false;\n\n @Event() paymentMethodSelected: EventEmitter<PAYMENT_METHOD_ENUM>;\n\n componentWillLoad() {\n if (this.enabledPaymentMethods.length > 0) {\n this.selectedPaymentMethod = this.defaultSelected || this.enabledPaymentMethods[0];\n\n if (this.enabledPaymentMethods.length === 1) {\n this.paymentMethodSelected.emit(this.selectedPaymentMethod);\n }\n }\n this.getPaymentMethodIcon(this.selectedPaymentMethod);\n }\n\n componentWillUpdate() {\n // Update selected payment method when defaultSelected prop changes\n if (this.defaultSelected && this.selectedPaymentMethod !== this.defaultSelected) {\n this.selectedPaymentMethod = this.defaultSelected;\n }\n }\n\n private getPaymentMethodConfig(method: PAYMENT_METHOD_ENUM) {\n const countryPaymentMethods = this.country ? getCountryPaymentMethods(this.country) : null;\n\n const countrySpecificMethod = countryPaymentMethods?.find(pm => pm.type === method);\n\n // Default configurations (fallback)\n const defaultConfigs = {\n [PAYMENT_METHOD_ENUM.CARD]: {\n key: PAYMENT_METHOD_ENUM.CARD,\n label: I18nService.translate('paymentMethods.card'),\n icons: ['doblecard'],\n },\n [PAYMENT_METHOD_ENUM.CASH]: {\n key: PAYMENT_METHOD_ENUM.CASH,\n label: I18nService.translate('paymentMethods.cash'),\n icons: ['pago-facil'],\n },\n [PAYMENT_METHOD_ENUM.BANK_TRANSFER]: {\n key: PAYMENT_METHOD_ENUM.BANK_TRANSFER,\n label: I18nService.translate('paymentMethods.bank_transfer'),\n icons: ['plus'],\n },\n };\n\n const defaultConfig = defaultConfigs[method];\n\n // If we have country-specific icons, use them; otherwise use defaults\n return {\n ...defaultConfig,\n icons: countrySpecificMethod?.icons || defaultConfig.icons,\n };\n }\n\n private getPaymentMethodIcon(paymentMethod: PAYMENT_METHOD_ENUM) {\n this.icon = getPaymentMethodDisplayName(paymentMethod, this.country)?.toLowerCase() || 'card';\n return this.icon;\n }\n\n handlePaymentMethodSelected(paymentMethod: PAYMENT_METHOD_ENUM) {\n if (this.disabled) {\n return;\n }\n this.selectedPaymentMethod = paymentMethod;\n this.paymentMethodSelected.emit(paymentMethod);\n }\n\n // handleSaveCardChange(event: any) {\n // this.saveCard = event?.target?.checked;\n // SessionStore.setSaveCard(this.saveCard);\n // }\n\n @Listen('selectableCardClick')\n handleSelectableCardClick(event: CustomEvent<string>) {\n if (this.disabled) {\n return;\n }\n const paymentMethodKey = event.detail as PAYMENT_METHOD_ENUM;\n this.handlePaymentMethodSelected(paymentMethodKey);\n }\n\n render() {\n if (this.enabledPaymentMethods.length === 0) {\n return null;\n }\n\n return (\n <div class=\"payment-method-selector\">\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n gap: '8px',\n width: '100%',\n justifyContent: 'space-between',\n }}\n >\n {this.enabledPaymentMethods.length === 1 &&\n (() => {\n const config = this.getPaymentMethodConfig(this.enabledPaymentMethods[0]);\n return (\n <single-payment-method\n paymentMethod={this.enabledPaymentMethods[0]}\n currencyCountry={this.country}\n paymentMethodDetails={[]}\n icons={config.icons}\n style={{\n display: 'flex',\n flex: '1 1 0',\n }}\n />\n );\n })()}\n {this.enabledPaymentMethods.length > 1 &&\n this.enabledPaymentMethods.map(paymentMethod => {\n const config = this.getPaymentMethodConfig(paymentMethod);\n return (\n <selectable-card\n style={{ flex: '1 1 0' }}\n selected={this.selectedPaymentMethod === paymentMethod}\n card-key={config.key}\n label={config.label}\n disabled={this.disabled}\n >\n <span slot=\"icon\">\n <div\n style={{ display: 'flex', alignItems: 'center', gap: '8px', height: '24px' }}\n >\n {config.icons.map(iconName => {\n return (\n <rebill-icon\n name={iconName}\n color={\n this.disabled && paymentMethod === PAYMENT_METHOD_ENUM.CARD\n ? COLORS_ENUM.NEUTRALS_500\n : 'currentColor'\n }\n />\n );\n })}\n </div>\n </span>\n </selectable-card>\n );\n })}\n </div>\n <div>\n {this.cardError.showCardInvalid &&\n this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.CARD ? (\n <rebill-alert\n type=\"error\"\n alertTitle={\n this.cardError.type === 'tokenization_error'\n ? I18nService.translate('validation.tokenError')\n : I18nService.translate('validation.cardInvalid')\n }\n variant=\"outlined\"\n message={\n this.cardError.type === 'tokenization_error'\n ? I18nService.translate('validation.tokenErrorDescription')\n : I18nService.translate('validation.cardInvalidDescription')\n }\n icon=\"error\"\n />\n ) : this.errorComponent.showErrorComponent ? (\n <rebill-alert\n type=\"error\"\n alertTitle={this.errorComponent.alertTitle}\n message={this.errorComponent.message}\n variant=\"outlined\"\n icon=\"error\"\n />\n ) : null}\n </div>\n {this.enabledPaymentMethods.length > 1 &&\n this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.CARD &&\n sessionState.data?.itemInformation?.type !== SESSION_ITEM_TYPE_ENUM.PLAN && (\n <div\n style={{\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n }}\n >\n {/* <rebill-input-checkbox\n id=\"saveCard\"\n checked={this.saveCard}\n label={I18nService.translate('paymentMethods.saveCard')}\n onInput={event => this.handleSaveCardChange(event)}\n /> */}\n </div>\n )}\n {this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.CARD && (\n <>\n {/* {this.enabledPaymentMethods.length > 1 && (\n <div class=\"card-description-container\">\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.TEXT_PRIMARY}>\n {I18nService.translate('paymentMethods.cardDescription')}\n </rebill-typography>\n <rebill-card-carousel\n size=\"24px\"\n color=\"currentColor\"\n show-all-cards=\"false\"\n ></rebill-card-carousel>\n </div>\n </div>\n )} */}\n <div>\n <card-fields-wrapper\n installmentsError={this.installmentsError}\n documentTypeError={this.documentTypeError}\n documentNumberError={this.documentNumberError}\n showDocument={this.showDocument}\n customCSS={this.customCSS}\n />\n </div>\n </>\n )}\n {/* Mostrar campos de documento para BANK_TRANSFER y CASH cuando showDocument es true */}\n {(this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER ||\n this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.CASH) &&\n this.showDocument && (\n <div>\n <card-identification\n documentTypeError={this.documentTypeError}\n documentNumberError={this.documentNumberError}\n disabled={this.disabled}\n />\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-BW4DxIWR.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/payment-method-selector/payment-method-selector.css?tag=payment-method-selector","src/components/checkout/payment-method-selector/payment-method-selector.tsx"],"sourcesContent":[".payment-method-selector {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.card-description-container {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: flex-start;\n width: 100%;\n}\n","import { Component, Event, EventEmitter, h, Listen, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SESSION_ITEM_TYPE_ENUM } from '../../../models';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport { getCountryPaymentMethods } from '../../../utils/countries-payment-methods';\nimport { getPaymentMethodDisplayName } from '../../../utils/get-payment-method-display-name';\n\nexport interface CardError {\n showCardInvalid: boolean;\n type: 'tokenization_error' | 'card_error' | null;\n}\n@Component({\n tag: 'payment-method-selector',\n styleUrl: 'payment-method-selector.css',\n shadow: false,\n})\nexport class PaymentMethodSelector {\n @Prop() enabledPaymentMethods: PAYMENT_METHOD_ENUM[] = [];\n\n @Prop() defaultSelected?: PAYMENT_METHOD_ENUM;\n @Prop() showErrorComponent: boolean = false;\n @Prop() cardError: CardError;\n // currency country\n @Prop() country?: string;\n @Prop() installmentsError?: string;\n @Prop() documentTypeError?: string;\n @Prop() showDocument?: boolean;\n @Prop() documentNumberError?: string;\n @Prop() customCSS?: string;\n @Prop() errorComponent?: {\n showErrorComponent: boolean;\n alertTitle?: string;\n message: string;\n };\n @Prop() disabled?: boolean = false;\n @State() icon: string = '';\n\n @State() selectedPaymentMethod: PAYMENT_METHOD_ENUM;\n @State() saveCard: boolean = false;\n\n @Event() paymentMethodSelected: EventEmitter<PAYMENT_METHOD_ENUM>;\n\n componentWillLoad() {\n if (this.enabledPaymentMethods.length > 0) {\n this.selectedPaymentMethod = this.defaultSelected || this.enabledPaymentMethods[0];\n\n if (this.enabledPaymentMethods.length === 1) {\n this.paymentMethodSelected.emit(this.selectedPaymentMethod);\n }\n }\n this.getPaymentMethodIcon(this.selectedPaymentMethod);\n }\n\n componentWillUpdate() {\n // Update selected payment method when defaultSelected prop changes\n if (this.defaultSelected && this.selectedPaymentMethod !== this.defaultSelected) {\n this.selectedPaymentMethod = this.defaultSelected;\n }\n }\n\n private getPaymentMethodConfig(method: PAYMENT_METHOD_ENUM) {\n const countryPaymentMethods = this.country ? getCountryPaymentMethods(this.country) : null;\n\n const countrySpecificMethod = countryPaymentMethods?.find(pm => pm.type === method);\n\n // Default configurations (fallback)\n const defaultConfigs = {\n [PAYMENT_METHOD_ENUM.CARD]: {\n key: PAYMENT_METHOD_ENUM.CARD,\n label: I18nService.translate('paymentMethods.card'),\n icons: ['doblecard'],\n },\n [PAYMENT_METHOD_ENUM.CASH]: {\n key: PAYMENT_METHOD_ENUM.CASH,\n label: I18nService.translate('paymentMethods.cash'),\n icons: ['pago-facil'],\n },\n [PAYMENT_METHOD_ENUM.BANK_TRANSFER]: {\n key: PAYMENT_METHOD_ENUM.BANK_TRANSFER,\n label: I18nService.translate('paymentMethods.bank_transfer'),\n icons: ['plus'],\n },\n };\n\n const defaultConfig = defaultConfigs[method];\n\n // If we have country-specific icons, use them; otherwise use defaults\n return {\n ...defaultConfig,\n icons: countrySpecificMethod?.icons || defaultConfig.icons,\n };\n }\n\n private getPaymentMethodIcon(paymentMethod: PAYMENT_METHOD_ENUM) {\n this.icon = getPaymentMethodDisplayName(paymentMethod, this.country)?.toLowerCase() || 'card';\n return this.icon;\n }\n\n handlePaymentMethodSelected(paymentMethod: PAYMENT_METHOD_ENUM) {\n if (this.disabled) {\n return;\n }\n this.selectedPaymentMethod = paymentMethod;\n this.paymentMethodSelected.emit(paymentMethod);\n }\n\n // handleSaveCardChange(event: any) {\n // this.saveCard = event?.target?.checked;\n // SessionStore.setSaveCard(this.saveCard);\n // }\n\n @Listen('selectableCardClick')\n handleSelectableCardClick(event: CustomEvent<string>) {\n if (this.disabled) {\n return;\n }\n const paymentMethodKey = event.detail as PAYMENT_METHOD_ENUM;\n this.handlePaymentMethodSelected(paymentMethodKey);\n }\n\n render() {\n if (this.enabledPaymentMethods.length === 0) {\n return null;\n }\n\n return (\n <div class=\"payment-method-selector\">\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n gap: '8px',\n width: '100%',\n justifyContent: 'space-between',\n }}\n >\n {this.enabledPaymentMethods.length === 1 &&\n (() => {\n const config = this.getPaymentMethodConfig(this.enabledPaymentMethods[0]);\n return (\n <single-payment-method\n paymentMethod={this.enabledPaymentMethods[0]}\n currencyCountry={this.country}\n paymentMethodDetails={[]}\n icons={config.icons}\n style={{\n display: 'flex',\n flex: '1 1 0',\n }}\n />\n );\n })()}\n {this.enabledPaymentMethods.length > 1 &&\n this.enabledPaymentMethods.map(paymentMethod => {\n const config = this.getPaymentMethodConfig(paymentMethod);\n return (\n <selectable-card\n style={{ flex: '1 1 0' }}\n selected={this.selectedPaymentMethod === paymentMethod}\n card-key={config.key}\n label={config.label}\n disabled={this.disabled}\n >\n <span slot=\"icon\">\n <div\n style={{ display: 'flex', alignItems: 'center', gap: '8px', height: '24px' }}\n >\n {config.icons.map(iconName => {\n return (\n <rebill-icon\n name={iconName}\n color={\n this.disabled && paymentMethod === PAYMENT_METHOD_ENUM.CARD\n ? COLORS_ENUM.NEUTRALS_500\n : 'currentColor'\n }\n />\n );\n })}\n </div>\n </span>\n </selectable-card>\n );\n })}\n </div>\n <div>\n {this.cardError.showCardInvalid &&\n this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.CARD ? (\n <rebill-alert\n type=\"error\"\n alertTitle={\n this.cardError.type === 'tokenization_error'\n ? I18nService.translate('validation.tokenError')\n : I18nService.translate('validation.cardInvalid')\n }\n variant=\"outlined\"\n message={\n this.cardError.type === 'tokenization_error'\n ? I18nService.translate('validation.tokenErrorDescription')\n : I18nService.translate('validation.cardInvalidDescription')\n }\n icon=\"error\"\n />\n ) : this.errorComponent.showErrorComponent ? (\n <rebill-alert\n type=\"error\"\n alertTitle={this.errorComponent.alertTitle}\n message={this.errorComponent.message}\n variant=\"outlined\"\n icon=\"error\"\n />\n ) : null}\n </div>\n {this.enabledPaymentMethods.length > 1 &&\n this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.CARD &&\n sessionState.data?.itemInformation?.type !== SESSION_ITEM_TYPE_ENUM.PLAN && (\n <div\n style={{\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n }}\n >\n {/* <rebill-input-checkbox\n id=\"saveCard\"\n checked={this.saveCard}\n label={I18nService.translate('paymentMethods.saveCard')}\n onInput={event => this.handleSaveCardChange(event)}\n /> */}\n </div>\n )}\n {this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.CARD && (\n <>\n {/* {this.enabledPaymentMethods.length > 1 && (\n <div class=\"card-description-container\">\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.TEXT_PRIMARY}>\n {I18nService.translate('paymentMethods.cardDescription')}\n </rebill-typography>\n <rebill-card-carousel\n size=\"24px\"\n color=\"currentColor\"\n show-all-cards=\"false\"\n ></rebill-card-carousel>\n </div>\n </div>\n )} */}\n <div>\n <card-fields-wrapper\n installmentsError={this.installmentsError}\n documentTypeError={this.documentTypeError}\n documentNumberError={this.documentNumberError}\n showDocument={this.showDocument}\n customCSS={this.customCSS}\n />\n </div>\n </>\n )}\n {/* Mostrar campos de documento para BANK_TRANSFER y CASH cuando showDocument es true */}\n {(this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER ||\n this.selectedPaymentMethod === PAYMENT_METHOD_ENUM.CASH) &&\n this.showDocument && (\n <div>\n <card-identification\n documentTypeError={this.documentTypeError}\n documentNumberError={this.documentNumberError}\n disabled={this.disabled}\n />\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -7,7 +7,7 @@ import { d as defineCustomElement$6 } from './p-C1PdnVhw.js';
|
|
|
7
7
|
import { d as defineCustomElement$5 } from './p-oVqOm9fT.js';
|
|
8
8
|
import { d as defineCustomElement$4 } from './p-BmDnwjPK.js';
|
|
9
9
|
import { d as defineCustomElement$3 } from './p-CRss3Wug.js';
|
|
10
|
-
import { d as defineCustomElement$2 } from './p-
|
|
10
|
+
import { d as defineCustomElement$2 } from './p-Sh874KyF.js';
|
|
11
11
|
import { d as defineCustomElement$1 } from './p-C_txMekS.js';
|
|
12
12
|
|
|
13
13
|
const CardFieldsWrapper = /*@__PURE__*/ proxyCustomElement(class CardFieldsWrapper extends H {
|
|
@@ -90,6 +90,6 @@ function defineCustomElement() {
|
|
|
90
90
|
defineCustomElement();
|
|
91
91
|
|
|
92
92
|
export { CardFieldsWrapper as C, defineCustomElement as d };
|
|
93
|
-
//# sourceMappingURL=p-
|
|
93
|
+
//# sourceMappingURL=p-CU82jZID.js.map
|
|
94
94
|
|
|
95
|
-
//# sourceMappingURL=p-
|
|
95
|
+
//# sourceMappingURL=p-CU82jZID.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-CU82jZID.js","mappings":";;;;;;;;;;;;MAUa,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;;;;;;;AACpB,IAAA,iBAAiB;AACjB,IAAA,iBAAiB;AACjB,IAAA,mBAAmB;AACnB,IAAA,YAAY;AACZ,IAAA,SAAS;IACjB,MAAM,GAAA;QACJ,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,EACnE,CAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAa,SAAS,EAAE,IAAI,CAAC,SAAS,EAAI,CAAA,EACzC,CAAC,YAAY,CAAC,aAAa;YAC1BC,KAAY,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,KAAK,sBAAsB,CAAC,IAAI;AACxE,YAAAA,KAAY,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,KACtE,CAAqB,CAAA,qBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAA,CAAI,CACvD,EACF,IAAI,CAAC,YAAY,KAChB,4EACE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,GAC7C,CACH,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/payment-method-selector/card-fields/card-fields-wrapper.tsx"],"sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\nimport { SESSION_ITEM_TYPE_ENUM } from '../../../../models';\nimport { renewalState } from '../../../../store/renewal.store';\nimport { sessionState } from '../../../../store/session.store';\n\n@Component({\n tag: 'card-fields-wrapper',\n shadow: false,\n})\nexport class CardFieldsWrapper {\n @Prop() installmentsError?: string;\n @Prop() documentTypeError?: string;\n @Prop() documentNumberError?: string;\n @Prop() showDocument?: boolean;\n @Prop() customCSS?: string;\n render() {\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>\n <card-iframe customCSS={this.customCSS} />\n {!renewalState.isInitialized &&\n sessionState.data?.itemInformation?.type !== SESSION_ITEM_TYPE_ENUM.PLAN &&\n sessionState.data.cardInformation?.installments?.installments.length > 0 && (\n <rebill-installments error={this.installmentsError} />\n )}\n {this.showDocument && (\n <card-identification\n documentTypeError={this.documentTypeError}\n documentNumberError={this.documentNumberError}\n />\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { proxyCustomElement, H, createEvent, h } from './p-8BpuJ_V5.js';
|
|
2
2
|
import { P as PAYMENT_METHOD_ENUM, s as state, I as I18nService, a as SessionStore, f as formatAmount, b as SESSION_ITEM_TYPE_ENUM } from './p-72CzTHAw.js';
|
|
3
|
-
import { e as getInstallmentLabelSummary, E as ENUM_INSTALLMENT_MODEL, c as getRecalculatedInstallmentAmount } from './p-
|
|
3
|
+
import { e as getInstallmentLabelSummary, E as ENUM_INSTALLMENT_MODEL, c as getRecalculatedInstallmentAmount } from './p-BQYAXUmg.js';
|
|
4
4
|
import { g as getAssetURL } from './p-B96SyP8A.js';
|
|
5
5
|
import { B as BREAKPOINT_ENUM, g as getBreakpoint, i as isBreakpointBelow } from './p-Do_vNuMa.js';
|
|
6
6
|
import { C as COLORS_ENUM } from './p-DA598vBj.js';
|
|
@@ -379,6 +379,6 @@ function defineCustomElement() {
|
|
|
379
379
|
defineCustomElement();
|
|
380
380
|
|
|
381
381
|
export { CardSuccessPage as C, defineCustomElement as d };
|
|
382
|
-
//# sourceMappingURL=p-
|
|
382
|
+
//# sourceMappingURL=p-D5G2GZlN.js.map
|
|
383
383
|
|
|
384
|
-
//# sourceMappingURL=p-
|
|
384
|
+
//# sourceMappingURL=p-D5G2GZlN.js.map
|