@tet/tet-components 1.4.75-testing → 1.4.76-staging

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 (537) hide show
  1. package/dist/cjs/{address-656e77f6.js → address-f852270f.js} +1 -1
  2. package/dist/cjs/{assets-f64f0e16.js → assets-b9d36649.js} +1 -1
  3. package/dist/cjs/{async-request-fcf33aba.js → async-request-4517f566.js} +1 -1
  4. package/dist/cjs/{http-codes-40da1e61.js → http-codes-062f76cf.js} +1 -1
  5. package/dist/cjs/{index-4b423f33.js → index-19a7608f.js} +1 -1
  6. package/dist/cjs/{index-3242ff3f.js → index-faec4c52.js} +1 -1
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/cjs/{phone-055efd07.js → phone-d6be0dd2.js} +2 -2
  9. package/dist/cjs/{product-comparison-88a89820.js → product-comparison-aa80a77c.js} +1 -1
  10. package/dist/cjs/tet-accordion.cjs.entry.js +7 -7
  11. package/dist/cjs/tet-address-offers-filters-products_2.cjs.entry.js +3 -3
  12. package/dist/cjs/tet-address-offers-view.cjs.entry.js +4 -4
  13. package/dist/cjs/tet-address-offers_4.cjs.entry.js +7 -7
  14. package/dist/cjs/tet-address-search.cjs.entry.js +4 -4
  15. package/dist/cjs/tet-asset-addresses.cjs.entry.js +3 -3
  16. package/dist/cjs/tet-autocomplete-dropdown.cjs.entry.js +1 -1
  17. package/dist/cjs/tet-autocomplete.cjs.entry.js +1 -1
  18. package/dist/cjs/tet-b2b-check-out-form_5.cjs.entry.js +3 -3
  19. package/dist/cjs/tet-b2b-configurator.cjs.entry.js +4 -4
  20. package/dist/cjs/tet-b2b-service-calculator.cjs.entry.js +4 -4
  21. package/dist/cjs/tet-banner-nav.cjs.entry.js +3 -3
  22. package/dist/cjs/tet-bar-graph.cjs.entry.js +1 -1
  23. package/dist/cjs/tet-border-radius.cjs.entry.js +2 -2
  24. package/dist/cjs/tet-business-card.cjs.entry.js +1 -1
  25. package/dist/cjs/tet-business-compare-card.cjs.entry.js +1 -1
  26. package/dist/cjs/tet-business-lines.cjs.entry.js +5 -5
  27. package/dist/cjs/tet-business-round-stepper.cjs.entry.js +1 -1
  28. package/dist/cjs/tet-button.cjs.entry.js +1 -1
  29. package/dist/cjs/tet-card-list.cjs.entry.js +1 -1
  30. package/dist/cjs/tet-carousel.cjs.entry.js +3 -3
  31. package/dist/cjs/tet-checkbox_2.cjs.entry.js +1 -1
  32. package/dist/cjs/tet-cloud-application-form-dialog.cjs.entry.js +3 -3
  33. package/dist/cjs/tet-cloud-configurator.cjs.entry.js +3 -3
  34. package/dist/cjs/tet-colors.cjs.entry.js +5 -5
  35. package/dist/cjs/tet-compare-card-v2.cjs.entry.js +3 -3
  36. package/dist/cjs/tet-compare-card-v3.cjs.entry.js +153 -121
  37. package/dist/cjs/tet-compare-cards-tab.cjs.entry.js +3 -3
  38. package/dist/cjs/tet-compare-cards_2.cjs.entry.js +3 -3
  39. package/dist/cjs/tet-components.cjs.js +2 -2
  40. package/dist/cjs/tet-contact-form.cjs.entry.js +5 -5
  41. package/dist/cjs/tet-contact-info.cjs.entry.js +1 -1
  42. package/dist/cjs/tet-container_2.cjs.entry.js +1 -1
  43. package/dist/cjs/tet-countdown.cjs.entry.js +2 -2
  44. package/dist/cjs/tet-counter.cjs.entry.js +1 -1
  45. package/dist/cjs/tet-customer-assets.cjs.entry.js +3 -3
  46. package/dist/cjs/tet-datepicker-header_4.cjs.entry.js +6 -6
  47. package/dist/cjs/tet-datepicker.cjs.entry.js +5 -5
  48. package/dist/cjs/tet-dialog.cjs.entry.js +3 -3
  49. package/dist/cjs/tet-display.cjs.entry.js +1 -1
  50. package/dist/cjs/tet-divider.cjs.entry.js +1 -1
  51. package/dist/cjs/tet-dynamic-card.cjs.entry.js +1 -1
  52. package/dist/cjs/tet-expandable-input.cjs.entry.js +1 -1
  53. package/dist/cjs/tet-expansion-panel.cjs.entry.js +2 -2
  54. package/dist/cjs/tet-feedback-form.cjs.entry.js +3 -3
  55. package/dist/cjs/tet-filter.cjs.entry.js +1 -1
  56. package/dist/cjs/tet-floating-block.cjs.entry.js +1 -1
  57. package/dist/cjs/tet-font-weight.cjs.entry.js +2 -2
  58. package/dist/cjs/tet-fonts.cjs.entry.js +2 -2
  59. package/dist/cjs/tet-grid.cjs.entry.js +2 -2
  60. package/dist/cjs/tet-icon.cjs.entry.js +2 -2
  61. package/dist/cjs/tet-inline-message.cjs.entry.js +1 -1
  62. package/dist/cjs/tet-input.cjs.entry.js +3 -3
  63. package/dist/cjs/tet-label.cjs.entry.js +5 -5
  64. package/dist/cjs/tet-layout.cjs.entry.js +2 -2
  65. package/dist/cjs/tet-link-card-list.cjs.entry.js +1 -1
  66. package/dist/cjs/tet-link.cjs.entry.js +2 -2
  67. package/dist/cjs/tet-loader.cjs.entry.js +1 -1
  68. package/dist/cjs/tet-macd-view.cjs.entry.js +6 -6
  69. package/dist/cjs/tet-menu-mobile.cjs.entry.js +1 -1
  70. package/dist/cjs/tet-menu.cjs.entry.js +1 -1
  71. package/dist/cjs/tet-mini-compare-card.cjs.entry.js +1 -1
  72. package/dist/cjs/tet-multi-step-dialog.cjs.entry.js +3 -3
  73. package/dist/cjs/tet-navigation-mobile.cjs.entry.js +6 -6
  74. package/dist/cjs/tet-news-card-list.cjs.entry.js +2 -2
  75. package/dist/cjs/tet-notification.cjs.entry.js +2 -2
  76. package/dist/cjs/tet-number-input.cjs.entry.js +1 -1
  77. package/dist/cjs/tet-placeholder.cjs.entry.js +2 -2
  78. package/dist/cjs/tet-position.cjs.entry.js +1 -1
  79. package/dist/cjs/tet-price-view.cjs.entry.js +1 -1
  80. package/dist/cjs/tet-radio-blocks.cjs.entry.js +1 -1
  81. package/dist/cjs/tet-radio.cjs.entry.js +1 -1
  82. package/dist/cjs/tet-range-slider.cjs.entry.js +8 -8
  83. package/dist/cjs/tet-referral.cjs.entry.js +5 -5
  84. package/dist/cjs/tet-round-stepper.cjs.entry.js +1 -1
  85. package/dist/cjs/tet-snicker-card-badge.cjs.entry.js +1 -1
  86. package/dist/cjs/tet-snicker-card-group.cjs.entry.js +1 -1
  87. package/dist/cjs/tet-snicker-card.cjs.entry.js +3 -3
  88. package/dist/cjs/tet-spacing.cjs.entry.js +2 -2
  89. package/dist/cjs/tet-spinner.cjs.entry.js +4 -4
  90. package/dist/cjs/tet-stepper-input.cjs.entry.js +4 -4
  91. package/dist/cjs/tet-stepper-v2.cjs.entry.js +1 -1
  92. package/dist/cjs/tet-stepper-v3.cjs.entry.js +1 -1
  93. package/dist/cjs/tet-stepper.cjs.entry.js +1 -1
  94. package/dist/cjs/tet-support-search.cjs.entry.js +1 -1
  95. package/dist/cjs/tet-switch.cjs.entry.js +1 -1
  96. package/dist/cjs/tet-tab-header.cjs.entry.js +1 -1
  97. package/dist/cjs/tet-table.cjs.entry.js +1 -1
  98. package/dist/cjs/tet-tag_2.cjs.entry.js +3 -3
  99. package/dist/cjs/tet-text-list.cjs.entry.js +1 -1
  100. package/dist/cjs/tet-text.cjs.entry.js +1 -1
  101. package/dist/cjs/tet-textarea.cjs.entry.js +3 -3
  102. package/dist/cjs/tet-thank-you-view-v2.cjs.entry.js +3 -3
  103. package/dist/cjs/tet-thank-you-view-v3.cjs.entry.js +3 -3
  104. package/dist/cjs/tet-thank-you-view.cjs.entry.js +1 -1
  105. package/dist/cjs/tet-tooltip.cjs.entry.js +2 -2
  106. package/dist/cjs/tet-tv-gift-block.cjs.entry.js +1 -1
  107. package/dist/cjs/tet-tv-gift-list.cjs.entry.js +1 -1
  108. package/dist/cjs/{theme-wrapper-66880718.js → theme-wrapper-46514846.js} +2 -2
  109. package/dist/cjs/{translations-03c9de64.js → translations-89a0ec3d.js} +1 -1
  110. package/dist/collection/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.css +71 -131
  111. package/dist/collection/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.js +217 -168
  112. package/dist/collection/components/basic/loaders/tet-placeholder/tet-placeholder.js +1 -1
  113. package/dist/collection/components/basic/loaders/tet-spinner/tet-spinner.js +3 -3
  114. package/dist/collection/components/basic/misc/tet-countdown/tet-countdown.js +1 -1
  115. package/dist/collection/components/basic/misc/tet-label/tet-label.js +2 -2
  116. package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-header/tet-datepicker-header.js +2 -2
  117. package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-month-view/tet-datepicker-month-view.js +1 -1
  118. package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-multi-year-view/tet-datepicker-multi-year-view.js +1 -1
  119. package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-year-view/tet-datepicker-year-view.js +1 -1
  120. package/dist/collection/components/simple/inputs/tet-datepicker/tet-datepicker.js +4 -4
  121. package/dist/collection/components/simple/inputs/tet-range-slider/tet-range-slider.js +7 -7
  122. package/dist/collection/components/simple/inputs/tet-stepper-input/tet-stepper-input.js +1 -1
  123. package/dist/collection/components/simple/inputs/tet-textarea/tet-textarea.js +2 -2
  124. package/dist/collection/components/simple/lists/tet-news-card-list/tet-news-card-list.js +1 -1
  125. package/dist/collection/components/simple/menu/tet-navigation-mobile/tet-navigation-mobile.js +3 -3
  126. package/dist/collection/components/simple/structural/tet-accordion/tet-accordion.js +6 -6
  127. package/dist/collection/components/simple/structural/tet-expansion-panel/tet-expansion-panel.js +1 -1
  128. package/dist/collection/components/simple/text-blocks/tet-notification/tet-notification.js +1 -1
  129. package/dist/collection/components/simple/text-blocks/tet-tooltip/tet-tooltip.js +1 -1
  130. package/dist/collection/components/views/tet-address-offers-view/tet-address-offers-view.js +1 -1
  131. package/dist/collection/components/views/tet-b2b-service-calculator/tet-b2b-service-calculator.js +1 -1
  132. package/dist/collection/components/views/tet-business-lines/tet-business-lines.js +1 -1
  133. package/dist/collection/docs/styling/border-radius/tet-border-radius.js +1 -1
  134. package/dist/collection/docs/styling/colors/tet-colors.js +4 -4
  135. package/dist/collection/docs/styling/font-weight/tet-font-weight.js +1 -1
  136. package/dist/collection/docs/styling/fonts/tet-fonts.js +1 -1
  137. package/dist/collection/docs/styling/layout/tet-layout.js +1 -1
  138. package/dist/collection/docs/styling/link/tet-link.js +1 -1
  139. package/dist/collection/docs/styling/spacing/tet-spacing.js +1 -1
  140. package/dist/collection/docs/styling/tet-grid/tet-grid.js +1 -1
  141. package/dist/components/index.js +1 -1
  142. package/dist/components/{p-dbe007a1.js → p-066c3480.js} +2 -2
  143. package/dist/components/{p-aaed240f.js → p-0c4dbefb.js} +5 -5
  144. package/dist/components/{p-51e056ad.js → p-0ec0fbc2.js} +1 -1
  145. package/dist/components/{p-349c4f40.js → p-10f42886.js} +2 -2
  146. package/dist/components/{p-b42eb2cc.js → p-1ef2f956.js} +3 -3
  147. package/dist/components/{p-cf77961d.js → p-2392c9a3.js} +6 -6
  148. package/dist/components/{p-cadc2794.js → p-26cb11bc.js} +3 -3
  149. package/dist/components/{p-b31a2ff9.js → p-29f2cbbf.js} +7 -7
  150. package/dist/components/{p-811bfb01.js → p-2daea550.js} +2 -2
  151. package/dist/components/{p-75946ab6.js → p-32b2d297.js} +3 -3
  152. package/dist/components/{p-e6e73cf4.js → p-33c09254.js} +7 -7
  153. package/dist/components/{p-4468c9e9.js → p-3493f65f.js} +1 -1
  154. package/dist/components/{p-ffeb8f16.js → p-417077a1.js} +8 -8
  155. package/dist/components/{p-bb6e933a.js → p-457f3fe1.js} +1 -1
  156. package/dist/components/{p-95f3192b.js → p-46ba4306.js} +1 -1
  157. package/dist/components/{p-58c08efb.js → p-47708860.js} +3 -3
  158. package/dist/components/{p-b6fccb1c.js → p-4b12ba8e.js} +3 -3
  159. package/dist/components/{p-e384bead.js → p-4eaabfdc.js} +7 -7
  160. package/dist/components/{p-c6bf37e9.js → p-5242a102.js} +1 -1
  161. package/dist/components/{p-85dc3940.js → p-53c45209.js} +6 -6
  162. package/dist/components/{p-0501b4dd.js → p-55faf9b2.js} +1 -1
  163. package/dist/components/{p-90e12b90.js → p-59ac0863.js} +2 -2
  164. package/dist/components/{p-ccc71f74.js → p-5a6323ed.js} +3 -3
  165. package/dist/components/{p-ad721590.js → p-60d85e2f.js} +14 -14
  166. package/dist/components/{p-440c71a2.js → p-6630bca1.js} +1 -1
  167. package/dist/components/{p-bb9547cd.js → p-68f63949.js} +1 -1
  168. package/dist/components/{p-2f7b2d35.js → p-72ab8bd5.js} +1 -1
  169. package/dist/components/{p-6400c186.js → p-73e04c74.js} +2 -2
  170. package/dist/components/{p-e924eb3c.js → p-7a5555cb.js} +10 -10
  171. package/dist/components/{p-1f784241.js → p-7b772623.js} +2 -2
  172. package/dist/components/{p-f98e1a64.js → p-7c65df67.js} +1 -1
  173. package/dist/components/{p-aa896160.js → p-7e21e309.js} +1 -1
  174. package/dist/components/{p-7f7cbc85.js → p-7fb0ac83.js} +7 -7
  175. package/dist/components/{p-ce18e382.js → p-87d08307.js} +2 -2
  176. package/dist/components/{p-52877cda.js → p-88a9deb8.js} +3 -3
  177. package/dist/components/{p-25503044.js → p-8e749973.js} +2 -2
  178. package/dist/components/{p-0e0514fd.js → p-9529b040.js} +2 -2
  179. package/dist/components/{p-23800d73.js → p-952a14e2.js} +3 -3
  180. package/dist/components/{p-1d622548.js → p-95de1bf2.js} +4 -4
  181. package/dist/components/{p-1ece1d7b.js → p-9be69f40.js} +1 -1
  182. package/dist/components/{p-25b93e8f.js → p-aa122c92.js} +1 -1
  183. package/dist/components/{p-a75e9375.js → p-b4713aad.js} +2 -2
  184. package/dist/components/{p-e33df696.js → p-b4fac108.js} +1 -1
  185. package/dist/components/{p-e8eaf31b.js → p-b98923ac.js} +3 -3
  186. package/dist/components/{p-82b891be.js → p-bc338fa8.js} +3 -3
  187. package/dist/components/{p-6f11c245.js → p-c0f5914e.js} +2 -2
  188. package/dist/components/{p-11b5e4b6.js → p-c7dc82e7.js} +9 -9
  189. package/dist/components/{p-27cbaa2a.js → p-c84b4a56.js} +2 -2
  190. package/dist/components/{p-70507bfc.js → p-d2a24b94.js} +1 -1
  191. package/dist/components/{p-c43fd18c.js → p-d5fd9f9f.js} +4 -4
  192. package/dist/components/{p-31f20950.js → p-d62321ac.js} +1 -1
  193. package/dist/components/{p-7e52844b.js → p-d848c015.js} +6 -6
  194. package/dist/components/{p-1c177d43.js → p-dfdeddc1.js} +4 -4
  195. package/dist/components/{p-37e972d6.js → p-e0ef2923.js} +10 -10
  196. package/dist/components/{p-0b87a175.js → p-e6063900.js} +11 -11
  197. package/dist/components/{p-e03b86c0.js → p-f041d8b9.js} +2 -2
  198. package/dist/components/{p-d233c6b4.js → p-f66f4d2d.js} +2 -2
  199. package/dist/components/{p-5a924418.js → p-faff7c5a.js} +6 -6
  200. package/dist/components/{p-aab6e185.js → p-fd53c0b5.js} +2 -2
  201. package/dist/components/tet-accordion.js +1 -1
  202. package/dist/components/tet-address-offers-filters-products.js +1 -1
  203. package/dist/components/tet-address-offers-filters.js +1 -1
  204. package/dist/components/tet-address-offers-view.js +25 -25
  205. package/dist/components/tet-address-offers.js +1 -1
  206. package/dist/components/tet-address-search.js +1 -1
  207. package/dist/components/tet-asset-addresses.js +13 -13
  208. package/dist/components/tet-asset-availability-addresses.js +1 -1
  209. package/dist/components/tet-autocomplete-dropdown.js +5 -5
  210. package/dist/components/tet-autocomplete.js +1 -1
  211. package/dist/components/tet-availability-contact-form.js +1 -1
  212. package/dist/components/tet-b2b-check-out-form.js +1 -1
  213. package/dist/components/tet-b2b-compare-card.js +1 -1
  214. package/dist/components/tet-b2b-configurator-cart.js +1 -1
  215. package/dist/components/tet-b2b-configurator.js +20 -20
  216. package/dist/components/tet-b2b-service-calculator.js +9 -9
  217. package/dist/components/tet-banner-nav.js +3 -3
  218. package/dist/components/tet-bar-graph.js +1 -1
  219. package/dist/components/tet-border-radius.js +2 -2
  220. package/dist/components/tet-business-card.js +1 -1
  221. package/dist/components/tet-business-compare-card.js +3 -3
  222. package/dist/components/tet-business-lines.js +6 -6
  223. package/dist/components/tet-business-navigation.js +1 -1
  224. package/dist/components/tet-business-round-stepper.js +2 -2
  225. package/dist/components/tet-business-summary-card.js +1 -1
  226. package/dist/components/tet-button.js +1 -1
  227. package/dist/components/tet-card-list.js +1 -1
  228. package/dist/components/tet-carousel.js +4 -4
  229. package/dist/components/tet-checkbox.js +1 -1
  230. package/dist/components/tet-cloud-application-form-dialog.js +8 -8
  231. package/dist/components/tet-cloud-configurator.js +12 -12
  232. package/dist/components/tet-colors.js +5 -5
  233. package/dist/components/tet-compare-card-v2.js +9 -9
  234. package/dist/components/tet-compare-card-v3.js +166 -133
  235. package/dist/components/tet-compare-card.js +1 -1
  236. package/dist/components/tet-compare-cards-tab.js +16 -16
  237. package/dist/components/tet-compare-cards.js +1 -1
  238. package/dist/components/tet-contact-form.js +9 -9
  239. package/dist/components/tet-contact-info.js +1 -1
  240. package/dist/components/tet-container.js +1 -1
  241. package/dist/components/tet-countdown.js +2 -2
  242. package/dist/components/tet-counter.js +1 -1
  243. package/dist/components/tet-customer-assets.js +9 -9
  244. package/dist/components/tet-datepicker-header.js +1 -1
  245. package/dist/components/tet-datepicker-month-view.js +1 -1
  246. package/dist/components/tet-datepicker-multi-year-view.js +1 -1
  247. package/dist/components/tet-datepicker-year-view.js +1 -1
  248. package/dist/components/tet-datepicker.js +10 -10
  249. package/dist/components/tet-dialog.js +1 -1
  250. package/dist/components/tet-display.js +8 -8
  251. package/dist/components/tet-divider.js +7 -7
  252. package/dist/components/tet-dropdown.js +1 -1
  253. package/dist/components/tet-dynamic-card.js +4 -4
  254. package/dist/components/tet-expandable-input.js +3 -3
  255. package/dist/components/tet-expansion-panel.js +2 -2
  256. package/dist/components/tet-feedback-form.js +7 -7
  257. package/dist/components/tet-filter.js +4 -4
  258. package/dist/components/tet-floating-block.js +3 -3
  259. package/dist/components/tet-font-weight.js +2 -2
  260. package/dist/components/tet-fonts.js +2 -2
  261. package/dist/components/tet-grid.js +2 -2
  262. package/dist/components/tet-icon.js +1 -1
  263. package/dist/components/tet-inline-message.js +1 -1
  264. package/dist/components/tet-input.js +1 -1
  265. package/dist/components/tet-label.js +5 -5
  266. package/dist/components/tet-layout.js +2 -2
  267. package/dist/components/tet-link-card-list.js +3 -3
  268. package/dist/components/tet-link.js +2 -2
  269. package/dist/components/tet-loader.js +1 -1
  270. package/dist/components/tet-macd-view.js +10 -10
  271. package/dist/components/tet-menu-mobile.js +2 -2
  272. package/dist/components/tet-menu.js +2 -2
  273. package/dist/components/tet-mini-compare-card.js +3 -3
  274. package/dist/components/tet-multi-step-dialog.js +5 -5
  275. package/dist/components/tet-navigation-mobile.js +6 -6
  276. package/dist/components/tet-news-card-list.js +5 -5
  277. package/dist/components/tet-notification.js +1 -1
  278. package/dist/components/tet-number-input.js +1 -1
  279. package/dist/components/tet-placeholder.js +1 -1
  280. package/dist/components/tet-position.js +7 -7
  281. package/dist/components/tet-price-view.js +1 -1
  282. package/dist/components/tet-radio-blocks.js +2 -2
  283. package/dist/components/tet-radio.js +1 -1
  284. package/dist/components/tet-range-slider.js +1 -1
  285. package/dist/components/tet-referral.js +6 -6
  286. package/dist/components/tet-round-stepper.js +2 -2
  287. package/dist/components/tet-selection-list.js +1 -1
  288. package/dist/components/tet-snicker-card-badge.js +1 -1
  289. package/dist/components/tet-snicker-card-group.js +1 -1
  290. package/dist/components/tet-snicker-card.js +11 -11
  291. package/dist/components/tet-spacing.js +2 -2
  292. package/dist/components/tet-spinner.js +1 -1
  293. package/dist/components/tet-stepper-input.js +1 -1
  294. package/dist/components/tet-stepper-v2.js +1 -1
  295. package/dist/components/tet-stepper-v3.js +1 -1
  296. package/dist/components/tet-stepper.js +1 -1
  297. package/dist/components/tet-support-search.js +7 -7
  298. package/dist/components/tet-switch.js +1 -1
  299. package/dist/components/tet-tab-content.js +1 -1
  300. package/dist/components/tet-tab-header.js +1 -1
  301. package/dist/components/tet-table.js +3 -3
  302. package/dist/components/tet-tag-group.js +1 -1
  303. package/dist/components/tet-tag.js +1 -1
  304. package/dist/components/tet-text-list.js +1 -1
  305. package/dist/components/tet-text.js +7 -7
  306. package/dist/components/tet-textarea.js +1 -1
  307. package/dist/components/tet-thank-you-view-v2.js +5 -5
  308. package/dist/components/tet-thank-you-view-v3.js +5 -5
  309. package/dist/components/tet-thank-you-view.js +4 -4
  310. package/dist/components/tet-tooltip.js +1 -1
  311. package/dist/components/tet-tv-gift-block.js +1 -1
  312. package/dist/components/tet-tv-gift-list.js +2 -2
  313. package/dist/esm/{address-1e0810e7.js → address-20e2d850.js} +1 -1
  314. package/dist/esm/{assets-e1349520.js → assets-894007df.js} +1 -1
  315. package/dist/esm/{async-request-4c945e13.js → async-request-ae1056de.js} +1 -1
  316. package/dist/esm/{http-codes-1927ea00.js → http-codes-cf0086d4.js} +1 -1
  317. package/dist/esm/{index-412df137.js → index-e3209c56.js} +1 -1
  318. package/dist/esm/{index-aac31bd2.js → index-e933a7d2.js} +1 -1
  319. package/dist/esm/loader.js +3 -3
  320. package/dist/esm/{phone-1a920c5c.js → phone-62660137.js} +2 -2
  321. package/dist/esm/{product-comparison-dd90c721.js → product-comparison-cb8955f6.js} +1 -1
  322. package/dist/esm/tet-accordion.entry.js +7 -7
  323. package/dist/esm/tet-address-offers-filters-products_2.entry.js +3 -3
  324. package/dist/esm/tet-address-offers-view.entry.js +4 -4
  325. package/dist/esm/tet-address-offers_4.entry.js +7 -7
  326. package/dist/esm/tet-address-search.entry.js +4 -4
  327. package/dist/esm/tet-asset-addresses.entry.js +3 -3
  328. package/dist/esm/tet-autocomplete-dropdown.entry.js +1 -1
  329. package/dist/esm/tet-autocomplete.entry.js +1 -1
  330. package/dist/esm/tet-b2b-check-out-form_5.entry.js +3 -3
  331. package/dist/esm/tet-b2b-configurator.entry.js +4 -4
  332. package/dist/esm/tet-b2b-service-calculator.entry.js +4 -4
  333. package/dist/esm/tet-banner-nav.entry.js +3 -3
  334. package/dist/esm/tet-bar-graph.entry.js +1 -1
  335. package/dist/esm/tet-border-radius.entry.js +2 -2
  336. package/dist/esm/tet-business-card.entry.js +1 -1
  337. package/dist/esm/tet-business-compare-card.entry.js +1 -1
  338. package/dist/esm/tet-business-lines.entry.js +5 -5
  339. package/dist/esm/tet-business-round-stepper.entry.js +1 -1
  340. package/dist/esm/tet-button.entry.js +1 -1
  341. package/dist/esm/tet-card-list.entry.js +1 -1
  342. package/dist/esm/tet-carousel.entry.js +3 -3
  343. package/dist/esm/tet-checkbox_2.entry.js +1 -1
  344. package/dist/esm/tet-cloud-application-form-dialog.entry.js +3 -3
  345. package/dist/esm/tet-cloud-configurator.entry.js +3 -3
  346. package/dist/esm/tet-colors.entry.js +5 -5
  347. package/dist/esm/tet-compare-card-v2.entry.js +3 -3
  348. package/dist/esm/tet-compare-card-v3.entry.js +153 -121
  349. package/dist/esm/tet-compare-cards-tab.entry.js +3 -3
  350. package/dist/esm/tet-compare-cards_2.entry.js +3 -3
  351. package/dist/esm/tet-components.js +3 -3
  352. package/dist/esm/tet-contact-form.entry.js +5 -5
  353. package/dist/esm/tet-contact-info.entry.js +1 -1
  354. package/dist/esm/tet-container_2.entry.js +1 -1
  355. package/dist/esm/tet-countdown.entry.js +2 -2
  356. package/dist/esm/tet-counter.entry.js +1 -1
  357. package/dist/esm/tet-customer-assets.entry.js +3 -3
  358. package/dist/esm/tet-datepicker-header_4.entry.js +6 -6
  359. package/dist/esm/tet-datepicker.entry.js +5 -5
  360. package/dist/esm/tet-dialog.entry.js +3 -3
  361. package/dist/esm/tet-display.entry.js +1 -1
  362. package/dist/esm/tet-divider.entry.js +1 -1
  363. package/dist/esm/tet-dynamic-card.entry.js +1 -1
  364. package/dist/esm/tet-expandable-input.entry.js +1 -1
  365. package/dist/esm/tet-expansion-panel.entry.js +2 -2
  366. package/dist/esm/tet-feedback-form.entry.js +3 -3
  367. package/dist/esm/tet-filter.entry.js +1 -1
  368. package/dist/esm/tet-floating-block.entry.js +1 -1
  369. package/dist/esm/tet-font-weight.entry.js +2 -2
  370. package/dist/esm/tet-fonts.entry.js +2 -2
  371. package/dist/esm/tet-grid.entry.js +2 -2
  372. package/dist/esm/tet-icon.entry.js +2 -2
  373. package/dist/esm/tet-inline-message.entry.js +1 -1
  374. package/dist/esm/tet-input.entry.js +3 -3
  375. package/dist/esm/tet-label.entry.js +5 -5
  376. package/dist/esm/tet-layout.entry.js +2 -2
  377. package/dist/esm/tet-link-card-list.entry.js +1 -1
  378. package/dist/esm/tet-link.entry.js +2 -2
  379. package/dist/esm/tet-loader.entry.js +1 -1
  380. package/dist/esm/tet-macd-view.entry.js +6 -6
  381. package/dist/esm/tet-menu-mobile.entry.js +1 -1
  382. package/dist/esm/tet-menu.entry.js +1 -1
  383. package/dist/esm/tet-mini-compare-card.entry.js +1 -1
  384. package/dist/esm/tet-multi-step-dialog.entry.js +3 -3
  385. package/dist/esm/tet-navigation-mobile.entry.js +6 -6
  386. package/dist/esm/tet-news-card-list.entry.js +2 -2
  387. package/dist/esm/tet-notification.entry.js +2 -2
  388. package/dist/esm/tet-number-input.entry.js +1 -1
  389. package/dist/esm/tet-placeholder.entry.js +2 -2
  390. package/dist/esm/tet-position.entry.js +1 -1
  391. package/dist/esm/tet-price-view.entry.js +1 -1
  392. package/dist/esm/tet-radio-blocks.entry.js +1 -1
  393. package/dist/esm/tet-radio.entry.js +1 -1
  394. package/dist/esm/tet-range-slider.entry.js +8 -8
  395. package/dist/esm/tet-referral.entry.js +5 -5
  396. package/dist/esm/tet-round-stepper.entry.js +1 -1
  397. package/dist/esm/tet-snicker-card-badge.entry.js +1 -1
  398. package/dist/esm/tet-snicker-card-group.entry.js +1 -1
  399. package/dist/esm/tet-snicker-card.entry.js +3 -3
  400. package/dist/esm/tet-spacing.entry.js +2 -2
  401. package/dist/esm/tet-spinner.entry.js +4 -4
  402. package/dist/esm/tet-stepper-input.entry.js +4 -4
  403. package/dist/esm/tet-stepper-v2.entry.js +1 -1
  404. package/dist/esm/tet-stepper-v3.entry.js +1 -1
  405. package/dist/esm/tet-stepper.entry.js +1 -1
  406. package/dist/esm/tet-support-search.entry.js +1 -1
  407. package/dist/esm/tet-switch.entry.js +1 -1
  408. package/dist/esm/tet-tab-header.entry.js +1 -1
  409. package/dist/esm/tet-table.entry.js +1 -1
  410. package/dist/esm/tet-tag_2.entry.js +3 -3
  411. package/dist/esm/tet-text-list.entry.js +1 -1
  412. package/dist/esm/tet-text.entry.js +1 -1
  413. package/dist/esm/tet-textarea.entry.js +3 -3
  414. package/dist/esm/tet-thank-you-view-v2.entry.js +3 -3
  415. package/dist/esm/tet-thank-you-view-v3.entry.js +3 -3
  416. package/dist/esm/tet-thank-you-view.entry.js +1 -1
  417. package/dist/esm/tet-tooltip.entry.js +2 -2
  418. package/dist/esm/tet-tv-gift-block.entry.js +1 -1
  419. package/dist/esm/tet-tv-gift-list.entry.js +1 -1
  420. package/dist/esm/{theme-wrapper-72d0b9da.js → theme-wrapper-cf4d7d54.js} +2 -2
  421. package/dist/esm/{translations-4712c45f.js → translations-e60db8fd.js} +1 -1
  422. package/dist/tet-components/{p-6f2d1f00.entry.js → p-02b68427.entry.js} +1 -1
  423. package/dist/tet-components/{p-84322a3d.entry.js → p-091ba284.entry.js} +1 -1
  424. package/dist/tet-components/{p-27289f2e.entry.js → p-0b04747f.entry.js} +1 -1
  425. package/dist/tet-components/{p-19c387bd.entry.js → p-0c6c7605.entry.js} +1 -1
  426. package/dist/tet-components/{p-4c6a379b.entry.js → p-0dca3de0.entry.js} +1 -1
  427. package/dist/tet-components/{p-29cde2fc.entry.js → p-0e6d4a8f.entry.js} +1 -1
  428. package/dist/tet-components/{p-e93ab3e8.entry.js → p-0f8cdb24.entry.js} +1 -1
  429. package/dist/tet-components/{p-711d3128.entry.js → p-12b37abc.entry.js} +1 -1
  430. package/dist/tet-components/p-178b15ac.entry.js +1 -0
  431. package/dist/tet-components/{p-36ce396f.entry.js → p-188ce965.entry.js} +1 -1
  432. package/dist/tet-components/{p-0b07b3db.entry.js → p-1b70236b.entry.js} +1 -1
  433. package/dist/tet-components/{p-697d23d7.entry.js → p-1beb018b.entry.js} +1 -1
  434. package/dist/tet-components/{p-ad99829e.entry.js → p-25b4b6ef.entry.js} +1 -1
  435. package/dist/tet-components/{p-6693715e.entry.js → p-25d4852b.entry.js} +1 -1
  436. package/dist/tet-components/{p-e290c65d.entry.js → p-26147420.entry.js} +1 -1
  437. package/dist/tet-components/{p-f6916bfc.entry.js → p-265701de.entry.js} +1 -1
  438. package/dist/tet-components/{p-7f18c74c.entry.js → p-278f1d5e.entry.js} +1 -1
  439. package/dist/tet-components/{p-d06f8b4e.entry.js → p-27a33156.entry.js} +1 -1
  440. package/dist/tet-components/{p-be6bd78b.entry.js → p-28b25264.entry.js} +1 -1
  441. package/dist/tet-components/{p-af722b25.entry.js → p-2ab6dcef.entry.js} +1 -1
  442. package/dist/tet-components/{p-ccfa9f31.entry.js → p-2c891567.entry.js} +1 -1
  443. package/dist/tet-components/{p-d8518d4b.js → p-2dbe670c.js} +1 -1
  444. package/dist/tet-components/{p-46f6a051.entry.js → p-2f25de81.entry.js} +1 -1
  445. package/dist/tet-components/{p-724189c2.entry.js → p-31be2161.entry.js} +1 -1
  446. package/dist/tet-components/{p-64e277c1.entry.js → p-3251b52b.entry.js} +1 -1
  447. package/dist/tet-components/{p-778c46a6.js → p-3ac57578.js} +1 -1
  448. package/dist/tet-components/{p-0d14e4f2.entry.js → p-40042723.entry.js} +1 -1
  449. package/dist/tet-components/{p-fc88ce77.entry.js → p-40ed3be9.entry.js} +1 -1
  450. package/dist/tet-components/{p-f81b3bb0.js → p-4213c1d1.js} +1 -1
  451. package/dist/tet-components/{p-a66ae3e5.entry.js → p-428f2753.entry.js} +1 -1
  452. package/dist/tet-components/{p-3eef8690.entry.js → p-45e6d6ec.entry.js} +1 -1
  453. package/dist/tet-components/{p-2b5b2c71.entry.js → p-47a897c5.entry.js} +1 -1
  454. package/dist/tet-components/{p-45cc3c71.entry.js → p-48dbf338.entry.js} +1 -1
  455. package/dist/tet-components/{p-18a06e75.entry.js → p-4a86dd2b.entry.js} +1 -1
  456. package/dist/tet-components/{p-6be0549b.entry.js → p-4babd7b2.entry.js} +1 -1
  457. package/dist/tet-components/{p-cf3456e2.entry.js → p-51dfe68c.entry.js} +1 -1
  458. package/dist/tet-components/{p-dc219c9d.entry.js → p-545536fa.entry.js} +1 -1
  459. package/dist/tet-components/{p-122f3d3c.entry.js → p-548d7cc1.entry.js} +1 -1
  460. package/dist/tet-components/{p-1393ed60.entry.js → p-5527dd96.entry.js} +1 -1
  461. package/dist/tet-components/{p-003e17a0.entry.js → p-58313d11.entry.js} +1 -1
  462. package/dist/tet-components/{p-83f43fdd.js → p-5abb3bea.js} +1 -1
  463. package/dist/tet-components/{p-b0c62997.entry.js → p-5e8bd119.entry.js} +1 -1
  464. package/dist/tet-components/{p-d5b36540.entry.js → p-5ec1a6cf.entry.js} +1 -1
  465. package/dist/tet-components/{p-cde8057a.entry.js → p-60abca86.entry.js} +1 -1
  466. package/dist/tet-components/{p-8bfd498e.entry.js → p-63f6def9.entry.js} +1 -1
  467. package/dist/tet-components/p-660bdc27.js +1 -0
  468. package/dist/tet-components/p-66f98081.entry.js +1 -0
  469. package/dist/tet-components/{p-cbe7e76a.entry.js → p-6e16e0ee.entry.js} +1 -1
  470. package/dist/tet-components/{p-401e736e.entry.js → p-70448ec8.entry.js} +1 -1
  471. package/dist/tet-components/{p-1d5c5c4e.entry.js → p-707604af.entry.js} +1 -1
  472. package/dist/tet-components/{p-84434288.entry.js → p-71ac4318.entry.js} +1 -1
  473. package/dist/tet-components/{p-0ebbf5ef.js → p-726651bc.js} +1 -1
  474. package/dist/tet-components/{p-1c8fb479.entry.js → p-72deef24.entry.js} +1 -1
  475. package/dist/tet-components/{p-b31168fc.entry.js → p-738c3987.entry.js} +1 -1
  476. package/dist/tet-components/{p-c3cb0bfc.entry.js → p-7859b951.entry.js} +1 -1
  477. package/dist/tet-components/p-7b8c521e.entry.js +1 -0
  478. package/dist/tet-components/{p-ff291490.entry.js → p-7c7330ad.entry.js} +1 -1
  479. package/dist/tet-components/{p-b10165d6.entry.js → p-7e2c854a.entry.js} +1 -1
  480. package/dist/tet-components/{p-18b15829.entry.js → p-8093385f.entry.js} +1 -1
  481. package/dist/tet-components/{p-cbe2dffa.entry.js → p-812e4964.entry.js} +1 -1
  482. package/dist/tet-components/{p-16a89d36.entry.js → p-815d8e0b.entry.js} +1 -1
  483. package/dist/tet-components/{p-69c58fc4.entry.js → p-81cabfb1.entry.js} +1 -1
  484. package/dist/tet-components/{p-0380a279.entry.js → p-823ababb.entry.js} +1 -1
  485. package/dist/tet-components/{p-5fb62a1b.entry.js → p-85fffa05.entry.js} +1 -1
  486. package/dist/tet-components/{p-2c2d064f.entry.js → p-87248982.entry.js} +1 -1
  487. package/dist/tet-components/{p-54ac6bde.entry.js → p-873de4cf.entry.js} +1 -1
  488. package/dist/tet-components/{p-949d0eaf.entry.js → p-8998d112.entry.js} +1 -1
  489. package/dist/tet-components/{p-ba8c6a1c.entry.js → p-89d2d3d9.entry.js} +1 -1
  490. package/dist/tet-components/{p-46b3fc7f.entry.js → p-8ac7782f.entry.js} +1 -1
  491. package/dist/tet-components/{p-3324b31a.entry.js → p-8e72a5cb.entry.js} +1 -1
  492. package/dist/tet-components/{p-e52505d3.entry.js → p-928c38da.entry.js} +1 -1
  493. package/dist/tet-components/{p-d1035694.entry.js → p-9c34400c.entry.js} +1 -1
  494. package/dist/tet-components/{p-87221449.entry.js → p-9f921c87.entry.js} +1 -1
  495. package/dist/tet-components/{p-a8051a99.js → p-a476fd02.js} +1 -1
  496. package/dist/tet-components/{p-11556ee3.entry.js → p-a5562275.entry.js} +1 -1
  497. package/dist/tet-components/{p-3f977401.entry.js → p-a80fa7d0.entry.js} +1 -1
  498. package/dist/tet-components/{p-3f3911b6.entry.js → p-a881bded.entry.js} +1 -1
  499. package/dist/tet-components/{p-1f3f79be.entry.js → p-a8a44452.entry.js} +1 -1
  500. package/dist/tet-components/{p-7fc933fe.entry.js → p-aa09ca5f.entry.js} +1 -1
  501. package/dist/tet-components/{p-9a75ed39.entry.js → p-aba71e2d.entry.js} +1 -1
  502. package/dist/tet-components/{p-7544dfd7.js → p-b39df477.js} +1 -1
  503. package/dist/tet-components/{p-9c837569.entry.js → p-b4b90473.entry.js} +1 -1
  504. package/dist/tet-components/{p-93820289.entry.js → p-b4fb5193.entry.js} +1 -1
  505. package/dist/tet-components/{p-1fd2adaf.js → p-b92dff8a.js} +1 -1
  506. package/dist/tet-components/{p-2fb8ea65.entry.js → p-bf61c059.entry.js} +1 -1
  507. package/dist/tet-components/{p-75bbc14a.entry.js → p-c1955aa6.entry.js} +1 -1
  508. package/dist/tet-components/{p-f93ab9f3.entry.js → p-c7e67378.entry.js} +1 -1
  509. package/dist/tet-components/p-c9b27cc9.entry.js +1 -0
  510. package/dist/tet-components/{p-0c6b6730.js → p-c9ddf890.js} +1 -1
  511. package/dist/tet-components/{p-1ff1f044.entry.js → p-ceff5b1f.entry.js} +1 -1
  512. package/dist/tet-components/{p-2ea42a12.entry.js → p-d3304f94.entry.js} +1 -1
  513. package/dist/tet-components/{p-42bab955.entry.js → p-d6c00f5e.entry.js} +1 -1
  514. package/dist/tet-components/{p-915641bd.entry.js → p-dced3bd7.entry.js} +1 -1
  515. package/dist/tet-components/{p-8fa0be45.entry.js → p-dcfc2639.entry.js} +1 -1
  516. package/dist/tet-components/{p-7242c9b7.entry.js → p-ddecaef0.entry.js} +1 -1
  517. package/dist/tet-components/{p-5b5001cf.entry.js → p-e1ce8689.entry.js} +1 -1
  518. package/dist/tet-components/{p-6b088283.entry.js → p-e30eca37.entry.js} +1 -1
  519. package/dist/tet-components/{p-0cc4a20c.entry.js → p-e36809cc.entry.js} +1 -1
  520. package/dist/tet-components/{p-876009b7.entry.js → p-e3f93dd7.entry.js} +1 -1
  521. package/dist/tet-components/{p-1ea67edb.entry.js → p-e60c1ac9.entry.js} +1 -1
  522. package/dist/tet-components/{p-f9c69d39.entry.js → p-e70a8127.entry.js} +1 -1
  523. package/dist/tet-components/{p-fa259a3d.entry.js → p-e8ec9d1c.entry.js} +1 -1
  524. package/dist/tet-components/{p-c9f21fde.entry.js → p-ec5b1040.entry.js} +1 -1
  525. package/dist/tet-components/{p-4b84438a.entry.js → p-f17a4724.entry.js} +1 -1
  526. package/dist/tet-components/{p-b652f17d.entry.js → p-fada27ab.entry.js} +1 -1
  527. package/dist/tet-components/{p-6babde37.entry.js → p-fc81fb8e.entry.js} +1 -1
  528. package/dist/tet-components/{p-c4de9e32.entry.js → p-ff5b0f63.entry.js} +1 -1
  529. package/dist/tet-components/tet-components.esm.js +1 -1
  530. package/dist/types/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.d.ts +53 -46
  531. package/dist/types/components.d.ts +35 -27
  532. package/package.json +1 -1
  533. package/dist/tet-components/p-2836cc49.entry.js +0 -1
  534. package/dist/tet-components/p-55bf152c.entry.js +0 -1
  535. package/dist/tet-components/p-88455807.entry.js +0 -1
  536. package/dist/tet-components/p-e4c5f884.entry.js +0 -1
  537. package/dist/tet-components/p-f81d95ae.js +0 -1
@@ -1,40 +1,34 @@
1
- import { h, Fragment } from "@stencil/core";
1
+ import { h } from "@stencil/core";
2
2
  import { productComparison } from "../../../../services/api/index";
3
3
  export class TetCompareCardV3 {
4
4
  constructor() {
5
5
  this.cardType = 'static';
6
6
  this.theme = 'light';
7
- this.bestChoice = false;
8
7
  this.language = 'lv';
9
8
  this.options = [];
10
- this.bonuses = [];
11
- this.benefits = [];
9
+ this.toggles = [];
12
10
  this.contractTerm = 0;
13
- this.bestChoiceText = '';
11
+ this.controlsTitle = undefined;
12
+ this.bestChoiceText = undefined;
13
+ this.bestChoiceIconName = undefined;
14
14
  this.currency = '€/mēn.';
15
15
  this.secondaryLink = '';
16
16
  this.secondaryLinkText = '';
17
17
  this.secondaryLinkOpenBlank = false;
18
18
  this.buttonTitle = '';
19
19
  this.linkOpenBlank = false;
20
+ this.showControlsFirst = false;
20
21
  this.showLoader = true;
21
- this.selectedProductCode = '';
22
+ this.selectedProductId = '';
22
23
  this.selectedSwitchKeys = [];
23
24
  this.preselectedKeys = [];
24
- this.preselectedProductCode = '';
25
+ this.preselectedProductId = '';
25
26
  this.allProductData = {};
26
27
  this.preselectedRemountId = 0;
27
28
  this.buttonSize = 'large';
28
29
  }
29
30
  buttonSizeBreakpoint = 1280;
30
- /**
31
- * WeakMap to store unique IDs for bonuses.
32
- */
33
- bonusWeakMap = new WeakMap();
34
- /**
35
- * Counter for unique bonus IDs.
36
- */
37
- bonusCounter = 0;
31
+ didEmitCardLoaded = false;
38
32
  /**
39
33
  * Emitted when the card has loaded.
40
34
  */
@@ -47,8 +41,8 @@ export class TetCompareCardV3 {
47
41
  * @param event
48
42
  */
49
43
  onOptionSelected(event) {
50
- const productCode = event.detail.value;
51
- this.selectedProductCode = productCode;
44
+ const productId = event.detail.value;
45
+ this.selectedProductId = productId;
52
46
  this.productChanged.emit();
53
47
  }
54
48
  async componentWillLoad() {
@@ -59,7 +53,7 @@ export class TetCompareCardV3 {
59
53
  case 'radio': {
60
54
  const selectedOption = this.options.find(option => option.preselected) ?? this.options[0];
61
55
  if (selectedOption) {
62
- this.selectedProductCode = selectedOption.productCode;
56
+ this.selectedProductId = this.getOptionId(selectedOption);
63
57
  this.productChanged.emit();
64
58
  }
65
59
  break;
@@ -68,21 +62,27 @@ export class TetCompareCardV3 {
68
62
  const preselected = this.options.find(option => option.preselected);
69
63
  if (preselected) {
70
64
  this.preselectedKeys = [...preselected.keys ?? []];
71
- this.preselectedProductCode = preselected.productCode;
65
+ this.preselectedProductId = this.getOptionId(preselected);
72
66
  this.selectedSwitchKeys = [...preselected.keys ?? []];
73
- this.selectedProductCode = preselected.productCode;
67
+ this.selectedProductId = this.getOptionId(preselected);
74
68
  this.productChanged.emit();
75
69
  }
76
70
  break;
77
71
  }
78
72
  case 'static':
79
- this.selectedProductCode = this.options.find(option => option.productCode)?.productCode || '';
73
+ this.selectedProductId = this.getOptionId(this.options[0]);
80
74
  this.productChanged.emit();
81
75
  break;
82
76
  default:
83
77
  break;
84
78
  }
85
79
  }
80
+ componentDidRender() {
81
+ if (!this.showLoader && !this.didEmitCardLoaded) {
82
+ this.didEmitCardLoaded = true;
83
+ this.cardLoaded.emit();
84
+ }
85
+ }
86
86
  onResize() {
87
87
  this.syncButtonSize();
88
88
  }
@@ -98,33 +98,39 @@ export class TetCompareCardV3 {
98
98
  this.buttonSize = nextButtonSize;
99
99
  }
100
100
  }
101
+ getOptionId(option) {
102
+ return option?.id ?? option?.productCode ?? '';
103
+ }
104
+ getOptionById(productId) {
105
+ return this.options.find(option => this.getOptionId(option) === productId);
106
+ }
101
107
  getSelectionOptions() {
102
108
  return this.options.map((option) => ({
103
- label: option.label || '',
104
- value: option.productCode || '',
105
- preselected: option.preselected || false
109
+ label: option.optionLabel || '',
110
+ value: this.getOptionId(option),
111
+ preselected: this.getOptionId(option) === this.selectedProductId,
106
112
  }));
107
113
  }
108
114
  /**
109
- * Resolves product code by matching an exact toggle-key combination.
115
+ * Resolves a product selection key by matching an exact toggle-key combination.
110
116
  */
111
- getToggledProductCode(keys) {
117
+ getToggledProductId(keys) {
112
118
  const sortedKeys = [...keys].sort((a, b) => a.localeCompare(b)).join(',');
113
119
  const found = this.options.find(option => [...option.keys ?? []].sort((a, b) => a.localeCompare(b)).join(',') === sortedKeys);
114
- return found ? found.productCode : null;
120
+ return found ? this.getOptionId(found) : null;
115
121
  }
116
122
  /**
117
123
  * Handles switch interactions and keeps selection in a valid state.
118
124
  */
119
125
  handleSwitchToggle(key, checked) {
120
- const benefit = this.benefits.find(benefit => benefit.toggleKey === key);
126
+ const toggle = this.toggles.find(toggle => toggle.toggleKey === key);
121
127
  let activeKeys = [...this.selectedSwitchKeys];
122
128
  if (checked) {
123
- if (benefit?.selectAll) {
129
+ if (toggle?.selectAll) {
124
130
  const fullCombo = this.getFullComboToggleOption();
125
131
  if (fullCombo) {
126
132
  this.selectedSwitchKeys = [...fullCombo.keys ?? []];
127
- this.selectedProductCode = fullCombo.productCode;
133
+ this.selectedProductId = this.getOptionId(fullCombo);
128
134
  this.productChanged.emit();
129
135
  return;
130
136
  }
@@ -136,33 +142,33 @@ export class TetCompareCardV3 {
136
142
  const newActiveKeys = activeKeys.filter(k => k !== key);
137
143
  if (newActiveKeys.length === 0) {
138
144
  this.selectedSwitchKeys = [...this.preselectedKeys];
139
- this.selectedProductCode = this.preselectedProductCode;
145
+ this.selectedProductId = this.preselectedProductId;
140
146
  this.preselectedRemountId++;
141
147
  this.productChanged.emit();
142
148
  return;
143
149
  }
144
- const validProductCode = this.getToggledProductCode(newActiveKeys);
145
- if (validProductCode) {
150
+ const validProductId = this.getToggledProductId(newActiveKeys);
151
+ if (validProductId) {
146
152
  this.selectedSwitchKeys = newActiveKeys;
147
- this.selectedProductCode = validProductCode;
153
+ this.selectedProductId = validProductId;
148
154
  this.productChanged.emit();
149
155
  return;
150
156
  }
151
157
  this.selectedSwitchKeys = [...this.preselectedKeys];
152
- this.selectedProductCode = this.preselectedProductCode;
158
+ this.selectedProductId = this.preselectedProductId;
153
159
  this.preselectedRemountId++;
154
160
  this.productChanged.emit();
155
161
  return;
156
162
  }
157
163
  activeKeys = activeKeys.sort((a, b) => a.localeCompare(b));
158
- const productCode = this.getToggledProductCode(activeKeys);
164
+ const productId = this.getToggledProductId(activeKeys);
159
165
  this.selectedSwitchKeys = activeKeys;
160
- if (productCode) {
161
- this.selectedProductCode = productCode;
166
+ if (productId) {
167
+ this.selectedProductId = productId;
162
168
  this.productChanged.emit();
163
169
  }
164
170
  else {
165
- this.selectedProductCode = this.preselectedProductCode;
171
+ this.selectedProductId = this.preselectedProductId;
166
172
  this.selectedSwitchKeys = [...this.preselectedKeys];
167
173
  this.preselectedRemountId++;
168
174
  this.productChanged.emit();
@@ -178,52 +184,40 @@ export class TetCompareCardV3 {
178
184
  return this.options.reduce((max, curr) => (curr.keys ?? []).length > (max.keys ?? []).length ? curr : max, this.options[0]);
179
185
  }
180
186
  async fetchProductComparison() {
181
- const productCodes = this.options.map(option => option.productCode).filter(Boolean);
187
+ const productCodes = Array.from(new Set(this.options
188
+ .filter(option => !option.productData)
189
+ .map(option => option.productCode)
190
+ .filter(Boolean)));
191
+ let fetchedProductData = {};
182
192
  if (productCodes.length) {
183
193
  try {
184
194
  const response = await productComparison(productCodes.join(','));
185
- this.allProductData = response['products'] || {};
195
+ fetchedProductData = response['products'] || {};
186
196
  }
187
197
  catch (e) {
188
- this.allProductData = {};
189
198
  console.error(e);
190
199
  }
191
200
  }
192
- else {
193
- this.allProductData = {};
194
- }
201
+ this.allProductData = this.options.reduce((productData, option) => {
202
+ const productId = this.getOptionId(option);
203
+ const data = option.productCode ? fetchedProductData[option.productCode] : undefined;
204
+ if (productId && data) {
205
+ productData[productId] = data;
206
+ }
207
+ return productData;
208
+ }, {});
195
209
  this.showLoader = false;
196
- this.cardLoaded.emit();
197
210
  }
198
211
  /**
199
212
  * Returns contract term data matching current `contractTerm` prop.
200
213
  */
201
214
  selectedContractTerm() {
202
- const contractTerms = this.allProductData[this.selectedProductCode]?.contractTerms;
215
+ const contractTerms = this.allProductData[this.selectedProductId]?.contractTerms;
203
216
  if (!contractTerms?.length) {
204
217
  return;
205
218
  }
206
219
  return contractTerms.find((contractTerm) => contractTerm.term === this.contractTerm);
207
220
  }
208
- currentBonuses() {
209
- const option = this.options.find(option => option.productCode === this.selectedProductCode);
210
- return option?.bonuses ?? [];
211
- }
212
- allBonuses() {
213
- return this.options.flatMap(option => option.bonuses || []);
214
- }
215
- /**
216
- * Returns a stable ID for each bonus object across renders.
217
- */
218
- getUniqueBonusId(bonus) {
219
- const existingId = this.bonusWeakMap.get(bonus);
220
- if (existingId) {
221
- return existingId;
222
- }
223
- const nextId = `bonus-${this.bonusCounter++}`;
224
- this.bonusWeakMap.set(bonus, nextId);
225
- return nextId;
226
- }
227
221
  /**
228
222
  * Chooses semantic element tag from provided data attributes.
229
223
  */
@@ -238,19 +232,8 @@ export class TetCompareCardV3 {
238
232
  }
239
233
  return 'div';
240
234
  }
241
- renderBenefit(benefit) {
242
- const attributes = Array.isArray(benefit.dataAttributes) ? undefined : benefit.dataAttributes;
243
- const isInteractive = Boolean(attributes && Object.keys(attributes).length > 0);
244
- const ElementTag = this.getElementTag(attributes);
245
- const hasTitle = !!benefit.title;
246
- const hasBenefit = !!benefit.icon && !!benefit.name;
247
- return (h(Fragment, null, hasTitle && (h("div", { class: "benefits__title" }, benefit.title)), hasBenefit && (h(ElementTag, { class: {
248
- 'benefit': true,
249
- 'benefit--interactive': isInteractive,
250
- }, key: benefit.toggleKey, ...(attributes || {}) }, h("tet-icon", { theme: this.theme, class: "benefit__icon", name: benefit.icon }), h("span", { class: "benefit__text" }, benefit.name), isInteractive && (h("div", { class: "benefit__chevron-icon-container" }, h("tet-icon", { class: "benefit__icon benefit__icon--chevron", name: "tc-chevron-right-small" })))))));
251
- }
252
- renderSwitch(benefit) {
253
- const { toggleKey } = benefit;
235
+ renderSwitch(toggle) {
236
+ const { toggleKey, icon, name } = toggle;
254
237
  if (!toggleKey) {
255
238
  return null;
256
239
  }
@@ -258,85 +241,134 @@ export class TetCompareCardV3 {
258
241
  const switchKey = isPreselected
259
242
  ? `${toggleKey}-${this.preselectedRemountId}`
260
243
  : toggleKey;
261
- const hasTitle = !!benefit.title;
262
- return (h(Fragment, null, hasTitle && (h("div", { class: "benefits__title" }, benefit.title)), h("div", { class: "switch-wrapper" }, h("tet-switch", { class: "switch", theme: this.theme, key: switchKey, name: toggleKey, checked: this.selectedSwitchKeys.includes(toggleKey), onCheck: (e) => this.handleSwitchToggle(toggleKey, e.detail.checked), labelPosition: "left", focusStyleOnContainer: true }, h("div", { class: "switch-label" }, h("tet-icon", { theme: this.theme, class: "benefit__icon", name: benefit.icon }), benefit.name)))));
244
+ return (h("div", { class: "switch-wrapper" }, h("tet-switch", { class: "switch", theme: this.theme, key: switchKey, name: toggleKey, checked: this.selectedSwitchKeys.includes(toggleKey), onCheck: (e) => this.handleSwitchToggle(toggleKey, e.detail.checked), labelPosition: "left", focusStyleOnContainer: true }, h("div", { class: "switch-label" }, h("tet-icon", { theme: this.theme, class: "benefit__icon", name: icon }), name))));
263
245
  }
264
246
  /**
265
- * Renders bonuses and marks bonuses outside current product as inactive.
247
+ * Renders bonus groups for the selected product.
266
248
  */
267
249
  renderBonuses() {
268
- const currentBonusIds = new Set(this.currentBonuses().map(this.getUniqueBonusId.bind(this)));
269
- const allBonuses = this.allBonuses();
270
- const bonusTitle = this.options.find(option => option.productCode === this.selectedProductCode)?.bonusTitle;
271
- if (allBonuses.length < 1) {
250
+ const option = this.getOptionById(this.selectedProductId);
251
+ const groups = option?.bonuses ?? [];
252
+ if (groups.length < 1) {
272
253
  return null;
273
254
  }
274
- return (h("div", { class: "bonuses" }, !!bonusTitle && (h("div", { class: "bonuses__title" }, bonusTitle)), h("div", { class: "bonuses__bonus-container" }, allBonuses.map((bonus) => {
275
- const id = this.getUniqueBonusId(bonus);
276
- const isActive = currentBonusIds.has(id);
277
- const attributes = Array.isArray(bonus.dataAttributes) ? undefined : bonus.dataAttributes;
278
- const isInteractive = Boolean(attributes && Object.keys(attributes).length > 0);
279
- const ElementTag = this.getElementTag(attributes);
280
- return (h(ElementTag, { key: id, type: isInteractive ? 'button' : undefined, class: {
281
- 'bonus': true,
282
- 'bonus--inactive': !isActive,
283
- 'bonus--interactive': isInteractive,
284
- }, ...(attributes || {}) }, h("tet-icon", { theme: this.theme, class: "bonus__icon", name: bonus.iconName }), h("span", { class: "bonus__text" }, bonus.name), isInteractive && (h("div", { class: "bonus__chevron-icon-container" }, h("tet-icon", { class: "bonus__icon bonus__icon--chevron", name: "tc-chevron-right-small" })))));
285
- }))));
255
+ return (h("div", { class: "bonuses" }, groups.map((group) => {
256
+ const items = group.items ?? [];
257
+ if (!items.length) {
258
+ return null;
259
+ }
260
+ return (h("div", { class: "bonuses__bonus-container" }, !!group.title && h("div", { class: "section-title" }, group.title), items.map((bonus) => {
261
+ const attributes = Array.isArray(bonus.dataAttributes) ? undefined : bonus.dataAttributes;
262
+ const ElementTag = this.getElementTag(attributes);
263
+ const isInteractive = ['a', 'button'].includes(ElementTag);
264
+ return (h(ElementTag, { type: ElementTag === 'button' ? 'button' : undefined, class: {
265
+ 'bonus': true,
266
+ 'bonus--interactive': isInteractive,
267
+ }, ...(attributes || {}) }, h("tet-icon", { theme: this.theme, class: "bonus__icon", name: bonus.iconName }), h("span", { class: "bonus__text" }, bonus.name), isInteractive && (h("div", { class: "bonus__chevron-icon-container" }, h("tet-icon", { class: "bonus__icon bonus__icon--chevron", name: "tc-chevron-right-small" })))));
268
+ })));
269
+ })));
286
270
  }
287
271
  renderRadioOptions() {
288
272
  const selectionOptions = this.getSelectionOptions();
289
- return (h("div", { class: "radio-container" }, selectionOptions.map((option) => (h("div", { class: "radio-wrapper" }, h("tet-radio", { class: "radio", theme: this.theme, name: "radio-card-options", label: option.label, value: option.value, checked: this.selectedProductCode === option.value, focusStyleOnContainer: true, onCheck: (event) => this.onOptionSelected(event) }))))));
273
+ return (h("div", { class: "radio-container" }, selectionOptions.map((option) => (h("div", { class: "radio-wrapper" }, h("tet-radio", { class: "radio", theme: this.theme, name: "radio-card-options", label: option.label, value: option.value, checked: this.selectedProductId === option.value, focusStyleOnContainer: true, onCheck: (event) => this.onOptionSelected(event) }))))));
290
274
  }
291
- renderPrice(price, parsedPrice, priceDescription) {
292
- if (!price || Number.isNaN(parsedPrice)) {
275
+ renderPrice({ contractPrice: price, basePrice, priceDescription, showDiscount }) {
276
+ const parsedPrice = Number.parseFloat(price.replace(',', '.'));
277
+ const parsedBasePrice = Number.parseFloat(basePrice.replace(',', '.'));
278
+ const showStripedPrice = showDiscount && Number.isFinite(parsedBasePrice);
279
+ if (!price || !Number.isFinite(parsedPrice)) {
293
280
  return null;
294
281
  }
295
- return (h("div", { class: "price-wrapper" }, h("div", { class: "price-container" }, h("div", { class: "price-container__price translation-none" }, parsedPrice.toFixed(2).replace('.', ',')), h("div", { class: "price-container__currency" }, h("span", null, this.currency))), priceDescription && h("span", { class: "price-container__description" }, priceDescription)));
282
+ return (h("div", { class: "price-wrapper" }, h("div", { class: "price-container" }, h("div", { class: "price-container__price-group" }, h("div", { class: "price-container__price translation-none" }, parsedPrice.toFixed(2).replace('.', ',')), h("div", { class: "price-container__currency" }, h("span", null, this.currency))), showStripedPrice && (h("div", { class: "price-container__base-price translation-none" }, h("span", null, parsedBasePrice.toFixed(2).replace('.', ',')), h("span", null, this.currency)))), priceDescription && h("span", { class: "price-container__description" }, priceDescription)));
296
283
  }
297
- renderBenefitsSection() {
284
+ getPriceData(manualProductData, comparisonData, contractTermData) {
285
+ const contractPrice = (manualProductData?.discountPrice ??
286
+ manualProductData?.price ??
287
+ contractTermData?.amount ??
288
+ '').toString();
289
+ const basePrice = (manualProductData?.price ?? comparisonData?.amount ?? '').toString();
290
+ const parsedContractPrice = Number.parseFloat(contractPrice.replace(',', '.'));
291
+ const parsedBasePrice = Number.parseFloat(basePrice.replace(',', '.'));
292
+ const showDiscount = Number.isFinite(parsedContractPrice) &&
293
+ Number.isFinite(parsedBasePrice) &&
294
+ parsedBasePrice > parsedContractPrice;
295
+ return {
296
+ contractPrice,
297
+ basePrice,
298
+ priceDescription: manualProductData?.priceDescription ?? contractTermData?.priceDescription?.[this.language] ?? '',
299
+ showDiscount,
300
+ };
301
+ }
302
+ renderControl(selectionOptions) {
303
+ switch (this.cardType) {
304
+ case 'switcher':
305
+ return (h("div", { class: "benefits" }, h("div", null, this.toggles.map(toggle => this.renderSwitch(toggle)))));
306
+ case 'dropdown':
307
+ return (h("tet-dropdown", { id: "dropdown", class: "dropdown", theme: this.theme, "button-label": "", "close-on-selection": "true", "flex-layout": "true", options: selectionOptions }));
308
+ case 'radio':
309
+ return this.renderRadioOptions();
310
+ default:
311
+ return null;
312
+ }
313
+ }
314
+ renderControls() {
298
315
  const selectionOptions = this.getSelectionOptions();
299
- if (this.cardType === 'switcher') {
300
- return (h("div", { class: "benefits" }, h("div", null, this.benefits.map((benefit) => this.renderSwitch(benefit)))));
316
+ const renderTitle = !!this.controlsTitle && this.cardType !== 'static';
317
+ const control = this.renderControl(selectionOptions);
318
+ if (!control) {
319
+ return null;
301
320
  }
302
- const renderedBenefits = this.benefits.map((benefit) => this.renderBenefit(benefit));
303
- return (h("div", { class: "benefits" }, h("div", { class: "benefits__benefit-container" }, renderedBenefits, this.cardType === 'dropdown' && (h("tet-dropdown", { id: "dropdown", class: "dropdown", theme: this.theme, "button-label": "", "close-on-selection": "true", "flex-layout": "true", options: selectionOptions })), this.cardType === 'radio' && this.renderRadioOptions())));
321
+ return (h("div", { class: "controls" }, renderTitle && h("div", { class: "section-title" }, this.controlsTitle), control));
304
322
  }
323
+ buildLinkWithParams(baseUrl, params) {
324
+ if (!baseUrl) {
325
+ return '';
326
+ }
327
+ const url = new URL(baseUrl);
328
+ params.forEach((value, key) => {
329
+ url.searchParams.append(key, value);
330
+ });
331
+ return url.toString();
332
+ }
333
+ ;
305
334
  /**
306
335
  * Renders the card body.
307
336
  * @returns rendered card body.
308
337
  */
309
338
  renderCard() {
310
- const comparisonData = this.allProductData[this.selectedProductCode];
339
+ const comparisonData = this.allProductData[this.selectedProductId];
340
+ const selectedOption = this.getOptionById(this.selectedProductId);
341
+ const manualProductData = selectedOption?.productData;
311
342
  const contractTermData = this.selectedContractTerm();
312
343
  const overrideProductName = comparisonData?.attributes?.find(attr => attr.key === 'overrideProductName')?.value;
313
- const mainTitle = overrideProductName ?? comparisonData?.name?.[this.language];
314
- const price = contractTermData?.amount.toString() ?? '';
315
- const parsedPrice = Number.parseFloat(price.replace(',', '.'));
344
+ const mainTitle = manualProductData?.name ?? overrideProductName ?? comparisonData?.name?.[this.language];
345
+ const priceData = this.getPriceData(manualProductData, comparisonData, contractTermData);
316
346
  const promotionCode = contractTermData?.promotionCode ?? '';
317
347
  const term = contractTermData?.term ?? '';
318
- const priceDescription = contractTermData?.priceDescription?.[this.language] ?? '';
319
- const secondaryLink = this.secondaryLink || contractTermData?.contract || '';
348
+ const secondaryLink = this.secondaryLink || manualProductData?.contractUrl || contractTermData?.contract || '';
320
349
  const shouldRenderSecondaryLink = !!secondaryLink && !!this.secondaryLinkText;
321
350
  const secondaryLinkTarget = this.secondaryLinkOpenBlank ? '_blank' : undefined;
322
351
  const secondaryLinkRel = this.secondaryLinkOpenBlank ? 'noopener noreferrer' : undefined;
323
352
  const baseUrl = comparisonData?.formUrl?.[this.language] || '';
324
353
  const params = new URLSearchParams({
325
354
  contractTerm: term?.toString() ?? '',
326
- product: this.selectedProductCode,
355
+ product: selectedOption?.productCode ?? '',
327
356
  promotion: promotionCode ?? '',
328
357
  lang: this.language ?? '',
329
358
  from: 'tet.lv'
330
359
  });
331
- const link = `${baseUrl}${baseUrl.includes('?') ? '&' : '?'}${params.toString()}`;
332
- const isBestChoice = !!this.options.find(option => option.productCode === this.selectedProductCode)?.bestChoice;
333
- return (h("div", { class: { 'card': true, 'best-choice': isBestChoice } }, this.bestChoiceText && (h("div", { class: { 'best-choice-title': true, 'active': isBestChoice } }, this.bestChoiceText)), h("div", { class: "content content__top" }, mainTitle && h("h3", { class: "title" }, mainTitle), this.renderPrice(price, parsedPrice, priceDescription), h("tet-button", { class: "button", type: "primary", theme: "light", size: this.buttonSize, url: link, urlTarget: this.linkOpenBlank ? '_blank' : '_self' }, this.buttonTitle), shouldRenderSecondaryLink && (h("div", { class: "secondary-link" }, h("a", { class: "tet-link", href: secondaryLink, target: secondaryLinkTarget, rel: secondaryLinkRel }, this.secondaryLinkText)))), h("div", { class: "content content__bottom" }, this.renderBonuses(), this.renderBenefitsSection())));
360
+ const link = manualProductData ? manualProductData.formUrl : this.buildLinkWithParams(baseUrl, params);
361
+ const isBestChoice = !!selectedOption?.bestChoice;
362
+ const cardLabel = selectedOption?.cardLabel;
363
+ return (h("div", { class: { 'card': true, 'best-choice': isBestChoice } }, this.bestChoiceText && (h("div", { class: { 'best-choice-title': true, 'active': isBestChoice } }, !!this.bestChoiceIconName && (h("tet-icon", { class: "best-choice-title__icon ", name: this.bestChoiceIconName })), h("span", null, this.bestChoiceText))), h("div", { class: "content content__top" }, mainTitle && h("h3", { class: "title" }, mainTitle), this.renderPrice(priceData), !!cardLabel && (h("p", { class: "card-label" }, cardLabel)), h("tet-button", { class: "button", type: "primary", theme: "light", size: this.buttonSize, url: link, urlTarget: this.linkOpenBlank ? '_blank' : '_self' }, this.buttonTitle), shouldRenderSecondaryLink && (h("div", { class: "secondary-link" }, h("a", { class: "tet-link", href: secondaryLink, target: secondaryLinkTarget, rel: secondaryLinkRel }, this.secondaryLinkText)))), h("div", { class: "content content__bottom" }, this.showControlsFirst
364
+ ? [this.renderControls(), this.renderBonuses()]
365
+ : [this.renderBonuses(), this.renderControls()])));
334
366
  }
335
367
  /**
336
368
  * Renders the loader.
337
369
  */
338
370
  renderLoader() {
339
- return (h("tet-placeholder", { class: "card__placeholder", height: "37rem", width: "100%", darkTheme: this.theme === 'dark' }));
371
+ return (h("tet-placeholder", { class: "card__placeholder", height: "100%", width: "100%", darkTheme: this.theme === 'dark' }));
340
372
  }
341
373
  render() {
342
374
  if (this.showLoader) {
@@ -394,24 +426,6 @@ export class TetCompareCardV3 {
394
426
  "reflect": false,
395
427
  "defaultValue": "'light'"
396
428
  },
397
- "bestChoice": {
398
- "type": "boolean",
399
- "mutable": false,
400
- "complexType": {
401
- "original": "boolean",
402
- "resolved": "boolean",
403
- "references": {}
404
- },
405
- "required": false,
406
- "optional": false,
407
- "docs": {
408
- "tags": [],
409
- "text": "The disabled state of the bestChoice card."
410
- },
411
- "attribute": "best-choice",
412
- "reflect": false,
413
- "defaultValue": "false"
414
- },
415
429
  "language": {
416
430
  "type": "string",
417
431
  "mutable": false,
@@ -434,13 +448,13 @@ export class TetCompareCardV3 {
434
448
  "type": "unknown",
435
449
  "mutable": false,
436
450
  "complexType": {
437
- "original": "CompareCardInterfaceV3[]",
438
- "resolved": "CompareCardInterfaceV3[]",
451
+ "original": "Option[]",
452
+ "resolved": "Option[]",
439
453
  "references": {
440
- "CompareCardInterfaceV3": {
454
+ "Option": {
441
455
  "location": "local",
442
456
  "path": "/__w/internal-tet-web-components-tet-components/internal-tet-web-components-tet-components/src/src/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.tsx",
443
- "id": "src/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.tsx::CompareCardInterfaceV3"
457
+ "id": "src/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.tsx::Option"
444
458
  }
445
459
  }
446
460
  },
@@ -448,37 +462,21 @@ export class TetCompareCardV3 {
448
462
  "optional": false,
449
463
  "docs": {
450
464
  "tags": [],
451
- "text": "Product variants available in this card.\nUsed as the source for dropdown/radio/switcher selection and to resolve\nthe active variant data (productCode, keys, labels, bonuses, etc.)."
465
+ "text": "Product variants available in this card.\nUsed as the source for dropdown/radio/switcher selection and to resolve\nthe active variant data. Provide `productCode` for API-backed data, or an\n`id` with `productData` for a manually supplied product."
452
466
  },
453
467
  "defaultValue": "[]"
454
468
  },
455
- "bonuses": {
469
+ "toggles": {
456
470
  "type": "unknown",
457
471
  "mutable": false,
458
472
  "complexType": {
459
- "original": "string[]",
460
- "resolved": "string[]",
461
- "references": {}
462
- },
463
- "required": false,
464
- "optional": false,
465
- "docs": {
466
- "tags": [],
467
- "text": "Additional bonuses shown on the card.\nBonuses are product-specific."
468
- },
469
- "defaultValue": "[]"
470
- },
471
- "benefits": {
472
- "type": "unknown",
473
- "mutable": false,
474
- "complexType": {
475
- "original": "BenefitInterfaceV3[]",
476
- "resolved": "BenefitInterfaceV3[]",
473
+ "original": "Toggle[]",
474
+ "resolved": "Toggle[]",
477
475
  "references": {
478
- "BenefitInterfaceV3": {
476
+ "Toggle": {
479
477
  "location": "local",
480
478
  "path": "/__w/internal-tet-web-components-tet-components/internal-tet-web-components-tet-components/src/src/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.tsx",
481
- "id": "src/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.tsx::BenefitInterfaceV3"
479
+ "id": "src/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.tsx::Toggle"
482
480
  }
483
481
  }
484
482
  },
@@ -486,7 +484,7 @@ export class TetCompareCardV3 {
486
484
  "optional": false,
487
485
  "docs": {
488
486
  "tags": [],
489
- "text": "Additional benefits shown on the card.\nBenefits are shared across all products."
487
+ "text": "Toggle configuration for the `switcher` card type."
490
488
  },
491
489
  "defaultValue": "[]"
492
490
  },
@@ -508,6 +506,23 @@ export class TetCompareCardV3 {
508
506
  "reflect": false,
509
507
  "defaultValue": "0"
510
508
  },
509
+ "controlsTitle": {
510
+ "type": "string",
511
+ "mutable": false,
512
+ "complexType": {
513
+ "original": "string",
514
+ "resolved": "string",
515
+ "references": {}
516
+ },
517
+ "required": false,
518
+ "optional": true,
519
+ "docs": {
520
+ "tags": [],
521
+ "text": "Defines the title for the controls section."
522
+ },
523
+ "attribute": "controls-title",
524
+ "reflect": false
525
+ },
511
526
  "bestChoiceText": {
512
527
  "type": "string",
513
528
  "mutable": false,
@@ -517,14 +532,30 @@ export class TetCompareCardV3 {
517
532
  "references": {}
518
533
  },
519
534
  "required": false,
520
- "optional": false,
535
+ "optional": true,
521
536
  "docs": {
522
537
  "tags": [],
523
538
  "text": "This prop defines best choice text for the card."
524
539
  },
525
540
  "attribute": "best-choice-text",
526
- "reflect": false,
527
- "defaultValue": "''"
541
+ "reflect": false
542
+ },
543
+ "bestChoiceIconName": {
544
+ "type": "string",
545
+ "mutable": false,
546
+ "complexType": {
547
+ "original": "string",
548
+ "resolved": "string",
549
+ "references": {}
550
+ },
551
+ "required": false,
552
+ "optional": true,
553
+ "docs": {
554
+ "tags": [],
555
+ "text": "This prop defines best choice icon name for the card."
556
+ },
557
+ "attribute": "best-choice-icon-name",
558
+ "reflect": false
528
559
  },
529
560
  "currency": {
530
561
  "type": "string",
@@ -633,16 +664,34 @@ export class TetCompareCardV3 {
633
664
  "attribute": "link-open-blank",
634
665
  "reflect": false,
635
666
  "defaultValue": "false"
667
+ },
668
+ "showControlsFirst": {
669
+ "type": "boolean",
670
+ "mutable": false,
671
+ "complexType": {
672
+ "original": "boolean",
673
+ "resolved": "boolean",
674
+ "references": {}
675
+ },
676
+ "required": false,
677
+ "optional": false,
678
+ "docs": {
679
+ "tags": [],
680
+ "text": "Determines whether controls are displayed before bonuses."
681
+ },
682
+ "attribute": "show-controls-first",
683
+ "reflect": false,
684
+ "defaultValue": "false"
636
685
  }
637
686
  };
638
687
  }
639
688
  static get states() {
640
689
  return {
641
690
  "showLoader": {},
642
- "selectedProductCode": {},
691
+ "selectedProductId": {},
643
692
  "selectedSwitchKeys": {},
644
693
  "preselectedKeys": {},
645
- "preselectedProductCode": {},
694
+ "preselectedProductId": {},
646
695
  "allProductData": {},
647
696
  "preselectedRemountId": {},
648
697
  "buttonSize": {}