rebill-web-components-sdk 1.8.8-beta.1 → 1.8.8-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/cjs/apm-checkout_17.cjs.entry.js +1 -1
  2. package/dist/cjs/discount-coupon_3.cjs.entry.js +2 -2
  3. package/dist/collection/components/shared/singlePaymentMethod/singlePaymentMethod.js +2 -1
  4. package/dist/collection/components/shared/singlePaymentMethod/singlePaymentMethod.js.map +1 -1
  5. package/dist/collection/components/shared/timeline/timeline-debit-day.js +1 -1
  6. package/dist/collection/components/shared/timeline/timeline-free-trial.js +1 -1
  7. package/dist/components/{p-DXKLGhDh.js → p-8QydEdM3.js} +3 -3
  8. package/dist/components/{p-DXKLGhDh.js.map → p-8QydEdM3.js.map} +1 -1
  9. package/dist/components/{p-LqNiPJXJ.js → p-BFrSAJDJ.js} +4 -4
  10. package/dist/components/{p-LqNiPJXJ.js.map → p-BFrSAJDJ.js.map} +1 -1
  11. package/dist/components/{p-5ojxJDke.js → p-BIlS1HQZ.js} +3 -3
  12. package/dist/components/{p-5ojxJDke.js.map → p-BIlS1HQZ.js.map} +1 -1
  13. package/dist/components/{p-CQg6lI7s.js → p-CBI0uoLx.js} +3 -3
  14. package/dist/components/{p-CQg6lI7s.js.map → p-CBI0uoLx.js.map} +1 -1
  15. package/dist/components/{p-DI_-013M.js → p-Cj2aAJh-.js} +4 -4
  16. package/dist/components/p-Cj2aAJh-.js.map +1 -0
  17. package/dist/components/payment-method-selector.js +1 -1
  18. package/dist/components/rebill-checkout.js +5 -5
  19. package/dist/components/rebill-renewal.js +2 -2
  20. package/dist/components/rebill-summary.js +1 -1
  21. package/dist/components/rebill-timeline-debit-day.js +1 -1
  22. package/dist/components/rebill-timeline-free-trial.js +1 -1
  23. package/dist/components/single-payment-method.js +1 -1
  24. package/dist/esm/apm-checkout_17.entry.js +1 -1
  25. package/dist/esm/discount-coupon_3.entry.js +2 -2
  26. package/dist/rebill-web-components-sdk/{p-78a41ca6.entry.js → p-4af8501b.entry.js} +2 -2
  27. package/dist/rebill-web-components-sdk/{p-fabb90fa.entry.js → p-73e884ce.entry.js} +2 -2
  28. package/dist/rebill-web-components-sdk/{p-fabb90fa.entry.js.map → p-73e884ce.entry.js.map} +1 -1
  29. package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
  30. package/package.json +1 -1
  31. package/dist/components/p-DI_-013M.js.map +0 -1
  32. /package/dist/rebill-web-components-sdk/{p-78a41ca6.entry.js.map → p-4af8501b.entry.js.map} +0 -0
@@ -4636,7 +4636,7 @@ const SinglePaymentMethod = class {
4636
4636
  paymentMethodDetails;
4637
4637
  icons = [];
4638
4638
  render() {
4639
- return (index$1.h("div", { key: '912251af4177b26d44d1395bfe775b75f327958b', class: "single-payment-method" }, index$1.h("div", { key: 'a0b5ef36fe047eeef69e20576343b7ceac3deda2', class: "payment-method" }, index$1.h("rebill-icon", { key: '9c123bd8eceb91b69ba934ec0213b8a63832f478', name: "card" }), index$1.h("rebill-typography", { key: '6656d4d90e04ca826131e62b03a4f74a4af6b92a', variant: "body2-small", color: colorClassMapper.COLORS_ENUM.NEUTRALS_700 }, i18n_service.I18nService.translate(`paymentMethods.${this.paymentMethod}`))), index$1.h("div", { key: '83058ea6c070e58e634af2cb201b425abf4dd6f3', class: "icon-container" }, this.icons.length > 0 ? (this.icons.map(iconName => index$1.h("rebill-icon", { name: iconName, key: iconName }))) : (index$1.h("rebill-icon", { name: "card" })))));
4639
+ return (index$1.h("div", { key: '912251af4177b26d44d1395bfe775b75f327958b', class: "single-payment-method" }, index$1.h("div", { key: 'a0b5ef36fe047eeef69e20576343b7ceac3deda2', class: "payment-method" }, this.paymentMethod === i18n_service.PAYMENT_METHOD_ENUM.CARD && index$1.h("rebill-icon", { key: '2b09cdf13b03dff1bfb195f8845d057c44d63c16', name: "card" }), this.paymentMethod === i18n_service.PAYMENT_METHOD_ENUM.BANK_TRANSFER && index$1.h("rebill-icon", { key: '5d022e76ea9d284ef024a63dc4452181ec20f34f', name: "bank" }), index$1.h("rebill-typography", { key: '2c9f59deccb7731477f6b063f92a4925f0ee41be', variant: "body2-small", color: colorClassMapper.COLORS_ENUM.NEUTRALS_700 }, i18n_service.I18nService.translate(`paymentMethods.${this.paymentMethod}`))), this.paymentMethod === i18n_service.PAYMENT_METHOD_ENUM.BANK_TRANSFER && (index$1.h("div", { key: '790ffaa2b0998dd98853c1bf159b60a0fa5e15fd', class: "icon-container" }, this.icons.length > 0 ? (this.icons.map(iconName => index$1.h("rebill-icon", { name: iconName, key: iconName }))) : (index$1.h("rebill-icon", { name: "card" }))))));
4640
4640
  }
4641
4641
  };
4642
4642
  SinglePaymentMethod.style = singlePaymentMethodCss;
@@ -366,7 +366,7 @@ const TimelineDebitDay = class {
366
366
  }
367
367
  render() {
368
368
  const events = this.buildEvents();
369
- return (index.h("div", { key: 'fad875b4d2a557fd21a3daa14e3dfa9ab2f77db5', class: "timeline-container" }, index.h("div", { key: '07b5c932379fb498b623d64044b6739371634f8b', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0)))));
369
+ return (index.h("div", { key: 'f8f359f16049d37a4a45254f65964059f8d678ca', class: "timeline-container" }, index.h("div", { key: '9ba1af80fb3239bb763b09bb6796abd39387d8a4', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0)))));
370
370
  }
371
371
  };
372
372
  TimelineDebitDay.style = timelineDebitDayCss;
@@ -534,7 +534,7 @@ const Timeline = class {
534
534
  }
535
535
  render() {
536
536
  const events = this.buildEvents();
537
- return (index.h("div", { key: 'c9e7d50a46d5753802ac9bc0f6235cdd49b36b7a', class: "timeline-container" }, index.h("div", { key: 'a53ce13b2f7488a623c084696d878a55ca6993b7', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0, events.length)))));
537
+ return (index.h("div", { key: '86e41b40c8d44c943c7a5d28a663a91fd654bb44', class: "timeline-container" }, index.h("div", { key: 'a99e90355fc9d0e86900ab0d6642729aff363840', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0, events.length)))));
538
538
  }
539
539
  };
540
540
  Timeline.style = timelineFreeTrialCss;
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { I18nService } from "../../../i18n/i18n.service";
3
+ import { PAYMENT_METHOD_ENUM } from "../../../models/enums/payment-methods.enum";
3
4
  import { COLORS_ENUM } from "../../../utils/color-class-mapper";
4
5
  export class SinglePaymentMethod {
5
6
  paymentMethod;
@@ -7,7 +8,7 @@ export class SinglePaymentMethod {
7
8
  paymentMethodDetails;
8
9
  icons = [];
9
10
  render() {
10
- return (h("div", { key: '912251af4177b26d44d1395bfe775b75f327958b', class: "single-payment-method" }, h("div", { key: 'a0b5ef36fe047eeef69e20576343b7ceac3deda2', class: "payment-method" }, h("rebill-icon", { key: '9c123bd8eceb91b69ba934ec0213b8a63832f478', name: "card" }), h("rebill-typography", { key: '6656d4d90e04ca826131e62b03a4f74a4af6b92a', variant: "body2-small", color: COLORS_ENUM.NEUTRALS_700 }, I18nService.translate(`paymentMethods.${this.paymentMethod}`))), h("div", { key: '83058ea6c070e58e634af2cb201b425abf4dd6f3', class: "icon-container" }, this.icons.length > 0 ? (this.icons.map(iconName => h("rebill-icon", { name: iconName, key: iconName }))) : (h("rebill-icon", { name: "card" })))));
11
+ return (h("div", { key: '912251af4177b26d44d1395bfe775b75f327958b', class: "single-payment-method" }, h("div", { key: 'a0b5ef36fe047eeef69e20576343b7ceac3deda2', class: "payment-method" }, this.paymentMethod === PAYMENT_METHOD_ENUM.CARD && h("rebill-icon", { key: '2b09cdf13b03dff1bfb195f8845d057c44d63c16', name: "card" }), this.paymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER && h("rebill-icon", { key: '5d022e76ea9d284ef024a63dc4452181ec20f34f', name: "bank" }), h("rebill-typography", { key: '2c9f59deccb7731477f6b063f92a4925f0ee41be', variant: "body2-small", color: COLORS_ENUM.NEUTRALS_700 }, I18nService.translate(`paymentMethods.${this.paymentMethod}`))), this.paymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER && (h("div", { key: '790ffaa2b0998dd98853c1bf159b60a0fa5e15fd', class: "icon-container" }, this.icons.length > 0 ? (this.icons.map(iconName => h("rebill-icon", { name: iconName, key: iconName }))) : (h("rebill-icon", { name: "card" }))))));
11
12
  }
12
13
  static get is() { return "single-payment-method"; }
13
14
  static get originalStyleUrls() {
@@ -1 +1 @@
1
- {"version":3,"file":"singlePaymentMethod.js","sourceRoot":"","sources":["../../../../src/components/shared/singlePaymentMethod/singlePaymentMethod.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAOhE,MAAM,OAAO,mBAAmB;IACtB,aAAa,CAAsB;IACnC,eAAe,CAAS;IACxB,oBAAoB,CAAyB;IAC7C,KAAK,GAAa,EAAE,CAAC;IAC7B,MAAM;QACJ,OAAO,CACL,4DAAK,KAAK,EAAC,uBAAuB;YAChC,4DAAK,KAAK,EAAC,gBAAgB;gBACzB,oEAAa,IAAI,EAAC,MAAM,GAAG;gBAC3B,0EAAmB,OAAO,EAAC,aAAa,EAAC,KAAK,EAAE,WAAW,CAAC,YAAY,IACrE,WAAW,CAAC,SAAS,CAAC,kBAAkB,IAAI,CAAC,aAAa,EAAE,CAAC,CAC5C,CAChB;YAEN,4DAAK,KAAK,EAAC,gBAAgB,IACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAa,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAI,CAAC,CAC3E,CAAC,CAAC,CAAC,CACF,mBAAa,IAAI,EAAC,MAAM,GAAG,CAC5B,CACG,CACF,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { PaymentMethodDetails } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\n\n@Component({\n tag: 'single-payment-method',\n styleUrl: 'single-payment-method.css',\n shadow: false,\n})\nexport class SinglePaymentMethod {\n @Prop() paymentMethod: PAYMENT_METHOD_ENUM;\n @Prop() currencyCountry: string;\n @Prop() paymentMethodDetails: PaymentMethodDetails[];\n @Prop() icons: string[] = [];\n render() {\n return (\n <div class=\"single-payment-method\">\n <div class=\"payment-method\">\n <rebill-icon name=\"card\" />\n <rebill-typography variant=\"body2-small\" color={COLORS_ENUM.NEUTRALS_700}>\n {I18nService.translate(`paymentMethods.${this.paymentMethod}`)}\n </rebill-typography>\n </div>\n\n <div class=\"icon-container\">\n {this.icons.length > 0 ? (\n this.icons.map(iconName => <rebill-icon name={iconName} key={iconName} />)\n ) : (\n <rebill-icon name=\"card\" />\n )}\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"singlePaymentMethod.js","sourceRoot":"","sources":["../../../../src/components/shared/singlePaymentMethod/singlePaymentMethod.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAOhE,MAAM,OAAO,mBAAmB;IACtB,aAAa,CAAsB;IACnC,eAAe,CAAS;IACxB,oBAAoB,CAAyB;IAC7C,KAAK,GAAa,EAAE,CAAC;IAC7B,MAAM;QACJ,OAAO,CACL,4DAAK,KAAK,EAAC,uBAAuB;YAChC,4DAAK,KAAK,EAAC,gBAAgB;gBACxB,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC,IAAI,IAAI,oEAAa,IAAI,EAAC,MAAM,GAAG;gBAC9E,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC,aAAa,IAAI,oEAAa,IAAI,EAAC,MAAM,GAAG;gBACxF,0EAAmB,OAAO,EAAC,aAAa,EAAC,KAAK,EAAE,WAAW,CAAC,YAAY,IACrE,WAAW,CAAC,SAAS,CAAC,kBAAkB,IAAI,CAAC,aAAa,EAAE,CAAC,CAC5C,CAChB;YAEL,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC,aAAa,IAAI,CAC3D,4DAAK,KAAK,EAAC,gBAAgB,IACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAa,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAI,CAAC,CAC3E,CAAC,CAAC,CAAC,CACF,mBAAa,IAAI,EAAC,MAAM,GAAG,CAC5B,CACG,CACP,CACG,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { PaymentMethodDetails } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\n\n@Component({\n tag: 'single-payment-method',\n styleUrl: 'single-payment-method.css',\n shadow: false,\n})\nexport class SinglePaymentMethod {\n @Prop() paymentMethod: PAYMENT_METHOD_ENUM;\n @Prop() currencyCountry: string;\n @Prop() paymentMethodDetails: PaymentMethodDetails[];\n @Prop() icons: string[] = [];\n render() {\n return (\n <div class=\"single-payment-method\">\n <div class=\"payment-method\">\n {this.paymentMethod === PAYMENT_METHOD_ENUM.CARD && <rebill-icon name=\"card\" />}\n {this.paymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER && <rebill-icon name=\"bank\" />}\n <rebill-typography variant=\"body2-small\" color={COLORS_ENUM.NEUTRALS_700}>\n {I18nService.translate(`paymentMethods.${this.paymentMethod}`)}\n </rebill-typography>\n </div>\n\n {this.paymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER && (\n <div class=\"icon-container\">\n {this.icons.length > 0 ? (\n this.icons.map(iconName => <rebill-icon name={iconName} key={iconName} />)\n ) : (\n <rebill-icon name=\"card\" />\n )}\n </div>\n )}\n </div>\n );\n }\n}\n"]}
@@ -242,7 +242,7 @@ export class TimelineDebitDay {
242
242
  }
243
243
  render() {
244
244
  const events = this.buildEvents();
245
- return (h("div", { key: 'fad875b4d2a557fd21a3daa14e3dfa9ab2f77db5', class: "timeline-container" }, h("div", { key: '07b5c932379fb498b623d64044b6739371634f8b', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0)))));
245
+ return (h("div", { key: 'f8f359f16049d37a4a45254f65964059f8d678ca', class: "timeline-container" }, h("div", { key: '9ba1af80fb3239bb763b09bb6796abd39387d8a4', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0)))));
246
246
  }
247
247
  static get is() { return "rebill-timeline-debit-day"; }
248
248
  static get originalStyleUrls() {
@@ -163,7 +163,7 @@ export class Timeline {
163
163
  }
164
164
  render() {
165
165
  const events = this.buildEvents();
166
- return (h("div", { key: 'c9e7d50a46d5753802ac9bc0f6235cdd49b36b7a', class: "timeline-container" }, h("div", { key: 'a53ce13b2f7488a623c084696d878a55ca6993b7', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0, events.length)))));
166
+ return (h("div", { key: '86e41b40c8d44c943c7a5d28a663a91fd654bb44', class: "timeline-container" }, h("div", { key: 'a99e90355fc9d0e86900ab0d6642729aff363840', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0, events.length)))));
167
167
  }
168
168
  static get is() { return "rebill-timeline-free-trial"; }
169
169
  static get originalStyleUrls() {
@@ -172,7 +172,7 @@ const Timeline = /*@__PURE__*/ proxyCustomElement(class Timeline extends H {
172
172
  }
173
173
  render() {
174
174
  const events = this.buildEvents();
175
- return (h("div", { key: 'c9e7d50a46d5753802ac9bc0f6235cdd49b36b7a', class: "timeline-container" }, h("div", { key: 'a53ce13b2f7488a623c084696d878a55ca6993b7', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0, events.length)))));
175
+ return (h("div", { key: '86e41b40c8d44c943c7a5d28a663a91fd654bb44', class: "timeline-container" }, h("div", { key: 'a99e90355fc9d0e86900ab0d6642729aff363840', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0, events.length)))));
176
176
  }
177
177
  static get style() { return timelineFreeTrialCss; }
178
178
  }, [256, "rebill-timeline-free-trial", {
@@ -225,6 +225,6 @@ function defineCustomElement() {
225
225
  defineCustomElement();
226
226
 
227
227
  export { Timeline as T, defineCustomElement as d };
228
- //# sourceMappingURL=p-DXKLGhDh.js.map
228
+ //# sourceMappingURL=p-8QydEdM3.js.map
229
229
 
230
- //# sourceMappingURL=p-DXKLGhDh.js.map
230
+ //# sourceMappingURL=p-8QydEdM3.js.map
@@ -1 +1 @@
1
- {"file":"p-DXKLGhDh.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18n","sessionState"],"sources":["src/components/shared/timeline/timeline-free-trial.css?tag=rebill-timeline-free-trial","src/components/shared/timeline/timeline-free-trial.tsx"],"sourcesContent":[".timeline-container {\n width: 100%;\n margin: 0 auto;\n}\n\n.timeline {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 16px;\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n border-radius: 8px;\n justify-content: space-evenly;\n}\n\n.timeline-event {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n position: relative;\n}\n\n.timeline-icon-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n position: relative;\n gap: 4px;\n}\n.timeline-connector-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n position: relative;\n min-height: 40px;\n}\n.timeline-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n flex-shrink: 0;\n z-index: 2;\n gap: 4px;\n}\n\n.timeline-connector-divider {\n display: block;\n flex-shrink: 0;\n z-index: 1;\n}\n\n.event-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.discount-info {\n margin-top: 8px;\n}\n\n@media (max-width: 1024px) {\n .timeline {\n border: none;\n padding: 0;\n }\n\n .timeline-event {\n gap: 12px;\n align-items: flex-start;\n }\n\n .timeline-icon {\n width: 28px;\n height: 28px;\n }\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport i18n from '../../../i18n/i18n.config';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SESSION_DISCOUNT_TYPE_ENUM } from '../../../models/enums/session.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport { formatAmount } from '../../../utils/currency-formatter';\n\ninterface TimelineEvent {\n day: number;\n type: 'start' | 'reminder' | 'last' | 'renewal';\n date: string;\n title: string;\n description: string;\n icon: string;\n discountInfo?: string;\n amount?: string;\n}\n\n@Component({\n tag: 'rebill-timeline-free-trial',\n styleUrl: 'timeline-free-trial.css',\n shadow: false,\n})\nexport class Timeline {\n @State() currentLanguage: string;\n\n @Prop() trialPeriodEndsAt: string;\n @Prop() trialPeriodEndsReminderAt?: string;\n @Prop() trialPeriodDays: number;\n @Prop() subtotal: number;\n @Prop() currency: string;\n @Prop() language?: string;\n @Prop() discountApplied: boolean = false;\n @Prop() discountType: SESSION_DISCOUNT_TYPE_ENUM;\n @Prop() discountedPercentage: number = 0;\n @Prop() discountDuration: number = 0;\n @Prop() discountAmount: number = 0;\n\n private get amount() {\n return formatAmount(this.subtotal, this.currency, false);\n }\n\n private getDurationTranslation(duration: number): string {\n return duration === 1\n ? i18n.t('summary.month_one')\n : i18n.t('summary.month_other', { count: duration });\n }\n\n private get hasDiscountApplied(): boolean {\n const hasDiscountInStore = Boolean(\n sessionState.data.discount?.couponCode ||\n sessionState.data.pricing?.discountCouponCode ||\n sessionState.data.discount?.discountType ||\n (this.discountType && (this.discountedPercentage > 0 || this.discountAmount > 0)),\n );\n\n return hasDiscountInStore;\n }\n\n private getDiscountDescription(): string {\n if (!this.hasDiscountApplied) return '';\n\n const couponCode =\n sessionState.data.discount.couponCode || sessionState.data.pricing.discountCouponCode;\n const discount =\n this.discountType === SESSION_DISCOUNT_TYPE_ENUM.PERCENTAGE\n ? `${this.discountedPercentage}%`\n : formatAmount(this.discountAmount, this.currency);\n\n if (this.discountDuration) {\n return i18n.t(`summary.planDiscountDescriptionWithDuration`, {\n discount: couponCode ? `${couponCode} – ${discount}` : discount,\n duration: this.getDurationTranslation(this.discountDuration),\n });\n } else {\n return i18n.t(`summary.planDiscountDescriptionWithoutDuration`, {\n discount: couponCode ? `${couponCode} – ${discount}` : discount,\n });\n }\n }\n\n private calculateRenewalDate(): string {\n if (!this.discountDuration || !this.trialPeriodEndsAt) {\n return this.trialPeriodEndsAt;\n }\n const trialEndDate = new Date(this.trialPeriodEndsAt);\n const renewalDate = new Date(trialEndDate);\n renewalDate.setMonth(renewalDate.getMonth() + this.discountDuration);\n\n return renewalDate.toISOString();\n }\n\n componentWillLoad() {\n this.currentLanguage = this.language || I18nService.getCurrentLanguage();\n i18n.on('languageChanged', this.handleLanguageChange);\n }\n\n disconnectedCallback() {\n i18n.off('languageChanged', this.handleLanguageChange);\n }\n\n private handleLanguageChange = () => {\n this.currentLanguage = this.language || I18nService.getCurrentLanguage();\n };\n\n private getDateForDay(dayNumber: string | number | null): string {\n if (typeof dayNumber === 'string') {\n const date = new Date(dayNumber);\n return (\n date.getDate().toString() +\n ' de ' +\n date.toLocaleDateString(this.currentLanguage, {\n month: 'long',\n timeZone: 'UTC',\n })\n );\n } else {\n const today = new Date();\n const targetDate = new Date(today);\n const day = dayNumber || 1;\n targetDate.setDate(today.getDate() + (day - 1));\n return targetDate.toLocaleDateString(this.currentLanguage, {\n day: 'numeric',\n month: 'long',\n timeZone: 'UTC',\n });\n }\n }\n\n private buildEvents(): TimelineEvent[] {\n const events: TimelineEvent[] = [];\n\n events.push({\n day: 1,\n type: 'start',\n date: this.getDateForDay(null),\n title: i18n.t('timeline.dayOne'),\n description: i18n.t('timeline.startTrial', {\n count: this.trialPeriodDays,\n trialDays: this.trialPeriodDays,\n }),\n icon: 'circle-calendar',\n });\n\n const lastDayNumber = this.trialPeriodDays === 1 ? 2 : this.trialPeriodDays;\n\n const subscriptionAmount =\n this.hasDiscountApplied && this.subtotal === 0 ? '$0' : `$${this.amount}`;\n\n const lastDay: TimelineEvent = {\n day: lastDayNumber,\n type: 'last',\n date: this.getDateForDay(this.trialPeriodEndsAt),\n title: i18n.t('timeline.lastDay', { day: lastDayNumber }),\n description: i18n.t('timeline.subscriptionStart', { amount: subscriptionAmount }),\n icon: 'circle-receipt',\n discountInfo: this.hasDiscountApplied ? this.getDiscountDescription() : undefined,\n };\n\n if (this.trialPeriodEndsReminderAt) {\n if (this.trialPeriodDays === 3) {\n events.push({\n day: 2,\n type: 'reminder',\n date: this.getDateForDay(this.trialPeriodEndsReminderAt),\n title: i18n.t('timeline.reminder', { day: 2 }),\n description: i18n.t('timeline.lastDaysReminder', { days: 2 }),\n icon: 'bell',\n });\n } else if (this.trialPeriodDays > 3) {\n events.push({\n day: this.trialPeriodDays,\n type: 'reminder',\n date: this.getDateForDay(this.trialPeriodEndsReminderAt),\n title: i18n.t('timeline.reminder', { day: this.trialPeriodDays - 2 }),\n description: i18n.t('timeline.lastDaysReminder', { days: 2 }),\n icon: 'bell',\n });\n }\n }\n\n events.push(lastDay);\n\n if (this.hasDiscountApplied && this.discountDuration !== null) {\n const renewalAmount = sessionState.data.pricing.planAmount;\n const renewalDate = this.calculateRenewalDate();\n\n events.push({\n day: lastDayNumber + 1,\n type: 'renewal',\n date: this.getDateForDay(renewalDate),\n title: i18n.t('timeline.subscriptionRenewal'),\n description: i18n.t('timeline.renewalAmount', {\n amount: `$${formatAmount(renewalAmount, this.currency, false)}`,\n }),\n icon: 'renewal',\n amount: `$${formatAmount(renewalAmount, this.currency, false)}`,\n });\n }\n\n return events;\n }\n\n private renderEvent(\n event: TimelineEvent,\n isLast: boolean,\n isFirst: boolean,\n totalEvents: number,\n ) {\n return (\n <div key={event.day} class=\"timeline-event\">\n <div class=\"timeline-icon-container\">\n <rebill-icon name={event.icon} style={{ marginTop: '3px' }} />\n <div class=\"timeline-connector-container\">\n {!isLast &&\n (isFirst ? (\n totalEvents === 2 ? (\n <rebill-vertical-divider\n connectorActive\n color={COLORS_ENUM.INFO_BORDER}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n />\n ) : (\n <rebill-vertical-divider\n connectorActive\n color={COLORS_ENUM.INFO_BORDER}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n withDot\n />\n )\n ) : (\n <rebill-vertical-divider\n color={COLORS_ENUM.TIMELINE_CONNECTOR}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n />\n ))}\n </div>\n </div>\n <div class=\"event-content\">\n <rebill-typography variant=\"subtitle-bold\">{event.title}</rebill-typography>\n <div class=\"event-date\">\n <rebill-typography variant=\"body2\">\n {`${event.date} - ${event.description}`}\n </rebill-typography>\n </div>\n {event.discountInfo && (\n <div class=\"discount-info\">\n <rebill-alert\n variant=\"filled\"\n type=\"coupon\"\n icon=\"tag-green\"\n size=\"small\"\n colorIcon={COLORS_ENUM.GREEN}\n alertTitle={event.discountInfo}\n />\n </div>\n )}\n </div>\n </div>\n );\n }\n\n render() {\n const events = this.buildEvents();\n\n return (\n <div class=\"timeline-container\">\n <div class=\"timeline\">\n {events.map((event, index) =>\n this.renderEvent(event, index === events.length - 1, index === 0, events.length),\n )}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-8QydEdM3.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18n","sessionState"],"sources":["src/components/shared/timeline/timeline-free-trial.css?tag=rebill-timeline-free-trial","src/components/shared/timeline/timeline-free-trial.tsx"],"sourcesContent":[".timeline-container {\n width: 100%;\n margin: 0 auto;\n}\n\n.timeline {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 16px;\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n border-radius: 8px;\n justify-content: space-evenly;\n}\n\n.timeline-event {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n position: relative;\n}\n\n.timeline-icon-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n position: relative;\n gap: 4px;\n}\n.timeline-connector-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n position: relative;\n min-height: 40px;\n}\n.timeline-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n flex-shrink: 0;\n z-index: 2;\n gap: 4px;\n}\n\n.timeline-connector-divider {\n display: block;\n flex-shrink: 0;\n z-index: 1;\n}\n\n.event-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.discount-info {\n margin-top: 8px;\n}\n\n@media (max-width: 1024px) {\n .timeline {\n border: none;\n padding: 0;\n }\n\n .timeline-event {\n gap: 12px;\n align-items: flex-start;\n }\n\n .timeline-icon {\n width: 28px;\n height: 28px;\n }\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport i18n from '../../../i18n/i18n.config';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SESSION_DISCOUNT_TYPE_ENUM } from '../../../models/enums/session.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport { formatAmount } from '../../../utils/currency-formatter';\n\ninterface TimelineEvent {\n day: number;\n type: 'start' | 'reminder' | 'last' | 'renewal';\n date: string;\n title: string;\n description: string;\n icon: string;\n discountInfo?: string;\n amount?: string;\n}\n\n@Component({\n tag: 'rebill-timeline-free-trial',\n styleUrl: 'timeline-free-trial.css',\n shadow: false,\n})\nexport class Timeline {\n @State() currentLanguage: string;\n\n @Prop() trialPeriodEndsAt: string;\n @Prop() trialPeriodEndsReminderAt?: string;\n @Prop() trialPeriodDays: number;\n @Prop() subtotal: number;\n @Prop() currency: string;\n @Prop() language?: string;\n @Prop() discountApplied: boolean = false;\n @Prop() discountType: SESSION_DISCOUNT_TYPE_ENUM;\n @Prop() discountedPercentage: number = 0;\n @Prop() discountDuration: number = 0;\n @Prop() discountAmount: number = 0;\n\n private get amount() {\n return formatAmount(this.subtotal, this.currency, false);\n }\n\n private getDurationTranslation(duration: number): string {\n return duration === 1\n ? i18n.t('summary.month_one')\n : i18n.t('summary.month_other', { count: duration });\n }\n\n private get hasDiscountApplied(): boolean {\n const hasDiscountInStore = Boolean(\n sessionState.data.discount?.couponCode ||\n sessionState.data.pricing?.discountCouponCode ||\n sessionState.data.discount?.discountType ||\n (this.discountType && (this.discountedPercentage > 0 || this.discountAmount > 0)),\n );\n\n return hasDiscountInStore;\n }\n\n private getDiscountDescription(): string {\n if (!this.hasDiscountApplied) return '';\n\n const couponCode =\n sessionState.data.discount.couponCode || sessionState.data.pricing.discountCouponCode;\n const discount =\n this.discountType === SESSION_DISCOUNT_TYPE_ENUM.PERCENTAGE\n ? `${this.discountedPercentage}%`\n : formatAmount(this.discountAmount, this.currency);\n\n if (this.discountDuration) {\n return i18n.t(`summary.planDiscountDescriptionWithDuration`, {\n discount: couponCode ? `${couponCode} – ${discount}` : discount,\n duration: this.getDurationTranslation(this.discountDuration),\n });\n } else {\n return i18n.t(`summary.planDiscountDescriptionWithoutDuration`, {\n discount: couponCode ? `${couponCode} – ${discount}` : discount,\n });\n }\n }\n\n private calculateRenewalDate(): string {\n if (!this.discountDuration || !this.trialPeriodEndsAt) {\n return this.trialPeriodEndsAt;\n }\n const trialEndDate = new Date(this.trialPeriodEndsAt);\n const renewalDate = new Date(trialEndDate);\n renewalDate.setMonth(renewalDate.getMonth() + this.discountDuration);\n\n return renewalDate.toISOString();\n }\n\n componentWillLoad() {\n this.currentLanguage = this.language || I18nService.getCurrentLanguage();\n i18n.on('languageChanged', this.handleLanguageChange);\n }\n\n disconnectedCallback() {\n i18n.off('languageChanged', this.handleLanguageChange);\n }\n\n private handleLanguageChange = () => {\n this.currentLanguage = this.language || I18nService.getCurrentLanguage();\n };\n\n private getDateForDay(dayNumber: string | number | null): string {\n if (typeof dayNumber === 'string') {\n const date = new Date(dayNumber);\n return (\n date.getDate().toString() +\n ' de ' +\n date.toLocaleDateString(this.currentLanguage, {\n month: 'long',\n timeZone: 'UTC',\n })\n );\n } else {\n const today = new Date();\n const targetDate = new Date(today);\n const day = dayNumber || 1;\n targetDate.setDate(today.getDate() + (day - 1));\n return targetDate.toLocaleDateString(this.currentLanguage, {\n day: 'numeric',\n month: 'long',\n timeZone: 'UTC',\n });\n }\n }\n\n private buildEvents(): TimelineEvent[] {\n const events: TimelineEvent[] = [];\n\n events.push({\n day: 1,\n type: 'start',\n date: this.getDateForDay(null),\n title: i18n.t('timeline.dayOne'),\n description: i18n.t('timeline.startTrial', {\n count: this.trialPeriodDays,\n trialDays: this.trialPeriodDays,\n }),\n icon: 'circle-calendar',\n });\n\n const lastDayNumber = this.trialPeriodDays === 1 ? 2 : this.trialPeriodDays;\n\n const subscriptionAmount =\n this.hasDiscountApplied && this.subtotal === 0 ? '$0' : `$${this.amount}`;\n\n const lastDay: TimelineEvent = {\n day: lastDayNumber,\n type: 'last',\n date: this.getDateForDay(this.trialPeriodEndsAt),\n title: i18n.t('timeline.lastDay', { day: lastDayNumber }),\n description: i18n.t('timeline.subscriptionStart', { amount: subscriptionAmount }),\n icon: 'circle-receipt',\n discountInfo: this.hasDiscountApplied ? this.getDiscountDescription() : undefined,\n };\n\n if (this.trialPeriodEndsReminderAt) {\n if (this.trialPeriodDays === 3) {\n events.push({\n day: 2,\n type: 'reminder',\n date: this.getDateForDay(this.trialPeriodEndsReminderAt),\n title: i18n.t('timeline.reminder', { day: 2 }),\n description: i18n.t('timeline.lastDaysReminder', { days: 2 }),\n icon: 'bell',\n });\n } else if (this.trialPeriodDays > 3) {\n events.push({\n day: this.trialPeriodDays,\n type: 'reminder',\n date: this.getDateForDay(this.trialPeriodEndsReminderAt),\n title: i18n.t('timeline.reminder', { day: this.trialPeriodDays - 2 }),\n description: i18n.t('timeline.lastDaysReminder', { days: 2 }),\n icon: 'bell',\n });\n }\n }\n\n events.push(lastDay);\n\n if (this.hasDiscountApplied && this.discountDuration !== null) {\n const renewalAmount = sessionState.data.pricing.planAmount;\n const renewalDate = this.calculateRenewalDate();\n\n events.push({\n day: lastDayNumber + 1,\n type: 'renewal',\n date: this.getDateForDay(renewalDate),\n title: i18n.t('timeline.subscriptionRenewal'),\n description: i18n.t('timeline.renewalAmount', {\n amount: `$${formatAmount(renewalAmount, this.currency, false)}`,\n }),\n icon: 'renewal',\n amount: `$${formatAmount(renewalAmount, this.currency, false)}`,\n });\n }\n\n return events;\n }\n\n private renderEvent(\n event: TimelineEvent,\n isLast: boolean,\n isFirst: boolean,\n totalEvents: number,\n ) {\n return (\n <div key={event.day} class=\"timeline-event\">\n <div class=\"timeline-icon-container\">\n <rebill-icon name={event.icon} style={{ marginTop: '3px' }} />\n <div class=\"timeline-connector-container\">\n {!isLast &&\n (isFirst ? (\n totalEvents === 2 ? (\n <rebill-vertical-divider\n connectorActive\n color={COLORS_ENUM.INFO_BORDER}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n />\n ) : (\n <rebill-vertical-divider\n connectorActive\n color={COLORS_ENUM.INFO_BORDER}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n withDot\n />\n )\n ) : (\n <rebill-vertical-divider\n color={COLORS_ENUM.TIMELINE_CONNECTOR}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n />\n ))}\n </div>\n </div>\n <div class=\"event-content\">\n <rebill-typography variant=\"subtitle-bold\">{event.title}</rebill-typography>\n <div class=\"event-date\">\n <rebill-typography variant=\"body2\">\n {`${event.date} - ${event.description}`}\n </rebill-typography>\n </div>\n {event.discountInfo && (\n <div class=\"discount-info\">\n <rebill-alert\n variant=\"filled\"\n type=\"coupon\"\n icon=\"tag-green\"\n size=\"small\"\n colorIcon={COLORS_ENUM.GREEN}\n alertTitle={event.discountInfo}\n />\n </div>\n )}\n </div>\n </div>\n );\n }\n\n render() {\n const events = this.buildEvents();\n\n return (\n <div class=\"timeline-container\">\n <div class=\"timeline\">\n {events.map((event, index) =>\n this.renderEvent(event, index === events.length - 1, index === 0, events.length),\n )}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -10,8 +10,8 @@ import { d as defineCustomElement$8 } from './p-DgIOuUN1.js';
10
10
  import { d as defineCustomElement$7 } from './p-Bo2OAFkr.js';
11
11
  import { d as defineCustomElement$6 } from './p-CTgkZUJ9.js';
12
12
  import { d as defineCustomElement$5 } from './p-CCuYHwTH.js';
13
- import { d as defineCustomElement$4 } from './p-CQg6lI7s.js';
14
- import { d as defineCustomElement$3 } from './p-DXKLGhDh.js';
13
+ import { d as defineCustomElement$4 } from './p-CBI0uoLx.js';
14
+ import { d as defineCustomElement$3 } from './p-8QydEdM3.js';
15
15
  import { d as defineCustomElement$2 } from './p-C_txMekS.js';
16
16
  import { d as defineCustomElement$1 } from './p-FQYyAgg1.js';
17
17
 
@@ -781,6 +781,6 @@ function defineCustomElement() {
781
781
  defineCustomElement();
782
782
 
783
783
  export { Summary as S, defineCustomElement as d };
784
- //# sourceMappingURL=p-LqNiPJXJ.js.map
784
+ //# sourceMappingURL=p-BFrSAJDJ.js.map
785
785
 
786
- //# sourceMappingURL=p-LqNiPJXJ.js.map
786
+ //# sourceMappingURL=p-BFrSAJDJ.js.map