@fundamental-ngx/core 0.47.0-rc.9 → 0.47.0
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/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/carousel/carousel-item/carousel-item.component.d.ts +4 -4
- package/carousel/carousel-item.directive.d.ts +4 -4
- package/checkbox/checkbox/checkbox.component.d.ts +10 -10
- package/esm2022/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2022/calendar/calendar-header/calendar-header.component.mjs +4 -5
- package/esm2022/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +4 -5
- package/esm2022/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +4 -5
- package/esm2022/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +4 -5
- package/esm2022/carousel/carousel-item/carousel-item.component.mjs +1 -1
- package/esm2022/carousel/carousel-item.directive.mjs +1 -1
- package/esm2022/checkbox/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/combobox/combobox.component.mjs +2 -2
- package/esm2022/date-picker/date-picker.component.mjs +4 -5
- package/esm2022/datetime-picker/datetime-picker.component.mjs +8 -10
- package/esm2022/feed-input/directives/feed-input-avatar.directive.mjs +2 -2
- package/esm2022/feed-input/directives/feed-input-textarea.directive.mjs +16 -19
- package/esm2022/form/form-control/form-control.component.mjs +3 -3
- package/esm2022/form/form-label/form-label.component.mjs +5 -6
- package/esm2022/input-group/input-group.component.mjs +7 -5
- package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +4 -5
- package/esm2022/message-box/directives/message-box-template.directive.mjs +3 -3
- package/esm2022/message-strip/message-strip.component.mjs +8 -10
- package/esm2022/multi-combobox/base-multi-combobox.class.mjs +4 -4
- package/esm2022/multi-combobox/helpers.mjs +1 -1
- package/esm2022/multi-combobox/multi-announcer/multi-announcer.directive.mjs +11 -5
- package/esm2022/multi-combobox/multi-combobox.component.mjs +6 -6
- package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +4 -5
- package/esm2022/multi-input/multi-input.component.mjs +3 -3
- package/esm2022/notification/notification-utils/notification-config.mjs +1 -1
- package/esm2022/notification/notification-utils/notification-ref.mjs +1 -1
- package/esm2022/object-attribute/fundamental-ngx-core-object-attribute.mjs +5 -0
- package/esm2022/object-attribute/index.mjs +3 -0
- package/esm2022/object-attribute/object-attribute.component.mjs +49 -0
- package/esm2022/object-attribute/object-attribute.module.mjs +16 -0
- package/esm2022/overflow-layout/overflow-layout.component.mjs +18 -5
- package/esm2022/overflow-layout/overflow-layout.service.mjs +3 -3
- package/esm2022/pagination/pagination.component.mjs +2 -2
- package/esm2022/popover/popover-mobile/popover-mobile.module.mjs +6 -6
- package/esm2022/radio/radio-button/radio-button.component.mjs +2 -2
- package/esm2022/select/select-mobile/select-mobile.module.mjs +5 -5
- package/esm2022/select/select.component.mjs +3 -3
- package/esm2022/select/select.interface.mjs +1 -1
- package/esm2022/shellbar/product-menu/product-menu.component.mjs +8 -11
- package/esm2022/shellbar/shellbar-action/shellbar-action.component.mjs +6 -7
- package/esm2022/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +6 -7
- package/esm2022/shellbar/user-menu/shellbar-user-menu.component.mjs +5 -6
- package/esm2022/splitter/splitter-pane-container/splitter-pane-container.component.mjs +1 -1
- package/esm2022/switch/switch.component.mjs +1 -1
- package/esm2022/tabs/tab-list.component.mjs +6 -3
- package/esm2022/tabs/tabs.module.mjs +5 -1
- package/esm2022/time/time-column/time-column.component.mjs +1 -1
- package/esm2022/time/time.component.mjs +1 -1
- package/esm2022/time-picker/time-picker.component.mjs +2 -2
- package/esm2022/token/tokenizer.component.mjs +6 -7
- package/esm2022/toolbar/toolbar.component.mjs +10 -12
- package/esm2022/tree/components/tree-item/tree-item.component.mjs +5 -6
- package/esm2022/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +4 -6
- package/esm2022/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +2 -2
- package/feed-input/directives/feed-input-textarea.directive.d.ts +7 -8
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-calendar.mjs +9 -10
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +3 -4
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +8 -10
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +16 -19
- package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs +6 -4
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +3 -4
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +7 -9
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +15 -10
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs +69 -0
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +18 -5
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +12 -14
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +9 -2
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +5 -6
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +7 -8
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +4 -5
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/form/form-control/form-control.component.d.ts +3 -3
- package/fundamental-ngx-core-v0.47.0.tgz +0 -0
- package/input-group/input-group.component.d.ts +10 -4
- package/message-box/directives/message-box-template.directive.d.ts +2 -2
- package/message-strip/message-strip.component.d.ts +2 -2
- package/multi-combobox/base-multi-combobox.class.d.ts +7 -7
- package/multi-combobox/helpers.d.ts +3 -3
- package/multi-combobox/multi-announcer/multi-announcer.directive.d.ts +4 -2
- package/notification/notification-utils/notification-config.d.ts +2 -2
- package/notification/notification-utils/notification-ref.d.ts +5 -5
- package/object-attribute/README.md +25 -0
- package/object-attribute/index.d.ts +2 -0
- package/object-attribute/object-attribute.component.d.ts +26 -0
- package/object-attribute/object-attribute.module.d.ts +7 -0
- package/overflow-layout/overflow-layout.component.d.ts +9 -1
- package/overflow-layout/overflow-layout.service.d.ts +1 -1
- package/package.json +9 -3
- package/pagination/pagination.component.d.ts +2 -2
- package/popover/popover-mobile/popover-mobile.module.d.ts +1 -1
- package/radio/radio-button/radio-button.component.d.ts +12 -12
- package/schematics/add-dependencies/index.js +4 -4
- package/select/select-mobile/select-mobile.module.d.ts +1 -1
- package/select/select.interface.d.ts +8 -8
- package/shellbar/product-menu/product-menu.component.d.ts +3 -3
- package/splitter/splitter-pane-container/splitter-pane-container.component.d.ts +1 -1
- package/switch/switch.component.d.ts +1 -1
- package/tabs/tab-list.component.d.ts +2 -0
- package/tabs/tabs.module.d.ts +4 -0
- package/time/time-column/time-column.component.d.ts +3 -3
- package/time/time.component.d.ts +1 -1
- package/toolbar/toolbar.component.d.ts +2 -2
- package/fundamental-ngx-core-v0.47.0-rc.9.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-tabs.mjs","sources":["../../../../libs/core/src/lib/tabs/tab-utils/tab-directives.ts","../../../../libs/core/src/lib/tabs/tab-item-expand/tab-item-expand.component.ts","../../../../libs/core/src/lib/tabs/tab-item-expand/tab-item-expand.component.html","../../../../libs/core/src/lib/tabs/tab-link/tab-link.directive.ts","../../../../libs/core/src/lib/tabs/tab-item/tab-item.directive.ts","../../../../libs/core/src/lib/tabs/tab-list.token.ts","../../../../libs/core/src/lib/tabs/tab-panel/tab-panel.component.ts","../../../../libs/core/src/lib/tabs/tab-panel/tab-panel.component.html","../../../../libs/core/src/lib/tabs/tab-utils/tab-info.class.ts","../../../../libs/core/src/lib/tabs/tab-list.component.ts","../../../../libs/core/src/lib/tabs/tab-list.component.html","../../../../libs/core/src/lib/tabs/tab-nav/tab-nav.component.ts","../../../../libs/core/src/lib/tabs/tabs.module.ts","../../../../libs/core/src/lib/tabs/fundamental-ngx-core-tabs.ts"],"sourcesContent":["import { NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\n\n/**\n * Directive used to identify the template which will populate the tab header.\n * Used to achieve complex headers that require more than a string.\n *\n * ```html\n * <fd-tab>\n * <ng-template fd-tab-title>\n * <fd-icon [glyph]=\"'delete'\"></fd-icon>\n * <span>Tab Label</span>\n * </ng-template>\n * </fd-tab>\n * ```\n */\n@Directive({\n selector: '[fdTabTitleTemplate], [fd-tab-title-template]',\n standalone: true\n})\nexport class TabTitleDirective {}\n\n/**\n * Directive for counter element, available in most of the modes on `tab` component\n */\n@Directive({\n selector: '[fdTabCount], [fd-tab-count]',\n standalone: true\n})\nexport class TabCountDirective {\n /** @hidden */\n @HostBinding('class.fd-tabs__count')\n fdTabsCountClass = true;\n}\n\n/**\n * Directive for icon element, available in most of the modes on `tab` component\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-tab-icon]',\n template: `\n <fd-icon role=\"presentation\" *ngIf=\"icon\" [glyph]=\"icon\"></fd-icon>\n <ng-content></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, IconComponent]\n})\nexport class TabIconComponent implements CssClassBuilder, OnChanges {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /**\n * The icon to include inside the element\n * See the icon page for the list of icons.\n */\n @Input()\n icon: string;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden\n * Function runs when component is initialized\n * function should build component css class\n * function should build css style\n */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return ['fd-tabs__icon', this.class];\n }\n}\n\n@Directive({\n selector: '[fdTabTag], [fd-tab-tag]',\n host: {\n class: 'fd-tabs__tag'\n },\n standalone: true\n})\nexport class TabTagDirective {}\n\n@Directive({\n selector: '[fdTabLabel], [fd-tab-label]',\n host: {\n class: 'fd-tabs__label'\n },\n standalone: true\n})\nexport class TabLabelDirective {}\n\n@Directive({\n selector: '[fdTabProcess], [fd-tab-process]',\n host: {\n class: 'fd-tabs__process'\n },\n standalone: true\n})\nexport class TabProcessDirective {}\n\n@Directive({\n selector: '[fdTabHeader], [fd-tab-header]',\n host: {\n class: 'fd-tabs__header'\n },\n standalone: true\n})\nexport class TabHeaderDirective {}\n\n@Directive({\n selector: '[fdTabCounterHeader], [fd-tab-counter-header]',\n host: {\n class: 'fd-tabs__counter-header'\n },\n standalone: true\n})\nexport class TabCounterHeaderDirective {}\n\n@Directive({\n selector: '[fdTabProcessIcon], [fd-tab-process-icon]',\n host: {\n class: 'fd-tabs__process-icon'\n },\n standalone: true\n})\nexport class TabProcessIconDirective {}\n\n@Directive({\n selector: '[fdTabSeparator], [fd-tab-separator]',\n host: {\n class: 'fd-tabs__separator'\n },\n standalone: true\n})\nexport class TabSeparatorDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { TabTagDirective } from '../tab-utils/tab-directives';\n\n/**\n * Represents a list of tab-panels.\n */\n@Component({\n selector: 'fd-item-expand',\n templateUrl: './tab-item-expand.component.html',\n styleUrls: ['./tab-item-expand.component.scss'],\n host: {\n role: 'tab',\n class: 'fd-tabs__item fd-tabs__item--overflow'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [TabTagDirective, IconComponent, FdTranslatePipe]\n})\nexport class TabItemExpandComponent {}\n","<a class=\"fd-tabs__link\" role=\"tab\" [attr.tabindex]=\"0\">\n <span fd-tab-tag>{{ 'coreTabs.tabListExpandButtonText' | fdTranslate }}</span>\n <fd-icon glyph=\"slim-arrow-down\" aria-label=\"See More\"></fd-icon>\n</a>\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\nimport { AbstractFdNgxClass, KeyUtil } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Tab link for nav mode\n *\n * ```html\n * <a fd-tab-link>\n * link\n * </a>\n * ```\n */\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-tab-link]',\n host: {\n role: 'tab',\n tabindex: '-1'\n },\n standalone: true\n})\nexport class TabLinkDirective extends AbstractFdNgxClass implements FocusableOption {\n /** Whether the link is active */\n @Input()\n @HostBinding('attr.aria-selected')\n active: boolean;\n\n /**\n * Only visual / accessibility thing on tab-nav mode\n * RouterLink does not respect preventDefault/stopPropagation\n */\n @Input()\n @HostBinding('attr.aria-disabled')\n @HostBinding('class.is-disabled')\n disabled: boolean;\n\n /** Event Emitted always when, any keyboard event is dispatched on this element */\n @Output()\n readonly keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** Event Emitted when item has been focused. */\n @Output()\n readonly focused = new EventEmitter<void>();\n\n /** @hidden */\n _setProperties(): void {\n this._addClassToElement('fd-tabs__link');\n if (this.active) {\n this._addClassToElement('is-selected');\n }\n }\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {\n super(elementRef);\n }\n\n /** @hidden */\n @HostListener('focus')\n private _onFocus(): void {\n this.focused.emit();\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n private _onKeyUp(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.focused.emit();\n }\n }\n\n /** @hidden */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n}\n","import { ContentChild, Directive, ElementRef, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\nimport { CssClassBuilder, Nullable, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { TabLinkDirective } from '../tab-link/tab-link.directive';\n\nexport type TabItemState = 'success' | 'error' | 'warning' | 'information' | 'neutral';\n\n/**\n * Tab Item is optional wrapper for Tab link\n *\n * ```html\n * <div fd-tab-item>\n * <a fd-tab-link>\n * link\n * </a>\n * </div>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-tab-item]',\n standalone: true\n})\nexport class TabItemDirective implements CssClassBuilder, OnChanges, OnInit {\n /** Apply user custom styles */\n @Input()\n class = '';\n\n /** Semantic type of the tab item */\n @Input()\n tabItemState: Nullable<TabItemState>;\n\n /** This should be used only on `filterMode`. Flag should be enable for first item */\n @Input()\n header: boolean;\n\n /** Disabled state for tab item */\n @Input()\n @HostBinding('attr.aria-disabled')\n @HostBinding('class.is-disabled')\n disabled = false;\n\n /** Defines if there will be added fd-tabs__item class. Enabled by default. */\n @Input()\n fdTabItemClass = true;\n\n /** @hidden */\n @ContentChild(TabLinkDirective)\n linkItem: TabLinkDirective;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.fdTabItemClass ? 'fd-tabs__item' : '',\n this.header ? 'fd-tabs__item--header' : '',\n this.tabItemState ? `fd-tabs__item--${this.tabItemState}` : '',\n this.class\n ];\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { TabListComponentInterface } from './tab-list-component.interface';\n\nexport const LIST_COMPONENT = new InjectionToken<TabListComponentInterface>('ListComponent');\n","import { NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnChanges,\n Optional,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subject, first } from 'rxjs';\nimport { TabItemState } from '../tab-item/tab-item.directive';\nimport { TabListComponentInterface } from '../tab-list-component.interface';\nimport { LIST_COMPONENT } from '../tab-list.token';\nimport { TabTitleDirective } from '../tab-utils/tab-directives';\n\nlet tabPanelUniqueId = 0;\n\nexport class TabPanelStateChange {\n /**\n * Tab panel state change event\n * @param target Tab panel that is being changed\n * @param state New state of the tab panel\n */\n constructor(public target: TabPanelComponent, public state: boolean) {}\n}\n\n/**\n * Represents the body of a tab element. It also contains elements pertaining to the associated tab header.\n */\n@Component({\n selector: 'fd-tab',\n templateUrl: './tab-panel.component.html',\n host: {\n role: 'tabpanel',\n class: 'fd-tabs__panel',\n '[id]': '_panelId',\n '[attr.aria-labelledby]': 'id'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf]\n})\nexport class TabPanelComponent implements OnChanges {\n /** Id of the tab. If none is provided, one will be generated. */\n @Input()\n id: string = 'fd-tab-panel' + tabPanelUniqueId++;\n\n /** Aria-label of the tab. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Id of the element that labels the tab. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** The title of tab, depending on mode used, it will be placed in different position */\n @Input()\n title: Nullable<string>;\n\n /** The count of tab, depending on mode used, it will be placed in different position */\n @Input()\n count: Nullable<string>;\n\n /** Glyph icon, it can be used only on */\n @Input()\n glyph: string;\n\n /** Glyph icon, it can be used only on */\n @Input()\n header = false;\n\n /** Disabled state for tab item */\n @Input()\n disabled = false;\n\n /** Semantic type of the tab item */\n @Input()\n tabState: Nullable<TabItemState>;\n\n /** Event that is emitted when the tab panel has been opened. */\n @Output()\n opened = new EventEmitter<void>();\n\n /** Event that is emitted when the tab panel has been closed. */\n @Output()\n closed = new EventEmitter<void>();\n\n /** @hidden */\n @ContentChild(TabTitleDirective, { read: TemplateRef })\n titleTemplate: TemplateRef<any>;\n\n /** @hidden Event that is emitted when the tab panel . */\n _expandedStateChange = new Subject<TabPanelStateChange>();\n\n /** @hidden */\n _forcedVisibility = false;\n\n /** @hidden */\n @HostBinding('class.is-expanded')\n _expandedClass = false;\n\n /** @hidden Whether to display tab panel content */\n private _expanded = false;\n\n /** @hidden */\n get _panelId(): string {\n return this.id + '-panel';\n }\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef,\n private _changeDetRef: ChangeDetectorRef,\n private _ngZone: NgZone,\n @Optional() @Inject(LIST_COMPONENT) private readonly _tabsComponent: TabListComponentInterface | null\n ) {}\n\n /** @hidden\n * Thanks to OnPush change strategy detection on tab-list parent component,\n * every change of any property should be reported. */\n ngOnChanges(): void {\n this._tabsComponent?.tabPanelPropertyChanged.next();\n }\n\n /** Whether tab panel content is expanded */\n get expanded(): boolean {\n return this._expanded;\n }\n\n /** Whether to expand tab panel content */\n open(open: boolean): void {\n this._expandedStateChange.next(new TabPanelStateChange(this, open));\n }\n\n /** @hidden Set new expand state */\n _expand(expanded: boolean): void {\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n\n if (expanded) {\n this.opened.emit();\n } else {\n this.closed.emit();\n }\n\n this._changeDetRef.detectChanges();\n\n this._ngZone.onStable.pipe(first()).subscribe(() => this._updateHost());\n }\n }\n\n /** @hidden */\n _focusFirstFocusableElement(): void {\n this.elementRef.nativeElement\n .querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n ?.focus({ preventScroll: true });\n }\n\n /** @hidden */\n private _updateHost(): void {\n this._expandedClass = this.expanded;\n }\n}\n","<ng-container *ngIf=\"expanded\">\n <ng-content></ng-content>\n</ng-container>\n","import { TemplateRef } from '@angular/core';\n\nimport { TabPanelComponent } from '../tab-panel/tab-panel.component';\nimport { TabItemState } from '../tab-item/tab-item.directive';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n/** @hidden */\nexport class TabInfo {\n /** Whether the tab is active */\n active: boolean;\n\n /** @hidden Width of the tab header */\n headerWidth: number;\n\n /** Corresponding tab panel */\n panel: TabPanelComponent;\n\n /** @hidden */\n constructor(tabPanel: TabPanelComponent) {\n this.panel = tabPanel;\n this.active = tabPanel.expanded;\n }\n\n /** Tab header title */\n get title(): Nullable<string> {\n return this.panel.title;\n }\n\n /** Whether the tab is disabled */\n get disabled(): boolean {\n return this.panel.disabled;\n }\n\n /** Whether the tab is tab header */\n get isHeader(): boolean {\n return this.panel.header;\n }\n\n /** @hidden */\n get id(): Nullable<string> {\n return this.panel.id;\n }\n\n /** @hidden */\n get ariaLabel(): Nullable<string> {\n return this.panel.ariaLabel;\n }\n\n /** @hidden */\n get ariaLabelledBy(): Nullable<string> {\n return this.panel.ariaLabelledBy;\n }\n\n /** @hidden */\n get tabState(): Nullable<TabItemState> {\n return this.panel.tabState;\n }\n\n /** @hidden */\n get titleTemplate(): TemplateRef<any> {\n return this.panel.titleTemplate;\n }\n\n /** @hidden */\n get count(): Nullable<string> {\n return this.panel.count;\n }\n\n /** @hidden */\n get glyph(): string {\n return this.panel.glyph;\n }\n\n /** @hidden */\n get forcedVisibility(): boolean {\n return this.panel._forcedVisibility;\n }\n\n /** @hidden */\n get panelId(): string {\n return this.panel._panelId;\n }\n}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgFor, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n forwardRef,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, Nullable, scrollTop } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport {\n MenuComponent,\n MenuInteractiveComponent,\n MenuItemComponent,\n MenuTitleDirective,\n MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport {\n OverflowExpandDirective,\n OverflowItemRefDirective,\n OverflowLayoutComponent,\n OverflowLayoutFocusableItemDirective,\n OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { ScrollSpyDirective } from '@fundamental-ngx/core/scroll-spy';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { Observable, Subject, Subscription, fromEvent, merge } from 'rxjs';\nimport { debounceTime, delay, filter, first, map, startWith, switchMap, tap } from 'rxjs/operators';\nimport { TabItemExpandComponent } from './tab-item-expand/tab-item-expand.component';\nimport { TabItemDirective } from './tab-item/tab-item.directive';\nimport { TabLinkDirective } from './tab-link/tab-link.directive';\nimport { TabListComponentInterface } from './tab-list-component.interface';\nimport { LIST_COMPONENT } from './tab-list.token';\nimport { TabPanelComponent } from './tab-panel/tab-panel.component';\nimport {\n TabCountDirective,\n TabCounterHeaderDirective,\n TabHeaderDirective,\n TabIconComponent,\n TabLabelDirective,\n TabProcessDirective,\n TabProcessIconDirective,\n TabSeparatorDirective,\n TabTagDirective\n} from './tab-utils/tab-directives';\nimport { TabInfo } from './tab-utils/tab-info.class';\n\nexport type TabModes = 'icon-only' | 'process' | 'filter';\n\nexport type TabSizes = 's' | 'm' | 'l' | 'xl' | 'xxl';\n\n/**\n * Represents a list of tab-panels.\n */\n@Component({\n selector: 'fd-tab-list',\n templateUrl: './tab-list.component.html',\n styleUrls: ['./tab-list.component.scss'],\n host: {\n class: 'fd-tabs-custom'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n contentDensityObserverProviders(),\n {\n provide: LIST_COMPONENT,\n useExisting: forwardRef(() => TabListComponent)\n }\n ],\n standalone: true,\n imports: [\n OverflowLayoutComponent,\n NgFor,\n OverflowItemRefDirective,\n TabItemDirective,\n OverflowLayoutItemDirective,\n TabLinkDirective,\n OverflowLayoutFocusableItemDirective,\n NgTemplateOutlet,\n NgIf,\n NgSwitch,\n NgSwitchCase,\n TabHeaderDirective,\n TabCounterHeaderDirective,\n TabLabelDirective,\n TabIconComponent,\n TabCountDirective,\n TabProcessDirective,\n NgSwitchDefault,\n TabTagDirective,\n TabProcessIconDirective,\n TabSeparatorDirective,\n OverflowExpandDirective,\n TabItemExpandComponent,\n MenuTriggerDirective,\n MenuComponent,\n MenuItemComponent,\n MenuInteractiveComponent,\n ScrollSpyDirective,\n CdkScrollable,\n ScrollbarDirective,\n MenuTitleDirective\n ]\n})\nexport class TabListComponent implements TabListComponentInterface, AfterContentInit, AfterViewInit, OnDestroy {\n /** Size of tab, it's mostly about adding spacing on tab container, available sizes 's' | 'm' | 'l' | 'xl' | 'xxl' */\n @Input()\n size: TabSizes = 'm';\n\n /**\n * Whether user wants to use tab component in certain mode. Modes available:\n * 'icon-only' | 'process' | 'filter'\n */\n @Input()\n mode: TabModes;\n\n /** Whether to move tabs overflowing in the tab bar to the dropdown */\n @Input()\n collapseOverflow = true;\n\n /** Limits the maximum number of tabs visible in the tab bar in collapseOverflow mode.\n * Other tabs will be moved to the collapsed tabs dropdown */\n @Input()\n maxVisibleTabs = Infinity;\n\n /** Whether to open tab content one under another without collapsing */\n @Input()\n stackContent = false;\n\n /** Maximum height of the content */\n @Input()\n maxContentHeight = '100%';\n\n /** Whether to enable collapsing expanded tab on expanded tab click */\n @Input()\n collapsibleTabs = false;\n\n /** Initially selected tab (by id). First not disabled one if not specified. */\n @Input()\n defaultTab: Nullable<string>;\n\n /** Whether to try to keep selected tab (default value) on tabs change or to select default one (first if not specified). */\n @Input()\n selectDefaultOnTabsChange = false;\n\n /** Whether to focus the first focusable element in a tab panel when using stacked tabs. */\n @Input()\n focusFirstFocusableElement = true;\n\n /** Event emitted when the selected panel changes. */\n @Output()\n selectedTabChange = new EventEmitter<TabPanelComponent>();\n\n /** Event emitted when the selected panel index changes. */\n @Output()\n selectedTabIndexChange = new EventEmitter<number>();\n\n /** Event emitted when visible items count has been changed. */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /** Event emitted when hidden items count has been changed. */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /** @hidden */\n @ContentChildren(forwardRef(() => TabPanelComponent))\n tabPanels: QueryList<TabPanelComponent>;\n\n /** @hidden */\n @ViewChildren(TabLinkDirective)\n tabHeaderLinks: QueryList<TabLinkDirective>;\n\n /** @hidden */\n @ViewChildren(TabItemDirective)\n tabHeaders: QueryList<TabItemDirective>;\n\n /** @hidden */\n @ViewChild(TabItemExpandComponent, { read: ElementRef })\n overflowTrigger: ElementRef;\n\n /** @hidden */\n @ViewChild('headerContainer', { read: ElementRef })\n headerContainer: ElementRef;\n\n /** @hidden */\n @ViewChild(ScrollbarDirective)\n _scrollbar: ScrollbarDirective;\n\n /** @hidden */\n @ViewChild('menu', { read: MenuComponent })\n menu: MenuComponent;\n\n /** @hidden */\n @ViewChild(OverflowLayoutComponent)\n private _overflowLayout: OverflowLayoutComponent;\n\n /** @hidden */\n @ViewChild('scrollSpy', { read: ScrollSpyDirective })\n private readonly _scrollSpy: Nullable<ScrollSpyDirective>;\n\n /** @hidden */\n get contentContainer(): ElementRef<HTMLElement> {\n return this._scrollbar?.elementRef;\n }\n\n /** @hidden Collection of tabs in original order */\n _tabArray: TabInfo[] = [];\n\n /** @hidden Whether to disable scroll spy */\n _disableScrollSpy = false;\n\n /** @hidden */\n _init = true;\n\n /** Event is thrown always when tab is selected by keyboard actions */\n readonly tabSelected: Subject<number> = new Subject<number>();\n\n /** Event is thrown always, when some property is changed */\n readonly tabPanelPropertyChanged: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private readonly _zone = inject(NgZone);\n\n /** @hidden */\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver,\n private readonly _destroyRef: DestroyRef\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setupTabPanelsChangeListeners();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._initStackContentSubscription();\n this._listenOnTabPanelsExpandedChange();\n this._listenOnTabPanelsAndInitiallyExpandTabPanel();\n this._listenOnPropertiesChange();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n _tabHeaderClickHandler(tabPanel: TabPanelComponent): void {\n this._expandTab(tabPanel, !tabPanel.expanded);\n }\n\n /** @hidden */\n _tabHeaderKeydownHandler(event: KeyboardEvent, tabPanel: TabPanelComponent): void {\n if (!KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n return;\n }\n\n event.preventDefault();\n this._tabHeaderClickHandler(tabPanel);\n }\n\n /** @hidden */\n _overflowingTabHeaderClickHandler(tabPanel: TabPanelComponent): void {\n this._tabArray.forEach((tab) => {\n tab.panel._forcedVisibility = tab.panel === tabPanel;\n });\n\n this._expandTab(tabPanel, true, false);\n\n this._overflowLayout.triggerRecalculation();\n\n this._detectChanges();\n }\n\n /** @hidden */\n _highlightActiveTab({ id }: HTMLElement): void {\n const tab = this._tabArray.find((_tab) => _tab.panel._panelId === id);\n if (tab) {\n const _tabWasActive = tab.active;\n this._activateStackedTab(tab.panel, false);\n if (!_tabWasActive) {\n this._selectedTabChange(tab.panel);\n }\n }\n }\n\n /** @hidden */\n _onTriggerKeydown(event: KeyboardEvent, menuRef: MenuComponent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n event.preventDefault();\n menuRef.toggle();\n }\n }\n\n /** @hidden */\n private get _tabPanelsChange$(): Observable<TabPanelComponent[]> {\n return this.tabPanels.changes.pipe(\n startWith(this.tabPanels),\n map((tabPanels) => tabPanels.toArray()),\n takeUntilDestroyed(this._destroyRef)\n );\n }\n\n /** @hidden */\n private _detectChanges(): void {\n if (this._changeDetectorRef && !this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n private _setupTabPanelsChangeListeners(): void {\n this._listenOnTabPanelsAndUpdateStorageStructures();\n }\n\n /** @hidden Setup mechanisms required for handling the stacked content behavior */\n private _initStackContentSubscription(): void {\n this._tabPanelsChange$\n .pipe(\n filter(() => this.stackContent),\n delay(0),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() =>\n this._tabArray.filter((tab) => !tab.panel.disabled).forEach((tab) => tab.panel._expand(true))\n );\n }\n\n /** @hidden */\n private _listenOnTabPanelsAndUpdateStorageStructures(): void {\n this._tabPanelsChange$\n .pipe(\n map((tabPanels) =>\n tabPanels.map((el) => this._tabArray?.find((tabInfo) => tabInfo.panel === el) || new TabInfo(el))\n ),\n tap((tabs) => (this._tabArray = tabs)),\n switchMap(() => this._zone.onStable.pipe(startWith(this._zone.isStable))),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((tabs) => {\n this.stackContent && this._scrollSpy?.onScroll(undefined, true);\n });\n }\n\n /** @hidden */\n private _listenOnTabPanelsExpandedChange(): void {\n this._tabPanelsChange$\n .pipe(\n map((tabPanels) => tabPanels.map((tab) => tab._expandedStateChange.asObservable())),\n switchMap((tabPanels) => merge(...tabPanels)),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event) => this._expandTab(event.target, event.state));\n }\n\n /** @hidden */\n private _listenOnTabPanelsAndInitiallyExpandTabPanel(): void {\n this._tabPanelsChange$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n const activeTab = this._tabArray.find((_tab) => _tab.active);\n let tab: Nullable<TabInfo>;\n\n if (!activeTab || this.selectDefaultOnTabsChange) {\n if (this.defaultTab) {\n tab = this._tabArray.find((_tab) => !_tab.disabled && _tab.id === this.defaultTab);\n }\n\n if (!tab) {\n tab = this._tabArray.find((_tab) => !_tab.disabled);\n }\n }\n\n if (tab && activeTab !== tab) {\n this._expandTab(tab.panel, true);\n }\n });\n }\n\n /** @hidden */\n private _listenOnPropertiesChange(): void {\n merge(this.tabPanelPropertyChanged, this.tabPanels.changes)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._detectChanges());\n }\n\n /** @hidden */\n private _activateStackedTab(tabPanel: TabPanelComponent, scroll = true): void {\n if (scroll) {\n this._scrollToPanel(tabPanel);\n }\n this._tabArray.forEach((tab) => {\n tab.active = tab.panel === tabPanel;\n });\n }\n\n /** @hidden */\n private _activateExpandableTab(tabPanel: TabPanelComponent, expand: boolean): void {\n const collapse = this.collapsibleTabs && !expand;\n\n this._tabArray.forEach((tab) => {\n const isActive = tab.panel === tabPanel && !collapse;\n\n tab.panel._expand(isActive);\n tab.active = isActive;\n });\n }\n\n /** @hidden */\n private _expandTab(tabPanel: TabPanelComponent, expand: boolean, detectChanges = true): void {\n if (this.stackContent) {\n this._activateStackedTab(tabPanel);\n } else {\n if (!this._canChangeExpandState(tabPanel, expand)) {\n return;\n }\n\n this._activateExpandableTab(tabPanel, expand);\n }\n\n if (detectChanges) {\n this._detectChanges();\n }\n\n this._selectedTabChange(tabPanel);\n }\n\n /** @hidden */\n private _scrollToPanel(tabPanel: TabPanelComponent): void {\n const panelElement = tabPanel.elementRef.nativeElement;\n const containerElement = this.contentContainer.nativeElement;\n const distanceToScroll = panelElement.offsetTop - containerElement.offsetTop;\n const maximumScrollTop = containerElement.scrollHeight - containerElement.clientHeight;\n const currentScrollPosition = Math.ceil(containerElement.scrollTop);\n\n if (!(currentScrollPosition === maximumScrollTop && distanceToScroll > maximumScrollTop)) {\n !this._init ? (this._disableScrollSpy = true) : (this._init = false);\n fromEvent(containerElement, 'scroll')\n .pipe(debounceTime(100), first(), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => (this._disableScrollSpy = false));\n scrollTop(containerElement, distanceToScroll);\n }\n\n if (this.focusFirstFocusableElement) {\n tabPanel._focusFirstFocusableElement();\n }\n }\n\n /** @hidden Whether tab can be expanded/collapsed */\n private _canChangeExpandState(tabPanel: TabPanelComponent, expand: boolean): boolean {\n return !tabPanel.disabled && expand !== tabPanel.expanded && expand === false ? this.collapsibleTabs : true;\n }\n\n /** @hidden */\n private _selectedTabChange(tabPanel: TabPanelComponent): void {\n this.selectedTabChange.emit(tabPanel);\n\n const index = this._tabArray.findIndex((tabInfo) => tabInfo.panel === tabPanel);\n this.selectedTabIndexChange.emit(index);\n }\n}\n","<div #headerContainer role=\"tablist\" class=\"fd-tabs\" [class]=\"(mode ? 'fd-tabs--' + mode : '') + (' fd-tabs--' + size)\">\n <fd-overflow-layout\n [maxVisibleItems]=\"maxVisibleTabs\"\n [enableKeyboardNavigation]=\"true\"\n navigationTrigger=\"keydown\"\n (hiddenItemsCount)=\"hiddenItemsCount.emit($event)\"\n (visibleItemsCount)=\"visibleItemsCount.emit($event)\"\n >\n <ng-container *ngFor=\"let tab of _tabArray; let i = index; let last = last\">\n <div\n fd-tab-item\n *fdOverflowItemRef=\"tab\"\n fdOverflowLayoutItem\n [forceVisibility]=\"tab.panel._forcedVisibility\"\n [header]=\"tab.isHeader\"\n [tabItemState]=\"tab.tabState\"\n >\n <a\n fd-tab-link\n role=\"tab\"\n [id]=\"tab.id\"\n [attr.aria-controls]=\"tab.panelId\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"!tab.ariaLabel && tab.ariaLabelledBy ? tab.ariaLabelledBy : null\"\n fdOverflowLayoutFocusableItem\n [focusable]=\"tab.active\"\n [navigable]=\"!tab.disabled\"\n [active]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n (keydown)=\"_tabHeaderKeydownHandler($event, tab.panel)\"\n (click)=\"_tabHeaderClickHandler(tab.panel)\"\n >\n <ng-container *ngTemplateOutlet=\"tab.titleTemplate || null\"></ng-container>\n\n <ng-container *ngIf=\"!tab.titleTemplate\" [ngSwitch]=\"mode\">\n <ng-container *ngSwitchCase=\"'filter'\">\n <span fd-tab-header *ngIf=\"tab.isHeader\">\n <span fd-tab-counter-header *ngIf=\"tab.count\">{{ tab.count }}</span>\n <span fd-tab-label *ngIf=\"tab.title\">{{ tab.title }}</span>\n </span>\n <ng-container *ngIf=\"!tab.isHeader\">\n <span fd-tab-icon [icon]=\"tab.glyph\">\n <p fd-tab-count>{{ tab.count }}</p>\n </span>\n <span fd-tab-label>{{ tab.title }}</span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'icon-only'\">\n <span fd-tab-icon [icon]=\"tab.glyph\">\n <p fd-tab-count>{{ tab.count }}</p>\n </span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'process'\">\n <span fd-tab-icon *ngIf=\"tab.glyph\" [icon]=\"tab.glyph\"></span>\n <div fd-tab-process>\n <span fd-tab-label *ngIf=\"tab.count\">{{ tab.count }}</span>\n <span fd-tab-label *ngIf=\"tab.title\">{{ tab.title }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <p fd-tab-count *ngIf=\"tab.count\">{{ tab.count }}</p>\n <span fd-tab-tag>{{ tab.title }}</span>\n </ng-container>\n </ng-container>\n </a>\n\n <div fd-tab-process-icon *ngIf=\"mode === 'process' && !last\"></div>\n </div>\n\n <div *ngIf=\"tab.isHeader\" fd-tab-separator></div>\n </ng-container>\n\n <ng-container *fdOverflowExpand=\"let tabs; items: _tabArray\">\n <fd-item-expand [fdMenuTrigger]=\"menu\" *ngIf=\"tabs.length > 0\" (keydown)=\"_onTriggerKeydown($event, menu)\">\n </fd-item-expand>\n\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let tab of tabs\"\n (onSelect)=\"_overflowingTabHeaderClickHandler(tab.item.panel)\"\n >\n <div fd-menu-interactive>\n <ng-container\n *ngTemplateOutlet=\"\n !tab.item.titleTemplate && mode === 'icon-only'\n ? iconOnlyTemplate\n : tab.item.titleTemplate || textTitle;\n context: { $implicit: tab.item }\n \"\n ></ng-container>\n </div>\n </li>\n </fd-menu>\n </ng-container>\n </fd-overflow-layout>\n</div>\n\n<div\n class=\"fd-tabs__content\"\n [style.max-height]=\"maxContentHeight\"\n fdScrollSpy\n #scrollSpy=\"fdScrollSpy\"\n fd-scrollbar\n [trackedTags]=\"['fd-tab']\"\n [scrollSpyDisabled]=\"_disableScrollSpy\"\n (spyChange)=\"_highlightActiveTab($event)\"\n>\n <ng-content></ng-content>\n</div>\n\n<ng-template #textTitle let-tab>\n <span fd-menu-title>{{ tab.title }}</span>\n</ng-template>\n\n<ng-template #iconOnlyTemplate let-tab>\n <span fd-tab-icon [icon]=\"tab.glyph\">\n <p fd-tab-count>{{ tab.count }}</p>\n </span>\n</ng-template>\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { CssClassBuilder, KeyUtil, RtlService, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { TabItemDirective } from '../tab-item/tab-item.directive';\nimport { TabLinkDirective } from '../tab-link/tab-link.directive';\nimport { TabModes, TabSizes } from '../tab-list.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-tab-nav]',\n template: ` <ng-content></ng-content>`,\n providers: [contentDensityObserverProviders()],\n styleUrls: ['./tab-nav.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class TabNavComponent implements AfterContentInit, OnChanges, OnInit, OnDestroy, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /**\n * Whether user wants to use tab component in certain mode. Modes available:\n * 'icon-only' | 'process' | 'filter'\n */\n @Input()\n mode: TabModes;\n\n /** Size of tab, it's mostly about adding spacing on tab container, available sizes 's' | 'm' | 'l' | 'xl' | 'xxl' */\n @Input()\n size: TabSizes = 'm';\n\n /** @hidden */\n @ContentChildren(TabLinkDirective, { descendants: true })\n links: QueryList<TabLinkDirective>;\n\n /** @hidden */\n @ContentChildren(TabItemDirective, { descendants: true })\n items: QueryList<TabItemDirective>;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _keyboardEventsManager: FocusKeyManager<TabLinkDirective>;\n\n /** @hidden */\n private _dir: 'ltr' | 'rtl' = this._rtlService?.rtl.value ? 'rtl' : 'ltr';\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private readonly _contentDensityObserver: ContentDensityObserver,\n @Optional() private readonly _rtlService: RtlService\n ) {\n this._contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setupKeyManager();\n this._refreshSubscription();\n this._listenOnContentQueryListChange();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._keyboardEventsManager?.destroy();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [`fd-tabs`, this.mode ? 'fd-tabs--' + this.mode : '', `fd-tabs--${this.size}`, this.class];\n }\n\n /** Function that gives possibility to get all the link directives, with and without nav__item wrapper */\n get tabLinks(): TabLinkDirective[] {\n let tabLinks: TabLinkDirective[] = [];\n if (this.links) {\n tabLinks = tabLinks.concat(this.links.map((link) => link));\n }\n if (this.items) {\n tabLinks = tabLinks.concat(this.items.filter((item) => !!item.linkItem).map((item) => item.linkItem));\n }\n return tabLinks;\n }\n\n /**\n * Function to select a new tab from an index.\n * @param tabIndex Index of the tab to select.\n */\n selectTab(tabIndex: number): void {\n this.tabLinks[tabIndex].elementRef.nativeElement.click();\n }\n\n /**\n * @hidden\n * Every time any of query is changed, ex. tab is removed or added\n * reference to keydown subscriptions handler is renewed\n */\n private _listenOnContentQueryListChange(): void {\n merge(this.links.changes, this.items.changes)\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => this._refreshSubscription());\n }\n\n /** Whether any QueryList detects any changes */\n private _refreshSubscription(): void {\n this._subscriptions.unsubscribe();\n this._subscriptions = new Subscription();\n this._listenToFocusedLinks();\n\n this.links.changes.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\n this._listenToFocusedLinks();\n });\n }\n\n /** @hidden */\n private _listenToFocusedLinks(): void {\n const links = this.links.toArray();\n links.forEach((link) => {\n this._subscriptions.add(\n link.focused.subscribe(() => {\n this._keyboardEventsManager.setActiveItem(links.findIndex((item) => item === link));\n })\n );\n });\n }\n\n /** @hidden */\n private _setupKeyManager(): void {\n this._keyboardEventsManager?.destroy();\n this._keyboardEventsManager = new FocusKeyManager(this.links).withWrap().withHorizontalOrientation(this._dir);\n\n this._rtlService?.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl) => {\n this._keyboardEventsManager.withHorizontalOrientation(isRtl ? 'rtl' : 'ltr');\n });\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n private _keyUpHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { TabListComponent } from './tab-list.component';\nimport { TabPanelComponent } from './tab-panel/tab-panel.component';\n\nimport { TabItemDirective } from './tab-item/tab-item.directive';\nimport { TabLinkDirective } from './tab-link/tab-link.directive';\nimport { TabNavComponent } from './tab-nav/tab-nav.component';\nimport {\n TabCountDirective,\n TabCounterHeaderDirective,\n TabHeaderDirective,\n TabIconComponent,\n TabLabelDirective,\n TabProcessDirective,\n TabProcessIconDirective,\n TabSeparatorDirective,\n TabTagDirective,\n TabTitleDirective\n} from './tab-utils/tab-directives';\n\nconst components = [\n TabListComponent,\n TabPanelComponent,\n TabTitleDirective,\n TabNavComponent,\n TabItemDirective,\n TabLinkDirective,\n TabTagDirective,\n TabIconComponent,\n TabCountDirective,\n TabLabelDirective,\n TabProcessDirective,\n TabHeaderDirective,\n TabCounterHeaderDirective,\n TabProcessIconDirective,\n TabSeparatorDirective\n];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["first"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-tabs.mjs","sources":["../../../../libs/core/src/lib/tabs/tab-utils/tab-directives.ts","../../../../libs/core/src/lib/tabs/tab-item-expand/tab-item-expand.component.ts","../../../../libs/core/src/lib/tabs/tab-item-expand/tab-item-expand.component.html","../../../../libs/core/src/lib/tabs/tab-link/tab-link.directive.ts","../../../../libs/core/src/lib/tabs/tab-item/tab-item.directive.ts","../../../../libs/core/src/lib/tabs/tab-list.token.ts","../../../../libs/core/src/lib/tabs/tab-panel/tab-panel.component.ts","../../../../libs/core/src/lib/tabs/tab-panel/tab-panel.component.html","../../../../libs/core/src/lib/tabs/tab-utils/tab-info.class.ts","../../../../libs/core/src/lib/tabs/tab-list.component.ts","../../../../libs/core/src/lib/tabs/tab-list.component.html","../../../../libs/core/src/lib/tabs/tab-nav/tab-nav.component.ts","../../../../libs/core/src/lib/tabs/tabs.module.ts","../../../../libs/core/src/lib/tabs/fundamental-ngx-core-tabs.ts"],"sourcesContent":["import { NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\n\n/**\n * Directive used to identify the template which will populate the tab header.\n * Used to achieve complex headers that require more than a string.\n *\n * ```html\n * <fd-tab>\n * <ng-template fd-tab-title>\n * <fd-icon [glyph]=\"'delete'\"></fd-icon>\n * <span>Tab Label</span>\n * </ng-template>\n * </fd-tab>\n * ```\n */\n@Directive({\n selector: '[fdTabTitleTemplate], [fd-tab-title-template]',\n standalone: true\n})\nexport class TabTitleDirective {}\n\n/**\n * Directive for counter element, available in most of the modes on `tab` component\n */\n@Directive({\n selector: '[fdTabCount], [fd-tab-count]',\n standalone: true\n})\nexport class TabCountDirective {\n /** @hidden */\n @HostBinding('class.fd-tabs__count')\n fdTabsCountClass = true;\n}\n\n/**\n * Directive for icon element, available in most of the modes on `tab` component\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-tab-icon]',\n template: `\n <fd-icon role=\"presentation\" *ngIf=\"icon\" [glyph]=\"icon\"></fd-icon>\n <ng-content></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, IconComponent]\n})\nexport class TabIconComponent implements CssClassBuilder, OnChanges {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /**\n * The icon to include inside the element\n * See the icon page for the list of icons.\n */\n @Input()\n icon: string;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden\n * Function runs when component is initialized\n * function should build component css class\n * function should build css style\n */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return ['fd-tabs__icon', this.class];\n }\n}\n\n@Directive({\n selector: '[fdTabTag], [fd-tab-tag]',\n host: {\n class: 'fd-tabs__tag'\n },\n standalone: true\n})\nexport class TabTagDirective {}\n\n@Directive({\n selector: '[fdTabLabel], [fd-tab-label]',\n host: {\n class: 'fd-tabs__label'\n },\n standalone: true\n})\nexport class TabLabelDirective {}\n\n@Directive({\n selector: '[fdTabProcess], [fd-tab-process]',\n host: {\n class: 'fd-tabs__process'\n },\n standalone: true\n})\nexport class TabProcessDirective {}\n\n@Directive({\n selector: '[fdTabHeader], [fd-tab-header]',\n host: {\n class: 'fd-tabs__header'\n },\n standalone: true\n})\nexport class TabHeaderDirective {}\n\n@Directive({\n selector: '[fdTabCounterHeader], [fd-tab-counter-header]',\n host: {\n class: 'fd-tabs__counter-header'\n },\n standalone: true\n})\nexport class TabCounterHeaderDirective {}\n\n@Directive({\n selector: '[fdTabProcessIcon], [fd-tab-process-icon]',\n host: {\n class: 'fd-tabs__process-icon'\n },\n standalone: true\n})\nexport class TabProcessIconDirective {}\n\n@Directive({\n selector: '[fdTabSeparator], [fd-tab-separator]',\n host: {\n class: 'fd-tabs__separator'\n },\n standalone: true\n})\nexport class TabSeparatorDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { TabTagDirective } from '../tab-utils/tab-directives';\n\n/**\n * Represents a list of tab-panels.\n */\n@Component({\n selector: 'fd-item-expand',\n templateUrl: './tab-item-expand.component.html',\n styleUrls: ['./tab-item-expand.component.scss'],\n host: {\n role: 'tab',\n class: 'fd-tabs__item fd-tabs__item--overflow'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [TabTagDirective, IconComponent, FdTranslatePipe]\n})\nexport class TabItemExpandComponent {}\n","<a class=\"fd-tabs__link\" role=\"tab\" [attr.tabindex]=\"0\">\n <span fd-tab-tag>{{ 'coreTabs.tabListExpandButtonText' | fdTranslate }}</span>\n <fd-icon glyph=\"slim-arrow-down\" aria-label=\"See More\"></fd-icon>\n</a>\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\nimport { AbstractFdNgxClass, KeyUtil } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Tab link for nav mode\n *\n * ```html\n * <a fd-tab-link>\n * link\n * </a>\n * ```\n */\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-tab-link]',\n host: {\n role: 'tab',\n tabindex: '-1'\n },\n standalone: true\n})\nexport class TabLinkDirective extends AbstractFdNgxClass implements FocusableOption {\n /** Whether the link is active */\n @Input()\n @HostBinding('attr.aria-selected')\n active: boolean;\n\n /**\n * Only visual / accessibility thing on tab-nav mode\n * RouterLink does not respect preventDefault/stopPropagation\n */\n @Input()\n @HostBinding('attr.aria-disabled')\n @HostBinding('class.is-disabled')\n disabled: boolean;\n\n /** Event Emitted always when, any keyboard event is dispatched on this element */\n @Output()\n readonly keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** Event Emitted when item has been focused. */\n @Output()\n readonly focused = new EventEmitter<void>();\n\n /** @hidden */\n _setProperties(): void {\n this._addClassToElement('fd-tabs__link');\n if (this.active) {\n this._addClassToElement('is-selected');\n }\n }\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {\n super(elementRef);\n }\n\n /** @hidden */\n @HostListener('focus')\n private _onFocus(): void {\n this.focused.emit();\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n private _onKeyUp(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.focused.emit();\n }\n }\n\n /** @hidden */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n}\n","import { ContentChild, Directive, ElementRef, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\nimport { CssClassBuilder, Nullable, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { TabLinkDirective } from '../tab-link/tab-link.directive';\n\nexport type TabItemState = 'success' | 'error' | 'warning' | 'information' | 'neutral';\n\n/**\n * Tab Item is optional wrapper for Tab link\n *\n * ```html\n * <div fd-tab-item>\n * <a fd-tab-link>\n * link\n * </a>\n * </div>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-tab-item]',\n standalone: true\n})\nexport class TabItemDirective implements CssClassBuilder, OnChanges, OnInit {\n /** Apply user custom styles */\n @Input()\n class = '';\n\n /** Semantic type of the tab item */\n @Input()\n tabItemState: Nullable<TabItemState>;\n\n /** This should be used only on `filterMode`. Flag should be enable for first item */\n @Input()\n header: boolean;\n\n /** Disabled state for tab item */\n @Input()\n @HostBinding('attr.aria-disabled')\n @HostBinding('class.is-disabled')\n disabled = false;\n\n /** Defines if there will be added fd-tabs__item class. Enabled by default. */\n @Input()\n fdTabItemClass = true;\n\n /** @hidden */\n @ContentChild(TabLinkDirective)\n linkItem: TabLinkDirective;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.fdTabItemClass ? 'fd-tabs__item' : '',\n this.header ? 'fd-tabs__item--header' : '',\n this.tabItemState ? `fd-tabs__item--${this.tabItemState}` : '',\n this.class\n ];\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { TabListComponentInterface } from './tab-list-component.interface';\n\nexport const LIST_COMPONENT = new InjectionToken<TabListComponentInterface>('ListComponent');\n","import { NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnChanges,\n Optional,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subject, first } from 'rxjs';\nimport { TabItemState } from '../tab-item/tab-item.directive';\nimport { TabListComponentInterface } from '../tab-list-component.interface';\nimport { LIST_COMPONENT } from '../tab-list.token';\nimport { TabTitleDirective } from '../tab-utils/tab-directives';\n\nlet tabPanelUniqueId = 0;\n\nexport class TabPanelStateChange {\n /**\n * Tab panel state change event\n * @param target Tab panel that is being changed\n * @param state New state of the tab panel\n */\n constructor(public target: TabPanelComponent, public state: boolean) {}\n}\n\n/**\n * Represents the body of a tab element. It also contains elements pertaining to the associated tab header.\n */\n@Component({\n selector: 'fd-tab',\n templateUrl: './tab-panel.component.html',\n host: {\n role: 'tabpanel',\n class: 'fd-tabs__panel',\n '[id]': '_panelId',\n '[attr.aria-labelledby]': 'id'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf]\n})\nexport class TabPanelComponent implements OnChanges {\n /** Id of the tab. If none is provided, one will be generated. */\n @Input()\n id: string = 'fd-tab-panel' + tabPanelUniqueId++;\n\n /** Aria-label of the tab. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Id of the element that labels the tab. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** The title of tab, depending on mode used, it will be placed in different position */\n @Input()\n title: Nullable<string>;\n\n /** The count of tab, depending on mode used, it will be placed in different position */\n @Input()\n count: Nullable<string>;\n\n /** Glyph icon, it can be used only on */\n @Input()\n glyph: string;\n\n /** Glyph icon, it can be used only on */\n @Input()\n header = false;\n\n /** Disabled state for tab item */\n @Input()\n disabled = false;\n\n /** Semantic type of the tab item */\n @Input()\n tabState: Nullable<TabItemState>;\n\n /** Event that is emitted when the tab panel has been opened. */\n @Output()\n opened = new EventEmitter<void>();\n\n /** Event that is emitted when the tab panel has been closed. */\n @Output()\n closed = new EventEmitter<void>();\n\n /** @hidden */\n @ContentChild(TabTitleDirective, { read: TemplateRef })\n titleTemplate: TemplateRef<any>;\n\n /** @hidden Event that is emitted when the tab panel . */\n _expandedStateChange = new Subject<TabPanelStateChange>();\n\n /** @hidden */\n _forcedVisibility = false;\n\n /** @hidden */\n @HostBinding('class.is-expanded')\n _expandedClass = false;\n\n /** @hidden Whether to display tab panel content */\n private _expanded = false;\n\n /** @hidden */\n get _panelId(): string {\n return this.id + '-panel';\n }\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef,\n private _changeDetRef: ChangeDetectorRef,\n private _ngZone: NgZone,\n @Optional() @Inject(LIST_COMPONENT) private readonly _tabsComponent: TabListComponentInterface | null\n ) {}\n\n /** @hidden\n * Thanks to OnPush change strategy detection on tab-list parent component,\n * every change of any property should be reported. */\n ngOnChanges(): void {\n this._tabsComponent?.tabPanelPropertyChanged.next();\n }\n\n /** Whether tab panel content is expanded */\n get expanded(): boolean {\n return this._expanded;\n }\n\n /** Whether to expand tab panel content */\n open(open: boolean): void {\n this._expandedStateChange.next(new TabPanelStateChange(this, open));\n }\n\n /** @hidden Set new expand state */\n _expand(expanded: boolean): void {\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n\n if (expanded) {\n this.opened.emit();\n } else {\n this.closed.emit();\n }\n\n this._changeDetRef.detectChanges();\n\n this._ngZone.onStable.pipe(first()).subscribe(() => this._updateHost());\n }\n }\n\n /** @hidden */\n _focusFirstFocusableElement(): void {\n this.elementRef.nativeElement\n .querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n ?.focus({ preventScroll: true });\n }\n\n /** @hidden */\n private _updateHost(): void {\n this._expandedClass = this.expanded;\n }\n}\n","<ng-container *ngIf=\"expanded\">\n <ng-content></ng-content>\n</ng-container>\n","import { TemplateRef } from '@angular/core';\n\nimport { TabPanelComponent } from '../tab-panel/tab-panel.component';\nimport { TabItemState } from '../tab-item/tab-item.directive';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n/** @hidden */\nexport class TabInfo {\n /** Whether the tab is active */\n active: boolean;\n\n /** @hidden Width of the tab header */\n headerWidth: number;\n\n /** Corresponding tab panel */\n panel: TabPanelComponent;\n\n /** @hidden */\n constructor(tabPanel: TabPanelComponent) {\n this.panel = tabPanel;\n this.active = tabPanel.expanded;\n }\n\n /** Tab header title */\n get title(): Nullable<string> {\n return this.panel.title;\n }\n\n /** Whether the tab is disabled */\n get disabled(): boolean {\n return this.panel.disabled;\n }\n\n /** Whether the tab is tab header */\n get isHeader(): boolean {\n return this.panel.header;\n }\n\n /** @hidden */\n get id(): Nullable<string> {\n return this.panel.id;\n }\n\n /** @hidden */\n get ariaLabel(): Nullable<string> {\n return this.panel.ariaLabel;\n }\n\n /** @hidden */\n get ariaLabelledBy(): Nullable<string> {\n return this.panel.ariaLabelledBy;\n }\n\n /** @hidden */\n get tabState(): Nullable<TabItemState> {\n return this.panel.tabState;\n }\n\n /** @hidden */\n get titleTemplate(): TemplateRef<any> {\n return this.panel.titleTemplate;\n }\n\n /** @hidden */\n get count(): Nullable<string> {\n return this.panel.count;\n }\n\n /** @hidden */\n get glyph(): string {\n return this.panel.glyph;\n }\n\n /** @hidden */\n get forcedVisibility(): boolean {\n return this.panel._forcedVisibility;\n }\n\n /** @hidden */\n get panelId(): string {\n return this.panel._panelId;\n }\n}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgFor, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n forwardRef,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, Nullable, scrollTop, warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport {\n MenuComponent,\n MenuInteractiveComponent,\n MenuItemComponent,\n MenuTitleDirective,\n MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport {\n OverflowExpandDirective,\n OverflowItemRefDirective,\n OverflowLayoutComponent,\n OverflowLayoutFocusableItemDirective,\n OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { ScrollSpyDirective } from '@fundamental-ngx/core/scroll-spy';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { Observable, Subject, Subscription, fromEvent, merge } from 'rxjs';\nimport { debounceTime, delay, filter, first, map, startWith, switchMap, tap } from 'rxjs/operators';\nimport { TabItemExpandComponent } from './tab-item-expand/tab-item-expand.component';\nimport { TabItemDirective } from './tab-item/tab-item.directive';\nimport { TabLinkDirective } from './tab-link/tab-link.directive';\nimport { TabListComponentInterface } from './tab-list-component.interface';\nimport { LIST_COMPONENT } from './tab-list.token';\nimport { TabPanelComponent } from './tab-panel/tab-panel.component';\nimport {\n TabCountDirective,\n TabCounterHeaderDirective,\n TabHeaderDirective,\n TabIconComponent,\n TabLabelDirective,\n TabProcessDirective,\n TabProcessIconDirective,\n TabSeparatorDirective,\n TabTagDirective\n} from './tab-utils/tab-directives';\nimport { TabInfo } from './tab-utils/tab-info.class';\n\nexport type TabModes = 'icon-only' | 'process' | 'filter';\n\nexport type TabSizes = 's' | 'm' | 'l' | 'xl' | 'xxl';\n\n/**\n * Represents a list of tab-panels.\n * @deprecated\n * Use `@fundamental-ngx/platform/icon-tab-bar` instead\n */\n@Component({\n selector: 'fd-tab-list',\n templateUrl: './tab-list.component.html',\n styleUrls: ['./tab-list.component.scss'],\n host: {\n class: 'fd-tabs-custom'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n contentDensityObserverProviders(),\n {\n provide: LIST_COMPONENT,\n useExisting: forwardRef(() => TabListComponent)\n }\n ],\n standalone: true,\n imports: [\n OverflowLayoutComponent,\n NgFor,\n OverflowItemRefDirective,\n TabItemDirective,\n OverflowLayoutItemDirective,\n TabLinkDirective,\n OverflowLayoutFocusableItemDirective,\n NgTemplateOutlet,\n NgIf,\n NgSwitch,\n NgSwitchCase,\n TabHeaderDirective,\n TabCounterHeaderDirective,\n TabLabelDirective,\n TabIconComponent,\n TabCountDirective,\n TabProcessDirective,\n NgSwitchDefault,\n TabTagDirective,\n TabProcessIconDirective,\n TabSeparatorDirective,\n OverflowExpandDirective,\n TabItemExpandComponent,\n MenuTriggerDirective,\n MenuComponent,\n MenuItemComponent,\n MenuInteractiveComponent,\n ScrollSpyDirective,\n CdkScrollable,\n ScrollbarDirective,\n MenuTitleDirective\n ]\n})\nexport class TabListComponent implements TabListComponentInterface, AfterContentInit, AfterViewInit, OnDestroy {\n /** Size of tab, it's mostly about adding spacing on tab container, available sizes 's' | 'm' | 'l' | 'xl' | 'xxl' */\n @Input()\n size: TabSizes = 'm';\n\n /**\n * Whether user wants to use tab component in certain mode. Modes available:\n * 'icon-only' | 'process' | 'filter'\n */\n @Input()\n mode: TabModes;\n\n /** Whether to move tabs overflowing in the tab bar to the dropdown */\n @Input()\n collapseOverflow = true;\n\n /** Limits the maximum number of tabs visible in the tab bar in collapseOverflow mode.\n * Other tabs will be moved to the collapsed tabs dropdown */\n @Input()\n maxVisibleTabs = Infinity;\n\n /** Whether to open tab content one under another without collapsing */\n @Input()\n stackContent = false;\n\n /** Maximum height of the content */\n @Input()\n maxContentHeight = '100%';\n\n /** Whether to enable collapsing expanded tab on expanded tab click */\n @Input()\n collapsibleTabs = false;\n\n /** Initially selected tab (by id). First not disabled one if not specified. */\n @Input()\n defaultTab: Nullable<string>;\n\n /** Whether to try to keep selected tab (default value) on tabs change or to select default one (first if not specified). */\n @Input()\n selectDefaultOnTabsChange = false;\n\n /** Whether to focus the first focusable element in a tab panel when using stacked tabs. */\n @Input()\n focusFirstFocusableElement = true;\n\n /** Event emitted when the selected panel changes. */\n @Output()\n selectedTabChange = new EventEmitter<TabPanelComponent>();\n\n /** Event emitted when the selected panel index changes. */\n @Output()\n selectedTabIndexChange = new EventEmitter<number>();\n\n /** Event emitted when visible items count has been changed. */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /** Event emitted when hidden items count has been changed. */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /** @hidden */\n @ContentChildren(forwardRef(() => TabPanelComponent))\n tabPanels: QueryList<TabPanelComponent>;\n\n /** @hidden */\n @ViewChildren(TabLinkDirective)\n tabHeaderLinks: QueryList<TabLinkDirective>;\n\n /** @hidden */\n @ViewChildren(TabItemDirective)\n tabHeaders: QueryList<TabItemDirective>;\n\n /** @hidden */\n @ViewChild(TabItemExpandComponent, { read: ElementRef })\n overflowTrigger: ElementRef;\n\n /** @hidden */\n @ViewChild('headerContainer', { read: ElementRef })\n headerContainer: ElementRef;\n\n /** @hidden */\n @ViewChild(ScrollbarDirective)\n _scrollbar: ScrollbarDirective;\n\n /** @hidden */\n @ViewChild('menu', { read: MenuComponent })\n menu: MenuComponent;\n\n /** @hidden */\n @ViewChild(OverflowLayoutComponent)\n private _overflowLayout: OverflowLayoutComponent;\n\n /** @hidden */\n @ViewChild('scrollSpy', { read: ScrollSpyDirective })\n private readonly _scrollSpy: Nullable<ScrollSpyDirective>;\n\n /** @hidden */\n get contentContainer(): ElementRef<HTMLElement> {\n return this._scrollbar?.elementRef;\n }\n\n /** @hidden Collection of tabs in original order */\n _tabArray: TabInfo[] = [];\n\n /** @hidden Whether to disable scroll spy */\n _disableScrollSpy = false;\n\n /** @hidden */\n _init = true;\n\n /** Event is thrown always when tab is selected by keyboard actions */\n readonly tabSelected: Subject<number> = new Subject<number>();\n\n /** Event is thrown always, when some property is changed */\n readonly tabPanelPropertyChanged: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private readonly _zone = inject(NgZone);\n\n /** @hidden */\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver,\n private readonly _destroyRef: DestroyRef\n ) {\n warnOnce('TabListComponent is deprecated, use `@fundamental-ngx/platform/icon-tab-bar` instead');\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setupTabPanelsChangeListeners();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._initStackContentSubscription();\n this._listenOnTabPanelsExpandedChange();\n this._listenOnTabPanelsAndInitiallyExpandTabPanel();\n this._listenOnPropertiesChange();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n _tabHeaderClickHandler(tabPanel: TabPanelComponent): void {\n this._expandTab(tabPanel, !tabPanel.expanded);\n }\n\n /** @hidden */\n _tabHeaderKeydownHandler(event: KeyboardEvent, tabPanel: TabPanelComponent): void {\n if (!KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n return;\n }\n\n event.preventDefault();\n this._tabHeaderClickHandler(tabPanel);\n }\n\n /** @hidden */\n _overflowingTabHeaderClickHandler(tabPanel: TabPanelComponent): void {\n this._tabArray.forEach((tab) => {\n tab.panel._forcedVisibility = tab.panel === tabPanel;\n });\n\n this._expandTab(tabPanel, true, false);\n\n this._overflowLayout.triggerRecalculation();\n\n this._detectChanges();\n }\n\n /** @hidden */\n _highlightActiveTab({ id }: HTMLElement): void {\n const tab = this._tabArray.find((_tab) => _tab.panel._panelId === id);\n if (tab) {\n const _tabWasActive = tab.active;\n this._activateStackedTab(tab.panel, false);\n if (!_tabWasActive) {\n this._selectedTabChange(tab.panel);\n }\n }\n }\n\n /** @hidden */\n _onTriggerKeydown(event: KeyboardEvent, menuRef: MenuComponent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n event.preventDefault();\n menuRef.toggle();\n }\n }\n\n /** @hidden */\n private get _tabPanelsChange$(): Observable<TabPanelComponent[]> {\n return this.tabPanels.changes.pipe(\n startWith(this.tabPanels),\n map((tabPanels) => tabPanels.toArray()),\n takeUntilDestroyed(this._destroyRef)\n );\n }\n\n /** @hidden */\n private _detectChanges(): void {\n if (this._changeDetectorRef && !this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n private _setupTabPanelsChangeListeners(): void {\n this._listenOnTabPanelsAndUpdateStorageStructures();\n }\n\n /** @hidden Setup mechanisms required for handling the stacked content behavior */\n private _initStackContentSubscription(): void {\n this._tabPanelsChange$\n .pipe(\n filter(() => this.stackContent),\n delay(0),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() =>\n this._tabArray.filter((tab) => !tab.panel.disabled).forEach((tab) => tab.panel._expand(true))\n );\n }\n\n /** @hidden */\n private _listenOnTabPanelsAndUpdateStorageStructures(): void {\n this._tabPanelsChange$\n .pipe(\n map((tabPanels) =>\n tabPanels.map((el) => this._tabArray?.find((tabInfo) => tabInfo.panel === el) || new TabInfo(el))\n ),\n tap((tabs) => (this._tabArray = tabs)),\n switchMap(() => this._zone.onStable.pipe(startWith(this._zone.isStable))),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((tabs) => {\n this.stackContent && this._scrollSpy?.onScroll(undefined, true);\n });\n }\n\n /** @hidden */\n private _listenOnTabPanelsExpandedChange(): void {\n this._tabPanelsChange$\n .pipe(\n map((tabPanels) => tabPanels.map((tab) => tab._expandedStateChange.asObservable())),\n switchMap((tabPanels) => merge(...tabPanels)),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event) => this._expandTab(event.target, event.state));\n }\n\n /** @hidden */\n private _listenOnTabPanelsAndInitiallyExpandTabPanel(): void {\n this._tabPanelsChange$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n const activeTab = this._tabArray.find((_tab) => _tab.active);\n let tab: Nullable<TabInfo>;\n\n if (!activeTab || this.selectDefaultOnTabsChange) {\n if (this.defaultTab) {\n tab = this._tabArray.find((_tab) => !_tab.disabled && _tab.id === this.defaultTab);\n }\n\n if (!tab) {\n tab = this._tabArray.find((_tab) => !_tab.disabled);\n }\n }\n\n if (tab && activeTab !== tab) {\n this._expandTab(tab.panel, true);\n }\n });\n }\n\n /** @hidden */\n private _listenOnPropertiesChange(): void {\n merge(this.tabPanelPropertyChanged, this.tabPanels.changes)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._detectChanges());\n }\n\n /** @hidden */\n private _activateStackedTab(tabPanel: TabPanelComponent, scroll = true): void {\n if (scroll) {\n this._scrollToPanel(tabPanel);\n }\n this._tabArray.forEach((tab) => {\n tab.active = tab.panel === tabPanel;\n });\n }\n\n /** @hidden */\n private _activateExpandableTab(tabPanel: TabPanelComponent, expand: boolean): void {\n const collapse = this.collapsibleTabs && !expand;\n\n this._tabArray.forEach((tab) => {\n const isActive = tab.panel === tabPanel && !collapse;\n\n tab.panel._expand(isActive);\n tab.active = isActive;\n });\n }\n\n /** @hidden */\n private _expandTab(tabPanel: TabPanelComponent, expand: boolean, detectChanges = true): void {\n if (this.stackContent) {\n this._activateStackedTab(tabPanel);\n } else {\n if (!this._canChangeExpandState(tabPanel, expand)) {\n return;\n }\n\n this._activateExpandableTab(tabPanel, expand);\n }\n\n if (detectChanges) {\n this._detectChanges();\n }\n\n this._selectedTabChange(tabPanel);\n }\n\n /** @hidden */\n private _scrollToPanel(tabPanel: TabPanelComponent): void {\n const panelElement = tabPanel.elementRef.nativeElement;\n const containerElement = this.contentContainer.nativeElement;\n const distanceToScroll = panelElement.offsetTop - containerElement.offsetTop;\n const maximumScrollTop = containerElement.scrollHeight - containerElement.clientHeight;\n const currentScrollPosition = Math.ceil(containerElement.scrollTop);\n\n if (!(currentScrollPosition === maximumScrollTop && distanceToScroll > maximumScrollTop)) {\n !this._init ? (this._disableScrollSpy = true) : (this._init = false);\n fromEvent(containerElement, 'scroll')\n .pipe(debounceTime(100), first(), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => (this._disableScrollSpy = false));\n scrollTop(containerElement, distanceToScroll);\n }\n\n if (this.focusFirstFocusableElement) {\n tabPanel._focusFirstFocusableElement();\n }\n }\n\n /** @hidden Whether tab can be expanded/collapsed */\n private _canChangeExpandState(tabPanel: TabPanelComponent, expand: boolean): boolean {\n return !tabPanel.disabled && expand !== tabPanel.expanded && expand === false ? this.collapsibleTabs : true;\n }\n\n /** @hidden */\n private _selectedTabChange(tabPanel: TabPanelComponent): void {\n this.selectedTabChange.emit(tabPanel);\n\n const index = this._tabArray.findIndex((tabInfo) => tabInfo.panel === tabPanel);\n this.selectedTabIndexChange.emit(index);\n }\n}\n","<div #headerContainer role=\"tablist\" class=\"fd-tabs\" [class]=\"(mode ? 'fd-tabs--' + mode : '') + (' fd-tabs--' + size)\">\n <fd-overflow-layout\n [maxVisibleItems]=\"maxVisibleTabs\"\n [enableKeyboardNavigation]=\"true\"\n navigationTrigger=\"keydown\"\n (hiddenItemsCount)=\"hiddenItemsCount.emit($event)\"\n (visibleItemsCount)=\"visibleItemsCount.emit($event)\"\n >\n <ng-container *ngFor=\"let tab of _tabArray; let i = index; let last = last\">\n <div\n fd-tab-item\n *fdOverflowItemRef=\"tab\"\n fdOverflowLayoutItem\n [forceVisibility]=\"tab.panel._forcedVisibility\"\n [header]=\"tab.isHeader\"\n [tabItemState]=\"tab.tabState\"\n >\n <a\n fd-tab-link\n role=\"tab\"\n [id]=\"tab.id\"\n [attr.aria-controls]=\"tab.panelId\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"!tab.ariaLabel && tab.ariaLabelledBy ? tab.ariaLabelledBy : null\"\n fdOverflowLayoutFocusableItem\n [focusable]=\"tab.active\"\n [navigable]=\"!tab.disabled\"\n [active]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n (keydown)=\"_tabHeaderKeydownHandler($event, tab.panel)\"\n (click)=\"_tabHeaderClickHandler(tab.panel)\"\n >\n <ng-container *ngTemplateOutlet=\"tab.titleTemplate || null\"></ng-container>\n\n <ng-container *ngIf=\"!tab.titleTemplate\" [ngSwitch]=\"mode\">\n <ng-container *ngSwitchCase=\"'filter'\">\n <span fd-tab-header *ngIf=\"tab.isHeader\">\n <span fd-tab-counter-header *ngIf=\"tab.count\">{{ tab.count }}</span>\n <span fd-tab-label *ngIf=\"tab.title\">{{ tab.title }}</span>\n </span>\n <ng-container *ngIf=\"!tab.isHeader\">\n <span fd-tab-icon [icon]=\"tab.glyph\">\n <p fd-tab-count>{{ tab.count }}</p>\n </span>\n <span fd-tab-label>{{ tab.title }}</span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'icon-only'\">\n <span fd-tab-icon [icon]=\"tab.glyph\">\n <p fd-tab-count>{{ tab.count }}</p>\n </span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'process'\">\n <span fd-tab-icon *ngIf=\"tab.glyph\" [icon]=\"tab.glyph\"></span>\n <div fd-tab-process>\n <span fd-tab-label *ngIf=\"tab.count\">{{ tab.count }}</span>\n <span fd-tab-label *ngIf=\"tab.title\">{{ tab.title }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <p fd-tab-count *ngIf=\"tab.count\">{{ tab.count }}</p>\n <span fd-tab-tag>{{ tab.title }}</span>\n </ng-container>\n </ng-container>\n </a>\n\n <div fd-tab-process-icon *ngIf=\"mode === 'process' && !last\"></div>\n </div>\n\n <div *ngIf=\"tab.isHeader\" fd-tab-separator></div>\n </ng-container>\n\n <ng-container *fdOverflowExpand=\"let tabs; items: _tabArray\">\n <fd-item-expand [fdMenuTrigger]=\"menu\" *ngIf=\"tabs.length > 0\" (keydown)=\"_onTriggerKeydown($event, menu)\">\n </fd-item-expand>\n\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let tab of tabs\"\n (onSelect)=\"_overflowingTabHeaderClickHandler(tab.item.panel)\"\n >\n <div fd-menu-interactive>\n <ng-container\n *ngTemplateOutlet=\"\n !tab.item.titleTemplate && mode === 'icon-only'\n ? iconOnlyTemplate\n : tab.item.titleTemplate || textTitle;\n context: { $implicit: tab.item }\n \"\n ></ng-container>\n </div>\n </li>\n </fd-menu>\n </ng-container>\n </fd-overflow-layout>\n</div>\n\n<div\n class=\"fd-tabs__content\"\n [style.max-height]=\"maxContentHeight\"\n fdScrollSpy\n #scrollSpy=\"fdScrollSpy\"\n fd-scrollbar\n [trackedTags]=\"['fd-tab']\"\n [scrollSpyDisabled]=\"_disableScrollSpy\"\n (spyChange)=\"_highlightActiveTab($event)\"\n>\n <ng-content></ng-content>\n</div>\n\n<ng-template #textTitle let-tab>\n <span fd-menu-title>{{ tab.title }}</span>\n</ng-template>\n\n<ng-template #iconOnlyTemplate let-tab>\n <span fd-tab-icon [icon]=\"tab.glyph\">\n <p fd-tab-count>{{ tab.count }}</p>\n </span>\n</ng-template>\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { CssClassBuilder, KeyUtil, RtlService, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { TabItemDirective } from '../tab-item/tab-item.directive';\nimport { TabLinkDirective } from '../tab-link/tab-link.directive';\nimport { TabModes, TabSizes } from '../tab-list.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-tab-nav]',\n template: ` <ng-content></ng-content>`,\n providers: [contentDensityObserverProviders()],\n styleUrls: ['./tab-nav.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class TabNavComponent implements AfterContentInit, OnChanges, OnInit, OnDestroy, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /**\n * Whether user wants to use tab component in certain mode. Modes available:\n * 'icon-only' | 'process' | 'filter'\n */\n @Input()\n mode: TabModes;\n\n /** Size of tab, it's mostly about adding spacing on tab container, available sizes 's' | 'm' | 'l' | 'xl' | 'xxl' */\n @Input()\n size: TabSizes = 'm';\n\n /** @hidden */\n @ContentChildren(TabLinkDirective, { descendants: true })\n links: QueryList<TabLinkDirective>;\n\n /** @hidden */\n @ContentChildren(TabItemDirective, { descendants: true })\n items: QueryList<TabItemDirective>;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _keyboardEventsManager: FocusKeyManager<TabLinkDirective>;\n\n /** @hidden */\n private _dir: 'ltr' | 'rtl' = this._rtlService?.rtl.value ? 'rtl' : 'ltr';\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private readonly _contentDensityObserver: ContentDensityObserver,\n @Optional() private readonly _rtlService: RtlService\n ) {\n this._contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setupKeyManager();\n this._refreshSubscription();\n this._listenOnContentQueryListChange();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._keyboardEventsManager?.destroy();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [`fd-tabs`, this.mode ? 'fd-tabs--' + this.mode : '', `fd-tabs--${this.size}`, this.class];\n }\n\n /** Function that gives possibility to get all the link directives, with and without nav__item wrapper */\n get tabLinks(): TabLinkDirective[] {\n let tabLinks: TabLinkDirective[] = [];\n if (this.links) {\n tabLinks = tabLinks.concat(this.links.map((link) => link));\n }\n if (this.items) {\n tabLinks = tabLinks.concat(this.items.filter((item) => !!item.linkItem).map((item) => item.linkItem));\n }\n return tabLinks;\n }\n\n /**\n * Function to select a new tab from an index.\n * @param tabIndex Index of the tab to select.\n */\n selectTab(tabIndex: number): void {\n this.tabLinks[tabIndex].elementRef.nativeElement.click();\n }\n\n /**\n * @hidden\n * Every time any of query is changed, ex. tab is removed or added\n * reference to keydown subscriptions handler is renewed\n */\n private _listenOnContentQueryListChange(): void {\n merge(this.links.changes, this.items.changes)\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => this._refreshSubscription());\n }\n\n /** Whether any QueryList detects any changes */\n private _refreshSubscription(): void {\n this._subscriptions.unsubscribe();\n this._subscriptions = new Subscription();\n this._listenToFocusedLinks();\n\n this.links.changes.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\n this._listenToFocusedLinks();\n });\n }\n\n /** @hidden */\n private _listenToFocusedLinks(): void {\n const links = this.links.toArray();\n links.forEach((link) => {\n this._subscriptions.add(\n link.focused.subscribe(() => {\n this._keyboardEventsManager.setActiveItem(links.findIndex((item) => item === link));\n })\n );\n });\n }\n\n /** @hidden */\n private _setupKeyManager(): void {\n this._keyboardEventsManager?.destroy();\n this._keyboardEventsManager = new FocusKeyManager(this.links).withWrap().withHorizontalOrientation(this._dir);\n\n this._rtlService?.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl) => {\n this._keyboardEventsManager.withHorizontalOrientation(isRtl ? 'rtl' : 'ltr');\n });\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n private _keyUpHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { TabListComponent } from './tab-list.component';\nimport { TabPanelComponent } from './tab-panel/tab-panel.component';\n\nimport { TabItemDirective } from './tab-item/tab-item.directive';\nimport { TabLinkDirective } from './tab-link/tab-link.directive';\nimport { TabNavComponent } from './tab-nav/tab-nav.component';\nimport {\n TabCountDirective,\n TabCounterHeaderDirective,\n TabHeaderDirective,\n TabIconComponent,\n TabLabelDirective,\n TabProcessDirective,\n TabProcessIconDirective,\n TabSeparatorDirective,\n TabTagDirective,\n TabTitleDirective\n} from './tab-utils/tab-directives';\n\nconst components = [\n TabListComponent,\n TabPanelComponent,\n TabTitleDirective,\n TabNavComponent,\n TabItemDirective,\n TabLinkDirective,\n TabTagDirective,\n TabIconComponent,\n TabCountDirective,\n TabLabelDirective,\n TabProcessDirective,\n TabHeaderDirective,\n TabCounterHeaderDirective,\n TabProcessIconDirective,\n TabSeparatorDirective\n];\n\n/**\n * @deprecated\n * Use `@fundamental-ngx/platform/icon-tab-bar` instead\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["first"],"mappings":"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"}
|
|
@@ -397,7 +397,7 @@ class TimePickerComponent {
|
|
|
397
397
|
PopoverFormMessageService,
|
|
398
398
|
PopoverService,
|
|
399
399
|
registerFormItemControl(TimePickerComponent)
|
|
400
|
-
], viewQueries: [{ propertyName: "child", first: true, predicate: TimeComponent, descendants: true }, { propertyName: "_inputGroupElement", first: true, predicate: ["inputGroupComponent"], descendants: true, read: ElementRef }, { propertyName: "_inputElement", first: true, predicate: InputGroupInputDirective, descendants: true, read: ElementRef }, { propertyName: "_formMessageTemplate", first: true, predicate: ["formMessageTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [closeOnEscapeKey]=\"true\"\n [focusAutoCapture]=\"false\"\n [focusTrapped]=\"true\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n (addOnButtonClicked)=\"_addOnButtonClicked()\"\n [button]=\"true\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"timePickerButtonLabel || ('coreTimePicker.timePickerButtonLabel' | fdTranslate)\"\n glyph=\"fob-watch\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [value]=\"_inputTimeValue\"\n (focusout)=\"_timeInputChanged($any($event.currentTarget).value)\"\n (keyup.enter)=\"_timeInputChanged($any($event.currentTarget).value)\"\n [disabled]=\"disabled\"\n [attr.id]=\"inputId\"\n [placeholder]=\"_placeholder\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"timePickerInputLabel || ('coreTimePicker.timePickerInputLabel' | fdTranslate)\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [attr.aria-required]=\"required\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"formMessageTemplate\"></ng-template>\n <ng-content></ng-content>\n <fd-time\n *ngIf=\"isOpen\"\n [tablet]=\"tablet\"\n [disabled]=\"disabled\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"time\"\n (ngModelChange)=\"_timeComponentValueChanged($event)\"\n [meridian]=\"_meridian\"\n [displayHours]=\"_displayHours\"\n [displayMinutes]=\"_displayMinutes\"\n [displaySeconds]=\"_displaySeconds\"\n [spinnerButtons]=\"spinnerButtons\"\n ></fd-time>\n </fd-popover-body>\n</fd-popover>\n\n<div [style.display]=\"'none'\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{ valueStateSuccessMessage }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{ valueStateInformationMessage }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{ valueStateWarningMessage }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{ valueStateErrorMessage }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n\n<ng-template #formMessageTemplate>\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n</ng-template>\n", styles: [".fd-timepicker-custom{display:inline-block}.fd-timepicker-custom fd-popover{display:block}.fd-timepicker-custom fd-time{width:auto}\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: TimeComponent, selector: "fd-time", inputs: ["meridian", "validate", "keepTwoDigits", "disabled", "displaySeconds", "displayMinutes", "displayHours", "tablet", "elementsAtOnce", "time", "spinnerButtons"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
400
|
+
], viewQueries: [{ propertyName: "child", first: true, predicate: TimeComponent, descendants: true }, { propertyName: "_inputGroupElement", first: true, predicate: ["inputGroupComponent"], descendants: true, read: ElementRef }, { propertyName: "_inputElement", first: true, predicate: InputGroupInputDirective, descendants: true, read: ElementRef }, { propertyName: "_formMessageTemplate", first: true, predicate: ["formMessageTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [closeOnEscapeKey]=\"true\"\n [focusAutoCapture]=\"false\"\n [focusTrapped]=\"true\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n (addOnButtonClicked)=\"_addOnButtonClicked()\"\n [button]=\"true\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"timePickerButtonLabel || ('coreTimePicker.timePickerButtonLabel' | fdTranslate)\"\n glyph=\"fob-watch\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [value]=\"_inputTimeValue\"\n (focusout)=\"_timeInputChanged($any($event.currentTarget).value)\"\n (keyup.enter)=\"_timeInputChanged($any($event.currentTarget).value)\"\n [disabled]=\"disabled\"\n [attr.id]=\"inputId\"\n [placeholder]=\"_placeholder\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"timePickerInputLabel || ('coreTimePicker.timePickerInputLabel' | fdTranslate)\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [attr.aria-required]=\"required\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"formMessageTemplate\"></ng-template>\n <ng-content></ng-content>\n <fd-time\n *ngIf=\"isOpen\"\n [tablet]=\"tablet\"\n [disabled]=\"disabled\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"time\"\n (ngModelChange)=\"_timeComponentValueChanged($event)\"\n [meridian]=\"_meridian\"\n [displayHours]=\"_displayHours\"\n [displayMinutes]=\"_displayMinutes\"\n [displaySeconds]=\"_displaySeconds\"\n [spinnerButtons]=\"spinnerButtons\"\n ></fd-time>\n </fd-popover-body>\n</fd-popover>\n\n<div [style.display]=\"'none'\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{ valueStateSuccessMessage }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{ valueStateInformationMessage }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{ valueStateWarningMessage }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{ valueStateErrorMessage }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n\n<ng-template #formMessageTemplate>\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n</ng-template>\n", styles: [".fd-timepicker-custom{display:inline-block}.fd-timepicker-custom fd-popover{display:block}.fd-timepicker-custom fd-time{width:auto}\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: TimeComponent, selector: "fd-time", inputs: ["meridian", "validate", "keepTwoDigits", "disabled", "displaySeconds", "displayMinutes", "displayHours", "tablet", "elementsAtOnce", "time", "spinnerButtons"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
401
401
|
}
|
|
402
402
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
403
403
|
type: Component,
|