@fundamental-ngx/core 0.61.2-rc.8 → 0.61.2

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 (114) hide show
  1. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -3
  2. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +4 -6
  4. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +13 -11
  6. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +7 -5
  8. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-calendar.mjs +31 -35
  10. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
  12. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-combobox.mjs +3 -5
  14. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-date-picker.mjs +2 -2
  16. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +2 -2
  18. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-datetime.mjs +13 -7
  20. package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +13 -13
  22. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
  24. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-core-form.mjs +1 -1
  26. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-core-grid-list.mjs +4 -4
  28. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
  30. package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-core-inline-help.mjs +65 -59
  32. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
  34. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  35. package/fesm2022/fundamental-ngx-core-menu.mjs +1 -3
  36. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-core-message-strip.mjs +49 -44
  38. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  39. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +17 -23
  40. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-core-multi-input.mjs +2 -2
  42. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-core-nested-list.mjs +21 -22
  44. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-core-notification.mjs +16 -13
  46. package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
  48. package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
  50. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
  52. package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +2 -2
  54. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-core-pagination.mjs +14 -11
  56. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  57. package/fesm2022/fundamental-ngx-core-popover.mjs +6 -0
  58. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  59. package/fesm2022/fundamental-ngx-core-product-switch.mjs +2 -2
  60. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  61. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +7 -4
  62. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  63. package/fesm2022/fundamental-ngx-core-segmented-button.mjs +11 -10
  64. package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  65. package/fesm2022/fundamental-ngx-core-select.mjs +6 -7
  66. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  67. package/fesm2022/fundamental-ngx-core-shellbar.mjs +6 -6
  68. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  69. package/fesm2022/fundamental-ngx-core-slider.mjs +6 -6
  70. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
  72. package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
  73. package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
  74. package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
  75. package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
  76. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  77. package/fesm2022/fundamental-ngx-core-tabs.mjs +2 -2
  78. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  79. package/fesm2022/fundamental-ngx-core-text.mjs +2 -2
  80. package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-core-time-picker.mjs +29 -4
  82. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  83. package/fesm2022/fundamental-ngx-core-time.mjs +4 -4
  84. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-core-token.mjs +15 -12
  86. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  87. package/fesm2022/fundamental-ngx-core-toolbar.mjs +3 -5
  88. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  89. package/fesm2022/fundamental-ngx-core-tree.mjs +4 -4
  90. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  91. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +4 -4
  92. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  93. package/fesm2022/fundamental-ngx-core-user-menu.mjs +3 -5
  94. package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
  95. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +2 -2
  96. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  97. package/package.json +3 -3
  98. package/types/fundamental-ngx-core-breadcrumb.d.ts +5 -5
  99. package/types/fundamental-ngx-core-busy-indicator.d.ts +3 -3
  100. package/types/fundamental-ngx-core-combobox.d.ts +2 -4
  101. package/types/fundamental-ngx-core-datetime.d.ts +5 -1
  102. package/types/fundamental-ngx-core-dynamic-page.d.ts +2 -1
  103. package/types/fundamental-ngx-core-inline-help.d.ts +45 -24
  104. package/types/fundamental-ngx-core-menu.d.ts +0 -2
  105. package/types/fundamental-ngx-core-message-strip.d.ts +12 -3
  106. package/types/fundamental-ngx-core-multi-combobox.d.ts +1 -1
  107. package/types/fundamental-ngx-core-nested-list.d.ts +10 -10
  108. package/types/fundamental-ngx-core-notification.d.ts +7 -5
  109. package/types/fundamental-ngx-core-pagination.d.ts +4 -3
  110. package/types/fundamental-ngx-core-rating-indicator.d.ts +2 -3
  111. package/types/fundamental-ngx-core-segmented-button.d.ts +5 -3
  112. package/types/fundamental-ngx-core-slider.d.ts +1 -1
  113. package/types/fundamental-ngx-core-time-picker.d.ts +17 -1
  114. package/types/fundamental-ngx-core-token.d.ts +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-dynamic-page.mjs","sources":["../../../../libs/core/dynamic-page/constants.ts","../../../../libs/core/dynamic-page/directives/dynamic-page-header-subtitle.directive.ts","../../../../libs/core/dynamic-page/directives/dynamic-page-header-title.directive.ts","../../../../libs/core/dynamic-page/utils.ts","../../../../libs/core/dynamic-page/dynamic-page-content/dynamic-page-content.component.ts","../../../../libs/core/dynamic-page/dynamic-page-content/dynamic-page-content.component.html","../../../../libs/core/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-base-actions.ts","../../../../libs/core/dynamic-page/dynamic-page.service.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.ts","../../../../libs/core/dynamic-page/tokens.ts","../../../../libs/core/dynamic-page/dynamic-page-header/breadcrumb/dynamic-page-breadcrumb.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.html","../../../../libs/core/dynamic-page/dynamic-page.config.ts","../../../../libs/core/dynamic-page/patch-header-i18n-texts.ts","../../../../libs/core/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.html","../../../../libs/core/dynamic-page/dynamic-page-wrapper.directive.ts","../../../../libs/core/dynamic-page/dynamic-page.tokens.ts","../../../../libs/core/dynamic-page/dynamic-page.component.ts","../../../../libs/core/dynamic-page/dynamic-page.component.html","../../../../libs/core/dynamic-page/dynamic-page.module.ts","../../../../libs/core/dynamic-page/fundamental-ngx-core-dynamic-page.ts"],"sourcesContent":["export const DYNAMIC_PAGE_CLASS_NAME = {\n dynamicPage: 'fd-dynamic-page',\n dynamicPageTitleArea: 'fd-dynamic-page__title-area',\n dynamicPageMainContainer: 'fd-dynamic-page__main-container',\n dynamicPageBreadcrumbTitleContainer: 'fd-dynamic-page__breadcrumb-title-container',\n dynamicPageTitleAreaCollapsed: 'fd-dynamic-page__title-area--collapsed',\n dynamicPageTitleContainer: 'fd-dynamic-page__title-container',\n dynamicPageTitle: 'fd-dynamic-page__title',\n dynamicPageBreadcrumb: 'fd-dynamic-page__breadcrumb',\n dynamicPageKeyInfo: 'fd-dynamic-page__title-content',\n dynamicPageToolbar: 'fd-dynamic-page__toolbar',\n dynamicPageLayoutActionsToolbar: 'fd-dynamic-page__toolbar--actions',\n dynamicPageLayoutContentToolbar: 'fd-dynamic-page__toolbar--content',\n dynamicPageHeader: 'fd-dynamic-page__header',\n dynamicPageCollapsibleHeader: 'fd-dynamic-page__collapsible-header',\n dynamicPageCollapsibleHeaderPinCollapseNoShadow:\n 'fd-dynamic-page__collapsible-header-visibility-container--no-shadow',\n dynamicPageTabs: 'fd-dynamic-page__tabs',\n dynamicPageTabsAddShadow: 'fd-dynamic-page__tabs--add-shadow',\n dynamicPageContent: 'fd-dynamic-page__content',\n dynamicPageSummarizedTitleArea: 'fd-dynamic-page__summarized-title-area',\n dynamicPageSummarizedTitleAreaExtraLarge: 'fd-dynamic-page__summarized-title-area',\n dynamicPageSummarizedTitleAreaNoShadow: 'fd-dynamic-page__summarized-title-area--no-shadow',\n dynamicPageSummarizedTitle: 'fd-dynamic-page__summarized-title',\n dynamicPageSummarizedTitleCollapsed: 'fd-dynamic-page__summarized-title-area--collapsed'\n} as const;\n\nexport type DynamicPageBackgroundType = 'solid' | 'list' | 'transparent';\n\nexport type DynamicPageResponsiveSize = 'small' | 'medium' | 'large' | 'extra-large';\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { DynamicPageTitleDirectiveContext } from '../models/title-directive-context';\n\n@Directive({\n selector: '[fdDynamicPageHeaderSubtitle]',\n standalone: true\n})\nexport class DynamicPageHeaderSubtitleDirective {\n /** Template reference. */\n templateRef = inject<TemplateRef<DynamicPageTitleDirectiveContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: DynamicPageHeaderSubtitleDirective,\n ctx: DynamicPageTitleDirectiveContext\n ): ctx is DynamicPageTitleDirectiveContext {\n return true;\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { DynamicPageTitleDirectiveContext } from '../models/title-directive-context';\n\n@Directive({\n selector: '[fdDynamicPageHeaderTitle]',\n standalone: true\n})\nexport class DynamicPageHeaderTitleDirective {\n /** Template reference. */\n templateRef = inject<TemplateRef<DynamicPageTitleDirectiveContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: DynamicPageHeaderTitleDirective,\n ctx: DynamicPageTitleDirectiveContext\n ): ctx is DynamicPageTitleDirectiveContext {\n return true;\n }\n}\n","import { Renderer2 } from '@angular/core';\nimport { DynamicPageResponsiveSize } from './constants';\n\nexport const addClassNameToElement = (renderer: Renderer2, element: Element, className: string): void => {\n renderer.addClass(element, className);\n};\n\n/** @hidden Returns dynamic page size based on width\n * @param width - dynamic page window width\n **/\nexport function dynamicPageWidthToSize(width: number): DynamicPageResponsiveSize {\n if (width <= 599) {\n return 'small';\n } else if (width <= 1023) {\n return 'medium';\n } else if (width <= 1439) {\n return 'large';\n }\n return 'extra-large';\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../constants';\nimport { addClassNameToElement } from '../utils';\n\n@Component({\n selector: 'fd-dynamic-page-content',\n templateUrl: './dynamic-page-content.component.html',\n styleUrl: './dynamic-page-content.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: []\n})\nexport class DynamicPageContentComponent implements OnInit {\n /**\n * label for the tab. If label is provided, tab navigation will be internally set up.\n */\n @Input()\n tabLabel: string;\n\n /**\n * a unique identifier for this content\n */\n @Input()\n id: string;\n\n /** @hidden */\n _showSpacer = false;\n\n /** @hidden */\n constructor(\n public readonly _renderer: Renderer2,\n public readonly elementRef: ElementRef<HTMLElement>,\n private readonly _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._addClassNameToHostElement(DYNAMIC_PAGE_CLASS_NAME.dynamicPageContent);\n }\n\n /** @hidden */\n _toggleSpacer(state: boolean): void {\n this._showSpacer = state;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _addClassNameToHostElement(className: string): void {\n addClassNameToElement(this._renderer, this.elementRef.nativeElement, className);\n }\n}\n","<ng-content></ng-content>\n@if (_showSpacer) {\n <div class=\"footer-spacer\"></div>\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-dynamic-page-footer',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n})\nexport class DynamicPageFooterComponent {}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\n@Directive()\nexport class DynamicPageBaseActions implements HasElementRef {\n /** Element reference to the host element. */\n readonly elementRef = inject(ElementRef);\n\n /**\n * Adds a CSS class to the toolbar element within this component.\n * @param _class The CSS class name to add to the toolbar.\n */\n addClassToToolbar(_class: string): void {\n const toolbarEl = this.elementRef.nativeElement.querySelector('.fd-toolbar');\n if (toolbarEl) {\n toolbarEl.classList.add(_class);\n }\n }\n}\n","import { computed, Injectable, signal } from '@angular/core';\nimport { DynamicPageResponsiveSize } from './constants';\nimport { dynamicPageWidthToSize } from './utils';\n\n@Injectable()\nexport class DynamicPageService {\n /** @hidden */\n readonly collapsed = signal(false);\n\n /** @hidden */\n readonly pinned = signal(false);\n\n /** @hidden */\n readonly pixelsSizeChanged = signal(0);\n\n /**\n * Manual size override. When set, takes precedence over auto-computed size.\n * Used when autoResponsive is false and size is set manually via input.\n */\n readonly manualSizeOverride = signal<DynamicPageResponsiveSize | null>(null);\n\n /**\n * Computed responsive size based on pixel width or manual override.\n * Returns 'small', 'medium', 'large', or 'extra-large'.\n */\n readonly responsiveSize = computed<DynamicPageResponsiveSize>(\n () => this.manualSizeOverride() ?? dynamicPageWidthToSize(this.pixelsSizeChanged())\n );\n\n /** @hidden */\n toggleCollapsed(): void {\n this.collapsed.update((collapsed) => !collapsed);\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n Injector,\n ViewEncapsulation\n} from '@angular/core';\nimport { ToolbarComponent } from '@fundamental-ngx/core/toolbar';\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../../constants';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { DynamicPageBaseActions } from './dynamic-page-base-actions';\n\n@Component({\n selector: 'fd-dynamic-page-global-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'toolbar'\n }\n})\nexport class DynamicPageGlobalActionsComponent extends DynamicPageBaseActions {\n /** @hidden */\n protected readonly _toolbarComponent = contentChild(ToolbarComponent);\n\n /** Whether the toolbar should show overflow (size is small). */\n protected readonly shouldOverflow = computed(() => this._dynamicPageService?.responsiveSize() === 'small');\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private readonly _dynamicPageService = inject(DynamicPageService, { optional: true });\n\n constructor() {\n super();\n\n // Add toolbar class after render when DOM is ready\n afterNextRender(() => {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar);\n });\n\n // React to size changes\n effect(() => {\n const shouldOverflow = this.shouldOverflow();\n const toolbar = this._toolbarComponent();\n if (toolbar) {\n this._handleOverflow(toolbar, shouldOverflow);\n }\n });\n }\n\n /** @hidden */\n private _handleOverflow(toolbar: ToolbarComponent, shouldBeHidden: boolean): void {\n toolbar.forceOverflow = shouldBeHidden;\n toolbar.shouldOverflow = shouldBeHidden;\n toolbar.detectChanges();\n afterNextRender(\n () => {\n toolbar.updateCollapsibleItems();\n },\n { injector: this._injector }\n );\n }\n}\n","import { afterNextRender, ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../../constants';\nimport { DynamicPageBaseActions } from './dynamic-page-base-actions';\n\n@Component({\n selector: 'fd-dynamic-page-layout-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'toolbar',\n '[style.margin-inline-start]': '\"auto\"'\n }\n})\nexport class DynamicPageLayoutActionsComponent extends DynamicPageBaseActions {\n constructor() {\n super();\n\n // Add toolbar classes after render when DOM is ready\n afterNextRender(() => {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageLayoutActionsToolbar);\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar);\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { ToolbarComponent, ToolbarItemDirective } from '@fundamental-ngx/core/toolbar';\nimport { DynamicPageService } from '../../dynamic-page.service';\n\n@Component({\n selector: 'fd-dynamic-page-title-content',\n template: `\n @if (_isSmall()) {\n <fd-toolbar\n fdType=\"transparent\"\n (click)=\"$event.stopPropagation()\"\n class=\"dynamicPageLayoutContentToolbar\"\n [clearBorder]=\"true\"\n [forceOverflow]=\"true\"\n [shouldOverflow]=\"true\"\n >\n <div fd-toolbar-item>\n <ng-template [ngTemplateOutlet]=\"templateContentRef\"></ng-template>\n </div>\n </fd-toolbar>\n } @else {\n <div 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 // TO BE REMOVED WITH THE LATEST VERSION OF FUNDAMENTAL STYLES\n styles: [\n `\n .fd-dynamic-page__title-content {\n padding-inline: 1rem 0.2rem;\n }\n `\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [contentDensityObserverProviders()],\n imports: [ToolbarComponent, ToolbarItemDirective, NgTemplateOutlet]\n})\nexport class DynamicPageTitleContentComponent {\n /** @hidden */\n protected readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** Whether the current size is small. */\n protected readonly _isSmall = computed(() => this._dynamicPageService?.responsiveSize() === 'small');\n\n /** @hidden */\n private readonly _dynamicPageService = inject(DynamicPageService, { optional: true });\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT = new InjectionToken('DynamicPageBreadcrumbComponent');\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT } from '../../tokens';\n\n@Component({\n selector: 'fd-dynamic-page-breadcrumb',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT,\n useExisting: DynamicPageBreadcrumbComponent\n }\n ],\n standalone: true\n})\nexport class DynamicPageBreadcrumbComponent {}\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { BreadcrumbComponent, FD_BREADCRUMB_COMPONENT } from '@fundamental-ngx/core/breadcrumb';\nimport { DYNAMIC_PAGE_HEADER_TOKEN } from '@fundamental-ngx/core/shared';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IgnoreClickOnSelectionDirective } from '@fundamental-ngx/cdk/utils';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { DYNAMIC_PAGE_CLASS_NAME, DynamicPageResponsiveSize } from '../../constants';\nimport { DynamicPageHeaderSubtitleDirective } from '../../directives/dynamic-page-header-subtitle.directive';\nimport { DynamicPageHeaderTitleDirective } from '../../directives/dynamic-page-header-title.directive';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT } from '../../tokens';\nimport { addClassNameToElement } from '../../utils';\nimport { DynamicPageGlobalActionsComponent } from '../actions/dynamic-page-global-actions.component';\nimport { DynamicPageLayoutActionsComponent } from '../actions/dynamic-page-layout-actions.component';\nimport { DynamicPageTitleContentComponent } from '../actions/dynamic-page-title-content.component';\nimport { DynamicPageBreadcrumbComponent } from '../breadcrumb/dynamic-page-breadcrumb.component';\n\nexport const ActionSquashBreakpointPx = 1280;\n\nlet dynamicPageTitleId = 0;\n\n@Component({\n selector: 'fd-dynamic-page-header',\n templateUrl: './dynamic-page-header.component.html',\n styleUrl: './dynamic-page-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: DYNAMIC_PAGE_HEADER_TOKEN,\n useExisting: DynamicPageHeaderComponent\n }\n ],\n imports: [NgTemplateOutlet, IgnoreClickOnSelectionDirective, FdTranslatePipe]\n})\nexport class DynamicPageHeaderComponent implements OnInit {\n /**\n * The title text displayed in the dynamic page header.\n * @default ''\n */\n readonly title = input('');\n\n /**\n * Whether the title text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly titleWrap = input(false, { transform: booleanAttribute });\n\n /**\n * The subtitle text displayed below the title in the dynamic page header.\n * @default ''\n */\n readonly subtitle = input('');\n\n /**\n * Whether the subtitle text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly subtitleWrap = input(false, { transform: booleanAttribute });\n\n /**\n * The heading level (h1-h6) for the dynamic page title.\n * Determines the semantic hierarchy for accessibility and SEO.\n * @default 2\n */\n readonly headingLevel = input<HeadingLevel>(2);\n\n /**\n * The heading level (h1-h6) for the dynamic page subtitle.\n * When provided, the subtitle will be rendered as a semantic heading with role=\"heading\".\n * When not provided (undefined/null), the subtitle is rendered as plain text without a heading role.\n * @default undefined\n */\n readonly subtitleHeadingLevel = input<HeadingLevel | undefined | null>(undefined);\n\n /**\n * The unique ID for the dynamic page title element.\n * Used for ARIA relationships and programmatic reference.\n * @default 'fd-dynamic-page-title-id-{auto-increment}'\n */\n readonly titleId = input(`fd-dynamic-page-title-id-${++dynamicPageTitleId}`);\n\n /**\n * @hidden\n * Content child query for custom subtitle template.\n * When provided via fdDynamicPageHeaderSubtitle directive, overrides the subtitle text input.\n */\n readonly _subtitleTemplate = contentChild(DynamicPageHeaderSubtitleDirective);\n\n /**\n * @hidden\n * Content child query for custom title template.\n * When provided via fdDynamicPageHeaderTitle directive, overrides the title text input.\n */\n readonly _titleTemplate = contentChild(DynamicPageHeaderTitleDirective);\n\n /** @hidden */\n readonly _dynamicPageBreadcrumbComponent = contentChild(FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT, {\n read: DynamicPageBreadcrumbComponent\n });\n\n /** @hidden */\n readonly _breadcrumbComponent = contentChild(FD_BREADCRUMB_COMPONENT, { read: BreadcrumbComponent });\n\n /** @hidden */\n readonly _globalActions = contentChild(DynamicPageGlobalActionsComponent);\n\n /** @hidden */\n readonly _layoutActions = contentChild(DynamicPageLayoutActionsComponent);\n\n /** @hidden */\n readonly _contentToolbar = contentChild(DynamicPageTitleContentComponent);\n\n /**\n * @hidden\n * Computed signal indicating whether actions should be displayed in collapsed/squashed mode.\n * True when viewport width is below the ActionSquashBreakpointPx threshold (1280px).\n */\n readonly _actionsSquashed = computed(() => this._dynamicPageService.pixelsSizeChanged() < ActionSquashBreakpointPx);\n\n /**\n * @hidden\n * Computed numeric heading level extracted from the headingLevel input.\n * Strips non-digit characters and returns integer value.\n */\n readonly _headingLevel = computed(() =>\n this.headingLevel() ? Number.parseInt(`${this.headingLevel()}`.replace(/\\D/g, ''), 10) : 2\n );\n\n /**\n * @hidden\n * Tracks the current responsive size of the dynamic page.\n * Updated by effect when DynamicPageService.responsiveSize changes.\n */\n _size: DynamicPageResponsiveSize;\n\n /** @hidden */\n readonly _dynamicPageService = inject(DynamicPageService);\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n constructor() {\n // React to size changes and update breadcrumb\n effect(() => {\n const size = this._dynamicPageService.responsiveSize();\n this._size = size;\n\n const breadcrumb = this._breadcrumbComponent();\n\n if (breadcrumb) {\n // Add custom class on first render\n addClassNameToElement(\n this._renderer,\n breadcrumb.elementRef.nativeElement,\n 'fd-dynamic-page__breadcrumb'\n );\n }\n });\n\n // Trigger breadcrumb resize after view is fully initialized\n afterNextRender(() => {\n const breadcrumb = this._breadcrumbComponent();\n\n if (breadcrumb && typeof breadcrumb.onResize === 'function') {\n breadcrumb.onResize();\n }\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n addClassNameToElement(\n this._renderer,\n this._elementRef.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageTitleArea\n );\n }\n\n /**\n * @hidden\n * Prevents click events from bubbling up to parent elements.\n * Used to stop the header collapse toggle when interacting with header content.\n */\n stopPropagation(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n @if (_dynamicPageBreadcrumbComponent() || _actionsSquashed()) {\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n @if (_dynamicPageBreadcrumbComponent()) {\n <nav\n [attr.aria-label]=\"('coreDynamicPage.breadcrumbsLabel' | fdTranslate)()\"\n class=\"fd-dynamic-page__breadcrumb-wrapper\"\n (click)=\"stopPropagation($event)\"\n >\n <ng-content select=\"fd-dynamic-page-breadcrumb\"></ng-content>\n </nav>\n }\n\n @if (_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-dynamic-page__title-container\">\n @if (_dynamicPageService.collapsed()) {\n <ng-content select=\"fd-facet\"></ng-content>\n }\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <div class=\"fd-dynamic-page__title-container\">\n <span\n role=\"heading\"\n class=\"fd-dynamic-page__title\"\n [attr.aria-level]=\"_headingLevel()\"\n [id]=\"titleId()\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate() ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-template [ngTemplateOutlet]=\"dynamicPageGlobalActionsRef\"></ng-template>\n @if (!_actionsSquashed()) {\n <ng-template [ngTemplateOutlet]=\"dynamicPageLayoutActionsRef\"></ng-template>\n }\n </div>\n </div>\n @if (_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"\n ></ng-template>\n </span>\n }\n </div>\n </div>\n </div>\n</div>\n@if (!_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n class=\"fd-dynamic-page__subtitle\"\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"></ng-template>\n </span>\n}\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #subtitleRef>\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #defaultSubtitle>\n {{ subtitle() }}\n</ng-template>\n<ng-template #defaultTitle>\n {{ title() }}\n</ng-template>\n","import { Injectable } from '@angular/core';\n\n/**\n * Default options for core dynamic-page\n * @deprecated use i18n coreDynamicPage key instead\n */\n@Injectable()\nexport class DynamicPageConfig {\n /**\n * aria label for expand/collapse button when the Dynamic Page is collapsed\n */\n expandLabel = 'Expand Header';\n\n /**\n * aria label for expand/collapse button when the Dynamic Page is expanded\n */\n collapseLabel = 'Collapse Header';\n\n /**\n * aria label for pin button when the Dynamic Page should be pinned\n */\n pinLabel = 'Pin Header';\n\n /**\n * aria label for pin button when the Panel should be unpinned\n */\n unpinLabel = 'Unpin Header';\n}\n","import { computed, inject, Signal } from '@angular/core';\nimport { FD_LANGUAGE_SIGNAL, FdLanguage } from '@fundamental-ngx/i18n';\nimport { DynamicPageConfig } from './dynamic-page.config';\n\n/**\n * Patch header i18n texts\n */\nexport function patchHeaderI18nTexts(config?: DynamicPageConfig): Signal<FdLanguage> {\n const langSignal = inject(FD_LANGUAGE_SIGNAL, { skipSelf: true });\n if (config) {\n return computed(\n () =>\n ({\n ...langSignal(),\n coreDynamicPage: {\n ...config\n }\n }) as FdLanguage\n );\n }\n return langSignal;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_LANGUAGE_SIGNAL, resolveTranslationSignalFn } from '@fundamental-ngx/i18n';\nimport { DynamicPageConfig } from '../../dynamic-page.config';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { patchHeaderI18nTexts } from '../../patch-header-i18n-texts';\n\nlet dynamicPageSubHeaderId = 0;\n@Component({\n selector: 'fd-dynamic-page-subheader',\n templateUrl: './dynamic-page-subheader.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ButtonComponent, IconComponent],\n providers: [\n {\n provide: FD_LANGUAGE_SIGNAL,\n useFactory: patchHeaderI18nTexts,\n deps: [[new Optional(), DynamicPageConfig]]\n }\n ]\n})\nexport class DynamicPageSubheaderComponent {\n /**\n * whether the header can be collapsed. True by default. If set to false, both pin/collapse buttons disappear\n * and the header stays visible\n */\n @Input()\n collapsible = true;\n\n /**\n * whether the header should be allowed to be pinned or unpinned. When set, the pin button shows up.\n * Pinning the header will make the header stay visible and the collapse button(if present) will disappear until unpinned.\n */\n @Input()\n pinnable = false;\n\n /**\n * the initial state of the header. Set to true if header should be collapsed.\n */\n @Input()\n set collapsed(collapsed: boolean) {\n this._dynamicPageService.collapsed.set(collapsed);\n }\n\n get collapsed(): boolean {\n return this._dynamicPageService.collapsed();\n }\n\n /**\n * ARIA label for button when the header is collapsed\n */\n @Input()\n expandLabel: string;\n\n /**\n * ARIA label for button when the header is expanded\n */\n @Input()\n collapseLabel: string;\n\n /**\n * id for header\n */\n @Input()\n @HostBinding('attr.id')\n id = `fd-dynamic-page-header-id-${dynamicPageSubHeaderId++}`;\n\n /**\n * aria label for header\n */\n @Input()\n headerAriaLabel: Nullable<string> = 'Collapsed Header';\n\n /**\n * aria label for pin state of pin button\n */\n @Input()\n pinAriaLabel: string;\n\n /**\n * aria label for unpin state of pin button\n */\n @Input()\n unpinAriaLabel: string;\n\n /** Collapse/Expand change event raised */\n @Output()\n collapsedChange = new EventEmitter<boolean>();\n\n /** Reference to page header content */\n @ViewChild('pincollapseContainer')\n pinCollapseContainer: ElementRef<HTMLElement>;\n\n /**\n * id for collapsible header\n */\n collapsibleHeaderId = `${this.id}-collapsible`;\n\n /**\n * Aria Label for the toggle button\n * @hidden\n **/\n get _toggleButtonAriaLabel(): string {\n const expandLabel = this.expandLabel || this._defaultExpandLabel();\n const collapseLabel = this.collapseLabel || this._defaultCollapseLabel();\n return this._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 effect,\n ElementRef,\n inject,\n Inject,\n Input,\n Optional,\n QueryList,\n Renderer2,\n viewChild,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport {\n FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT,\n FlexibleColumnLayoutComponent\n} from '@fundamental-ngx/core/flexible-column-layout';\nimport { DYNAMIC_PAGE_CLASS_NAME, DynamicPageBackgroundType, DynamicPageResponsiveSize } from './constants';\nimport { DynamicPageContentComponent } from './dynamic-page-content/dynamic-page-content.component';\nimport { DynamicPageFooterComponent } from './dynamic-page-footer/dynamic-page-footer.component';\nimport { DynamicPageHeaderComponent } from './dynamic-page-header/header/dynamic-page-header.component';\nimport { DynamicPageSubheaderComponent } from './dynamic-page-header/subheader/dynamic-page-subheader.component';\nimport { DynamicPageWrapperDirective } from './dynamic-page-wrapper.directive';\nimport { DynamicPageService } from './dynamic-page.service';\nimport { addClassNameToElement } from './utils';\n\nimport { CdkScrollable } from '@angular/cdk/overlay';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FD_TABLIST, TabList } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { asyncScheduler, fromEvent, Observable, startWith } from 'rxjs';\nimport { debounceTime, map, observeOn } from 'rxjs/operators';\nimport { DynamicPage } from './dynamic-page.interface';\nimport { FD_DYNAMIC_PAGE } from './dynamic-page.tokens';\n\n@Component({\n selector: 'fd-dynamic-page',\n templateUrl: './dynamic-page.component.html',\n styleUrl: './dynamic-page.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n DynamicPageService,\n {\n provide: FD_DYNAMIC_PAGE,\n useExisting: DynamicPageComponent\n }\n ],\n imports: [CdkScrollable, ScrollbarDirective, FdTranslatePipe]\n})\nexport class DynamicPageComponent implements AfterViewInit, DynamicPage {\n /** Whether DynamicPage should snap on scroll */\n @Input() disableSnapOnScroll = false;\n\n /** aria label for the page */\n @Input() ariaLabel: Nullable<string>;\n\n /**\n * aria roledescription for the page\n * default: \"Dynamic Page\"\n *\n */\n @Input() ariaRoledescription = 'Dynamic Page';\n\n /**\n * sets background for content to `list`, `transparent`, or `solid` background color.\n * Default is `solid`.\n */\n @Input() background: DynamicPageBackgroundType = 'solid';\n\n /** Whether DynamicPage should have responsive sides spacing changing with Page window width.\n * max-width: 599px - small\n * min-width: 600px and max-width: 1023px - medium\n * min-width: 1024px and max-width: 1439px - large\n * min-width: 1440px - extra large\n */\n @Input() autoResponsive = true;\n\n /**\n * sets size which in turn adds corresponding padding for the size type.\n * size can be `small`, `medium`, `large`, or `extra-large`.\n */\n @Input()\n set size(size: DynamicPageResponsiveSize) {\n this._size = size;\n // Only set manual override when autoResponsive is false\n // When autoResponsive is true, size changes are driven by resize events\n if (!this.autoResponsive) {\n this._dynamicPageService.manualSizeOverride.set(size);\n }\n this._updateDynamicPageHeight();\n }\n\n get size(): DynamicPageResponsiveSize {\n return this._size;\n }\n\n /** Offset in PX\n * Should be added, when there is something else at the bottom and dynamic page is not expanded to bottom's corners\n */\n @Input() offset = 0;\n\n /**\n * Whether dynamic page should be expanded in whole page.\n */\n @Input() expandContent = true;\n\n /**\n * Whether dynamic page has position relative.\n * This is needed in cases where Dynamic Page is used in Flexible Column Layout and has a floating footer\n */\n @Input() positionRelative = false;\n\n /** @hidden reference to header component */\n @ContentChild(DynamicPageSubheaderComponent)\n _pageSubheaderComponent: DynamicPageSubheaderComponent;\n\n /** @hidden reference to title component */\n @ContentChild(DynamicPageHeaderComponent)\n _headerComponent: DynamicPageHeaderComponent;\n\n /** @hidden reference to content component */\n @ContentChildren(DynamicPageContentComponent, { descendants: true })\n _contentComponent: QueryList<DynamicPageContentComponent>;\n\n /** @hidden reference to footer component */\n @ContentChild(DynamicPageFooterComponent)\n _footerComponent: DynamicPageContentComponent;\n\n /** @hidden reference to tab component */\n @ContentChild(FD_TABLIST)\n _tabComponent: TabList;\n\n /** @hidden */\n @ViewChild('dynamicPageElement')\n _dynamicPageElement: ElementRef;\n\n /** @hidden */\n @ViewChild(ScrollbarDirective)\n _scrollbar: ScrollbarDirective;\n\n /** Whether the dynamic page is collapsed */\n collapsed = computed(() => this._dynamicPageService.collapsed());\n\n /** @hidden */\n _size: DynamicPageResponsiveSize = 'extra-large';\n\n /** @hidden */\n _headerCollapsible = true;\n\n /** @hidden */\n _isExpanded = computed(() => !this._dynamicPageService.collapsed());\n\n /** @hidden */\n private _headerButton = viewChild<ElementRef<HTMLSpanElement>>('headerButton');\n\n /** @hidden **/\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n protected _cd: ChangeDetectorRef,\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n private _dynamicPageService: DynamicPageService,\n @Optional() @Inject(FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT) private _columnLayout: FlexibleColumnLayoutComponent,\n @Optional() private _dynamicPageWrapper: DynamicPageWrapperDirective\n ) {\n // React to collapsed state changes\n effect(() => {\n this._dynamicPageService.collapsed();\n this._updateDynamicPageHeight();\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._sizeChangeHandle();\n this._removeShadowWhenTabComponent();\n this._listenOnResize();\n this._propagatePropertiesToChildren();\n this._setContentFooterSpacer();\n\n if (!this.disableSnapOnScroll && this._pageSubheaderComponent?.collapsible) {\n this._addScrollListeners();\n }\n\n setTimeout(() => this._updateDynamicPageHeight());\n\n this._cd.detectChanges();\n }\n\n /** toggle the visibility of the header on click of title area. */\n toggleCollapse(): void {\n if (this._headerCollapsible) {\n this._dynamicPageService.toggleCollapsed();\n this._headerButton()?.nativeElement.focus();\n }\n }\n\n /**\n * Triggers recheck for spacing and sizing of elements inside DynamicPage.\n */\n refreshSize(): void {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n }\n\n /** @hidden */\n _getScrollElement(): HTMLElement | null {\n return this._tabComponent?.scrollableElement?.nativeElement || this._scrollbar?.elementRef?.nativeElement;\n }\n\n /** @hidden */\n private _propagatePropertiesToChildren(): void {\n this._headerCollapsible = this._pageSubheaderComponent?.collapsible;\n }\n\n /** @hidden */\n private _getCalculatedFullHeight(element: HTMLElement): string | null {\n if (!element) {\n return null;\n }\n const distanceFromTop = element.getBoundingClientRect().top;\n return 'calc(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 = this._dynamicPageService.responsiveSize();\n\n if (size !== this._size) {\n // Update internal size directly without triggering manual override\n // Manual override should only be set when user explicitly sets the size input\n this._size = size;\n this._cd.detectChanges();\n }\n }\n\n /** @hidden */\n private _addScrollListeners(): void {\n const element = this._getScrollElement();\n if (element) {\n fromEvent(element, 'scroll')\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const collapse =\n !this._dynamicPageService.pinned() &&\n (element.scrollTop > 0 || element.scrollHeight <= element.clientHeight);\n this._dynamicPageService.collapsed.set(collapse);\n });\n }\n }\n\n /** @hidden Listen for window resize and adjust tab and content positions accordingly */\n private _listenOnResize(): void {\n // When autoResponsive is enabled, observe the dynamic page article element itself\n // This catches both manual resizes AND programmatic layout changes\n if (this.autoResponsive && this._dynamicPageElement) {\n resizeObservable(this._dynamicPageElement.nativeElement)\n .pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n });\n } else {\n // Fallback to window/wrapper resize for non-responsive mode\n const listener = this._dynamicPageWrapper ? this._listenToWrapperResize() : this._listenToWindowResize();\n listener.pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n });\n }\n }\n\n /** @hidden */\n private _listenToWrapperResize(): Observable<ResizeObserverEntry[]> {\n return resizeObservable(this._dynamicPageWrapper.elementRef.nativeElement);\n }\n\n /** @hidden */\n private _listenToWindowResize(): Observable<ResizeObserverEntry[]> {\n return fromEvent(window, 'resize').pipe(map(() => []));\n }\n\n /** @hidden Sets the dynamic page height to fill available viewport space. */\n private _updateDynamicPageHeight(): void {\n if (!this._dynamicPageElement || !this.expandContent) {\n return;\n }\n const element = this._dynamicPageElement.nativeElement;\n this._renderer.setStyle(element, 'height', this._getCalculatedFullHeight(element));\n }\n\n /** @hidden */\n private _removeShadowWhenTabComponent(): void {\n if (!this._pageSubheaderComponent?.collapsible || !this._tabComponent) {\n return;\n }\n\n const pinCollapseShadowElement = this._pageSubheaderComponent?.pinCollapseContainer;\n\n if (pinCollapseShadowElement) {\n addClassNameToElement(\n this._renderer,\n pinCollapseShadowElement.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageCollapsibleHeaderPinCollapseNoShadow\n );\n }\n }\n\n /** @hidden */\n private _setContentFooterSpacer(): void {\n this._contentComponent.changes\n .pipe(\n startWith(this._contentComponent.toArray()),\n observeOn(asyncScheduler),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((components) => {\n components.forEach((content, index) => {\n /** show spacer when:\n * a) footer + no tabs = only last\n * b) footer + tabs, not stacked = all\n * c) footer + tabs, stacked = only last\n */\n content._toggleSpacer(\n this._footerComponent && (!this._tabComponent?.stackContent || index === components.length - 1)\n );\n });\n });\n }\n}\n","<article\n #dynamicPageElement\n class=\"fd-dynamic-page\"\n [class.fd-dynamic-page--sm]=\"size === 'small'\"\n [class.fd-dynamic-page--md]=\"size === 'medium'\"\n [class.fd-dynamic-page--lg]=\"size === 'large'\"\n [class.fd-dynamic-page--xl]=\"size === 'extra-large'\"\n [class.fd-dynamic-page--transparent-bg]=\"background === 'transparent'\"\n [class.fd-dynamic-page--list-bg]=\"background === 'list'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-roledescription]=\"ariaRoledescription\"\n [style.position]=\"positionRelative ? 'relative' : null\"\n>\n <header class=\"fd-dynamic-page__header\" [class.fd-dynamic-page__header--not-collapsible]=\"!_headerCollapsible\">\n <div (click)=\"toggleCollapse()\">\n @if (_headerCollapsible) {\n <span\n #headerButton\n role=\"button\"\n [attr.aria-expanded]=\"_isExpanded()\"\n [attr.aria-labelledby]=\"_headerComponent.titleId()\"\n [attr.aria-label]=\"('coreDynamicPage.toggleHeader' | fdTranslate)()\"\n tabindex=\"0\"\n (keydown.enter)=\"toggleCollapse()\"\n class=\"fd-dynamic-page__header-button\"\n >\n </span>\n }\n <ng-content select=\"fd-dynamic-page-header\"></ng-content>\n </div>\n <ng-content select=\"fd-dynamic-page-subheader\"></ng-content>\n </header>\n <ng-content select=\"fd-tab-list\"></ng-content>\n <ng-content select=\"fd-wizard\"></ng-content>\n <ng-content select=\"fdp-icon-tab-bar\"></ng-content>\n @if (!_tabComponent) {\n <div fd-scrollbar>\n <ng-content select=\"fd-dynamic-page-content\"></ng-content>\n </div>\n } @else {\n <div>\n <ng-content select=\"fd-dynamic-page-content\"></ng-content>\n </div>\n }\n <footer>\n <ng-content select=\"fd-dynamic-page-footer\"></ng-content>\n </footer>\n</article>\n","import { NgModule } from '@angular/core';\n\nimport { DynamicPageHeaderSubtitleDirective } from './directives/dynamic-page-header-subtitle.directive';\nimport { DynamicPageHeaderTitleDirective } from './directives/dynamic-page-header-title.directive';\nimport { DynamicPageContentComponent } from './dynamic-page-content/dynamic-page-content.component';\nimport { DynamicPageFooterComponent } from './dynamic-page-footer/dynamic-page-footer.component';\nimport { DynamicPageGlobalActionsComponent } from './dynamic-page-header/actions/dynamic-page-global-actions.component';\nimport { DynamicPageLayoutActionsComponent } from './dynamic-page-header/actions/dynamic-page-layout-actions.component';\nimport { DynamicPageTitleContentComponent } from './dynamic-page-header/actions/dynamic-page-title-content.component';\nimport { DynamicPageBreadcrumbComponent } from './dynamic-page-header/breadcrumb/dynamic-page-breadcrumb.component';\nimport { DynamicPageHeaderComponent } from './dynamic-page-header/header/dynamic-page-header.component';\nimport { DynamicPageSubheaderComponent } from './dynamic-page-header/subheader/dynamic-page-subheader.component';\nimport { DynamicPageWrapperDirective } from './dynamic-page-wrapper.directive';\nimport { DynamicPageComponent } from './dynamic-page.component';\n\nconst components = [\n DynamicPageComponent,\n DynamicPageHeaderComponent,\n DynamicPageGlobalActionsComponent,\n DynamicPageLayoutActionsComponent,\n DynamicPageSubheaderComponent,\n DynamicPageContentComponent,\n DynamicPageFooterComponent,\n DynamicPageTitleContentComponent,\n DynamicPageWrapperDirective,\n DynamicPageHeaderSubtitleDirective,\n DynamicPageHeaderTitleDirective,\n DynamicPageBreadcrumbComponent\n];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class DynamicPageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DynamicPageService","i2.DynamicPageWrapperDirective"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-dynamic-page.mjs","sources":["../../../../libs/core/dynamic-page/constants.ts","../../../../libs/core/dynamic-page/directives/dynamic-page-header-subtitle.directive.ts","../../../../libs/core/dynamic-page/directives/dynamic-page-header-title.directive.ts","../../../../libs/core/dynamic-page/utils.ts","../../../../libs/core/dynamic-page/dynamic-page-content/dynamic-page-content.component.ts","../../../../libs/core/dynamic-page/dynamic-page-content/dynamic-page-content.component.html","../../../../libs/core/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-base-actions.ts","../../../../libs/core/dynamic-page/dynamic-page.service.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.ts","../../../../libs/core/dynamic-page/tokens.ts","../../../../libs/core/dynamic-page/dynamic-page-header/breadcrumb/dynamic-page-breadcrumb.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.html","../../../../libs/core/dynamic-page/dynamic-page.config.ts","../../../../libs/core/dynamic-page/patch-header-i18n-texts.ts","../../../../libs/core/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.ts","../../../../libs/core/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.html","../../../../libs/core/dynamic-page/dynamic-page-wrapper.directive.ts","../../../../libs/core/dynamic-page/dynamic-page.tokens.ts","../../../../libs/core/dynamic-page/dynamic-page.component.ts","../../../../libs/core/dynamic-page/dynamic-page.component.html","../../../../libs/core/dynamic-page/dynamic-page.module.ts","../../../../libs/core/dynamic-page/fundamental-ngx-core-dynamic-page.ts"],"sourcesContent":["export const DYNAMIC_PAGE_CLASS_NAME = {\n dynamicPage: 'fd-dynamic-page',\n dynamicPageTitleArea: 'fd-dynamic-page__title-area',\n dynamicPageMainContainer: 'fd-dynamic-page__main-container',\n dynamicPageBreadcrumbTitleContainer: 'fd-dynamic-page__breadcrumb-title-container',\n dynamicPageTitleAreaCollapsed: 'fd-dynamic-page__title-area--collapsed',\n dynamicPageTitleContainer: 'fd-dynamic-page__title-container',\n dynamicPageTitle: 'fd-dynamic-page__title',\n dynamicPageBreadcrumb: 'fd-dynamic-page__breadcrumb',\n dynamicPageKeyInfo: 'fd-dynamic-page__title-content',\n dynamicPageToolbar: 'fd-dynamic-page__toolbar',\n dynamicPageLayoutActionsToolbar: 'fd-dynamic-page__toolbar--actions',\n dynamicPageLayoutContentToolbar: 'fd-dynamic-page__toolbar--content',\n dynamicPageHeader: 'fd-dynamic-page__header',\n dynamicPageCollapsibleHeader: 'fd-dynamic-page__collapsible-header',\n dynamicPageCollapsibleHeaderPinCollapseNoShadow:\n 'fd-dynamic-page__collapsible-header-visibility-container--no-shadow',\n dynamicPageTabs: 'fd-dynamic-page__tabs',\n dynamicPageTabsAddShadow: 'fd-dynamic-page__tabs--add-shadow',\n dynamicPageContent: 'fd-dynamic-page__content',\n dynamicPageSummarizedTitleArea: 'fd-dynamic-page__summarized-title-area',\n dynamicPageSummarizedTitleAreaExtraLarge: 'fd-dynamic-page__summarized-title-area',\n dynamicPageSummarizedTitleAreaNoShadow: 'fd-dynamic-page__summarized-title-area--no-shadow',\n dynamicPageSummarizedTitle: 'fd-dynamic-page__summarized-title',\n dynamicPageSummarizedTitleCollapsed: 'fd-dynamic-page__summarized-title-area--collapsed'\n} as const;\n\nexport type DynamicPageBackgroundType = 'solid' | 'list' | 'transparent';\n\nexport type DynamicPageResponsiveSize = 'small' | 'medium' | 'large' | 'extra-large';\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { DynamicPageTitleDirectiveContext } from '../models/title-directive-context';\n\n@Directive({\n selector: '[fdDynamicPageHeaderSubtitle]',\n standalone: true\n})\nexport class DynamicPageHeaderSubtitleDirective {\n /** Template reference. */\n templateRef = inject<TemplateRef<DynamicPageTitleDirectiveContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: DynamicPageHeaderSubtitleDirective,\n ctx: DynamicPageTitleDirectiveContext\n ): ctx is DynamicPageTitleDirectiveContext {\n return true;\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { DynamicPageTitleDirectiveContext } from '../models/title-directive-context';\n\n@Directive({\n selector: '[fdDynamicPageHeaderTitle]',\n standalone: true\n})\nexport class DynamicPageHeaderTitleDirective {\n /** Template reference. */\n templateRef = inject<TemplateRef<DynamicPageTitleDirectiveContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: DynamicPageHeaderTitleDirective,\n ctx: DynamicPageTitleDirectiveContext\n ): ctx is DynamicPageTitleDirectiveContext {\n return true;\n }\n}\n","import { Renderer2 } from '@angular/core';\nimport { DynamicPageResponsiveSize } from './constants';\n\nexport const addClassNameToElement = (renderer: Renderer2, element: Element, className: string): void => {\n renderer.addClass(element, className);\n};\n\n/** @hidden Returns dynamic page size based on width\n * @param width - dynamic page window width\n **/\nexport function dynamicPageWidthToSize(width: number): DynamicPageResponsiveSize {\n if (width <= 599) {\n return 'small';\n } else if (width <= 1023) {\n return 'medium';\n } else if (width <= 1439) {\n return 'large';\n }\n return 'extra-large';\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../constants';\nimport { addClassNameToElement } from '../utils';\n\n@Component({\n selector: 'fd-dynamic-page-content',\n templateUrl: './dynamic-page-content.component.html',\n styleUrl: './dynamic-page-content.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: []\n})\nexport class DynamicPageContentComponent implements OnInit {\n /**\n * label for the tab. If label is provided, tab navigation will be internally set up.\n */\n @Input()\n tabLabel: string;\n\n /**\n * a unique identifier for this content\n */\n @Input()\n id: string;\n\n /** @hidden */\n _showSpacer = false;\n\n /** @hidden */\n constructor(\n public readonly _renderer: Renderer2,\n public readonly elementRef: ElementRef<HTMLElement>,\n private readonly _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._addClassNameToHostElement(DYNAMIC_PAGE_CLASS_NAME.dynamicPageContent);\n }\n\n /** @hidden */\n _toggleSpacer(state: boolean): void {\n this._showSpacer = state;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _addClassNameToHostElement(className: string): void {\n addClassNameToElement(this._renderer, this.elementRef.nativeElement, className);\n }\n}\n","<ng-content></ng-content>\n@if (_showSpacer) {\n <div class=\"footer-spacer\"></div>\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-dynamic-page-footer',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n})\nexport class DynamicPageFooterComponent {}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\n@Directive()\nexport class DynamicPageBaseActions implements HasElementRef {\n /** Element reference to the host element. */\n readonly elementRef = inject(ElementRef);\n\n /**\n * Adds a CSS class to the toolbar element within this component.\n * @param _class The CSS class name to add to the toolbar.\n */\n addClassToToolbar(_class: string): void {\n const toolbarEl = this.elementRef.nativeElement.querySelector('.fd-toolbar');\n if (toolbarEl) {\n toolbarEl.classList.add(_class);\n }\n }\n}\n","import { computed, Injectable, signal } from '@angular/core';\nimport { DynamicPageResponsiveSize } from './constants';\nimport { dynamicPageWidthToSize } from './utils';\n\n@Injectable()\nexport class DynamicPageService {\n /** @hidden */\n readonly collapsed = signal(false);\n\n /** @hidden */\n readonly pinned = signal(false);\n\n /** @hidden */\n readonly pixelsSizeChanged = signal(0);\n\n /**\n * Manual size override. When set, takes precedence over auto-computed size.\n * Used when autoResponsive is false and size is set manually via input.\n */\n readonly manualSizeOverride = signal<DynamicPageResponsiveSize | null>(null);\n\n /**\n * Computed responsive size based on pixel width or manual override.\n * Returns 'small', 'medium', 'large', or 'extra-large'.\n */\n readonly responsiveSize = computed<DynamicPageResponsiveSize>(\n () => this.manualSizeOverride() ?? dynamicPageWidthToSize(this.pixelsSizeChanged())\n );\n\n /** @hidden */\n toggleCollapsed(): void {\n this.collapsed.update((collapsed) => !collapsed);\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n Injector,\n ViewEncapsulation\n} from '@angular/core';\nimport { ToolbarComponent } from '@fundamental-ngx/core/toolbar';\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../../constants';\nimport { DynamicPageService } from '../../dynamic-page.service';\nimport { DynamicPageBaseActions } from './dynamic-page-base-actions';\n\n@Component({\n selector: 'fd-dynamic-page-global-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'toolbar'\n }\n})\nexport class DynamicPageGlobalActionsComponent extends DynamicPageBaseActions {\n /** @hidden */\n protected readonly _toolbarComponent = contentChild(ToolbarComponent);\n\n /** Whether the toolbar should show overflow (size is small). */\n protected readonly shouldOverflow = computed(() => this._dynamicPageService?.responsiveSize() === 'small');\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private readonly _dynamicPageService = inject(DynamicPageService, { optional: true });\n\n constructor() {\n super();\n\n // Add toolbar class after render when DOM is ready\n afterNextRender(() => {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar);\n });\n\n // React to size changes\n effect(() => {\n const shouldOverflow = this.shouldOverflow();\n const toolbar = this._toolbarComponent();\n if (toolbar) {\n this._handleOverflow(toolbar, shouldOverflow);\n }\n });\n }\n\n /** @hidden */\n private _handleOverflow(toolbar: ToolbarComponent, shouldBeHidden: boolean): void {\n toolbar.forceOverflow = shouldBeHidden;\n toolbar.shouldOverflow = shouldBeHidden;\n toolbar.detectChanges();\n afterNextRender(\n () => {\n toolbar.updateCollapsibleItems();\n },\n { injector: this._injector }\n );\n }\n}\n","import { afterNextRender, ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { DYNAMIC_PAGE_CLASS_NAME } from '../../constants';\nimport { DynamicPageBaseActions } from './dynamic-page-base-actions';\n\n@Component({\n selector: 'fd-dynamic-page-layout-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'toolbar',\n '[style.margin-inline-start]': '\"auto\"'\n }\n})\nexport class DynamicPageLayoutActionsComponent extends DynamicPageBaseActions {\n constructor() {\n super();\n\n // Add toolbar classes after render when DOM is ready\n afterNextRender(() => {\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageLayoutActionsToolbar);\n this.addClassToToolbar(DYNAMIC_PAGE_CLASS_NAME.dynamicPageToolbar);\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { ToolbarComponent, ToolbarItemDirective } from '@fundamental-ngx/core/toolbar';\nimport { DynamicPageService } from '../../dynamic-page.service';\n\n@Component({\n selector: 'fd-dynamic-page-title-content',\n template: `\n @if (_isSmall()) {\n <fd-toolbar\n fdType=\"transparent\"\n (click)=\"$event.stopPropagation()\"\n class=\"dynamicPageLayoutContentToolbar\"\n [clearBorder]=\"true\"\n [forceOverflow]=\"true\"\n [shouldOverflow]=\"true\"\n >\n <div fd-toolbar-item>\n <ng-template [ngTemplateOutlet]=\"templateContentRef\"></ng-template>\n </div>\n </fd-toolbar>\n } @else {\n <div 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 // TO BE REMOVED WITH THE LATEST VERSION OF FUNDAMENTAL STYLES\n styles: [\n `\n .fd-dynamic-page__title-content {\n padding-inline: 1rem 0.2rem;\n }\n `\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [contentDensityObserverProviders()],\n imports: [ToolbarComponent, ToolbarItemDirective, NgTemplateOutlet]\n})\nexport class DynamicPageTitleContentComponent {\n /** @hidden */\n protected readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** Whether the current size is small. */\n protected readonly _isSmall = computed(() => this._dynamicPageService?.responsiveSize() === 'small');\n\n /** @hidden */\n private readonly _dynamicPageService = inject(DynamicPageService, { optional: true });\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT = new InjectionToken('DynamicPageBreadcrumbComponent');\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT } from '../../tokens';\n\n@Component({\n selector: 'fd-dynamic-page-breadcrumb',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT,\n useExisting: DynamicPageBreadcrumbComponent\n }\n ],\n standalone: true\n})\nexport class DynamicPageBreadcrumbComponent {}\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { BreadcrumbComponent, FD_BREADCRUMB_COMPONENT } from '@fundamental-ngx/core/breadcrumb';\nimport { DYNAMIC_PAGE_HEADER_TOKEN } from '@fundamental-ngx/core/shared';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IgnoreClickOnSelectionDirective } from '@fundamental-ngx/cdk/utils';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\nimport { 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 {\n /**\n * The title text displayed in the dynamic page header.\n * @default ''\n */\n readonly title = input('');\n\n /**\n * Whether the title text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly titleWrap = input(false, { transform: booleanAttribute });\n\n /**\n * The subtitle text displayed below the title in the dynamic page header.\n * @default ''\n */\n readonly subtitle = input('');\n\n /**\n * Whether the subtitle text should wrap to multiple lines instead of truncating with ellipsis.\n * @default false\n */\n readonly subtitleWrap = input(false, { transform: booleanAttribute });\n\n /**\n * The heading level (h1-h6) for the dynamic page title.\n * Determines the semantic hierarchy for accessibility and SEO.\n * @default 2\n */\n readonly headingLevel = input<HeadingLevel>(2);\n\n /**\n * The heading level (h1-h6) for the dynamic page subtitle.\n * When provided, the subtitle will be rendered as a semantic heading with role=\"heading\".\n * When not provided (undefined/null), the subtitle is rendered as plain text without a heading role.\n * @default undefined\n */\n readonly subtitleHeadingLevel = input<HeadingLevel | undefined | null>(undefined);\n\n /**\n * The unique ID for the dynamic page title element.\n * Used for ARIA relationships and programmatic reference.\n * @default 'fd-dynamic-page-title-id-{auto-increment}'\n */\n readonly titleId = input(`fd-dynamic-page-title-id-${++dynamicPageTitleId}`);\n\n /**\n * @hidden\n * Content child query for custom subtitle template.\n * When provided via fdDynamicPageHeaderSubtitle directive, overrides the subtitle text input.\n */\n readonly _subtitleTemplate = contentChild(DynamicPageHeaderSubtitleDirective);\n\n /**\n * @hidden\n * Content child query for custom title template.\n * When provided via fdDynamicPageHeaderTitle directive, overrides the title text input.\n */\n readonly _titleTemplate = contentChild(DynamicPageHeaderTitleDirective);\n\n /** @hidden */\n readonly _dynamicPageBreadcrumbComponent = contentChild(FD_DYNAMIC_PAGE_BREADCRUMB_COMPONENT, {\n read: DynamicPageBreadcrumbComponent\n });\n\n /** @hidden */\n readonly _breadcrumbComponent = contentChild(FD_BREADCRUMB_COMPONENT, { read: BreadcrumbComponent });\n\n /** @hidden */\n readonly _globalActions = contentChild(DynamicPageGlobalActionsComponent);\n\n /** @hidden */\n readonly _layoutActions = contentChild(DynamicPageLayoutActionsComponent);\n\n /** @hidden */\n readonly _contentToolbar = contentChild(DynamicPageTitleContentComponent);\n\n /**\n * @hidden\n * Computed signal indicating whether actions should be displayed in collapsed/squashed mode.\n * True when viewport width is below the ActionSquashBreakpointPx threshold (1280px).\n */\n readonly _actionsSquashed = computed(() => this._dynamicPageService.pixelsSizeChanged() < ActionSquashBreakpointPx);\n\n /**\n * @hidden\n * Computed numeric heading level extracted from the headingLevel input.\n * Strips non-digit characters and returns integer value.\n */\n readonly _headingLevel = computed(() =>\n this.headingLevel() ? Number.parseInt(`${this.headingLevel()}`.replace(/\\D/g, ''), 10) : 2\n );\n\n /**\n * @hidden\n * Tracks the current responsive size of the dynamic page.\n * Updated by effect when DynamicPageService.responsiveSize changes.\n */\n _size: DynamicPageResponsiveSize;\n\n /** @hidden */\n readonly _dynamicPageService = inject(DynamicPageService);\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n constructor() {\n // React to size changes and update breadcrumb\n effect(() => {\n const size = this._dynamicPageService.responsiveSize();\n this._size = size;\n\n const breadcrumb = this._breadcrumbComponent();\n\n if (breadcrumb) {\n // Add custom class on first render\n addClassNameToElement(\n this._renderer,\n breadcrumb.elementRef.nativeElement,\n 'fd-dynamic-page__breadcrumb'\n );\n }\n });\n\n // Trigger breadcrumb resize after view is fully initialized\n afterNextRender(() => {\n const breadcrumb = this._breadcrumbComponent();\n\n if (breadcrumb && typeof breadcrumb.onResize === 'function') {\n breadcrumb.onResize();\n }\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n addClassNameToElement(\n this._renderer,\n this._elementRef.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageTitleArea\n );\n }\n\n /**\n * @hidden\n * Prevents click events from bubbling up to parent elements.\n * Used to stop the header collapse toggle when interacting with header content.\n */\n stopPropagation(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n @if (_dynamicPageBreadcrumbComponent() || _actionsSquashed()) {\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n @if (_dynamicPageBreadcrumbComponent()) {\n <nav\n 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 [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"\n ></ng-template>\n </span>\n }\n </div>\n </div>\n </div>\n</div>\n@if (!_dynamicPageService.collapsed() && (subtitle() || _subtitleTemplate())) {\n <span\n class=\"fd-dynamic-page__subtitle\"\n [attr.role]=\"subtitleHeadingLevel() ? 'heading' : null\"\n [attr.aria-level]=\"subtitleHeadingLevel()\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap()\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_subtitleTemplate() ? subtitleRef : defaultSubtitle\"></ng-template>\n </span>\n}\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #subtitleRef>\n <ng-template\n [ngTemplateOutlet]=\"_subtitleTemplate()!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _dynamicPageService.collapsed() }\"\n ></ng-template>\n</ng-template>\n<ng-template #defaultSubtitle>\n {{ subtitle() }}\n</ng-template>\n<ng-template #defaultTitle>\n {{ title() }}\n</ng-template>\n","import { Injectable } from '@angular/core';\n\n/**\n * Default options for core dynamic-page\n * @deprecated use i18n coreDynamicPage key instead\n */\n@Injectable()\nexport class DynamicPageConfig {\n /**\n * aria label for expand/collapse button when the Dynamic Page is collapsed\n */\n expandLabel = 'Expand Header';\n\n /**\n * aria label for expand/collapse button when the Dynamic Page is expanded\n */\n collapseLabel = 'Collapse Header';\n\n /**\n * aria label for pin button when the Dynamic Page should be pinned\n */\n pinLabel = 'Pin Header';\n\n /**\n * aria label for pin button when the Panel should be unpinned\n */\n unpinLabel = 'Unpin Header';\n}\n","import { 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 }\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 effect,\n ElementRef,\n inject,\n Inject,\n Input,\n Optional,\n QueryList,\n Renderer2,\n viewChild,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport {\n FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT,\n FlexibleColumnLayoutComponent\n} from '@fundamental-ngx/core/flexible-column-layout';\nimport { DYNAMIC_PAGE_CLASS_NAME, DynamicPageBackgroundType, DynamicPageResponsiveSize } from './constants';\nimport { DynamicPageContentComponent } from './dynamic-page-content/dynamic-page-content.component';\nimport { DynamicPageFooterComponent } from './dynamic-page-footer/dynamic-page-footer.component';\nimport { DynamicPageHeaderComponent } from './dynamic-page-header/header/dynamic-page-header.component';\nimport { DynamicPageSubheaderComponent } from './dynamic-page-header/subheader/dynamic-page-subheader.component';\nimport { DynamicPageWrapperDirective } from './dynamic-page-wrapper.directive';\nimport { DynamicPageService } from './dynamic-page.service';\nimport { addClassNameToElement } from './utils';\n\nimport { CdkScrollable } from '@angular/cdk/overlay';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FD_TABLIST, TabList } from '@fundamental-ngx/core/shared';\nimport { 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 // Only set manual override when autoResponsive is false\n // When autoResponsive is true, size changes are driven by resize events\n if (!this.autoResponsive) {\n this._dynamicPageService.manualSizeOverride.set(size);\n }\n this._updateDynamicPageHeight();\n }\n\n get size(): DynamicPageResponsiveSize {\n return this._size;\n }\n\n /** Offset in PX\n * Should be added, when there is something else at the bottom and dynamic page is not expanded to bottom's corners\n */\n @Input() offset = 0;\n\n /**\n * Whether dynamic page should be expanded in whole page.\n */\n @Input() expandContent = true;\n\n /**\n * Whether dynamic page has position relative.\n * This is needed in cases where Dynamic Page is used in Flexible Column Layout and has a floating footer\n */\n @Input() positionRelative = false;\n\n /** @hidden reference to header component */\n @ContentChild(DynamicPageSubheaderComponent)\n _pageSubheaderComponent: DynamicPageSubheaderComponent;\n\n /** @hidden reference to title component */\n @ContentChild(DynamicPageHeaderComponent)\n _headerComponent: DynamicPageHeaderComponent;\n\n /** @hidden reference to content component */\n @ContentChildren(DynamicPageContentComponent, { descendants: true })\n _contentComponent: QueryList<DynamicPageContentComponent>;\n\n /** @hidden reference to footer component */\n @ContentChild(DynamicPageFooterComponent)\n _footerComponent: DynamicPageContentComponent;\n\n /** @hidden reference to tab component */\n @ContentChild(FD_TABLIST)\n _tabComponent: TabList;\n\n /** @hidden */\n @ViewChild('dynamicPageElement')\n _dynamicPageElement: ElementRef;\n\n /** @hidden */\n @ViewChild(ScrollbarDirective)\n _scrollbar: ScrollbarDirective;\n\n /** Whether the dynamic page is collapsed */\n collapsed = computed(() => this._dynamicPageService.collapsed());\n\n /** @hidden */\n _size: DynamicPageResponsiveSize = 'extra-large';\n\n /** @hidden */\n _headerCollapsible = true;\n\n /** @hidden */\n _isExpanded = computed(() => !this._dynamicPageService.collapsed());\n\n /** @hidden */\n private _headerButton = viewChild<ElementRef<HTMLSpanElement>>('headerButton');\n\n /** @hidden **/\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n protected _cd: ChangeDetectorRef,\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n private _dynamicPageService: DynamicPageService,\n @Optional() @Inject(FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT) private _columnLayout: FlexibleColumnLayoutComponent,\n @Optional() private _dynamicPageWrapper: DynamicPageWrapperDirective\n ) {\n // React to collapsed state changes\n effect(() => {\n this._dynamicPageService.collapsed();\n this._updateDynamicPageHeight();\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._sizeChangeHandle();\n this._removeShadowWhenTabComponent();\n this._listenOnResize();\n this._propagatePropertiesToChildren();\n this._setContentFooterSpacer();\n\n if (!this.disableSnapOnScroll && this._pageSubheaderComponent?.collapsible) {\n this._addScrollListeners();\n }\n\n setTimeout(() => this._updateDynamicPageHeight());\n\n this._cd.detectChanges();\n }\n\n /** toggle the visibility of the header on click of title area. */\n toggleCollapse(): void {\n if (this._headerCollapsible) {\n this._dynamicPageService.toggleCollapsed();\n this._headerButton()?.nativeElement.focus();\n }\n }\n\n /**\n * Triggers recheck for spacing and sizing of elements inside DynamicPage.\n */\n refreshSize(): void {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n }\n\n /** @hidden */\n _getScrollElement(): HTMLElement | null {\n return this._tabComponent?.scrollableElement?.nativeElement || this._scrollbar?.elementRef?.nativeElement;\n }\n\n /** @hidden */\n private _propagatePropertiesToChildren(): void {\n this._headerCollapsible = this._pageSubheaderComponent?.collapsible;\n }\n\n /** @hidden */\n private _getCalculatedFullHeight(element: HTMLElement): string | null {\n if (!element) {\n return null;\n }\n const distanceFromTop = element.getBoundingClientRect().top;\n return 'calc(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 = this._dynamicPageService.responsiveSize();\n\n if (size !== this._size) {\n // Update internal size directly without triggering manual override\n // Manual override should only be set when user explicitly sets the size input\n this._size = size;\n this._cd.detectChanges();\n }\n }\n\n /** @hidden */\n private _addScrollListeners(): void {\n const element = this._getScrollElement();\n if (element) {\n fromEvent(element, 'scroll')\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const collapse =\n !this._dynamicPageService.pinned() &&\n (element.scrollTop > 0 || element.scrollHeight <= element.clientHeight);\n this._dynamicPageService.collapsed.set(collapse);\n });\n }\n }\n\n /** @hidden Listen for window resize and adjust tab and content positions accordingly */\n private _listenOnResize(): void {\n // When autoResponsive is enabled, observe the dynamic page article element itself\n // This catches both manual resizes AND programmatic layout changes\n if (this.autoResponsive && this._dynamicPageElement) {\n resizeObservable(this._dynamicPageElement.nativeElement)\n .pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n });\n } else {\n // Fallback to window/wrapper resize for non-responsive mode\n const listener = this._dynamicPageWrapper ? this._listenToWrapperResize() : this._listenToWindowResize();\n listener.pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._updateDynamicPageHeight();\n this._sizeChangeHandle();\n });\n }\n }\n\n /** @hidden */\n private _listenToWrapperResize(): Observable<ResizeObserverEntry[]> {\n return resizeObservable(this._dynamicPageWrapper.elementRef.nativeElement);\n }\n\n /** @hidden */\n private _listenToWindowResize(): Observable<ResizeObserverEntry[]> {\n return fromEvent(window, 'resize').pipe(map(() => []));\n }\n\n /** @hidden Sets the dynamic page height to fill available viewport space. */\n private _updateDynamicPageHeight(): void {\n if (!this._dynamicPageElement || !this.expandContent) {\n return;\n }\n const element = this._dynamicPageElement.nativeElement;\n this._renderer.setStyle(element, 'height', this._getCalculatedFullHeight(element));\n }\n\n /** @hidden */\n private _removeShadowWhenTabComponent(): void {\n if (!this._pageSubheaderComponent?.collapsible || !this._tabComponent) {\n return;\n }\n\n const pinCollapseShadowElement = this._pageSubheaderComponent?.pinCollapseContainer;\n\n if (pinCollapseShadowElement) {\n addClassNameToElement(\n this._renderer,\n pinCollapseShadowElement.nativeElement,\n DYNAMIC_PAGE_CLASS_NAME.dynamicPageCollapsibleHeaderPinCollapseNoShadow\n );\n }\n }\n\n /** @hidden */\n private _setContentFooterSpacer(): void {\n this._contentComponent.changes\n .pipe(\n startWith(this._contentComponent.toArray()),\n observeOn(asyncScheduler),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((components) => {\n components.forEach((content, index) => {\n /** show spacer when:\n * a) footer + no tabs = only last\n * b) footer + tabs, not stacked = all\n * c) footer + tabs, stacked = only last\n */\n content._toggleSpacer(\n this._footerComponent && (!this._tabComponent?.stackContent || index === components.length - 1)\n );\n });\n });\n }\n}\n","<article\n #dynamicPageElement\n class=\"fd-dynamic-page\"\n [class.fd-dynamic-page--sm]=\"size === 'small'\"\n [class.fd-dynamic-page--md]=\"size === 'medium'\"\n [class.fd-dynamic-page--lg]=\"size === 'large'\"\n [class.fd-dynamic-page--xl]=\"size === 'extra-large'\"\n [class.fd-dynamic-page--transparent-bg]=\"background === 'transparent'\"\n [class.fd-dynamic-page--list-bg]=\"background === 'list'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-roledescription]=\"ariaRoledescription\"\n [style.position]=\"positionRelative ? 'relative' : null\"\n>\n <header class=\"fd-dynamic-page__header\" [class.fd-dynamic-page__header--not-collapsible]=\"!_headerCollapsible\">\n <div (click)=\"toggleCollapse()\">\n @if (_headerCollapsible) {\n <span\n #headerButton\n role=\"button\"\n [attr.aria-expanded]=\"_isExpanded()\"\n [attr.aria-labelledby]=\"_headerComponent.titleId()\"\n 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":";;;;;;;;;;;;;;;;;;;AAAO,MAAM,uBAAuB,GAAG;AACnC,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,oBAAoB,EAAE,6BAA6B;AACnD,IAAA,wBAAwB,EAAE,iCAAiC;AAC3D,IAAA,mCAAmC,EAAE,6CAA6C;AAClF,IAAA,6BAA6B,EAAE,wCAAwC;AACvE,IAAA,yBAAyB,EAAE,kCAAkC;AAC7D,IAAA,gBAAgB,EAAE,wBAAwB;AAC1C,IAAA,qBAAqB,EAAE,6BAA6B;AACpD,IAAA,kBAAkB,EAAE,gCAAgC;AACpD,IAAA,kBAAkB,EAAE,0BAA0B;AAC9C,IAAA,+BAA+B,EAAE,mCAAmC;AACpE,IAAA,+BAA+B,EAAE,mCAAmC;AACpE,IAAA,iBAAiB,EAAE,yBAAyB;AAC5C,IAAA,4BAA4B,EAAE,qCAAqC;AACnE,IAAA,+CAA+C,EAC3C,qEAAqE;AACzE,IAAA,eAAe,EAAE,uBAAuB;AACxC,IAAA,wBAAwB,EAAE,mCAAmC;AAC7D,IAAA,kBAAkB,EAAE,0BAA0B;AAC9C,IAAA,8BAA8B,EAAE,wCAAwC;AACxE,IAAA,wCAAwC,EAAE,wCAAwC;AAClF,IAAA,sCAAsC,EAAE,mDAAmD;AAC3F,IAAA,0BAA0B,EAAE,mCAAmC;AAC/D,IAAA,mCAAmC,EAAE;;;MCjB5B,kCAAkC,CAAA;AAJ/C,IAAA,WAAA,GAAA;;AAMI,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAgD,WAAW,CAAC;AASnF,IAAA;;AANG,IAAA,OAAO,sBAAsB,CACzB,GAAuC,EACvC,GAAqC,EAAA;AAErC,QAAA,OAAO,IAAI;IACf;8GAVS,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAJ9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,+BAA+B,CAAA;AAJ5C,IAAA,WAAA,GAAA;;AAMI,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAgD,WAAW,CAAC;AASnF,IAAA;;AANG,IAAA,OAAO,sBAAsB,CACzB,GAAoC,EACpC,GAAqC,EAAA;AAErC,QAAA,OAAO,IAAI;IACf;8GAVS,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACHM,MAAM,qBAAqB,GAAG,CAAC,QAAmB,EAAE,OAAgB,EAAE,SAAiB,KAAU;AACpG,IAAA,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;AACzC;AAEA;;AAEI;AACE,SAAU,sBAAsB,CAAC,KAAa,EAAA;AAChD,IAAA,IAAI,KAAK,IAAI,GAAG,EAAE;AACd,QAAA,OAAO,OAAO;IAClB;AAAO,SAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACtB,QAAA,OAAO,QAAQ;IACnB;AAAO,SAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACtB,QAAA,OAAO,OAAO;IAClB;AACA,IAAA,OAAO,aAAa;AACxB;;MCGa,2BAA2B,CAAA;;AAiBpC,IAAA,WAAA,CACoB,SAAoB,EACpB,UAAmC,EAClC,IAAuB,EAAA;QAFxB,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,UAAU,GAAV,UAAU;QACT,IAAA,CAAA,IAAI,GAAJ,IAAI;;QANzB,IAAA,CAAA,WAAW,GAAG,KAAK;IAOhB;;IAGH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;IAC/E;;AAGA,IAAA,aAAa,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC5B;;AAGQ,IAAA,0BAA0B,CAAC,SAAiB,EAAA;AAChD,QAAA,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;IACnF;8GAtCS,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,+HCtBxC,8FAIA,EAAA,MAAA,EAAA,CAAA,wQAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDkBa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;+BACI,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,EAAE,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,wQAAA,CAAA,EAAA;;sBAMV;;sBAMA;;;MEvBQ,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,kFALzB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAK5B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCJY,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;;AAGa,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAY3C,IAAA;AAVG;;;AAGG;AACH,IAAA,iBAAiB,CAAC,MAAc,EAAA;AAC5B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC;QAC5E,IAAI,SAAS,EAAE;AACX,YAAA,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;QACnC;IACJ;8GAbS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;MCEY,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;;AAGa,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,qDAAC;;AAGzB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,kDAAC;;AAGtB,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,CAAC,6DAAC;AAEtC;;;AAGG;AACM,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAmC,IAAI,8DAAC;AAE5E;;;AAGG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC9B,MAAM,IAAI,CAAC,kBAAkB,EAAE,IAAI,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,0DACtF;AAMJ,IAAA;;IAHG,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,SAAS,CAAC;IACpD;8GA3BS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAlB,kBAAkB,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACqBK,MAAO,iCAAkC,SAAQ,sBAAsB,CAAA;AAazE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;;AAZQ,QAAA,IAAA,CAAA,iBAAiB,GAAG,YAAY,CAAC,gBAAgB,6DAAC;;AAGlD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,cAAc,EAAE,KAAK,OAAO,0DAAC;;AAGzF,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;;QAG5B,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;QAMjF,eAAe,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;AACtE,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC;YACjD;AACJ,QAAA,CAAC,CAAC;IACN;;IAGQ,eAAe,CAAC,OAAyB,EAAE,cAAuB,EAAA;AACtE,QAAA,OAAO,CAAC,aAAa,GAAG,cAAc;AACtC,QAAA,OAAO,CAAC,cAAc,GAAG,cAAc;QACvC,OAAO,CAAC,aAAa,EAAE;QACvB,eAAe,CACX,MAAK;YACD,OAAO,CAAC,sBAAsB,EAAE;QACpC,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAC/B;IACL;8GA1CS,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEU,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAT1D,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAO5B,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAT7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE;AACT;AACJ,iBAAA;gIAGuD,gBAAgB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACblE,MAAO,iCAAkC,SAAQ,sBAAsB,CAAA;AACzE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;;QAGP,eAAe,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,+BAA+B,CAAC;AAC/E,YAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;AACtE,QAAA,CAAC,CAAC;IACN;8GATS,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,uNARhC,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAQ5B,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAV7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,6BAA6B,EAAE;AAClC;AACJ,iBAAA;;;MC+BY,gCAAgC,CAAA;AAtC7C,IAAA,WAAA,GAAA;;AAwCuB,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;;AAGxD,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,cAAc,EAAE,KAAK,OAAO,oDAAC;;QAGnF,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACxF,IAAA;8GATY,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,SAAA,EAH9B,CAAC,+BAA+B,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjCpC;;;;;;;;;;;;;;;;;;;;;;AAsBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAYS,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,4DAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEzD,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAtC5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAAA,QAAA,EAC/B;;;;;;;;;;;;;;;;;;;;;;AAsBT,IAAA,CAAA,EAAA,eAAA,EASgB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC,+BAA+B,EAAE,CAAC,WACrC,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA;;;MCxC1D,oCAAoC,GAAG,IAAI,cAAc,CAAC,gCAAgC;;MCc1F,8BAA8B,CAAA;8GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,SAAA,EAR5B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,WAAW,EAAE;AAChB;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARS,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAW5B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAb1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,oCAAoC;AAC7C,4BAAA,WAAW,EAAA;AACd;AACJ,qBAAA;AACD,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACkBM,MAAM,wBAAwB,GAAG;AAExC,IAAI,kBAAkB,GAAG,CAAC;MAgBb,0BAA0B,CAAA;;AA+GnC,IAAA,WAAA,GAAA;AA9GA;;;AAGG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,EAAE,iDAAC;AAE1B;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAElE;;;AAGG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,EAAE,oDAAC;AAE7B;;;AAGG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,KAAK,yDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAErE;;;;AAIG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAe,CAAC,wDAAC;AAE9C;;;;;AAKG;AACM,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAkC,SAAS,gEAAC;AAEjF;;;;AAIG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,CAAA,yBAAA,EAA4B,EAAE,kBAAkB,CAAA,CAAE,mDAAC;AAE5E;;;;AAIG;AACM,QAAA,IAAA,CAAA,iBAAiB,GAAG,YAAY,CAAC,kCAAkC,6DAAC;AAE7E;;;;AAIG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC,+BAA+B,0DAAC;;QAG9D,IAAA,CAAA,+BAA+B,GAAG,YAAY,CAAC,oCAAoC,4EACxF,IAAI,EAAE,8BAA8B,EAAA,CACtC;;QAGO,IAAA,CAAA,oBAAoB,GAAG,YAAY,CAAC,uBAAuB,iEAAI,IAAI,EAAE,mBAAmB,EAAA,CAAG;;AAG3F,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC,iCAAiC,0DAAC;;AAGhE,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC,iCAAiC,0DAAC;;AAGhE,QAAA,IAAA,CAAA,eAAe,GAAG,YAAY,CAAC,gCAAgC,2DAAC;AAEzE;;;;AAIG;AACM,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,wBAAwB,4DAAC;AAEnH;;;;AAIG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAC9B,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,YAAY,EAAE,CAAA,CAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,yDAC7F;;AAUQ,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,CAAC;;AAGxC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,UAAuB,EAAC;;AAG7C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;;QAK1C,MAAM,CAAC,MAAK;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE;AACtD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AAEjB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;YAE9C,IAAI,UAAU,EAAE;;AAEZ,gBAAA,qBAAqB,CACjB,IAAI,CAAC,SAAS,EACd,UAAU,CAAC,UAAU,CAAC,aAAa,EACnC,6BAA6B,CAChC;YACL;AACJ,QAAA,CAAC,CAAC;;QAGF,eAAe,CAAC,MAAK;AACjB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;YAE9C,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,UAAU,EAAE;gBACzD,UAAU,CAAC,QAAQ,EAAE;YACzB;AACJ,QAAA,CAAC,CAAC;IACN;;IAGA,QAAQ,GAAA;AACJ,QAAA,qBAAqB,CACjB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,CAAC,aAAa,EAC9B,uBAAuB,CAAC,oBAAoB,CAC/C;IACL;AAEA;;;;AAIG;AACH,IAAA,eAAe,CAAC,KAAiB,EAAA;QAC7B,KAAK,CAAC,eAAe,EAAE;IAC3B;8GA3JS,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EARxB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,WAAW,EAAE;AAChB;SACJ,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAuDyC,kCAAkC,iGAOrC,+BAA+B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iCAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGd,oCAAoC,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAClF,8BAA8B,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIK,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,mBAAmB,8EAG1D,iCAAiC,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGjC,iCAAiC,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGhC,gCAAgC,gEC/H5E,o0IA+FA,EAAA,MAAA,EAAA,CAAA,kEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED9Cc,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,+BAA+B,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAElD,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAdtC,SAAS;+BACI,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAA;AACd;AACJ,qBAAA,EAAA,OAAA,EACQ,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,EAAA,QAAA,EAAA,o0IAAA,EAAA,MAAA,EAAA,CAAA,kEAAA,CAAA,EAAA;AAsDlB,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,kCAAkC,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAOrC,+BAA+B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAGd,oCAAoC,CAAA,EAAA,EAAA,GAAE;AAC1F,4BAAA,IAAI,EAAE;AACT,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAG4C,uBAAuB,CAAA,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAG5D,iCAAiC,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAGjC,iCAAiC,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAGhC,gCAAgC,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AE7H5E;;;AAGG;MAEU,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEI;;AAEG;QACH,IAAA,CAAA,WAAW,GAAG,eAAe;AAE7B;;AAEG;QACH,IAAA,CAAA,aAAa,GAAG,iBAAiB;AAEjC;;AAEG;QACH,IAAA,CAAA,QAAQ,GAAG,YAAY;AAEvB;;AAEG;QACH,IAAA,CAAA,UAAU,GAAG,cAAc;AAC9B,IAAA;8GApBY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAjB,iBAAiB,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;ACAD;;AAEG;AACG,SAAU,oBAAoB,CAAC,MAA0B,EAAA;AAC3D,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrD,IAAI,MAAM,EAAE;QACR,OAAO,KAAK,CAAC,IAAI,CACb,GAAG,CAAC,CAAC,IAAI,MAAM;AACX,YAAA,GAAG,IAAI;AACP,YAAA,eAAe,EAAE;AACb,gBAAA,GAAG;AACN;SACJ,CAAC,CAAC,CACN;IACL;AACA,IAAA,OAAO,KAAK;AAChB;;ACDA,IAAI,sBAAsB,GAAG,CAAC;MAejB,6BAA6B,CAAA;AAetC;;AAEG;IACH,IACI,SAAS,CAAC,SAAkB,EAAA;QAC5B,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;IACrD;AAEA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;IAC/C;AAoDA;;;AAGI;AACJ,IAAA,IAAI,sBAAsB,GAAA;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,mBAAmB,EAAE;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,qBAAqB,EAAE;QACxE,OAAO,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,aAAa;IACxD;AAEA;;;AAGI;AACJ,IAAA,IAAI,mBAAmB,GAAA;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;QACnE,OAAO,IAAI,CAAC,OAAO,GAAG,UAAU,GAAG,QAAQ;IAC/C;;AA6BA,IAAA,WAAA,CAAqB,mBAAuC,EAAA;QAAvC,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;AA3HxC;;;AAGG;QAEH,IAAA,CAAA,WAAW,GAAG,IAAI;AAElB;;;AAGG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AA0BhB;;AAEG;AAGH,QAAA,IAAA,CAAA,EAAE,GAAG,CAAA,0BAAA,EAA6B,sBAAsB,EAAE,EAAE;AAE5D;;AAEG;QAEH,IAAA,CAAA,eAAe,GAAqB,kBAAkB;;AAgBtD,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW;AAM7C;;AAEG;AACH,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAA,EAAG,IAAI,CAAC,EAAE,cAAc;AAsB9C;;AAEG;QACH,IAAA,CAAA,OAAO,GAAG,KAAK;AAEf;;;AAGG;QACK,IAAA,CAAA,UAAU,GAAG,KAAK;;QAGlB,IAAA,CAAA,yBAAyB,GAAG,0BAA0B,EAAE;;AAGxD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,CAAC,6BAA6B,CAAC;;AAGnF,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAAC,+BAA+B,CAAC;;AAGvF,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC;;AAG7E,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,4BAA4B,CAAC;IAG1B;AAE/D;;;AAGG;IACH,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;QAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9C;AAEA;;;AAGG;IACH,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;QAC5B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IACrD;8GA/IS,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAR3B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,UAAU,EAAE,oBAAoB;gBAChC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,iBAAiB,CAAC;AAC7C;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCL,sgEA2CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhBc,eAAe,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAS/B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAdzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,eAAe,EAAE,aAAa,CAAC,EAAA,SAAA,EAC9B;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,UAAU,EAAE,oBAAoB;4BAChC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,iBAAiB,CAAC;AAC7C;AACJ,qBAAA,EAAA,QAAA,EAAA,sgEAAA,EAAA;;sBAOA;;sBAOA;;sBAMA;;sBAYA;;sBAMA;;sBAMA;;sBACA,WAAW;uBAAC,SAAS;;sBAMrB;;sBAMA;;sBAMA;;sBAIA;;sBAIA,SAAS;uBAAC,sBAAsB;;;MEnGxB,2BAA2B,CAAA;;AAEpC,IAAA,WAAA,CAAmB,UAAmC,EAAA;QAAnC,IAAA,CAAA,UAAU,GAAV,UAAU;IAA4B;8GAFhD,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mDAAmD;AAC7D,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCFY,eAAe,GAAG,IAAI,cAAc,CAAc,iBAAiB;;MCyDnE,oBAAoB,CAAA;AA4B7B;;;AAGG;IACH,IACI,IAAI,CAAC,IAA+B,EAAA;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;;AAGjB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;QACzD;QACA,IAAI,CAAC,wBAAwB,EAAE;IACnC;AAEA,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK;IACrB;;IAiEA,WAAA,CACc,GAAsB,EACxB,WAAoC,EACpC,SAAoB,EACpB,mBAAuC,EACkB,aAA4C,EACzF,mBAAgD,EAAA;QAL1D,IAAA,CAAA,GAAG,GAAH,GAAG;QACL,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACsC,IAAA,CAAA,aAAa,GAAb,aAAa;QAC1D,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;;QAlHlC,IAAA,CAAA,mBAAmB,GAAG,KAAK;AAKpC;;;;AAIG;QACM,IAAA,CAAA,mBAAmB,GAAG,cAAc;AAE7C;;;AAGG;QACM,IAAA,CAAA,UAAU,GAA8B,OAAO;AAExD;;;;;AAKG;QACM,IAAA,CAAA,cAAc,GAAG,IAAI;AAqB9B;;AAEG;QACM,IAAA,CAAA,MAAM,GAAG,CAAC;AAEnB;;AAEG;QACM,IAAA,CAAA,aAAa,GAAG,IAAI;AAE7B;;;AAGG;QACM,IAAA,CAAA,gBAAgB,GAAG,KAAK;;AA+BjC,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,qDAAC;;QAGhE,IAAA,CAAA,KAAK,GAA8B,aAAa;;QAGhD,IAAA,CAAA,kBAAkB,GAAG,IAAI;;AAGzB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,uDAAC;;AAG3D,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAA8B,cAAc,yDAAC;;AAG7D,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;QAY7C,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,wBAAwB,EAAE;AACnC,QAAA,CAAC,CAAC;IACN;;IAGA,eAAe,GAAA;QACX,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,6BAA6B,EAAE;QACpC,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,8BAA8B,EAAE;QACrC,IAAI,CAAC,uBAAuB,EAAE;QAE9B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,uBAAuB,EAAE,WAAW,EAAE;YACxE,IAAI,CAAC,mBAAmB,EAAE;QAC9B;QAEA,UAAU,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAEjD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC5B;;IAGA,cAAc,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE;YAC1C,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,KAAK,EAAE;QAC/C;IACJ;AAEA;;AAEG;IACH,WAAW,GAAA;QACP,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,iBAAiB,EAAE;IAC5B;;IAGA,iBAAiB,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,iBAAiB,EAAE,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa;IAC7G;;IAGQ,8BAA8B,GAAA;QAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW;IACvE;;AAGQ,IAAA,wBAAwB,CAAC,OAAoB,EAAA;QACjD,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,OAAO,IAAI;QACf;QACA,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG;QAC3D,OAAO,eAAe,IAAI,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK;IACpE;;IAGQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB;QACJ;;AAGA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,aAAa;QACvD,IAAI,CAAC,OAAO,EAAE;YACV;QACJ;QAEA,MAAM,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK;;AAG9D,QAAA,IAAI,gBAAgB,KAAK,CAAC,EAAE;YACxB;QACJ;QAEA,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE;AAEtD,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;;;AAGrB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QAC5B;IACJ;;IAGQ,mBAAmB,GAAA;AACvB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;QACxC,IAAI,OAAO,EAAE;AACT,YAAA,SAAS,CAAC,OAAO,EAAE,QAAQ;AACtB,iBAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;iBAC3D,SAAS,CAAC,MAAK;gBACZ,MAAM,QAAQ,GACV,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;AAClC,qBAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;gBAC3E,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpD,YAAA,CAAC,CAAC;QACV;IACJ;;IAGQ,eAAe,GAAA;;;QAGnB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACjD,YAAA,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa;AAClD,iBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;iBAC5D,SAAS,CAAC,MAAK;gBACZ,IAAI,CAAC,wBAAwB,EAAE;gBAC/B,IAAI,CAAC,iBAAiB,EAAE;AAC5B,YAAA,CAAC,CAAC;QACV;aAAO;;AAEH,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACxG,YAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBAClF,IAAI,CAAC,wBAAwB,EAAE;gBAC/B,IAAI,CAAC,iBAAiB,EAAE;AAC5B,YAAA,CAAC,CAAC;QACN;IACJ;;IAGQ,sBAAsB,GAAA;QAC1B,OAAO,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,aAAa,CAAC;IAC9E;;IAGQ,qBAAqB,GAAA;AACzB,QAAA,OAAO,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D;;IAGQ,wBAAwB,GAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAClD;QACJ;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa;AACtD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACtF;;IAGQ,6BAA6B,GAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACnE;QACJ;AAEA,QAAA,MAAM,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,EAAE,oBAAoB;QAEnF,IAAI,wBAAwB,EAAE;AAC1B,YAAA,qBAAqB,CACjB,IAAI,CAAC,SAAS,EACd,wBAAwB,CAAC,aAAa,EACtC,uBAAuB,CAAC,+CAA+C,CAC1E;QACL;IACJ;;IAGQ,uBAAuB,GAAA;QAC3B,IAAI,CAAC,iBAAiB,CAAC;aAClB,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAC3C,SAAS,CAAC,cAAc,CAAC,EACzB,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAEvC,aAAA,SAAS,CAAC,CAAC,UAAU,KAAI;YACtB,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;AAClC;;;;AAIG;gBACH,OAAO,CAAC,aAAa,CACjB,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,IAAI,KAAK,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAClG;AACL,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACV;AA3SS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,qIAmHL,mCAAmC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAnHlD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EATlB;YACP,kBAAkB;AAClB,YAAA;AACI,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,WAAW,EAAE;AAChB;AACJ,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAmEa,6BAA6B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAI7B,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQ1B,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAI1B,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EARP,2BAA2B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAgBjC,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpJjC,i+DAgDA,sxrBDU6B,kBAAkB,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAElC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAfhC,SAAS;+BACI,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B;wBACP,kBAAkB;AAClB,wBAAA;AACI,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,WAAW,EAAA;AACd;AACJ,qBAAA,EAAA,OAAA,EACQ,CAAC,aAAa,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,i+DAAA,EAAA,MAAA,EAAA,CAAA,8trBAAA,CAAA,EAAA;;0BAqHvC;;0BAAY,MAAM;2BAAC,mCAAmC;;0BACtD;;sBAlHJ;;sBAGA;;sBAOA;;sBAMA;;sBAQA;;sBAMA;;sBAkBA;;sBAKA;;sBAMA;;sBAGA,YAAY;uBAAC,6BAA6B;;sBAI1C,YAAY;uBAAC,0BAA0B;;sBAIvC,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,2BAA2B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;sBAIlE,YAAY;uBAAC,0BAA0B;;sBAIvC,YAAY;uBAAC,UAAU;;sBAIvB,SAAS;uBAAC,oBAAoB;;sBAI9B,SAAS;uBAAC,kBAAkB;6DAgBkC,cAAc,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AErJjF,MAAM,UAAU,GAAG;IACf,oBAAoB;IACpB,0BAA0B;IAC1B,iCAAiC;IACjC,iCAAiC;IACjC,6BAA6B;IAC7B,2BAA2B;IAC3B,0BAA0B;IAC1B,gCAAgC;IAChC,2BAA2B;IAC3B,kCAAkC;IAClC,+BAA+B;IAC/B;CACH;AAED;;;AAGG;MAKU,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAtB1B,oBAAoB;YACpB,0BAA0B;YAC1B,iCAAiC;YACjC,iCAAiC;YACjC,6BAA6B;YAC7B,2BAA2B;YAC3B,0BAA0B;YAC1B,gCAAgC;YAChC,2BAA2B;YAC3B,kCAAkC;YAClC,+BAA+B;AAC/B,YAAA,8BAA8B,aAX9B,oBAAoB;YACpB,0BAA0B;YAC1B,iCAAiC;YACjC,iCAAiC;YACjC,6BAA6B;YAC7B,2BAA2B;YAC3B,0BAA0B;YAC1B,gCAAgC;YAChC,2BAA2B;YAC3B,kCAAkC;YAClC,+BAA+B;YAC/B,8BAA8B,CAAA,EAAA,CAAA,CAAA;AAWrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAlB1B,6BAA6B;YAG7B,gCAAgC,CAAA,EAAA,CAAA,CAAA;;2FAevB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACxB,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU;AAC1B,iBAAA;;;ACrCD;;AAEG;;;;"}
@@ -126,7 +126,7 @@ class FeedListItemComponent {
126
126
  this.isCollapsed = !this.isCollapsed;
127
127
  }
128
128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: FeedListItemComponent, isStandalone: true, selector: "fd-feed-list-item", inputs: { class: "class", authorTitle: "authorTitle", authorLink: "authorLink", text: "text", maxChars: "maxChars", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", isRichText: "isRichText", mobile: "mobile" }, host: { properties: { "class.fd-feed-list__body": "this.isFeedListItemBody" } }, usesOnChanges: true, ngImport: i0, template: "@if (mobile) {\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-template [ngTemplateOutlet]=\"avatarContent\"></ng-template>\n <div>\n <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n </div>\n} @else {\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n}\n<div class=\"fd-feed-list__content\">\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n }\n <p class=\"fd-feed-list__text\">\n @if (!isRichText) {\n <ng-template\n [ngTemplateOutlet]=\"feedContent\"\n [ngTemplateOutletContext]=\"{ $implicit: author }\"\n ></ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n }\n </p>\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n }\n</div>\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n @if (authorLink) {\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe: 'url'\"\n [emphasized]=\"true\"\n >\n <ng-template [ngTemplateOutlet]=\"authorTitleTemplate\"></ng-template>\n </a>\n } @else {\n {{ authorTitle }}\n }\n :\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n<ng-template #feedContent let-param>\n <ng-template [ngTemplateOutlet]=\"param\"></ng-template>\n <span>\n {{ isCollapsed ? (text | truncate: maxChars) : text }}\n </span>\n @if (!isRichText && hasMore) {\n <a fd-link class=\"fd-feed-list__link--more\" tabindex=\"0\" (click)=\"toggleTextView()\">{{\n (isCollapsed\n ? ('coreFeedListItem.moreLabel' | fdTranslate: { count: (text ? text.length : 0) - maxChars })\n : ('coreFeedListItem.lessLabel' | fdTranslate))()\n }}</a>\n }\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormattedTextComponent, selector: "fd-formatted-text", inputs: ["htmlText", "convertedLinksDefaultTarget", "height", "width"], exportAs: ["fd-formatted-text"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "pipe", type: TruncatePipe, name: "truncate" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: FeedListItemComponent, isStandalone: true, selector: "fd-feed-list-item", inputs: { class: "class", authorTitle: "authorTitle", authorLink: "authorLink", text: "text", maxChars: "maxChars", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", isRichText: "isRichText", mobile: "mobile" }, host: { properties: { "class.fd-feed-list__body": "this.isFeedListItemBody" } }, usesOnChanges: true, ngImport: i0, template: "@if (mobile) {\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-template [ngTemplateOutlet]=\"avatarContent\"></ng-template>\n <div>\n <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n </div>\n} @else {\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n}\n<div class=\"fd-feed-list__content\">\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n }\n <p class=\"fd-feed-list__text\">\n @if (!isRichText) {\n <ng-template\n [ngTemplateOutlet]=\"feedContent\"\n [ngTemplateOutletContext]=\"{ $implicit: author }\"\n ></ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n }\n </p>\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n }\n</div>\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n @if (authorLink) {\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe: 'url'\"\n [emphasized]=\"true\"\n >\n <ng-template [ngTemplateOutlet]=\"authorTitleTemplate\"></ng-template>\n </a>\n } @else {\n {{ authorTitle }}\n }\n :\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n<ng-template #feedContent let-param>\n <ng-template [ngTemplateOutlet]=\"param\"></ng-template>\n <span>\n {{ isCollapsed ? (text | truncate: maxChars) : text }}\n </span>\n @if (!isRichText && hasMore) {\n <a fd-link class=\"fd-feed-list__link--more\" tabindex=\"0\" (click)=\"toggleTextView()\">{{\n isCollapsed\n ? ('coreFeedListItem.moreLabel' | fdTranslate: { count: (text ? text.length : 0) - maxChars })\n : ('coreFeedListItem.lessLabel' | fdTranslate)\n }}</a>\n }\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormattedTextComponent, selector: "fd-formatted-text", inputs: ["htmlText", "convertedLinksDefaultTarget", "height", "width"], exportAs: ["fd-formatted-text"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "pipe", type: TruncatePipe, name: "truncate" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
130
130
  }
131
131
  __decorate([
132
132
  applyCssClass,
@@ -136,7 +136,7 @@ __decorate([
136
136
  ], FeedListItemComponent.prototype, "buildComponentCssClass", null);
137
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListItemComponent, decorators: [{
138
138
  type: Component,
139
- args: [{ selector: 'fd-feed-list-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, FormattedTextComponent, LinkComponent, SafePipe, TruncatePipe, FdTranslatePipe], template: "@if (mobile) {\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-template [ngTemplateOutlet]=\"avatarContent\"></ng-template>\n <div>\n <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n </div>\n} @else {\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n}\n<div class=\"fd-feed-list__content\">\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n }\n <p class=\"fd-feed-list__text\">\n @if (!isRichText) {\n <ng-template\n [ngTemplateOutlet]=\"feedContent\"\n [ngTemplateOutletContext]=\"{ $implicit: author }\"\n ></ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n }\n </p>\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n }\n</div>\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n @if (authorLink) {\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe: 'url'\"\n [emphasized]=\"true\"\n >\n <ng-template [ngTemplateOutlet]=\"authorTitleTemplate\"></ng-template>\n </a>\n } @else {\n {{ authorTitle }}\n }\n :\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n<ng-template #feedContent let-param>\n <ng-template [ngTemplateOutlet]=\"param\"></ng-template>\n <span>\n {{ isCollapsed ? (text | truncate: maxChars) : text }}\n </span>\n @if (!isRichText && hasMore) {\n <a fd-link class=\"fd-feed-list__link--more\" tabindex=\"0\" (click)=\"toggleTextView()\">{{\n (isCollapsed\n ? ('coreFeedListItem.moreLabel' | fdTranslate: { count: (text ? text.length : 0) - maxChars })\n : ('coreFeedListItem.lessLabel' | fdTranslate))()\n }}</a>\n }\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\n"] }]
139
+ args: [{ selector: 'fd-feed-list-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, FormattedTextComponent, LinkComponent, SafePipe, TruncatePipe, FdTranslatePipe], template: "@if (mobile) {\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-template [ngTemplateOutlet]=\"avatarContent\"></ng-template>\n <div>\n <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n </div>\n} @else {\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n}\n<div class=\"fd-feed-list__content\">\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n }\n <p class=\"fd-feed-list__text\">\n @if (!isRichText) {\n <ng-template\n [ngTemplateOutlet]=\"feedContent\"\n [ngTemplateOutletContext]=\"{ $implicit: author }\"\n ></ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n }\n </p>\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n }\n</div>\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n @if (authorLink) {\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe: 'url'\"\n [emphasized]=\"true\"\n >\n <ng-template [ngTemplateOutlet]=\"authorTitleTemplate\"></ng-template>\n </a>\n } @else {\n {{ authorTitle }}\n }\n :\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n<ng-template #feedContent let-param>\n <ng-template [ngTemplateOutlet]=\"param\"></ng-template>\n <span>\n {{ isCollapsed ? (text | truncate: maxChars) : text }}\n </span>\n @if (!isRichText && hasMore) {\n <a fd-link class=\"fd-feed-list__link--more\" tabindex=\"0\" (click)=\"toggleTextView()\">{{\n isCollapsed\n ? ('coreFeedListItem.moreLabel' | fdTranslate: { count: (text ? text.length : 0) - maxChars })\n : ('coreFeedListItem.lessLabel' | fdTranslate)\n }}</a>\n }\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\n"] }]
140
140
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{
141
141
  type: Input
142
142
  }], authorTitle: [{