@tet/tet-components 1.3.136-testing → 1.3.137-testing
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/index-f559cb2e.js +10 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{phone-c3ebb2eb.js → phone-d414fe5a.js} +0 -14
- package/dist/cjs/tasks-af99ad61.js +16 -0
- package/dist/cjs/tet-accordion.cjs.entry.js +6 -6
- package/dist/cjs/tet-address-offers-view.cjs.entry.js +1 -1
- package/dist/cjs/tet-address-offers_4.cjs.entry.js +3 -2
- package/dist/cjs/tet-autocomplete_2.cjs.entry.js +3 -3
- package/dist/cjs/tet-b2b-check-out-form.cjs.entry.js +164 -0
- package/dist/cjs/tet-b2b-configurator-cart.cjs.entry.js +2 -2
- package/dist/cjs/tet-b2b-service-calculator.cjs.entry.js +1 -1
- package/dist/cjs/tet-border-radius.cjs.entry.js +1 -1
- package/dist/cjs/tet-business-lines.cjs.entry.js +1 -1
- package/dist/cjs/tet-business-navigation.cjs.entry.js +1 -1
- package/dist/cjs/tet-carousel.cjs.entry.js +104 -36
- package/dist/cjs/tet-checkbox.cjs.entry.js +73 -0
- package/dist/cjs/tet-colors.cjs.entry.js +4 -4
- package/dist/cjs/tet-compare-cards_2.cjs.entry.js +2 -2
- package/dist/cjs/tet-components.cjs.js +1 -1
- package/dist/cjs/tet-contact-form.cjs.entry.js +4 -3
- package/dist/cjs/tet-datepicker-header_4.cjs.entry.js +5 -5
- package/dist/cjs/tet-datepicker.cjs.entry.js +4 -4
- package/dist/cjs/tet-dialog.cjs.entry.js +1 -1
- package/dist/cjs/{tet-checkbox_3.cjs.entry.js → tet-dropdown_2.cjs.entry.js} +1 -68
- package/dist/cjs/tet-expansion-panel.cjs.entry.js +1 -1
- 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 +1 -1
- package/dist/cjs/tet-label.cjs.entry.js +2 -2
- 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-navigation-mobile.cjs.entry.js +3 -3
- package/dist/cjs/tet-news-card-list.cjs.entry.js +1 -1
- package/dist/cjs/tet-notification.cjs.entry.js +1 -1
- package/dist/cjs/tet-placeholder.cjs.entry.js +1 -1
- package/dist/cjs/tet-range-slider.cjs.entry.js +7 -7
- package/dist/cjs/tet-spacing.cjs.entry.js +1 -1
- package/dist/cjs/tet-stepper-input.cjs.entry.js +1 -1
- package/dist/cjs/tet-tab-header.cjs.entry.js +2 -2
- package/dist/cjs/tet-tag_2.cjs.entry.js +2 -2
- package/dist/cjs/tet-textarea.cjs.entry.js +2 -2
- package/dist/cjs/tet-tv-gift-block.cjs.entry.js +1 -1
- package/dist/cjs/tet-tv-gift-list.cjs.entry.js +2 -2
- package/dist/collection/assets/icons/icon-map.json +1 -1
- package/dist/collection/assets/icons/tc/tc-company-1.svg +3 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/advanced/forms/tet-b2b-check-out-form/tet-b2b-check-out-form.css +479 -0
- package/dist/collection/components/advanced/forms/tet-b2b-check-out-form/tet-b2b-check-out-form.js +211 -0
- package/dist/collection/components/advanced/forms/tet-contact-form/tet-contact-form.js +1 -1
- package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-block/tet-tv-gift-block.js +1 -1
- package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-list/tet-tv-gift-list.js +2 -2
- package/dist/collection/components/basic/buttons/tet-tabs/tet-tab-content/tet-tab-content.js +2 -2
- package/dist/collection/components/basic/buttons/tet-tabs/tet-tab-header/tet-tab-header.js +2 -2
- package/dist/collection/components/basic/buttons/tet-tag/tet-tag.js +2 -2
- package/dist/collection/components/basic/carousel/tet-carousel/test/tet-carousel.spec.js +6 -2
- package/dist/collection/components/basic/carousel/tet-carousel/tet-carousel.css +4 -0
- package/dist/collection/components/basic/carousel/tet-carousel/tet-carousel.js +103 -35
- package/dist/collection/components/basic/icon/tet-icon.js +1 -1
- package/dist/collection/components/basic/loaders/tet-loader/tet-loader.js +1 -1
- package/dist/collection/components/basic/loaders/tet-placeholder/tet-placeholder.js +1 -1
- package/dist/collection/components/basic/loaders/tet-spinner/tet-spinner.js +3 -3
- package/dist/collection/components/basic/misc/tet-label/tet-label.js +2 -2
- package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-header/tet-datepicker-header.js +2 -2
- package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-month-view/tet-datepicker-month-view.js +1 -1
- package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-multi-year-view/tet-datepicker-multi-year-view.js +1 -1
- package/dist/collection/components/simple/inputs/tet-datepicker/partials/tet-datepicker-year-view/tet-datepicker-year-view.js +1 -1
- package/dist/collection/components/simple/inputs/tet-datepicker/tet-datepicker.js +4 -4
- package/dist/collection/components/simple/inputs/tet-range-slider/tet-range-slider.js +7 -7
- package/dist/collection/components/simple/inputs/tet-stepper-input/tet-stepper-input.js +1 -1
- package/dist/collection/components/simple/inputs/tet-textarea/tet-textarea.js +2 -2
- package/dist/collection/components/simple/lists/tet-news-card-list/tet-news-card-list.js +1 -1
- package/dist/collection/components/simple/menu/tet-business-navigation/tet-business-navigation.js +1 -1
- package/dist/collection/components/simple/menu/tet-navigation-mobile/tet-navigation-mobile.js +3 -3
- package/dist/collection/components/simple/structural/tet-accordion/tet-accordion.css +2 -0
- package/dist/collection/components/simple/structural/tet-accordion/tet-accordion.js +5 -5
- package/dist/collection/components/simple/structural/tet-expansion-panel/tet-expansion-panel.js +1 -1
- package/dist/collection/components/simple/text-blocks/tet-dialog/tet-dialog.css +4 -2
- package/dist/collection/components/simple/text-blocks/tet-notification/tet-notification.js +1 -1
- package/dist/collection/components/simple/text-blocks/tet-tooltip/tet-tooltip.js +1 -1
- package/dist/collection/components/views/tet-address-offers-view/tet-address-offers-view.js +1 -1
- package/dist/collection/components/views/tet-b2b-configurator/partials/tet-b2b-configurator-cart/tet-b2b-configurator-cart.js +2 -2
- package/dist/collection/components/views/tet-b2b-service-calculator/tet-b2b-service-calculator.js +1 -1
- package/dist/collection/components/views/tet-business-lines/tet-business-lines.js +1 -1
- package/dist/collection/docs/styling/border-radius/tet-border-radius.js +1 -1
- package/dist/collection/docs/styling/colors/tet-colors.js +4 -4
- package/dist/collection/docs/styling/font-weight/tet-font-weight.js +1 -1
- package/dist/collection/docs/styling/fonts/tet-fonts.js +1 -1
- package/dist/collection/docs/styling/layout/tet-layout.js +1 -1
- package/dist/collection/docs/styling/link/tet-link.js +1 -1
- package/dist/collection/docs/styling/spacing/tet-spacing.js +1 -1
- package/dist/collection/docs/styling/tet-grid/tet-grid.js +1 -1
- package/dist/collection/services/validators/index.js +2 -1
- package/dist/collection/services/validators/validators/e-mail.js +34 -0
- package/dist/collection/services/validators/validators/e-mail.spec.js +20 -0
- package/dist/components/assets/icons/icon-map.json +1 -1
- package/dist/components/assets/icons/tc/tc-company-1.svg +3 -0
- package/dist/components/index.js +2 -0
- package/dist/components/{p-59ecb7dc.js → p-000ae991.js} +6 -6
- package/dist/components/p-00c91e96.js +14 -0
- package/dist/components/{p-cdec8b43.js → p-12e123f3.js} +1 -1
- package/dist/components/{p-d7f5b61c.js → p-14534acc.js} +1 -1
- package/dist/components/{p-499b3838.js → p-21be0dd0.js} +2 -2
- package/dist/components/{p-a1f2eaa6.js → p-2424c4f1.js} +5 -5
- package/dist/components/{p-2f7ab47f.js → p-290f2855.js} +7 -6
- package/dist/components/{p-86da5272.js → p-397c69b3.js} +2 -2
- package/dist/components/{p-125271b1.js → p-4688b69d.js} +11 -11
- package/dist/components/{p-3ff35471.js → p-5ace687b.js} +5 -5
- package/dist/components/{p-e1dfd49d.js → p-5b5ea55f.js} +10 -10
- package/dist/components/{p-e20ff902.js → p-70ca1b23.js} +1 -1
- package/dist/components/{p-ae8498b6.js → p-758e222f.js} +7 -7
- package/dist/components/{p-c4a94d36.js → p-76c723b4.js} +2 -2
- package/dist/components/{p-be59ce58.js → p-7fa87e91.js} +1 -1
- package/dist/components/{p-1dfb07e1.js → p-8802f7f7.js} +1 -1
- package/dist/components/{p-ecb0207c.js → p-88eed449.js} +1 -1
- package/dist/components/{p-9c20ee34.js → p-8a924999.js} +3 -3
- package/dist/components/{p-504e911b.js → p-8ff3e337.js} +3 -3
- package/dist/components/{p-3dc2183b.js → p-90a15cb2.js} +1 -1
- package/dist/components/{p-0e796d48.js → p-92f3f562.js} +3 -3
- package/dist/components/{p-e409203b.js → p-ac5522f7.js} +2 -2
- package/dist/components/{p-796ea907.js → p-ba6768ef.js} +2 -2
- package/dist/components/{p-102c1fc3.js → p-bc9edad9.js} +1 -1
- package/dist/components/{p-d6580980.js → p-bddae715.js} +2 -2
- package/dist/components/{p-8b3d80aa.js → p-be78bde3.js} +1 -1
- package/dist/components/{p-e5f84db8.js → p-c2bfa12c.js} +1 -1
- package/dist/components/{p-b71cc97c.js → p-c8a0b770.js} +3 -3
- package/dist/components/{p-e4b59b85.js → p-c9491692.js} +1 -1
- package/dist/components/{p-d8c79647.js → p-c97b2c87.js} +2 -2
- package/dist/components/{p-0a9fb3c4.js → p-ca66b4b1.js} +1 -14
- package/dist/components/{p-b5dced58.js → p-cbb5f612.js} +1 -1
- package/dist/components/{p-48a1a0e4.js → p-d0c6b6c9.js} +2 -2
- package/dist/components/{p-0b13ba10.js → p-d516dff5.js} +7 -7
- package/dist/components/{p-c3dfb9e4.js → p-daa34847.js} +2 -2
- package/dist/components/{p-50c52fb2.js → p-db548ad6.js} +2 -2
- package/dist/components/{p-d3f63a7a.js → p-decd8ddd.js} +4 -4
- package/dist/components/{p-c1c8a966.js → p-eac684d6.js} +1 -1
- package/dist/components/{p-a141151a.js → p-fe95d572.js} +1 -1
- package/dist/components/{p-eb9b5f91.js → p-ff31e014.js} +1 -1
- 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 +21 -21
- 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 +8 -8
- package/dist/components/tet-asset-availability-addresses.js +1 -1
- package/dist/components/tet-autocomplete-dropdown.js +4 -4
- 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.d.ts +11 -0
- package/dist/components/tet-b2b-check-out-form.js +212 -0
- package/dist/components/tet-b2b-compare-card.js +4 -4
- package/dist/components/tet-b2b-configurator-cart.js +5 -5
- package/dist/components/tet-b2b-service-calculator.js +6 -6
- package/dist/components/tet-banner-nav.js +1 -1
- package/dist/components/tet-border-radius.js +1 -1
- package/dist/components/tet-business-compare-card.js +2 -2
- package/dist/components/tet-business-lines.js +2 -2
- package/dist/components/tet-business-navigation.js +2 -2
- package/dist/components/tet-business-round-stepper.js +1 -1
- package/dist/components/tet-business-summary-card.js +3 -3
- package/dist/components/tet-button.js +1 -1
- package/dist/components/tet-card-list.js +1 -1
- package/dist/components/tet-carousel.js +106 -38
- package/dist/components/tet-checkbox.js +1 -1
- package/dist/components/tet-cloud-application-form-dialog.js +6 -6
- package/dist/components/tet-cloud-configurator.js +7 -7
- package/dist/components/tet-colors.js +4 -4
- package/dist/components/tet-compare-card-v2.js +5 -5
- package/dist/components/tet-compare-card.js +1 -1
- package/dist/components/tet-compare-cards-tab.js +13 -13
- package/dist/components/tet-compare-cards.js +1 -1
- package/dist/components/tet-contact-form.js +7 -6
- package/dist/components/tet-customer-assets.js +2 -2
- 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 +9 -9
- package/dist/components/tet-dialog.js +1 -1
- package/dist/components/tet-dropdown.js +1 -1
- package/dist/components/tet-dynamic-card.js +2 -2
- package/dist/components/tet-expandable-input.js +2 -2
- package/dist/components/tet-expansion-panel.js +1 -1
- package/dist/components/tet-filter.js +3 -3
- 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 +1 -1
- 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 +6 -6
- package/dist/components/tet-menu-mobile.js +1 -1
- package/dist/components/tet-menu.js +1 -1
- package/dist/components/tet-multi-step-dialog.js +3 -3
- package/dist/components/tet-navigation-mobile.js +4 -4
- package/dist/components/tet-news-card-list.js +4 -4
- 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-range-slider.js +1 -1
- package/dist/components/tet-referral.js +4 -4
- package/dist/components/tet-round-stepper.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-tab-content.js +1 -1
- package/dist/components/tet-tab-header.js +1 -1
- package/dist/components/tet-table.js +2 -2
- 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 +2 -2
- package/dist/components/tet-thank-you-view-v2.js +3 -3
- package/dist/components/tet-thank-you-view-v3.js +3 -3
- package/dist/components/tet-thank-you-view.js +2 -2
- package/dist/components/tet-tooltip.js +1 -1
- package/dist/components/tet-tv-gift-block.js +1 -1
- package/dist/components/tet-tv-gift-list.js +3 -3
- package/dist/esm/index-7f1e2a22.js +10 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{phone-ed2205b3.js → phone-99c2f297.js} +1 -14
- package/dist/esm/tasks-3dfcc330.js +14 -0
- package/dist/esm/tet-accordion.entry.js +6 -6
- package/dist/esm/tet-address-offers-view.entry.js +1 -1
- package/dist/esm/tet-address-offers_4.entry.js +2 -1
- package/dist/esm/tet-autocomplete_2.entry.js +3 -3
- package/dist/esm/tet-b2b-check-out-form.entry.js +160 -0
- package/dist/esm/tet-b2b-configurator-cart.entry.js +2 -2
- package/dist/esm/tet-b2b-service-calculator.entry.js +1 -1
- package/dist/esm/tet-border-radius.entry.js +1 -1
- package/dist/esm/tet-business-lines.entry.js +1 -1
- package/dist/esm/tet-business-navigation.entry.js +1 -1
- package/dist/esm/tet-carousel.entry.js +104 -36
- package/dist/esm/tet-checkbox.entry.js +69 -0
- package/dist/esm/tet-colors.entry.js +4 -4
- package/dist/esm/tet-compare-cards_2.entry.js +2 -2
- package/dist/esm/tet-components.js +1 -1
- package/dist/esm/tet-contact-form.entry.js +3 -2
- package/dist/esm/tet-datepicker-header_4.entry.js +5 -5
- package/dist/esm/tet-datepicker.entry.js +4 -4
- package/dist/esm/tet-dialog.entry.js +1 -1
- package/dist/esm/{tet-checkbox_3.entry.js → tet-dropdown_2.entry.js} +2 -68
- package/dist/esm/tet-expansion-panel.entry.js +1 -1
- 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 +1 -1
- package/dist/esm/tet-label.entry.js +2 -2
- 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-navigation-mobile.entry.js +3 -3
- package/dist/esm/tet-news-card-list.entry.js +1 -1
- package/dist/esm/tet-notification.entry.js +1 -1
- package/dist/esm/tet-placeholder.entry.js +1 -1
- package/dist/esm/tet-range-slider.entry.js +7 -7
- package/dist/esm/tet-spacing.entry.js +1 -1
- package/dist/esm/tet-stepper-input.entry.js +1 -1
- package/dist/esm/tet-tab-header.entry.js +2 -2
- package/dist/esm/tet-tag_2.entry.js +2 -2
- package/dist/esm/tet-textarea.entry.js +2 -2
- package/dist/esm/tet-tv-gift-block.entry.js +1 -1
- package/dist/esm/tet-tv-gift-list.entry.js +2 -2
- package/dist/tet-components/assets/icons/icon-map.json +1 -1
- package/dist/tet-components/assets/icons/tc/tc-company-1.svg +3 -0
- package/dist/tet-components/{p-c2d3f622.entry.js → p-00370414.entry.js} +1 -1
- package/dist/tet-components/{p-db666f67.entry.js → p-018123d1.entry.js} +1 -1
- package/dist/tet-components/{p-eee18759.entry.js → p-02381ade.entry.js} +1 -1
- package/dist/tet-components/p-05fc6443.entry.js +1 -0
- package/dist/tet-components/{p-f09325e9.entry.js → p-100a2a00.entry.js} +1 -1
- package/dist/tet-components/{p-17a4096b.entry.js → p-10d6590a.entry.js} +1 -1
- package/dist/tet-components/p-1460a670.entry.js +1 -0
- package/dist/tet-components/{p-82f67011.entry.js → p-223f4ca1.entry.js} +1 -1
- package/dist/tet-components/p-2a3448bc.entry.js +1 -0
- package/dist/tet-components/p-32c31441.entry.js +1 -0
- package/dist/tet-components/p-37d9b1c5.entry.js +1 -0
- package/dist/tet-components/{p-74989c7b.entry.js → p-382034f9.entry.js} +1 -1
- package/dist/tet-components/{p-970a3fc5.entry.js → p-3a68d8ee.entry.js} +1 -1
- package/dist/tet-components/p-3adb8b02.entry.js +1 -0
- package/dist/tet-components/{p-966eaa17.entry.js → p-3c03dea3.entry.js} +1 -1
- package/dist/tet-components/{p-3a388c27.entry.js → p-48ed1dbc.entry.js} +1 -1
- package/dist/tet-components/{p-cc73c6bf.entry.js → p-4cac1c11.entry.js} +1 -1
- package/dist/tet-components/{p-018095d9.entry.js → p-4efb7ee4.entry.js} +1 -1
- package/dist/tet-components/{p-1576d249.entry.js → p-584850c4.entry.js} +1 -1
- package/dist/tet-components/{p-c95cf2d4.entry.js → p-624ae17b.entry.js} +1 -1
- package/dist/tet-components/{p-c592f222.entry.js → p-67515e73.entry.js} +1 -1
- package/dist/tet-components/{p-9ef5798e.entry.js → p-72c5f6fd.entry.js} +1 -1
- package/dist/tet-components/{p-add5c08b.entry.js → p-73e8e847.entry.js} +1 -1
- package/dist/tet-components/{p-641c5d9d.entry.js → p-77dc69df.entry.js} +1 -1
- package/dist/tet-components/{p-e596991f.entry.js → p-79567d7c.entry.js} +1 -1
- package/dist/tet-components/{p-37958859.entry.js → p-7d1d0c36.entry.js} +1 -1
- package/dist/tet-components/{p-3588d98e.entry.js → p-89cbd0f4.entry.js} +1 -1
- package/dist/tet-components/{p-12c21228.entry.js → p-8c802a0a.entry.js} +1 -1
- package/dist/tet-components/{p-7a12782b.entry.js → p-992f7033.entry.js} +1 -1
- package/dist/tet-components/{p-a844fa98.entry.js → p-a9649e33.entry.js} +1 -1
- package/dist/tet-components/{p-74275f2b.entry.js → p-ab41a3f8.entry.js} +1 -1
- package/dist/tet-components/{p-7210bb04.entry.js → p-afbe6509.entry.js} +1 -1
- package/dist/tet-components/{p-f9d096b2.entry.js → p-b3ce0d6f.entry.js} +1 -1
- package/dist/tet-components/{p-61818927.entry.js → p-c634602c.entry.js} +1 -1
- package/dist/tet-components/p-ca66b4b1.js +1 -0
- package/dist/tet-components/p-d2919aae.js +1 -0
- package/dist/tet-components/{p-108cd149.entry.js → p-d56b4142.entry.js} +1 -1
- package/dist/tet-components/{p-7476cb78.entry.js → p-db3d023a.entry.js} +1 -1
- package/dist/tet-components/{p-55819f09.entry.js → p-e73e4e79.entry.js} +1 -1
- package/dist/tet-components/{p-b5706ef0.entry.js → p-ea0186d6.entry.js} +1 -1
- package/dist/tet-components/{p-ff66a3ec.entry.js → p-ef1bcb5f.entry.js} +1 -1
- package/dist/tet-components/{p-0ca72362.entry.js → p-efbe281d.entry.js} +1 -1
- package/dist/tet-components/tet-components.esm.js +1 -1
- package/dist/types/components/advanced/forms/tet-b2b-check-out-form/tet-b2b-check-out-form.d.ts +52 -0
- package/dist/types/components/basic/carousel/tet-carousel/tet-carousel.d.ts +6 -2
- package/dist/types/components.d.ts +64 -0
- package/dist/types/services/validators/index.d.ts +2 -1
- package/dist/types/services/validators/validators/e-mail.d.ts +28 -0
- package/package.json +1 -1
- package/dist/tet-components/p-27e3fced.entry.js +0 -1
- package/dist/tet-components/p-3dc55358.entry.js +0 -1
- package/dist/tet-components/p-49f6e950.entry.js +0 -1
- package/dist/tet-components/p-71e2fe80.js +0 -1
- package/dist/tet-components/p-91d85a07.entry.js +0 -1
package/dist/collection/components/advanced/forms/tet-b2b-check-out-form/tet-b2b-check-out-form.js
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { h, forceUpdate } from "@stencil/core";
|
|
2
|
+
import { processTranslations, t } from "../../../../services/translations/index";
|
|
3
|
+
import { EMailAddressValidator, PhoneNumberValidator, RequiredValidator } from "../../../../services/validators/index";
|
|
4
|
+
/**
|
|
5
|
+
* A simple contact form for submitting company details and cart details.'
|
|
6
|
+
*/
|
|
7
|
+
export class TetAvailabilityContactForm {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.language = 'lv';
|
|
10
|
+
this.theme = undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The watch to update translations.
|
|
14
|
+
* @param language
|
|
15
|
+
*/
|
|
16
|
+
onLanguageChange(language) {
|
|
17
|
+
processTranslations('tet-components', language).then(() => forceUpdate(this));
|
|
18
|
+
}
|
|
19
|
+
/** Method to open check out form */
|
|
20
|
+
/** Method to open check out form */
|
|
21
|
+
async open() {
|
|
22
|
+
await this.dialogElement.open();
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Lifecycle method.
|
|
26
|
+
*/
|
|
27
|
+
async componentWillLoad() {
|
|
28
|
+
await processTranslations('tet-components', this.language);
|
|
29
|
+
forceUpdate(this);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get validators for each input form and set error messages.
|
|
33
|
+
*/
|
|
34
|
+
getValidators(label, isPhoneNr) {
|
|
35
|
+
const cleanLabel = label.trim().toLowerCase().replace(',', ' un');
|
|
36
|
+
let errorText = '';
|
|
37
|
+
switch (cleanLabel.charAt(cleanLabel.length - 1)) {
|
|
38
|
+
case 's':
|
|
39
|
+
{
|
|
40
|
+
isPhoneNr ? (errorText = cleanLabel.replace('is', 'i')) : (errorText = cleanLabel.replace(/[s]\b/g, 'u'));
|
|
41
|
+
}
|
|
42
|
+
break;
|
|
43
|
+
case 'e':
|
|
44
|
+
{
|
|
45
|
+
errorText = cleanLabel.replace(/[e]\b/g, 'i');
|
|
46
|
+
}
|
|
47
|
+
break;
|
|
48
|
+
default:
|
|
49
|
+
errorText = cleanLabel;
|
|
50
|
+
}
|
|
51
|
+
const errorMessage = `${t('components-b2b-check-out-form-validation-error')} ${this.language === 'lv' ? errorText : cleanLabel}`;
|
|
52
|
+
let validators = [new RequiredValidator(errorMessage)];
|
|
53
|
+
if (cleanLabel === 'e-pasts') {
|
|
54
|
+
validators = [
|
|
55
|
+
new RequiredValidator(errorMessage),
|
|
56
|
+
new EMailAddressValidator('components-b2b-check-out-form-email-validation-error')
|
|
57
|
+
];
|
|
58
|
+
}
|
|
59
|
+
if (isPhoneNr) {
|
|
60
|
+
validators = [
|
|
61
|
+
new RequiredValidator(errorMessage),
|
|
62
|
+
new PhoneNumberValidator('components-validation-incorrect-phone')
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
return validators;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Render Input 'tet-input' element.
|
|
69
|
+
* @param {string} id
|
|
70
|
+
* @param {string} label
|
|
71
|
+
* @param {string} placeholder
|
|
72
|
+
* @param {boolean} isPhoneNr
|
|
73
|
+
* @returns {HTMLTetInputElement}
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
76
|
+
renderInput(id, label, placeholder, isPhoneNr) {
|
|
77
|
+
return (h("tet-input", Object.assign({ id: id, class: "modal-form-card__input", theme: this.theme, label: `${label} *`, placeholder: placeholder || label }, (isPhoneNr && { isPhoneNumber: true }), { validators: this.getValidators(label, isPhoneNr) })));
|
|
78
|
+
}
|
|
79
|
+
/** Validates all input fields and returns whether all of them are valid or not. */
|
|
80
|
+
async validateInputFields() {
|
|
81
|
+
const inputElements = Array.from(this.checkOutForm.getElementsByTagName('tet-input'));
|
|
82
|
+
const errorPromise = Object.values(inputElements).map(async (value) => value.validateInput());
|
|
83
|
+
const errors = (await Promise.all(errorPromise)).filter((data) => data && data.length > 0);
|
|
84
|
+
const checkBoxElement = Array.from(this.checkOutForm.getElementsByTagName('tet-checkbox'))[0];
|
|
85
|
+
checkBoxElement.setError(!checkBoxElement.checked);
|
|
86
|
+
const checkBoxError = !checkBoxElement.checked;
|
|
87
|
+
return errors.length === 0 && !checkBoxError;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Check validation and emit values on form submit
|
|
91
|
+
* @returns {Promise<void>}
|
|
92
|
+
* @private
|
|
93
|
+
*/
|
|
94
|
+
async handleSubmit() {
|
|
95
|
+
const inputFieldsValid = await this.validateInputFields();
|
|
96
|
+
if (!inputFieldsValid) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const inputElements = Array.from(this.checkOutForm.getElementsByTagName('tet-input'));
|
|
100
|
+
let emitValue = {};
|
|
101
|
+
inputElements.forEach((item) => {
|
|
102
|
+
const value = item.querySelector('input').value;
|
|
103
|
+
emitValue = Object.assign(Object.assign({}, emitValue), { [item.id]: value });
|
|
104
|
+
});
|
|
105
|
+
this.submitCheckOutForm.emit(emitValue);
|
|
106
|
+
}
|
|
107
|
+
render() {
|
|
108
|
+
const { theme } = this;
|
|
109
|
+
return (h("tet-dialog", { key: '625a2ce1c2fea9989928bd28152bc82361c51415', class: "modal-form-card", headerTitle: t('components-b2b-check-out-form-header'), isOpen: true, theme: theme, closeOnOverlayClick: false, footerDisplay: "right", ref: (el) => {
|
|
110
|
+
this.dialogElement = el;
|
|
111
|
+
} }, h("div", { key: '7d2835b974036f7ccd96b9023b65ca5b24f52c36', class: { 'modal-form-card-content': true, [`${theme}`]: true } }, h("div", { key: '2a4108f8754926f29b8a95bbee90b3b932bfb765', class: "modal-form-card-content-header" }, h("div", { key: '550a049b61a1a73da0a95abffff491999ae0bf2c', class: "icon-wrapper" }, h("tet-icon", { key: 'ff6f639a24995a781ff69cca5f002c3b9e6769dc', class: "icon", name: "tc-company-1" })), h("span", { key: '7360e74b5031ebb57a38150436464bd2f173b552', class: "modal-form-card-content-header__title" }, t('components-b2b-check-out-form-title')), h("span", { key: '5533826b9de6c733e5e5db6e3b071991ea9836de', class: "modal-form-card-content-header__description" }, t('components-b2b-check-out-form-description'))), h("div", { key: 'ce30106966dab043ed0c413b598cd997847386c1', class: "modal-form-card-content-accordion-wrapper" }, h("slot", { key: '13f88a4745947b4d4080cb0200efce79097693f6', name: 'cart' })), h("form", { key: '31cab120f2affbeb55aa87d7096f2be77b2b2e72', id: "checkOutForm", class: "modal-form-card-form", ref: (ref) => (this.checkOutForm = ref) }, h("div", { key: '373f441cd918c771e5ed69d45d78bb6b0b7e93f4', class: "modal-form-card-input__row" }, this.renderInput('companyRegNr', t('components-b2b-check-out-form-company-registration-number-input-label'), '40000000001'), this.renderInput('companyName', t('components-b2b-check-out-form-company-name-input-label'))), this.renderInput('address', t('components-b2b-check-out-form-address-input-label'), t('components-b2b-check-out-form-address-input-placeholder')), this.renderInput('nameSurname', t('components-b2b-check-out-form-name-input-label')), h("div", { key: '009164222b176cd5dc1ef5979066d3b172a403c8', class: "modal-form-card-input__row" }, this.renderInput('email', t('components-b2b-check-out-form-email-input-label'), 'contact@company.com'), this.renderInput('phoneNr', t('components-b2b-check-out-form-phone-number-input-label'), '123456789', true)), h("tet-checkbox", { key: 'd2dd9e4dda4ef46b7e7fa781433e710c9fff0305', class: "modal-form-card-content-checkbox", label: t('components-check-out-form-privacy-policy'), theme: theme }))), h("div", { key: '6998bb68a9093aa5d651e3c188628b4b2049e2f9', slot: "footer", class: "modal-form-card-footer" }, h("tet-button", { key: '79e85571651f2b9638d61c7b55d6da22a8c0409c', type: "secondary", size: "medium", theme: theme, onClick: () => {
|
|
112
|
+
this.dialogElement.close();
|
|
113
|
+
} }, t('components-b2b-check-out-form-close-button-label')), h("tet-button", { key: '21446b2cb81d26ac6fcea843af2e4a232913e9d6', type: "primary", size: "medium", theme: theme, onClick: () => this.handleSubmit() }, t('components-b2b-check-out-form-submit-button-label')))));
|
|
114
|
+
}
|
|
115
|
+
static get is() { return "tet-b2b-check-out-form"; }
|
|
116
|
+
static get encapsulation() { return "shadow"; }
|
|
117
|
+
static get originalStyleUrls() {
|
|
118
|
+
return {
|
|
119
|
+
"$": ["tet-b2b-check-out-form.scss"]
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
static get styleUrls() {
|
|
123
|
+
return {
|
|
124
|
+
"$": ["tet-b2b-check-out-form.css"]
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
static get properties() {
|
|
128
|
+
return {
|
|
129
|
+
"language": {
|
|
130
|
+
"type": "string",
|
|
131
|
+
"mutable": false,
|
|
132
|
+
"complexType": {
|
|
133
|
+
"original": "string",
|
|
134
|
+
"resolved": "string",
|
|
135
|
+
"references": {}
|
|
136
|
+
},
|
|
137
|
+
"required": false,
|
|
138
|
+
"optional": false,
|
|
139
|
+
"docs": {
|
|
140
|
+
"tags": [],
|
|
141
|
+
"text": "The translation language code for the component."
|
|
142
|
+
},
|
|
143
|
+
"attribute": "language",
|
|
144
|
+
"reflect": false,
|
|
145
|
+
"defaultValue": "'lv'"
|
|
146
|
+
},
|
|
147
|
+
"theme": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"mutable": false,
|
|
150
|
+
"complexType": {
|
|
151
|
+
"original": "'light' | 'dark'",
|
|
152
|
+
"resolved": "\"dark\" | \"light\"",
|
|
153
|
+
"references": {}
|
|
154
|
+
},
|
|
155
|
+
"required": false,
|
|
156
|
+
"optional": false,
|
|
157
|
+
"docs": {
|
|
158
|
+
"tags": [],
|
|
159
|
+
"text": "Theme for the form"
|
|
160
|
+
},
|
|
161
|
+
"attribute": "theme",
|
|
162
|
+
"reflect": false
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
static get events() {
|
|
167
|
+
return [{
|
|
168
|
+
"method": "submitCheckOutForm",
|
|
169
|
+
"name": "submit-check-out-form",
|
|
170
|
+
"bubbles": true,
|
|
171
|
+
"cancelable": true,
|
|
172
|
+
"composed": true,
|
|
173
|
+
"docs": {
|
|
174
|
+
"tags": [],
|
|
175
|
+
"text": "Event emit when form filled successfully"
|
|
176
|
+
},
|
|
177
|
+
"complexType": {
|
|
178
|
+
"original": "any",
|
|
179
|
+
"resolved": "any",
|
|
180
|
+
"references": {}
|
|
181
|
+
}
|
|
182
|
+
}];
|
|
183
|
+
}
|
|
184
|
+
static get methods() {
|
|
185
|
+
return {
|
|
186
|
+
"open": {
|
|
187
|
+
"complexType": {
|
|
188
|
+
"signature": "() => Promise<void>",
|
|
189
|
+
"parameters": [],
|
|
190
|
+
"references": {
|
|
191
|
+
"Promise": {
|
|
192
|
+
"location": "global",
|
|
193
|
+
"id": "global::Promise"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"return": "Promise<void>"
|
|
197
|
+
},
|
|
198
|
+
"docs": {
|
|
199
|
+
"text": "Method to open check out form",
|
|
200
|
+
"tags": []
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
static get watchers() {
|
|
206
|
+
return [{
|
|
207
|
+
"propName": "language",
|
|
208
|
+
"methodName": "onLanguageChange"
|
|
209
|
+
}];
|
|
210
|
+
}
|
|
211
|
+
}
|
|
@@ -64,7 +64,7 @@ export class TetContactForm {
|
|
|
64
64
|
processTranslations('tet-components', this.language).then(() => forceUpdate(this));
|
|
65
65
|
}
|
|
66
66
|
render() {
|
|
67
|
-
return (h("div", { key: '
|
|
67
|
+
return (h("div", { key: '5337fe783b63b1459097a0161fcc763c31985d6e', class: { 'dark-theme': this.darkTheme } }, h("tet-container", { key: '7482718f33d5f8ebf0509ddfeeca8f39eb50bdb4', class: "container" }, this.showLoader && this.renderLoader(), h("div", { key: '321cb3744af611a77f20cf190343425ac6f4ed28', class: "form-container" }, this.showTitle && h("h2", { key: '075e557fd1cccb3e2f3f9bed6cbcee092cf588fe', class: "form-title" }, t('components-contact-form-title')), h("p", { key: '849598795be4ce3941a29e5bd20d7112cb37b4fa', class: "form-subtitle" }, t(this.subtitle)), h("tet-input", { key: '67756b83628a2ea5d53164d28317a58095a49dec', class: "form-input", placeholder: "+37122345678", ref: (element) => this.phoneInput = element, validators: this.validators, label: this.showInputLabel ? t('components-contact-form-input-label') : null, theme: this.darkTheme ? 'dark' : 'classic' }), h("tet-button", Object.assign({ key: 'a62d8c6641769ab7daefc6dfe4be705daf8e85b0', class: "form-submit", type: "primary", clickCallback: this.createManualTask, innerHTML: t('components-contact-form-submit') }, this.submitButtonProps))))));
|
|
68
68
|
}
|
|
69
69
|
static get is() { return "tet-contact-form"; }
|
|
70
70
|
static get encapsulation() { return "shadow"; }
|
|
@@ -32,7 +32,7 @@ export class TetTvGiftBlock {
|
|
|
32
32
|
this.setContainerSize();
|
|
33
33
|
}
|
|
34
34
|
render() {
|
|
35
|
-
return (h(Host, { key: '
|
|
35
|
+
return (h(Host, { key: 'f52e7c4d06337ff2a3ee9a4401d38510f1d04a2c' }, h("div", { key: '0a513352081a17b9bae472df5a0aba40a9fa3ce2', class: { 'tv-gift': true, [`tv-gift--${this.containerSize}`]: true } }, h("div", { key: 'a047f3784cb12829fa67e3f848504332ee7549f6', class: "tv-gift__header" }, h("slot", { key: '853df25206c528d4f141cd1868ae45a8433c2abe', name: "header" }, this.headerImageSrc && h("img", { key: 'c63f7a65d9dfbb33cac7693791581a5d977bd781', class: "tv-gift__header__image", src: this.headerImageSrc }), h("div", { key: '6d9be04e54e83211f9e7763979c67589c3527f18', class: "tv-gift__header-text" }, this.headerTitle))), h("div", { key: '0dc796c85d1216630c788b28ccc9b32d7743dc7f', class: "tv-gift__content" }, h("slot", { key: '3379d6254cb7683a007f311a4957673f94d1dbc1' })), h("div", { key: '2d791b6152a5925a475170ef69a3b555ff4a2a20', class: "tv-gift__footer" }, h("slot", { key: '433f495e76106ba85a4d320ab8969cdafdaf5885', name: "footer" }, h("span", { key: 'bcc7f1c5a1c80ede10fa25ca6e450cbc57872518', class: "tv-gift__footer__title" }, this.footerTitle), h("span", { key: '7bbc60c57b99a81682e650d5bf0a6c85dd18e523', class: "tv-gift__footer__text" }, this.footerText))))));
|
|
36
36
|
}
|
|
37
37
|
static get is() { return "tet-tv-gift-block"; }
|
|
38
38
|
static get encapsulation() { return "shadow"; }
|
package/dist/collection/components/advanced/promotions/tv-gift/tet-tv-gift-list/tet-tv-gift-list.js
CHANGED
|
@@ -34,11 +34,11 @@ export class TetTvGiftList {
|
|
|
34
34
|
this.setContainerSize();
|
|
35
35
|
}
|
|
36
36
|
render() {
|
|
37
|
-
return (h(Host, { key: '
|
|
37
|
+
return (h(Host, { key: 'e7aa7d57d3f13d7dfb6cbb60dac025e5a3cb4b8c' }, h("div", { key: 'c6492c2bf632b40e1d985557b25aa502c44e661b', class: {
|
|
38
38
|
'tv-gift-list': true,
|
|
39
39
|
[`tv-gift-list--${this.containerSize}`]: true,
|
|
40
40
|
'tv-gift-list--image-list': Boolean(this.imageSource),
|
|
41
|
-
} }, this.imageSource && (h("div", { key: '
|
|
41
|
+
} }, this.imageSource && (h("div", { key: '5a3a007d64e25a31a211b849700189898c6146ad', class: "tv-gift-list__image__wrapper" }, h("img", { key: 'a72082bcfef3122b807d800005276f7165f2b99a', class: "tv-gift-list__image", src: this.imageSource }))), h("div", { key: 'f917798eeaf114f5a10689f82021aa899dc5c4ca', class: "tv-gift-list__list__wrapper" }, h("span", { key: '7b26fee22611b25212904c28f9604ef0f09a8600', class: "tv-gift-list__list__header" }, this.header), h("ul", { key: 'd37925aa32c8c53581a25446556c1c8beced3e96', class: "tv-gift-list__list" }, this.list.map(item => (h("li", { class: "tv-gift-list__list__item" }, h("tet-icon", { name: this.listBulletIcon }), item))))))));
|
|
42
42
|
}
|
|
43
43
|
static get is() { return "tet-tv-gift-list"; }
|
|
44
44
|
static get encapsulation() { return "shadow"; }
|
package/dist/collection/components/basic/buttons/tet-tabs/tet-tab-content/tet-tab-content.js
CHANGED
|
@@ -157,11 +157,11 @@ export class TetTabContent {
|
|
|
157
157
|
this.selectedId = id;
|
|
158
158
|
}
|
|
159
159
|
render() {
|
|
160
|
-
return (h(Host, { key: '
|
|
160
|
+
return (h(Host, { key: '1580679fe80288da68795eb04ce918f4d8c6af64' }, h("div", { key: 'ebdd59fcbf34fe26e1afcb019235b17707368187', class: {
|
|
161
161
|
'tet-tab-content': true,
|
|
162
162
|
'use-visibility': this.useVisibility,
|
|
163
163
|
[this.theme]: true
|
|
164
|
-
} }, h("slot", { key: '
|
|
164
|
+
} }, h("slot", { key: '4e7ee562756fbea45495666f876da1baa810dfb3' }))));
|
|
165
165
|
}
|
|
166
166
|
static get is() { return "tet-tab-content"; }
|
|
167
167
|
static get encapsulation() { return "shadow"; }
|
|
@@ -468,7 +468,7 @@ export class TetTabHeader {
|
|
|
468
468
|
return {};
|
|
469
469
|
}
|
|
470
470
|
render() {
|
|
471
|
-
return (h(Host, { key: '
|
|
471
|
+
return (h(Host, { key: '8e9af5049a6bb8a859c244cb96dceca67d2fc556', "data-id-suffix": this.idSuffix }, h("div", { key: '894811c0f2bc7c99e64c1de93d1b515dbde20d87', class: {
|
|
472
472
|
'tabs': true,
|
|
473
473
|
'tabs--segmented': this.segmented,
|
|
474
474
|
'dark': this.darkMode,
|
|
@@ -476,7 +476,7 @@ export class TetTabHeader {
|
|
|
476
476
|
[this.theme]: true,
|
|
477
477
|
[this.sizing]: true,
|
|
478
478
|
[this.type]: !!this.type
|
|
479
|
-
}, onMouseDown: this.onContainerMouseDown, style: this.getStyle(), ref: (ref) => (this.tabElement = ref), role: "tablist" }, h("slot", { key: '
|
|
479
|
+
}, onMouseDown: this.onContainerMouseDown, style: this.getStyle(), ref: (ref) => (this.tabElement = ref), role: "tablist" }, h("slot", { key: '84ed4fee9a29fcd2edf2c0b185b2b49a6b7e0b25', ref: (slot) => (this.tabContainer = slot) })), h("div", { key: 'fda7d023f752a285189ddb6115f9d077b1a69702', class: { 'tabs-line': !this.segmented, 'no-underline': this.hideHeaderUnderline } })));
|
|
480
480
|
}
|
|
481
481
|
static get is() { return "tet-tab-header"; }
|
|
482
482
|
static get encapsulation() { return "shadow"; }
|
|
@@ -20,12 +20,12 @@ export class TetTag {
|
|
|
20
20
|
processTranslations('tet-components', this.language).then(() => forceUpdate(this));
|
|
21
21
|
}
|
|
22
22
|
render() {
|
|
23
|
-
return (h(Host, { key: '
|
|
23
|
+
return (h(Host, { key: 'b6dffe961943e852133995f35073a563b024340e' }, h("button", { key: '48590aaad3bf03f9eff3690059deed93f4468314', class: {
|
|
24
24
|
tag: true,
|
|
25
25
|
'tag-active': this.active,
|
|
26
26
|
'tag--icon': this.showIcon,
|
|
27
27
|
[`theme-${this.theme}`]: true,
|
|
28
|
-
}, "aria-pressed": this.active.toString(), disabled: this.disabled }, this.tagTitle && h("p", { key: '
|
|
28
|
+
}, "aria-pressed": this.active.toString(), disabled: this.disabled }, this.tagTitle && h("p", { key: '9ddacbb44d1d26a8aef5a0be1dc121585055ecba', class: "tag-title" }, t(this.tagTitle)), this.count !== null && this.count !== undefined && h("span", { key: '67d5d37be4b670c6537f12884fd0c7aca57d64a5', class: "tag-count" }, this.count), this.showIcon && h("tet-icon", { key: '67c35afca626a00be20ea8a0ad3b70c132dfb34a', class: "tag-icon", name: "close-circle", part: "icon-selected" }))));
|
|
29
29
|
}
|
|
30
30
|
static get is() { return "tet-tag"; }
|
|
31
31
|
static get encapsulation() { return "shadow"; }
|
|
@@ -20,7 +20,9 @@ describe('tet-carousel', () => {
|
|
|
20
20
|
class="tet-carousel__gradient-right"
|
|
21
21
|
style="opacity: 0;"
|
|
22
22
|
></div>
|
|
23
|
-
<div
|
|
23
|
+
<div
|
|
24
|
+
class="tet-carousel__track tet-carousel__track--center"
|
|
25
|
+
style="transform: translateX(0px); transition: transform 500ms cubic-bezier(0.77,0,0.175,1);">
|
|
24
26
|
<slot></slot>
|
|
25
27
|
</div>
|
|
26
28
|
</div>
|
|
@@ -47,7 +49,9 @@ describe('tet-carousel', () => {
|
|
|
47
49
|
class="tet-carousel__gradient-right"
|
|
48
50
|
style="opacity: 0;"
|
|
49
51
|
></div>
|
|
50
|
-
<div
|
|
52
|
+
<div
|
|
53
|
+
class="tet-carousel__track tet-carousel__track--center"
|
|
54
|
+
style="transform: translateX(0px); transition: transform 500ms cubic-bezier(0.77,0,0.175,1);">
|
|
51
55
|
<slot></slot>
|
|
52
56
|
</div>
|
|
53
57
|
</div>
|
|
@@ -383,6 +383,7 @@
|
|
|
383
383
|
--carousel-gradient-light: var(--tc-background-primary);
|
|
384
384
|
--carousel-gradient-dark: var(--tc-background-primary-dark);
|
|
385
385
|
--carousel-gradient: var(--carousel-gradient-light);
|
|
386
|
+
-webkit-tap-highlight-color: transparent;
|
|
386
387
|
display: inline-block;
|
|
387
388
|
cursor: pointer;
|
|
388
389
|
width: 100%;
|
|
@@ -430,6 +431,9 @@
|
|
|
430
431
|
will-change: transform;
|
|
431
432
|
gap: var(--carousel-track-gap);
|
|
432
433
|
}
|
|
434
|
+
.tet-carousel__track--center {
|
|
435
|
+
justify-content: center;
|
|
436
|
+
}
|
|
433
437
|
.tet-carousel__track > * {
|
|
434
438
|
flex-shrink: 0;
|
|
435
439
|
display: flex;
|
|
@@ -9,6 +9,7 @@ export class TetCarousel {
|
|
|
9
9
|
this.preventClickOnDocument = (ev) => {
|
|
10
10
|
ev.preventDefault();
|
|
11
11
|
ev.stopPropagation();
|
|
12
|
+
document.removeEventListener('click', this.preventClickOnDocument, { capture: true });
|
|
12
13
|
};
|
|
13
14
|
this.trackElement = null;
|
|
14
15
|
this.dragStartX = 0;
|
|
@@ -23,16 +24,28 @@ export class TetCarousel {
|
|
|
23
24
|
}
|
|
24
25
|
};
|
|
25
26
|
this.handlePrev = () => {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
this.afterLayout(() => {
|
|
28
|
+
const visibleItems = Math.max(1, this.getFullyVisibleItemCount());
|
|
29
|
+
if (this.activeItem && this.activeItem < visibleItems) {
|
|
30
|
+
this.activeItem -= this.activeItem;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.activeItem -= visibleItems;
|
|
34
|
+
}
|
|
35
|
+
this.handleMove();
|
|
36
|
+
});
|
|
30
37
|
};
|
|
31
38
|
this.handleNext = () => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
this.afterLayout(() => {
|
|
40
|
+
const visibleItems = Math.max(1, this.getFullyVisibleItemCount());
|
|
41
|
+
if (this.totalItems - this.activeItem < visibleItems) {
|
|
42
|
+
this.activeItem = this.totalItems;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.activeItem += visibleItems;
|
|
46
|
+
}
|
|
47
|
+
this.handleMove();
|
|
48
|
+
});
|
|
36
49
|
};
|
|
37
50
|
this.moveToLastScreen = () => {
|
|
38
51
|
const wrapperWidth = this.getViewportWidth();
|
|
@@ -127,11 +140,17 @@ export class TetCarousel {
|
|
|
127
140
|
// Let the once:true capture handler auto-remove itself. Clear flag after a tick.
|
|
128
141
|
if (this.clickPreventAdded) {
|
|
129
142
|
setTimeout(() => {
|
|
143
|
+
document.removeEventListener('click', this.preventClickOnDocument, { capture: true });
|
|
130
144
|
this.clickPreventAdded = false;
|
|
131
145
|
}, 0);
|
|
132
146
|
}
|
|
133
147
|
if (Math.abs(this.dragOffset - this.swipeStart) > this.swipeThreshold) {
|
|
134
|
-
this.
|
|
148
|
+
if (this.dragOffset - this.swipeStart < 0) {
|
|
149
|
+
this.handleNext();
|
|
150
|
+
}
|
|
151
|
+
if (this.dragOffset - this.swipeStart > 0) {
|
|
152
|
+
this.handlePrev();
|
|
153
|
+
}
|
|
135
154
|
}
|
|
136
155
|
document.body.style.userSelect = '';
|
|
137
156
|
document.removeEventListener('pointermove', this.onPointerMove);
|
|
@@ -178,7 +197,7 @@ export class TetCarousel {
|
|
|
178
197
|
let assigned = slot.assignedElements ? slot.assignedElements() : [];
|
|
179
198
|
if (assigned.length === 0)
|
|
180
199
|
return undefined;
|
|
181
|
-
if (assigned[0].className.includes(
|
|
200
|
+
if (assigned[0].className.includes('carousel-wrapper')) {
|
|
182
201
|
assigned = Array.from(assigned[0].children);
|
|
183
202
|
}
|
|
184
203
|
return assigned;
|
|
@@ -191,9 +210,13 @@ export class TetCarousel {
|
|
|
191
210
|
var _a, _b;
|
|
192
211
|
return ((_b = (_a = this.trackElement) === null || _a === void 0 ? void 0 : _a.querySelector('slot')) === null || _b === void 0 ? void 0 : _b.offsetWidth) || window.innerWidth;
|
|
193
212
|
}
|
|
213
|
+
// Run a callback after layout/paint to ensure DOM measurements are up to date
|
|
214
|
+
afterLayout(cb) {
|
|
215
|
+
requestAnimationFrame(() => requestAnimationFrame(cb));
|
|
216
|
+
}
|
|
194
217
|
getDotScreenLength() {
|
|
195
218
|
const totalWidth = this.getSlotClientWidth();
|
|
196
|
-
return
|
|
219
|
+
return totalWidth / this.dotCount;
|
|
197
220
|
}
|
|
198
221
|
isLast(lastScreenBorder, position) {
|
|
199
222
|
const totalWidth = this.getSlotClientWidth();
|
|
@@ -209,6 +232,27 @@ export class TetCarousel {
|
|
|
209
232
|
const lastScreenBorder = Math.max(dotScreenLength, viewportWidth);
|
|
210
233
|
return this.isLast(lastScreenBorder, position);
|
|
211
234
|
}
|
|
235
|
+
getFullyVisibleItemCount() {
|
|
236
|
+
const assigned = this.getSlotElements();
|
|
237
|
+
if (!assigned || assigned.length === 0)
|
|
238
|
+
return 0;
|
|
239
|
+
const viewportWidth = this.getViewportWidth();
|
|
240
|
+
const absOffset = Math.abs(this.dragOffset);
|
|
241
|
+
const visibleLeft = absOffset;
|
|
242
|
+
const visibleRight = absOffset + viewportWidth;
|
|
243
|
+
let count = 0;
|
|
244
|
+
for (const item of assigned) {
|
|
245
|
+
const rect = item.getBoundingClientRect();
|
|
246
|
+
const trackRect = this.trackElement.getBoundingClientRect();
|
|
247
|
+
const relativeLeft = rect.left - trackRect.left;
|
|
248
|
+
const relativeRight = relativeLeft + item.offsetWidth;
|
|
249
|
+
// Fully visible when the entire item falls inside the viewport window
|
|
250
|
+
if (relativeLeft >= visibleLeft && relativeRight <= visibleRight) {
|
|
251
|
+
count++;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return count;
|
|
255
|
+
}
|
|
212
256
|
checkGradient() {
|
|
213
257
|
if (this.showGradient) {
|
|
214
258
|
const absOffset = Math.abs(this.dragOffset);
|
|
@@ -218,42 +262,37 @@ export class TetCarousel {
|
|
|
218
262
|
if (rightEdgeDistance >= 0) {
|
|
219
263
|
const rightEdge = rightEdgeDistance < 16;
|
|
220
264
|
if (absOffset < 16) {
|
|
221
|
-
this.leftGradientRef.style.opacity =
|
|
222
|
-
this.rightGradientRef.style.opacity =
|
|
265
|
+
this.leftGradientRef.style.opacity = '0';
|
|
266
|
+
this.rightGradientRef.style.opacity = '1';
|
|
223
267
|
}
|
|
224
268
|
else if (rightEdge) {
|
|
225
|
-
this.leftGradientRef.style.opacity =
|
|
226
|
-
this.rightGradientRef.style.opacity =
|
|
269
|
+
this.leftGradientRef.style.opacity = '1';
|
|
270
|
+
this.rightGradientRef.style.opacity = '0';
|
|
227
271
|
}
|
|
228
272
|
else {
|
|
229
|
-
this.leftGradientRef.style.opacity =
|
|
230
|
-
this.rightGradientRef.style.opacity =
|
|
273
|
+
this.leftGradientRef.style.opacity = '1';
|
|
274
|
+
this.rightGradientRef.style.opacity = '1';
|
|
231
275
|
}
|
|
232
276
|
}
|
|
233
277
|
}
|
|
234
278
|
else {
|
|
235
|
-
this.leftGradientRef.style.opacity =
|
|
236
|
-
this.rightGradientRef.style.opacity =
|
|
279
|
+
this.leftGradientRef.style.opacity = '0';
|
|
280
|
+
this.rightGradientRef.style.opacity = '0';
|
|
237
281
|
}
|
|
238
282
|
}
|
|
239
283
|
getDotCount() {
|
|
240
284
|
const assigned = this.getSlotElements();
|
|
241
|
-
if (!assigned)
|
|
285
|
+
if (!assigned) {
|
|
286
|
+
this.dotCount = 1;
|
|
287
|
+
this.totalItems = 0;
|
|
242
288
|
return 1;
|
|
289
|
+
}
|
|
243
290
|
this.totalItems = assigned.length;
|
|
244
291
|
const viewportWidth = this.getViewportWidth();
|
|
245
292
|
const totalWidth = this.getSlotClientWidth();
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const trackRect = this.trackElement.getBoundingClientRect();
|
|
250
|
-
let relativeLeft = rect.left - trackRect.left;
|
|
251
|
-
if (relativeLeft > totalWidth - viewportWidth) {
|
|
252
|
-
this.dotCount = Math.min(this === null || this === void 0 ? void 0 : this.maxDots, count + 1);
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
count = Math.min(this === null || this === void 0 ? void 0 : this.maxDots, Math.ceil(relativeLeft / viewportWidth));
|
|
256
|
-
});
|
|
293
|
+
// Precise: add a dot whenever there's any overflow beyond a full viewport
|
|
294
|
+
const exactScreens = Math.ceil(totalWidth / Math.max(1, viewportWidth));
|
|
295
|
+
this.dotCount = Math.max(1, Math.min(this === null || this === void 0 ? void 0 : this.maxDots, exactScreens));
|
|
257
296
|
}
|
|
258
297
|
calculateGradient(item, relativeLeft) {
|
|
259
298
|
const totalWidth = this.getSlotClientWidth();
|
|
@@ -264,6 +303,31 @@ export class TetCarousel {
|
|
|
264
303
|
gradientOffset = relativeRight < 160 ? 0 : gradientOffset;
|
|
265
304
|
return gradientOffset;
|
|
266
305
|
}
|
|
306
|
+
// private disableTabIndex() {
|
|
307
|
+
// const buttonComponents = this.container.querySelectorAll('tet-button');
|
|
308
|
+
// buttonComponents.forEach((btnComponent) => {
|
|
309
|
+
// const btn = btnComponent.shadowRoot.querySelector('button');
|
|
310
|
+
// btn.setAttribute('tabIndex', '-1');
|
|
311
|
+
// });
|
|
312
|
+
// }
|
|
313
|
+
_showButtons() {
|
|
314
|
+
if (!this.showButtons) {
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
317
|
+
if (this.getFullyVisibleItemCount() >= this.totalItems) {
|
|
318
|
+
return false;
|
|
319
|
+
}
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
_showDots() {
|
|
323
|
+
if (!this.showDots) {
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
if (this.getFullyVisibleItemCount() && this.getFullyVisibleItemCount() >= this.totalItems) {
|
|
327
|
+
return false;
|
|
328
|
+
}
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
267
331
|
componentDidLoad() {
|
|
268
332
|
this.getDotCount();
|
|
269
333
|
window.addEventListener('resize', this.getDotCount.bind(this));
|
|
@@ -330,12 +394,16 @@ export class TetCarousel {
|
|
|
330
394
|
window.removeEventListener('resize', this.getDotCount.bind(this));
|
|
331
395
|
}
|
|
332
396
|
render() {
|
|
333
|
-
return (h(Host, { key: '
|
|
397
|
+
return (h(Host, { key: '2fb6cf4c78e60146bb31f2a1b869c34678127ccf' }, h("div", { key: '07b12ea6938caec2de4141f264ae6d70f0f72339', class: { 'tet-carousel': true, [`${this.theme}`]: true }, ref: (el) => (this.container = el), part: "carousel" }, h("div", { key: '5909f4683c8503f5437026db0a9b0f08a1d1823b', class: "tet-carousel__container" }, h("div", { key: '82b3021f9fb3ad1c9cbbaa6407a8885e4e8eebf2', class: "tet-carousel__gradient-left", ref: (el) => {
|
|
398
|
+
this.leftGradientRef = el;
|
|
399
|
+
} }), h("div", { key: '2b22c2b12804f12a644725ef9378722025e0d143', class: "tet-carousel__gradient-right", ref: (el) => {
|
|
400
|
+
this.rightGradientRef = el;
|
|
401
|
+
} }), h("div", { key: 'e4615d0213134aeaff5e35235bc82af52f51ee22', class: `tet-carousel__track ${!this._showButtons() && !this._showDots() ? 'tet-carousel__track--center' : ''}`, ref: (el) => (this.trackElement = el), style: {
|
|
334
402
|
transform: `translateX(${this.dragOffset}px)`,
|
|
335
403
|
transition: this.isDragging ? 'none' : `transform ${this.transitionDuration}ms ${this.transitionTiming}`
|
|
336
|
-
}, onPointerDown: this.onPointerDown, onMouseMove: this.onPointerMove, onPointerUp: this.onPointerUp, onMouseLeave: this.onPointerUp }, h("slot", { key: '
|
|
337
|
-
|
|
338
|
-
|
|
404
|
+
}, onPointerDown: this.onPointerDown, onMouseMove: this.onPointerMove, onPointerUp: this.onPointerUp, onMouseLeave: this.onPointerUp }, h("slot", { key: '490c22255126117175594c86b9338057266e5170' }))), (this._showButtons() || this._showDots()) && (h("div", { key: 'f6b2f9d092fd8958b2577fbfffe890be18c4d238', class: "tet-carousel__controls" }, this._showButtons() && (h("div", { key: 'e39c9c013ca4c0b2d1a062668c0addea084afb9c', class: "tet-carousel__buttons tet-carousel__buttons--mobile" }, h("tet-button", { key: '8c179655831cfd383ed98621aef152d3f45ee06e', class: "tet-carousel__btn", theme: this.theme === 'light' ? 'dark' : 'light', "icon-name": this.buttonIconLeft, "icon-mode": true, tabIndex: -1, onClick: this.handlePrev, "aria-label": t('components-carousel-previous'), disabled: this.dotCount <= 1 || this.activeItem === 0 }))), this._showDots() && (h("div", { key: '9b4140ae4f1070afe8a656ee2282766556f9aa8c', class: "tet-carousel__dots" }, Array.from({ length: this.dotCount }).map((_, idx) => (h("button", { type: "button", tabIndex: -1, class: `tet-carousel__dot${idx === this.activeDotIndex ? ' active' : ''}`, key: idx, onClick: () => this.handleDotClick(idx) }))))), this._showButtons() && (h("div", { key: '153e2093dd5e9c521c324c501e73f4ed10c8edd0', class: "tet-carousel__buttons " }, h("tet-button", { key: 'fcd9e964507e75f29dccf3322274f5213937218c', class: "tet-carousel__buttons--desktop tet-carousel__btn ", theme: this.theme === 'light' ? 'dark' : 'light', "icon-name": this.buttonIconLeft, "icon-mode": true, tabIndex: -1, onClick: this.handlePrev, "aria-label": t('components-carousel-previous'), disabled: this.dotCount <= 1 || this.activeItem === 0 }), h("tet-button", { key: '0622035344d0d0d3b7cf8a5726587bcddcd10c0a', class: "tet-carousel__btn", theme: this.theme === 'light' ? 'dark' : 'light', "icon-name": this.buttonIconRight, "icon-mode": true, tabIndex: -1, onClick: this.handleNext, "aria-label": t('components-carousel-next'), disabled: this.dotCount <= 1 ||
|
|
405
|
+
this.activeItem === this.totalItems - 1 ||
|
|
406
|
+
this.isLastViewport(-this.dragOffset) }))))))));
|
|
339
407
|
}
|
|
340
408
|
static get is() { return "tet-carousel"; }
|
|
341
409
|
static get encapsulation() { return "shadow"; }
|
|
@@ -49,7 +49,7 @@ export class TetIcon {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
render() {
|
|
52
|
-
return (h("span", { key: '
|
|
52
|
+
return (h("span", { key: 'bbfa5e3445bd0e22afbabd3efc071a39e8daeb21', class: "icon-wrapper", tabindex: (this.focusable || this.accessibilityLabel) ? 0 : -1 }, h("span", Object.assign({ key: '6532eb075ead5b6514515ef9ecb09c687dd53e7b', class: {
|
|
53
53
|
'icon-container': true,
|
|
54
54
|
'default-color': this.shouldUseDefaultColor(),
|
|
55
55
|
[this.theme]: true,
|
|
@@ -4,7 +4,7 @@ import { h } from "@stencil/core";
|
|
|
4
4
|
*/
|
|
5
5
|
export class TetLoader {
|
|
6
6
|
render() {
|
|
7
|
-
return (h("div", { key: '
|
|
7
|
+
return (h("div", { key: '5dc2e7913b4f48ebfb62c51c720516eaf8c97879', class: "loader" }, h("div", { key: 'b5c647ff4b2388de51721391a4683c693e71492a', class: "loader-inner" })));
|
|
8
8
|
}
|
|
9
9
|
static get is() { return "tet-loader"; }
|
|
10
10
|
static get encapsulation() { return "shadow"; }
|
|
@@ -9,7 +9,7 @@ export class TetPlaceholder {
|
|
|
9
9
|
this.darkTheme = false;
|
|
10
10
|
}
|
|
11
11
|
render() {
|
|
12
|
-
return (h(Host, { key: '
|
|
12
|
+
return (h(Host, { key: '6125d88b58d055d2a5ab50db94eb33dddca1e310', style: { width: this.width, height: this.height } }, h("div", { key: '412a76beb20da0422e9c7fbc1149d0e6c6674c66', class: { 'dark-theme': this.darkTheme } }, h("div", { key: '3357b6e00195897e85af833c8d1625087475da6d', class: "placeholder", style: { height: this.height } }))));
|
|
13
13
|
}
|
|
14
14
|
static get is() { return "tet-placeholder"; }
|
|
15
15
|
static get encapsulation() { return "shadow"; }
|