@fundamental-ngx/core 0.43.40 → 0.43.42

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.
Files changed (29) hide show
  1. package/busy-indicator/busy-indicator.component.d.ts +5 -1
  2. package/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.d.ts +14 -3
  3. package/dynamic-page/dynamic-page.module.d.ts +2 -1
  4. package/esm2020/busy-indicator/busy-indicator.component.mjs +16 -2
  5. package/esm2020/carousel/carousel-item/carousel-item.component.mjs +1 -1
  6. package/esm2020/dialog/dialog-body/dialog-body.component.mjs +1 -1
  7. package/esm2020/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs +55 -13
  8. package/esm2020/dynamic-page/dynamic-page.config.mjs +1 -19
  9. package/esm2020/dynamic-page/dynamic-page.module.mjs +8 -4
  10. package/fesm2015/fundamental-ngx-core-busy-indicator.mjs +15 -1
  11. package/fesm2015/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  12. package/fesm2015/fundamental-ngx-core-carousel.mjs +1 -1
  13. package/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
  14. package/fesm2015/fundamental-ngx-core-dialog.mjs +1 -1
  15. package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
  16. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +67 -36
  17. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  18. package/fesm2020/fundamental-ngx-core-busy-indicator.mjs +15 -1
  19. package/fesm2020/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  20. package/fesm2020/fundamental-ngx-core-carousel.mjs +1 -1
  21. package/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
  22. package/fesm2020/fundamental-ngx-core-dialog.mjs +1 -1
  23. package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
  24. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +62 -36
  25. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  26. package/fundamental-ngx-core-v0.43.42.tgz +0 -0
  27. package/package.json +3 -3
  28. package/schematics/add-dependencies/index.js +4 -4
  29. package/fundamental-ngx-core-v0.43.40.tgz +0 -0
@@ -1,13 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Directive, ContentChild, inject, TemplateRef, Injectable, EventEmitter, HostBinding, Output, ViewChild, Optional, Inject, ContentChildren, forwardRef, NgModule } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Directive, ContentChild, inject, TemplateRef, Injectable, 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 { Subject, BehaviorSubject, fromEvent, startWith, asyncScheduler } from 'rxjs';
10
+ import * as i5 from 'rxjs';
11
+ import { Subject, BehaviorSubject, 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,8 @@ 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 { __awaiter } from 'tslib';
20
+ import { TranslationResolver, FD_LANGUAGE, I18nModule } from '@fundamental-ngx/i18n';
18
21
  import * as i4 from '@fundamental-ngx/core/button';
19
22
  import { ButtonModule } from '@fundamental-ngx/core/button';
20
23
  import * as i4$1 from '@fundamental-ngx/core/scrollbar';
@@ -490,24 +493,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
490
493
  * Default options for core dynamic-page
491
494
  */
492
495
  class DynamicPageConfig {
493
- constructor() {
494
- /**
495
- * aria label for expand/collapse button when the Dynamic Page is collapsed
496
- */
497
- this.expandLabel = 'Expand Header';
498
- /**
499
- * aria label for expand/collapse button when the Dynamic Page is expanded
500
- */
501
- this.collapseLabel = 'Collapse Header';
502
- /**
503
- * aria label for pin button when the Dynamic Page should be pinned
504
- */
505
- this.pinLabel = 'Pin Header';
506
- /**
507
- * aria label for pin button when the Panel should be unpinned
508
- */
509
- this.unpinLabel = 'Unpin Header';
510
- }
511
496
  }
512
497
  DynamicPageConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
513
498
  DynamicPageConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageConfig, providedIn: 'root' });
@@ -528,10 +513,11 @@ class DynamicPageSubheaderComponent {
528
513
  return this._collapsed;
529
514
  }
530
515
  /** @hidden */
531
- constructor(_cd, _dynamicPageConfig, _dynamicPageService) {
516
+ constructor(_cd, _dynamicPageConfig, _dynamicPageService, _language$) {
532
517
  this._cd = _cd;
533
518
  this._dynamicPageConfig = _dynamicPageConfig;
534
519
  this._dynamicPageService = _dynamicPageService;
520
+ this._language$ = _language$;
535
521
  /**
536
522
  * whether the header can be collapsed. True by default. If set to false, both pin/collapse buttons disappear
537
523
  * and the header stays visible
@@ -542,14 +528,6 @@ class DynamicPageSubheaderComponent {
542
528
  * Pinning the header will make the header stay visible and the collapse button(if present) will disappear until unpinned.
543
529
  */
544
530
  this.pinnable = false;
545
- /**
546
- * ARIA label for button when the header is collapsed
547
- */
548
- this.expandLabel = this._dynamicPageConfig.expandLabel;
549
- /**
550
- * ARIA label for button when the header is expanded
551
- */
552
- this.collapseLabel = this._dynamicPageConfig.collapseLabel;
553
531
  /** Header role */
554
532
  this.role = 'region';
555
533
  /**
@@ -579,10 +557,55 @@ class DynamicPageSubheaderComponent {
579
557
  * tracking expand/collapse button
580
558
  */
581
559
  this._collapsed = false;
560
+ /** @hidden */
561
+ this._translationResolver = new TranslationResolver();
582
562
  this._dynamicPageService.collapsed
583
563
  .pipe(distinctUntilChanged())
584
564
  .subscribe((collapsed) => this._handleCollapsedChange(collapsed));
585
565
  }
566
+ /** @hidden */
567
+ ngAfterContentInit() {
568
+ this._init();
569
+ }
570
+ /** @hidden */
571
+ _init() {
572
+ return __awaiter(this, void 0, void 0, function* () {
573
+ this._language = yield firstValueFrom(this._language$);
574
+ if (!this.expandLabel) {
575
+ if (this._dynamicPageConfig && this._dynamicPageConfig.expandLabel) {
576
+ this.expandLabel = this._dynamicPageConfig.expandLabel;
577
+ }
578
+ else {
579
+ this.expandLabel = this._translationResolver.resolve(this._language, `coreDynamicPage.expandLabel`);
580
+ }
581
+ }
582
+ if (!this.collapseLabel) {
583
+ if (this._dynamicPageConfig && this._dynamicPageConfig.collapseLabel) {
584
+ this.collapseLabel = this._dynamicPageConfig.collapseLabel;
585
+ }
586
+ else {
587
+ this.collapseLabel = this._translationResolver.resolve(this._language, `coreDynamicPage.collapseLabel`);
588
+ }
589
+ }
590
+ if (!this.pinAriaLabel) {
591
+ if (this._dynamicPageConfig && this._dynamicPageConfig.pinLabel) {
592
+ this.pinAriaLabel = this._dynamicPageConfig.pinLabel;
593
+ }
594
+ else {
595
+ this.pinAriaLabel = this._translationResolver.resolve(this._language, `coreDynamicPage.pinLabel`);
596
+ }
597
+ }
598
+ if (!this.unpinAriaLabel) {
599
+ if (this._dynamicPageConfig && this._dynamicPageConfig.unpinLabel) {
600
+ this.unpinAriaLabel = this._dynamicPageConfig.unpinLabel;
601
+ }
602
+ else {
603
+ this.unpinAriaLabel = this._translationResolver.resolve(this._language, `coreDynamicPage.unpinLabel`);
604
+ }
605
+ }
606
+ this._cd.detectChanges();
607
+ });
608
+ }
586
609
  /**
587
610
  * toggles the state of the header and
588
611
  * handles expanded/collapsed event
@@ -611,12 +634,17 @@ class DynamicPageSubheaderComponent {
611
634
  this._dynamicPageService.subheaderVisibilityChange.next();
612
635
  }
613
636
  }
614
- 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 });
637
+ 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 });
615
638
  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 });
616
639
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageSubheaderComponent, decorators: [{
617
640
  type: Component,
618
641
  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" }]
619
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: DynamicPageConfig }, { type: DynamicPageService }]; }, propDecorators: { collapsible: [{
642
+ }], ctorParameters: function () {
643
+ return [{ type: i0.ChangeDetectorRef }, { type: DynamicPageConfig }, { type: DynamicPageService }, { type: i5.Observable, decorators: [{
644
+ type: Inject,
645
+ args: [FD_LANGUAGE]
646
+ }] }];
647
+ }, propDecorators: { collapsible: [{
620
648
  type: Input
621
649
  }], pinnable: [{
622
650
  type: Input
@@ -884,7 +912,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
884
912
  type: Component,
885
913
  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"] }]
886
914
  }], ctorParameters: function () {
887
- return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DynamicPageService }, { type: i5.FlexibleColumnLayoutComponent, decorators: [{
915
+ return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DynamicPageService }, { type: i5$1.FlexibleColumnLayoutComponent, decorators: [{
888
916
  type: Optional
889
917
  }, {
890
918
  type: Inject,
@@ -981,7 +1009,8 @@ DynamicPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
981
1009
  ContentDensityModule,
982
1010
  ScrollbarModule,
983
1011
  DynamicPageHeaderSubtitleDirective,
984
- DynamicPageHeaderTitleDirective], exports: [DynamicPageComponent,
1012
+ DynamicPageHeaderTitleDirective,
1013
+ I18nModule], exports: [DynamicPageComponent,
985
1014
  DynamicPageHeaderComponent,
986
1015
  DynamicPageGlobalActionsComponent,
987
1016
  DynamicPageLayoutActionsComponent,
@@ -999,7 +1028,8 @@ DynamicPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
999
1028
  PopoverModule,
1000
1029
  IgnoreClickOnSelectionModule,
1001
1030
  ContentDensityModule,
1002
- ScrollbarModule] });
1031
+ ScrollbarModule,
1032
+ I18nModule] });
1003
1033
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageModule, decorators: [{
1004
1034
  type: NgModule,
1005
1035
  args: [{
@@ -1024,7 +1054,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1024
1054
  ContentDensityModule,
1025
1055
  ScrollbarModule,
1026
1056
  DynamicPageHeaderSubtitleDirective,
1027
- DynamicPageHeaderTitleDirective
1057
+ DynamicPageHeaderTitleDirective,
1058
+ I18nModule
1028
1059
  ],
1029
1060
  exports: [
1030
1061
  DynamicPageComponent,