@fundamental-ngx/core 0.59.1-rc.9 → 0.59.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs +33 -50
  2. package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +9 -11
  4. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-avatar.mjs +206 -293
  6. package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +25 -12
  8. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-calendar.mjs +11 -14
  10. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-card.mjs +13 -26
  12. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-carousel.mjs +11 -11
  14. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-combobox.mjs +33 -7
  16. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-dialog.mjs +13 -17
  18. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +32 -24
  20. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +28 -30
  22. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-grid-list.mjs +12 -10
  24. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs +202 -100
  26. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-core-layout-panel.mjs +72 -231
  28. package/fesm2022/fundamental-ngx-core-layout-panel.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-core-list.mjs +12 -12
  30. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-core-menu.mjs +28 -28
  32. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-core-message-strip.mjs +85 -84
  34. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  35. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +21 -24
  36. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +19 -12
  38. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  39. package/fesm2022/fundamental-ngx-core-multi-input.mjs +46 -39
  40. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-core-nested-list.mjs +66 -103
  42. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-core-notification.mjs +10 -12
  44. package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-core-object-marker.mjs +69 -59
  46. package/fesm2022/fundamental-ngx-core-object-marker.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-core-object-status.mjs +92 -118
  48. package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +27 -29
  50. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-core-pagination.mjs +17 -18
  52. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-core-panel.mjs +7 -9
  54. package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-core-popover.mjs +10 -15
  56. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  57. package/fesm2022/fundamental-ngx-core-product-switch.mjs +12 -15
  58. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  59. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +18 -20
  60. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
  61. package/fesm2022/fundamental-ngx-core-segmented-button.mjs +8 -11
  62. package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  63. package/fesm2022/fundamental-ngx-core-select.mjs +6 -8
  64. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  65. package/fesm2022/fundamental-ngx-core-settings.mjs +9 -12
  66. package/fesm2022/fundamental-ngx-core-settings.mjs.map +1 -1
  67. package/fesm2022/fundamental-ngx-core-shellbar.mjs +48 -34
  68. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  69. package/fesm2022/fundamental-ngx-core-slider.mjs +30 -31
  70. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-core-status-indicator.mjs +137 -131
  72. package/fesm2022/fundamental-ngx-core-status-indicator.mjs.map +1 -1
  73. package/fesm2022/fundamental-ngx-core-tabs.mjs +21 -17
  74. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  75. package/fesm2022/fundamental-ngx-core-tile.mjs +375 -631
  76. package/fesm2022/fundamental-ngx-core-tile.mjs.map +1 -1
  77. package/fesm2022/fundamental-ngx-core-time.mjs +7 -9
  78. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  79. package/fesm2022/fundamental-ngx-core-token.mjs +11 -13
  80. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
  82. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  83. package/fesm2022/fundamental-ngx-core-tree.mjs +2 -2
  84. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-core-user-menu.mjs +63 -21
  86. package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
  87. package/fesm2022/fundamental-ngx-core-wizard.mjs +1 -1
  88. package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
  89. package/package.json +4 -4
  90. package/types/fundamental-ngx-core-avatar-group-legacy.d.ts +15 -17
  91. package/types/fundamental-ngx-core-avatar-group.d.ts +1 -1
  92. package/types/fundamental-ngx-core-avatar.d.ts +66 -86
  93. package/types/fundamental-ngx-core-breadcrumb.d.ts +13 -5
  94. package/types/fundamental-ngx-core-calendar.d.ts +3 -4
  95. package/types/fundamental-ngx-core-card.d.ts +4 -11
  96. package/types/fundamental-ngx-core-carousel.d.ts +3 -3
  97. package/types/fundamental-ngx-core-combobox.d.ts +8 -1
  98. package/types/fundamental-ngx-core-dialog.d.ts +2 -4
  99. package/types/fundamental-ngx-core-dynamic-page.d.ts +0 -6
  100. package/types/fundamental-ngx-core-fixed-card-layout.d.ts +7 -7
  101. package/types/fundamental-ngx-core-grid-list.d.ts +6 -4
  102. package/types/fundamental-ngx-core-illustrated-message.d.ts +165 -31
  103. package/types/fundamental-ngx-core-layout-panel.d.ts +19 -131
  104. package/types/fundamental-ngx-core-list.d.ts +8 -6
  105. package/types/fundamental-ngx-core-menu.d.ts +16 -13
  106. package/types/fundamental-ngx-core-message-strip.d.ts +5 -2
  107. package/types/fundamental-ngx-core-micro-process-flow.d.ts +8 -6
  108. package/types/fundamental-ngx-core-multi-combobox.d.ts +8 -5
  109. package/types/fundamental-ngx-core-multi-input.d.ts +24 -16
  110. package/types/fundamental-ngx-core-nested-list.d.ts +19 -33
  111. package/types/fundamental-ngx-core-notification.d.ts +2 -2
  112. package/types/fundamental-ngx-core-object-marker.d.ts +47 -27
  113. package/types/fundamental-ngx-core-object-status.d.ts +49 -48
  114. package/types/fundamental-ngx-core-overflow-layout.d.ts +10 -10
  115. package/types/fundamental-ngx-core-pagination.d.ts +7 -8
  116. package/types/fundamental-ngx-core-panel.d.ts +2 -4
  117. package/types/fundamental-ngx-core-popover.d.ts +7 -5
  118. package/types/fundamental-ngx-core-product-switch.d.ts +5 -4
  119. package/types/fundamental-ngx-core-resizable-card-layout.d.ts +10 -8
  120. package/types/fundamental-ngx-core-segmented-button.d.ts +5 -4
  121. package/types/fundamental-ngx-core-select.d.ts +4 -5
  122. package/types/fundamental-ngx-core-settings.d.ts +7 -10
  123. package/types/fundamental-ngx-core-shellbar.d.ts +23 -14
  124. package/types/fundamental-ngx-core-slider.d.ts +18 -13
  125. package/types/fundamental-ngx-core-status-indicator.d.ts +42 -58
  126. package/types/fundamental-ngx-core-tabs.d.ts +9 -7
  127. package/types/fundamental-ngx-core-tile.d.ts +114 -243
  128. package/types/fundamental-ngx-core-time.d.ts +5 -4
  129. package/types/fundamental-ngx-core-token.d.ts +5 -4
  130. package/types/fundamental-ngx-core-tree.d.ts +1 -1
  131. package/types/fundamental-ngx-core-user-menu.d.ts +25 -21
@@ -91,13 +91,13 @@ const addClassNameToElement = (renderer, element, className) => {
91
91
  * @param width - dynamic page window width
92
92
  **/
93
93
  function dynamicPageWidthToSize(width) {
94
- if (width < 599) {
94
+ if (width <= 599) {
95
95
  return 'small';
96
96
  }
97
- else if (width < 1023) {
97
+ else if (width <= 1023) {
98
98
  return 'medium';
99
99
  }
100
- else if (width < 1439) {
100
+ else if (width <= 1439) {
101
101
  return 'large';
102
102
  }
103
103
  return 'extra-large';
@@ -775,9 +775,6 @@ class DynamicPageComponent {
775
775
  if (!this.disableSnapOnScroll && this._pageSubheaderComponent?.collapsible) {
776
776
  this._addScrollListeners();
777
777
  }
778
- if (this._columnLayout && this.autoResponsive) {
779
- this._listenToLayoutChange();
780
- }
781
778
  setTimeout(() => this._setContainerPositions());
782
779
  this._cd.detectChanges();
783
780
  }
@@ -808,17 +805,6 @@ class DynamicPageComponent {
808
805
  this._headerCollapsible = this._pageSubheaderComponent?.collapsible;
809
806
  this._propagateSizeToChildren();
810
807
  }
811
- /** @hidden
812
- * Functionality handling column layout changes,
813
- * - recalculate height of content element
814
- * - recheck size depending on width of DynamicPage
815
- */
816
- _listenToLayoutChange() {
817
- this._columnLayout.layoutChange.pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef)).subscribe(() => {
818
- this.refreshSize();
819
- this._sizeChangeHandle();
820
- });
821
- }
822
808
  /** @hidden */
823
809
  _propagateSizeToChildren() {
824
810
  if (this._headerComponent) {
@@ -842,10 +828,19 @@ class DynamicPageComponent {
842
828
  }
843
829
  /** @hidden */
844
830
  _sizeChangeHandle() {
845
- if (!this._elementRef || !this.autoResponsive) {
831
+ if (!this.autoResponsive) {
832
+ return;
833
+ }
834
+ // Use the article element, not the host element
835
+ const element = this._dynamicPageElement?.nativeElement;
836
+ if (!element) {
837
+ return;
838
+ }
839
+ const dynamicPageWidth = element.getBoundingClientRect().width;
840
+ // Ignore zero-width measurements (element is hidden during layout transitions)
841
+ if (dynamicPageWidth === 0) {
846
842
  return;
847
843
  }
848
- const dynamicPageWidth = this._elementRef.nativeElement.getBoundingClientRect().width;
849
844
  this._dynamicPageService.pixelsSizeChanged.set(dynamicPageWidth);
850
845
  const size = dynamicPageWidthToSize(dynamicPageWidth);
851
846
  if (size !== this.size) {
@@ -868,11 +863,24 @@ class DynamicPageComponent {
868
863
  }
869
864
  /** @hidden Listen for window resize and adjust tab and content positions accordingly */
870
865
  _listenOnResize() {
871
- const listener = this._dynamicPageWrapper ? this._listenToWrapperResize() : this._listenToWindowResize();
872
- listener.pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef)).subscribe(() => {
873
- this._setContainerPositions();
874
- this._sizeChangeHandle();
875
- });
866
+ // When autoResponsive is enabled, observe the dynamic page article element itself
867
+ // This catches both manual resizes AND programmatic layout changes
868
+ if (this.autoResponsive && this._dynamicPageElement) {
869
+ resizeObservable(this._dynamicPageElement.nativeElement)
870
+ .pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef))
871
+ .subscribe(() => {
872
+ this._setContainerPositions();
873
+ this._sizeChangeHandle();
874
+ });
875
+ }
876
+ else {
877
+ // Fallback to window/wrapper resize for non-responsive mode
878
+ const listener = this._dynamicPageWrapper ? this._listenToWrapperResize() : this._listenToWindowResize();
879
+ listener.pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef)).subscribe(() => {
880
+ this._setContainerPositions();
881
+ this._sizeChangeHandle();
882
+ });
883
+ }
876
884
  }
877
885
  /** @hidden */
878
886
  _listenToWrapperResize() {
@@ -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-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.service.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 } from '@angular/core';\n\n@Directive()\nexport class DynamicPageBaseActions {\n /** @hidden */\n addClassToToolbar(_class: string, elementRef: ElementRef): void {\n // adds global actions classes to its toolbar\n const toolbarEl = elementRef.nativeElement.querySelector('.fd-toolbar');\n if (toolbarEl) {\n toolbarEl.classList.add(_class);\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ToolbarComponent } from '@fundamental-ngx/core/toolbar';\nimport { DYNAMIC_PAGE_CLASS_NAME, DynamicPageResponsiveSize } from '../../constants';\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 standalone: true\n})\nexport class DynamicPageGlobalActionsComponent extends DynamicPageBaseActions implements AfterContentInit {\n /** @hidden */\n @ContentChild(ToolbarComponent)\n _toolbarComponent: ToolbarComponent;\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar, this._elementRef);\n }\n\n /** @hidden */\n _setSize(size: DynamicPageResponsiveSize): void {\n if (this._toolbarComponent) {\n this._handleOverflow(size === 'small');\n }\n }\n\n /** @hidden */\n private _handleOverflow(shouldBeHidden: boolean): void {\n this._toolbarComponent.forceOverflow = shouldBeHidden;\n this._toolbarComponent.shouldOverflow = shouldBeHidden;\n this._toolbarComponent.detectChanges();\n setTimeout(() => {\n this._toolbarComponent.updateCollapsibleItems();\n });\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ToolbarComponent } from '@fundamental-ngx/core/toolbar';\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 standalone: true\n})\nexport class DynamicPageLayoutActionsComponent extends DynamicPageBaseActions implements AfterContentInit {\n /** @hidden */\n @ContentChild(ToolbarComponent)\n toolbarComponent: ToolbarComponent;\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageLayoutActionsToolbar, this._elementRef);\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar, this._elementRef);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { ToolbarComponent, ToolbarItemDirective } from '@fundamental-ngx/core/toolbar';\nimport { DynamicPageResponsiveSize } from '../../constants';\n\n@Component({\n selector: 'fd-dynamic-page-title-content',\n template: `\n @if (_size === 'small') {\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 }\n @if (_size !== 'small') {\n <div class=\"fd-dynamic-page__title-content\">\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 /** @hidden */\n _size: DynamicPageResponsiveSize;\n\n /** @hidden */\n constructor(\n private _changeDetRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** @hidden */\n _setSize(size: DynamicPageResponsiveSize): void {\n this._size = size;\n this._changeDetRef.detectChanges();\n }\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 { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class DynamicPageService {\n /** @hidden */\n collapsed = signal(false);\n\n /** @hidden */\n pinned = signal(false);\n\n /** @hidden */\n pixelsSizeChanged = signal(0);\n\n /** @hidden */\n subheaderVisibilityChange = new Subject<void>();\n\n /** @hidden */\n focusLayoutAction = new Subject<void>();\n\n /** @hidden */\n toggleCollapsed(): void {\n this.collapsed.update((collapsed) => !collapsed);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewEncapsulation,\n computed,\n input\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { BreadcrumbComponent, FD_BREADCRUMB_COMPONENT } from '@fundamental-ngx/core/breadcrumb';\nimport { DYNAMIC_PAGE_HEADER_TOKEN, DynamicPageHeader } from '@fundamental-ngx/core/shared';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IgnoreClickOnSelectionDirective, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\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]\n})\nexport class DynamicPageHeaderComponent implements OnInit, AfterViewInit, OnDestroy, DynamicPageHeader {\n /** Title property for dynamic page */\n @Input()\n title: string;\n\n /** Whether title should wrap instead of truncation. */\n @Input()\n titleWrap = false;\n\n /** Subtitle property for dynamic page */\n @Input()\n subtitle: string;\n\n /** Whether subtitle should wrap instead of truncation. */\n @Input()\n subtitleWrap = false;\n\n /**\n * @hidden\n * Template used to provide a custom content for the subtitle page header area.\n */\n @ContentChild(DynamicPageHeaderSubtitleDirective)\n _subtitleTemplate: Nullable<DynamicPageHeaderSubtitleDirective>;\n\n /**\n * @hidden\n * Template used to provide a custom content for the title page header area.\n */\n @ContentChild(DynamicPageHeaderTitleDirective)\n _titleTemplate: Nullable<DynamicPageHeaderSubtitleDirective>;\n\n /** @hidden */\n @ContentChild(FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT)\n _dynamicPageBreadcrumbComponent: DynamicPageBreadcrumbComponent;\n\n /** @hidden */\n @ContentChild(FD_BREADCRUMB_COMPONENT)\n _breadcrumbComponent: BreadcrumbComponent;\n\n /** @hidden */\n @ContentChild(DynamicPageGlobalActionsComponent)\n _globalActions: DynamicPageGlobalActionsComponent;\n\n /** @hidden */\n @ContentChild(DynamicPageLayoutActionsComponent)\n _layoutActions: DynamicPageLayoutActionsComponent;\n\n /** @hidden */\n @ContentChild(DynamicPageTitleContentComponent)\n _contentToolbar: DynamicPageTitleContentComponent;\n\n /** @hidden */\n _actionsSquashed$ = computed(() => this._dynamicPageService.pixelsSizeChanged() < ActionSquashBreakpointPx);\n\n /** @hidden */\n _size: DynamicPageResponsiveSize;\n\n /**\n * Heading level of the dynamic page header title.\n */\n headingLevel = input<HeadingLevel>(2);\n\n /** @hidden */\n _headingLevel = computed(() =>\n this.headingLevel() ? Number.parseInt(`${this.headingLevel()}`.replace(/\\D/g, ''), 10) : 2\n );\n\n /** Dynamic page title id, it has some default value if not set, */\n titleId = input('fd-dynamic-page-title-id-' + dynamicPageTitleId++);\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n readonly _dynamicPageService: DynamicPageService,\n private _changeDetRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._addClassNameToHostElement(DYNAMIC_PAGE_CLASS_NAME.dynamicPageTitleArea);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._addCustomClassToBreadcrumb();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\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 set size(sizeType: DynamicPageResponsiveSize) {\n this._setSize(sizeType);\n this._size = sizeType;\n }\n\n /** @hidden */\n stopPropagation(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n /**\n * @hidden\n * sets the padding classes\n * @param sizeType\n */\n private _setSize(sizeType: DynamicPageResponsiveSize): void {\n setTimeout(() => {\n this._breadcrumbComponent?.onResize();\n this._globalActions?._setSize(sizeType);\n this._contentToolbar?._setSize(sizeType);\n this._changeDetRef.detectChanges();\n });\n }\n\n /** @hidden */\n private _addClassNameToHostElement(className: string): void {\n addClassNameToElement(this._renderer, this._elementRef.nativeElement, className);\n }\n\n /** @hidden */\n private _addClassNameToCustomElement(element: Element, className: string): void {\n addClassNameToElement(this._renderer, element, className);\n }\n\n /** @hidden */\n private _addCustomClassToBreadcrumb(): void {\n if (this._breadcrumbComponent) {\n this._addClassNameToCustomElement(\n this._breadcrumbComponent.elementRef.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageBreadcrumb\n );\n }\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 aria-label=\"Breadcrumbs\"\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 role=\"heading\"\n [attr.aria-level]=\"_headingLevel() + 1\"\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 role=\"heading\"\n [attr.aria-level]=\"_headingLevel() + 1\"\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 #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\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 { inject } from '@angular/core';\nimport { FD_LANGUAGE, FdLanguage } from '@fundamental-ngx/i18n';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { DynamicPageConfig } from './dynamic-page.config';\n\n/**\n * Patch header i18n texts\n */\nexport function patchHeaderI18nTexts(config?: DynamicPageConfig): Observable<FdLanguage> {\n const lang$ = inject(FD_LANGUAGE, { skipSelf: true });\n if (config) {\n return lang$.pipe(\n map((lang) => ({\n ...lang,\n coreDynamicPage: {\n ...config\n }\n }))\n );\n }\n return lang$;\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, 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,\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 this._dynamicPageService.subheaderVisibilityChange.next();\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._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 /**\n * @hidden\n * tracking expand/collapse button\n */\n private _collapsed = 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 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, dynamicPageWidthToSize } 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 { 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]\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 this._propagateSizeToChildren();\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\n /** @hidden */\n ngAfterViewInit(): void {\n this._sizeChangeHandle();\n this._removeShadowWhenTabComponent();\n this._listenOnResize();\n this._listenOnCollapse();\n this._propagatePropertiesToChildren();\n this._setContentFooterSpacer();\n\n if (!this.disableSnapOnScroll && this._pageSubheaderComponent?.collapsible) {\n this._addScrollListeners();\n }\n\n if (this._columnLayout && this.autoResponsive) {\n this._listenToLayoutChange();\n }\n\n setTimeout(() => this._setContainerPositions());\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._setContainerPositions();\n this._sizeChangeHandle();\n }\n\n /** @hidden */\n _getScrollElement(): HTMLElement | null {\n return this._tabComponent?.scrollableElement?.nativeElement || this._scrollbar?.elementRef?.nativeElement;\n }\n\n /** Set the positions of the tabs and content with respect to the window */\n private _setContainerPositions(): void {\n this._setDynamicPageHeight();\n }\n\n /** @hidden */\n private _propagatePropertiesToChildren(): void {\n this._headerCollapsible = this._pageSubheaderComponent?.collapsible;\n this._propagateSizeToChildren();\n }\n\n /** @hidden\n * Functionality handling column layout changes,\n * - recalculate height of content element\n * - recheck size depending on width of DynamicPage\n */\n private _listenToLayoutChange(): void {\n this._columnLayout.layoutChange.pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.refreshSize();\n this._sizeChangeHandle();\n });\n }\n\n /** @hidden */\n private _propagateSizeToChildren(): void {\n if (this._headerComponent) {\n this._headerComponent.size = this.size;\n }\n this._setContainerPositions();\n }\n\n /** @hidden */\n private _listenOnCollapse(): void {\n this._dynamicPageService.subheaderVisibilityChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._setContainerPositions());\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(100vh - ' + (distanceFromTop + this.offset) + 'px)';\n }\n\n /** @hidden */\n private _sizeChangeHandle(): void {\n if (!this._elementRef || !this.autoResponsive) {\n return;\n }\n const dynamicPageWidth = this._elementRef.nativeElement.getBoundingClientRect().width;\n this._dynamicPageService.pixelsSizeChanged.set(dynamicPageWidth);\n const size = dynamicPageWidthToSize(dynamicPageWidth);\n\n if (size !== this.size) {\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 const listener = this._dynamicPageWrapper ? this._listenToWrapperResize() : this._listenToWindowResize();\n\n listener.pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._setContainerPositions();\n this._sizeChangeHandle();\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\n * set top position of DynamicPage on scrolling\n */\n private _setDynamicPageHeight(): 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 aria-label=\"Toggle header\"\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-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.service.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 } from '@angular/core';\n\n@Directive()\nexport class DynamicPageBaseActions {\n /** @hidden */\n addClassToToolbar(_class: string, elementRef: ElementRef): void {\n // adds global actions classes to its toolbar\n const toolbarEl = elementRef.nativeElement.querySelector('.fd-toolbar');\n if (toolbarEl) {\n toolbarEl.classList.add(_class);\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ToolbarComponent } from '@fundamental-ngx/core/toolbar';\nimport { DYNAMIC_PAGE_CLASS_NAME, DynamicPageResponsiveSize } from '../../constants';\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 standalone: true\n})\nexport class DynamicPageGlobalActionsComponent extends DynamicPageBaseActions implements AfterContentInit {\n /** @hidden */\n @ContentChild(ToolbarComponent)\n _toolbarComponent: ToolbarComponent;\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar, this._elementRef);\n }\n\n /** @hidden */\n _setSize(size: DynamicPageResponsiveSize): void {\n if (this._toolbarComponent) {\n this._handleOverflow(size === 'small');\n }\n }\n\n /** @hidden */\n private _handleOverflow(shouldBeHidden: boolean): void {\n this._toolbarComponent.forceOverflow = shouldBeHidden;\n this._toolbarComponent.shouldOverflow = shouldBeHidden;\n this._toolbarComponent.detectChanges();\n setTimeout(() => {\n this._toolbarComponent.updateCollapsibleItems();\n });\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ToolbarComponent } from '@fundamental-ngx/core/toolbar';\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 standalone: true\n})\nexport class DynamicPageLayoutActionsComponent extends DynamicPageBaseActions implements AfterContentInit {\n /** @hidden */\n @ContentChild(ToolbarComponent)\n toolbarComponent: ToolbarComponent;\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageLayoutActionsToolbar, this._elementRef);\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar, this._elementRef);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { ToolbarComponent, ToolbarItemDirective } from '@fundamental-ngx/core/toolbar';\nimport { DynamicPageResponsiveSize } from '../../constants';\n\n@Component({\n selector: 'fd-dynamic-page-title-content',\n template: `\n @if (_size === 'small') {\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 }\n @if (_size !== 'small') {\n <div class=\"fd-dynamic-page__title-content\">\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 /** @hidden */\n _size: DynamicPageResponsiveSize;\n\n /** @hidden */\n constructor(\n private _changeDetRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** @hidden */\n _setSize(size: DynamicPageResponsiveSize): void {\n this._size = size;\n this._changeDetRef.detectChanges();\n }\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 { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class DynamicPageService {\n /** @hidden */\n collapsed = signal(false);\n\n /** @hidden */\n pinned = signal(false);\n\n /** @hidden */\n pixelsSizeChanged = signal(0);\n\n /** @hidden */\n subheaderVisibilityChange = new Subject<void>();\n\n /** @hidden */\n focusLayoutAction = new Subject<void>();\n\n /** @hidden */\n toggleCollapsed(): void {\n this.collapsed.update((collapsed) => !collapsed);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewEncapsulation,\n computed,\n input\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { BreadcrumbComponent, FD_BREADCRUMB_COMPONENT } from '@fundamental-ngx/core/breadcrumb';\nimport { DYNAMIC_PAGE_HEADER_TOKEN, DynamicPageHeader } from '@fundamental-ngx/core/shared';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IgnoreClickOnSelectionDirective, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\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]\n})\nexport class DynamicPageHeaderComponent implements OnInit, AfterViewInit, OnDestroy, DynamicPageHeader {\n /** Title property for dynamic page */\n @Input()\n title: string;\n\n /** Whether title should wrap instead of truncation. */\n @Input()\n titleWrap = false;\n\n /** Subtitle property for dynamic page */\n @Input()\n subtitle: string;\n\n /** Whether subtitle should wrap instead of truncation. */\n @Input()\n subtitleWrap = false;\n\n /**\n * @hidden\n * Template used to provide a custom content for the subtitle page header area.\n */\n @ContentChild(DynamicPageHeaderSubtitleDirective)\n _subtitleTemplate: Nullable<DynamicPageHeaderSubtitleDirective>;\n\n /**\n * @hidden\n * Template used to provide a custom content for the title page header area.\n */\n @ContentChild(DynamicPageHeaderTitleDirective)\n _titleTemplate: Nullable<DynamicPageHeaderSubtitleDirective>;\n\n /** @hidden */\n @ContentChild(FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT)\n _dynamicPageBreadcrumbComponent: DynamicPageBreadcrumbComponent;\n\n /** @hidden */\n @ContentChild(FD_BREADCRUMB_COMPONENT)\n _breadcrumbComponent: BreadcrumbComponent;\n\n /** @hidden */\n @ContentChild(DynamicPageGlobalActionsComponent)\n _globalActions: DynamicPageGlobalActionsComponent;\n\n /** @hidden */\n @ContentChild(DynamicPageLayoutActionsComponent)\n _layoutActions: DynamicPageLayoutActionsComponent;\n\n /** @hidden */\n @ContentChild(DynamicPageTitleContentComponent)\n _contentToolbar: DynamicPageTitleContentComponent;\n\n /** @hidden */\n _actionsSquashed$ = computed(() => this._dynamicPageService.pixelsSizeChanged() < ActionSquashBreakpointPx);\n\n /** @hidden */\n _size: DynamicPageResponsiveSize;\n\n /**\n * Heading level of the dynamic page header title.\n */\n headingLevel = input<HeadingLevel>(2);\n\n /** @hidden */\n _headingLevel = computed(() =>\n this.headingLevel() ? Number.parseInt(`${this.headingLevel()}`.replace(/\\D/g, ''), 10) : 2\n );\n\n /** Dynamic page title id, it has some default value if not set, */\n titleId = input('fd-dynamic-page-title-id-' + dynamicPageTitleId++);\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n readonly _dynamicPageService: DynamicPageService,\n private _changeDetRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._addClassNameToHostElement(DYNAMIC_PAGE_CLASS_NAME.dynamicPageTitleArea);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._addCustomClassToBreadcrumb();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\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 set size(sizeType: DynamicPageResponsiveSize) {\n this._setSize(sizeType);\n this._size = sizeType;\n }\n\n /** @hidden */\n stopPropagation(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n /**\n * @hidden\n * sets the padding classes\n * @param sizeType\n */\n private _setSize(sizeType: DynamicPageResponsiveSize): void {\n setTimeout(() => {\n this._breadcrumbComponent?.onResize();\n this._globalActions?._setSize(sizeType);\n this._contentToolbar?._setSize(sizeType);\n this._changeDetRef.detectChanges();\n });\n }\n\n /** @hidden */\n private _addClassNameToHostElement(className: string): void {\n addClassNameToElement(this._renderer, this._elementRef.nativeElement, className);\n }\n\n /** @hidden */\n private _addClassNameToCustomElement(element: Element, className: string): void {\n addClassNameToElement(this._renderer, element, className);\n }\n\n /** @hidden */\n private _addCustomClassToBreadcrumb(): void {\n if (this._breadcrumbComponent) {\n this._addClassNameToCustomElement(\n this._breadcrumbComponent.elementRef.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageBreadcrumb\n );\n }\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 aria-label=\"Breadcrumbs\"\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 role=\"heading\"\n [attr.aria-level]=\"_headingLevel() + 1\"\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 role=\"heading\"\n [attr.aria-level]=\"_headingLevel() + 1\"\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 #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\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 { inject } from '@angular/core';\nimport { FD_LANGUAGE, FdLanguage } from '@fundamental-ngx/i18n';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { DynamicPageConfig } from './dynamic-page.config';\n\n/**\n * Patch header i18n texts\n */\nexport function patchHeaderI18nTexts(config?: DynamicPageConfig): Observable<FdLanguage> {\n const lang$ = inject(FD_LANGUAGE, { skipSelf: true });\n if (config) {\n return lang$.pipe(\n map((lang) => ({\n ...lang,\n coreDynamicPage: {\n ...config\n }\n }))\n );\n }\n return lang$;\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, 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,\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 this._dynamicPageService.subheaderVisibilityChange.next();\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._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 /**\n * @hidden\n * tracking expand/collapse button\n */\n private _collapsed = 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 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, dynamicPageWidthToSize } 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 { 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]\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 this._propagateSizeToChildren();\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\n /** @hidden */\n ngAfterViewInit(): void {\n this._sizeChangeHandle();\n this._removeShadowWhenTabComponent();\n this._listenOnResize();\n this._listenOnCollapse();\n this._propagatePropertiesToChildren();\n this._setContentFooterSpacer();\n\n if (!this.disableSnapOnScroll && this._pageSubheaderComponent?.collapsible) {\n this._addScrollListeners();\n }\n\n setTimeout(() => this._setContainerPositions());\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._setContainerPositions();\n this._sizeChangeHandle();\n }\n\n /** @hidden */\n _getScrollElement(): HTMLElement | null {\n return this._tabComponent?.scrollableElement?.nativeElement || this._scrollbar?.elementRef?.nativeElement;\n }\n\n /** Set the positions of the tabs and content with respect to the window */\n private _setContainerPositions(): void {\n this._setDynamicPageHeight();\n }\n\n /** @hidden */\n private _propagatePropertiesToChildren(): void {\n this._headerCollapsible = this._pageSubheaderComponent?.collapsible;\n this._propagateSizeToChildren();\n }\n\n /** @hidden */\n private _propagateSizeToChildren(): void {\n if (this._headerComponent) {\n this._headerComponent.size = this.size;\n }\n this._setContainerPositions();\n }\n\n /** @hidden */\n private _listenOnCollapse(): void {\n this._dynamicPageService.subheaderVisibilityChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._setContainerPositions());\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(100vh - ' + (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 = dynamicPageWidthToSize(dynamicPageWidth);\n\n if (size !== this.size) {\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._setContainerPositions();\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._setContainerPositions();\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\n * set top position of DynamicPage on scrolling\n */\n private _setDynamicPageHeight(): 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 aria-label=\"Toggle header\"\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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"}