@fundamental-ngx/core 0.43.40 → 0.43.41

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.
@@ -1,13 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Injectable, Directive, ContentChild, inject, TemplateRef, EventEmitter, HostBinding, Output, ViewChild, Optional, Inject, ContentChildren, forwardRef, NgModule } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Injectable, Directive, ContentChild, inject, TemplateRef, EventEmitter, Inject, HostBinding, Output, ViewChild, Optional, ContentChildren, forwardRef, NgModule } from '@angular/core';
3
3
  import * as i3$1 from '@fundamental-ngx/cdk/utils';
4
4
  import { resizeObservable, IgnoreClickOnSelectionModule } from '@fundamental-ngx/cdk/utils';
5
- import * as i5 from '@fundamental-ngx/core/flexible-column-layout';
5
+ import * as i5$1 from '@fundamental-ngx/core/flexible-column-layout';
6
6
  import { FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT } from '@fundamental-ngx/core/flexible-column-layout';
7
7
  import { TabListComponent } from '@fundamental-ngx/core/tabs';
8
8
  import * as i2 from '@angular/common';
9
9
  import { CommonModule } from '@angular/common';
10
- import { BehaviorSubject, Subject, fromEvent, startWith, asyncScheduler } from 'rxjs';
10
+ import * as i5 from 'rxjs';
11
+ import { BehaviorSubject, Subject, firstValueFrom, fromEvent, startWith, asyncScheduler } from 'rxjs';
11
12
  import { takeUntil, distinctUntilChanged, debounceTime, map, observeOn } from 'rxjs/operators';
12
13
  import { DYNAMIC_PAGE_HEADER_TOKEN } from '@fundamental-ngx/core/shared';
13
14
  import { FD_BREADCRUMB_COMPONENT } from '@fundamental-ngx/core/breadcrumb';
@@ -15,6 +16,7 @@ import * as i3 from '@fundamental-ngx/core/toolbar';
15
16
  import { ToolbarComponent, ToolbarModule } from '@fundamental-ngx/core/toolbar';
16
17
  import * as i1 from '@fundamental-ngx/core/content-density';
17
18
  import { contentDensityObserverProviders, DeprecatedCompactDirective, CONTENT_DENSITY_DIRECTIVE, ContentDensityModule } from '@fundamental-ngx/core/content-density';
19
+ import { TranslationResolver, FD_LANGUAGE, I18nModule } from '@fundamental-ngx/i18n';
18
20
  import * as i4 from '@fundamental-ngx/core/button';
19
21
  import { ButtonModule } from '@fundamental-ngx/core/button';
20
22
  import * as i4$1 from '@fundamental-ngx/core/scrollbar';
@@ -489,24 +491,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
489
491
  * Default options for core dynamic-page
490
492
  */
491
493
  class DynamicPageConfig {
492
- constructor() {
493
- /**
494
- * aria label for expand/collapse button when the Dynamic Page is collapsed
495
- */
496
- this.expandLabel = 'Expand Header';
497
- /**
498
- * aria label for expand/collapse button when the Dynamic Page is expanded
499
- */
500
- this.collapseLabel = 'Collapse Header';
501
- /**
502
- * aria label for pin button when the Dynamic Page should be pinned
503
- */
504
- this.pinLabel = 'Pin Header';
505
- /**
506
- * aria label for pin button when the Panel should be unpinned
507
- */
508
- this.unpinLabel = 'Unpin Header';
509
- }
510
494
  }
511
495
  DynamicPageConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
512
496
  DynamicPageConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageConfig, providedIn: 'root' });
@@ -527,10 +511,11 @@ class DynamicPageSubheaderComponent {
527
511
  return this._collapsed;
528
512
  }
529
513
  /** @hidden */
530
- constructor(_cd, _dynamicPageConfig, _dynamicPageService) {
514
+ constructor(_cd, _dynamicPageConfig, _dynamicPageService, _language$) {
531
515
  this._cd = _cd;
532
516
  this._dynamicPageConfig = _dynamicPageConfig;
533
517
  this._dynamicPageService = _dynamicPageService;
518
+ this._language$ = _language$;
534
519
  /**
535
520
  * whether the header can be collapsed. True by default. If set to false, both pin/collapse buttons disappear
536
521
  * and the header stays visible
@@ -541,14 +526,6 @@ class DynamicPageSubheaderComponent {
541
526
  * Pinning the header will make the header stay visible and the collapse button(if present) will disappear until unpinned.
542
527
  */
543
528
  this.pinnable = false;
544
- /**
545
- * ARIA label for button when the header is collapsed
546
- */
547
- this.expandLabel = this._dynamicPageConfig.expandLabel;
548
- /**
549
- * ARIA label for button when the header is expanded
550
- */
551
- this.collapseLabel = this._dynamicPageConfig.collapseLabel;
552
529
  /** Header role */
553
530
  this.role = 'region';
554
531
  /**
@@ -578,10 +555,53 @@ class DynamicPageSubheaderComponent {
578
555
  * tracking expand/collapse button
579
556
  */
580
557
  this._collapsed = false;
558
+ /** @hidden */
559
+ this._translationResolver = new TranslationResolver();
581
560
  this._dynamicPageService.collapsed
582
561
  .pipe(distinctUntilChanged())
583
562
  .subscribe((collapsed) => this._handleCollapsedChange(collapsed));
584
563
  }
564
+ /** @hidden */
565
+ ngAfterContentInit() {
566
+ this._init();
567
+ }
568
+ /** @hidden */
569
+ async _init() {
570
+ this._language = await firstValueFrom(this._language$);
571
+ if (!this.expandLabel) {
572
+ if (this._dynamicPageConfig && this._dynamicPageConfig.expandLabel) {
573
+ this.expandLabel = this._dynamicPageConfig.expandLabel;
574
+ }
575
+ else {
576
+ this.expandLabel = this._translationResolver.resolve(this._language, `coreDynamicPage.expandLabel`);
577
+ }
578
+ }
579
+ if (!this.collapseLabel) {
580
+ if (this._dynamicPageConfig && this._dynamicPageConfig.collapseLabel) {
581
+ this.collapseLabel = this._dynamicPageConfig.collapseLabel;
582
+ }
583
+ else {
584
+ this.collapseLabel = this._translationResolver.resolve(this._language, `coreDynamicPage.collapseLabel`);
585
+ }
586
+ }
587
+ if (!this.pinAriaLabel) {
588
+ if (this._dynamicPageConfig && this._dynamicPageConfig.pinLabel) {
589
+ this.pinAriaLabel = this._dynamicPageConfig.pinLabel;
590
+ }
591
+ else {
592
+ this.pinAriaLabel = this._translationResolver.resolve(this._language, `coreDynamicPage.pinLabel`);
593
+ }
594
+ }
595
+ if (!this.unpinAriaLabel) {
596
+ if (this._dynamicPageConfig && this._dynamicPageConfig.unpinLabel) {
597
+ this.unpinAriaLabel = this._dynamicPageConfig.unpinLabel;
598
+ }
599
+ else {
600
+ this.unpinAriaLabel = this._translationResolver.resolve(this._language, `coreDynamicPage.unpinLabel`);
601
+ }
602
+ }
603
+ this._cd.detectChanges();
604
+ }
585
605
  /**
586
606
  * toggles the state of the header and
587
607
  * handles expanded/collapsed event
@@ -610,12 +630,15 @@ class DynamicPageSubheaderComponent {
610
630
  this._dynamicPageService.subheaderVisibilityChange.next();
611
631
  }
612
632
  }
613
- DynamicPageSubheaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageSubheaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DynamicPageConfig }, { token: DynamicPageService }], target: i0.ɵɵFactoryTarget.Component });
633
+ DynamicPageSubheaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageSubheaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DynamicPageConfig }, { token: DynamicPageService }, { token: FD_LANGUAGE }], target: i0.ɵɵFactoryTarget.Component });
614
634
  DynamicPageSubheaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: { collapsible: "collapsible", pinnable: "pinnable", collapsed: "collapsed", expandLabel: "expandLabel", collapseLabel: "collapseLabel", role: "role", id: "id", headerAriaLabel: "headerAriaLabel", pinAriaLabel: "pinAriaLabel", unpinAriaLabel: "unpinAriaLabel" }, outputs: { collapsedChange: "collapsedChange" }, host: { properties: { "attr.role": "this.role", "attr.id": "this.id" } }, viewQueries: [{ propertyName: "pinCollapseContainer", first: true, predicate: ["pincollapseContainer"], descendants: true }], ngImport: i0, template: "<div class=\"fd-dynamic-page__collapsible-header-container\">\n <div\n class=\"fd-dynamic-page__collapsible-header\"\n [attr.aria-label]=\"headerAriaLabel\"\n [attr.aria-hidden]=\"collapsed\"\n [attr.id]=\"collapsibleHeaderId\"\n role=\"region\"\n #headerContent\n >\n <ng-content></ng-content>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container\" #pincollapseContainer>\n <ng-container *ngIf=\"collapsible\">\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--left-gradient\"></div>\n <div role=\"toolbar\" class=\"fd-dynamic-page__collapsible-header-visibility-container--button-group\">\n <button\n fd-button\n class=\"fd-dynamic-page__collapse-button\"\n aria-haspopup=\"true\"\n [ariaLabel]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.title]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"id\"\n (click)=\"toggleCollapse()\"\n >\n <i [style.transform]=\"collapsed ? '' : 'rotate(180deg)'\" class=\"sap-icon--slim-arrow-down\"></i>\n </button>\n <button\n fd-button\n class=\"fd-dynamic-page__pin-button\"\n [ariaLabel]=\"_pinned ? unpinAriaLabel : pinAriaLabel\"\n [attr.title]=\"_pinned ? unpinAriaLabel : pinAriaLabel\"\n [toggled]=\"_pinned\"\n (click)=\"togglePinned()\"\n *ngIf=\"pinnable && !collapsed\"\n >\n <i class=\"sap-icon--pushpin-off\"></i>\n </button>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--right-gradient\"></div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
615
635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageSubheaderComponent, decorators: [{
616
636
  type: Component,
617
637
  args: [{ selector: 'fd-dynamic-page-subheader', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fd-dynamic-page__collapsible-header-container\">\n <div\n class=\"fd-dynamic-page__collapsible-header\"\n [attr.aria-label]=\"headerAriaLabel\"\n [attr.aria-hidden]=\"collapsed\"\n [attr.id]=\"collapsibleHeaderId\"\n role=\"region\"\n #headerContent\n >\n <ng-content></ng-content>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container\" #pincollapseContainer>\n <ng-container *ngIf=\"collapsible\">\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--left-gradient\"></div>\n <div role=\"toolbar\" class=\"fd-dynamic-page__collapsible-header-visibility-container--button-group\">\n <button\n fd-button\n class=\"fd-dynamic-page__collapse-button\"\n aria-haspopup=\"true\"\n [ariaLabel]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.title]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"id\"\n (click)=\"toggleCollapse()\"\n >\n <i [style.transform]=\"collapsed ? '' : 'rotate(180deg)'\" class=\"sap-icon--slim-arrow-down\"></i>\n </button>\n <button\n fd-button\n class=\"fd-dynamic-page__pin-button\"\n [ariaLabel]=\"_pinned ? unpinAriaLabel : pinAriaLabel\"\n [attr.title]=\"_pinned ? unpinAriaLabel : pinAriaLabel\"\n [toggled]=\"_pinned\"\n (click)=\"togglePinned()\"\n *ngIf=\"pinnable && !collapsed\"\n >\n <i class=\"sap-icon--pushpin-off\"></i>\n </button>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--right-gradient\"></div>\n </ng-container>\n </div>\n</div>\n" }]
618
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: DynamicPageConfig }, { type: DynamicPageService }]; }, propDecorators: { collapsible: [{
638
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: DynamicPageConfig }, { type: DynamicPageService }, { type: i5.Observable, decorators: [{
639
+ type: Inject,
640
+ args: [FD_LANGUAGE]
641
+ }] }]; }, propDecorators: { collapsible: [{
619
642
  type: Input
620
643
  }], pinnable: [{
621
644
  type: Input
@@ -877,7 +900,7 @@ DynamicPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
877
900
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageComponent, decorators: [{
878
901
  type: Component,
879
902
  args: [{ selector: 'fd-dynamic-page', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [DynamicPageService], template: "<section\n #dynamicPageElement\n class=\"fd-dynamic-page\"\n [class.fd-dynamic-page--sm]=\"size === 'small'\"\n [class.fd-dynamic-page--md]=\"size === 'medium'\"\n [class.fd-dynamic-page--lg]=\"size === 'large'\"\n [class.fd-dynamic-page--xl]=\"size === 'extra-large'\"\n [class.fd-dynamic-page--transparent-bg]=\"background === 'transparent'\"\n [class.fd-dynamic-page--list-bg]=\"background === 'list'\"\n [attr.aria-label]=\"ariaLabel\"\n>\n <header class=\"fd-dynamic-page__header\" [class.fd-dynamic-page__header--not-collapsible]=\"!_headerCollapsible\">\n <div>\n <div (click)=\"toggleCollapse()\" (keydown.enter)=\"toggleCollapse()\">\n <ng-content select=\"fd-dynamic-page-header\"></ng-content>\n </div>\n <ng-content select=\"fd-dynamic-page-subheader\"></ng-content>\n </div>\n </header>\n\n <ng-content select=\"fd-tab-list\"></ng-content>\n\n <div fd-scrollbar *ngIf=\"!_tabComponent\">\n <ng-content select=\"fd-dynamic-page-content\"></ng-content>\n </div>\n\n <div *ngIf=\"_tabComponent\">\n <ng-content select=\"fd-dynamic-page-content\"></ng-content>\n </div>\n\n <footer>\n <ng-content select=\"fd-dynamic-page-footer\"></ng-content>\n </footer>\n</section>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-dynamic-page{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-dynamic-page:after,.fd-dynamic-page:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__header-fixed{left:0;position:fixed;right:0;top:0;z-index:3}.fd-dynamic-page__header{-webkit-box-sizing:border-box;-webkit-box-pack:justify;-ms-flex-pack:justify;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-dynamic-page__header:after,.fd-dynamic-page__header:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__title-area{-webkit-box-sizing:border-box;-webkit-box-pack:justify;-ms-flex-pack:justify;word-wrap:break-word;background-color:var(--sapObjectHeader_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:0;min-height:3rem;padding:0;z-index:1}.fd-dynamic-page__title-area:after,.fd-dynamic-page__title-area:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__title-area.is-focus,.fd-dynamic-page__title-area:focus{outline-color:var(--sapContent_FocusColor);outline-offset:-.25rem;outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:1}.fd-dynamic-page__title-area.is-hover,.fd-dynamic-page__title-area:hover{background:var(--sapObjectHeader_Hover_Background);border-bottom:var(--fdDynamicPage_Hover_Border_Bottom);cursor:pointer}.fd-dynamic-page__title-area--collapsed{padding-bottom:1rem}.fd-dynamic-page__title-area--collapsed .fd-dynamic-page__title{font-size:var(--fdDynamicPage_Title_Collapsed_Font_Size)}.fd-dynamic-page__title-area[aria-hidden=true]{display:none}.fd-dynamic-page__main-container{-webkit-box-sizing:border-box;-webkit-box-pack:justify;-ms-flex-pack:justify;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-dynamic-page__main-container:after,.fd-dynamic-page__main-container:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__title-container{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-dynamic-page__title-container:after,.fd-dynamic-page__title-container:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__breadcrumb{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:.5rem 0 .25rem}.fd-dynamic-page__breadcrumb:after,.fd-dynamic-page__breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__breadcrumb-title-container{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;border:0;box-sizing:border-box;color:var(--sapTextColor);flex:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;min-width:0;padding:0}.fd-dynamic-page__breadcrumb-title-container:after,.fd-dynamic-page__breadcrumb-title-container:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__breadcrumb-container{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-dynamic-page__breadcrumb-container:after,.fd-dynamic-page__breadcrumb-container:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__title{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdDynamicPage_Title_Color);font-family:var(--sapFontFamily);font-family:var(--fdDynamicPage_Title_Font_Family);font-size:var(--sapFontSize);font-size:var(--fdDynamicPage_Title_Font_Size);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-dynamic-page__title:after,.fd-dynamic-page__title:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__title .fd-link{color:var(--sapGroup_TitleTextColor);font-size:var(--sapFontHeader3Size);max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.fd-dynamic-page__title--wrap{white-space:normal}.fd-dynamic-page__subtitle{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdDynamicPage_Subtitle_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:.25rem 0 0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-dynamic-page__subtitle:after,.fd-dynamic-page__subtitle:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__subtitle--wrap{white-space:normal}.fd-dynamic-page__title-content{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0 0 0 1rem;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap}.fd-dynamic-page__title-content:after,.fd-dynamic-page__title-content:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__title-content[dir=rtl],[dir=rtl] .fd-dynamic-page__title-content{padding:0 1rem 0 0}.fd-dynamic-page__title-subtitle-container{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-dynamic-page__title-subtitle-container:after,.fd-dynamic-page__title-subtitle-container:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__toolbar-container{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0 0 0 auto;padding:0}.fd-dynamic-page__toolbar-container:after,.fd-dynamic-page__toolbar-container:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__toolbar-container[dir=rtl],[dir=rtl] .fd-dynamic-page__toolbar-container{margin-left:0;margin-right:auto}.fd-dynamic-page .fd-dynamic-page__toolbar{background:transparent;margin:0;padding:0 0 0 1rem}.fd-dynamic-page .fd-dynamic-page__toolbar[dir=rtl],[dir=rtl] .fd-dynamic-page .fd-dynamic-page__toolbar{padding-left:0;padding-right:1rem}.fd-dynamic-page .fd-dynamic-page__toolbar--actions,.fd-dynamic-page .fd-dynamic-page__toolbar--actions[dir=rtl],.fd-dynamic-page .fd-dynamic-page__toolbar--content,.fd-dynamic-page .fd-dynamic-page__toolbar--content[dir=rtl],[dir=rtl] .fd-dynamic-page .fd-dynamic-page__toolbar--actions,[dir=rtl] .fd-dynamic-page .fd-dynamic-page__toolbar--content{padding:0}.fd-dynamic-page__summarized-title-area{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;word-wrap:break-word;-webkit-box-shadow:var(--sapContent_HeaderShadow);align-items:center;background:var(--sapObjectHeader_Background);border:0;box-shadow:var(--sapContent_HeaderShadow);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2rem;justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:0;padding:0;z-index:1}.fd-dynamic-page__summarized-title-area:after,.fd-dynamic-page__summarized-title-area:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__summarized-title-area.is-focus,.fd-dynamic-page__summarized-title-area:focus{outline-color:var(--sapContent_FocusColor);outline-offset:-.25rem;outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-dynamic-page__summarized-title-area--no-shadow{box-shadow:none}.fd-dynamic-page__summarized-title-area[aria-hidden=true]{display:none}.fd-dynamic-page__summarized-title{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader5Size);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:2rem;margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-dynamic-page__summarized-title:after,.fd-dynamic-page__summarized-title:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__collapsible-header-container{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-dynamic-page__collapsible-header-container:after,.fd-dynamic-page__collapsible-header-container:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__collapsible-header{-webkit-box-sizing:border-box;background-color:var(--sapObjectHeader_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:1rem 0}.fd-dynamic-page__collapsible-header:after,.fd-dynamic-page__collapsible-header:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__collapsible-header[aria-hidden=true]{display:none}.fd-dynamic-page .fd-dynamic-page__tabs{margin:0;padding:0}.fd-dynamic-page .fd-dynamic-page__tabs--overflow{overflow:hidden}.fd-dynamic-page .fd-dynamic-page__tabs--add-shadow,.fd-dynamic-page__collapsible-header-visibility-container{box-shadow:var(--sapContent_HeaderShadow)}.fd-dynamic-page__collapsible-header-visibility-container{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:var(--sapObjectHeader_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-height:.0625rem;padding:0;z-index:2}.fd-dynamic-page__collapsible-header-visibility-container:after,.fd-dynamic-page__collapsible-header-visibility-container:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__collapsible-header-visibility-container--left-gradient{background-image:var(--fdDynamicPage_Button_Left_Gradient);height:.0625rem;width:4rem}.fd-dynamic-page__collapsible-header-visibility-container--left-gradient[dir=rtl],[dir=rtl] .fd-dynamic-page__collapsible-header-visibility-container--left-gradient{background-image:var(--fdDynamicPage_Button_Right_Gradient)}.fd-dynamic-page__collapsible-header-visibility-container--right-gradient{background-image:var(--fdDynamicPage_Button_Right_Gradient);height:.0625rem;width:4rem}.fd-dynamic-page__collapsible-header-visibility-container--right-gradient[dir=rtl],[dir=rtl] .fd-dynamic-page__collapsible-header-visibility-container--right-gradient{background-image:var(--fdDynamicPage_Button_Left_Gradient)}.fd-dynamic-page__collapsible-header-visibility-container--button-group{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:var(--fdDynamicPage_Button_Group_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.0625rem;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:4.25rem;z-index:1}.fd-dynamic-page__collapsible-header-visibility-container--button-group:after,.fd-dynamic-page__collapsible-header-visibility-container--button-group:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__collapsible-header-visibility-container[aria-hidden=true]{display:none}.fd-dynamic-page__collapsible-header-visibility-container--no-shadow{box-shadow:none}.fd-dynamic-page__collapse-button,.fd-dynamic-page__expand-button,.fd-dynamic-page__pin-button{--fdButtonBackgroundColor:var(--fdDynamicPage_Button_Pin_Background);height:1.5rem;margin:0 .25rem;min-width:1.5rem;padding:0;width:1.5rem}.fd-dynamic-page__collapse-button:before,.fd-dynamic-page__expand-button:before,.fd-dynamic-page__pin-button:before{bottom:-.25rem;height:2rem;top:-.25rem;width:100%}.fd-dynamic-page__collapse-button[aria-hidden=true],.fd-dynamic-page__expand-button[aria-hidden=true],.fd-dynamic-page__pin-button[aria-hidden=true]{display:none}.fd-dynamic-page__content{-webkit-box-sizing:border-box;background-color:var(--sapBackgroundColor);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow-y:auto;padding:0}.fd-dynamic-page__content:after,.fd-dynamic-page__content:before{box-sizing:inherit;font-size:inherit}.fd-dynamic-page__footer{bottom:0;left:0;margin:0 .5rem .5rem;position:fixed;right:0}.fd-dynamic-page--sm .fd-dynamic-page__title-area{padding:.5rem 1rem}.fd-dynamic-page--sm .fd-dynamic-page__title-area--collapsed{padding-bottom:1rem}.fd-dynamic-page--sm .fd-dynamic-page__collapsible-header,.fd-dynamic-page--sm .fd-dynamic-page__content{padding:1rem}.fd-dynamic-page--sm .fd-dynamic-page__tabs{padding:0 1rem}.fd-dynamic-page--sm .fd-dynamic-page__summarized-title-area{padding:1rem}.fd-dynamic-page--sm .fd-dynamic-page__breadcrumb{padding:0}.fd-dynamic-page--sm .fd-dynamic-page__toolbar{margin-left:auto;padding-left:1rem}.fd-dynamic-page--sm .fd-dynamic-page__toolbar[dir=rtl],[dir=rtl] .fd-dynamic-page--sm .fd-dynamic-page__toolbar{margin-left:0;margin-right:auto;padding-left:0;padding-right:1rem}.fd-dynamic-page--sm .fd-dynamic-page__toolbar--content{margin-left:0}.fd-dynamic-page--sm .fd-dynamic-page__toolbar--content[dir=rtl],[dir=rtl] .fd-dynamic-page--sm .fd-dynamic-page__toolbar--content{margin-right:0}.fd-dynamic-page--lg .fd-dynamic-page__title-area,.fd-dynamic-page--md .fd-dynamic-page__title-area{padding:.5rem 2rem}.fd-dynamic-page--lg .fd-dynamic-page__title-area--collapsed,.fd-dynamic-page--md .fd-dynamic-page__title-area--collapsed{padding-bottom:1rem}.fd-dynamic-page--lg .fd-dynamic-page__collapsible-header,.fd-dynamic-page--lg .fd-dynamic-page__content,.fd-dynamic-page--md .fd-dynamic-page__collapsible-header,.fd-dynamic-page--md .fd-dynamic-page__content{padding:1rem 2rem}.fd-dynamic-page--lg .fd-dynamic-page__tabs,.fd-dynamic-page--md .fd-dynamic-page__tabs{padding:0 2rem}.fd-dynamic-page--lg .fd-dynamic-page__summarized-title-area,.fd-dynamic-page--md .fd-dynamic-page__summarized-title-area{padding:1rem}.fd-dynamic-page--xl .fd-dynamic-page__title-area{padding:.5rem 3rem}.fd-dynamic-page--xl .fd-dynamic-page__title-area--collapsed{padding-bottom:1rem}.fd-dynamic-page--xl .fd-dynamic-page__collapsible-header,.fd-dynamic-page--xl .fd-dynamic-page__content{padding:1rem 3rem}.fd-dynamic-page--xl .fd-dynamic-page__tabs{padding:0 3rem}.fd-dynamic-page--xl .fd-dynamic-page__summarized-title-area{padding:1rem}.fd-dynamic-page--md .fd-dynamic-page__toolbar{padding:0}.fd-dynamic-page--list-bg .fd-dynamic-page__content{background-color:var(--fdDynamicPage_Content_List_Background)}.fd-dynamic-page--transparent-bg .fd-dynamic-page__content{background-color:var(--fdDynamicPage_Content_Transparent_Background)}.fd-dynamic-page--transparent-bg .fd-dynamic-page__title-area{background:var(--fdDynamicPage_Title_Header_Transparent_Background)}.fd-dynamic-page--transparent-bg .fd-dynamic-page__collapsible-header{background-color:var(--fdDynamicPage_Title_Header_Transparent_Background)}.footer-spacer{height:3rem}.content-sticker{position:static}.fd-dynamic-page__header--not-collapsible .fd-dynamic-page__title-area.is-hover,.fd-dynamic-page__header--not-collapsible .fd-dynamic-page__title-area:hover{background-color:var(--sapObjectHeader_Background, #fff);cursor:default}.fd-dynamic-page__collapsible-header-visibility-container--button-group{z-index:6}.fd-tabs .fd-dynamic-page__content{display:block;height:auto!important}.fd-dynamic-page{height:100%}.fd-dynamic-page .fd-bar--floating-footer{z-index:6}.fd-dynamic-page .fd-tabs-custom{overflow:auto;background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7);flex:1}.fd-dynamic-page .fd-dynamic-page__content,.fd-dynamic-page .fd-dynamic-page__title-subtitle-container{flex:1}.fd-dynamic-page--transparent-bg .fd-tabs-custom{background-color:transparent;background-color:var(--fdDynamicPage_Content_Transparent_Background, transparent)}.fd-dynamic-page--list-bg .fd-tabs-custom{background-color:#fff;background-color:var(--fdDynamicPage_Content_List_Background, var(--sapGroup_ContentBackground, #fff))}.fd-dynamic-page--xl .fd-bar--floating-footer{margin:1rem 3rem}.fd-dynamic-page--lg .fd-bar--floating-footer,.fd-dynamic-page--md .fd-bar--floating-footer{margin:1rem 2rem}.fd-dynamic-page--sm .fd-bar--floating-footer{margin:1rem .5rem}.fd-dynamic-page--sm .fd-dynamic-page__title-container{align-items:center}\n"] }]
880
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DynamicPageService }, { type: i5.FlexibleColumnLayoutComponent, decorators: [{
903
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DynamicPageService }, { type: i5$1.FlexibleColumnLayoutComponent, decorators: [{
881
904
  type: Optional
882
905
  }, {
883
906
  type: Inject,
@@ -973,7 +996,8 @@ DynamicPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
973
996
  ContentDensityModule,
974
997
  ScrollbarModule,
975
998
  DynamicPageHeaderSubtitleDirective,
976
- DynamicPageHeaderTitleDirective], exports: [DynamicPageComponent,
999
+ DynamicPageHeaderTitleDirective,
1000
+ I18nModule], exports: [DynamicPageComponent,
977
1001
  DynamicPageHeaderComponent,
978
1002
  DynamicPageGlobalActionsComponent,
979
1003
  DynamicPageLayoutActionsComponent,
@@ -991,7 +1015,8 @@ DynamicPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
991
1015
  PopoverModule,
992
1016
  IgnoreClickOnSelectionModule,
993
1017
  ContentDensityModule,
994
- ScrollbarModule] });
1018
+ ScrollbarModule,
1019
+ I18nModule] });
995
1020
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageModule, decorators: [{
996
1021
  type: NgModule,
997
1022
  args: [{
@@ -1016,7 +1041,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1016
1041
  ContentDensityModule,
1017
1042
  ScrollbarModule,
1018
1043
  DynamicPageHeaderSubtitleDirective,
1019
- DynamicPageHeaderTitleDirective
1044
+ DynamicPageHeaderTitleDirective,
1045
+ I18nModule
1020
1046
  ],
1021
1047
  exports: [
1022
1048
  DynamicPageComponent,