{"version":3,"file":"fundamental-ngx-core-inline-help.mjs","sources":["../../../../libs/core/inline-help/inline-help.directive.ts","../../../../libs/core/inline-help/inline-help.module.ts","../../../../libs/core/inline-help/fundamental-ngx-core-inline-help.ts"],"sourcesContent":["import {\n    booleanAttribute,\n    computed,\n    Directive,\n    effect,\n    ElementRef,\n    EmbeddedViewRef,\n    inject,\n    input,\n    Renderer2,\n    TemplateRef,\n    ViewContainerRef\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_ICON_COMPONENT } from '@fundamental-ngx/core/icon';\nimport { buildPopoverConfig, PopoverService, TriggerConfig } from '@fundamental-ngx/core/popover';\nimport { Placement } from '@fundamental-ngx/core/shared';\n\nconst INLINE_HELP_CLASS = 'fd-popover__body--inline-help fd-inline-help__content';\nconst INLINE_HELP_ICON_CLASS = 'fd-popover__body--inline-help-with-icon';\n\n/** Default trigger configuration for inline help */\nconst DEFAULT_TRIGGERS: TriggerConfig[] = [\n    { trigger: 'mouseenter', openAction: true, closeAction: false },\n    { trigger: 'mouseleave', openAction: false, closeAction: true },\n    { trigger: 'focusin', openAction: true, closeAction: false },\n    { trigger: 'focusout', openAction: false, closeAction: true }\n];\n\nlet inlineHelpId = 0;\n\n/**\n * The component that represents an inline-help.\n * Inline help is used to display help text in a popover, often inline with headers, body text and form labels.\n */\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])',\n    providers: [PopoverService],\n    host: {\n        '[class.fd-inline-help__trigger]': 'true',\n        '[attr.aria-describedby]': 'bodyId()'\n    }\n})\nexport class InlineHelpDirective {\n    /** Inline help text to display inside generated popover */\n    readonly inlineHelpContent = input<string | TemplateRef<any>>('', { alias: 'fd-inline-help' });\n\n    /** Popover placement */\n    readonly placement = input<Placement | null>(null);\n\n    /**\n     * The trigger events that will open/close the inline help component.\n     * Accepts any HTML DOM Events or TriggerConfig objects.\n     * @default mouseenter/mouseleave and focusin/focusout\n     */\n    readonly triggers = input<(string | TriggerConfig)[]>(DEFAULT_TRIGGERS);\n\n    /** Whether the popover should close when a click is made outside its boundaries. */\n    readonly closeOnOutsideClick = input(false, { transform: booleanAttribute });\n\n    /** Additional CSS class(es) to apply to the popover body. */\n    readonly additionalBodyClass = input<string | null>(null);\n\n    /** Whether the inline help is disabled. */\n    readonly disabled = input(false, { transform: booleanAttribute });\n\n    /** ID for the Inline Help Popover body */\n    readonly bodyId = input(`fd-inline-help-${inlineHelpId++}`);\n\n    /** aria-role for the Inline Help Popover body */\n    readonly bodyRole = input('tooltip');\n\n    /** Whether the popover should have an arrow. */\n    readonly noArrow = input(false, { transform: booleanAttribute });\n\n    /** Whether the popover should close when the escape key is pressed. */\n    readonly closeOnEscapeKey = input(false, { transform: booleanAttribute });\n\n    /** Whether to close the popover on router navigation start. */\n    readonly closeOnNavigation = input(true, { transform: booleanAttribute });\n\n    /** Whether to restore focus to the previously focused element when the popover closes. */\n    readonly restoreFocusOnClose = input(true, { transform: booleanAttribute });\n\n    /** The element to which the overlay is attached. By default it is body. */\n    readonly appendTo = input<ElementRef | Element | null | undefined>(null);\n\n    /** Whether position should remain fixed when approaching page corners. */\n    readonly fixedPosition = input(false, { transform: booleanAttribute });\n\n    /** Maximum width of popover body in px. */\n    readonly maxWidth = input<number | null | undefined>(null);\n\n    /** @hidden Combined internal + user-provided body classes. */\n    readonly combinedBodyClass = computed(() => {\n        const parts = [this._additionalBodyClass];\n        const userClass = this.additionalBodyClass();\n        if (userClass) {\n            parts.push(userClass);\n        }\n        return parts.join(' ');\n    });\n\n    /** @hidden Popover configuration computed from all inputs. */\n    readonly popoverConfig = buildPopoverConfig({\n        placement: () => this.placement() ?? 'bottom',\n        triggers: this.triggers,\n        noArrow: this.noArrow,\n        closeOnEscapeKey: this.closeOnEscapeKey,\n        closeOnOutsideClick: this.closeOnOutsideClick,\n        closeOnNavigation: this.closeOnNavigation,\n        restoreFocusOnClose: this.restoreFocusOnClose,\n        appendTo: this.appendTo,\n        fixedPosition: this.fixedPosition,\n        maxWidth: this.maxWidth,\n        additionalBodyClass: this.combinedBodyClass,\n        disabled: this.disabled,\n        bodyRole: this.bodyRole,\n        bodyId: this.bodyId\n    });\n\n    /** @hidden */\n    private readonly _popoverService = inject(PopoverService);\n\n    /** @hidden */\n    private readonly _elementRef = inject(ElementRef);\n\n    /** @hidden */\n    private readonly _renderer = inject(Renderer2);\n\n    /** @hidden */\n    private readonly _viewContainerRef = inject(ViewContainerRef);\n\n    /** @hidden */\n    private readonly _icon = inject(FD_ICON_COMPONENT, { optional: true, self: true });\n\n    /** @hidden */\n    private _additionalBodyClass = '';\n\n    /** @hidden */\n    private _srViewRef: EmbeddedViewRef<any> | null = null;\n\n    /** @hidden */\n    private _initialised = false;\n\n    /** @hidden */\n    constructor() {\n        this._applyAdditionalInlineHelpClass();\n\n        // Effect to initialise and reactively update the popover config\n        effect(() => {\n            const config = this.popoverConfig();\n            if (!this._initialised) {\n                this._popoverService.initialise(this._elementRef, config);\n                this._initialised = true;\n            } else {\n                this._popoverService.refreshConfiguration(config);\n            }\n        });\n\n        // Effect to watch for content changes\n        effect(() => {\n            const content = this.inlineHelpContent();\n            const text = typeof content === 'string' ? content : null;\n            const template = content instanceof TemplateRef ? content : null;\n\n            this._popoverService.updateContent(text, template);\n            this._setupScreenreaderElement(content);\n        });\n    }\n\n    /** @hidden */\n    private _applyAdditionalInlineHelpClass(): void {\n        let classes = INLINE_HELP_CLASS;\n\n        // If connected to the icon, but not button, then apply additional class\n        // That will change the arrow's position a bit\n        if (this._icon) {\n            classes += ' ' + INLINE_HELP_ICON_CLASS;\n        }\n\n        this._additionalBodyClass = classes;\n    }\n\n    /** @hidden */\n    private _setupScreenreaderElement(content: string | Nullable<TemplateRef<any>>): void {\n        this._viewContainerRef.clear();\n\n        // Destroy previous embedded view if any\n        if (this._srViewRef) {\n            this._srViewRef.destroy();\n            this._srViewRef = null;\n        }\n\n        let srElement = this._renderer.createElement('span');\n        if (typeof content === 'string') {\n            srElement.innerText = content;\n        } else if (content) {\n            this._srViewRef = content.createEmbeddedView(null);\n            if (this._srViewRef.rootNodes[0] instanceof Text) {\n                srElement.innerText = this._srViewRef.rootNodes[0].textContent;\n            } else {\n                srElement = this._srViewRef.rootNodes[0];\n            }\n        }\n\n        if (srElement.style) {\n            srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;\n        }\n        this._renderer.appendChild(this._elementRef.nativeElement, srElement);\n    }\n}\n","import { NgModule } from '@angular/core';\n\nimport { InlineHelpDirective } from './inline-help.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [InlineHelpDirective],\n    exports: [InlineHelpDirective]\n})\nexport class InlineHelpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}