@tet/tet-components 1.3.157-testing → 1.4.0-production

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 (724) hide show
  1. package/dist/cjs/{address-5271d3aa.js → address-ac89cbf7.js} +1 -1
  2. package/dist/cjs/{assets-e3bb045c.js → assets-d8d3b4a0.js} +1 -1
  3. package/dist/cjs/{async-request-29b32d63.js → async-request-5585e750.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-910040e7.js} +25 -19
  6. package/dist/cjs/{index-f559cb2e.js → index-4daaccaa.js} +1672 -1598
  7. package/dist/cjs/{index-84ede372.js → index-f89f05b8.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-e7afcafb.js} +1 -1
  11. package/dist/cjs/{tasks-af99ad61.js → tasks-807b08d3.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-3f7c73ee.js} +2 -2
  94. package/dist/cjs/{translations-ed68775f.js → translations-62fb6b1c.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-045bec85.js → p-03f68fa0.js} +16 -16
  202. package/dist/components/{p-4d33055f.js → p-04a30e22.js} +117 -107
  203. package/dist/components/{p-5dc5e13c.js → p-065e8f8b.js} +2 -2
  204. package/dist/components/{p-f18e5ae3.js → p-06650222.js} +28 -23
  205. package/dist/components/{p-ca66b4b1.js → p-12649d6e.js} +8 -6
  206. package/dist/components/{p-856695a3.js → p-13bb64a3.js} +43 -37
  207. package/dist/components/{p-489ae3a0.js → p-1c466832.js} +27 -26
  208. package/dist/components/{p-639c9d1a.js → p-1cccc456.js} +80 -69
  209. package/dist/components/{p-bb324278.js → p-220f3eef.js} +1 -1
  210. package/dist/components/{p-df1fe72c.js → p-2426d691.js} +47 -37
  211. package/dist/components/{p-04fe59fc.js → p-25756e4c.js} +50 -47
  212. package/dist/components/{p-aca28e71.js → p-2627300f.js} +53 -52
  213. package/dist/components/{p-144dffdc.js → p-31662bf6.js} +1 -1
  214. package/dist/components/{p-6b7e73c0.js → p-33725ec2.js} +218 -202
  215. package/dist/components/{p-9a47b95f.js → p-3a80e93a.js} +26 -26
  216. package/dist/components/p-3daf3627.js +869 -0
  217. package/dist/components/{p-cec65d0a.js → p-405417ba.js} +121 -116
  218. package/dist/components/{p-530ef38b.js → p-429b72d5.js} +4 -4
  219. package/dist/components/{p-9573f82c.js → p-496e41f5.js} +41 -35
  220. package/dist/components/{p-a188f09e.js → p-57c53319.js} +11 -7
  221. package/dist/components/{p-a81e545d.js → p-581edb37.js} +1 -1
  222. package/dist/components/{p-3fd7310f.js → p-5d56e6e5.js} +1 -1
  223. package/dist/components/{p-7ddd71bd.js → p-5e206e34.js} +3 -3
  224. package/dist/components/{p-965cea5b.js → p-5fd443f5.js} +137 -134
  225. package/dist/components/{p-6847eb2d.js → p-64ca3cec.js} +62 -63
  226. package/dist/components/{p-0088d040.js → p-7530ef19.js} +16 -12
  227. package/dist/components/{p-eb54f5b9.js → p-78a44de3.js} +21 -18
  228. package/dist/components/{p-7b3c7bf1.js → p-7beec5f2.js} +4 -2
  229. package/dist/components/{p-c1876db7.js → p-7dff5fe9.js} +36 -21
  230. package/dist/components/{p-68f0e894.js → p-7e8270ec.js} +10 -10
  231. package/dist/components/{p-bd3402f6.js → p-7fb96f10.js} +17 -15
  232. package/dist/components/{p-35e72a2b.js → p-8101b09a.js} +58 -44
  233. package/dist/components/{p-37ed3ebb.js → p-88af3744.js} +190 -135
  234. package/dist/components/{p-42ff76b5.js → p-8db05f15.js} +22 -18
  235. package/dist/components/{p-881093d4.js → p-9372e619.js} +206 -194
  236. package/dist/components/{p-9fe57fd0.js → p-962b13ba.js} +68 -65
  237. package/dist/components/{p-b0d6ed2e.js → p-a9b1c410.js} +25 -24
  238. package/dist/components/{p-029ff2b3.js → p-b3001877.js} +24 -24
  239. package/dist/components/{p-00e689fb.js → p-ba709868.js} +1 -1
  240. package/dist/components/{p-50f207fd.js → p-bc84eb7d.js} +54 -34
  241. package/dist/components/{p-91651432.js → p-bfcce1dd.js} +1 -1
  242. package/dist/{esm/http-codes-7faa9f6e.js → components/p-c1f5b99f.js} +66 -59
  243. package/dist/components/{p-e707e73a.js → p-c217775d.js} +13 -5
  244. package/dist/components/{p-cb2daf20.js → p-c62a7fa3.js} +25 -16
  245. package/dist/components/{p-88b42c67.js → p-c7c47790.js} +63 -59
  246. package/dist/components/{p-00c91e96.js → p-c8b44baa.js} +2 -2
  247. package/dist/components/{p-6a2a81d8.js → p-c956b246.js} +104 -94
  248. package/dist/components/{p-53ca0a91.js → p-d3939d35.js} +39 -23
  249. package/dist/components/{p-5c8c2d8d.js → p-d4192716.js} +1 -1
  250. package/dist/components/{p-163de6e2.js → p-d73512b2.js} +23 -11
  251. package/dist/components/{p-e04716ac.js → p-dfee3bd7.js} +29 -30
  252. package/dist/components/{p-9bf262a8.js → p-e474903b.js} +33 -27
  253. package/dist/components/p-ea401595.js +169 -0
  254. package/dist/components/{p-03177920.js → p-ecf59431.js} +181 -173
  255. package/dist/components/{p-818742ad.js → p-ee3bdb7a.js} +21 -22
  256. package/dist/components/{p-817bee22.js → p-f05feebd.js} +12 -12
  257. package/dist/components/{p-21c5cfc4.js → p-f7be6960.js} +64 -53
  258. package/dist/components/{p-616c71e1.js → p-f82069f3.js} +559 -532
  259. package/dist/components/{p-a0d406ca.js → p-f8ac52c6.js} +117 -72
  260. package/dist/components/{p-7790eae2.js → p-f97fa8ff.js} +128 -126
  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-483cfa2e.js} +1 -1
  358. package/dist/esm/{assets-b971f105.js → assets-d6147258.js} +1 -1
  359. package/dist/esm/{async-request-6675e5f5.js → async-request-21a65bdc.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-c2e180c8.js} +65 -60
  362. package/dist/esm/{index-1bf36cb9.js → index-0c5fef2e.js} +1 -1
  363. package/dist/esm/{index-7f1e2a22.js → index-209dece3.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-41b334ab.js} +1 -1
  367. package/dist/esm/{tasks-3dfcc330.js → tasks-24b9f88e.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-58ce8dca.js} +2 -2
  450. package/dist/esm/{translations-eff34607.js → translations-ff21fc65.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-eed2b508.entry.js → p-02441a57.entry.js} +1 -1
  454. package/dist/tet-components/p-032b5507.js +1 -0
  455. package/dist/tet-components/{p-de142575.js → p-0449b998.js} +1 -1
  456. package/dist/tet-components/{p-b680d126.entry.js → p-072fd38b.entry.js} +1 -1
  457. package/dist/tet-components/p-078fae30.entry.js +1 -0
  458. package/dist/tet-components/p-087903b8.entry.js +1 -0
  459. package/dist/tet-components/p-09da9cdb.entry.js +1 -0
  460. package/dist/tet-components/p-0bd28e46.entry.js +1 -0
  461. package/dist/tet-components/p-12649d6e.js +1 -0
  462. package/dist/tet-components/{p-44d068ac.entry.js → p-172f5d46.entry.js} +1 -1
  463. package/dist/tet-components/p-19d71252.entry.js +1 -0
  464. package/dist/tet-components/p-1c34c35d.entry.js +1 -0
  465. package/dist/tet-components/{p-9b027102.entry.js → p-1e637cab.entry.js} +1 -1
  466. package/dist/tet-components/p-216be909.entry.js +1 -0
  467. package/dist/tet-components/p-2204320b.entry.js +1 -0
  468. package/dist/tet-components/p-25c9957d.js +1 -0
  469. package/dist/tet-components/p-274d6839.entry.js +1 -0
  470. package/dist/tet-components/p-278ad754.entry.js +1 -0
  471. package/dist/tet-components/p-2813884f.entry.js +1 -0
  472. package/dist/tet-components/p-290cc145.entry.js +1 -0
  473. package/dist/tet-components/p-29a179e7.entry.js +1 -0
  474. package/dist/tet-components/{p-1a89919e.entry.js → p-2b11b9eb.entry.js} +1 -1
  475. package/dist/tet-components/p-30fed7c2.entry.js +1 -0
  476. package/dist/tet-components/{p-5c86ad42.entry.js → p-3176cf46.entry.js} +1 -1
  477. package/dist/tet-components/{p-46e5b573.entry.js → p-3d60accc.entry.js} +1 -1
  478. package/dist/tet-components/{p-e263ecdf.js → p-3deb6f3c.js} +1 -1
  479. package/dist/tet-components/p-41cdb7f9.entry.js +1 -0
  480. package/dist/tet-components/p-446ae6ef.entry.js +1 -0
  481. package/dist/tet-components/{p-f9a1fbb2.entry.js → p-451b2a49.entry.js} +1 -1
  482. package/dist/tet-components/{p-f023f124.entry.js → p-47233208.entry.js} +1 -1
  483. package/dist/tet-components/p-4c10844d.entry.js +1 -0
  484. package/dist/tet-components/p-4ecb9094.entry.js +1 -0
  485. package/dist/tet-components/{p-36d2a380.entry.js → p-4fd6c1ae.entry.js} +1 -1
  486. package/dist/tet-components/{p-49122f6a.entry.js → p-510150b8.entry.js} +1 -1
  487. package/dist/tet-components/{p-bc16c07b.js → p-56bfd2a5.js} +1 -1
  488. package/dist/tet-components/p-585739ce.entry.js +1 -0
  489. package/dist/tet-components/{p-918e4e84.entry.js → p-5cf65beb.entry.js} +1 -1
  490. package/dist/tet-components/{p-66dd0ede.entry.js → p-6278a886.entry.js} +1 -1
  491. package/dist/tet-components/p-646bddab.entry.js +1 -0
  492. package/dist/tet-components/p-683c2419.entry.js +1 -0
  493. package/dist/tet-components/{p-8b405467.entry.js → p-68709390.entry.js} +1 -1
  494. package/dist/tet-components/{p-c7dbb16f.entry.js → p-6910d35c.entry.js} +1 -1
  495. package/dist/tet-components/p-696f83db.entry.js +1 -0
  496. package/dist/tet-components/p-6a185f76.js +1 -0
  497. package/dist/tet-components/p-6ccea165.entry.js +1 -0
  498. package/dist/tet-components/p-6e166c83.entry.js +1 -0
  499. package/dist/tet-components/{p-775aa778.entry.js → p-70941fcd.entry.js} +1 -1
  500. package/dist/tet-components/p-7145ca73.entry.js +1 -0
  501. package/dist/tet-components/{p-8c964cca.js → p-77d941d8.js} +2 -2
  502. package/dist/tet-components/{p-a9ed4e2b.entry.js → p-7ae725e1.entry.js} +1 -1
  503. package/dist/tet-components/p-8148edc9.entry.js +1 -0
  504. package/dist/tet-components/p-8622e131.entry.js +1 -0
  505. package/dist/tet-components/p-8907f459.entry.js +1 -0
  506. package/dist/tet-components/p-8f7629ca.entry.js +1 -0
  507. package/dist/tet-components/p-94e9a944.js +1 -0
  508. package/dist/tet-components/p-97c743ab.entry.js +1 -0
  509. package/dist/tet-components/p-9a2b6ee2.js +1 -0
  510. package/dist/tet-components/p-9b5cf49f.js +2 -0
  511. package/dist/tet-components/{p-ed67bd52.entry.js → p-9becad06.entry.js} +1 -1
  512. package/dist/tet-components/p-9eb8d93b.entry.js +1 -0
  513. package/dist/tet-components/p-a8091c62.entry.js +1 -0
  514. package/dist/tet-components/p-a8e16d54.entry.js +1 -0
  515. package/dist/tet-components/p-ae2e1d5c.entry.js +1 -0
  516. package/dist/tet-components/{p-ecff869b.entry.js → p-b3598dc1.entry.js} +1 -1
  517. package/dist/tet-components/p-ba803b83.entry.js +1 -0
  518. package/dist/tet-components/p-bda674b0.entry.js +1 -0
  519. package/dist/tet-components/{p-8f545d45.entry.js → p-c07c5b84.entry.js} +1 -1
  520. package/dist/tet-components/p-c14f1445.entry.js +1 -0
  521. package/dist/tet-components/{p-9f1a810e.entry.js → p-c24c48e4.entry.js} +1 -1
  522. package/dist/tet-components/{p-bb9f1a6f.entry.js → p-c3f486bc.entry.js} +1 -1
  523. package/dist/tet-components/{p-77372984.js → p-c4fc2dd6.js} +1 -1
  524. package/dist/tet-components/p-c5bc017a.entry.js +1 -0
  525. package/dist/tet-components/p-c6d7c2b4.entry.js +1 -0
  526. package/dist/tet-components/p-c9cdf98c.js +1 -0
  527. package/dist/tet-components/p-cca96c58.entry.js +1 -0
  528. package/dist/tet-components/p-d4b6b480.entry.js +1 -0
  529. package/dist/tet-components/p-d5cc4a81.entry.js +1 -0
  530. package/dist/tet-components/p-d8bebee4.entry.js +1 -0
  531. package/dist/tet-components/p-d9a826c2.js +1 -0
  532. package/dist/tet-components/p-dd49b83c.entry.js +1 -0
  533. package/dist/tet-components/p-dd6c7252.entry.js +1 -0
  534. package/dist/tet-components/p-ea3ae824.entry.js +1 -0
  535. package/dist/tet-components/p-eba077c3.entry.js +1 -0
  536. package/dist/tet-components/p-ebc29130.entry.js +1 -0
  537. package/dist/tet-components/p-ed09dcf0.entry.js +1 -0
  538. package/dist/tet-components/p-ed46a069.entry.js +1 -0
  539. package/dist/tet-components/p-eda15c93.entry.js +1 -0
  540. package/dist/tet-components/{p-a07cada6.entry.js → p-eeb9d7f5.entry.js} +1 -1
  541. package/dist/tet-components/p-f262aa6f.entry.js +1 -0
  542. package/dist/tet-components/p-f6d5af93.entry.js +1 -0
  543. package/dist/tet-components/p-f704e170.entry.js +1 -0
  544. package/dist/tet-components/p-f86ab4d3.entry.js +1 -0
  545. package/dist/tet-components/p-fcaa909d.entry.js +1 -0
  546. package/dist/tet-components/p-fd1d7955.entry.js +1 -0
  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-7a04bcd7.entry.js +0 -1
  686. package/dist/tet-components/p-805c9ef3.entry.js +0 -1
  687. package/dist/tet-components/p-88885ba1.entry.js +0 -1
  688. package/dist/tet-components/p-8a6831bc.entry.js +0 -1
  689. package/dist/tet-components/p-8c7c6590.entry.js +0 -1
  690. package/dist/tet-components/p-8c89d1f5.entry.js +0 -1
  691. package/dist/tet-components/p-8d644f8b.entry.js +0 -1
  692. package/dist/tet-components/p-9102c6d9.entry.js +0 -1
  693. package/dist/tet-components/p-977ea27a.entry.js +0 -1
  694. package/dist/tet-components/p-9a5b8dbc.entry.js +0 -1
  695. package/dist/tet-components/p-a15d2b6a.entry.js +0 -1
  696. package/dist/tet-components/p-a549f1dd.entry.js +0 -1
  697. package/dist/tet-components/p-a8030923.entry.js +0 -1
  698. package/dist/tet-components/p-aff1e911.entry.js +0 -1
  699. package/dist/tet-components/p-b0112dde.entry.js +0 -1
  700. package/dist/tet-components/p-b14b8531.entry.js +0 -1
  701. package/dist/tet-components/p-b2b384d2.js +0 -1
  702. package/dist/tet-components/p-bc2e65ab.entry.js +0 -1
  703. package/dist/tet-components/p-bfa02c13.entry.js +0 -1
  704. package/dist/tet-components/p-c4a95bbe.entry.js +0 -1
  705. package/dist/tet-components/p-c4ed060b.entry.js +0 -1
  706. package/dist/tet-components/p-ca66b4b1.js +0 -1
  707. package/dist/tet-components/p-cf7d5c84.js +0 -1
  708. package/dist/tet-components/p-d0d6a340.js +0 -1
  709. package/dist/tet-components/p-d2919aae.js +0 -1
  710. package/dist/tet-components/p-d795f9c3.entry.js +0 -1
  711. package/dist/tet-components/p-dc12dee9.entry.js +0 -1
  712. package/dist/tet-components/p-dcbe09b5.js +0 -1
  713. package/dist/tet-components/p-de040767.entry.js +0 -1
  714. package/dist/tet-components/p-de4c32ee.entry.js +0 -1
  715. package/dist/tet-components/p-e423fe76.entry.js +0 -1
  716. package/dist/tet-components/p-e69056de.entry.js +0 -1
  717. package/dist/tet-components/p-e86164ef.entry.js +0 -1
  718. package/dist/tet-components/p-eb66d7b2.js +0 -1
  719. package/dist/tet-components/p-ecbfde88.entry.js +0 -1
  720. package/dist/tet-components/p-ed4b8bbe.entry.js +0 -1
  721. package/dist/tet-components/p-eed7244f.entry.js +0 -1
  722. package/dist/tet-components/p-f48500fd.entry.js +0 -1
  723. package/dist/tet-components/p-fab4ab39.entry.js +0 -1
  724. package/dist/tet-components/p-fd4131ad.entry.js +0 -1
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-7f1e2a22.js';
1
+ import { r as registerInstance, c as createEvent, g as getElement, h, H as Host } from './index-209dece3.js';
2
2
  import { g as getConvertedPixels } from './size-93cf5335.js';
3
3
 
4
4
  /**
@@ -8,195 +8,39 @@ import { g as getConvertedPixels } from './size-93cf5335.js';
8
8
  * dispatches `content-scroll` and `content-scroll-end` events to the `rootElement`.
9
9
  */
10
10
  class InertiaScroll {
11
+ /** Determines whether the scroll logic is enabled. */
12
+ isEnabled = false;
13
+ /** Determines whether the user is currently dragging the content. */
14
+ isDragging = false;
15
+ /** Determines whether the content is currently being scrolled with inertia. */
16
+ isScrolling = false;
17
+ /** The current pointer position on the X asis. */
18
+ pointerX = 0;
19
+ /** The previous pointer position on the X asis from ~50ms ago. */
20
+ pointerXOld = 0;
21
+ /** The speed of the pointer movement for calculating the innertia after the user interaction. */
22
+ pointerSpeedXOld = 0;
23
+ /** The speed of current scroll */
24
+ scrollSpeed = 0;
25
+ /** The root element of the scroll. */
26
+ rootElement = null;
27
+ /** the scroll container created inside of `element` to mimic scroll behaviour. */
28
+ scrollContainer = null;
29
+ /** The reference of the interval timer used for updating pointer related values. */
30
+ timer = null;
31
+ /** The custom class to be applied to the `scrollContainer`. */
32
+ scrollableElementClass = '';
33
+ /** The speed of `animateScroll` scroll animation. */
34
+ animationSpeed = 0;
35
+ /** The amount of horizontal scroll from which to disable vertical scrolling. */
36
+ scrollAmount = 10;
37
+ /** The width of the window beneath witch to disable vertical scroll when scrolling horizontally. */
38
+ mobileBreakpoint = 740;
11
39
  /**
12
40
  * Attaches the `window` listeners and initialises the
13
41
  * @param {IInertiaScroll} configuration
14
42
  */
15
43
  constructor({ rootElement, scrollableElementClass, animationSpeed = 200 }) {
16
- /** Determines whether the scroll logic is enabled. */
17
- this.isEnabled = false;
18
- /** Determines whether the user is currently dragging the content. */
19
- this.isDragging = false;
20
- /** Determines whether the content is currently being scrolled with inertia. */
21
- this.isScrolling = false;
22
- /** The current pointer position on the X asis. */
23
- this.pointerX = 0;
24
- /** The previous pointer position on the X asis from ~50ms ago. */
25
- this.pointerXOld = 0;
26
- /** The speed of the pointer movement for calculating the innertia after the user interaction. */
27
- this.pointerSpeedXOld = 0;
28
- /** The speed of current scroll */
29
- this.scrollSpeed = 0;
30
- /** The root element of the scroll. */
31
- this.rootElement = null;
32
- /** the scroll container created inside of `element` to mimic scroll behaviour. */
33
- this.scrollContainer = null;
34
- /** The reference of the interval timer used for updating pointer related values. */
35
- this.timer = null;
36
- /** The custom class to be applied to the `scrollContainer`. */
37
- this.scrollableElementClass = '';
38
- /** The speed of `animateScroll` scroll animation. */
39
- this.animationSpeed = 0;
40
- /** The amount of horizontal scroll from which to disable vertical scrolling. */
41
- this.scrollAmount = 10;
42
- /** The width of the window beneath witch to disable vertical scroll when scrolling horizontally. */
43
- this.mobileBreakpoint = 740;
44
- /**
45
- * Applies required styles to the `rootElement`.
46
- * Creates `scrollContainer` inside of the `rootElement`.
47
- * Moves the `rootElement` innerHTML into the `scrollContainer`.
48
- * Attaches listeners to the `rootElement`.
49
- */
50
- this.makeScrollable = () => {
51
- this.rootElement.style.display = 'grid';
52
- this.rootElement.style.gridAutoFlow = 'column';
53
- this.rootElement.style.position = 'relative';
54
- this.rootElement.style.overflow = 'hidden';
55
- this.rootElement.style.width = '100%';
56
- this.rootElement.style.height = '100%';
57
- const innerHTML = this.rootElement.innerHTML;
58
- this.scrollContainer = document.createElement('div');
59
- this.rootElement.innerHTML = '';
60
- this.rootElement.appendChild(this.scrollContainer);
61
- this.scrollContainer.innerHTML = innerHTML;
62
- this.scrollContainer.setAttribute('part', 'scroll-container');
63
- this.scrollContainer.classList.add(this.scrollableElementClass);
64
- this.scrollContainer.style.overflow = 'visible';
65
- this.scrollContainer.style.position = 'relative';
66
- this.scrollContainer.style.left = '0px';
67
- this.scrollContainer.style.display = 'grid';
68
- this.scrollContainer.style.gridAutoFlow = 'column';
69
- this.scrollSpeed = 0;
70
- this.rootElement.addEventListener('mousedown', this.onMouseDown, { passive: false });
71
- this.rootElement.addEventListener('touchstart', this.onTouchStart);
72
- };
73
- /** Mouse down event handler. */
74
- this.onMouseDown = (event) => {
75
- this.onPointerDown(event.clientX);
76
- };
77
- /** Touch start event handler. */
78
- this.onTouchStart = (event) => {
79
- for (let i = 0; i < event.changedTouches.length; i++) {
80
- const touch = event.changedTouches[i];
81
- this.onPointerDown(touch.clientX);
82
- }
83
- };
84
- /** Mouse move event handler. */
85
- this.onMouseMove = (event) => {
86
- if (this.isDragging) {
87
- this.onPointerMove(event.clientX);
88
- }
89
- };
90
- /** Touch move event handler. */
91
- this.onTouchMove = (event) => {
92
- if (this.isDragging) {
93
- for (let i = 0; i < event.changedTouches.length; i++) {
94
- const touch = event.changedTouches[i];
95
- this.onPointerMove(touch.clientX);
96
- }
97
- }
98
- };
99
- /** Mouse up event handler. */
100
- this.onMouseUp = () => {
101
- this.onPointerRelease();
102
- };
103
- /** Touch end event handler. */
104
- this.onTouchEnd = (event) => {
105
- for (let i = 0; i < event.changedTouches.length; i++) {
106
- this.onPointerRelease();
107
- }
108
- };
109
- /** Sets the scroll parameters to the initial state for scroll start. */
110
- this.onPointerDown = (x) => {
111
- if (!this.isEnabled) {
112
- return;
113
- }
114
- this.scrollSpeed = 0;
115
- this.pointerSpeedXOld = 0;
116
- this.isDragging = true;
117
- this.pointerX = this.pointerXOld = x;
118
- };
119
- /** Stops the manual scroll by user and sets the initial state for the inertia scroll. */
120
- this.onPointerRelease = () => {
121
- if (!this.isEnabled) {
122
- return;
123
- }
124
- if (this.isDragging) {
125
- this.scrollSpeed = this.pointerSpeedXOld;
126
- this.isScrolling = true;
127
- this.isDragging = false;
128
- this.scrollContainer.style.userSelect = null;
129
- this.scrollContainer.style.pointerEvents = null;
130
- document.querySelector('body').style.overflowY = null;
131
- }
132
- };
133
- /** Calculates the distance traveled by the pointer while it's pressed updating the `scrollContainer` position. */
134
- this.onPointerMove = (x) => {
135
- if (!this.isEnabled) {
136
- return;
137
- }
138
- if (!this.isDragging) {
139
- return;
140
- }
141
- this.scrollContainer.style.userSelect = 'none';
142
- this.scrollContainer.style.pointerEvents = 'none';
143
- // Get the distance the mouse has moved.
144
- let scrollDelta = x - this.pointerX;
145
- if (Math.abs(scrollDelta) > this.scrollAmount && window.innerWidth < this.mobileBreakpoint) {
146
- document.querySelector('body').style.overflowY = 'hidden';
147
- }
148
- const { scrollLeft, scrollWidth } = this;
149
- // Scroll past the end of content, to mimic bounce.
150
- if ((scrollLeft < 0 && scrollDelta > 0) || (scrollLeft > scrollWidth && scrollDelta < 0)) {
151
- scrollDelta /= 3;
152
- }
153
- // Increase the left position by the amount scrolled.
154
- this.scrollContainer.style.left = `-${scrollLeft - scrollDelta}px`;
155
- // Store the position to calculate the next pointer move.
156
- this.pointerX = x;
157
- };
158
- /**
159
- * Animation cycle.
160
- * Handles the inertial scroll after user has stoped the interaction.
161
- */
162
- this.scrollUpdate = () => {
163
- if (this.isEnabled) {
164
- requestAnimationFrame(this.scrollUpdate);
165
- }
166
- if (!this.isDragging && !this.isScrolling) {
167
- return;
168
- }
169
- // Continue scrolling after drag end with scroll innertia.
170
- let { scrollLeft } = this;
171
- scrollLeft -= this.scrollSpeed;
172
- // Slow down gradually.
173
- this.scrollSpeed *= 0.9;
174
- if (Math.abs(this.scrollSpeed) < 0.1) {
175
- this.scrollSpeed = 0;
176
- }
177
- // Reach content left end. Trigger a bounce effect.
178
- if (scrollLeft < 0) {
179
- scrollLeft *= 0.7;
180
- }
181
- // Reach content right end. Trigger a bounce effect.
182
- const { scrollWidth } = this;
183
- if (scrollLeft > scrollWidth) {
184
- scrollLeft = scrollWidth + (scrollLeft - scrollWidth) * 0.3;
185
- }
186
- // Update scroll position.
187
- this.scrollContainer.style.left = -scrollLeft + 'px';
188
- if (this.scrollSpeed === 0 && !this.isDragging && this.isScrolling) {
189
- this.isScrolling = false;
190
- this.rootElement.dispatchEvent(new CustomEvent('content-scroll-end', {
191
- detail: Object.assign({}, this.currentScroll),
192
- }));
193
- }
194
- if (this.isDragging || this.isScrolling) {
195
- this.rootElement.dispatchEvent(new CustomEvent('content-scroll', {
196
- detail: Object.assign({}, this.currentScroll),
197
- }));
198
- }
199
- };
200
44
  this.rootElement = rootElement;
201
45
  this.scrollableElementClass = scrollableElementClass;
202
46
  this.animationSpeed = animationSpeed;
@@ -250,13 +94,11 @@ class InertiaScroll {
250
94
  }
251
95
  /** Gets the current `scrollLeft` value of the `scrollableContainer`. */
252
96
  get scrollLeft() {
253
- var _a, _b;
254
- return Math.round(Math.abs(parseFloat((_b = (_a = this.scrollContainer) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.left) || 0));
97
+ return Math.round(Math.abs(parseFloat(this.scrollContainer?.style?.left) || 0));
255
98
  }
256
99
  /** Get the total available `scrollWidth` value of the `scrollableContainer`. */
257
100
  get scrollWidth() {
258
- var _a, _b;
259
- return Math.round(((_a = this.scrollContainer) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width) - ((_b = this.rootElement) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width) || 0);
101
+ return Math.round(this.scrollContainer?.getBoundingClientRect().width - this.rootElement?.getBoundingClientRect().width || 0);
260
102
  }
261
103
  /** Enables the scroll. */
262
104
  enable() {
@@ -290,7 +132,10 @@ class InertiaScroll {
290
132
  return;
291
133
  }
292
134
  this.rootElement.dispatchEvent(new CustomEvent('content-scroll-end', {
293
- detail: Object.assign(Object.assign({}, this.currentScroll), { scrollSpeed: scrollResult > scrollLeft ? -1 : 1 }),
135
+ detail: {
136
+ ...this.currentScroll,
137
+ scrollSpeed: scrollResult > scrollLeft ? -1 : 1,
138
+ },
294
139
  }));
295
140
  }
296
141
  /** Scrolls the passed element to the center of the viewport if possible.
@@ -328,7 +173,10 @@ class InertiaScroll {
328
173
  return;
329
174
  }
330
175
  this.rootElement.dispatchEvent(new CustomEvent('content-scroll-end', {
331
- detail: Object.assign(Object.assign({}, this.currentScroll), { scrollSpeed: scrollOptions.left > scrollLeft ? -1 : 1 }),
176
+ detail: {
177
+ ...this.currentScroll,
178
+ scrollSpeed: scrollOptions.left > scrollLeft ? -1 : 1,
179
+ },
332
180
  }));
333
181
  }
334
182
  /**
@@ -359,13 +207,177 @@ class InertiaScroll {
359
207
  resolve();
360
208
  }
361
209
  this.rootElement.dispatchEvent(new CustomEvent('content-scroll', {
362
- detail: Object.assign(Object.assign({}, this.currentScroll), { scrollSpeed: scrollAmount < 0 ? -1 : 1, isUserScroll: false }),
210
+ detail: {
211
+ ...this.currentScroll,
212
+ scrollSpeed: scrollAmount < 0 ? -1 : 1,
213
+ isUserScroll: false,
214
+ },
363
215
  }));
364
216
  };
365
217
  animate(currentTime);
366
218
  });
367
219
  await promise;
368
220
  }
221
+ /**
222
+ * Applies required styles to the `rootElement`.
223
+ * Creates `scrollContainer` inside of the `rootElement`.
224
+ * Moves the `rootElement` innerHTML into the `scrollContainer`.
225
+ * Attaches listeners to the `rootElement`.
226
+ */
227
+ makeScrollable = () => {
228
+ this.rootElement.style.display = 'grid';
229
+ this.rootElement.style.gridAutoFlow = 'column';
230
+ this.rootElement.style.position = 'relative';
231
+ this.rootElement.style.overflow = 'hidden';
232
+ this.rootElement.style.width = '100%';
233
+ this.rootElement.style.height = '100%';
234
+ const innerHTML = this.rootElement.innerHTML;
235
+ this.scrollContainer = document.createElement('div');
236
+ this.rootElement.innerHTML = '';
237
+ this.rootElement.appendChild(this.scrollContainer);
238
+ this.scrollContainer.innerHTML = innerHTML;
239
+ this.scrollContainer.setAttribute('part', 'scroll-container');
240
+ this.scrollContainer.classList.add(this.scrollableElementClass);
241
+ this.scrollContainer.style.overflow = 'visible';
242
+ this.scrollContainer.style.position = 'relative';
243
+ this.scrollContainer.style.left = '0px';
244
+ this.scrollContainer.style.display = 'grid';
245
+ this.scrollContainer.style.gridAutoFlow = 'column';
246
+ this.scrollSpeed = 0;
247
+ this.rootElement.addEventListener('mousedown', this.onMouseDown, { passive: false });
248
+ this.rootElement.addEventListener('touchstart', this.onTouchStart);
249
+ };
250
+ /** Mouse down event handler. */
251
+ onMouseDown = (event) => {
252
+ this.onPointerDown(event.clientX);
253
+ };
254
+ /** Touch start event handler. */
255
+ onTouchStart = (event) => {
256
+ for (let i = 0; i < event.changedTouches.length; i++) {
257
+ const touch = event.changedTouches[i];
258
+ this.onPointerDown(touch.clientX);
259
+ }
260
+ };
261
+ /** Mouse move event handler. */
262
+ onMouseMove = (event) => {
263
+ if (this.isDragging) {
264
+ this.onPointerMove(event.clientX);
265
+ }
266
+ };
267
+ /** Touch move event handler. */
268
+ onTouchMove = (event) => {
269
+ if (this.isDragging) {
270
+ for (let i = 0; i < event.changedTouches.length; i++) {
271
+ const touch = event.changedTouches[i];
272
+ this.onPointerMove(touch.clientX);
273
+ }
274
+ }
275
+ };
276
+ /** Mouse up event handler. */
277
+ onMouseUp = () => {
278
+ this.onPointerRelease();
279
+ };
280
+ /** Touch end event handler. */
281
+ onTouchEnd = (event) => {
282
+ for (let i = 0; i < event.changedTouches.length; i++) {
283
+ this.onPointerRelease();
284
+ }
285
+ };
286
+ /** Sets the scroll parameters to the initial state for scroll start. */
287
+ onPointerDown = (x) => {
288
+ if (!this.isEnabled) {
289
+ return;
290
+ }
291
+ this.scrollSpeed = 0;
292
+ this.pointerSpeedXOld = 0;
293
+ this.isDragging = true;
294
+ this.pointerX = this.pointerXOld = x;
295
+ };
296
+ /** Stops the manual scroll by user and sets the initial state for the inertia scroll. */
297
+ onPointerRelease = () => {
298
+ if (!this.isEnabled) {
299
+ return;
300
+ }
301
+ if (this.isDragging) {
302
+ this.scrollSpeed = this.pointerSpeedXOld;
303
+ this.isScrolling = true;
304
+ this.isDragging = false;
305
+ this.scrollContainer.style.userSelect = null;
306
+ this.scrollContainer.style.pointerEvents = null;
307
+ document.querySelector('body').style.overflowY = null;
308
+ }
309
+ };
310
+ /** Calculates the distance traveled by the pointer while it's pressed updating the `scrollContainer` position. */
311
+ onPointerMove = (x) => {
312
+ if (!this.isEnabled) {
313
+ return;
314
+ }
315
+ if (!this.isDragging) {
316
+ return;
317
+ }
318
+ this.scrollContainer.style.userSelect = 'none';
319
+ this.scrollContainer.style.pointerEvents = 'none';
320
+ // Get the distance the mouse has moved.
321
+ let scrollDelta = x - this.pointerX;
322
+ if (Math.abs(scrollDelta) > this.scrollAmount && window.innerWidth < this.mobileBreakpoint) {
323
+ document.querySelector('body').style.overflowY = 'hidden';
324
+ }
325
+ const { scrollLeft, scrollWidth } = this;
326
+ // Scroll past the end of content, to mimic bounce.
327
+ if ((scrollLeft < 0 && scrollDelta > 0) || (scrollLeft > scrollWidth && scrollDelta < 0)) {
328
+ scrollDelta /= 3;
329
+ }
330
+ // Increase the left position by the amount scrolled.
331
+ this.scrollContainer.style.left = `-${scrollLeft - scrollDelta}px`;
332
+ // Store the position to calculate the next pointer move.
333
+ this.pointerX = x;
334
+ };
335
+ /**
336
+ * Animation cycle.
337
+ * Handles the inertial scroll after user has stoped the interaction.
338
+ */
339
+ scrollUpdate = () => {
340
+ if (this.isEnabled) {
341
+ requestAnimationFrame(this.scrollUpdate);
342
+ }
343
+ if (!this.isDragging && !this.isScrolling) {
344
+ return;
345
+ }
346
+ // Continue scrolling after drag end with scroll innertia.
347
+ let { scrollLeft } = this;
348
+ scrollLeft -= this.scrollSpeed;
349
+ // Slow down gradually.
350
+ this.scrollSpeed *= 0.9;
351
+ if (Math.abs(this.scrollSpeed) < 0.1) {
352
+ this.scrollSpeed = 0;
353
+ }
354
+ // Reach content left end. Trigger a bounce effect.
355
+ if (scrollLeft < 0) {
356
+ scrollLeft *= 0.7;
357
+ }
358
+ // Reach content right end. Trigger a bounce effect.
359
+ const { scrollWidth } = this;
360
+ if (scrollLeft > scrollWidth) {
361
+ scrollLeft = scrollWidth + (scrollLeft - scrollWidth) * 0.3;
362
+ }
363
+ // Update scroll position.
364
+ this.scrollContainer.style.left = -scrollLeft + 'px';
365
+ if (this.scrollSpeed === 0 && !this.isDragging && this.isScrolling) {
366
+ this.isScrolling = false;
367
+ this.rootElement.dispatchEvent(new CustomEvent('content-scroll-end', {
368
+ detail: {
369
+ ...this.currentScroll,
370
+ },
371
+ }));
372
+ }
373
+ if (this.isDragging || this.isScrolling) {
374
+ this.rootElement.dispatchEvent(new CustomEvent('content-scroll', {
375
+ detail: {
376
+ ...this.currentScroll,
377
+ },
378
+ }));
379
+ }
380
+ };
369
381
  }
370
382
 
371
383
  const tetCardListCss = "@font-face{font-family:Avenir Next;src:url(assets/fonts/8e7462a9501f48c43c58f870188b3fb2.eot?#iefix);src:url(assets/fonts/8e7462a9501f48c43c58f870188b3fb2.eot?#iefix) format(\"eot\"),url(assets/fonts/3c3e10968ffc97c2a52c5830f9886d1f.woff2) format(\"woff2\"),url(assets/fonts/660fbf858d30d7685fa4b166080f5980.woff) format(\"woff\"),url(assets/fonts/2b7748589092fd1a10b806abdfb562ff.ttf) format(\"truetype\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Avenir Next;src:url(assets/fonts/d5e25ad69d0ea31f3b8f66d634ca40fe.eot?#iefix);src:url(assets/fonts/d5e25ad69d0ea31f3b8f66d634ca40fe.eot?#iefix) format(\"eot\"),url(assets/fonts/aad36ecead30948bb30fe0ef818b749c.woff2) format(\"woff2\"),url(assets/fonts/c437d7752feaf3f056bbf8613e898d3a.woff) format(\"woff\"),url(assets/fonts/b8df4d02ef5de13a813917a85bc4a9c4.ttf) format(\"truetype\");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Avenir Next;src:url(assets/fonts/046190c9a2f724b925df848737b03819.eot?#iefix);src:url(assets/fonts/046190c9a2f724b925df848737b03819.eot?#iefix) format(\"eot\"),url(assets/fonts/4d52f8276a74ea8efbad833ed790367c.woff2) format(\"woff2\"),url(assets/fonts/a067695dd1b87e927f4056c040d84669.woff) format(\"woff\"),url(assets/fonts/510a664af9771b72d4ce5e637109ca3c.ttf) format(\"truetype\");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Avenir Next;src:url(assets/fonts/0715de188f56c99aa615905f7e06292e.eot?#iefix);src:url(assets/fonts/0715de188f56c99aa615905f7e06292e.eot?#iefix) format(\"eot\"),url(assets/fonts/63f5acc71d9852468683a4bfe824a28f.woff2) format(\"woff2\"),url(assets/fonts/ed94c737da267752ce0abd79bb003ff6.woff) format(\"woff\"),url(assets/fonts/6302f55a6dc6b12365177dc89b7d63cf.ttf) format(\"truetype\");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Avenir Next;src:url(assets/fonts/3f76abc23eef0596c499840db84213bb.eot?#iefix);src:url(assets/fonts/3f76abc23eef0596c499840db84213bb.eot?#iefix) format(\"eot\"),url(assets/fonts/1fe7da97fe9dbe1349aca9b54b5fdf69.woff2) format(\"woff2\"),url(assets/fonts/dacc6a84278e221422902af99579ada5.woff) format(\"woff\"),url(assets/fonts/e530c573663a3a07243d303fbf7db508.ttf) format(\"truetype\");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Avenir Next;src:url(assets/fonts/75f8489ba53f19968feaa3e2eb78c569.eot?#iefix);src:url(assets/fonts/75f8489ba53f19968feaa3e2eb78c569.eot?#iefix) format(\"eot\"),url(assets/fonts/93ec0034623fc696601ab99aba652d4c.woff2) format(\"woff2\"),url(assets/fonts/d73c8eb1c13abe1237366aa3ee829a59.woff) format(\"woff\"),url(assets/fonts/7b6dcef99f3f4b23346e23925ec8678f.ttf) format(\"truetype\");font-weight:600;font-style:italic;font-display:swap}.tet-icon{font-family:Tet Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}@font-face{font-family:Tet Icons;src:url(assets/fonts/d2ce51cdcd0b9707af186f8d50023d23.eot);src:url(assets/fonts/d2ce51cdcd0b9707af186f8d50023d23.eot?#iefix) format(\"embedded-opentype\"),url(assets/fonts/25f10ef322a1220b2e9e11db38b73892.woff2) format(\"woff2\"),url(assets/fonts/fed75ac1edcf1c25cdd8612d2c365f9a.woff) format(\"woff\"),url(assets/fonts/df7fbe67cabb13cb837172a73c46378a.ttf) format(\"truetype\"),url(assets/fonts/5486d8c87e2abc6c13ed952a6cc96658.svg#tet-icons) format(\"svg\");font-weight:400;font-style:normal}.tet-icon:before{content:\"\\E84E\"}.tet-icon--sm{font-size:1.125rem}.tet-icon--md{font-size:1.5rem}.tet-icon--lg{font-size:2.25rem}.tet-icon--xl{font-size:3rem}.tet-icon--xxl{font-size:4rem}.tet-icon--0{font-size:0}.tet-icon--1{font-size:.0625rem}.tet-icon--2{font-size:.125rem}.tet-icon--3{font-size:.1875rem}.tet-icon--4{font-size:.25rem}.tet-icon--5{font-size:.3125rem}.tet-icon--6{font-size:.375rem}.tet-icon--7{font-size:.4375rem}.tet-icon--8{font-size:.5rem}.tet-icon--9{font-size:.5625rem}.tet-icon--10{font-size:.625rem}.tet-icon--11{font-size:.6875rem}.tet-icon--12{font-size:.75rem}.tet-icon--13{font-size:.8125rem}.tet-icon--14{font-size:.875rem}.tet-icon--15{font-size:.9375rem}.tet-icon--16{font-size:1rem}.tet-icon--17{font-size:1.0625rem}.tet-icon--18{font-size:1.125rem}.tet-icon--19{font-size:1.1875rem}.tet-icon--20{font-size:1.25rem}.tet-icon--21{font-size:1.3125rem}.tet-icon--22{font-size:1.375rem}.tet-icon--23{font-size:1.4375rem}.tet-icon--24{font-size:1.5rem}.tet-icon--25{font-size:1.5625rem}.tet-icon--26{font-size:1.625rem}.tet-icon--27{font-size:1.6875rem}.tet-icon--28{font-size:1.75rem}.tet-icon--29{font-size:1.8125rem}.tet-icon--30{font-size:1.875rem}.tet-icon--31{font-size:1.9375rem}.tet-icon--32{font-size:2rem}.tet-icon--33{font-size:2.0625rem}.tet-icon--34{font-size:2.125rem}.tet-icon--35{font-size:2.1875rem}.tet-icon--36{font-size:2.25rem}.tet-icon--37{font-size:2.3125rem}.tet-icon--38{font-size:2.375rem}.tet-icon--39{font-size:2.4375rem}.tet-icon--40{font-size:2.5rem}.tet-icon--41{font-size:2.5625rem}.tet-icon--42{font-size:2.625rem}.tet-icon--43{font-size:2.6875rem}.tet-icon--44{font-size:2.75rem}.tet-icon--45{font-size:2.8125rem}.tet-icon--46{font-size:2.875rem}.tet-icon--47{font-size:2.9375rem}.tet-icon--48{font-size:3rem}.tet-icon--49{font-size:3.0625rem}.tet-icon--50{font-size:3.125rem}.tet-icon--51{font-size:3.1875rem}.tet-icon--52{font-size:3.25rem}.tet-icon--53{font-size:3.3125rem}.tet-icon--54{font-size:3.375rem}.tet-icon--55{font-size:3.4375rem}.tet-icon--56{font-size:3.5rem}.tet-icon--57{font-size:3.5625rem}.tet-icon--58{font-size:3.625rem}.tet-icon--59{font-size:3.6875rem}.tet-icon--60{font-size:3.75rem}.tet-icon--61{font-size:3.8125rem}.tet-icon--62{font-size:3.875rem}.tet-icon--63{font-size:3.9375rem}.tet-icon--64{font-size:4rem}.tet-icon--65{font-size:4.0625rem}.tet-icon--66{font-size:4.125rem}.tet-icon--67{font-size:4.1875rem}.tet-icon--68{font-size:4.25rem}.tet-icon--69{font-size:4.3125rem}.tet-icon--70{font-size:4.375rem}.tet-icon--71{font-size:4.4375rem}.tet-icon--72{font-size:4.5rem}.tet-icon--73{font-size:4.5625rem}.tet-icon--74{font-size:4.625rem}.tet-icon--75{font-size:4.6875rem}.tet-icon--76{font-size:4.75rem}.tet-icon--77{font-size:4.8125rem}.tet-icon--78{font-size:4.875rem}.tet-icon--79{font-size:4.9375rem}.tet-icon--80{font-size:5rem}.tet-icon--81{font-size:5.0625rem}.tet-icon--82{font-size:5.125rem}.tet-icon--83{font-size:5.1875rem}.tet-icon--84{font-size:5.25rem}.tet-icon--85{font-size:5.3125rem}.tet-icon--86{font-size:5.375rem}.tet-icon--87{font-size:5.4375rem}.tet-icon--88{font-size:5.5rem}.tet-icon--89{font-size:5.5625rem}.tet-icon--90{font-size:5.625rem}.tet-icon--91{font-size:5.6875rem}.tet-icon--92{font-size:5.75rem}.tet-icon--93{font-size:5.8125rem}.tet-icon--94{font-size:5.875rem}.tet-icon--95{font-size:5.9375rem}.tet-icon--96{font-size:6rem}.tet-icon--97{font-size:6.0625rem}.tet-icon--98{font-size:6.125rem}.tet-icon--99{font-size:6.1875rem}.tet-icon--100{font-size:6.25rem}.tet-icon--101{font-size:6.3125rem}.tet-icon__add:before{content:\"\\E800\"}.tet-icon__alert-circled:before{content:\"\\E801\"}.tet-icon__alert:before{content:\"\\E802\"}.tet-icon__bank:before{content:\"\\E803\"}.tet-icon__box:before{content:\"\\E804\"}.tet-icon__download:before{content:\"\\E805\"}.tet-icon__burger:before{content:\"\\E806\"}.tet-icon__cancel:before{content:\"\\E807\"}.tet-icon__printer:before{content:\"\\E808\"}.tet-icon__cart-add:before{content:\"\\E809\"}.tet-icon__cart-remove:before{content:\"\\E80A\"}.tet-icon__cart:before{content:\"\\E80B\"}.tet-icon__chat:before{content:\"\\E80C\"}.tet-icon__arrow-up:before{content:\"\\E80D\"}.tet-icon__calendar:before{content:\"\\E80E\"}.tet-icon__help-circled:before{content:\"\\E80F\"}.tet-icon__edit:before{content:\"\\E810\"}.tet-icon__external-link:before{content:\"\\E811\"}.tet-icon__gift:before{content:\"\\E812\"}.tet-icon__person:before{content:\"\\E813\"}.tet-icon__heart:before{content:\"\\E814\"}.tet-icon__language:before{content:\"\\E815\"}.tet-icon__help:before{content:\"\\E816\"}.tet-icon__home-1:before{content:\"\\E817\"}.tet-icon__location:before{content:\"\\E818\"}.tet-icon__home-3:before{content:\"\\E819\"}.tet-icon__chart-even:before{content:\"\\E81A\"}.tet-icon__info-2:before{content:\"\\E81B\"}.tet-icon__key:before{content:\"\\E81C\"}.tet-icon__info:before{content:\"\\E81D\"}.tet-icon__lock-opened:before{content:\"\\E81E\"}.tet-icon__lock-outlined:before{content:\"\\E81F\"}.tet-icon__lock:before{content:\"\\E820\"}.tet-icon__laptop-filled:before{content:\"\\E821\"}.tet-icon__mail:before{content:\"\\E822\"}.tet-icon__options:before{content:\"\\E823\"}.tet-icon__chart-uneven:before{content:\"\\E824\"}.tet-icon__mail-2:before{content:\"\\E825\"}.tet-icon__remove:before{content:\"\\E826\"}.tet-icon__mobile-filled:before{content:\"\\E827\"}.tet-icon__ilu-calendar-check:before{content:\"\\E828\"}.tet-icon__settings-outlined:before{content:\"\\E829\"}.tet-icon__tablet:before{content:\"\\E82A\"}.tet-icon__thumb-up:before{content:\"\\E82B\"}.tet-icon__ilu-purchase:before{content:\"\\E82C\"}.tet-icon__chart-even-outlined:before{content:\"\\E82D\"}.tet-icon__movie:before{content:\"\\E82E\"}.tet-icon__percent:before{content:\"\\E82F\"}.tet-icon__ilu-change-whenever:before{content:\"\\E830\"}.tet-icon__truck:before{content:\"\\E831\"}.tet-icon__zero:before{content:\"\\E832\"}.tet-icon__attach:before{content:\"\\E833\"}.tet-icon__cloud-done:before{content:\"\\E834\"}.tet-icon__cloud-download:before{content:\"\\E835\"}.tet-icon__cloud-upload:before{content:\"\\E836\"}.tet-icon__cloud:before{content:\"\\E837\"}.tet-icon__folder:before{content:\"\\E838\"}.tet-icon__remote:before{content:\"\\E839\"}.tet-icon__router:before{content:\"\\E83A\"}.tet-icon__shield-filled:before{content:\"\\E83B\"}.tet-icon__shield:before{content:\"\\E83C\"}.tet-icon__ilu-devices:before{content:\"\\E83D\"}.tet-icon__ilu-get-points:before{content:\"\\E83E\"}.tet-icon__tv:before{content:\"\\E83F\"}.tet-icon__ilu-internet:before{content:\"\\E840\"}.tet-icon__wifi-outlined:before{content:\"\\E841\"}.tet-icon__wifi:before{content:\"\\E842\"}.tet-icon__description-outlined:before{content:\"\\E843\"}.tet-icon__laptop:before{content:\"\\E844\"}.tet-icon__chart-uneven-outlined:before{content:\"\\E845\"}.tet-icon__meter:before{content:\"\\E846\"}.tet-icon__mobile:before{content:\"\\E847\"}.tet-icon__phone:before{content:\"\\E848\"}.tet-icon__plug-filled:before{content:\"\\E849\"}.tet-icon__plug:before{content:\"\\E84A\"}.tet-icon__print:before{content:\"\\E84B\"}.tet-icon__camera:before{content:\"\\E84C\"}.tet-icon__clock:before{content:\"\\E84D\"}.tet-icon__placeholder:before{content:\"\\E84E\"}.tet-icon__tv-filled:before{content:\"\\E84F\"}.tet-icon__arrow-down:before{content:\"\\E850\"}.tet-icon__arrow-left:before{content:\"\\E851\"}.tet-icon__arrow-right:before{content:\"\\E852\"}.tet-icon__description:before{content:\"\\E853\"}.tet-icon__login:before{content:\"\\E854\"}.tet-icon__check:before{content:\"\\E855\"}.tet-icon__chevron-down:before{content:\"\\E856\"}.tet-icon__chevron-left:before{content:\"\\E857\"}.tet-icon__chevron-right:before{content:\"\\E858\"}.tet-icon__chevron-up:before{content:\"\\E859\"}.tet-icon__close-circled:before{content:\"\\E85A\"}.tet-icon__close:before{content:\"\\E85B\"}.tet-icon__more-horizontal:before{content:\"\\E85C\"}.tet-icon__more-vertical:before{content:\"\\E85D\"}.tet-icon__refresh:before{content:\"\\E85E\"}.tet-icon__facebook:before{content:\"\\E85F\"}.tet-icon__instagram:before{content:\"\\E860\"}.tet-icon__linkedin:before{content:\"\\E861\"}.tet-icon__people:before{content:\"\\E862\"}.tet-icon__logout:before{content:\"\\E863\"}.tet-icon__share:before{content:\"\\E864\"}.tet-icon__twitter:before{content:\"\\E865\"}.tet-icon__cancel-filled:before{content:\"\\E866\"}.tet-icon__done:before{content:\"\\E867\"}.tet-icon__star-filled:before{content:\"\\E868\"}.tet-icon__star:before{content:\"\\E869\"}.tet-icon__clipboard:before{content:\"\\E86A\"}.tet-icon__ilu-calendar:before{content:\"\\E86B\"}.tet-icon__check-circled:before{content:\"\\E86C\"}.tet-icon__ilu-choose-channels:before{content:\"\\E86D\"}.tet-icon__search:before{content:\"\\E86E\"}.tet-icon__warning:before{content:\"\\E86F\"}.tet-icon__ilu-clock-1:before{content:\"\\E870\"}.tet-icon__ilu-fold:before{content:\"\\E871\"}.tet-icon__ilu-letter:before{content:\"\\E872\"}.tet-icon__ilu-pay:before{content:\"\\E873\"}.tet-icon__ilu-meter:before{content:\"\\E874\"}.tet-icon__ilu-sign:before{content:\"\\E875\"}.tet-icon__smart-watch-filled:before{content:\"\\E876\"}.tet-icon__washing-machine-filled:before{content:\"\\E877\"}.tet-icon__bullet:before{content:\"\\E878\"}.tet-icon__sound:before{content:\"\\E879\"}.tet-icon__dropdown:before{content:\"\\E87A\"}.tet-icon__mask-pass:before{content:\"\\E87B\"}.tet-icon__select:before{content:\"\\E87C\"}.tet-icon__text-area-sizing:before{content:\"\\E87D\"}.tet-icon__unmask-pass:before{content:\"\\E87E\"}.tet-icon__bullet-small:before{content:\"\\E882\"}.tet-icon__electric-bolt:before{content:\"\\E880\"}.tet-icon__sun:before{content:\"\\E881\"}:host{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit;padding:0;margin:0}:host{--color-gray-light:#cdd2de;--color-ta070:#f5f6f8;--color-ta080:#e6e8ee;--color-ta100:#cdd2de;--color-ta200:#9ba5be;--color-ta300:#69789c;--color-ta500:#1e356a;--color-ta600:#051d59;--color-tc090:#d6e6fd;--color-tc100:#d1dffe;--color-tc300:#75a1fb;--color-tc500:#1a70f6;--color-tc600:#0060f5;--color-td500:#00F1F2;--color-td600:#01cbe0;--color-tf600:#f53b2a;--color-tg300:#2b3036;--color-tg400:#1d2128;--color-tg500:#12171e;--color-tg600:#01050c;--color-th500:#f5f5f5;--color-ti500:#869198;--color-ti600:#aeb7bc;--text-font:Gilroy, serif;--text-color-darker:var(--color-ta600);--text-color-dark:var(--color-ta500);--text-color-dark-theme:var(--color-th500);--icons-font:Tet Icons, serif}.icon.tet-search{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-search::before{content:\"\\e86e\"}.icon.tet-close-circled{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-close-circled::before{content:\"\\e85a\"}.icon.tet-close{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-close::before{content:\"\\e85b\"}.icon.tet-check-circled{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-check-circled::before{content:\"\\e86c\"}.icon.tet-check{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-check::before{content:\"\\e855\"}.icon.tet-chevron-up{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-chevron-up::before{content:\"\\e859\"}.icon.tet-chevron-down{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-chevron-down::before{content:\"\\e856\"}.icon.tet-clipboard{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-clipboard::before{content:\"\\e86a\"}.icon.tet-info{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-info::before{content:\"\\e81d\"}.icon.tet-done{font-family:var(--icons-font);font-weight:400;font-style:normal;font-size:1.25rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;speak:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.icon.tet-done::before{content:\"\\e867\"}@font-face{font-family:\"Gilroy\";font-style:normal;font-weight:400;font-display:swap;src:url(\"assets/fonts/Gilroy-W05-Medium.woff2\") format(\"woff2\"), url(\"assets/fonts/Gilroy-W05-Medium.woff\") format(\"woff\")}@font-face{font-family:\"Gilroy\";font-style:normal;font-weight:500;font-display:swap;src:url(\"assets/fonts/Gilroy-W05-Medium.woff2\") format(\"woff2\"), url(\"assets/fonts/Gilroy-W05-Medium.woff\") format(\"woff\")}@font-face{font-family:\"Gilroy\";font-style:normal;font-weight:600;font-display:swap;src:url(\"assets/fonts/Gilroy-W05-Semibold.woff2\") format(\"woff2\"), url(\"assets/fonts/Gilroy-W05-Semibold.woff\") format(\"woff\")}@font-face{font-family:\"Gilroy\";font-style:normal;font-weight:700;font-display:swap;src:url(\"assets/fonts/Gilroy-W05-Bold.woff2\") format(\"woff2\"), url(\"assets/fonts/Gilroy-W05-Bold.woff\") format(\"woff\")}@font-face{font-family:\"Inter\";font-style:normal;font-weight:400;font-display:swap;src:url(\"assets/fonts/Inter-Regular.woff2?v=3.19\") format(\"woff2\"), url(\"assets/fonts/Inter-Regular.woff?v=3.19\") format(\"woff\")}@font-face{font-family:\"Inter\";font-style:normal;font-weight:500;font-display:swap;src:url(\"assets/fonts/Inter-Medium.woff2?v=3.19\") format(\"woff2\"), url(\"assets/fonts/Inter-Medium.woff?v=3.19\") format(\"woff\")}@font-face{font-family:\"Inter\";font-style:normal;font-weight:600;font-display:swap;src:url(\"assets/fonts/Inter-SemiBold.woff2?v=3.19\") format(\"woff2\"), url(\"assets/fonts/Inter-SemiBold.woff?v=3.19\") format(\"woff\")}@font-face{font-family:\"Gilroy\";font-style:normal;font-weight:400;font-display:swap;src:url(\"assets/fonts/Gilroy-W05-Medium.woff2\") format(\"woff2\"), url(\"assets/fonts/Gilroy-W05-Medium.woff\") format(\"woff\")}@font-face{font-family:\"Gilroy\";font-style:normal;font-weight:500;font-display:swap;src:url(\"assets/fonts/Gilroy-W05-Medium.woff2\") format(\"woff2\"), url(\"assets/fonts/Gilroy-W05-Medium.woff\") format(\"woff\")}@font-face{font-family:\"Gilroy\";font-style:normal;font-weight:600;font-display:swap;src:url(\"assets/fonts/Gilroy-W05-Semibold.woff2\") format(\"woff2\"), url(\"assets/fonts/Gilroy-W05-Semibold.woff\") format(\"woff\")}@font-face{font-family:\"Gilroy\";font-style:normal;font-weight:700;font-display:swap;src:url(\"assets/fonts/Gilroy-W05-Bold.woff2\") format(\"woff2\"), url(\"assets/fonts/Gilroy-W05-Bold.woff\") format(\"woff\")}@font-face{font-family:\"Inter\";font-style:normal;font-weight:400;font-display:swap;src:url(\"assets/fonts/Inter-Regular.woff2?v=3.19\") format(\"woff2\"), url(\"assets/fonts/Inter-Regular.woff?v=3.19\") format(\"woff\")}@font-face{font-family:\"Inter\";font-style:normal;font-weight:500;font-display:swap;src:url(\"assets/fonts/Inter-Medium.woff2?v=3.19\") format(\"woff2\"), url(\"assets/fonts/Inter-Medium.woff?v=3.19\") format(\"woff\")}@font-face{font-family:\"Inter\";font-style:normal;font-weight:600;font-display:swap;src:url(\"assets/fonts/Inter-SemiBold.woff2?v=3.19\") format(\"woff2\"), url(\"assets/fonts/Inter-SemiBold.woff?v=3.19\") format(\"woff\")}:host{--font-family-fallback:Gilroy, Arial, sans-serif;--font-family-headline:Gilroy;--font-family-content:Inter, var(--font-family-fallback);font-family:var(--font-family-content)}:host{--card-list-content-width:100%;--card-list-content-height:100%;--card-list-horizontal-margin:10rem;--card-list-tablet-horizontal-margin:2rem;--card-list-mobile-horizontal-margin:1rem;--card-list-vertical-padding:0;--card-list-control-height:12.5rem;--card-list-control-button-height:3.25rem;--card-list-control-button-width:3.25rem;--card-list-control-horizontal-margin:5rem;--card-list-control-icon-color:var(--tc-button-icon-primary);--card-list-scroll-margin:3.5rem auto 0 auto;--card-list-scroll-background-color:var(--tc-border-quaternary);--card-list-scroll-thumb-background-color:var(--tc-border-secondary);--card-list-gap:1rem}.hidden{display:none}.tet-card-list{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;height:var(--card-list-content-height);gap:var(--card-list-gap);overflow:visible;position:relative;box-sizing:border-box;margin:0 auto;-ms-overflow-style:none;scrollbar-width:none}.tet-card-list__container{display:flex;flex-direction:column;align-items:center;position:relative;-webkit-overflow-scrolling:touch}.tet-card-list__container.dark{--card-list-control-icon-color:var(--tc-button-icon-primary-dark);--card-list-scroll-background-color:var(--tc-border-quaternary-dark);--card-list-scroll-thumb-background-color:var(--tc-border-secondary-dark)}.tet-card-list__scroll-container{width:var(--card-list-content-width);height:var(--card-list-content-height);overflow:hidden;display:block;position:relative}.tet-card-list ::slotted(:first-child){margin-left:var(--card-list-mobile-horizontal-margin) !important}.tet-card-list ::slotted(:last-child){margin-right:var(--card-list-mobile-horizontal-margin) !important}.tet-card-list::-webkit-scrollbar{display:none}.tet-card-list__scroll{position:relative;display:flex;height:0.25rem;background-color:var(--card-list-scroll-background-color);width:70%;margin:var(--card-list-scroll-margin);border-radius:0.25rem}.tet-card-list__scroll--thumb{background-color:var(--card-list-scroll-thumb-background-color);border-radius:0.25rem;display:block;height:100%;left:0;position:absolute}.tet-card-list--no-scroll{overflow-x:hidden}.tet-card-list--no-scroll .tet-card-list__scroll{display:none}.tet-card-list__control{--button-padding:0;cursor:pointer;align-items:center;color:rgb(10, 11, 13);display:none;justify-content:center;position:absolute;top:calc(var(--card-list-control-height) / 2 - var(--card-list-control-button-height) / 2);user-select:none;z-index:2}.tet-card-list__control--left{left:var(--card-list-control-horizontal-margin)}.tet-card-list__control--right{right:var(--card-list-control-horizontal-margin)}.tet-card-list__control__icon{--icon-size:1.25rem;--icon-color:var(--card-list-control-icon-color);display:flex;align-items:center;justify-content:center;border-radius:50%;height:var(--card-list-control-button-height);width:var(--card-list-control-button-width)}.tet-card-list--hidden,.tet-card-list__control--hidden{display:none;opacity:0;visibility:hidden}.tet-card-list--dragging{user-select:none;cursor:grabbing}.tet-card-list--dragging *{pointer-events:none}@media all and (min-width: 22.5rem){.tet-card-list__scroll{width:50%}.tet-card-list ::slotted(:first-child){margin-left:var(--card-list-tablet-horizontal-margin) !important}.tet-card-list ::slotted(:last-child){margin-right:var(--card-list-tablet-horizontal-margin) !important}}@media all and (min-width: 48rem){.tet-card-list__scroll{width:min(40%, var(--card-list-content-width) * 0.325)}.tet-card-list__control{display:flex}.tet-card-list ::slotted(:first-child){margin-left:var(--card-list-horizontal-margin) !important}.tet-card-list ::slotted(:last-child){margin-right:var(--card-list-horizontal-margin) !important}}";
@@ -376,340 +388,6 @@ const TetCardList = class {
376
388
  registerInstance(this, hostRef);
377
389
  this.cardScroll = createEvent(this, "cardScroll", 7);
378
390
  this.contentScrollEnd = createEvent(this, "contentScrollEnd", 7);
379
- /**
380
- * The arrays containing cloned content elements.
381
- */
382
- this.virtualScrollPrependClones = [];
383
- this.virtualScrollAppendClones = [];
384
- /**
385
- * Stores the content scroll and pointer positions for use with pointer events.
386
- */
387
- this.scrollDetails = null;
388
- /**
389
- * Stores the `element` left and width values to limit html reflows.
390
- */
391
- this.dimensions = { element: { left: 0, width: 0 } };
392
- /**
393
- * The css gap value set between elements.
394
- */
395
- this.elementGap = 16;
396
- /**
397
- * Determines if the content is currently being scrolled.
398
- */
399
- this.isScrolling = false;
400
- /**
401
- * Scrolls the element to the horizontal center of the viewport.
402
- * @param querySelector The query selector of the element that will be scrolled to the center of view.
403
- * @param isSmooth determines whether the scroll should be animated.
404
- * @param isQuiet determines wheter scroll events should be triggered.
405
- */
406
- this.scrollToElementCenter = async (querySelector, isSmooth = true, isQuiet = false) => {
407
- let childNodes = Array.from(this.element.children);
408
- if (this.withVirtualScroll) {
409
- childNodes = Array.from(this.element.querySelectorAll('[data-id]'));
410
- }
411
- const elementToCenter = childNodes.find(childNode => childNode.matches(querySelector));
412
- if (elementToCenter === null || elementToCenter === undefined) {
413
- return;
414
- }
415
- await this.inertialScroll.scrollToElement(elementToCenter, isSmooth, isQuiet);
416
- if (this.withOverflowOpacity) {
417
- this.updateChildElementOverflowOpacity();
418
- }
419
- };
420
- /**
421
- * Calculates the width of the scroll thumb in percentage relative to the content. Sets up the
422
- * width parameters of the scroll thumb.
423
- */
424
- this.setupScrollbar = () => {
425
- const { currentScroll } = this.inertialScroll;
426
- this.scrollThumbWidth =
427
- (this.scrollContainerRef.clientWidth / (currentScroll.scrollWidth + this.scrollContainerRef.clientWidth)) * 100;
428
- if (this.scrollbarRef === undefined) {
429
- return;
430
- }
431
- this.scrollbarRef.style.width = `${this.scrollThumbWidth}%`;
432
- this.scrollbarRef.style.left = `${this.currentScrollbarScroll}%`;
433
- };
434
- /**
435
- * Prevents the event if scrolling is disabled.
436
- * @param event Event
437
- */
438
- this.handleDisableScroll = (event) => {
439
- if (!this.disableScroll) {
440
- return;
441
- }
442
- event.preventDefault();
443
- };
444
- /**
445
- * The scroll event handler. Updates the card item classes as they are scrolled out of view.
446
- * Updates the control element classes as the content scroll reaches either end of the scroll.
447
- * Updates the position of the visual scrollbar thumb element.
448
- */
449
- this.handleScroll = () => {
450
- this.cardScroll.emit({
451
- totalAvailableScrollWidth: this.scrollDetails.scrollWidth,
452
- currentScroll: this.scrollDetails.scrollLeft,
453
- });
454
- const elementChildren = Array.from(this.element.children);
455
- if (this.withActiveElement) {
456
- const activeClone = elementChildren.find(element => element.attributes['data-clone-id'] && element.classList.contains(this.activeElementClass));
457
- if (activeClone !== undefined) {
458
- activeClone.classList.remove(this.activeElementClass);
459
- const cloneOffset = activeClone.getBoundingClientRect().left;
460
- const activeOriginal = elementChildren.find(element => element.classList.contains(this.activeElementClass));
461
- if (activeOriginal !== undefined) {
462
- const originalOffset = activeOriginal.getBoundingClientRect().left;
463
- const scrollDelta = cloneOffset - originalOffset;
464
- this.inertialScroll.scrollTo({ left: this.scrollDetails.scrollLeft - scrollDelta }, true);
465
- this.updateChildElementOverflowOpacity();
466
- }
467
- }
468
- this.setActiveCenteredElement();
469
- }
470
- if (this.withVirtualScroll) {
471
- this.moveElements();
472
- this.updateChildElementOverflowOpacity();
473
- }
474
- };
475
- /**
476
- * Handles toggling of the `activeElementClass` on elements during pointer drag events.
477
- */
478
- this.setActiveCenteredElement = () => {
479
- let isScrollRight = this.scrollDetails.scrollSpeed > 0;
480
- let isScrollLeft = this.scrollDetails.scrollSpeed < 0;
481
- const elementChildren = Array.from(this.element.children);
482
- const elementPositions = elementChildren.map(child => child.getBoundingClientRect());
483
- const elementRect = this.element.getBoundingClientRect();
484
- /** Determine the center point of the bounding element */
485
- const centerPoint = elementRect.width / 2 + elementRect.left;
486
- /** Determine the index of the child card overlapping with the `centerPoint` */
487
- let centeredElementIndex = elementPositions.findIndex(element => element.left <= centerPoint && element.left + element.width >= centerPoint);
488
- /** Set index to the first element in case list is scrolled to the start */
489
- if (centeredElementIndex === 1 && isScrollLeft && this.scrollDetails.scrollLeft === 0) {
490
- centeredElementIndex = 0;
491
- }
492
- /** Set index to the last element in case list is scrolled to the end */
493
- if (centeredElementIndex === elementPositions.length - 2 &&
494
- isScrollRight &&
495
- this.scrollDetails.scrollLeft + this.scrollContainerRef.getBoundingClientRect().width >=
496
- this.scrollDetails.scrollWidth) {
497
- centeredElementIndex = elementPositions.length - 1;
498
- }
499
- /** Calculate the index of the next element in case `centerPoint` is in between two elements */
500
- if (centeredElementIndex === -1) {
501
- if (isScrollRight) {
502
- centeredElementIndex = elementPositions.findIndex(element => element.left - this.elementGap <= centerPoint && element.left + element.width >= centerPoint);
503
- }
504
- if (isScrollLeft) {
505
- centeredElementIndex = elementPositions.findIndex(element => element.left <= centerPoint && element.left + element.width + this.elementGap >= centerPoint);
506
- }
507
- }
508
- const currentActiveElements = elementChildren.filter(element => element.classList.contains(this.activeElementClass));
509
- currentActiveElements.forEach(element => element.classList.remove(this.activeElementClass));
510
- const nextElement = elementChildren[centeredElementIndex];
511
- if (this.withVirtualScroll && (nextElement === null || nextElement === void 0 ? void 0 : nextElement.hasAttribute('data-clone-id'))) {
512
- const nextOriginalElement = elementChildren.find(element => { var _a; return ((_a = element.attributes['data-id']) === null || _a === void 0 ? void 0 : _a.value) === nextElement.getAttribute('data-clone-id'); });
513
- nextOriginalElement.classList.add(this.activeElementClass);
514
- }
515
- if (nextElement !== undefined) {
516
- nextElement.classList.add(this.activeElementClass);
517
- }
518
- this.updateControlVisibility();
519
- };
520
- /**
521
- * Shifts the elements and scroll position.
522
- * Gets the first and the last of the original elements and shifts both the original
523
- * and the cloned elements depending on the scroll direction.
524
- * Updates the currently set scroll values to hide the shift of the elements.
525
- */
526
- this.moveElements = () => {
527
- var _a, _b;
528
- if (!this.withVirtualScroll) {
529
- return;
530
- }
531
- const { width, left } = this.dimensions.element;
532
- const firstOriginalElement = this.getFirstOriginal();
533
- const lastOriginalElement = this.getLastOriginal();
534
- const firstOriginalRect = firstOriginalElement.getBoundingClientRect();
535
- const lastOriginalRect = lastOriginalElement.getBoundingClientRect();
536
- const lastOriginalRight = lastOriginalRect.right - left;
537
- const isLastOriginalInViewport = lastOriginalRight < width;
538
- if (isLastOriginalInViewport && ((_a = this.scrollDetails) === null || _a === void 0 ? void 0 : _a.scrollSpeed) < 0) {
539
- const movedElementDataId = parseInt(firstOriginalElement.getAttribute('data-id'), 10);
540
- const positionDelta = firstOriginalRect.width + this.elementGap;
541
- const secondOriginalElement = firstOriginalElement.nextElementSibling;
542
- this.inertialScroll.scrollBy({ left: -positionDelta }, true);
543
- lastOriginalElement.insertAdjacentElement('afterend', firstOriginalElement);
544
- secondOriginalElement.insertAdjacentElement('beforebegin', this.virtualScrollPrependClones[movedElementDataId]);
545
- this.element.insertAdjacentElement('beforeend', this.virtualScrollAppendClones[movedElementDataId]);
546
- }
547
- const firstOriginalLeft = firstOriginalRect.left - left;
548
- const isFirstOriginalInViewport = firstOriginalLeft > 0;
549
- if (isFirstOriginalInViewport && ((_b = this.scrollDetails) === null || _b === void 0 ? void 0 : _b.scrollSpeed) > 0) {
550
- const secondToLastElement = lastOriginalElement.previousElementSibling;
551
- const positionDelta = lastOriginalRect.width + this.elementGap;
552
- const movedElementDataId = parseInt(lastOriginalElement.getAttribute('data-id'), 10);
553
- this.inertialScroll.scrollBy({ left: positionDelta }, true);
554
- firstOriginalElement.insertAdjacentElement('beforebegin', lastOriginalElement);
555
- secondToLastElement.insertAdjacentElement('afterend', this.virtualScrollAppendClones[movedElementDataId]);
556
- this.element.insertAdjacentElement('afterbegin', this.virtualScrollPrependClones[movedElementDataId]);
557
- }
558
- };
559
- /**
560
- * Stops event propagation bubbling to the `contentElement`
561
- * @param event PointerEvent
562
- */
563
- this.handleControlPointerDown = (event) => {
564
- event.preventDefault();
565
- event.stopPropagation();
566
- event.stopImmediatePropagation();
567
- };
568
- /**
569
- * Handles the left control click.
570
- */
571
- this.handleLeftControl = async () => {
572
- if (this.isScrolling) {
573
- return;
574
- }
575
- this.isScrolling = true;
576
- if (this.withActiveElement) {
577
- const currentActive = this.element.querySelector(`.${this.activeElementClass}`);
578
- let previousElement = currentActive.previousElementSibling;
579
- if (previousElement === null) {
580
- return;
581
- }
582
- currentActive.classList.remove(this.activeElementClass);
583
- if (previousElement.hasAttribute('data-clone-id')) {
584
- this.scrollDetails.scrollSpeed = 1;
585
- this.moveElements();
586
- previousElement = currentActive.previousElementSibling;
587
- if (this.withOverflowOpacity) {
588
- this.updateChildElementOverflowOpacity();
589
- }
590
- }
591
- previousElement.classList.add(this.activeElementClass);
592
- await this.scrollToElementCenter(`.${this.activeElementClass}`);
593
- this.moveElements();
594
- this.updateControlVisibility();
595
- }
596
- else if (this.scrollFullWidth) {
597
- const scrollRect = this.scrollContainerRef.getBoundingClientRect();
598
- const scrollWidth = scrollRect.width;
599
- const scrollStart = scrollRect.left;
600
- const firstElement = Array.from(this.element.children).find(child => {
601
- const childRect = child.getBoundingClientRect();
602
- return childRect.left < scrollStart && childRect.right + this.elementGap > scrollStart;
603
- });
604
- if (firstElement !== undefined) {
605
- const firstElementRight = firstElement.getBoundingClientRect().right;
606
- const scrollEnd = scrollRect.left + scrollWidth;
607
- await this.inertialScroll.scrollBy({ left: -(scrollEnd - firstElementRight), behavior: 'smooth' });
608
- }
609
- else {
610
- await this.inertialScroll.scrollBy({ left: -scrollWidth, behavior: 'smooth' });
611
- }
612
- }
613
- else {
614
- await this.inertialScroll.scrollBy({ left: -this.controlScrollAmount, behavior: 'smooth' });
615
- }
616
- this.isScrolling = false;
617
- };
618
- /**
619
- * Handles the right control click.
620
- */
621
- this.handleRightControl = async () => {
622
- if (this.isScrolling) {
623
- return;
624
- }
625
- this.isScrolling = true;
626
- if (this.withActiveElement) {
627
- const currentActive = this.element.querySelector(`.${this.activeElementClass}`);
628
- let nextElement = currentActive.nextElementSibling;
629
- if (nextElement === null) {
630
- return;
631
- }
632
- currentActive.classList.remove(this.activeElementClass);
633
- if (nextElement.hasAttribute('data-clone-id')) {
634
- this.scrollDetails.scrollSpeed = -1;
635
- this.moveElements();
636
- nextElement = currentActive.nextElementSibling;
637
- if (this.withOverflowOpacity) {
638
- this.updateChildElementOverflowOpacity();
639
- }
640
- }
641
- nextElement.classList.add(this.activeElementClass);
642
- await this.scrollToElementCenter(`.${this.activeElementClass}`);
643
- this.moveElements();
644
- this.updateControlVisibility();
645
- }
646
- else if (this.scrollFullWidth) {
647
- const scrollRect = this.scrollContainerRef.getBoundingClientRect();
648
- const scrollWidth = scrollRect.width;
649
- const scrollEnd = scrollWidth + scrollRect.left;
650
- const lastElement = Array.from(this.element.children).find(child => {
651
- const childRect = child.getBoundingClientRect();
652
- return childRect.left - this.elementGap < scrollEnd && childRect.right > scrollEnd;
653
- });
654
- if (lastElement !== undefined) {
655
- const lastElementLeft = lastElement.getBoundingClientRect().left;
656
- const scrollStart = scrollRect.left;
657
- await this.inertialScroll.scrollBy({ left: lastElementLeft - scrollStart, behavior: 'smooth' });
658
- }
659
- else {
660
- await this.inertialScroll.scrollBy({ left: scrollWidth, behavior: 'smooth' });
661
- }
662
- }
663
- else {
664
- await this.inertialScroll.scrollBy({ left: this.controlScrollAmount, behavior: 'smooth' });
665
- }
666
- this.isScrolling = false;
667
- };
668
- /**
669
- * Handles the keyup event on the right control.
670
- * If the key is "Enter" or "Space", will trigger navigation to the next card.
671
- * @param e - The keyboard event object.
672
- */
673
- this.handleRightControlKeyUp = (e) => {
674
- if (e.key === ' ' || e.key === 'Enter') {
675
- this.handleRightControl();
676
- }
677
- };
678
- /**
679
- * Handles the keyup event on the left control.
680
- * If the key is "Enter" or "Space", will trigger navigation to the previous card.
681
- * @param e - The keyboard event object.
682
- */
683
- this.handleLeftControlKeyUp = (e) => {
684
- if (e.key === ' ' || e.key === 'Enter') {
685
- this.handleLeftControl();
686
- }
687
- };
688
- /**
689
- * Updates the visibility of the control element.
690
- */
691
- this.updateControlVisibility = (scroll = this.scrollDetails) => {
692
- let controlVisibility = {
693
- left: false,
694
- right: false,
695
- };
696
- if (this.withControls) {
697
- if (scroll === null) {
698
- controlVisibility = {
699
- left: false,
700
- right: true,
701
- };
702
- }
703
- else {
704
- controlVisibility.left = scroll.scrollLeft - 1 <= 0 ? false : true;
705
- controlVisibility.right = scroll.scrollLeft >= scroll.scrollWidth ? false : true;
706
- }
707
- }
708
- // Only update if there are changes.
709
- if (JSON.stringify(controlVisibility) !== JSON.stringify(this.controlVisibility)) {
710
- this.controlVisibility = controlVisibility;
711
- }
712
- };
713
391
  this.controlVisibility = { left: true, right: true };
714
392
  this.scrollThumbWidth = 0;
715
393
  this.isSmallContainer = false;
@@ -730,6 +408,45 @@ const TetCardList = class {
730
408
  this.iconPrev = '';
731
409
  this.iconNext = '';
732
410
  }
411
+ inertialScroll;
412
+ get element() { return getElement(this); }
413
+ /**
414
+ * The DOM element of the scrollable content container.
415
+ */
416
+ scrollContainerRef;
417
+ /**
418
+ * The DOM element of the scroll thumb.
419
+ */
420
+ scrollbarRef;
421
+ /**
422
+ * The arrays containing cloned content elements.
423
+ */
424
+ virtualScrollPrependClones = [];
425
+ virtualScrollAppendClones = [];
426
+ /**
427
+ * Stores the content scroll and pointer positions for use with pointer events.
428
+ */
429
+ scrollDetails = null;
430
+ /**
431
+ * Stores the `element` left and width values to limit html reflows.
432
+ */
433
+ dimensions = { element: { left: 0, width: 0 } };
434
+ /**
435
+ * The css gap value set between elements.
436
+ */
437
+ elementGap = 16;
438
+ /**
439
+ * Determines if the content is currently being scrolled.
440
+ */
441
+ isScrolling = false;
442
+ /**
443
+ * The event that is emitted when the component is scrolled.
444
+ */
445
+ cardScroll;
446
+ /**
447
+ * The event that is emitted when the component is scrolled.
448
+ */
449
+ contentScrollEnd;
733
450
  /**
734
451
  * Adds and removes event pointer event handles to the `element` on `withMouseDrag` change.
735
452
  * @param withMouseDrag boolean
@@ -788,6 +505,26 @@ const TetCardList = class {
788
505
  async scrollListToElementCenter(querySelector, isQuiet = false) {
789
506
  await this.scrollToElementCenter(querySelector, true, isQuiet);
790
507
  }
508
+ /**
509
+ * Scrolls the element to the horizontal center of the viewport.
510
+ * @param querySelector The query selector of the element that will be scrolled to the center of view.
511
+ * @param isSmooth determines whether the scroll should be animated.
512
+ * @param isQuiet determines wheter scroll events should be triggered.
513
+ */
514
+ scrollToElementCenter = async (querySelector, isSmooth = true, isQuiet = false) => {
515
+ let childNodes = Array.from(this.element.children);
516
+ if (this.withVirtualScroll) {
517
+ childNodes = Array.from(this.element.querySelectorAll('[data-id]'));
518
+ }
519
+ const elementToCenter = childNodes.find(childNode => childNode.matches(querySelector));
520
+ if (elementToCenter === null || elementToCenter === undefined) {
521
+ return;
522
+ }
523
+ await this.inertialScroll.scrollToElement(elementToCenter, isSmooth, isQuiet);
524
+ if (this.withOverflowOpacity) {
525
+ this.updateChildElementOverflowOpacity();
526
+ }
527
+ };
791
528
  /**
792
529
  * The lifecycle method that called once just after the component is fully loaded and the first
793
530
  * `render()` occurs. Attaches the event listeners to the root element of the component and
@@ -940,11 +677,148 @@ const TetCardList = class {
940
677
  * Removes the event listeners.
941
678
  */
942
679
  disconnectedCallback() {
943
- var _a, _b;
944
680
  this.inertialScroll.detach();
945
- (_a = this.scrollContainerRef) === null || _a === void 0 ? void 0 : _a.removeEventListener('mousewheel', this.handleDisableScroll);
946
- (_b = this.scrollContainerRef) === null || _b === void 0 ? void 0 : _b.removeEventListener('touchmove', this.handleDisableScroll);
681
+ this.scrollContainerRef?.removeEventListener('mousewheel', this.handleDisableScroll);
682
+ this.scrollContainerRef?.removeEventListener('touchmove', this.handleDisableScroll);
947
683
  }
684
+ /**
685
+ * Calculates the width of the scroll thumb in percentage relative to the content. Sets up the
686
+ * width parameters of the scroll thumb.
687
+ */
688
+ setupScrollbar = () => {
689
+ const { currentScroll } = this.inertialScroll;
690
+ this.scrollThumbWidth =
691
+ (this.scrollContainerRef.clientWidth / (currentScroll.scrollWidth + this.scrollContainerRef.clientWidth)) * 100;
692
+ if (this.scrollbarRef === undefined) {
693
+ return;
694
+ }
695
+ this.scrollbarRef.style.width = `${this.scrollThumbWidth}%`;
696
+ this.scrollbarRef.style.left = `${this.currentScrollbarScroll}%`;
697
+ };
698
+ /**
699
+ * Prevents the event if scrolling is disabled.
700
+ * @param event Event
701
+ */
702
+ handleDisableScroll = (event) => {
703
+ if (!this.disableScroll) {
704
+ return;
705
+ }
706
+ event.preventDefault();
707
+ };
708
+ /**
709
+ * The scroll event handler. Updates the card item classes as they are scrolled out of view.
710
+ * Updates the control element classes as the content scroll reaches either end of the scroll.
711
+ * Updates the position of the visual scrollbar thumb element.
712
+ */
713
+ handleScroll = () => {
714
+ this.cardScroll.emit({
715
+ totalAvailableScrollWidth: this.scrollDetails.scrollWidth,
716
+ currentScroll: this.scrollDetails.scrollLeft,
717
+ });
718
+ const elementChildren = Array.from(this.element.children);
719
+ if (this.withActiveElement) {
720
+ const activeClone = elementChildren.find(element => element.attributes['data-clone-id'] && element.classList.contains(this.activeElementClass));
721
+ if (activeClone !== undefined) {
722
+ activeClone.classList.remove(this.activeElementClass);
723
+ const cloneOffset = activeClone.getBoundingClientRect().left;
724
+ const activeOriginal = elementChildren.find(element => element.classList.contains(this.activeElementClass));
725
+ if (activeOriginal !== undefined) {
726
+ const originalOffset = activeOriginal.getBoundingClientRect().left;
727
+ const scrollDelta = cloneOffset - originalOffset;
728
+ this.inertialScroll.scrollTo({ left: this.scrollDetails.scrollLeft - scrollDelta }, true);
729
+ this.updateChildElementOverflowOpacity();
730
+ }
731
+ }
732
+ this.setActiveCenteredElement();
733
+ }
734
+ if (this.withVirtualScroll) {
735
+ this.moveElements();
736
+ this.updateChildElementOverflowOpacity();
737
+ }
738
+ };
739
+ /**
740
+ * Handles toggling of the `activeElementClass` on elements during pointer drag events.
741
+ */
742
+ setActiveCenteredElement = () => {
743
+ let isScrollRight = this.scrollDetails.scrollSpeed > 0;
744
+ let isScrollLeft = this.scrollDetails.scrollSpeed < 0;
745
+ const elementChildren = Array.from(this.element.children);
746
+ const elementPositions = elementChildren.map(child => child.getBoundingClientRect());
747
+ const elementRect = this.element.getBoundingClientRect();
748
+ /** Determine the center point of the bounding element */
749
+ const centerPoint = elementRect.width / 2 + elementRect.left;
750
+ /** Determine the index of the child card overlapping with the `centerPoint` */
751
+ let centeredElementIndex = elementPositions.findIndex(element => element.left <= centerPoint && element.left + element.width >= centerPoint);
752
+ /** Set index to the first element in case list is scrolled to the start */
753
+ if (centeredElementIndex === 1 && isScrollLeft && this.scrollDetails.scrollLeft === 0) {
754
+ centeredElementIndex = 0;
755
+ }
756
+ /** Set index to the last element in case list is scrolled to the end */
757
+ if (centeredElementIndex === elementPositions.length - 2 &&
758
+ isScrollRight &&
759
+ this.scrollDetails.scrollLeft + this.scrollContainerRef.getBoundingClientRect().width >=
760
+ this.scrollDetails.scrollWidth) {
761
+ centeredElementIndex = elementPositions.length - 1;
762
+ }
763
+ /** Calculate the index of the next element in case `centerPoint` is in between two elements */
764
+ if (centeredElementIndex === -1) {
765
+ if (isScrollRight) {
766
+ centeredElementIndex = elementPositions.findIndex(element => element.left - this.elementGap <= centerPoint && element.left + element.width >= centerPoint);
767
+ }
768
+ if (isScrollLeft) {
769
+ centeredElementIndex = elementPositions.findIndex(element => element.left <= centerPoint && element.left + element.width + this.elementGap >= centerPoint);
770
+ }
771
+ }
772
+ const currentActiveElements = elementChildren.filter(element => element.classList.contains(this.activeElementClass));
773
+ currentActiveElements.forEach(element => element.classList.remove(this.activeElementClass));
774
+ const nextElement = elementChildren[centeredElementIndex];
775
+ if (this.withVirtualScroll && nextElement?.hasAttribute('data-clone-id')) {
776
+ const nextOriginalElement = elementChildren.find(element => element.attributes['data-id']?.value === nextElement.getAttribute('data-clone-id'));
777
+ nextOriginalElement.classList.add(this.activeElementClass);
778
+ }
779
+ if (nextElement !== undefined) {
780
+ nextElement.classList.add(this.activeElementClass);
781
+ }
782
+ this.updateControlVisibility();
783
+ };
784
+ /**
785
+ * Shifts the elements and scroll position.
786
+ * Gets the first and the last of the original elements and shifts both the original
787
+ * and the cloned elements depending on the scroll direction.
788
+ * Updates the currently set scroll values to hide the shift of the elements.
789
+ */
790
+ moveElements = () => {
791
+ if (!this.withVirtualScroll) {
792
+ return;
793
+ }
794
+ const { width, left } = this.dimensions.element;
795
+ const firstOriginalElement = this.getFirstOriginal();
796
+ const lastOriginalElement = this.getLastOriginal();
797
+ const firstOriginalRect = firstOriginalElement.getBoundingClientRect();
798
+ const lastOriginalRect = lastOriginalElement.getBoundingClientRect();
799
+ const lastOriginalRight = lastOriginalRect.right - left;
800
+ const isLastOriginalInViewport = lastOriginalRight < width;
801
+ if (isLastOriginalInViewport && this.scrollDetails?.scrollSpeed < 0) {
802
+ const movedElementDataId = parseInt(firstOriginalElement.getAttribute('data-id'), 10);
803
+ const positionDelta = firstOriginalRect.width + this.elementGap;
804
+ const secondOriginalElement = firstOriginalElement.nextElementSibling;
805
+ this.inertialScroll.scrollBy({ left: -positionDelta }, true);
806
+ lastOriginalElement.insertAdjacentElement('afterend', firstOriginalElement);
807
+ secondOriginalElement.insertAdjacentElement('beforebegin', this.virtualScrollPrependClones[movedElementDataId]);
808
+ this.element.insertAdjacentElement('beforeend', this.virtualScrollAppendClones[movedElementDataId]);
809
+ }
810
+ const firstOriginalLeft = firstOriginalRect.left - left;
811
+ const isFirstOriginalInViewport = firstOriginalLeft > 0;
812
+ if (isFirstOriginalInViewport && this.scrollDetails?.scrollSpeed > 0) {
813
+ const secondToLastElement = lastOriginalElement.previousElementSibling;
814
+ const positionDelta = lastOriginalRect.width + this.elementGap;
815
+ const movedElementDataId = parseInt(lastOriginalElement.getAttribute('data-id'), 10);
816
+ this.inertialScroll.scrollBy({ left: positionDelta }, true);
817
+ firstOriginalElement.insertAdjacentElement('beforebegin', lastOriginalElement);
818
+ secondToLastElement.insertAdjacentElement('afterend', this.virtualScrollAppendClones[movedElementDataId]);
819
+ this.element.insertAdjacentElement('afterbegin', this.virtualScrollPrependClones[movedElementDataId]);
820
+ }
821
+ };
948
822
  /**
949
823
  * Returns the current scroll in percentage.
950
824
  * @returns number representing the current scroll value in percent.
@@ -969,6 +843,160 @@ const TetCardList = class {
969
843
  }
970
844
  return scrollThumbPosition;
971
845
  }
846
+ /**
847
+ * Stops event propagation bubbling to the `contentElement`
848
+ * @param event PointerEvent
849
+ */
850
+ handleControlPointerDown = (event) => {
851
+ event.preventDefault();
852
+ event.stopPropagation();
853
+ event.stopImmediatePropagation();
854
+ };
855
+ /**
856
+ * Handles the left control click.
857
+ */
858
+ handleLeftControl = async () => {
859
+ if (this.isScrolling) {
860
+ return;
861
+ }
862
+ this.isScrolling = true;
863
+ if (this.withActiveElement) {
864
+ const currentActive = this.element.querySelector(`.${this.activeElementClass}`);
865
+ let previousElement = currentActive.previousElementSibling;
866
+ if (previousElement === null) {
867
+ return;
868
+ }
869
+ currentActive.classList.remove(this.activeElementClass);
870
+ if (previousElement.hasAttribute('data-clone-id')) {
871
+ this.scrollDetails.scrollSpeed = 1;
872
+ this.moveElements();
873
+ previousElement = currentActive.previousElementSibling;
874
+ if (this.withOverflowOpacity) {
875
+ this.updateChildElementOverflowOpacity();
876
+ }
877
+ }
878
+ previousElement.classList.add(this.activeElementClass);
879
+ await this.scrollToElementCenter(`.${this.activeElementClass}`);
880
+ this.moveElements();
881
+ this.updateControlVisibility();
882
+ }
883
+ else if (this.scrollFullWidth) {
884
+ const scrollRect = this.scrollContainerRef.getBoundingClientRect();
885
+ const scrollWidth = scrollRect.width;
886
+ const scrollStart = scrollRect.left;
887
+ const firstElement = Array.from(this.element.children).find(child => {
888
+ const childRect = child.getBoundingClientRect();
889
+ return childRect.left < scrollStart && childRect.right + this.elementGap > scrollStart;
890
+ });
891
+ if (firstElement !== undefined) {
892
+ const firstElementRight = firstElement.getBoundingClientRect().right;
893
+ const scrollEnd = scrollRect.left + scrollWidth;
894
+ await this.inertialScroll.scrollBy({ left: -(scrollEnd - firstElementRight), behavior: 'smooth' });
895
+ }
896
+ else {
897
+ await this.inertialScroll.scrollBy({ left: -scrollWidth, behavior: 'smooth' });
898
+ }
899
+ }
900
+ else {
901
+ await this.inertialScroll.scrollBy({ left: -this.controlScrollAmount, behavior: 'smooth' });
902
+ }
903
+ this.isScrolling = false;
904
+ };
905
+ /**
906
+ * Handles the right control click.
907
+ */
908
+ handleRightControl = async () => {
909
+ if (this.isScrolling) {
910
+ return;
911
+ }
912
+ this.isScrolling = true;
913
+ if (this.withActiveElement) {
914
+ const currentActive = this.element.querySelector(`.${this.activeElementClass}`);
915
+ let nextElement = currentActive.nextElementSibling;
916
+ if (nextElement === null) {
917
+ return;
918
+ }
919
+ currentActive.classList.remove(this.activeElementClass);
920
+ if (nextElement.hasAttribute('data-clone-id')) {
921
+ this.scrollDetails.scrollSpeed = -1;
922
+ this.moveElements();
923
+ nextElement = currentActive.nextElementSibling;
924
+ if (this.withOverflowOpacity) {
925
+ this.updateChildElementOverflowOpacity();
926
+ }
927
+ }
928
+ nextElement.classList.add(this.activeElementClass);
929
+ await this.scrollToElementCenter(`.${this.activeElementClass}`);
930
+ this.moveElements();
931
+ this.updateControlVisibility();
932
+ }
933
+ else if (this.scrollFullWidth) {
934
+ const scrollRect = this.scrollContainerRef.getBoundingClientRect();
935
+ const scrollWidth = scrollRect.width;
936
+ const scrollEnd = scrollWidth + scrollRect.left;
937
+ const lastElement = Array.from(this.element.children).find(child => {
938
+ const childRect = child.getBoundingClientRect();
939
+ return childRect.left - this.elementGap < scrollEnd && childRect.right > scrollEnd;
940
+ });
941
+ if (lastElement !== undefined) {
942
+ const lastElementLeft = lastElement.getBoundingClientRect().left;
943
+ const scrollStart = scrollRect.left;
944
+ await this.inertialScroll.scrollBy({ left: lastElementLeft - scrollStart, behavior: 'smooth' });
945
+ }
946
+ else {
947
+ await this.inertialScroll.scrollBy({ left: scrollWidth, behavior: 'smooth' });
948
+ }
949
+ }
950
+ else {
951
+ await this.inertialScroll.scrollBy({ left: this.controlScrollAmount, behavior: 'smooth' });
952
+ }
953
+ this.isScrolling = false;
954
+ };
955
+ /**
956
+ * Handles the keyup event on the right control.
957
+ * If the key is "Enter" or "Space", will trigger navigation to the next card.
958
+ * @param e - The keyboard event object.
959
+ */
960
+ handleRightControlKeyUp = (e) => {
961
+ if (e.key === ' ' || e.key === 'Enter') {
962
+ this.handleRightControl();
963
+ }
964
+ };
965
+ /**
966
+ * Handles the keyup event on the left control.
967
+ * If the key is "Enter" or "Space", will trigger navigation to the previous card.
968
+ * @param e - The keyboard event object.
969
+ */
970
+ handleLeftControlKeyUp = (e) => {
971
+ if (e.key === ' ' || e.key === 'Enter') {
972
+ this.handleLeftControl();
973
+ }
974
+ };
975
+ /**
976
+ * Updates the visibility of the control element.
977
+ */
978
+ updateControlVisibility = (scroll = this.scrollDetails) => {
979
+ let controlVisibility = {
980
+ left: false,
981
+ right: false,
982
+ };
983
+ if (this.withControls) {
984
+ if (scroll === null) {
985
+ controlVisibility = {
986
+ left: false,
987
+ right: true,
988
+ };
989
+ }
990
+ else {
991
+ controlVisibility.left = scroll.scrollLeft - 1 <= 0 ? false : true;
992
+ controlVisibility.right = scroll.scrollLeft >= scroll.scrollWidth ? false : true;
993
+ }
994
+ }
995
+ // Only update if there are changes.
996
+ if (JSON.stringify(controlVisibility) !== JSON.stringify(this.controlVisibility)) {
997
+ this.controlVisibility = controlVisibility;
998
+ }
999
+ };
972
1000
  /**
973
1001
  * Adds or removes the transparency effect to the card items as they enter or leave the viewport.
974
1002
  */
@@ -1028,7 +1056,6 @@ const TetCardList = class {
1028
1056
  'tet-card-list__control--hidden': !this.controlVisibility.right,
1029
1057
  }, onPointerDown: this.handleControlPointerDown, onPointerUp: this.handleRightControl, onKeyUp: this.handleRightControlKeyUp }, h("tet-icon", { key: 'b19ee3803dd3fcf44a11816372555b6be84150f9', name: this.iconNext && this.iconNext !== '' ? this.iconNext : 'chevron-right', class: "tet-card-list__control__icon" })), h("div", { key: '9d93b130142f3675cb2d6436a84ff78df28c092a', class: { 'tet-card-list__scroll': true, 'tet-card-list--hidden': !this.withScrollbar } }, h("div", { key: 'b71a2c641265034396d4b0a350ba3aa57e8d7c49', class: "tet-card-list__scroll--thumb", ref: el => (this.scrollbarRef = el) })))));
1030
1058
  }
1031
- get element() { return getElement(this); }
1032
1059
  static get watchers() { return {
1033
1060
  "withMouseDrag": ["onWithMouseDragChange"],
1034
1061
  "disableScroll": ["onDisableScrollChange"],