{"version":3,"file":"fundamental-ngx-core-form.mjs","sources":["../../../../libs/core/form/fieldset/fieldset.component.ts","../../../../libs/core/form/fieldset/fieldset.module.ts","../../../../libs/core/form/form-item-control/form-item-control.ts","../../../../libs/core/form/form-control/form-control.component.ts","../../../../libs/core/form/form-control/form-control.module.ts","../../../../libs/core/form/form-group/form-group.component.ts","../../../../libs/core/form/form-group/form-group.module.ts","../../../../libs/core/form/form-header/form-header.component.ts","../../../../libs/core/form/form-header/form-header.module.ts","../../../../libs/core/form/form-input-message-group/form-input-message-group.component.ts","../../../../libs/core/form/form-input-message-group/form-input-message-group.component.html","../../../../libs/core/form/form-input-message-group/form-input-message-group.module.ts","../../../../libs/core/form/form-label/form-label.component.ts","../../../../libs/core/form/form-label/form-label.component.html","../../../../libs/core/form/form-item/form-item.component.ts","../../../../libs/core/form/form-item/form-item.module.ts","../../../../libs/core/form/form-label/form-label.module.ts","../../../../libs/core/form/form-legend/form-legend.directive.ts","../../../../libs/core/form/form-legend/form-legend.module.ts","../../../../libs/core/form/form-message/constants.ts","../../../../libs/core/form/form-message/form-message.component.ts","../../../../libs/core/form/form-message/form-message.module.ts","../../../../libs/core/form/form-message/popover-form-message.service.ts","../../../../libs/core/form/form.module.ts","../../../../libs/core/form/fundamental-ngx-core-form.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n/**\n * Used for easily displaying forms with a margin. Not necessary for fundamental forms to be functional.\n *\n * ```html\n * <fieldset fd-fieldset>\n *     <div fd-form-item>\n *         ...\n *     </div>\n * </fieldset>\n * ```\n */\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[fd-fieldset]',\n    template: `<ng-content></ng-content>`,\n    styleUrl: './fieldset.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class FieldsetComponent {\n    /** @hidden */\n    @HostBinding('class.fd-fieldset')\n    fdFieldClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { FieldsetComponent } from './fieldset.component';\n\n/**\n * @deprecated\n * Import `FieldsetComponent` directly as a standalone component.\n */\n@NgModule({\n    imports: [FieldsetComponent],\n    exports: [FieldsetComponent]\n})\nexport class FieldSetModule {}\n","import { ElementRef, InjectionToken, InputSignal, Provider, Type } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n/** An injection token, that should be used with all controls, that can be put inside `fd-form-item` */\nexport const FORM_ITEM_CONTROL = new InjectionToken<FormItemControl>('Form Item Control');\n\n/** Utility function to provide `FORM_ITEM_CONTROL` injection token  */\nexport function registerFormItemControl(control: Type<FormItemControl>): Provider {\n    return {\n        provide: FORM_ITEM_CONTROL,\n        useExisting: control,\n        multi: true\n    };\n}\n\n/** Set of fields of FormItemControl component */\nexport interface FormItemControl {\n    ariaLabelledBy: Nullable<string> | InputSignal<Nullable<string>>;\n    elmRef?: ElementRef;\n}\n","import {\n    Attribute,\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    HostBinding,\n    Input,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    ViewEncapsulation\n} from '@angular/core';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { Subscription } from 'rxjs';\nimport { FormItemControl, registerFormItemControl } from '../form-item-control/form-item-control';\n\n/**\n * Directive intended for use on form controls.\n *\n * ```html\n * <input type=\"text\" fd-form-control />\n * ```\n */\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'input[fd-form-control], textarea[fd-form-control]',\n    template: ` <ng-content></ng-content>`,\n    styleUrl: './form-control.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [registerFormItemControl(FormControlComponent), contentDensityObserverProviders()]\n})\nexport class FormControlComponent implements CssClassBuilder, OnInit, OnChanges, OnDestroy, FormItemControl {\n    /**\n     *  The state of the form control - applies css classes.\n     *  Can be `success`, `error`, `warning`, `information` or blank for default.\n     */\n    @Input()\n    state: FormStates | null = null;\n\n    /** Type of the form control. */\n    @HostBinding('attr.type')\n    @Input()\n    type: string;\n\n    /** user's custom classes */\n    @Input()\n    class: string;\n\n    /** aria-label for form-control. */\n    @Input()\n    ariaLabel: string | undefined | null;\n\n    /** aria-label for form-control. */\n    @Input()\n    ariaLabelledBy: string | undefined | null;\n\n    /** @hidden */\n    @HostBinding('attr.aria-label')\n    protected get ariaLabelBinding(): string | null {\n        return this.ariaLabelAttr || this.ariaLabel || null;\n    }\n\n    /** @hidden */\n    @HostBinding('attr.aria-labelledby')\n    protected get ariaLabelledByBinding(): string | null {\n        return this.ariaLabelledByAttr || this.ariaLabelledBy || null;\n    }\n\n    /** @hidden */\n    private _subscriptions = new Subscription();\n\n    /** @hidden */\n    constructor(\n        public elementRef: ElementRef<HTMLInputElement | HTMLTextAreaElement>,\n        _contentDensityObserver: ContentDensityObserver,\n        @Attribute('aria-label') private ariaLabelAttr: string,\n        @Attribute('aria-labelledby') private ariaLabelledByAttr: string\n    ) {\n        _contentDensityObserver.subscribe();\n    }\n\n    /**\n     * @hidden\n     * CssClassBuilder interface implementation\n     * function must return single string\n     * function is responsible for order which css classes are applied\n     */\n    @applyCssClass\n    buildComponentCssClass(): string[] {\n        const tagName = this.elementRef.nativeElement.tagName.toLowerCase();\n        return [\n            this.state ? 'is-' + this.state : '',\n            this.class,\n            tagName === 'textarea' ? 'fd-textarea' : tagName === 'input' ? 'fd-input' : ''\n        ];\n    }\n\n    /** @hidden */\n    ngOnInit(): void {\n        this.buildComponentCssClass();\n    }\n\n    /** @hidden */\n    ngOnChanges(): void {\n        this.buildComponentCssClass();\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._subscriptions.unsubscribe();\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { FormControlComponent } from './form-control.component';\n\n/**\n * @deprecated\n * Import `FormControlComponent` directly as a standalone component.\n */\n@NgModule({\n    imports: [FormControlComponent],\n    exports: [FormControlComponent]\n})\nexport class FormControlModule {}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    HostBinding,\n    Input,\n    OnChanges,\n    OnInit,\n    ViewEncapsulation,\n    booleanAttribute\n} from '@angular/core';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Represents a form group element.\n *\n * ```html\n * <fd-form-group>\n *     <div fd-form-item>\n *         <input fd-form-control type=\"radio\" checked>\n *         <fd-form-label>Option One</fd-form-label>\n *     </div>\n * </fd-form-group>\n * ```\n */\n@Component({\n    selector: 'fd-form-group',\n    template: `<ng-content></ng-content>`,\n    encapsulation: ViewEncapsulation.None,\n    styleUrl: './form-group.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormGroupComponent implements CssClassBuilder, OnChanges, OnInit {\n    /** @hidden */\n    @HostBinding('class.fd-form-group')\n    fdFormGroupClass = true;\n\n    /** Determines if form items should be displayed inline or not\n     * Default value is set to false;\n     */\n    @Input()\n    isInline: boolean;\n\n    /** Adds gap spacing between form items. */\n    @Input({ transform: booleanAttribute })\n    withSpacing = false;\n\n    /** @hidden */\n    class: string;\n\n    /** @hidden */\n    constructor(public elementRef: ElementRef) {}\n\n    /** This method is responsible for building a css class based on current state\n     *  It is implementation of CssClassBuilder interface and\n     *  should be used with @applyCssClass decorator\n     */\n    @applyCssClass\n    buildComponentCssClass(): string[] {\n        return [this.isInline ? 'fd-form-group--inline' : '', this.withSpacing ? 'fd-form-group--with-spacing' : ''];\n    }\n\n    /** @hidden */\n    ngOnChanges(): void {\n        this.buildComponentCssClass();\n    }\n\n    /** @hidden */\n    ngOnInit(): void {\n        this.buildComponentCssClass();\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { FormGroupComponent } from './form-group.component';\n\n/**\n * @deprecated\n * Import `FormGroupComponent` directly as a standalone component.\n */\n@NgModule({\n    imports: [FormGroupComponent],\n    exports: [FormGroupComponent]\n})\nexport class FormGroupModule {}\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n/**\n *\n * ```html\n * <h4 fd-form-header>Form Header</h4>\n * ```\n */\n@Component({\n    // TODO to be discussed\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[fd-form-header]',\n    template: `<span class=\"fd-form-header__text\"><ng-content></ng-content></span>`,\n    styleUrl: './form-header.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class FormHeaderComponent {\n    /** @hidden */\n    @HostBinding('class.fd-form-header')\n    fdFormHeaderClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { FormHeaderComponent } from './form-header.component';\n\n/**\n * @deprecated\n * Import `FormHeaderComponent` directly as a standalone component.\n */\n@NgModule({\n    imports: [FormHeaderComponent],\n    exports: [FormHeaderComponent]\n})\nexport class FormHeaderModule {}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    ViewChild,\n    ViewEncapsulation,\n    inject\n} from '@angular/core';\nimport {\n    PopoverBodyComponent,\n    PopoverComponent,\n    PopoverControlComponent,\n    TriggerConfig\n} from '@fundamental-ngx/core/popover';\n\nimport { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';\n\n@Component({\n    selector: 'fd-form-input-message-group',\n    templateUrl: './form-input-message-group.component.html',\n    styleUrl: './form-input-message-group.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [PopoverComponent, PopoverControlComponent, PopoverBodyComponent, A11yModule]\n})\nexport class FormInputMessageGroupComponent {\n    /**\n     * To allow user to determine what event he wants to trigger the messages to show\n     * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp).\n     */\n    @Input()\n    triggers: (string | TriggerConfig)[] = ['focusin', 'focusout'];\n\n    /**\n     * Allows the user to decide if he wants to keep the error message after they click outside\n     * Whether the popover should close when a click is made outside its boundaries.\n     */\n    @Input()\n    closeOnOutsideClick = false;\n\n    /**\n     * Preset options for the message body width.\n     * * `at-least` will apply a minimum width to the body equivalent to the width of the control.\n     * * `equal` will apply a width to the body equivalent to the width of the control.\n     * * Leave blank for no effect.\n     */\n    @Input()\n    fillControlMode: PopoverFillMode;\n\n    /** Whether the popover should have an arrow. */\n    @Input()\n    noArrow = true;\n\n    /** Whether the popover should close when the escape key is pressed. */\n    @Input()\n    closeOnEscapeKey = false;\n\n    /** The placement of the popover. It can be one of: top, top-start, top-end, bottom,\n     *  bottom-start, bottom-end, right, right-start, right-end, left, left-start, left-end. */\n    @Input()\n    placement: Placement = 'bottom-start';\n\n    /**\n     * @experimental\n     * Container element, in which form message popover will be rendered.\n     */\n    @Input()\n    placementContainer: 'body' | 'self' = 'body';\n\n    /** Whether the message is open. Can be used through two-way binding. */\n    @Input()\n    isOpen = false;\n\n    /**\n     * Whether the popover should prevent page scrolling when space key is pressed.\n     **/\n    @Input()\n    preventSpaceKeyScroll = true;\n\n    /** Event emitted when the state of the isOpen property changes. */\n    @Output()\n    isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n    /** @hidden */\n    @ViewChild('popoverPlacementContainer', { static: false, read: ElementRef })\n    _popoverPlacementContainer: ElementRef | null;\n\n    /** @hidden */\n    @ViewChild('popover')\n    _popover: PopoverComponent;\n\n    /** @hidden */\n    readonly _elementRef = inject(ElementRef);\n\n    /**\n     * Function is called every time message changes isOpen attribute\n     */\n    public openChanged(isOpen: boolean): void {\n        this.isOpenChange.emit(isOpen);\n    }\n}\n","@if (placementContainer === 'self') {\n    <div #popoverPlacementContainer class=\"fd-form-input-message__container\"></div>\n}\n<fd-popover\n    class=\"fd-form-input-message-group\"\n    additionalBodyClass=\"fd-popover__body--input-message-group\"\n    #popover\n    [placement]=\"placement\"\n    [triggers]=\"triggers\"\n    [noArrow]=\"noArrow\"\n    [closeOnEscapeKey]=\"closeOnEscapeKey\"\n    [fillControlMode]=\"fillControlMode\"\n    [closeOnOutsideClick]=\"closeOnOutsideClick\"\n    [disableScrollbar]=\"true\"\n    [isOpen]=\"isOpen\"\n    [placementContainer]=\"_popoverPlacementContainer\"\n    [preventSpaceKeyScroll]=\"preventSpaceKeyScroll\"\n    (isOpenChange)=\"openChanged($event)\"\n>\n    <fd-popover-control>\n        <ng-content></ng-content>\n    </fd-popover-control>\n    <fd-popover-body>\n        <ng-content select=\"fd-form-message\"></ng-content>\n    </fd-popover-body>\n</fd-popover>\n","import { NgModule } from '@angular/core';\nimport { FormInputMessageGroupComponent } from './form-input-message-group.component';\n\n/**\n * @deprecated\n * Import `FormInputMessageGroupComponent` directly as a standalone component.\n */\n@NgModule({\n    imports: [FormInputMessageGroupComponent],\n    exports: [FormInputMessageGroupComponent]\n})\nexport class FormInputMessageGroupModule {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    HostBinding,\n    Input,\n    input,\n    OnChanges,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { InlineHelpDirective } from '@fundamental-ngx/core/inline-help';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { TriggerConfig } from '@fundamental-ngx/core/popover';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { InlineHelpFormPlacement } from '../inline-help-placement.type';\n\nlet formLabelIdCount = 0;\n\n/**\n * Label to be linked to a form control.\n *\n * ```html\n * <label fd-form-label for=\"input-id\">Label Text</label>\n * <input fd-form-control type=\"text\" id=\"input-id\" />\n * ```\n */\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[fd-form-label]',\n    templateUrl: './form-label.component.html',\n    styleUrl: './form-label.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [LinkComponent, IconComponent, InlineHelpDirective, NgTemplateOutlet],\n    host: {\n        '[class.fd-form-label--disabled]': 'disabled()'\n    }\n})\nexport class FormLabelComponent implements OnChanges {\n    /** Whether form is required. */\n    @Input()\n    required = false;\n\n    /** Whether label text should be appended with colon. */\n    @Input()\n    colon = false;\n\n    /** Align label on end. */\n    @Input()\n    @HostBinding('class.fd-form-label__wrapper--align-end')\n    alignLabelEnd = false;\n\n    /** Inline help content. Could be just a string or complex template */\n    @Input()\n    inlineHelpContent: Nullable<string | TemplateRef<any>> = null;\n\n    /** Glyph of icon triggering inline help. */\n    @Input()\n    inlineHelpGlyph = 'question-mark';\n\n    /** Trigger event names for the inline help. */\n    @Input()\n    inlineHelpTriggers: (string | TriggerConfig)[] = [\n        'mouseenter',\n        'mouseleave',\n        'focusin',\n        'focusout',\n        { trigger: 'click', openAction: true, closeAction: true }\n    ];\n\n    /**\n     * The placement of the inline help.\n     * It can be one of:\n     * top, top-start, top-end, bottom, bottom-start, bottom-end,\n     * right, right-start, right-end, left, left-start, left-end.\n     */\n    @Input()\n    inlineHelpBodyPlacement: Placement;\n\n    /** If inline help trigger icon should be placed after, or before text. */\n    @Input()\n    inlineHelpPlacement: InlineHelpFormPlacement = 'after';\n\n    /** Whether to allow the text of the form label to wrap. */\n    @Input()\n    allowWrap = false;\n\n    /** Inline help label. */\n    @Input()\n    set inlineHelpLabel(label: string) {\n        this._inlineHelpLabel = label;\n    }\n    get inlineHelpLabel(): string {\n        if (this._inlineHelpLabel) {\n            return this._inlineHelpLabel;\n        }\n        return typeof this.inlineHelpContent === 'string' ? this.inlineHelpContent : '';\n    }\n\n    /** @hidden */\n    @HostBinding('class.fd-form-label__wrapper')\n    defaultClass = true;\n\n    /** @hidden */\n    @HostBinding('class.fd-form-label__wrapper--inline-help')\n    inlineHelpClass = true;\n\n    /** @hidden */\n    @HostBinding('class.fd-form-label__wrapper--inline-help--after')\n    inlineHelpAfter = true;\n\n    /** @hidden */\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    @Input('id')\n    @HostBinding('id')\n    set formLabelId(value: Nullable<string>) {\n        this._formLabelId = value || this._formLabelId;\n    }\n    get formLabelId(): string {\n        return this._formLabelId;\n    }\n\n    /** Whether the label is disabled. */\n    readonly disabled = input(false, { transform: booleanAttribute });\n\n    /** Whether this label is a unit description (e.g., \"kg\", \"USD\"). */\n    readonly unitDescription = input(false, { transform: booleanAttribute });\n\n    /** Whether this label stands alone (self-centering, no end margin). */\n    readonly independent = input(false, { transform: booleanAttribute });\n\n    /** @hidden */\n    private _formLabelId = `fd-form-label-${++formLabelIdCount}`;\n\n    /** @hidden */\n    private _inlineHelpLabel?: string;\n\n    /** @hidden */\n    ngOnChanges(): void {\n        this.inlineHelpClass = !!this.inlineHelpContent;\n        this.inlineHelpAfter = !!this.inlineHelpContent && this.inlineHelpPlacement === 'after';\n    }\n}\n","<ng-template #inlineHelpRef>\n    <span fd-link [undecorated]=\"true\" class=\"fd-form-label__inline-help\">\n        @if (inlineHelpContent) {\n            <fd-icon\n                class=\"fd-form-label__help\"\n                [class.fd-form-label__help--after]=\"inlineHelpPlacement === 'after'\"\n                [glyph]=\"inlineHelpGlyph\"\n                [triggers]=\"inlineHelpTriggers\"\n                [fd-inline-help]=\"inlineHelpContent\"\n                [ariaLabel]=\"inlineHelpLabel\"\n                [placement]=\"inlineHelpBodyPlacement\"\n                [tabindex]=\"0\"\n            ></fd-icon>\n        }\n    </span>\n</ng-template>\n@if (inlineHelpPlacement === 'before' && inlineHelpContent) {\n    <ng-template [ngTemplateOutlet]=\"inlineHelpRef\"></ng-template>\n}\n<span\n    class=\"fd-form-label\"\n    [class.fd-form-label--wrap]=\"allowWrap\"\n    [class.fd-form-label--required]=\"required\"\n    [class.fd-form-label--colon]=\"colon\"\n    [class.fd-form-label--unit-description]=\"unitDescription()\"\n    [class.fd-form-label--stand-alone]=\"independent()\"\n    [attr.aria-disabled]=\"disabled() || null\"\n>\n    <ng-content></ng-content>\n</span>\n@if (inlineHelpPlacement === 'after' && inlineHelpContent) {\n    <ng-template [ngTemplateOutlet]=\"inlineHelpRef\"></ng-template>\n}\n","import {\n    AfterContentInit,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    HostBinding,\n    Input,\n    ViewEncapsulation\n} from '@angular/core';\nimport { FORM_ITEM_CONTROL, FormItemControl } from '../form-item-control/form-item-control';\nimport { FormLabelComponent } from '../form-label/form-label.component';\n\n/**\n * Directive to be applied to the parent of a form control.\n *\n * ```html\n * <div fd-form-item>\n *     <input fd-form-control type=\"text\" />\n * </div>\n * ```\n */\n@Component({\n    // TODO to be discussed\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[fd-form-item]',\n    template: `<ng-content></ng-content>`,\n    styleUrl: './form-item.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormItemComponent implements AfterContentInit {\n    /** Whether the form item is inline. */\n    @Input()\n    @HostBinding('class.fd-form-item--inline')\n    isInline = false;\n\n    /** Whether the form item is horizontal. */\n    @Input()\n    @HostBinding('class.fd-form-item--horizontal')\n    horizontal = false;\n\n    /** @hidden */\n    @HostBinding('class.fd-form-item')\n    fdFormItemClass = true;\n\n    /** @hidden */\n    @ContentChild(FormLabelComponent)\n    formLabel?: FormLabelComponent;\n\n    /** @hidden */\n    @ContentChild(FORM_ITEM_CONTROL)\n    formItemControl?: FormItemControl;\n\n    /** @hidden */\n    ngAfterContentInit(): void {\n        if (this.formLabel && this.formItemControl && !this.formItemControl.ariaLabelledBy) {\n            this.formItemControl.ariaLabelledBy = this.formLabel.formLabelId;\n        }\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { FormItemComponent } from './form-item.component';\n\n/**\n * @deprecated\n * Import `FormItemComponent` directly as a standalone component.\n */\n@NgModule({\n    imports: [FormItemComponent],\n    exports: [FormItemComponent]\n})\nexport class FormItemModule {}\n","import { NgModule } from '@angular/core';\nimport { FormLabelComponent } from './form-label.component';\n\n/**\n * @deprecated\n * Import `FormLabelComponent` directly as a standalone component.\n */\n@NgModule({\n    imports: [FormLabelComponent],\n    exports: [FormLabelComponent]\n})\nexport class FormLabelModule {}\n","import { booleanAttribute, Directive, input } from '@angular/core';\n\n/**\n * Applies css to a legend html element.\n *\n * <legend fd-form-legend>Legend</legend>\n */\n@Directive({\n    // TODO to be discussed\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-form-legend]',\n    host: {\n        class: 'fd-fieldset__legend',\n        '[class.is-disabled]': 'disabled()'\n    }\n})\nexport class FormLegendDirective {\n    /** Whether the legend is disabled. */\n    readonly disabled = input(false, { transform: booleanAttribute });\n}\n","import { NgModule } from '@angular/core';\nimport { FormLegendDirective } from './form-legend.directive';\n\n/**\n * @deprecated\n * Import `FormLegendDirective` directly as a standalone directive.\n */\n@NgModule({\n    imports: [FormLegendDirective],\n    exports: [FormLegendDirective]\n})\nexport class FormLegendModule {}\n","import { FormStates } from '@fundamental-ngx/cdk/forms';\n\nexport const CSS_CLASS_NAME = {\n    message: 'fd-form-message',\n    messageStatic: 'fd-form-message--static',\n    messageEmbedded: 'fd-form-message--embedded',\n    messageSuccess: 'fd-form-message--success',\n    messageError: 'fd-form-message--error',\n    messageWarning: 'fd-form-message--warning',\n    messageInformation: 'fd-form-message--information'\n};\n\n/** Get form message CSS class accordingly to its type */\nexport function getTypeClassName(size: FormStates): string | null {\n    switch (size) {\n        case 'error':\n            return CSS_CLASS_NAME.messageError;\n        case 'success':\n            return CSS_CLASS_NAME.messageSuccess;\n        case 'warning':\n            return CSS_CLASS_NAME.messageWarning;\n        case 'information':\n            return CSS_CLASS_NAME.messageInformation;\n        default:\n            return null;\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    Input,\n    OnChanges,\n    OnInit,\n    ViewEncapsulation\n} from '@angular/core';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { CssClassBuilder, DynamicComponentService, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { CSS_CLASS_NAME, getTypeClassName } from './constants';\n/**\n * Form message. Intended to be displayed with a form control for validation purposes.\n */\n@Component({\n    selector: 'fd-form-message',\n    template: `<ng-content></ng-content>`,\n    styleUrl: './form-message.component.scss',\n    host: {\n        'aria-live': 'assertive',\n        'aria-atomic': 'true'\n    },\n    providers: [DynamicComponentService],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class FormMessageComponent implements CssClassBuilder, OnInit, OnChanges {\n    /** Type of the message. */\n    @Input()\n    type: FormStates;\n\n    /** Whether message should be in static mode, without popover. It's mostly used for forms component, that contain dropdown */\n    @Input()\n    static = false;\n\n    /**\n     * Whether message is used inside popovers or dialogs.\n     * When it is enabled box shadow is removed and message is expanded to whole container width\n     */\n    @Input()\n    embedded = false;\n\n    /** User's custom classes */\n    @Input()\n    class: string;\n\n    /** @hidden */\n    constructor(public readonly elementRef: ElementRef) {}\n\n    /** @hidden */\n    @applyCssClass\n    buildComponentCssClass(): string[] {\n        return [\n            CSS_CLASS_NAME.message,\n            this.static ? CSS_CLASS_NAME.messageStatic : '',\n            this.embedded ? CSS_CLASS_NAME.messageEmbedded : '',\n            getTypeClassName(this.type),\n            this.class\n        ].filter((v): v is string => !!v);\n    }\n\n    /** @hidden */\n    ngOnChanges(): void {\n        this.buildComponentCssClass();\n    }\n\n    /** @hidden */\n    ngOnInit(): void {\n        this.buildComponentCssClass();\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { FormMessageComponent } from './form-message.component';\n\n/**\n * @deprecated\n * Import `FormMessageComponent` directly as a standalone component.\n */\n@NgModule({\n    imports: [FormMessageComponent],\n    exports: [FormMessageComponent]\n})\nexport class FormMessageModule {}\n","import { ElementRef, Injectable, TemplateRef } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { PopoverService } from '@fundamental-ngx/core/popover';\n\n@Injectable()\nexport class PopoverFormMessageService {\n    /** @hidden */\n    private _message: Nullable<string | TemplateRef<any>>;\n\n    /** @hidden */\n    private _hidden = false;\n\n    /** @hidden */\n    constructor(private _popoverService: PopoverService) {}\n\n    /** @hidden */\n    set message(message: Nullable<string | TemplateRef<any>>) {\n        this._message = message;\n        this._updatePopover();\n    }\n\n    /** @hidden */\n    set triggers(triggers: string[]) {\n        this._popoverService.triggers.set(triggers);\n        this._popoverService._refreshTriggerListeners();\n    }\n\n    /** Initialise popover service with trigger element */\n    init(triggerElement: ElementRef): void {\n        this._popoverService.initialise(triggerElement);\n    }\n\n    /** Forces hidden state onto popover, without any collision with triggering events */\n    hide(): void {\n        this._hidden = true;\n        this._updatePopover();\n    }\n\n    /** Removes hidden state onto popover, without any collision with triggering events */\n    show(): void {\n        this._hidden = false;\n        this._updatePopover();\n    }\n\n    /** @hidden */\n    private _getAdditionalClass(): string[] {\n        return [this._shouldBeHidden() ? 'fd-popover__body--hidden' : ''].filter((v): v is string => !!v);\n    }\n\n    /** @hidden */\n    private _updatePopover(): void {\n        this._popoverService.additionalBodyClass.set(this._getAdditionalClass().join(' '));\n        this._popoverService.updateContent(this._message, null);\n    }\n\n    /** @hidden */\n    private _shouldBeHidden(): boolean {\n        return this._hidden || !this._message;\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { FieldsetComponent } from './fieldset/fieldset.component';\nimport { FormControlComponent } from './form-control/form-control.component';\nimport { FormGroupComponent } from './form-group/form-group.component';\nimport { FormHeaderComponent } from './form-header/form-header.component';\nimport { FormInputMessageGroupComponent } from './form-input-message-group/form-input-message-group.component';\nimport { FormItemComponent } from './form-item/form-item.component';\nimport { FormLabelComponent } from './form-label/form-label.component';\nimport { FormLegendDirective } from './form-legend/form-legend.directive';\nimport { FormMessageComponent } from './form-message/form-message.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [\n        FieldsetComponent,\n        FormControlComponent,\n        FormItemComponent,\n        FormItemComponent,\n        FormLabelComponent,\n        FormHeaderComponent,\n        FormLegendDirective,\n        FormMessageComponent,\n        FormInputMessageGroupComponent,\n        FormGroupComponent\n    ],\n    exports: [\n        FieldsetComponent,\n        FormControlComponent,\n        FormItemComponent,\n        FormItemComponent,\n        FormLabelComponent,\n        FormHeaderComponent,\n        FormLegendDirective,\n        FormMessageComponent,\n        FormInputMessageGroupComponent,\n        FormGroupComponent\n    ]\n})\nexport class FormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}