import { CdkConnectedOverlay, ScrollStrategy } from '@angular/cdk/overlay'; import { ElementRef, TemplateRef } from '@angular/core'; import { KbqComponentColors, PopUpPlacements } from '@koobiq/components/core'; import { KbqDropdownTrigger } from '@koobiq/components/dropdown'; import { KbqFormField, KbqLabel } from '@koobiq/components/form-field'; import { KbqTooltipTrigger } from '@koobiq/components/tooltip'; import * as i0 from "@angular/core"; import * as i1 from "@angular/cdk/a11y"; export type KbqInlineEditMode = 'view' | 'edit'; /** @docs-private */ export declare class KbqFocusRegionItem { readonly tabOut: import("@angular/core").OutputEmitterRef; protected isFocused: boolean; protected onTabOut(event: KeyboardEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** Directive for easy using styles of inline edit placeholder publicly. */ export declare class KbqInlineEditPlaceholder { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * This directive enhances element acting as dropdown trigger, * visually indicating the active state with the `kbq-active` class. * Also, it prevents click/keydown events from being propagated to disable mode toggling of parent component. */ export declare class KbqInlineEditMenu { /** @docs-private */ protected readonly dropdownTrigger: KbqDropdownTrigger | null; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Customizable component that enables edit-in-place logic for specified control and it's view. * This component is projecting edit/view mode templates and adds keyboard/pointer handlers. * Edit mode opens in a positioned overlay that matches the view mode width or can be customized. */ export declare class KbqInlineEdit { private readonly overlay; private readonly document; private readonly resizeObserver; protected readonly elementRef: ElementRef; /** * Whether to show save/cancel action buttons in edit mode. * @default false */ readonly showActions: import("@angular/core").InputSignalWithTransform; /** * Whether to automatically show validation error tooltips on save attempts. * @default true */ readonly showTooltipOnError: import("@angular/core").InputSignalWithTransform; /** Custom validation tooltip message. */ readonly validationTooltip: import("@angular/core").InputSignal | undefined>; /** * Disables the component, preventing interaction and mode switching. Only allows menu dropdown. * @default false */ readonly disabled: import("@angular/core").InputSignalWithTransform; /** Custom width in pixels for the edit mode overlay. Auto-calculated if not set. */ readonly editModeWidth: import("@angular/core").InputSignalWithTransform; /** User-defined tooltip placement */ readonly tooltipPlacement: import("@angular/core").InputSignal; /** Classes to be passed to the inline edit panel. */ readonly overlayPanelClass: import("@angular/core").InputSignal; /** Handler function to retrieve the current value */ readonly getValueHandler: import("@angular/core").InputSignal<(() => unknown) | undefined>; /** Handler function to update the value */ readonly setValueHandler: import("@angular/core").InputSignal<((value: any) => void) | undefined>; /** Customizable function that checks if saving on enter available. */ readonly canSaveOnEnter: import("@angular/core").InputSignal<(event: KeyboardEvent) => boolean>; /** * CSS selectors for elements in view mode that should handle clicks instead of opening edit mode. * Override to replace or extend the default list. * * @example * `` */ readonly interactiveSelectors: import("@angular/core").InputSignal; /** Emitted when the inline edit is saved successfully. */ protected readonly saved: import("@angular/core").OutputEmitterRef; /** Emitted when the inline edit is canceled and changes are discarded. */ protected readonly canceled: import("@angular/core").OutputEmitterRef; /** Emitted when mode switched to edit/view */ protected readonly modeChange: import("@angular/core").OutputEmitterRef; /** @docs-private */ protected readonly menu: import("@angular/core").Signal; /** @docs-private */ protected readonly label: import("@angular/core").Signal; /** @docs-private */ protected readonly formFieldRef: import("@angular/core").Signal; /** @docs-private */ protected readonly formFieldRefList: import("@angular/core").Signal; /** @docs-private */ protected overlayOrigin: HTMLElement; /** @docs-private */ protected readonly tooltipTrigger: import("@angular/core").Signal; /** @docs-private */ protected readonly viewContainer: import("@angular/core").Signal>; /** @docs-private */ protected readonly overlayDir: import("@angular/core").Signal; /** @docs-private */ protected readonly regionItems: import("@angular/core").Signal; /** @docs-private */ protected readonly mode: import("@angular/core").WritableSignal; /** @docs-private */ protected readonly overlayWidth: import("@angular/core").WritableSignal; /** @docs-private */ protected readonly scrollStrategy: import("@angular/core").WritableSignal; /** @docs-private */ readonly modeAsReadonly: import("@angular/core").Signal; /** @docs-private */ protected readonly className: import("@angular/core").Signal; /** @docs-private */ protected readonly isEditMode: import("@angular/core").Signal; /** @docs-private */ protected readonly tabIndex: import("@angular/core").Signal<0 | -1>; /** @docs-private */ protected readonly placements: typeof PopUpPlacements; /** @docs-private */ protected readonly colors: typeof KbqComponentColors; private initialValue; constructor(); /** Manually switch mode */ toggleMode(): void; /** @docs-private */ protected onClick(event: Event): void; /** @docs-private */ protected onAttach(): void; /** @docs-private */ protected save($event?: Event): void; /** @docs-private */ protected cancel(): void; /** @docs-private */ protected onOverlayKeydown(event: KeyboardEvent): void; /** * Block propagation of overlay outside click. * Used to prevent reopening when target is inline edit itself. * @docs-private */ protected onOverlayOutsideClick($event: Event): void; private isInteractiveElement; /** * Sets up Tab key listeners on region items. * Single item: Tab moves to next edit. * Multiple items: Shift+Tab on first or Tab on last moves to next edit. */ private setOverlayKeydownListener; private saveAndFocusNextInlineEdit; private isInvalid; private getValue; private setValue; private coerceControl; private setOverlayWidth; private openPanel; private getInputNativeElement; private markAllAsTouched; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }