@ptcwebops/ptcw-design 0.6.2 → 0.6.3
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/LICENSE +21 -21
- package/dist/cjs/dropdown-item.cjs.entry.js +10 -10
- package/dist/cjs/icon-asset.cjs.entry.js +53 -53
- package/dist/cjs/{interfaces-0ecd8027.js → interfaces-574e6df7.js} +9 -9
- package/dist/cjs/list-item.cjs.entry.js +20 -20
- package/dist/cjs/lottie-player.cjs.entry.js +354 -354
- package/dist/cjs/my-component.cjs.entry.js +12 -12
- package/dist/cjs/ptc-accordion-item.cjs.entry.js +97 -97
- package/dist/cjs/ptc-accordion.cjs.entry.js +38 -38
- package/dist/cjs/ptc-announcement.cjs.entry.js +37 -37
- package/dist/cjs/ptc-breadcrumb.cjs.entry.js +12 -12
- package/dist/cjs/ptc-button.cjs.entry.js +65 -65
- package/dist/cjs/ptc-card-bottom.cjs.entry.js +31 -31
- package/dist/cjs/ptc-card-content.cjs.entry.js +31 -31
- package/dist/cjs/ptc-card-plm.cjs.entry.js +16 -16
- package/dist/cjs/ptc-card_6.cjs.entry.js +453 -444
- package/dist/cjs/ptc-checkbox.cjs.entry.js +31 -31
- package/dist/cjs/ptc-collapse-list.cjs.entry.js +191 -191
- package/dist/cjs/ptc-container.cjs.entry.js +35 -35
- package/dist/cjs/ptc-dropdown.cjs.entry.js +58 -58
- package/dist/cjs/ptc-ellipsis-dropdown.cjs.entry.js +23 -23
- package/dist/cjs/ptc-filter-tag.cjs.entry.js +26 -26
- package/dist/cjs/ptc-hero-footer-cta.cjs.entry.js +8 -8
- package/dist/cjs/ptc-hero.cjs.entry.js +18 -18
- package/dist/cjs/ptc-icon-list.cjs.entry.js +32 -32
- package/dist/cjs/ptc-icon-minimize.cjs.entry.js +35 -35
- package/dist/cjs/ptc-link.cjs.entry.js +42 -42
- package/dist/cjs/ptc-list.cjs.entry.js +50 -50
- package/dist/cjs/ptc-lottie.cjs.entry.js +12 -12
- package/dist/cjs/ptc-minimized-footer.cjs.entry.js +8 -8
- package/dist/cjs/ptc-minimized-header.cjs.entry.js +11 -11
- package/dist/cjs/ptc-mobile-select.cjs.entry.js +69 -69
- package/dist/cjs/ptc-modal.cjs.entry.js +151 -151
- package/dist/cjs/ptc-nav-item.cjs.entry.js +83 -83
- package/dist/cjs/ptc-nav.cjs.entry.js +8 -8
- package/dist/cjs/ptc-overlay.cjs.entry.js +20 -20
- package/dist/cjs/ptc-picture.cjs.entry.js +169 -169
- package/dist/cjs/ptc-previous-url.cjs.entry.js +8 -8
- package/dist/cjs/ptc-pricing-block.cjs.entry.js +14 -14
- package/dist/cjs/ptc-quote.cjs.entry.js +25 -25
- package/dist/cjs/ptc-responsive-wrapper.cjs.entry.js +54 -54
- package/dist/cjs/ptc-shopping-cart.cjs.entry.js +49 -49
- package/dist/cjs/ptc-social-share.cjs.entry.js +64 -64
- package/dist/cjs/ptc-span.cjs.entry.js +23 -23
- package/dist/cjs/ptc-svg-btn.cjs.entry.js +75 -75
- package/dist/cjs/ptc-tab-list.cjs.entry.js +116 -116
- package/dist/cjs/ptc-title.cjs.entry.js +57 -57
- package/dist/cjs/ptc-two-column-media.cjs.entry.js +14 -14
- package/dist/cjs/tab-content.cjs.entry.js +26 -26
- package/dist/cjs/tab-header.cjs.entry.js +43 -43
- package/dist/cjs/{utils-dc2c222f.js → utils-1c17977e.js} +64 -64
- package/dist/collection/components/dropdown-item/dropdown-item.js +56 -56
- package/dist/collection/components/icon-asset/icon-asset.css +4 -4
- package/dist/collection/components/icon-asset/icon-asset.js +199 -199
- package/dist/collection/components/icon-asset/media/brands.svg +1381 -1381
- package/dist/collection/components/icon-asset/media/designer.svg +365 -365
- package/dist/collection/components/icon-asset/media/regular.svg +463 -463
- package/dist/collection/components/icon-asset/media/solid.svg +3013 -3013
- package/dist/collection/components/icon-asset/media/svg-with-js.min.css +4 -4
- package/dist/collection/components/list-item/list-item.js +104 -104
- package/dist/collection/components/my-component/my-component.css +3 -3
- package/dist/collection/components/my-component/my-component.js +73 -73
- package/dist/collection/components/ptc-accordion/ptc-accordion-item/ptc-accordion-item.js +296 -296
- package/dist/collection/components/ptc-accordion/ptc-accordion.js +74 -74
- package/dist/collection/components/ptc-announcement/ptc-announcement.js +210 -210
- package/dist/collection/components/ptc-breadcrumb/ptc-breadcrumb.js +21 -21
- package/dist/collection/components/ptc-button/ptc-button.js +293 -293
- package/dist/collection/components/ptc-card/ptc-card.js +301 -301
- package/dist/collection/components/ptc-card-bottom/ptc-card-bottom.js +105 -105
- package/dist/collection/components/ptc-card-content/ptc-card-content.js +105 -105
- package/dist/collection/components/ptc-card-plm/ptc-card-plm.js +97 -97
- package/dist/collection/components/ptc-checkbox/ptc-checkbox.js +114 -114
- package/dist/collection/components/ptc-collapse-list/ptc-collapse-list.js +288 -288
- package/dist/collection/components/ptc-container/ptc-container.js +119 -119
- package/dist/collection/components/ptc-date/ptc-date.js +201 -201
- package/dist/collection/components/ptc-dropdown/ptc-dropdown.js +144 -144
- package/dist/collection/components/ptc-ellipsis-dropdown/ptc-ellipsis-dropdown.js +77 -77
- package/dist/collection/components/ptc-filter-tag/ptc-filter-tag.js +70 -70
- package/dist/collection/components/ptc-hero/ptc-hero.js +67 -67
- package/dist/collection/components/ptc-hero-footer-cta/ptc-hero-footer-cta.js +77 -77
- package/dist/collection/components/ptc-icon-list/ptc-icon-list.js +145 -145
- package/dist/collection/components/ptc-icon-minimize/ptc-icon-minimize.js +86 -86
- package/dist/collection/components/ptc-img/ptc-img.js +314 -314
- package/dist/collection/components/ptc-link/ptc-link.js +198 -198
- package/dist/collection/components/ptc-list/ptc-list.js +95 -95
- package/dist/collection/components/ptc-lottie/ptc-lottie.css +5 -5
- package/dist/collection/components/ptc-lottie/ptc-lottie.js +58 -58
- package/dist/collection/components/ptc-minimized-footer/ptc-minimized-footer.js +17 -17
- package/dist/collection/components/ptc-minimized-header/ptc-minimized-header.js +80 -80
- package/dist/collection/components/ptc-mobile-select/ptc-mobile-select.js +221 -221
- package/dist/collection/components/ptc-modal/ptc-modal.js +337 -337
- package/dist/collection/components/ptc-nav/ptc-nav.js +21 -21
- package/dist/collection/components/ptc-nav-item/ptc-nav-item.js +252 -252
- package/dist/collection/components/ptc-overlay/ptc-overlay.js +99 -99
- package/dist/collection/components/ptc-pagenation/ptc-pagenation.js +317 -317
- package/dist/collection/components/ptc-para/ptc-para.css +4 -0
- package/dist/collection/components/ptc-para/ptc-para.js +167 -157
- package/dist/collection/components/ptc-picture/ptc-picture.js +474 -474
- package/dist/collection/components/ptc-previous-url/ptc-previous-url.js +54 -54
- package/dist/collection/components/ptc-pricing-block/ptc-pricing-block.js +25 -25
- package/dist/collection/components/ptc-quote/ptc-quote.js +154 -154
- package/dist/collection/components/ptc-responsive-wrapper/ptc-responsive-wrapper.css +3 -3
- package/dist/collection/components/ptc-responsive-wrapper/ptc-responsive-wrapper.js +62 -62
- package/dist/collection/components/ptc-shopping-cart/ptc-shopping-cart.js +91 -91
- package/dist/collection/components/ptc-social-share/ptc-social-share.js +206 -206
- package/dist/collection/components/ptc-spacer/ptc-spacer.css +322 -322
- package/dist/collection/components/ptc-spacer/ptc-spacer.js +99 -99
- package/dist/collection/components/ptc-span/ptc-span.js +89 -89
- package/dist/collection/components/ptc-svg-btn/ptc-svg-btn.js +71 -71
- package/dist/collection/components/ptc-tab-list/ptc-tab-list.js +140 -140
- package/dist/collection/components/ptc-title/ptc-title.js +245 -245
- package/dist/collection/components/ptc-two-column-media/ptc-two-column-media.js +40 -40
- package/dist/collection/components/tab-content/tab-content.js +74 -74
- package/dist/collection/components/tab-header/tab-header.js +107 -107
- package/dist/collection/index.js +1 -1
- package/dist/collection/media/svg-imgs/Back-arrow.svg +11 -11
- package/dist/collection/media/svg-imgs/close.svg +10 -10
- package/dist/collection/media/svg-imgs/ptc-shopping-cart-black.svg +3 -3
- package/dist/collection/media/svg-imgs/ptc-shopping-cart-white.svg +3 -3
- package/dist/collection/media/svg-imgs/slider-arrow-left.svg +18 -18
- package/dist/collection/media/svg-imgs/slider-arrow-right.svg +18 -18
- package/dist/collection/media/svg-imgs/union.svg +3 -3
- package/dist/collection/utils/component.js +3 -3
- package/dist/collection/utils/interfaces.js +11 -11
- package/dist/collection/utils/utils.js +65 -65
- package/dist/custom-elements/index.js +3046 -3037
- package/dist/esm/dropdown-item.entry.js +10 -10
- package/dist/esm/icon-asset.entry.js +53 -53
- package/dist/esm/{interfaces-3cb94654.js → interfaces-4caedd26.js} +9 -9
- package/dist/esm/list-item.entry.js +20 -20
- package/dist/esm/lottie-player.entry.js +354 -354
- package/dist/esm/my-component.entry.js +12 -12
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/ptc-accordion-item.entry.js +97 -97
- package/dist/esm/ptc-accordion.entry.js +38 -38
- package/dist/esm/ptc-announcement.entry.js +37 -37
- package/dist/esm/ptc-breadcrumb.entry.js +12 -12
- package/dist/esm/ptc-button.entry.js +65 -65
- package/dist/esm/ptc-card-bottom.entry.js +31 -31
- package/dist/esm/ptc-card-content.entry.js +31 -31
- package/dist/esm/ptc-card-plm.entry.js +16 -16
- package/dist/esm/ptc-card_6.entry.js +453 -444
- package/dist/esm/ptc-checkbox.entry.js +31 -31
- package/dist/esm/ptc-collapse-list.entry.js +191 -191
- package/dist/esm/ptc-container.entry.js +35 -35
- package/dist/esm/ptc-dropdown.entry.js +58 -58
- package/dist/esm/ptc-ellipsis-dropdown.entry.js +23 -23
- package/dist/esm/ptc-filter-tag.entry.js +26 -26
- package/dist/esm/ptc-hero-footer-cta.entry.js +8 -8
- package/dist/esm/ptc-hero.entry.js +18 -18
- package/dist/esm/ptc-icon-list.entry.js +32 -32
- package/dist/esm/ptc-icon-minimize.entry.js +35 -35
- package/dist/esm/ptc-link.entry.js +42 -42
- package/dist/esm/ptc-list.entry.js +50 -50
- package/dist/esm/ptc-lottie.entry.js +12 -12
- package/dist/esm/ptc-minimized-footer.entry.js +8 -8
- package/dist/esm/ptc-minimized-header.entry.js +11 -11
- package/dist/esm/ptc-mobile-select.entry.js +69 -69
- package/dist/esm/ptc-modal.entry.js +151 -151
- package/dist/esm/ptc-nav-item.entry.js +83 -83
- package/dist/esm/ptc-nav.entry.js +8 -8
- package/dist/esm/ptc-overlay.entry.js +20 -20
- package/dist/esm/ptc-picture.entry.js +169 -169
- package/dist/esm/ptc-previous-url.entry.js +8 -8
- package/dist/esm/ptc-pricing-block.entry.js +14 -14
- package/dist/esm/ptc-quote.entry.js +25 -25
- package/dist/esm/ptc-responsive-wrapper.entry.js +54 -54
- package/dist/esm/ptc-shopping-cart.entry.js +49 -49
- package/dist/esm/ptc-social-share.entry.js +64 -64
- package/dist/esm/ptc-span.entry.js +23 -23
- package/dist/esm/ptc-svg-btn.entry.js +75 -75
- package/dist/esm/ptc-tab-list.entry.js +116 -116
- package/dist/esm/ptc-title.entry.js +57 -57
- package/dist/esm/ptc-two-column-media.entry.js +14 -14
- package/dist/esm/tab-content.entry.js +26 -26
- package/dist/esm/tab-header.entry.js +43 -43
- package/dist/esm/{utils-334d53bc.js → utils-4b79ffaf.js} +64 -64
- package/dist/ptcw-design/media/brands.svg +1381 -1381
- package/dist/ptcw-design/media/designer.svg +365 -365
- package/dist/ptcw-design/media/regular.svg +463 -463
- package/dist/ptcw-design/media/solid.svg +3013 -3013
- package/dist/ptcw-design/media/svg-with-js.min.css +4 -4
- package/dist/ptcw-design/{p-44cb62a9.entry.js → p-02894b57.entry.js} +1 -1
- package/dist/ptcw-design/{p-3d3c73b1.entry.js → p-0da15d87.entry.js} +1 -1
- package/dist/ptcw-design/{p-46cf7f48.entry.js → p-48695e72.entry.js} +1 -1
- package/dist/ptcw-design/{p-e5bfbb91.entry.js → p-71cecd28.entry.js} +1 -1
- package/dist/ptcw-design/ptcw-design.esm.js +1 -1
- package/dist/types/components/dropdown-item/dropdown-item.d.ts +5 -5
- package/dist/types/components/icon-asset/icon-asset.d.ts +36 -36
- package/dist/types/components/list-item/list-item.d.ts +8 -8
- package/dist/types/components/my-component/my-component.d.ts +16 -16
- package/dist/types/components/ptc-accordion/ptc-accordion-item/ptc-accordion-item.d.ts +59 -59
- package/dist/types/components/ptc-accordion/ptc-accordion.d.ts +13 -13
- package/dist/types/components/ptc-announcement/ptc-announcement.d.ts +43 -43
- package/dist/types/components/ptc-breadcrumb/ptc-breadcrumb.d.ts +4 -4
- package/dist/types/components/ptc-button/ptc-button.d.ts +56 -56
- package/dist/types/components/ptc-card/ptc-card.d.ts +54 -54
- package/dist/types/components/ptc-card-bottom/ptc-card-bottom.d.ts +15 -15
- package/dist/types/components/ptc-card-content/ptc-card-content.d.ts +15 -15
- package/dist/types/components/ptc-card-plm/ptc-card-plm.d.ts +8 -8
- package/dist/types/components/ptc-checkbox/ptc-checkbox.d.ts +11 -11
- package/dist/types/components/ptc-collapse-list/ptc-collapse-list.d.ts +39 -39
- package/dist/types/components/ptc-container/ptc-container.d.ts +12 -12
- package/dist/types/components/ptc-date/ptc-date.d.ts +41 -41
- package/dist/types/components/ptc-dropdown/ptc-dropdown.d.ts +18 -18
- package/dist/types/components/ptc-ellipsis-dropdown/ptc-ellipsis-dropdown.d.ts +10 -10
- package/dist/types/components/ptc-filter-tag/ptc-filter-tag.d.ts +11 -11
- package/dist/types/components/ptc-hero/ptc-hero.d.ts +12 -12
- package/dist/types/components/ptc-hero-footer-cta/ptc-hero-footer-cta.d.ts +6 -6
- package/dist/types/components/ptc-icon-list/ptc-icon-list.d.ts +21 -21
- package/dist/types/components/ptc-icon-minimize/ptc-icon-minimize.d.ts +9 -9
- package/dist/types/components/ptc-img/ptc-img.d.ts +51 -51
- package/dist/types/components/ptc-link/ptc-link.d.ts +36 -36
- package/dist/types/components/ptc-list/ptc-list.d.ts +8 -8
- package/dist/types/components/ptc-lottie/ptc-lottie.d.ts +12 -12
- package/dist/types/components/ptc-minimized-footer/ptc-minimized-footer.d.ts +3 -3
- package/dist/types/components/ptc-minimized-header/ptc-minimized-header.d.ts +6 -6
- package/dist/types/components/ptc-mobile-select/ptc-mobile-select.d.ts +40 -40
- package/dist/types/components/ptc-modal/ptc-modal.d.ts +55 -55
- package/dist/types/components/ptc-nav/ptc-nav.d.ts +3 -3
- package/dist/types/components/ptc-nav-item/ptc-nav-item.d.ts +53 -53
- package/dist/types/components/ptc-overlay/ptc-overlay.d.ts +20 -20
- package/dist/types/components/ptc-pagenation/ptc-pagenation.d.ts +27 -27
- package/dist/types/components/ptc-para/ptc-para.d.ts +29 -28
- package/dist/types/components/ptc-picture/ptc-picture.d.ts +93 -93
- package/dist/types/components/ptc-previous-url/ptc-previous-url.d.ts +5 -5
- package/dist/types/components/ptc-pricing-block/ptc-pricing-block.d.ts +4 -4
- package/dist/types/components/ptc-quote/ptc-quote.d.ts +29 -29
- package/dist/types/components/ptc-responsive-wrapper/ptc-responsive-wrapper.d.ts +8 -8
- package/dist/types/components/ptc-shopping-cart/ptc-shopping-cart.d.ts +6 -6
- package/dist/types/components/ptc-social-share/ptc-social-share.d.ts +25 -25
- package/dist/types/components/ptc-spacer/ptc-spacer.d.ts +16 -16
- package/dist/types/components/ptc-span/ptc-span.d.ts +16 -16
- package/dist/types/components/ptc-svg-btn/ptc-svg-btn.d.ts +12 -12
- package/dist/types/components/ptc-tab-list/ptc-tab-list.d.ts +14 -14
- package/dist/types/components/ptc-title/ptc-title.d.ts +41 -41
- package/dist/types/components/ptc-two-column-media/ptc-two-column-media.d.ts +9 -9
- package/dist/types/components/tab-content/tab-content.d.ts +12 -12
- package/dist/types/components/tab-header/tab-header.d.ts +13 -13
- package/dist/types/components.d.ts +24 -24
- package/dist/types/global.d.ts +1072 -1072
- package/dist/types/index.d.ts +1 -1
- package/dist/types/utils/component.d.ts +1 -1
- package/dist/types/utils/interfaces.d.ts +28 -28
- package/dist/types/utils/utils.d.ts +3 -3
- package/package.json +59 -59
- package/readme.md +11 -11
- /package/dist/ptcw-design/{p-2e496d31.js → p-62f4a655.js} +0 -0
- /package/dist/ptcw-design/{p-240733ce.js → p-711bcdad.js} +0 -0
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
import { Component, Host, h, Element, Listen } from '@stencil/core';
|
|
2
|
-
export class PtcTabList {
|
|
3
|
-
componentDidLoad() {
|
|
4
|
-
this.createGroup();
|
|
5
|
-
this.calculateHeaderTabsRendering();
|
|
6
|
-
/*const [group] = this.tabGroup;
|
|
7
|
-
this.selectGroup(group);*/
|
|
8
|
-
}
|
|
9
|
-
onSelectedTab(event) {
|
|
10
|
-
let self = this;
|
|
11
|
-
this.tabGroup.forEach(group => {
|
|
12
|
-
event.detail.then(res => {
|
|
13
|
-
if (group.header.name === res.name) {
|
|
14
|
-
self.selectGroup(group);
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
calculateHeaderTabsRendering() {
|
|
20
|
-
let header = this.host.querySelector('.tabs-header');
|
|
21
|
-
let dropdown = this.host.querySelector('.ellipsis-btn');
|
|
22
|
-
let tabs = header.children;
|
|
23
|
-
let activateDropDown = false;
|
|
24
|
-
let hiddenTabs = [];
|
|
25
|
-
header.classList.remove('active');
|
|
26
|
-
for (let index = 0; index < tabs.length; index++) {
|
|
27
|
-
tabs[index].style.removeProperty('display');
|
|
28
|
-
}
|
|
29
|
-
for (let index = tabs.length - 1; index >= 0; index--) {
|
|
30
|
-
let tab = tabs[index];
|
|
31
|
-
if (header.scrollWidth > header.clientWidth) {
|
|
32
|
-
tab.style.display = 'none';
|
|
33
|
-
activateDropDown = true;
|
|
34
|
-
hiddenTabs.push({
|
|
35
|
-
value: tab.getAttribute('name'),
|
|
36
|
-
text: tab.textContent
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
header.classList.add('active');
|
|
41
|
-
if (activateDropDown) {
|
|
42
|
-
dropdown.classList.add('active');
|
|
43
|
-
dropdown.dataItems = hiddenTabs.reverse();
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
dropdown.classList.remove('active');
|
|
47
|
-
dropdown.dataItems = [];
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
createGroup() {
|
|
51
|
-
let self = this;
|
|
52
|
-
let headerComplete = false;
|
|
53
|
-
let contentComplete = false;
|
|
54
|
-
let headerCount = 0;
|
|
55
|
-
let contentCount = 0;
|
|
56
|
-
let headerData = [];
|
|
57
|
-
let contentData = [];
|
|
58
|
-
const tabsHeaderEl = Array.from(this.host.querySelectorAll('tab-header'));
|
|
59
|
-
this.tabsHeader = tabsHeaderEl.map(el => el.getChild().then(res => {
|
|
60
|
-
headerCount++;
|
|
61
|
-
if (headerCount === tabsHeaderEl.length) {
|
|
62
|
-
headerComplete = true;
|
|
63
|
-
}
|
|
64
|
-
headerData.push(res);
|
|
65
|
-
}));
|
|
66
|
-
this.tabsHeader = headerData;
|
|
67
|
-
const tabsContentEl = Array.from(this.host.querySelectorAll('tab-content'));
|
|
68
|
-
this.tabsContent = tabsContentEl.map(el => el.getChild().then(res => {
|
|
69
|
-
contentCount++;
|
|
70
|
-
if (contentCount === tabsContentEl.length) {
|
|
71
|
-
contentComplete = true;
|
|
72
|
-
}
|
|
73
|
-
contentData.push(res);
|
|
74
|
-
}));
|
|
75
|
-
this.tabsContent = contentData;
|
|
76
|
-
let myInterval = setInterval(() => {
|
|
77
|
-
if (headerComplete && contentComplete) {
|
|
78
|
-
clearInterval(myInterval);
|
|
79
|
-
self.tabGroup = self.tabsHeader.map(header => {
|
|
80
|
-
const content = self.tabsContent.find(content => content.name === header.name);
|
|
81
|
-
return {
|
|
82
|
-
header: header,
|
|
83
|
-
content: content
|
|
84
|
-
};
|
|
85
|
-
});
|
|
86
|
-
const group = self.tabGroup[0];
|
|
87
|
-
self.selectGroup(group);
|
|
88
|
-
}
|
|
89
|
-
}, 100);
|
|
90
|
-
}
|
|
91
|
-
selectGroup(group) {
|
|
92
|
-
let self = this;
|
|
93
|
-
self.tabGroup.forEach(_ => {
|
|
94
|
-
_.header.unselect();
|
|
95
|
-
_.content.unselect();
|
|
96
|
-
});
|
|
97
|
-
group.header.select();
|
|
98
|
-
group.content.select();
|
|
99
|
-
}
|
|
100
|
-
onDropdownItemSelected(selectedItem) {
|
|
101
|
-
if (selectedItem) {
|
|
102
|
-
let selectedTabGroub = this.tabGroup.find((group) => {
|
|
103
|
-
return group.header.name == selectedItem.value;
|
|
104
|
-
});
|
|
105
|
-
if (selectedTabGroub) {
|
|
106
|
-
this.selectGroup(selectedTabGroub);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
render() {
|
|
111
|
-
return (h(Host, null,
|
|
112
|
-
h("div", { class: "tabs-header-container" },
|
|
113
|
-
h("div", { class: "tabs-header" },
|
|
114
|
-
h("slot", { name: "header" }))),
|
|
115
|
-
h("div", { class: "tabs-content" },
|
|
116
|
-
h("slot", { name: "content" })),
|
|
117
|
-
h("ptc-ellipsis-dropdown", { class: "ellipsis-btn", onItemSelected: (e) => { this.onDropdownItemSelected(e.detail); } })));
|
|
118
|
-
}
|
|
119
|
-
static get is() { return "ptc-tab-list"; }
|
|
120
|
-
static get originalStyleUrls() { return {
|
|
121
|
-
"$": ["ptc-tab-list.scss"]
|
|
122
|
-
}; }
|
|
123
|
-
static get styleUrls() { return {
|
|
124
|
-
"$": ["ptc-tab-list.css"]
|
|
125
|
-
}; }
|
|
126
|
-
static get elementRef() { return "host"; }
|
|
127
|
-
static get listeners() { return [{
|
|
128
|
-
"name": "tabClicked",
|
|
129
|
-
"method": "onSelectedTab",
|
|
130
|
-
"target": undefined,
|
|
131
|
-
"capture": false,
|
|
132
|
-
"passive": false
|
|
133
|
-
}, {
|
|
134
|
-
"name": "resize",
|
|
135
|
-
"method": "calculateHeaderTabsRendering",
|
|
136
|
-
"target": "window",
|
|
137
|
-
"capture": false,
|
|
138
|
-
"passive": true
|
|
139
|
-
}]; }
|
|
140
|
-
}
|
|
1
|
+
import { Component, Host, h, Element, Listen } from '@stencil/core';
|
|
2
|
+
export class PtcTabList {
|
|
3
|
+
componentDidLoad() {
|
|
4
|
+
this.createGroup();
|
|
5
|
+
this.calculateHeaderTabsRendering();
|
|
6
|
+
/*const [group] = this.tabGroup;
|
|
7
|
+
this.selectGroup(group);*/
|
|
8
|
+
}
|
|
9
|
+
onSelectedTab(event) {
|
|
10
|
+
let self = this;
|
|
11
|
+
this.tabGroup.forEach(group => {
|
|
12
|
+
event.detail.then(res => {
|
|
13
|
+
if (group.header.name === res.name) {
|
|
14
|
+
self.selectGroup(group);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
calculateHeaderTabsRendering() {
|
|
20
|
+
let header = this.host.querySelector('.tabs-header');
|
|
21
|
+
let dropdown = this.host.querySelector('.ellipsis-btn');
|
|
22
|
+
let tabs = header.children;
|
|
23
|
+
let activateDropDown = false;
|
|
24
|
+
let hiddenTabs = [];
|
|
25
|
+
header.classList.remove('active');
|
|
26
|
+
for (let index = 0; index < tabs.length; index++) {
|
|
27
|
+
tabs[index].style.removeProperty('display');
|
|
28
|
+
}
|
|
29
|
+
for (let index = tabs.length - 1; index >= 0; index--) {
|
|
30
|
+
let tab = tabs[index];
|
|
31
|
+
if (header.scrollWidth > header.clientWidth) {
|
|
32
|
+
tab.style.display = 'none';
|
|
33
|
+
activateDropDown = true;
|
|
34
|
+
hiddenTabs.push({
|
|
35
|
+
value: tab.getAttribute('name'),
|
|
36
|
+
text: tab.textContent
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
header.classList.add('active');
|
|
41
|
+
if (activateDropDown) {
|
|
42
|
+
dropdown.classList.add('active');
|
|
43
|
+
dropdown.dataItems = hiddenTabs.reverse();
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
dropdown.classList.remove('active');
|
|
47
|
+
dropdown.dataItems = [];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
createGroup() {
|
|
51
|
+
let self = this;
|
|
52
|
+
let headerComplete = false;
|
|
53
|
+
let contentComplete = false;
|
|
54
|
+
let headerCount = 0;
|
|
55
|
+
let contentCount = 0;
|
|
56
|
+
let headerData = [];
|
|
57
|
+
let contentData = [];
|
|
58
|
+
const tabsHeaderEl = Array.from(this.host.querySelectorAll('tab-header'));
|
|
59
|
+
this.tabsHeader = tabsHeaderEl.map(el => el.getChild().then(res => {
|
|
60
|
+
headerCount++;
|
|
61
|
+
if (headerCount === tabsHeaderEl.length) {
|
|
62
|
+
headerComplete = true;
|
|
63
|
+
}
|
|
64
|
+
headerData.push(res);
|
|
65
|
+
}));
|
|
66
|
+
this.tabsHeader = headerData;
|
|
67
|
+
const tabsContentEl = Array.from(this.host.querySelectorAll('tab-content'));
|
|
68
|
+
this.tabsContent = tabsContentEl.map(el => el.getChild().then(res => {
|
|
69
|
+
contentCount++;
|
|
70
|
+
if (contentCount === tabsContentEl.length) {
|
|
71
|
+
contentComplete = true;
|
|
72
|
+
}
|
|
73
|
+
contentData.push(res);
|
|
74
|
+
}));
|
|
75
|
+
this.tabsContent = contentData;
|
|
76
|
+
let myInterval = setInterval(() => {
|
|
77
|
+
if (headerComplete && contentComplete) {
|
|
78
|
+
clearInterval(myInterval);
|
|
79
|
+
self.tabGroup = self.tabsHeader.map(header => {
|
|
80
|
+
const content = self.tabsContent.find(content => content.name === header.name);
|
|
81
|
+
return {
|
|
82
|
+
header: header,
|
|
83
|
+
content: content
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
const group = self.tabGroup[0];
|
|
87
|
+
self.selectGroup(group);
|
|
88
|
+
}
|
|
89
|
+
}, 100);
|
|
90
|
+
}
|
|
91
|
+
selectGroup(group) {
|
|
92
|
+
let self = this;
|
|
93
|
+
self.tabGroup.forEach(_ => {
|
|
94
|
+
_.header.unselect();
|
|
95
|
+
_.content.unselect();
|
|
96
|
+
});
|
|
97
|
+
group.header.select();
|
|
98
|
+
group.content.select();
|
|
99
|
+
}
|
|
100
|
+
onDropdownItemSelected(selectedItem) {
|
|
101
|
+
if (selectedItem) {
|
|
102
|
+
let selectedTabGroub = this.tabGroup.find((group) => {
|
|
103
|
+
return group.header.name == selectedItem.value;
|
|
104
|
+
});
|
|
105
|
+
if (selectedTabGroub) {
|
|
106
|
+
this.selectGroup(selectedTabGroub);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
render() {
|
|
111
|
+
return (h(Host, null,
|
|
112
|
+
h("div", { class: "tabs-header-container" },
|
|
113
|
+
h("div", { class: "tabs-header" },
|
|
114
|
+
h("slot", { name: "header" }))),
|
|
115
|
+
h("div", { class: "tabs-content" },
|
|
116
|
+
h("slot", { name: "content" })),
|
|
117
|
+
h("ptc-ellipsis-dropdown", { class: "ellipsis-btn", onItemSelected: (e) => { this.onDropdownItemSelected(e.detail); } })));
|
|
118
|
+
}
|
|
119
|
+
static get is() { return "ptc-tab-list"; }
|
|
120
|
+
static get originalStyleUrls() { return {
|
|
121
|
+
"$": ["ptc-tab-list.scss"]
|
|
122
|
+
}; }
|
|
123
|
+
static get styleUrls() { return {
|
|
124
|
+
"$": ["ptc-tab-list.css"]
|
|
125
|
+
}; }
|
|
126
|
+
static get elementRef() { return "host"; }
|
|
127
|
+
static get listeners() { return [{
|
|
128
|
+
"name": "tabClicked",
|
|
129
|
+
"method": "onSelectedTab",
|
|
130
|
+
"target": undefined,
|
|
131
|
+
"capture": false,
|
|
132
|
+
"passive": false
|
|
133
|
+
}, {
|
|
134
|
+
"name": "resize",
|
|
135
|
+
"method": "calculateHeaderTabsRendering",
|
|
136
|
+
"target": "window",
|
|
137
|
+
"capture": false,
|
|
138
|
+
"passive": true
|
|
139
|
+
}]; }
|
|
140
|
+
}
|