@eui/eds 22.0.0-alpha.13 → 22.0.0-alpha.14
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/docs/changelog.html +10 -0
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/documentation.json +3 -3
- package/docs/llms.txt +1 -1
- package/docs/properties.html +1 -1
- package/fesm2022/eui-eds-eds-fab-button.mjs +2 -2
- package/fesm2022/eui-eds-eds-fab-button.mjs.map +1 -1
- package/fesm2022/eui-eds-eds-icon-toggle.mjs +2 -2
- package/fesm2022/eui-eds-eds-icon-toggle.mjs.map +1 -1
- package/fesm2022/eui-eds-eds-tabs.mjs +2 -2
- package/fesm2022/eui-eds-eds-tabs.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -555,7 +555,7 @@ class EdsTabs {
|
|
|
555
555
|
return fullyVisible;
|
|
556
556
|
}
|
|
557
557
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsTabs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
558
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsTabs, isStandalone: true, selector: "eds-tabs", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, activeTabIndex: { classPropertyName: "activeTabIndex", publicName: "activeTabIndex", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, isMainNavigation: { classPropertyName: "isMainNavigation", publicName: "isMainNavigation", isSignal: true, isRequired: false, transformFunction: null }, isFlat: { classPropertyName: "isFlat", publicName: "isFlat", isSignal: true, isRequired: false, transformFunction: null }, isNavBar: { classPropertyName: "isNavBar", publicName: "isNavBar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tabClose: "tabClose", tabActivate: "tabActivate", tabClick: "tabClick" }, host: { properties: { "attr.data-e2e": "e2eAttr()", "class": "hostColorClass()" }, classAttribute: "eds-tabs" }, queries: [{ propertyName: "_tabs", predicate: i0.forwardRef(() => EdsTab) }], viewQueries: [{ propertyName: "edsTabsHeadersContainer", first: true, predicate: ["edsTabsHeadersContainer"], descendants: true }, { propertyName: "edsTabsHeaders", first: true, predicate: ["edsTabsHeaders"], descendants: true }, { propertyName: "edsTabsRightContent", first: true, predicate: ["edsTabsRightContent"], descendants: true }, { propertyName: "edsTabListItems", predicate: ["edsTabListItems"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.EdsColorDirective, inputs: ["edsBrand", "edsBrand", "edsNeutral", "edsNeutral", "edsColorVariant", "edsColorVariant"] }], ngImport: i0, template: "<div #edsTabsHeadersContainer class=\"eds-tabs-wrapper\" [class.eds-tabs-wrapper--scrolling]=\"scrolling\">\n <div class=\"eds-tabs-navigation\">\n <div class=\"eds-tabs-navigation__left-item\">\n <button edsIconButton\n (click)=\"goToLeft()\"\n [disabled]=\"navigationLeftButtonDisabled\"\n icon=\"caret-left:core\"\n ariaLabel=\"Scroll left\">\n </button>\n </div>\n\n <ul #edsTabsHeaders class=\"eds-tab-items\" [attr.data-offset]=\"currentOffset\" role=\"tablist\" [attr.aria-label]=\"ariaLabel\">\n @for (tab of tabs; let i = $index; track tab) {\n @if (tab.isVisible$ | async) {\n <li #edsTabListItems\n class=\"eds-tab-item\"\n id=\"tab-{{ i + 1 }}-{{ tabId }}\"\n [tabindex]=\"i === activeTabIndex ? '0' : '-1'\"\n role=\"tab\"\n attr.aria-controls=\"tabpanel-{{ i + 1 }}-{{ tabId }}\"\n [attr.aria-selected]=\"i === activeTabIndex\"\n [class.eds-tab-item--active]=\"i === activeTabIndex\"\n [class.eds-tab-item--disabled]=\"tab.isDisabled$ | async\"\n attr.aria-disabled=\"{{ tab.isDisabled$ | async }}\"\n (click)=\"tabListItemClick(i)\"\n (keydown)=\"onKeydown(i, $event)\">\n <ng-template [cdkPortalOutlet]=\"tab.templateHeader().templatePortal\"></ng-template>\n\n @if (tab.isClosable$ | async) {\n <button edsIconButton\n [tabindex]=\"-1\"\n ariaLabel=\"Closable\"\n rounded\n class=\"eds-tab-close-button\"\n icon=\"x:core\"\n size=\"s\"\n [disabled]=\"tab.isDisabled$ | async\"\n (buttonClick)=\"close(i, $event)\">\n </button>\n }\n </li>\n }\n }\n </ul>\n\n <div class=\"eds-tabs-navigation__right-item\">\n <button edsIconButton\n (click)=\"goToRight()\"\n [disabled]=\"navigationRightButtonDisabled\"\n icon=\"caret-right:core\"\n ariaLabel=\"Scroll right\">\n </button>\n </div>\n </div>\n <div #edsTabsRightContent class=\"eds-tabs-right-content-wrapper\">\n <ng-content select=\"eds-tabs-right-content\"></ng-content>\n </div>\n</div>\n\n@for (tab of tabs; let i = $index; track tab) {\n @if (i === activeTabIndex && (tab.isDisabled$ | async) === false && tab.templateBody) {\n <div id=\"tabpanel-{{ i + 1 }}-{{ tabId }}\" class=\"eds-tab-body-container\" role=\"tabpanel\" attr.aria-labelledby=\"tab-{{ i + 1 }}-{{ tabId }}\">\n <ng-template [cdkPortalOutlet]=\"tab.templateBody.templatePortal\" (attached)=\"onAttached(i + 1)\"></ng-template>\n </div>\n }\n}\n", styles: [".eui-21 :host.eds-tabs{--_label-font: var(--eui-f-m-semi-bold);--_sublabel-font: var(--eui-f-s)}.eui-21 :host.eds-tabs{display:flex;flex-direction:column;width:100%}.eui-21 :host.eds-tabs .eds-tab-item{--_border-color: transparent;--_color: var(--eds-c-foreground-subtler);--_color-hover: var(--eds-c-foreground)}.eui-21 :host.eds-tabs .eds-tab-item--active{--_color: var(--eds-c-foreground);--_border-color: var(--eds-c-border)}.eui-21 :host.eds-tabs .eds-tab-item--disabled{--_color: var(--eds-c-foreground-disabled);--_icon-color: var(--eds-c-foreground-disabled);--_border-color-hover: transparent}.eui-21 :host.eds-tabs--brand .eds-tab-item{--_color: var(--eds-c-foreground-inverted);--_color-hover: var(--eds-c-on-surface-brand)}.eui-21 :host.eds-tabs--brand .eds-tab-item--active{--_color: var(--eds-c-on-surface-brand);--_border-color: var(--eds-c-on-surface-brand)}.eui-21 :host.eds-tabs--neutral .eds-tab-item{--_color: var(--eds-c-foreground-subtler);--_color-hover: var(--eds-c-foreground)}.eui-21 :host.eds-tabs--neutral .eds-tab-item--active{--_color: var(--eds-c-foreground);--_border-color: var(--eds-c-foreground)}.eui-21 :host.eds-tabs.eds-tabs--navbar .eds-tabs-wrapper{border-bottom:none}.eui-21 :host.eds-tabs .eds-tabs-wrapper{align-items:center;border-bottom:var(--eds-bw-xs) solid var(--eds-c-border-divider);display:flex;overflow:hidden;position:relative}.eui-21 :host.eds-tabs .eds-tabs-wrapper .eds-tabs-right-content-wrapper{display:flex;margin-left:var(--eds-sp-m)}.eui-21 :host.eds-tabs .eds-tab-items{display:flex;height:100%;list-style:none;list-style-type:none;margin:0;padding:0}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item{align-items:center;background-color:inherit;border:var(--eui-bw-none);border-bottom:var(--eds-bw-s) solid transparent;color:var(--_color);cursor:pointer;display:flex;padding:var(--eds-sp-s) var(--eds-sp-m) var(--eds-sp-s) var(--eds-sp-m);position:relative;text-align:center;gap:var(--eds-sp-2xs)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper{display:flex;align-items:center;gap:var(--eds-sp-s);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper ::ng-deep .eds-tab-header-label-wrapper{display:flex;flex-direction:column}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper ::ng-deep .eds-tab-header-label-wrapper ::ng-deep .eds-tab-header-label{display:block;font-weight:700;line-height:var(--eds-sp-l);color:var(--_color);font:var(--_label-font)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper ::ng-deep .eds-tab-header-label-wrapper ::ng-deep .eds-tab-header-sub-label{font-weight:400;color:var(--_color);font:var(--_sublabel-font)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-left-content,.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-right-content{display:flex}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item--active{border-color:var(--_border-color)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item--disabled{cursor:not-allowed;pointer-events:none}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item:hover:not(.eds-tab-header--active) ::ng-deep .eds-tab-header-label{color:var(--_color-hover)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item:hover:not(.eds-tab-header--active) ::ng-deep .eds-tab-header-sub-label{color:var(--_color-hover)}.eui-21 :host.eds-tabs .eds-tabs-navigation{display:flex;overflow:hidden;position:relative;width:100%}.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__left-item,.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__right-item{align-self:center;background-color:var(--eui-c-surface-page);display:none;height:100%;position:absolute;z-index:1}.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__left-item{left:0}.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__right-item{right:0}.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tab-items{padding-left:var(--eui-s-5xl)}.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tab-items .eds-tab-item{min-width:unset;overflow:unset}.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tabs-navigation__left-item,.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tabs-navigation__right-item{display:flex}.eui-21 :host.eds-tabs .eds-tab-body-container ::ng-deep .eds-tab__body{padding:var(--eui-s-s)}.eui-21 :host.eds-tabs .eds-tab-body-container ::ng-deep .eds-tab__body:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-tabs .eds-tab-body-container ::ng-deep .eds-tab__body.eds-tab__body--no-padding{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.EdsIconButton, selector: "button[edsIconButton]", inputs: ["icon", "color", "size", "ariaLabel", "rounded", "disabled"], outputs: ["buttonClick"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
558
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsTabs, isStandalone: true, selector: "eds-tabs", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, activeTabIndex: { classPropertyName: "activeTabIndex", publicName: "activeTabIndex", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, isMainNavigation: { classPropertyName: "isMainNavigation", publicName: "isMainNavigation", isSignal: true, isRequired: false, transformFunction: null }, isFlat: { classPropertyName: "isFlat", publicName: "isFlat", isSignal: true, isRequired: false, transformFunction: null }, isNavBar: { classPropertyName: "isNavBar", publicName: "isNavBar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tabClose: "tabClose", tabActivate: "tabActivate", tabClick: "tabClick" }, host: { properties: { "attr.data-e2e": "e2eAttr()", "class": "hostColorClass()" }, classAttribute: "eds-tabs" }, queries: [{ propertyName: "_tabs", predicate: i0.forwardRef(() => EdsTab) }], viewQueries: [{ propertyName: "edsTabsHeadersContainer", first: true, predicate: ["edsTabsHeadersContainer"], descendants: true }, { propertyName: "edsTabsHeaders", first: true, predicate: ["edsTabsHeaders"], descendants: true }, { propertyName: "edsTabsRightContent", first: true, predicate: ["edsTabsRightContent"], descendants: true }, { propertyName: "edsTabListItems", predicate: ["edsTabListItems"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.EdsColorDirective, inputs: ["edsBrand", "edsBrand", "edsNeutral", "edsNeutral", "edsColorVariant", "edsColorVariant"] }], ngImport: i0, template: "<div #edsTabsHeadersContainer class=\"eds-tabs-wrapper\" [class.eds-tabs-wrapper--scrolling]=\"scrolling\">\n <div class=\"eds-tabs-navigation\">\n <div class=\"eds-tabs-navigation__left-item\">\n <button edsIconButton\n (click)=\"goToLeft()\"\n [disabled]=\"navigationLeftButtonDisabled\"\n icon=\"caret-left:core\"\n ariaLabel=\"Scroll left\">\n </button>\n </div>\n\n <ul #edsTabsHeaders class=\"eds-tab-items\" [attr.data-offset]=\"currentOffset\" role=\"tablist\" [attr.aria-label]=\"ariaLabel\">\n @for (tab of tabs; let i = $index; track tab) {\n @if (tab.isVisible$ | async) {\n <li #edsTabListItems\n class=\"eds-tab-item\"\n id=\"tab-{{ i + 1 }}-{{ tabId }}\"\n [tabindex]=\"i === activeTabIndex ? '0' : '-1'\"\n role=\"tab\"\n attr.aria-controls=\"tabpanel-{{ i + 1 }}-{{ tabId }}\"\n [attr.aria-selected]=\"i === activeTabIndex\"\n [class.eds-tab-item--active]=\"i === activeTabIndex\"\n [class.eds-tab-item--disabled]=\"tab.isDisabled$ | async\"\n attr.aria-disabled=\"{{ tab.isDisabled$ | async }}\"\n (click)=\"tabListItemClick(i)\"\n (keydown)=\"onKeydown(i, $event)\">\n <ng-template [cdkPortalOutlet]=\"tab.templateHeader().templatePortal\"></ng-template>\n\n @if (tab.isClosable$ | async) {\n <button edsIconButton\n [tabindex]=\"-1\"\n ariaLabel=\"Closable\"\n rounded\n class=\"eds-tab-close-button\"\n icon=\"x:core\"\n size=\"s\"\n [disabled]=\"tab.isDisabled$ | async\"\n (buttonClick)=\"close(i, $event)\">\n </button>\n }\n </li>\n }\n }\n </ul>\n\n <div class=\"eds-tabs-navigation__right-item\">\n <button edsIconButton\n (click)=\"goToRight()\"\n [disabled]=\"navigationRightButtonDisabled\"\n icon=\"caret-right:core\"\n ariaLabel=\"Scroll right\">\n </button>\n </div>\n </div>\n <div #edsTabsRightContent class=\"eds-tabs-right-content-wrapper\">\n <ng-content select=\"eds-tabs-right-content\"></ng-content>\n </div>\n</div>\n\n@for (tab of tabs; let i = $index; track tab) {\n @if (i === activeTabIndex && (tab.isDisabled$ | async) === false && tab.templateBody) {\n <div id=\"tabpanel-{{ i + 1 }}-{{ tabId }}\" class=\"eds-tab-body-container\" role=\"tabpanel\" attr.aria-labelledby=\"tab-{{ i + 1 }}-{{ tabId }}\">\n <ng-template [cdkPortalOutlet]=\"tab.templateBody.templatePortal\" (attached)=\"onAttached(i + 1)\"></ng-template>\n </div>\n }\n}\n", styles: [".eui-21 :host.eds-tabs{--_label-font: var(--eds-f-label-m-semi-bold);--_sublabel-font: var(--eds-f-paragraph-s)}.eui-21 :host.eds-tabs{display:flex;flex-direction:column;width:100%}.eui-21 :host.eds-tabs .eds-tab-item{--_border-color: transparent;--_color: var(--eds-c-foreground-subtler);--_color-hover: var(--eds-c-foreground)}.eui-21 :host.eds-tabs .eds-tab-item--active{--_color: var(--eds-c-foreground);--_border-color: var(--eds-c-border)}.eui-21 :host.eds-tabs .eds-tab-item--disabled{--_color: var(--eds-c-foreground-disabled);--_icon-color: var(--eds-c-foreground-disabled);--_border-color-hover: transparent}.eui-21 :host.eds-tabs--brand .eds-tab-item{--_color: var(--eds-c-foreground-inverted);--_color-hover: var(--eds-c-on-surface-brand)}.eui-21 :host.eds-tabs--brand .eds-tab-item--active{--_color: var(--eds-c-on-surface-brand);--_border-color: var(--eds-c-on-surface-brand)}.eui-21 :host.eds-tabs--neutral .eds-tab-item{--_color: var(--eds-c-foreground-subtler);--_color-hover: var(--eds-c-foreground)}.eui-21 :host.eds-tabs--neutral .eds-tab-item--active{--_color: var(--eds-c-foreground);--_border-color: var(--eds-c-foreground)}.eui-21 :host.eds-tabs.eds-tabs--navbar .eds-tabs-wrapper{border-bottom:none}.eui-21 :host.eds-tabs .eds-tabs-wrapper{align-items:center;border-bottom:var(--eds-bw-xs) solid var(--eds-c-border-divider);display:flex;overflow:hidden;position:relative}.eui-21 :host.eds-tabs .eds-tabs-wrapper .eds-tabs-right-content-wrapper{display:flex;margin-left:var(--eds-sp-m)}.eui-21 :host.eds-tabs .eds-tab-items{display:flex;height:100%;list-style:none;list-style-type:none;margin:0;padding:0}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item{align-items:center;background-color:inherit;border:var(--eui-bw-none);border-bottom:var(--eds-bw-s) solid transparent;color:var(--_color);cursor:pointer;display:flex;padding:var(--eds-sp-s) var(--eds-sp-m) var(--eds-sp-s) var(--eds-sp-m);position:relative;text-align:center;gap:var(--eds-sp-2xs)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper{display:flex;align-items:center;gap:var(--eds-sp-s);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper ::ng-deep .eds-tab-header-label-wrapper{display:flex;flex-direction:column}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper ::ng-deep .eds-tab-header-label-wrapper ::ng-deep .eds-tab-header-label{display:block;font-weight:700;line-height:var(--eds-sp-l);color:var(--_color);font:var(--_label-font)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper ::ng-deep .eds-tab-header-label-wrapper ::ng-deep .eds-tab-header-sub-label{font-weight:400;color:var(--_color);font:var(--_sublabel-font)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-left-content,.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-right-content{display:flex}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item--active{border-color:var(--_border-color)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item--disabled{cursor:not-allowed;pointer-events:none}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item:hover:not(.eds-tab-header--active) ::ng-deep .eds-tab-header-label{color:var(--_color-hover)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item:hover:not(.eds-tab-header--active) ::ng-deep .eds-tab-header-sub-label{color:var(--_color-hover)}.eui-21 :host.eds-tabs .eds-tabs-navigation{display:flex;overflow:hidden;position:relative;width:100%}.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__left-item,.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__right-item{align-self:center;background-color:var(--eui-c-surface-page);display:none;height:100%;position:absolute;z-index:1}.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__left-item{left:0}.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__right-item{right:0}.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tab-items{padding-left:var(--eui-s-5xl)}.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tab-items .eds-tab-item{min-width:unset;overflow:unset}.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tabs-navigation__left-item,.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tabs-navigation__right-item{display:flex}.eui-21 :host.eds-tabs .eds-tab-body-container ::ng-deep .eds-tab__body{padding:var(--eui-s-s)}.eui-21 :host.eds-tabs .eds-tab-body-container ::ng-deep .eds-tab__body:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-tabs .eds-tab-body-container ::ng-deep .eds-tab__body.eds-tab__body--no-padding{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.EdsIconButton, selector: "button[edsIconButton]", inputs: ["icon", "color", "size", "ariaLabel", "rounded", "disabled"], outputs: ["buttonClick"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
559
559
|
}
|
|
560
560
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsTabs, decorators: [{
|
|
561
561
|
type: Component,
|
|
@@ -576,7 +576,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
576
576
|
'edsColorVariant',
|
|
577
577
|
],
|
|
578
578
|
},
|
|
579
|
-
], template: "<div #edsTabsHeadersContainer class=\"eds-tabs-wrapper\" [class.eds-tabs-wrapper--scrolling]=\"scrolling\">\n <div class=\"eds-tabs-navigation\">\n <div class=\"eds-tabs-navigation__left-item\">\n <button edsIconButton\n (click)=\"goToLeft()\"\n [disabled]=\"navigationLeftButtonDisabled\"\n icon=\"caret-left:core\"\n ariaLabel=\"Scroll left\">\n </button>\n </div>\n\n <ul #edsTabsHeaders class=\"eds-tab-items\" [attr.data-offset]=\"currentOffset\" role=\"tablist\" [attr.aria-label]=\"ariaLabel\">\n @for (tab of tabs; let i = $index; track tab) {\n @if (tab.isVisible$ | async) {\n <li #edsTabListItems\n class=\"eds-tab-item\"\n id=\"tab-{{ i + 1 }}-{{ tabId }}\"\n [tabindex]=\"i === activeTabIndex ? '0' : '-1'\"\n role=\"tab\"\n attr.aria-controls=\"tabpanel-{{ i + 1 }}-{{ tabId }}\"\n [attr.aria-selected]=\"i === activeTabIndex\"\n [class.eds-tab-item--active]=\"i === activeTabIndex\"\n [class.eds-tab-item--disabled]=\"tab.isDisabled$ | async\"\n attr.aria-disabled=\"{{ tab.isDisabled$ | async }}\"\n (click)=\"tabListItemClick(i)\"\n (keydown)=\"onKeydown(i, $event)\">\n <ng-template [cdkPortalOutlet]=\"tab.templateHeader().templatePortal\"></ng-template>\n\n @if (tab.isClosable$ | async) {\n <button edsIconButton\n [tabindex]=\"-1\"\n ariaLabel=\"Closable\"\n rounded\n class=\"eds-tab-close-button\"\n icon=\"x:core\"\n size=\"s\"\n [disabled]=\"tab.isDisabled$ | async\"\n (buttonClick)=\"close(i, $event)\">\n </button>\n }\n </li>\n }\n }\n </ul>\n\n <div class=\"eds-tabs-navigation__right-item\">\n <button edsIconButton\n (click)=\"goToRight()\"\n [disabled]=\"navigationRightButtonDisabled\"\n icon=\"caret-right:core\"\n ariaLabel=\"Scroll right\">\n </button>\n </div>\n </div>\n <div #edsTabsRightContent class=\"eds-tabs-right-content-wrapper\">\n <ng-content select=\"eds-tabs-right-content\"></ng-content>\n </div>\n</div>\n\n@for (tab of tabs; let i = $index; track tab) {\n @if (i === activeTabIndex && (tab.isDisabled$ | async) === false && tab.templateBody) {\n <div id=\"tabpanel-{{ i + 1 }}-{{ tabId }}\" class=\"eds-tab-body-container\" role=\"tabpanel\" attr.aria-labelledby=\"tab-{{ i + 1 }}-{{ tabId }}\">\n <ng-template [cdkPortalOutlet]=\"tab.templateBody.templatePortal\" (attached)=\"onAttached(i + 1)\"></ng-template>\n </div>\n }\n}\n", styles: [".eui-21 :host.eds-tabs{--_label-font: var(--
|
|
579
|
+
], template: "<div #edsTabsHeadersContainer class=\"eds-tabs-wrapper\" [class.eds-tabs-wrapper--scrolling]=\"scrolling\">\n <div class=\"eds-tabs-navigation\">\n <div class=\"eds-tabs-navigation__left-item\">\n <button edsIconButton\n (click)=\"goToLeft()\"\n [disabled]=\"navigationLeftButtonDisabled\"\n icon=\"caret-left:core\"\n ariaLabel=\"Scroll left\">\n </button>\n </div>\n\n <ul #edsTabsHeaders class=\"eds-tab-items\" [attr.data-offset]=\"currentOffset\" role=\"tablist\" [attr.aria-label]=\"ariaLabel\">\n @for (tab of tabs; let i = $index; track tab) {\n @if (tab.isVisible$ | async) {\n <li #edsTabListItems\n class=\"eds-tab-item\"\n id=\"tab-{{ i + 1 }}-{{ tabId }}\"\n [tabindex]=\"i === activeTabIndex ? '0' : '-1'\"\n role=\"tab\"\n attr.aria-controls=\"tabpanel-{{ i + 1 }}-{{ tabId }}\"\n [attr.aria-selected]=\"i === activeTabIndex\"\n [class.eds-tab-item--active]=\"i === activeTabIndex\"\n [class.eds-tab-item--disabled]=\"tab.isDisabled$ | async\"\n attr.aria-disabled=\"{{ tab.isDisabled$ | async }}\"\n (click)=\"tabListItemClick(i)\"\n (keydown)=\"onKeydown(i, $event)\">\n <ng-template [cdkPortalOutlet]=\"tab.templateHeader().templatePortal\"></ng-template>\n\n @if (tab.isClosable$ | async) {\n <button edsIconButton\n [tabindex]=\"-1\"\n ariaLabel=\"Closable\"\n rounded\n class=\"eds-tab-close-button\"\n icon=\"x:core\"\n size=\"s\"\n [disabled]=\"tab.isDisabled$ | async\"\n (buttonClick)=\"close(i, $event)\">\n </button>\n }\n </li>\n }\n }\n </ul>\n\n <div class=\"eds-tabs-navigation__right-item\">\n <button edsIconButton\n (click)=\"goToRight()\"\n [disabled]=\"navigationRightButtonDisabled\"\n icon=\"caret-right:core\"\n ariaLabel=\"Scroll right\">\n </button>\n </div>\n </div>\n <div #edsTabsRightContent class=\"eds-tabs-right-content-wrapper\">\n <ng-content select=\"eds-tabs-right-content\"></ng-content>\n </div>\n</div>\n\n@for (tab of tabs; let i = $index; track tab) {\n @if (i === activeTabIndex && (tab.isDisabled$ | async) === false && tab.templateBody) {\n <div id=\"tabpanel-{{ i + 1 }}-{{ tabId }}\" class=\"eds-tab-body-container\" role=\"tabpanel\" attr.aria-labelledby=\"tab-{{ i + 1 }}-{{ tabId }}\">\n <ng-template [cdkPortalOutlet]=\"tab.templateBody.templatePortal\" (attached)=\"onAttached(i + 1)\"></ng-template>\n </div>\n }\n}\n", styles: [".eui-21 :host.eds-tabs{--_label-font: var(--eds-f-label-m-semi-bold);--_sublabel-font: var(--eds-f-paragraph-s)}.eui-21 :host.eds-tabs{display:flex;flex-direction:column;width:100%}.eui-21 :host.eds-tabs .eds-tab-item{--_border-color: transparent;--_color: var(--eds-c-foreground-subtler);--_color-hover: var(--eds-c-foreground)}.eui-21 :host.eds-tabs .eds-tab-item--active{--_color: var(--eds-c-foreground);--_border-color: var(--eds-c-border)}.eui-21 :host.eds-tabs .eds-tab-item--disabled{--_color: var(--eds-c-foreground-disabled);--_icon-color: var(--eds-c-foreground-disabled);--_border-color-hover: transparent}.eui-21 :host.eds-tabs--brand .eds-tab-item{--_color: var(--eds-c-foreground-inverted);--_color-hover: var(--eds-c-on-surface-brand)}.eui-21 :host.eds-tabs--brand .eds-tab-item--active{--_color: var(--eds-c-on-surface-brand);--_border-color: var(--eds-c-on-surface-brand)}.eui-21 :host.eds-tabs--neutral .eds-tab-item{--_color: var(--eds-c-foreground-subtler);--_color-hover: var(--eds-c-foreground)}.eui-21 :host.eds-tabs--neutral .eds-tab-item--active{--_color: var(--eds-c-foreground);--_border-color: var(--eds-c-foreground)}.eui-21 :host.eds-tabs.eds-tabs--navbar .eds-tabs-wrapper{border-bottom:none}.eui-21 :host.eds-tabs .eds-tabs-wrapper{align-items:center;border-bottom:var(--eds-bw-xs) solid var(--eds-c-border-divider);display:flex;overflow:hidden;position:relative}.eui-21 :host.eds-tabs .eds-tabs-wrapper .eds-tabs-right-content-wrapper{display:flex;margin-left:var(--eds-sp-m)}.eui-21 :host.eds-tabs .eds-tab-items{display:flex;height:100%;list-style:none;list-style-type:none;margin:0;padding:0}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item{align-items:center;background-color:inherit;border:var(--eui-bw-none);border-bottom:var(--eds-bw-s) solid transparent;color:var(--_color);cursor:pointer;display:flex;padding:var(--eds-sp-s) var(--eds-sp-m) var(--eds-sp-s) var(--eds-sp-m);position:relative;text-align:center;gap:var(--eds-sp-2xs)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper{display:flex;align-items:center;gap:var(--eds-sp-s);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper ::ng-deep .eds-tab-header-label-wrapper{display:flex;flex-direction:column}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper ::ng-deep .eds-tab-header-label-wrapper ::ng-deep .eds-tab-header-label{display:block;font-weight:700;line-height:var(--eds-sp-l);color:var(--_color);font:var(--_label-font)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-wrapper ::ng-deep .eds-tab-header-label-wrapper ::ng-deep .eds-tab-header-sub-label{font-weight:400;color:var(--_color);font:var(--_sublabel-font)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-left-content,.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item ::ng-deep .eds-tab-header-right-content{display:flex}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item--active{border-color:var(--_border-color)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item--disabled{cursor:not-allowed;pointer-events:none}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item:hover:not(.eds-tab-header--active) ::ng-deep .eds-tab-header-label{color:var(--_color-hover)}.eui-21 :host.eds-tabs .eds-tab-items .eds-tab-item:hover:not(.eds-tab-header--active) ::ng-deep .eds-tab-header-sub-label{color:var(--_color-hover)}.eui-21 :host.eds-tabs .eds-tabs-navigation{display:flex;overflow:hidden;position:relative;width:100%}.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__left-item,.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__right-item{align-self:center;background-color:var(--eui-c-surface-page);display:none;height:100%;position:absolute;z-index:1}.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__left-item{left:0}.eui-21 :host.eds-tabs .eds-tabs-navigation .eds-tabs-navigation__right-item{right:0}.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tab-items{padding-left:var(--eui-s-5xl)}.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tab-items .eds-tab-item{min-width:unset;overflow:unset}.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tabs-navigation__left-item,.eui-21 :host.eds-tabs .eds-tabs-wrapper.eui-tabs-wrapper--scrolling .eds-tabs-navigation__right-item{display:flex}.eui-21 :host.eds-tabs .eds-tab-body-container ::ng-deep .eds-tab__body{padding:var(--eui-s-s)}.eui-21 :host.eds-tabs .eds-tab-body-container ::ng-deep .eds-tab__body:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-tabs .eds-tab-body-container ::ng-deep .eds-tab__body.eds-tab__body--no-padding{padding:0}\n"] }]
|
|
580
580
|
}], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], activeTabIndex: [{
|
|
581
581
|
type: Input
|
|
582
582
|
}], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], isMainNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMainNavigation", required: false }] }], isFlat: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFlat", required: false }] }], isNavBar: [{ type: i0.Input, args: [{ isSignal: true, alias: "isNavBar", required: false }] }], tabClose: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-eds-eds-tabs.mjs","sources":["../../eds-tabs/eds-tab-header.ts","../../eds-tabs/eds-tab-header.html","../../eds-tabs/eds-tab-body.ts","../../eds-tabs/eds-tab-body.html","../../eds-tabs/eds-tab.ts","../../eds-tabs/eds-tabs.ts","../../eds-tabs/eds-tabs.html","../../eds-tabs/eds-tabs-right-content.ts","../../eds-tabs/eds-tab-header-label.ts","../../eds-tabs/eds-tab-header-sub-label.ts","../../eds-tabs/eds-tab-header-left-content.ts","../../eds-tabs/eds-tab-header-right-content.ts","../../eds-tabs/index.ts","../../eds-tabs/eui-eds-eds-tabs.ts"],"sourcesContent":["import { Component, TemplateRef, ViewContainerRef, AfterViewInit, inject, viewChild } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eds-tab-header',\n templateUrl: './eds-tab-header.html',\n})\nexport class EdsTabHeader implements AfterViewInit {\n readonly templateRef = viewChild.required<TemplateRef<HTMLElement>>('templateRef');\n\n public templatePortal!: TemplatePortal;\n private viewContainerRef = inject(ViewContainerRef);\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef(), this.viewContainerRef);\n }\n}\n","<ng-template #templateRef>\n <div class=\"eds-tab-header-wrapper\">\n <ng-content select=\"eds-tab-header-left-content\"/>\n <div class=\"eds-tab-header-label-wrapper\">\n <ng-content select=\"eds-tab-header-label\"/>\n <ng-content select=\"eds-tab-header-sub-label\"/>\n </div>\n <ng-content/>\n <ng-content select=\"eds-tab-header-right-content\"/>\n </div>\n</ng-template>\n","import { Component, Input, TemplateRef, ViewContainerRef, AfterViewInit, booleanAttribute, inject, viewChild } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject } from 'rxjs';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'eds-tab-body',\n templateUrl: './eds-tab-body.html',\n imports: [\n AsyncPipe,\n ],\n})\nexport class EdsTabBody implements AfterViewInit {\n /**\n * Removes default padding from the tab content area.\n * Useful for full-width content, custom layouts, or when content provides its own spacing.\n * @default false\n */\n @Input({ transform: booleanAttribute }) hasNoContentPadding = false;\n\n readonly templateRef = viewChild.required<TemplateRef<HTMLElement>>('templateRef');\n\n public templatePortal!: TemplatePortal;\n tabIndex$ = new BehaviorSubject(0);\n private viewContainerRef = inject(ViewContainerRef);\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef(), this.viewContainerRef);\n }\n}\n","<ng-template #templateRef>\n <div class=\"eds-tab__body\" [tabindex]=\"tabIndex$ | async\" [class.eds-tab__body--no-padding]=\"hasNoContentPadding\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n OnChanges,\n SimpleChanges,\n booleanAttribute,\n forwardRef,\n contentChild,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { EdsTabHeader } from './eds-tab-header';\nimport { EdsTabBody } from './eds-tab-body';\n\n@Component({\n selector: 'eds-tab',\n template: '<ng-content/>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EdsTab implements OnChanges {\n /**\n * Unique identifier for the tab.\n * Used for programmatic tab selection and tracking.\n * Required for proper tab management and routing.\n */\n @Input() id!: string;\n /**\n * URL or route path associated with the tab.\n * Enables deep linking and browser history integration for tab navigation.\n */\n @Input() url!: string;\n /**\n * Data attribute used for end-to-end testing identification.\n * @default 'eui-tab'\n */\n @Input() e2eAttr = 'eds-tab';\n /**\n * Tooltip text displayed when hovering over the tab header.\n * Provides additional context or information about the tab content.\n */\n @Input() tooltip!: string;\n /**\n * Enables a close button on the tab header for dismissible tabs.\n * Allows users to remove or hide the tab from the tab bar.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isClosable = false;\n /**\n * Disables the tab, preventing user interaction and selection.\n * Applies disabled styling and blocks tab activation.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isDisabled = false;\n /**\n * Controls the visibility of the tab in the tab bar.\n * When false, hides the tab from display without removing it from the DOM.\n * @default true\n */\n @Input({ transform: booleanAttribute }) isVisible = true;\n /**\n * Enables automatic tab closure when the close button is clicked.\n * When false, close button click must be handled externally.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isHandleCloseOnClose = false;\n /**\n * Enables automatic tab activation when the tab is clicked.\n * When false, tab activation must be handled externally.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isHandleActivateTab = false;\n\n readonly templateHeader = contentChild.required(forwardRef(() => EdsTabHeader));\n @ContentChild(forwardRef(() => EdsTabBody)) templateBody!: EdsTabBody;\n\n @Input() euiVariant = 'euiPrimary';\n\n public isActive = false;\n\n public isVisible$ = new BehaviorSubject(this.isVisible);\n public isClosable$ = new BehaviorSubject(this.isClosable);\n public isDisabled$ = new BehaviorSubject(this.isDisabled);\n\n ngOnChanges(c: SimpleChanges): void {\n if (c?.isVisible) {\n this.isVisible$.next(c.isVisible.currentValue);\n }\n if (c?.isClosable) {\n this.isClosable$.next(c.isClosable.currentValue);\n }\n if (c?.isDisabled) {\n this.isDisabled$.next(c.isDisabled.currentValue);\n }\n }\n\n public activateTab(): void {\n this.isActive = true;\n }\n\n public deactivateTab(): void {\n this.isActive = false;\n }\n}\n","import {\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n forwardRef,\n AfterViewInit,\n ElementRef,\n ChangeDetectorRef,\n booleanAttribute,\n ChangeDetectionStrategy,\n ViewChild,\n SimpleChanges,\n ViewChildren,\n OnChanges,\n OnInit,\n inject,\n input,\n computed,\n PLATFORM_ID,\n DOCUMENT,\n} from '@angular/core';\nimport { AsyncPipe, isPlatformBrowser } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { animate, AnimationBuilder, AnimationFactory, AnimationPlayer, style } from '@angular/animations';\nimport { Subject, startWith, takeUntil } from 'rxjs';\n\nimport { EuiAppShellService, uniqueId } from '@eui/core';\n\nimport { EdsTab } from './eds-tab';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EdsColorDirective } from '@eui/eds/shared';\n\n@Component({\n selector: 'eds-tabs',\n templateUrl: './eds-tabs.html',\n styleUrl: './eds-tabs.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'eds-tabs',\n '[attr.data-e2e]': 'e2eAttr()',\n '[class]': 'hostColorClass()',\n },\n imports: [\n AsyncPipe,\n PortalModule,\n ...EDS_ICON_BUTTON,\n ],\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsBrand',\n 'edsNeutral',\n 'edsColorVariant',\n ],\n },\n ],\n})\nexport class EdsTabs implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n /**\n * Sets the `data-e2e` attribute for the host element.\n *\n * @default 'eds-tabs'\n */\n e2eAttr = input('eds-tabs');\n\n private colorDirective = inject(EdsColorDirective);\n\n /** Computed host class that applies the color and variant modifiers. */\n hostColorClass = computed(() => {\n const color = this.colorDirective.getCssClass('eds-tabs');\n const navbar = this.isNavBar() ? 'eds-tabs--navbar' : '';\n return `eds-tabs ${color} ${navbar}`.trim();\n });\n /**\n * Index of the active tab\n *\n * @default 0\n */\n @Input() activeTabIndex = 0;\n /**\n * Sets the `aria-label` attribute for the host element.\n *\n * @default 'eUI Tabs'\n */\n ariaLabel = input('EDS Tabs');\n\n isMainNavigation = input(false, { transform: booleanAttribute });\n isFlat = input(false, { transform: booleanAttribute });\n isNavBar = input(false, { transform: booleanAttribute });\n\n /**\n * Event emitted when a tab is closed\n */\n @Output() tabClose = new EventEmitter<{ tab: EdsTab; index: number }>();\n /**\n * Event emitted when a tab is activated\n */\n @Output() tabActivate = new EventEmitter<{ tab: EdsTab; index: number }>();\n /**\n * Event emitted when a tab is clicked\n */\n @Output() tabClick = new EventEmitter<{ tab: EdsTab; index: number }>();\n\n @ContentChildren(forwardRef(() => EdsTab), { descendants: false }) _tabs!: QueryList<EdsTab>;\n\n @ViewChild('edsTabsHeadersContainer') edsTabsHeadersContainer!: ElementRef;\n @ViewChild('edsTabsHeaders') edsTabsHeaders!: ElementRef;\n @ViewChild('edsTabsRightContent') edsTabsRightContent!: ElementRef;\n @ViewChildren('edsTabListItems') edsTabListItems!: QueryList<ElementRef>;\n\n public tabs: EdsTab[] = [];\n public scrolling = false;\n public navigationLeftButtonDisabled = true;\n public navigationRightButtonDisabled = false;\n public currentOffset = 0;\n\n protected tabId = uniqueId();\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private platformId = inject(PLATFORM_ID);\n private player!: AnimationPlayer;\n private stepMove = 400;\n private scrollOffset = 40;\n private scrollingCount = 0;\n private cd = inject(ChangeDetectorRef);\n private builder = inject(AnimationBuilder);\n private euiAppShellService = inject(EuiAppShellService);\n private document = inject(DOCUMENT);\n\n /**\n * Width of the tabs headers container\n */\n get edsTabsHeadersContainerWidth(): number {\n return (this.edsTabsHeadersContainer?.nativeElement.clientWidth - this.edsTabsRightContentWidth);\n }\n\n /**\n * Width of the tabs headers\n */\n get edsTabsHeadersWidth(): number {\n return this.edsTabsHeaders?.nativeElement.clientWidth;\n }\n\n /**\n * Width of the tabs right content\n */\n get edsTabsRightContentWidth(): number {\n return this.edsTabsRightContent?.nativeElement?.offsetWidth || 0;\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (c?.activeTabIndex && !c.activeTabIndex.isFirstChange()) {\n this.activate(this.activeTabIndex);\n }\n }\n\n ngOnInit(): void {\n this.euiAppShellService.state$.pipe(takeUntil(this.destroy$)).subscribe((state) => {\n this.tabsScrollingHandler();\n });\n }\n\n ngAfterViewInit(): void {\n this._tabs.changes.pipe(startWith(this._tabs), takeUntil(this.destroy$)).subscribe((tabs: QueryList<EdsTab>) => {\n this.tabs = tabs.toArray();\n setTimeout(() => {\n this.tabsScrollingHandler();\n });\n\n this.cd.detectChanges();\n });\n\n setTimeout(() => {\n if (this.tabs[this.activeTabIndex]) {\n this.cd.markForCheck();\n this.activate(this.activeTabIndex, false, { emitEvent: false });\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Activate a tab having index passed in parameter if exists.\n *\n * @param index Index of the tab to close\n * @param isAnimated Whether the tab activation should be animated\n * @param options Object with emitEvent property to emit the event or not\n */\n public activateTab(index: number, isAnimated = true, options = { emitEvent: true }): void {\n const tab = this.tabs[index];\n if (tab) {\n this.tabs.forEach((t) => {\n t.deactivateTab();\n });\n\n this.setScrollToTabIndex(index, isAnimated);\n\n tab.activateTab();\n this.activeTabIndex = index;\n\n if (options.emitEvent) {\n this.tabActivate.emit({ tab, index });\n }\n\n this.cd.detectChanges();\n }\n }\n\n /**\n * Close a tab having index passed in parameter if exists.\n * @param index Index of the tab to close\n */\n public closeTab(index: number): void {\n const tab = this.tabs[index];\n if (this.tabs[index]) {\n this.tabs[index].deactivateTab();\n this.tabs = this.tabs.filter((_, i) => i !== index);\n\n if (index === this.activeTabIndex) {\n const previousVisibleIndex = this.tabs.indexOf(this.tabs[index - 1]);\n this.cd.markForCheck();\n\n if (previousVisibleIndex < 0) {\n this.activate(0);\n } else {\n this.activate(previousVisibleIndex);\n }\n } else {\n if (index < this.activeTabIndex) {\n this.activeTabIndex = this.activeTabIndex - 1;\n }\n }\n\n this.cd.detectChanges();\n this.tabsScrollingHandler();\n }\n }\n\n /**\n * Scroll to the left handler\n */\n public goToLeft(): void {\n let scrollTo = this.currentOffset + this.stepMove;\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n /**\n * Scroll to the rihgt handler\n */\n public goToRight(): void {\n let scrollTo = this.currentOffset - this.stepMove;\n if (Math.abs(scrollTo) > this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth) {\n scrollTo = -(this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth) - this.scrollOffset;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n /**\n * Actions applied upon a keydown event\n *\n * @param i Index of the tab for each pressed key\n * @param event The keyboard event\n */\n protected onKeydown(i: number, event: KeyboardEvent): void {\n switch (event.key) {\n case 'Enter': {\n if (!this.tabs[i].isDisabled) {\n this.activate(i);\n }\n break;\n }\n case 'ArrowRight': {\n const isLastItem = i === this.edsTabListItems.toArray().length - 1;\n const index = isLastItem ? 0 : i + 1;\n\n this.setScrollToTabIndex(index, false);\n this.edsTabListItems.toArray()[index]?.nativeElement.focus();\n\n break;\n }\n case 'ArrowLeft': {\n const lastIndex = this.edsTabListItems.toArray().length - 1;\n const index = i === 0 ? lastIndex : i - 1;\n\n this.setScrollToTabIndex(index, false);\n this.edsTabListItems.toArray()[index]?.nativeElement.focus();\n\n break;\n }\n case 'Home': {\n this.setScrollToTabIndex(0, false);\n this.edsTabListItems.toArray()[0]?.nativeElement.focus();\n event.preventDefault();\n break;\n }\n case 'End': {\n this.setScrollToTabIndex(this.edsTabListItems.toArray().length - 1, false);\n this.edsTabListItems.toArray()[this.edsTabListItems.toArray().length - 1]?.nativeElement.focus();\n event.preventDefault();\n break;\n }\n case 'Delete': {\n if (this.tabs[i].isClosable) {\n if (i === this.edsTabListItems.toArray().length - 1) {\n this.edsTabListItems.toArray()[i - 1]?.nativeElement.focus();\n this.close(i, event);\n } else {\n this.close(i, event);\n this.edsTabListItems.toArray()[i]?.nativeElement.focus();\n }\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Click handler for tab list item\n *\n * @param index Index of the tab clicked\n */\n protected tabListItemClick(index: number): void {\n const tab = this.tabs[index];\n\n this.tabClick.emit({ tab, index });\n\n this.activate(index);\n }\n\n /**\n * Activates a tab\n *\n * @param index Index of the tab to activate\n * @param isAnimated Whether the activation should be animated\n * @param options Object with emitEvent property to emit the event or not\n */\n protected activate(index: number, isAnimated = true, options = { emitEvent: true }): void {\n const tab = this.tabs[index];\n\n if (tab && !tab.isHandleActivateTab) {\n this.activateTab(index, isAnimated, options);\n }\n }\n\n /**\n * Closes a tab\n *\n * @param index Index of the tab to close\n * @param e\n */\n protected close(index: number, e: Event): void {\n const tab = this.tabs[index];\n\n if (tab && !tab.isHandleCloseOnClose) {\n this.closeTab(index);\n }\n\n this.tabClose.emit({ tab, index });\n e.stopPropagation();\n }\n\n /**\n * Checks if there are html elements within the tab panel, in order to focus or not the tab panel\n * @param index The tab index\n */\n protected onAttached(index: number): void {\n if (isPlatformBrowser(this.platformId)) {\n const tabbody = this.document.querySelector('#tabpanel-' + index + '-' + this.tabId)?.children[0];\n if (tabbody?.children?.length && tabbody.children.length > 0) {\n for (const child of Array.from(tabbody.children)) {\n if (this.isFocusableElement(child)) {\n this.tabs[index - 1].templateBody.tabIndex$.next(-1);\n } else {\n this.tabs[index - 1].templateBody.tabIndex$.next(0);\n }\n }\n } else {\n this.tabs[index - 1].templateBody.tabIndex$.next(0);\n }\n }\n }\n\n /**\n * Checks the existence of focusable elements\n * @param origin The element to check\n */\n private isFocusableElement(origin: Element): boolean {\n return (\n origin.matches('button') ||\n origin.matches('a') ||\n origin.matches('input') ||\n origin.matches('select') ||\n origin.matches('textarea') ||\n origin.matches('[tabindex]:not([tabindex=\"-1\"])')\n );\n }\n\n /**\n * Checks if the tabs headers are scrolling and calculates the scrolling position\n */\n private tabsScrollingHandler(): void {\n if (this.edsTabsHeadersContainerWidth && this.edsTabsHeadersWidth) {\n\n this.scrolling = this.edsTabsHeadersWidth > this.edsTabsHeadersContainerWidth;\n\n if (!this.scrolling) {\n this.scrollingCount = 0;\n this.setScrollTo(0, false);\n this.navigationLeftButtonDisabled = true;\n this.navigationRightButtonDisabled = true;\n } else {\n const maxScrollableWidth = this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth;\n\n if (maxScrollableWidth <= Math.abs(this.currentOffset) + this.scrollOffset && this.scrollingCount !== 0) {\n const scrollTo = -maxScrollableWidth - this.scrollOffset;\n this.setScrollTo(scrollTo);\n } else {\n this.navigationRightButtonDisabled = Math.abs(this.currentOffset) >= maxScrollableWidth;\n this.navigationLeftButtonDisabled = this.currentOffset >= 0;\n }\n\n this.scrollingCount++;\n }\n\n this.cd.detectChanges();\n }\n }\n\n /**\n * Sets the scroll position oon the tab header specified by index\n *\n * @param index Index of the tab header to scroll to\n * @param isAnimated Whether the tab activation should be animated\n */\n private setScrollToTabIndex(index: number, isAnimated = true): void {\n const activeTab = this.edsTabsHeaders.nativeElement.children.item(index);\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isMainNavigation()) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= index; i++) {\n subsetWidth += this.edsTabsHeaders.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = this.edsTabsHeadersContainerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth + this.scrollOffset) {\n scrollTo = -(this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth + this.scrollOffset);\n }\n\n if (scrollTo > 0 || (scrollTo < 0 && index === 0)) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo, isAnimated);\n }\n }\n\n /**\n * Sets the scroll position of the tabs headers\n *\n * @param scrollTo Number to set on the margin-left style property\n * @param isAnimated Whether the tab activation should be animated\n */\n private setScrollTo(scrollTo: number, isAnimated = true): void {\n const timings = isAnimated ? '500ms cubic-bezier(0.35, 0, 0.25, 1)' : 0;\n const animation: AnimationFactory = this.builder.build([animate(timings, style({ 'margin-left': +scrollTo + 'px' }))]);\n\n this.player = animation.create(this.edsTabsHeaders.nativeElement);\n this.player.play();\n\n this.currentOffset = scrollTo;\n\n if (scrollTo === 0) {\n this.navigationLeftButtonDisabled = true;\n }\n if (Math.abs(this.currentOffset) < this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n if (Math.abs(scrollTo) === this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = true;\n }\n\n this.cd.detectChanges();\n }\n\n /**\n * Checks if the active tab is fully visible\n *\n * @param activeTab Index of the tab to check\n * @returns true if fully visible, false otherwise\n */\n private isActiveTabFullyVisible(activeTab: HTMLDivElement): boolean {\n const fullyVisible =\n activeTab.offsetLeft - this.scrollOffset >= 0 &&\n activeTab.offsetLeft + activeTab.clientWidth < this.edsTabsHeadersContainerWidth - this.scrollOffset;\n\n return fullyVisible;\n }\n}\n","<div #edsTabsHeadersContainer class=\"eds-tabs-wrapper\" [class.eds-tabs-wrapper--scrolling]=\"scrolling\">\n <div class=\"eds-tabs-navigation\">\n <div class=\"eds-tabs-navigation__left-item\">\n <button edsIconButton\n (click)=\"goToLeft()\"\n [disabled]=\"navigationLeftButtonDisabled\"\n icon=\"caret-left:core\"\n ariaLabel=\"Scroll left\">\n </button>\n </div>\n\n <ul #edsTabsHeaders class=\"eds-tab-items\" [attr.data-offset]=\"currentOffset\" role=\"tablist\" [attr.aria-label]=\"ariaLabel\">\n @for (tab of tabs; let i = $index; track tab) {\n @if (tab.isVisible$ | async) {\n <li #edsTabListItems\n class=\"eds-tab-item\"\n id=\"tab-{{ i + 1 }}-{{ tabId }}\"\n [tabindex]=\"i === activeTabIndex ? '0' : '-1'\"\n role=\"tab\"\n attr.aria-controls=\"tabpanel-{{ i + 1 }}-{{ tabId }}\"\n [attr.aria-selected]=\"i === activeTabIndex\"\n [class.eds-tab-item--active]=\"i === activeTabIndex\"\n [class.eds-tab-item--disabled]=\"tab.isDisabled$ | async\"\n attr.aria-disabled=\"{{ tab.isDisabled$ | async }}\"\n (click)=\"tabListItemClick(i)\"\n (keydown)=\"onKeydown(i, $event)\">\n <ng-template [cdkPortalOutlet]=\"tab.templateHeader().templatePortal\"></ng-template>\n\n @if (tab.isClosable$ | async) {\n <button edsIconButton\n [tabindex]=\"-1\"\n ariaLabel=\"Closable\"\n rounded\n class=\"eds-tab-close-button\"\n icon=\"x:core\"\n size=\"s\"\n [disabled]=\"tab.isDisabled$ | async\"\n (buttonClick)=\"close(i, $event)\">\n </button>\n }\n </li>\n }\n }\n </ul>\n\n <div class=\"eds-tabs-navigation__right-item\">\n <button edsIconButton\n (click)=\"goToRight()\"\n [disabled]=\"navigationRightButtonDisabled\"\n icon=\"caret-right:core\"\n ariaLabel=\"Scroll right\">\n </button>\n </div>\n </div>\n <div #edsTabsRightContent class=\"eds-tabs-right-content-wrapper\">\n <ng-content select=\"eds-tabs-right-content\"></ng-content>\n </div>\n</div>\n\n@for (tab of tabs; let i = $index; track tab) {\n @if (i === activeTabIndex && (tab.isDisabled$ | async) === false && tab.templateBody) {\n <div id=\"tabpanel-{{ i + 1 }}-{{ tabId }}\" class=\"eds-tab-body-container\" role=\"tabpanel\" attr.aria-labelledby=\"tab-{{ i + 1 }}-{{ tabId }}\">\n <ng-template [cdkPortalOutlet]=\"tab.templateBody.templatePortal\" (attached)=\"onAttached(i + 1)\"></ng-template>\n </div>\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'eds-tabs-right-content',\n template: '<ng-content/>',\n styles: `\n :host {\n display: flex;\n margin-left: auto;\n }\n `,\n})\nexport class EdsTabsRightContent {\n}\n","import { Component, HostBinding, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'eds-tab-header-label',\n template: '<ng-content />',\n})\nexport class EdsTabHeaderLabel {\n @HostBinding('class') string = 'eds-tab-header-label';\n}\n","import { Component, HostBinding, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'eds-tab-header-sub-label',\n template: '<ng-content />',\n})\nexport class EdsTabHeaderSublabel {\n @HostBinding('class') string = 'eds-tab-header-sub-label';\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'eds-tab-header-left-content',\n template: '<ng-content />',\n})\nexport class EdsTabHeaderLeftContent {\n @HostBinding('class') string = 'eds-tab-header-left-content';\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'eds-tab-header-right-content',\n template: '<ng-content />',\n})\nexport class EdsTabHeaderRightContent {\n @HostBinding('class') string = 'eds-tab-header-right-content';\n}\n","export * from './eds-tabs';\nexport * from './eds-tabs-right-content';\nexport * from './eds-tab';\nexport * from './eds-tab-header';\nexport * from './eds-tab-header-label';\nexport * from './eds-tab-header-sub-label';\nexport * from './eds-tab-header-left-content';\nexport * from './eds-tab-header-right-content';\nexport * from './eds-tab-body';\n\nimport { EdsTabs } from './eds-tabs';\nimport { EdsTabsRightContent } from './eds-tabs-right-content';\nimport { EdsTabBody } from './eds-tab-body';\nimport { EdsTabHeader } from './eds-tab-header';\nimport { EdsTab } from './eds-tab';\nimport { EdsTabHeaderLabel } from './eds-tab-header-label';\nimport { EdsTabHeaderSublabel } from './eds-tab-header-sub-label';\nimport { EdsTabHeaderRightContent } from './eds-tab-header-right-content';\nimport { EdsTabHeaderLeftContent } from './eds-tab-header-left-content';\n\nexport const EDS_TABS = [\n EdsTabs,\n EdsTabsRightContent,\n EdsTabBody,\n EdsTabHeader,\n EdsTabHeaderLabel,\n EdsTabHeaderSublabel,\n EdsTabHeaderRightContent,\n EdsTabHeaderLeftContent,\n EdsTab,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-eds-eds-tabs.mjs","sources":["../../eds-tabs/eds-tab-header.ts","../../eds-tabs/eds-tab-header.html","../../eds-tabs/eds-tab-body.ts","../../eds-tabs/eds-tab-body.html","../../eds-tabs/eds-tab.ts","../../eds-tabs/eds-tabs.ts","../../eds-tabs/eds-tabs.html","../../eds-tabs/eds-tabs-right-content.ts","../../eds-tabs/eds-tab-header-label.ts","../../eds-tabs/eds-tab-header-sub-label.ts","../../eds-tabs/eds-tab-header-left-content.ts","../../eds-tabs/eds-tab-header-right-content.ts","../../eds-tabs/index.ts","../../eds-tabs/eui-eds-eds-tabs.ts"],"sourcesContent":["import { Component, TemplateRef, ViewContainerRef, AfterViewInit, inject, viewChild } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eds-tab-header',\n templateUrl: './eds-tab-header.html',\n})\nexport class EdsTabHeader implements AfterViewInit {\n readonly templateRef = viewChild.required<TemplateRef<HTMLElement>>('templateRef');\n\n public templatePortal!: TemplatePortal;\n private viewContainerRef = inject(ViewContainerRef);\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef(), this.viewContainerRef);\n }\n}\n","<ng-template #templateRef>\n <div class=\"eds-tab-header-wrapper\">\n <ng-content select=\"eds-tab-header-left-content\"/>\n <div class=\"eds-tab-header-label-wrapper\">\n <ng-content select=\"eds-tab-header-label\"/>\n <ng-content select=\"eds-tab-header-sub-label\"/>\n </div>\n <ng-content/>\n <ng-content select=\"eds-tab-header-right-content\"/>\n </div>\n</ng-template>\n","import { Component, Input, TemplateRef, ViewContainerRef, AfterViewInit, booleanAttribute, inject, viewChild } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject } from 'rxjs';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'eds-tab-body',\n templateUrl: './eds-tab-body.html',\n imports: [\n AsyncPipe,\n ],\n})\nexport class EdsTabBody implements AfterViewInit {\n /**\n * Removes default padding from the tab content area.\n * Useful for full-width content, custom layouts, or when content provides its own spacing.\n * @default false\n */\n @Input({ transform: booleanAttribute }) hasNoContentPadding = false;\n\n readonly templateRef = viewChild.required<TemplateRef<HTMLElement>>('templateRef');\n\n public templatePortal!: TemplatePortal;\n tabIndex$ = new BehaviorSubject(0);\n private viewContainerRef = inject(ViewContainerRef);\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef(), this.viewContainerRef);\n }\n}\n","<ng-template #templateRef>\n <div class=\"eds-tab__body\" [tabindex]=\"tabIndex$ | async\" [class.eds-tab__body--no-padding]=\"hasNoContentPadding\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n OnChanges,\n SimpleChanges,\n booleanAttribute,\n forwardRef,\n contentChild,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { EdsTabHeader } from './eds-tab-header';\nimport { EdsTabBody } from './eds-tab-body';\n\n@Component({\n selector: 'eds-tab',\n template: '<ng-content/>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EdsTab implements OnChanges {\n /**\n * Unique identifier for the tab.\n * Used for programmatic tab selection and tracking.\n * Required for proper tab management and routing.\n */\n @Input() id!: string;\n /**\n * URL or route path associated with the tab.\n * Enables deep linking and browser history integration for tab navigation.\n */\n @Input() url!: string;\n /**\n * Data attribute used for end-to-end testing identification.\n * @default 'eui-tab'\n */\n @Input() e2eAttr = 'eds-tab';\n /**\n * Tooltip text displayed when hovering over the tab header.\n * Provides additional context or information about the tab content.\n */\n @Input() tooltip!: string;\n /**\n * Enables a close button on the tab header for dismissible tabs.\n * Allows users to remove or hide the tab from the tab bar.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isClosable = false;\n /**\n * Disables the tab, preventing user interaction and selection.\n * Applies disabled styling and blocks tab activation.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isDisabled = false;\n /**\n * Controls the visibility of the tab in the tab bar.\n * When false, hides the tab from display without removing it from the DOM.\n * @default true\n */\n @Input({ transform: booleanAttribute }) isVisible = true;\n /**\n * Enables automatic tab closure when the close button is clicked.\n * When false, close button click must be handled externally.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isHandleCloseOnClose = false;\n /**\n * Enables automatic tab activation when the tab is clicked.\n * When false, tab activation must be handled externally.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isHandleActivateTab = false;\n\n readonly templateHeader = contentChild.required(forwardRef(() => EdsTabHeader));\n @ContentChild(forwardRef(() => EdsTabBody)) templateBody!: EdsTabBody;\n\n @Input() euiVariant = 'euiPrimary';\n\n public isActive = false;\n\n public isVisible$ = new BehaviorSubject(this.isVisible);\n public isClosable$ = new BehaviorSubject(this.isClosable);\n public isDisabled$ = new BehaviorSubject(this.isDisabled);\n\n ngOnChanges(c: SimpleChanges): void {\n if (c?.isVisible) {\n this.isVisible$.next(c.isVisible.currentValue);\n }\n if (c?.isClosable) {\n this.isClosable$.next(c.isClosable.currentValue);\n }\n if (c?.isDisabled) {\n this.isDisabled$.next(c.isDisabled.currentValue);\n }\n }\n\n public activateTab(): void {\n this.isActive = true;\n }\n\n public deactivateTab(): void {\n this.isActive = false;\n }\n}\n","import {\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n forwardRef,\n AfterViewInit,\n ElementRef,\n ChangeDetectorRef,\n booleanAttribute,\n ChangeDetectionStrategy,\n ViewChild,\n SimpleChanges,\n ViewChildren,\n OnChanges,\n OnInit,\n inject,\n input,\n computed,\n PLATFORM_ID,\n DOCUMENT,\n} from '@angular/core';\nimport { AsyncPipe, isPlatformBrowser } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { animate, AnimationBuilder, AnimationFactory, AnimationPlayer, style } from '@angular/animations';\nimport { Subject, startWith, takeUntil } from 'rxjs';\n\nimport { EuiAppShellService, uniqueId } from '@eui/core';\n\nimport { EdsTab } from './eds-tab';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EdsColorDirective } from '@eui/eds/shared';\n\n@Component({\n selector: 'eds-tabs',\n templateUrl: './eds-tabs.html',\n styleUrl: './eds-tabs.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'eds-tabs',\n '[attr.data-e2e]': 'e2eAttr()',\n '[class]': 'hostColorClass()',\n },\n imports: [\n AsyncPipe,\n PortalModule,\n ...EDS_ICON_BUTTON,\n ],\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsBrand',\n 'edsNeutral',\n 'edsColorVariant',\n ],\n },\n ],\n})\nexport class EdsTabs implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n /**\n * Sets the `data-e2e` attribute for the host element.\n *\n * @default 'eds-tabs'\n */\n e2eAttr = input('eds-tabs');\n\n private colorDirective = inject(EdsColorDirective);\n\n /** Computed host class that applies the color and variant modifiers. */\n hostColorClass = computed(() => {\n const color = this.colorDirective.getCssClass('eds-tabs');\n const navbar = this.isNavBar() ? 'eds-tabs--navbar' : '';\n return `eds-tabs ${color} ${navbar}`.trim();\n });\n /**\n * Index of the active tab\n *\n * @default 0\n */\n @Input() activeTabIndex = 0;\n /**\n * Sets the `aria-label` attribute for the host element.\n *\n * @default 'eUI Tabs'\n */\n ariaLabel = input('EDS Tabs');\n\n isMainNavigation = input(false, { transform: booleanAttribute });\n isFlat = input(false, { transform: booleanAttribute });\n isNavBar = input(false, { transform: booleanAttribute });\n\n /**\n * Event emitted when a tab is closed\n */\n @Output() tabClose = new EventEmitter<{ tab: EdsTab; index: number }>();\n /**\n * Event emitted when a tab is activated\n */\n @Output() tabActivate = new EventEmitter<{ tab: EdsTab; index: number }>();\n /**\n * Event emitted when a tab is clicked\n */\n @Output() tabClick = new EventEmitter<{ tab: EdsTab; index: number }>();\n\n @ContentChildren(forwardRef(() => EdsTab), { descendants: false }) _tabs!: QueryList<EdsTab>;\n\n @ViewChild('edsTabsHeadersContainer') edsTabsHeadersContainer!: ElementRef;\n @ViewChild('edsTabsHeaders') edsTabsHeaders!: ElementRef;\n @ViewChild('edsTabsRightContent') edsTabsRightContent!: ElementRef;\n @ViewChildren('edsTabListItems') edsTabListItems!: QueryList<ElementRef>;\n\n public tabs: EdsTab[] = [];\n public scrolling = false;\n public navigationLeftButtonDisabled = true;\n public navigationRightButtonDisabled = false;\n public currentOffset = 0;\n\n protected tabId = uniqueId();\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private platformId = inject(PLATFORM_ID);\n private player!: AnimationPlayer;\n private stepMove = 400;\n private scrollOffset = 40;\n private scrollingCount = 0;\n private cd = inject(ChangeDetectorRef);\n private builder = inject(AnimationBuilder);\n private euiAppShellService = inject(EuiAppShellService);\n private document = inject(DOCUMENT);\n\n /**\n * Width of the tabs headers container\n */\n get edsTabsHeadersContainerWidth(): number {\n return (this.edsTabsHeadersContainer?.nativeElement.clientWidth - this.edsTabsRightContentWidth);\n }\n\n /**\n * Width of the tabs headers\n */\n get edsTabsHeadersWidth(): number {\n return this.edsTabsHeaders?.nativeElement.clientWidth;\n }\n\n /**\n * Width of the tabs right content\n */\n get edsTabsRightContentWidth(): number {\n return this.edsTabsRightContent?.nativeElement?.offsetWidth || 0;\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (c?.activeTabIndex && !c.activeTabIndex.isFirstChange()) {\n this.activate(this.activeTabIndex);\n }\n }\n\n ngOnInit(): void {\n this.euiAppShellService.state$.pipe(takeUntil(this.destroy$)).subscribe((state) => {\n this.tabsScrollingHandler();\n });\n }\n\n ngAfterViewInit(): void {\n this._tabs.changes.pipe(startWith(this._tabs), takeUntil(this.destroy$)).subscribe((tabs: QueryList<EdsTab>) => {\n this.tabs = tabs.toArray();\n setTimeout(() => {\n this.tabsScrollingHandler();\n });\n\n this.cd.detectChanges();\n });\n\n setTimeout(() => {\n if (this.tabs[this.activeTabIndex]) {\n this.cd.markForCheck();\n this.activate(this.activeTabIndex, false, { emitEvent: false });\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Activate a tab having index passed in parameter if exists.\n *\n * @param index Index of the tab to close\n * @param isAnimated Whether the tab activation should be animated\n * @param options Object with emitEvent property to emit the event or not\n */\n public activateTab(index: number, isAnimated = true, options = { emitEvent: true }): void {\n const tab = this.tabs[index];\n if (tab) {\n this.tabs.forEach((t) => {\n t.deactivateTab();\n });\n\n this.setScrollToTabIndex(index, isAnimated);\n\n tab.activateTab();\n this.activeTabIndex = index;\n\n if (options.emitEvent) {\n this.tabActivate.emit({ tab, index });\n }\n\n this.cd.detectChanges();\n }\n }\n\n /**\n * Close a tab having index passed in parameter if exists.\n * @param index Index of the tab to close\n */\n public closeTab(index: number): void {\n const tab = this.tabs[index];\n if (this.tabs[index]) {\n this.tabs[index].deactivateTab();\n this.tabs = this.tabs.filter((_, i) => i !== index);\n\n if (index === this.activeTabIndex) {\n const previousVisibleIndex = this.tabs.indexOf(this.tabs[index - 1]);\n this.cd.markForCheck();\n\n if (previousVisibleIndex < 0) {\n this.activate(0);\n } else {\n this.activate(previousVisibleIndex);\n }\n } else {\n if (index < this.activeTabIndex) {\n this.activeTabIndex = this.activeTabIndex - 1;\n }\n }\n\n this.cd.detectChanges();\n this.tabsScrollingHandler();\n }\n }\n\n /**\n * Scroll to the left handler\n */\n public goToLeft(): void {\n let scrollTo = this.currentOffset + this.stepMove;\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n /**\n * Scroll to the rihgt handler\n */\n public goToRight(): void {\n let scrollTo = this.currentOffset - this.stepMove;\n if (Math.abs(scrollTo) > this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth) {\n scrollTo = -(this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth) - this.scrollOffset;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n /**\n * Actions applied upon a keydown event\n *\n * @param i Index of the tab for each pressed key\n * @param event The keyboard event\n */\n protected onKeydown(i: number, event: KeyboardEvent): void {\n switch (event.key) {\n case 'Enter': {\n if (!this.tabs[i].isDisabled) {\n this.activate(i);\n }\n break;\n }\n case 'ArrowRight': {\n const isLastItem = i === this.edsTabListItems.toArray().length - 1;\n const index = isLastItem ? 0 : i + 1;\n\n this.setScrollToTabIndex(index, false);\n this.edsTabListItems.toArray()[index]?.nativeElement.focus();\n\n break;\n }\n case 'ArrowLeft': {\n const lastIndex = this.edsTabListItems.toArray().length - 1;\n const index = i === 0 ? lastIndex : i - 1;\n\n this.setScrollToTabIndex(index, false);\n this.edsTabListItems.toArray()[index]?.nativeElement.focus();\n\n break;\n }\n case 'Home': {\n this.setScrollToTabIndex(0, false);\n this.edsTabListItems.toArray()[0]?.nativeElement.focus();\n event.preventDefault();\n break;\n }\n case 'End': {\n this.setScrollToTabIndex(this.edsTabListItems.toArray().length - 1, false);\n this.edsTabListItems.toArray()[this.edsTabListItems.toArray().length - 1]?.nativeElement.focus();\n event.preventDefault();\n break;\n }\n case 'Delete': {\n if (this.tabs[i].isClosable) {\n if (i === this.edsTabListItems.toArray().length - 1) {\n this.edsTabListItems.toArray()[i - 1]?.nativeElement.focus();\n this.close(i, event);\n } else {\n this.close(i, event);\n this.edsTabListItems.toArray()[i]?.nativeElement.focus();\n }\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Click handler for tab list item\n *\n * @param index Index of the tab clicked\n */\n protected tabListItemClick(index: number): void {\n const tab = this.tabs[index];\n\n this.tabClick.emit({ tab, index });\n\n this.activate(index);\n }\n\n /**\n * Activates a tab\n *\n * @param index Index of the tab to activate\n * @param isAnimated Whether the activation should be animated\n * @param options Object with emitEvent property to emit the event or not\n */\n protected activate(index: number, isAnimated = true, options = { emitEvent: true }): void {\n const tab = this.tabs[index];\n\n if (tab && !tab.isHandleActivateTab) {\n this.activateTab(index, isAnimated, options);\n }\n }\n\n /**\n * Closes a tab\n *\n * @param index Index of the tab to close\n * @param e\n */\n protected close(index: number, e: Event): void {\n const tab = this.tabs[index];\n\n if (tab && !tab.isHandleCloseOnClose) {\n this.closeTab(index);\n }\n\n this.tabClose.emit({ tab, index });\n e.stopPropagation();\n }\n\n /**\n * Checks if there are html elements within the tab panel, in order to focus or not the tab panel\n * @param index The tab index\n */\n protected onAttached(index: number): void {\n if (isPlatformBrowser(this.platformId)) {\n const tabbody = this.document.querySelector('#tabpanel-' + index + '-' + this.tabId)?.children[0];\n if (tabbody?.children?.length && tabbody.children.length > 0) {\n for (const child of Array.from(tabbody.children)) {\n if (this.isFocusableElement(child)) {\n this.tabs[index - 1].templateBody.tabIndex$.next(-1);\n } else {\n this.tabs[index - 1].templateBody.tabIndex$.next(0);\n }\n }\n } else {\n this.tabs[index - 1].templateBody.tabIndex$.next(0);\n }\n }\n }\n\n /**\n * Checks the existence of focusable elements\n * @param origin The element to check\n */\n private isFocusableElement(origin: Element): boolean {\n return (\n origin.matches('button') ||\n origin.matches('a') ||\n origin.matches('input') ||\n origin.matches('select') ||\n origin.matches('textarea') ||\n origin.matches('[tabindex]:not([tabindex=\"-1\"])')\n );\n }\n\n /**\n * Checks if the tabs headers are scrolling and calculates the scrolling position\n */\n private tabsScrollingHandler(): void {\n if (this.edsTabsHeadersContainerWidth && this.edsTabsHeadersWidth) {\n\n this.scrolling = this.edsTabsHeadersWidth > this.edsTabsHeadersContainerWidth;\n\n if (!this.scrolling) {\n this.scrollingCount = 0;\n this.setScrollTo(0, false);\n this.navigationLeftButtonDisabled = true;\n this.navigationRightButtonDisabled = true;\n } else {\n const maxScrollableWidth = this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth;\n\n if (maxScrollableWidth <= Math.abs(this.currentOffset) + this.scrollOffset && this.scrollingCount !== 0) {\n const scrollTo = -maxScrollableWidth - this.scrollOffset;\n this.setScrollTo(scrollTo);\n } else {\n this.navigationRightButtonDisabled = Math.abs(this.currentOffset) >= maxScrollableWidth;\n this.navigationLeftButtonDisabled = this.currentOffset >= 0;\n }\n\n this.scrollingCount++;\n }\n\n this.cd.detectChanges();\n }\n }\n\n /**\n * Sets the scroll position oon the tab header specified by index\n *\n * @param index Index of the tab header to scroll to\n * @param isAnimated Whether the tab activation should be animated\n */\n private setScrollToTabIndex(index: number, isAnimated = true): void {\n const activeTab = this.edsTabsHeaders.nativeElement.children.item(index);\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isMainNavigation()) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= index; i++) {\n subsetWidth += this.edsTabsHeaders.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = this.edsTabsHeadersContainerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth + this.scrollOffset) {\n scrollTo = -(this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth + this.scrollOffset);\n }\n\n if (scrollTo > 0 || (scrollTo < 0 && index === 0)) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo, isAnimated);\n }\n }\n\n /**\n * Sets the scroll position of the tabs headers\n *\n * @param scrollTo Number to set on the margin-left style property\n * @param isAnimated Whether the tab activation should be animated\n */\n private setScrollTo(scrollTo: number, isAnimated = true): void {\n const timings = isAnimated ? '500ms cubic-bezier(0.35, 0, 0.25, 1)' : 0;\n const animation: AnimationFactory = this.builder.build([animate(timings, style({ 'margin-left': +scrollTo + 'px' }))]);\n\n this.player = animation.create(this.edsTabsHeaders.nativeElement);\n this.player.play();\n\n this.currentOffset = scrollTo;\n\n if (scrollTo === 0) {\n this.navigationLeftButtonDisabled = true;\n }\n if (Math.abs(this.currentOffset) < this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n if (Math.abs(scrollTo) === this.edsTabsHeadersWidth - this.edsTabsHeadersContainerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = true;\n }\n\n this.cd.detectChanges();\n }\n\n /**\n * Checks if the active tab is fully visible\n *\n * @param activeTab Index of the tab to check\n * @returns true if fully visible, false otherwise\n */\n private isActiveTabFullyVisible(activeTab: HTMLDivElement): boolean {\n const fullyVisible =\n activeTab.offsetLeft - this.scrollOffset >= 0 &&\n activeTab.offsetLeft + activeTab.clientWidth < this.edsTabsHeadersContainerWidth - this.scrollOffset;\n\n return fullyVisible;\n }\n}\n","<div #edsTabsHeadersContainer class=\"eds-tabs-wrapper\" [class.eds-tabs-wrapper--scrolling]=\"scrolling\">\n <div class=\"eds-tabs-navigation\">\n <div class=\"eds-tabs-navigation__left-item\">\n <button edsIconButton\n (click)=\"goToLeft()\"\n [disabled]=\"navigationLeftButtonDisabled\"\n icon=\"caret-left:core\"\n ariaLabel=\"Scroll left\">\n </button>\n </div>\n\n <ul #edsTabsHeaders class=\"eds-tab-items\" [attr.data-offset]=\"currentOffset\" role=\"tablist\" [attr.aria-label]=\"ariaLabel\">\n @for (tab of tabs; let i = $index; track tab) {\n @if (tab.isVisible$ | async) {\n <li #edsTabListItems\n class=\"eds-tab-item\"\n id=\"tab-{{ i + 1 }}-{{ tabId }}\"\n [tabindex]=\"i === activeTabIndex ? '0' : '-1'\"\n role=\"tab\"\n attr.aria-controls=\"tabpanel-{{ i + 1 }}-{{ tabId }}\"\n [attr.aria-selected]=\"i === activeTabIndex\"\n [class.eds-tab-item--active]=\"i === activeTabIndex\"\n [class.eds-tab-item--disabled]=\"tab.isDisabled$ | async\"\n attr.aria-disabled=\"{{ tab.isDisabled$ | async }}\"\n (click)=\"tabListItemClick(i)\"\n (keydown)=\"onKeydown(i, $event)\">\n <ng-template [cdkPortalOutlet]=\"tab.templateHeader().templatePortal\"></ng-template>\n\n @if (tab.isClosable$ | async) {\n <button edsIconButton\n [tabindex]=\"-1\"\n ariaLabel=\"Closable\"\n rounded\n class=\"eds-tab-close-button\"\n icon=\"x:core\"\n size=\"s\"\n [disabled]=\"tab.isDisabled$ | async\"\n (buttonClick)=\"close(i, $event)\">\n </button>\n }\n </li>\n }\n }\n </ul>\n\n <div class=\"eds-tabs-navigation__right-item\">\n <button edsIconButton\n (click)=\"goToRight()\"\n [disabled]=\"navigationRightButtonDisabled\"\n icon=\"caret-right:core\"\n ariaLabel=\"Scroll right\">\n </button>\n </div>\n </div>\n <div #edsTabsRightContent class=\"eds-tabs-right-content-wrapper\">\n <ng-content select=\"eds-tabs-right-content\"></ng-content>\n </div>\n</div>\n\n@for (tab of tabs; let i = $index; track tab) {\n @if (i === activeTabIndex && (tab.isDisabled$ | async) === false && tab.templateBody) {\n <div id=\"tabpanel-{{ i + 1 }}-{{ tabId }}\" class=\"eds-tab-body-container\" role=\"tabpanel\" attr.aria-labelledby=\"tab-{{ i + 1 }}-{{ tabId }}\">\n <ng-template [cdkPortalOutlet]=\"tab.templateBody.templatePortal\" (attached)=\"onAttached(i + 1)\"></ng-template>\n </div>\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'eds-tabs-right-content',\n template: '<ng-content/>',\n styles: `\n :host {\n display: flex;\n margin-left: auto;\n }\n `,\n})\nexport class EdsTabsRightContent {\n}\n","import { Component, HostBinding, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'eds-tab-header-label',\n template: '<ng-content />',\n})\nexport class EdsTabHeaderLabel {\n @HostBinding('class') string = 'eds-tab-header-label';\n}\n","import { Component, HostBinding, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'eds-tab-header-sub-label',\n template: '<ng-content />',\n})\nexport class EdsTabHeaderSublabel {\n @HostBinding('class') string = 'eds-tab-header-sub-label';\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'eds-tab-header-left-content',\n template: '<ng-content />',\n})\nexport class EdsTabHeaderLeftContent {\n @HostBinding('class') string = 'eds-tab-header-left-content';\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'eds-tab-header-right-content',\n template: '<ng-content />',\n})\nexport class EdsTabHeaderRightContent {\n @HostBinding('class') string = 'eds-tab-header-right-content';\n}\n","export * from './eds-tabs';\nexport * from './eds-tabs-right-content';\nexport * from './eds-tab';\nexport * from './eds-tab-header';\nexport * from './eds-tab-header-label';\nexport * from './eds-tab-header-sub-label';\nexport * from './eds-tab-header-left-content';\nexport * from './eds-tab-header-right-content';\nexport * from './eds-tab-body';\n\nimport { EdsTabs } from './eds-tabs';\nimport { EdsTabsRightContent } from './eds-tabs-right-content';\nimport { EdsTabBody } from './eds-tab-body';\nimport { EdsTabHeader } from './eds-tab-header';\nimport { EdsTab } from './eds-tab';\nimport { EdsTabHeaderLabel } from './eds-tab-header-label';\nimport { EdsTabHeaderSublabel } from './eds-tab-header-sub-label';\nimport { EdsTabHeaderRightContent } from './eds-tab-header-right-content';\nimport { EdsTabHeaderLeftContent } from './eds-tab-header-left-content';\n\nexport const EDS_TABS = [\n EdsTabs,\n EdsTabsRightContent,\n EdsTabBody,\n EdsTabHeader,\n EdsTabHeaderLabel,\n EdsTabHeaderSublabel,\n EdsTabHeaderRightContent,\n EdsTabHeaderLeftContent,\n EdsTab,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|