@tet/tet-components 1.3.157-testing → 1.4.0-staging
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{address-5271d3aa.js → address-b695d769.js} +1 -1
- package/dist/cjs/{assets-e3bb045c.js → assets-39f8cd2c.js} +1 -1
- package/dist/cjs/{async-request-29b32d63.js → async-request-77d8e0b8.js} +27 -26
- package/dist/cjs/compare-cards-tab-products-filters-10b06fe0.js +100 -0
- package/dist/cjs/{http-codes-2f72a8b2.js → http-codes-38914116.js} +25 -19
- package/dist/cjs/{index-f559cb2e.js → index-28359ea5.js} +1672 -1598
- package/dist/cjs/{index-84ede372.js → index-bf7cfd19.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{phone-d414fe5a.js → phone-ed64bd26.js} +8 -6
- package/dist/cjs/{product-comparison-f784fb1b.js → product-comparison-ae2ccae4.js} +1 -1
- package/dist/cjs/{tasks-af99ad61.js → tasks-57ad40ae.js} +2 -2
- package/dist/cjs/tet-accordion_2.cjs.entry.js +62 -46
- package/dist/cjs/tet-address-offers-filters-products_2.cjs.entry.js +249 -232
- package/dist/cjs/tet-address-offers-view.cjs.entry.js +43 -35
- package/dist/cjs/tet-address-offers_4.cjs.entry.js +343 -313
- package/dist/cjs/tet-address-search.cjs.entry.js +175 -167
- package/dist/cjs/tet-asset-addresses.cjs.entry.js +106 -95
- package/dist/cjs/tet-autocomplete-dropdown.cjs.entry.js +40 -30
- package/dist/cjs/tet-autocomplete.cjs.entry.js +203 -190
- package/dist/cjs/tet-b2b-check-out-form_5.cjs.entry.js +280 -241
- package/dist/cjs/tet-b2b-configurator.cjs.entry.js +396 -378
- package/dist/cjs/tet-b2b-service-calculator.cjs.entry.js +28 -28
- package/dist/cjs/tet-banner-nav.cjs.entry.js +23 -11
- package/dist/cjs/tet-bar-graph.cjs.entry.js +222 -215
- package/dist/cjs/tet-border-radius.cjs.entry.js +1 -1
- package/dist/cjs/tet-business-card.cjs.entry.js +38 -32
- package/dist/cjs/tet-business-compare-card.cjs.entry.js +18 -11
- package/dist/cjs/tet-business-lines.cjs.entry.js +25 -26
- package/dist/cjs/tet-business-round-stepper.cjs.entry.js +10 -10
- package/dist/cjs/tet-button.cjs.entry.js +9 -9
- package/dist/cjs/tet-card-list.cjs.entry.js +557 -530
- package/dist/cjs/tet-carousel.cjs.entry.js +180 -184
- package/dist/cjs/tet-checkbox.cjs.entry.js +15 -11
- package/dist/cjs/tet-cloud-application-form-dialog.cjs.entry.js +30 -4
- package/dist/cjs/tet-cloud-configurator.cjs.entry.js +132 -124
- package/dist/cjs/tet-colors.cjs.entry.js +42 -42
- package/dist/cjs/tet-compare-card-v2.cjs.entry.js +51 -49
- package/dist/cjs/tet-compare-cards-tab.cjs.entry.js +29 -28
- package/dist/cjs/tet-compare-cards_2.cjs.entry.js +41 -34
- package/dist/cjs/tet-components.cjs.js +3 -3
- package/dist/cjs/tet-contact-form.cjs.entry.js +55 -46
- package/dist/cjs/tet-contact-info.cjs.entry.js +1 -1
- package/dist/cjs/tet-container_2.cjs.entry.js +62 -58
- package/dist/cjs/tet-customer-assets.cjs.entry.js +90 -85
- package/dist/cjs/tet-datepicker-header_4.cjs.entry.js +202 -187
- package/dist/cjs/tet-datepicker.cjs.entry.js +35 -30
- package/dist/cjs/tet-dialog.cjs.entry.js +41 -35
- package/dist/cjs/tet-dropdown_2.cjs.entry.js +137 -115
- package/dist/cjs/tet-dynamic-card.cjs.entry.js +68 -71
- package/dist/cjs/tet-expandable-input.cjs.entry.js +97 -80
- package/dist/cjs/tet-expansion-panel.cjs.entry.js +17 -19
- package/dist/cjs/tet-filter.cjs.entry.js +26 -11
- package/dist/cjs/tet-font-weight.cjs.entry.js +1 -1
- package/dist/cjs/tet-fonts.cjs.entry.js +1 -1
- package/dist/cjs/tet-grid.cjs.entry.js +1 -1
- package/dist/cjs/tet-icon.cjs.entry.js +25 -24
- package/dist/cjs/tet-inline-message.cjs.entry.js +7 -7
- package/dist/cjs/tet-input.cjs.entry.js +47 -37
- package/dist/cjs/tet-label.cjs.entry.js +3 -3
- package/dist/cjs/tet-layout.cjs.entry.js +1 -1
- package/dist/cjs/tet-link.cjs.entry.js +1 -1
- package/dist/cjs/tet-loader.cjs.entry.js +1 -1
- package/dist/cjs/tet-macd-view.cjs.entry.js +50 -23
- package/dist/cjs/tet-menu-mobile.cjs.entry.js +13 -14
- package/dist/cjs/tet-menu.cjs.entry.js +4 -5
- package/dist/cjs/tet-multi-step-dialog.cjs.entry.js +86 -72
- package/dist/cjs/tet-navigation-mobile.cjs.entry.js +19 -15
- package/dist/cjs/tet-news-card-list.cjs.entry.js +35 -36
- package/dist/cjs/tet-number-input.cjs.entry.js +56 -42
- package/dist/cjs/tet-placeholder.cjs.entry.js +1 -1
- package/dist/cjs/tet-price-view.cjs.entry.js +4 -4
- package/dist/cjs/tet-radio.cjs.entry.js +11 -7
- package/dist/cjs/tet-range-slider.cjs.entry.js +632 -620
- package/dist/cjs/tet-referral.cjs.entry.js +30 -26
- package/dist/cjs/tet-round-stepper.cjs.entry.js +2 -2
- package/dist/cjs/tet-spacing.cjs.entry.js +1 -1
- package/dist/cjs/tet-spinner.cjs.entry.js +16 -16
- package/dist/cjs/tet-stepper-input.cjs.entry.js +32 -26
- package/dist/cjs/tet-stepper-v2.cjs.entry.js +28 -29
- package/dist/cjs/tet-stepper-v3.cjs.entry.js +20 -21
- package/dist/cjs/tet-stepper.cjs.entry.js +62 -63
- package/dist/cjs/tet-switch.cjs.entry.js +4 -2
- package/dist/cjs/tet-tab-header.cjs.entry.js +68 -65
- package/dist/cjs/tet-table.cjs.entry.js +132 -138
- package/dist/cjs/tet-tag_2.cjs.entry.js +11 -11
- package/dist/cjs/tet-text-list.cjs.entry.js +12 -4
- package/dist/cjs/tet-textarea.cjs.entry.js +14 -14
- package/dist/cjs/tet-thank-you-view-v2.cjs.entry.js +36 -33
- package/dist/cjs/tet-thank-you-view-v3.cjs.entry.js +36 -33
- package/dist/cjs/tet-thank-you-view.cjs.entry.js +52 -46
- package/dist/cjs/tet-tv-gift-block.cjs.entry.js +15 -15
- package/dist/cjs/tet-tv-gift-list.cjs.entry.js +15 -15
- package/dist/cjs/{theme-wrapper-a5bbadf6.js → theme-wrapper-6ae60d67.js} +2 -2
- package/dist/cjs/{translations-ed68775f.js → translations-2637e1f9.js} +52 -51
- package/dist/cjs/{utils-ac9be2ff.js → utils-1f67c4b7.js} +23 -8
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/advanced/address/tet-address-offers/tet-address-offers.js +108 -101
- package/dist/collection/components/advanced/address/tet-address-offers-filters/address-offers-filters.js +128 -129
- package/dist/collection/components/advanced/address/tet-address-offers-filters/tet-address-offers-filters.js +17 -17
- package/dist/collection/components/advanced/address/tet-address-offers-filters-products/address-offers-products-filters.js +90 -89
- package/dist/collection/components/advanced/address/tet-address-offers-filters-products/tet-address-offers-filters-products.js +33 -19
- package/dist/collection/components/advanced/address/tet-address-search/tet-address-search.js +171 -163
- package/dist/collection/components/advanced/address/tet-autocomplete/tet-autocomplete.js +203 -206
- package/dist/collection/components/advanced/address/tet-autocomplete-dropdown/tet-autocomplete-dropdown.js +39 -29
- package/dist/collection/components/advanced/cards/tet-b2b-compare-card/tet-b2b-compare-card.js +75 -62
- package/dist/collection/components/advanced/cards/tet-business-card/tet-business-card.js +40 -30
- package/dist/collection/components/advanced/cards/tet-business-compare-card/tet-business-compare-card.js +17 -10
- package/dist/collection/components/advanced/cards/tet-business-summary-card/tet-business-summary-card.js +38 -32
- package/dist/collection/components/advanced/cards/tet-card-list/tet-card-list.js +356 -337
- package/dist/collection/components/advanced/cards/tet-compare-card/tet-compare-card.js +125 -119
- package/dist/collection/components/advanced/cards/tet-compare-card-v2/tet-compare-card-v2.js +51 -45
- package/dist/collection/components/advanced/cards/tet-compare-cards/tet-compare-cards.js +21 -15
- package/dist/collection/components/advanced/cards/tet-compare-cards-tab/compare-cards-tab-products-filters.js +89 -88
- package/dist/collection/components/advanced/cards/tet-compare-cards-tab/tet-compare-cards-tab.js +25 -22
- package/dist/collection/components/advanced/cards/tet-dynamic-card/tet-dynamic-card.js +67 -70
- package/dist/collection/components/advanced/cards/utils.js +23 -8
- package/dist/collection/components/advanced/customer/tet-asset-addresses/tet-asset-addresses.js +103 -92
- package/dist/collection/components/advanced/customer/tet-asset-availability-addresses/tet-asset-availability-addresses.js +29 -14
- package/dist/collection/components/advanced/customer/tet-customer-assets/tet-customer-assets.js +87 -82
- package/dist/collection/components/advanced/customer/tet-referral/tet-referral.js +24 -19
- package/dist/collection/components/advanced/dialog/tet-multi-step-dialog/tet-multi-step-dialog.js +83 -69
- package/dist/collection/components/advanced/forms/tet-availability-contact-form/tet-availability-contact-form.js +54 -43
- package/dist/collection/components/advanced/forms/tet-b2b-check-out-form/tet-b2b-check-out-form.js +11 -3
- package/dist/collection/components/advanced/forms/tet-contact-form/tet-contact-form.js +49 -40
- package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-block/tet-tv-gift-block.js +14 -13
- package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-list/tet-tv-gift-list.js +15 -13
- package/dist/collection/components/basic/buttons/tet-button/tet-button.js +8 -8
- package/dist/collection/components/basic/buttons/tet-checkbox/tet-checkbox.js +14 -10
- package/dist/collection/components/basic/buttons/tet-radio/tet-radio.js +10 -6
- package/dist/collection/components/basic/buttons/tet-switch/tet-switch.js +3 -1
- package/dist/collection/components/basic/buttons/tet-tabs/tet-tab-content/tet-tab-content.js +17 -13
- package/dist/collection/components/basic/buttons/tet-tabs/tet-tab-header/tet-tab-header.js +67 -63
- package/dist/collection/components/basic/buttons/tet-tag-group/tet-tag-group.js +8 -8
- package/dist/collection/components/basic/carousel/tet-carousel/tet-carousel.js +177 -181
- package/dist/collection/components/basic/icon/tet-icon.js +23 -22
- package/dist/collection/components/basic/loaders/tet-spinner/tet-spinner.js +15 -14
- package/dist/collection/components/basic/steppers/tet-banner-nav/tet-banner-nav.js +20 -8
- package/dist/collection/components/basic/steppers/tet-business-round-stepper/tet-business-round-stepper.js +9 -9
- package/dist/collection/components/basic/steppers/tet-round-stepper/tet-round-stepper.js +4 -0
- package/dist/collection/components/basic/steppers/tet-stepper/tet-stepper.js +61 -62
- package/dist/collection/components/basic/steppers/tet-stepper-v2/tet-stepper-v2.js +27 -28
- package/dist/collection/components/basic/steppers/tet-stepper-v3/tet-stepper-v3.js +19 -20
- package/dist/collection/components/simple/filter/tet-filter/tet-filter.js +25 -10
- package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-header/tet-datepicker-header.js +20 -16
- package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-month-view/tet-datepicker-month-view.js +135 -132
- package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-multi-year-view/tet-datepicker-multi-year-view.js +20 -17
- package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-year-view/tet-datepicker-year-view.js +26 -21
- package/dist/collection/components/simple/inputs/tet-datepicker/tet-datepicker.js +34 -28
- package/dist/collection/components/simple/inputs/tet-dropdown/tet-dropdown.js +20 -8
- package/dist/collection/components/simple/inputs/tet-expandable-input/tet-expandable-input.js +99 -78
- package/dist/collection/components/simple/inputs/tet-input/tet-input.js +44 -34
- package/dist/collection/components/simple/inputs/tet-number-input/tet-number-input.js +55 -41
- package/dist/collection/components/simple/inputs/tet-range-slider/tet-range-slider.js +631 -618
- package/dist/collection/components/simple/inputs/tet-stepper-input/tet-stepper-input.js +29 -23
- package/dist/collection/components/simple/inputs/tet-textarea/tet-textarea.js +13 -13
- package/dist/collection/components/simple/lists/tet-news-card-list/tet-news-card-list.js +37 -34
- package/dist/collection/components/simple/lists/tet-selection-list/tet-selection-list.js +61 -57
- package/dist/collection/components/simple/lists/tet-text-list/tet-text-list.js +14 -2
- package/dist/collection/components/simple/menu/tet-business-navigation/tet-business-navigation.js +48 -45
- package/dist/collection/components/simple/menu/tet-menu/tet-menu.js +3 -4
- package/dist/collection/components/simple/menu/tet-menu-mobile/tet-menu-mobile.js +15 -12
- package/dist/collection/components/simple/menu/tet-navigation-mobile/tet-navigation-mobile.js +18 -14
- package/dist/collection/components/simple/structural/tet-accordion/tet-accordion.js +37 -20
- package/dist/collection/components/simple/structural/tet-expansion-panel/tet-expansion-panel.js +16 -17
- package/dist/collection/components/simple/tables-and-graphs/tet-bar-graph/tet-bar-graph.js +222 -213
- package/dist/collection/components/simple/tables-and-graphs/tet-table/tet-table.js +132 -136
- package/dist/collection/components/simple/text-blocks/tet-cloud-application-form-dialog/tet-cloud-application-form-dialog.js +27 -1
- package/dist/collection/components/simple/text-blocks/tet-dialog/tet-dialog.js +39 -31
- package/dist/collection/components/simple/text-blocks/tet-inline-message/tet-inline-message.js +6 -6
- package/dist/collection/components/simple/text-blocks/tet-notification/tet-notification.js +27 -23
- package/dist/collection/components/simple/text-blocks/tet-tooltip/tet-tooltip.js +119 -105
- package/dist/collection/components/views/tet-address-offers-view/tet-address-offers-view.js +40 -32
- package/dist/collection/components/views/tet-b2b-configurator/partials/tet-b2b-configurator-cart/tet-b2b-configurator-cart.js +99 -88
- package/dist/collection/components/views/tet-b2b-configurator/tet-b2b-configurator.js +392 -373
- package/dist/collection/components/views/tet-b2b-service-calculator/tet-b2b-service-calculator.js +25 -25
- package/dist/collection/components/views/tet-business-lines/tet-business-lines.js +21 -22
- package/dist/collection/components/views/tet-cloud-configurator/tet-cloud-configurator.js +130 -120
- package/dist/collection/components/views/tet-macd-view/tet-macd-view.js +42 -13
- package/dist/collection/components/views/tet-price-view/tet-price-view.js +4 -2
- package/dist/collection/components/views/tet-thank-you-view/tet-thank-you-view.js +52 -44
- package/dist/collection/components/views/tet-thank-you-view-v2/tet-thank-you-view-v2.js +34 -29
- package/dist/collection/components/views/tet-thank-you-view-v3/tet-thank-you-view-v3.js +34 -29
- package/dist/collection/config/bradcasting.js +1 -2
- package/dist/collection/config/endpoints.js +7 -5
- package/dist/collection/config/forms-portal.js +1 -2
- package/dist/collection/config/landing-pages.js +1 -2
- package/dist/collection/config/mytet-portal.js +1 -2
- package/dist/collection/docs/styling/colors/tet-colors.js +41 -41
- package/dist/collection/services/api/async-request.js +26 -25
- package/dist/collection/services/api/request.js +16 -11
- package/dist/collection/services/api/services/tv/tv-channel-count-parser.js +73 -74
- package/dist/collection/services/translations/translations-manager.js +46 -47
- package/dist/collection/services/translations/translations.js +1 -2
- package/dist/collection/services/translations/translations.store.js +2 -3
- package/dist/collection/services/utils/inertia-scroll.js +203 -191
- package/dist/collection/services/utils/object.js +5 -3
- package/dist/collection/services/validators/validators/e-mail.js +6 -5
- package/dist/collection/services/validators/validators/phone.js +6 -5
- package/dist/collection/services/validators/validators/required.js +2 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-35e72a2b.js → p-01f21691.js} +58 -44
- package/dist/components/{p-cec65d0a.js → p-02c55c0d.js} +121 -116
- package/dist/components/{p-7ddd71bd.js → p-08fbbbf9.js} +3 -3
- package/dist/components/{p-00c91e96.js → p-0e0dcb37.js} +2 -2
- package/dist/components/{p-639c9d1a.js → p-11a7865e.js} +80 -69
- package/dist/components/{p-ca66b4b1.js → p-12649d6e.js} +8 -6
- package/dist/components/{p-03177920.js → p-1278b6e9.js} +181 -173
- package/dist/components/{p-f18e5ae3.js → p-153245c0.js} +28 -23
- package/dist/components/{p-7b3c7bf1.js → p-243407f8.js} +4 -2
- package/dist/components/p-245f534d.js +869 -0
- package/dist/components/{p-856695a3.js → p-2630a661.js} +43 -37
- package/dist/components/{p-3fd7310f.js → p-269298f7.js} +1 -1
- package/dist/components/{p-50f207fd.js → p-27b54fb3.js} +54 -34
- package/dist/components/{p-53ca0a91.js → p-281300b4.js} +39 -23
- package/dist/components/{p-163de6e2.js → p-29df1df5.js} +23 -11
- package/dist/components/{p-42ff76b5.js → p-2c7320b5.js} +22 -18
- package/dist/components/{p-aca28e71.js → p-3444731e.js} +53 -52
- package/dist/components/{p-9a47b95f.js → p-35eefb16.js} +26 -26
- package/dist/components/{p-68f0e894.js → p-36c5e434.js} +10 -10
- package/dist/components/{p-9573f82c.js → p-392981a3.js} +41 -35
- package/dist/components/{p-965cea5b.js → p-39c66558.js} +137 -134
- package/dist/components/{p-9fe57fd0.js → p-3bb2ad44.js} +68 -65
- package/dist/components/{p-a188f09e.js → p-3e04ea5b.js} +11 -7
- package/dist/components/{p-eb54f5b9.js → p-4ae2dab9.js} +21 -18
- package/dist/components/{p-9bf262a8.js → p-52152f5b.js} +33 -27
- package/dist/components/{p-a0d406ca.js → p-549fe76f.js} +117 -72
- package/dist/components/{p-e707e73a.js → p-65770d46.js} +13 -5
- package/dist/components/{p-bb324278.js → p-68024f5b.js} +1 -1
- package/dist/components/{p-4d33055f.js → p-6bfd47c5.js} +117 -107
- package/dist/components/{p-a81e545d.js → p-6e8a8d28.js} +1 -1
- package/dist/components/{p-489ae3a0.js → p-6f4bf94f.js} +27 -26
- package/dist/components/{p-df1fe72c.js → p-754dce81.js} +47 -37
- package/dist/components/{p-5c8c2d8d.js → p-7dd65c3a.js} +1 -1
- package/dist/components/{p-6a2a81d8.js → p-85821f41.js} +104 -94
- package/dist/components/{p-817bee22.js → p-8b4a75b2.js} +12 -12
- package/dist/{esm/http-codes-7faa9f6e.js → components/p-94a1eb7a.js} +66 -59
- package/dist/components/{p-045bec85.js → p-98b10b48.js} +16 -16
- package/dist/components/{p-7790eae2.js → p-99823afc.js} +128 -126
- package/dist/components/{p-b0d6ed2e.js → p-9ee3e98b.js} +25 -24
- package/dist/components/{p-6847eb2d.js → p-a09504f7.js} +62 -63
- package/dist/components/{p-88b42c67.js → p-a15512ce.js} +63 -59
- package/dist/components/{p-6b7e73c0.js → p-bd9b1f18.js} +218 -202
- package/dist/components/{p-881093d4.js → p-bf642eca.js} +206 -194
- package/dist/components/{p-91651432.js → p-bfcce1dd.js} +1 -1
- package/dist/components/{p-21c5cfc4.js → p-c47caf67.js} +64 -53
- package/dist/components/{p-c1876db7.js → p-c7dba63e.js} +36 -21
- package/dist/components/{p-5dc5e13c.js → p-c8fc3c1f.js} +2 -2
- package/dist/components/{p-bd3402f6.js → p-c97d9f10.js} +17 -15
- package/dist/components/p-c996a768.js +169 -0
- package/dist/components/{p-37ed3ebb.js → p-c9d79ad4.js} +190 -135
- package/dist/components/{p-029ff2b3.js → p-d22e1c96.js} +24 -24
- package/dist/components/{p-0088d040.js → p-d7d60ba4.js} +16 -12
- package/dist/components/{p-00e689fb.js → p-d92a53ea.js} +1 -1
- package/dist/components/{p-e04716ac.js → p-da4e6cfb.js} +29 -30
- package/dist/components/{p-cb2daf20.js → p-dcf5c661.js} +25 -16
- package/dist/components/{p-04fe59fc.js → p-dcffa870.js} +50 -47
- package/dist/components/{p-616c71e1.js → p-e4f00545.js} +559 -532
- package/dist/components/{p-530ef38b.js → p-f44eb3d8.js} +4 -4
- package/dist/components/{p-144dffdc.js → p-f7bd56ce.js} +1 -1
- package/dist/components/{p-818742ad.js → p-f8ef72c1.js} +21 -22
- package/dist/components/tet-accordion.js +1 -1
- package/dist/components/tet-address-offers-filters-products.js +1 -1
- package/dist/components/tet-address-offers-filters.js +1 -1
- package/dist/components/tet-address-offers-view.js +65 -57
- package/dist/components/tet-address-offers.js +1 -1
- package/dist/components/tet-address-search.js +1 -1
- package/dist/components/tet-asset-addresses.js +116 -105
- package/dist/components/tet-asset-availability-addresses.js +1 -1
- package/dist/components/tet-autocomplete-dropdown.js +44 -34
- package/dist/components/tet-autocomplete.js +1 -1
- package/dist/components/tet-availability-contact-form.js +1 -1
- package/dist/components/tet-b2b-check-out-form.js +1 -1
- package/dist/components/tet-b2b-compare-card.js +1 -1
- package/dist/components/tet-b2b-configurator-cart.js +1 -1
- package/dist/components/tet-b2b-configurator.js +411 -393
- package/dist/components/tet-b2b-service-calculator.js +33 -33
- package/dist/components/tet-banner-nav.js +23 -11
- package/dist/components/tet-bar-graph.js +222 -215
- package/dist/components/tet-border-radius.js +1 -1
- package/dist/components/tet-business-card.js +38 -32
- package/dist/components/tet-business-compare-card.js +20 -13
- package/dist/components/tet-business-lines.js +26 -27
- package/dist/components/tet-business-navigation.js +1 -1
- package/dist/components/tet-business-round-stepper.js +11 -11
- package/dist/components/tet-business-summary-card.js +1 -1
- package/dist/components/tet-button.js +1 -1
- package/dist/components/tet-card-list.js +1 -1
- package/dist/components/tet-carousel.js +181 -185
- package/dist/components/tet-checkbox.js +1 -1
- package/dist/components/tet-cloud-application-form-dialog.js +35 -9
- package/dist/components/tet-cloud-configurator.js +140 -132
- package/dist/components/tet-colors.js +42 -42
- package/dist/components/tet-compare-card-v2.js +57 -55
- package/dist/components/tet-compare-card.js +1 -1
- package/dist/components/tet-compare-cards-tab.js +40 -39
- package/dist/components/tet-compare-cards.js +1 -1
- package/dist/components/tet-contact-form.js +59 -50
- package/dist/components/tet-contact-info.js +1 -1
- package/dist/components/tet-container.js +1 -1
- package/dist/components/tet-customer-assets.js +95 -90
- package/dist/components/tet-datepicker-header.js +1 -1
- package/dist/components/tet-datepicker-month-view.js +1 -1
- package/dist/components/tet-datepicker-multi-year-view.js +1 -1
- package/dist/components/tet-datepicker-year-view.js +1 -1
- package/dist/components/tet-datepicker.js +41 -36
- package/dist/components/tet-dialog.js +1 -1
- package/dist/components/tet-dropdown.js +1 -1
- package/dist/components/tet-dynamic-card.js +71 -74
- package/dist/components/tet-expandable-input.js +99 -82
- package/dist/components/tet-expansion-panel.js +17 -19
- package/dist/components/tet-filter.js +29 -14
- package/dist/components/tet-font-weight.js +1 -1
- package/dist/components/tet-fonts.js +1 -1
- package/dist/components/tet-grid.js +1 -1
- package/dist/components/tet-icon.js +1 -1
- package/dist/components/tet-inline-message.js +8 -8
- package/dist/components/tet-input.js +1 -1
- package/dist/components/tet-label.js +3 -3
- package/dist/components/tet-layout.js +1 -1
- package/dist/components/tet-link.js +1 -1
- package/dist/components/tet-loader.js +1 -1
- package/dist/components/tet-macd-view.js +55 -28
- package/dist/components/tet-menu-mobile.js +14 -15
- package/dist/components/tet-menu.js +5 -6
- package/dist/components/tet-multi-step-dialog.js +88 -74
- package/dist/components/tet-navigation-mobile.js +20 -16
- package/dist/components/tet-news-card-list.js +38 -39
- package/dist/components/tet-notification.js +1 -1
- package/dist/components/tet-number-input.js +1 -1
- package/dist/components/tet-placeholder.js +1 -1
- package/dist/components/tet-price-view.js +1 -1
- package/dist/components/tet-radio.js +1 -1
- package/dist/components/tet-range-slider.js +1 -1
- package/dist/components/tet-referral.js +32 -28
- package/dist/components/tet-round-stepper.js +3 -3
- package/dist/components/tet-selection-list.js +1 -1
- package/dist/components/tet-spacing.js +1 -1
- package/dist/components/tet-spinner.js +1 -1
- package/dist/components/tet-stepper-input.js +1 -1
- package/dist/components/tet-stepper-v2.js +1 -1
- package/dist/components/tet-stepper-v3.js +1 -1
- package/dist/components/tet-stepper.js +1 -1
- package/dist/components/tet-switch.js +1 -1
- package/dist/components/tet-tab-content.js +1 -1
- package/dist/components/tet-tab-header.js +1 -1
- package/dist/components/tet-table.js +134 -140
- package/dist/components/tet-tag-group.js +1 -1
- package/dist/components/tet-tag.js +1 -1
- package/dist/components/tet-text-list.js +1 -1
- package/dist/components/tet-textarea.js +14 -14
- package/dist/components/tet-thank-you-view-v2.js +38 -35
- package/dist/components/tet-thank-you-view-v3.js +38 -35
- package/dist/components/tet-thank-you-view.js +55 -49
- package/dist/components/tet-tooltip.js +1 -1
- package/dist/components/tet-tv-gift-block.js +15 -15
- package/dist/components/tet-tv-gift-list.js +16 -16
- package/dist/esm/{address-979a9993.js → address-1ff7cd1f.js} +1 -1
- package/dist/esm/{assets-b971f105.js → assets-79f78adb.js} +1 -1
- package/dist/esm/{async-request-6675e5f5.js → async-request-ab25480d.js} +27 -26
- package/dist/esm/compare-cards-tab-products-filters-79b7b7c6.js +98 -0
- package/dist/{components/p-6830b44d.js → esm/http-codes-eb08ff6f.js} +65 -60
- package/dist/esm/{index-1bf36cb9.js → index-8ebb7ad1.js} +1 -1
- package/dist/esm/{index-7f1e2a22.js → index-950abbb7.js} +1672 -1598
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{phone-99c2f297.js → phone-4b016684.js} +8 -6
- package/dist/esm/{product-comparison-830e2764.js → product-comparison-286ce057.js} +1 -1
- package/dist/esm/{tasks-3dfcc330.js → tasks-770dc32d.js} +2 -2
- package/dist/esm/tet-accordion_2.entry.js +62 -46
- package/dist/esm/tet-address-offers-filters-products_2.entry.js +250 -233
- package/dist/esm/tet-address-offers-view.entry.js +44 -36
- package/dist/esm/tet-address-offers_4.entry.js +344 -314
- package/dist/esm/tet-address-search.entry.js +176 -168
- package/dist/esm/tet-asset-addresses.entry.js +106 -95
- package/dist/esm/tet-autocomplete-dropdown.entry.js +40 -30
- package/dist/esm/tet-autocomplete.entry.js +204 -191
- package/dist/esm/tet-b2b-check-out-form_5.entry.js +281 -242
- package/dist/esm/tet-b2b-configurator.entry.js +397 -379
- package/dist/esm/tet-b2b-service-calculator.entry.js +29 -29
- package/dist/esm/tet-banner-nav.entry.js +24 -12
- package/dist/esm/tet-bar-graph.entry.js +222 -215
- package/dist/esm/tet-border-radius.entry.js +1 -1
- package/dist/esm/tet-business-card.entry.js +38 -32
- package/dist/esm/tet-business-compare-card.entry.js +18 -11
- package/dist/esm/tet-business-lines.entry.js +26 -27
- package/dist/esm/tet-business-round-stepper.entry.js +10 -10
- package/dist/esm/tet-button.entry.js +9 -9
- package/dist/esm/tet-card-list.entry.js +557 -530
- package/dist/esm/tet-carousel.entry.js +181 -185
- package/dist/esm/tet-checkbox.entry.js +15 -11
- package/dist/esm/tet-cloud-application-form-dialog.entry.js +31 -5
- package/dist/esm/tet-cloud-configurator.entry.js +133 -125
- package/dist/esm/tet-colors.entry.js +42 -42
- package/dist/esm/tet-compare-card-v2.entry.js +51 -49
- package/dist/esm/tet-compare-cards-tab.entry.js +29 -28
- package/dist/esm/tet-compare-cards_2.entry.js +41 -34
- package/dist/esm/tet-components.js +4 -4
- package/dist/esm/tet-contact-form.entry.js +56 -47
- package/dist/esm/tet-contact-info.entry.js +1 -1
- package/dist/esm/tet-container_2.entry.js +63 -59
- package/dist/esm/tet-customer-assets.entry.js +90 -85
- package/dist/esm/tet-datepicker-header_4.entry.js +203 -188
- package/dist/esm/tet-datepicker.entry.js +36 -31
- package/dist/esm/tet-dialog.entry.js +42 -36
- package/dist/esm/tet-dropdown_2.entry.js +137 -115
- package/dist/esm/tet-dynamic-card.entry.js +68 -71
- package/dist/esm/tet-expandable-input.entry.js +97 -80
- package/dist/esm/tet-expansion-panel.entry.js +17 -19
- package/dist/esm/tet-filter.entry.js +26 -11
- package/dist/esm/tet-font-weight.entry.js +1 -1
- package/dist/esm/tet-fonts.entry.js +1 -1
- package/dist/esm/tet-grid.entry.js +1 -1
- package/dist/esm/tet-icon.entry.js +25 -24
- package/dist/esm/tet-inline-message.entry.js +7 -7
- package/dist/esm/tet-input.entry.js +48 -38
- package/dist/esm/tet-label.entry.js +4 -4
- package/dist/esm/tet-layout.entry.js +1 -1
- package/dist/esm/tet-link.entry.js +1 -1
- package/dist/esm/tet-loader.entry.js +1 -1
- package/dist/esm/tet-macd-view.entry.js +51 -24
- package/dist/esm/tet-menu-mobile.entry.js +13 -14
- package/dist/esm/tet-menu.entry.js +4 -5
- package/dist/esm/tet-multi-step-dialog.entry.js +87 -73
- package/dist/esm/tet-navigation-mobile.entry.js +19 -15
- package/dist/esm/tet-news-card-list.entry.js +35 -36
- package/dist/esm/tet-number-input.entry.js +56 -42
- package/dist/esm/tet-placeholder.entry.js +1 -1
- package/dist/esm/tet-price-view.entry.js +4 -4
- package/dist/esm/tet-radio.entry.js +11 -7
- package/dist/esm/tet-range-slider.entry.js +632 -620
- package/dist/esm/tet-referral.entry.js +31 -27
- package/dist/esm/tet-round-stepper.entry.js +2 -2
- package/dist/esm/tet-spacing.entry.js +1 -1
- package/dist/esm/tet-spinner.entry.js +16 -16
- package/dist/esm/tet-stepper-input.entry.js +33 -27
- package/dist/esm/tet-stepper-v2.entry.js +28 -29
- package/dist/esm/tet-stepper-v3.entry.js +20 -21
- package/dist/esm/tet-stepper.entry.js +62 -63
- package/dist/esm/tet-switch.entry.js +4 -2
- package/dist/esm/tet-tab-header.entry.js +68 -65
- package/dist/esm/tet-table.entry.js +132 -138
- package/dist/esm/tet-tag_2.entry.js +12 -12
- package/dist/esm/tet-text-list.entry.js +12 -4
- package/dist/esm/tet-textarea.entry.js +14 -14
- package/dist/esm/tet-thank-you-view-v2.entry.js +37 -34
- package/dist/esm/tet-thank-you-view-v3.entry.js +37 -34
- package/dist/esm/tet-thank-you-view.entry.js +52 -46
- package/dist/esm/tet-tv-gift-block.entry.js +15 -15
- package/dist/esm/tet-tv-gift-list.entry.js +15 -15
- package/dist/esm/{theme-wrapper-6e6b2089.js → theme-wrapper-f83deed6.js} +2 -2
- package/dist/esm/{translations-eff34607.js → translations-baabae60.js} +53 -52
- package/dist/esm/{typecheck-31fd6c02.js → typecheck-4abf0258.js} +1 -1
- package/dist/esm/{utils-f8f08058.js → utils-c110a4b1.js} +23 -8
- package/dist/tet-components/{p-c7dbb16f.entry.js → p-0847a214.entry.js} +1 -1
- package/dist/tet-components/p-086f464e.entry.js +1 -0
- package/dist/tet-components/{p-eed2b508.entry.js → p-0ecbcf94.entry.js} +1 -1
- package/dist/tet-components/p-1215e5c0.entry.js +1 -0
- package/dist/tet-components/p-12649d6e.js +1 -0
- package/dist/tet-components/p-15cd7158.entry.js +1 -0
- package/dist/tet-components/p-203651e5.entry.js +1 -0
- package/dist/tet-components/p-20a93866.entry.js +1 -0
- package/dist/tet-components/p-25c9957d.js +1 -0
- package/dist/tet-components/p-29268caf.entry.js +1 -0
- package/dist/tet-components/{p-8f545d45.entry.js → p-29b1a959.entry.js} +1 -1
- package/dist/tet-components/p-2a0bbc16.js +1 -0
- package/dist/tet-components/p-2a346803.entry.js +1 -0
- package/dist/tet-components/p-300dcb5e.entry.js +1 -0
- package/dist/tet-components/{p-1a89919e.entry.js → p-30677f37.entry.js} +1 -1
- package/dist/tet-components/p-30f27049.entry.js +1 -0
- package/dist/tet-components/p-316f0d93.entry.js +1 -0
- package/dist/tet-components/{p-66dd0ede.entry.js → p-39153b16.entry.js} +1 -1
- package/dist/tet-components/p-3b5c1dfc.entry.js +1 -0
- package/dist/tet-components/p-3f630a8d.entry.js +1 -0
- package/dist/tet-components/p-446f550d.entry.js +1 -0
- package/dist/tet-components/{p-a07cada6.entry.js → p-44827a7f.entry.js} +1 -1
- package/dist/tet-components/p-47f100fa.entry.js +1 -0
- package/dist/tet-components/{p-9b027102.entry.js → p-4b4626ec.entry.js} +1 -1
- package/dist/tet-components/p-4e4095c1.js +1 -0
- package/dist/tet-components/{p-46e5b573.entry.js → p-50479341.entry.js} +1 -1
- package/dist/tet-components/p-536dd157.entry.js +1 -0
- package/dist/tet-components/{p-ecff869b.entry.js → p-56b8b4ec.entry.js} +1 -1
- package/dist/tet-components/p-56d32115.entry.js +1 -0
- package/dist/tet-components/p-5d2f0c13.entry.js +1 -0
- package/dist/tet-components/p-618e8591.entry.js +1 -0
- package/dist/tet-components/p-63a909de.entry.js +1 -0
- package/dist/tet-components/p-63b83c11.entry.js +1 -0
- package/dist/tet-components/p-641f4ab5.entry.js +1 -0
- package/dist/tet-components/p-6d468c83.entry.js +1 -0
- package/dist/tet-components/{p-e263ecdf.js → p-6d681c43.js} +1 -1
- package/dist/tet-components/p-72082f3b.entry.js +1 -0
- package/dist/tet-components/{p-7a04bcd7.entry.js → p-739d3344.entry.js} +1 -1
- package/dist/tet-components/p-77d8a2a5.entry.js +1 -0
- package/dist/tet-components/p-77dea317.entry.js +1 -0
- package/dist/tet-components/p-78eb86ff.entry.js +1 -0
- package/dist/tet-components/p-7b91c3d4.entry.js +1 -0
- package/dist/tet-components/{p-f9a1fbb2.entry.js → p-7f520852.entry.js} +1 -1
- package/dist/tet-components/p-8254455b.entry.js +1 -0
- package/dist/tet-components/p-87be3264.entry.js +1 -0
- package/dist/tet-components/{p-918e4e84.entry.js → p-87f36453.entry.js} +1 -1
- package/dist/tet-components/p-88c9ef00.entry.js +1 -0
- package/dist/tet-components/{p-de142575.js → p-88f7bb98.js} +1 -1
- package/dist/tet-components/p-89ae73f2.entry.js +1 -0
- package/dist/tet-components/p-8aecb130.entry.js +1 -0
- package/dist/tet-components/{p-77372984.js → p-90205e46.js} +1 -1
- package/dist/tet-components/p-9081ba98.entry.js +1 -0
- package/dist/tet-components/{p-b680d126.entry.js → p-90ef663e.entry.js} +1 -1
- package/dist/tet-components/p-93e2d958.entry.js +1 -0
- package/dist/tet-components/p-9464cc18.entry.js +1 -0
- package/dist/tet-components/{p-bb9f1a6f.entry.js → p-988b6712.entry.js} +1 -1
- package/dist/tet-components/p-98f93bec.entry.js +1 -0
- package/dist/tet-components/p-9a2b6ee2.js +1 -0
- package/dist/tet-components/{p-8c964cca.js → p-9af9c5e3.js} +2 -2
- package/dist/tet-components/p-9c188d1b.entry.js +1 -0
- package/dist/tet-components/p-a263681d.entry.js +1 -0
- package/dist/tet-components/{p-8b405467.entry.js → p-a43badd1.entry.js} +1 -1
- package/dist/tet-components/{p-775aa778.entry.js → p-a77b7388.entry.js} +1 -1
- package/dist/tet-components/p-ad14115e.entry.js +1 -0
- package/dist/tet-components/{p-36d2a380.entry.js → p-af82e64e.entry.js} +1 -1
- package/dist/tet-components/p-b47e0d55.entry.js +1 -0
- package/dist/tet-components/p-b4b92f9b.js +2 -0
- package/dist/tet-components/p-b9359fea.entry.js +1 -0
- package/dist/tet-components/p-ba494985.entry.js +1 -0
- package/dist/tet-components/p-bda2a644.entry.js +1 -0
- package/dist/tet-components/{p-bc16c07b.js → p-c2a00b6a.js} +1 -1
- package/dist/tet-components/p-c3d9064d.entry.js +1 -0
- package/dist/tet-components/{p-a9ed4e2b.entry.js → p-c61ef9e0.entry.js} +1 -1
- package/dist/tet-components/p-c6818401.entry.js +1 -0
- package/dist/tet-components/{p-ed67bd52.entry.js → p-c7830c8a.entry.js} +1 -1
- package/dist/tet-components/p-c7e4365a.entry.js +1 -0
- package/dist/tet-components/{p-9f1a810e.entry.js → p-c88cdf25.entry.js} +1 -1
- package/dist/tet-components/p-c9cdf98c.js +1 -0
- package/dist/tet-components/p-cba8d001.js +1 -0
- package/dist/tet-components/p-ce271068.entry.js +1 -0
- package/dist/tet-components/p-d55c2f9e.entry.js +1 -0
- package/dist/tet-components/p-db090557.entry.js +1 -0
- package/dist/tet-components/p-df542648.entry.js +1 -0
- package/dist/tet-components/p-e11eb73d.entry.js +1 -0
- package/dist/tet-components/{p-49122f6a.entry.js → p-e6fea049.entry.js} +1 -1
- package/dist/tet-components/p-e87226cb.entry.js +1 -0
- package/dist/tet-components/{p-b2b384d2.js → p-ec1c990e.js} +1 -1
- package/dist/tet-components/p-ec892e18.entry.js +1 -0
- package/dist/tet-components/p-ede893e6.entry.js +1 -0
- package/dist/tet-components/p-eefc4f3d.entry.js +1 -0
- package/dist/tet-components/{p-44d068ac.entry.js → p-efa6f09b.entry.js} +1 -1
- package/dist/tet-components/p-f6f98ea9.entry.js +1 -0
- package/dist/tet-components/{p-5c86ad42.entry.js → p-fca864a8.entry.js} +1 -1
- package/dist/tet-components/{p-f023f124.entry.js → p-ffd1a0d9.entry.js} +1 -1
- package/dist/tet-components/tet-components.esm.js +1 -1
- package/dist/types/components/advanced/address/tet-autocomplete/tet-autocomplete.d.ts +3 -2
- package/dist/types/components.d.ts +0 -8
- package/dist/types/stencil-public-runtime.d.ts +3 -10
- package/loader/cdn.js +1 -3
- package/loader/index.cjs.js +1 -3
- package/loader/index.d.ts +3 -0
- package/loader/index.es2017.js +1 -3
- package/loader/index.js +1 -3
- package/package.json +6 -12
- package/dist/cjs/compare-cards-tab-products-filters-58410792.js +0 -99
- package/dist/collection/components/advanced/address/tet-address-offers-filters/address-offers-filters.spec.js +0 -105
- package/dist/collection/components/advanced/address/tet-address-offers-filters/test/tet-address-offers-filters.spec.js +0 -23
- package/dist/collection/components/advanced/address/tet-address-offers-filters-products/test/tet-address-offers-filters-products.spec.js +0 -23
- package/dist/collection/components/advanced/address/tet-autocomplete/test/tet-autocomplete.spec.js +0 -110
- package/dist/collection/components/advanced/cards/tet-b2b-compare-card/test/tet-b2b-compare-card.spec.js +0 -86
- package/dist/collection/components/advanced/cards/tet-card-list/test/tet-card-list.spec.js +0 -69
- package/dist/collection/components/advanced/cards/tet-compare-card/test/tet-compare-card.spec.js +0 -292
- package/dist/collection/components/advanced/cards/tet-compare-card-v2/test/tet-compare-card-v2.spec.js +0 -40
- package/dist/collection/components/advanced/cards/tet-compare-cards/test/tet-compare-cards.spec.js +0 -65
- package/dist/collection/components/advanced/cards/tet-compare-cards-tab/test/tet-compare-cards-tab.spec.js +0 -399
- package/dist/collection/components/advanced/customer/tet-asset-addresses/test/tet-asset-addresses.spec.js +0 -30
- package/dist/collection/components/advanced/customer/tet-asset-availability-addresses/test/tet-asset-availability-addresses.spec.js +0 -30
- package/dist/collection/components/advanced/customer/tet-referral/test/tet-referral.spec.js +0 -85
- package/dist/collection/components/advanced/dialog/tet-multi-step-dialog/test/tet-multi-step-dialog.spec.js +0 -53
- package/dist/collection/components/advanced/forms/tet-availability-contact-form/test/tet-availability-contact-form.spec.js +0 -35
- package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-block/test/tet-tv-gift-block.spec.js +0 -61
- package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-list/test/tet-tv-gift-list.spec.js +0 -55
- package/dist/collection/components/basic/buttons/tet-button/test/tet-button.spec.js +0 -131
- package/dist/collection/components/basic/buttons/tet-checkbox/test/tet-checkbox.spec.js +0 -28
- package/dist/collection/components/basic/buttons/tet-radio/test/tet-radio.spec.js +0 -26
- package/dist/collection/components/basic/buttons/tet-switch/test/tet-switch.spec.js +0 -27
- package/dist/collection/components/basic/buttons/tet-tabs/test/tet-tab-content.spec.js +0 -35
- package/dist/collection/components/basic/buttons/tet-tabs/test/tet-tab-header.spec.js +0 -42
- package/dist/collection/components/basic/buttons/tet-tag/test/tet-tag.spec.js +0 -76
- package/dist/collection/components/basic/buttons/tet-tag-group/test/tet-tag-group.spec.js +0 -92
- package/dist/collection/components/basic/carousel/tet-carousel/test/tet-carousel.spec.js +0 -63
- package/dist/collection/components/basic/container/tet-container/test/tet-container.spec.js +0 -50
- package/dist/collection/components/basic/loaders/tet-loader/test/tet-loader.spec.js +0 -19
- package/dist/collection/components/basic/loaders/tet-placeholder/test/tet-placeholder.spec.js +0 -19
- package/dist/collection/components/basic/loaders/tet-spinner/test/tet-spinner.spec.js +0 -52
- package/dist/collection/components/basic/steppers/tet-business-round-stepper/test/tet-business-round-stepper.spec.js +0 -82
- package/dist/collection/components/basic/steppers/tet-round-stepper/test/tet-round-stepper.spec.js +0 -78
- package/dist/collection/components/basic/steppers/tet-stepper/test/tet-stepper.spec.js +0 -110
- package/dist/collection/components/basic/steppers/tet-stepper-v2/test/tet-stepper-v2.spec.js +0 -136
- package/dist/collection/components/basic/steppers/tet-stepper-v3/test/tet-stepper-v3.spec.js +0 -135
- package/dist/collection/components/simple/inputs/tet-dropdown/test/tet-dropdown.spec.js +0 -122
- package/dist/collection/components/simple/inputs/tet-input/test/tet-input.spec.js +0 -110
- package/dist/collection/components/simple/inputs/tet-range-slider/test/tet-range-slider.spec.js +0 -145
- package/dist/collection/components/simple/lists/tet-news-card-list/test/tet-news-card-list.spec.js +0 -111
- package/dist/collection/components/simple/lists/tet-selection-list/test/tet-selection-list.spec.js +0 -64
- package/dist/collection/components/simple/lists/tet-text-list/test/tet-text-list.spec.js +0 -171
- package/dist/collection/components/simple/menu/tet-menu/test/tet-menu.spec.js +0 -231
- package/dist/collection/components/simple/menu/tet-menu-mobile/test/tet-menu-mobile.spec.js +0 -87
- package/dist/collection/components/simple/menu/tet-navigation-mobile/test/tet-navigation-mobile.spec.js +0 -81
- package/dist/collection/components/simple/structural/tet-accordion/test/tet-accordion.spec.js +0 -108
- package/dist/collection/components/simple/structural/tet-expansion-panel/test/tet-expansion-panel.spec.js +0 -42
- package/dist/collection/components/simple/tables-and-graphs/tet-bar-graph/test/tet-bar-graph.spec.js +0 -85
- package/dist/collection/components/simple/tables-and-graphs/tet-table/test/tet-table.spec.js +0 -360
- package/dist/collection/components/simple/text-blocks/tet-dialog/test/tet-dialog.spec.js +0 -84
- package/dist/collection/components/simple/text-blocks/tet-inline-message/test/tet-inline-message.spec.js +0 -22
- package/dist/collection/components/simple/text-blocks/tet-notification/test/tet-notification.spec.js +0 -88
- package/dist/collection/components/simple/text-blocks/tet-tooltip/test/tet-tooltip.spec.js +0 -79
- package/dist/collection/components/views/tet-b2b-configurator/partials/tet-b2b-configurator-cart/test/tet-b2b-configurator-cart.spec.js +0 -50
- package/dist/collection/components/views/tet-b2b-configurator/test/tet-b2b-configurator.spec.js +0 -136
- package/dist/collection/components/views/tet-business-lines/test/tet-business-lines.spec.js +0 -23
- package/dist/collection/components/views/tet-contact-info/test/tet-contact-info.spec.js +0 -44
- package/dist/collection/components/views/tet-macd-view/test/tet-macd-view.spec.js +0 -498
- package/dist/collection/components/views/tet-price-view/test/tet-price-view.spec.js +0 -98
- package/dist/collection/components/views/tet-thank-you-view/test/tet-thank-you-view.spec.js +0 -275
- package/dist/collection/components/views/tet-thank-you-view-v2/test/tet-thank-you-view-v2.spec.js +0 -175
- package/dist/collection/components/views/tet-thank-you-view-v3/test/tet-thank-you-view-v3.spec.js +0 -175
- package/dist/collection/services/api/async-request.spec.js +0 -37
- package/dist/collection/services/api/request.spec.js +0 -32
- package/dist/collection/services/api/services/address.spec.js +0 -39
- package/dist/collection/services/api/services/catalog/product-comparison.spec.js +0 -22
- package/dist/collection/services/api/services/components/component-data.spec.js +0 -20
- package/dist/collection/services/api/services/customer/assets.spec.js +0 -25
- package/dist/collection/services/api/services/customer/query.spec.js +0 -25
- package/dist/collection/services/api/services/macd/macd.spec.js +0 -91
- package/dist/collection/services/api/services/operations/operations.spec.js +0 -19
- package/dist/collection/services/api/services/tasks.spec.js +0 -25
- package/dist/collection/services/api/services/translations.spec.js +0 -20
- package/dist/collection/services/products/product-codes.spec.js +0 -11
- package/dist/collection/services/translations/translations.spec.js +0 -30
- package/dist/collection/services/url/build-url-params.spec.js +0 -11
- package/dist/collection/services/url/url.spec.js +0 -16
- package/dist/collection/services/utils/array.spec.js +0 -10
- package/dist/collection/services/utils/debounce.spec.js +0 -19
- package/dist/collection/services/utils/execute-until.spec.js +0 -10
- package/dist/collection/services/utils/inertia-scroll.spec.js +0 -56
- package/dist/collection/services/utils/isFocusableElementOrChild.spec.js +0 -67
- package/dist/collection/services/utils/object.spec.js +0 -84
- package/dist/collection/services/utils/price.spec.js +0 -18
- package/dist/collection/services/utils/random.spec.js +0 -10
- package/dist/collection/services/utils/reactive.spec.js +0 -15
- package/dist/collection/services/utils/size.spec.js +0 -13
- package/dist/collection/services/utils/string.spec.js +0 -9
- package/dist/collection/services/utils/throttle.spec.js +0 -32
- package/dist/collection/services/utils/typecheck.spec.js +0 -49
- package/dist/collection/services/validators/validator-group.spec.js +0 -30
- package/dist/collection/services/validators/validators/e-mail.spec.js +0 -20
- package/dist/collection/services/validators/validators/phone.spec.js +0 -23
- package/dist/collection/services/validators/validators/required.spec.js +0 -16
- package/dist/components/p-8e19c5da.js +0 -857
- package/dist/components/p-e34bf267.js +0 -170
- package/dist/esm/compare-cards-tab-products-filters-f0fa0712.js +0 -97
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/tet-components/p-021268b7.entry.js +0 -1
- package/dist/tet-components/p-02e548d5.entry.js +0 -1
- package/dist/tet-components/p-06bf08a4.entry.js +0 -1
- package/dist/tet-components/p-0738afc0.entry.js +0 -1
- package/dist/tet-components/p-1b797a96.entry.js +0 -1
- package/dist/tet-components/p-1be23b32.entry.js +0 -1
- package/dist/tet-components/p-1e840eca.entry.js +0 -1
- package/dist/tet-components/p-1ec7f341.js +0 -2
- package/dist/tet-components/p-2e870f4d.entry.js +0 -1
- package/dist/tet-components/p-2f029068.entry.js +0 -1
- package/dist/tet-components/p-34ed0dd7.entry.js +0 -1
- package/dist/tet-components/p-3604bf21.entry.js +0 -1
- package/dist/tet-components/p-3d2dc872.entry.js +0 -1
- package/dist/tet-components/p-48bd3f87.entry.js +0 -1
- package/dist/tet-components/p-4e3c6172.entry.js +0 -1
- package/dist/tet-components/p-4e917b52.entry.js +0 -1
- package/dist/tet-components/p-511680d5.entry.js +0 -1
- package/dist/tet-components/p-5d920c98.entry.js +0 -1
- package/dist/tet-components/p-618134c3.entry.js +0 -1
- package/dist/tet-components/p-695cdc78.entry.js +0 -1
- package/dist/tet-components/p-6a5eca28.js +0 -1
- package/dist/tet-components/p-71cbde0c.entry.js +0 -1
- package/dist/tet-components/p-7751035d.entry.js +0 -1
- package/dist/tet-components/p-78014763.entry.js +0 -1
- package/dist/tet-components/p-78a0c398.entry.js +0 -1
- package/dist/tet-components/p-79255c00.entry.js +0 -1
- package/dist/tet-components/p-805c9ef3.entry.js +0 -1
- package/dist/tet-components/p-88885ba1.entry.js +0 -1
- package/dist/tet-components/p-8a6831bc.entry.js +0 -1
- package/dist/tet-components/p-8c7c6590.entry.js +0 -1
- package/dist/tet-components/p-8c89d1f5.entry.js +0 -1
- package/dist/tet-components/p-8d644f8b.entry.js +0 -1
- package/dist/tet-components/p-9102c6d9.entry.js +0 -1
- package/dist/tet-components/p-977ea27a.entry.js +0 -1
- package/dist/tet-components/p-9a5b8dbc.entry.js +0 -1
- package/dist/tet-components/p-a15d2b6a.entry.js +0 -1
- package/dist/tet-components/p-a549f1dd.entry.js +0 -1
- package/dist/tet-components/p-a8030923.entry.js +0 -1
- package/dist/tet-components/p-aff1e911.entry.js +0 -1
- package/dist/tet-components/p-b0112dde.entry.js +0 -1
- package/dist/tet-components/p-b14b8531.entry.js +0 -1
- package/dist/tet-components/p-bc2e65ab.entry.js +0 -1
- package/dist/tet-components/p-bfa02c13.entry.js +0 -1
- package/dist/tet-components/p-c4a95bbe.entry.js +0 -1
- package/dist/tet-components/p-c4ed060b.entry.js +0 -1
- package/dist/tet-components/p-ca66b4b1.js +0 -1
- package/dist/tet-components/p-cf7d5c84.js +0 -1
- package/dist/tet-components/p-d0d6a340.js +0 -1
- package/dist/tet-components/p-d2919aae.js +0 -1
- package/dist/tet-components/p-d795f9c3.entry.js +0 -1
- package/dist/tet-components/p-dc12dee9.entry.js +0 -1
- package/dist/tet-components/p-dcbe09b5.js +0 -1
- package/dist/tet-components/p-de040767.entry.js +0 -1
- package/dist/tet-components/p-de4c32ee.entry.js +0 -1
- package/dist/tet-components/p-e423fe76.entry.js +0 -1
- package/dist/tet-components/p-e69056de.entry.js +0 -1
- package/dist/tet-components/p-e86164ef.entry.js +0 -1
- package/dist/tet-components/p-eb66d7b2.js +0 -1
- package/dist/tet-components/p-ecbfde88.entry.js +0 -1
- package/dist/tet-components/p-ed4b8bbe.entry.js +0 -1
- package/dist/tet-components/p-eed7244f.entry.js +0 -1
- package/dist/tet-components/p-f48500fd.entry.js +0 -1
- package/dist/tet-components/p-fab4ab39.entry.js +0 -1
- package/dist/tet-components/p-fd4131ad.entry.js +0 -1
|
@@ -8,340 +8,6 @@ import { getConvertedPixels, InertiaScroll } from "../../../../services/utils/in
|
|
|
8
8
|
*/
|
|
9
9
|
export class TetCardList {
|
|
10
10
|
constructor() {
|
|
11
|
-
/**
|
|
12
|
-
* The arrays containing cloned content elements.
|
|
13
|
-
*/
|
|
14
|
-
this.virtualScrollPrependClones = [];
|
|
15
|
-
this.virtualScrollAppendClones = [];
|
|
16
|
-
/**
|
|
17
|
-
* Stores the content scroll and pointer positions for use with pointer events.
|
|
18
|
-
*/
|
|
19
|
-
this.scrollDetails = null;
|
|
20
|
-
/**
|
|
21
|
-
* Stores the `element` left and width values to limit html reflows.
|
|
22
|
-
*/
|
|
23
|
-
this.dimensions = { element: { left: 0, width: 0 } };
|
|
24
|
-
/**
|
|
25
|
-
* The css gap value set between elements.
|
|
26
|
-
*/
|
|
27
|
-
this.elementGap = 16;
|
|
28
|
-
/**
|
|
29
|
-
* Determines if the content is currently being scrolled.
|
|
30
|
-
*/
|
|
31
|
-
this.isScrolling = false;
|
|
32
|
-
/**
|
|
33
|
-
* Scrolls the element to the horizontal center of the viewport.
|
|
34
|
-
* @param querySelector The query selector of the element that will be scrolled to the center of view.
|
|
35
|
-
* @param isSmooth determines whether the scroll should be animated.
|
|
36
|
-
* @param isQuiet determines wheter scroll events should be triggered.
|
|
37
|
-
*/
|
|
38
|
-
this.scrollToElementCenter = async (querySelector, isSmooth = true, isQuiet = false) => {
|
|
39
|
-
let childNodes = Array.from(this.element.children);
|
|
40
|
-
if (this.withVirtualScroll) {
|
|
41
|
-
childNodes = Array.from(this.element.querySelectorAll('[data-id]'));
|
|
42
|
-
}
|
|
43
|
-
const elementToCenter = childNodes.find(childNode => childNode.matches(querySelector));
|
|
44
|
-
if (elementToCenter === null || elementToCenter === undefined) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
await this.inertialScroll.scrollToElement(elementToCenter, isSmooth, isQuiet);
|
|
48
|
-
if (this.withOverflowOpacity) {
|
|
49
|
-
this.updateChildElementOverflowOpacity();
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Calculates the width of the scroll thumb in percentage relative to the content. Sets up the
|
|
54
|
-
* width parameters of the scroll thumb.
|
|
55
|
-
*/
|
|
56
|
-
this.setupScrollbar = () => {
|
|
57
|
-
const { currentScroll } = this.inertialScroll;
|
|
58
|
-
this.scrollThumbWidth =
|
|
59
|
-
(this.scrollContainerRef.clientWidth / (currentScroll.scrollWidth + this.scrollContainerRef.clientWidth)) * 100;
|
|
60
|
-
if (this.scrollbarRef === undefined) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
this.scrollbarRef.style.width = `${this.scrollThumbWidth}%`;
|
|
64
|
-
this.scrollbarRef.style.left = `${this.currentScrollbarScroll}%`;
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Prevents the event if scrolling is disabled.
|
|
68
|
-
* @param event Event
|
|
69
|
-
*/
|
|
70
|
-
this.handleDisableScroll = (event) => {
|
|
71
|
-
if (!this.disableScroll) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
event.preventDefault();
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* The scroll event handler. Updates the card item classes as they are scrolled out of view.
|
|
78
|
-
* Updates the control element classes as the content scroll reaches either end of the scroll.
|
|
79
|
-
* Updates the position of the visual scrollbar thumb element.
|
|
80
|
-
*/
|
|
81
|
-
this.handleScroll = () => {
|
|
82
|
-
this.cardScroll.emit({
|
|
83
|
-
totalAvailableScrollWidth: this.scrollDetails.scrollWidth,
|
|
84
|
-
currentScroll: this.scrollDetails.scrollLeft,
|
|
85
|
-
});
|
|
86
|
-
const elementChildren = Array.from(this.element.children);
|
|
87
|
-
if (this.withActiveElement) {
|
|
88
|
-
const activeClone = elementChildren.find(element => element.attributes['data-clone-id'] && element.classList.contains(this.activeElementClass));
|
|
89
|
-
if (activeClone !== undefined) {
|
|
90
|
-
activeClone.classList.remove(this.activeElementClass);
|
|
91
|
-
const cloneOffset = activeClone.getBoundingClientRect().left;
|
|
92
|
-
const activeOriginal = elementChildren.find(element => element.classList.contains(this.activeElementClass));
|
|
93
|
-
if (activeOriginal !== undefined) {
|
|
94
|
-
const originalOffset = activeOriginal.getBoundingClientRect().left;
|
|
95
|
-
const scrollDelta = cloneOffset - originalOffset;
|
|
96
|
-
this.inertialScroll.scrollTo({ left: this.scrollDetails.scrollLeft - scrollDelta }, true);
|
|
97
|
-
this.updateChildElementOverflowOpacity();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
this.setActiveCenteredElement();
|
|
101
|
-
}
|
|
102
|
-
if (this.withVirtualScroll) {
|
|
103
|
-
this.moveElements();
|
|
104
|
-
this.updateChildElementOverflowOpacity();
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
/**
|
|
108
|
-
* Handles toggling of the `activeElementClass` on elements during pointer drag events.
|
|
109
|
-
*/
|
|
110
|
-
this.setActiveCenteredElement = () => {
|
|
111
|
-
let isScrollRight = this.scrollDetails.scrollSpeed > 0;
|
|
112
|
-
let isScrollLeft = this.scrollDetails.scrollSpeed < 0;
|
|
113
|
-
const elementChildren = Array.from(this.element.children);
|
|
114
|
-
const elementPositions = elementChildren.map(child => child.getBoundingClientRect());
|
|
115
|
-
const elementRect = this.element.getBoundingClientRect();
|
|
116
|
-
/** Determine the center point of the bounding element */
|
|
117
|
-
const centerPoint = elementRect.width / 2 + elementRect.left;
|
|
118
|
-
/** Determine the index of the child card overlapping with the `centerPoint` */
|
|
119
|
-
let centeredElementIndex = elementPositions.findIndex(element => element.left <= centerPoint && element.left + element.width >= centerPoint);
|
|
120
|
-
/** Set index to the first element in case list is scrolled to the start */
|
|
121
|
-
if (centeredElementIndex === 1 && isScrollLeft && this.scrollDetails.scrollLeft === 0) {
|
|
122
|
-
centeredElementIndex = 0;
|
|
123
|
-
}
|
|
124
|
-
/** Set index to the last element in case list is scrolled to the end */
|
|
125
|
-
if (centeredElementIndex === elementPositions.length - 2 &&
|
|
126
|
-
isScrollRight &&
|
|
127
|
-
this.scrollDetails.scrollLeft + this.scrollContainerRef.getBoundingClientRect().width >=
|
|
128
|
-
this.scrollDetails.scrollWidth) {
|
|
129
|
-
centeredElementIndex = elementPositions.length - 1;
|
|
130
|
-
}
|
|
131
|
-
/** Calculate the index of the next element in case `centerPoint` is in between two elements */
|
|
132
|
-
if (centeredElementIndex === -1) {
|
|
133
|
-
if (isScrollRight) {
|
|
134
|
-
centeredElementIndex = elementPositions.findIndex(element => element.left - this.elementGap <= centerPoint && element.left + element.width >= centerPoint);
|
|
135
|
-
}
|
|
136
|
-
if (isScrollLeft) {
|
|
137
|
-
centeredElementIndex = elementPositions.findIndex(element => element.left <= centerPoint && element.left + element.width + this.elementGap >= centerPoint);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
const currentActiveElements = elementChildren.filter(element => element.classList.contains(this.activeElementClass));
|
|
141
|
-
currentActiveElements.forEach(element => element.classList.remove(this.activeElementClass));
|
|
142
|
-
const nextElement = elementChildren[centeredElementIndex];
|
|
143
|
-
if (this.withVirtualScroll && (nextElement === null || nextElement === void 0 ? void 0 : nextElement.hasAttribute('data-clone-id'))) {
|
|
144
|
-
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'); });
|
|
145
|
-
nextOriginalElement.classList.add(this.activeElementClass);
|
|
146
|
-
}
|
|
147
|
-
if (nextElement !== undefined) {
|
|
148
|
-
nextElement.classList.add(this.activeElementClass);
|
|
149
|
-
}
|
|
150
|
-
this.updateControlVisibility();
|
|
151
|
-
};
|
|
152
|
-
/**
|
|
153
|
-
* Shifts the elements and scroll position.
|
|
154
|
-
* Gets the first and the last of the original elements and shifts both the original
|
|
155
|
-
* and the cloned elements depending on the scroll direction.
|
|
156
|
-
* Updates the currently set scroll values to hide the shift of the elements.
|
|
157
|
-
*/
|
|
158
|
-
this.moveElements = () => {
|
|
159
|
-
var _a, _b;
|
|
160
|
-
if (!this.withVirtualScroll) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
const { width, left } = this.dimensions.element;
|
|
164
|
-
const firstOriginalElement = this.getFirstOriginal();
|
|
165
|
-
const lastOriginalElement = this.getLastOriginal();
|
|
166
|
-
const firstOriginalRect = firstOriginalElement.getBoundingClientRect();
|
|
167
|
-
const lastOriginalRect = lastOriginalElement.getBoundingClientRect();
|
|
168
|
-
const lastOriginalRight = lastOriginalRect.right - left;
|
|
169
|
-
const isLastOriginalInViewport = lastOriginalRight < width;
|
|
170
|
-
if (isLastOriginalInViewport && ((_a = this.scrollDetails) === null || _a === void 0 ? void 0 : _a.scrollSpeed) < 0) {
|
|
171
|
-
const movedElementDataId = parseInt(firstOriginalElement.getAttribute('data-id'), 10);
|
|
172
|
-
const positionDelta = firstOriginalRect.width + this.elementGap;
|
|
173
|
-
const secondOriginalElement = firstOriginalElement.nextElementSibling;
|
|
174
|
-
this.inertialScroll.scrollBy({ left: -positionDelta }, true);
|
|
175
|
-
lastOriginalElement.insertAdjacentElement('afterend', firstOriginalElement);
|
|
176
|
-
secondOriginalElement.insertAdjacentElement('beforebegin', this.virtualScrollPrependClones[movedElementDataId]);
|
|
177
|
-
this.element.insertAdjacentElement('beforeend', this.virtualScrollAppendClones[movedElementDataId]);
|
|
178
|
-
}
|
|
179
|
-
const firstOriginalLeft = firstOriginalRect.left - left;
|
|
180
|
-
const isFirstOriginalInViewport = firstOriginalLeft > 0;
|
|
181
|
-
if (isFirstOriginalInViewport && ((_b = this.scrollDetails) === null || _b === void 0 ? void 0 : _b.scrollSpeed) > 0) {
|
|
182
|
-
const secondToLastElement = lastOriginalElement.previousElementSibling;
|
|
183
|
-
const positionDelta = lastOriginalRect.width + this.elementGap;
|
|
184
|
-
const movedElementDataId = parseInt(lastOriginalElement.getAttribute('data-id'), 10);
|
|
185
|
-
this.inertialScroll.scrollBy({ left: positionDelta }, true);
|
|
186
|
-
firstOriginalElement.insertAdjacentElement('beforebegin', lastOriginalElement);
|
|
187
|
-
secondToLastElement.insertAdjacentElement('afterend', this.virtualScrollAppendClones[movedElementDataId]);
|
|
188
|
-
this.element.insertAdjacentElement('afterbegin', this.virtualScrollPrependClones[movedElementDataId]);
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
/**
|
|
192
|
-
* Stops event propagation bubbling to the `contentElement`
|
|
193
|
-
* @param event PointerEvent
|
|
194
|
-
*/
|
|
195
|
-
this.handleControlPointerDown = (event) => {
|
|
196
|
-
event.preventDefault();
|
|
197
|
-
event.stopPropagation();
|
|
198
|
-
event.stopImmediatePropagation();
|
|
199
|
-
};
|
|
200
|
-
/**
|
|
201
|
-
* Handles the left control click.
|
|
202
|
-
*/
|
|
203
|
-
this.handleLeftControl = async () => {
|
|
204
|
-
if (this.isScrolling) {
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
this.isScrolling = true;
|
|
208
|
-
if (this.withActiveElement) {
|
|
209
|
-
const currentActive = this.element.querySelector(`.${this.activeElementClass}`);
|
|
210
|
-
let previousElement = currentActive.previousElementSibling;
|
|
211
|
-
if (previousElement === null) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
currentActive.classList.remove(this.activeElementClass);
|
|
215
|
-
if (previousElement.hasAttribute('data-clone-id')) {
|
|
216
|
-
this.scrollDetails.scrollSpeed = 1;
|
|
217
|
-
this.moveElements();
|
|
218
|
-
previousElement = currentActive.previousElementSibling;
|
|
219
|
-
if (this.withOverflowOpacity) {
|
|
220
|
-
this.updateChildElementOverflowOpacity();
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
previousElement.classList.add(this.activeElementClass);
|
|
224
|
-
await this.scrollToElementCenter(`.${this.activeElementClass}`);
|
|
225
|
-
this.moveElements();
|
|
226
|
-
this.updateControlVisibility();
|
|
227
|
-
}
|
|
228
|
-
else if (this.scrollFullWidth) {
|
|
229
|
-
const scrollRect = this.scrollContainerRef.getBoundingClientRect();
|
|
230
|
-
const scrollWidth = scrollRect.width;
|
|
231
|
-
const scrollStart = scrollRect.left;
|
|
232
|
-
const firstElement = Array.from(this.element.children).find(child => {
|
|
233
|
-
const childRect = child.getBoundingClientRect();
|
|
234
|
-
return childRect.left < scrollStart && childRect.right + this.elementGap > scrollStart;
|
|
235
|
-
});
|
|
236
|
-
if (firstElement !== undefined) {
|
|
237
|
-
const firstElementRight = firstElement.getBoundingClientRect().right;
|
|
238
|
-
const scrollEnd = scrollRect.left + scrollWidth;
|
|
239
|
-
await this.inertialScroll.scrollBy({ left: -(scrollEnd - firstElementRight), behavior: 'smooth' });
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
await this.inertialScroll.scrollBy({ left: -scrollWidth, behavior: 'smooth' });
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
await this.inertialScroll.scrollBy({ left: -this.controlScrollAmount, behavior: 'smooth' });
|
|
247
|
-
}
|
|
248
|
-
this.isScrolling = false;
|
|
249
|
-
};
|
|
250
|
-
/**
|
|
251
|
-
* Handles the right control click.
|
|
252
|
-
*/
|
|
253
|
-
this.handleRightControl = async () => {
|
|
254
|
-
if (this.isScrolling) {
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
this.isScrolling = true;
|
|
258
|
-
if (this.withActiveElement) {
|
|
259
|
-
const currentActive = this.element.querySelector(`.${this.activeElementClass}`);
|
|
260
|
-
let nextElement = currentActive.nextElementSibling;
|
|
261
|
-
if (nextElement === null) {
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
currentActive.classList.remove(this.activeElementClass);
|
|
265
|
-
if (nextElement.hasAttribute('data-clone-id')) {
|
|
266
|
-
this.scrollDetails.scrollSpeed = -1;
|
|
267
|
-
this.moveElements();
|
|
268
|
-
nextElement = currentActive.nextElementSibling;
|
|
269
|
-
if (this.withOverflowOpacity) {
|
|
270
|
-
this.updateChildElementOverflowOpacity();
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
nextElement.classList.add(this.activeElementClass);
|
|
274
|
-
await this.scrollToElementCenter(`.${this.activeElementClass}`);
|
|
275
|
-
this.moveElements();
|
|
276
|
-
this.updateControlVisibility();
|
|
277
|
-
}
|
|
278
|
-
else if (this.scrollFullWidth) {
|
|
279
|
-
const scrollRect = this.scrollContainerRef.getBoundingClientRect();
|
|
280
|
-
const scrollWidth = scrollRect.width;
|
|
281
|
-
const scrollEnd = scrollWidth + scrollRect.left;
|
|
282
|
-
const lastElement = Array.from(this.element.children).find(child => {
|
|
283
|
-
const childRect = child.getBoundingClientRect();
|
|
284
|
-
return childRect.left - this.elementGap < scrollEnd && childRect.right > scrollEnd;
|
|
285
|
-
});
|
|
286
|
-
if (lastElement !== undefined) {
|
|
287
|
-
const lastElementLeft = lastElement.getBoundingClientRect().left;
|
|
288
|
-
const scrollStart = scrollRect.left;
|
|
289
|
-
await this.inertialScroll.scrollBy({ left: lastElementLeft - scrollStart, behavior: 'smooth' });
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
await this.inertialScroll.scrollBy({ left: scrollWidth, behavior: 'smooth' });
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
else {
|
|
296
|
-
await this.inertialScroll.scrollBy({ left: this.controlScrollAmount, behavior: 'smooth' });
|
|
297
|
-
}
|
|
298
|
-
this.isScrolling = false;
|
|
299
|
-
};
|
|
300
|
-
/**
|
|
301
|
-
* Handles the keyup event on the right control.
|
|
302
|
-
* If the key is "Enter" or "Space", will trigger navigation to the next card.
|
|
303
|
-
* @param e - The keyboard event object.
|
|
304
|
-
*/
|
|
305
|
-
this.handleRightControlKeyUp = (e) => {
|
|
306
|
-
if (e.key === ' ' || e.key === 'Enter') {
|
|
307
|
-
this.handleRightControl();
|
|
308
|
-
}
|
|
309
|
-
};
|
|
310
|
-
/**
|
|
311
|
-
* Handles the keyup event on the left control.
|
|
312
|
-
* If the key is "Enter" or "Space", will trigger navigation to the previous card.
|
|
313
|
-
* @param e - The keyboard event object.
|
|
314
|
-
*/
|
|
315
|
-
this.handleLeftControlKeyUp = (e) => {
|
|
316
|
-
if (e.key === ' ' || e.key === 'Enter') {
|
|
317
|
-
this.handleLeftControl();
|
|
318
|
-
}
|
|
319
|
-
};
|
|
320
|
-
/**
|
|
321
|
-
* Updates the visibility of the control element.
|
|
322
|
-
*/
|
|
323
|
-
this.updateControlVisibility = (scroll = this.scrollDetails) => {
|
|
324
|
-
let controlVisibility = {
|
|
325
|
-
left: false,
|
|
326
|
-
right: false,
|
|
327
|
-
};
|
|
328
|
-
if (this.withControls) {
|
|
329
|
-
if (scroll === null) {
|
|
330
|
-
controlVisibility = {
|
|
331
|
-
left: false,
|
|
332
|
-
right: true,
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
else {
|
|
336
|
-
controlVisibility.left = scroll.scrollLeft - 1 <= 0 ? false : true;
|
|
337
|
-
controlVisibility.right = scroll.scrollLeft >= scroll.scrollWidth ? false : true;
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
// Only update if there are changes.
|
|
341
|
-
if (JSON.stringify(controlVisibility) !== JSON.stringify(this.controlVisibility)) {
|
|
342
|
-
this.controlVisibility = controlVisibility;
|
|
343
|
-
}
|
|
344
|
-
};
|
|
345
11
|
this.controlVisibility = { left: true, right: true };
|
|
346
12
|
this.scrollThumbWidth = 0;
|
|
347
13
|
this.isSmallContainer = false;
|
|
@@ -362,6 +28,48 @@ export class TetCardList {
|
|
|
362
28
|
this.iconPrev = '';
|
|
363
29
|
this.iconNext = '';
|
|
364
30
|
}
|
|
31
|
+
inertialScroll;
|
|
32
|
+
/**
|
|
33
|
+
* The DOM root component element.
|
|
34
|
+
*/
|
|
35
|
+
element;
|
|
36
|
+
/**
|
|
37
|
+
* The DOM element of the scrollable content container.
|
|
38
|
+
*/
|
|
39
|
+
scrollContainerRef;
|
|
40
|
+
/**
|
|
41
|
+
* The DOM element of the scroll thumb.
|
|
42
|
+
*/
|
|
43
|
+
scrollbarRef;
|
|
44
|
+
/**
|
|
45
|
+
* The arrays containing cloned content elements.
|
|
46
|
+
*/
|
|
47
|
+
virtualScrollPrependClones = [];
|
|
48
|
+
virtualScrollAppendClones = [];
|
|
49
|
+
/**
|
|
50
|
+
* Stores the content scroll and pointer positions for use with pointer events.
|
|
51
|
+
*/
|
|
52
|
+
scrollDetails = null;
|
|
53
|
+
/**
|
|
54
|
+
* Stores the `element` left and width values to limit html reflows.
|
|
55
|
+
*/
|
|
56
|
+
dimensions = { element: { left: 0, width: 0 } };
|
|
57
|
+
/**
|
|
58
|
+
* The css gap value set between elements.
|
|
59
|
+
*/
|
|
60
|
+
elementGap = 16;
|
|
61
|
+
/**
|
|
62
|
+
* Determines if the content is currently being scrolled.
|
|
63
|
+
*/
|
|
64
|
+
isScrolling = false;
|
|
65
|
+
/**
|
|
66
|
+
* The event that is emitted when the component is scrolled.
|
|
67
|
+
*/
|
|
68
|
+
cardScroll;
|
|
69
|
+
/**
|
|
70
|
+
* The event that is emitted when the component is scrolled.
|
|
71
|
+
*/
|
|
72
|
+
contentScrollEnd;
|
|
365
73
|
/**
|
|
366
74
|
* Adds and removes event pointer event handles to the `element` on `withMouseDrag` change.
|
|
367
75
|
* @param withMouseDrag boolean
|
|
@@ -420,6 +128,26 @@ export class TetCardList {
|
|
|
420
128
|
async scrollListToElementCenter(querySelector, isQuiet = false) {
|
|
421
129
|
await this.scrollToElementCenter(querySelector, true, isQuiet);
|
|
422
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Scrolls the element to the horizontal center of the viewport.
|
|
133
|
+
* @param querySelector The query selector of the element that will be scrolled to the center of view.
|
|
134
|
+
* @param isSmooth determines whether the scroll should be animated.
|
|
135
|
+
* @param isQuiet determines wheter scroll events should be triggered.
|
|
136
|
+
*/
|
|
137
|
+
scrollToElementCenter = async (querySelector, isSmooth = true, isQuiet = false) => {
|
|
138
|
+
let childNodes = Array.from(this.element.children);
|
|
139
|
+
if (this.withVirtualScroll) {
|
|
140
|
+
childNodes = Array.from(this.element.querySelectorAll('[data-id]'));
|
|
141
|
+
}
|
|
142
|
+
const elementToCenter = childNodes.find(childNode => childNode.matches(querySelector));
|
|
143
|
+
if (elementToCenter === null || elementToCenter === undefined) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
await this.inertialScroll.scrollToElement(elementToCenter, isSmooth, isQuiet);
|
|
147
|
+
if (this.withOverflowOpacity) {
|
|
148
|
+
this.updateChildElementOverflowOpacity();
|
|
149
|
+
}
|
|
150
|
+
};
|
|
423
151
|
/**
|
|
424
152
|
* The lifecycle method that called once just after the component is fully loaded and the first
|
|
425
153
|
* `render()` occurs. Attaches the event listeners to the root element of the component and
|
|
@@ -572,11 +300,148 @@ export class TetCardList {
|
|
|
572
300
|
* Removes the event listeners.
|
|
573
301
|
*/
|
|
574
302
|
disconnectedCallback() {
|
|
575
|
-
var _a, _b;
|
|
576
303
|
this.inertialScroll.detach();
|
|
577
|
-
|
|
578
|
-
|
|
304
|
+
this.scrollContainerRef?.removeEventListener('mousewheel', this.handleDisableScroll);
|
|
305
|
+
this.scrollContainerRef?.removeEventListener('touchmove', this.handleDisableScroll);
|
|
579
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* Calculates the width of the scroll thumb in percentage relative to the content. Sets up the
|
|
309
|
+
* width parameters of the scroll thumb.
|
|
310
|
+
*/
|
|
311
|
+
setupScrollbar = () => {
|
|
312
|
+
const { currentScroll } = this.inertialScroll;
|
|
313
|
+
this.scrollThumbWidth =
|
|
314
|
+
(this.scrollContainerRef.clientWidth / (currentScroll.scrollWidth + this.scrollContainerRef.clientWidth)) * 100;
|
|
315
|
+
if (this.scrollbarRef === undefined) {
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
this.scrollbarRef.style.width = `${this.scrollThumbWidth}%`;
|
|
319
|
+
this.scrollbarRef.style.left = `${this.currentScrollbarScroll}%`;
|
|
320
|
+
};
|
|
321
|
+
/**
|
|
322
|
+
* Prevents the event if scrolling is disabled.
|
|
323
|
+
* @param event Event
|
|
324
|
+
*/
|
|
325
|
+
handleDisableScroll = (event) => {
|
|
326
|
+
if (!this.disableScroll) {
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
event.preventDefault();
|
|
330
|
+
};
|
|
331
|
+
/**
|
|
332
|
+
* The scroll event handler. Updates the card item classes as they are scrolled out of view.
|
|
333
|
+
* Updates the control element classes as the content scroll reaches either end of the scroll.
|
|
334
|
+
* Updates the position of the visual scrollbar thumb element.
|
|
335
|
+
*/
|
|
336
|
+
handleScroll = () => {
|
|
337
|
+
this.cardScroll.emit({
|
|
338
|
+
totalAvailableScrollWidth: this.scrollDetails.scrollWidth,
|
|
339
|
+
currentScroll: this.scrollDetails.scrollLeft,
|
|
340
|
+
});
|
|
341
|
+
const elementChildren = Array.from(this.element.children);
|
|
342
|
+
if (this.withActiveElement) {
|
|
343
|
+
const activeClone = elementChildren.find(element => element.attributes['data-clone-id'] && element.classList.contains(this.activeElementClass));
|
|
344
|
+
if (activeClone !== undefined) {
|
|
345
|
+
activeClone.classList.remove(this.activeElementClass);
|
|
346
|
+
const cloneOffset = activeClone.getBoundingClientRect().left;
|
|
347
|
+
const activeOriginal = elementChildren.find(element => element.classList.contains(this.activeElementClass));
|
|
348
|
+
if (activeOriginal !== undefined) {
|
|
349
|
+
const originalOffset = activeOriginal.getBoundingClientRect().left;
|
|
350
|
+
const scrollDelta = cloneOffset - originalOffset;
|
|
351
|
+
this.inertialScroll.scrollTo({ left: this.scrollDetails.scrollLeft - scrollDelta }, true);
|
|
352
|
+
this.updateChildElementOverflowOpacity();
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
this.setActiveCenteredElement();
|
|
356
|
+
}
|
|
357
|
+
if (this.withVirtualScroll) {
|
|
358
|
+
this.moveElements();
|
|
359
|
+
this.updateChildElementOverflowOpacity();
|
|
360
|
+
}
|
|
361
|
+
};
|
|
362
|
+
/**
|
|
363
|
+
* Handles toggling of the `activeElementClass` on elements during pointer drag events.
|
|
364
|
+
*/
|
|
365
|
+
setActiveCenteredElement = () => {
|
|
366
|
+
let isScrollRight = this.scrollDetails.scrollSpeed > 0;
|
|
367
|
+
let isScrollLeft = this.scrollDetails.scrollSpeed < 0;
|
|
368
|
+
const elementChildren = Array.from(this.element.children);
|
|
369
|
+
const elementPositions = elementChildren.map(child => child.getBoundingClientRect());
|
|
370
|
+
const elementRect = this.element.getBoundingClientRect();
|
|
371
|
+
/** Determine the center point of the bounding element */
|
|
372
|
+
const centerPoint = elementRect.width / 2 + elementRect.left;
|
|
373
|
+
/** Determine the index of the child card overlapping with the `centerPoint` */
|
|
374
|
+
let centeredElementIndex = elementPositions.findIndex(element => element.left <= centerPoint && element.left + element.width >= centerPoint);
|
|
375
|
+
/** Set index to the first element in case list is scrolled to the start */
|
|
376
|
+
if (centeredElementIndex === 1 && isScrollLeft && this.scrollDetails.scrollLeft === 0) {
|
|
377
|
+
centeredElementIndex = 0;
|
|
378
|
+
}
|
|
379
|
+
/** Set index to the last element in case list is scrolled to the end */
|
|
380
|
+
if (centeredElementIndex === elementPositions.length - 2 &&
|
|
381
|
+
isScrollRight &&
|
|
382
|
+
this.scrollDetails.scrollLeft + this.scrollContainerRef.getBoundingClientRect().width >=
|
|
383
|
+
this.scrollDetails.scrollWidth) {
|
|
384
|
+
centeredElementIndex = elementPositions.length - 1;
|
|
385
|
+
}
|
|
386
|
+
/** Calculate the index of the next element in case `centerPoint` is in between two elements */
|
|
387
|
+
if (centeredElementIndex === -1) {
|
|
388
|
+
if (isScrollRight) {
|
|
389
|
+
centeredElementIndex = elementPositions.findIndex(element => element.left - this.elementGap <= centerPoint && element.left + element.width >= centerPoint);
|
|
390
|
+
}
|
|
391
|
+
if (isScrollLeft) {
|
|
392
|
+
centeredElementIndex = elementPositions.findIndex(element => element.left <= centerPoint && element.left + element.width + this.elementGap >= centerPoint);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
const currentActiveElements = elementChildren.filter(element => element.classList.contains(this.activeElementClass));
|
|
396
|
+
currentActiveElements.forEach(element => element.classList.remove(this.activeElementClass));
|
|
397
|
+
const nextElement = elementChildren[centeredElementIndex];
|
|
398
|
+
if (this.withVirtualScroll && nextElement?.hasAttribute('data-clone-id')) {
|
|
399
|
+
const nextOriginalElement = elementChildren.find(element => element.attributes['data-id']?.value === nextElement.getAttribute('data-clone-id'));
|
|
400
|
+
nextOriginalElement.classList.add(this.activeElementClass);
|
|
401
|
+
}
|
|
402
|
+
if (nextElement !== undefined) {
|
|
403
|
+
nextElement.classList.add(this.activeElementClass);
|
|
404
|
+
}
|
|
405
|
+
this.updateControlVisibility();
|
|
406
|
+
};
|
|
407
|
+
/**
|
|
408
|
+
* Shifts the elements and scroll position.
|
|
409
|
+
* Gets the first and the last of the original elements and shifts both the original
|
|
410
|
+
* and the cloned elements depending on the scroll direction.
|
|
411
|
+
* Updates the currently set scroll values to hide the shift of the elements.
|
|
412
|
+
*/
|
|
413
|
+
moveElements = () => {
|
|
414
|
+
if (!this.withVirtualScroll) {
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
417
|
+
const { width, left } = this.dimensions.element;
|
|
418
|
+
const firstOriginalElement = this.getFirstOriginal();
|
|
419
|
+
const lastOriginalElement = this.getLastOriginal();
|
|
420
|
+
const firstOriginalRect = firstOriginalElement.getBoundingClientRect();
|
|
421
|
+
const lastOriginalRect = lastOriginalElement.getBoundingClientRect();
|
|
422
|
+
const lastOriginalRight = lastOriginalRect.right - left;
|
|
423
|
+
const isLastOriginalInViewport = lastOriginalRight < width;
|
|
424
|
+
if (isLastOriginalInViewport && this.scrollDetails?.scrollSpeed < 0) {
|
|
425
|
+
const movedElementDataId = parseInt(firstOriginalElement.getAttribute('data-id'), 10);
|
|
426
|
+
const positionDelta = firstOriginalRect.width + this.elementGap;
|
|
427
|
+
const secondOriginalElement = firstOriginalElement.nextElementSibling;
|
|
428
|
+
this.inertialScroll.scrollBy({ left: -positionDelta }, true);
|
|
429
|
+
lastOriginalElement.insertAdjacentElement('afterend', firstOriginalElement);
|
|
430
|
+
secondOriginalElement.insertAdjacentElement('beforebegin', this.virtualScrollPrependClones[movedElementDataId]);
|
|
431
|
+
this.element.insertAdjacentElement('beforeend', this.virtualScrollAppendClones[movedElementDataId]);
|
|
432
|
+
}
|
|
433
|
+
const firstOriginalLeft = firstOriginalRect.left - left;
|
|
434
|
+
const isFirstOriginalInViewport = firstOriginalLeft > 0;
|
|
435
|
+
if (isFirstOriginalInViewport && this.scrollDetails?.scrollSpeed > 0) {
|
|
436
|
+
const secondToLastElement = lastOriginalElement.previousElementSibling;
|
|
437
|
+
const positionDelta = lastOriginalRect.width + this.elementGap;
|
|
438
|
+
const movedElementDataId = parseInt(lastOriginalElement.getAttribute('data-id'), 10);
|
|
439
|
+
this.inertialScroll.scrollBy({ left: positionDelta }, true);
|
|
440
|
+
firstOriginalElement.insertAdjacentElement('beforebegin', lastOriginalElement);
|
|
441
|
+
secondToLastElement.insertAdjacentElement('afterend', this.virtualScrollAppendClones[movedElementDataId]);
|
|
442
|
+
this.element.insertAdjacentElement('afterbegin', this.virtualScrollPrependClones[movedElementDataId]);
|
|
443
|
+
}
|
|
444
|
+
};
|
|
580
445
|
/**
|
|
581
446
|
* Returns the current scroll in percentage.
|
|
582
447
|
* @returns number representing the current scroll value in percent.
|
|
@@ -601,6 +466,160 @@ export class TetCardList {
|
|
|
601
466
|
}
|
|
602
467
|
return scrollThumbPosition;
|
|
603
468
|
}
|
|
469
|
+
/**
|
|
470
|
+
* Stops event propagation bubbling to the `contentElement`
|
|
471
|
+
* @param event PointerEvent
|
|
472
|
+
*/
|
|
473
|
+
handleControlPointerDown = (event) => {
|
|
474
|
+
event.preventDefault();
|
|
475
|
+
event.stopPropagation();
|
|
476
|
+
event.stopImmediatePropagation();
|
|
477
|
+
};
|
|
478
|
+
/**
|
|
479
|
+
* Handles the left control click.
|
|
480
|
+
*/
|
|
481
|
+
handleLeftControl = async () => {
|
|
482
|
+
if (this.isScrolling) {
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
485
|
+
this.isScrolling = true;
|
|
486
|
+
if (this.withActiveElement) {
|
|
487
|
+
const currentActive = this.element.querySelector(`.${this.activeElementClass}`);
|
|
488
|
+
let previousElement = currentActive.previousElementSibling;
|
|
489
|
+
if (previousElement === null) {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
currentActive.classList.remove(this.activeElementClass);
|
|
493
|
+
if (previousElement.hasAttribute('data-clone-id')) {
|
|
494
|
+
this.scrollDetails.scrollSpeed = 1;
|
|
495
|
+
this.moveElements();
|
|
496
|
+
previousElement = currentActive.previousElementSibling;
|
|
497
|
+
if (this.withOverflowOpacity) {
|
|
498
|
+
this.updateChildElementOverflowOpacity();
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
previousElement.classList.add(this.activeElementClass);
|
|
502
|
+
await this.scrollToElementCenter(`.${this.activeElementClass}`);
|
|
503
|
+
this.moveElements();
|
|
504
|
+
this.updateControlVisibility();
|
|
505
|
+
}
|
|
506
|
+
else if (this.scrollFullWidth) {
|
|
507
|
+
const scrollRect = this.scrollContainerRef.getBoundingClientRect();
|
|
508
|
+
const scrollWidth = scrollRect.width;
|
|
509
|
+
const scrollStart = scrollRect.left;
|
|
510
|
+
const firstElement = Array.from(this.element.children).find(child => {
|
|
511
|
+
const childRect = child.getBoundingClientRect();
|
|
512
|
+
return childRect.left < scrollStart && childRect.right + this.elementGap > scrollStart;
|
|
513
|
+
});
|
|
514
|
+
if (firstElement !== undefined) {
|
|
515
|
+
const firstElementRight = firstElement.getBoundingClientRect().right;
|
|
516
|
+
const scrollEnd = scrollRect.left + scrollWidth;
|
|
517
|
+
await this.inertialScroll.scrollBy({ left: -(scrollEnd - firstElementRight), behavior: 'smooth' });
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
await this.inertialScroll.scrollBy({ left: -scrollWidth, behavior: 'smooth' });
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
else {
|
|
524
|
+
await this.inertialScroll.scrollBy({ left: -this.controlScrollAmount, behavior: 'smooth' });
|
|
525
|
+
}
|
|
526
|
+
this.isScrolling = false;
|
|
527
|
+
};
|
|
528
|
+
/**
|
|
529
|
+
* Handles the right control click.
|
|
530
|
+
*/
|
|
531
|
+
handleRightControl = async () => {
|
|
532
|
+
if (this.isScrolling) {
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
this.isScrolling = true;
|
|
536
|
+
if (this.withActiveElement) {
|
|
537
|
+
const currentActive = this.element.querySelector(`.${this.activeElementClass}`);
|
|
538
|
+
let nextElement = currentActive.nextElementSibling;
|
|
539
|
+
if (nextElement === null) {
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
currentActive.classList.remove(this.activeElementClass);
|
|
543
|
+
if (nextElement.hasAttribute('data-clone-id')) {
|
|
544
|
+
this.scrollDetails.scrollSpeed = -1;
|
|
545
|
+
this.moveElements();
|
|
546
|
+
nextElement = currentActive.nextElementSibling;
|
|
547
|
+
if (this.withOverflowOpacity) {
|
|
548
|
+
this.updateChildElementOverflowOpacity();
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
nextElement.classList.add(this.activeElementClass);
|
|
552
|
+
await this.scrollToElementCenter(`.${this.activeElementClass}`);
|
|
553
|
+
this.moveElements();
|
|
554
|
+
this.updateControlVisibility();
|
|
555
|
+
}
|
|
556
|
+
else if (this.scrollFullWidth) {
|
|
557
|
+
const scrollRect = this.scrollContainerRef.getBoundingClientRect();
|
|
558
|
+
const scrollWidth = scrollRect.width;
|
|
559
|
+
const scrollEnd = scrollWidth + scrollRect.left;
|
|
560
|
+
const lastElement = Array.from(this.element.children).find(child => {
|
|
561
|
+
const childRect = child.getBoundingClientRect();
|
|
562
|
+
return childRect.left - this.elementGap < scrollEnd && childRect.right > scrollEnd;
|
|
563
|
+
});
|
|
564
|
+
if (lastElement !== undefined) {
|
|
565
|
+
const lastElementLeft = lastElement.getBoundingClientRect().left;
|
|
566
|
+
const scrollStart = scrollRect.left;
|
|
567
|
+
await this.inertialScroll.scrollBy({ left: lastElementLeft - scrollStart, behavior: 'smooth' });
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
await this.inertialScroll.scrollBy({ left: scrollWidth, behavior: 'smooth' });
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
else {
|
|
574
|
+
await this.inertialScroll.scrollBy({ left: this.controlScrollAmount, behavior: 'smooth' });
|
|
575
|
+
}
|
|
576
|
+
this.isScrolling = false;
|
|
577
|
+
};
|
|
578
|
+
/**
|
|
579
|
+
* Handles the keyup event on the right control.
|
|
580
|
+
* If the key is "Enter" or "Space", will trigger navigation to the next card.
|
|
581
|
+
* @param e - The keyboard event object.
|
|
582
|
+
*/
|
|
583
|
+
handleRightControlKeyUp = (e) => {
|
|
584
|
+
if (e.key === ' ' || e.key === 'Enter') {
|
|
585
|
+
this.handleRightControl();
|
|
586
|
+
}
|
|
587
|
+
};
|
|
588
|
+
/**
|
|
589
|
+
* Handles the keyup event on the left control.
|
|
590
|
+
* If the key is "Enter" or "Space", will trigger navigation to the previous card.
|
|
591
|
+
* @param e - The keyboard event object.
|
|
592
|
+
*/
|
|
593
|
+
handleLeftControlKeyUp = (e) => {
|
|
594
|
+
if (e.key === ' ' || e.key === 'Enter') {
|
|
595
|
+
this.handleLeftControl();
|
|
596
|
+
}
|
|
597
|
+
};
|
|
598
|
+
/**
|
|
599
|
+
* Updates the visibility of the control element.
|
|
600
|
+
*/
|
|
601
|
+
updateControlVisibility = (scroll = this.scrollDetails) => {
|
|
602
|
+
let controlVisibility = {
|
|
603
|
+
left: false,
|
|
604
|
+
right: false,
|
|
605
|
+
};
|
|
606
|
+
if (this.withControls) {
|
|
607
|
+
if (scroll === null) {
|
|
608
|
+
controlVisibility = {
|
|
609
|
+
left: false,
|
|
610
|
+
right: true,
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
else {
|
|
614
|
+
controlVisibility.left = scroll.scrollLeft - 1 <= 0 ? false : true;
|
|
615
|
+
controlVisibility.right = scroll.scrollLeft >= scroll.scrollWidth ? false : true;
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
// Only update if there are changes.
|
|
619
|
+
if (JSON.stringify(controlVisibility) !== JSON.stringify(this.controlVisibility)) {
|
|
620
|
+
this.controlVisibility = controlVisibility;
|
|
621
|
+
}
|
|
622
|
+
};
|
|
604
623
|
/**
|
|
605
624
|
* Adds or removes the transparency effect to the card items as they enter or leave the viewport.
|
|
606
625
|
*/
|