@fundamental-ngx/platform 0.55.4 → 0.55.5
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.
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-form.mjs +11 -11
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +7 -3
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +10 -10
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-panel.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-table.mjs +10 -10
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/icon-tab-bar/icon-tab-bar.component.d.ts +3 -1
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-platform-message-popover.mjs","sources":["../../../../libs/platform/message-popover/default-config.ts","../../../../libs/platform/message-popover/directives/message-popover-form-item.directive.ts","../../../../libs/platform/message-popover/utils.ts","../../../../libs/platform/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.ts","../../../../libs/platform/message-popover/components/message-view/message-view.component.ts","../../../../libs/platform/message-popover/components/message-view/message-view.component.html","../../../../libs/platform/message-popover/message-popover.component.ts","../../../../libs/platform/message-popover/message-popover.component.html","../../../../libs/platform/message-popover/platform-message-popover.module.ts","../../../../libs/platform/message-popover/fundamental-ngx-platform-message-popover.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\n\nexport interface MessagePopoverErrorConfig {\n heading: string;\n description?: string;\n type: FormStates;\n}\n\nexport interface MessagePopoverConfig {\n /**\n * Errors object where key is error type and value is i18n string.\n */\n errors: Record<string, string | MessagePopoverErrorConfig>;\n}\n\nexport const FDP_MESSAGE_POPOVER_DEFAULT_CONFIG: MessagePopoverConfig = {\n errors: {\n email: 'platformMessagePopover.defaultErrors.email',\n max: 'platformMessagePopover.defaultErrors.max',\n maxlength: 'platformMessagePopover.defaultErrors.maxLength',\n min: 'platformMessagePopover.defaultErrors.min',\n minlength: 'platformMessagePopover.defaultErrors.minLength',\n pattern: 'platformMessagePopover.defaultErrors.pattern',\n required: 'platformMessagePopover.defaultErrors.required',\n requiredTrue: 'platformMessagePopover.defaultErrors.requiredTrue'\n }\n};\n\nexport const FDP_MESSAGE_POPOVER_CONFIG = new InjectionToken<MessagePopoverConfig>('FdpMessagePopoverConfig');\n","import { Directive, ElementRef, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MessagePopoverConfig } from '../default-config';\n\n@Directive({\n selector: '[fdpMessagePopoverFormItem]',\n standalone: true\n})\nexport class MessagePopoverFormItemDirective {\n /** Form item name. */\n @Input('fdpMessagePopoverFormItem')\n label: string;\n\n /** Error type definition. */\n @Input()\n errorTypes: MessagePopoverConfig['errors'];\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n @Optional() public readonly control: NgControl\n ) {}\n}\n","import { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { ObjectStatus } from '@fundamental-ngx/core/object-status';\nimport { MessagePopoverState } from './models/message-popover.interface';\n\n/**\n * Converts Object Status into Message Popover State\n * @param status Object status\n * @returns Message Popover State.\n */\nexport function convertFormStateToMessagePopoverState(state: FormStates): MessagePopoverState {\n switch (state) {\n case 'error':\n return 'negative';\n case 'warning':\n return 'critical';\n case 'default':\n return 'neutral';\n default:\n return state;\n }\n}\n\n/**\n * Converts Form State into Object status type.\n * @param type Form state.\n * @returns `ObjectStatus` type.\n */\nexport function convertFormState(type: FormStates): ObjectStatus {\n switch (type) {\n case 'success':\n return 'positive';\n case 'error':\n return 'negative';\n case 'warning':\n return 'critical';\n case 'information':\n return 'informative';\n default:\n return 'neutral';\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n Inject,\n Input,\n OnDestroy,\n QueryList,\n ViewEncapsulation,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlContainer, FormGroup, FormGroupDirective, NgForm } from '@angular/forms';\nimport { FD_FORM_FIELD_CONTROL, FormStates } from '@fundamental-ngx/cdk/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n FormFieldErrorDirectiveContext,\n PlatformFormField,\n PlatformFormFieldControl\n} from '@fundamental-ngx/platform/shared';\nimport { Subject, Subscription, filter, startWith, switchMap, zip } from 'rxjs';\nimport { FDP_MESSAGE_POPOVER_CONFIG, MessagePopoverConfig, MessagePopoverErrorConfig } from '../../default-config';\nimport { MessagePopoverFormItemDirective } from '../../directives/message-popover-form-item.directive';\nimport {\n MessagePopoverEntry,\n MessagePopoverErrorGroup,\n MessagePopoverErrorText\n} from '../../models/message-popover-entry.interface';\nimport { MessagePopoverWrapper } from '../../models/message-popover-wrapper.interface';\nimport { MessagePopover } from '../../models/message-popover.interface';\nimport { convertFormState } from '../../utils';\n\nexport type MessagePopoverForm = NgForm | FormGroupDirective;\n\n@Component({\n selector: 'fdp-message-popover-form-wrapper',\n template: `<ng-content></ng-content>`,\n exportAs: 'messagePopoverWrapper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n})\nexport class MessagePopoverFormWrapperComponent implements MessagePopoverWrapper, AfterViewInit, OnDestroy {\n /** @hidden */\n @ContentChildren(ControlContainer, { descendants: true })\n private readonly _projectedForm: QueryList<MessagePopoverForm>;\n\n /** @hidden */\n @ContentChildren(FD_FORM_FIELD_CONTROL, { descendants: true })\n private readonly _projectedFormFieldControls!: QueryList<PlatformFormFieldControl>;\n\n /** @hidden */\n @ContentChildren(MessagePopoverFormItemDirective, { descendants: true })\n private readonly _directiveItems!: QueryList<MessagePopoverFormItemDirective>;\n\n /** Message Popover instance. */\n messagePopover$ = new Subject<MessagePopover>();\n\n /**\n * User-passed forms.\n */\n @Input()\n set forms(forms: MessagePopoverForm | MessagePopoverForm[]) {\n if (!forms) {\n return;\n }\n if (!Array.isArray(forms)) {\n forms = [forms];\n }\n this._ngForms = forms;\n this._startListeningForErrors();\n }\n\n /** User-passed form fields. */\n @Input()\n set formFields(value: PlatformFormFieldControl[]) {\n this._formFields = value;\n this._listenToFormFieldErrors(value);\n }\n\n get formFields(): PlatformFormFieldControl[] {\n return this._formFields;\n }\n\n /**\n * Error models Signal. Emitted when form submitted and contains invalid fields.\n */\n readonly errors$ = signal<MessagePopoverErrorGroup[]>([]);\n\n /** @hidden */\n private _formFields: PlatformFormFieldControl[] = [];\n\n /** @hidden */\n private _formErrorsSubscription: Subscription | undefined;\n\n /** @hidden */\n private _ngForms: (NgForm | FormGroupDirective)[] = [];\n\n /** @hidden */\n private _formItemErrorsSubscription = new Subscription();\n\n /** @hidden */\n private _formSubmitted = false;\n\n /** @hidden */\n constructor(\n private readonly _destroyRef: DestroyRef,\n @Inject(FDP_MESSAGE_POPOVER_CONFIG) private readonly _config: MessagePopoverConfig\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n // Forms are passed via input property.\n if (this._ngForms.length > 0) {\n return;\n }\n this._projectedForm?.changes.pipe(startWith(null), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._ngForms = this._projectedForm.toArray();\n this._startListeningForErrors();\n });\n }\n\n /**\n * Sets Message Popover component instance.\n */\n setMessagePopover(messagePopover: MessagePopover): void {\n this.messagePopover$.next(messagePopover);\n // this.messagePopover = messagePopover;\n }\n\n /**\n * Programmatically add new form to array of forms.\n * @param forms\n */\n addForms(forms: MessagePopoverForm | MessagePopoverForm[]): void {\n const formsArray = Array.isArray(forms) ? forms : [forms];\n this._ngForms.push(...formsArray);\n this._startListeningForErrors();\n }\n\n /**\n * Programmatically add new form fields to array of listened form fields.\n * @param formFields\n */\n addFormFields(formFields: PlatformFormFieldControl[]): void {\n this._formFields.push(...formFields);\n this._listenToFormFieldErrors(this._formFields);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._formItemErrorsSubscription.unsubscribe();\n }\n\n /**\n * @hidden\n * Listens to the form submission and collects form control errors.\n */\n private _startListeningForErrors(): void {\n if (!this._ngForms) {\n return;\n }\n this._formErrorsSubscription?.unsubscribe();\n this.errors$.set([]);\n\n const formSubmitEvents = this._ngForms.map((form) =>\n form.ngSubmit.pipe(\n switchMap(() =>\n form.statusChanges!.pipe(\n startWith(form.status),\n filter((status: string) => status.toLowerCase() !== 'pending')\n )\n )\n )\n );\n\n this._formErrorsSubscription = zip(...formSubmitEvents)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._formSubmitted = true;\n const errors =\n this._directiveItems.length > 0 ? this._collectPlainFormData() : this._collectAdvancedFormData();\n\n this.errors$.set(errors);\n });\n\n this._listenToFormFieldErrors(this._projectedFormFieldControls.toArray());\n\n this._projectedFormFieldControls?.changes.subscribe(() => {\n this._listenToFormFieldErrors(this._projectedFormFieldControls.toArray());\n });\n }\n\n /** @hidden */\n private _listenToFormFieldErrors(fields: PlatformFormFieldControl[]): void {\n this._formItemErrorsSubscription.unsubscribe();\n\n this._formItemErrorsSubscription = new Subscription();\n\n fields?.forEach((field) => {\n this._formItemErrorsSubscription.add(\n field.formField?.errorsChange$.subscribe(() => {\n if (!this._formSubmitted) {\n return;\n }\n const errors =\n this._directiveItems.length > 0\n ? this._collectPlainFormData()\n : this._collectAdvancedFormData();\n this.errors$.set(errors);\n })\n );\n });\n }\n\n /** @hidden */\n private _collectPlainFormData(): MessagePopoverErrorGroup[] {\n const errors: MessagePopoverErrorGroup[] = [\n {\n errors: []\n }\n ];\n\n const fields = this._directiveItems.toArray();\n\n this._ngForms.forEach((form) => {\n Object.keys(form.form.controls).forEach((controlName) => {\n const control = form.form.get(controlName);\n const field = fields.find((formField) => formField.control?.name === controlName);\n\n if (!control?.errors || !field) {\n return;\n }\n\n const configErrors = Object.keys(this._config.errors);\n\n Object.keys(control.errors)\n .filter((error) => configErrors.includes(error))\n .forEach((errorKey) => {\n const errorObj = control.errors![errorKey];\n\n const errorTextModel = this._getConfigErrorModel(errorKey, field.errorTypes);\n const errorConfig = field?.errorTypes ? field?.errorTypes[errorKey] : null;\n const errorState =\n errorConfig && this._isAdvancedError(errorConfig) && errorConfig.type\n ? errorConfig.type\n : 'error';\n const error: MessagePopoverEntry = {\n name: controlName,\n type: errorTextModel.type,\n state: convertFormState(errorState),\n fieldName: field?.label ?? '',\n element: field?.elementRef,\n heading: {\n type: 'string',\n error: errorObj,\n message: errorTextModel.heading\n },\n description: {\n type: 'string',\n error: errorObj,\n message: errorTextModel.description\n },\n errors: control!.errors\n };\n\n errors[0].errors.push(error);\n });\n });\n });\n\n return errors;\n }\n\n /** @hidden */\n private _collectAdvancedFormData(): MessagePopoverErrorGroup[] {\n let errors: MessagePopoverErrorGroup[] = [];\n const fields = this.formFields.length > 0 ? this.formFields : this._projectedFormFieldControls.toArray();\n\n /**\n * Iterates over form controls to collect their errors.\n * @param form Form Group or a collection of Form Groups.\n */\n const iterateOverForm = (form: FormGroup | FormGroup[]): MessagePopoverErrorGroup[] => {\n if (Array.isArray(form)) {\n form.forEach((formGroup) => {\n errors = iterateOverForm(formGroup);\n });\n return errors;\n }\n Object.keys(form.controls).forEach((controlName) => {\n const control = form.get(controlName);\n const field = fields.find((formField) => formField.id === controlName);\n\n if (control instanceof FormGroup) {\n errors = iterateOverForm(control);\n }\n\n if (!control?.errors || !field) {\n return;\n }\n\n Object.keys(control.errors).forEach((errorKey) => {\n const errorDirective = field.formField?.groupedErrors.find(\n (groupedError) => groupedError.directive.error === errorKey\n );\n\n const groupName = this._getGroupName(field?.formField);\n const error = this._getErrorModel(\n controlName,\n groupName,\n control,\n field,\n errorKey,\n errorDirective,\n control.errors![errorKey]\n );\n\n let errorGroupIndex = errors.findIndex((errorGroup) => errorGroup.group === groupName);\n\n if (errorGroupIndex === -1) {\n errorGroupIndex =\n errors.push({\n group: groupName,\n errors: []\n }) - 1;\n }\n\n const group = errors[errorGroupIndex];\n\n group.errors.push(error);\n });\n });\n\n return errors;\n };\n\n return iterateOverForm(this._ngForms.map((form) => form.form));\n }\n\n /**\n * @hidden\n * Creates error model\n */\n private _getErrorModel(\n controlName: string,\n groupName: string,\n control: AbstractControl,\n field: PlatformFormFieldControl,\n errorKey: string,\n errorDirective?: FormFieldErrorDirectiveContext,\n error?: any\n ): MessagePopoverEntry {\n let state: FormStates = 'error';\n const configError = this._config.errors[errorKey];\n\n if (errorDirective?.directive.type) {\n state = errorDirective.directive.type;\n } else if (this._isAdvancedError(configError)) {\n state = configError.type;\n }\n\n return {\n name: controlName,\n type: state,\n state: convertFormState(state),\n group: groupName,\n fieldName: field?.formField?.label ?? '',\n heading: this._getErrorText(field, errorDirective, 'heading', errorKey, error),\n description: this._getErrorText(field, errorDirective, 'description', errorKey, error),\n errors: control!.errors,\n formField: field,\n element: field?.elementRef\n };\n }\n\n /**\n * @hidden\n * Creates error text based on the type of the error.\n * @param field Form Field Control.\n * @param errorDirective Optional Error directive\n * @param section Section where text should be rendered.\n * @param errorKey\n * @param error\n */\n private _getErrorText(\n field: PlatformFormFieldControl,\n errorDirective: Nullable<FormFieldErrorDirectiveContext>,\n section: 'heading' | 'description' = 'heading',\n errorKey: string,\n error?: any\n ): MessagePopoverErrorText {\n const errorTextObj: MessagePopoverErrorText = {\n error: errorDirective?.error,\n type: errorDirective?.directive ? 'directive' : field?.formField?.i18Strings ? 'templateRef' : 'string'\n };\n\n if (errorTextObj.type === 'string') {\n const errorTextModel = this._getConfigErrorModel(errorKey);\n\n errorTextObj.error = error;\n errorTextObj.message = errorTextModel[section];\n return errorTextObj;\n }\n\n if (errorDirective?.directive) {\n errorTextObj.message =\n section === 'heading'\n ? (errorDirective.directive._headingTemplateRef ?? errorDirective.directive._descriptionTemplateRef)\n : errorDirective.directive._descriptionTemplateRef;\n return errorTextObj;\n }\n\n errorTextObj.message = field?.formField?.i18Strings ?? null;\n return errorTextObj;\n }\n\n /** @hidden */\n private _getGroupName(formField: Nullable<PlatformFormField>): string {\n const parts: string[] = [];\n\n if (formField?.formGroupContainer?.mainTitle) {\n parts.push(formField.formGroupContainer.mainTitle);\n }\n\n if (formField?.formFieldGroup?.label) {\n parts.push(formField.formFieldGroup.label);\n }\n\n return parts.join(', ');\n }\n\n /** @hidden */\n private _getConfigErrorModel(\n errorKey: string,\n customErrorTypes?: MessagePopoverConfig['errors']\n ): MessagePopoverErrorConfig {\n const configError =\n customErrorTypes && customErrorTypes[errorKey] ? customErrorTypes[errorKey] : this._config.errors[errorKey];\n const isPlainError = !this._isAdvancedError(configError);\n const errorType = isPlainError ? 'error' : configError.type;\n const headingMessage = isPlainError ? configError : configError.heading;\n const descriptionMessage = isPlainError ? undefined : configError.description;\n\n return {\n type: errorType,\n heading: headingMessage,\n description: descriptionMessage\n };\n }\n\n /** @hidden */\n private _isAdvancedError(error: string | MessagePopoverErrorConfig): error is MessagePopoverErrorConfig {\n return !!error && typeof error !== 'string';\n }\n}\n","import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable, TabbableElementService, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { debounceTime } from 'rxjs';\nimport { MessagePopoverEntry, MessagePopoverErrorGroup } from '../../models/message-popover-entry.interface';\n\n@Component({\n selector: 'fdp-message-view',\n templateUrl: './message-view.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TabbableElementService],\n animations: [\n trigger('openCloseList', [\n // ...\n state(\n 'open',\n style({\n transform: 'translateX(0)',\n opacity: 1\n })\n ),\n state(\n 'closed',\n style({\n transform: 'translateX(-50px)',\n opacity: 0\n })\n ),\n transition('open => closed', [animate('.1s cubic-bezier(0, 0, 0.2, 1)')]),\n transition('closed => open', [animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')])\n ]),\n trigger('openCloseDetails', [\n state(\n 'open',\n style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n })\n ),\n state(\n 'closed',\n style({\n transform: 'translateX(50px)',\n opacity: 0\n })\n ),\n transition('open => closed', [\n animate(\n '.1s cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n }),\n style({\n transform: 'translateX(50px)',\n opacity: 0,\n display: 'none'\n })\n ])\n )\n ]),\n transition('closed => open', [\n style({\n display: 'block'\n }),\n animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')\n ])\n ])\n ],\n imports: [\n NgTemplateOutlet,\n CdkScrollable,\n ScrollbarDirective,\n ListModule,\n ObjectStatusComponent,\n LinkComponent,\n FdTranslatePipe\n ]\n})\nexport class MessageViewComponent implements AfterViewInit {\n /** Current Message Popover screen. Can be either `list` or `details`. */\n @Input()\n currentScreen: 'list' | 'details';\n\n /** Filtered errors to render. */\n @Input()\n filteredErrors: MessagePopoverErrorGroup[];\n\n /** Current error entry. Used for details view. */\n @Input()\n currentEntry: Nullable<MessagePopoverEntry>;\n\n /** Event emitted when user clicks on error entry containing additional description. */\n @Output()\n openDetails = new EventEmitter<MessagePopoverEntry>();\n\n /** Event emitted when user clicks on error entry and item's element should be focused. */\n @Output()\n focusItem = new EventEmitter<MessagePopoverEntry>();\n\n /** Event emitted when user clicks on the field link to focus on the field itself. */\n @Output()\n closePopover = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild('listView', { read: ElementRef })\n private _listView: ElementRef;\n\n /** @hidden */\n @ViewChild('detailsView', { read: ElementRef })\n private _detailsView: ElementRef;\n\n /** @Hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-message-popover__view-container';\n\n /** @hidden */\n private _activeListElement: Nullable<HTMLElement> = null;\n\n /** @hidden */\n constructor(\n private readonly _destroyRef: DestroyRef,\n private readonly _tabbableService: TabbableElementService,\n @Inject(DOCUMENT) private readonly _document: Document\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n resizeObservable(this._detailsView.nativeElement)\n .pipe(debounceTime(20), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const { height } = this._detailsView.nativeElement.getBoundingClientRect();\n this._listView.nativeElement.style.minHeight = `${height}px`;\n });\n }\n\n /** @hidden */\n _showDetails(entry: MessagePopoverEntry): void {\n this._activeListElement = this._document.activeElement as HTMLElement;\n if (!entry.description.message) {\n this._focusElement(undefined, entry);\n return;\n }\n this.currentScreen = 'details';\n this.openDetails.emit(entry);\n }\n\n /** @hidden */\n _focusElement(event?: MouseEvent, item?: MessagePopoverEntry): void {\n if (!item?.element?.nativeElement) {\n return;\n }\n event?.stopImmediatePropagation();\n this.closePopover.emit(false);\n this.focusItem.emit(item);\n setTimeout(() => {\n const tabbableElement = this._tabbableService.getTabbableElement(item.element?.nativeElement);\n tabbableElement?.focus();\n });\n }\n\n /** @hidden */\n _onListAnimationComplete(event: any): void {\n if (event.toState === 'open' && this._activeListElement) {\n this._activeListElement.focus();\n this._activeListElement = null;\n }\n }\n}\n","<ng-template #headingTemplate let-item>\n <ng-template #directiveHeading>\n <ng-template\n [ngTemplateOutlet]=\"item.heading.message || item.description.message\"\n [ngTemplateOutletContext]=\"{ $implicit: item.heading.error }\"\n ></ng-template>\n </ng-template>\n <ng-template #i18nHeading>\n <ng-template\n [ngTemplateOutlet]=\"item.heading.message\"\n [ngTemplateOutletContext]=\"{ $implicit: item.errors }\"\n ></ng-template>\n </ng-template>\n <ng-template #stringHeading>\n {{ item.heading.message | fdTranslate: { error: item.heading.error } : item.heading.message }}\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"\n item.heading.type === 'directive'\n ? directiveHeading\n : item.heading.type === 'string'\n ? stringHeading\n : i18nHeading\n \"\n ></ng-template>\n</ng-template>\n<ng-template #descriptionTemplate let-item>\n <ng-template #directiveDescription>\n <ng-template\n [ngTemplateOutlet]=\"item.description.message!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.description.error }\"\n ></ng-template>\n </ng-template>\n <ng-template #i18nDescription>\n <ng-template\n [ngTemplateOutlet]=\"item.description.message!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.errors }\"\n ></ng-template>\n </ng-template>\n <ng-template #stringDescription>\n {{ item.description.message | fdTranslate: { error: item.description.error } : item.description.message }}\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"\n item.heading.type === 'directive'\n ? directiveDescription\n : item.heading.type === 'string'\n ? stringDescription\n : i18nDescription\n \"\n ></ng-template>\n</ng-template>\n<div class=\"fd-message-view\">\n <section\n class=\"fd-message-view__list\"\n tabindex=\"-1\"\n [@openCloseList]=\"currentScreen === 'list' ? 'open' : 'closed'\"\n (@openCloseList.done)=\"_onListAnimationComplete($event)\"\n fd-scrollbar\n >\n <ul #listView fd-list class=\"message-popover__list fd-list--message-view\" [navigationIndicator]=\"true\">\n @for (group of filteredErrors; track group) {\n @if (group.group) {\n <li fd-list-group-header>\n <span fd-list-title>{{ group.group }}</span>\n </li>\n }\n @for (item of group.errors; track item; let i = $index) {\n <li fd-list-item [tabindex]=\"i === 0 ? 0 : -1\" [byline]=\"true\" (click)=\"_showDetails(item)\">\n <ng-template #itemIcon>\n <span\n fd-object-status\n class=\"fd-list__icon\"\n [status]=\"item.state\"\n [glyph]=\"'message-' + item.type\"\n ></span>\n </ng-template>\n <ng-template #listSubtitle>\n <span class=\"fd-list__subtitle\">\n <ng-template\n [ngTemplateOutlet]=\"headingTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </span>\n </ng-template>\n @if (item.element && !!item.description.message) {\n <span fd-list-link [navigationIndicator]=\"!!item.description.message\">\n <ng-template [ngTemplateOutlet]=\"itemIcon\"></ng-template>\n <span fd-list-content>\n <span fd-list-title>\n <a tabindex=\"0\" fd-link (click)=\"_focusElement($event, item)\">\n {{ item.fieldName }}\n </a>\n </span>\n <ng-template [ngTemplateOutlet]=\"listSubtitle\"></ng-template>\n </span>\n </span>\n } @else {\n <a fd-list-link [navigationIndicator]=\"!!item.description.message\">\n <ng-template [ngTemplateOutlet]=\"itemIcon\"></ng-template>\n <span fd-list-content>\n <span fd-list-title>{{ item.fieldName }}</span>\n <ng-template [ngTemplateOutlet]=\"listSubtitle\"></ng-template>\n </span>\n </a>\n }\n </li>\n }\n }\n </ul>\n </section>\n <section class=\"fd-message-view__details\" [@openCloseDetails]=\"currentScreen === 'details' ? 'open' : 'closed'\">\n <div #detailsView>\n @if (currentEntry) {\n <span class=\"fd-message-view__details-title\">\n <span\n fd-object-status\n class=\"fd-message-view__icon\"\n [status]=\"currentEntry.state\"\n [glyph]=\"'message-' + currentEntry.type\"\n ></span>\n <ng-template\n [ngTemplateOutlet]=\"headingTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: currentEntry }\"\n ></ng-template>\n </span>\n @if (currentEntry.description.message) {\n <span class=\"fd-message-view__details-description\">\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: currentEntry }\"\n ></ng-template>\n </span>\n }\n }\n </div>\n </section>\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n computed,\n signal\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { InitialFocusDirective, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { PopoverComponent, PopoverModule } from '@fundamental-ngx/core/popover';\nimport { SegmentedButtonComponent } from '@fundamental-ngx/core/segmented-button';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { getFormState } from '@fundamental-ngx/platform/form';\nimport { countBy, flatten } from 'lodash-es';\nimport { MessageViewComponent } from './components/message-view/message-view.component';\nimport {\n MessagePopoverEntry,\n MessagePopoverError,\n MessagePopoverErrorGroup\n} from './models/message-popover-entry.interface';\nimport { MessagePopoverWrapper } from './models/message-popover-wrapper.interface';\nimport { MessagePopover, MessagePopoverState } from './models/message-popover.interface';\nimport { convertFormState, convertFormStateToMessagePopoverState } from './utils';\n\n@Component({\n selector: 'fdp-message-popover',\n templateUrl: './message-popover.component.html',\n styleUrl: './message-popover.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n PopoverModule,\n ButtonComponent,\n NgClass,\n BarModule,\n SegmentedButtonComponent,\n FormsModule,\n ObjectStatusComponent,\n InitialFocusDirective,\n MessageViewComponent,\n FdTranslatePipe\n ]\n})\nexport class MessagePopoverComponent implements MessagePopover {\n /** @hidden */\n @ViewChild('popover')\n readonly _popover: PopoverComponent;\n\n /** Message Popover Wrapper component. */\n @Input()\n set wrapper(value: Nullable<MessagePopoverWrapper>) {\n value?.setMessagePopover(this);\n this._wrapper$.set(value);\n }\n get wrapper(): Nullable<MessagePopoverWrapper> {\n return this._wrapper$();\n }\n\n /** Event emits when user clicks on error entry and item's element needs to be focused. */\n @Output()\n focusItem = new EventEmitter<MessagePopoverEntry>();\n\n /** Current message popover screen. Can be `list` or `details`. */\n currentScreen: 'list' | 'details' = 'list';\n\n /** Current error entry. */\n currentEntry: Nullable<MessagePopoverEntry>;\n\n /** @hidden */\n _currentErrorType$: WritableSignal<MessagePopoverError['group']> = signal('all');\n\n /** @hidden */\n _errorTypes$ = computed<MessagePopoverError[]>(() => {\n const countedErrors = this._countedErrors$();\n const errorTypes = Object.keys(countedErrors) as FormStates[];\n return errorTypes.map((errorType) => ({\n group: errorType,\n count: countedErrors[errorType],\n state: convertFormState(errorType)\n }));\n });\n\n /** @hidden */\n _priorityStateItemsCount$ = computed(() => this._countedErrors$()[this._priorityFormState$()!] || 0);\n\n /** @hidden */\n _priorityFormState$ = computed<FormStates>(() => {\n const countedErrors = this._countedErrors$();\n const errorTypes = Object.keys(countedErrors) as FormStates[];\n return getFormState(errorTypes);\n });\n\n /** @hidden */\n _priorityState$ = computed<Nullable<MessagePopoverState>>(() =>\n convertFormStateToMessagePopoverState(this._priorityFormState$())\n );\n\n /** @hidden */\n readonly _filteredErrors$ = computed(() => {\n const groupedErrors = this._groupedErrors$();\n const errorType = this._currentErrorType$();\n\n if (errorType === 'all') {\n return groupedErrors;\n }\n\n const filteredErrors: MessagePopoverErrorGroup[] = [];\n groupedErrors.forEach((group) => {\n const errors = group.errors.filter((error) => error.type === errorType);\n\n if (errors.length === 0) {\n return;\n }\n\n filteredErrors.push({\n group: group.group,\n errors\n });\n });\n\n return filteredErrors;\n });\n\n private readonly _groupedErrors$ = computed(() => this._wrapper$()?.errors$() || []);\n\n private readonly _wrapper$ = signal<Nullable<MessagePopoverWrapper>>(null);\n\n private readonly _countedErrors$ = computed(() =>\n countBy(flatten(Object.values(this._groupedErrors$().map((group) => group.errors))), 'type')\n );\n\n /** @hidden */\n _showList(): void {\n this.currentScreen = 'list';\n this.currentEntry = null;\n }\n\n /** @hidden */\n _showDetails(entry: MessagePopoverEntry): void {\n this.currentScreen = 'details';\n this.currentEntry = entry;\n }\n\n /** @hidden */\n _closePopover(focusLast = true): void {\n this._popover.close(focusLast);\n }\n}\n","@if (_errorTypes$().length > 0) {\n <fd-popover\n #popover\n placement=\"top-start\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [disableScrollbar]=\"true\"\n >\n <fd-popover-control>\n <button\n fd-button\n type=\"button\"\n class=\"fd-message-popover__trigger fd-message-popover__trigger\"\n [ngClass]=\"'fd-message-popover__trigger--' + _priorityState$()\"\n [glyph]=\"'message-' + _priorityFormState$()\"\n [label]=\"_priorityStateItemsCount$().toString()\"\n ></button>\n </fd-popover-control>\n <div>\n <div fd-popover-body-header>\n <div fd-bar barDesign=\"header\" class=\"fd-bar--growing\">\n <div fd-bar-left>\n @if (currentScreen === 'list') {\n <fd-segmented-button\n [ngModel]=\"_currentErrorType$()\"\n (ngModelChange)=\"_currentErrorType$.set($event)\"\n >\n <button\n fd-button\n [label]=\"'platformMessagePopover.allErrors' | fdTranslate\"\n value=\"all\"\n ></button>\n @for (type of _errorTypes$(); track type) {\n <button fd-button [value]=\"type.group\">\n <span\n fd-object-status\n [status]=\"type.state\"\n [glyph]=\"'message-' + type.group\"\n ></span>\n <span class=\"fd-button__text\">{{ type.count }}</span>\n </button>\n }\n </fd-segmented-button>\n }\n @if (currentScreen === 'details') {\n <button\n fd-button\n fdkInitialFocus\n fdType=\"transparent\"\n glyph=\"navigation-left-arrow\"\n title=\"Go back\"\n (click)=\"_showList()\"\n ></button>\n }\n </div>\n <div fd-bar-right>\n <button fd-button fdType=\"transparent\" (click)=\"popover.close()\" glyph=\"decline\"></button>\n </div>\n </div>\n </div>\n <fdp-message-view\n [currentScreen]=\"currentScreen\"\n [filteredErrors]=\"_filteredErrors$()\"\n [currentEntry]=\"currentEntry\"\n (openDetails)=\"_showDetails($event)\"\n (closePopover)=\"_closePopover($event)\"\n (focusItem)=\"focusItem.emit($event)\"\n ></fdp-message-view>\n </div>\n </fd-popover>\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { mergeWith } from 'lodash-es';\nimport { MessagePopoverFormWrapperComponent } from './components/message-popover-form-wrapper/message-popover-form-wrapper.component';\nimport { MessageViewComponent } from './components/message-view/message-view.component';\nimport { FDP_MESSAGE_POPOVER_CONFIG, FDP_MESSAGE_POPOVER_DEFAULT_CONFIG, MessagePopoverConfig } from './default-config';\nimport { MessagePopoverFormItemDirective } from './directives/message-popover-form-item.directive';\nimport { MessagePopoverComponent } from './message-popover.component';\n\n@NgModule({\n imports: [\n MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective\n ],\n exports: [\n MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective\n ],\n providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: FDP_MESSAGE_POPOVER_DEFAULT_CONFIG\n }\n ]\n})\nexport class PlatformMessagePopoverModule {\n /**\n * Method allows users to apply custom configuration.\n * @param config Object containing error definitions.\n */\n static withConfig(config: MessagePopoverConfig): ModuleWithProviders<PlatformMessagePopoverModule> {\n const customConfig = mergeWith(FDP_MESSAGE_POPOVER_DEFAULT_CONFIG, config, (obj, src) => {\n if (typeof obj === 'object' && !Array.isArray(obj)) {\n return Object.assign(obj, src);\n } else if (Array.isArray(obj)) {\n return obj.concat(src);\n } else {\n return src;\n }\n });\n\n return {\n ngModule: PlatformMessagePopoverModule,\n providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: customConfig\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-platform-message-popover.mjs","sources":["../../../../libs/platform/message-popover/default-config.ts","../../../../libs/platform/message-popover/directives/message-popover-form-item.directive.ts","../../../../libs/platform/message-popover/utils.ts","../../../../libs/platform/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.ts","../../../../libs/platform/message-popover/components/message-view/message-view.component.ts","../../../../libs/platform/message-popover/components/message-view/message-view.component.html","../../../../libs/platform/message-popover/message-popover.component.ts","../../../../libs/platform/message-popover/message-popover.component.html","../../../../libs/platform/message-popover/platform-message-popover.module.ts","../../../../libs/platform/message-popover/fundamental-ngx-platform-message-popover.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\n\nexport interface MessagePopoverErrorConfig {\n heading: string;\n description?: string;\n type: FormStates;\n}\n\nexport interface MessagePopoverConfig {\n /**\n * Errors object where key is error type and value is i18n string.\n */\n errors: Record<string, string | MessagePopoverErrorConfig>;\n}\n\nexport const FDP_MESSAGE_POPOVER_DEFAULT_CONFIG: MessagePopoverConfig = {\n errors: {\n email: 'platformMessagePopover.defaultErrors.email',\n max: 'platformMessagePopover.defaultErrors.max',\n maxlength: 'platformMessagePopover.defaultErrors.maxLength',\n min: 'platformMessagePopover.defaultErrors.min',\n minlength: 'platformMessagePopover.defaultErrors.minLength',\n pattern: 'platformMessagePopover.defaultErrors.pattern',\n required: 'platformMessagePopover.defaultErrors.required',\n requiredTrue: 'platformMessagePopover.defaultErrors.requiredTrue'\n }\n};\n\nexport const FDP_MESSAGE_POPOVER_CONFIG = new InjectionToken<MessagePopoverConfig>('FdpMessagePopoverConfig');\n","import { Directive, ElementRef, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MessagePopoverConfig } from '../default-config';\n\n@Directive({\n selector: '[fdpMessagePopoverFormItem]',\n standalone: true\n})\nexport class MessagePopoverFormItemDirective {\n /** Form item name. */\n @Input('fdpMessagePopoverFormItem')\n label: string;\n\n /** Error type definition. */\n @Input()\n errorTypes: MessagePopoverConfig['errors'];\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n @Optional() public readonly control: NgControl\n ) {}\n}\n","import { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { ObjectStatus } from '@fundamental-ngx/core/object-status';\nimport { MessagePopoverState } from './models/message-popover.interface';\n\n/**\n * Converts Object Status into Message Popover State\n * @param status Object status\n * @returns Message Popover State.\n */\nexport function convertFormStateToMessagePopoverState(state: FormStates): MessagePopoverState {\n switch (state) {\n case 'error':\n return 'negative';\n case 'warning':\n return 'critical';\n case 'default':\n return 'neutral';\n default:\n return state;\n }\n}\n\n/**\n * Converts Form State into Object status type.\n * @param type Form state.\n * @returns `ObjectStatus` type.\n */\nexport function convertFormState(type: FormStates): ObjectStatus {\n switch (type) {\n case 'success':\n return 'positive';\n case 'error':\n return 'negative';\n case 'warning':\n return 'critical';\n case 'information':\n return 'informative';\n default:\n return 'neutral';\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n Inject,\n Input,\n OnDestroy,\n QueryList,\n ViewEncapsulation,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlContainer, FormGroup, FormGroupDirective, NgForm } from '@angular/forms';\nimport { FD_FORM_FIELD_CONTROL, FormStates } from '@fundamental-ngx/cdk/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n FormFieldErrorDirectiveContext,\n PlatformFormField,\n PlatformFormFieldControl\n} from '@fundamental-ngx/platform/shared';\nimport { Subject, Subscription, filter, startWith, switchMap, zip } from 'rxjs';\nimport { FDP_MESSAGE_POPOVER_CONFIG, MessagePopoverConfig, MessagePopoverErrorConfig } from '../../default-config';\nimport { MessagePopoverFormItemDirective } from '../../directives/message-popover-form-item.directive';\nimport {\n MessagePopoverEntry,\n MessagePopoverErrorGroup,\n MessagePopoverErrorText\n} from '../../models/message-popover-entry.interface';\nimport { MessagePopoverWrapper } from '../../models/message-popover-wrapper.interface';\nimport { MessagePopover } from '../../models/message-popover.interface';\nimport { convertFormState } from '../../utils';\n\nexport type MessagePopoverForm = NgForm | FormGroupDirective;\n\n@Component({\n selector: 'fdp-message-popover-form-wrapper',\n template: `<ng-content></ng-content>`,\n exportAs: 'messagePopoverWrapper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n})\nexport class MessagePopoverFormWrapperComponent implements MessagePopoverWrapper, AfterViewInit, OnDestroy {\n /** @hidden */\n @ContentChildren(ControlContainer, { descendants: true })\n private readonly _projectedForm: QueryList<MessagePopoverForm>;\n\n /** @hidden */\n @ContentChildren(FD_FORM_FIELD_CONTROL, { descendants: true })\n private readonly _projectedFormFieldControls!: QueryList<PlatformFormFieldControl>;\n\n /** @hidden */\n @ContentChildren(MessagePopoverFormItemDirective, { descendants: true })\n private readonly _directiveItems!: QueryList<MessagePopoverFormItemDirective>;\n\n /** Message Popover instance. */\n messagePopover$ = new Subject<MessagePopover>();\n\n /**\n * User-passed forms.\n */\n @Input()\n set forms(forms: MessagePopoverForm | MessagePopoverForm[]) {\n if (!forms) {\n return;\n }\n if (!Array.isArray(forms)) {\n forms = [forms];\n }\n this._ngForms = forms;\n this._startListeningForErrors();\n }\n\n /** User-passed form fields. */\n @Input()\n set formFields(value: PlatformFormFieldControl[]) {\n this._formFields = value;\n this._listenToFormFieldErrors(value);\n }\n\n get formFields(): PlatformFormFieldControl[] {\n return this._formFields;\n }\n\n /**\n * Error models Signal. Emitted when form submitted and contains invalid fields.\n */\n readonly errors$ = signal<MessagePopoverErrorGroup[]>([]);\n\n /** @hidden */\n private _formFields: PlatformFormFieldControl[] = [];\n\n /** @hidden */\n private _formErrorsSubscription: Subscription | undefined;\n\n /** @hidden */\n private _ngForms: (NgForm | FormGroupDirective)[] = [];\n\n /** @hidden */\n private _formItemErrorsSubscription = new Subscription();\n\n /** @hidden */\n private _formSubmitted = false;\n\n /** @hidden */\n constructor(\n private readonly _destroyRef: DestroyRef,\n @Inject(FDP_MESSAGE_POPOVER_CONFIG) private readonly _config: MessagePopoverConfig\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n // Forms are passed via input property.\n if (this._ngForms.length > 0) {\n return;\n }\n this._projectedForm?.changes.pipe(startWith(null), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._ngForms = this._projectedForm.toArray();\n this._startListeningForErrors();\n });\n }\n\n /**\n * Sets Message Popover component instance.\n */\n setMessagePopover(messagePopover: MessagePopover): void {\n this.messagePopover$.next(messagePopover);\n // this.messagePopover = messagePopover;\n }\n\n /**\n * Programmatically add new form to array of forms.\n * @param forms\n */\n addForms(forms: MessagePopoverForm | MessagePopoverForm[]): void {\n const formsArray = Array.isArray(forms) ? forms : [forms];\n this._ngForms.push(...formsArray);\n this._startListeningForErrors();\n }\n\n /**\n * Programmatically add new form fields to array of listened form fields.\n * @param formFields\n */\n addFormFields(formFields: PlatformFormFieldControl[]): void {\n this._formFields.push(...formFields);\n this._listenToFormFieldErrors(this._formFields);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._formItemErrorsSubscription.unsubscribe();\n }\n\n /**\n * @hidden\n * Listens to the form submission and collects form control errors.\n */\n private _startListeningForErrors(): void {\n if (!this._ngForms) {\n return;\n }\n this._formErrorsSubscription?.unsubscribe();\n this.errors$.set([]);\n\n const formSubmitEvents = this._ngForms.map((form) =>\n form.ngSubmit.pipe(\n switchMap(() =>\n form.statusChanges!.pipe(\n startWith(form.status),\n filter((status: string) => status.toLowerCase() !== 'pending')\n )\n )\n )\n );\n\n this._formErrorsSubscription = zip(...formSubmitEvents)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._formSubmitted = true;\n const errors =\n this._directiveItems.length > 0 ? this._collectPlainFormData() : this._collectAdvancedFormData();\n\n this.errors$.set(errors);\n });\n\n this._listenToFormFieldErrors(this._projectedFormFieldControls.toArray());\n\n this._projectedFormFieldControls?.changes.subscribe(() => {\n this._listenToFormFieldErrors(this._projectedFormFieldControls.toArray());\n });\n }\n\n /** @hidden */\n private _listenToFormFieldErrors(fields: PlatformFormFieldControl[]): void {\n this._formItemErrorsSubscription.unsubscribe();\n\n this._formItemErrorsSubscription = new Subscription();\n\n fields?.forEach((field) => {\n this._formItemErrorsSubscription.add(\n field.formField?.errorsChange$.subscribe(() => {\n if (!this._formSubmitted) {\n return;\n }\n const errors =\n this._directiveItems.length > 0\n ? this._collectPlainFormData()\n : this._collectAdvancedFormData();\n this.errors$.set(errors);\n })\n );\n });\n }\n\n /** @hidden */\n private _collectPlainFormData(): MessagePopoverErrorGroup[] {\n const errors: MessagePopoverErrorGroup[] = [\n {\n errors: []\n }\n ];\n\n const fields = this._directiveItems.toArray();\n\n this._ngForms.forEach((form) => {\n Object.keys(form.form.controls).forEach((controlName) => {\n const control = form.form.get(controlName);\n const field = fields.find((formField) => formField.control?.name === controlName);\n\n if (!control?.errors || !field) {\n return;\n }\n\n const configErrors = Object.keys(this._config.errors);\n\n Object.keys(control.errors)\n .filter((error) => configErrors.includes(error))\n .forEach((errorKey) => {\n const errorObj = control.errors![errorKey];\n\n const errorTextModel = this._getConfigErrorModel(errorKey, field.errorTypes);\n const errorConfig = field?.errorTypes ? field?.errorTypes[errorKey] : null;\n const errorState =\n errorConfig && this._isAdvancedError(errorConfig) && errorConfig.type\n ? errorConfig.type\n : 'error';\n const error: MessagePopoverEntry = {\n name: controlName,\n type: errorTextModel.type,\n state: convertFormState(errorState),\n fieldName: field?.label ?? '',\n element: field?.elementRef,\n heading: {\n type: 'string',\n error: errorObj,\n message: errorTextModel.heading\n },\n description: {\n type: 'string',\n error: errorObj,\n message: errorTextModel.description\n },\n errors: control!.errors\n };\n\n errors[0].errors.push(error);\n });\n });\n });\n\n return errors;\n }\n\n /** @hidden */\n private _collectAdvancedFormData(): MessagePopoverErrorGroup[] {\n let errors: MessagePopoverErrorGroup[] = [];\n const fields = this.formFields.length > 0 ? this.formFields : this._projectedFormFieldControls.toArray();\n\n /**\n * Iterates over form controls to collect their errors.\n * @param form Form Group or a collection of Form Groups.\n */\n const iterateOverForm = (form: FormGroup | FormGroup[]): MessagePopoverErrorGroup[] => {\n if (Array.isArray(form)) {\n form.forEach((formGroup) => {\n errors = iterateOverForm(formGroup);\n });\n return errors;\n }\n Object.keys(form.controls).forEach((controlName) => {\n const control = form.get(controlName);\n const field = fields.find((formField) => formField.id === controlName);\n\n if (control instanceof FormGroup) {\n errors = iterateOverForm(control);\n }\n\n if (!control?.errors || !field) {\n return;\n }\n\n Object.keys(control.errors).forEach((errorKey) => {\n const errorDirective = field.formField?.groupedErrors.find(\n (groupedError) => groupedError.directive.error === errorKey\n );\n\n const groupName = this._getGroupName(field?.formField);\n const error = this._getErrorModel(\n controlName,\n groupName,\n control,\n field,\n errorKey,\n errorDirective,\n control.errors![errorKey]\n );\n\n let errorGroupIndex = errors.findIndex((errorGroup) => errorGroup.group === groupName);\n\n if (errorGroupIndex === -1) {\n errorGroupIndex =\n errors.push({\n group: groupName,\n errors: []\n }) - 1;\n }\n\n const group = errors[errorGroupIndex];\n\n group.errors.push(error);\n });\n });\n\n return errors;\n };\n\n return iterateOverForm(this._ngForms.map((form) => form.form));\n }\n\n /**\n * @hidden\n * Creates error model\n */\n private _getErrorModel(\n controlName: string,\n groupName: string,\n control: AbstractControl,\n field: PlatformFormFieldControl,\n errorKey: string,\n errorDirective?: FormFieldErrorDirectiveContext,\n error?: any\n ): MessagePopoverEntry {\n let state: FormStates = 'error';\n const configError = this._config.errors[errorKey];\n\n if (errorDirective?.directive.type) {\n state = errorDirective.directive.type;\n } else if (this._isAdvancedError(configError)) {\n state = configError.type;\n }\n\n return {\n name: controlName,\n type: state,\n state: convertFormState(state),\n group: groupName,\n fieldName: field?.formField?.label ?? '',\n heading: this._getErrorText(field, errorDirective, 'heading', errorKey, error),\n description: this._getErrorText(field, errorDirective, 'description', errorKey, error),\n errors: control!.errors,\n formField: field,\n element: field?.elementRef\n };\n }\n\n /**\n * @hidden\n * Creates error text based on the type of the error.\n * @param field Form Field Control.\n * @param errorDirective Optional Error directive\n * @param section Section where text should be rendered.\n * @param errorKey\n * @param error\n */\n private _getErrorText(\n field: PlatformFormFieldControl,\n errorDirective: Nullable<FormFieldErrorDirectiveContext>,\n section: 'heading' | 'description' = 'heading',\n errorKey: string,\n error?: any\n ): MessagePopoverErrorText {\n const errorTextObj: MessagePopoverErrorText = {\n error: errorDirective?.error,\n type: errorDirective?.directive ? 'directive' : field?.formField?.i18Strings ? 'templateRef' : 'string'\n };\n\n if (errorTextObj.type === 'string') {\n const errorTextModel = this._getConfigErrorModel(errorKey);\n\n errorTextObj.error = error;\n errorTextObj.message = errorTextModel[section];\n return errorTextObj;\n }\n\n if (errorDirective?.directive) {\n errorTextObj.message =\n section === 'heading'\n ? (errorDirective.directive._headingTemplateRef ?? errorDirective.directive._descriptionTemplateRef)\n : errorDirective.directive._descriptionTemplateRef;\n return errorTextObj;\n }\n\n errorTextObj.message = field?.formField?.i18Strings ?? null;\n return errorTextObj;\n }\n\n /** @hidden */\n private _getGroupName(formField: Nullable<PlatformFormField>): string {\n const parts: string[] = [];\n\n if (formField?.formGroupContainer?.mainTitle) {\n parts.push(formField.formGroupContainer.mainTitle);\n }\n\n if (formField?.formFieldGroup?.label) {\n parts.push(formField.formFieldGroup.label);\n }\n\n return parts.join(', ');\n }\n\n /** @hidden */\n private _getConfigErrorModel(\n errorKey: string,\n customErrorTypes?: MessagePopoverConfig['errors']\n ): MessagePopoverErrorConfig {\n const configError =\n customErrorTypes && customErrorTypes[errorKey] ? customErrorTypes[errorKey] : this._config.errors[errorKey];\n const isPlainError = !this._isAdvancedError(configError);\n const errorType = isPlainError ? 'error' : configError.type;\n const headingMessage = isPlainError ? configError : configError.heading;\n const descriptionMessage = isPlainError ? undefined : configError.description;\n\n return {\n type: errorType,\n heading: headingMessage,\n description: descriptionMessage\n };\n }\n\n /** @hidden */\n private _isAdvancedError(error: string | MessagePopoverErrorConfig): error is MessagePopoverErrorConfig {\n return !!error && typeof error !== 'string';\n }\n}\n","import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable, TabbableElementService, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { debounceTime } from 'rxjs';\nimport { MessagePopoverEntry, MessagePopoverErrorGroup } from '../../models/message-popover-entry.interface';\n\n@Component({\n selector: 'fdp-message-view',\n templateUrl: './message-view.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TabbableElementService],\n animations: [\n trigger('openCloseList', [\n // ...\n state(\n 'open',\n style({\n transform: 'translateX(0)',\n opacity: 1\n })\n ),\n state(\n 'closed',\n style({\n transform: 'translateX(-50px)',\n opacity: 0\n })\n ),\n transition('open => closed', [animate('.1s cubic-bezier(0, 0, 0.2, 1)')]),\n transition('closed => open', [animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')])\n ]),\n trigger('openCloseDetails', [\n state(\n 'open',\n style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n })\n ),\n state(\n 'closed',\n style({\n transform: 'translateX(50px)',\n opacity: 0\n })\n ),\n transition('open => closed', [\n animate(\n '.1s cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n }),\n style({\n transform: 'translateX(50px)',\n opacity: 0,\n display: 'none'\n })\n ])\n )\n ]),\n transition('closed => open', [\n style({\n display: 'block'\n }),\n animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')\n ])\n ])\n ],\n imports: [\n NgTemplateOutlet,\n CdkScrollable,\n ScrollbarDirective,\n ListModule,\n ObjectStatusComponent,\n LinkComponent,\n FdTranslatePipe\n ]\n})\nexport class MessageViewComponent implements AfterViewInit {\n /** Current Message Popover screen. Can be either `list` or `details`. */\n @Input()\n currentScreen: 'list' | 'details';\n\n /** Filtered errors to render. */\n @Input()\n filteredErrors: MessagePopoverErrorGroup[];\n\n /** Current error entry. Used for details view. */\n @Input()\n currentEntry: Nullable<MessagePopoverEntry>;\n\n /** Event emitted when user clicks on error entry containing additional description. */\n @Output()\n openDetails = new EventEmitter<MessagePopoverEntry>();\n\n /** Event emitted when user clicks on error entry and item's element should be focused. */\n @Output()\n focusItem = new EventEmitter<MessagePopoverEntry>();\n\n /** Event emitted when user clicks on the field link to focus on the field itself. */\n @Output()\n closePopover = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild('listView', { read: ElementRef })\n private _listView: ElementRef;\n\n /** @hidden */\n @ViewChild('detailsView', { read: ElementRef })\n private _detailsView: ElementRef;\n\n /** @Hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-message-popover__view-container';\n\n /** @hidden */\n private _activeListElement: Nullable<HTMLElement> = null;\n\n /** @hidden */\n constructor(\n private readonly _destroyRef: DestroyRef,\n private readonly _tabbableService: TabbableElementService,\n @Inject(DOCUMENT) private readonly _document: Document\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n resizeObservable(this._detailsView.nativeElement)\n .pipe(debounceTime(20), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const { height } = this._detailsView.nativeElement.getBoundingClientRect();\n this._listView.nativeElement.style.minHeight = `${height}px`;\n });\n }\n\n /** @hidden */\n _showDetails(entry: MessagePopoverEntry): void {\n this._activeListElement = this._document.activeElement as HTMLElement;\n if (!entry.description.message) {\n this._focusElement(undefined, entry);\n return;\n }\n this.currentScreen = 'details';\n this.openDetails.emit(entry);\n }\n\n /** @hidden */\n _focusElement(event?: MouseEvent, item?: MessagePopoverEntry): void {\n if (!item?.element?.nativeElement) {\n return;\n }\n event?.stopImmediatePropagation();\n this.closePopover.emit(false);\n this.focusItem.emit(item);\n setTimeout(() => {\n const tabbableElement = this._tabbableService.getTabbableElement(item.element?.nativeElement);\n tabbableElement?.focus();\n });\n }\n\n /** @hidden */\n _onListAnimationComplete(event: any): void {\n if (event.toState === 'open' && this._activeListElement) {\n this._activeListElement.focus();\n this._activeListElement = null;\n }\n }\n}\n","<ng-template #headingTemplate let-item>\n <ng-template #directiveHeading>\n <ng-template\n [ngTemplateOutlet]=\"item.heading.message || item.description.message\"\n [ngTemplateOutletContext]=\"{ $implicit: item.heading.error }\"\n ></ng-template>\n </ng-template>\n <ng-template #i18nHeading>\n <ng-template\n [ngTemplateOutlet]=\"item.heading.message\"\n [ngTemplateOutletContext]=\"{ $implicit: item.errors }\"\n ></ng-template>\n </ng-template>\n <ng-template #stringHeading>\n {{ item.heading.message | fdTranslate: { error: item.heading.error } : item.heading.message }}\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"\n item.heading.type === 'directive'\n ? directiveHeading\n : item.heading.type === 'string'\n ? stringHeading\n : i18nHeading\n \"\n ></ng-template>\n</ng-template>\n<ng-template #descriptionTemplate let-item>\n <ng-template #directiveDescription>\n <ng-template\n [ngTemplateOutlet]=\"item.description.message!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.description.error }\"\n ></ng-template>\n </ng-template>\n <ng-template #i18nDescription>\n <ng-template\n [ngTemplateOutlet]=\"item.description.message!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.errors }\"\n ></ng-template>\n </ng-template>\n <ng-template #stringDescription>\n {{ item.description.message | fdTranslate: { error: item.description.error } : item.description.message }}\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"\n item.heading.type === 'directive'\n ? directiveDescription\n : item.heading.type === 'string'\n ? stringDescription\n : i18nDescription\n \"\n ></ng-template>\n</ng-template>\n<div class=\"fd-message-view\">\n <section\n class=\"fd-message-view__list\"\n tabindex=\"-1\"\n [@openCloseList]=\"currentScreen === 'list' ? 'open' : 'closed'\"\n (@openCloseList.done)=\"_onListAnimationComplete($event)\"\n fd-scrollbar\n >\n <ul #listView fd-list class=\"message-popover__list fd-list--message-view\" [navigationIndicator]=\"true\">\n @for (group of filteredErrors; track group) {\n @if (group.group) {\n <li fd-list-group-header>\n <span fd-list-title>{{ group.group }}</span>\n </li>\n }\n @for (item of group.errors; track item; let i = $index) {\n <li fd-list-item [tabindex]=\"i === 0 ? 0 : -1\" [byline]=\"true\" (click)=\"_showDetails(item)\">\n <ng-template #itemIcon>\n <span\n fd-object-status\n class=\"fd-list__icon\"\n [status]=\"item.state\"\n [glyph]=\"'message-' + item.type\"\n ></span>\n </ng-template>\n <ng-template #listSubtitle>\n <span class=\"fd-list__subtitle\">\n <ng-template\n [ngTemplateOutlet]=\"headingTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </span>\n </ng-template>\n @if (item.element && !!item.description.message) {\n <span fd-list-link [navigationIndicator]=\"!!item.description.message\">\n <ng-template [ngTemplateOutlet]=\"itemIcon\"></ng-template>\n <span fd-list-content>\n <span fd-list-title>\n <a tabindex=\"0\" fd-link (click)=\"_focusElement($event, item)\">\n {{ item.fieldName }}\n </a>\n </span>\n <ng-template [ngTemplateOutlet]=\"listSubtitle\"></ng-template>\n </span>\n </span>\n } @else {\n <a fd-list-link [navigationIndicator]=\"!!item.description.message\">\n <ng-template [ngTemplateOutlet]=\"itemIcon\"></ng-template>\n <span fd-list-content>\n <span fd-list-title>{{ item.fieldName }}</span>\n <ng-template [ngTemplateOutlet]=\"listSubtitle\"></ng-template>\n </span>\n </a>\n }\n </li>\n }\n }\n </ul>\n </section>\n <section class=\"fd-message-view__details\" [@openCloseDetails]=\"currentScreen === 'details' ? 'open' : 'closed'\">\n <div #detailsView>\n @if (currentEntry) {\n <span class=\"fd-message-view__details-title\">\n <span\n fd-object-status\n class=\"fd-message-view__icon\"\n [status]=\"currentEntry.state\"\n [glyph]=\"'message-' + currentEntry.type\"\n ></span>\n <ng-template\n [ngTemplateOutlet]=\"headingTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: currentEntry }\"\n ></ng-template>\n </span>\n @if (currentEntry.description.message) {\n <span class=\"fd-message-view__details-description\">\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: currentEntry }\"\n ></ng-template>\n </span>\n }\n }\n </div>\n </section>\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n computed,\n signal\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { InitialFocusDirective, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { PopoverComponent, PopoverModule } from '@fundamental-ngx/core/popover';\nimport { SegmentedButtonComponent } from '@fundamental-ngx/core/segmented-button';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { getFormState } from '@fundamental-ngx/platform/form';\nimport { countBy, flatten } from 'lodash-es';\nimport { MessageViewComponent } from './components/message-view/message-view.component';\nimport {\n MessagePopoverEntry,\n MessagePopoverError,\n MessagePopoverErrorGroup\n} from './models/message-popover-entry.interface';\nimport { MessagePopoverWrapper } from './models/message-popover-wrapper.interface';\nimport { MessagePopover, MessagePopoverState } from './models/message-popover.interface';\nimport { convertFormState, convertFormStateToMessagePopoverState } from './utils';\n\n@Component({\n selector: 'fdp-message-popover',\n templateUrl: './message-popover.component.html',\n styleUrl: './message-popover.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n PopoverModule,\n ButtonComponent,\n NgClass,\n BarModule,\n SegmentedButtonComponent,\n FormsModule,\n ObjectStatusComponent,\n InitialFocusDirective,\n MessageViewComponent,\n FdTranslatePipe\n ]\n})\nexport class MessagePopoverComponent implements MessagePopover {\n /** @hidden */\n @ViewChild('popover')\n readonly _popover: PopoverComponent;\n\n /** Message Popover Wrapper component. */\n @Input()\n set wrapper(value: Nullable<MessagePopoverWrapper>) {\n value?.setMessagePopover(this);\n this._wrapper$.set(value);\n }\n get wrapper(): Nullable<MessagePopoverWrapper> {\n return this._wrapper$();\n }\n\n /** Event emits when user clicks on error entry and item's element needs to be focused. */\n @Output()\n focusItem = new EventEmitter<MessagePopoverEntry>();\n\n /** Current message popover screen. Can be `list` or `details`. */\n currentScreen: 'list' | 'details' = 'list';\n\n /** Current error entry. */\n currentEntry: Nullable<MessagePopoverEntry>;\n\n /** @hidden */\n _currentErrorType$: WritableSignal<MessagePopoverError['group']> = signal('all');\n\n /** @hidden */\n _errorTypes$ = computed<MessagePopoverError[]>(() => {\n const countedErrors = this._countedErrors$();\n const errorTypes = Object.keys(countedErrors) as FormStates[];\n return errorTypes.map((errorType) => ({\n group: errorType,\n count: countedErrors[errorType],\n state: convertFormState(errorType)\n }));\n });\n\n /** @hidden */\n _priorityStateItemsCount$ = computed(() => this._countedErrors$()[this._priorityFormState$()!] || 0);\n\n /** @hidden */\n _priorityFormState$ = computed<FormStates>(() => {\n const countedErrors = this._countedErrors$();\n const errorTypes = Object.keys(countedErrors) as FormStates[];\n return getFormState(errorTypes);\n });\n\n /** @hidden */\n _priorityState$ = computed<Nullable<MessagePopoverState>>(() =>\n convertFormStateToMessagePopoverState(this._priorityFormState$())\n );\n\n /** @hidden */\n readonly _filteredErrors$ = computed(() => {\n const groupedErrors = this._groupedErrors$();\n const errorType = this._currentErrorType$();\n\n if (errorType === 'all') {\n return groupedErrors;\n }\n\n const filteredErrors: MessagePopoverErrorGroup[] = [];\n groupedErrors.forEach((group) => {\n const errors = group.errors.filter((error) => error.type === errorType);\n\n if (errors.length === 0) {\n return;\n }\n\n filteredErrors.push({\n group: group.group,\n errors\n });\n });\n\n return filteredErrors;\n });\n\n private readonly _groupedErrors$ = computed(() => this._wrapper$()?.errors$() || []);\n\n private readonly _wrapper$ = signal<Nullable<MessagePopoverWrapper>>(null);\n\n private readonly _countedErrors$ = computed(() =>\n countBy(flatten(Object.values(this._groupedErrors$().map((group) => group.errors))), 'type')\n );\n\n /** @hidden */\n _showList(): void {\n this.currentScreen = 'list';\n this.currentEntry = null;\n }\n\n /** @hidden */\n _showDetails(entry: MessagePopoverEntry): void {\n this.currentScreen = 'details';\n this.currentEntry = entry;\n }\n\n /** @hidden */\n _closePopover(focusLast = true): void {\n this._popover.close(focusLast);\n }\n}\n","@if (_errorTypes$().length > 0) {\n <fd-popover\n #popover\n placement=\"top-start\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [disableScrollbar]=\"true\"\n >\n <fd-popover-control>\n <button\n fd-button\n type=\"button\"\n class=\"fd-message-popover__trigger fd-message-popover__trigger\"\n [ngClass]=\"'fd-message-popover__trigger--' + _priorityState$()\"\n [glyph]=\"'message-' + _priorityFormState$()\"\n [label]=\"_priorityStateItemsCount$().toString()\"\n ></button>\n </fd-popover-control>\n <div>\n <div fd-popover-body-header>\n <div fd-bar barDesign=\"header\" class=\"fd-bar--growing\">\n <div fd-bar-left>\n @if (currentScreen === 'list') {\n <fd-segmented-button\n [ngModel]=\"_currentErrorType$()\"\n (ngModelChange)=\"_currentErrorType$.set($event)\"\n >\n <button\n fd-button\n [label]=\"'platformMessagePopover.allErrors' | fdTranslate\"\n value=\"all\"\n ></button>\n @for (type of _errorTypes$(); track type) {\n <button fd-button [value]=\"type.group\">\n <span\n fd-object-status\n [status]=\"type.state\"\n [glyph]=\"'message-' + type.group\"\n ></span>\n <span class=\"fd-button__text\">{{ type.count }}</span>\n </button>\n }\n </fd-segmented-button>\n }\n @if (currentScreen === 'details') {\n <button\n fd-button\n fdkInitialFocus\n fdType=\"transparent\"\n glyph=\"navigation-left-arrow\"\n title=\"Go back\"\n (click)=\"_showList()\"\n ></button>\n }\n </div>\n <div fd-bar-right>\n <button fd-button fdType=\"transparent\" (click)=\"popover.close()\" glyph=\"decline\"></button>\n </div>\n </div>\n </div>\n <fdp-message-view\n [currentScreen]=\"currentScreen\"\n [filteredErrors]=\"_filteredErrors$()\"\n [currentEntry]=\"currentEntry\"\n (openDetails)=\"_showDetails($event)\"\n (closePopover)=\"_closePopover($event)\"\n (focusItem)=\"focusItem.emit($event)\"\n ></fdp-message-view>\n </div>\n </fd-popover>\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { mergeWith } from 'lodash-es';\nimport { MessagePopoverFormWrapperComponent } from './components/message-popover-form-wrapper/message-popover-form-wrapper.component';\nimport { MessageViewComponent } from './components/message-view/message-view.component';\nimport { FDP_MESSAGE_POPOVER_CONFIG, FDP_MESSAGE_POPOVER_DEFAULT_CONFIG, MessagePopoverConfig } from './default-config';\nimport { MessagePopoverFormItemDirective } from './directives/message-popover-form-item.directive';\nimport { MessagePopoverComponent } from './message-popover.component';\n\n@NgModule({\n imports: [\n MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective\n ],\n exports: [\n MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective\n ],\n providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: FDP_MESSAGE_POPOVER_DEFAULT_CONFIG\n }\n ]\n})\nexport class PlatformMessagePopoverModule {\n /**\n * Method allows users to apply custom configuration.\n * @param config Object containing error definitions.\n */\n static withConfig(config: MessagePopoverConfig): ModuleWithProviders<PlatformMessagePopoverModule> {\n const customConfig = mergeWith(FDP_MESSAGE_POPOVER_DEFAULT_CONFIG, config, (obj, src) => {\n if (typeof obj === 'object' && !Array.isArray(obj)) {\n return Object.assign(obj, src);\n } else if (Array.isArray(obj)) {\n return obj.concat(src);\n } else {\n return src;\n }\n });\n\n return {\n ngModule: PlatformMessagePopoverModule,\n providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: customConfig\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3"],"mappings":"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"}
|
|
@@ -31,11 +31,11 @@ class PlatformFooterComponent {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: PlatformFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: PlatformFooterComponent, isStandalone: true, selector: "fdp-page-footer", inputs: { logo: "logo", content: "content" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div\n class=\"fd-page-footer\"\n [class.fd-page-footer--xl]=\"size === 'xl'\"\n [class.fd-page-footer--lg]=\"size === 'lg'\"\n [class.fd-page-footer--md]=\"size === 'md'\"\n [class.fd-page-footer--sm]=\"size === 'sm'\"\n>\n <div class=\"fd-page-footer__logo\">\n <ng-template [ngTemplateOutlet]=\"logo\"></ng-template>\n </div>\n <div class=\"fd-page-footer__container\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n</div>\n", styles: [".fd-page-footer{background:var(--sapBaseColor);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1.5rem 2rem;padding-inline:0;position:relative}.fd-page-footer:after,.fd-page-footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__logo{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.5rem;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;width:3rem}.fd-page-footer__logo:after,.fd-page-footer__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__row{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:70%;word-break:break-all}.fd-page-footer__row:after,.fd-page-footer__row:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__row .fd-page-footer__row-item{-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.fd-page-footer__row .fd-page-footer__row-image{display:block}.fd-page-footer__row:not(:first-child){-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-page-footer__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;-ms-flex-item-align:end;align-self:flex-end;position:absolute;text-align:right;width:30%}.fd-page-footer__text:after,.fd-page-footer__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__text[dir=rtl],[dir=rtl] .fd-page-footer__text{text-align:left}.fd-page-footer--xl{padding-inline:3rem}.fd-page-footer--xl .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--lg{padding-inline:2rem}.fd-page-footer--lg .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--md{padding-inline:1rem}.fd-page-footer--md .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--sm{padding-inline:.5rem}.fd-page-footer--sm .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}@media (width <= 768px){.fd-page-footer .fd-page-footer__row{-webkit-margin-end:0;margin-inline-end:0;width:100%}.fd-page-footer .fd-page-footer__row:not(:first-child){-webkit-padding-before:0;padding-block-start:0}.fd-page-footer .fd-page-footer__row-item{-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-page-footer .fd-page-footer__text{text-align:left;width:90%;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer .fd-page-footer__container{display:inline-block;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}}\n/*! Bundled license information:\n\nfundamental-styles/dist/page-footer.css:\n (*!\n * Fundamental Library Styles v0.
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: PlatformFooterComponent, isStandalone: true, selector: "fdp-page-footer", inputs: { logo: "logo", content: "content" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div\n class=\"fd-page-footer\"\n [class.fd-page-footer--xl]=\"size === 'xl'\"\n [class.fd-page-footer--lg]=\"size === 'lg'\"\n [class.fd-page-footer--md]=\"size === 'md'\"\n [class.fd-page-footer--sm]=\"size === 'sm'\"\n>\n <div class=\"fd-page-footer__logo\">\n <ng-template [ngTemplateOutlet]=\"logo\"></ng-template>\n </div>\n <div class=\"fd-page-footer__container\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n</div>\n", styles: [".fd-page-footer{background:var(--sapBaseColor);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1.5rem 2rem;padding-inline:0;position:relative}.fd-page-footer:after,.fd-page-footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__logo{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.5rem;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;width:3rem}.fd-page-footer__logo:after,.fd-page-footer__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__row{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:70%;word-break:break-all}.fd-page-footer__row:after,.fd-page-footer__row:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__row .fd-page-footer__row-item{-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.fd-page-footer__row .fd-page-footer__row-image{display:block}.fd-page-footer__row:not(:first-child){-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-page-footer__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;-ms-flex-item-align:end;align-self:flex-end;position:absolute;text-align:right;width:30%}.fd-page-footer__text:after,.fd-page-footer__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__text[dir=rtl],[dir=rtl] .fd-page-footer__text{text-align:left}.fd-page-footer--xl{padding-inline:3rem}.fd-page-footer--xl .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--lg{padding-inline:2rem}.fd-page-footer--lg .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--md{padding-inline:1rem}.fd-page-footer--md .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--sm{padding-inline:.5rem}.fd-page-footer--sm .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}@media (width <= 768px){.fd-page-footer .fd-page-footer__row{-webkit-margin-end:0;margin-inline-end:0;width:100%}.fd-page-footer .fd-page-footer__row:not(:first-child){-webkit-padding-before:0;padding-block-start:0}.fd-page-footer .fd-page-footer__row-item{-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-page-footer .fd-page-footer__text{text-align:left;width:90%;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer .fd-page-footer__container{display:inline-block;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}}\n/*! Bundled license information:\n\nfundamental-styles/dist/page-footer.css:\n (*!\n * Fundamental Library Styles v0.39.2\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
35
35
|
}
|
|
36
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: PlatformFooterComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
|
-
args: [{ selector: 'fdp-page-footer', encapsulation: ViewEncapsulation.None, imports: [NgTemplateOutlet], template: "<div\n class=\"fd-page-footer\"\n [class.fd-page-footer--xl]=\"size === 'xl'\"\n [class.fd-page-footer--lg]=\"size === 'lg'\"\n [class.fd-page-footer--md]=\"size === 'md'\"\n [class.fd-page-footer--sm]=\"size === 'sm'\"\n>\n <div class=\"fd-page-footer__logo\">\n <ng-template [ngTemplateOutlet]=\"logo\"></ng-template>\n </div>\n <div class=\"fd-page-footer__container\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n</div>\n", styles: [".fd-page-footer{background:var(--sapBaseColor);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1.5rem 2rem;padding-inline:0;position:relative}.fd-page-footer:after,.fd-page-footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__logo{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.5rem;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;width:3rem}.fd-page-footer__logo:after,.fd-page-footer__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__row{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:70%;word-break:break-all}.fd-page-footer__row:after,.fd-page-footer__row:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__row .fd-page-footer__row-item{-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.fd-page-footer__row .fd-page-footer__row-image{display:block}.fd-page-footer__row:not(:first-child){-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-page-footer__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;-ms-flex-item-align:end;align-self:flex-end;position:absolute;text-align:right;width:30%}.fd-page-footer__text:after,.fd-page-footer__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__text[dir=rtl],[dir=rtl] .fd-page-footer__text{text-align:left}.fd-page-footer--xl{padding-inline:3rem}.fd-page-footer--xl .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--lg{padding-inline:2rem}.fd-page-footer--lg .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--md{padding-inline:1rem}.fd-page-footer--md .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--sm{padding-inline:.5rem}.fd-page-footer--sm .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}@media (width <= 768px){.fd-page-footer .fd-page-footer__row{-webkit-margin-end:0;margin-inline-end:0;width:100%}.fd-page-footer .fd-page-footer__row:not(:first-child){-webkit-padding-before:0;padding-block-start:0}.fd-page-footer .fd-page-footer__row-item{-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-page-footer .fd-page-footer__text{text-align:left;width:90%;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer .fd-page-footer__container{display:inline-block;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}}\n/*! Bundled license information:\n\nfundamental-styles/dist/page-footer.css:\n (*!\n * Fundamental Library Styles v0.
|
|
38
|
+
args: [{ selector: 'fdp-page-footer', encapsulation: ViewEncapsulation.None, imports: [NgTemplateOutlet], template: "<div\n class=\"fd-page-footer\"\n [class.fd-page-footer--xl]=\"size === 'xl'\"\n [class.fd-page-footer--lg]=\"size === 'lg'\"\n [class.fd-page-footer--md]=\"size === 'md'\"\n [class.fd-page-footer--sm]=\"size === 'sm'\"\n>\n <div class=\"fd-page-footer__logo\">\n <ng-template [ngTemplateOutlet]=\"logo\"></ng-template>\n </div>\n <div class=\"fd-page-footer__container\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n</div>\n", styles: [".fd-page-footer{background:var(--sapBaseColor);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1.5rem 2rem;padding-inline:0;position:relative}.fd-page-footer:after,.fd-page-footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__logo{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.5rem;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;width:3rem}.fd-page-footer__logo:after,.fd-page-footer__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__row{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:70%;word-break:break-all}.fd-page-footer__row:after,.fd-page-footer__row:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__row .fd-page-footer__row-item{-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.fd-page-footer__row .fd-page-footer__row-image{display:block}.fd-page-footer__row:not(:first-child){-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-page-footer__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;-ms-flex-item-align:end;align-self:flex-end;position:absolute;text-align:right;width:30%}.fd-page-footer__text:after,.fd-page-footer__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-page-footer__text[dir=rtl],[dir=rtl] .fd-page-footer__text{text-align:left}.fd-page-footer--xl{padding-inline:3rem}.fd-page-footer--xl .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--lg{padding-inline:2rem}.fd-page-footer--lg .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--md{padding-inline:1rem}.fd-page-footer--md .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer--sm{padding-inline:.5rem}.fd-page-footer--sm .fd-page-footer__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-padding-before:.75rem;padding-block-start:.75rem}@media (width <= 768px){.fd-page-footer .fd-page-footer__row{-webkit-margin-end:0;margin-inline-end:0;width:100%}.fd-page-footer .fd-page-footer__row:not(:first-child){-webkit-padding-before:0;padding-block-start:0}.fd-page-footer .fd-page-footer__row-item{-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-page-footer .fd-page-footer__text{text-align:left;width:90%;-webkit-padding-before:.75rem;padding-block-start:.75rem}.fd-page-footer .fd-page-footer__container{display:inline-block;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}}\n/*! Bundled license information:\n\nfundamental-styles/dist/page-footer.css:\n (*!\n * Fundamental Library Styles v0.39.2\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
|
|
39
39
|
}], ctorParameters: () => [], propDecorators: { logo: [{
|
|
40
40
|
type: Input
|
|
41
41
|
}], content: [{
|
|
@@ -151,7 +151,7 @@ class PanelComponent extends BaseComponent {
|
|
|
151
151
|
deps: [PanelConfig]
|
|
152
152
|
}
|
|
153
153
|
})
|
|
154
|
-
], queries: [{ propertyName: "_panelContentComponent", first: true, predicate: PanelContentComponent, descendants: true }], viewQueries: [{ propertyName: "_panelTitleDirective", first: true, predicate: PanelTitleDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-panel\n [fdContentDensity]=\"contentDensityObserver.value\"\n [expanded]=\"expanded\"\n [fixed]=\"!expandable\"\n [expandAriaLabel]=\"_expandAriaLabel\"\n [expandAriaLabelledBy]=\"_titleId\"\n [attr.aria-disabled]=\"disabled\"\n (expandedChange)=\"onExpandedChange($event)\"\n>\n <h5 [id]=\"_titleId\" fd-panel-title>{{ title }}</h5>\n\n <ng-content select=\"fdp-panel-actions\"></ng-content>\n\n <div\n fd-panel-content\n [id]=\"_panelContentComponent?.id\"\n [height]=\"_panelContentComponent?.contentHeight || null\"\n [ariaLabelledBy]=\"_panelTitleDirective?.id || null\"\n >\n <ng-content select=\"fdp-panel-content\"></ng-content>\n </div>\n</fd-panel>\n", dependencies: [{ kind: "component", type: PanelComponent$1, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded"], outputs: ["expandedChange"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id"] }, { kind: "directive", type: PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
154
|
+
], queries: [{ propertyName: "_panelContentComponent", first: true, predicate: PanelContentComponent, descendants: true }], viewQueries: [{ propertyName: "_panelTitleDirective", first: true, predicate: PanelTitleDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-panel\n [fdContentDensity]=\"contentDensityObserver.value\"\n [expanded]=\"expanded\"\n [fixed]=\"!expandable\"\n [expandAriaLabel]=\"_expandAriaLabel\"\n [expandAriaLabelledBy]=\"_titleId\"\n [attr.aria-disabled]=\"disabled\"\n (expandedChange)=\"onExpandedChange($event)\"\n>\n <h5 [id]=\"_titleId\" fd-panel-title>{{ title }}</h5>\n\n <ng-content select=\"fdp-panel-actions\"></ng-content>\n\n <div\n fd-panel-content\n [id]=\"_panelContentComponent?.id\"\n [height]=\"_panelContentComponent?.contentHeight || null\"\n [ariaLabelledBy]=\"_panelTitleDirective?.id || null\"\n >\n <ng-content select=\"fdp-panel-content\"></ng-content>\n </div>\n</fd-panel>\n", dependencies: [{ kind: "component", type: PanelComponent$1, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded", "transparent", "noRadius"], outputs: ["expandedChange"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id"] }, { kind: "directive", type: PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "noPadding", "transparent", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
155
155
|
}
|
|
156
156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: PanelComponent, decorators: [{
|
|
157
157
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-platform-panel.mjs","sources":["../../../../libs/platform/panel/panel-actions.component.ts","../../../../libs/platform/panel/panel-content/panel-content.component.ts","../../../../libs/platform/panel/panel.config.ts","../../../../libs/platform/panel/panel.component.ts","../../../../libs/platform/panel/panel.component.html","../../../../libs/platform/panel/panel.module.ts","../../../../libs/platform/panel/fundamental-ngx-platform-panel.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fdp-panel-actions',\n template: '<ng-content></ng-content>',\n styles: [\n `\n fdp-panel-actions > * {\n margin-left: 0.5rem;\n }\n\n [dir='rtl'] fdp-panel-actions > * {\n margin-left: 0;\n margin-right: 0.5rem;\n }\n `\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class PanelActionsComponent {}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nlet platformPanelContentUniqueId = 0;\n\n@Component({\n selector: 'fdp-panel-content',\n template: `<ng-content></ng-content>`,\n styleUrl: './panel-content.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class PanelContentComponent {\n /**\n * @harmful Potentially bad approach to hardcode css related properties\n * Custom height of the content container.\n */\n @Input()\n contentHeight: string;\n\n /** Id of the host element. */\n @Input()\n @HostBinding('attr.id')\n id: string = 'fdp-panel-content-' + platformPanelContentUniqueId++;\n}\n","import { Injectable } from '@angular/core';\n\nimport { ContentDensity } from '@fundamental-ngx/cdk/utils';\nimport { PlatformConfig } from '@fundamental-ngx/platform/shared';\n\n/**\n * Default options for platform panel\n */\n@Injectable({ providedIn: 'root' })\nexport class PanelConfig {\n /**\n * ARIA label for button when the Panel is collapsed\n */\n expandLabel = 'Expand Panel';\n\n /**\n * ARIA label for button when the Panel is expanded\n */\n collapseLabel = 'Collapse Panel';\n\n /**\n * Content Density of element. 'cozy' | 'compact'\n */\n contentDensity: ContentDensity;\n\n /** @hidden */\n constructor(platformConfig: PlatformConfig) {\n this.contentDensity = platformConfig.contentDensity;\n }\n\n /**\n * Create Provider factory function\n */\n static createProviderFactory(obj: Partial<PanelConfig>): (platformConfig: PlatformConfig) => PanelConfig {\n const useFactory = (platformConfig: PlatformConfig): PanelConfig =>\n Object.assign(new PanelConfig(platformConfig), obj);\n return useFactory;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\nimport { BaseComponent } from '@fundamental-ngx/platform/shared';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n ContentDensityDirective,\n ContentDensityObserver,\n contentDensityObserverProviders,\n defaultContentDensityObserverConfigs\n} from '@fundamental-ngx/core/content-density';\nimport {\n PanelComponent as CorePanelComponent,\n PanelContentDirective,\n PanelTitleDirective\n} from '@fundamental-ngx/core/panel';\nimport { PanelContentComponent } from './panel-content/panel-content.component';\nimport { PanelConfig } from './panel.config';\n\n/** Panel change event instance */\nexport class PanelExpandChangeEvent {\n /**\n * Panel expand change event\n * @param source Panel component\n * @param payload Panel expand state\n */\n constructor(\n public source: PanelComponent,\n public payload: boolean\n ) {}\n}\n\nlet platformPanelTitleUniqueId = 0;\n\n/**\n * Fundamental Panel component\n *\n * ```html\n * <fdp-panel title=\"Panel Header\">\n * <fdp-panel-content>\n * Panel Content\n * </fdp-panel-content>\n * </fdp-panel>\n * ```\n *\n * */\n@Component({\n selector: 'fdp-panel',\n templateUrl: './panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n contentDensityObserverProviders({\n defaultContentDensity: {\n useFactory: (panelConfig: PanelConfig) =>\n panelConfig.contentDensity || defaultContentDensityObserverConfigs.defaultContentDensity,\n deps: [PanelConfig]\n }\n })\n ],\n imports: [CorePanelComponent, ContentDensityDirective, PanelTitleDirective, PanelContentDirective]\n})\nexport class PanelComponent extends BaseComponent implements OnInit, OnChanges {\n /**\n * sets Panel title.\n */\n @Input()\n title: string;\n\n /**\n * Whether the Panel Content is expanded\n */\n @Input()\n expanded = true;\n\n /**\n * Whether the Panel is expandable\n */\n @Input()\n expandable = true;\n\n /**\n * ARIA label for button when the Panel is collapsed\n */\n @Input()\n expandLabel: string = this._panelConfig.expandLabel;\n\n /**\n * ARIA label for button when the Panel is expanded\n */\n @Input()\n collapseLabel: string = this._panelConfig.collapseLabel;\n\n /** Output event triggered when the Expand button is clicked */\n @Output()\n panelExpandChange: EventEmitter<PanelExpandChangeEvent> = new EventEmitter<PanelExpandChangeEvent>();\n\n /** @hidden */\n @ContentChild(PanelContentComponent)\n _panelContentComponent: Nullable<PanelContentComponent>;\n\n /** @hidden */\n @ViewChild(PanelTitleDirective)\n _panelTitleDirective: Nullable<PanelTitleDirective>;\n\n /**\n * @hidden\n * Button label based on the current state\n */\n _expandAriaLabel: string;\n\n /** @hidden id of the title element */\n _titleId: string = 'fdp-panel-title-' + platformPanelTitleUniqueId++;\n\n /** @hidden */\n constructor(\n protected _panelConfig: PanelConfig,\n readonly contentDensityObserver: ContentDensityObserver\n ) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._calculateExpandAriaLabel();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.expanded) {\n this._calculateExpandAriaLabel();\n }\n }\n\n /** Handles expanded/collapsed event */\n onExpandedChange(expanded: boolean): void {\n this.expanded = expanded;\n const event = new PanelExpandChangeEvent(this, expanded);\n this.panelExpandChange.emit(event);\n this._calculateExpandAriaLabel();\n }\n\n /**\n * @hidden\n * Calculate expandAriaLabel based on panel state\n */\n private _calculateExpandAriaLabel(): void {\n this._expandAriaLabel = this.expanded ? this.collapseLabel : this.expandLabel;\n }\n}\n","<fd-panel\n [fdContentDensity]=\"contentDensityObserver.value\"\n [expanded]=\"expanded\"\n [fixed]=\"!expandable\"\n [expandAriaLabel]=\"_expandAriaLabel\"\n [expandAriaLabelledBy]=\"_titleId\"\n [attr.aria-disabled]=\"disabled\"\n (expandedChange)=\"onExpandedChange($event)\"\n>\n <h5 [id]=\"_titleId\" fd-panel-title>{{ title }}</h5>\n\n <ng-content select=\"fdp-panel-actions\"></ng-content>\n\n <div\n fd-panel-content\n [id]=\"_panelContentComponent?.id\"\n [height]=\"_panelContentComponent?.contentHeight || null\"\n [ariaLabelledBy]=\"_panelTitleDirective?.id || null\"\n >\n <ng-content select=\"fdp-panel-content\"></ng-content>\n </div>\n</fd-panel>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { PanelActionsComponent } from './panel-actions.component';\nimport { PanelContentComponent } from './panel-content/panel-content.component';\nimport { PanelComponent } from './panel.component';\n\nconst components = [PanelComponent, PanelContentComponent, PanelActionsComponent, ContentDensityModule];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PanelConfig","CorePanelComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-platform-panel.mjs","sources":["../../../../libs/platform/panel/panel-actions.component.ts","../../../../libs/platform/panel/panel-content/panel-content.component.ts","../../../../libs/platform/panel/panel.config.ts","../../../../libs/platform/panel/panel.component.ts","../../../../libs/platform/panel/panel.component.html","../../../../libs/platform/panel/panel.module.ts","../../../../libs/platform/panel/fundamental-ngx-platform-panel.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fdp-panel-actions',\n template: '<ng-content></ng-content>',\n styles: [\n `\n fdp-panel-actions > * {\n margin-left: 0.5rem;\n }\n\n [dir='rtl'] fdp-panel-actions > * {\n margin-left: 0;\n margin-right: 0.5rem;\n }\n `\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class PanelActionsComponent {}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nlet platformPanelContentUniqueId = 0;\n\n@Component({\n selector: 'fdp-panel-content',\n template: `<ng-content></ng-content>`,\n styleUrl: './panel-content.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class PanelContentComponent {\n /**\n * @harmful Potentially bad approach to hardcode css related properties\n * Custom height of the content container.\n */\n @Input()\n contentHeight: string;\n\n /** Id of the host element. */\n @Input()\n @HostBinding('attr.id')\n id: string = 'fdp-panel-content-' + platformPanelContentUniqueId++;\n}\n","import { Injectable } from '@angular/core';\n\nimport { ContentDensity } from '@fundamental-ngx/cdk/utils';\nimport { PlatformConfig } from '@fundamental-ngx/platform/shared';\n\n/**\n * Default options for platform panel\n */\n@Injectable({ providedIn: 'root' })\nexport class PanelConfig {\n /**\n * ARIA label for button when the Panel is collapsed\n */\n expandLabel = 'Expand Panel';\n\n /**\n * ARIA label for button when the Panel is expanded\n */\n collapseLabel = 'Collapse Panel';\n\n /**\n * Content Density of element. 'cozy' | 'compact'\n */\n contentDensity: ContentDensity;\n\n /** @hidden */\n constructor(platformConfig: PlatformConfig) {\n this.contentDensity = platformConfig.contentDensity;\n }\n\n /**\n * Create Provider factory function\n */\n static createProviderFactory(obj: Partial<PanelConfig>): (platformConfig: PlatformConfig) => PanelConfig {\n const useFactory = (platformConfig: PlatformConfig): PanelConfig =>\n Object.assign(new PanelConfig(platformConfig), obj);\n return useFactory;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\nimport { BaseComponent } from '@fundamental-ngx/platform/shared';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n ContentDensityDirective,\n ContentDensityObserver,\n contentDensityObserverProviders,\n defaultContentDensityObserverConfigs\n} from '@fundamental-ngx/core/content-density';\nimport {\n PanelComponent as CorePanelComponent,\n PanelContentDirective,\n PanelTitleDirective\n} from '@fundamental-ngx/core/panel';\nimport { PanelContentComponent } from './panel-content/panel-content.component';\nimport { PanelConfig } from './panel.config';\n\n/** Panel change event instance */\nexport class PanelExpandChangeEvent {\n /**\n * Panel expand change event\n * @param source Panel component\n * @param payload Panel expand state\n */\n constructor(\n public source: PanelComponent,\n public payload: boolean\n ) {}\n}\n\nlet platformPanelTitleUniqueId = 0;\n\n/**\n * Fundamental Panel component\n *\n * ```html\n * <fdp-panel title=\"Panel Header\">\n * <fdp-panel-content>\n * Panel Content\n * </fdp-panel-content>\n * </fdp-panel>\n * ```\n *\n * */\n@Component({\n selector: 'fdp-panel',\n templateUrl: './panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n contentDensityObserverProviders({\n defaultContentDensity: {\n useFactory: (panelConfig: PanelConfig) =>\n panelConfig.contentDensity || defaultContentDensityObserverConfigs.defaultContentDensity,\n deps: [PanelConfig]\n }\n })\n ],\n imports: [CorePanelComponent, ContentDensityDirective, PanelTitleDirective, PanelContentDirective]\n})\nexport class PanelComponent extends BaseComponent implements OnInit, OnChanges {\n /**\n * sets Panel title.\n */\n @Input()\n title: string;\n\n /**\n * Whether the Panel Content is expanded\n */\n @Input()\n expanded = true;\n\n /**\n * Whether the Panel is expandable\n */\n @Input()\n expandable = true;\n\n /**\n * ARIA label for button when the Panel is collapsed\n */\n @Input()\n expandLabel: string = this._panelConfig.expandLabel;\n\n /**\n * ARIA label for button when the Panel is expanded\n */\n @Input()\n collapseLabel: string = this._panelConfig.collapseLabel;\n\n /** Output event triggered when the Expand button is clicked */\n @Output()\n panelExpandChange: EventEmitter<PanelExpandChangeEvent> = new EventEmitter<PanelExpandChangeEvent>();\n\n /** @hidden */\n @ContentChild(PanelContentComponent)\n _panelContentComponent: Nullable<PanelContentComponent>;\n\n /** @hidden */\n @ViewChild(PanelTitleDirective)\n _panelTitleDirective: Nullable<PanelTitleDirective>;\n\n /**\n * @hidden\n * Button label based on the current state\n */\n _expandAriaLabel: string;\n\n /** @hidden id of the title element */\n _titleId: string = 'fdp-panel-title-' + platformPanelTitleUniqueId++;\n\n /** @hidden */\n constructor(\n protected _panelConfig: PanelConfig,\n readonly contentDensityObserver: ContentDensityObserver\n ) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._calculateExpandAriaLabel();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.expanded) {\n this._calculateExpandAriaLabel();\n }\n }\n\n /** Handles expanded/collapsed event */\n onExpandedChange(expanded: boolean): void {\n this.expanded = expanded;\n const event = new PanelExpandChangeEvent(this, expanded);\n this.panelExpandChange.emit(event);\n this._calculateExpandAriaLabel();\n }\n\n /**\n * @hidden\n * Calculate expandAriaLabel based on panel state\n */\n private _calculateExpandAriaLabel(): void {\n this._expandAriaLabel = this.expanded ? this.collapseLabel : this.expandLabel;\n }\n}\n","<fd-panel\n [fdContentDensity]=\"contentDensityObserver.value\"\n [expanded]=\"expanded\"\n [fixed]=\"!expandable\"\n [expandAriaLabel]=\"_expandAriaLabel\"\n [expandAriaLabelledBy]=\"_titleId\"\n [attr.aria-disabled]=\"disabled\"\n (expandedChange)=\"onExpandedChange($event)\"\n>\n <h5 [id]=\"_titleId\" fd-panel-title>{{ title }}</h5>\n\n <ng-content select=\"fdp-panel-actions\"></ng-content>\n\n <div\n fd-panel-content\n [id]=\"_panelContentComponent?.id\"\n [height]=\"_panelContentComponent?.contentHeight || null\"\n [ariaLabelledBy]=\"_panelTitleDirective?.id || null\"\n >\n <ng-content select=\"fdp-panel-content\"></ng-content>\n </div>\n</fd-panel>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { PanelActionsComponent } from './panel-actions.component';\nimport { PanelContentComponent } from './panel-content/panel-content.component';\nimport { PanelComponent } from './panel.component';\n\nconst components = [PanelComponent, PanelContentComponent, PanelActionsComponent, ContentDensityModule];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PanelConfig","CorePanelComponent"],"mappings":"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"}
|