@fundamental-ngx/core 0.64.2-rc.42 → 0.64.2-rc.44

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.
@@ -6,6 +6,7 @@ import { ContentDensityObserver, contentDensityObserverProviders } from '@fundam
6
6
  import { FD_BREADCRUMB_COMPONENT, BreadcrumbComponent } from '@fundamental-ngx/core/breadcrumb';
7
7
  import { DYNAMIC_PAGE_HEADER_TOKEN, FD_TABLIST } from '@fundamental-ngx/core/shared';
8
8
  import { IgnoreClickOnSelectionDirective, resizeObservable } from '@fundamental-ngx/cdk/utils';
9
+ import { MessageStripComponent } from '@fundamental-ngx/core/message-strip';
9
10
  import { FdTranslatePipe, FD_LANGUAGE_SIGNAL, resolveTranslationSignalFn } from '@fundamental-ngx/i18n';
10
11
  import { ButtonComponent } from '@fundamental-ngx/core/button';
11
12
  import { IconComponent } from '@fundamental-ngx/core/icon';
@@ -468,6 +469,21 @@ class DynamicPageHeaderComponent {
468
469
  */
469
470
  this._titleTemplate = contentChild(DynamicPageHeaderTitleDirective, /* @ts-ignore */
470
471
  ...(ngDevMode ? [{ debugName: "_titleTemplate" }] : /* istanbul ignore next */ []));
472
+ /**
473
+ * Optional template ref for message strip content.
474
+ * When provided, the message strip container is rendered using this template
475
+ * instead of relying on ng-content projection.
476
+ * This is used by Platform Dynamic Page which cannot project via ng-content.
477
+ */
478
+ this.messageStripTemplate = input(null, /* @ts-ignore */
479
+ ...(ngDevMode ? [{ debugName: "messageStripTemplate" }] : /* istanbul ignore next */ []));
480
+ /**
481
+ * @hidden
482
+ * Content child query for MessageStripComponent.
483
+ * When present, the message strip will be rendered below the subtitle in the header.
484
+ */
485
+ this.messageStrip = contentChild(MessageStripComponent, /* @ts-ignore */
486
+ ...(ngDevMode ? [{ debugName: "messageStrip" }] : /* istanbul ignore next */ []));
471
487
  /** @hidden */
472
488
  this._dynamicPageBreadcrumbComponent = contentChild(FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT, { ...(ngDevMode ? { debugName: "_dynamicPageBreadcrumbComponent" } : /* istanbul ignore next */ {}), read: DynamicPageBreadcrumbComponent });
473
489
  /** @hidden */
@@ -532,12 +548,12 @@ class DynamicPageHeaderComponent {
532
548
  event.stopPropagation();
533
549
  }
534
550
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DynamicPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
535
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: DynamicPageHeaderComponent, isStandalone: true, selector: "fd-dynamic-page-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleWrap: { classPropertyName: "titleWrap", publicName: "titleWrap", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, subtitleWrap: { classPropertyName: "subtitleWrap", publicName: "subtitleWrap", isSignal: true, isRequired: false, transformFunction: null }, headingLevel: { classPropertyName: "headingLevel", publicName: "headingLevel", isSignal: true, isRequired: false, transformFunction: null }, subtitleHeadingLevel: { classPropertyName: "subtitleHeadingLevel", publicName: "subtitleHeadingLevel", isSignal: true, isRequired: false, transformFunction: null }, titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
551
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: DynamicPageHeaderComponent, isStandalone: true, selector: "fd-dynamic-page-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleWrap: { classPropertyName: "titleWrap", publicName: "titleWrap", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, subtitleWrap: { classPropertyName: "subtitleWrap", publicName: "subtitleWrap", isSignal: true, isRequired: false, transformFunction: null }, headingLevel: { classPropertyName: "headingLevel", publicName: "headingLevel", isSignal: true, isRequired: false, transformFunction: null }, subtitleHeadingLevel: { classPropertyName: "subtitleHeadingLevel", publicName: "subtitleHeadingLevel", isSignal: true, isRequired: false, transformFunction: null }, titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null }, messageStripTemplate: { classPropertyName: "messageStripTemplate", publicName: "messageStripTemplate", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
536
552
  {
537
553
  provide: DYNAMIC_PAGE_HEADER_TOKEN,
538
554
  useExisting: DynamicPageHeaderComponent
539
555
  }
540
- ], queries: [{ propertyName: "_subtitleTemplate", first: true, predicate: DynamicPageHeaderSubtitleDirective, descendants: true, isSignal: true }, { propertyName: "_titleTemplate", first: true, predicate: DynamicPageHeaderTitleDirective, descendants: true, isSignal: true }, { propertyName: "_dynamicPageBreadcrumbComponent", first: true, predicate: FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT, descendants: true, read: DynamicPageBreadcrumbComponent, isSignal: true }, { propertyName: "_breadcrumbComponent", first: true, predicate: FD_BREADCRUMB_COMPONENT, descendants: true, read: BreadcrumbComponent, isSignal: true }, { propertyName: "_globalActions", first: true, predicate: DynamicPageGlobalActionsComponent, descendants: true, isSignal: true }, { propertyName: "_layoutActions", first: true, predicate: DynamicPageLayoutActionsComponent, descendants: true, isSignal: true }, { propertyName: "_contentToolbar", first: true, predicate: DynamicPageTitleContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n @if (_dynamicPageBreadcrumbComponent() || _actionsSquashed()) {\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n @if (_dynamicPageBreadcrumbComponent()) {\n <nav\n [attr.aria-label]=\"('coreDynamicPage.breadcrumbsLabel' | fdTranslate)()\"\n class=\"fd-dynamic-page__breadcrumb-wrapper\"\n (click)=\"stopPropagation($event)\"\n >\n <ng-content select=\"fd-dynamic-page-breadcrumb\"></ng-content>\n </nav>\n }\n\n @if (_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-dynamic-page__title-container\">\n @if (_dynamicPageService.collapsed()) {\n <ng-content select=\"fd-facet\"></ng-content>\n }\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <div class=\"fd-dynamic-page__title-container\">\n <span\n role=\"heading\"\n class=\"fd-dynamic-page__title\"\n [attr.aria-level]=\"_headingLevel()\"\n [id]=\"titleId()\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate() ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-template [ngTemplateOutlet]=\"dynamicPageGlobalActionsRef\"></ng-template>\n @if (!_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n </div>\n @if (_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"\n ></ng-template>\n </span>\n }\n </div>\n </div>\n </div>\n</div>\n@if (!_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n class=\"fd-dynamic-page__subtitle\"\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"></ng-template>\n </span>\n}\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #subtitleRef>\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #defaultSubtitle>\n {{ subtitle() }}\n</ng-template>\n<ng-template #defaultTitle>\n {{ title() }}\n</ng-template>\n", styles: [".fd-dynamic-page__breadcrumb-wrapper{width:100%;max-width:60%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgnoreClickOnSelectionDirective, selector: "[fdkIgnoreClickOnSelection]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
556
+ ], queries: [{ propertyName: "_subtitleTemplate", first: true, predicate: DynamicPageHeaderSubtitleDirective, descendants: true, isSignal: true }, { propertyName: "_titleTemplate", first: true, predicate: DynamicPageHeaderTitleDirective, descendants: true, isSignal: true }, { propertyName: "messageStrip", first: true, predicate: MessageStripComponent, descendants: true, isSignal: true }, { propertyName: "_dynamicPageBreadcrumbComponent", first: true, predicate: FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT, descendants: true, read: DynamicPageBreadcrumbComponent, isSignal: true }, { propertyName: "_breadcrumbComponent", first: true, predicate: FD_BREADCRUMB_COMPONENT, descendants: true, read: BreadcrumbComponent, isSignal: true }, { propertyName: "_globalActions", first: true, predicate: DynamicPageGlobalActionsComponent, descendants: true, isSignal: true }, { propertyName: "_layoutActions", first: true, predicate: DynamicPageLayoutActionsComponent, descendants: true, isSignal: true }, { propertyName: "_contentToolbar", first: true, predicate: DynamicPageTitleContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n @if (_dynamicPageBreadcrumbComponent() || _actionsSquashed()) {\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n @if (_dynamicPageBreadcrumbComponent()) {\n <nav\n [attr.aria-label]=\"('coreDynamicPage.breadcrumbsLabel' | fdTranslate)()\"\n class=\"fd-dynamic-page__breadcrumb-wrapper\"\n (click)=\"stopPropagation($event)\"\n >\n <ng-content select=\"fd-dynamic-page-breadcrumb\"></ng-content>\n </nav>\n }\n\n @if (_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-dynamic-page__title-container\">\n @if (_dynamicPageService.collapsed()) {\n <ng-content select=\"fd-facet\"></ng-content>\n }\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <div class=\"fd-dynamic-page__title-container\">\n <span\n role=\"heading\"\n class=\"fd-dynamic-page__title\"\n [attr.aria-level]=\"_headingLevel()\"\n [id]=\"titleId()\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate() ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-template [ngTemplateOutlet]=\"dynamicPageGlobalActionsRef\"></ng-template>\n @if (!_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n </div>\n @if (_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"\n ></ng-template>\n </span>\n }\n </div>\n </div>\n </div>\n</div>\n@if (!_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n class=\"fd-dynamic-page__subtitle\"\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"></ng-template>\n </span>\n}\n\n@if (messageStrip() || messageStripTemplate()) {\n <div class=\"fd-dynamic-page__message-strip-container\">\n @if (messageStripTemplate()) {\n <ng-template [ngTemplateOutlet]=\"messageStripTemplate()!\"></ng-template>\n } @else {\n <ng-content select=\"fd-message-strip\"></ng-content>\n }\n </div>\n}\n\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #subtitleRef>\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #defaultSubtitle>\n {{ subtitle() }}\n</ng-template>\n<ng-template #defaultTitle>\n {{ title() }}\n</ng-template>\n", styles: [".fd-dynamic-page__breadcrumb-wrapper{width:100%;max-width:60%}.fd-dynamic-page__message-strip-container{margin-block:1rem .5rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgnoreClickOnSelectionDirective, selector: "[fdkIgnoreClickOnSelection]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
541
557
  }
542
558
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DynamicPageHeaderComponent, decorators: [{
543
559
  type: Component,
@@ -546,8 +562,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
546
562
  provide: DYNAMIC_PAGE_HEADER_TOKEN,
547
563
  useExisting: DynamicPageHeaderComponent
548
564
  }
549
- ], imports: [NgTemplateOutlet, IgnoreClickOnSelectionDirective, FdTranslatePipe], template: "<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n @if (_dynamicPageBreadcrumbComponent() || _actionsSquashed()) {\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n @if (_dynamicPageBreadcrumbComponent()) {\n <nav\n [attr.aria-label]=\"('coreDynamicPage.breadcrumbsLabel' | fdTranslate)()\"\n class=\"fd-dynamic-page__breadcrumb-wrapper\"\n (click)=\"stopPropagation($event)\"\n >\n <ng-content select=\"fd-dynamic-page-breadcrumb\"></ng-content>\n </nav>\n }\n\n @if (_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-dynamic-page__title-container\">\n @if (_dynamicPageService.collapsed()) {\n <ng-content select=\"fd-facet\"></ng-content>\n }\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <div class=\"fd-dynamic-page__title-container\">\n <span\n role=\"heading\"\n class=\"fd-dynamic-page__title\"\n [attr.aria-level]=\"_headingLevel()\"\n [id]=\"titleId()\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate() ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-template [ngTemplateOutlet]=\"dynamicPageGlobalActionsRef\"></ng-template>\n @if (!_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n </div>\n @if (_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"\n ></ng-template>\n </span>\n }\n </div>\n </div>\n </div>\n</div>\n@if (!_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n class=\"fd-dynamic-page__subtitle\"\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"></ng-template>\n </span>\n}\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #subtitleRef>\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #defaultSubtitle>\n {{ subtitle() }}\n</ng-template>\n<ng-template #defaultTitle>\n {{ title() }}\n</ng-template>\n", styles: [".fd-dynamic-page__breadcrumb-wrapper{width:100%;max-width:60%}\n"] }]
550
- }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleWrap", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], subtitleWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitleWrap", required: false }] }], headingLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "headingLevel", required: false }] }], subtitleHeadingLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitleHeadingLevel", required: false }] }], titleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleId", required: false }] }], _subtitleTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DynamicPageHeaderSubtitleDirective), { isSignal: true }] }], _titleTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DynamicPageHeaderTitleDirective), { isSignal: true }] }], _dynamicPageBreadcrumbComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT), { ...{
565
+ ], imports: [NgTemplateOutlet, IgnoreClickOnSelectionDirective, FdTranslatePipe], template: "<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n @if (_dynamicPageBreadcrumbComponent() || _actionsSquashed()) {\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n @if (_dynamicPageBreadcrumbComponent()) {\n <nav\n [attr.aria-label]=\"('coreDynamicPage.breadcrumbsLabel' | fdTranslate)()\"\n class=\"fd-dynamic-page__breadcrumb-wrapper\"\n (click)=\"stopPropagation($event)\"\n >\n <ng-content select=\"fd-dynamic-page-breadcrumb\"></ng-content>\n </nav>\n }\n\n @if (_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-dynamic-page__title-container\">\n @if (_dynamicPageService.collapsed()) {\n <ng-content select=\"fd-facet\"></ng-content>\n }\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <div class=\"fd-dynamic-page__title-container\">\n <span\n role=\"heading\"\n class=\"fd-dynamic-page__title\"\n [attr.aria-level]=\"_headingLevel()\"\n [id]=\"titleId()\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate() ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-template [ngTemplateOutlet]=\"dynamicPageGlobalActionsRef\"></ng-template>\n @if (!_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n </div>\n @if (_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"\n ></ng-template>\n </span>\n }\n </div>\n </div>\n </div>\n</div>\n@if (!_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n class=\"fd-dynamic-page__subtitle\"\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"></ng-template>\n </span>\n}\n\n@if (messageStrip() || messageStripTemplate()) {\n <div class=\"fd-dynamic-page__message-strip-container\">\n @if (messageStripTemplate()) {\n <ng-template [ngTemplateOutlet]=\"messageStripTemplate()!\"></ng-template>\n } @else {\n <ng-content select=\"fd-message-strip\"></ng-content>\n }\n </div>\n}\n\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #subtitleRef>\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #defaultSubtitle>\n {{ subtitle() }}\n</ng-template>\n<ng-template #defaultTitle>\n {{ title() }}\n</ng-template>\n", styles: [".fd-dynamic-page__breadcrumb-wrapper{width:100%;max-width:60%}.fd-dynamic-page__message-strip-container{margin-block:1rem .5rem}\n"] }]
566
+ }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleWrap", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], subtitleWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitleWrap", required: false }] }], headingLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "headingLevel", required: false }] }], subtitleHeadingLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitleHeadingLevel", required: false }] }], titleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleId", required: false }] }], _subtitleTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DynamicPageHeaderSubtitleDirective), { isSignal: true }] }], _titleTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DynamicPageHeaderTitleDirective), { isSignal: true }] }], messageStripTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageStripTemplate", required: false }] }], messageStrip: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MessageStripComponent), { isSignal: true }] }], _dynamicPageBreadcrumbComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT), { ...{
551
567
  read: DynamicPageBreadcrumbComponent
552
568
  }, isSignal: true }] }], _breadcrumbComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => FD_BREADCRUMB_COMPONENT), { ...{ read: BreadcrumbComponent }, isSignal: true }] }], _globalActions: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DynamicPageGlobalActionsComponent), { isSignal: true }] }], _layoutActions: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DynamicPageLayoutActionsComponent), { isSignal: true }] }], _contentToolbar: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DynamicPageTitleContentComponent), { isSignal: true }] }] } });
553
569
 
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-dynamic-page.mjs","sources":["../../../../libs/core/dynamic-page/constants.ts","../../../../libs/core/dynamic-page/directives/dynamic-page-header-subtitle.directive.ts","../../../../libs/core/dynamic-page/directives/dynamic-page-header-title.directive.ts","../../../../libs/core/dynamic-page/utils.ts","../../../../libs/core/dynamic-page/dynamic-page-content/dynamic-page-content.component.ts","../../../../libs/core/dynamic-page/dynamic-page-content/dynamic-page-content.component.html","../../../../libs/core/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-base-actions.ts","../../../../libs/core/dynamic-page/dynamic-page.service.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.ts","../../../../libs/core/dynamic-page/tokens.ts","../../../../libs/core/dynamic-page/dynamic-page-header/breadcrumb/dynamic-page-breadcrumb.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.html","../../../../libs/core/dynamic-page/dynamic-page.config.ts","../../../../libs/core/dynamic-page/patch-header-i18n-texts.ts","../../../../libs/core/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.html","../../../../libs/core/dynamic-page/dynamic-page-wrapper.directive.ts","../../../../libs/core/dynamic-page/dynamic-page.tokens.ts","../../../../libs/core/dynamic-page/dynamic-page.component.ts","../../../../libs/core/dynamic-page/dynamic-page.component.html","../../../../libs/core/dynamic-page/dynamic-page.module.ts","../../../../libs/core/dynamic-page/fundamental-ngx-core-dynamic-page.ts"],"sourcesContent":["export const DYNAMIC_PAGE_CLASS_NAME = {\n dynamicPage: 'fd-dynamic-page',\n dynamicPageTitleArea: 'fd-dynamic-page__title-area',\n dynamicPageMainContainer: 'fd-dynamic-page__main-container',\n dynamicPageBreadcrumbTitleContainer: 'fd-dynamic-page__breadcrumb-title-container',\n dynamicPageTitleAreaCollapsed: 'fd-dynamic-page__title-area--collapsed',\n dynamicPageTitleContainer: 'fd-dynamic-page__title-container',\n dynamicPageTitle: 'fd-dynamic-page__title',\n dynamicPageBreadcrumb: 'fd-dynamic-page__breadcrumb',\n dynamicPageKeyInfo: 'fd-dynamic-page__title-content',\n dynamicPageToolbar: 'fd-dynamic-page__toolbar',\n dynamicPageLayoutActionsToolbar: 'fd-dynamic-page__toolbar--actions',\n dynamicPageLayoutContentToolbar: 'fd-dynamic-page__toolbar--content',\n dynamicPageHeader: 'fd-dynamic-page__header',\n dynamicPageCollapsibleHeader: 'fd-dynamic-page__collapsible-header',\n dynamicPageCollapsibleHeaderPinCollapseNoShadow:\n 'fd-dynamic-page__collapsible-header-visibility-container--no-shadow',\n dynamicPageTabs: 'fd-dynamic-page__tabs',\n dynamicPageTabsAddShadow: 'fd-dynamic-page__tabs--add-shadow',\n dynamicPageContent: 'fd-dynamic-page__content',\n dynamicPageSummarizedTitleArea: 'fd-dynamic-page__summarized-title-area',\n dynamicPageSummarizedTitleAreaExtraLarge: 'fd-dynamic-page__summarized-title-area',\n dynamicPageSummarizedTitleAreaNoShadow: 'fd-dynamic-page__summarized-title-area--no-shadow',\n dynamicPageSummarizedTitle: 'fd-dynamic-page__summarized-title',\n dynamicPageSummarizedTitleCollapsed: 'fd-dynamic-page__summarized-title-area--collapsed'\n} as const;\n\nexport type DynamicPageBackgroundType = 'solid' | 'list' | 'transparent';\n\nexport type DynamicPageResponsiveSize = 'small' | 'medium' | 'large' | 'extra-large';\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { DynamicPageTitleDirectiveContext } from '../models/title-directive-context';\n\n@Directive({\n selector: '[fdDynamicPageHeaderSubtitle]',\n standalone: true\n})\nexport class DynamicPageHeaderSubtitleDirective {\n /** Template reference. */\n templateRef = inject<TemplateRef<DynamicPageTitleDirectiveContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: DynamicPageHeaderSubtitleDirective,\n ctx: DynamicPageTitleDirectiveContext\n ): ctx is DynamicPageTitleDirectiveContext {\n return true;\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { DynamicPageTitleDirectiveContext } from '../models/title-directive-context';\n\n@Directive({\n selector: '[fdDynamicPageHeaderTitle]',\n standalone: true\n})\nexport class DynamicPageHeaderTitleDirective {\n /** Template reference. */\n templateRef = inject<TemplateRef<DynamicPageTitleDirectiveContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: DynamicPageHeaderTitleDirective,\n ctx: DynamicPageTitleDirectiveContext\n ): ctx is DynamicPageTitleDirectiveContext {\n return true;\n }\n}\n","import { Renderer2 } from '@angular/core';\nimport { DynamicPageResponsiveSize } from './constants';\n\nexport const addClassNameToElement = (renderer: Renderer2, element: Element, className: string): void => {\n renderer.addClass(element, className);\n};\n\n/** @hidden Returns dynamic page size based on width\n * @param width - dynamic page window width\n **/\nexport function dynamicPageWidthToSize(width: number): DynamicPageResponsiveSize {\n if (width <= 599) {\n return 'small';\n } else if (width <= 1023) {\n return 'medium';\n } else if (width <= 1439) {\n return 'large';\n }\n return 'extra-large';\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../constants';\nimport { addClassNameToElement } from '../utils';\n\n@Component({\n selector: 'fd-dynamic-page-content',\n templateUrl: './dynamic-page-content.component.html',\n styleUrl: './dynamic-page-content.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: []\n})\nexport class DynamicPageContentComponent implements OnInit {\n /**\n * label for the tab. If label is provided, tab navigation will be internally set up.\n */\n @Input()\n tabLabel: string;\n\n /**\n * a unique identifier for this content\n */\n @Input()\n id: string;\n\n /** @hidden */\n _showSpacer = false;\n\n /** @hidden */\n constructor(\n public readonly _renderer: Renderer2,\n public readonly elementRef: ElementRef<HTMLElement>,\n private readonly _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._addClassNameToHostElement(DYNAMIC_PAGE_CLASS_NAME.dynamicPageContent);\n }\n\n /** @hidden */\n _toggleSpacer(state: boolean): void {\n this._showSpacer = state;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _addClassNameToHostElement(className: string): void {\n addClassNameToElement(this._renderer, this.elementRef.nativeElement, className);\n }\n}\n","<ng-content></ng-content>\n@if (_showSpacer) {\n <div class=\"footer-spacer\"></div>\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-dynamic-page-footer',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n})\nexport class DynamicPageFooterComponent {}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\n@Directive()\nexport class DynamicPageBaseActions implements HasElementRef {\n /** Element reference to the host element. */\n readonly elementRef = inject(ElementRef);\n\n /**\n * Adds a CSS class to the toolbar element within this component.\n * @param _class The CSS class name to add to the toolbar.\n */\n addClassToToolbar(_class: string): void {\n const toolbarEl = this.elementRef.nativeElement.querySelector('.fd-toolbar');\n if (toolbarEl) {\n toolbarEl.classList.add(_class);\n }\n }\n}\n","import { computed, Injectable, signal } from '@angular/core';\nimport { DynamicPageResponsiveSize } from './constants';\nimport { dynamicPageWidthToSize } from './utils';\n\n@Injectable()\nexport class DynamicPageService {\n /** @hidden */\n readonly collapsed = signal(false);\n\n /** @hidden */\n readonly pinned = signal(false);\n\n /** @hidden */\n readonly pixelsSizeChanged = signal(0);\n\n /**\n * Manual size override. When set, takes precedence over auto-computed size.\n * Used when autoResponsive is false and size is set manually via input.\n */\n readonly manualSizeOverride = signal<DynamicPageResponsiveSize | null>(null);\n\n /**\n * Computed responsive size based on pixel width or manual override.\n * Returns 'small', 'medium', 'large', or 'extra-large'.\n * Defaults to 'large' when pixel width hasn't been measured yet (0).\n */\n readonly responsiveSize = computed<DynamicPageResponsiveSize>(() => {\n const manualOverride = this.manualSizeOverride();\n if (manualOverride) {\n return manualOverride;\n }\n const width = this.pixelsSizeChanged();\n // Don't compute size as 'small' before the page width has been measured\n if (width === 0) {\n return 'large';\n }\n return dynamicPageWidthToSize(width);\n });\n\n /** @hidden */\n toggleCollapsed(): void {\n this.collapsed.update((collapsed) => !collapsed);\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n Injector,\n ViewEncapsulation\n} from '@angular/core';\nimport { ToolbarComponent } from '@fundamental-ngx/core/toolbar';\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../../constants';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { DynamicPageBaseActions } from './dynamic-page-base-actions';\n\n@Component({\n selector: 'fd-dynamic-page-global-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'toolbar'\n }\n})\nexport class DynamicPageGlobalActionsComponent extends DynamicPageBaseActions {\n /** @hidden */\n protected readonly _toolbarComponent = contentChild(ToolbarComponent);\n\n /** Whether the toolbar should show overflow (size is small). */\n protected readonly shouldOverflow = computed(() => this._dynamicPageService?.responsiveSize() === 'small');\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private readonly _dynamicPageService = inject(DynamicPageService, { optional: true });\n\n constructor() {\n super();\n\n // Add toolbar class after render when DOM is ready\n afterNextRender(() => {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar);\n });\n\n // React to size changes\n effect(() => {\n const shouldOverflow = this.shouldOverflow();\n const toolbar = this._toolbarComponent();\n if (toolbar) {\n this._handleOverflow(toolbar, shouldOverflow);\n }\n });\n }\n\n /** @hidden */\n private _handleOverflow(toolbar: ToolbarComponent, shouldBeHidden: boolean): void {\n toolbar.forceOverflow = shouldBeHidden;\n toolbar.shouldOverflow = shouldBeHidden;\n toolbar.detectChanges();\n afterNextRender(\n () => {\n toolbar.updateCollapsibleItems();\n },\n { injector: this._injector }\n );\n }\n}\n","import { afterNextRender, ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../../constants';\nimport { DynamicPageBaseActions } from './dynamic-page-base-actions';\n\n@Component({\n selector: 'fd-dynamic-page-layout-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'toolbar',\n '[style.margin-inline-start]': '\"auto\"'\n }\n})\nexport class DynamicPageLayoutActionsComponent extends DynamicPageBaseActions {\n constructor() {\n super();\n\n // Add toolbar classes after render when DOM is ready\n afterNextRender(() => {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageLayoutActionsToolbar);\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar);\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { ToolbarComponent, ToolbarItemDirective } from '@fundamental-ngx/core/toolbar';\nimport { DynamicPageService } from '../../dynamic-page.service';\n\n@Component({\n selector: 'fd-dynamic-page-title-content',\n template: `\n @if (_isSmall()) {\n <fd-toolbar\n fdType=\"transparent\"\n (click)=\"$event.stopPropagation()\"\n class=\"dynamicPageLayoutContentToolbar\"\n [clearBorder]=\"true\"\n [forceOverflow]=\"true\"\n [shouldOverflow]=\"true\"\n >\n <div fd-toolbar-item>\n <ng-template [ngTemplateOutlet]=\"templateContentRef\"></ng-template>\n </div>\n </fd-toolbar>\n } @else {\n <div\n class=\"fd-dynamic-page__title-content\"\n [class.fd-dynamic-page__title-content--wrap]=\"titleContentWrap()\"\n >\n <ng-template [ngTemplateOutlet]=\"templateContentRef\"></ng-template>\n </div>\n }\n <ng-template #templateContentRef>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [contentDensityObserverProviders()],\n imports: [ToolbarComponent, ToolbarItemDirective, NgTemplateOutlet]\n})\nexport class DynamicPageTitleContentComponent {\n /**\n * Whether the title content text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly titleContentWrap = input(false, { transform: booleanAttribute });\n\n /** @hidden */\n protected readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** Whether the current size is small. */\n protected readonly _isSmall = computed(() => this._dynamicPageService?.responsiveSize() === 'small');\n\n /** @hidden */\n private readonly _dynamicPageService = inject(DynamicPageService, { optional: true });\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT = new InjectionToken('DynamicPageBreadcrumbComponent');\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT } from '../../tokens';\n\n@Component({\n selector: 'fd-dynamic-page-breadcrumb',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT,\n useExisting: DynamicPageBreadcrumbComponent\n }\n ],\n standalone: true\n})\nexport class DynamicPageBreadcrumbComponent {}\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { BreadcrumbComponent, FD_BREADCRUMB_COMPONENT } from '@fundamental-ngx/core/breadcrumb';\nimport { DYNAMIC_PAGE_HEADER_TOKEN } from '@fundamental-ngx/core/shared';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IgnoreClickOnSelectionDirective } from '@fundamental-ngx/cdk/utils';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { DYNAMIC_PAGE_CLASS_NAME, DynamicPageResponsiveSize } from '../../constants';\nimport { DynamicPageHeaderSubtitleDirective } from '../../directives/dynamic-page-header-subtitle.directive';\nimport { DynamicPageHeaderTitleDirective } from '../../directives/dynamic-page-header-title.directive';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT } from '../../tokens';\nimport { addClassNameToElement } from '../../utils';\nimport { DynamicPageGlobalActionsComponent } from '../actions/dynamic-page-global-actions.component';\nimport { DynamicPageLayoutActionsComponent } from '../actions/dynamic-page-layout-actions.component';\nimport { DynamicPageTitleContentComponent } from '../actions/dynamic-page-title-content.component';\nimport { DynamicPageBreadcrumbComponent } from '../breadcrumb/dynamic-page-breadcrumb.component';\n\nexport const ActionSquashBreakpointPx = 1280;\n\nlet dynamicPageTitleId = 0;\n\n@Component({\n selector: 'fd-dynamic-page-header',\n templateUrl: './dynamic-page-header.component.html',\n styleUrl: './dynamic-page-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: DYNAMIC_PAGE_HEADER_TOKEN,\n useExisting: DynamicPageHeaderComponent\n }\n ],\n imports: [NgTemplateOutlet, IgnoreClickOnSelectionDirective, FdTranslatePipe]\n})\nexport class DynamicPageHeaderComponent implements OnInit {\n /**\n * The title text displayed in the dynamic page header.\n * @default ''\n */\n readonly title = input('');\n\n /**\n * Whether the title text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly titleWrap = input(false, { transform: booleanAttribute });\n\n /**\n * The subtitle text displayed below the title in the dynamic page header.\n * @default ''\n */\n readonly subtitle = input('');\n\n /**\n * Whether the subtitle text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly subtitleWrap = input(false, { transform: booleanAttribute });\n\n /**\n * The heading level (h1-h6) for the dynamic page title.\n * Determines the semantic hierarchy for accessibility and SEO.\n * @default 2\n */\n readonly headingLevel = input<HeadingLevel>(2);\n\n /**\n * The heading level (h1-h6) for the dynamic page subtitle.\n * When provided, the subtitle will be rendered as a semantic heading with role=\"heading\".\n * When not provided (undefined/null), the subtitle is rendered as plain text without a heading role.\n * @default undefined\n */\n readonly subtitleHeadingLevel = input<HeadingLevel | undefined | null>(undefined);\n\n /**\n * The unique ID for the dynamic page title element.\n * Used for ARIA relationships and programmatic reference.\n * @default 'fd-dynamic-page-title-id-{auto-increment}'\n */\n readonly titleId = input(`fd-dynamic-page-title-id-${++dynamicPageTitleId}`);\n\n /**\n * @hidden\n * Content child query for custom subtitle template.\n * When provided via fdDynamicPageHeaderSubtitle directive, overrides the subtitle text input.\n */\n readonly _subtitleTemplate = contentChild(DynamicPageHeaderSubtitleDirective);\n\n /**\n * @hidden\n * Content child query for custom title template.\n * When provided via fdDynamicPageHeaderTitle directive, overrides the title text input.\n */\n readonly _titleTemplate = contentChild(DynamicPageHeaderTitleDirective);\n\n /** @hidden */\n readonly _dynamicPageBreadcrumbComponent = contentChild(FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT, {\n read: DynamicPageBreadcrumbComponent\n });\n\n /** @hidden */\n readonly _breadcrumbComponent = contentChild(FD_BREADCRUMB_COMPONENT, { read: BreadcrumbComponent });\n\n /** @hidden */\n readonly _globalActions = contentChild(DynamicPageGlobalActionsComponent);\n\n /** @hidden */\n readonly _layoutActions = contentChild(DynamicPageLayoutActionsComponent);\n\n /** @hidden */\n readonly _contentToolbar = contentChild(DynamicPageTitleContentComponent);\n\n /**\n * @hidden\n * Computed signal indicating whether actions should be displayed in collapsed/squashed mode.\n * True when viewport width is below the ActionSquashBreakpointPx threshold (1280px).\n */\n readonly _actionsSquashed = computed(() => this._dynamicPageService.pixelsSizeChanged() < ActionSquashBreakpointPx);\n\n /**\n * @hidden\n * Computed numeric heading level extracted from the headingLevel input.\n * Strips non-digit characters and returns integer value.\n */\n readonly _headingLevel = computed(() =>\n this.headingLevel() ? Number.parseInt(`${this.headingLevel()}`.replace(/\\D/g, ''), 10) : 2\n );\n\n /**\n * @hidden\n * Tracks the current responsive size of the dynamic page.\n * Updated by effect when DynamicPageService.responsiveSize changes.\n */\n _size: DynamicPageResponsiveSize;\n\n /** @hidden */\n readonly _dynamicPageService = inject(DynamicPageService);\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n constructor() {\n // React to size changes and update breadcrumb\n effect(() => {\n const size = this._dynamicPageService.responsiveSize();\n this._size = size;\n\n const breadcrumb = this._breadcrumbComponent();\n\n if (breadcrumb) {\n // Add custom class on first render\n addClassNameToElement(\n this._renderer,\n breadcrumb.elementRef.nativeElement,\n 'fd-dynamic-page__breadcrumb'\n );\n }\n });\n\n // Trigger breadcrumb resize after view is fully initialized\n afterNextRender(() => {\n const breadcrumb = this._breadcrumbComponent();\n\n if (breadcrumb && typeof breadcrumb.onResize === 'function') {\n breadcrumb.onResize();\n }\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n addClassNameToElement(\n this._renderer,\n this._elementRef.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageTitleArea\n );\n }\n\n /**\n * @hidden\n * Prevents click events from bubbling up to parent elements.\n * Used to stop the header collapse toggle when interacting with header content.\n */\n stopPropagation(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n @if (_dynamicPageBreadcrumbComponent() || _actionsSquashed()) {\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n @if (_dynamicPageBreadcrumbComponent()) {\n <nav\n [attr.aria-label]=\"('coreDynamicPage.breadcrumbsLabel' | fdTranslate)()\"\n class=\"fd-dynamic-page__breadcrumb-wrapper\"\n (click)=\"stopPropagation($event)\"\n >\n <ng-content select=\"fd-dynamic-page-breadcrumb\"></ng-content>\n </nav>\n }\n\n @if (_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-dynamic-page__title-container\">\n @if (_dynamicPageService.collapsed()) {\n <ng-content select=\"fd-facet\"></ng-content>\n }\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <div class=\"fd-dynamic-page__title-container\">\n <span\n role=\"heading\"\n class=\"fd-dynamic-page__title\"\n [attr.aria-level]=\"_headingLevel()\"\n [id]=\"titleId()\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate() ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-template [ngTemplateOutlet]=\"dynamicPageGlobalActionsRef\"></ng-template>\n @if (!_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n </div>\n @if (_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"\n ></ng-template>\n </span>\n }\n </div>\n </div>\n </div>\n</div>\n@if (!_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n class=\"fd-dynamic-page__subtitle\"\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"></ng-template>\n </span>\n}\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #subtitleRef>\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #defaultSubtitle>\n {{ subtitle() }}\n</ng-template>\n<ng-template #defaultTitle>\n {{ title() }}\n</ng-template>\n","import { Injectable } from '@angular/core';\n\n/**\n * Default options for core dynamic-page\n * @deprecated use i18n coreDynamicPage key instead\n */\n@Injectable()\nexport class DynamicPageConfig {\n /**\n * aria label for expand/collapse button when the Dynamic Page is collapsed\n */\n expandLabel = 'Expand Header';\n\n /**\n * aria label for expand/collapse button when the Dynamic Page is expanded\n */\n collapseLabel = 'Collapse Header';\n\n /**\n * aria label for pin button when the Dynamic Page should be pinned\n */\n pinLabel = 'Pin Header';\n\n /**\n * aria label for pin button when the Panel should be unpinned\n */\n unpinLabel = 'Unpin Header';\n}\n","import { computed, inject, Signal } from '@angular/core';\nimport { FD_LANGUAGE_SIGNAL, FdLanguage } from '@fundamental-ngx/i18n';\nimport { DynamicPageConfig } from './dynamic-page.config';\n\n/**\n * Patch header i18n texts\n */\nexport function patchHeaderI18nTexts(config?: DynamicPageConfig): Signal<FdLanguage> {\n const langSignal = inject(FD_LANGUAGE_SIGNAL, { skipSelf: true });\n if (config) {\n return computed(\n () =>\n ({\n ...langSignal(),\n coreDynamicPage: {\n ...config\n }\n }) as FdLanguage\n );\n }\n return langSignal;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_LANGUAGE_SIGNAL, resolveTranslationSignalFn } from '@fundamental-ngx/i18n';\nimport { DynamicPageConfig } from '../../dynamic-page.config';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { patchHeaderI18nTexts } from '../../patch-header-i18n-texts';\n\nlet dynamicPageSubHeaderId = 0;\n@Component({\n selector: 'fd-dynamic-page-subheader',\n templateUrl: './dynamic-page-subheader.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ButtonComponent, IconComponent],\n providers: [\n {\n provide: FD_LANGUAGE_SIGNAL,\n useFactory: patchHeaderI18nTexts,\n deps: [[new Optional(), DynamicPageConfig]]\n }\n ]\n})\nexport class DynamicPageSubheaderComponent {\n /**\n * whether the header can be collapsed. True by default. If set to false, both pin/collapse buttons disappear\n * and the header stays visible\n */\n @Input()\n collapsible = true;\n\n /**\n * whether the header should be allowed to be pinned or unpinned. When set, the pin button shows up.\n * Pinning the header will make the header stay visible and the collapse button(if present) will disappear until unpinned.\n */\n @Input()\n pinnable = false;\n\n /**\n * the initial state of the header. Set to true if header should be collapsed.\n */\n @Input()\n set collapsed(collapsed: boolean) {\n this._dynamicPageService.collapsed.set(collapsed);\n }\n\n get collapsed(): boolean {\n return this._dynamicPageService.collapsed();\n }\n\n /**\n * ARIA label for button when the header is collapsed\n */\n @Input()\n expandLabel: string;\n\n /**\n * ARIA label for button when the header is expanded\n */\n @Input()\n collapseLabel: string;\n\n /**\n * id for header\n */\n @Input()\n @HostBinding('attr.id')\n id = `fd-dynamic-page-header-id-${dynamicPageSubHeaderId++}`;\n\n /**\n * aria label for header\n */\n @Input()\n headerAriaLabel: Nullable<string> = 'Collapsed Header';\n\n /**\n * aria label for pin state of pin button\n */\n @Input()\n pinAriaLabel: string;\n\n /**\n * aria label for unpin state of pin button\n */\n @Input()\n unpinAriaLabel: string;\n\n /** Collapse/Expand change event raised */\n @Output()\n collapsedChange = new EventEmitter<boolean>();\n\n /** Reference to page header content */\n @ViewChild('pincollapseContainer')\n pinCollapseContainer: ElementRef<HTMLElement>;\n\n /**\n * id for collapsible header\n */\n collapsibleHeaderId = `${this.id}-collapsible`;\n\n /**\n * Aria Label for the toggle button\n * @hidden\n **/\n get _toggleButtonAriaLabel(): string {\n const expandLabel = this.expandLabel || this._defaultExpandLabel();\n const collapseLabel = this.collapseLabel || this._defaultCollapseLabel();\n return this._dynamicPageService.collapsed() ? expandLabel : collapseLabel;\n }\n\n /**\n * Aria Label for the pin button\n * @hidden\n **/\n get _pinButtonAriaLabel(): string {\n const pinLabel = this.pinAriaLabel || this._defaultPinLabel();\n const unpinLabel = this.unpinAriaLabel || this._defaultUnpinLabel();\n return this._pinned ? unpinLabel : pinLabel;\n }\n\n /**\n * tracking if pin button is pinned\n */\n _pinned = false;\n\n /** @hidden */\n private _resolveTranslationSignal = resolveTranslationSignalFn();\n\n /** @hidden */\n private _defaultExpandLabel = this._resolveTranslationSignal('coreDynamicPage.expandLabel');\n\n /** @hidden */\n private _defaultCollapseLabel = this._resolveTranslationSignal('coreDynamicPage.collapseLabel');\n\n /** @hidden */\n private _defaultPinLabel = this._resolveTranslationSignal('coreDynamicPage.pinLabel');\n\n /** @hidden */\n private _defaultUnpinLabel = this._resolveTranslationSignal('coreDynamicPage.unpinLabel');\n\n /** @hidden */\n constructor(readonly _dynamicPageService: DynamicPageService) {}\n\n /**\n * toggles the state of the header and\n * handles expanded/collapsed event\n */\n toggleCollapse(): void {\n this._pinned = false;\n this.collapsed = !this.collapsed;\n this.collapsedChange.emit(this.collapsed);\n }\n\n /**\n * @hidden\n * click action on pin button\n */\n togglePinned(): void {\n this._pinned = !this._pinned;\n this._dynamicPageService.pinned.set(this._pinned);\n }\n}\n","<div class=\"fd-dynamic-page__collapsible-header-container\">\n <section\n role=\"region\"\n class=\"fd-dynamic-page__collapsible-header\"\n [attr.aria-label]=\"headerAriaLabel\"\n [attr.aria-hidden]=\"_dynamicPageService.collapsed()\"\n [attr.id]=\"collapsibleHeaderId\"\n #headerContent\n >\n <ng-content></ng-content>\n </section>\n @if (collapsible) {\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container\" #pincollapseContainer>\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 [ariaLabel]=\"_toggleButtonAriaLabel\"\n [attr.title]=\"_toggleButtonAriaLabel\"\n [attr.aria-expanded]=\"!_dynamicPageService.collapsed()\"\n [attr.aria-controls]=\"id\"\n (click)=\"toggleCollapse()\"\n >\n <fd-icon [glyph]=\"_dynamicPageService.collapsed() ? 'slim-arrow-down' : 'slim-arrow-up'\"></fd-icon>\n </button>\n @if (pinnable && !_dynamicPageService.collapsed()) {\n <button\n fd-button\n class=\"fd-dynamic-page__pin-button\"\n [ariaLabel]=\"_pinButtonAriaLabel\"\n [attr.title]=\"_pinButtonAriaLabel\"\n [toggled]=\"_pinned\"\n (click)=\"togglePinned()\"\n >\n <fd-icon glyph=\"pushpin-off\"></fd-icon>\n </button>\n }\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--right-gradient\"></div>\n </div>\n }\n</div>\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[fdDynamicPageWrapper], [fd-dynamic-page-wrapper]',\n standalone: true\n})\nexport class DynamicPageWrapperDirective {\n /** @hidden */\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { DynamicPage } from './dynamic-page.interface';\n\nexport const FD_DYNAMIC_PAGE = new InjectionToken<DynamicPage>('FD_DYNAMIC_PAGE');\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n Inject,\n Input,\n Optional,\n QueryList,\n Renderer2,\n viewChild,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport {\n FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT,\n FlexibleColumnLayoutComponent\n} from '@fundamental-ngx/core/flexible-column-layout';\nimport { DYNAMIC_PAGE_CLASS_NAME, DynamicPageBackgroundType, DynamicPageResponsiveSize } from './constants';\nimport { DynamicPageContentComponent } from './dynamic-page-content/dynamic-page-content.component';\nimport { DynamicPageFooterComponent } from './dynamic-page-footer/dynamic-page-footer.component';\nimport { DynamicPageHeaderComponent } from './dynamic-page-header/header/dynamic-page-header.component';\nimport { DynamicPageSubheaderComponent } from './dynamic-page-header/subheader/dynamic-page-subheader.component';\nimport { DynamicPageWrapperDirective } from './dynamic-page-wrapper.directive';\nimport { DynamicPageService } from './dynamic-page.service';\nimport { addClassNameToElement } from './utils';\n\nimport { CdkScrollable } from '@angular/cdk/overlay';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FD_TABLIST, TabList } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { asyncScheduler, fromEvent, Observable, startWith } from 'rxjs';\nimport { debounceTime, map, observeOn } from 'rxjs/operators';\nimport { DynamicPage } from './dynamic-page.interface';\nimport { FD_DYNAMIC_PAGE } from './dynamic-page.tokens';\n\n@Component({\n selector: 'fd-dynamic-page',\n templateUrl: './dynamic-page.component.html',\n styleUrl: './dynamic-page.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n DynamicPageService,\n {\n provide: FD_DYNAMIC_PAGE,\n useExisting: DynamicPageComponent\n }\n ],\n imports: [CdkScrollable, ScrollbarDirective, FdTranslatePipe]\n})\nexport class DynamicPageComponent implements AfterViewInit, DynamicPage {\n /** Whether DynamicPage should snap on scroll */\n @Input() disableSnapOnScroll = false;\n\n /** aria label for the page */\n @Input() ariaLabel: Nullable<string>;\n\n /**\n * aria roledescription for the page\n * default: \"Dynamic Page\"\n *\n */\n @Input() ariaRoledescription = 'Dynamic Page';\n\n /**\n * sets background for content to `list`, `transparent`, or `solid` background color.\n * Default is `solid`.\n */\n @Input() background: DynamicPageBackgroundType = 'solid';\n\n /** Whether DynamicPage should have responsive sides spacing changing with Page window width.\n * max-width: 599px - small\n * min-width: 600px and max-width: 1023px - medium\n * min-width: 1024px and max-width: 1439px - large\n * min-width: 1440px - extra large\n */\n @Input() autoResponsive = true;\n\n /**\n * sets size which in turn adds corresponding padding for the size type.\n * size can be `small`, `medium`, `large`, or `extra-large`.\n */\n @Input()\n set size(size: DynamicPageResponsiveSize) {\n this._size = size;\n // Only set manual override when autoResponsive is false\n // When autoResponsive is true, size changes are driven by resize events\n if (!this.autoResponsive) {\n this._dynamicPageService.manualSizeOverride.set(size);\n }\n this._updateDynamicPageHeight();\n }\n\n get size(): DynamicPageResponsiveSize {\n return this._size;\n }\n\n /** Offset in PX\n * Should be added, when there is something else at the bottom and dynamic page is not expanded to bottom's corners\n */\n @Input() offset = 0;\n\n /**\n * Whether dynamic page should be expanded in whole page.\n */\n @Input() expandContent = true;\n\n /**\n * Whether dynamic page has position relative.\n * This is needed in cases where Dynamic Page is used in Flexible Column Layout and has a floating footer\n */\n @Input() positionRelative = false;\n\n /** @hidden reference to header component */\n @ContentChild(DynamicPageSubheaderComponent)\n _pageSubheaderComponent: DynamicPageSubheaderComponent;\n\n /** @hidden reference to title component */\n @ContentChild(DynamicPageHeaderComponent)\n _headerComponent: DynamicPageHeaderComponent;\n\n /** @hidden reference to content component */\n @ContentChildren(DynamicPageContentComponent, { descendants: true })\n _contentComponent: QueryList<DynamicPageContentComponent>;\n\n /** @hidden reference to footer component */\n @ContentChild(DynamicPageFooterComponent)\n _footerComponent: DynamicPageContentComponent;\n\n /** @hidden reference to tab component */\n @ContentChild(FD_TABLIST)\n _tabComponent: TabList;\n\n /** @hidden */\n @ViewChild('dynamicPageElement')\n _dynamicPageElement: ElementRef;\n\n /** @hidden */\n @ViewChild(ScrollbarDirective)\n _scrollbar: ScrollbarDirective;\n\n /** Whether the dynamic page is collapsed */\n collapsed = computed(() => this._dynamicPageService.collapsed());\n\n /** @hidden */\n _size: DynamicPageResponsiveSize = 'extra-large';\n\n /** @hidden */\n _headerCollapsible = true;\n\n /** @hidden */\n _isExpanded = computed(() => !this._dynamicPageService.collapsed());\n\n /** @hidden */\n private _headerButton = viewChild<ElementRef<HTMLSpanElement>>('headerButton');\n\n /** @hidden **/\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n protected _cd: ChangeDetectorRef,\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n private _dynamicPageService: DynamicPageService,\n @Optional() @Inject(FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT) private _columnLayout: FlexibleColumnLayoutComponent,\n @Optional() private _dynamicPageWrapper: DynamicPageWrapperDirective\n ) {\n // React to collapsed state changes\n effect(() => {\n this._dynamicPageService.collapsed();\n this._updateDynamicPageHeight();\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._sizeChangeHandle();\n this._removeShadowWhenTabComponent();\n this._listenOnResize();\n this._propagatePropertiesToChildren();\n this._setContentFooterSpacer();\n\n if (!this.disableSnapOnScroll && this._pageSubheaderComponent?.collapsible) {\n this._addScrollListeners();\n }\n\n setTimeout(() => this._updateDynamicPageHeight());\n\n this._cd.detectChanges();\n }\n\n /** toggle the visibility of the header on click of title area. */\n toggleCollapse(): void {\n if (this._headerCollapsible) {\n this._dynamicPageService.toggleCollapsed();\n this._headerButton()?.nativeElement.focus();\n }\n }\n\n /**\n * Triggers recheck for spacing and sizing of elements inside DynamicPage.\n */\n refreshSize(): void {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n }\n\n /** @hidden */\n _getScrollElement(): HTMLElement | null {\n return this._tabComponent?.scrollableElement?.nativeElement || this._scrollbar?.elementRef?.nativeElement;\n }\n\n /** @hidden */\n private _propagatePropertiesToChildren(): void {\n this._headerCollapsible = this._pageSubheaderComponent?.collapsible;\n }\n\n /** @hidden */\n private _getCalculatedFullHeight(element: HTMLElement): string | null {\n if (!element) {\n return null;\n }\n const distanceFromTop = element.getBoundingClientRect().top;\n return 'calc(100svh - ' + (distanceFromTop + this.offset) + 'px)';\n }\n\n /** @hidden */\n private _sizeChangeHandle(): void {\n if (!this.autoResponsive) {\n return;\n }\n\n // Use the article element, not the host element\n const element = this._dynamicPageElement?.nativeElement;\n if (!element) {\n return;\n }\n\n const dynamicPageWidth = element.getBoundingClientRect().width;\n\n // Ignore zero-width measurements (element is hidden during layout transitions)\n if (dynamicPageWidth === 0) {\n return;\n }\n\n this._dynamicPageService.pixelsSizeChanged.set(dynamicPageWidth);\n const size = this._dynamicPageService.responsiveSize();\n\n if (size !== this._size) {\n // Update internal size directly without triggering manual override\n // Manual override should only be set when user explicitly sets the size input\n this._size = size;\n this._cd.detectChanges();\n }\n }\n\n /** @hidden */\n private _addScrollListeners(): void {\n const element = this._getScrollElement();\n if (element) {\n fromEvent(element, 'scroll')\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const collapse =\n !this._dynamicPageService.pinned() &&\n (element.scrollTop > 0 || element.scrollHeight <= element.clientHeight);\n this._dynamicPageService.collapsed.set(collapse);\n });\n }\n }\n\n /** @hidden Listen for window resize and adjust tab and content positions accordingly */\n private _listenOnResize(): void {\n // When autoResponsive is enabled, observe the dynamic page article element itself\n // This catches both manual resizes AND programmatic layout changes\n if (this.autoResponsive && this._dynamicPageElement) {\n resizeObservable(this._dynamicPageElement.nativeElement)\n .pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n });\n } else {\n // Fallback to window/wrapper resize for non-responsive mode\n const listener = this._dynamicPageWrapper ? this._listenToWrapperResize() : this._listenToWindowResize();\n listener.pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n });\n }\n }\n\n /** @hidden */\n private _listenToWrapperResize(): Observable<ResizeObserverEntry[]> {\n return resizeObservable(this._dynamicPageWrapper.elementRef.nativeElement);\n }\n\n /** @hidden */\n private _listenToWindowResize(): Observable<ResizeObserverEntry[]> {\n return fromEvent(window, 'resize').pipe(map(() => []));\n }\n\n /** @hidden Sets the dynamic page height to fill available viewport space. */\n private _updateDynamicPageHeight(): void {\n if (!this._dynamicPageElement || !this.expandContent) {\n return;\n }\n const element = this._dynamicPageElement.nativeElement;\n this._renderer.setStyle(element, 'height', this._getCalculatedFullHeight(element));\n }\n\n /** @hidden */\n private _removeShadowWhenTabComponent(): void {\n if (!this._pageSubheaderComponent?.collapsible || !this._tabComponent) {\n return;\n }\n\n const pinCollapseShadowElement = this._pageSubheaderComponent?.pinCollapseContainer;\n\n if (pinCollapseShadowElement) {\n addClassNameToElement(\n this._renderer,\n pinCollapseShadowElement.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageCollapsibleHeaderPinCollapseNoShadow\n );\n }\n }\n\n /** @hidden */\n private _setContentFooterSpacer(): void {\n this._contentComponent.changes\n .pipe(\n startWith(this._contentComponent.toArray()),\n observeOn(asyncScheduler),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((components) => {\n components.forEach((content, index) => {\n /** show spacer when:\n * a) footer + no tabs = only last\n * b) footer + tabs, not stacked = all\n * c) footer + tabs, stacked = only last\n */\n content._toggleSpacer(\n this._footerComponent && (!this._tabComponent?.stackContent || index === components.length - 1)\n );\n });\n });\n }\n}\n","<article\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 [attr.aria-roledescription]=\"ariaRoledescription\"\n [style.position]=\"positionRelative ? 'relative' : null\"\n>\n <header class=\"fd-dynamic-page__header\" [class.fd-dynamic-page__header--not-collapsible]=\"!_headerCollapsible\">\n <div (click)=\"toggleCollapse()\">\n @if (_headerCollapsible) {\n <span\n #headerButton\n role=\"button\"\n [attr.aria-expanded]=\"_isExpanded()\"\n [attr.aria-labelledby]=\"_headerComponent.titleId()\"\n [attr.aria-label]=\"('coreDynamicPage.toggleHeader' | fdTranslate)()\"\n tabindex=\"0\"\n (keydown.enter)=\"toggleCollapse()\"\n class=\"fd-dynamic-page__header-button\"\n >\n </span>\n }\n <ng-content select=\"fd-dynamic-page-header\"></ng-content>\n </div>\n <ng-content select=\"fd-dynamic-page-subheader\"></ng-content>\n </header>\n <ng-content select=\"fd-tab-list\"></ng-content>\n <ng-content select=\"fd-wizard\"></ng-content>\n <ng-content select=\"fdp-icon-tab-bar\"></ng-content>\n @if (!_tabComponent) {\n <div fd-scrollbar>\n <ng-content select=\"fd-dynamic-page-content\"></ng-content>\n </div>\n } @else {\n <div>\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</article>\n","import { NgModule } from '@angular/core';\n\nimport { DynamicPageHeaderSubtitleDirective } from './directives/dynamic-page-header-subtitle.directive';\nimport { DynamicPageHeaderTitleDirective } from './directives/dynamic-page-header-title.directive';\nimport { DynamicPageContentComponent } from './dynamic-page-content/dynamic-page-content.component';\nimport { DynamicPageFooterComponent } from './dynamic-page-footer/dynamic-page-footer.component';\nimport { DynamicPageGlobalActionsComponent } from './dynamic-page-header/actions/dynamic-page-global-actions.component';\nimport { DynamicPageLayoutActionsComponent } from './dynamic-page-header/actions/dynamic-page-layout-actions.component';\nimport { DynamicPageTitleContentComponent } from './dynamic-page-header/actions/dynamic-page-title-content.component';\nimport { DynamicPageBreadcrumbComponent } from './dynamic-page-header/breadcrumb/dynamic-page-breadcrumb.component';\nimport { DynamicPageHeaderComponent } from './dynamic-page-header/header/dynamic-page-header.component';\nimport { DynamicPageSubheaderComponent } from './dynamic-page-header/subheader/dynamic-page-subheader.component';\nimport { DynamicPageWrapperDirective } from './dynamic-page-wrapper.directive';\nimport { DynamicPageComponent } from './dynamic-page.component';\n\nconst components = [\n DynamicPageComponent,\n DynamicPageHeaderComponent,\n DynamicPageGlobalActionsComponent,\n DynamicPageLayoutActionsComponent,\n DynamicPageSubheaderComponent,\n DynamicPageContentComponent,\n DynamicPageFooterComponent,\n DynamicPageTitleContentComponent,\n DynamicPageWrapperDirective,\n DynamicPageHeaderSubtitleDirective,\n DynamicPageHeaderTitleDirective,\n DynamicPageBreadcrumbComponent\n];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class DynamicPageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DynamicPageService","i2.DynamicPageWrapperDirective"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-dynamic-page.mjs","sources":["../../../../libs/core/dynamic-page/constants.ts","../../../../libs/core/dynamic-page/directives/dynamic-page-header-subtitle.directive.ts","../../../../libs/core/dynamic-page/directives/dynamic-page-header-title.directive.ts","../../../../libs/core/dynamic-page/utils.ts","../../../../libs/core/dynamic-page/dynamic-page-content/dynamic-page-content.component.ts","../../../../libs/core/dynamic-page/dynamic-page-content/dynamic-page-content.component.html","../../../../libs/core/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-base-actions.ts","../../../../libs/core/dynamic-page/dynamic-page.service.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.ts","../../../../libs/core/dynamic-page/tokens.ts","../../../../libs/core/dynamic-page/dynamic-page-header/breadcrumb/dynamic-page-breadcrumb.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.html","../../../../libs/core/dynamic-page/dynamic-page.config.ts","../../../../libs/core/dynamic-page/patch-header-i18n-texts.ts","../../../../libs/core/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.html","../../../../libs/core/dynamic-page/dynamic-page-wrapper.directive.ts","../../../../libs/core/dynamic-page/dynamic-page.tokens.ts","../../../../libs/core/dynamic-page/dynamic-page.component.ts","../../../../libs/core/dynamic-page/dynamic-page.component.html","../../../../libs/core/dynamic-page/dynamic-page.module.ts","../../../../libs/core/dynamic-page/fundamental-ngx-core-dynamic-page.ts"],"sourcesContent":["export const DYNAMIC_PAGE_CLASS_NAME = {\n dynamicPage: 'fd-dynamic-page',\n dynamicPageTitleArea: 'fd-dynamic-page__title-area',\n dynamicPageMainContainer: 'fd-dynamic-page__main-container',\n dynamicPageBreadcrumbTitleContainer: 'fd-dynamic-page__breadcrumb-title-container',\n dynamicPageTitleAreaCollapsed: 'fd-dynamic-page__title-area--collapsed',\n dynamicPageTitleContainer: 'fd-dynamic-page__title-container',\n dynamicPageTitle: 'fd-dynamic-page__title',\n dynamicPageBreadcrumb: 'fd-dynamic-page__breadcrumb',\n dynamicPageKeyInfo: 'fd-dynamic-page__title-content',\n dynamicPageToolbar: 'fd-dynamic-page__toolbar',\n dynamicPageLayoutActionsToolbar: 'fd-dynamic-page__toolbar--actions',\n dynamicPageLayoutContentToolbar: 'fd-dynamic-page__toolbar--content',\n dynamicPageHeader: 'fd-dynamic-page__header',\n dynamicPageCollapsibleHeader: 'fd-dynamic-page__collapsible-header',\n dynamicPageCollapsibleHeaderPinCollapseNoShadow:\n 'fd-dynamic-page__collapsible-header-visibility-container--no-shadow',\n dynamicPageTabs: 'fd-dynamic-page__tabs',\n dynamicPageTabsAddShadow: 'fd-dynamic-page__tabs--add-shadow',\n dynamicPageContent: 'fd-dynamic-page__content',\n dynamicPageSummarizedTitleArea: 'fd-dynamic-page__summarized-title-area',\n dynamicPageSummarizedTitleAreaExtraLarge: 'fd-dynamic-page__summarized-title-area',\n dynamicPageSummarizedTitleAreaNoShadow: 'fd-dynamic-page__summarized-title-area--no-shadow',\n dynamicPageSummarizedTitle: 'fd-dynamic-page__summarized-title',\n dynamicPageSummarizedTitleCollapsed: 'fd-dynamic-page__summarized-title-area--collapsed'\n} as const;\n\nexport type DynamicPageBackgroundType = 'solid' | 'list' | 'transparent';\n\nexport type DynamicPageResponsiveSize = 'small' | 'medium' | 'large' | 'extra-large';\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { DynamicPageTitleDirectiveContext } from '../models/title-directive-context';\n\n@Directive({\n selector: '[fdDynamicPageHeaderSubtitle]',\n standalone: true\n})\nexport class DynamicPageHeaderSubtitleDirective {\n /** Template reference. */\n templateRef = inject<TemplateRef<DynamicPageTitleDirectiveContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: DynamicPageHeaderSubtitleDirective,\n ctx: DynamicPageTitleDirectiveContext\n ): ctx is DynamicPageTitleDirectiveContext {\n return true;\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { DynamicPageTitleDirectiveContext } from '../models/title-directive-context';\n\n@Directive({\n selector: '[fdDynamicPageHeaderTitle]',\n standalone: true\n})\nexport class DynamicPageHeaderTitleDirective {\n /** Template reference. */\n templateRef = inject<TemplateRef<DynamicPageTitleDirectiveContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: DynamicPageHeaderTitleDirective,\n ctx: DynamicPageTitleDirectiveContext\n ): ctx is DynamicPageTitleDirectiveContext {\n return true;\n }\n}\n","import { Renderer2 } from '@angular/core';\nimport { DynamicPageResponsiveSize } from './constants';\n\nexport const addClassNameToElement = (renderer: Renderer2, element: Element, className: string): void => {\n renderer.addClass(element, className);\n};\n\n/** @hidden Returns dynamic page size based on width\n * @param width - dynamic page window width\n **/\nexport function dynamicPageWidthToSize(width: number): DynamicPageResponsiveSize {\n if (width <= 599) {\n return 'small';\n } else if (width <= 1023) {\n return 'medium';\n } else if (width <= 1439) {\n return 'large';\n }\n return 'extra-large';\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../constants';\nimport { addClassNameToElement } from '../utils';\n\n@Component({\n selector: 'fd-dynamic-page-content',\n templateUrl: './dynamic-page-content.component.html',\n styleUrl: './dynamic-page-content.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: []\n})\nexport class DynamicPageContentComponent implements OnInit {\n /**\n * label for the tab. If label is provided, tab navigation will be internally set up.\n */\n @Input()\n tabLabel: string;\n\n /**\n * a unique identifier for this content\n */\n @Input()\n id: string;\n\n /** @hidden */\n _showSpacer = false;\n\n /** @hidden */\n constructor(\n public readonly _renderer: Renderer2,\n public readonly elementRef: ElementRef<HTMLElement>,\n private readonly _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._addClassNameToHostElement(DYNAMIC_PAGE_CLASS_NAME.dynamicPageContent);\n }\n\n /** @hidden */\n _toggleSpacer(state: boolean): void {\n this._showSpacer = state;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _addClassNameToHostElement(className: string): void {\n addClassNameToElement(this._renderer, this.elementRef.nativeElement, className);\n }\n}\n","<ng-content></ng-content>\n@if (_showSpacer) {\n <div class=\"footer-spacer\"></div>\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-dynamic-page-footer',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n})\nexport class DynamicPageFooterComponent {}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\n@Directive()\nexport class DynamicPageBaseActions implements HasElementRef {\n /** Element reference to the host element. */\n readonly elementRef = inject(ElementRef);\n\n /**\n * Adds a CSS class to the toolbar element within this component.\n * @param _class The CSS class name to add to the toolbar.\n */\n addClassToToolbar(_class: string): void {\n const toolbarEl = this.elementRef.nativeElement.querySelector('.fd-toolbar');\n if (toolbarEl) {\n toolbarEl.classList.add(_class);\n }\n }\n}\n","import { computed, Injectable, signal } from '@angular/core';\nimport { DynamicPageResponsiveSize } from './constants';\nimport { dynamicPageWidthToSize } from './utils';\n\n@Injectable()\nexport class DynamicPageService {\n /** @hidden */\n readonly collapsed = signal(false);\n\n /** @hidden */\n readonly pinned = signal(false);\n\n /** @hidden */\n readonly pixelsSizeChanged = signal(0);\n\n /**\n * Manual size override. When set, takes precedence over auto-computed size.\n * Used when autoResponsive is false and size is set manually via input.\n */\n readonly manualSizeOverride = signal<DynamicPageResponsiveSize | null>(null);\n\n /**\n * Computed responsive size based on pixel width or manual override.\n * Returns 'small', 'medium', 'large', or 'extra-large'.\n * Defaults to 'large' when pixel width hasn't been measured yet (0).\n */\n readonly responsiveSize = computed<DynamicPageResponsiveSize>(() => {\n const manualOverride = this.manualSizeOverride();\n if (manualOverride) {\n return manualOverride;\n }\n const width = this.pixelsSizeChanged();\n // Don't compute size as 'small' before the page width has been measured\n if (width === 0) {\n return 'large';\n }\n return dynamicPageWidthToSize(width);\n });\n\n /** @hidden */\n toggleCollapsed(): void {\n this.collapsed.update((collapsed) => !collapsed);\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n Injector,\n ViewEncapsulation\n} from '@angular/core';\nimport { ToolbarComponent } from '@fundamental-ngx/core/toolbar';\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../../constants';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { DynamicPageBaseActions } from './dynamic-page-base-actions';\n\n@Component({\n selector: 'fd-dynamic-page-global-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'toolbar'\n }\n})\nexport class DynamicPageGlobalActionsComponent extends DynamicPageBaseActions {\n /** @hidden */\n protected readonly _toolbarComponent = contentChild(ToolbarComponent);\n\n /** Whether the toolbar should show overflow (size is small). */\n protected readonly shouldOverflow = computed(() => this._dynamicPageService?.responsiveSize() === 'small');\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private readonly _dynamicPageService = inject(DynamicPageService, { optional: true });\n\n constructor() {\n super();\n\n // Add toolbar class after render when DOM is ready\n afterNextRender(() => {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar);\n });\n\n // React to size changes\n effect(() => {\n const shouldOverflow = this.shouldOverflow();\n const toolbar = this._toolbarComponent();\n if (toolbar) {\n this._handleOverflow(toolbar, shouldOverflow);\n }\n });\n }\n\n /** @hidden */\n private _handleOverflow(toolbar: ToolbarComponent, shouldBeHidden: boolean): void {\n toolbar.forceOverflow = shouldBeHidden;\n toolbar.shouldOverflow = shouldBeHidden;\n toolbar.detectChanges();\n afterNextRender(\n () => {\n toolbar.updateCollapsibleItems();\n },\n { injector: this._injector }\n );\n }\n}\n","import { afterNextRender, ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../../constants';\nimport { DynamicPageBaseActions } from './dynamic-page-base-actions';\n\n@Component({\n selector: 'fd-dynamic-page-layout-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'toolbar',\n '[style.margin-inline-start]': '\"auto\"'\n }\n})\nexport class DynamicPageLayoutActionsComponent extends DynamicPageBaseActions {\n constructor() {\n super();\n\n // Add toolbar classes after render when DOM is ready\n afterNextRender(() => {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageLayoutActionsToolbar);\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar);\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { ToolbarComponent, ToolbarItemDirective } from '@fundamental-ngx/core/toolbar';\nimport { DynamicPageService } from '../../dynamic-page.service';\n\n@Component({\n selector: 'fd-dynamic-page-title-content',\n template: `\n @if (_isSmall()) {\n <fd-toolbar\n fdType=\"transparent\"\n (click)=\"$event.stopPropagation()\"\n class=\"dynamicPageLayoutContentToolbar\"\n [clearBorder]=\"true\"\n [forceOverflow]=\"true\"\n [shouldOverflow]=\"true\"\n >\n <div fd-toolbar-item>\n <ng-template [ngTemplateOutlet]=\"templateContentRef\"></ng-template>\n </div>\n </fd-toolbar>\n } @else {\n <div\n class=\"fd-dynamic-page__title-content\"\n [class.fd-dynamic-page__title-content--wrap]=\"titleContentWrap()\"\n >\n <ng-template [ngTemplateOutlet]=\"templateContentRef\"></ng-template>\n </div>\n }\n <ng-template #templateContentRef>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [contentDensityObserverProviders()],\n imports: [ToolbarComponent, ToolbarItemDirective, NgTemplateOutlet]\n})\nexport class DynamicPageTitleContentComponent {\n /**\n * Whether the title content text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly titleContentWrap = input(false, { transform: booleanAttribute });\n\n /** @hidden */\n protected readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** Whether the current size is small. */\n protected readonly _isSmall = computed(() => this._dynamicPageService?.responsiveSize() === 'small');\n\n /** @hidden */\n private readonly _dynamicPageService = inject(DynamicPageService, { optional: true });\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT = new InjectionToken('DynamicPageBreadcrumbComponent');\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT } from '../../tokens';\n\n@Component({\n selector: 'fd-dynamic-page-breadcrumb',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT,\n useExisting: DynamicPageBreadcrumbComponent\n }\n ],\n standalone: true\n})\nexport class DynamicPageBreadcrumbComponent {}\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { BreadcrumbComponent, FD_BREADCRUMB_COMPONENT } from '@fundamental-ngx/core/breadcrumb';\nimport { DYNAMIC_PAGE_HEADER_TOKEN } from '@fundamental-ngx/core/shared';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IgnoreClickOnSelectionDirective } from '@fundamental-ngx/cdk/utils';\nimport { MessageStripComponent } from '@fundamental-ngx/core/message-strip';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { DYNAMIC_PAGE_CLASS_NAME, DynamicPageResponsiveSize } from '../../constants';\nimport { DynamicPageHeaderSubtitleDirective } from '../../directives/dynamic-page-header-subtitle.directive';\nimport { DynamicPageHeaderTitleDirective } from '../../directives/dynamic-page-header-title.directive';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT } from '../../tokens';\nimport { addClassNameToElement } from '../../utils';\nimport { DynamicPageGlobalActionsComponent } from '../actions/dynamic-page-global-actions.component';\nimport { DynamicPageLayoutActionsComponent } from '../actions/dynamic-page-layout-actions.component';\nimport { DynamicPageTitleContentComponent } from '../actions/dynamic-page-title-content.component';\nimport { DynamicPageBreadcrumbComponent } from '../breadcrumb/dynamic-page-breadcrumb.component';\n\nexport const ActionSquashBreakpointPx = 1280;\n\nlet dynamicPageTitleId = 0;\n\n@Component({\n selector: 'fd-dynamic-page-header',\n templateUrl: './dynamic-page-header.component.html',\n styleUrl: './dynamic-page-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: DYNAMIC_PAGE_HEADER_TOKEN,\n useExisting: DynamicPageHeaderComponent\n }\n ],\n imports: [NgTemplateOutlet, IgnoreClickOnSelectionDirective, FdTranslatePipe]\n})\nexport class DynamicPageHeaderComponent implements OnInit {\n /**\n * The title text displayed in the dynamic page header.\n * @default ''\n */\n readonly title = input('');\n\n /**\n * Whether the title text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly titleWrap = input(false, { transform: booleanAttribute });\n\n /**\n * The subtitle text displayed below the title in the dynamic page header.\n * @default ''\n */\n readonly subtitle = input('');\n\n /**\n * Whether the subtitle text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly subtitleWrap = input(false, { transform: booleanAttribute });\n\n /**\n * The heading level (h1-h6) for the dynamic page title.\n * Determines the semantic hierarchy for accessibility and SEO.\n * @default 2\n */\n readonly headingLevel = input<HeadingLevel>(2);\n\n /**\n * The heading level (h1-h6) for the dynamic page subtitle.\n * When provided, the subtitle will be rendered as a semantic heading with role=\"heading\".\n * When not provided (undefined/null), the subtitle is rendered as plain text without a heading role.\n * @default undefined\n */\n readonly subtitleHeadingLevel = input<HeadingLevel | undefined | null>(undefined);\n\n /**\n * The unique ID for the dynamic page title element.\n * Used for ARIA relationships and programmatic reference.\n * @default 'fd-dynamic-page-title-id-{auto-increment}'\n */\n readonly titleId = input(`fd-dynamic-page-title-id-${++dynamicPageTitleId}`);\n\n /**\n * @hidden\n * Content child query for custom subtitle template.\n * When provided via fdDynamicPageHeaderSubtitle directive, overrides the subtitle text input.\n */\n readonly _subtitleTemplate = contentChild(DynamicPageHeaderSubtitleDirective);\n\n /**\n * @hidden\n * Content child query for custom title template.\n * When provided via fdDynamicPageHeaderTitle directive, overrides the title text input.\n */\n readonly _titleTemplate = contentChild(DynamicPageHeaderTitleDirective);\n\n /**\n * Optional template ref for message strip content.\n * When provided, the message strip container is rendered using this template\n * instead of relying on ng-content projection.\n * This is used by Platform Dynamic Page which cannot project via ng-content.\n */\n readonly messageStripTemplate = input<TemplateRef<any> | null>(null);\n\n /**\n * @hidden\n * Content child query for MessageStripComponent.\n * When present, the message strip will be rendered below the subtitle in the header.\n */\n readonly messageStrip = contentChild(MessageStripComponent);\n\n /** @hidden */\n readonly _dynamicPageBreadcrumbComponent = contentChild(FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT, {\n read: DynamicPageBreadcrumbComponent\n });\n\n /** @hidden */\n readonly _breadcrumbComponent = contentChild(FD_BREADCRUMB_COMPONENT, { read: BreadcrumbComponent });\n\n /** @hidden */\n readonly _globalActions = contentChild(DynamicPageGlobalActionsComponent);\n\n /** @hidden */\n readonly _layoutActions = contentChild(DynamicPageLayoutActionsComponent);\n\n /** @hidden */\n readonly _contentToolbar = contentChild(DynamicPageTitleContentComponent);\n\n /**\n * @hidden\n * Computed signal indicating whether actions should be displayed in collapsed/squashed mode.\n * True when viewport width is below the ActionSquashBreakpointPx threshold (1280px).\n */\n readonly _actionsSquashed = computed(() => this._dynamicPageService.pixelsSizeChanged() < ActionSquashBreakpointPx);\n\n /**\n * @hidden\n * Computed numeric heading level extracted from the headingLevel input.\n * Strips non-digit characters and returns integer value.\n */\n readonly _headingLevel = computed(() =>\n this.headingLevel() ? Number.parseInt(`${this.headingLevel()}`.replace(/\\D/g, ''), 10) : 2\n );\n\n /**\n * @hidden\n * Tracks the current responsive size of the dynamic page.\n * Updated by effect when DynamicPageService.responsiveSize changes.\n */\n _size: DynamicPageResponsiveSize;\n\n /** @hidden */\n readonly _dynamicPageService = inject(DynamicPageService);\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n constructor() {\n // React to size changes and update breadcrumb\n effect(() => {\n const size = this._dynamicPageService.responsiveSize();\n this._size = size;\n\n const breadcrumb = this._breadcrumbComponent();\n\n if (breadcrumb) {\n // Add custom class on first render\n addClassNameToElement(\n this._renderer,\n breadcrumb.elementRef.nativeElement,\n 'fd-dynamic-page__breadcrumb'\n );\n }\n });\n\n // Trigger breadcrumb resize after view is fully initialized\n afterNextRender(() => {\n const breadcrumb = this._breadcrumbComponent();\n\n if (breadcrumb && typeof breadcrumb.onResize === 'function') {\n breadcrumb.onResize();\n }\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n addClassNameToElement(\n this._renderer,\n this._elementRef.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageTitleArea\n );\n }\n\n /**\n * @hidden\n * Prevents click events from bubbling up to parent elements.\n * Used to stop the header collapse toggle when interacting with header content.\n */\n stopPropagation(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n @if (_dynamicPageBreadcrumbComponent() || _actionsSquashed()) {\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n @if (_dynamicPageBreadcrumbComponent()) {\n <nav\n [attr.aria-label]=\"('coreDynamicPage.breadcrumbsLabel' | fdTranslate)()\"\n class=\"fd-dynamic-page__breadcrumb-wrapper\"\n (click)=\"stopPropagation($event)\"\n >\n <ng-content select=\"fd-dynamic-page-breadcrumb\"></ng-content>\n </nav>\n }\n\n @if (_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-dynamic-page__title-container\">\n @if (_dynamicPageService.collapsed()) {\n <ng-content select=\"fd-facet\"></ng-content>\n }\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <div class=\"fd-dynamic-page__title-container\">\n <span\n role=\"heading\"\n class=\"fd-dynamic-page__title\"\n [attr.aria-level]=\"_headingLevel()\"\n [id]=\"titleId()\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate() ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-template [ngTemplateOutlet]=\"dynamicPageGlobalActionsRef\"></ng-template>\n @if (!_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n </div>\n @if (_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"\n ></ng-template>\n </span>\n }\n </div>\n </div>\n </div>\n</div>\n@if (!_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n class=\"fd-dynamic-page__subtitle\"\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"></ng-template>\n </span>\n}\n\n@if (messageStrip() || messageStripTemplate()) {\n <div class=\"fd-dynamic-page__message-strip-container\">\n @if (messageStripTemplate()) {\n <ng-template [ngTemplateOutlet]=\"messageStripTemplate()!\"></ng-template>\n } @else {\n <ng-content select=\"fd-message-strip\"></ng-content>\n }\n </div>\n}\n\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #subtitleRef>\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #defaultSubtitle>\n {{ subtitle() }}\n</ng-template>\n<ng-template #defaultTitle>\n {{ title() }}\n</ng-template>\n","import { Injectable } from '@angular/core';\n\n/**\n * Default options for core dynamic-page\n * @deprecated use i18n coreDynamicPage key instead\n */\n@Injectable()\nexport class DynamicPageConfig {\n /**\n * aria label for expand/collapse button when the Dynamic Page is collapsed\n */\n expandLabel = 'Expand Header';\n\n /**\n * aria label for expand/collapse button when the Dynamic Page is expanded\n */\n collapseLabel = 'Collapse Header';\n\n /**\n * aria label for pin button when the Dynamic Page should be pinned\n */\n pinLabel = 'Pin Header';\n\n /**\n * aria label for pin button when the Panel should be unpinned\n */\n unpinLabel = 'Unpin Header';\n}\n","import { computed, inject, Signal } from '@angular/core';\nimport { FD_LANGUAGE_SIGNAL, FdLanguage } from '@fundamental-ngx/i18n';\nimport { DynamicPageConfig } from './dynamic-page.config';\n\n/**\n * Patch header i18n texts\n */\nexport function patchHeaderI18nTexts(config?: DynamicPageConfig): Signal<FdLanguage> {\n const langSignal = inject(FD_LANGUAGE_SIGNAL, { skipSelf: true });\n if (config) {\n return computed(\n () =>\n ({\n ...langSignal(),\n coreDynamicPage: {\n ...config\n }\n }) as FdLanguage\n );\n }\n return langSignal;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_LANGUAGE_SIGNAL, resolveTranslationSignalFn } from '@fundamental-ngx/i18n';\nimport { DynamicPageConfig } from '../../dynamic-page.config';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { patchHeaderI18nTexts } from '../../patch-header-i18n-texts';\n\nlet dynamicPageSubHeaderId = 0;\n@Component({\n selector: 'fd-dynamic-page-subheader',\n templateUrl: './dynamic-page-subheader.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ButtonComponent, IconComponent],\n providers: [\n {\n provide: FD_LANGUAGE_SIGNAL,\n useFactory: patchHeaderI18nTexts,\n deps: [[new Optional(), DynamicPageConfig]]\n }\n ]\n})\nexport class DynamicPageSubheaderComponent {\n /**\n * whether the header can be collapsed. True by default. If set to false, both pin/collapse buttons disappear\n * and the header stays visible\n */\n @Input()\n collapsible = true;\n\n /**\n * whether the header should be allowed to be pinned or unpinned. When set, the pin button shows up.\n * Pinning the header will make the header stay visible and the collapse button(if present) will disappear until unpinned.\n */\n @Input()\n pinnable = false;\n\n /**\n * the initial state of the header. Set to true if header should be collapsed.\n */\n @Input()\n set collapsed(collapsed: boolean) {\n this._dynamicPageService.collapsed.set(collapsed);\n }\n\n get collapsed(): boolean {\n return this._dynamicPageService.collapsed();\n }\n\n /**\n * ARIA label for button when the header is collapsed\n */\n @Input()\n expandLabel: string;\n\n /**\n * ARIA label for button when the header is expanded\n */\n @Input()\n collapseLabel: string;\n\n /**\n * id for header\n */\n @Input()\n @HostBinding('attr.id')\n id = `fd-dynamic-page-header-id-${dynamicPageSubHeaderId++}`;\n\n /**\n * aria label for header\n */\n @Input()\n headerAriaLabel: Nullable<string> = 'Collapsed Header';\n\n /**\n * aria label for pin state of pin button\n */\n @Input()\n pinAriaLabel: string;\n\n /**\n * aria label for unpin state of pin button\n */\n @Input()\n unpinAriaLabel: string;\n\n /** Collapse/Expand change event raised */\n @Output()\n collapsedChange = new EventEmitter<boolean>();\n\n /** Reference to page header content */\n @ViewChild('pincollapseContainer')\n pinCollapseContainer: ElementRef<HTMLElement>;\n\n /**\n * id for collapsible header\n */\n collapsibleHeaderId = `${this.id}-collapsible`;\n\n /**\n * Aria Label for the toggle button\n * @hidden\n **/\n get _toggleButtonAriaLabel(): string {\n const expandLabel = this.expandLabel || this._defaultExpandLabel();\n const collapseLabel = this.collapseLabel || this._defaultCollapseLabel();\n return this._dynamicPageService.collapsed() ? expandLabel : collapseLabel;\n }\n\n /**\n * Aria Label for the pin button\n * @hidden\n **/\n get _pinButtonAriaLabel(): string {\n const pinLabel = this.pinAriaLabel || this._defaultPinLabel();\n const unpinLabel = this.unpinAriaLabel || this._defaultUnpinLabel();\n return this._pinned ? unpinLabel : pinLabel;\n }\n\n /**\n * tracking if pin button is pinned\n */\n _pinned = false;\n\n /** @hidden */\n private _resolveTranslationSignal = resolveTranslationSignalFn();\n\n /** @hidden */\n private _defaultExpandLabel = this._resolveTranslationSignal('coreDynamicPage.expandLabel');\n\n /** @hidden */\n private _defaultCollapseLabel = this._resolveTranslationSignal('coreDynamicPage.collapseLabel');\n\n /** @hidden */\n private _defaultPinLabel = this._resolveTranslationSignal('coreDynamicPage.pinLabel');\n\n /** @hidden */\n private _defaultUnpinLabel = this._resolveTranslationSignal('coreDynamicPage.unpinLabel');\n\n /** @hidden */\n constructor(readonly _dynamicPageService: DynamicPageService) {}\n\n /**\n * toggles the state of the header and\n * handles expanded/collapsed event\n */\n toggleCollapse(): void {\n this._pinned = false;\n this.collapsed = !this.collapsed;\n this.collapsedChange.emit(this.collapsed);\n }\n\n /**\n * @hidden\n * click action on pin button\n */\n togglePinned(): void {\n this._pinned = !this._pinned;\n this._dynamicPageService.pinned.set(this._pinned);\n }\n}\n","<div class=\"fd-dynamic-page__collapsible-header-container\">\n <section\n role=\"region\"\n class=\"fd-dynamic-page__collapsible-header\"\n [attr.aria-label]=\"headerAriaLabel\"\n [attr.aria-hidden]=\"_dynamicPageService.collapsed()\"\n [attr.id]=\"collapsibleHeaderId\"\n #headerContent\n >\n <ng-content></ng-content>\n </section>\n @if (collapsible) {\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container\" #pincollapseContainer>\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 [ariaLabel]=\"_toggleButtonAriaLabel\"\n [attr.title]=\"_toggleButtonAriaLabel\"\n [attr.aria-expanded]=\"!_dynamicPageService.collapsed()\"\n [attr.aria-controls]=\"id\"\n (click)=\"toggleCollapse()\"\n >\n <fd-icon [glyph]=\"_dynamicPageService.collapsed() ? 'slim-arrow-down' : 'slim-arrow-up'\"></fd-icon>\n </button>\n @if (pinnable && !_dynamicPageService.collapsed()) {\n <button\n fd-button\n class=\"fd-dynamic-page__pin-button\"\n [ariaLabel]=\"_pinButtonAriaLabel\"\n [attr.title]=\"_pinButtonAriaLabel\"\n [toggled]=\"_pinned\"\n (click)=\"togglePinned()\"\n >\n <fd-icon glyph=\"pushpin-off\"></fd-icon>\n </button>\n }\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--right-gradient\"></div>\n </div>\n }\n</div>\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[fdDynamicPageWrapper], [fd-dynamic-page-wrapper]',\n standalone: true\n})\nexport class DynamicPageWrapperDirective {\n /** @hidden */\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { DynamicPage } from './dynamic-page.interface';\n\nexport const FD_DYNAMIC_PAGE = new InjectionToken<DynamicPage>('FD_DYNAMIC_PAGE');\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n Inject,\n Input,\n Optional,\n QueryList,\n Renderer2,\n viewChild,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport {\n FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT,\n FlexibleColumnLayoutComponent\n} from '@fundamental-ngx/core/flexible-column-layout';\nimport { DYNAMIC_PAGE_CLASS_NAME, DynamicPageBackgroundType, DynamicPageResponsiveSize } from './constants';\nimport { DynamicPageContentComponent } from './dynamic-page-content/dynamic-page-content.component';\nimport { DynamicPageFooterComponent } from './dynamic-page-footer/dynamic-page-footer.component';\nimport { DynamicPageHeaderComponent } from './dynamic-page-header/header/dynamic-page-header.component';\nimport { DynamicPageSubheaderComponent } from './dynamic-page-header/subheader/dynamic-page-subheader.component';\nimport { DynamicPageWrapperDirective } from './dynamic-page-wrapper.directive';\nimport { DynamicPageService } from './dynamic-page.service';\nimport { addClassNameToElement } from './utils';\n\nimport { CdkScrollable } from '@angular/cdk/overlay';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FD_TABLIST, TabList } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { asyncScheduler, fromEvent, Observable, startWith } from 'rxjs';\nimport { debounceTime, map, observeOn } from 'rxjs/operators';\nimport { DynamicPage } from './dynamic-page.interface';\nimport { FD_DYNAMIC_PAGE } from './dynamic-page.tokens';\n\n@Component({\n selector: 'fd-dynamic-page',\n templateUrl: './dynamic-page.component.html',\n styleUrl: './dynamic-page.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n DynamicPageService,\n {\n provide: FD_DYNAMIC_PAGE,\n useExisting: DynamicPageComponent\n }\n ],\n imports: [CdkScrollable, ScrollbarDirective, FdTranslatePipe]\n})\nexport class DynamicPageComponent implements AfterViewInit, DynamicPage {\n /** Whether DynamicPage should snap on scroll */\n @Input() disableSnapOnScroll = false;\n\n /** aria label for the page */\n @Input() ariaLabel: Nullable<string>;\n\n /**\n * aria roledescription for the page\n * default: \"Dynamic Page\"\n *\n */\n @Input() ariaRoledescription = 'Dynamic Page';\n\n /**\n * sets background for content to `list`, `transparent`, or `solid` background color.\n * Default is `solid`.\n */\n @Input() background: DynamicPageBackgroundType = 'solid';\n\n /** Whether DynamicPage should have responsive sides spacing changing with Page window width.\n * max-width: 599px - small\n * min-width: 600px and max-width: 1023px - medium\n * min-width: 1024px and max-width: 1439px - large\n * min-width: 1440px - extra large\n */\n @Input() autoResponsive = true;\n\n /**\n * sets size which in turn adds corresponding padding for the size type.\n * size can be `small`, `medium`, `large`, or `extra-large`.\n */\n @Input()\n set size(size: DynamicPageResponsiveSize) {\n this._size = size;\n // Only set manual override when autoResponsive is false\n // When autoResponsive is true, size changes are driven by resize events\n if (!this.autoResponsive) {\n this._dynamicPageService.manualSizeOverride.set(size);\n }\n this._updateDynamicPageHeight();\n }\n\n get size(): DynamicPageResponsiveSize {\n return this._size;\n }\n\n /** Offset in PX\n * Should be added, when there is something else at the bottom and dynamic page is not expanded to bottom's corners\n */\n @Input() offset = 0;\n\n /**\n * Whether dynamic page should be expanded in whole page.\n */\n @Input() expandContent = true;\n\n /**\n * Whether dynamic page has position relative.\n * This is needed in cases where Dynamic Page is used in Flexible Column Layout and has a floating footer\n */\n @Input() positionRelative = false;\n\n /** @hidden reference to header component */\n @ContentChild(DynamicPageSubheaderComponent)\n _pageSubheaderComponent: DynamicPageSubheaderComponent;\n\n /** @hidden reference to title component */\n @ContentChild(DynamicPageHeaderComponent)\n _headerComponent: DynamicPageHeaderComponent;\n\n /** @hidden reference to content component */\n @ContentChildren(DynamicPageContentComponent, { descendants: true })\n _contentComponent: QueryList<DynamicPageContentComponent>;\n\n /** @hidden reference to footer component */\n @ContentChild(DynamicPageFooterComponent)\n _footerComponent: DynamicPageContentComponent;\n\n /** @hidden reference to tab component */\n @ContentChild(FD_TABLIST)\n _tabComponent: TabList;\n\n /** @hidden */\n @ViewChild('dynamicPageElement')\n _dynamicPageElement: ElementRef;\n\n /** @hidden */\n @ViewChild(ScrollbarDirective)\n _scrollbar: ScrollbarDirective;\n\n /** Whether the dynamic page is collapsed */\n collapsed = computed(() => this._dynamicPageService.collapsed());\n\n /** @hidden */\n _size: DynamicPageResponsiveSize = 'extra-large';\n\n /** @hidden */\n _headerCollapsible = true;\n\n /** @hidden */\n _isExpanded = computed(() => !this._dynamicPageService.collapsed());\n\n /** @hidden */\n private _headerButton = viewChild<ElementRef<HTMLSpanElement>>('headerButton');\n\n /** @hidden **/\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n protected _cd: ChangeDetectorRef,\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n private _dynamicPageService: DynamicPageService,\n @Optional() @Inject(FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT) private _columnLayout: FlexibleColumnLayoutComponent,\n @Optional() private _dynamicPageWrapper: DynamicPageWrapperDirective\n ) {\n // React to collapsed state changes\n effect(() => {\n this._dynamicPageService.collapsed();\n this._updateDynamicPageHeight();\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._sizeChangeHandle();\n this._removeShadowWhenTabComponent();\n this._listenOnResize();\n this._propagatePropertiesToChildren();\n this._setContentFooterSpacer();\n\n if (!this.disableSnapOnScroll && this._pageSubheaderComponent?.collapsible) {\n this._addScrollListeners();\n }\n\n setTimeout(() => this._updateDynamicPageHeight());\n\n this._cd.detectChanges();\n }\n\n /** toggle the visibility of the header on click of title area. */\n toggleCollapse(): void {\n if (this._headerCollapsible) {\n this._dynamicPageService.toggleCollapsed();\n this._headerButton()?.nativeElement.focus();\n }\n }\n\n /**\n * Triggers recheck for spacing and sizing of elements inside DynamicPage.\n */\n refreshSize(): void {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n }\n\n /** @hidden */\n _getScrollElement(): HTMLElement | null {\n return this._tabComponent?.scrollableElement?.nativeElement || this._scrollbar?.elementRef?.nativeElement;\n }\n\n /** @hidden */\n private _propagatePropertiesToChildren(): void {\n this._headerCollapsible = this._pageSubheaderComponent?.collapsible;\n }\n\n /** @hidden */\n private _getCalculatedFullHeight(element: HTMLElement): string | null {\n if (!element) {\n return null;\n }\n const distanceFromTop = element.getBoundingClientRect().top;\n return 'calc(100svh - ' + (distanceFromTop + this.offset) + 'px)';\n }\n\n /** @hidden */\n private _sizeChangeHandle(): void {\n if (!this.autoResponsive) {\n return;\n }\n\n // Use the article element, not the host element\n const element = this._dynamicPageElement?.nativeElement;\n if (!element) {\n return;\n }\n\n const dynamicPageWidth = element.getBoundingClientRect().width;\n\n // Ignore zero-width measurements (element is hidden during layout transitions)\n if (dynamicPageWidth === 0) {\n return;\n }\n\n this._dynamicPageService.pixelsSizeChanged.set(dynamicPageWidth);\n const size = this._dynamicPageService.responsiveSize();\n\n if (size !== this._size) {\n // Update internal size directly without triggering manual override\n // Manual override should only be set when user explicitly sets the size input\n this._size = size;\n this._cd.detectChanges();\n }\n }\n\n /** @hidden */\n private _addScrollListeners(): void {\n const element = this._getScrollElement();\n if (element) {\n fromEvent(element, 'scroll')\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const collapse =\n !this._dynamicPageService.pinned() &&\n (element.scrollTop > 0 || element.scrollHeight <= element.clientHeight);\n this._dynamicPageService.collapsed.set(collapse);\n });\n }\n }\n\n /** @hidden Listen for window resize and adjust tab and content positions accordingly */\n private _listenOnResize(): void {\n // When autoResponsive is enabled, observe the dynamic page article element itself\n // This catches both manual resizes AND programmatic layout changes\n if (this.autoResponsive && this._dynamicPageElement) {\n resizeObservable(this._dynamicPageElement.nativeElement)\n .pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n });\n } else {\n // Fallback to window/wrapper resize for non-responsive mode\n const listener = this._dynamicPageWrapper ? this._listenToWrapperResize() : this._listenToWindowResize();\n listener.pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n });\n }\n }\n\n /** @hidden */\n private _listenToWrapperResize(): Observable<ResizeObserverEntry[]> {\n return resizeObservable(this._dynamicPageWrapper.elementRef.nativeElement);\n }\n\n /** @hidden */\n private _listenToWindowResize(): Observable<ResizeObserverEntry[]> {\n return fromEvent(window, 'resize').pipe(map(() => []));\n }\n\n /** @hidden Sets the dynamic page height to fill available viewport space. */\n private _updateDynamicPageHeight(): void {\n if (!this._dynamicPageElement || !this.expandContent) {\n return;\n }\n const element = this._dynamicPageElement.nativeElement;\n this._renderer.setStyle(element, 'height', this._getCalculatedFullHeight(element));\n }\n\n /** @hidden */\n private _removeShadowWhenTabComponent(): void {\n if (!this._pageSubheaderComponent?.collapsible || !this._tabComponent) {\n return;\n }\n\n const pinCollapseShadowElement = this._pageSubheaderComponent?.pinCollapseContainer;\n\n if (pinCollapseShadowElement) {\n addClassNameToElement(\n this._renderer,\n pinCollapseShadowElement.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageCollapsibleHeaderPinCollapseNoShadow\n );\n }\n }\n\n /** @hidden */\n private _setContentFooterSpacer(): void {\n this._contentComponent.changes\n .pipe(\n startWith(this._contentComponent.toArray()),\n observeOn(asyncScheduler),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((components) => {\n components.forEach((content, index) => {\n /** show spacer when:\n * a) footer + no tabs = only last\n * b) footer + tabs, not stacked = all\n * c) footer + tabs, stacked = only last\n */\n content._toggleSpacer(\n this._footerComponent && (!this._tabComponent?.stackContent || index === components.length - 1)\n );\n });\n });\n }\n}\n","<article\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 [attr.aria-roledescription]=\"ariaRoledescription\"\n [style.position]=\"positionRelative ? 'relative' : null\"\n>\n <header class=\"fd-dynamic-page__header\" [class.fd-dynamic-page__header--not-collapsible]=\"!_headerCollapsible\">\n <div (click)=\"toggleCollapse()\">\n @if (_headerCollapsible) {\n <span\n #headerButton\n role=\"button\"\n [attr.aria-expanded]=\"_isExpanded()\"\n [attr.aria-labelledby]=\"_headerComponent.titleId()\"\n [attr.aria-label]=\"('coreDynamicPage.toggleHeader' | fdTranslate)()\"\n tabindex=\"0\"\n (keydown.enter)=\"toggleCollapse()\"\n class=\"fd-dynamic-page__header-button\"\n >\n </span>\n }\n <ng-content select=\"fd-dynamic-page-header\"></ng-content>\n </div>\n <ng-content select=\"fd-dynamic-page-subheader\"></ng-content>\n </header>\n <ng-content select=\"fd-tab-list\"></ng-content>\n <ng-content select=\"fd-wizard\"></ng-content>\n <ng-content select=\"fdp-icon-tab-bar\"></ng-content>\n @if (!_tabComponent) {\n <div fd-scrollbar>\n <ng-content select=\"fd-dynamic-page-content\"></ng-content>\n </div>\n } @else {\n <div>\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</article>\n","import { NgModule } from '@angular/core';\n\nimport { DynamicPageHeaderSubtitleDirective } from './directives/dynamic-page-header-subtitle.directive';\nimport { DynamicPageHeaderTitleDirective } from './directives/dynamic-page-header-title.directive';\nimport { DynamicPageContentComponent } from './dynamic-page-content/dynamic-page-content.component';\nimport { DynamicPageFooterComponent } from './dynamic-page-footer/dynamic-page-footer.component';\nimport { DynamicPageGlobalActionsComponent } from './dynamic-page-header/actions/dynamic-page-global-actions.component';\nimport { DynamicPageLayoutActionsComponent } from './dynamic-page-header/actions/dynamic-page-layout-actions.component';\nimport { DynamicPageTitleContentComponent } from './dynamic-page-header/actions/dynamic-page-title-content.component';\nimport { DynamicPageBreadcrumbComponent } from './dynamic-page-header/breadcrumb/dynamic-page-breadcrumb.component';\nimport { DynamicPageHeaderComponent } from './dynamic-page-header/header/dynamic-page-header.component';\nimport { DynamicPageSubheaderComponent } from './dynamic-page-header/subheader/dynamic-page-subheader.component';\nimport { DynamicPageWrapperDirective } from './dynamic-page-wrapper.directive';\nimport { DynamicPageComponent } from './dynamic-page.component';\n\nconst components = [\n DynamicPageComponent,\n DynamicPageHeaderComponent,\n DynamicPageGlobalActionsComponent,\n DynamicPageLayoutActionsComponent,\n DynamicPageSubheaderComponent,\n DynamicPageContentComponent,\n DynamicPageFooterComponent,\n DynamicPageTitleContentComponent,\n DynamicPageWrapperDirective,\n DynamicPageHeaderSubtitleDirective,\n DynamicPageHeaderTitleDirective,\n DynamicPageBreadcrumbComponent\n];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class DynamicPageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DynamicPageService","i2.DynamicPageWrapperDirective"],"mappings":"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"}
@@ -99,7 +99,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
99
99
 
100
100
  class FacetGroupComponent {
101
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FacetGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: FacetGroupComponent, isStandalone: true, selector: "fd-facet-group", inputs: { ariaLabel: "ariaLabel" }, host: { attributes: { "role": "group" }, properties: { "class.fd-facet-group": "true", "attr.aria-label": "ariaLabel" } }, ngImport: i0, template: ` <ng-content select="fd-facet"></ng-content> `, isInline: true, styles: [".fd-facet-align-end{order:1;display:flex;flex:1;flex-direction:column;align-items:flex-end}.fd-title.fd-margin-bottom--sm{margin-block-end:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: FacetGroupComponent, isStandalone: true, selector: "fd-facet-group", inputs: { ariaLabel: "ariaLabel" }, host: { attributes: { "role": "group" }, properties: { "class.fd-facet-group": "true", "attr.aria-label": "ariaLabel" } }, ngImport: i0, template: ` <ng-content select="fd-facet"></ng-content> `, isInline: true, styles: [".fd-facet-align-end{order:1;display:flex;flex:1;flex-direction:column;align-items:flex-end}.fd-title.fd-margin-bottom--sm{margin-block-end:1rem}.fd-facet-group{gap:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
103
103
  }
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FacetGroupComponent, decorators: [{
105
105
  type: Component,
@@ -107,7 +107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
107
107
  '[class.fd-facet-group]': 'true',
108
108
  '[attr.aria-label]': 'ariaLabel',
109
109
  role: 'group'
110
- }, standalone: true, styles: [".fd-facet-align-end{order:1;display:flex;flex:1;flex-direction:column;align-items:flex-end}.fd-title.fd-margin-bottom--sm{margin-block-end:1rem}\n"] }]
110
+ }, standalone: true, styles: [".fd-facet-align-end{order:1;display:flex;flex:1;flex-direction:column;align-items:flex-end}.fd-title.fd-margin-bottom--sm{margin-block-end:1rem}.fd-facet-group{gap:0}\n"] }]
111
111
  }], propDecorators: { ariaLabel: [{
112
112
  type: Input
113
113
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-facets.mjs","sources":["../../../../libs/core/facets/constants.ts","../../../../libs/core/facets/utils.ts","../../../../libs/core/facets/content/facet-content.component.ts","../../../../libs/core/facets/facet-container.component.ts","../../../../libs/core/facets/facet-group.component.ts","../../../../libs/core/facets/facet/facet.component.ts","../../../../libs/core/facets/facet/facet.component.html","../../../../libs/core/facets/facet.module.ts","../../../../libs/core/facets/fundamental-ngx-core-facets.ts"],"sourcesContent":["export const FACET_CLASS_NAME = {\n facetContainer: 'fd-facet__container',\n facetRatingIndicatorContainer: 'fd-facet__rating-container',\n facetRatingIndicatorDynamicText: 'fd-facet__rating-dynamic-text',\n facetObjectStatus: 'fd-facet__object-status',\n facetObjectStatusText: 'fd-facet__object-status-text',\n marginTopTiny: 'fd-margin-top--tiny',\n marginBottomTiny: 'fd-margin-bottom--tiny',\n marginEndTiny: 'fd-margin-end--tiny',\n paddingNone: 'fd-padding--none'\n} as const;\n\nexport type FacetType = 'form' | 'key-value' | 'image' | 'rating-indicator' | 'custom';\n","import { Renderer2 } from '@angular/core';\n\nexport const addClassNameToFacetElement = (renderer: Renderer2, element: Element, className: string): void => {\n renderer.addClass(element, className);\n};\n","import { ChangeDetectionStrategy, Component, ElementRef, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { FACET_CLASS_NAME } from '../constants';\nimport { addClassNameToFacetElement } from '../utils';\n\n@Component({\n selector: 'fd-facet-content',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n})\nexport class FacetContentComponent implements OnInit {\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._addClassNameToHostElement(FACET_CLASS_NAME.facetContainer);\n }\n\n /** @hidden */\n private _addClassNameToHostElement(className: string): void {\n addClassNameToFacetElement(this._renderer, this.elementRef.nativeElement, className);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\nexport type ContainerFlexDirection = 'row' | 'row-reverse' | 'column' | 'column-reverse';\n\nexport type ContainerFlexJustify =\n | 'start'\n | 'center'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n | 'stretch';\n\nexport type ContainerFlexAlign =\n | 'start'\n | 'center'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n | 'stretch'\n | 'self-start'\n | 'self-end'\n | 'baseline';\n\n@Component({\n selector: 'fd-facet-container',\n template: ` <ng-content></ng-content> `,\n styleUrl: './facet-container.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.fd-facet-container]': 'true',\n '[style.gap.rem]': 'flexGap()',\n '[style.flex-direction]': 'flexDirection()',\n '[style.align-items]': 'alignItems()',\n '[style.justify-content]': 'justifyContent()'\n },\n standalone: true\n})\nexport class FacetContainerComponent {\n /**\n * Value for the direction of the flex container.\n * Possible values: 'row' | 'row-reverse' | 'column' | 'column-reverse'\n * Default: 'column'\n */\n flexDirection = input<ContainerFlexDirection>('column');\n\n /**\n * Value for align-items of the flex container.\n * Possible values:\n * 'start', 'center', 'end', 'flex-start', 'flex-end', 'space-between', 'space-around',\n * 'space-evenly', 'stretch', 'self-start', 'self-end', 'baseline'\n * Default: 'start'\n */\n alignItems = input<ContainerFlexJustify>('start');\n\n /**\n * Value for justify-content of the flex container.\n * Possible values:\n * 'start', 'center', 'end', 'flex-start', 'flex-end', 'space-between', 'space-around',\n * 'space-evenly', 'stretch'\n * Default: 'start'\n */\n justifyContent = input<ContainerFlexAlign>('start');\n\n /**\n * Value for the flex container gap in rem.\n * An integer number\n * Default: 1\n */\n flexGap = input(1);\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n@Component({\n selector: 'fd-facet-group',\n template: ` <ng-content select=\"fd-facet\"></ng-content> `,\n styleUrl: './facet-group.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.fd-facet-group]': 'true',\n '[attr.aria-label]': 'ariaLabel',\n role: 'group'\n },\n standalone: true\n})\nexport class FacetGroupComponent {\n /**\n * the aria label for the facet group\n */\n @Input()\n ariaLabel: Nullable<string>;\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormLabelComponent } from '@fundamental-ngx/core/form';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FACET_CLASS_NAME, FacetType } from '../constants';\nimport { addClassNameToFacetElement } from '../utils';\n\nlet randomId = 0;\nlet randomTitleId = 0;\n\n@Component({\n selector: 'fd-facet',\n templateUrl: './facet.component.html',\n styleUrl: './facet.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.fd-facet]': 'true'\n },\n imports: [NgTemplateOutlet, TitleComponent, FormLabelComponent]\n})\nexport class FacetComponent implements AfterViewInit {\n /** the type of Facet: form, key-value, image, rating-indicator */\n @Input()\n type: FacetType;\n\n /** The facet title.\n * For eg: for key-value facet, facetTitle is the key and the underlying object status or object number\n * component is the value.\n */\n @Input()\n facetTitle: string;\n\n /** An optional subtitle to display in the rating-indicator facet */\n @Input()\n subtitle: string;\n\n /**\n * Heading level of the facet title.\n */\n @Input()\n set headingLevel(level: Nullable<HeadingLevel>) {\n if (typeof level === 'number') {\n this._headingLevel = level;\n } else if (typeof level === 'string') {\n this._headingLevel = Number.parseInt(level.replace(/\\D/g, ''), 10);\n }\n }\n\n /**\n * id for the facet\n */\n @Input()\n @HostBinding('attr.role')\n id = `fd-facet-id-${randomId++}`;\n\n /**\n * property that allows the facet to be aligned to the end of the facet group, right-aligned.\n */\n @Input()\n alignEnd = false;\n\n /** @hidden\n * the appropriate role for each facet type\n */\n @HostBinding('attr.role')\n get role(): string {\n return this.type !== 'image' ? 'group' : '';\n }\n\n /** @hidden\n * the appropriate aria-labelledby to associate with the role\n */\n @HostBinding('attr.aria-labelledby')\n get ariaLabelledby(): string {\n return this.type !== 'image' ? this.titleId : '';\n }\n\n /** @hidden */\n _headingLevel: number;\n\n /** @hidden\n * the internal id for the title to be associated with the aria-labelledby\n */\n titleId = `fd-facet-title-id-${randomTitleId++}`;\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setupAdditionalStyles();\n this._addAlignmentModifier();\n }\n\n /**\n * @hidden\n * set up common styles and specific styles based on each facet type\n */\n private _setupAdditionalStyles(): void {\n if (!this.type) {\n return;\n }\n // add type modifier class to host\n this.elementRef.nativeElement.classList.add(`fd-facet--${this.type}`);\n\n // add margin end and bottom spacings\n this.elementRef.nativeElement.classList.add(`fd-margin-end--md`);\n if (this.type !== 'image') {\n // add bottom margin to non-image facets\n this.elementRef.nativeElement.classList.add(`fd-margin-bottom--sm`);\n }\n\n switch (this.type) {\n case 'image':\n // image should always be on the left\n this._setStyleToHostElement('order', '-1');\n break;\n case 'rating-indicator': {\n const ratingIndicatorComponent = this.elementRef.nativeElement.querySelector('.fd-rating-indicator');\n\n if (!ratingIndicatorComponent) {\n return;\n }\n this._addClassNameToCustomElement(ratingIndicatorComponent, FACET_CLASS_NAME.facetContainer);\n const ratingIndicatorContainer = ratingIndicatorComponent.querySelector(\n '.fd-rating-indicator__container'\n );\n if (!ratingIndicatorContainer) {\n return;\n }\n this._addClassNameToCustomElement(\n ratingIndicatorContainer,\n FACET_CLASS_NAME.facetRatingIndicatorContainer\n );\n\n const ratingIndicatorDynamicText = ratingIndicatorComponent.querySelector(\n '.fd-rating-indicator__dynamic-text'\n );\n if (!ratingIndicatorDynamicText) {\n return;\n }\n this._addClassNameToCustomElement(\n ratingIndicatorDynamicText,\n FACET_CLASS_NAME.facetRatingIndicatorDynamicText\n );\n this._addClassNameToCustomElement(ratingIndicatorDynamicText, FACET_CLASS_NAME.marginTopTiny);\n break;\n }\n case 'form': {\n const formFacetContainer = this.elementRef.nativeElement.querySelectorAll('.fd-facet__container');\n if (!formFacetContainer) {\n return;\n }\n formFacetContainer.forEach((container, index) => {\n if (index !== formFacetContainer.length - 1) {\n this._addClassNameToCustomElement(container, FACET_CLASS_NAME.marginBottomTiny);\n }\n // if icon+link is presented, add spacing to the icon\n const iconComponent = container.querySelector('fd-icon');\n if (!iconComponent) {\n return;\n }\n this._addClassNameToCustomElement(iconComponent, FACET_CLASS_NAME.marginEndTiny);\n });\n\n break;\n }\n case 'key-value': {\n // add class to object status\n const objectStatusComponent = this.elementRef.nativeElement.querySelector('.fd-object-status');\n if (!objectStatusComponent) {\n return;\n }\n this._addClassNameToCustomElement(objectStatusComponent, FACET_CLASS_NAME.facetObjectStatus);\n\n // add class to override font-family value\n const objectStatusText = objectStatusComponent.querySelector('.fd-object-status__text');\n if (!objectStatusText) {\n return;\n }\n this._addClassNameToCustomElement(objectStatusText, FACET_CLASS_NAME.facetObjectStatusText);\n\n // add spacing to object status icon, if present\n const objectStatusIcon = objectStatusComponent.querySelector('.fd-object-status__icon');\n if (!objectStatusIcon) {\n return;\n }\n this._addClassNameToCustomElement(objectStatusIcon, FACET_CLASS_NAME.paddingNone);\n this._addClassNameToCustomElement(objectStatusIcon, FACET_CLASS_NAME.marginEndTiny);\n break;\n }\n default:\n break;\n }\n }\n\n /** @hidden\n * adds the logic for `alignEnd` modifier\n */\n private _addAlignmentModifier(): void {\n if (!this.alignEnd) {\n return;\n }\n addClassNameToFacetElement(this._renderer, this.elementRef.nativeElement, 'fd-facet-align-end');\n\n // add margins to the left after removing existing right margin\n this.elementRef.nativeElement.classList.remove(`fd-margin-end--md`);\n this.elementRef.nativeElement.classList.add(`fd-margin-begin--md`);\n }\n\n /** @hidden */\n private _setStyleToHostElement(attribute: string, value: any): void {\n this._renderer.setStyle(this.elementRef.nativeElement, attribute, value);\n }\n\n /** @hidden */\n private _addClassNameToCustomElement(element: Element, className: string): void {\n addClassNameToFacetElement(this._renderer, element, className);\n }\n}\n","@if (type === 'image') {\n <ng-template [ngTemplateOutlet]=\"customContentTemplate\"></ng-template>\n} @else {\n @if (facetTitle) {\n <div\n [attr.role]=\"!!_headingLevel ? 'heading' : null\"\n [attr.aria-level]=\"_headingLevel\"\n fd-title\n [headerSize]=\"5\"\n class=\"fd-margin-bottom--sm\"\n [id]=\"titleId\"\n >\n {{ facetTitle }}\n </div>\n }\n @if (type === 'form') {\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n }\n @if (type === 'key-value' || 'custom') {\n <ng-template [ngTemplateOutlet]=\"customContentTemplate\"></ng-template>\n }\n @if (type === 'rating-indicator') {\n <span fd-form-label>{{ subtitle }}</span>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n }\n}\n<ng-template #contentTemplate>\n <ng-content select=\"fd-facet-content\"></ng-content>\n</ng-template>\n<ng-template #customContentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { FacetContentComponent } from './content/facet-content.component';\nimport { FacetContainerComponent } from './facet-container.component';\nimport { FacetGroupComponent } from './facet-group.component';\nimport { FacetComponent } from './facet/facet.component';\n\nconst components = [FacetComponent, FacetGroupComponent, FacetContentComponent, FacetContainerComponent];\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class FacetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-facets.mjs","sources":["../../../../libs/core/facets/constants.ts","../../../../libs/core/facets/utils.ts","../../../../libs/core/facets/content/facet-content.component.ts","../../../../libs/core/facets/facet-container.component.ts","../../../../libs/core/facets/facet-group.component.ts","../../../../libs/core/facets/facet/facet.component.ts","../../../../libs/core/facets/facet/facet.component.html","../../../../libs/core/facets/facet.module.ts","../../../../libs/core/facets/fundamental-ngx-core-facets.ts"],"sourcesContent":["export const FACET_CLASS_NAME = {\n facetContainer: 'fd-facet__container',\n facetRatingIndicatorContainer: 'fd-facet__rating-container',\n facetRatingIndicatorDynamicText: 'fd-facet__rating-dynamic-text',\n facetObjectStatus: 'fd-facet__object-status',\n facetObjectStatusText: 'fd-facet__object-status-text',\n marginTopTiny: 'fd-margin-top--tiny',\n marginBottomTiny: 'fd-margin-bottom--tiny',\n marginEndTiny: 'fd-margin-end--tiny',\n paddingNone: 'fd-padding--none'\n} as const;\n\nexport type FacetType = 'form' | 'key-value' | 'image' | 'rating-indicator' | 'custom';\n","import { Renderer2 } from '@angular/core';\n\nexport const addClassNameToFacetElement = (renderer: Renderer2, element: Element, className: string): void => {\n renderer.addClass(element, className);\n};\n","import { ChangeDetectionStrategy, Component, ElementRef, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { FACET_CLASS_NAME } from '../constants';\nimport { addClassNameToFacetElement } from '../utils';\n\n@Component({\n selector: 'fd-facet-content',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n})\nexport class FacetContentComponent implements OnInit {\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._addClassNameToHostElement(FACET_CLASS_NAME.facetContainer);\n }\n\n /** @hidden */\n private _addClassNameToHostElement(className: string): void {\n addClassNameToFacetElement(this._renderer, this.elementRef.nativeElement, className);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\nexport type ContainerFlexDirection = 'row' | 'row-reverse' | 'column' | 'column-reverse';\n\nexport type ContainerFlexJustify =\n | 'start'\n | 'center'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n | 'stretch';\n\nexport type ContainerFlexAlign =\n | 'start'\n | 'center'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n | 'stretch'\n | 'self-start'\n | 'self-end'\n | 'baseline';\n\n@Component({\n selector: 'fd-facet-container',\n template: ` <ng-content></ng-content> `,\n styleUrl: './facet-container.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.fd-facet-container]': 'true',\n '[style.gap.rem]': 'flexGap()',\n '[style.flex-direction]': 'flexDirection()',\n '[style.align-items]': 'alignItems()',\n '[style.justify-content]': 'justifyContent()'\n },\n standalone: true\n})\nexport class FacetContainerComponent {\n /**\n * Value for the direction of the flex container.\n * Possible values: 'row' | 'row-reverse' | 'column' | 'column-reverse'\n * Default: 'column'\n */\n flexDirection = input<ContainerFlexDirection>('column');\n\n /**\n * Value for align-items of the flex container.\n * Possible values:\n * 'start', 'center', 'end', 'flex-start', 'flex-end', 'space-between', 'space-around',\n * 'space-evenly', 'stretch', 'self-start', 'self-end', 'baseline'\n * Default: 'start'\n */\n alignItems = input<ContainerFlexJustify>('start');\n\n /**\n * Value for justify-content of the flex container.\n * Possible values:\n * 'start', 'center', 'end', 'flex-start', 'flex-end', 'space-between', 'space-around',\n * 'space-evenly', 'stretch'\n * Default: 'start'\n */\n justifyContent = input<ContainerFlexAlign>('start');\n\n /**\n * Value for the flex container gap in rem.\n * An integer number\n * Default: 1\n */\n flexGap = input(1);\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n@Component({\n selector: 'fd-facet-group',\n template: ` <ng-content select=\"fd-facet\"></ng-content> `,\n styleUrl: './facet-group.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.fd-facet-group]': 'true',\n '[attr.aria-label]': 'ariaLabel',\n role: 'group'\n },\n standalone: true\n})\nexport class FacetGroupComponent {\n /**\n * the aria label for the facet group\n */\n @Input()\n ariaLabel: Nullable<string>;\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormLabelComponent } from '@fundamental-ngx/core/form';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FACET_CLASS_NAME, FacetType } from '../constants';\nimport { addClassNameToFacetElement } from '../utils';\n\nlet randomId = 0;\nlet randomTitleId = 0;\n\n@Component({\n selector: 'fd-facet',\n templateUrl: './facet.component.html',\n styleUrl: './facet.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.fd-facet]': 'true'\n },\n imports: [NgTemplateOutlet, TitleComponent, FormLabelComponent]\n})\nexport class FacetComponent implements AfterViewInit {\n /** the type of Facet: form, key-value, image, rating-indicator */\n @Input()\n type: FacetType;\n\n /** The facet title.\n * For eg: for key-value facet, facetTitle is the key and the underlying object status or object number\n * component is the value.\n */\n @Input()\n facetTitle: string;\n\n /** An optional subtitle to display in the rating-indicator facet */\n @Input()\n subtitle: string;\n\n /**\n * Heading level of the facet title.\n */\n @Input()\n set headingLevel(level: Nullable<HeadingLevel>) {\n if (typeof level === 'number') {\n this._headingLevel = level;\n } else if (typeof level === 'string') {\n this._headingLevel = Number.parseInt(level.replace(/\\D/g, ''), 10);\n }\n }\n\n /**\n * id for the facet\n */\n @Input()\n @HostBinding('attr.role')\n id = `fd-facet-id-${randomId++}`;\n\n /**\n * property that allows the facet to be aligned to the end of the facet group, right-aligned.\n */\n @Input()\n alignEnd = false;\n\n /** @hidden\n * the appropriate role for each facet type\n */\n @HostBinding('attr.role')\n get role(): string {\n return this.type !== 'image' ? 'group' : '';\n }\n\n /** @hidden\n * the appropriate aria-labelledby to associate with the role\n */\n @HostBinding('attr.aria-labelledby')\n get ariaLabelledby(): string {\n return this.type !== 'image' ? this.titleId : '';\n }\n\n /** @hidden */\n _headingLevel: number;\n\n /** @hidden\n * the internal id for the title to be associated with the aria-labelledby\n */\n titleId = `fd-facet-title-id-${randomTitleId++}`;\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setupAdditionalStyles();\n this._addAlignmentModifier();\n }\n\n /**\n * @hidden\n * set up common styles and specific styles based on each facet type\n */\n private _setupAdditionalStyles(): void {\n if (!this.type) {\n return;\n }\n // add type modifier class to host\n this.elementRef.nativeElement.classList.add(`fd-facet--${this.type}`);\n\n // add margin end and bottom spacings\n this.elementRef.nativeElement.classList.add(`fd-margin-end--md`);\n if (this.type !== 'image') {\n // add bottom margin to non-image facets\n this.elementRef.nativeElement.classList.add(`fd-margin-bottom--sm`);\n }\n\n switch (this.type) {\n case 'image':\n // image should always be on the left\n this._setStyleToHostElement('order', '-1');\n break;\n case 'rating-indicator': {\n const ratingIndicatorComponent = this.elementRef.nativeElement.querySelector('.fd-rating-indicator');\n\n if (!ratingIndicatorComponent) {\n return;\n }\n this._addClassNameToCustomElement(ratingIndicatorComponent, FACET_CLASS_NAME.facetContainer);\n const ratingIndicatorContainer = ratingIndicatorComponent.querySelector(\n '.fd-rating-indicator__container'\n );\n if (!ratingIndicatorContainer) {\n return;\n }\n this._addClassNameToCustomElement(\n ratingIndicatorContainer,\n FACET_CLASS_NAME.facetRatingIndicatorContainer\n );\n\n const ratingIndicatorDynamicText = ratingIndicatorComponent.querySelector(\n '.fd-rating-indicator__dynamic-text'\n );\n if (!ratingIndicatorDynamicText) {\n return;\n }\n this._addClassNameToCustomElement(\n ratingIndicatorDynamicText,\n FACET_CLASS_NAME.facetRatingIndicatorDynamicText\n );\n this._addClassNameToCustomElement(ratingIndicatorDynamicText, FACET_CLASS_NAME.marginTopTiny);\n break;\n }\n case 'form': {\n const formFacetContainer = this.elementRef.nativeElement.querySelectorAll('.fd-facet__container');\n if (!formFacetContainer) {\n return;\n }\n formFacetContainer.forEach((container, index) => {\n if (index !== formFacetContainer.length - 1) {\n this._addClassNameToCustomElement(container, FACET_CLASS_NAME.marginBottomTiny);\n }\n // if icon+link is presented, add spacing to the icon\n const iconComponent = container.querySelector('fd-icon');\n if (!iconComponent) {\n return;\n }\n this._addClassNameToCustomElement(iconComponent, FACET_CLASS_NAME.marginEndTiny);\n });\n\n break;\n }\n case 'key-value': {\n // add class to object status\n const objectStatusComponent = this.elementRef.nativeElement.querySelector('.fd-object-status');\n if (!objectStatusComponent) {\n return;\n }\n this._addClassNameToCustomElement(objectStatusComponent, FACET_CLASS_NAME.facetObjectStatus);\n\n // add class to override font-family value\n const objectStatusText = objectStatusComponent.querySelector('.fd-object-status__text');\n if (!objectStatusText) {\n return;\n }\n this._addClassNameToCustomElement(objectStatusText, FACET_CLASS_NAME.facetObjectStatusText);\n\n // add spacing to object status icon, if present\n const objectStatusIcon = objectStatusComponent.querySelector('.fd-object-status__icon');\n if (!objectStatusIcon) {\n return;\n }\n this._addClassNameToCustomElement(objectStatusIcon, FACET_CLASS_NAME.paddingNone);\n this._addClassNameToCustomElement(objectStatusIcon, FACET_CLASS_NAME.marginEndTiny);\n break;\n }\n default:\n break;\n }\n }\n\n /** @hidden\n * adds the logic for `alignEnd` modifier\n */\n private _addAlignmentModifier(): void {\n if (!this.alignEnd) {\n return;\n }\n addClassNameToFacetElement(this._renderer, this.elementRef.nativeElement, 'fd-facet-align-end');\n\n // add margins to the left after removing existing right margin\n this.elementRef.nativeElement.classList.remove(`fd-margin-end--md`);\n this.elementRef.nativeElement.classList.add(`fd-margin-begin--md`);\n }\n\n /** @hidden */\n private _setStyleToHostElement(attribute: string, value: any): void {\n this._renderer.setStyle(this.elementRef.nativeElement, attribute, value);\n }\n\n /** @hidden */\n private _addClassNameToCustomElement(element: Element, className: string): void {\n addClassNameToFacetElement(this._renderer, element, className);\n }\n}\n","@if (type === 'image') {\n <ng-template [ngTemplateOutlet]=\"customContentTemplate\"></ng-template>\n} @else {\n @if (facetTitle) {\n <div\n [attr.role]=\"!!_headingLevel ? 'heading' : null\"\n [attr.aria-level]=\"_headingLevel\"\n fd-title\n [headerSize]=\"5\"\n class=\"fd-margin-bottom--sm\"\n [id]=\"titleId\"\n >\n {{ facetTitle }}\n </div>\n }\n @if (type === 'form') {\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n }\n @if (type === 'key-value' || 'custom') {\n <ng-template [ngTemplateOutlet]=\"customContentTemplate\"></ng-template>\n }\n @if (type === 'rating-indicator') {\n <span fd-form-label>{{ subtitle }}</span>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n }\n}\n<ng-template #contentTemplate>\n <ng-content select=\"fd-facet-content\"></ng-content>\n</ng-template>\n<ng-template #customContentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { FacetContentComponent } from './content/facet-content.component';\nimport { FacetContainerComponent } from './facet-container.component';\nimport { FacetGroupComponent } from './facet-group.component';\nimport { FacetComponent } from './facet/facet.component';\n\nconst components = [FacetComponent, FacetGroupComponent, FacetContentComponent, FacetContainerComponent];\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class FacetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core",
3
- "version": "0.64.2-rc.42",
3
+ "version": "0.64.2-rc.44",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-update": {
6
6
  "packageGroupName": "@fundamental-ngx/core",
@@ -37,8 +37,8 @@
37
37
  "@angular/forms": "^22.0.0",
38
38
  "@angular/platform-browser": "^22.0.0",
39
39
  "@angular/router": "^22.0.0",
40
- "@fundamental-ngx/cdk": "0.64.2-rc.42",
41
- "@fundamental-ngx/i18n": "0.64.2-rc.42",
40
+ "@fundamental-ngx/cdk": "0.64.2-rc.44",
41
+ "@fundamental-ngx/i18n": "0.64.2-rc.44",
42
42
  "@sap-theming/theming-base-content": "^11.36.0",
43
43
  "fundamental-styles": "0.41.8",
44
44
  "rxjs": "^7.8.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-schematics",
3
- "version": "0.64.2-rc.42",
3
+ "version": "0.64.2-rc.44",
4
4
  "types": "./ng-add/index.d.ts",
5
5
  "main": "./ng-add/index.js",
6
6
  "type": "commonjs"
@@ -4,6 +4,7 @@ import { HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';
4
4
  import { ToolbarComponent } from '@fundamental-ngx/core/toolbar';
5
5
  import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
6
6
  import { BreadcrumbComponent } from '@fundamental-ngx/core/breadcrumb';
7
+ import { MessageStripComponent } from '@fundamental-ngx/core/message-strip';
7
8
  import { HeadingLevel, TabList } from '@fundamental-ngx/core/shared';
8
9
  import { FlexibleColumnLayoutComponent } from '@fundamental-ngx/core/flexible-column-layout';
9
10
  import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
@@ -223,6 +224,19 @@ declare class DynamicPageHeaderComponent implements OnInit {
223
224
  * When provided via fdDynamicPageHeaderTitle directive, overrides the title text input.
224
225
  */
225
226
  readonly _titleTemplate: i0.Signal<DynamicPageHeaderTitleDirective | undefined>;
227
+ /**
228
+ * Optional template ref for message strip content.
229
+ * When provided, the message strip container is rendered using this template
230
+ * instead of relying on ng-content projection.
231
+ * This is used by Platform Dynamic Page which cannot project via ng-content.
232
+ */
233
+ readonly messageStripTemplate: i0.InputSignal<TemplateRef<any> | null>;
234
+ /**
235
+ * @hidden
236
+ * Content child query for MessageStripComponent.
237
+ * When present, the message strip will be rendered below the subtitle in the header.
238
+ */
239
+ readonly messageStrip: i0.Signal<MessageStripComponent | undefined>;
226
240
  /** @hidden */
227
241
  readonly _dynamicPageBreadcrumbComponent: i0.Signal<DynamicPageBreadcrumbComponent | undefined>;
228
242
  /** @hidden */
@@ -268,7 +282,7 @@ declare class DynamicPageHeaderComponent implements OnInit {
268
282
  */
269
283
  stopPropagation(event: MouseEvent): void;
270
284
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicPageHeaderComponent, never>;
271
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicPageHeaderComponent, "fd-dynamic-page-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "titleWrap": { "alias": "titleWrap"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "subtitleWrap": { "alias": "subtitleWrap"; "required": false; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; "subtitleHeadingLevel": { "alias": "subtitleHeadingLevel"; "required": false; "isSignal": true; }; "titleId": { "alias": "titleId"; "required": false; "isSignal": true; }; }, {}, ["_subtitleTemplate", "_titleTemplate", "_dynamicPageBreadcrumbComponent", "_breadcrumbComponent", "_globalActions", "_layoutActions", "_contentToolbar"], ["fd-dynamic-page-breadcrumb", "fd-facet", "fd-dynamic-page-title-content", "fd-dynamic-page-global-actions", "fd-dynamic-page-layout-actions"], true, never>;
285
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicPageHeaderComponent, "fd-dynamic-page-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "titleWrap": { "alias": "titleWrap"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "subtitleWrap": { "alias": "subtitleWrap"; "required": false; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; "subtitleHeadingLevel": { "alias": "subtitleHeadingLevel"; "required": false; "isSignal": true; }; "titleId": { "alias": "titleId"; "required": false; "isSignal": true; }; "messageStripTemplate": { "alias": "messageStripTemplate"; "required": false; "isSignal": true; }; }, {}, ["_subtitleTemplate", "_titleTemplate", "messageStrip", "_dynamicPageBreadcrumbComponent", "_breadcrumbComponent", "_globalActions", "_layoutActions", "_contentToolbar"], ["fd-dynamic-page-breadcrumb", "fd-facet", "fd-dynamic-page-title-content", "fd-message-strip", "fd-dynamic-page-global-actions", "fd-dynamic-page-layout-actions"], true, never>;
272
286
  }
273
287
 
274
288
  declare class DynamicPageSubheaderComponent {