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.
Files changed (41) hide show
  1. package/dist/cjs/card-identification_5.cjs.entry.js +1 -1
  2. package/dist/cjs/{installment-utils-D4qKgjN9.js → installment-utils-CaZDiH-J.js} +10 -7
  3. package/dist/cjs/installment-utils-CaZDiH-J.js.map +1 -0
  4. package/dist/cjs/otp-component_7.cjs.entry.js +1 -1
  5. package/dist/collection/utils/installment-utils.js +8 -5
  6. package/dist/collection/utils/installment-utils.js.map +1 -1
  7. package/dist/components/card-fields-wrapper.js +1 -1
  8. package/dist/components/{p-Y1V1tI5U.js → p-BQYAXUmg.js} +11 -8
  9. package/dist/components/p-BQYAXUmg.js.map +1 -0
  10. package/dist/components/{p-DioD4ps1.js → p-BW4DxIWR.js} +4 -4
  11. package/dist/components/{p-DioD4ps1.js.map → p-BW4DxIWR.js.map} +1 -1
  12. package/dist/components/{p-Ds8iyCAd.js → p-CU82jZID.js} +3 -3
  13. package/dist/components/{p-Ds8iyCAd.js.map → p-CU82jZID.js.map} +1 -1
  14. package/dist/components/{p-BIat5a1z.js → p-D5G2GZlN.js} +3 -3
  15. package/dist/components/{p-BIat5a1z.js.map → p-D5G2GZlN.js.map} +1 -1
  16. package/dist/components/{p-CW7bdfSw.js → p-Sh874KyF.js} +3 -3
  17. package/dist/components/{p-CW7bdfSw.js.map → p-Sh874KyF.js.map} +1 -1
  18. package/dist/components/{p-DG3R157p.js → p-puDOAJZP.js} +3 -3
  19. package/dist/components/{p-DG3R157p.js.map → p-puDOAJZP.js.map} +1 -1
  20. package/dist/components/payment-method-selector.js +1 -1
  21. package/dist/components/rebill-checkout.js +5 -5
  22. package/dist/components/rebill-installments.js +1 -1
  23. package/dist/components/rebill-renewal.js +3 -3
  24. package/dist/components/rebill-summary.js +1 -1
  25. package/dist/components/success-page.js +1 -1
  26. package/dist/esm/card-identification_5.entry.js +1 -1
  27. package/dist/esm/{installment-utils-BCJJSszJ.js → installment-utils-CxQxVtur.js} +10 -7
  28. package/dist/esm/installment-utils-CxQxVtur.js.map +1 -0
  29. package/dist/esm/otp-component_7.entry.js +1 -1
  30. package/dist/rebill-web-components-sdk/{p-c41119c0.entry.js → p-91432c62.entry.js} +2 -2
  31. package/dist/rebill-web-components-sdk/{p-KStTLJ_c.js → p-DKzHMy1G.js} +2 -2
  32. package/dist/rebill-web-components-sdk/p-DKzHMy1G.js.map +1 -0
  33. package/dist/rebill-web-components-sdk/{p-7f487ad7.entry.js → p-ad9bd33b.entry.js} +2 -2
  34. package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
  35. package/package.json +1 -1
  36. package/dist/cjs/installment-utils-D4qKgjN9.js.map +0 -1
  37. package/dist/components/p-Y1V1tI5U.js.map +0 -1
  38. package/dist/esm/installment-utils-BCJJSszJ.js.map +0 -1
  39. package/dist/rebill-web-components-sdk/p-KStTLJ_c.js.map +0 -1
  40. /package/dist/rebill-web-components-sdk/{p-c41119c0.entry.js.map → p-91432c62.entry.js.map} +0 -0
  41. /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-D4qKgjN9.js');
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 cftText = cft > 0 &&
79
- model === exports.ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&
80
- i18n_service.state.data.pricing?.currency === i18n_service.CURRENCY_ENUM.ARS
81
- ? `- CFT ${cft}% *`
82
- : installment === 1
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-D4qKgjN9.js.map
129
+ //# sourceMappingURL=installment-utils-CaZDiH-J.js.map
127
130
 
128
- //# sourceMappingURL=installment-utils-D4qKgjN9.js.map
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-D4qKgjN9.js');
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 cftText = cft > 0 &&
73
- model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&
74
- sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS
75
- ? `- CFT ${cft}% *`
76
- : installment === 1
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":"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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 cftText =\n cft > 0 &&\n model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&\n sessionState.data.pricing?.currency === CURRENCY_ENUM.ARS\n ? `- CFT ${cft}% *`\n : installment === 1\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
+ {"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-Ds8iyCAd.js';
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, s as state, e as formatAmountToIntlFormat } from './p-72CzTHAw.js';
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 cftText = cft > 0 &&
77
- model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED &&
78
- state.data.pricing?.currency === CURRENCY_ENUM.ARS
79
- ? `- CFT ${cft}% *`
80
- : installment === 1
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-Y1V1tI5U.js.map
122
+ //# sourceMappingURL=p-BQYAXUmg.js.map
120
123
 
121
- //# sourceMappingURL=p-Y1V1tI5U.js.map
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-Ds8iyCAd.js';
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-CW7bdfSw.js';
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-DioD4ps1.js.map
245
+ //# sourceMappingURL=p-BW4DxIWR.js.map
246
246
 
247
- //# sourceMappingURL=p-DioD4ps1.js.map
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-CW7bdfSw.js';
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-Ds8iyCAd.js.map
93
+ //# sourceMappingURL=p-CU82jZID.js.map
94
94
 
95
- //# sourceMappingURL=p-Ds8iyCAd.js.map
95
+ //# sourceMappingURL=p-CU82jZID.js.map
@@ -1 +1 @@
1
- {"file":"p-Ds8iyCAd.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
+ {"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-Y1V1tI5U.js';
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-BIat5a1z.js.map
382
+ //# sourceMappingURL=p-D5G2GZlN.js.map
383
383
 
384
- //# sourceMappingURL=p-BIat5a1z.js.map
384
+ //# sourceMappingURL=p-D5G2GZlN.js.map