@tet/tet-components 1.3.157-testing → 1.4.0-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 (722) hide show
  1. package/dist/cjs/{address-5271d3aa.js → address-b695d769.js} +1 -1
  2. package/dist/cjs/{assets-e3bb045c.js → assets-39f8cd2c.js} +1 -1
  3. package/dist/cjs/{async-request-29b32d63.js → async-request-77d8e0b8.js} +27 -26
  4. package/dist/cjs/compare-cards-tab-products-filters-10b06fe0.js +100 -0
  5. package/dist/cjs/{http-codes-2f72a8b2.js → http-codes-38914116.js} +25 -19
  6. package/dist/cjs/{index-f559cb2e.js → index-28359ea5.js} +1672 -1598
  7. package/dist/cjs/{index-84ede372.js → index-bf7cfd19.js} +1 -1
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/{phone-d414fe5a.js → phone-ed64bd26.js} +8 -6
  10. package/dist/cjs/{product-comparison-f784fb1b.js → product-comparison-ae2ccae4.js} +1 -1
  11. package/dist/cjs/{tasks-af99ad61.js → tasks-57ad40ae.js} +2 -2
  12. package/dist/cjs/tet-accordion_2.cjs.entry.js +62 -46
  13. package/dist/cjs/tet-address-offers-filters-products_2.cjs.entry.js +249 -232
  14. package/dist/cjs/tet-address-offers-view.cjs.entry.js +43 -35
  15. package/dist/cjs/tet-address-offers_4.cjs.entry.js +343 -313
  16. package/dist/cjs/tet-address-search.cjs.entry.js +175 -167
  17. package/dist/cjs/tet-asset-addresses.cjs.entry.js +106 -95
  18. package/dist/cjs/tet-autocomplete-dropdown.cjs.entry.js +40 -30
  19. package/dist/cjs/tet-autocomplete.cjs.entry.js +203 -190
  20. package/dist/cjs/tet-b2b-check-out-form_5.cjs.entry.js +280 -241
  21. package/dist/cjs/tet-b2b-configurator.cjs.entry.js +396 -378
  22. package/dist/cjs/tet-b2b-service-calculator.cjs.entry.js +28 -28
  23. package/dist/cjs/tet-banner-nav.cjs.entry.js +23 -11
  24. package/dist/cjs/tet-bar-graph.cjs.entry.js +222 -215
  25. package/dist/cjs/tet-border-radius.cjs.entry.js +1 -1
  26. package/dist/cjs/tet-business-card.cjs.entry.js +38 -32
  27. package/dist/cjs/tet-business-compare-card.cjs.entry.js +18 -11
  28. package/dist/cjs/tet-business-lines.cjs.entry.js +25 -26
  29. package/dist/cjs/tet-business-round-stepper.cjs.entry.js +10 -10
  30. package/dist/cjs/tet-button.cjs.entry.js +9 -9
  31. package/dist/cjs/tet-card-list.cjs.entry.js +557 -530
  32. package/dist/cjs/tet-carousel.cjs.entry.js +180 -184
  33. package/dist/cjs/tet-checkbox.cjs.entry.js +15 -11
  34. package/dist/cjs/tet-cloud-application-form-dialog.cjs.entry.js +30 -4
  35. package/dist/cjs/tet-cloud-configurator.cjs.entry.js +132 -124
  36. package/dist/cjs/tet-colors.cjs.entry.js +42 -42
  37. package/dist/cjs/tet-compare-card-v2.cjs.entry.js +51 -49
  38. package/dist/cjs/tet-compare-cards-tab.cjs.entry.js +29 -28
  39. package/dist/cjs/tet-compare-cards_2.cjs.entry.js +41 -34
  40. package/dist/cjs/tet-components.cjs.js +3 -3
  41. package/dist/cjs/tet-contact-form.cjs.entry.js +55 -46
  42. package/dist/cjs/tet-contact-info.cjs.entry.js +1 -1
  43. package/dist/cjs/tet-container_2.cjs.entry.js +62 -58
  44. package/dist/cjs/tet-customer-assets.cjs.entry.js +90 -85
  45. package/dist/cjs/tet-datepicker-header_4.cjs.entry.js +202 -187
  46. package/dist/cjs/tet-datepicker.cjs.entry.js +35 -30
  47. package/dist/cjs/tet-dialog.cjs.entry.js +41 -35
  48. package/dist/cjs/tet-dropdown_2.cjs.entry.js +137 -115
  49. package/dist/cjs/tet-dynamic-card.cjs.entry.js +68 -71
  50. package/dist/cjs/tet-expandable-input.cjs.entry.js +97 -80
  51. package/dist/cjs/tet-expansion-panel.cjs.entry.js +17 -19
  52. package/dist/cjs/tet-filter.cjs.entry.js +26 -11
  53. package/dist/cjs/tet-font-weight.cjs.entry.js +1 -1
  54. package/dist/cjs/tet-fonts.cjs.entry.js +1 -1
  55. package/dist/cjs/tet-grid.cjs.entry.js +1 -1
  56. package/dist/cjs/tet-icon.cjs.entry.js +25 -24
  57. package/dist/cjs/tet-inline-message.cjs.entry.js +7 -7
  58. package/dist/cjs/tet-input.cjs.entry.js +47 -37
  59. package/dist/cjs/tet-label.cjs.entry.js +3 -3
  60. package/dist/cjs/tet-layout.cjs.entry.js +1 -1
  61. package/dist/cjs/tet-link.cjs.entry.js +1 -1
  62. package/dist/cjs/tet-loader.cjs.entry.js +1 -1
  63. package/dist/cjs/tet-macd-view.cjs.entry.js +50 -23
  64. package/dist/cjs/tet-menu-mobile.cjs.entry.js +13 -14
  65. package/dist/cjs/tet-menu.cjs.entry.js +4 -5
  66. package/dist/cjs/tet-multi-step-dialog.cjs.entry.js +86 -72
  67. package/dist/cjs/tet-navigation-mobile.cjs.entry.js +19 -15
  68. package/dist/cjs/tet-news-card-list.cjs.entry.js +35 -36
  69. package/dist/cjs/tet-number-input.cjs.entry.js +56 -42
  70. package/dist/cjs/tet-placeholder.cjs.entry.js +1 -1
  71. package/dist/cjs/tet-price-view.cjs.entry.js +4 -4
  72. package/dist/cjs/tet-radio.cjs.entry.js +11 -7
  73. package/dist/cjs/tet-range-slider.cjs.entry.js +632 -620
  74. package/dist/cjs/tet-referral.cjs.entry.js +30 -26
  75. package/dist/cjs/tet-round-stepper.cjs.entry.js +2 -2
  76. package/dist/cjs/tet-spacing.cjs.entry.js +1 -1
  77. package/dist/cjs/tet-spinner.cjs.entry.js +16 -16
  78. package/dist/cjs/tet-stepper-input.cjs.entry.js +32 -26
  79. package/dist/cjs/tet-stepper-v2.cjs.entry.js +28 -29
  80. package/dist/cjs/tet-stepper-v3.cjs.entry.js +20 -21
  81. package/dist/cjs/tet-stepper.cjs.entry.js +62 -63
  82. package/dist/cjs/tet-switch.cjs.entry.js +4 -2
  83. package/dist/cjs/tet-tab-header.cjs.entry.js +68 -65
  84. package/dist/cjs/tet-table.cjs.entry.js +132 -138
  85. package/dist/cjs/tet-tag_2.cjs.entry.js +11 -11
  86. package/dist/cjs/tet-text-list.cjs.entry.js +12 -4
  87. package/dist/cjs/tet-textarea.cjs.entry.js +14 -14
  88. package/dist/cjs/tet-thank-you-view-v2.cjs.entry.js +36 -33
  89. package/dist/cjs/tet-thank-you-view-v3.cjs.entry.js +36 -33
  90. package/dist/cjs/tet-thank-you-view.cjs.entry.js +52 -46
  91. package/dist/cjs/tet-tv-gift-block.cjs.entry.js +15 -15
  92. package/dist/cjs/tet-tv-gift-list.cjs.entry.js +15 -15
  93. package/dist/cjs/{theme-wrapper-a5bbadf6.js → theme-wrapper-6ae60d67.js} +2 -2
  94. package/dist/cjs/{translations-ed68775f.js → translations-2637e1f9.js} +52 -51
  95. package/dist/cjs/{utils-ac9be2ff.js → utils-1f67c4b7.js} +23 -8
  96. package/dist/collection/collection-manifest.json +1 -1
  97. package/dist/collection/components/advanced/address/tet-address-offers/tet-address-offers.js +108 -101
  98. package/dist/collection/components/advanced/address/tet-address-offers-filters/address-offers-filters.js +128 -129
  99. package/dist/collection/components/advanced/address/tet-address-offers-filters/tet-address-offers-filters.js +17 -17
  100. package/dist/collection/components/advanced/address/tet-address-offers-filters-products/address-offers-products-filters.js +90 -89
  101. package/dist/collection/components/advanced/address/tet-address-offers-filters-products/tet-address-offers-filters-products.js +33 -19
  102. package/dist/collection/components/advanced/address/tet-address-search/tet-address-search.js +171 -163
  103. package/dist/collection/components/advanced/address/tet-autocomplete/tet-autocomplete.js +203 -206
  104. package/dist/collection/components/advanced/address/tet-autocomplete-dropdown/tet-autocomplete-dropdown.js +39 -29
  105. package/dist/collection/components/advanced/cards/tet-b2b-compare-card/tet-b2b-compare-card.js +75 -62
  106. package/dist/collection/components/advanced/cards/tet-business-card/tet-business-card.js +40 -30
  107. package/dist/collection/components/advanced/cards/tet-business-compare-card/tet-business-compare-card.js +17 -10
  108. package/dist/collection/components/advanced/cards/tet-business-summary-card/tet-business-summary-card.js +38 -32
  109. package/dist/collection/components/advanced/cards/tet-card-list/tet-card-list.js +356 -337
  110. package/dist/collection/components/advanced/cards/tet-compare-card/tet-compare-card.js +125 -119
  111. package/dist/collection/components/advanced/cards/tet-compare-card-v2/tet-compare-card-v2.js +51 -45
  112. package/dist/collection/components/advanced/cards/tet-compare-cards/tet-compare-cards.js +21 -15
  113. package/dist/collection/components/advanced/cards/tet-compare-cards-tab/compare-cards-tab-products-filters.js +89 -88
  114. package/dist/collection/components/advanced/cards/tet-compare-cards-tab/tet-compare-cards-tab.js +25 -22
  115. package/dist/collection/components/advanced/cards/tet-dynamic-card/tet-dynamic-card.js +67 -70
  116. package/dist/collection/components/advanced/cards/utils.js +23 -8
  117. package/dist/collection/components/advanced/customer/tet-asset-addresses/tet-asset-addresses.js +103 -92
  118. package/dist/collection/components/advanced/customer/tet-asset-availability-addresses/tet-asset-availability-addresses.js +29 -14
  119. package/dist/collection/components/advanced/customer/tet-customer-assets/tet-customer-assets.js +87 -82
  120. package/dist/collection/components/advanced/customer/tet-referral/tet-referral.js +24 -19
  121. package/dist/collection/components/advanced/dialog/tet-multi-step-dialog/tet-multi-step-dialog.js +83 -69
  122. package/dist/collection/components/advanced/forms/tet-availability-contact-form/tet-availability-contact-form.js +54 -43
  123. package/dist/collection/components/advanced/forms/tet-b2b-check-out-form/tet-b2b-check-out-form.js +11 -3
  124. package/dist/collection/components/advanced/forms/tet-contact-form/tet-contact-form.js +49 -40
  125. package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-block/tet-tv-gift-block.js +14 -13
  126. package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-list/tet-tv-gift-list.js +15 -13
  127. package/dist/collection/components/basic/buttons/tet-button/tet-button.js +8 -8
  128. package/dist/collection/components/basic/buttons/tet-checkbox/tet-checkbox.js +14 -10
  129. package/dist/collection/components/basic/buttons/tet-radio/tet-radio.js +10 -6
  130. package/dist/collection/components/basic/buttons/tet-switch/tet-switch.js +3 -1
  131. package/dist/collection/components/basic/buttons/tet-tabs/tet-tab-content/tet-tab-content.js +17 -13
  132. package/dist/collection/components/basic/buttons/tet-tabs/tet-tab-header/tet-tab-header.js +67 -63
  133. package/dist/collection/components/basic/buttons/tet-tag-group/tet-tag-group.js +8 -8
  134. package/dist/collection/components/basic/carousel/tet-carousel/tet-carousel.js +177 -181
  135. package/dist/collection/components/basic/icon/tet-icon.js +23 -22
  136. package/dist/collection/components/basic/loaders/tet-spinner/tet-spinner.js +15 -14
  137. package/dist/collection/components/basic/steppers/tet-banner-nav/tet-banner-nav.js +20 -8
  138. package/dist/collection/components/basic/steppers/tet-business-round-stepper/tet-business-round-stepper.js +9 -9
  139. package/dist/collection/components/basic/steppers/tet-round-stepper/tet-round-stepper.js +4 -0
  140. package/dist/collection/components/basic/steppers/tet-stepper/tet-stepper.js +61 -62
  141. package/dist/collection/components/basic/steppers/tet-stepper-v2/tet-stepper-v2.js +27 -28
  142. package/dist/collection/components/basic/steppers/tet-stepper-v3/tet-stepper-v3.js +19 -20
  143. package/dist/collection/components/simple/filter/tet-filter/tet-filter.js +25 -10
  144. package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-header/tet-datepicker-header.js +20 -16
  145. package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-month-view/tet-datepicker-month-view.js +135 -132
  146. package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-multi-year-view/tet-datepicker-multi-year-view.js +20 -17
  147. package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-year-view/tet-datepicker-year-view.js +26 -21
  148. package/dist/collection/components/simple/inputs/tet-datepicker/tet-datepicker.js +34 -28
  149. package/dist/collection/components/simple/inputs/tet-dropdown/tet-dropdown.js +20 -8
  150. package/dist/collection/components/simple/inputs/tet-expandable-input/tet-expandable-input.js +99 -78
  151. package/dist/collection/components/simple/inputs/tet-input/tet-input.js +44 -34
  152. package/dist/collection/components/simple/inputs/tet-number-input/tet-number-input.js +55 -41
  153. package/dist/collection/components/simple/inputs/tet-range-slider/tet-range-slider.js +631 -618
  154. package/dist/collection/components/simple/inputs/tet-stepper-input/tet-stepper-input.js +29 -23
  155. package/dist/collection/components/simple/inputs/tet-textarea/tet-textarea.js +13 -13
  156. package/dist/collection/components/simple/lists/tet-news-card-list/tet-news-card-list.js +37 -34
  157. package/dist/collection/components/simple/lists/tet-selection-list/tet-selection-list.js +61 -57
  158. package/dist/collection/components/simple/lists/tet-text-list/tet-text-list.js +14 -2
  159. package/dist/collection/components/simple/menu/tet-business-navigation/tet-business-navigation.js +48 -45
  160. package/dist/collection/components/simple/menu/tet-menu/tet-menu.js +3 -4
  161. package/dist/collection/components/simple/menu/tet-menu-mobile/tet-menu-mobile.js +15 -12
  162. package/dist/collection/components/simple/menu/tet-navigation-mobile/tet-navigation-mobile.js +18 -14
  163. package/dist/collection/components/simple/structural/tet-accordion/tet-accordion.js +37 -20
  164. package/dist/collection/components/simple/structural/tet-expansion-panel/tet-expansion-panel.js +16 -17
  165. package/dist/collection/components/simple/tables-and-graphs/tet-bar-graph/tet-bar-graph.js +222 -213
  166. package/dist/collection/components/simple/tables-and-graphs/tet-table/tet-table.js +132 -136
  167. package/dist/collection/components/simple/text-blocks/tet-cloud-application-form-dialog/tet-cloud-application-form-dialog.js +27 -1
  168. package/dist/collection/components/simple/text-blocks/tet-dialog/tet-dialog.js +39 -31
  169. package/dist/collection/components/simple/text-blocks/tet-inline-message/tet-inline-message.js +6 -6
  170. package/dist/collection/components/simple/text-blocks/tet-notification/tet-notification.js +27 -23
  171. package/dist/collection/components/simple/text-blocks/tet-tooltip/tet-tooltip.js +119 -105
  172. package/dist/collection/components/views/tet-address-offers-view/tet-address-offers-view.js +40 -32
  173. package/dist/collection/components/views/tet-b2b-configurator/partials/tet-b2b-configurator-cart/tet-b2b-configurator-cart.js +99 -88
  174. package/dist/collection/components/views/tet-b2b-configurator/tet-b2b-configurator.js +392 -373
  175. package/dist/collection/components/views/tet-b2b-service-calculator/tet-b2b-service-calculator.js +25 -25
  176. package/dist/collection/components/views/tet-business-lines/tet-business-lines.js +21 -22
  177. package/dist/collection/components/views/tet-cloud-configurator/tet-cloud-configurator.js +130 -120
  178. package/dist/collection/components/views/tet-macd-view/tet-macd-view.js +42 -13
  179. package/dist/collection/components/views/tet-price-view/tet-price-view.js +4 -2
  180. package/dist/collection/components/views/tet-thank-you-view/tet-thank-you-view.js +52 -44
  181. package/dist/collection/components/views/tet-thank-you-view-v2/tet-thank-you-view-v2.js +34 -29
  182. package/dist/collection/components/views/tet-thank-you-view-v3/tet-thank-you-view-v3.js +34 -29
  183. package/dist/collection/config/bradcasting.js +1 -2
  184. package/dist/collection/config/endpoints.js +7 -5
  185. package/dist/collection/config/forms-portal.js +1 -2
  186. package/dist/collection/config/landing-pages.js +1 -2
  187. package/dist/collection/config/mytet-portal.js +1 -2
  188. package/dist/collection/docs/styling/colors/tet-colors.js +41 -41
  189. package/dist/collection/services/api/async-request.js +26 -25
  190. package/dist/collection/services/api/request.js +16 -11
  191. package/dist/collection/services/api/services/tv/tv-channel-count-parser.js +73 -74
  192. package/dist/collection/services/translations/translations-manager.js +46 -47
  193. package/dist/collection/services/translations/translations.js +1 -2
  194. package/dist/collection/services/translations/translations.store.js +2 -3
  195. package/dist/collection/services/utils/inertia-scroll.js +203 -191
  196. package/dist/collection/services/utils/object.js +5 -3
  197. package/dist/collection/services/validators/validators/e-mail.js +6 -5
  198. package/dist/collection/services/validators/validators/phone.js +6 -5
  199. package/dist/collection/services/validators/validators/required.js +2 -1
  200. package/dist/components/index.js +1 -1
  201. package/dist/components/{p-35e72a2b.js → p-01f21691.js} +58 -44
  202. package/dist/components/{p-cec65d0a.js → p-02c55c0d.js} +121 -116
  203. package/dist/components/{p-7ddd71bd.js → p-08fbbbf9.js} +3 -3
  204. package/dist/components/{p-00c91e96.js → p-0e0dcb37.js} +2 -2
  205. package/dist/components/{p-639c9d1a.js → p-11a7865e.js} +80 -69
  206. package/dist/components/{p-ca66b4b1.js → p-12649d6e.js} +8 -6
  207. package/dist/components/{p-03177920.js → p-1278b6e9.js} +181 -173
  208. package/dist/components/{p-f18e5ae3.js → p-153245c0.js} +28 -23
  209. package/dist/components/{p-7b3c7bf1.js → p-243407f8.js} +4 -2
  210. package/dist/components/p-245f534d.js +869 -0
  211. package/dist/components/{p-856695a3.js → p-2630a661.js} +43 -37
  212. package/dist/components/{p-3fd7310f.js → p-269298f7.js} +1 -1
  213. package/dist/components/{p-50f207fd.js → p-27b54fb3.js} +54 -34
  214. package/dist/components/{p-53ca0a91.js → p-281300b4.js} +39 -23
  215. package/dist/components/{p-163de6e2.js → p-29df1df5.js} +23 -11
  216. package/dist/components/{p-42ff76b5.js → p-2c7320b5.js} +22 -18
  217. package/dist/components/{p-aca28e71.js → p-3444731e.js} +53 -52
  218. package/dist/components/{p-9a47b95f.js → p-35eefb16.js} +26 -26
  219. package/dist/components/{p-68f0e894.js → p-36c5e434.js} +10 -10
  220. package/dist/components/{p-9573f82c.js → p-392981a3.js} +41 -35
  221. package/dist/components/{p-965cea5b.js → p-39c66558.js} +137 -134
  222. package/dist/components/{p-9fe57fd0.js → p-3bb2ad44.js} +68 -65
  223. package/dist/components/{p-a188f09e.js → p-3e04ea5b.js} +11 -7
  224. package/dist/components/{p-eb54f5b9.js → p-4ae2dab9.js} +21 -18
  225. package/dist/components/{p-9bf262a8.js → p-52152f5b.js} +33 -27
  226. package/dist/components/{p-a0d406ca.js → p-549fe76f.js} +117 -72
  227. package/dist/components/{p-e707e73a.js → p-65770d46.js} +13 -5
  228. package/dist/components/{p-bb324278.js → p-68024f5b.js} +1 -1
  229. package/dist/components/{p-4d33055f.js → p-6bfd47c5.js} +117 -107
  230. package/dist/components/{p-a81e545d.js → p-6e8a8d28.js} +1 -1
  231. package/dist/components/{p-489ae3a0.js → p-6f4bf94f.js} +27 -26
  232. package/dist/components/{p-df1fe72c.js → p-754dce81.js} +47 -37
  233. package/dist/components/{p-5c8c2d8d.js → p-7dd65c3a.js} +1 -1
  234. package/dist/components/{p-6a2a81d8.js → p-85821f41.js} +104 -94
  235. package/dist/components/{p-817bee22.js → p-8b4a75b2.js} +12 -12
  236. package/dist/{esm/http-codes-7faa9f6e.js → components/p-94a1eb7a.js} +66 -59
  237. package/dist/components/{p-045bec85.js → p-98b10b48.js} +16 -16
  238. package/dist/components/{p-7790eae2.js → p-99823afc.js} +128 -126
  239. package/dist/components/{p-b0d6ed2e.js → p-9ee3e98b.js} +25 -24
  240. package/dist/components/{p-6847eb2d.js → p-a09504f7.js} +62 -63
  241. package/dist/components/{p-88b42c67.js → p-a15512ce.js} +63 -59
  242. package/dist/components/{p-6b7e73c0.js → p-bd9b1f18.js} +218 -202
  243. package/dist/components/{p-881093d4.js → p-bf642eca.js} +206 -194
  244. package/dist/components/{p-91651432.js → p-bfcce1dd.js} +1 -1
  245. package/dist/components/{p-21c5cfc4.js → p-c47caf67.js} +64 -53
  246. package/dist/components/{p-c1876db7.js → p-c7dba63e.js} +36 -21
  247. package/dist/components/{p-5dc5e13c.js → p-c8fc3c1f.js} +2 -2
  248. package/dist/components/{p-bd3402f6.js → p-c97d9f10.js} +17 -15
  249. package/dist/components/p-c996a768.js +169 -0
  250. package/dist/components/{p-37ed3ebb.js → p-c9d79ad4.js} +190 -135
  251. package/dist/components/{p-029ff2b3.js → p-d22e1c96.js} +24 -24
  252. package/dist/components/{p-0088d040.js → p-d7d60ba4.js} +16 -12
  253. package/dist/components/{p-00e689fb.js → p-d92a53ea.js} +1 -1
  254. package/dist/components/{p-e04716ac.js → p-da4e6cfb.js} +29 -30
  255. package/dist/components/{p-cb2daf20.js → p-dcf5c661.js} +25 -16
  256. package/dist/components/{p-04fe59fc.js → p-dcffa870.js} +50 -47
  257. package/dist/components/{p-616c71e1.js → p-e4f00545.js} +559 -532
  258. package/dist/components/{p-530ef38b.js → p-f44eb3d8.js} +4 -4
  259. package/dist/components/{p-144dffdc.js → p-f7bd56ce.js} +1 -1
  260. package/dist/components/{p-818742ad.js → p-f8ef72c1.js} +21 -22
  261. package/dist/components/tet-accordion.js +1 -1
  262. package/dist/components/tet-address-offers-filters-products.js +1 -1
  263. package/dist/components/tet-address-offers-filters.js +1 -1
  264. package/dist/components/tet-address-offers-view.js +65 -57
  265. package/dist/components/tet-address-offers.js +1 -1
  266. package/dist/components/tet-address-search.js +1 -1
  267. package/dist/components/tet-asset-addresses.js +116 -105
  268. package/dist/components/tet-asset-availability-addresses.js +1 -1
  269. package/dist/components/tet-autocomplete-dropdown.js +44 -34
  270. package/dist/components/tet-autocomplete.js +1 -1
  271. package/dist/components/tet-availability-contact-form.js +1 -1
  272. package/dist/components/tet-b2b-check-out-form.js +1 -1
  273. package/dist/components/tet-b2b-compare-card.js +1 -1
  274. package/dist/components/tet-b2b-configurator-cart.js +1 -1
  275. package/dist/components/tet-b2b-configurator.js +411 -393
  276. package/dist/components/tet-b2b-service-calculator.js +33 -33
  277. package/dist/components/tet-banner-nav.js +23 -11
  278. package/dist/components/tet-bar-graph.js +222 -215
  279. package/dist/components/tet-border-radius.js +1 -1
  280. package/dist/components/tet-business-card.js +38 -32
  281. package/dist/components/tet-business-compare-card.js +20 -13
  282. package/dist/components/tet-business-lines.js +26 -27
  283. package/dist/components/tet-business-navigation.js +1 -1
  284. package/dist/components/tet-business-round-stepper.js +11 -11
  285. package/dist/components/tet-business-summary-card.js +1 -1
  286. package/dist/components/tet-button.js +1 -1
  287. package/dist/components/tet-card-list.js +1 -1
  288. package/dist/components/tet-carousel.js +181 -185
  289. package/dist/components/tet-checkbox.js +1 -1
  290. package/dist/components/tet-cloud-application-form-dialog.js +35 -9
  291. package/dist/components/tet-cloud-configurator.js +140 -132
  292. package/dist/components/tet-colors.js +42 -42
  293. package/dist/components/tet-compare-card-v2.js +57 -55
  294. package/dist/components/tet-compare-card.js +1 -1
  295. package/dist/components/tet-compare-cards-tab.js +40 -39
  296. package/dist/components/tet-compare-cards.js +1 -1
  297. package/dist/components/tet-contact-form.js +59 -50
  298. package/dist/components/tet-contact-info.js +1 -1
  299. package/dist/components/tet-container.js +1 -1
  300. package/dist/components/tet-customer-assets.js +95 -90
  301. package/dist/components/tet-datepicker-header.js +1 -1
  302. package/dist/components/tet-datepicker-month-view.js +1 -1
  303. package/dist/components/tet-datepicker-multi-year-view.js +1 -1
  304. package/dist/components/tet-datepicker-year-view.js +1 -1
  305. package/dist/components/tet-datepicker.js +41 -36
  306. package/dist/components/tet-dialog.js +1 -1
  307. package/dist/components/tet-dropdown.js +1 -1
  308. package/dist/components/tet-dynamic-card.js +71 -74
  309. package/dist/components/tet-expandable-input.js +99 -82
  310. package/dist/components/tet-expansion-panel.js +17 -19
  311. package/dist/components/tet-filter.js +29 -14
  312. package/dist/components/tet-font-weight.js +1 -1
  313. package/dist/components/tet-fonts.js +1 -1
  314. package/dist/components/tet-grid.js +1 -1
  315. package/dist/components/tet-icon.js +1 -1
  316. package/dist/components/tet-inline-message.js +8 -8
  317. package/dist/components/tet-input.js +1 -1
  318. package/dist/components/tet-label.js +3 -3
  319. package/dist/components/tet-layout.js +1 -1
  320. package/dist/components/tet-link.js +1 -1
  321. package/dist/components/tet-loader.js +1 -1
  322. package/dist/components/tet-macd-view.js +55 -28
  323. package/dist/components/tet-menu-mobile.js +14 -15
  324. package/dist/components/tet-menu.js +5 -6
  325. package/dist/components/tet-multi-step-dialog.js +88 -74
  326. package/dist/components/tet-navigation-mobile.js +20 -16
  327. package/dist/components/tet-news-card-list.js +38 -39
  328. package/dist/components/tet-notification.js +1 -1
  329. package/dist/components/tet-number-input.js +1 -1
  330. package/dist/components/tet-placeholder.js +1 -1
  331. package/dist/components/tet-price-view.js +1 -1
  332. package/dist/components/tet-radio.js +1 -1
  333. package/dist/components/tet-range-slider.js +1 -1
  334. package/dist/components/tet-referral.js +32 -28
  335. package/dist/components/tet-round-stepper.js +3 -3
  336. package/dist/components/tet-selection-list.js +1 -1
  337. package/dist/components/tet-spacing.js +1 -1
  338. package/dist/components/tet-spinner.js +1 -1
  339. package/dist/components/tet-stepper-input.js +1 -1
  340. package/dist/components/tet-stepper-v2.js +1 -1
  341. package/dist/components/tet-stepper-v3.js +1 -1
  342. package/dist/components/tet-stepper.js +1 -1
  343. package/dist/components/tet-switch.js +1 -1
  344. package/dist/components/tet-tab-content.js +1 -1
  345. package/dist/components/tet-tab-header.js +1 -1
  346. package/dist/components/tet-table.js +134 -140
  347. package/dist/components/tet-tag-group.js +1 -1
  348. package/dist/components/tet-tag.js +1 -1
  349. package/dist/components/tet-text-list.js +1 -1
  350. package/dist/components/tet-textarea.js +14 -14
  351. package/dist/components/tet-thank-you-view-v2.js +38 -35
  352. package/dist/components/tet-thank-you-view-v3.js +38 -35
  353. package/dist/components/tet-thank-you-view.js +55 -49
  354. package/dist/components/tet-tooltip.js +1 -1
  355. package/dist/components/tet-tv-gift-block.js +15 -15
  356. package/dist/components/tet-tv-gift-list.js +16 -16
  357. package/dist/esm/{address-979a9993.js → address-1ff7cd1f.js} +1 -1
  358. package/dist/esm/{assets-b971f105.js → assets-79f78adb.js} +1 -1
  359. package/dist/esm/{async-request-6675e5f5.js → async-request-ab25480d.js} +27 -26
  360. package/dist/esm/compare-cards-tab-products-filters-79b7b7c6.js +98 -0
  361. package/dist/{components/p-6830b44d.js → esm/http-codes-eb08ff6f.js} +65 -60
  362. package/dist/esm/{index-1bf36cb9.js → index-8ebb7ad1.js} +1 -1
  363. package/dist/esm/{index-7f1e2a22.js → index-950abbb7.js} +1672 -1598
  364. package/dist/esm/loader.js +3 -3
  365. package/dist/esm/{phone-99c2f297.js → phone-4b016684.js} +8 -6
  366. package/dist/esm/{product-comparison-830e2764.js → product-comparison-286ce057.js} +1 -1
  367. package/dist/esm/{tasks-3dfcc330.js → tasks-770dc32d.js} +2 -2
  368. package/dist/esm/tet-accordion_2.entry.js +62 -46
  369. package/dist/esm/tet-address-offers-filters-products_2.entry.js +250 -233
  370. package/dist/esm/tet-address-offers-view.entry.js +44 -36
  371. package/dist/esm/tet-address-offers_4.entry.js +344 -314
  372. package/dist/esm/tet-address-search.entry.js +176 -168
  373. package/dist/esm/tet-asset-addresses.entry.js +106 -95
  374. package/dist/esm/tet-autocomplete-dropdown.entry.js +40 -30
  375. package/dist/esm/tet-autocomplete.entry.js +204 -191
  376. package/dist/esm/tet-b2b-check-out-form_5.entry.js +281 -242
  377. package/dist/esm/tet-b2b-configurator.entry.js +397 -379
  378. package/dist/esm/tet-b2b-service-calculator.entry.js +29 -29
  379. package/dist/esm/tet-banner-nav.entry.js +24 -12
  380. package/dist/esm/tet-bar-graph.entry.js +222 -215
  381. package/dist/esm/tet-border-radius.entry.js +1 -1
  382. package/dist/esm/tet-business-card.entry.js +38 -32
  383. package/dist/esm/tet-business-compare-card.entry.js +18 -11
  384. package/dist/esm/tet-business-lines.entry.js +26 -27
  385. package/dist/esm/tet-business-round-stepper.entry.js +10 -10
  386. package/dist/esm/tet-button.entry.js +9 -9
  387. package/dist/esm/tet-card-list.entry.js +557 -530
  388. package/dist/esm/tet-carousel.entry.js +181 -185
  389. package/dist/esm/tet-checkbox.entry.js +15 -11
  390. package/dist/esm/tet-cloud-application-form-dialog.entry.js +31 -5
  391. package/dist/esm/tet-cloud-configurator.entry.js +133 -125
  392. package/dist/esm/tet-colors.entry.js +42 -42
  393. package/dist/esm/tet-compare-card-v2.entry.js +51 -49
  394. package/dist/esm/tet-compare-cards-tab.entry.js +29 -28
  395. package/dist/esm/tet-compare-cards_2.entry.js +41 -34
  396. package/dist/esm/tet-components.js +4 -4
  397. package/dist/esm/tet-contact-form.entry.js +56 -47
  398. package/dist/esm/tet-contact-info.entry.js +1 -1
  399. package/dist/esm/tet-container_2.entry.js +63 -59
  400. package/dist/esm/tet-customer-assets.entry.js +90 -85
  401. package/dist/esm/tet-datepicker-header_4.entry.js +203 -188
  402. package/dist/esm/tet-datepicker.entry.js +36 -31
  403. package/dist/esm/tet-dialog.entry.js +42 -36
  404. package/dist/esm/tet-dropdown_2.entry.js +137 -115
  405. package/dist/esm/tet-dynamic-card.entry.js +68 -71
  406. package/dist/esm/tet-expandable-input.entry.js +97 -80
  407. package/dist/esm/tet-expansion-panel.entry.js +17 -19
  408. package/dist/esm/tet-filter.entry.js +26 -11
  409. package/dist/esm/tet-font-weight.entry.js +1 -1
  410. package/dist/esm/tet-fonts.entry.js +1 -1
  411. package/dist/esm/tet-grid.entry.js +1 -1
  412. package/dist/esm/tet-icon.entry.js +25 -24
  413. package/dist/esm/tet-inline-message.entry.js +7 -7
  414. package/dist/esm/tet-input.entry.js +48 -38
  415. package/dist/esm/tet-label.entry.js +4 -4
  416. package/dist/esm/tet-layout.entry.js +1 -1
  417. package/dist/esm/tet-link.entry.js +1 -1
  418. package/dist/esm/tet-loader.entry.js +1 -1
  419. package/dist/esm/tet-macd-view.entry.js +51 -24
  420. package/dist/esm/tet-menu-mobile.entry.js +13 -14
  421. package/dist/esm/tet-menu.entry.js +4 -5
  422. package/dist/esm/tet-multi-step-dialog.entry.js +87 -73
  423. package/dist/esm/tet-navigation-mobile.entry.js +19 -15
  424. package/dist/esm/tet-news-card-list.entry.js +35 -36
  425. package/dist/esm/tet-number-input.entry.js +56 -42
  426. package/dist/esm/tet-placeholder.entry.js +1 -1
  427. package/dist/esm/tet-price-view.entry.js +4 -4
  428. package/dist/esm/tet-radio.entry.js +11 -7
  429. package/dist/esm/tet-range-slider.entry.js +632 -620
  430. package/dist/esm/tet-referral.entry.js +31 -27
  431. package/dist/esm/tet-round-stepper.entry.js +2 -2
  432. package/dist/esm/tet-spacing.entry.js +1 -1
  433. package/dist/esm/tet-spinner.entry.js +16 -16
  434. package/dist/esm/tet-stepper-input.entry.js +33 -27
  435. package/dist/esm/tet-stepper-v2.entry.js +28 -29
  436. package/dist/esm/tet-stepper-v3.entry.js +20 -21
  437. package/dist/esm/tet-stepper.entry.js +62 -63
  438. package/dist/esm/tet-switch.entry.js +4 -2
  439. package/dist/esm/tet-tab-header.entry.js +68 -65
  440. package/dist/esm/tet-table.entry.js +132 -138
  441. package/dist/esm/tet-tag_2.entry.js +12 -12
  442. package/dist/esm/tet-text-list.entry.js +12 -4
  443. package/dist/esm/tet-textarea.entry.js +14 -14
  444. package/dist/esm/tet-thank-you-view-v2.entry.js +37 -34
  445. package/dist/esm/tet-thank-you-view-v3.entry.js +37 -34
  446. package/dist/esm/tet-thank-you-view.entry.js +52 -46
  447. package/dist/esm/tet-tv-gift-block.entry.js +15 -15
  448. package/dist/esm/tet-tv-gift-list.entry.js +15 -15
  449. package/dist/esm/{theme-wrapper-6e6b2089.js → theme-wrapper-f83deed6.js} +2 -2
  450. package/dist/esm/{translations-eff34607.js → translations-baabae60.js} +53 -52
  451. package/dist/esm/{typecheck-31fd6c02.js → typecheck-4abf0258.js} +1 -1
  452. package/dist/esm/{utils-f8f08058.js → utils-c110a4b1.js} +23 -8
  453. package/dist/tet-components/{p-c7dbb16f.entry.js → p-0847a214.entry.js} +1 -1
  454. package/dist/tet-components/p-086f464e.entry.js +1 -0
  455. package/dist/tet-components/{p-eed2b508.entry.js → p-0ecbcf94.entry.js} +1 -1
  456. package/dist/tet-components/p-1215e5c0.entry.js +1 -0
  457. package/dist/tet-components/p-12649d6e.js +1 -0
  458. package/dist/tet-components/p-15cd7158.entry.js +1 -0
  459. package/dist/tet-components/p-203651e5.entry.js +1 -0
  460. package/dist/tet-components/p-20a93866.entry.js +1 -0
  461. package/dist/tet-components/p-25c9957d.js +1 -0
  462. package/dist/tet-components/p-29268caf.entry.js +1 -0
  463. package/dist/tet-components/{p-8f545d45.entry.js → p-29b1a959.entry.js} +1 -1
  464. package/dist/tet-components/p-2a0bbc16.js +1 -0
  465. package/dist/tet-components/p-2a346803.entry.js +1 -0
  466. package/dist/tet-components/p-300dcb5e.entry.js +1 -0
  467. package/dist/tet-components/{p-1a89919e.entry.js → p-30677f37.entry.js} +1 -1
  468. package/dist/tet-components/p-30f27049.entry.js +1 -0
  469. package/dist/tet-components/p-316f0d93.entry.js +1 -0
  470. package/dist/tet-components/{p-66dd0ede.entry.js → p-39153b16.entry.js} +1 -1
  471. package/dist/tet-components/p-3b5c1dfc.entry.js +1 -0
  472. package/dist/tet-components/p-3f630a8d.entry.js +1 -0
  473. package/dist/tet-components/p-446f550d.entry.js +1 -0
  474. package/dist/tet-components/{p-a07cada6.entry.js → p-44827a7f.entry.js} +1 -1
  475. package/dist/tet-components/p-47f100fa.entry.js +1 -0
  476. package/dist/tet-components/{p-9b027102.entry.js → p-4b4626ec.entry.js} +1 -1
  477. package/dist/tet-components/p-4e4095c1.js +1 -0
  478. package/dist/tet-components/{p-46e5b573.entry.js → p-50479341.entry.js} +1 -1
  479. package/dist/tet-components/p-536dd157.entry.js +1 -0
  480. package/dist/tet-components/{p-ecff869b.entry.js → p-56b8b4ec.entry.js} +1 -1
  481. package/dist/tet-components/p-56d32115.entry.js +1 -0
  482. package/dist/tet-components/p-5d2f0c13.entry.js +1 -0
  483. package/dist/tet-components/p-618e8591.entry.js +1 -0
  484. package/dist/tet-components/p-63a909de.entry.js +1 -0
  485. package/dist/tet-components/p-63b83c11.entry.js +1 -0
  486. package/dist/tet-components/p-641f4ab5.entry.js +1 -0
  487. package/dist/tet-components/p-6d468c83.entry.js +1 -0
  488. package/dist/tet-components/{p-e263ecdf.js → p-6d681c43.js} +1 -1
  489. package/dist/tet-components/p-72082f3b.entry.js +1 -0
  490. package/dist/tet-components/{p-7a04bcd7.entry.js → p-739d3344.entry.js} +1 -1
  491. package/dist/tet-components/p-77d8a2a5.entry.js +1 -0
  492. package/dist/tet-components/p-77dea317.entry.js +1 -0
  493. package/dist/tet-components/p-78eb86ff.entry.js +1 -0
  494. package/dist/tet-components/p-7b91c3d4.entry.js +1 -0
  495. package/dist/tet-components/{p-f9a1fbb2.entry.js → p-7f520852.entry.js} +1 -1
  496. package/dist/tet-components/p-8254455b.entry.js +1 -0
  497. package/dist/tet-components/p-87be3264.entry.js +1 -0
  498. package/dist/tet-components/{p-918e4e84.entry.js → p-87f36453.entry.js} +1 -1
  499. package/dist/tet-components/p-88c9ef00.entry.js +1 -0
  500. package/dist/tet-components/{p-de142575.js → p-88f7bb98.js} +1 -1
  501. package/dist/tet-components/p-89ae73f2.entry.js +1 -0
  502. package/dist/tet-components/p-8aecb130.entry.js +1 -0
  503. package/dist/tet-components/{p-77372984.js → p-90205e46.js} +1 -1
  504. package/dist/tet-components/p-9081ba98.entry.js +1 -0
  505. package/dist/tet-components/{p-b680d126.entry.js → p-90ef663e.entry.js} +1 -1
  506. package/dist/tet-components/p-93e2d958.entry.js +1 -0
  507. package/dist/tet-components/p-9464cc18.entry.js +1 -0
  508. package/dist/tet-components/{p-bb9f1a6f.entry.js → p-988b6712.entry.js} +1 -1
  509. package/dist/tet-components/p-98f93bec.entry.js +1 -0
  510. package/dist/tet-components/p-9a2b6ee2.js +1 -0
  511. package/dist/tet-components/{p-8c964cca.js → p-9af9c5e3.js} +2 -2
  512. package/dist/tet-components/p-9c188d1b.entry.js +1 -0
  513. package/dist/tet-components/p-a263681d.entry.js +1 -0
  514. package/dist/tet-components/{p-8b405467.entry.js → p-a43badd1.entry.js} +1 -1
  515. package/dist/tet-components/{p-775aa778.entry.js → p-a77b7388.entry.js} +1 -1
  516. package/dist/tet-components/p-ad14115e.entry.js +1 -0
  517. package/dist/tet-components/{p-36d2a380.entry.js → p-af82e64e.entry.js} +1 -1
  518. package/dist/tet-components/p-b47e0d55.entry.js +1 -0
  519. package/dist/tet-components/p-b4b92f9b.js +2 -0
  520. package/dist/tet-components/p-b9359fea.entry.js +1 -0
  521. package/dist/tet-components/p-ba494985.entry.js +1 -0
  522. package/dist/tet-components/p-bda2a644.entry.js +1 -0
  523. package/dist/tet-components/{p-bc16c07b.js → p-c2a00b6a.js} +1 -1
  524. package/dist/tet-components/p-c3d9064d.entry.js +1 -0
  525. package/dist/tet-components/{p-a9ed4e2b.entry.js → p-c61ef9e0.entry.js} +1 -1
  526. package/dist/tet-components/p-c6818401.entry.js +1 -0
  527. package/dist/tet-components/{p-ed67bd52.entry.js → p-c7830c8a.entry.js} +1 -1
  528. package/dist/tet-components/p-c7e4365a.entry.js +1 -0
  529. package/dist/tet-components/{p-9f1a810e.entry.js → p-c88cdf25.entry.js} +1 -1
  530. package/dist/tet-components/p-c9cdf98c.js +1 -0
  531. package/dist/tet-components/p-cba8d001.js +1 -0
  532. package/dist/tet-components/p-ce271068.entry.js +1 -0
  533. package/dist/tet-components/p-d55c2f9e.entry.js +1 -0
  534. package/dist/tet-components/p-db090557.entry.js +1 -0
  535. package/dist/tet-components/p-df542648.entry.js +1 -0
  536. package/dist/tet-components/p-e11eb73d.entry.js +1 -0
  537. package/dist/tet-components/{p-49122f6a.entry.js → p-e6fea049.entry.js} +1 -1
  538. package/dist/tet-components/p-e87226cb.entry.js +1 -0
  539. package/dist/tet-components/{p-b2b384d2.js → p-ec1c990e.js} +1 -1
  540. package/dist/tet-components/p-ec892e18.entry.js +1 -0
  541. package/dist/tet-components/p-ede893e6.entry.js +1 -0
  542. package/dist/tet-components/p-eefc4f3d.entry.js +1 -0
  543. package/dist/tet-components/{p-44d068ac.entry.js → p-efa6f09b.entry.js} +1 -1
  544. package/dist/tet-components/p-f6f98ea9.entry.js +1 -0
  545. package/dist/tet-components/{p-5c86ad42.entry.js → p-fca864a8.entry.js} +1 -1
  546. package/dist/tet-components/{p-f023f124.entry.js → p-ffd1a0d9.entry.js} +1 -1
  547. package/dist/tet-components/tet-components.esm.js +1 -1
  548. package/dist/types/components/advanced/address/tet-autocomplete/tet-autocomplete.d.ts +3 -2
  549. package/dist/types/components.d.ts +0 -8
  550. package/dist/types/stencil-public-runtime.d.ts +3 -10
  551. package/loader/cdn.js +1 -3
  552. package/loader/index.cjs.js +1 -3
  553. package/loader/index.d.ts +3 -0
  554. package/loader/index.es2017.js +1 -3
  555. package/loader/index.js +1 -3
  556. package/package.json +6 -12
  557. package/dist/cjs/compare-cards-tab-products-filters-58410792.js +0 -99
  558. package/dist/collection/components/advanced/address/tet-address-offers-filters/address-offers-filters.spec.js +0 -105
  559. package/dist/collection/components/advanced/address/tet-address-offers-filters/test/tet-address-offers-filters.spec.js +0 -23
  560. package/dist/collection/components/advanced/address/tet-address-offers-filters-products/test/tet-address-offers-filters-products.spec.js +0 -23
  561. package/dist/collection/components/advanced/address/tet-autocomplete/test/tet-autocomplete.spec.js +0 -110
  562. package/dist/collection/components/advanced/cards/tet-b2b-compare-card/test/tet-b2b-compare-card.spec.js +0 -86
  563. package/dist/collection/components/advanced/cards/tet-card-list/test/tet-card-list.spec.js +0 -69
  564. package/dist/collection/components/advanced/cards/tet-compare-card/test/tet-compare-card.spec.js +0 -292
  565. package/dist/collection/components/advanced/cards/tet-compare-card-v2/test/tet-compare-card-v2.spec.js +0 -40
  566. package/dist/collection/components/advanced/cards/tet-compare-cards/test/tet-compare-cards.spec.js +0 -65
  567. package/dist/collection/components/advanced/cards/tet-compare-cards-tab/test/tet-compare-cards-tab.spec.js +0 -399
  568. package/dist/collection/components/advanced/customer/tet-asset-addresses/test/tet-asset-addresses.spec.js +0 -30
  569. package/dist/collection/components/advanced/customer/tet-asset-availability-addresses/test/tet-asset-availability-addresses.spec.js +0 -30
  570. package/dist/collection/components/advanced/customer/tet-referral/test/tet-referral.spec.js +0 -85
  571. package/dist/collection/components/advanced/dialog/tet-multi-step-dialog/test/tet-multi-step-dialog.spec.js +0 -53
  572. package/dist/collection/components/advanced/forms/tet-availability-contact-form/test/tet-availability-contact-form.spec.js +0 -35
  573. package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-block/test/tet-tv-gift-block.spec.js +0 -61
  574. package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-list/test/tet-tv-gift-list.spec.js +0 -55
  575. package/dist/collection/components/basic/buttons/tet-button/test/tet-button.spec.js +0 -131
  576. package/dist/collection/components/basic/buttons/tet-checkbox/test/tet-checkbox.spec.js +0 -28
  577. package/dist/collection/components/basic/buttons/tet-radio/test/tet-radio.spec.js +0 -26
  578. package/dist/collection/components/basic/buttons/tet-switch/test/tet-switch.spec.js +0 -27
  579. package/dist/collection/components/basic/buttons/tet-tabs/test/tet-tab-content.spec.js +0 -35
  580. package/dist/collection/components/basic/buttons/tet-tabs/test/tet-tab-header.spec.js +0 -42
  581. package/dist/collection/components/basic/buttons/tet-tag/test/tet-tag.spec.js +0 -76
  582. package/dist/collection/components/basic/buttons/tet-tag-group/test/tet-tag-group.spec.js +0 -92
  583. package/dist/collection/components/basic/carousel/tet-carousel/test/tet-carousel.spec.js +0 -63
  584. package/dist/collection/components/basic/container/tet-container/test/tet-container.spec.js +0 -50
  585. package/dist/collection/components/basic/loaders/tet-loader/test/tet-loader.spec.js +0 -19
  586. package/dist/collection/components/basic/loaders/tet-placeholder/test/tet-placeholder.spec.js +0 -19
  587. package/dist/collection/components/basic/loaders/tet-spinner/test/tet-spinner.spec.js +0 -52
  588. package/dist/collection/components/basic/steppers/tet-business-round-stepper/test/tet-business-round-stepper.spec.js +0 -82
  589. package/dist/collection/components/basic/steppers/tet-round-stepper/test/tet-round-stepper.spec.js +0 -78
  590. package/dist/collection/components/basic/steppers/tet-stepper/test/tet-stepper.spec.js +0 -110
  591. package/dist/collection/components/basic/steppers/tet-stepper-v2/test/tet-stepper-v2.spec.js +0 -136
  592. package/dist/collection/components/basic/steppers/tet-stepper-v3/test/tet-stepper-v3.spec.js +0 -135
  593. package/dist/collection/components/simple/inputs/tet-dropdown/test/tet-dropdown.spec.js +0 -122
  594. package/dist/collection/components/simple/inputs/tet-input/test/tet-input.spec.js +0 -110
  595. package/dist/collection/components/simple/inputs/tet-range-slider/test/tet-range-slider.spec.js +0 -145
  596. package/dist/collection/components/simple/lists/tet-news-card-list/test/tet-news-card-list.spec.js +0 -111
  597. package/dist/collection/components/simple/lists/tet-selection-list/test/tet-selection-list.spec.js +0 -64
  598. package/dist/collection/components/simple/lists/tet-text-list/test/tet-text-list.spec.js +0 -171
  599. package/dist/collection/components/simple/menu/tet-menu/test/tet-menu.spec.js +0 -231
  600. package/dist/collection/components/simple/menu/tet-menu-mobile/test/tet-menu-mobile.spec.js +0 -87
  601. package/dist/collection/components/simple/menu/tet-navigation-mobile/test/tet-navigation-mobile.spec.js +0 -81
  602. package/dist/collection/components/simple/structural/tet-accordion/test/tet-accordion.spec.js +0 -108
  603. package/dist/collection/components/simple/structural/tet-expansion-panel/test/tet-expansion-panel.spec.js +0 -42
  604. package/dist/collection/components/simple/tables-and-graphs/tet-bar-graph/test/tet-bar-graph.spec.js +0 -85
  605. package/dist/collection/components/simple/tables-and-graphs/tet-table/test/tet-table.spec.js +0 -360
  606. package/dist/collection/components/simple/text-blocks/tet-dialog/test/tet-dialog.spec.js +0 -84
  607. package/dist/collection/components/simple/text-blocks/tet-inline-message/test/tet-inline-message.spec.js +0 -22
  608. package/dist/collection/components/simple/text-blocks/tet-notification/test/tet-notification.spec.js +0 -88
  609. package/dist/collection/components/simple/text-blocks/tet-tooltip/test/tet-tooltip.spec.js +0 -79
  610. package/dist/collection/components/views/tet-b2b-configurator/partials/tet-b2b-configurator-cart/test/tet-b2b-configurator-cart.spec.js +0 -50
  611. package/dist/collection/components/views/tet-b2b-configurator/test/tet-b2b-configurator.spec.js +0 -136
  612. package/dist/collection/components/views/tet-business-lines/test/tet-business-lines.spec.js +0 -23
  613. package/dist/collection/components/views/tet-contact-info/test/tet-contact-info.spec.js +0 -44
  614. package/dist/collection/components/views/tet-macd-view/test/tet-macd-view.spec.js +0 -498
  615. package/dist/collection/components/views/tet-price-view/test/tet-price-view.spec.js +0 -98
  616. package/dist/collection/components/views/tet-thank-you-view/test/tet-thank-you-view.spec.js +0 -275
  617. package/dist/collection/components/views/tet-thank-you-view-v2/test/tet-thank-you-view-v2.spec.js +0 -175
  618. package/dist/collection/components/views/tet-thank-you-view-v3/test/tet-thank-you-view-v3.spec.js +0 -175
  619. package/dist/collection/services/api/async-request.spec.js +0 -37
  620. package/dist/collection/services/api/request.spec.js +0 -32
  621. package/dist/collection/services/api/services/address.spec.js +0 -39
  622. package/dist/collection/services/api/services/catalog/product-comparison.spec.js +0 -22
  623. package/dist/collection/services/api/services/components/component-data.spec.js +0 -20
  624. package/dist/collection/services/api/services/customer/assets.spec.js +0 -25
  625. package/dist/collection/services/api/services/customer/query.spec.js +0 -25
  626. package/dist/collection/services/api/services/macd/macd.spec.js +0 -91
  627. package/dist/collection/services/api/services/operations/operations.spec.js +0 -19
  628. package/dist/collection/services/api/services/tasks.spec.js +0 -25
  629. package/dist/collection/services/api/services/translations.spec.js +0 -20
  630. package/dist/collection/services/products/product-codes.spec.js +0 -11
  631. package/dist/collection/services/translations/translations.spec.js +0 -30
  632. package/dist/collection/services/url/build-url-params.spec.js +0 -11
  633. package/dist/collection/services/url/url.spec.js +0 -16
  634. package/dist/collection/services/utils/array.spec.js +0 -10
  635. package/dist/collection/services/utils/debounce.spec.js +0 -19
  636. package/dist/collection/services/utils/execute-until.spec.js +0 -10
  637. package/dist/collection/services/utils/inertia-scroll.spec.js +0 -56
  638. package/dist/collection/services/utils/isFocusableElementOrChild.spec.js +0 -67
  639. package/dist/collection/services/utils/object.spec.js +0 -84
  640. package/dist/collection/services/utils/price.spec.js +0 -18
  641. package/dist/collection/services/utils/random.spec.js +0 -10
  642. package/dist/collection/services/utils/reactive.spec.js +0 -15
  643. package/dist/collection/services/utils/size.spec.js +0 -13
  644. package/dist/collection/services/utils/string.spec.js +0 -9
  645. package/dist/collection/services/utils/throttle.spec.js +0 -32
  646. package/dist/collection/services/utils/typecheck.spec.js +0 -49
  647. package/dist/collection/services/validators/validator-group.spec.js +0 -30
  648. package/dist/collection/services/validators/validators/e-mail.spec.js +0 -20
  649. package/dist/collection/services/validators/validators/phone.spec.js +0 -23
  650. package/dist/collection/services/validators/validators/required.spec.js +0 -16
  651. package/dist/components/p-8e19c5da.js +0 -857
  652. package/dist/components/p-e34bf267.js +0 -170
  653. package/dist/esm/compare-cards-tab-products-filters-f0fa0712.js +0 -97
  654. package/dist/esm/polyfills/core-js.js +0 -11
  655. package/dist/esm/polyfills/dom.js +0 -79
  656. package/dist/esm/polyfills/es5-html-element.js +0 -1
  657. package/dist/esm/polyfills/index.js +0 -34
  658. package/dist/esm/polyfills/system.js +0 -6
  659. package/dist/tet-components/p-021268b7.entry.js +0 -1
  660. package/dist/tet-components/p-02e548d5.entry.js +0 -1
  661. package/dist/tet-components/p-06bf08a4.entry.js +0 -1
  662. package/dist/tet-components/p-0738afc0.entry.js +0 -1
  663. package/dist/tet-components/p-1b797a96.entry.js +0 -1
  664. package/dist/tet-components/p-1be23b32.entry.js +0 -1
  665. package/dist/tet-components/p-1e840eca.entry.js +0 -1
  666. package/dist/tet-components/p-1ec7f341.js +0 -2
  667. package/dist/tet-components/p-2e870f4d.entry.js +0 -1
  668. package/dist/tet-components/p-2f029068.entry.js +0 -1
  669. package/dist/tet-components/p-34ed0dd7.entry.js +0 -1
  670. package/dist/tet-components/p-3604bf21.entry.js +0 -1
  671. package/dist/tet-components/p-3d2dc872.entry.js +0 -1
  672. package/dist/tet-components/p-48bd3f87.entry.js +0 -1
  673. package/dist/tet-components/p-4e3c6172.entry.js +0 -1
  674. package/dist/tet-components/p-4e917b52.entry.js +0 -1
  675. package/dist/tet-components/p-511680d5.entry.js +0 -1
  676. package/dist/tet-components/p-5d920c98.entry.js +0 -1
  677. package/dist/tet-components/p-618134c3.entry.js +0 -1
  678. package/dist/tet-components/p-695cdc78.entry.js +0 -1
  679. package/dist/tet-components/p-6a5eca28.js +0 -1
  680. package/dist/tet-components/p-71cbde0c.entry.js +0 -1
  681. package/dist/tet-components/p-7751035d.entry.js +0 -1
  682. package/dist/tet-components/p-78014763.entry.js +0 -1
  683. package/dist/tet-components/p-78a0c398.entry.js +0 -1
  684. package/dist/tet-components/p-79255c00.entry.js +0 -1
  685. package/dist/tet-components/p-805c9ef3.entry.js +0 -1
  686. package/dist/tet-components/p-88885ba1.entry.js +0 -1
  687. package/dist/tet-components/p-8a6831bc.entry.js +0 -1
  688. package/dist/tet-components/p-8c7c6590.entry.js +0 -1
  689. package/dist/tet-components/p-8c89d1f5.entry.js +0 -1
  690. package/dist/tet-components/p-8d644f8b.entry.js +0 -1
  691. package/dist/tet-components/p-9102c6d9.entry.js +0 -1
  692. package/dist/tet-components/p-977ea27a.entry.js +0 -1
  693. package/dist/tet-components/p-9a5b8dbc.entry.js +0 -1
  694. package/dist/tet-components/p-a15d2b6a.entry.js +0 -1
  695. package/dist/tet-components/p-a549f1dd.entry.js +0 -1
  696. package/dist/tet-components/p-a8030923.entry.js +0 -1
  697. package/dist/tet-components/p-aff1e911.entry.js +0 -1
  698. package/dist/tet-components/p-b0112dde.entry.js +0 -1
  699. package/dist/tet-components/p-b14b8531.entry.js +0 -1
  700. package/dist/tet-components/p-bc2e65ab.entry.js +0 -1
  701. package/dist/tet-components/p-bfa02c13.entry.js +0 -1
  702. package/dist/tet-components/p-c4a95bbe.entry.js +0 -1
  703. package/dist/tet-components/p-c4ed060b.entry.js +0 -1
  704. package/dist/tet-components/p-ca66b4b1.js +0 -1
  705. package/dist/tet-components/p-cf7d5c84.js +0 -1
  706. package/dist/tet-components/p-d0d6a340.js +0 -1
  707. package/dist/tet-components/p-d2919aae.js +0 -1
  708. package/dist/tet-components/p-d795f9c3.entry.js +0 -1
  709. package/dist/tet-components/p-dc12dee9.entry.js +0 -1
  710. package/dist/tet-components/p-dcbe09b5.js +0 -1
  711. package/dist/tet-components/p-de040767.entry.js +0 -1
  712. package/dist/tet-components/p-de4c32ee.entry.js +0 -1
  713. package/dist/tet-components/p-e423fe76.entry.js +0 -1
  714. package/dist/tet-components/p-e69056de.entry.js +0 -1
  715. package/dist/tet-components/p-e86164ef.entry.js +0 -1
  716. package/dist/tet-components/p-eb66d7b2.js +0 -1
  717. package/dist/tet-components/p-ecbfde88.entry.js +0 -1
  718. package/dist/tet-components/p-ed4b8bbe.entry.js +0 -1
  719. package/dist/tet-components/p-eed7244f.entry.js +0 -1
  720. package/dist/tet-components/p-f48500fd.entry.js +0 -1
  721. package/dist/tet-components/p-fab4ab39.entry.js +0 -1
  722. package/dist/tet-components/p-fd4131ad.entry.js +0 -1
@@ -1,22 +1,22 @@
1
- import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-37ed3ebb.js';
2
- import { e as endpoints, A as ApiRequest } from './p-6830b44d.js';
3
- import { c as createStore, d as defineCustomElement$8 } from './p-b0d6ed2e.js';
4
- import { t as translate } from './p-aca28e71.js';
5
- import { d as defineCustomElement$h } from './p-53ca0a91.js';
6
- import { d as defineCustomElement$g } from './p-cb2daf20.js';
7
- import { d as defineCustomElement$f } from './p-639c9d1a.js';
8
- import { d as defineCustomElement$e } from './p-6a2a81d8.js';
9
- import { d as defineCustomElement$d } from './p-04fe59fc.js';
10
- import { d as defineCustomElement$c } from './p-856695a3.js';
11
- import { d as defineCustomElement$b } from './p-68f0e894.js';
12
- import { d as defineCustomElement$a } from './p-0088d040.js';
13
- import { d as defineCustomElement$9 } from './p-9573f82c.js';
14
- import { d as defineCustomElement$7 } from './p-df1fe72c.js';
15
- import { d as defineCustomElement$6 } from './p-9a47b95f.js';
16
- import { d as defineCustomElement$5 } from './p-3fd7310f.js';
17
- import { d as defineCustomElement$4 } from './p-045bec85.js';
18
- import { d as defineCustomElement$3 } from './p-9bf262a8.js';
19
- import { d as defineCustomElement$2 } from './p-e707e73a.js';
1
+ import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-c9d79ad4.js';
2
+ import { e as endpoints, A as ApiRequest } from './p-94a1eb7a.js';
3
+ import { c as createStore, d as defineCustomElement$8 } from './p-9ee3e98b.js';
4
+ import { t as translate } from './p-3444731e.js';
5
+ import { d as defineCustomElement$h } from './p-281300b4.js';
6
+ import { d as defineCustomElement$g } from './p-dcf5c661.js';
7
+ import { d as defineCustomElement$f } from './p-11a7865e.js';
8
+ import { d as defineCustomElement$e } from './p-85821f41.js';
9
+ import { d as defineCustomElement$d } from './p-dcffa870.js';
10
+ import { d as defineCustomElement$c } from './p-2630a661.js';
11
+ import { d as defineCustomElement$b } from './p-36c5e434.js';
12
+ import { d as defineCustomElement$a } from './p-d7d60ba4.js';
13
+ import { d as defineCustomElement$9 } from './p-392981a3.js';
14
+ import { d as defineCustomElement$7 } from './p-754dce81.js';
15
+ import { d as defineCustomElement$6 } from './p-35eefb16.js';
16
+ import { d as defineCustomElement$5 } from './p-269298f7.js';
17
+ import { d as defineCustomElement$4 } from './p-98b10b48.js';
18
+ import { d as defineCustomElement$3 } from './p-52152f5b.js';
19
+ import { d as defineCustomElement$2 } from './p-65770d46.js';
20
20
 
21
21
  const b2bConfigurator = () => {
22
22
  let apiUrl;
@@ -109,376 +109,6 @@ const TetB2bConfigurator$1 = /*@__PURE__*/ proxyCustomElement(class TetB2bConfig
109
109
  this.compareLinkClick = createEvent(this, "compareLinkClick", 7);
110
110
  this.b2bConfiguratorSubmit = createEvent(this, "b2bConfiguratorSubmit", 7);
111
111
  this.successCloseClick = createEvent(this, "successCloseClick", 7);
112
- /** @private The suffix for the price displayed - "€/mēn."). */
113
- this.priceSuffix = '€/mēn.';
114
- /** Syncs desktop resolution with state variable */
115
- this.checkDesktopResolution = () => {
116
- this.isDesktopResolution = window.innerWidth >= DESKTOP_BREAKPOINT;
117
- };
118
- /** Fetches the data and passes it to Stencil store */
119
- this.fetchData = async () => {
120
- const data = await b2bConfigurator();
121
- initData(data);
122
- };
123
- /** Renders the placeholdes/skeleton */
124
- this.renderPlaceholder = () => {
125
- const darkTheme = this.theme === 'dark';
126
- return [
127
- h("div", { class: "offer placeholder" }, h("div", { style: { padding: this.isDesktopResolution ? '1.5rem' : '1rem' } }, h("tet-placeholder", { class: "placeholder", height: this.isDesktopResolution ? '2rem' : '1.5rem', darkTheme: darkTheme })), h("div", { class: "offer__content" }, h("tet-placeholder", { class: "placeholder offer__navigation", height: this.isDesktopResolution ? '48rem' : ' 2.25rem', darkTheme: darkTheme, style: { margin: '0' } }), h("div", { class: "offer__cards" }, h("div", { class: "offer__cards-list" }, h("tet-placeholder", { class: "placeholder", height: "3rem", darkTheme: darkTheme }), h("tet-placeholder", { class: "placeholder", height: "10.25rem", darkTheme: darkTheme }), h("tet-placeholder", { class: "placeholder", height: "10.25rem", darkTheme: darkTheme }), h("tet-placeholder", { class: "placeholder", height: "10.25rem", darkTheme: darkTheme }), h("tet-placeholder", { class: "placeholder", height: "10.25rem", darkTheme: darkTheme }))))),
128
- h("div", { class: "cart cart--empty", style: {
129
- 'padding': '1.5rem 1rem 1rem',
130
- 'background-color': `var(--b2b-background-color)`
131
- } }, h("tet-placeholder", { class: "placeholder", height: "12.75rem", darkTheme: darkTheme }))
132
- ];
133
- };
134
- /**
135
- * Handles event form navigation and sets currently active categories
136
- * @param e
137
- * @returns
138
- */
139
- this.categoryClickHandler = (e) => {
140
- const { id } = e.detail;
141
- const category = this.getCategoryById(id);
142
- if (!category) {
143
- return;
144
- }
145
- if (category.type === 'primary') {
146
- this.activePrimaryCategoryId = id;
147
- }
148
- else {
149
- this.activeSecondaryCategoryId = id;
150
- }
151
- };
152
- /** Renders the offer section */
153
- this.renderOffer = () => {
154
- const blocks = [
155
- { name: translate('components-b2b-offer-primary-title'), type: 'primary' },
156
- { name: translate('components-b2b-offer-secondary-title'), type: 'secondary' }
157
- ];
158
- return (h("div", { class: { offer: true, [`offer--${this.theme}`]: true } }, blocks.map((block) => {
159
- const menuItems = state.data
160
- .filter((item) => item.type === block.type)
161
- .map((category) => {
162
- const { id, name, icon } = category;
163
- const selected = id === this.activePrimaryCategoryId || id === this.activeSecondaryCategoryId;
164
- return { id, name, icon, selected };
165
- });
166
- const accRefCallback = (el) => {
167
- if (block.type === 'primary') {
168
- this.primaryAccordionEl = el;
169
- }
170
- else {
171
- this.secondaryAccordionEl = el;
172
- }
173
- };
174
- const navRefCallback = (el) => {
175
- if (block.type === 'primary') {
176
- this.primaryNavEl = el;
177
- }
178
- else {
179
- this.secondaryNavEl = el;
180
- }
181
- };
182
- return (h("tet-accordion", { ref: accRefCallback, key: block.type, class: "offer__block", isOpen: block.type === 'primary', header: block.name, withBorder: true, theme: this.theme, transparentBackground: true }, h("div", { class: "offer__content" }, h("div", { class: "offer__navigation" }, h("tet-business-navigation", { ref: navRefCallback, menuItems: menuItems, theme: this.theme, "onMenu-click-event": this.categoryClickHandler })), this.renderCards(block.type))));
183
- })));
184
- };
185
- /**
186
- * Finds category by id. Returns category or undefined.
187
- * @param categoryId
188
- * @returns
189
- */
190
- this.getCategoryById = (categoryId) => {
191
- return state.data.find((category) => category.id === categoryId);
192
- };
193
- /**
194
- * Event, emitted on compare link click with the relevant modal Id
195
- * @param categoryId
196
- * @returns
197
- */
198
- this.onCompareLinkClick = (categoryId) => {
199
- const category = this.getCategoryById(categoryId);
200
- if (!category || !category.modalScreenId) {
201
- return;
202
- }
203
- this.compareLinkClick.emit(category.modalScreenId);
204
- };
205
- /**
206
- * Handles card selection (aka. oepen state). Checks for single|multi choice
207
- * @param cardId
208
- * @param categoryId
209
- * @returns
210
- */
211
- this.handleCardSelected = (cardId, categoryId) => {
212
- const category = this.getCategoryById(categoryId);
213
- if (!category) {
214
- return;
215
- }
216
- const { type, allowMultipleChoice } = category;
217
- if (type === 'primary') {
218
- if (this.selectedPrimaryCards.includes(cardId)) {
219
- return;
220
- }
221
- this.selectedPrimaryCards = allowMultipleChoice ? [...this.selectedPrimaryCards, cardId] : [cardId];
222
- }
223
- else {
224
- if (this.selectedSecondaryCards.includes(cardId)) {
225
- return;
226
- }
227
- this.selectedSecondaryCards = allowMultipleChoice ? [...this.selectedSecondaryCards, cardId] : [cardId];
228
- }
229
- };
230
- /**
231
- * Updates product in cart (add, edit, remove)
232
- * In desktop mode - changes state of summary cart's accordions
233
- * @param e
234
- * @param categoryId
235
- */
236
- this.handleProductCountChanged = async (e, categoryId) => {
237
- const { cardId, count } = e.detail;
238
- const productCategory = this.getCategoryById(categoryId);
239
- if (!productCategory || state.cart.get(cardId) === count) {
240
- return;
241
- }
242
- if (!count) {
243
- this.itemToRemove = cardId;
244
- this.confirmationDialogEl.open();
245
- return;
246
- }
247
- if (!productCategory.allowMultipleChoice) {
248
- productCategory.products.forEach((product) => product.productCode !== cardId && removeFromCart(product.productCode));
249
- }
250
- addToCart(cardId, count);
251
- if (this.isDesktopResolution) {
252
- this.cartEl.changeBlockState(productCategory.type, 'open');
253
- this.cartEl.changeBlockState(productCategory.type === 'primary' ? 'secondary' : 'primary', 'close');
254
- }
255
- };
256
- /** Resets itemId to be removed when confirmation dialog is closed */
257
- this.onConfirmationClose = () => {
258
- this.itemToRemove = null;
259
- };
260
- /** Renders confirmation dialog, shown on product removal action */
261
- this.renderConfirmationDialog = () => {
262
- return (h("tet-dialog", { ref: (el) => (this.confirmationDialogEl = el), class: this.theme, closeOnOverlayClick: false, onCloseDialog: this.onConfirmationClose, theme: this.theme }, h("div", { class: "action-dialog" }, h("tet-icon", { class: "action-dialog__icon action-dialog__attention-icon", name: "attention" }), h("div", { class: "action-dialog__title" }, translate('components-b2b-item-remove-confirmation-title'))), h("div", { slot: "footer", class: "action-dialog__footer" }, h("tet-button", { class: "action-dialog__button", type: "secondary", theme: this.theme, size: "large", onClick: () => this.confirmationDialogEl.close() }, translate('components-b2b-item-remove-confirmation-decline')), h("tet-button", { class: "action-dialog__button", type: "primary", theme: this.theme, size: "large", iconName: "tc-trash", iconPosition: "left", onClick: () => {
263
- removeFromCart(this.itemToRemove);
264
- this.confirmationDialogEl.close();
265
- } }, translate('components-b2b-item-remove-confirmation-accept')))));
266
- };
267
- /** Performs action to start again */
268
- this.resetState = () => {
269
- resetCart();
270
- this.checkoutAttempted = false;
271
- this.primaryAccordionEl.open();
272
- this.secondaryAccordionEl.close();
273
- };
274
- /** Renders dialog, shown after form submit */
275
- this.renderSubmissionStateDialog = () => {
276
- const isFormSubmitLoading = this.formState === 'loading';
277
- const successClose = () => {
278
- this.resetState();
279
- this.successCloseClick.emit();
280
- this.submissionStateDialogEl.close();
281
- };
282
- const content = isFormSubmitLoading ? (h("div", { class: "action-dialog" }, h("tet-spinner", { theme: this.theme }), h("div", { class: "action-dialog__title" }, translate('components-b2b-loading-dialog-title')), h("div", { class: "action-dialog__description" }, translate('components-b2b-loading-dialog-description')))) : ([
283
- h("div", { class: "action-dialog" }, h("tet-icon", { class: "action-dialog__icon action-dialog__success-icon", name: "tc-check-circle" }), h("div", { class: "action-dialog__title" }, translate('components-b2b-success-dialog-title')), h("div", { class: "action-dialog__description" }, translate('components-b2b-success-dialog-description'))),
284
- h("div", { slot: "footer", class: "action-dialog__footer" }, h("tet-button", { class: "action-dialog__button", type: "secondary", theme: this.theme, size: "large", onClick: successClose }, h("div", { class: "action-dialog__button-text" }, translate('components-b2b-success-dialog-close'))), h("tet-button", { class: "action-dialog__button", type: "primary", theme: this.theme, size: "large", onClick: () => {
285
- this.resetState();
286
- this.submissionStateDialogEl.close();
287
- } }, h("div", { class: "action-dialog__button-text" }, translate('components-b2b-success-dialog-start-again'))))
288
- ]);
289
- return (h("tet-dialog", { ref: (el) => (this.submissionStateDialogEl = el), class: { [this.theme]: true, 'action-dialog--loading': isFormSubmitLoading }, closeOnOverlayClick: false, closeOnEscape: !isFormSubmitLoading, hideCloseButton: isFormSubmitLoading, theme: this.theme, onCloseDialog: this.formState === 'success' ? successClose : this.submissionStateDialogEl.close }, content));
290
- };
291
- /**
292
- * Renders offer section cards for the given category type
293
- * @param categoryType The type of category block to render
294
- * @returns
295
- */
296
- this.renderCards = (categoryType) => {
297
- var _a;
298
- const activeCategoryId = categoryType === 'primary' ? this.activePrimaryCategoryId : this.activeSecondaryCategoryId;
299
- const selectedCards = categoryType === 'primary' ? this.selectedPrimaryCards : this.selectedSecondaryCards;
300
- const products = ((_a = this.getCategoryById(activeCategoryId)) === null || _a === void 0 ? void 0 : _a.products) || [];
301
- const cards = products.map((product) => {
302
- var _a, _b;
303
- const { productCode: id, name: { lv: title }, description: { lv: subtitle }, amount: price, b2bConfiguratorProduct: { discountAmount: discountPrice, selectionType, defaultValue, minValue, maxValue, translationKey: label }, benefits: { lv: benefits }, contracts } = product;
304
- const isBestChoice = !!((_a = product.attributes.find((attribute) => attribute.key === 'isBestChoice')) === null || _a === void 0 ? void 0 : _a.value);
305
- const counterOptions = selectionType === 'single'
306
- ? undefined
307
- : {
308
- defaultValue,
309
- minValue,
310
- maxValue,
311
- label
312
- };
313
- const options = {
314
- id,
315
- title,
316
- subtitle,
317
- isBestChoice,
318
- price,
319
- discountPrice,
320
- benefits: benefits.split('\n'),
321
- contract: (_b = contracts[0]) === null || _b === void 0 ? void 0 : _b.contract,
322
- counterOptions
323
- };
324
- const isSelected = selectedCards.includes(id);
325
- return (h("tet-b2b-compare-card", { options: options, theme: this.theme, key: id, isSelected: isSelected, onSelectedChange: () => this.handleCardSelected(id, activeCategoryId), count: state.cart.get(id), onCountChange: (e) => this.handleProductCountChanged(e, activeCategoryId) }));
326
- });
327
- return (h("div", { class: "offer__cards" }, h("div", { class: "offer__cards-header" }, h("div", { class: "offer__cards-title" }, translate('components-b2b-offer-product-list-title')), h("button", { class: { 'button-reset': true, 'compare__button': true, [`${this.theme}`]: true }, onClick: () => {
328
- this.onCompareLinkClick(activeCategoryId);
329
- } }, h("span", { class: { 'compare__text': true, 'tet-link': true, [`${this.theme}`]: true } }, translate('components-b2b-offer-compare-link-text')), h("div", { class: "compare__icon-wrapper" }, h("tet-icon", { class: "compare__icon", name: "tc-info-circle-outline", theme: this.theme })))), h("div", { class: "offer__cards-list" }, cards)));
330
- };
331
- /**
332
- * Translates Cart "count change" event and uses in the general "count change" handler
333
- * @param cardId
334
- * @param count
335
- * @param categoryId
336
- */
337
- this.handleCartProductCountChange = (cardId, count, categoryId) => {
338
- const updateEvent = { detail: { cardId, count } };
339
- this.handleProductCountChanged(updateEvent, categoryId);
340
- };
341
- /**
342
- * Navigates user in offer section by opening accordion and selecting the specific product which was clicked in cart component
343
- * @param categoryId
344
- * @param productCode
345
- * @returns
346
- */
347
- this.goToProduct = async (categoryId, productCode) => {
348
- const category = this.getCategoryById(categoryId);
349
- if (!category) {
350
- return;
351
- }
352
- if (category.type === 'primary') {
353
- await this.primaryAccordionEl.open();
354
- await this.primaryNavEl.selectMenuItem(categoryId);
355
- this.primaryAccordionEl.scrollIntoView({ behavior: 'smooth' });
356
- }
357
- else if (category.type === 'secondary') {
358
- await this.secondaryAccordionEl.open();
359
- await this.secondaryNavEl.selectMenuItem(categoryId);
360
- this.secondaryAccordionEl.scrollIntoView({ behavior: 'smooth' });
361
- }
362
- setTimeout(() => {
363
- this.handleCardSelected(productCode, categoryId);
364
- }, 0);
365
- };
366
- /**
367
- * Renders list of Cards in Cart depending on context
368
- * @param context
369
- * @returns
370
- */
371
- this.renderCartCardsList = (context) => {
372
- const categoryTypes = ['primary', 'secondary'];
373
- const productCodeToSummaryCard = (productCode) => {
374
- const count = state.cart.get(productCode);
375
- const details = state.productDetails.get(productCode);
376
- if (count === undefined || !details) {
377
- return null;
378
- }
379
- const { name, amount, description, discountAmount, categoryName, categoryType, categoryId, b2bConfiguratorProduct } = details;
380
- const productDescription = categoryType === 'primary' ? description : categoryName;
381
- const { selectionType, term, minValue, maxValue, translationKey } = b2bConfiguratorProduct;
382
- return (h("tet-business-summary-card", { key: productCode, productName: name, price: amount, productDescription: productDescription, discountPrice: discountAmount, currency: this.priceSuffix, contractTerm: term, theme: this.theme, withStepper: selectionType === 'number', value: count, minValue: minValue, maxValue: maxValue, stepperLabel: translate(translationKey || ''), context: context, onAmountChange: (e) => this.handleCartProductCountChange(productCode, e.detail, categoryId), onDeleteButtonClick: () => this.handleCartProductCountChange(productCode, 0, categoryId), onEditButtonClick: () => this.goToProduct(categoryId, productCode) }));
383
- };
384
- return categoryTypes.map((type) => {
385
- const summaryCards = [...state.cart]
386
- .filter(([productCode]) => {
387
- const details = state.productDetails.get(productCode);
388
- return details && details.categoryType === type;
389
- })
390
- .map(([productCode]) => productCodeToSummaryCard(productCode));
391
- return summaryCards.length ? (h("div", { class: "cart__card-list", slot: type }, summaryCards)) : null;
392
- });
393
- };
394
- /** Adjusts the top position variable for the sticky cart element */
395
- this.positionStickyCartEl = () => {
396
- if (this.referenceElement) {
397
- if (this.isDesktopResolution) {
398
- this.hostElement.style.setProperty('--b2b-cart-sticky-top', `${this.referenceElement.offsetTop}px`);
399
- }
400
- else {
401
- this.hostElement.style.removeProperty('--b2b-cart-sticky-top');
402
- }
403
- }
404
- };
405
- /**
406
- * Renders Cart content depending on context
407
- * @param context
408
- * @returns
409
- */
410
- this.renderCart = (context = 'edit') => {
411
- var _a;
412
- const isCartEmpty = !state.cart.size;
413
- let summaryAmounts = { primary: 0, secondary: 0 };
414
- let summaryCounts = { primary: 0, secondary: 0 };
415
- let summaryWouldBeAmount = 0;
416
- for (const [key, count] of state.cart) {
417
- const details = state.productDetails.get(key);
418
- if (!details) {
419
- continue;
420
- }
421
- summaryAmounts[details.categoryType] += ((_a = details.discountAmount) !== null && _a !== void 0 ? _a : details.amount) * count;
422
- summaryCounts[details.categoryType] += 1;
423
- summaryWouldBeAmount += details.amount * count;
424
- }
425
- const { primary: primaryAmount, secondary: secondaryAmount } = summaryAmounts;
426
- const summaryAmount = primaryAmount + secondaryAmount;
427
- const summarySavings = summaryWouldBeAmount - summaryAmount;
428
- const { primary, secondary } = this.areProductsAddedToCart();
429
- const hasPrimaryNotification = context === 'edit' && this.checkoutAttempted && !primary;
430
- const hasSecondaryNotification = context === 'edit' && this.checkoutAttempted && !secondary;
431
- const data = {
432
- summaryAmount: summaryAmount.toFixed(2),
433
- primaryAmount: primaryAmount.toFixed(2),
434
- secondaryAmount: secondaryAmount.toFixed(2),
435
- primaryCount: summaryCounts.primary,
436
- secondaryCount: summaryCounts.secondary,
437
- summarySavings: summarySavings.toFixed(2),
438
- hasPrimaryNotification,
439
- hasSecondaryNotification
440
- };
441
- const ctaButton = context === 'edit' ? (h("tet-button", { onClick: this.checkout, slot: "cta", class: "cart__cta", type: "primary", size: this.isDesktopResolution ? 'large' : 'medium', theme: this.theme }, translate('components-b2b-cart-cta-button-title'))) : null;
442
- return (h("tet-b2b-configurator-cart", { ref: (el) => (context === 'edit' ? (this.cartEl = el) : null), context: context, class: { 'cart': true, 'cart--empty': isCartEmpty, [`cart--${context}`]: true }, data: data, theme: this.theme, isCartEmpty: isCartEmpty, isDesktopResolution: this.isDesktopResolution }, this.renderCartCardsList(context), ctaButton));
443
- };
444
- /** Checks if both primary and secondary products are currently in cart */
445
- this.areProductsAddedToCart = () => {
446
- const productsInCart = { primary: false, secondary: false };
447
- for (const [key, _] of state.cart) {
448
- const details = state.productDetails.get(key);
449
- if (!details) {
450
- continue;
451
- }
452
- productsInCart[details.categoryType] = true;
453
- }
454
- return productsInCart;
455
- };
456
- /** Cart checkout handler. Opens Checkout component*/
457
- this.checkout = () => {
458
- this.checkoutAttempted = true;
459
- const { primary, secondary } = this.areProductsAddedToCart();
460
- if (primary && secondary) {
461
- this.checkoutFormEl.open();
462
- }
463
- };
464
- /**
465
- * Catches emitted checkout form data
466
- * Combines with cart data and re-emits
467
- * @param e
468
- */
469
- this.submit = ({ detail }) => {
470
- const data = {
471
- cart: getCart(),
472
- contactInfo: detail
473
- };
474
- this.formState = 'loading';
475
- this.b2bConfiguratorSubmit.emit(data);
476
- this.checkoutFormEl.close();
477
- this.submissionStateDialogEl.open();
478
- };
479
- this.renderCheckoutForm = () => {
480
- return (h("tet-b2b-check-out-form", { ref: (el) => (this.checkoutFormEl = el), theme: this.theme, "onSubmit-check-out-form": this.submit }, h("div", { slot: "cart" }, this.renderCart('checkout'))));
481
- };
482
112
  this.referenceElement = undefined;
483
113
  this.isLoading = true;
484
114
  this.itemToRemove = null;
@@ -492,6 +122,25 @@ const TetB2bConfigurator$1 = /*@__PURE__*/ proxyCustomElement(class TetB2bConfig
492
122
  this.theme = 'light';
493
123
  this.stickyRefEl = '';
494
124
  }
125
+ get hostElement() { return this; }
126
+ /** @private The suffix for the price displayed - "€/mēn."). */
127
+ priceSuffix = '€/mēn.';
128
+ /**The reference to cart element. */
129
+ cartEl;
130
+ /**The reference to confirmation Modal, shown on delete events. */
131
+ confirmationDialogEl;
132
+ /**The reference to submission state Modal, shown after form submit action. */
133
+ submissionStateDialogEl;
134
+ /**The reference to checkout Modal Form. */
135
+ checkoutFormEl;
136
+ /** @private Reference to 1st inner accordion element*/
137
+ primaryAccordionEl;
138
+ /** @private Reference to 2nd inner accordion element*/
139
+ secondaryAccordionEl;
140
+ /** @private Reference to 1st inner accordion element*/
141
+ primaryNavEl;
142
+ /** @private Reference to 2nd inner accordion element*/
143
+ secondaryNavEl;
495
144
  /** Resets selected (open) primary cards on category change */
496
145
  resetSelectedPrimaryCards() {
497
146
  this.selectedPrimaryCards = [];
@@ -500,6 +149,12 @@ const TetB2bConfigurator$1 = /*@__PURE__*/ proxyCustomElement(class TetB2bConfig
500
149
  resetSelectedSecondaryCards() {
501
150
  this.selectedSecondaryCards = [];
502
151
  }
152
+ /** Emitted when the compare link for a category is clicked. */
153
+ compareLinkClick;
154
+ /** The submit event of the B2B configurator. */
155
+ b2bConfiguratorSubmit;
156
+ /** Emitted when the close button of success modal is clicked. */
157
+ successCloseClick;
503
158
  /** Checks for desktop resolution and intializes the sticky element's reference using the provided prop or the host's parent */
504
159
  async componentWillLoad() {
505
160
  this.checkDesktopResolution();
@@ -514,12 +169,11 @@ const TetB2bConfigurator$1 = /*@__PURE__*/ proxyCustomElement(class TetB2bConfig
514
169
  * - sticky elements position
515
170
  */
516
171
  async componentDidLoad() {
517
- var _a, _b;
518
172
  this.isLoading = true;
519
173
  await ensureMinDuration(this.fetchData, MIN_LOAD_TIME);
520
174
  this.isLoading = false;
521
- this.activePrimaryCategoryId = ((_a = state.data.find((category) => category.type === 'primary')) === null || _a === void 0 ? void 0 : _a.id) || null;
522
- this.activeSecondaryCategoryId = ((_b = state.data.find((category) => category.type === 'secondary')) === null || _b === void 0 ? void 0 : _b.id) || null;
175
+ this.activePrimaryCategoryId = state.data.find((category) => category.type === 'primary')?.id || null;
176
+ this.activeSecondaryCategoryId = state.data.find((category) => category.type === 'secondary')?.id || null;
523
177
  this.positionStickyCartEl();
524
178
  }
525
179
  /**
@@ -533,10 +187,374 @@ const TetB2bConfigurator$1 = /*@__PURE__*/ proxyCustomElement(class TetB2bConfig
533
187
  async setSubmitFormState(value) {
534
188
  this.formState = value;
535
189
  }
190
+ /** Syncs desktop resolution with state variable */
191
+ checkDesktopResolution = () => {
192
+ this.isDesktopResolution = window.innerWidth >= DESKTOP_BREAKPOINT;
193
+ };
194
+ /** Fetches the data and passes it to Stencil store */
195
+ fetchData = async () => {
196
+ const data = await b2bConfigurator();
197
+ initData(data);
198
+ };
199
+ /** Renders the placeholdes/skeleton */
200
+ renderPlaceholder = () => {
201
+ const darkTheme = this.theme === 'dark';
202
+ return [
203
+ h("div", { class: "offer placeholder" }, h("div", { style: { padding: this.isDesktopResolution ? '1.5rem' : '1rem' } }, h("tet-placeholder", { class: "placeholder", height: this.isDesktopResolution ? '2rem' : '1.5rem', darkTheme: darkTheme })), h("div", { class: "offer__content" }, h("tet-placeholder", { class: "placeholder offer__navigation", height: this.isDesktopResolution ? '48rem' : ' 2.25rem', darkTheme: darkTheme, style: { margin: '0' } }), h("div", { class: "offer__cards" }, h("div", { class: "offer__cards-list" }, h("tet-placeholder", { class: "placeholder", height: "3rem", darkTheme: darkTheme }), h("tet-placeholder", { class: "placeholder", height: "10.25rem", darkTheme: darkTheme }), h("tet-placeholder", { class: "placeholder", height: "10.25rem", darkTheme: darkTheme }), h("tet-placeholder", { class: "placeholder", height: "10.25rem", darkTheme: darkTheme }), h("tet-placeholder", { class: "placeholder", height: "10.25rem", darkTheme: darkTheme }))))),
204
+ h("div", { class: "cart cart--empty", style: {
205
+ 'padding': '1.5rem 1rem 1rem',
206
+ 'background-color': `var(--b2b-background-color)`
207
+ } }, h("tet-placeholder", { class: "placeholder", height: "12.75rem", darkTheme: darkTheme }))
208
+ ];
209
+ };
210
+ /**
211
+ * Handles event form navigation and sets currently active categories
212
+ * @param e
213
+ * @returns
214
+ */
215
+ categoryClickHandler = (e) => {
216
+ const { id } = e.detail;
217
+ const category = this.getCategoryById(id);
218
+ if (!category) {
219
+ return;
220
+ }
221
+ if (category.type === 'primary') {
222
+ this.activePrimaryCategoryId = id;
223
+ }
224
+ else {
225
+ this.activeSecondaryCategoryId = id;
226
+ }
227
+ };
228
+ /** Renders the offer section */
229
+ renderOffer = () => {
230
+ const blocks = [
231
+ { name: translate('components-b2b-offer-primary-title'), type: 'primary' },
232
+ { name: translate('components-b2b-offer-secondary-title'), type: 'secondary' }
233
+ ];
234
+ return (h("div", { class: { offer: true, [`offer--${this.theme}`]: true } }, blocks.map((block) => {
235
+ const menuItems = state.data
236
+ .filter((item) => item.type === block.type)
237
+ .map((category) => {
238
+ const { id, name, icon } = category;
239
+ const selected = id === this.activePrimaryCategoryId || id === this.activeSecondaryCategoryId;
240
+ return { id, name, icon, selected };
241
+ });
242
+ const accRefCallback = (el) => {
243
+ if (block.type === 'primary') {
244
+ this.primaryAccordionEl = el;
245
+ }
246
+ else {
247
+ this.secondaryAccordionEl = el;
248
+ }
249
+ };
250
+ const navRefCallback = (el) => {
251
+ if (block.type === 'primary') {
252
+ this.primaryNavEl = el;
253
+ }
254
+ else {
255
+ this.secondaryNavEl = el;
256
+ }
257
+ };
258
+ return (h("tet-accordion", { ref: accRefCallback, key: block.type, class: "offer__block", isOpen: block.type === 'primary', header: block.name, withBorder: true, theme: this.theme, transparentBackground: true }, h("div", { class: "offer__content" }, h("div", { class: "offer__navigation" }, h("tet-business-navigation", { ref: navRefCallback, menuItems: menuItems, theme: this.theme, "onMenu-click-event": this.categoryClickHandler })), this.renderCards(block.type))));
259
+ })));
260
+ };
261
+ /**
262
+ * Finds category by id. Returns category or undefined.
263
+ * @param categoryId
264
+ * @returns
265
+ */
266
+ getCategoryById = (categoryId) => {
267
+ return state.data.find((category) => category.id === categoryId);
268
+ };
269
+ /**
270
+ * Event, emitted on compare link click with the relevant modal Id
271
+ * @param categoryId
272
+ * @returns
273
+ */
274
+ onCompareLinkClick = (categoryId) => {
275
+ const category = this.getCategoryById(categoryId);
276
+ if (!category || !category.modalScreenId) {
277
+ return;
278
+ }
279
+ this.compareLinkClick.emit(category.modalScreenId);
280
+ };
281
+ /**
282
+ * Handles card selection (aka. oepen state). Checks for single|multi choice
283
+ * @param cardId
284
+ * @param categoryId
285
+ * @returns
286
+ */
287
+ handleCardSelected = (cardId, categoryId) => {
288
+ const category = this.getCategoryById(categoryId);
289
+ if (!category) {
290
+ return;
291
+ }
292
+ const { type, allowMultipleChoice } = category;
293
+ if (type === 'primary') {
294
+ if (this.selectedPrimaryCards.includes(cardId)) {
295
+ return;
296
+ }
297
+ this.selectedPrimaryCards = allowMultipleChoice ? [...this.selectedPrimaryCards, cardId] : [cardId];
298
+ }
299
+ else {
300
+ if (this.selectedSecondaryCards.includes(cardId)) {
301
+ return;
302
+ }
303
+ this.selectedSecondaryCards = allowMultipleChoice ? [...this.selectedSecondaryCards, cardId] : [cardId];
304
+ }
305
+ };
306
+ /**
307
+ * Updates product in cart (add, edit, remove)
308
+ * In desktop mode - changes state of summary cart's accordions
309
+ * @param e
310
+ * @param categoryId
311
+ */
312
+ handleProductCountChanged = async (e, categoryId) => {
313
+ const { cardId, count } = e.detail;
314
+ const productCategory = this.getCategoryById(categoryId);
315
+ if (!productCategory || state.cart.get(cardId) === count) {
316
+ return;
317
+ }
318
+ if (!count) {
319
+ this.itemToRemove = cardId;
320
+ this.confirmationDialogEl.open();
321
+ return;
322
+ }
323
+ if (!productCategory.allowMultipleChoice) {
324
+ productCategory.products.forEach((product) => product.productCode !== cardId && removeFromCart(product.productCode));
325
+ }
326
+ addToCart(cardId, count);
327
+ if (this.isDesktopResolution) {
328
+ this.cartEl.changeBlockState(productCategory.type, 'open');
329
+ this.cartEl.changeBlockState(productCategory.type === 'primary' ? 'secondary' : 'primary', 'close');
330
+ }
331
+ };
332
+ /** Resets itemId to be removed when confirmation dialog is closed */
333
+ onConfirmationClose = () => {
334
+ this.itemToRemove = null;
335
+ };
336
+ /** Renders confirmation dialog, shown on product removal action */
337
+ renderConfirmationDialog = () => {
338
+ return (h("tet-dialog", { ref: (el) => (this.confirmationDialogEl = el), class: this.theme, closeOnOverlayClick: false, onCloseDialog: this.onConfirmationClose, theme: this.theme }, h("div", { class: "action-dialog" }, h("tet-icon", { class: "action-dialog__icon action-dialog__attention-icon", name: "attention" }), h("div", { class: "action-dialog__title" }, translate('components-b2b-item-remove-confirmation-title'))), h("div", { slot: "footer", class: "action-dialog__footer" }, h("tet-button", { class: "action-dialog__button", type: "secondary", theme: this.theme, size: "large", onClick: () => this.confirmationDialogEl.close() }, translate('components-b2b-item-remove-confirmation-decline')), h("tet-button", { class: "action-dialog__button", type: "primary", theme: this.theme, size: "large", iconName: "tc-trash", iconPosition: "left", onClick: () => {
339
+ removeFromCart(this.itemToRemove);
340
+ this.confirmationDialogEl.close();
341
+ } }, translate('components-b2b-item-remove-confirmation-accept')))));
342
+ };
343
+ /** Performs action to start again */
344
+ resetState = () => {
345
+ resetCart();
346
+ this.checkoutAttempted = false;
347
+ this.primaryAccordionEl.open();
348
+ this.secondaryAccordionEl.close();
349
+ };
350
+ /** Renders dialog, shown after form submit */
351
+ renderSubmissionStateDialog = () => {
352
+ const isFormSubmitLoading = this.formState === 'loading';
353
+ const successClose = () => {
354
+ this.resetState();
355
+ this.successCloseClick.emit();
356
+ this.submissionStateDialogEl.close();
357
+ };
358
+ const content = isFormSubmitLoading ? (h("div", { class: "action-dialog" }, h("tet-spinner", { theme: this.theme }), h("div", { class: "action-dialog__title" }, translate('components-b2b-loading-dialog-title')), h("div", { class: "action-dialog__description" }, translate('components-b2b-loading-dialog-description')))) : ([
359
+ h("div", { class: "action-dialog" }, h("tet-icon", { class: "action-dialog__icon action-dialog__success-icon", name: "tc-check-circle" }), h("div", { class: "action-dialog__title" }, translate('components-b2b-success-dialog-title')), h("div", { class: "action-dialog__description" }, translate('components-b2b-success-dialog-description'))),
360
+ h("div", { slot: "footer", class: "action-dialog__footer" }, h("tet-button", { class: "action-dialog__button", type: "secondary", theme: this.theme, size: "large", onClick: successClose }, h("div", { class: "action-dialog__button-text" }, translate('components-b2b-success-dialog-close'))), h("tet-button", { class: "action-dialog__button", type: "primary", theme: this.theme, size: "large", onClick: () => {
361
+ this.resetState();
362
+ this.submissionStateDialogEl.close();
363
+ } }, h("div", { class: "action-dialog__button-text" }, translate('components-b2b-success-dialog-start-again'))))
364
+ ]);
365
+ return (h("tet-dialog", { ref: (el) => (this.submissionStateDialogEl = el), class: { [this.theme]: true, 'action-dialog--loading': isFormSubmitLoading }, closeOnOverlayClick: false, closeOnEscape: !isFormSubmitLoading, hideCloseButton: isFormSubmitLoading, theme: this.theme, onCloseDialog: this.formState === 'success' ? successClose : this.submissionStateDialogEl.close }, content));
366
+ };
367
+ /**
368
+ * Renders offer section cards for the given category type
369
+ * @param categoryType The type of category block to render
370
+ * @returns
371
+ */
372
+ renderCards = (categoryType) => {
373
+ const activeCategoryId = categoryType === 'primary' ? this.activePrimaryCategoryId : this.activeSecondaryCategoryId;
374
+ const selectedCards = categoryType === 'primary' ? this.selectedPrimaryCards : this.selectedSecondaryCards;
375
+ const products = this.getCategoryById(activeCategoryId)?.products || [];
376
+ const cards = products.map((product) => {
377
+ const { productCode: id, name: { lv: title }, description: { lv: subtitle }, amount: price, b2bConfiguratorProduct: { discountAmount: discountPrice, selectionType, defaultValue, minValue, maxValue, translationKey: label }, benefits: { lv: benefits }, contracts } = product;
378
+ const isBestChoice = !!product.attributes.find((attribute) => attribute.key === 'isBestChoice')?.value;
379
+ const counterOptions = selectionType === 'single'
380
+ ? undefined
381
+ : {
382
+ defaultValue,
383
+ minValue,
384
+ maxValue,
385
+ label
386
+ };
387
+ const options = {
388
+ id,
389
+ title,
390
+ subtitle,
391
+ isBestChoice,
392
+ price,
393
+ discountPrice,
394
+ benefits: benefits.split('\n'),
395
+ contract: contracts[0]?.contract,
396
+ counterOptions
397
+ };
398
+ const isSelected = selectedCards.includes(id);
399
+ return (h("tet-b2b-compare-card", { options: options, theme: this.theme, key: id, isSelected: isSelected, onSelectedChange: () => this.handleCardSelected(id, activeCategoryId), count: state.cart.get(id), onCountChange: (e) => this.handleProductCountChanged(e, activeCategoryId) }));
400
+ });
401
+ return (h("div", { class: "offer__cards" }, h("div", { class: "offer__cards-header" }, h("div", { class: "offer__cards-title" }, translate('components-b2b-offer-product-list-title')), h("button", { class: { 'button-reset': true, 'compare__button': true, [`${this.theme}`]: true }, onClick: () => {
402
+ this.onCompareLinkClick(activeCategoryId);
403
+ } }, h("span", { class: { 'compare__text': true, 'tet-link': true, [`${this.theme}`]: true } }, translate('components-b2b-offer-compare-link-text')), h("div", { class: "compare__icon-wrapper" }, h("tet-icon", { class: "compare__icon", name: "tc-info-circle-outline", theme: this.theme })))), h("div", { class: "offer__cards-list" }, cards)));
404
+ };
405
+ /**
406
+ * Translates Cart "count change" event and uses in the general "count change" handler
407
+ * @param cardId
408
+ * @param count
409
+ * @param categoryId
410
+ */
411
+ handleCartProductCountChange = (cardId, count, categoryId) => {
412
+ const updateEvent = { detail: { cardId, count } };
413
+ this.handleProductCountChanged(updateEvent, categoryId);
414
+ };
415
+ /**
416
+ * Navigates user in offer section by opening accordion and selecting the specific product which was clicked in cart component
417
+ * @param categoryId
418
+ * @param productCode
419
+ * @returns
420
+ */
421
+ goToProduct = async (categoryId, productCode) => {
422
+ const category = this.getCategoryById(categoryId);
423
+ if (!category) {
424
+ return;
425
+ }
426
+ if (category.type === 'primary') {
427
+ await this.primaryAccordionEl.open();
428
+ await this.primaryNavEl.selectMenuItem(categoryId);
429
+ this.primaryAccordionEl.scrollIntoView({ behavior: 'smooth' });
430
+ }
431
+ else if (category.type === 'secondary') {
432
+ await this.secondaryAccordionEl.open();
433
+ await this.secondaryNavEl.selectMenuItem(categoryId);
434
+ this.secondaryAccordionEl.scrollIntoView({ behavior: 'smooth' });
435
+ }
436
+ setTimeout(() => {
437
+ this.handleCardSelected(productCode, categoryId);
438
+ }, 0);
439
+ };
440
+ /**
441
+ * Renders list of Cards in Cart depending on context
442
+ * @param context
443
+ * @returns
444
+ */
445
+ renderCartCardsList = (context) => {
446
+ const categoryTypes = ['primary', 'secondary'];
447
+ const productCodeToSummaryCard = (productCode) => {
448
+ const count = state.cart.get(productCode);
449
+ const details = state.productDetails.get(productCode);
450
+ if (count === undefined || !details) {
451
+ return null;
452
+ }
453
+ const { name, amount, description, discountAmount, categoryName, categoryType, categoryId, b2bConfiguratorProduct } = details;
454
+ const productDescription = categoryType === 'primary' ? description : categoryName;
455
+ const { selectionType, term, minValue, maxValue, translationKey } = b2bConfiguratorProduct;
456
+ return (h("tet-business-summary-card", { key: productCode, productName: name, price: amount, productDescription: productDescription, discountPrice: discountAmount, currency: this.priceSuffix, contractTerm: term, theme: this.theme, withStepper: selectionType === 'number', value: count, minValue: minValue, maxValue: maxValue, stepperLabel: translate(translationKey || ''), context: context, onAmountChange: (e) => this.handleCartProductCountChange(productCode, e.detail, categoryId), onDeleteButtonClick: () => this.handleCartProductCountChange(productCode, 0, categoryId), onEditButtonClick: () => this.goToProduct(categoryId, productCode) }));
457
+ };
458
+ return categoryTypes.map((type) => {
459
+ const summaryCards = [...state.cart]
460
+ .filter(([productCode]) => {
461
+ const details = state.productDetails.get(productCode);
462
+ return details && details.categoryType === type;
463
+ })
464
+ .map(([productCode]) => productCodeToSummaryCard(productCode));
465
+ return summaryCards.length ? (h("div", { class: "cart__card-list", slot: type }, summaryCards)) : null;
466
+ });
467
+ };
468
+ /** Adjusts the top position variable for the sticky cart element */
469
+ positionStickyCartEl = () => {
470
+ if (this.referenceElement) {
471
+ if (this.isDesktopResolution) {
472
+ this.hostElement.style.setProperty('--b2b-cart-sticky-top', `${this.referenceElement.offsetTop}px`);
473
+ }
474
+ else {
475
+ this.hostElement.style.removeProperty('--b2b-cart-sticky-top');
476
+ }
477
+ }
478
+ };
479
+ /**
480
+ * Renders Cart content depending on context
481
+ * @param context
482
+ * @returns
483
+ */
484
+ renderCart = (context = 'edit') => {
485
+ const isCartEmpty = !state.cart.size;
486
+ let summaryAmounts = { primary: 0, secondary: 0 };
487
+ let summaryCounts = { primary: 0, secondary: 0 };
488
+ let summaryWouldBeAmount = 0;
489
+ for (const [key, count] of state.cart) {
490
+ const details = state.productDetails.get(key);
491
+ if (!details) {
492
+ continue;
493
+ }
494
+ summaryAmounts[details.categoryType] += (details.discountAmount ?? details.amount) * count;
495
+ summaryCounts[details.categoryType] += 1;
496
+ summaryWouldBeAmount += details.amount * count;
497
+ }
498
+ const { primary: primaryAmount, secondary: secondaryAmount } = summaryAmounts;
499
+ const summaryAmount = primaryAmount + secondaryAmount;
500
+ const summarySavings = summaryWouldBeAmount - summaryAmount;
501
+ const { primary, secondary } = this.areProductsAddedToCart();
502
+ const hasPrimaryNotification = context === 'edit' && this.checkoutAttempted && !primary;
503
+ const hasSecondaryNotification = context === 'edit' && this.checkoutAttempted && !secondary;
504
+ const data = {
505
+ summaryAmount: summaryAmount.toFixed(2),
506
+ primaryAmount: primaryAmount.toFixed(2),
507
+ secondaryAmount: secondaryAmount.toFixed(2),
508
+ primaryCount: summaryCounts.primary,
509
+ secondaryCount: summaryCounts.secondary,
510
+ summarySavings: summarySavings.toFixed(2),
511
+ hasPrimaryNotification,
512
+ hasSecondaryNotification
513
+ };
514
+ const ctaButton = context === 'edit' ? (h("tet-button", { onClick: this.checkout, slot: "cta", class: "cart__cta", type: "primary", size: this.isDesktopResolution ? 'large' : 'medium', theme: this.theme }, translate('components-b2b-cart-cta-button-title'))) : null;
515
+ return (h("tet-b2b-configurator-cart", { ref: (el) => (context === 'edit' ? (this.cartEl = el) : null), context: context, class: { 'cart': true, 'cart--empty': isCartEmpty, [`cart--${context}`]: true }, data: data, theme: this.theme, isCartEmpty: isCartEmpty, isDesktopResolution: this.isDesktopResolution }, this.renderCartCardsList(context), ctaButton));
516
+ };
517
+ /** Checks if both primary and secondary products are currently in cart */
518
+ areProductsAddedToCart = () => {
519
+ const productsInCart = { primary: false, secondary: false };
520
+ for (const [key, _] of state.cart) {
521
+ const details = state.productDetails.get(key);
522
+ if (!details) {
523
+ continue;
524
+ }
525
+ productsInCart[details.categoryType] = true;
526
+ }
527
+ return productsInCart;
528
+ };
529
+ /** Cart checkout handler. Opens Checkout component*/
530
+ checkout = () => {
531
+ this.checkoutAttempted = true;
532
+ const { primary, secondary } = this.areProductsAddedToCart();
533
+ if (primary && secondary) {
534
+ this.checkoutFormEl.open();
535
+ }
536
+ };
537
+ /**
538
+ * Catches emitted checkout form data
539
+ * Combines with cart data and re-emits
540
+ * @param e
541
+ */
542
+ submit = ({ detail }) => {
543
+ const data = {
544
+ cart: getCart(),
545
+ contactInfo: detail
546
+ };
547
+ this.formState = 'loading';
548
+ this.b2bConfiguratorSubmit.emit(data);
549
+ this.checkoutFormEl.close();
550
+ this.submissionStateDialogEl.open();
551
+ };
552
+ renderCheckoutForm = () => {
553
+ return (h("tet-b2b-check-out-form", { ref: (el) => (this.checkoutFormEl = el), theme: this.theme, "onSubmit-check-out-form": this.submit }, h("div", { slot: "cart" }, this.renderCart('checkout'))));
554
+ };
536
555
  render() {
537
556
  return (h(Host, { key: '1e097cec9901e3772f4dbff047f1a28aee8630c7' }, h("div", { key: 'c2b15b14deea0b7973dd7fee59d48a3ce4a60f40', class: { configurator: true, [`${this.theme}`]: true } }, this.isLoading ? this.renderPlaceholder() : state.data && [this.renderOffer(), this.renderCart()]), this.renderCheckoutForm(), this.renderConfirmationDialog(), this.renderSubmissionStateDialog()));
538
557
  }
539
- get hostElement() { return this; }
540
558
  static get watchers() { return {
541
559
  "activePrimaryCategoryId": ["resetSelectedPrimaryCards"],
542
560
  "activeSecondaryCategoryId": ["resetSelectedSecondaryCards"]