@fundamental-ngx/btp 0.65.0-rc.2 → 0.65.0-rc.21
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/fesm2022/fundamental-ngx-btp-navigation-menu.mjs +2 -2
- package/fesm2022/fundamental-ngx-btp-navigation-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-btp-navigation.mjs +66 -22
- package/fesm2022/fundamental-ngx-btp-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-btp-search-field.mjs +2 -2
- package/fesm2022/fundamental-ngx-btp-splitter.mjs +2 -2
- package/fesm2022/fundamental-ngx-btp-splitter.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-btp-tool-header.mjs +2 -2
- package/fesm2022/fundamental-ngx-btp-tool-layout.mjs +2 -2
- package/package.json +3 -3
- package/types/fundamental-ngx-btp-navigation.d.ts +18 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-btp-splitter.mjs","sources":["../../../../libs/btp/splitter/constants.ts","../../../../libs/btp/splitter/splitter-split-pane/splitter-split-pane.component.ts","../../../../libs/btp/splitter/splitter-split-pane/splitter-split-pane.component.html","../../../../libs/btp/splitter/splitter.component.ts","../../../../libs/btp/splitter/splitter-pagination/splitter-pagination.component.ts","../../../../libs/btp/splitter/splitter-pagination/splitter-pagination.component.html","../../../../libs/btp/splitter/splitter-pane-container/splitter-pane-container.token.ts","../../../../libs/btp/splitter/splitter-pane-container/no-default-pane.pipe.ts","../../../../libs/btp/splitter/splitter-pane-container/splitter-pane-orientation.enum.ts","../../../../libs/btp/splitter/splitter-resizer/splitter-resizer.component.ts","../../../../libs/btp/splitter/splitter-resizer/splitter-resizer.component.html","../../../../libs/btp/splitter/splitter-pane-container/splitter-pane-container.component.ts","../../../../libs/btp/splitter/splitter-pane-container/splitter-pane-container.component.html","../../../../libs/btp/splitter/splitter.module.ts","../../../../libs/btp/splitter/fundamental-ngx-btp-splitter.ts"],"sourcesContent":["export const PANE_AUTO_SIZE = 'auto';\n\nexport const PANE_NONE_SIZE = 'none';\n\nexport const RESIZER_SIZE_PX = 16;\n\nexport const ROOT_PAGE = 'FD_SPLITTER_ROOT_PAGE';\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DOCUMENT,\n DestroyRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PANE_AUTO_SIZE } from '../constants';\n\nlet paneUniqueId = 0;\n\n/** @dynamic */\n@Component({\n selector: 'fdb-splitter-split-pane',\n templateUrl: './splitter-split-pane.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class SplitterSplitPaneComponent implements OnInit, AfterViewInit {\n /** Size (height in vertical orientation, width in horizontal orientation) of the pane. */\n @Input()\n set size(size: string) {\n this._size = size;\n if (this._actualSize !== this._size) {\n this._actualSize = this._size;\n this.sizeChange.emit();\n }\n }\n\n get size(): string {\n return this._size;\n }\n\n /** Id of the split pane. Generated if not provided. */\n @Input()\n id = `fd-splitter-split-pane-${paneUniqueId++}`;\n\n /** Required browser's window width in pixels when the panel will be shown. */\n @Input()\n requiredParentWidth: number;\n\n /** Whether pane is reachable using pagination bar when is off-canvas. */\n @Input()\n demandPane = true;\n\n /** Event emitted when the pane appears on/disappears out of canvas. */\n @Output()\n readonly toggleOnCanvas = new EventEmitter<boolean>();\n\n /** Event emitted when the size is changed via the input property. */\n @Output()\n readonly sizeChange = new EventEmitter<void>();\n\n /** @hidden */\n @ViewChild(TemplateRef, { static: true })\n _templateRef: TemplateRef<any>;\n\n /** @hidden */\n _actualSize = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _size = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _contentPortal: TemplatePortal | null = null;\n\n /** @hidden */\n private _isOnCanvas = true;\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /** Returns if the pane is on canvas. */\n get isOnCanvas(): boolean {\n return this._isOnCanvas;\n }\n\n /** @hidden */\n get _content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /** @hidden */\n private get _window(): Nullable<Window & typeof globalThis> {\n return this._document?.defaultView;\n }\n\n /** @hidden */\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._templateRef, this._viewContainerRef);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processPaneOnCanvas();\n this._listenToResize();\n }\n\n /** Hide pane from the canvas. */\n hideFromCanvas(): void {\n if (!this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = false;\n\n this.toggleOnCanvas.emit(false);\n }\n\n /** Show pane on the canvas. */\n showOnCanvas(): void {\n if (this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = true;\n\n this.toggleOnCanvas.emit(true);\n }\n\n /** @hidden */\n private _listenToResize(): void {\n if (!this._window) {\n return;\n }\n\n this._viewportRuler\n .change(10)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._processPaneOnCanvas());\n }\n\n /** @hidden */\n private _processPaneOnCanvas(): void {\n if (!this._window) {\n return;\n }\n\n if (this.requiredParentWidth > this._window.innerWidth && this.isOnCanvas) {\n this.hideFromCanvas();\n }\n\n if (this.requiredParentWidth < this._window.innerWidth && !this.isOnCanvas) {\n this.showOnCanvas();\n }\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\n\n@Component({\n selector: 'fdb-splitter',\n template: `<ng-content></ng-content>`,\n styleUrl: './splitter.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'fd-splitter' },\n standalone: true\n})\nexport class SplitterComponent {\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** Id of the main pane. */\n @Input()\n set defaultPaneId(value: string) {\n this._defaultPaneId = value;\n\n this._defaultPaneId$.next(this._defaultPaneId);\n }\n\n get defaultPaneId(): string {\n return this._defaultPaneId;\n }\n\n /** @hidden */\n _defaultPaneId$ = new Subject<string>();\n\n /** @hidden */\n private _defaultPaneId: string;\n\n /** Check whether certain pane is on canvas. */\n isPaneOnCanvas(paneId: string): boolean {\n if (!this._panes.length) {\n return false;\n }\n\n const paneToCheck = this._panes.find((pane) => pane.id === paneId);\n\n return !!paneToCheck?.isOnCanvas;\n }\n\n /** Hide certain pane from the canvas. */\n hidePaneFromCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToRemove = this._panes.find((pane) => pane.id === paneId);\n\n paneToRemove?.hideFromCanvas();\n }\n\n /** Show certain pane from the canvas. */\n showPaneOnCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToShow = this._panes.find((pane) => pane.id === paneId);\n\n paneToShow?.showOnCanvas();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { SplitterComponent } from '../splitter.component';\n\n@Component({\n selector: 'fdb-splitter-pagination',\n templateUrl: './splitter-pagination.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pagination',\n '[attr.role]': '\"radiogroup\"'\n },\n imports: [ButtonComponent, FdTranslatePipe]\n})\nexport class SplitterPaginationComponent {\n /** Array of pages ids. */\n @Input()\n pages: string[] = [];\n\n /** Current page id. */\n @Input()\n currentPage: string;\n\n /** Event emitted on page change. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onPageChange = new EventEmitter<string>();\n\n /** @Hidden */\n constructor(private readonly _splitter: SplitterComponent) {}\n\n /** @hidden */\n _changePage(page: string): void {\n if (page === this.currentPage) {\n return;\n }\n\n this.currentPage = page;\n this.onPageChange.emit(this.currentPage);\n }\n}\n","@for (page of pages; track page) {\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-splitter__pagination-item\"\n [class.fd-splitter__pagination-item--active]=\"page === currentPage\"\n role=\"radio\"\n [attr.aria-label]=\"('coreSplitter.paginationItemAriaLabel' | fdTranslate)()\"\n [attr.aria-checked]=\"page === currentPage\"\n (click)=\"_changePage(page)\"\n (keydown.enter)=\"_changePage(page)\"\n >\n <span class=\"fd-splitter__pagination-item-dot\"></span>\n </button>\n}\n","import { InjectionToken } from '@angular/core';\nimport { SplitterPaneContainer } from './splitter-pane.container';\n\nexport const FD_SPLITTER_PANE_CONTAINER = new InjectionToken<SplitterPaneContainer>('SplitterPaneContainer');\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { FD_SPLITTER_PANE_CONTAINER } from './splitter-pane-container.token';\nimport { SplitterPaneContainer } from './splitter-pane.container';\n\n@Pipe({\n name: 'noDefaultPane',\n standalone: true\n})\nexport class NoDefaultPanePipe implements PipeTransform {\n private readonly _splitterPaneContainer: SplitterPaneContainer = inject(FD_SPLITTER_PANE_CONTAINER);\n\n /** @hidden */\n transform(value: SplitterSplitPaneComponent[], excludingCondition = true): SplitterSplitPaneComponent[] {\n if (!excludingCondition) {\n return value;\n }\n\n return value.filter((pane) => pane.id !== this._splitterPaneContainer._defaultPane?.id);\n }\n}\n","export enum SplitterPaneContainerOrientation {\n vertical = 'vertical',\n horizontal = 'horizontal'\n}\n\nexport type SplitterPaneContainerOrientationType =\n | keyof typeof SplitterPaneContainerOrientation\n | SplitterPaneContainerOrientation;\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DOCUMENT,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject, fromEvent, throttleTime } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport { NestedButtonDirective } from '@fundamental-ngx/btp/button';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from '../splitter-pane-container/splitter-pane-orientation.enum';\n\n/** @dynamic */\n@Component({\n selector: 'fdb-splitter-resizer',\n templateUrl: './splitter-resizer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__resizer',\n '[class.is-active]': '_start != null || _isInFocus',\n '[tabindex]': '0'\n },\n imports: [ButtonComponent, IconComponent, NestedButtonDirective]\n})\nexport class SplitterResizerComponent implements OnDestroy {\n /** Orientation of the splitter's host pane container. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after resizing has started. */\n @Output()\n startResize = new EventEmitter<void>();\n\n /** Event emitted after resizing has ended. */\n @Output()\n endResize = new EventEmitter<void>();\n\n /** Event emitted while resizing. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n resize = new EventEmitter<number>();\n\n /** @hidden */\n _start: number | null = null;\n\n /** @hidden */\n _isInFocus = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n get _role(): string {\n return 'separator';\n }\n\n /** @hidden */\n @HostBinding('attr.aria-orientation')\n get _ariaOrientation(): string {\n return this.orientation;\n }\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n private _prevDiff = 0;\n\n /** @hidden */\n private _pointerMoveListener = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<Element>,\n private readonly _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private readonly _document: Document\n ) {}\n\n /** @hidden */\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent): void {\n event.preventDefault();\n\n this._start = this._isHorizontal ? event.clientY : event.clientX;\n\n this.startResize.emit();\n\n this._listenToPointerMove();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n let diff: number | undefined;\n\n if (this._isHorizontal) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().left;\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (this._isVertical) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().top;\n\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (diff !== undefined) {\n this.startResize.emit();\n this._emitResize(diff);\n this.endResize.emit();\n }\n\n this._unsubscribe(false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n this._isInFocus = true;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n @HostListener('blur')\n _onBlur(): void {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe();\n }\n\n /** @hidden */\n private _listenToPointerMove(): void {\n this._pointerMoveListener = new Subject<void>();\n\n if (!this._document) {\n return;\n }\n\n fromEvent<MouseEvent>(this._document, 'mousemove')\n .pipe(throttleTime(10), takeUntil(this._pointerMoveListener))\n .subscribe((event) => {\n const newPosition = this._isHorizontal ? event.clientY : event.clientX;\n\n this._emitResize(newPosition);\n this._cdr.markForCheck();\n });\n\n fromEvent(this._document, 'mouseup')\n .pipe(take(1), takeUntil(this._pointerMoveListener))\n .subscribe(() => {\n this.endResize.emit();\n this._unsubscribe();\n this._cdr.markForCheck();\n });\n }\n\n /** @hidden */\n private _emitResize(newPosition: number): void {\n const diff = newPosition - (this._start ?? newPosition);\n\n this.resize.emit(diff - this._prevDiff);\n\n this._prevDiff = diff;\n }\n\n /** @hidden */\n private _unsubscribe(removeFocus = true): void {\n this._start = null;\n this._prevDiff = 0;\n\n this._pointerMoveListener?.next();\n this._pointerMoveListener?.complete();\n\n if (removeFocus) {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n }\n}\n","<button fd-button fdbNestedButton tabindex=\"-1\" class=\"fd-splitter__resizer-grip\">\n <fd-icon\n class=\"fd-splitter__resizer-grip-icon\"\n [glyph]=\"(_isVertical && 'vertical-grip') || (_isHorizontal && 'horizontal-grip')\"\n ></fd-icon>\n</button>\n\n<div class=\"fd-splitter__resizer-decoration-before\"></div>\n<div class=\"fd-splitter__resizer-decoration-after\"></div>\n","import { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { Nullable, RtlService } from '@fundamental-ngx/cdk/utils';\n\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { PANE_AUTO_SIZE, PANE_NONE_SIZE, RESIZER_SIZE_PX, ROOT_PAGE } from '../constants';\nimport { SplitterPaneResizeEvent } from '../interfaces/splitter-pane-resize-event.interface';\nimport { SplitterPaginationComponent } from '../splitter-pagination/splitter-pagination.component';\nimport { SplitterResizerComponent } from '../splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from '../splitter.component';\nimport { NoDefaultPanePipe } from './no-default-pane.pipe';\nimport { FD_SPLITTER_PANE_CONTAINER } from './splitter-pane-container.token';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from './splitter-pane-orientation.enum';\nimport { SplitterPaneContainer } from './splitter-pane.container';\n\n/** Splitter pane available types */\nexport type PaneType = 'translucent' | 'solid';\n\n/** Splitter pane deprecated types */\nexport type DeprecatedPaneType = 'default' | 'transparent';\n\n/** Splitter pane type input */\nexport type PaneTypeInput = PaneType | DeprecatedPaneType;\n\n/**\n * Transforms pane type input to pane type\n * and logs deprecation warning if needed\n * @param paneType\n */\nexport function transformPaneTypeInput(paneType: PaneTypeInput): Nullable<PaneType> {\n if (paneType === 'default' || paneType === 'transparent') {\n console.warn(\n 'Pane type \"default\" and \"transparent\" are deprecated. Use \"null\" or do not set anything at all instead if you need to have transparent pane type.'\n );\n return null;\n }\n return paneType;\n}\n\n@Component({\n selector: 'fdb-splitter-pane-container',\n templateUrl: './splitter-pane-container.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pane-container',\n '[class.fd-splitter__pane-container--horizontal]': '!_isRootContainer && _isHorizontal',\n '[class.fd-splitter__pane-container--vertical]': '_isRootContainer || _isVertical'\n },\n providers: [\n {\n provide: FD_SPLITTER_PANE_CONTAINER,\n useExisting: SplitterPaneContainerComponent\n }\n ],\n imports: [NgTemplateOutlet, SplitterPaginationComponent, PortalModule, SplitterResizerComponent, NoDefaultPanePipe]\n})\nexport class SplitterPaneContainerComponent\n implements SplitterPaneContainer, AfterContentInit, AfterViewInit, OnDestroy\n{\n /** Pane type - vertical (default) or horizontal. */\n @Input() orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /**\n * Style of the resizer.\n */\n @Input({ transform: transformPaneTypeInput }) resizerType: Nullable<PaneTypeInput> = null;\n\n /**\n * Style of the pane\n */\n @Input({ transform: transformPaneTypeInput }) paneType: Nullable<PaneTypeInput> = null;\n\n /** Event emitted after container's panes has resized. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly resize = new EventEmitter<SplitterPaneResizeEvent[]>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true }) _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent) _directPanes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _defaultPane: Nullable<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n _currentPage: string;\n\n /** @hidden */\n _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _paneSizes: number[] = [];\n\n /** @hidden */\n private _wantedPanesSizes: number[] = [];\n\n /** @hidden */\n private _initialPaneSizes: number[] = [];\n\n /** @hidden */\n private _directPaneSubscription$ = new Subscription();\n\n /** @hidden */\n private _subscription$ = new Subscription();\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n get _isRootContainer(): boolean {\n return !this._parentSplitterPaneContainer;\n }\n\n /** @hidden */\n get _panesOnCanvas(): SplitterSplitPaneComponent[] {\n return this._directPanes.filter((pane) => pane.isOnCanvas);\n }\n\n /** @hidden */\n get _activePanes(): SplitterSplitPaneComponent[] {\n if (this._currentPage === ROOT_PAGE) {\n return this._panesOnCanvas;\n }\n\n return this._panes.filter((pane) => pane.id === this._currentPage);\n }\n\n /** @hidden */\n private get _panesInRightOrderForResize(): SplitterSplitPaneComponent[] {\n const panes = this._directPanes.filter((pane) => pane.id !== this._defaultPane?.id);\n\n if (this._defaultPane) {\n panes.unshift(this._defaultPane);\n }\n\n return panes;\n }\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private readonly _parentSplitterPaneContainer = inject(SplitterPaneContainerComponent, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n constructor(\n private readonly _cdr: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _splitter: SplitterComponent,\n private readonly _viewportRuler: ViewportRuler\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._isRootContainer) {\n this._setDefaultPane();\n this._updatePages();\n\n this._panes.forEach((pane) => {\n this._subscription$.add(pane.toggleOnCanvas.subscribe(() => this._updatePages()));\n });\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPanes();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._directPaneSubscription$.unsubscribe();\n this._subscription$.unsubscribe();\n }\n\n /** @hidden */\n _getPaneStyles(pane: SplitterSplitPaneComponent): { [klass: string]: string } {\n const style = {\n 'min-width': PANE_AUTO_SIZE,\n 'max-width': PANE_NONE_SIZE,\n 'min-height': PANE_AUTO_SIZE,\n 'max-height': PANE_NONE_SIZE\n };\n\n if (this._isVertical && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-width'] = pane._actualSize;\n style['max-width'] = pane._actualSize;\n }\n\n if (this._isHorizontal && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-height'] = pane._actualSize;\n style['max-height'] = pane._actualSize;\n }\n\n return style;\n }\n\n /** @hidden */\n _startResize(): void {\n this._paneSizes = [];\n this._initialPaneSizes = [];\n\n this._panesInRightOrderForResize.forEach((pane) => {\n const paneSize = this._getPaneElementSizePx(pane.id);\n\n this._paneSizes.push(paneSize);\n this._initialPaneSizes.push(paneSize);\n });\n }\n\n /** @hidden */\n _endResize(): void {\n const changedPaneSizes: SplitterPaneResizeEvent[] = [];\n\n this._panesInRightOrderForResize.forEach((pane, index) => {\n if (this._paneSizes[index] !== this._initialPaneSizes[index]) {\n changedPaneSizes.push({\n paneId: pane.id,\n oldSize: this._initialPaneSizes[index] + 'px',\n newSize: this._paneSizes[index] + 'px'\n });\n }\n });\n\n this.resize.emit(changedPaneSizes);\n\n this._resizePanesToFitInContainer(true);\n }\n\n /** @hidden */\n _onResize(paneId: string, diff: number): void {\n if (diff === 0) {\n return;\n }\n\n const isRtl = this._rtlService?.rtl() ?? false;\n diff *= isRtl && this.orientation === SplitterPaneContainerOrientation.vertical ? -1 : 1;\n\n const resizedPaneIndex =\n this._panesInRightOrderForResize.findIndex((pane) => pane.id === paneId) + (diff < 0 ? 1 : 0);\n const resizedPane = this._panesInRightOrderForResize[resizedPaneIndex];\n\n let siblingPaneIndex = resizedPaneIndex;\n let siblingPane: SplitterSplitPaneComponent;\n let siblingPaneSize: number;\n\n do {\n siblingPaneIndex += diff < 0 ? -1 : 1;\n siblingPane = this._panesInRightOrderForResize[siblingPaneIndex];\n siblingPaneSize = this._paneSizes[siblingPaneIndex];\n\n if (!siblingPane) {\n return;\n }\n } while (!siblingPaneSize);\n\n const resizedPaneNewSize = this._paneSizes[resizedPaneIndex] + diff * (diff < 0 ? -1 : 1);\n const siblingPaneNewSize = this._paneSizes[siblingPaneIndex] + diff * (diff < 0 ? 1 : -1);\n\n /** Prevent from setting negative size */\n if (resizedPaneNewSize < 0 || siblingPaneNewSize < 0) {\n return;\n }\n\n this._paneSizes[resizedPaneIndex] = resizedPaneNewSize;\n this._paneSizes[siblingPaneIndex] = siblingPaneNewSize;\n\n resizedPane.size = this._paneSizes[resizedPaneIndex] + 'px';\n siblingPane.size = this._paneSizes[siblingPaneIndex] + 'px';\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _onPageChange(page: string = ROOT_PAGE): void {\n this._currentPage = page;\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n protected _SplitterSplitPaneComponent = (p: unknown) => p as SplitterSplitPaneComponent[];\n\n /** @hidden */\n private _updatePages(): void {\n this._pages = [];\n\n const offCanvasDemandPages = this._panes\n .filter((pane) => !pane.isOnCanvas && pane.demandPane)\n .map((pane) => pane.id);\n let newPage = ROOT_PAGE;\n\n if (offCanvasDemandPages.length) {\n this._pages = offCanvasDemandPages;\n newPage = offCanvasDemandPages[0];\n\n if (this._panesOnCanvas.length > 1) {\n this._pages.unshift(ROOT_PAGE);\n newPage = ROOT_PAGE;\n }\n\n if (this._panesOnCanvas.length === 1) {\n this._pages.unshift(this._panesOnCanvas[0].id);\n newPage = this._panesOnCanvas[0].id;\n }\n }\n\n const currentPageExist = this._pages.includes(this._currentPage);\n\n if (!currentPageExist) {\n /** Detaching basically works without the code but it's the edge-case */\n const isShouldDetachDefaultPane = this._currentPage === this._defaultPane?.id && newPage === ROOT_PAGE;\n\n if (isShouldDetachDefaultPane && this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n\n this._onPageChange(newPage);\n return;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _setPanes(): void {\n this._resizePanesToFitInContainer(true);\n\n const setDirectPanesSubscription = (): void => {\n this._directPaneSubscription$.unsubscribe();\n this._directPaneSubscription$ = new Subscription();\n\n this._directPanes.forEach((pane) => {\n this._directPaneSubscription$.add(\n pane.toggleOnCanvas.subscribe(() => this._resizePanesToFitInContainer())\n );\n });\n };\n\n let prevDirectPanes = [...this._directPanes];\n const areDirectPanesSame = (panes: QueryList<SplitterSplitPaneComponent>): boolean => {\n if (panes.length !== prevDirectPanes.length) {\n return false;\n }\n\n return prevDirectPanes.every((prevPane) => !!panes.find((pane) => pane.id === prevPane.id));\n };\n\n setDirectPanesSubscription();\n\n this._subscription$.add(\n this._panes.changes.pipe(filter((panes) => !areDirectPanesSame(panes))).subscribe((panesList) => {\n prevDirectPanes = panesList.toArray();\n\n setDirectPanesSubscription();\n\n this._resizePanesToFitInContainer(true);\n })\n );\n\n this._panes.forEach((pane) => {\n this._subscription$.add(\n pane.sizeChange.subscribe(() => {\n this._resizePanesToFitInContainer(true);\n })\n );\n });\n\n this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));\n }\n\n /** @hidden */\n private _setDefaultPane(): void {\n const setDefaultPane = (): void => {\n if (this._splitter.defaultPaneId) {\n this._defaultPane =\n this._panes.find((pane) => pane.id === this._splitter.defaultPaneId) ?? this._directPanes[0];\n }\n\n /** Detaching basically works without the code but it's the edge-case */\n if (this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n };\n\n setDefaultPane();\n\n this._subscription$.add(\n this._splitter._defaultPaneId$.subscribe(() => {\n this._cdr.detectChanges();\n\n setDefaultPane();\n\n this._resizePanesToFitInContainer(true);\n this._updatePages();\n })\n );\n }\n\n /** @hidden */\n private _resizePanesToFitInContainer(setInitialSize = false): void {\n if (setInitialSize) {\n this._cdr.detectChanges();\n }\n\n const containerSizePx = this._isHorizontal\n ? this._elementRef.nativeElement.offsetHeight\n : this._elementRef.nativeElement.offsetWidth;\n let availableSpacePx = containerSizePx - RESIZER_SIZE_PX * (this._directPanes.length - 1);\n\n this._directPanes.forEach((pane, index) => {\n if (!availableSpacePx) {\n pane._actualSize = '0px';\n return;\n }\n\n if (setInitialSize) {\n this._wantedPanesSizes[index] = this._getPaneElementSizePx(pane.id);\n }\n\n const paneSize = this._wantedPanesSizes[index];\n\n if (availableSpacePx - this._wantedPanesSizes[index] < 0) {\n pane._actualSize = availableSpacePx + 'px';\n availableSpacePx = 0;\n return;\n }\n\n pane._actualSize = pane.size === PANE_AUTO_SIZE ? PANE_AUTO_SIZE : paneSize + 'px';\n availableSpacePx -= paneSize;\n });\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _getPaneElementSizePx(paneId: string): number {\n const paneElement = this._getPaneElement(paneId);\n\n if (!paneElement) {\n return 0;\n }\n\n return this._isHorizontal ? paneElement.offsetHeight : paneElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPaneElement(paneId: string): HTMLElement {\n return this._elementRef.nativeElement.querySelector(`#${paneId}`);\n }\n}\n","@if (_isRootContainer) {\n @if (_defaultPane && _defaultPane.isOnCanvas && _activePanes.length > 1) {\n <ng-template\n [ngTemplateOutlet]=\"panesTemplate\"\n [ngTemplateOutletContext]=\"{ panes: [_defaultPane], showResizer: true }\"\n ></ng-template>\n }\n <div class=\"fd-splitter__split-pane\" [style.overflow]=\"'visible'\">\n <div class=\"fd-splitter__pane-container fd-splitter__pane-container--vertical\">\n <ng-template\n [ngTemplateOutlet]=\"panesTemplate\"\n [ngTemplateOutletContext]=\"{\n panes: _activePanes | noDefaultPane: _defaultPane?.isOnCanvas && _activePanes.length > 1\n }\"\n ></ng-template>\n </div>\n @if (_pages.length) {\n <fdb-splitter-pagination\n [pages]=\"_pages\"\n [currentPage]=\"_currentPage\"\n (onPageChange)=\"_onPageChange($event)\"\n ></fdb-splitter-pagination>\n }\n </div>\n} @else {\n <ng-template [ngTemplateOutlet]=\"panesTemplate\" [ngTemplateOutletContext]=\"{ panes: _panesOnCanvas }\"></ng-template>\n}\n<ng-template #panesTemplate let-panes=\"panes\" let-showResizer=\"showResizer\">\n @for (pane of _SplitterSplitPaneComponent(panes); track pane.id; let last = $last) {\n <section\n [id]=\"pane.id\"\n class=\"fd-splitter__split-pane\"\n [class.fd-splitter__split-pane--solid]=\"paneType === 'solid'\"\n [class.fd-splitter__split-pane--translucent]=\"paneType === 'translucent'\"\n [style]=\"_getPaneStyles(pane)\"\n >\n <ng-template [cdkPortalOutlet]=\"pane._content\"></ng-template>\n </section>\n @if (!last || showResizer) {\n <fdb-splitter-resizer\n [orientation]=\"orientation\"\n (startResize)=\"_startResize()\"\n (endResize)=\"_endResize()\"\n (resize)=\"_onResize(pane.id, $event)\"\n [class.fd-splitter__resizer--translucent]=\"resizerType === 'translucent'\"\n [class.fd-splitter__resizer--solid]=\"resizerType === 'solid'\"\n ></fdb-splitter-resizer>\n }\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SplitterPaginationComponent } from './splitter-pagination/splitter-pagination.component';\nimport { NoDefaultPanePipe } from './splitter-pane-container/no-default-pane.pipe';\nimport { SplitterPaneContainerComponent } from './splitter-pane-container/splitter-pane-container.component';\nimport { SplitterResizerComponent } from './splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from './splitter.component';\n\nconst components = [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n];\n\n/**\n * @deprecated\n * Use individual component imports.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SplitterComponent","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-btp-splitter.mjs","sources":["../../../../libs/btp/splitter/constants.ts","../../../../libs/btp/splitter/splitter-split-pane/splitter-split-pane.component.ts","../../../../libs/btp/splitter/splitter-split-pane/splitter-split-pane.component.html","../../../../libs/btp/splitter/splitter.component.ts","../../../../libs/btp/splitter/splitter-pagination/splitter-pagination.component.ts","../../../../libs/btp/splitter/splitter-pagination/splitter-pagination.component.html","../../../../libs/btp/splitter/splitter-pane-container/splitter-pane-container.token.ts","../../../../libs/btp/splitter/splitter-pane-container/no-default-pane.pipe.ts","../../../../libs/btp/splitter/splitter-pane-container/splitter-pane-orientation.enum.ts","../../../../libs/btp/splitter/splitter-resizer/splitter-resizer.component.ts","../../../../libs/btp/splitter/splitter-resizer/splitter-resizer.component.html","../../../../libs/btp/splitter/splitter-pane-container/splitter-pane-container.component.ts","../../../../libs/btp/splitter/splitter-pane-container/splitter-pane-container.component.html","../../../../libs/btp/splitter/splitter.module.ts","../../../../libs/btp/splitter/fundamental-ngx-btp-splitter.ts"],"sourcesContent":["export const PANE_AUTO_SIZE = 'auto';\n\nexport const PANE_NONE_SIZE = 'none';\n\nexport const RESIZER_SIZE_PX = 16;\n\nexport const ROOT_PAGE = 'FD_SPLITTER_ROOT_PAGE';\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DOCUMENT,\n DestroyRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PANE_AUTO_SIZE } from '../constants';\n\nlet paneUniqueId = 0;\n\n/** @dynamic */\n@Component({\n selector: 'fdb-splitter-split-pane',\n templateUrl: './splitter-split-pane.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class SplitterSplitPaneComponent implements OnInit, AfterViewInit {\n /** Size (height in vertical orientation, width in horizontal orientation) of the pane. */\n @Input()\n set size(size: string) {\n this._size = size;\n if (this._actualSize !== this._size) {\n this._actualSize = this._size;\n this.sizeChange.emit();\n }\n }\n\n get size(): string {\n return this._size;\n }\n\n /** Id of the split pane. Generated if not provided. */\n @Input()\n id = `fd-splitter-split-pane-${paneUniqueId++}`;\n\n /** Required browser's window width in pixels when the panel will be shown. */\n @Input()\n requiredParentWidth: number;\n\n /** Whether pane is reachable using pagination bar when is off-canvas. */\n @Input()\n demandPane = true;\n\n /** Event emitted when the pane appears on/disappears out of canvas. */\n @Output()\n readonly toggleOnCanvas = new EventEmitter<boolean>();\n\n /** Event emitted when the size is changed via the input property. */\n @Output()\n readonly sizeChange = new EventEmitter<void>();\n\n /** @hidden */\n @ViewChild(TemplateRef, { static: true })\n _templateRef: TemplateRef<any>;\n\n /** @hidden */\n _actualSize = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _size = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _contentPortal: TemplatePortal | null = null;\n\n /** @hidden */\n private _isOnCanvas = true;\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /** Returns if the pane is on canvas. */\n get isOnCanvas(): boolean {\n return this._isOnCanvas;\n }\n\n /** @hidden */\n get _content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /** @hidden */\n private get _window(): Nullable<Window & typeof globalThis> {\n return this._document?.defaultView;\n }\n\n /** @hidden */\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._templateRef, this._viewContainerRef);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processPaneOnCanvas();\n this._listenToResize();\n }\n\n /** Hide pane from the canvas. */\n hideFromCanvas(): void {\n if (!this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = false;\n\n this.toggleOnCanvas.emit(false);\n }\n\n /** Show pane on the canvas. */\n showOnCanvas(): void {\n if (this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = true;\n\n this.toggleOnCanvas.emit(true);\n }\n\n /** @hidden */\n private _listenToResize(): void {\n if (!this._window) {\n return;\n }\n\n this._viewportRuler\n .change(10)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._processPaneOnCanvas());\n }\n\n /** @hidden */\n private _processPaneOnCanvas(): void {\n if (!this._window) {\n return;\n }\n\n if (this.requiredParentWidth > this._window.innerWidth && this.isOnCanvas) {\n this.hideFromCanvas();\n }\n\n if (this.requiredParentWidth < this._window.innerWidth && !this.isOnCanvas) {\n this.showOnCanvas();\n }\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\n\n@Component({\n selector: 'fdb-splitter',\n template: `<ng-content></ng-content>`,\n styleUrl: './splitter.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'fd-splitter' },\n standalone: true\n})\nexport class SplitterComponent {\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** Id of the main pane. */\n @Input()\n set defaultPaneId(value: string) {\n this._defaultPaneId = value;\n\n this._defaultPaneId$.next(this._defaultPaneId);\n }\n\n get defaultPaneId(): string {\n return this._defaultPaneId;\n }\n\n /** @hidden */\n _defaultPaneId$ = new Subject<string>();\n\n /** @hidden */\n private _defaultPaneId: string;\n\n /** Check whether certain pane is on canvas. */\n isPaneOnCanvas(paneId: string): boolean {\n if (!this._panes.length) {\n return false;\n }\n\n const paneToCheck = this._panes.find((pane) => pane.id === paneId);\n\n return !!paneToCheck?.isOnCanvas;\n }\n\n /** Hide certain pane from the canvas. */\n hidePaneFromCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToRemove = this._panes.find((pane) => pane.id === paneId);\n\n paneToRemove?.hideFromCanvas();\n }\n\n /** Show certain pane from the canvas. */\n showPaneOnCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToShow = this._panes.find((pane) => pane.id === paneId);\n\n paneToShow?.showOnCanvas();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { SplitterComponent } from '../splitter.component';\n\n@Component({\n selector: 'fdb-splitter-pagination',\n templateUrl: './splitter-pagination.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pagination',\n '[attr.role]': '\"radiogroup\"'\n },\n imports: [ButtonComponent, FdTranslatePipe]\n})\nexport class SplitterPaginationComponent {\n /** Array of pages ids. */\n @Input()\n pages: string[] = [];\n\n /** Current page id. */\n @Input()\n currentPage: string;\n\n /** Event emitted on page change. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onPageChange = new EventEmitter<string>();\n\n /** @Hidden */\n constructor(private readonly _splitter: SplitterComponent) {}\n\n /** @hidden */\n _changePage(page: string): void {\n if (page === this.currentPage) {\n return;\n }\n\n this.currentPage = page;\n this.onPageChange.emit(this.currentPage);\n }\n}\n","@for (page of pages; track page) {\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-splitter__pagination-item\"\n [class.fd-splitter__pagination-item--active]=\"page === currentPage\"\n role=\"radio\"\n [attr.aria-label]=\"('coreSplitter.paginationItemAriaLabel' | fdTranslate)()\"\n [attr.aria-checked]=\"page === currentPage\"\n (click)=\"_changePage(page)\"\n (keydown.enter)=\"_changePage(page)\"\n >\n <span class=\"fd-splitter__pagination-item-dot\"></span>\n </button>\n}\n","import { InjectionToken } from '@angular/core';\nimport { SplitterPaneContainer } from './splitter-pane.container';\n\nexport const FD_SPLITTER_PANE_CONTAINER = new InjectionToken<SplitterPaneContainer>('SplitterPaneContainer');\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { FD_SPLITTER_PANE_CONTAINER } from './splitter-pane-container.token';\nimport { SplitterPaneContainer } from './splitter-pane.container';\n\n@Pipe({\n name: 'noDefaultPane',\n standalone: true\n})\nexport class NoDefaultPanePipe implements PipeTransform {\n private readonly _splitterPaneContainer: SplitterPaneContainer = inject(FD_SPLITTER_PANE_CONTAINER);\n\n /** @hidden */\n transform(value: SplitterSplitPaneComponent[], excludingCondition = true): SplitterSplitPaneComponent[] {\n if (!excludingCondition) {\n return value;\n }\n\n return value.filter((pane) => pane.id !== this._splitterPaneContainer._defaultPane?.id);\n }\n}\n","export enum SplitterPaneContainerOrientation {\n vertical = 'vertical',\n horizontal = 'horizontal'\n}\n\nexport type SplitterPaneContainerOrientationType =\n | keyof typeof SplitterPaneContainerOrientation\n | SplitterPaneContainerOrientation;\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DOCUMENT,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject, fromEvent, throttleTime } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport { NestedButtonDirective } from '@fundamental-ngx/btp/button';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from '../splitter-pane-container/splitter-pane-orientation.enum';\n\n/** @dynamic */\n@Component({\n selector: 'fdb-splitter-resizer',\n templateUrl: './splitter-resizer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__resizer',\n '[class.is-active]': '_start != null || _isInFocus',\n '[tabindex]': '0'\n },\n imports: [ButtonComponent, IconComponent, NestedButtonDirective]\n})\nexport class SplitterResizerComponent implements OnDestroy {\n /** Orientation of the splitter's host pane container. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after resizing has started. */\n @Output()\n startResize = new EventEmitter<void>();\n\n /** Event emitted after resizing has ended. */\n @Output()\n endResize = new EventEmitter<void>();\n\n /** Event emitted while resizing. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n resize = new EventEmitter<number>();\n\n /** @hidden */\n _start: number | null = null;\n\n /** @hidden */\n _isInFocus = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n get _role(): string {\n return 'separator';\n }\n\n /** @hidden */\n @HostBinding('attr.aria-orientation')\n get _ariaOrientation(): string {\n return this.orientation;\n }\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n private _prevDiff = 0;\n\n /** @hidden */\n private _pointerMoveListener = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<Element>,\n private readonly _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private readonly _document: Document\n ) {}\n\n /** @hidden */\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent): void {\n event.preventDefault();\n\n this._start = this._isHorizontal ? event.clientY : event.clientX;\n\n this.startResize.emit();\n\n this._listenToPointerMove();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n let diff: number | undefined;\n\n if (this._isHorizontal) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().left;\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (this._isVertical) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().top;\n\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (diff !== undefined) {\n this.startResize.emit();\n this._emitResize(diff);\n this.endResize.emit();\n }\n\n this._unsubscribe(false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n this._isInFocus = true;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n @HostListener('blur')\n _onBlur(): void {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe();\n }\n\n /** @hidden */\n private _listenToPointerMove(): void {\n this._pointerMoveListener = new Subject<void>();\n\n if (!this._document) {\n return;\n }\n\n fromEvent<MouseEvent>(this._document, 'mousemove')\n .pipe(throttleTime(10), takeUntil(this._pointerMoveListener))\n .subscribe((event) => {\n const newPosition = this._isHorizontal ? event.clientY : event.clientX;\n\n this._emitResize(newPosition);\n this._cdr.markForCheck();\n });\n\n fromEvent(this._document, 'mouseup')\n .pipe(take(1), takeUntil(this._pointerMoveListener))\n .subscribe(() => {\n this.endResize.emit();\n this._unsubscribe();\n this._cdr.markForCheck();\n });\n }\n\n /** @hidden */\n private _emitResize(newPosition: number): void {\n const diff = newPosition - (this._start ?? newPosition);\n\n this.resize.emit(diff - this._prevDiff);\n\n this._prevDiff = diff;\n }\n\n /** @hidden */\n private _unsubscribe(removeFocus = true): void {\n this._start = null;\n this._prevDiff = 0;\n\n this._pointerMoveListener?.next();\n this._pointerMoveListener?.complete();\n\n if (removeFocus) {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n }\n}\n","<button fd-button fdbNestedButton tabindex=\"-1\" class=\"fd-splitter__resizer-grip\">\n <fd-icon\n class=\"fd-splitter__resizer-grip-icon\"\n [glyph]=\"(_isVertical && 'vertical-grip') || (_isHorizontal && 'horizontal-grip')\"\n ></fd-icon>\n</button>\n\n<div class=\"fd-splitter__resizer-decoration-before\"></div>\n<div class=\"fd-splitter__resizer-decoration-after\"></div>\n","import { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { Nullable, RtlService } from '@fundamental-ngx/cdk/utils';\n\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { PANE_AUTO_SIZE, PANE_NONE_SIZE, RESIZER_SIZE_PX, ROOT_PAGE } from '../constants';\nimport { SplitterPaneResizeEvent } from '../interfaces/splitter-pane-resize-event.interface';\nimport { SplitterPaginationComponent } from '../splitter-pagination/splitter-pagination.component';\nimport { SplitterResizerComponent } from '../splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from '../splitter.component';\nimport { NoDefaultPanePipe } from './no-default-pane.pipe';\nimport { FD_SPLITTER_PANE_CONTAINER } from './splitter-pane-container.token';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from './splitter-pane-orientation.enum';\nimport { SplitterPaneContainer } from './splitter-pane.container';\n\n/** Splitter pane available types */\nexport type PaneType = 'translucent' | 'solid';\n\n/** Splitter pane deprecated types */\nexport type DeprecatedPaneType = 'default' | 'transparent';\n\n/** Splitter pane type input */\nexport type PaneTypeInput = PaneType | DeprecatedPaneType;\n\n/**\n * Transforms pane type input to pane type\n * and logs deprecation warning if needed\n * @param paneType\n */\nexport function transformPaneTypeInput(paneType: PaneTypeInput): Nullable<PaneType> {\n if (paneType === 'default' || paneType === 'transparent') {\n console.warn(\n 'Pane type \"default\" and \"transparent\" are deprecated. Use \"null\" or do not set anything at all instead if you need to have transparent pane type.'\n );\n return null;\n }\n return paneType;\n}\n\n@Component({\n selector: 'fdb-splitter-pane-container',\n templateUrl: './splitter-pane-container.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pane-container',\n '[class.fd-splitter__pane-container--horizontal]': '!_isRootContainer && _isHorizontal',\n '[class.fd-splitter__pane-container--vertical]': '_isRootContainer || _isVertical'\n },\n providers: [\n {\n provide: FD_SPLITTER_PANE_CONTAINER,\n useExisting: SplitterPaneContainerComponent\n }\n ],\n imports: [NgTemplateOutlet, SplitterPaginationComponent, PortalModule, SplitterResizerComponent, NoDefaultPanePipe]\n})\nexport class SplitterPaneContainerComponent\n implements SplitterPaneContainer, AfterContentInit, AfterViewInit, OnDestroy\n{\n /** Pane type - vertical (default) or horizontal. */\n @Input() orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /**\n * Style of the resizer.\n */\n @Input({ transform: transformPaneTypeInput }) resizerType: Nullable<PaneTypeInput> = null;\n\n /**\n * Style of the pane\n */\n @Input({ transform: transformPaneTypeInput }) paneType: Nullable<PaneTypeInput> = null;\n\n /** Event emitted after container's panes has resized. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly resize = new EventEmitter<SplitterPaneResizeEvent[]>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true }) _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent) _directPanes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _defaultPane: Nullable<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n _currentPage: string;\n\n /** @hidden */\n _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _paneSizes: number[] = [];\n\n /** @hidden */\n private _wantedPanesSizes: number[] = [];\n\n /** @hidden */\n private _initialPaneSizes: number[] = [];\n\n /** @hidden */\n private _directPaneSubscription$ = new Subscription();\n\n /** @hidden */\n private _subscription$ = new Subscription();\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n get _isRootContainer(): boolean {\n return !this._parentSplitterPaneContainer;\n }\n\n /** @hidden */\n get _panesOnCanvas(): SplitterSplitPaneComponent[] {\n return this._directPanes.filter((pane) => pane.isOnCanvas);\n }\n\n /** @hidden */\n get _activePanes(): SplitterSplitPaneComponent[] {\n if (this._currentPage === ROOT_PAGE) {\n return this._panesOnCanvas;\n }\n\n return this._panes.filter((pane) => pane.id === this._currentPage);\n }\n\n /** @hidden */\n private get _panesInRightOrderForResize(): SplitterSplitPaneComponent[] {\n const panes = this._directPanes.filter((pane) => pane.id !== this._defaultPane?.id);\n\n if (this._defaultPane) {\n panes.unshift(this._defaultPane);\n }\n\n return panes;\n }\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private readonly _parentSplitterPaneContainer = inject(SplitterPaneContainerComponent, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n constructor(\n private readonly _cdr: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _splitter: SplitterComponent,\n private readonly _viewportRuler: ViewportRuler\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._isRootContainer) {\n this._setDefaultPane();\n this._updatePages();\n\n this._panes.forEach((pane) => {\n this._subscription$.add(pane.toggleOnCanvas.subscribe(() => this._updatePages()));\n });\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPanes();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._directPaneSubscription$.unsubscribe();\n this._subscription$.unsubscribe();\n }\n\n /** @hidden */\n _getPaneStyles(pane: SplitterSplitPaneComponent): { [klass: string]: string } {\n const style = {\n 'min-width': PANE_AUTO_SIZE,\n 'max-width': PANE_NONE_SIZE,\n 'min-height': PANE_AUTO_SIZE,\n 'max-height': PANE_NONE_SIZE\n };\n\n if (this._isVertical && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-width'] = pane._actualSize;\n style['max-width'] = pane._actualSize;\n }\n\n if (this._isHorizontal && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-height'] = pane._actualSize;\n style['max-height'] = pane._actualSize;\n }\n\n return style;\n }\n\n /** @hidden */\n _startResize(): void {\n this._paneSizes = [];\n this._initialPaneSizes = [];\n\n this._panesInRightOrderForResize.forEach((pane) => {\n const paneSize = this._getPaneElementSizePx(pane.id);\n\n this._paneSizes.push(paneSize);\n this._initialPaneSizes.push(paneSize);\n });\n }\n\n /** @hidden */\n _endResize(): void {\n const changedPaneSizes: SplitterPaneResizeEvent[] = [];\n\n this._panesInRightOrderForResize.forEach((pane, index) => {\n if (this._paneSizes[index] !== this._initialPaneSizes[index]) {\n changedPaneSizes.push({\n paneId: pane.id,\n oldSize: this._initialPaneSizes[index] + 'px',\n newSize: this._paneSizes[index] + 'px'\n });\n }\n });\n\n this.resize.emit(changedPaneSizes);\n\n this._resizePanesToFitInContainer(true);\n }\n\n /** @hidden */\n _onResize(paneId: string, diff: number): void {\n if (diff === 0) {\n return;\n }\n\n const isRtl = this._rtlService?.rtl() ?? false;\n diff *= isRtl && this.orientation === SplitterPaneContainerOrientation.vertical ? -1 : 1;\n\n const resizedPaneIndex =\n this._panesInRightOrderForResize.findIndex((pane) => pane.id === paneId) + (diff < 0 ? 1 : 0);\n const resizedPane = this._panesInRightOrderForResize[resizedPaneIndex];\n\n let siblingPaneIndex = resizedPaneIndex;\n let siblingPane: SplitterSplitPaneComponent;\n let siblingPaneSize: number;\n\n do {\n siblingPaneIndex += diff < 0 ? -1 : 1;\n siblingPane = this._panesInRightOrderForResize[siblingPaneIndex];\n siblingPaneSize = this._paneSizes[siblingPaneIndex];\n\n if (!siblingPane) {\n return;\n }\n } while (!siblingPaneSize);\n\n const resizedPaneNewSize = this._paneSizes[resizedPaneIndex] + diff * (diff < 0 ? -1 : 1);\n const siblingPaneNewSize = this._paneSizes[siblingPaneIndex] + diff * (diff < 0 ? 1 : -1);\n\n /** Prevent from setting negative size */\n if (resizedPaneNewSize < 0 || siblingPaneNewSize < 0) {\n return;\n }\n\n this._paneSizes[resizedPaneIndex] = resizedPaneNewSize;\n this._paneSizes[siblingPaneIndex] = siblingPaneNewSize;\n\n resizedPane.size = this._paneSizes[resizedPaneIndex] + 'px';\n siblingPane.size = this._paneSizes[siblingPaneIndex] + 'px';\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _onPageChange(page: string = ROOT_PAGE): void {\n this._currentPage = page;\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n protected _SplitterSplitPaneComponent = (p: unknown) => p as SplitterSplitPaneComponent[];\n\n /** @hidden */\n private _updatePages(): void {\n this._pages = [];\n\n const offCanvasDemandPages = this._panes\n .filter((pane) => !pane.isOnCanvas && pane.demandPane)\n .map((pane) => pane.id);\n let newPage = ROOT_PAGE;\n\n if (offCanvasDemandPages.length) {\n this._pages = offCanvasDemandPages;\n newPage = offCanvasDemandPages[0];\n\n if (this._panesOnCanvas.length > 1) {\n this._pages.unshift(ROOT_PAGE);\n newPage = ROOT_PAGE;\n }\n\n if (this._panesOnCanvas.length === 1) {\n this._pages.unshift(this._panesOnCanvas[0].id);\n newPage = this._panesOnCanvas[0].id;\n }\n }\n\n const currentPageExist = this._pages.includes(this._currentPage);\n\n if (!currentPageExist) {\n /** Detaching basically works without the code but it's the edge-case */\n const isShouldDetachDefaultPane = this._currentPage === this._defaultPane?.id && newPage === ROOT_PAGE;\n\n if (isShouldDetachDefaultPane && this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n\n this._onPageChange(newPage);\n return;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _setPanes(): void {\n this._resizePanesToFitInContainer(true);\n\n const setDirectPanesSubscription = (): void => {\n this._directPaneSubscription$.unsubscribe();\n this._directPaneSubscription$ = new Subscription();\n\n this._directPanes.forEach((pane) => {\n this._directPaneSubscription$.add(\n pane.toggleOnCanvas.subscribe(() => this._resizePanesToFitInContainer())\n );\n });\n };\n\n let prevDirectPanes = [...this._directPanes];\n const areDirectPanesSame = (panes: QueryList<SplitterSplitPaneComponent>): boolean => {\n if (panes.length !== prevDirectPanes.length) {\n return false;\n }\n\n return prevDirectPanes.every((prevPane) => !!panes.find((pane) => pane.id === prevPane.id));\n };\n\n setDirectPanesSubscription();\n\n this._subscription$.add(\n this._panes.changes.pipe(filter((panes) => !areDirectPanesSame(panes))).subscribe((panesList) => {\n prevDirectPanes = panesList.toArray();\n\n setDirectPanesSubscription();\n\n this._resizePanesToFitInContainer(true);\n })\n );\n\n this._panes.forEach((pane) => {\n this._subscription$.add(\n pane.sizeChange.subscribe(() => {\n this._resizePanesToFitInContainer(true);\n })\n );\n });\n\n this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));\n }\n\n /** @hidden */\n private _setDefaultPane(): void {\n const setDefaultPane = (): void => {\n if (this._splitter.defaultPaneId) {\n this._defaultPane =\n this._panes.find((pane) => pane.id === this._splitter.defaultPaneId) ?? this._directPanes[0];\n }\n\n /** Detaching basically works without the code but it's the edge-case */\n if (this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n };\n\n setDefaultPane();\n\n this._subscription$.add(\n this._splitter._defaultPaneId$.subscribe(() => {\n this._cdr.detectChanges();\n\n setDefaultPane();\n\n this._resizePanesToFitInContainer(true);\n this._updatePages();\n })\n );\n }\n\n /** @hidden */\n private _resizePanesToFitInContainer(setInitialSize = false): void {\n if (setInitialSize) {\n this._cdr.detectChanges();\n }\n\n const containerSizePx = this._isHorizontal\n ? this._elementRef.nativeElement.offsetHeight\n : this._elementRef.nativeElement.offsetWidth;\n let availableSpacePx = containerSizePx - RESIZER_SIZE_PX * (this._directPanes.length - 1);\n\n this._directPanes.forEach((pane, index) => {\n if (!availableSpacePx) {\n pane._actualSize = '0px';\n return;\n }\n\n if (setInitialSize) {\n this._wantedPanesSizes[index] = this._getPaneElementSizePx(pane.id);\n }\n\n const paneSize = this._wantedPanesSizes[index];\n\n if (availableSpacePx - this._wantedPanesSizes[index] < 0) {\n pane._actualSize = availableSpacePx + 'px';\n availableSpacePx = 0;\n return;\n }\n\n pane._actualSize = pane.size === PANE_AUTO_SIZE ? PANE_AUTO_SIZE : paneSize + 'px';\n availableSpacePx -= paneSize;\n });\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _getPaneElementSizePx(paneId: string): number {\n const paneElement = this._getPaneElement(paneId);\n\n if (!paneElement) {\n return 0;\n }\n\n return this._isHorizontal ? paneElement.offsetHeight : paneElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPaneElement(paneId: string): HTMLElement {\n return this._elementRef.nativeElement.querySelector(`#${paneId}`);\n }\n}\n","@if (_isRootContainer) {\n @if (_defaultPane && _defaultPane.isOnCanvas && _activePanes.length > 1) {\n <ng-template\n [ngTemplateOutlet]=\"panesTemplate\"\n [ngTemplateOutletContext]=\"{ panes: [_defaultPane], showResizer: true }\"\n ></ng-template>\n }\n <div class=\"fd-splitter__split-pane\" [style.overflow]=\"'visible'\">\n <div class=\"fd-splitter__pane-container fd-splitter__pane-container--vertical\">\n <ng-template\n [ngTemplateOutlet]=\"panesTemplate\"\n [ngTemplateOutletContext]=\"{\n panes: _activePanes | noDefaultPane: _defaultPane?.isOnCanvas && _activePanes.length > 1\n }\"\n ></ng-template>\n </div>\n @if (_pages.length) {\n <fdb-splitter-pagination\n [pages]=\"_pages\"\n [currentPage]=\"_currentPage\"\n (onPageChange)=\"_onPageChange($event)\"\n ></fdb-splitter-pagination>\n }\n </div>\n} @else {\n <ng-template [ngTemplateOutlet]=\"panesTemplate\" [ngTemplateOutletContext]=\"{ panes: _panesOnCanvas }\"></ng-template>\n}\n<ng-template #panesTemplate let-panes=\"panes\" let-showResizer=\"showResizer\">\n @for (pane of _SplitterSplitPaneComponent(panes); track pane.id; let last = $last) {\n <section\n [id]=\"pane.id\"\n class=\"fd-splitter__split-pane\"\n [class.fd-splitter__split-pane--solid]=\"paneType === 'solid'\"\n [class.fd-splitter__split-pane--translucent]=\"paneType === 'translucent'\"\n [style]=\"_getPaneStyles(pane)\"\n >\n <ng-template [cdkPortalOutlet]=\"pane._content\"></ng-template>\n </section>\n @if (!last || showResizer) {\n <fdb-splitter-resizer\n [orientation]=\"orientation\"\n (startResize)=\"_startResize()\"\n (endResize)=\"_endResize()\"\n (resize)=\"_onResize(pane.id, $event)\"\n [class.fd-splitter__resizer--translucent]=\"resizerType === 'translucent'\"\n [class.fd-splitter__resizer--solid]=\"resizerType === 'solid'\"\n ></fdb-splitter-resizer>\n }\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SplitterPaginationComponent } from './splitter-pagination/splitter-pagination.component';\nimport { NoDefaultPanePipe } from './splitter-pane-container/no-default-pane.pipe';\nimport { SplitterPaneContainerComponent } from './splitter-pane-container/splitter-pane-container.component';\nimport { SplitterResizerComponent } from './splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from './splitter.component';\n\nconst components = [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n];\n\n/**\n * @deprecated\n * Use individual component imports.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SplitterComponent","i2"],"mappings":"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"}
|
|
@@ -509,7 +509,7 @@ class ToolHeaderComponent extends ToolHeaderComponentClass {
|
|
|
509
509
|
provide: ToolHeaderComponentClass,
|
|
510
510
|
useExisting: ToolHeaderComponent
|
|
511
511
|
}
|
|
512
|
-
], queries: [{ propertyName: "_toolHeaderLogoDirective", first: true, predicate: ToolHeaderLogoDirective, descendants: true }, { propertyName: "_searchField", first: true, predicate: SearchFieldComponent, descendants: true }, { propertyName: "_toolHeaderUser", first: true, predicate: ToolHeaderUserDirective, descendants: true }, { propertyName: "_toolHeaderProductSwitch", first: true, predicate: FD_PRODUCT_SWITCH_COMPONENT, descendants: true }, { propertyName: "_contentActions", predicate: ToolHeaderActionClass }], usesInheritance: true, ngImport: i0, template: "<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n [ariaLabel]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_hiddenActions$(); as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n", styles: [".fd-tool-header{--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Cozy);--fdToolHeader_Padding_Left:1.5rem;--fdToolHeader_Padding_Right:1.25rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--sapShellColor);border:.0625rem solid var(--fdToolHeader_Border_Color);border-radius:var(--sapToolHeader_Border_Radius);-webkit-box-shadow:var(--sapToolHeader_Shadow1);box-shadow:var(--sapToolHeader_Shadow1);-ms-flex-direction:row;flex-direction:row;gap:.75rem;height:auto;min-height:var(--fdToolHeader_Min_Height);padding-block:var(--sapToolHeader_Paddings_Y);padding-inline:var(--fdToolHeader_Padding_Left) var(--fdToolHeader_Padding_Right);width:100%}.fd-tool-header:after,.fd-tool-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.375rem;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-tool-header__group:after,.fd-tool-header__group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group--center,.fd-tool-header__group--menu{-webkit-box-flex:0;-ms-flex:0;flex:0}.fd-tool-header__group--actions{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-tool-header__group--hidden{display:none}.fd-tool-header__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-tool-header__element:after,.fd-tool-header__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__element--hidden{display:none}.fd-tool-header__logo{background-repeat:no-repeat;background-size:contain;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.625rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:auto}.fd-tool-header__logo:after,.fd-tool-header__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__logo.is-focus,.fd-tool-header__logo:focus{border-radius:.25rem;outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:.125rem;z-index:5}.fd-tool-header__separator{background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding-block:0;padding-inline:0;width:.75rem}.fd-tool-header__separator:after,.fd-tool-header__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__product-name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Product_Name_Color);font-family:var(--sapFontFamily);font-family:var(--sapFontBlackFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Product_Name_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.625rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__product-name:after,.fd-tool-header__product-name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__second-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Second_Title_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Second_Title_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:var(--sapContent_LineHeight);margin-block:0;margin-inline:0;margin-top:var(--sapToolHeader_Second_Title_Offset);padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__second-title:after,.fd-tool-header__second-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header--menu{--fdToolHeader_Padding_Left:.75rem}.fd-tool-header[class*=-compact],[class*=-compact] .fd-tool-header:not([class*=-cozy]){--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Compact)}.fd-overflow-layout__items>.fd-overflow-layout__item:not(.fd-overflow-layout__item--last)>.fd-tool-header__element>*{margin-right:.375rem}.fd-tool-header__group--center+.fd-tool-header__group--actions{max-width:calc((100% - 16rem)/2)}.fd-tool-header__element.is-separator+.fd-tool-header__element.is-separator{display:none}.fd-tool-header__navigation-menu{display:flex;flex-direction:column;overflow:visible}.fd-tool-header .fd-button .fd-button__text{display:none}\n/*! Bundled license information:\n\nfundamental-styles/dist/tool-header.css:\n (*!\n * Fundamental Library Styles v0.41.8\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: ToolHeaderGroupDirective, selector: "[fdbToolHeaderGroup]", inputs: ["center", "actions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ToolHeaderElementDirective, selector: "[fdbToolHeaderElement]" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "directive", type: ToolHeaderButtonDirective, selector: "[fd-button][fdbToolHeaderButton]", inputs: ["fdType"] }, { kind: "directive", type: ToolHeaderLogoDirective, selector: "[fdbToolHeaderLogo]" }, { kind: "component", type: NavigationMenuComponent, selector: "fdb-navigation-menu, ul[fdb-navigation-menu]" }, { kind: "directive", type: IndirectFocusableListDirective, selector: "[fdkIndirectFocusableList]", exportAs: ["fdkIndirectFocusableList"] }, { kind: "component", type: NavigationMenuPopoverComponent, selector: "fdb-navigation-menu-popover" }, { kind: "directive", type: NavigationMenuPopoverControlDirective, selector: "[fdbNavigationMenuPopoverControl]" }, { kind: "component", type: OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "renderShowMoreButton", "reverseHiddenItems", "enableKeyboardNavigation", "ariaRole", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount", "hiddenItemsChange"] }, { kind: "directive", type: OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "directive", type: OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: ToolHeaderActionButtonDirective, selector: "[fd-button][fdbToolHeaderActionButton]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
512
|
+
], queries: [{ propertyName: "_toolHeaderLogoDirective", first: true, predicate: ToolHeaderLogoDirective, descendants: true }, { propertyName: "_searchField", first: true, predicate: SearchFieldComponent, descendants: true }, { propertyName: "_toolHeaderUser", first: true, predicate: ToolHeaderUserDirective, descendants: true }, { propertyName: "_toolHeaderProductSwitch", first: true, predicate: FD_PRODUCT_SWITCH_COMPONENT, descendants: true }, { propertyName: "_contentActions", predicate: ToolHeaderActionClass }], usesInheritance: true, ngImport: i0, template: "<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n [ariaLabel]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_hiddenActions$(); as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n", styles: [".fd-tool-header{--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Cozy);--fdToolHeader_Padding_Left:1.5rem;--fdToolHeader_Padding_Right:1.25rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--sapShellColor);border:.0625rem solid var(--fdToolHeader_Border_Color);border-radius:var(--sapToolHeader_Border_Radius);-webkit-box-shadow:var(--sapToolHeader_Shadow1);box-shadow:var(--sapToolHeader_Shadow1);-ms-flex-direction:row;flex-direction:row;gap:.75rem;height:auto;min-height:var(--fdToolHeader_Min_Height);padding-block:var(--sapToolHeader_Paddings_Y);padding-inline:var(--fdToolHeader_Padding_Left) var(--fdToolHeader_Padding_Right);width:100%}.fd-tool-header:after,.fd-tool-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.375rem;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-tool-header__group:after,.fd-tool-header__group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group--center,.fd-tool-header__group--menu{-webkit-box-flex:0;-ms-flex:0;flex:0}.fd-tool-header__group--actions{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-tool-header__group--hidden{display:none}.fd-tool-header__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-tool-header__element:after,.fd-tool-header__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__element--hidden{display:none}.fd-tool-header__logo{background-repeat:no-repeat;background-size:contain;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.625rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:auto}.fd-tool-header__logo:after,.fd-tool-header__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__logo.is-focus,.fd-tool-header__logo:focus{border-radius:.25rem;outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:.125rem;z-index:5}.fd-tool-header__separator{background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding-block:0;padding-inline:0;width:.75rem}.fd-tool-header__separator:after,.fd-tool-header__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__product-name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Product_Name_Color);font-family:var(--sapFontFamily);font-family:var(--sapFontBlackFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Product_Name_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.625rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__product-name:after,.fd-tool-header__product-name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__second-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Second_Title_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Second_Title_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:var(--sapContent_LineHeight);margin-block:0;margin-inline:0;margin-top:var(--sapToolHeader_Second_Title_Offset);padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__second-title:after,.fd-tool-header__second-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header--menu{--fdToolHeader_Padding_Left:.75rem}.fd-tool-header[class*=-compact],[class*=-compact] .fd-tool-header:not([class*=-cozy]){--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Compact)}.fd-overflow-layout__items>.fd-overflow-layout__item:not(.fd-overflow-layout__item--last)>.fd-tool-header__element>*{margin-right:.375rem}.fd-tool-header__group--center+.fd-tool-header__group--actions{max-width:calc((100% - 16rem)/2)}.fd-tool-header__element.is-separator+.fd-tool-header__element.is-separator{display:none}.fd-tool-header__navigation-menu{display:flex;flex-direction:column;overflow:visible}.fd-tool-header .fd-button .fd-button__text{display:none}\n/*! Bundled license information:\n\nfundamental-styles/dist/tool-header.css:\n (*!\n * Fundamental Library Styles v0.41.9\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: ToolHeaderGroupDirective, selector: "[fdbToolHeaderGroup]", inputs: ["center", "actions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ToolHeaderElementDirective, selector: "[fdbToolHeaderElement]" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "directive", type: ToolHeaderButtonDirective, selector: "[fd-button][fdbToolHeaderButton]", inputs: ["fdType"] }, { kind: "directive", type: ToolHeaderLogoDirective, selector: "[fdbToolHeaderLogo]" }, { kind: "component", type: NavigationMenuComponent, selector: "fdb-navigation-menu, ul[fdb-navigation-menu]" }, { kind: "directive", type: IndirectFocusableListDirective, selector: "[fdkIndirectFocusableList]", exportAs: ["fdkIndirectFocusableList"] }, { kind: "component", type: NavigationMenuPopoverComponent, selector: "fdb-navigation-menu-popover" }, { kind: "directive", type: NavigationMenuPopoverControlDirective, selector: "[fdbNavigationMenuPopoverControl]" }, { kind: "component", type: OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "renderShowMoreButton", "reverseHiddenItems", "enableKeyboardNavigation", "ariaRole", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount", "hiddenItemsChange"] }, { kind: "directive", type: OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "directive", type: OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: ToolHeaderActionButtonDirective, selector: "[fd-button][fdbToolHeaderActionButton]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
513
513
|
}
|
|
514
514
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToolHeaderComponent, decorators: [{
|
|
515
515
|
type: Component,
|
|
@@ -544,7 +544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
544
544
|
provide: ToolHeaderComponentClass,
|
|
545
545
|
useExisting: ToolHeaderComponent
|
|
546
546
|
}
|
|
547
|
-
], template: "<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n [ariaLabel]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_hiddenActions$(); as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n", styles: [".fd-tool-header{--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Cozy);--fdToolHeader_Padding_Left:1.5rem;--fdToolHeader_Padding_Right:1.25rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--sapShellColor);border:.0625rem solid var(--fdToolHeader_Border_Color);border-radius:var(--sapToolHeader_Border_Radius);-webkit-box-shadow:var(--sapToolHeader_Shadow1);box-shadow:var(--sapToolHeader_Shadow1);-ms-flex-direction:row;flex-direction:row;gap:.75rem;height:auto;min-height:var(--fdToolHeader_Min_Height);padding-block:var(--sapToolHeader_Paddings_Y);padding-inline:var(--fdToolHeader_Padding_Left) var(--fdToolHeader_Padding_Right);width:100%}.fd-tool-header:after,.fd-tool-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.375rem;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-tool-header__group:after,.fd-tool-header__group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group--center,.fd-tool-header__group--menu{-webkit-box-flex:0;-ms-flex:0;flex:0}.fd-tool-header__group--actions{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-tool-header__group--hidden{display:none}.fd-tool-header__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-tool-header__element:after,.fd-tool-header__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__element--hidden{display:none}.fd-tool-header__logo{background-repeat:no-repeat;background-size:contain;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.625rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:auto}.fd-tool-header__logo:after,.fd-tool-header__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__logo.is-focus,.fd-tool-header__logo:focus{border-radius:.25rem;outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:.125rem;z-index:5}.fd-tool-header__separator{background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding-block:0;padding-inline:0;width:.75rem}.fd-tool-header__separator:after,.fd-tool-header__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__product-name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Product_Name_Color);font-family:var(--sapFontFamily);font-family:var(--sapFontBlackFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Product_Name_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.625rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__product-name:after,.fd-tool-header__product-name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__second-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Second_Title_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Second_Title_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:var(--sapContent_LineHeight);margin-block:0;margin-inline:0;margin-top:var(--sapToolHeader_Second_Title_Offset);padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__second-title:after,.fd-tool-header__second-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header--menu{--fdToolHeader_Padding_Left:.75rem}.fd-tool-header[class*=-compact],[class*=-compact] .fd-tool-header:not([class*=-cozy]){--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Compact)}.fd-overflow-layout__items>.fd-overflow-layout__item:not(.fd-overflow-layout__item--last)>.fd-tool-header__element>*{margin-right:.375rem}.fd-tool-header__group--center+.fd-tool-header__group--actions{max-width:calc((100% - 16rem)/2)}.fd-tool-header__element.is-separator+.fd-tool-header__element.is-separator{display:none}.fd-tool-header__navigation-menu{display:flex;flex-direction:column;overflow:visible}.fd-tool-header .fd-button .fd-button__text{display:none}\n/*! Bundled license information:\n\nfundamental-styles/dist/tool-header.css:\n (*!\n * Fundamental Library Styles v0.41.8\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
|
|
547
|
+
], template: "<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n [ariaLabel]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo@4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_hiddenActions$(); as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n", styles: [".fd-tool-header{--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Cozy);--fdToolHeader_Padding_Left:1.5rem;--fdToolHeader_Padding_Right:1.25rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--sapShellColor);border:.0625rem solid var(--fdToolHeader_Border_Color);border-radius:var(--sapToolHeader_Border_Radius);-webkit-box-shadow:var(--sapToolHeader_Shadow1);box-shadow:var(--sapToolHeader_Shadow1);-ms-flex-direction:row;flex-direction:row;gap:.75rem;height:auto;min-height:var(--fdToolHeader_Min_Height);padding-block:var(--sapToolHeader_Paddings_Y);padding-inline:var(--fdToolHeader_Padding_Left) var(--fdToolHeader_Padding_Right);width:100%}.fd-tool-header:after,.fd-tool-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.375rem;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-tool-header__group:after,.fd-tool-header__group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group--center,.fd-tool-header__group--menu{-webkit-box-flex:0;-ms-flex:0;flex:0}.fd-tool-header__group--actions{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-tool-header__group--hidden{display:none}.fd-tool-header__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-tool-header__element:after,.fd-tool-header__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__element--hidden{display:none}.fd-tool-header__logo{background-repeat:no-repeat;background-size:contain;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.625rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:auto}.fd-tool-header__logo:after,.fd-tool-header__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__logo.is-focus,.fd-tool-header__logo:focus{border-radius:.25rem;outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:.125rem;z-index:5}.fd-tool-header__separator{background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding-block:0;padding-inline:0;width:.75rem}.fd-tool-header__separator:after,.fd-tool-header__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__product-name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Product_Name_Color);font-family:var(--sapFontFamily);font-family:var(--sapFontBlackFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Product_Name_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.625rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__product-name:after,.fd-tool-header__product-name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__second-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Second_Title_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Second_Title_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:var(--sapContent_LineHeight);margin-block:0;margin-inline:0;margin-top:var(--sapToolHeader_Second_Title_Offset);padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__second-title:after,.fd-tool-header__second-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header--menu{--fdToolHeader_Padding_Left:.75rem}.fd-tool-header[class*=-compact],[class*=-compact] .fd-tool-header:not([class*=-cozy]){--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Compact)}.fd-overflow-layout__items>.fd-overflow-layout__item:not(.fd-overflow-layout__item--last)>.fd-tool-header__element>*{margin-right:.375rem}.fd-tool-header__group--center+.fd-tool-header__group--actions{max-width:calc((100% - 16rem)/2)}.fd-tool-header__element.is-separator+.fd-tool-header__element.is-separator{display:none}.fd-tool-header__navigation-menu{display:flex;flex-direction:column;overflow:visible}.fd-tool-header .fd-button .fd-button__text{display:none}\n/*! Bundled license information:\n\nfundamental-styles/dist/tool-header.css:\n (*!\n * Fundamental Library Styles v0.41.9\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
|
|
548
548
|
}], propDecorators: { productName: [{
|
|
549
549
|
type: Input,
|
|
550
550
|
args: [{ required: true }]
|
|
@@ -143,7 +143,7 @@ class ToolLayoutComponent {
|
|
|
143
143
|
this.buildComponentCssClass();
|
|
144
144
|
}
|
|
145
145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToolLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
146
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.5", type: ToolLayoutComponent, isStandalone: true, selector: "[fdbToolLayout]", inputs: { class: "class", mode: "mode", noGaps: ["noGaps", "noGaps", booleanAttribute] }, usesOnChanges: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, styles: [".fd-tool-layout{--fdToolLayout_Gap:.5rem;--fdToolLayout_Padding_Block:.5rem 0;--fdToolLayout_Padding_Inline:.5rem;--fdToolLayout_Content_Container_Border_Radius:.5rem .5rem 0 0;--fdToolLayout_Content_Container_Background:var(--sapBackgroundColor);--fdToolLayout_Content_Container_BoxShadow:var(--sapContent_Shadow0);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;background:var(--fdToolLayout_Background);-ms-flex-direction:column;flex-direction:column;gap:var(--fdToolLayout_Gap);height:100%;padding-block:var(--fdToolLayout_Padding_Block);padding-inline:var(--fdToolLayout_Padding_Inline);width:100%}.fd-tool-layout:after,.fd-tool-layout:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.fd-tool-layout__container:after,.fd-tool-layout__container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__container:not(:first-child){gap:var(--fdToolLayout_Gap)}.fd-tool-layout__header-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:100%}.fd-tool-layout__header-container:after,.fd-tool-layout__header-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__navigation-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-tool-layout__navigation-container:after,.fd-tool-layout__navigation-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__navigation-container--horizontal{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:100%}.fd-tool-layout__navigation-container--horizontal+.fd-tool-layout__content-container{min-width:100%}.fd-tool-layout__content-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-flex:1;background:var(--fdToolLayout_Content_Container_Background);border-radius:var(--fdToolLayout_Content_Container_Border_Radius);-webkit-box-shadow:var(--fdToolLayout_Content_Container_BoxShadow);box-shadow:var(--fdToolLayout_Content_Container_BoxShadow);-ms-flex:1;flex:1;height:100%;overflow:hidden;width:100%}.fd-tool-layout__content-container:after,.fd-tool-layout__content-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__content-container--transparent{--fdToolLayout_Content_Container_Background:transparent;--fdToolLayout_Content_Container_BoxShadow:none}.fd-tool-layout__content-container--list{--fdToolLayout_Content_Container_Background:var(--sapGroup_ContentBackground)}.fd-tool-layout--horizontal-navigation{--fdToolLayout_Gap:0}.fd-tool-layout--horizontal-navigation .fd-tool-layout__container:not(:first-child){--fdToolLayout_Gap:.5rem}.fd-tool-layout--horizontal-navigation.fd-tool-layout--phone .fd-tool-layout__container:not(:first-child){--fdToolLayout_Gap:.25rem}.fd-tool-layout--tablet{--fdToolLayout_Padding_Block:.5rem;--fdToolLayout_Padding_Inline:.5rem;--fdToolLayout_Content_Container_Border_Radius:.5rem}.fd-tool-layout--phone{--fdToolLayout_Gap:.25rem;--fdToolLayout_Padding_Block:.25rem;--fdToolLayout_Padding_Inline:.25rem;--fdToolLayout_Content_Container_Border_Radius:.25rem}.fd-tool-layout--sticky{inset:0;position:absolute}.fd-tool-layout--sticky .fd-tool-layout__container{position:relative}.fd-tool-layout--sticky .fd-tool-layout__container:not(:first-child){-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.fd-tool-layout--sticky .fd-tool-layout__content-container,.fd-tool-layout--sticky .fd-tool-layout__navigation-container{height:100%;overflow:scroll}.fd-tool-layout__header-container{width:100%}.fd-tool-layout__content-container{overflow:hidden}.fd-tool-layout__container{position:relative}.fd-tool-layout.fd-tool-layout--no-gaps{--fdToolLayout_Gap: 0}\n/*! Bundled license information:\n\nfundamental-styles/dist/tool-layout.css:\n (*!\n * Fundamental Library Styles v0.41.
|
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.5", type: ToolLayoutComponent, isStandalone: true, selector: "[fdbToolLayout]", inputs: { class: "class", mode: "mode", noGaps: ["noGaps", "noGaps", booleanAttribute] }, usesOnChanges: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, styles: [".fd-tool-layout{--fdToolLayout_Gap:.5rem;--fdToolLayout_Padding_Block:.5rem 0;--fdToolLayout_Padding_Inline:.5rem;--fdToolLayout_Content_Container_Border_Radius:.5rem .5rem 0 0;--fdToolLayout_Content_Container_Background:var(--sapBackgroundColor);--fdToolLayout_Content_Container_BoxShadow:var(--sapContent_Shadow0);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;background:var(--fdToolLayout_Background);-ms-flex-direction:column;flex-direction:column;gap:var(--fdToolLayout_Gap);height:100%;padding-block:var(--fdToolLayout_Padding_Block);padding-inline:var(--fdToolLayout_Padding_Inline);width:100%}.fd-tool-layout:after,.fd-tool-layout:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.fd-tool-layout__container:after,.fd-tool-layout__container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__container:not(:first-child){gap:var(--fdToolLayout_Gap)}.fd-tool-layout__header-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:100%}.fd-tool-layout__header-container:after,.fd-tool-layout__header-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__navigation-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-tool-layout__navigation-container:after,.fd-tool-layout__navigation-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__navigation-container--horizontal{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:100%}.fd-tool-layout__navigation-container--horizontal+.fd-tool-layout__content-container{min-width:100%}.fd-tool-layout__content-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-flex:1;background:var(--fdToolLayout_Content_Container_Background);border-radius:var(--fdToolLayout_Content_Container_Border_Radius);-webkit-box-shadow:var(--fdToolLayout_Content_Container_BoxShadow);box-shadow:var(--fdToolLayout_Content_Container_BoxShadow);-ms-flex:1;flex:1;height:100%;overflow:hidden;width:100%}.fd-tool-layout__content-container:after,.fd-tool-layout__content-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__content-container--transparent{--fdToolLayout_Content_Container_Background:transparent;--fdToolLayout_Content_Container_BoxShadow:none}.fd-tool-layout__content-container--list{--fdToolLayout_Content_Container_Background:var(--sapGroup_ContentBackground)}.fd-tool-layout--horizontal-navigation{--fdToolLayout_Gap:0}.fd-tool-layout--horizontal-navigation .fd-tool-layout__container:not(:first-child){--fdToolLayout_Gap:.5rem}.fd-tool-layout--horizontal-navigation.fd-tool-layout--phone .fd-tool-layout__container:not(:first-child){--fdToolLayout_Gap:.25rem}.fd-tool-layout--tablet{--fdToolLayout_Padding_Block:.5rem;--fdToolLayout_Padding_Inline:.5rem;--fdToolLayout_Content_Container_Border_Radius:.5rem}.fd-tool-layout--phone{--fdToolLayout_Gap:.25rem;--fdToolLayout_Padding_Block:.25rem;--fdToolLayout_Padding_Inline:.25rem;--fdToolLayout_Content_Container_Border_Radius:.25rem}.fd-tool-layout--sticky{inset:0;position:absolute}.fd-tool-layout--sticky .fd-tool-layout__container{position:relative}.fd-tool-layout--sticky .fd-tool-layout__container:not(:first-child){-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.fd-tool-layout--sticky .fd-tool-layout__content-container,.fd-tool-layout--sticky .fd-tool-layout__navigation-container{height:100%;overflow:scroll}.fd-tool-layout__header-container{width:100%}.fd-tool-layout__content-container{overflow:hidden}.fd-tool-layout__container{position:relative}.fd-tool-layout.fd-tool-layout--no-gaps{--fdToolLayout_Gap: 0}\n/*! Bundled license information:\n\nfundamental-styles/dist/tool-layout.css:\n (*!\n * Fundamental Library Styles v0.41.9\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
147
147
|
}
|
|
148
148
|
__decorate([
|
|
149
149
|
applyCssClass,
|
|
@@ -153,7 +153,7 @@ __decorate([
|
|
|
153
153
|
], ToolLayoutComponent.prototype, "buildComponentCssClass", null);
|
|
154
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToolLayoutComponent, decorators: [{
|
|
155
155
|
type: Component,
|
|
156
|
-
args: [{ selector: '[fdbToolLayout]', template: ` <ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [".fd-tool-layout{--fdToolLayout_Gap:.5rem;--fdToolLayout_Padding_Block:.5rem 0;--fdToolLayout_Padding_Inline:.5rem;--fdToolLayout_Content_Container_Border_Radius:.5rem .5rem 0 0;--fdToolLayout_Content_Container_Background:var(--sapBackgroundColor);--fdToolLayout_Content_Container_BoxShadow:var(--sapContent_Shadow0);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;background:var(--fdToolLayout_Background);-ms-flex-direction:column;flex-direction:column;gap:var(--fdToolLayout_Gap);height:100%;padding-block:var(--fdToolLayout_Padding_Block);padding-inline:var(--fdToolLayout_Padding_Inline);width:100%}.fd-tool-layout:after,.fd-tool-layout:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.fd-tool-layout__container:after,.fd-tool-layout__container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__container:not(:first-child){gap:var(--fdToolLayout_Gap)}.fd-tool-layout__header-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:100%}.fd-tool-layout__header-container:after,.fd-tool-layout__header-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__navigation-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-tool-layout__navigation-container:after,.fd-tool-layout__navigation-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__navigation-container--horizontal{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:100%}.fd-tool-layout__navigation-container--horizontal+.fd-tool-layout__content-container{min-width:100%}.fd-tool-layout__content-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-flex:1;background:var(--fdToolLayout_Content_Container_Background);border-radius:var(--fdToolLayout_Content_Container_Border_Radius);-webkit-box-shadow:var(--fdToolLayout_Content_Container_BoxShadow);box-shadow:var(--fdToolLayout_Content_Container_BoxShadow);-ms-flex:1;flex:1;height:100%;overflow:hidden;width:100%}.fd-tool-layout__content-container:after,.fd-tool-layout__content-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__content-container--transparent{--fdToolLayout_Content_Container_Background:transparent;--fdToolLayout_Content_Container_BoxShadow:none}.fd-tool-layout__content-container--list{--fdToolLayout_Content_Container_Background:var(--sapGroup_ContentBackground)}.fd-tool-layout--horizontal-navigation{--fdToolLayout_Gap:0}.fd-tool-layout--horizontal-navigation .fd-tool-layout__container:not(:first-child){--fdToolLayout_Gap:.5rem}.fd-tool-layout--horizontal-navigation.fd-tool-layout--phone .fd-tool-layout__container:not(:first-child){--fdToolLayout_Gap:.25rem}.fd-tool-layout--tablet{--fdToolLayout_Padding_Block:.5rem;--fdToolLayout_Padding_Inline:.5rem;--fdToolLayout_Content_Container_Border_Radius:.5rem}.fd-tool-layout--phone{--fdToolLayout_Gap:.25rem;--fdToolLayout_Padding_Block:.25rem;--fdToolLayout_Padding_Inline:.25rem;--fdToolLayout_Content_Container_Border_Radius:.25rem}.fd-tool-layout--sticky{inset:0;position:absolute}.fd-tool-layout--sticky .fd-tool-layout__container{position:relative}.fd-tool-layout--sticky .fd-tool-layout__container:not(:first-child){-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.fd-tool-layout--sticky .fd-tool-layout__content-container,.fd-tool-layout--sticky .fd-tool-layout__navigation-container{height:100%;overflow:scroll}.fd-tool-layout__header-container{width:100%}.fd-tool-layout__content-container{overflow:hidden}.fd-tool-layout__container{position:relative}.fd-tool-layout.fd-tool-layout--no-gaps{--fdToolLayout_Gap: 0}\n/*! Bundled license information:\n\nfundamental-styles/dist/tool-layout.css:\n (*!\n * Fundamental Library Styles v0.41.
|
|
156
|
+
args: [{ selector: '[fdbToolLayout]', template: ` <ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [".fd-tool-layout{--fdToolLayout_Gap:.5rem;--fdToolLayout_Padding_Block:.5rem 0;--fdToolLayout_Padding_Inline:.5rem;--fdToolLayout_Content_Container_Border_Radius:.5rem .5rem 0 0;--fdToolLayout_Content_Container_Background:var(--sapBackgroundColor);--fdToolLayout_Content_Container_BoxShadow:var(--sapContent_Shadow0);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;background:var(--fdToolLayout_Background);-ms-flex-direction:column;flex-direction:column;gap:var(--fdToolLayout_Gap);height:100%;padding-block:var(--fdToolLayout_Padding_Block);padding-inline:var(--fdToolLayout_Padding_Inline);width:100%}.fd-tool-layout:after,.fd-tool-layout:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.fd-tool-layout__container:after,.fd-tool-layout__container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__container:not(:first-child){gap:var(--fdToolLayout_Gap)}.fd-tool-layout__header-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:100%}.fd-tool-layout__header-container:after,.fd-tool-layout__header-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__navigation-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-tool-layout__navigation-container:after,.fd-tool-layout__navigation-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__navigation-container--horizontal{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:100%}.fd-tool-layout__navigation-container--horizontal+.fd-tool-layout__content-container{min-width:100%}.fd-tool-layout__content-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-flex:1;background:var(--fdToolLayout_Content_Container_Background);border-radius:var(--fdToolLayout_Content_Container_Border_Radius);-webkit-box-shadow:var(--fdToolLayout_Content_Container_BoxShadow);box-shadow:var(--fdToolLayout_Content_Container_BoxShadow);-ms-flex:1;flex:1;height:100%;overflow:hidden;width:100%}.fd-tool-layout__content-container:after,.fd-tool-layout__content-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-layout__content-container--transparent{--fdToolLayout_Content_Container_Background:transparent;--fdToolLayout_Content_Container_BoxShadow:none}.fd-tool-layout__content-container--list{--fdToolLayout_Content_Container_Background:var(--sapGroup_ContentBackground)}.fd-tool-layout--horizontal-navigation{--fdToolLayout_Gap:0}.fd-tool-layout--horizontal-navigation .fd-tool-layout__container:not(:first-child){--fdToolLayout_Gap:.5rem}.fd-tool-layout--horizontal-navigation.fd-tool-layout--phone .fd-tool-layout__container:not(:first-child){--fdToolLayout_Gap:.25rem}.fd-tool-layout--tablet{--fdToolLayout_Padding_Block:.5rem;--fdToolLayout_Padding_Inline:.5rem;--fdToolLayout_Content_Container_Border_Radius:.5rem}.fd-tool-layout--phone{--fdToolLayout_Gap:.25rem;--fdToolLayout_Padding_Block:.25rem;--fdToolLayout_Padding_Inline:.25rem;--fdToolLayout_Content_Container_Border_Radius:.25rem}.fd-tool-layout--sticky{inset:0;position:absolute}.fd-tool-layout--sticky .fd-tool-layout__container{position:relative}.fd-tool-layout--sticky .fd-tool-layout__container:not(:first-child){-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.fd-tool-layout--sticky .fd-tool-layout__content-container,.fd-tool-layout--sticky .fd-tool-layout__navigation-container{height:100%;overflow:scroll}.fd-tool-layout__header-container{width:100%}.fd-tool-layout__content-container{overflow:hidden}.fd-tool-layout__container{position:relative}.fd-tool-layout.fd-tool-layout--no-gaps{--fdToolLayout_Gap: 0}\n/*! Bundled license information:\n\nfundamental-styles/dist/tool-layout.css:\n (*!\n * Fundamental Library Styles v0.41.9\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
|
|
157
157
|
}], propDecorators: { class: [{
|
|
158
158
|
type: Input
|
|
159
159
|
}], mode: [{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/btp",
|
|
3
|
-
"version": "0.65.0-rc.
|
|
3
|
+
"version": "0.65.0-rc.21",
|
|
4
4
|
"description": "Fundamental Library for Angular - BTP",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://sap.github.io/fundamental-ngx",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"peerDependencies": {
|
|
15
15
|
"@angular/common": "^22.0.0",
|
|
16
16
|
"@angular/core": "^22.0.0",
|
|
17
|
-
"@fundamental-ngx/cdk": "0.65.0-rc.
|
|
18
|
-
"@fundamental-ngx/core": "0.65.0-rc.
|
|
17
|
+
"@fundamental-ngx/cdk": "0.65.0-rc.21",
|
|
18
|
+
"@fundamental-ngx/core": "0.65.0-rc.21"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"tslib": "^2.3.0"
|