{"version":3,"file":"koobiq-components-core.mjs","sources":["../../../packages/components/core/animation/animation.ts","../../../packages/components/core/animation/fade-animations.ts","../../../packages/components/core/animation/select-animations.ts","../../../packages/components/core/common-behaviors/clipboard.ts","../../../packages/components/core/common-behaviors/color.ts","../../../packages/components/core/tokens/window.ts","../../../packages/components/core/common-behaviors/common-module.ts","../../../packages/components/core/common-behaviors/disabled.ts","../../../packages/components/core/common-behaviors/error-state.ts","../../../packages/components/core/utils/dom.ts","../../../packages/components/core/utils/utils.ts","../../../packages/components/core/common-behaviors/hover.ts","../../../packages/components/core/common-behaviors/read-state.ts","../../../packages/components/core/common-behaviors/tabindex.ts","../../../packages/components/core/common-behaviors/index.ts","../../../packages/components/core/datetime/date-adapter.ts","../../../packages/components/core/datetime/date-formats.ts","../../../packages/components/core/error/error-state-matcher.ts","../../../packages/components/core/form-field/field-sizing-content.ts","../../../packages/components/core/form-field/form-field-ref.ts","../../../packages/components/core/locales/en-US.ts","../../../packages/components/core/locales/es-LA.ts","../../../packages/components/core/locales/pt-BR.ts","../../../packages/components/core/locales/ru-RU.ts","../../../packages/components/core/locales/tk-TM.ts","../../../packages/components/core/locales/formatters.ts","../../../packages/components/core/locales/locale-service.ts","../../../packages/components/core/locales/locale-service.module.ts","../../../packages/components/core/formatters/date/formatter.ts","../../../packages/components/core/formatters/date/formatter.pipe.ts","../../../packages/components/core/formatters/filesize/config.ts","../../../packages/components/core/formatters/number/formatter.ts","../../../packages/components/core/formatters/filesize/size.ts","../../../packages/components/core/formatters/filesize/formatter.ts","../../../packages/components/core/formatters/index.ts","../../../packages/components/core/forms/forms.directive.ts","../../../packages/components/core/forms/forms-module.ts","../../../packages/components/core/forms/validators.ts","../../../packages/components/core/highlight/highlight.pipe.ts","../../../packages/components/core/highlight/index.ts","../../../packages/components/core/line/line.ts","../../../packages/components/core/navbar/rectangle-item.ts","../../../packages/components/core/option/action.ts","../../../packages/components/core/option/action-container.ts","../../../packages/components/core/option/optgroup.ts","../../../packages/components/core/option/optgroup.html","../../../packages/components/core/selection/constants.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.partial.html","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.module.ts","../../../packages/components/core/title/title-text-ref.ts","../../../packages/components/core/option/option.ts","../../../packages/components/core/option/option.html","../../../packages/components/core/option/option-module.ts","../../../packages/components/core/overlay/overlay-position-map.ts","../../../packages/components/core/pop-up/constants.ts","../../../packages/components/core/pop-up/focus-trap-strategy.ts","../../../packages/components/core/pop-up/pop-up.ts","../../../packages/components/core/pop-up/pop-up-styles.ts","../../../packages/components/core/pop-up/pop-up-trigger.ts","../../../packages/components/core/select/constants.ts","../../../packages/components/core/select/common.ts","../../../packages/components/core/select/errors.ts","../../../packages/components/core/select/events.ts","../../../packages/components/core/services/measure-scrollbar.service.ts","../../../packages/components/core/services/theme.service.ts","../../../packages/components/core/validation/validation.ts","../../../packages/components/core/version.ts","../../../packages/components/core/koobiq-components-core.ts"],"sourcesContent":["/**\n * @deprecated Will be removed in next major release. Use `KbqAnimationCurves` instead.\n *\n * @docs-private\n */\nexport enum AnimationCurves {\n    StandardCurve = 'cubic-bezier(0.4,0.0,0.2,1)',\n    DecelerationCurve = 'cubic-bezier(0.0,0.0,0.2,1)',\n    AccelerationCurve = 'cubic-bezier(0.4,0.0,1,1)',\n    SharpCurve = 'cubic-bezier(0.4,0.0,0.6,1)'\n}\n\n/**\n * Koobiq components animation curves\n *\n * @docs-private\n */\nexport enum KbqAnimationCurves {\n    StandardCurve = 'cubic-bezier(0.4,0.0,0.2,1)',\n    DecelerationCurve = 'cubic-bezier(0.0,0.0,0.2,1)',\n    AccelerationCurve = 'cubic-bezier(0.4,0.0,1,1)',\n    SharpCurve = 'cubic-bezier(0.4,0.0,0.6,1)',\n    EaseInOut = 'ease-in-out',\n    EaseInOutQuad = 'cubic-bezier(0.455,0.03,0.515,0.955)'\n}\n\n/**\n * Koobiq components animation durations\n *\n * @docs-private\n */\nexport enum KbqAnimationDurations {\n    Long = '300ms',\n    Complex = '250ms',\n    Entering = '150ms',\n    Exiting = '125ms',\n    Rapid = '100ms',\n    Instant = '50ms'\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const fadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n    state('void', style({ opacity: 0 })),\n    state('true', style({ opacity: 1 })),\n    state('false', style({ opacity: 0 })),\n    transition('* => true', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),\n    transition('* => void', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)'))\n]);\n","import { animate, AnimationTriggerMetadata, group, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * The following are all the animations for the kbq-select component, with each\n * const containing the metadata for one animation.\n *\n */\nexport const kbqSelectAnimations: {\n    readonly transformPanel: AnimationTriggerMetadata;\n    readonly fadeInContent: AnimationTriggerMetadata;\n} = {\n    /**\n     * This animation transforms the select's overlay panel on and off the page.\n     *\n     * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it\n     * up to 100% on the Y axis, fades in its border, and translates slightly up and to the\n     * side to ensure the option text correctly overlaps the trigger text.\n     *\n     * When the panel is removed from the DOM, it simply fades out linearly.\n     */\n    transformPanel: trigger('transformPanel', [\n        state(\n            'void',\n            style({\n                transform: 'scaleY(0)',\n                minWidth: '100%',\n                opacity: 0\n            })\n        ),\n        transition(\n            'void => *',\n            group([\n                animate('0ms cubic-bezier(0.25, 0.8, 0.25, 1)')\n            ])\n        ),\n        transition('* => void', [\n            animate('0ms 0ms linear', style({ opacity: 0 }))\n        ])\n    ]),\n\n    /**\n     * This animation fades in the background color and text content of the\n     * select's options. It is time delayed to occur 100ms after the overlay\n     * panel has transformed in.\n     */\n    fadeInContent: trigger('fadeInContent', [\n        state('showing', style({ opacity: 1 })),\n        transition('void => showing', [\n            style({ opacity: 0 }),\n            animate('0ms 0ms cubic-bezier(0.55, 0, 0.55, 0.2)')\n        ])\n    ])\n};\n\nexport const transformPanel = kbqSelectAnimations.transformPanel;\n\nexport const fadeInContent = kbqSelectAnimations.fadeInContent;\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n    selector: '[kbqNormalizeWhitespace]',\n    host: {\n        '(copy)': 'onCopy($event)'\n    }\n})\nexport class KbqNormalizeWhitespace {\n    /** @docs-private */\n    protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n    /**\n     * Replace thin-space with space on copy event\n     */\n    onCopy($event: ClipboardEvent) {\n        const value =\n            (this.elementRef.nativeElement as HTMLInputElement).value || this.elementRef.nativeElement.textContent;\n\n        if ($event.type === 'copy' && value) {\n            $event.preventDefault();\n            $event.clipboardData?.setData('text', value?.replace(/\\u2009/g, ' '));\n        }\n    }\n}\n","import { Directive, ElementRef, inject, Input, isDevMode } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanColor {\n    color: KbqComponentColors | ThemePalette | string;\n}\n\n/** @docs-private */\nexport type CanColorCtor = Constructor<CanColor> & AbstractConstructor<CanColor>;\n\nexport interface HasElementRef {\n    elementRef: ElementRef;\n}\n\nexport enum ThemePalette {\n    Primary = 'primary',\n    Secondary = 'secondary',\n    Error = 'error',\n    Info = 'info',\n    Warning = 'warning',\n    Success = 'success',\n\n    Default = 'secondary',\n    Empty = ''\n}\n\nexport enum KbqComponentColors {\n    Theme = 'theme',\n    ThemeFade = 'theme-fade',\n    Contrast = 'contrast',\n    ContrastFade = 'contrast-fade',\n\n    Error = 'error',\n    Warning = 'warning',\n    Success = 'success',\n\n    Default = 'contrast',\n    Empty = 'empty'\n}\n\n/** Mixin to augment a directive with a `color` property. */\nexport function mixinColor<T extends AbstractConstructor<HasElementRef>>(\n    base: T,\n    defaultColor?: KbqComponentColors | ThemePalette\n): CanColorCtor & T;\n\nexport function mixinColor<T extends Constructor<HasElementRef>>(\n    base: T,\n    defaultColor: KbqComponentColors | ThemePalette = KbqComponentColors.Empty\n): CanColorCtor & T {\n    return class extends base {\n        get color(): KbqComponentColors | ThemePalette {\n            return this._color;\n        }\n        set color(value: KbqComponentColors | ThemePalette) {\n            const colorPalette = value || defaultColor;\n\n            if (colorPalette !== this._color) {\n                if (this._color) {\n                    this.elementRef.nativeElement.classList.remove(`kbq-${this._color}`);\n                }\n\n                if (colorPalette) {\n                    this.elementRef.nativeElement.classList.add(`kbq-${colorPalette}`);\n                }\n\n                this._color = colorPalette;\n            }\n        }\n\n        private _color: KbqComponentColors | ThemePalette;\n\n        constructor(...args: any[]) {\n            super(...args);\n\n            this.color = defaultColor;\n\n            if (isDevMode()) {\n                // eslint-disable-next-line no-console\n                console.warn('mixinColor deprecated and will be deleted in next major release');\n            }\n        }\n    };\n}\n\n@Directive()\nexport class KbqColorDirective {\n    /** @docs-private */\n    readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n    /** @docs-private */\n    protected defaultColor: KbqComponentColors | ThemePalette | string;\n\n    /** current class name of color */\n    get colorClassName(): KbqComponentColors | ThemePalette | string {\n        return `kbq-${this._color}`;\n    }\n\n    @Input()\n    get color(): KbqComponentColors | ThemePalette | string {\n        return this._color;\n    }\n\n    set color(value: KbqComponentColors | ThemePalette | string) {\n        const color = value || this.defaultColor;\n\n        if (color !== this._color) {\n            if (this._color) {\n                this.elementRef.nativeElement.classList.remove(`kbq-${this._color}`);\n            }\n\n            if (color) {\n                this.elementRef.nativeElement.classList.add(`kbq-${color}`);\n            }\n\n            this._color = color;\n        }\n    }\n\n    protected _color: KbqComponentColors | ThemePalette | string;\n\n    constructor() {\n        this.color = KbqComponentColors.Empty;\n    }\n\n    /** this color will be used as a default value. For example [color]=\"'' | false | undefined | null\". */\n    setDefaultColor(color: KbqComponentColors | ThemePalette | string) {\n        this.defaultColor = color;\n    }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, InjectionToken } from '@angular/core';\n\n/**\n * An abstraction over the global `window` object.\n */\nexport const KBQ_WINDOW = new InjectionToken<Window>('[KBQ_WINDOW]', {\n    factory: (): Window => {\n        const _window =\n            inject(DOCUMENT).defaultView ||\n            // Backward compatibility for older Angular versions\n            // https://github.com/angular/universal/blob/main/docs/gotchas.md#strategy-3-shims\n            // eslint-disable-next-line no-restricted-globals\n            window;\n\n        if (!_window) {\n            throw new Error('[KBQ_WINDOW] window is not available.');\n        }\n\n        return _window;\n    }\n});\n","import { BidiModule } from '@angular/cdk/bidi';\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Inject, InjectionToken, isDevMode, NgModule, Optional } from '@angular/core';\nimport { KBQ_WINDOW } from '../tokens';\n\n/**\n * Injection token that configures whether the koobiq sanity checks are enabled.\n *\n * @deprecated No longer used and will be removed in next major release.\n *\n * @docs-private\n */\nexport const KBQ_SANITY_CHECKS = new InjectionToken<boolean>('kbq-sanity-checks', {\n    providedIn: 'root',\n    factory: mcSanityChecksFactory\n});\n\n/**\n * @deprecated No longer used and will be removed in next major release.\n *\n * @docs-private\n */\nexport function mcSanityChecksFactory(): boolean {\n    return true;\n}\n\n/**\n * Module that captures anything that should be loaded and/or run for *all* Koobiq\n * components. This includes Bidi, etc.\n *\n * @deprecated No longer used and will be removed in next major release.\n *\n * @docs-private\n */\n@NgModule({\n    imports: [BidiModule],\n    exports: [BidiModule]\n})\nexport class KbqCommonModule {\n    protected readonly document = inject<Document>(DOCUMENT);\n    private readonly window = inject(KBQ_WINDOW);\n\n    // Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n    private hasDoneGlobalChecks = false;\n\n    constructor(@Optional() @Inject(KBQ_SANITY_CHECKS) private _sanityChecksEnabled: boolean) {\n        if (this.areChecksEnabled() && !this.hasDoneGlobalChecks) {\n            this.checkDoctypeIsDefined();\n            this.hasDoneGlobalChecks = true;\n        }\n    }\n\n    // Whether any sanity checks are enabled\n    private areChecksEnabled(): boolean {\n        return this._sanityChecksEnabled && isDevMode() && !this.isTestEnv();\n    }\n\n    // Whether the code is running in tests.\n    private isTestEnv(): boolean {\n        return !!(this.window && this.window['__jest__']);\n    }\n\n    private checkDoctypeIsDefined(): void {\n        if (this.document && !this.document.doctype && isDevMode()) {\n            // eslint-disable-next-line no-console\n            console.warn(\n                'Current document does not have a doctype. This may cause ' +\n                    'some koobiq components not to behave as expected.'\n            );\n        }\n    }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isDevMode } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanDisable {\n    disabled: boolean;\n}\n\n/** @docs-private */\nexport type CanDisableCtor = Constructor<CanDisable> & AbstractConstructor<CanDisable>;\n\n/** Mixin to augment a directive with a `disabled` property. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mixinDisabled<T extends AbstractConstructor<{}>>(base: T): CanDisableCtor & T;\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableCtor & T {\n    return class extends base {\n        get disabled() {\n            return this._disabled;\n        }\n\n        set disabled(value: any) {\n            this._disabled = coerceBooleanProperty(value);\n        }\n\n        private _disabled: boolean = false;\n\n        constructor(...args: any[]) {\n            super(...args);\n\n            if (isDevMode()) {\n                // eslint-disable-next-line no-console\n                console.warn('mixinDisabled deprecated and will be deleted in next major release');\n            }\n        }\n    };\n}\n","import { isDevMode } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ErrorStateMatcher } from '../error/error-state-matcher';\nimport { AbstractConstructor, Constructor } from './constructor';\n\n/** @docs-private */\nexport interface CanUpdateErrorState {\n    /** Whether the component is in an error state. */\n    errorState: boolean;\n    /** An object used to control the error state of the component. */\n    errorStateMatcher: ErrorStateMatcher;\n    /** Updates the error state based on the provided error state matcher. */\n    updateErrorState(): void;\n}\n\n/** @docs-private */\nexport type CanUpdateErrorStateCtor = Constructor<CanUpdateErrorState>;\n\n/** @docs-private */\nexport interface HasErrorState {\n    parentFormGroup: FormGroupDirective | null;\n    parentForm: NgForm | null;\n    defaultErrorStateMatcher: ErrorStateMatcher;\n\n    ngControl: NgControl | null;\n    stateChanges: Subject<void>;\n}\n\n/**\n * Mixin to augment a directive with updateErrorState method.\n * For component with `errorState` and need to update `errorState`.\n */\nexport function mixinErrorState<T extends AbstractConstructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T;\nexport function mixinErrorState<T extends Constructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T {\n    return class extends base {\n        /** Whether the component is in an error state. */\n        errorState: boolean = false;\n\n        errorStateMatcher: ErrorStateMatcher;\n\n        constructor(...args: any[]) {\n            super(...args);\n\n            if (isDevMode()) {\n                // eslint-disable-next-line no-console\n                console.warn('mixinErrorState deprecated and will be deleted in next major release');\n            }\n        }\n\n        updateErrorState() {\n            const oldState = this.errorState;\n            const parent = this.parentFormGroup || this.parentForm;\n            const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;\n            const control = this.ngControl ? (this.ngControl.control as UntypedFormControl) : null;\n            const newState = matcher.isErrorState(control, parent);\n\n            if (newState !== oldState) {\n                this.errorState = newState;\n                this.stateChanges.next();\n            }\n        }\n    };\n}\n\n/**\n * Class that tracks the error state of a component.\n * @docs-private\n */\nexport class KbqErrorStateTracker implements CanUpdateErrorState {\n    /** Whether the tracker is currently in an error state. */\n    errorState = false;\n\n    /** User-defined matcher for the error state. */\n    errorStateMatcher: ErrorStateMatcher;\n\n    constructor(\n        private defaultMatcher: ErrorStateMatcher | null,\n        public ngControl: NgControl | null,\n        private parentFormGroup: FormGroupDirective | null,\n        private parentForm: NgForm | null,\n        private stateChanges: Subject<void>\n    ) {}\n\n    /** Updates the error state based on the provided error state matcher. */\n    updateErrorState() {\n        const oldState = this.errorState;\n        const parent = this.parentFormGroup || this.parentForm;\n        const matcher = this.errorStateMatcher || this.defaultMatcher;\n        const control = this.ngControl ? (this.ngControl.control as AbstractControl) : null;\n        const newState = matcher?.isErrorState(control, parent) ?? false;\n\n        if (newState !== oldState) {\n            this.errorState = newState;\n            this.stateChanges.next();\n        }\n    }\n}\n","import { ElementRef, inject } from '@angular/core';\n\n/**\n * Injects the native element for the current component.\n */\nexport const kbqInjectNativeElement = <T extends Element = HTMLElement>(): T => {\n    return inject<ElementRef<T>>(ElementRef<T>).nativeElement;\n};\n","export function isBoolean(value: unknown): value is boolean {\n    return typeof value === 'boolean';\n}\n\n/** Whether the value is undefined. */\nexport const isUndefined = (value: unknown): value is undefined => {\n    return value === undefined;\n};\n\n/** Whether the value is null. */\nexport const isNull = (value: unknown): value is null => {\n    return value === null;\n};\n\n/** Whether the value is HTMLElement. */\nexport const isHtmlElement = (value: unknown): value is HTMLElement => {\n    return value instanceof HTMLElement;\n};\n\n/** Whether the value is Element. */\nexport const isElement = (value: unknown): value is Element => value instanceof Element;\n\n/** Whether the value is HTMLElement or null. */\nexport const isHtmlElementOrNull = (value: unknown): value is HTMLElement | null => {\n    return isHtmlElement(value) || isNull(value);\n};\n\n/**\n * Will be removed in the next major release\n *\n * @deprecated Use `booleanAttribute` instead\n */\nexport function toBoolean(value: unknown): boolean {\n    return value != null && `${value}` !== 'false';\n}\n\nexport const getNodesWithoutComments = (nodes: NodeList): Node[] => {\n    const COMMENT_NODE = 8;\n\n    return Array.from(nodes).filter((node) => node.nodeType !== COMMENT_NODE);\n};\n\nexport const leftIconClassName = 'kbq-icon_left';\nexport const rightIconClassName = 'kbq-icon_right';\n\n/** Whether the current platform is a Mac. */\nexport function isMac(): boolean {\n    // eslint-disable-next-line no-restricted-globals\n    return /^mac/i.test(navigator?.platform);\n}\n\n/** Converts an enumeration (enum) type into a string literal type containing\n * all possible string representations of the values. */\nexport type KbqEnumValues<T extends string | number> = `${T}`;\n","import { Directive } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { fromEvent, map, merge } from 'rxjs';\nimport { kbqInjectNativeElement } from '../utils';\n\n/**\n * Directive that adds a `kbq-hovered` class to an element, based on its hover state.\n *\n * @docs-private\n */\n@Directive({\n    selector: '[kbqHover]',\n    exportAs: 'kbqHover',\n    host: {\n        class: 'kbq-hover',\n        '[class.kbq-hovered]': 'hovered()'\n    }\n})\nexport class KbqHover {\n    private readonly element = kbqInjectNativeElement();\n\n    /**\n     * Whether the element is hovered.\n     */\n    readonly hovered = toSignal(\n        merge(\n            fromEvent<MouseEvent>(this.element, 'mouseenter'),\n            fromEvent<MouseEvent>(this.element, 'mouseleave')\n        ).pipe(map(({ type }) => type === 'mouseenter')),\n        { initialValue: false }\n    );\n}\n","import { ChangeDetectorRef, Directive, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Directive({\n    host: {\n        '(mouseenter)': 'mouseenterHandler()',\n        '(mouseleave)': 'mouseleaveHandler()',\n        '(click)': 'read.next(true)'\n    }\n})\nexport class KbqReadStateDirective {\n    private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n    timestamp: number;\n    timeToRead: number = 500;\n\n    readonly read = new BehaviorSubject<boolean>(false);\n\n    mouseenterHandler() {\n        this.timestamp = new Date().getTime();\n    }\n\n    mouseleaveHandler() {\n        if (new Date().getTime() - this.timestamp > this.timeToRead) {\n            this.read.next(true);\n        }\n\n        this.changeDetectorRef.markForCheck();\n    }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { isDevMode } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\nimport { CanDisable } from './disabled';\n\nexport interface HasTabIndex {\n    tabIndex: number;\n}\n\nexport type HasTabIndexCtor = Constructor<HasTabIndex> & AbstractConstructor<HasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends AbstractConstructor<CanDisable>>(\n    base: T,\n    defaultTabIndex?: number\n): HasTabIndexCtor & T;\n\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex = 0): HasTabIndexCtor & T {\n    return class extends base implements HasTabIndex {\n        defaultTabIndex = defaultTabIndex;\n\n        get tabIndex(): number {\n            return this.disabled ? -1 : this._tabIndex;\n        }\n\n        set tabIndex(value: number) {\n            // If the specified tabIndex value is null or undefined, fall back to the default value.\n\n            this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n        }\n\n        private _tabIndex: number = defaultTabIndex;\n\n        constructor(...args: any[]) {\n            super(...args);\n\n            if (isDevMode()) {\n                // eslint-disable-next-line no-console\n                console.warn('mixinTabIndex deprecated and will be deleted in next major release');\n            }\n        }\n    };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport * from './checkbox';\nexport * from './clipboard';\nexport { CanColor, CanColorCtor, KbqColorDirective, KbqComponentColors, mixinColor, ThemePalette } from './color';\nexport { KBQ_SANITY_CHECKS, KbqCommonModule } from './common-module';\nexport { CanDisable, CanDisableCtor, mixinDisabled } from './disabled';\nexport { CanUpdateErrorState, CanUpdateErrorStateCtor, KbqErrorStateTracker, mixinErrorState } from './error-state';\nexport * from './flex';\nexport * from './hover';\nexport * from './orientation';\nexport * from './read-state';\nexport { KbqDefaultSizes } from './size';\nexport { HasTabIndex, HasTabIndexCtor, mixinTabIndex } from './tabindex';\n\nexport const KBQ_PARENT_ANIMATION_COMPONENT = new InjectionToken<any>('kbq-parent-animation-component');\n","import { inject, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { DateAdapter as BaseDateAdapter } from '@koobiq/date-adapter';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/** InjectionToken for datepicker that can be used to override default locale code. */\nexport const KBQ_DATE_LOCALE = new InjectionToken<string>('KBQ_DATE_LOCALE', {\n    providedIn: 'root',\n    factory: KBQ_DATE_LOCALE_FACTORY\n});\n\n/** @docs-private */\nexport function KBQ_DATE_LOCALE_FACTORY(): string {\n    return inject(LOCALE_ID);\n}\n\nexport abstract class DateAdapter<D> extends BaseDateAdapter<D> {\n    /** A stream that emits when the locale changes. */\n    abstract get localeChanges(): Observable<any>;\n\n    protected abstract _localeChanges: BehaviorSubject<string>;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DateFormats } from '@koobiq/date-adapter';\n\nexport const KBQ_DATE_FORMATS = new InjectionToken<DateFormats>('kbq-date-formats');\nexport type KbqDateFormats = DateFormats;\n","import { Injectable, Provider, Type } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgForm } from '@angular/forms';\n\n/** Utility provider for `ErrorStateMatcher`. */\nexport const kbqErrorStateMatcherProvider = (\n    errorStateMatcher: Type<ErrorStateMatcher> | ErrorStateMatcher\n): Provider => {\n    if (errorStateMatcher instanceof Type) {\n        return {\n            provide: ErrorStateMatcher,\n            useClass: errorStateMatcher\n        };\n    }\n\n    return {\n        provide: ErrorStateMatcher,\n        useValue: errorStateMatcher\n    };\n};\n\n/**\n * Error state matcher that matches when a control is invalid and form is submitted.\n * Requires use FormGroupDirective or NgForm.\n */\n@Injectable()\nexport class ShowOnFormSubmitErrorStateMatcher implements ErrorStateMatcher {\n    isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n        return !!(control?.invalid && form?.submitted);\n    }\n}\n\n/**\n * Error state matcher with split behavior based on error's type:\n * - `required` errors are shown only after the form is submitted.\n * - All other errors are shown as soon as the control is invalid and touched.\n */\n@Injectable()\nexport class ShowRequiredOnSubmitErrorStateMatcher implements ErrorStateMatcher {\n    isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n        return control?.hasError('required')\n            ? !!(control?.invalid && form?.submitted)\n            : !!(control?.invalid && control.touched);\n    }\n}\n\n/** Error state matcher that matches when a control is invalid and dirty or form is submitted. */\n@Injectable()\nexport class ShowOnControlDirtyErrorStateMatcher implements ErrorStateMatcher {\n    isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n        return !!(control?.invalid && (control.dirty || form?.submitted));\n    }\n}\n\n/**\n * Provider that defines how form controls behave with regards to displaying error messages.\n * Error state matcher that matches when a control is invalid and touched or form is submitted.\n */\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher {\n    isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n        return !!(control?.invalid && (control.touched || form?.submitted));\n    }\n}\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { afterNextRender, DestroyRef, Directive, inject, Renderer2 } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, merge } from 'rxjs';\nimport { KBQ_WINDOW } from '../tokens';\nimport { kbqInjectNativeElement } from '../utils';\n\nconst INITIAL_PROPERTIES = {\n    all: 'initial',\n    position: 'absolute',\n    top: coerceCssPixelValue(0),\n    left: coerceCssPixelValue(0),\n    width: coerceCssPixelValue(0),\n    height: coerceCssPixelValue(0),\n    visibility: 'hidden',\n    overflow: 'scroll',\n    whiteSpace: 'pre',\n    pointerEvents: 'none'\n} as const satisfies Partial<CSSStyleDeclaration>;\n\n/**\n * Properties that can affect element width and should be inherited from the parent.\n */\nconst WIDTH_INHERITED_PROPERTIES = [\n    'font',\n    'fontFamily',\n    'fontFeatureSettings',\n    'fontKerning',\n    'fontOpticalSizing',\n    'fontSizeAdjust',\n    'fontSize',\n    'fontStretch',\n    'fontSynthesis',\n    'fontVariant',\n    'fontVariantLigatures',\n    'fontVariationSettings',\n    'fontWeight',\n    'letterSpacing',\n    'textIndent',\n    'textTransform'\n] as const satisfies Array<keyof CSSStyleDeclaration>;\n\n/**\n * Properties that should be added to the width when `box-sizing: border-box` is applied.\n */\nconst BOX_SIZING_BORDER_BOX_WIDTH_PROPERTIES = [\n    'paddingLeft',\n    'paddingRight',\n    'borderLeftWidth',\n    'borderRightWidth'\n] as const satisfies Array<keyof CSSStyleDeclaration>;\n\nconst FIELD_RESIZE_EVENTS = ['input', 'change', 'focus', 'blur'] as const;\n\n/**\n * Emulates [`field-sizing: content`](https://developer.mozilla.org/en-US/docs/Web/CSS/field-sizing) CSS property for\n * browsers that do not support it natively.\n *\n * @docs-private\n */\n@Directive({\n    selector: '[kbqFieldSizingContent]',\n    exportAs: 'kbqFieldSizingContent',\n    host: {\n        class: 'kbq-field-sizing-content'\n    }\n})\nexport class KbqFieldSizingContent {\n    private readonly element = kbqInjectNativeElement<HTMLInputElement>();\n    private readonly renderer = inject(Renderer2);\n    private readonly window = inject(KBQ_WINDOW);\n    private readonly document = inject(DOCUMENT);\n    private readonly destroyRef = inject(DestroyRef);\n\n    constructor() {\n        afterNextRender(() => this.emulate());\n    }\n\n    private emulate(): void {\n        if (CSS.supports('field-sizing', 'content')) {\n            this.renderer.setStyle(this.element, 'fieldSizing', 'content');\n\n            return;\n        }\n\n        merge(...FIELD_RESIZE_EVENTS.map((event) => fromEvent(this.element, event)))\n            .pipe(takeUntilDestroyed(this.destroyRef))\n            .subscribe(() => this.setupWidth());\n\n        this.setupWidth();\n    }\n\n    private setupWidth(): void {\n        const computedStyle = this.window.getComputedStyle(this.element);\n        const ruler = this.createRuler(computedStyle);\n\n        ruler.textContent = this.element.value || this.element.placeholder || '';\n        // We should add space to prevent text truncation in Safari/Firefox\n        if (ruler.textContent) ruler.textContent += ' ';\n\n        this.renderer.appendChild(this.document.body, ruler);\n\n        const width = this.calculateWidth(ruler, computedStyle);\n\n        this.renderer.setStyle(this.element, 'width', coerceCssPixelValue(width));\n        this.renderer.removeChild(this.document.body, ruler);\n    }\n\n    private createRuler(computedStyle: CSSStyleDeclaration): HTMLElement {\n        const ruler: HTMLSpanElement = this.renderer.createElement('span');\n\n        Object.assign(ruler.style, INITIAL_PROPERTIES);\n        WIDTH_INHERITED_PROPERTIES.forEach((property) => {\n            ruler.style[property] = computedStyle[property];\n        });\n\n        return ruler;\n    }\n\n    private calculateWidth(ruler: HTMLElement, computedStyle: CSSStyleDeclaration): number {\n        if (computedStyle.boxSizing === 'border-box') {\n            return BOX_SIZING_BORDER_BOX_WIDTH_PROPERTIES.reduce(\n                (width, property) => width + (parseFloat(computedStyle[property]) || 0),\n                ruler.scrollWidth\n            );\n        }\n\n        return ruler.scrollWidth;\n    }\n}\n","import { InjectionToken, ModelSignal } from '@angular/core';\n\n/**\n * @deprecated Will be removed in next major release, use `KbqFormField` instead.\n */\nexport interface KbqFormFieldRef {\n    control: any;\n    canCleanerClearByEsc: boolean;\n    /** Use when KbqFormField is in an overlay container. */\n    inOverlay: ModelSignal<boolean>;\n    /**\n     * @TODO should be removed, is private method (#DS-2915)\n     * @deprecated use `formField.control?.errorState` instead\n     */\n    shouldForward(str: string): boolean;\n    focus(): void;\n    /**\n     * @deprecated Use `focus` instead.\n     */\n    focusViaKeyboard(): void;\n}\n\n/**\n * Injection token that can be used to inject an instances of `KbqFormField`. It serves\n * as alternative token to the actual `KbqFormField` class which would cause unnecessary\n * retention of the `KbqFormField` class and its component metadata.\n *\n * @TODO move into form-field.ts, add correct type for `InjectionToken<KbqFormField>` (#DS-2915)\n */\nexport const KBQ_FORM_FIELD_REF = new InjectionToken<KbqFormFieldRef>('KbqFormFieldRef');\n","import {\n    KbqActionsPanelLocaleConfiguration,\n    KbqClampedTextLocaleConfig,\n    KbqCodeBlockLocaleConfiguration,\n    KbqFileUploadLocaleConfig,\n    KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const enUSLocaleData = {\n    select: { hiddenItemsText: '+{{ number }}' },\n    datepicker: {\n        placeholder: 'yyyy-mm-dd',\n        dateInput: 'yyyy-MM-dd'\n    },\n    timepicker: {\n        placeholder: {\n            full: 'hh:mm:ss',\n            short: 'hh:mm'\n        }\n    },\n    fileUpload: {\n        single: {\n            captionText: 'Drag file here or {{ browseLink }}',\n            captionTextOnlyFolder: 'Drag here or {{ browseLinkFolder }}',\n            captionTextWithFolder: 'Drag here or {{ browseLink }} or {{ browseLinkFolderMixed }}',\n            browseLink: 'choose',\n            browseLinkFolder: 'choose folder',\n            browseLinkFolderMixed: 'folder'\n        },\n        multiple: {\n            captionText: 'or {{ browseLink }}',\n            captionTextOnlyFolder: 'or {{ browseLinkFolder }}',\n            captionTextWithFolder: 'or {{ browseLink }} or {{ browseLinkFolderMixed }}',\n            captionTextWhenSelected: 'Drag more or {{ browseLink }}',\n            captionTextForCompactSize: 'Drag files or {{ browseLink }}',\n            browseLink: 'choose files',\n            browseLinkFolder: 'choose folder',\n            browseLinkFolderMixed: 'folder',\n            title: 'Drag here'\n        }\n    } satisfies KbqFileUploadLocaleConfig,\n    codeBlock: {\n        softWrapOnTooltip: 'Enable word wrap',\n        softWrapOffTooltip: 'Disable word wrap',\n        downloadTooltip: 'Download',\n        copiedTooltip: '✓ Copied',\n        copyTooltip: 'Copy',\n        viewAllText: 'Show all',\n        viewLessText: 'Show less',\n        openExternalSystemTooltip: 'Open in the external system'\n    } satisfies KbqCodeBlockLocaleConfiguration,\n    timezone: {\n        searchPlaceholder: 'City or time zone'\n    },\n    actionsPanel: {\n        closeTooltip: 'Deselect'\n    } satisfies KbqActionsPanelLocaleConfiguration,\n    filterBar: {\n        reset: {\n            buttonName: 'Reset'\n        },\n        search: {\n            tooltip: 'Search',\n            placeholder: 'Search'\n        },\n        filters: {\n            defaultName: 'Filters',\n            saveNewFilterTooltip: 'Save the new filter',\n            searchPlaceholder: 'Search',\n            searchEmptyResult: 'Nothing found',\n            saveAsNewFilter: 'Save as new filter',\n            saveChanges: 'Save changes',\n            saveAsNew: 'Save as new',\n            change: 'Edit',\n            resetChanges: 'Reset',\n            remove: 'Delete',\n            name: 'Name',\n            error: 'The search with such name already exists',\n            errorHint: 'Could not save the filter. Try again or contact the administrator.',\n            saveButton: 'Save',\n            cancelButton: 'Cancel'\n        },\n        add: {\n            tooltip: 'Add filter'\n        },\n        pipe: {\n            clearButtonTooltip: 'Clear',\n            removeButtonTooltip: 'Delete',\n            applyButton: 'Apply',\n            emptySearchResult: 'Nothing found',\n            selectAll: 'Select all'\n        },\n        datePipe: {\n            customPeriod: 'Custom period',\n            customPeriodFrom: 'from',\n            customPeriodTo: 'to',\n            customPeriodErrorHint: 'The period cannot start later than it ends',\n            backToPeriodSelection: 'Back'\n        }\n    },\n    clampedText: {\n        openText: 'Expand',\n        closeText: 'Collapse',\n        showMoreText: 'Show {exceededItemCount} more',\n        moreText: 'more'\n    } satisfies KbqClampedTextLocaleConfig,\n    navbarIc: {\n        toggle: {\n            pinButton: 'Leave expanded',\n            collapseButton: 'Collapse'\n        }\n    },\n    navbar: {\n        toggle: {\n            expand: 'Expand',\n            collapse: 'Collapse'\n        }\n    },\n    searchExpandable: {\n        tooltip: 'Search',\n        placeholder: 'Search'\n    },\n    appSwitcher: {\n        searchPlaceholder: 'Search',\n        searchEmptyResult: 'Nothing found',\n        sitesHeader: 'Other sites'\n    },\n    timeRange: {\n        title: {\n            for: 'for',\n            placeholder: 'Select period'\n        },\n        editor: {\n            from: 'from',\n            to: 'to',\n            apply: 'Apply',\n            cancel: 'Cancel',\n            rangeLabel: 'for period',\n            allTime: 'for all time',\n            currentQuarter: 'for the current quarter',\n            currentYear: 'for the current year'\n        },\n        durationTemplate: {\n            title: {\n                SEPARATOR: ' ',\n                LAST_PART_SEPARATOR: '',\n                YEARS: `{years, plural,\n                one {# year}\n                other {last # years}\n            }`,\n                MONTHS: `{months, plural,\n                one {last month}\n                other {last # months}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {last week}\n                other {last # weeks}\n            }`,\n                DAYS: `{days, plural,\n                one {last day}\n                other {last # days}\n            }`,\n                HOURS: `{hours, plural,\n                one {last hour}\n                other {last # hours}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {last minute}\n                other {last # minutes}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {last second}\n                other {last # seconds}\n            }`,\n                YEARS_FRACTION: `{years} years`,\n                MONTHS_FRACTION: `{months} months`\n            },\n            option: {\n                SEPARATOR: ' ',\n                LAST_PART_SEPARATOR: '',\n                YEARS: `{years, plural,\n                one {# year}\n                other {last # years}\n            }`,\n                MONTHS: `{months, plural,\n                one {last month}\n                other {last # months}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {last week}\n                other {last # weeks}\n            }`,\n                DAYS: `{days, plural,\n                one {last day}\n                other {last # days}\n            }`,\n                HOURS: `{hours, plural,\n                one {last hour}\n                other {last # hours}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {last minute}\n                other {last # minutes}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {last second}\n                other {last # seconds}\n            }`,\n                YEARS_FRACTION: `{years} years`,\n                MONTHS_FRACTION: `{months} months`\n            }\n        }\n    } satisfies KbqTimeRangeLocaleConfig,\n    notificationCenter: {\n        notifications: 'Notifications',\n        remove: 'Remove',\n        doNotDisturb: 'Do not disturb',\n        showPopUpNotifications: 'Show pop-up notifications',\n        noNotifications: 'No notifications',\n        failedToLoadNotifications: 'Failed to load notifications',\n        repeat: 'Repeat',\n        loadingMore: 'Loading more notifications'\n    }\n};\n","import {\n    KbqActionsPanelLocaleConfiguration,\n    KbqClampedTextLocaleConfig,\n    KbqCodeBlockLocaleConfiguration,\n    KbqFileUploadLocaleConfig,\n    KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const esLALocaleData = {\n    select: { hiddenItemsText: '+{{ number }}' },\n    datepicker: {\n        placeholder: 'dd/mm/aaaa'\n    },\n    timepicker: {\n        placeholder: {\n            full: 'hh:mm:ss',\n            short: 'hh:mm'\n        }\n    },\n    fileUpload: {\n        single: {\n            captionText: 'Arrastre el archivo aquí o {{ browseLink }}',\n            captionTextOnlyFolder: 'Arrastre el archivo aquí o {{ browseLinkFolder }}',\n            captionTextWithFolder: 'Arrastre el archivo aquí o {{ browseLink }} o {{ browseLinkFolderMixed }}',\n            browseLink: 'elija',\n            browseLinkFolder: 'carpeta',\n            browseLinkFolderMixed: 'carpeta'\n        },\n        multiple: {\n            captionText: 'Arrastre aquí o {{ browseLink }}',\n            captionTextOnlyFolder: 'Arrastre aquí o {{ browseLinkFolder }}',\n            captionTextWithFolder: 'Arrastre aquí o {{ browseLink }} o {{ browseLinkFolderMixed }}',\n            captionTextWhenSelected: 'Arrastre más archivos aquí o {{ browseLink }}',\n            captionTextForCompactSize: 'Arrastre archivos o {{ browseLink }}',\n            browseLink: 'elija',\n            browseLinkFolder: 'carpeta',\n            browseLinkFolderMixed: 'carpeta',\n            title: 'Cargue los archivos'\n        }\n    } satisfies KbqFileUploadLocaleConfig,\n    codeBlock: {\n        softWrapOnTooltip: 'Activar el ajuste de texto',\n        softWrapOffTooltip: 'Desactivar el ajuste de texto',\n        downloadTooltip: 'Descargar',\n        copiedTooltip: '✓ Copiado',\n        copyTooltip: 'Copiar',\n        viewAllText: 'Mostrar todo',\n        viewLessText: 'Mostrar menos',\n        openExternalSystemTooltip: 'Abrir en el sistema externo'\n    } satisfies KbqCodeBlockLocaleConfiguration,\n    timezone: {\n        searchPlaceholder: 'Ciudad o zona horaria'\n    },\n    actionsPanel: {\n        closeTooltip: 'Desmarque'\n    } satisfies KbqActionsPanelLocaleConfiguration,\n    filterBar: {\n        reset: {\n            buttonName: 'Restablecer'\n        },\n        search: {\n            tooltip: 'Búsqueda',\n            placeholder: 'Búsqueda'\n        },\n        filters: {\n            defaultName: 'Filtros',\n            saveNewFilterTooltip: 'Guardar el filtro nuevo',\n            searchPlaceholder: 'Búsqueda',\n            searchEmptyResult: 'No se encontró nada',\n            saveAsNewFilter: 'Guardar como filtro nuevo',\n            saveChanges: 'Guardar cambios',\n            saveAsNew: 'Guardar como nuevo',\n            change: 'Editar',\n            resetChanges: 'Restablecer',\n            remove: 'Eliminar',\n            name: 'Nombre',\n            error: 'Ya existe una búsqueda con ese nombre',\n            errorHint: 'No se pudo guardar el filtro. Intente de nuevo o comuníquese con el administrador.',\n            saveButton: 'Guardar',\n            cancelButton: 'Cancelar'\n        },\n        add: {\n            tooltip: 'Agregar filtro'\n        },\n        pipe: {\n            clearButtonTooltip: 'Borrar',\n            removeButtonTooltip: 'Eliminar',\n            applyButton: 'Aplicar',\n            emptySearchResult: 'No se encontró nada',\n            selectAll: 'Seleccionar todo'\n        },\n        datePipe: {\n            customPeriod: 'Personalizar período',\n            customPeriodFrom: 'desde',\n            customPeriodTo: 'hasta',\n            customPeriodErrorHint: 'El inicio del período no puede estar después del fin',\n            backToPeriodSelection: 'Atrás'\n        }\n    },\n    clampedText: {\n        openText: 'Expandir',\n        closeText: 'Contraer',\n        showMoreText: 'Mostrar {exceededItemCount} más',\n        moreText: 'más'\n    } satisfies KbqClampedTextLocaleConfig,\n    navbarIc: {\n        toggle: {\n            pinButton: 'Expandir el menú',\n            collapseButton: 'Colapsar'\n        }\n    },\n    navbar: {\n        toggle: {\n            expand: 'Expandir',\n            collapse: 'Colapsar'\n        }\n    },\n    searchExpandable: {\n        tooltip: 'Búsqueda',\n        placeholder: 'Búsqueda'\n    },\n    appSwitcher: {\n        searchPlaceholder: 'Búsqueda',\n        searchEmptyResult: 'No se encontró nada',\n        sitesHeader: 'Otros sitios'\n    },\n    timeRange: {\n        title: {\n            for: 'para',\n            placeholder: 'Seleccione el período'\n        },\n        editor: {\n            from: 'de',\n            to: 'a',\n            apply: 'Aplicar',\n            cancel: 'Cancelar',\n            rangeLabel: 'para el período',\n            allTime: 'por todo el tiempo',\n            currentQuarter: 'por el trimestre actual',\n            currentYear: 'por el año actual'\n        },\n        durationTemplate: {\n            title: {\n                SEPARATOR: ', ',\n                LAST_PART_SEPARATOR: '',\n                YEARS: `{years, plural,\n                one {# año}\n                other {últimos # años}\n            }`,\n                MONTHS: `{months, plural,\n                one {último mes}\n                other {últimos # meses}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {última semana}\n                other {últimas # semanas}\n            }`,\n                DAYS: `{days, plural,\n                one {último día}\n                other {últimos # días}\n            }`,\n                HOURS: `{hours, plural,\n                one {última hora}\n                other {últimas # horas}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {último minuto}\n                other {últimos # minutos}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {último segundo}\n                other {últimos # segundos}\n            }`,\n                YEARS_FRACTION: `{years} años`,\n                MONTHS_FRACTION: `{months} meses`\n            },\n            option: {\n                SEPARATOR: ', ',\n                LAST_PART_SEPARATOR: '',\n                YEARS: `{years, plural,\n                one {# año}\n                other {últimos # años}\n            }`,\n                MONTHS: `{months, plural,\n                one {último mes}\n                other {últimos # meses}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {última semana}\n                other {últimas # semanas}\n            }`,\n                DAYS: `{days, plural,\n                one {último día}\n                other {últimos # días}\n            }`,\n                HOURS: `{hours, plural,\n                one {última hora}\n                other {últimas # horas}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {último minuto}\n                other {últimos # minutos}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {último segundo}\n                other {últimos # segundos}\n            }`,\n                YEARS_FRACTION: `{years} años`,\n                MONTHS_FRACTION: `{months} meses`\n            }\n        }\n    } satisfies KbqTimeRangeLocaleConfig,\n    notificationCenter: {\n        notifications: 'Notificaciones',\n        remove: 'Eliminar',\n        doNotDisturb: 'No molestar',\n        showPopUpNotifications: 'Mostrar notificaciones emergentes',\n        noNotifications: 'Sin notificaciones',\n        failedToLoadNotifications: 'Error al cargar las notificaciones',\n        repeat: 'Repetir',\n        loadingMore: 'Cargando más notificaciones'\n    }\n};\n","import {\n    KbqActionsPanelLocaleConfiguration,\n    KbqClampedTextLocaleConfig,\n    KbqCodeBlockLocaleConfiguration,\n    KbqFileUploadLocaleConfig,\n    KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const ptBRLocaleData = {\n    select: { hiddenItemsText: '+{{ number }}' },\n    datepicker: {\n        placeholder: 'dd/mm/yyyy'\n    },\n    timepicker: {\n        placeholder: {\n            full: 'hh:mm:ss',\n            short: 'hh:mm'\n        }\n    },\n    fileUpload: {\n        single: {\n            captionText: 'Arrastar o arquivo aqui ou {{ browseLink }}',\n            captionTextOnlyFolder: 'Arrastar o arquivo aqui ou {{ browseLinkFolder }}',\n            captionTextWithFolder: 'Arrastar o arquivo aqui ou {{ browseLink }} ou {{ browseLinkFolderMixed }}',\n            browseLink: 'escolher',\n            browseLinkFolder: 'pasta',\n            browseLinkFolderMixed: 'pasta'\n        },\n        multiple: {\n            captionText: 'Arrastar aqui ou {{ browseLink }}',\n            captionTextOnlyFolder: 'Arrastar aqui ou {{ browseLinkFolder }}',\n            captionTextWithFolder: 'Arrastar aqui ou {{ browseLink }} ou {{ browseLinkFolderMixed }}',\n            captionTextWhenSelected: 'Arrastar mais arquivos aqui ou {{ browseLink }}',\n            captionTextForCompactSize: 'Arrastar arquivos ou {{ browseLink }}',\n            browseLink: 'escolher',\n            browseLinkFolder: 'pasta',\n            browseLinkFolderMixed: 'pasta',\n            title: 'Carregar arquivos'\n        }\n    } satisfies KbqFileUploadLocaleConfig,\n    codeBlock: {\n        softWrapOnTooltip: 'Ativar quebra de linha',\n        softWrapOffTooltip: 'Desativar quebra de linha',\n        downloadTooltip: 'Baixar',\n        copiedTooltip: '✓ Copiado',\n        copyTooltip: 'Copiar',\n        viewAllText: 'Mostrar todos',\n        viewLessText: 'Mostrar menos',\n        openExternalSystemTooltip: 'Abrir em sistema externo'\n    } satisfies KbqCodeBlockLocaleConfiguration,\n    timezone: {\n        searchPlaceholder: 'Cidade ou fuso horário'\n    },\n    actionsPanel: {\n        closeTooltip: 'Desmarcar'\n    } satisfies KbqActionsPanelLocaleConfiguration,\n    filterBar: {\n        reset: {\n            buttonName: 'Reconfigurar'\n        },\n        search: {\n            tooltip: 'Buscar',\n            placeholder: 'Buscar'\n        },\n        filters: {\n            defaultName: 'Filtros',\n            saveNewFilterTooltip: 'Salve o filtro novo',\n            searchPlaceholder: 'Buscar',\n            searchEmptyResult: 'Nada encontrado',\n            saveAsNewFilter: 'Salve o filtro novo',\n            saveChanges: 'Salve as mudanças',\n            saveAsNew: 'Salve como novo',\n            change: 'Editar',\n            resetChanges: 'Reconfigurar',\n            remove: 'Deletar',\n            name: 'Nome',\n            error: 'A busca com esse nome já existe',\n            errorHint: 'O filtro não pôde ser salvo. Tente de novo ou entre em contato com o administrador.',\n            saveButton: 'Salvar',\n            cancelButton: 'Cancelar'\n        },\n        add: {\n            tooltip: 'Adicionar filtros'\n        },\n        pipe: {\n            clearButtonTooltip: 'Apagar',\n            removeButtonTooltip: 'Deletar',\n            applyButton: 'Aplicar',\n            emptySearchResult: 'Nada encontrado',\n            selectAll: 'Selecionar todos'\n        },\n        datePipe: {\n            customPeriod: 'Selecionar período',\n            customPeriodFrom: 'de',\n            customPeriodTo: 'até',\n            customPeriodErrorHint: 'O período não pode começar depois de quando acaba',\n            backToPeriodSelection: 'Voltar'\n        }\n    },\n    clampedText: {\n        openText: 'Expandir',\n        closeText: 'Recolher',\n        showMoreText: 'Mostrar mais {exceededItemCount}',\n        moreText: 'mais'\n    } satisfies KbqClampedTextLocaleConfig,\n    navbarIc: {\n        toggle: {\n            pinButton: 'Deixar expandido',\n            collapseButton: 'Recolher'\n        }\n    },\n    navbar: {\n        toggle: {\n            expand: 'Expandir',\n            collapse: 'Colapso'\n        }\n    },\n    searchExpandable: {\n        tooltip: 'Pesquisar',\n        placeholder: 'Pesquisar'\n    },\n    appSwitcher: {\n        searchPlaceholder: 'Pesquisar',\n        searchEmptyResult: 'Nada encontrado',\n        sitesHeader: 'Outros sites'\n    },\n    timeRange: {\n        title: {\n            for: 'para',\n            placeholder: 'Selecione o período'\n        },\n        editor: {\n            from: 'de',\n            to: 'até',\n            apply: 'Aplicar',\n            cancel: 'Cancelar',\n            rangeLabel: 'para o período',\n            allTime: 'por todo o tempo',\n            currentQuarter: 'pelo trimestre atual',\n            currentYear: 'pelo ano atual'\n        },\n        durationTemplate: {\n            title: {\n                SEPARATOR: ' e ',\n                LAST_PART_SEPARATOR: '',\n                YEARS: `{years, plural,\n                one {# ano}\n                other {últimos # anos}\n            }`,\n                MONTHS: `{months, plural,\n                one {último mês}\n                other {últimos # meses}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {última semana}\n                other {últimas # semanas}\n            }`,\n                DAYS: `{days, plural,\n                one {último dia}\n                other {últimos # dias}\n            }`,\n                HOURS: `{hours, plural,\n                one {última hora}\n                other {últimas # horas}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {último minuto}\n                other {últimos # minutos}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {último segundo}\n                other {últimos # segundos}\n            }`,\n                YEARS_FRACTION: `{years} anos`,\n                MONTHS_FRACTION: `{months} meses`\n            },\n            option: {\n                SEPARATOR: ' e ',\n                LAST_PART_SEPARATOR: '',\n                YEARS: `{years, plural,\n                one {# ano}\n                other {últimos # anos}\n            }`,\n                MONTHS: `{months, plural,\n                one {último mês}\n                other {últimos # meses}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {última semana}\n                other {últimas # semanas}\n            }`,\n                DAYS: `{days, plural,\n                one {último dia}\n                other {últimos # dias}\n            }`,\n                HOURS: `{hours, plural,\n                one {última hora}\n                other {últimas # horas}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {último minuto}\n                other {últimos # minutos}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {último segundo}\n                other {últimos # segundos}\n            }`,\n                YEARS_FRACTION: `{years} anos`,\n                MONTHS_FRACTION: `{months} meses`\n            }\n        }\n    } satisfies KbqTimeRangeLocaleConfig,\n    notificationCenter: {\n        notifications: 'Notificações',\n        remove: 'Remover',\n        doNotDisturb: 'Não perturbe',\n        showPopUpNotifications: 'Mostrar notificações pop-up',\n        noNotifications: 'Sem notificações',\n        failedToLoadNotifications: 'Falha ao carregar notificações',\n        repeat: 'Repetir',\n        loadingMore: 'Carregando mais notificações'\n    }\n};\n","import {\n    KbqActionsPanelLocaleConfiguration,\n    KbqClampedTextLocaleConfig,\n    KbqCodeBlockLocaleConfiguration,\n    KbqFileUploadLocaleConfig,\n    KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const ruRULocaleData = {\n    select: { hiddenItemsText: '+{{ number }}' },\n    datepicker: {\n        placeholder: 'дд.мм.гггг',\n        dateInput: 'dd.MM.yyyy'\n    },\n    timepicker: {\n        placeholder: {\n            full: 'чч:мм:сс',\n            short: 'чч:мм'\n        }\n    },\n    fileUpload: {\n        single: {\n            captionText: 'Перетащите сюда или {{ browseLink }}',\n            captionTextOnlyFolder: 'Перетащите сюда или {{ browseLinkFolder }}',\n            captionTextWithFolder: 'Перетащите сюда или {{ browseLink }} или {{ browseLinkFolderMixed }}',\n            browseLink: 'выберите файл',\n            browseLinkFolder: 'выберите папку',\n            browseLinkFolderMixed: 'папку'\n        },\n        multiple: {\n            captionText: 'или {{ browseLink }}',\n            captionTextOnlyFolder: 'или {{ browseLinkFolder }}',\n            captionTextWithFolder: 'или {{ browseLink }} или {{ browseLinkFolderMixed }}',\n            captionTextWhenSelected: 'Перетащите еще или {{ browseLink }}',\n            captionTextForCompactSize: 'Перетащите сюда или {{ browseLink }}',\n            browseLink: 'выберите файлы',\n            browseLinkFolder: 'выберите папку',\n            browseLinkFolderMixed: 'папку',\n            title: 'Перетащите сюда'\n        }\n    } satisfies KbqFileUploadLocaleConfig,\n    codeBlock: {\n        softWrapOnTooltip: 'Включить перенос по словам',\n        softWrapOffTooltip: 'Выключить перенос по словам',\n        downloadTooltip: 'Скачать',\n        copiedTooltip: '✓ Скопировано',\n        copyTooltip: 'Скопировать',\n        viewAllText: 'Показать все',\n        viewLessText: 'Свернуть',\n        openExternalSystemTooltip: 'Открыть во внешней системе'\n    } satisfies KbqCodeBlockLocaleConfiguration,\n    timezone: {\n        searchPlaceholder: 'Город или часовой пояс'\n    },\n    actionsPanel: {\n        closeTooltip: 'Отменить выбор'\n    } satisfies KbqActionsPanelLocaleConfiguration,\n    filterBar: {\n        reset: {\n            buttonName: 'Сбросить'\n        },\n        search: {\n            tooltip: 'Поиск',\n            placeholder: 'Поиск'\n        },\n        filters: {\n            defaultName: 'Фильтры',\n            saveNewFilterTooltip: 'Сохранить новый фильтр',\n            searchPlaceholder: 'Поиск',\n            searchEmptyResult: 'Ничего не найдено',\n            saveAsNewFilter: 'Сохранить как новый фильтр',\n            saveChanges: 'Сохранить изменения',\n            saveAsNew: 'Сохранить как новый',\n            change: 'Изменить',\n            resetChanges: 'Сбросить изменения',\n            remove: 'Удалить',\n            name: 'Название',\n            error: 'Поиск с таким названием уже существует',\n            errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n            saveButton: 'Сохранить',\n            cancelButton: 'Отмена'\n        },\n        add: {\n            tooltip: 'Добавить фильтр'\n        },\n        pipe: {\n            clearButtonTooltip: 'Очистить',\n            removeButtonTooltip: 'Удалить',\n            applyButton: 'Применить',\n            emptySearchResult: 'Ничего не найдено',\n            selectAll: 'Выбрать все'\n        },\n        datePipe: {\n            customPeriod: 'Произвольный период',\n            customPeriodFrom: 'с',\n            customPeriodTo: 'по',\n            customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n            backToPeriodSelection: 'Назад'\n        }\n    },\n    clampedText: {\n        openText: 'Развернуть',\n        closeText: 'Свернуть',\n        showMoreText: 'Показать еще {exceededItemCount}',\n        moreText: 'еще'\n    } satisfies KbqClampedTextLocaleConfig,\n    navbarIc: {\n        toggle: {\n            pinButton: 'Оставить развернутым',\n            collapseButton: 'Свернуть'\n        }\n    },\n    navbar: {\n        toggle: {\n            expand: 'Развернуть',\n            collapse: 'Свернуть'\n        }\n    },\n    searchExpandable: {\n        tooltip: 'Поиск',\n        placeholder: 'Поиск'\n    },\n    appSwitcher: {\n        searchPlaceholder: 'Поиск',\n        searchEmptyResult: 'Ничего не найдено',\n        sitesHeader: 'Другие площадки'\n    },\n    timeRange: {\n        title: {\n            for: 'за',\n            placeholder: 'Выберите период'\n        },\n        editor: {\n            from: 'с',\n            to: 'по',\n            apply: 'Применить',\n            cancel: 'Отмена',\n            rangeLabel: 'за период',\n            allTime: 'за все время',\n            currentQuarter: 'за текущий квартал',\n            currentYear: 'за текущий год'\n        },\n        durationTemplate: {\n            title: {\n                SEPARATOR: ' ',\n                LAST_PART_SEPARATOR: 'и',\n                YEARS: `{years, plural,\n                one {# год}\n                few {последние # лет}\n                other {последние # лет}\n            }`,\n                MONTHS: `{months, plural,\n                one {последний месяц}\n                few {последние # месяца}\n                other {последние # месяцев}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {последнюю неделю}\n                few {последние # недели}\n                other {последние # недель}\n            }`,\n                DAYS: `{days, plural,\n                one {последний день}\n                few {последние # дня}\n                other {последние # дней}\n            }`,\n                HOURS: `{hours, plural,\n                one {последний час}\n                few {последние # часа}\n                other {последние # часов}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {последнюю минуту}\n                few {последние # минуты}\n                other {последние # минут}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {последнюю секунду}\n                few {последние # секунды}\n                other {последние # секунд}\n            }`,\n                YEARS_FRACTION: `{years} лет`,\n                MONTHS_FRACTION: `{months} месяцев`\n            },\n            option: {\n                SEPARATOR: ' ',\n                LAST_PART_SEPARATOR: 'и',\n                YEARS: `{years, plural,\n                one {последний год}\n                few {последние # лет}\n                other {последние # лет}\n            }`,\n                MONTHS: `{months, plural,\n                one {последний месяц}\n                few {последние # месяца}\n                other {последние # месяцев}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {последняя неделя}\n                few {последние # недели}\n                other {последние # недель}\n            }`,\n                DAYS: `{days, plural,\n                one {последний день}\n                few {последние # дня}\n                other {последние # дней}\n            }`,\n                HOURS: `{hours, plural,\n                one {последний час}\n                few {последние # часа}\n                other {последние # часов}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {последняя минута}\n                few {последние # минуты}\n                other {последние # минут}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {последняя секунда}\n                few {последние # секунды}\n                other {последние # секунд}\n            }`,\n                YEARS_FRACTION: `{years} лет`,\n                MONTHS_FRACTION: `{months} месяцев`\n            }\n        }\n    } satisfies KbqTimeRangeLocaleConfig,\n    notificationCenter: {\n        notifications: 'Уведомления',\n        remove: 'Удалить',\n        doNotDisturb: 'Не беспокоить',\n        showPopUpNotifications: 'Показывать всплывающие уведомления',\n        noNotifications: 'Нет уведомлений',\n        failedToLoadNotifications: 'Не удалось загрузить уведомления',\n        repeat: 'Повторить',\n        loadingMore: 'Загрузка уведомлений'\n    }\n};\n","import {\n    KbqActionsPanelLocaleConfiguration,\n    KbqClampedTextLocaleConfig,\n    KbqCodeBlockLocaleConfiguration,\n    KbqFileUploadLocaleConfig,\n    KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const tkTMLocaleData = {\n    select: { hiddenItemsText: '+{{ number }}' },\n    datepicker: {\n        placeholder: 'gg.aa.ýý.',\n        dateInput: 'gg.aa.ýý.'\n    },\n    timepicker: {\n        placeholder: {\n            full: 'ss:mm:seksek',\n            short: 'ss:mm'\n        }\n    },\n    fileUpload: {\n        single: {\n            captionText: 'Faýly geçiriň ýa-da {{ browseLink }}',\n            captionTextOnlyFolder: 'Faýly geçiriň ýa-da {{ browseLinkFolder }}',\n            captionTextWithFolder: 'Faýly geçiriň ýa-da {{ browseLink }} ýa-da {{ browseLinkFolderMixed }}',\n            browseLink: 'saýlaň',\n            browseLinkFolder: 'bukja',\n            browseLinkFolderMixed: 'bukja'\n        },\n        multiple: {\n            captionText: 'Şu ýere geçiriň ýa-da {{ browseLink }}',\n            captionTextOnlyFolder: 'Şu ýere geçiriň ýa-da {{ browseLinkFolder }}',\n            captionTextWithFolder: 'Şu ýere geçiriň ýa-da {{ browseLink }} ýa-da {{ browseLinkFolderMixed }}',\n            captionTextWhenSelected: 'Ýene geçiriň ýa-da {{ browseLink }}',\n            captionTextForCompactSize: 'Faýllary geçiriň ýa-da {{ browseLink }}',\n            browseLink: 'saýlaň',\n            browseLinkFolder: 'bukja',\n            browseLinkFolderMixed: 'bukja',\n            title: 'Faýl ýükläň'\n        }\n    } satisfies KbqFileUploadLocaleConfig,\n    codeBlock: {\n        softWrapOnTooltip: 'Sözler boýunça geçirmäni işjeňleşdirmek',\n        softWrapOffTooltip: 'Sözler boýunça geçirmäni öçürmek',\n        downloadTooltip: 'Ýüklemek',\n        copiedTooltip: '✓ Göçürildi',\n        copyTooltip: 'Göçürmek',\n        viewAllText: 'Hemmesini görkezmek',\n        viewLessText: 'Ýygyrmak',\n        openExternalSystemTooltip: 'Daşarky ulgamda açmak'\n    } satisfies KbqCodeBlockLocaleConfiguration,\n    timezone: {\n        searchPlaceholder: 'Şäher ýa-da sagat guşagy'\n    },\n    actionsPanel: {\n        closeTooltip: 'Saýlawy ýatyr'\n    } satisfies KbqActionsPanelLocaleConfiguration,\n    filterBar: {\n        reset: {\n            buttonName: 'Täzeden düz'\n        },\n        search: {\n            tooltip: 'Gözleg',\n            placeholder: 'Gözleg'\n        },\n        filters: {\n            defaultName: 'Filtrler',\n            saveNewFilterTooltip: 'Täze filtri ýazdyr',\n            searchPlaceholder: 'Gözleg',\n            searchEmptyResult: 'Hiç zat tapylmady',\n            saveAsNewFilter: 'Täze filtr hökmünde ýazdyr',\n            saveChanges: 'Üýtgetmeleri ýazdyr',\n            saveAsNew: 'Täze hökmünde ýazdyr',\n            change: 'Düzet',\n            resetChanges: 'Täzeden düz',\n            remove: 'Poz',\n            name: 'At',\n            error: 'Şeýle atly gözleg eýýäm bar',\n            errorHint: 'Filtri ýazdyryp bolmady. Täzeden synanyň ýa-da administratora ýüz tutuň.',\n            saveButton: 'Ýazdyr',\n            cancelButton: 'Ýatyr'\n        },\n        add: {\n            tooltip: 'Filtr goş'\n        },\n        pipe: {\n            clearButtonTooltip: 'Arassala',\n            removeButtonTooltip: 'Ýokla',\n            applyButton: 'Ulan',\n            emptySearchResult: 'Hiç zat tapylmady',\n            selectAll: 'Ählisini saýla'\n        },\n        datePipe: {\n            customPeriod: 'Laýyk döwür',\n            customPeriodFrom: 'başy',\n            customPeriodTo: 'soňy',\n            customPeriodErrorHint: 'Döwür gutarýan wagtyndan soň başlap bilmeýär',\n            backToPeriodSelection: 'Yzyna'\n        }\n    },\n    clampedText: {\n        openText: 'Giňelt',\n        closeText: 'Ýap',\n        showMoreText: 'Ýene {exceededItemCount} görkeziň',\n        moreText: 'has köp'\n    } satisfies KbqClampedTextLocaleConfig,\n    navbarIc: {\n        toggle: {\n            pinButton: 'Rugsat giňeldildi',\n            collapseButton: 'Apseykylmak'\n        }\n    },\n    navbar: {\n        toggle: {\n            expand: 'Giňeltmek',\n            collapse: 'Ýykmak'\n        }\n    },\n    searchExpandable: {\n        tooltip: 'Gözleg',\n        placeholder: 'Gözleg'\n    },\n    appSwitcher: {\n        searchPlaceholder: 'Gözleg',\n        searchEmptyResult: 'Hiç zat tapylmady',\n        sitesHeader: 'Beýleki saýtlar'\n    },\n    timeRange: {\n        title: {\n            for: 'soňky',\n            placeholder: 'Möhleti saýla'\n        },\n        editor: {\n            from: 'şundan',\n            to: 'şuňa',\n            apply: 'Ulanmak',\n            cancel: 'Ýatyrmak',\n            rangeLabel: 'şu döwürde',\n            allTime: 'hemme döwür üçin',\n            currentQuarter: 'şu çärýek üçin',\n            currentYear: 'şu ýyl üçin'\n        },\n        durationTemplate: {\n            title: {\n                SEPARATOR: ' ',\n                LAST_PART_SEPARATOR: '',\n                YEARS: `{years, plural,\n                one {# ýyl}\n                other {# ýyl}\n            }`,\n                MONTHS: `{months, plural,\n                one {aý}\n                other {# aý}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {hepde}\n                other {# hepde}\n            }`,\n                DAYS: `{days, plural,\n                one {gün}\n                other {# gün}\n            }`,\n                HOURS: `{hours, plural,\n                one {sagat}\n                other {# sagat}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {minut}\n                other {# minut}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {sekunt}\n                other {# sekunt}\n            }`,\n                YEARS_FRACTION: `{years} ýyl`,\n                MONTHS_FRACTION: `{months} aý`\n            },\n            option: {\n                SEPARATOR: ' ',\n                LAST_PART_SEPARATOR: '',\n                YEARS: `{years, plural,\n                one {# ýyl}\n                other {# ýyl}\n            }`,\n                MONTHS: `{months, plural,\n                one {aý}\n                other {# aý}\n            }`,\n                WEEKS: `{weeks, plural,\n                one {hepde}\n                other {# hepde}\n            }`,\n                DAYS: `{days, plural,\n                one {gün}\n                other {# gün}\n            }`,\n                HOURS: `{hours, plural,\n                one {sagat}\n                other {# sagat}\n            }`,\n                MINUTES: `{minutes, plural,\n                one {minut}\n                other {# minut}\n            }`,\n                SECONDS: `{seconds, plural,\n                one {sekunt}\n                other {# sekunt}\n            }`,\n                YEARS_FRACTION: `{years} ýyl`,\n                MONTHS_FRACTION: `{months} aý`\n            }\n        }\n    } satisfies KbqTimeRangeLocaleConfig,\n    notificationCenter: {\n        notifications: 'Duýduryşlar',\n        remove: 'Aýyr',\n        doNotDisturb: 'Alada etme',\n        showPopUpNotifications: 'Açylýan bildirişleri görkeziň',\n        noNotifications: 'Duýduryş ýok',\n        failedToLoadNotifications: 'Duýduryşlary ýükläp bilmedi',\n        repeat: 'Gaýtalama',\n        loadingMore: 'Duýduryşlar ýüklenýär'\n    }\n};\n","import { KbqSizeUnitsConfig } from '../formatters';\nimport { KbqNumberFormatOptions, KbqNumberInputLocaleConfig } from './types';\n\nexport const enUSFormattersData = {\n    formatters: {\n        number: {\n            rounding: {\n                separator: '',\n                groupSeparator: '.',\n                thousand: 'K',\n                million: 'M',\n                billion: 'B',\n                trillion: 'T'\n            }\n        }\n    },\n    input: {\n        number: {\n            groupSeparator: [','],\n            fractionSeparator: '.'\n        } satisfies KbqNumberInputLocaleConfig\n    },\n    sizeUnits: {\n        defaultUnitSystem: 'SI',\n        defaultPrecision: 2,\n        unitSystems: {\n            SI: {\n                abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n                base: 10,\n                power: 3\n            },\n            IEC: {\n                abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n                base: 2,\n                power: 10\n            }\n        }\n    } satisfies KbqSizeUnitsConfig\n};\n\nexport const esLAFormattersData = {\n    formatters: {\n        number: {\n            rounding: {\n                separator: '',\n                groupSeparator: ',',\n                thousand: 'K',\n                million: 'M',\n                billion: 'MRD',\n                trillion: 'B'\n            },\n            decimal: {\n                viewGroupSeparator: '\\u2009'\n            } satisfies KbqNumberFormatOptions\n        }\n    },\n    input: {\n        number: {\n            // nbsp is generated automatically and used by default in spec\n            groupSeparator: [' ', ' ', '\\u2009'],\n            fractionSeparator: ',',\n            viewGroupSeparator: '\\u2009'\n        } satisfies KbqNumberInputLocaleConfig\n    },\n    sizeUnits: {\n        defaultUnitSystem: 'SI',\n        defaultPrecision: 2,\n        unitSystems: {\n            SI: {\n                abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n                base: 10,\n                power: 3\n            },\n            IEC: {\n                abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n                base: 2,\n                power: 10\n            }\n        }\n    }\n};\n\nexport const ptBRFormattersData = {\n    formatters: {\n        number: {\n            rounding: {\n                separator: ' ',\n                groupSeparator: ',',\n                thousand: 'mil',\n                million: 'mi',\n                billion: 'bi',\n                trillion: 'tri'\n            }\n        }\n    },\n    input: {\n        number: {\n            groupSeparator: ['.'],\n            fractionSeparator: ','\n        } satisfies KbqNumberInputLocaleConfig\n    },\n    sizeUnits: {\n        defaultUnitSystem: 'SI',\n        defaultPrecision: 2,\n        unitSystems: {\n            SI: {\n                abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n                base: 10,\n                power: 3\n            },\n            IEC: {\n                abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n                base: 2,\n                power: 10\n            }\n        }\n    }\n};\n\nexport const ruRUFormattersData = {\n    formatters: {\n        number: {\n            rounding: {\n                separator: ' ',\n                groupSeparator: ',',\n                thousand: 'К',\n                million: 'М',\n                billion: 'М',\n                trillion: 'Т'\n            },\n            decimal: {\n                viewGroupSeparator: '\\u2009'\n            } satisfies KbqNumberFormatOptions\n        }\n    },\n    input: {\n        number: {\n            // nbsp is generated automatically and used by default in spec\n            groupSeparator: [' ', ' ', '\\u2009'],\n            fractionSeparator: ',',\n            startFormattingFrom: 4,\n            viewGroupSeparator: '\\u2009'\n        } satisfies KbqNumberInputLocaleConfig\n    },\n    sizeUnits: {\n        defaultUnitSystem: 'SI',\n        defaultPrecision: 2,\n        unitSystems: {\n            SI: {\n                abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n                base: 10,\n                power: 3\n            },\n            IEC: {\n                abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n                base: 2,\n                power: 10\n            }\n        }\n    }\n};\n\nexport const tkTMFormattersData = {\n    formatters: {\n        number: {\n            rounding: {\n                separator: ' ',\n                groupSeparator: '',\n                thousand: 'M',\n                million: 'Mn',\n                billion: 'Mr',\n                trillion: 'Tn'\n            }\n        }\n    },\n    input: {\n        number: {\n            groupSeparator: [' ', ' ', '\\u2009'],\n            fractionSeparator: ',',\n            viewGroupSeparator: '\\u2009'\n        } satisfies KbqNumberInputLocaleConfig\n    },\n    sizeUnits: {\n        defaultUnitSystem: 'SI',\n        defaultPrecision: 2,\n        unitSystems: {\n            SI: {\n                abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n                base: 10,\n                power: 3\n            },\n            IEC: {\n                abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n                base: 2,\n                power: 10\n            }\n        }\n    }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, inject, Injectable, InjectionToken, Optional, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { enUSLocaleData } from './en-US';\nimport { esLALocaleData } from './es-LA';\nimport {\n    enUSFormattersData,\n    esLAFormattersData,\n    ptBRFormattersData,\n    ruRUFormattersData,\n    tkTMFormattersData\n} from './formatters';\nimport { ptBRLocaleData } from './pt-BR';\nimport { ruRULocaleData } from './ru-RU';\nimport { tkTMLocaleData } from './tk-TM';\nimport { KbqNumberInputLocaleConfig } from './types';\n\nexport const KBQ_LOCALE_ID = new InjectionToken<string>('KbqLocaleId');\n\nexport const KBQ_DEFAULT_LOCALE_ID = 'ru-RU';\n\nexport function KBQ_DEFAULT_LOCALE_DATA_FACTORY() {\n    return {\n        items: [\n            { id: 'en-US', name: 'English' },\n            { id: 'es-LA', name: 'Español' },\n            { id: 'pt-BR', name: 'Português' },\n            { id: 'ru-RU', name: 'Русский' },\n            { id: 'tk-TM', name: 'Türkmen' }\n        ],\n        'en-US': { ...enUSLocaleData, ...enUSFormattersData },\n        'es-LA': { ...esLALocaleData, ...esLAFormattersData },\n        'pt-BR': { ...ptBRLocaleData, ...ptBRFormattersData },\n        'ru-RU': { ...ruRULocaleData, ...ruRUFormattersData },\n        'tk-TM': { ...tkTMLocaleData, ...tkTMFormattersData }\n    };\n}\nexport const KBQ_LOCALE_DATA = new InjectionToken<any>('KBQ_LOCALE_DATA', {\n    providedIn: 'root',\n    factory: KBQ_DEFAULT_LOCALE_DATA_FACTORY\n});\n\nexport const KBQ_LOCALE_SERVICE = new InjectionToken<KbqLocaleService>('KBQ_LOCALE_SERVICE');\n\n/**\n * Attribute name to be used to set the locale in the html element.\n *\n * @default 'lang'\n *\n * @docs-private\n */\nexport const KBQ_LOCALE_SERVICE_LANG_ATTR_NAME = new InjectionToken<string>('KBQ_LOCALE_SERVICE_LANG_ATTR_NAME', {\n    factory: () => 'lang'\n});\n\n/**\n * Utility provider to configure the attribute name to be used to set the locale in the html element.\n *\n * @see KBQ_LOCALE_SERVICE_LANG_ATTR_NAME\n *\n * @docs-private\n */\nexport const kbqLocaleServiceLangAttrNameProvider = (attrName: string): Provider => ({\n    provide: KBQ_LOCALE_SERVICE_LANG_ATTR_NAME,\n    useValue: attrName\n});\n\n@Injectable({ providedIn: 'root' })\nexport class KbqLocaleService {\n    readonly changes: BehaviorSubject<string>;\n    readonly locales: any = {};\n\n    private readonly document = inject(DOCUMENT);\n\n    id: string;\n    current;\n\n    private readonly langAttrName = inject(KBQ_LOCALE_SERVICE_LANG_ATTR_NAME);\n\n    constructor(@Optional() @Inject(KBQ_LOCALE_ID) id: string, @Optional() @Inject(KBQ_LOCALE_DATA) localeData) {\n        this.locales = localeData;\n\n        this.id = id || KBQ_DEFAULT_LOCALE_ID;\n        this.current = this.locales[this.id];\n\n        this.changes = new BehaviorSubject(this.id);\n    }\n\n    setLocale(id: string) {\n        this.id = id;\n        this.current = this.locales[this.id];\n\n        this.document.documentElement.setAttribute(this.langAttrName, this.id);\n\n        this.changes.next(this.id);\n    }\n\n    addLocale(id: string, localeData) {\n        this.id = id;\n        this.changes.next(this.id);\n\n        this.locales[this.id] = localeData;\n    }\n\n    getParams(componentName: string) {\n        return this.current[componentName];\n    }\n}\n\n// todo code below need refactor or delete in DS-3603\n/** @docs-private */\nexport const KBQ_DEFAULT_PRECISION_SEPARATOR = '.';\n\n/** @docs-private */\nexport function numberByParts(\n    value: string,\n    customConfig: Pick<KbqNumberInputLocaleConfig, 'fractionSeparator' | 'groupSeparator'>\n): { integer: string; fraction: string } {\n    const { groupSeparator, fractionSeparator } = customConfig;\n    const result = { integer: '', fraction: '' };\n    let parsedValue = value;\n\n    // normalize only when '.', ',' are used as fractionSeparators\n    if (groupSeparator.includes(' ') && fractionSeparator === ',') {\n        parsedValue = parsedValue.replace(/\\./g, ',');\n    }\n\n    const isNegative = parsedValue.startsWith('-');\n    const numberByParts = parsedValue.split(fractionSeparator).filter(Boolean);\n\n    if (numberByParts.length > 1) {\n        result.fraction = numberByParts.pop() || '';\n        result.integer = numberByParts\n            .join()\n            .replace(groupSeparator.join(''), '')\n            .replace(fractionSeparator, '')\n            .replace(/\\D/g, '');\n    } else {\n        result.integer = numberByParts.join().replace(groupSeparator[0], '').replace(/\\D/g, '');\n    }\n\n    if (isNegative) result.integer = `-${result.integer}`;\n\n    return result;\n}\n\n/**\n * Function that returns a string representation of a number without localized separators\n */\nexport function normalizeNumber(\n    value: string | null | undefined,\n    customConfig: Pick<KbqNumberInputLocaleConfig, 'fractionSeparator' | 'groupSeparator'>\n): string {\n    if (value === null || value === undefined) return '';\n\n    const { groupSeparator, fractionSeparator } = customConfig;\n    const groupSeparatorRegexp = new RegExp(`[${groupSeparator.join('')}]`, 'g');\n    const fractionSeparatorRegexp = new RegExp(`\\\\${fractionSeparator}`, 'g');\n\n    return value\n        .toString()\n        .replace(groupSeparatorRegexp, '')\n        .replace(fractionSeparatorRegexp, KBQ_DEFAULT_PRECISION_SEPARATOR);\n}\n\n/**\n * Function that parse string and return a number. The string can be in any locale.\n */\nexport function checkAndNormalizeLocalizedNumber(num: string | null | undefined, locale?: string): number | null {\n    if (num === null || num === undefined) return null;\n\n    const locales = KBQ_DEFAULT_LOCALE_DATA_FACTORY();\n\n    if (locale && locales[locale]) {\n        const config = locales[locale].input.number;\n        let normalized: number;\n\n        if (!/\\d/g.test(num)) return +num;\n\n        const { integer, fraction } = numberByParts(num, config);\n\n        if (fraction) {\n            normalized = +[integer, fraction].join('.');\n        } else {\n            normalized = +normalizeNumber(integer, config);\n        }\n\n        if (!Number.isNaN(normalized)) {\n            return normalized;\n        }\n    }\n\n    /* if some locale input config satisfies pasted number, try to normalise with selected locale config */\n    let numberOutput: number | null = null;\n\n    for (const config of locales.items.map(({ id }) => locales[id].input.number)) {\n        const normalized = +normalizeNumber(num, config);\n\n        if (!Number.isNaN(normalized)) {\n            numberOutput = normalized;\n            break;\n        }\n    }\n\n    return numberOutput;\n}\n\n// todo code above need refactor or delete in DS-3603\n","import { NgModule } from '@angular/core';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from './locale-service';\n\n@NgModule({\n    providers: [\n        { provide: KBQ_LOCALE_SERVICE, useClass: KbqLocaleService }\n    ]\n})\nexport class KbqLocaleServiceModule {}\n","import { inject, Inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DateAdapter } from '@koobiq/date-adapter';\nimport { DateFormatter as BaseDateFormatter } from '@koobiq/date-formatter';\nimport { KBQ_DATE_LOCALE } from '../../datetime';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from '../../locales';\n\n@Injectable()\nexport class DateFormatter<D> extends BaseDateFormatter<D> {\n    protected localeService = inject<KbqLocaleService>(KBQ_LOCALE_SERVICE, { optional: true });\n    constructor(\n        override readonly adapter: DateAdapter<D>,\n        @Inject(KBQ_DATE_LOCALE) locale: string\n    ) {\n        super(adapter, locale);\n\n        this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe((locale) => this.setLocale(locale));\n    }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DateTimeOptions } from '@koobiq/date-formatter';\nimport { DateAdapter } from '../../datetime';\nimport { DateFormatter } from './formatter';\n\nexport class BaseFormatterPipe<D> {\n    protected readonly adapter: DateAdapter<D> = inject(DateAdapter<D>);\n    protected readonly formatter: DateFormatter<D> = inject(DateFormatter<D>);\n}\n\n@Pipe({\n    name: 'absoluteLongDate'\n})\nexport class AbsoluteDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform(value: D | string, currYear?: boolean): string {\n        const date = this.adapter.deserialize(value);\n\n        return date ? this.formatter.absoluteLongDate(date, currYear) : '';\n    }\n}\n\n@Pipe({\n    name: 'absoluteLongDateImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateFormatterImpurePipe<D> extends AbsoluteDateFormatterPipe<D> {\n    transform(value: string | D, currYear?: boolean): string {\n        return super.transform(value, currYear);\n    }\n}\n\n@Pipe({\n    name: 'absoluteLongDateTime'\n})\nexport class AbsoluteDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform(value: D | string, options?: DateTimeOptions): string {\n        const date = this.adapter.deserialize(value);\n\n        return date ? this.formatter.absoluteLongDateTime(date, options) : '';\n    }\n}\n\n@Pipe({\n    name: 'absoluteLongDateTimeImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateTimeFormatterImpurePipe<D> extends AbsoluteDateTimeFormatterPipe<D> {\n    transform(value: string | D, options?: DateTimeOptions): string {\n        return super.transform(value, options);\n    }\n}\n\n@Pipe({\n    name: 'absoluteShortDate'\n})\nexport class AbsoluteDateShortFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform(value: D | string, currYear?: boolean): string {\n        const date = this.adapter.deserialize(value);\n\n        return date ? this.formatter.absoluteShortDate(date, currYear) : '';\n    }\n}\n\n@Pipe({\n    name: 'absoluteShortDateImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateShortFormatterImpurePipe<D> extends AbsoluteDateShortFormatterPipe<D> {\n    transform(value: string | D, currYear?: boolean): string {\n        return super.transform(value, currYear);\n    }\n}\n\n@Pipe({\n    name: 'absoluteShortDateTime'\n})\nexport class AbsoluteShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform(value: D | string, options?: DateTimeOptions): string {\n        const date = this.adapter.deserialize(value);\n\n        return date ? this.formatter.absoluteShortDateTime(date, options) : '';\n    }\n}\n\n@Pipe({\n    name: 'absoluteShortDateTimeImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteShortDateTimeFormatterImpurePipe<D> extends AbsoluteShortDateTimeFormatterPipe<D> {\n    transform(value: string | D, options?: DateTimeOptions): string {\n        return super.transform(value, options);\n    }\n}\n\n@Pipe({\n    name: 'relativeLongDate'\n})\nexport class RelativeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform(value: D | string): string {\n        const date = this.adapter.deserialize(value);\n\n        return date ? this.formatter.relativeLongDate(date) : '';\n    }\n}\n\n@Pipe({\n    name: 'relativeLongDateImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateFormatterImpurePipe<D> extends RelativeDateFormatterPipe<D> {\n    transform(value: string | D): string {\n        return super.transform(value);\n    }\n}\n\n@Pipe({\n    name: 'relativeLongDateTime'\n})\nexport class RelativeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform(value: D | string, options?: DateTimeOptions): string {\n        const date = this.adapter.deserialize(value);\n\n        return date ? this.formatter.relativeLongDateTime(date, options) : '';\n    }\n}\n\n@Pipe({\n    name: 'relativeLongDateTimeImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateTimeFormatterImpurePipe<D> extends RelativeDateTimeFormatterPipe<D> {\n    transform(value: string | D, options?: DateTimeOptions): string {\n        return super.transform(value, options);\n    }\n}\n\n@Pipe({\n    name: 'relativeShortDate'\n})\nexport class RelativeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform(value: D | string): string {\n        const date = this.adapter.deserialize(value);\n\n        return date ? this.formatter.relativeShortDate(date) : '';\n    }\n}\n\n@Pipe({\n    name: 'relativeShortDateImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateFormatterImpurePipe<D> extends RelativeShortDateFormatterPipe<D> {\n    transform(value: string | D): string {\n        return super.transform(value);\n    }\n}\n\n@Pipe({\n    name: 'relativeShortDateTime'\n})\nexport class RelativeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform(value: D | string, options?: DateTimeOptions): string {\n        const date = this.adapter.deserialize(value);\n\n        return date ? this.formatter.relativeShortDateTime(date, options) : '';\n    }\n}\n\n@Pipe({\n    name: 'relativeShortDateTimeImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateTimeFormatterImpurePipe<D> extends RelativeShortDateTimeFormatterPipe<D> {\n    transform(value: string | D, options?: DateTimeOptions): string {\n        return super.transform(value, options);\n    }\n}\n\n@Pipe({\n    name: 'rangeLongDate'\n})\nexport class RangeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform([value1, value2]: D[] | string[]): string {\n        const date1 = this.adapter.deserialize(value1);\n        const date2 = this.adapter.deserialize(value2);\n\n        return this.formatter.rangeLongDate(date1 as D, date2 as D);\n    }\n}\n\n@Pipe({\n    name: 'rangeLongDateImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateFormatterImpurePipe<D> extends RangeDateFormatterPipe<D> {\n    transform([value1, value2]: D[] | string[]): string {\n        return super.transform([value1, value2] as D[] | string[]);\n    }\n}\n\n@Pipe({\n    name: 'rangeShortDate'\n})\nexport class RangeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform([value1, value2]: D[] | string[]): string {\n        const date1 = this.adapter.deserialize(value1);\n        const date2 = this.adapter.deserialize(value2);\n\n        return this.formatter.rangeShortDate(date1 as D, date2 as D);\n    }\n}\n\n@Pipe({\n    name: 'rangeShortDateImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateFormatterImpurePipe<D> extends RangeShortDateFormatterPipe<D> {\n    transform([value1, value2]: D[] | string[]): string {\n        return super.transform([value1, value2] as D[] | string[]);\n    }\n}\n\n@Pipe({\n    name: 'rangeLongDateTime'\n})\nexport class RangeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n        const date1 = this.adapter.deserialize(value1);\n        const date2 = this.adapter.deserialize(value2);\n\n        return this.formatter.rangeLongDateTime(date1 as D, date2 as D, options);\n    }\n}\n\n@Pipe({\n    name: 'rangeLongDateTimeImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateTimeFormatterImpurePipe<D> extends RangeDateTimeFormatterPipe<D> {\n    transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n        return super.transform([value1, value2] as D[] | string[], options);\n    }\n}\n\n@Pipe({\n    name: 'rangeMiddleDateTime'\n})\nexport class RangeMiddleDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n        const date1 = this.adapter.deserialize(value1);\n        const date2 = this.adapter.deserialize(value2);\n\n        return this.formatter.rangeMiddleDateTime(date1 as D, date2 as D, options);\n    }\n}\n\n@Pipe({\n    name: 'rangeMiddleDateTimeImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeMiddleDateTimeFormatterImpurePipe<D> extends RangeMiddleDateTimeFormatterPipe<D> {\n    transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n        return super.transform([value1, value2] as D[] | string[], options);\n    }\n}\n\n@Pipe({\n    name: 'rangeShortDateTime'\n})\nexport class RangeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n    transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n        const date1 = this.adapter.deserialize(value1);\n        const date2 = this.adapter.deserialize(value2);\n\n        return this.formatter.rangeShortDateTime(date1 as D, date2 as D, options);\n    }\n}\n\n@Pipe({\n    name: 'rangeShortDateTimeImpurePipe',\n    pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateTimeFormatterImpurePipe<D> extends RangeShortDateTimeFormatterPipe<D> {\n    transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n        return super.transform([value1, value2] as D[] | string[], options);\n    }\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { enUSFormattersData } from '../../locales';\n\n/**\n * @deprecated Will be removed in next major release. Use `KbqMeasurementSystem` instead.\n * @docs-private\n */\nexport enum MeasurementSystem {\n    SI = 'SI',\n    IEC = 'IEC'\n}\n\n/**\n * Available unit systems for file size formatting.\n * - SI (Metric): 1 KB = 1000 bytes\n * - IEC (Binary): 1 KiB = 1024 bytes\n */\nexport enum KbqMeasurementSystem {\n    SI = 'SI',\n    IEC = 'IEC'\n}\n\n/** Unit systems as union type */\nexport type KbqMeasurementSystemType = keyof typeof KbqMeasurementSystem;\n\nexport interface KbqUnitSystem {\n    abbreviations: string[];\n    base: number;\n    power: number;\n}\n\n/**\n * @deprecated Will be removed in next major release. Use `KbqSizeUnitsConfig` instead.\n * @docs-private\n */\nexport interface SizeUnitsConfig {\n    defaultUnitSystem: string;\n    defaultPrecision: number;\n    unitSystems: {\n        [MeasurementSystem.SI]: KbqUnitSystem;\n        [MeasurementSystem.IEC]: KbqUnitSystem;\n    };\n}\n\n/**\n * Configuration for file size formatting options.\n * Defines the default unit system, precision, and available unit systems.\n */\nexport interface KbqSizeUnitsConfig {\n    /**\n     * Default unit system to use (e.g., 'SI' or 'IEC').\n     * @see KbqMeasurementSystem\n     */\n    defaultUnitSystem: KbqMeasurementSystemType;\n    /**\n     * Default number of decimal places to display in formatted output.\n     * @example\n     * `2` → \"1.23 KB\"\n     */\n    defaultPrecision: number;\n    /** @see KbqMeasurementSystem */\n    unitSystems: {\n        [KbqMeasurementSystem.SI]: KbqUnitSystem;\n        [KbqMeasurementSystem.IEC]: KbqUnitSystem;\n    };\n}\n\nexport const KBQ_SIZE_UNITS_DEFAULT_CONFIG: KbqSizeUnitsConfig = enUSFormattersData.sizeUnits;\n\n/**\n * Configuration for converting sizes in different unit systems.\n */\nexport const KBQ_SIZE_UNITS_CONFIG = new InjectionToken<KbqSizeUnitsConfig>('KbqSizeUnitsConfig');\n\n/** Utility provider for `KBQ_SIZE_UNITS_CONFIG`. */\nexport const kbqFilesizeFormatterConfigurationProvider = (configuration: Partial<KbqSizeUnitsConfig>): Provider => ({\n    provide: KBQ_SIZE_UNITS_CONFIG,\n    useValue: { ...KBQ_SIZE_UNITS_DEFAULT_CONFIG, ...configuration }\n});\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Inject, Injectable, InjectionToken, Optional, Pipe, PipeTransform } from '@angular/core';\nimport {\n    KBQ_DEFAULT_LOCALE_ID,\n    KBQ_LOCALE_ID,\n    KBQ_LOCALE_SERVICE,\n    KbqLocaleService,\n    KbqNumberFormatOptions\n} from '../../locales';\n\nexport const KBQ_NUMBER_FORMATTER_OPTIONS = new InjectionToken<ParsedDigitsInfo>('KbqNumberFormatterOptions');\n\nexport const KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS: ParsedDigitsInfo = {\n    useGrouping: true,\n    minimumIntegerDigits: 1,\n    minimumFractionDigits: 0,\n    maximumFractionDigits: 3\n};\n\n/** Formats a number value according to locale and formatting options */\nexport function formatNumberWithLocale(\n    value: unknown,\n    formatter: Intl.NumberFormat,\n    options?: KbqNumberFormatOptions\n): string {\n    const num = strToNumber(value);\n\n    if (!options?.viewGroupSeparator) return formatter.format(num);\n\n    const numberFormatParts = formatter.formatToParts(num);\n\n    for (const numberFormatPart of numberFormatParts) {\n        if (numberFormatPart.type === 'group') {\n            numberFormatPart.value = options.viewGroupSeparator;\n        }\n    }\n\n    return numberFormatParts.map(({ value }) => value).join('');\n}\n\n/**\n * Special contract between `KbqDecimalPipe` and `KbqTableNumberPipe`,\n * so they can be interchangeable in the cases of usage\n */\nexport interface KbqNumericPipe {\n    transform(value: unknown, digitsInfo?: string, locale?: string): string | null;\n}\n\nfunction isEmpty(value: any): boolean {\n    return value == null || value === '' || value !== value;\n}\n\nfunction strToNumber(value: unknown): number {\n    const coerced = coerceNumberProperty(value, null);\n\n    if (coerced === null) {\n        throw new Error(`${value} is not a number`);\n    }\n\n    return coerced;\n}\n\nexport const NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?(-(true|false))?)?$/;\n\nconst minIntGroupPosition = 1;\nconst minFractionGroupPosition = 3;\nconst maxFractionGroupPosition = 5;\nconst useGroupingPosition = 7;\n\ninterface RoundDecimalOptions {\n    separator: string;\n    groupSeparator: string;\n    thousands?: string;\n    tenThousand?: string;\n    million?: string;\n    oneHundredMillions?: string;\n    billion?: string;\n    trillion: string;\n    rtl?: boolean;\n}\n\nconst ROUNDING_UNITS = {\n    thousand: 1e3,\n    tenThousand: 10 * 1e3,\n    million: 1e6,\n    oneHundredMillions: 100 * 1e6,\n    billion: 1e9,\n    trillion: 1e12\n};\n\nconst intervalsConfig = {\n    supportedLanguages: ['ru-RU', 'en-US', 'es-LA', 'pt-BR'],\n    intervals: [\n        { startRange: 1, endRange: ROUNDING_UNITS.thousand },\n        { startRange: ROUNDING_UNITS.thousand, endRange: ROUNDING_UNITS.tenThousand, precision: 1 },\n        { startRange: ROUNDING_UNITS.tenThousand, endRange: ROUNDING_UNITS.million },\n        { startRange: ROUNDING_UNITS.million, endRange: ROUNDING_UNITS.million * 10, precision: 1 },\n        { startRange: ROUNDING_UNITS.million * 10, endRange: ROUNDING_UNITS.billion }\n    ]\n};\n\nclass ParsedDigitsInfo {\n    useGrouping: boolean;\n    minimumIntegerDigits: number;\n    minimumFractionDigits: number;\n    maximumFractionDigits: number;\n}\n\nconst defaultValueForGroupingInRULocale: number = 10000;\n\nfunction parseDigitsInfo(digitsInfo: string): ParsedDigitsInfo {\n    const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n\n    if (parts === null) {\n        throw new Error(`${digitsInfo} is not a valid digit info`);\n    }\n\n    const minIntPart = parts[minIntGroupPosition];\n    const minFractionPart = parts[minFractionGroupPosition];\n    const maxFractionPart = parts[maxFractionGroupPosition];\n    const useGroupingPart = parts[useGroupingPosition];\n\n    const result = new ParsedDigitsInfo();\n\n    if (minIntPart != null) {\n        result.minimumIntegerDigits = parseInt(minIntPart);\n    }\n\n    if (minFractionPart != null) {\n        result.minimumFractionDigits = parseInt(minFractionPart);\n    }\n\n    if (maxFractionPart != null) {\n        result.maximumFractionDigits = parseInt(maxFractionPart);\n    } else if (minFractionPart != null && result.minimumFractionDigits > result.maximumFractionDigits) {\n        result.maximumFractionDigits = result.minimumFractionDigits;\n    }\n\n    if (useGroupingPart != null) {\n        result.useGrouping = useGroupingPart === 'true';\n    }\n\n    return result;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n    name: 'kbqNumber',\n    pure: false\n})\nexport class KbqDecimalPipe implements KbqNumericPipe, PipeTransform {\n    constructor(\n        @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n        @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService,\n        @Optional() @Inject(KBQ_NUMBER_FORMATTER_OPTIONS) private readonly options: ParsedDigitsInfo\n    ) {\n        this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n        this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n    }\n\n    /**\n     * @param value The number to be formatted.\n     * @param digitsInfo Decimal representation options, specified by a string\n     * in the following format:<br>\n     * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n     *   - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n     * Default is `1`.\n     *   - `minFractionDigits`: The minimum number of digits after the decimal point.\n     * Default is `0`.\n     *   - `maxFractionDigits`: The maximum number of digits after the decimal point.\n     * Default is `3`.\n     * @param locale A locale code for the locale format rules to use.\n     * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n     */\n    transform(value: any, digitsInfo?: string, locale?: string): string | null {\n        if (isEmpty(value)) {\n            return null;\n        }\n\n        const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n        let parsedDigitsInfo: ParsedDigitsInfo | undefined;\n\n        if (digitsInfo) {\n            parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n        }\n\n        const options: Intl.NumberFormatOptions = {\n            ...this.options,\n            ...parsedDigitsInfo\n        };\n\n        if (this.isSpecialFormatForRULocale(currentLocale, value, parsedDigitsInfo?.useGrouping)) {\n            options.useGrouping = false;\n        }\n\n        try {\n            const formatter = new Intl.NumberFormat(currentLocale, options);\n\n            return formatNumberWithLocale(\n                value,\n                formatter,\n                this.localeService?.locales[currentLocale]?.formatters.number.decimal\n            );\n        } catch (error: any) {\n            throw Error(`InvalidPipeArgument: KbqDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n        }\n    }\n\n    isSpecialFormatForRULocale(locale: string, value: number, grouping?: boolean): boolean {\n        return (\n            ['ru', 'ru-RU'].includes(locale) &&\n            grouping === undefined &&\n            Math.abs(value) < defaultValueForGroupingInRULocale\n        );\n    }\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n    name: 'kbqTableNumber',\n    pure: false\n})\nexport class KbqTableNumberPipe implements KbqNumericPipe, PipeTransform {\n    constructor(\n        @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n        @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService,\n        @Optional() @Inject(KBQ_NUMBER_FORMATTER_OPTIONS) private readonly options: ParsedDigitsInfo\n    ) {\n        this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n        this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n    }\n\n    /**\n     * @param value The number to be formatted.\n     * @param digitsInfo Decimal representation options, specified by a string\n     * in the following format:<br>\n     * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n     *   - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n     * Default is `1`.\n     *   - `minFractionDigits`: The minimum number of digits after the decimal point.\n     * Default is `0`.\n     *   - `maxFractionDigits`: The maximum number of digits after the decimal point.\n     * Default is `3`.\n     * @param locale A locale code for the locale format rules to use.\n     * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n     */\n    transform(value: any, digitsInfo?: string, locale?: string): string | null {\n        if (isEmpty(value)) {\n            return null;\n        }\n\n        const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n        let parsedDigitsInfo: ParsedDigitsInfo | undefined;\n\n        if (digitsInfo) {\n            parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n        }\n\n        const options: Intl.NumberFormatOptions = {\n            ...this.options,\n            ...parsedDigitsInfo\n        };\n\n        try {\n            const formatter = new Intl.NumberFormat(currentLocale, options);\n\n            return formatNumberWithLocale(\n                value,\n                formatter,\n                this.localeService?.locales[currentLocale]?.formatters.number.decimal\n            );\n        } catch (error: any) {\n            throw Error(`InvalidPipeArgument: KbqTableNumberPipe for pipe '${JSON.stringify(error.message)}'`);\n        }\n    }\n}\n\nexport function isWithin(startRange: number, endRange: number, valueToCheck: number): boolean {\n    return startRange <= valueToCheck && valueToCheck < endRange;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n    name: 'kbqRoundNumber',\n    pure: false\n})\nexport class KbqRoundDecimalPipe implements PipeTransform {\n    roundingOptions: RoundDecimalOptions;\n\n    constructor(\n        @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n        @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService\n    ) {\n        this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n    }\n\n    transform(value: any, locale?: string): any {\n        if (isEmpty(value)) {\n            return null;\n        }\n\n        const currentLocale: string = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n        this.roundingOptions = this.localeService?.locales[currentLocale].formatters.number.rounding;\n\n        try {\n            const num = strToNumber(value);\n            const unit = this.calculateUnit(num);\n\n            if (!unit) {\n                return Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(num);\n            }\n\n            let parts: { num?: number; fraction?: number } = {};\n\n            if (intervalsConfig.supportedLanguages.includes(currentLocale)) {\n                intervalsConfig.intervals.find(({ startRange, endRange, precision }) => {\n                    const within = isWithin(startRange, endRange, num);\n\n                    if (within) {\n                        if (precision) {\n                            parts =\n                                unit === 'thousand'\n                                    ? this.calculatePartsForThousands(num)\n                                    : {\n                                          num: Math.trunc(num / ROUNDING_UNITS[unit]),\n                                          fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n                                      };\n                        } else {\n                            parts = { num: Math.round(num / ROUNDING_UNITS[unit]) };\n                        }\n                    }\n\n                    return within;\n                });\n            }\n\n            parts = parts.num\n                ? parts\n                : {\n                      num: Math.trunc(num / ROUNDING_UNITS[unit]),\n                      fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n                  };\n            Object.keys(parts).forEach((key) => {\n                parts[key] = Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(parts[key]);\n            });\n\n            const calculatedValue = parts.fraction\n                ? `${parts.num}${this.roundingOptions.groupSeparator}${parts.fraction}`\n                : `${parts.num}`;\n\n            return `${calculatedValue}${this.roundingOptions.separator}${this.roundingOptions[unit]}`;\n        } catch (error: any) {\n            throw Error(`InvalidPipeArgument: KbqRoundDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n        }\n    }\n\n    private calculateDecimal(num: number, divider: number) {\n        return Math.round(((num / divider) % 1) * 10);\n    }\n\n    /**\n     * 2 * 1000 is a number in the interval of [1500...2500)\n     *\n     * 2,0 * 1000 is a number in the interval of [1950...2050)\n     */\n    private calculatePartsForThousands(num: number) {\n        const dividedValue = num / ROUNDING_UNITS.thousand;\n        const div = Math.round(dividedValue) * ROUNDING_UNITS.thousand;\n        const fifty = 50;\n\n        return isWithin(div - fifty, div + fifty, num)\n            ? { num: Math.round(dividedValue), fraction: 0 }\n            : { num: Math.round(dividedValue) };\n    }\n\n    private calculateUnit(num: number): string | undefined {\n        let currentUnit: string | undefined;\n        const localizedOptions = Object.keys(this.roundingOptions);\n\n        Object.keys(ROUNDING_UNITS).every((key) => {\n            if (!localizedOptions.includes(key)) {\n                return true;\n            }\n\n            if (num / ROUNDING_UNITS[key] >= 1) {\n                currentUnit = key;\n\n                return true;\n            }\n\n            return false;\n        });\n\n        return currentUnit;\n    }\n}\n","import { KbqUnitSystem } from './config';\n\nexport const KBQ_INVALID_VALUE_ERROR = 'Argument \"value\" must be a finite number!';\n\n/**\n * @deprecated Will be removed in next major release. Use `getFormattedSizeParts` instead.\n * @docs-private\n */\nexport const formatDataSize = (\n    value: number,\n    precision: number,\n    system: KbqUnitSystem\n): { value: string; unit: string } => {\n    const { result, unit } = getHumanizedBytes(value, system);\n    let volume: string;\n\n    if (system.abbreviations[0] === unit) {\n        volume = result.toString();\n    } else {\n        volume = result.toFixed(precision).replace(/\\./g, ',');\n    }\n\n    return {\n        value: volume,\n        unit\n    };\n};\n\n/**\n * Converts a byte value into locale-independent file size parts: numeric value and unit abbreviation.\n *\n * @param value - size in bytes.\n * @param system - unit system defining abbreviations and base scaling (SI/IEC).\n * @returns Object with the formatted size info.\n *\n * @example\n * getFormattedSizeParts(1500, 'SI'); // { value: \"1.50\", unit: \"KB\" }\n */\nexport function getFormattedSizeParts(value: number, system: KbqUnitSystem): { value: string; unit: string };\n/**\n * Converts a byte value into locale-independent file size parts: numeric value and unit abbreviation.\n *\n * @param value - size in bytes.\n * @param _precision param is deprecated, use `Intl.NumberFormat` rounding options instead.\n * @param system - unit system defining abbreviations and base scaling (SI/IEC).\n * @returns Object with the formatted size info.\n * @deprecated `_precision` - this param will be remove in next major version.\n * @TODO remove deprecated (#DS-3849).\n *\n * @example\n * getFormattedSizeParts(1500, 2, 'SI'); // { value: \"1.50\", unit: \"KB\" }\n */\nexport function getFormattedSizeParts(\n    value: number,\n    _precision: number,\n    system: KbqUnitSystem\n): { value: string; unit: string };\nexport function getFormattedSizeParts(\n    value: number,\n    _precision: number | KbqUnitSystem,\n    system?: KbqUnitSystem\n): { value: string; unit: string } {\n    let resolvedSystem: KbqUnitSystem | null = null;\n\n    if (arguments.length === 2 && typeof _precision === 'object') {\n        resolvedSystem = _precision satisfies KbqUnitSystem;\n    }\n\n    if (arguments.length === 3 && typeof _precision === 'number' && system) {\n        resolvedSystem = system;\n    }\n\n    if (!resolvedSystem) {\n        throw new Error('Unexpected arguments size');\n    }\n\n    const { result, unit } = getHumanizedBytes(value, resolvedSystem);\n\n    return {\n        value: result.toString(),\n        unit\n    };\n}\n\n/**\n * Converts bytes to Kb, Mb, Gb\n *\n * @param value the number of bytes\n * @param system the measurement system\n * @param threshold the lower counting threshold\n */\nexport const getHumanizedBytes = (\n    value: number,\n    system: KbqUnitSystem,\n    threshold?: number\n): { result: number; unit: string } => {\n    if (!Number.isFinite(value)) {\n        throw new Error(KBQ_INVALID_VALUE_ERROR);\n    }\n\n    const calculatedThreshold = Number.isFinite(threshold) ? threshold : Math.pow(system.base, system.power);\n    const orderOfMagnitude: number = Math.pow(system.base, system.power);\n\n    let result: number = value;\n    let step = 0;\n    const len: number = system.abbreviations.length - 1;\n\n    while (step < len) {\n        if (calculatedThreshold !== undefined && result < calculatedThreshold) {\n            break;\n        }\n\n        step++;\n        result = value / Math.pow(orderOfMagnitude, step);\n    }\n\n    return {\n        result,\n        unit: system.abbreviations[step]\n    };\n};\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KBQ_DEFAULT_LOCALE_ID, KBQ_LOCALE_SERVICE } from '../../locales';\nimport { KbqDecimalPipe } from '../number/formatter';\nimport {\n    KBQ_SIZE_UNITS_CONFIG,\n    KBQ_SIZE_UNITS_DEFAULT_CONFIG,\n    KbqMeasurementSystem,\n    KbqMeasurementSystemType,\n    KbqSizeUnitsConfig,\n    KbqUnitSystem\n} from './config';\nimport { getFormattedSizeParts } from './size';\n\n@Pipe({\n    name: 'kbqDataSize',\n    pure: false\n})\nexport class KbqDataSizePipe implements PipeTransform {\n    /** Injects the external configuration for size units, if available. */\n    readonly externalConfig = inject(KBQ_SIZE_UNITS_CONFIG, { optional: true });\n\n    private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n    private readonly numberPipe = inject(KbqDecimalPipe, { optional: true });\n    private readonly nonBreakingSpace = '\\u00a0';\n    private config: KbqSizeUnitsConfig;\n\n    constructor() {\n        this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n        if (!this.localeService) {\n            this.config = this.externalConfig || KBQ_SIZE_UNITS_DEFAULT_CONFIG;\n        }\n    }\n\n    /** Transforms bytes into localized size string */\n    transform(\n        source: number,\n        precision: number = this.config.defaultPrecision,\n        unitSystemName: KbqMeasurementSystemType = this.config.defaultUnitSystem,\n        locale: string = this.localeService?.id || KBQ_DEFAULT_LOCALE_ID\n    ): string {\n        const resolvedUnitSystems: Record<KbqMeasurementSystem, KbqUnitSystem> = this.localeService\n            ? this.localeService.locales[locale].sizeUnits.unitSystems\n            : this.config.unitSystems;\n\n        const { value, unit } = getFormattedSizeParts(source, resolvedUnitSystems[unitSystemName]);\n\n        const formattedValue = this.numberPipe?.transform(value, `1.0-${precision}`, locale) || value;\n\n        return formattedValue ? `${formattedValue}${this.nonBreakingSpace}${unit}` : '';\n    }\n\n    private updateLocaleParams = () => {\n        this.config = this.externalConfig || this.localeService?.getParams('sizeUnits');\n    };\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, KBQ_DATE_LOCALE } from '../datetime';\nimport { DateFormatter } from './date/formatter';\nimport {\n    AbsoluteDateFormatterImpurePipe,\n    AbsoluteDateFormatterPipe,\n    AbsoluteDateShortFormatterImpurePipe,\n    AbsoluteDateShortFormatterPipe,\n    AbsoluteDateTimeFormatterImpurePipe,\n    AbsoluteDateTimeFormatterPipe,\n    AbsoluteShortDateTimeFormatterImpurePipe,\n    AbsoluteShortDateTimeFormatterPipe,\n    RangeDateFormatterImpurePipe,\n    RangeDateFormatterPipe,\n    RangeDateTimeFormatterImpurePipe,\n    RangeDateTimeFormatterPipe,\n    RangeMiddleDateTimeFormatterImpurePipe,\n    RangeMiddleDateTimeFormatterPipe,\n    RangeShortDateFormatterImpurePipe,\n    RangeShortDateFormatterPipe,\n    RangeShortDateTimeFormatterImpurePipe,\n    RangeShortDateTimeFormatterPipe,\n    RelativeDateFormatterImpurePipe,\n    RelativeDateFormatterPipe,\n    RelativeDateTimeFormatterImpurePipe,\n    RelativeDateTimeFormatterPipe,\n    RelativeShortDateFormatterImpurePipe,\n    RelativeShortDateFormatterPipe,\n    RelativeShortDateTimeFormatterImpurePipe,\n    RelativeShortDateTimeFormatterPipe\n} from './date/formatter.pipe';\nimport { KbqDataSizePipe } from './filesize';\nimport { KbqDecimalPipe, KbqRoundDecimalPipe, KbqTableNumberPipe } from './number/formatter';\n\n@NgModule({\n    imports: [\n        AbsoluteDateFormatterPipe,\n        AbsoluteDateTimeFormatterPipe,\n        AbsoluteDateShortFormatterPipe,\n        AbsoluteShortDateTimeFormatterPipe,\n        RelativeDateFormatterPipe,\n        RelativeDateTimeFormatterPipe,\n        RelativeShortDateFormatterPipe,\n        RelativeShortDateTimeFormatterPipe,\n        RangeDateFormatterPipe,\n        RangeShortDateFormatterPipe,\n        RangeDateTimeFormatterPipe,\n        RangeShortDateTimeFormatterPipe,\n        RangeMiddleDateTimeFormatterPipe,\n        AbsoluteDateFormatterImpurePipe,\n        AbsoluteDateTimeFormatterImpurePipe,\n        AbsoluteDateShortFormatterImpurePipe,\n        AbsoluteShortDateTimeFormatterImpurePipe,\n        RelativeDateFormatterImpurePipe,\n        RelativeDateTimeFormatterImpurePipe,\n        RelativeShortDateFormatterImpurePipe,\n        RelativeShortDateTimeFormatterImpurePipe,\n        RangeDateFormatterImpurePipe,\n        RangeShortDateFormatterImpurePipe,\n        RangeDateTimeFormatterImpurePipe,\n        RangeShortDateTimeFormatterImpurePipe,\n        RangeMiddleDateTimeFormatterImpurePipe,\n        KbqDataSizePipe,\n        KbqDecimalPipe,\n        KbqRoundDecimalPipe,\n        KbqTableNumberPipe\n    ],\n    exports: [\n        KbqDecimalPipe,\n        KbqRoundDecimalPipe,\n        KbqTableNumberPipe,\n        AbsoluteDateFormatterPipe,\n        AbsoluteDateTimeFormatterPipe,\n        AbsoluteDateShortFormatterPipe,\n        AbsoluteShortDateTimeFormatterPipe,\n        RelativeDateFormatterPipe,\n        RelativeDateTimeFormatterPipe,\n        RelativeShortDateFormatterPipe,\n        RelativeShortDateTimeFormatterPipe,\n        RangeDateFormatterPipe,\n        RangeShortDateFormatterPipe,\n        RangeDateTimeFormatterPipe,\n        RangeShortDateTimeFormatterPipe,\n        RangeMiddleDateTimeFormatterPipe,\n        AbsoluteDateFormatterImpurePipe,\n        AbsoluteDateTimeFormatterImpurePipe,\n        AbsoluteDateShortFormatterImpurePipe,\n        AbsoluteShortDateTimeFormatterImpurePipe,\n        RelativeDateFormatterImpurePipe,\n        RelativeDateTimeFormatterImpurePipe,\n        RelativeShortDateFormatterImpurePipe,\n        RelativeShortDateTimeFormatterImpurePipe,\n        RangeDateFormatterImpurePipe,\n        RangeShortDateFormatterImpurePipe,\n        RangeDateTimeFormatterImpurePipe,\n        RangeShortDateTimeFormatterImpurePipe,\n        RangeMiddleDateTimeFormatterImpurePipe,\n        KbqDataSizePipe\n    ],\n    providers: [{ provide: DateFormatter, deps: [DateAdapter, KBQ_DATE_LOCALE] }]\n})\nexport class KbqFormattersModule {}\n\nexport * from './date/formatter';\nexport * from './date/formatter.pipe';\nexport * from './filesize/index';\nexport * from './number/formatter';\n","import { AfterContentInit, ContentChildren, Directive, ElementRef, QueryList } from '@angular/core';\n\n@Directive({\n    selector: '.kbq-form__row, .kbq-form__fieldset, .kbq-form__legend',\n    exportAs: 'kbqFormElement',\n    host: {\n        '[class.kbq-form-row_margin]': 'margin'\n    }\n})\nexport class KbqFormElement implements AfterContentInit {\n    margin = false;\n\n    isRow = false;\n    isFieldSet = false;\n    hasLegend = false;\n    isHorizontal = false;\n\n    @ContentChildren(KbqFormElement) elements: QueryList<KbqFormElement>;\n\n    constructor(private readonly element: ElementRef<HTMLElement>) {}\n\n    ngAfterContentInit(): void {\n        const classList = this.element.nativeElement.classList;\n\n        this.isRow = classList.contains('kbq-form__row');\n        this.isHorizontal = classList.contains('kbq-horizontal');\n\n        this.isFieldSet = classList.contains('kbq-form__fieldset');\n\n        if (this.isFieldSet && this.element.nativeElement.firstElementChild) {\n            this.hasLegend = this.element.nativeElement.firstElementChild.classList.contains('kbq-form__legend');\n        }\n    }\n}\n\n@Directive({\n    selector: '.kbq-form-vertical, .kbq-form-horizontal',\n    exportAs: 'kbqForm',\n    host: {\n        class: 'kbq-form'\n    }\n})\nexport class KbqForm implements AfterContentInit {\n    @ContentChildren(KbqFormElement) elements: QueryList<KbqFormElement>;\n\n    ngAfterContentInit(): void {\n        this.handleElements(this.elements);\n    }\n\n    handleElements(elements: QueryList<KbqFormElement>): void {\n        elements.forEach((element, index) => {\n            const nextElement: KbqFormElement | undefined = elements.get(index + 1);\n\n            if (element.isFieldSet && !element.isHorizontal) {\n                this.handleElements(element.elements);\n            }\n\n            element.margin = !!(nextElement && !nextElement.hasLegend);\n        });\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqForm, KbqFormElement } from './forms.directive';\n\n@NgModule({\n    imports: [\n        KbqForm,\n        KbqFormElement\n    ],\n    exports: [\n        KbqForm,\n        KbqFormElement\n    ]\n})\nexport class KbqFormsModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n/** Provides a set of validators for password form controls. */\nexport class PasswordValidators {\n    /**\n     * Validator that requires the control's value length to be at least `min` characters.\n     *\n     * `min` - number of characters.\n     *\n     * ## Usage:\n     *\n     * ```typescript\n     * const control = new FormControl('password', PasswordValidators.minLength(10));\n     * console.log(control.errors); // {minLength: {min: 10, actual: 8}}\n     * ```\n     */\n    static minLength(min: number): ValidatorFn {\n        return ({ value }: AbstractControl): ValidationErrors | null => {\n            if (typeof value !== 'string') {\n                return null;\n            }\n\n            return value.length >= min ? null : { minLength: { min, actual: value.length } };\n        };\n    }\n\n    /**\n     * Validator that requires the control's value length to be at most `max` characters.\n     *\n     * `max` - number of characters.\n     *\n     * ## Usage:\n     * ```typescript\n     * const control = new FormControl('password', PasswordValidators.maxLength(6));\n     * console.log(control.errors); // {maxLength: {max: 6, actual: 8}}\n     * ```\n     */\n    static maxLength(max: number): ValidatorFn {\n        return ({ value }: AbstractControl): ValidationErrors | null => {\n            if (typeof value !== 'string') {\n                return null;\n            }\n\n            return value.length <= max ? null : { maxLength: { max, actual: value.length } };\n        };\n    }\n\n    /**\n     * Validator that requires the control's value to be at least `min` uppercase characters.\n     *\n     * `min` - number of uppercase characters.\n     *\n     * ### Usage:\n     *\n     * ```typescript\n     * const control = new FormControl('Password', PasswordValidators.minUppercase(2));\n     * console.log(control.errors); // {minUppercase: {min: 2, actual: 1}}\n     * ```\n     */\n    static minUppercase(min: number): ValidatorFn {\n        return ({ value }: AbstractControl): ValidationErrors | null => {\n            if (typeof value !== 'string') {\n                return null;\n            }\n\n            const matches = (value.match(/[A-Z]/g) || []).length;\n\n            return matches >= min ? null : { minUppercase: { min, actual: matches } };\n        };\n    }\n\n    /**\n     * Validator that requires the control's value to be at least `min` lowercase characters.\n     *\n     * `min` - number of lowercase characters.\n     *\n     * ### Usage:\n     *\n     * ```typescript\n     * const control = new FormControl('PASSWORD', PasswordValidators.minLowercase());\n     * console.log(control.errors); // {minLowercase: {min: 1, actual: 0}}\n     * ```\n     */\n    static minLowercase(min: number): ValidatorFn {\n        return ({ value }: AbstractControl): ValidationErrors | null => {\n            if (typeof value !== 'string') {\n                return null;\n            }\n\n            const matches = (value.match(/[a-z]/g) || []).length;\n\n            return matches >= min ? null : { minLowercase: { min, actual: matches } };\n        };\n    }\n\n    /**\n     * Validator that requires the control's value to be at least `min` number characters.\n     *\n     * `min` - number of number characters.\n     *\n     * ### Usage:\n     *\n     * ```typescript\n     * const control = new FormControl('passw0rd', PasswordValidators.minNumber(2));\n     * console.log(control.errors); // {minNumber: {min: 2, actual: 1}}\n     * ```\n     */\n    static minNumber(min: number): ValidatorFn {\n        return ({ value }: AbstractControl): ValidationErrors | null => {\n            if (typeof value !== 'string') {\n                return null;\n            }\n\n            const matches = (value.match(/[\\d]/g) || []).length;\n\n            return matches >= min ? null : { minNumber: { min, actual: matches } };\n        };\n    }\n\n    /**\n     * Validator that requires the control's value to be at least `min` special characters.\n     *\n     * `min` - number of special characters.\n     *\n     * ### Special characters:\n     * ```js\n     * ['!','@','#','$','%','^','&','*']\n     * ```\n     *\n     * ### Usage:\n     *\n     * ```typescript\n     * const control = new FormControl('pa$sword', PasswordValidators.minSpecial(2));\n     * console.log(control.errors); // {minSpecial: {min: 2, actual: 1}}\n     * ```\n     */\n    static minSpecial(min: number): ValidatorFn {\n        return ({ value }: AbstractControl): ValidationErrors | null => {\n            if (typeof value !== 'string') {\n                return null;\n            }\n\n            const matches = (value.match(/[!@#$%^&*]/g) || []).length;\n\n            return matches >= min ? null : { minSpecial: { min, actual: matches } };\n        };\n    }\n}\n\n/** Provides a set of validators for file-related form controls. */\nexport class FileValidators {\n    /**\n     * Validator that checks if the file size is less than or equal to the provided `maxSize`.\n     *\n     * @param maxSize - The maximum allowed file size in bytes.\n     *\n     * @returns A ValidatorFn function that checks the file size.\n     *\n     * ## Usage:\n     *\n     * ```typescript\n     * const control = new FormControl(null, [FileValidators.maxFileSize(1024 * 1024)]); // 1MB\n     * control.setValue(FILE_LESS_OR_EQUAL_THAN_1MB);\n     * console.log(control.errors); // null\n     * control.setValue(FILE_MORE_THAN_1MB);\n     * console.log(control.errors); // {maxFileSize: { max: 1048576, actual: FILE_MORE_THAN_1MB.size }}\n     * ```\n     */\n    static maxFileSize(maxSize: number): ValidatorFn {\n        return ({ value }: AbstractControl): ValidationErrors | null => {\n            if (!value) return null;\n\n            const size = value instanceof File ? value.size : value.file.size;\n\n            if (size > maxSize) {\n                return { maxFileSize: { max: maxSize, actual: size } };\n            }\n\n            return null;\n        };\n    }\n\n    /**\n     * Validator that checks whether file's name or MIME type\n     * matches one of the accepted extensions or MIME types.\n     *\n     * @param accept - Array of allowed file extensions or MIME types.\n     * @returns ValidatorFn that returns validation error if file type is not accepted, or null otherwise.\n     */\n    static isCorrectExtension(accept: (`.${string}` | `${string}/${string}`)[]): ValidatorFn {\n        return (control: AbstractControl<{ file: File } | null>): ValidationErrors | null => {\n            if (!accept?.length || !control.value) return null;\n            const { name, type } = control.value.file;\n\n            const isValid = accept.some((acceptedExtensionOrMimeType) => {\n                const typeAsRegExp = new RegExp(`${acceptedExtensionOrMimeType}$`);\n\n                return typeAsRegExp.test(name) || typeAsRegExp.test(type);\n            });\n\n            return isValid ? null : { fileExtensionMismatch: { expected: accept, actual: name } };\n        };\n    }\n}\n\n/**\n * Type helper describing accepted file types, referring to:\n * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/file#unique_file_type_specifiers\n */\nexport type KbqFileTypeSpecifier = Parameters<typeof FileValidators.isCorrectExtension>[0];\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst HTML_ESCAPES = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' } as const;\nconst HTML_SPECIAL_CHARS = /[&<>\"']/;\nconst HTML_SPECIAL_CHARS_GLOBAL = new RegExp(HTML_SPECIAL_CHARS.source, 'g');\n/** @docs-private */\nexport const kbqHighlightMark = (text: string): string => `<mark class=\"kbq-highlight\">${text}</mark>`;\n\nexport function escapeRegExp(value: string) {\n    if (value) {\n        return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n    }\n\n    return value;\n}\n\nfunction escapeHtml(value: string): string {\n    if (!HTML_SPECIAL_CHARS.test(value)) return value;\n\n    return value.replace(HTML_SPECIAL_CHARS_GLOBAL, (chr) => HTML_ESCAPES[chr] ?? chr);\n}\n\n@Pipe({ name: 'mcHighlight' })\nexport class KbqHighlightPipe implements PipeTransform {\n    transform(value: any, args: any): any {\n        if (typeof value !== 'string') return '';\n        if (!args || typeof args !== 'string') return escapeHtml(value);\n\n        const parts = value.split(new RegExp(`(${escapeRegExp(args)})`, 'gi'));\n\n        return parts\n            .map((part, i) => {\n                const escaped = escapeHtml(part);\n                const isMatch = i % 2 === 1;\n\n                return isMatch ? kbqHighlightMark(escaped) : escaped;\n            })\n            .join('');\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqHighlightPipe } from './highlight.pipe';\n\n@NgModule({\n    imports: [CommonModule, KbqHighlightPipe],\n    exports: [KbqHighlightPipe]\n})\nexport class KbqHighlightModule {}\n\nexport * from './highlight.pipe';\n","import { Directive, ElementRef, QueryList } from '@angular/core';\n\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a @ContentChildren(KbqLine) query, then\n * counted by checking the query list's length.\n */\n@Directive({\n    selector: '[kbq-line], [mcLine]',\n    host: { class: 'kbq-line' }\n})\nexport class KbqLine {}\n\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nexport class KbqLineSetter {\n    constructor(\n        private _lines: QueryList<KbqLine>,\n        private _element: ElementRef\n    ) {\n        this.setLineClass(this._lines.length);\n\n        this._lines.changes.subscribe(() => {\n            this.setLineClass(this._lines.length);\n        });\n    }\n\n    private setLineClass(count: number): void {\n        const minLineClassNumber = 2;\n        const maxLineClassNumber = 3;\n\n        this.resetClasses();\n\n        if (count === minLineClassNumber || count === maxLineClassNumber) {\n            this.setClass(`kbq-${count}-line`, true);\n        } else if (count > maxLineClassNumber) {\n            this.setClass(`kbq-multi-line`, true);\n        }\n    }\n\n    private resetClasses(): void {\n        this.setClass('kbq-2-line', false);\n        this.setClass('kbq-3-line', false);\n        this.setClass('kbq-multi-line', false);\n    }\n\n    private setClass(className: string, isAdd: boolean): void {\n        if (isAdd) {\n            this._element.nativeElement.classList.add(className);\n        } else {\n            this._element.nativeElement.classList.remove(className);\n        }\n    }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { Directive, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { KBQ_WINDOW } from '../tokens';\nimport { kbqInjectNativeElement } from '../utils';\n\n@Directive({\n    host: {\n        '[class.kbq-expanded]': '!collapsed',\n        '[class.kbq-collapsed]': 'collapsed'\n    }\n})\nexport class KbqRectangleItem {\n    protected readonly isBrowser = inject(Platform).isBrowser;\n    protected readonly nativeElement = kbqInjectNativeElement();\n    private readonly window = inject(KBQ_WINDOW);\n\n    readonly state = new Subject<void>();\n\n    get collapsed(): boolean {\n        return this._collapsed;\n    }\n\n    set collapsed(value: boolean) {\n        this._collapsed = value;\n\n        this.state.next();\n    }\n\n    private _collapsed: boolean;\n\n    getOuterElementWidth(): number {\n        if (!this.isBrowser) return 0;\n\n        const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);\n\n        return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item), 0);\n    }\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n    AfterViewInit,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    DestroyRef,\n    EventEmitter,\n    inject,\n    InjectionToken,\n    Input,\n    OnDestroy,\n    ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, SPACE, TAB } from '@koobiq/cdk/keycodes';\nimport { kbqInjectNativeElement } from '../utils';\n\nexport interface KbqOptionActionParent {\n    dropdownTrigger: {\n        opened: boolean;\n        restoreFocus: boolean;\n        dropdownClosed: EventEmitter<void>;\n        lastDestroyReason: void | 'click' | 'keydown' | 'tab';\n        openedBy: Exclude<FocusOrigin, 'program' | null> | undefined;\n        toggle(): void;\n    };\n    tooltipTrigger: {\n        disabled: boolean;\n    };\n    focus(): void;\n}\n\nexport const KBQ_OPTION_ACTION_PARENT = new InjectionToken<KbqOptionActionParent>('KBQ_OPTION_ACTION_PARENT');\n\n@Component({\n    selector: 'kbq-option-action',\n    exportAs: 'kbqOptionAction',\n    template: `\n        <ng-content select=\"[kbq-icon]\">\n            <i class=\"kbq kbq-icon kbq-contrast-fade kbq-ellipsis-vertical_16\"></i>\n        </ng-content>\n    `,\n    styleUrls: ['./action.scss'],\n    host: {\n        class: 'kbq-option-action',\n        '[class.kbq-expanded]': 'false',\n        '[class.kbq-disabled]': 'disabled',\n        '[attr.disabled]': 'disabled || null',\n        '[attr.tabIndex]': '-1',\n        '(click)': 'onClick($event)',\n        '(keydown)': 'onKeyDown($event)'\n    },\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqOptionActionComponent implements AfterViewInit, OnDestroy {\n    private readonly nativeElement = kbqInjectNativeElement();\n    private readonly focusMonitor = inject(FocusMonitor);\n    private readonly option = inject(KBQ_OPTION_ACTION_PARENT);\n\n    @Input({ transform: booleanAttribute })\n    get disabled(): boolean {\n        return this._disabled;\n    }\n\n    set disabled(value: boolean) {\n        if (value !== this.disabled) {\n            this._disabled = value;\n        }\n    }\n\n    private _disabled: boolean = false;\n\n    hasFocus: boolean = false;\n\n    get active(): boolean {\n        return this.hasFocus || !!this.option.dropdownTrigger?.opened;\n    }\n\n    private readonly destroyRef = inject(DestroyRef);\n\n    ngAfterViewInit(): void {\n        this.focusMonitor\n            .monitor(this.nativeElement, true)\n            .pipe(takeUntilDestroyed(this.destroyRef))\n            .subscribe((result) => (this.hasFocus = !!result));\n\n        if (!this.option.dropdownTrigger) return;\n\n        this.option.dropdownTrigger.restoreFocus = false;\n\n        this.option.dropdownTrigger.dropdownClosed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n            this.preventShowingTooltip();\n\n            const lastDestroyReason = this.option.dropdownTrigger.lastDestroyReason;\n\n            if (lastDestroyReason) {\n                this.focus(lastDestroyReason === 'keydown' ? 'keyboard' : 'program');\n            }\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.focusMonitor.stopMonitoring(this.nativeElement);\n    }\n\n    focus(origin?: FocusOrigin, options?: FocusOptions) {\n        if (this.focusMonitor && origin) {\n            this.focusMonitor.focusVia(this.nativeElement, origin, options);\n        } else {\n            this.nativeElement.focus();\n        }\n\n        this.hasFocus = true;\n    }\n\n    onClick($event) {\n        $event.stopPropagation();\n    }\n\n    onKeyDown($event) {\n        if ([SPACE, ENTER].includes($event.keyCode) && this.option.dropdownTrigger) {\n            this.option.dropdownTrigger.openedBy = 'keyboard';\n        } else if ($event.shiftKey && $event.keyCode === TAB) {\n            this.hasFocus = false;\n\n            this.option.focus();\n        } else if ($event.keyCode === TAB) {\n            return;\n        }\n\n        $event.preventDefault();\n        $event.stopPropagation();\n    }\n\n    private preventShowingTooltip() {\n        if (!this.option.tooltipTrigger) {\n            return;\n        }\n\n        this.option.tooltipTrigger.disabled = true;\n\n        setTimeout(() => (this.option.tooltipTrigger.disabled = false));\n    }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n    selector: 'kbq-action-container',\n    exportAs: 'kbqActionContainer',\n    template: `\n        <div class=\"kbq-action-container__gradient\"></div>\n        <div class=\"kbq-action-container__box\">\n            <ng-content />\n        </div>\n    `,\n    styleUrls: ['./action-container.scss'],\n    host: {\n        class: 'kbq-action-container'\n    },\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqActionContainer {}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\nlet uniqueOptgroupIdCounter = 0;\n\n/**\n * Component that is used to group instances of `kbq-option`.\n * When options aren't provided as `ng-content`, used as a Group Header with styling.\n */\n@Component({\n    selector: 'kbq-optgroup',\n    exportAs: 'kbqOptgroup',\n    templateUrl: 'optgroup.html',\n    styleUrls: ['./optgroup.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'kbq-optgroup',\n        '[class.kbq-disabled]': 'disabled'\n    }\n})\nexport class KbqOptgroup {\n    @Input() label: string;\n\n    @Input({ transform: booleanAttribute })\n    get disabled(): boolean {\n        return this._disabled;\n    }\n\n    set disabled(value: boolean) {\n        if (value !== this.disabled) {\n            this._disabled = value;\n        }\n    }\n\n    private _disabled: boolean = false;\n\n    /** Unique id for the underlying label. */\n    labelId: string = `kbq-optgroup-label-${uniqueOptgroupIdCounter++}`;\n}\n","<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n    {{ label }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n","export enum MultipleMode {\n    CHECKBOX = 'checkbox',\n    KEYBOARD = 'keyboard'\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { KbqColorDirective } from '../../common-behaviors';\n\nexport type KbqPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate' | boolean;\n\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `kbq-primary .kbq-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with `<kbq-checkbox>` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\n@Component({\n    selector: 'kbq-pseudo-checkbox',\n    templateUrl: 'pseudo-checkbox.partial.html',\n    styleUrls: ['pseudo-checkbox.scss', 'pseudo-checkbox-tokens.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'kbq-pseudo-checkbox',\n        '[class.kbq-checkbox_big]': 'big',\n        '[class.kbq-indeterminate]': 'state === \"indeterminate\"',\n        '[class.kbq-checked]': 'state === true || state === \"checked\"',\n        '[class.kbq-disabled]': 'disabled'\n    },\n    preserveWhitespaces: false\n})\nexport class KbqPseudoCheckbox extends KbqColorDirective {\n    @Input() big: boolean = false;\n\n    @Input() state: KbqPseudoCheckboxState = 'unchecked';\n\n    @Input() disabled: boolean = false;\n}\n","<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqPseudoCheckbox } from './pseudo-checkbox';\n\n@NgModule({\n    imports: [CommonModule, KbqPseudoCheckbox],\n    exports: [KbqPseudoCheckbox]\n})\nexport class KbqPseudoCheckboxModule {}\n","import { ElementRef, InjectionToken } from '@angular/core';\n\nexport interface KbqTitleTextRef {\n    textElement?: ElementRef;\n    parentTextElement?: ElementRef;\n}\n\nexport const KBQ_TITLE_TEXT_REF = new InjectionToken<KbqTitleTextRef>('KbqTitleTextRef');\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n    AfterViewChecked,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Inject,\n    InjectionToken,\n    Input,\n    OnDestroy,\n    Optional,\n    Output,\n    QueryList,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';\nimport { ENTER, hasModifierKey, SPACE } from '@koobiq/cdk/keycodes';\nimport { Subject } from 'rxjs';\nimport { KbqPseudoCheckboxModule } from '../selection';\nimport { KBQ_TITLE_TEXT_REF, KbqTitleTextRef } from '../title';\nimport { KbqOptgroup } from './optgroup';\n\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet uniqueIdCounter = 0;\n\n/** Event object emitted by KbqOption when selected or deselected. */\nexport class KbqOptionSelectionChange<T = KbqOption> {\n    constructor(\n        public source: T,\n        public isUserInput = false\n    ) {}\n}\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface KbqOptionParentComponent {\n    multiple?: boolean;\n    multiSelection?: boolean;\n    withVirtualScroll?: boolean;\n    keyManager?: ActiveDescendantKeyManager<KbqOption>;\n    setSelectedOptionsByClick: (option: KbqOption) => void;\n}\n\n/**\n * Handler that will update scroll position of elements inside overlay\n */\nexport interface KeyboardNavigationHandler {\n    /** Scrolls the active option into view. */\n    scrollActiveOptionIntoView(): void;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const KBQ_OPTION_PARENT_COMPONENT = new InjectionToken<KbqOptionParentComponent>('KBQ_OPTION_PARENT_COMPONENT');\n\nexport abstract class KbqOptionBase {\n    value: any;\n    abstract get viewValue(): string;\n    abstract get disabled(): boolean;\n    abstract set disabled(value: any);\n\n    abstract readonly onSelectionChange: EventEmitter<KbqOptionSelectionChange<any>>;\n\n    abstract select(): void;\n\n    abstract deselect(): void;\n\n    /** Emits the selection change event. */\n    protected emitSelectionChangeEvent(isUserInput = false): void {\n        this.onSelectionChange.emit(new KbqOptionSelectionChange(this, isUserInput));\n    }\n}\n\nexport class KbqVirtualOption extends KbqOptionBase {\n    get disabled() {\n        return this._disabled;\n    }\n    set disabled(value: any) {\n        this._disabled = coerceBooleanProperty(value);\n    }\n\n    get selected(): boolean {\n        return this._selected;\n    }\n\n    private _selected = false;\n\n    get viewValue(): string {\n        return this._viewValue ?? this.value;\n    }\n\n    readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange<KbqVirtualOption>>();\n\n    constructor(\n        public value: any,\n        private _disabled: boolean = false,\n        private readonly _viewValue?: string\n    ) {\n        super();\n    }\n\n    select(): void {\n        if (!this._selected) {\n            this._selected = true;\n\n            this.emitSelectionChangeEvent();\n        }\n    }\n\n    deselect(): void {\n        if (this._selected) {\n            this._selected = false;\n\n            this.emitSelectionChangeEvent();\n        }\n    }\n}\n\n/**\n * Single option inside of a `<kbq-select>` element.\n */\n@Component({\n    selector: 'kbq-option',\n    imports: [\n        KbqPseudoCheckboxModule\n    ],\n    templateUrl: 'option.html',\n    /* Component inherits styles from `list`, so `list` variables are imported as the single source of truth. */\n    styleUrls: ['option.scss', 'option-tokens.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    exportAs: 'kbqOption',\n    host: {\n        '[attr.tabindex]': 'getTabIndex()',\n        class: 'kbq-option',\n        '[class.kbq-selected]': 'selected',\n        '[class.kbq-option-multiple]': 'multiple',\n        '[class.kbq-active]': 'active',\n        '[class.kbq-disabled]': 'disabled',\n        '[id]': 'id',\n\n        '(click)': 'handleClick($event)',\n        '(mouseenter)': 'onMouseenter()',\n        '(keydown)': 'handleKeydown($event)'\n    },\n    providers: [\n        {\n            provide: KBQ_TITLE_TEXT_REF,\n            useExisting: KbqOption\n        }\n    ]\n})\nexport class KbqOption extends KbqOptionBase implements AfterViewChecked, OnDestroy, KbqTitleTextRef {\n    @ViewChild('kbqTitleText', { static: false }) textElement: ElementRef;\n\n    /** The form value of the option. */\n    @Input() value: any;\n\n    @Input({ transform: booleanAttribute }) selectable: boolean = true;\n\n    // todo this flag will need to be rethought in the future (added for filter panel)\n    @Input({ transform: booleanAttribute }) userSelect: boolean = false;\n\n    @Input()\n    get showCheckbox() {\n        return this._showCheckbox === undefined ? this.multiple : this._showCheckbox;\n    }\n\n    set showCheckbox(value) {\n        this._showCheckbox = coerceBooleanProperty(value);\n    }\n\n    private _showCheckbox: boolean;\n\n    /** Event emitted when the option is selected or deselected. */\n    @Output() readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange>();\n\n    /** Emits when the state of the option changes and any parents have to be notified. */\n    readonly stateChanges = new Subject<void>();\n\n    /**\n     * The displayed value of the option. It is necessary to show the selected option in the\n     * select's trigger.\n     */\n    @Input()\n    get viewValue(): string {\n        return this._viewValue || (this.getHostElement().textContent || '').trim();\n    }\n\n    set viewValue(value: string) {\n        this._viewValue = value;\n    }\n\n    private _viewValue: string;\n\n    /** Whether the wrapping component is in multiple selection mode. */\n    get multiple(): boolean {\n        return !!this.parent?.multiSelection;\n    }\n\n    get id(): string {\n        return this._id;\n    }\n\n    private _id = `kbq-option-${uniqueIdCounter++}`;\n\n    get selected(): boolean {\n        return this._selected;\n    }\n\n    private _selected = false;\n\n    @Input()\n    get disabled() {\n        return (this.group && this.group.disabled) || this._disabled;\n    }\n\n    set disabled(value: any) {\n        this._disabled = coerceBooleanProperty(value);\n    }\n\n    private _disabled = false;\n\n    /**\n     * Whether or not the option is currently active and ready to be selected.\n     * An active option displays styles as if it is focused, but the\n     * focus is actually retained somewhere else. This comes in handy\n     * for components like autocomplete where focus must remain on the input.\n     */\n    get active(): boolean {\n        return this._active;\n    }\n\n    private _active = false;\n\n    private mostRecentViewValue = '';\n\n    /**\n     * Flag that indicates whether the component is currently focused by a mouse interaction.\n     *\n     * When set to `true`, the component has focus resulting from a mouse click or\n     * other pointer event. It is automatically cleared when the component loses\n     * focus or if focus is obtained through keyboard navigation or programmatic means.\n     */\n    private isFocusedByMouse: boolean = false;\n\n    constructor(\n        private readonly elementRef: ElementRef<HTMLElement>,\n        private readonly changeDetectorRef: ChangeDetectorRef,\n        @Optional() @Inject(KBQ_OPTION_PARENT_COMPONENT) protected readonly parent: KbqOptionParentComponent,\n        @Optional() readonly group: KbqOptgroup\n    ) {\n        super();\n    }\n\n    ngAfterViewChecked() {\n        // Since parent components could be using the option's label to display the selected values\n        // (e.g. `kbq-select`) and they don't have a way of knowing if the option's label has changed\n        // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n        // relatively cheap, however we still limit them only to selected options in order to avoid\n        // hitting the DOM too often.\n        if (this._selected) {\n            const viewValue = this.viewValue;\n\n            if (viewValue !== this.mostRecentViewValue) {\n                this.mostRecentViewValue = viewValue;\n                this.stateChanges.next();\n            }\n        }\n    }\n\n    ngOnDestroy() {\n        this.stateChanges.complete();\n    }\n\n    /** @docs-private */\n    getHeight(): number {\n        const element = this.elementRef.nativeElement;\n\n        // For SSR compatibility\n        if (typeof element.getClientRects !== 'function') return 0;\n\n        return element.getClientRects()[0]?.height ?? 0;\n    }\n\n    select(emitEvent: boolean = true): void {\n        if (!this._selected) {\n            this._selected = true;\n\n            this.changeDetectorRef.markForCheck();\n            if (emitEvent) this.emitSelectionChangeEvent();\n        }\n    }\n\n    deselect(emitEvent: boolean = true): void {\n        if (this._selected) {\n            this._selected = false;\n\n            this.changeDetectorRef.markForCheck();\n            if (emitEvent) this.emitSelectionChangeEvent();\n        }\n    }\n\n    focus(): void {\n        const element = this.getHostElement();\n\n        if (typeof element.focus === 'function') {\n            element.focus({ preventScroll: this.isFocusedByMouse });\n\n            this.isFocusedByMouse = false;\n        }\n    }\n\n    /**\n     * This method sets display styles on the option to make it appear\n     * active. This is used by the ActiveDescendantKeyManager so key\n     * events will display the proper options as active on arrow key events.\n     */\n    setActiveStyles(): void {\n        if (!this._active) {\n            this._active = true;\n            this.changeDetectorRef.markForCheck();\n        }\n    }\n\n    /**\n     * This method removes display styles on the option that made it appear\n     * active. This is used by the ActiveDescendantKeyManager so key\n     * events will display the proper options as active on arrow key events.\n     */\n    setInactiveStyles(): void {\n        if (this._active) {\n            this._active = false;\n            this.changeDetectorRef.markForCheck();\n        }\n    }\n\n    /** Gets the label to be used when determining whether the option should be focused. */\n    getLabel(): string {\n        return this.viewValue;\n    }\n\n    /** @docs-private */\n    handleClick(event: MouseEvent): void {\n        if (hasModifierKey(event, 'shiftKey')) {\n            this.parent.setSelectedOptionsByClick(this);\n        } else {\n            this.selectViaInteraction();\n        }\n    }\n\n    /** Ensures the option is selected when activated from the keyboard. */\n    handleKeydown(event: KeyboardEvent): void {\n        if (event.keyCode === ENTER || event.keyCode === SPACE) {\n            this.selectViaInteraction();\n\n            // Prevent the page from scrolling down and form submits.\n            event.preventDefault();\n            event.stopPropagation();\n        }\n    }\n\n    /**\n     * `Selects the option while indicating the selection came from the user. Used to\n     * determine if the select's view -> model callback should be invoked.`\n     */\n    selectViaInteraction(): void {\n        if (this.userSelect) return;\n\n        if (!this.disabled && this.selectable) {\n            this._selected = this.multiple ? !this._selected : true;\n\n            this.changeDetectorRef.markForCheck();\n            this.emitSelectionChangeEvent(true);\n        }\n    }\n\n    getTabIndex(): string {\n        return this.disabled ? '-1' : '0';\n    }\n\n    getHostElement(): HTMLElement {\n        return this.elementRef.nativeElement;\n    }\n\n    /** @docs-private */\n    protected onMouseenter() {\n        if (this.disabled) return;\n\n        this.isFocusedByMouse = true;\n\n        this.parent?.keyManager?.setActiveItem(this);\n    }\n}\n\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param optionIndex Index of the option at which to start counting.\n * @param options Flat list of all of the options.\n * @param optionGroups Flat list of all of the option groups.\n * @docs-private\n */\nexport function countGroupLabelsBeforeOption(\n    optionIndex: number,\n    options: QueryList<KbqOption>,\n    optionGroups: QueryList<KbqOptgroup>\n): number {\n    if (optionGroups.length) {\n        const optionsArray = options.toArray();\n        const groups = optionGroups.toArray();\n\n        let groupCounter = 0;\n\n        for (let i = 0; i < optionIndex + 1; i++) {\n            if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n                groupCounter++;\n            }\n        }\n\n        return groupCounter;\n    }\n\n    return 0;\n}\n\n/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionIndex Index of the option to be scrolled into the view.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nexport function getOptionScrollPosition(\n    optionIndex: number,\n    optionHeight: number,\n    currentScrollPosition: number,\n    panelHeight: number\n): number {\n    const optionOffset = optionIndex * optionHeight;\n\n    if (optionOffset < currentScrollPosition) {\n        return optionOffset;\n    }\n\n    if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n        return Math.max(0, optionOffset - panelHeight + optionHeight);\n    }\n\n    return currentScrollPosition;\n}\n","@if (showCheckbox) {\n    <ng-content select=\"kbq-pseudo-checkbox\">\n        <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n    </ng-content>\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n    <ng-content />\n</span>\n","import { NgModule } from '@angular/core';\nimport { KbqPseudoCheckbox } from '../selection';\nimport { KbqOptionActionComponent } from './action';\nimport { KbqOptgroup } from './optgroup';\nimport { KbqOption } from './option';\n\n@NgModule({\n    imports: [KbqPseudoCheckbox, KbqOption, KbqOptgroup, KbqOptionActionComponent],\n    exports: [KbqOption, KbqOptgroup, KbqOptionActionComponent]\n})\nexport class KbqOptionModule {}\n","import { ConnectionPositionPair, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\nexport const POSITION_MAP: { [key: string]: ConnectionPositionPair } = {\n    top: {\n        originX: 'center',\n        originY: 'top',\n        overlayX: 'center',\n        overlayY: 'bottom'\n    },\n    topCenter: {\n        originX: 'center',\n        originY: 'top',\n        overlayX: 'center',\n        overlayY: 'bottom'\n    },\n    topLeft: {\n        originX: 'start',\n        originY: 'top',\n        overlayX: 'start',\n        overlayY: 'bottom'\n    },\n    topRight: {\n        originX: 'end',\n        originY: 'top',\n        overlayX: 'end',\n        overlayY: 'bottom'\n    },\n    right: {\n        originX: 'end',\n        originY: 'center',\n        overlayX: 'start',\n        overlayY: 'center'\n    },\n    rightTop: {\n        originX: 'end',\n        originY: 'top',\n        overlayX: 'start',\n        overlayY: 'top'\n    },\n    rightBottom: {\n        originX: 'end',\n        originY: 'bottom',\n        overlayX: 'start',\n        overlayY: 'bottom'\n    },\n    bottom: {\n        originX: 'center',\n        originY: 'bottom',\n        overlayX: 'center',\n        overlayY: 'top'\n    },\n    bottomCenter: {\n        originX: 'center',\n        originY: 'bottom',\n        overlayX: 'center',\n        overlayY: 'top'\n    },\n    bottomLeft: {\n        originX: 'start',\n        originY: 'bottom',\n        overlayX: 'start',\n        overlayY: 'top'\n    },\n    bottomRight: {\n        originX: 'end',\n        originY: 'bottom',\n        overlayX: 'end',\n        overlayY: 'top'\n    },\n    left: {\n        originX: 'start',\n        originY: 'center',\n        overlayX: 'end',\n        overlayY: 'center'\n    },\n    leftTop: {\n        originX: 'start',\n        originY: 'top',\n        overlayX: 'end',\n        overlayY: 'top'\n    },\n    leftBottom: {\n        originX: 'start',\n        originY: 'bottom',\n        overlayX: 'end',\n        overlayY: 'bottom'\n    }\n};\n\nexport const EXTENDED_OVERLAY_POSITIONS = objectValues([\n    POSITION_MAP.top,\n    POSITION_MAP.topLeft,\n    POSITION_MAP.topRight,\n    POSITION_MAP.right,\n    POSITION_MAP.rightTop,\n    POSITION_MAP.rightBottom,\n    POSITION_MAP.bottom,\n    POSITION_MAP.bottomLeft,\n    POSITION_MAP.bottomRight,\n    POSITION_MAP.left,\n    POSITION_MAP.leftTop,\n    POSITION_MAP.leftBottom\n]);\n\nexport const TOP_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.top,\n    POSITION_MAP.bottom,\n    POSITION_MAP.right,\n    POSITION_MAP.rightBottom,\n    POSITION_MAP.leftBottom,\n    POSITION_MAP.bottomLeft,\n    POSITION_MAP.bottomRight\n]);\n\nexport const BOTTOM_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.bottom,\n    POSITION_MAP.top,\n    POSITION_MAP.topLeft,\n    POSITION_MAP.topRight,\n    POSITION_MAP.rightBottom,\n    POSITION_MAP.leftBottom\n]);\n\nexport const RIGHT_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.right,\n    POSITION_MAP.left,\n    POSITION_MAP.leftTop,\n    POSITION_MAP.leftBottom,\n    POSITION_MAP.top,\n    POSITION_MAP.bottom\n]);\n\nexport const LEFT_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.left,\n    POSITION_MAP.right,\n    POSITION_MAP.rightTop,\n    POSITION_MAP.rightBottom,\n    POSITION_MAP.top,\n    POSITION_MAP.bottom\n]);\n\nexport const RIGHT_TOP_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.rightTop,\n    POSITION_MAP.leftTop,\n    POSITION_MAP.left,\n    POSITION_MAP.leftBottom,\n    POSITION_MAP.topLeft,\n    POSITION_MAP.bottomLeft\n]);\n\nexport const RIGHT_BOTTOM_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.rightBottom,\n    POSITION_MAP.leftBottom,\n    POSITION_MAP.left,\n    POSITION_MAP.leftTop,\n    POSITION_MAP.topLeft,\n    POSITION_MAP.bottomLeft\n]);\n\nexport const LEFT_TOP_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.leftTop,\n    POSITION_MAP.rightTop,\n    POSITION_MAP.right,\n    POSITION_MAP.rightBottom,\n    POSITION_MAP.topRight,\n    POSITION_MAP.bottomRight\n]);\n\nexport const LEFT_BOTTOM_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.leftBottom,\n    POSITION_MAP.rightBottom,\n    POSITION_MAP.right,\n    POSITION_MAP.rightTop,\n    POSITION_MAP.topRight,\n    POSITION_MAP.bottomRight\n]);\n\nexport const TOP_LEFT_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.topLeft,\n    POSITION_MAP.topRight,\n    POSITION_MAP.bottomLeft,\n    POSITION_MAP.bottom,\n    POSITION_MAP.bottomRight,\n    POSITION_MAP.leftBottom,\n    POSITION_MAP.rightBottom\n]);\n\nexport const TOP_RIGHT_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.topRight,\n    POSITION_MAP.topLeft,\n    POSITION_MAP.bottomRight,\n    POSITION_MAP.bottom,\n    POSITION_MAP.bottomLeft,\n    POSITION_MAP.leftBottom,\n    POSITION_MAP.rightBottom\n]);\n\nexport const BOTTOM_RIGHT_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.bottomRight,\n    POSITION_MAP.bottomLeft,\n    POSITION_MAP.topRight,\n    POSITION_MAP.top,\n    POSITION_MAP.topLeft,\n    POSITION_MAP.leftTop,\n    POSITION_MAP.rightTop\n]);\n\nexport const BOTTOM_LEFT_POSITION_PRIORITY = objectValues([\n    POSITION_MAP.bottomLeft,\n    POSITION_MAP.bottomRight,\n    POSITION_MAP.topLeft,\n    POSITION_MAP.top,\n    POSITION_MAP.topRight,\n    POSITION_MAP.rightTop,\n    POSITION_MAP.leftTop\n]);\n\nexport const POSITION_PRIORITY_STRATEGY = {\n    top: TOP_POSITION_PRIORITY,\n    topLeft: TOP_LEFT_POSITION_PRIORITY,\n    topRight: TOP_RIGHT_POSITION_PRIORITY,\n    bottom: BOTTOM_POSITION_PRIORITY,\n    bottomLeft: BOTTOM_LEFT_POSITION_PRIORITY,\n    bottomRight: BOTTOM_RIGHT_POSITION_PRIORITY,\n    left: LEFT_POSITION_PRIORITY,\n    leftTop: LEFT_TOP_POSITION_PRIORITY,\n    leftBottom: LEFT_BOTTOM_POSITION_PRIORITY,\n    right: RIGHT_POSITION_PRIORITY,\n    rightTop: RIGHT_TOP_POSITION_PRIORITY,\n    rightBottom: RIGHT_BOTTOM_POSITION_PRIORITY\n};\n\nexport const POSITION_TO_CSS_MAP: { [key: string]: string } = {\n    top: 'top',\n    topLeft: 'top-left',\n    topRight: 'top-right',\n    right: 'right',\n    rightTop: 'right-top',\n    rightBottom: 'right-bottom',\n    left: 'left',\n    leftTop: 'left-top',\n    leftBottom: 'left-bottom',\n    bottom: 'bottom',\n    bottomLeft: 'bottom-left',\n    bottomRight: 'bottom-right'\n};\n\nexport const KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER = <T>(\n    token: InjectionToken<T>,\n    factory: (overlay: Overlay) => () => ScrollStrategy\n) => ({\n    provide: token,\n    deps: [Overlay],\n    useFactory: factory\n});\n\nfunction arrayMap<T, S>(array: T[], iteratee: (item: T, index: number, arr: T[]) => S): S[] {\n    let index = -1;\n    const length = array === null ? 0 : array.length;\n    const result = Array(length);\n\n    while (++index < length) {\n        result[index] = iteratee(array[index], index, array);\n    }\n\n    return result;\n}\n\nfunction baseValues<T>(object: T[], props: string[]): T[] {\n    return arrayMap(props, (key) => object[key]);\n}\n\nfunction objectValues<T>(object: T[]): T[] {\n    return object === null ? [] : baseValues(object, Object.keys(object));\n}\n","import { InjectionToken } from '@angular/core';\nimport { TooltipSizeArrowSize } from '@koobiq/design-tokens';\nimport { Observable } from 'rxjs';\nimport { KbqEnumValues } from '../utils';\n\nexport interface KbqParentPopup {\n    closedStream: Observable<boolean>;\n}\n\n/**\n * InjectionToken for providing component with popup. Used in select and tree-select for tooltip.\n */\nexport const KBQ_PARENT_POPUP = new InjectionToken<KbqParentPopup>('kbq-parent-popup');\n\nexport enum PopUpPlacements {\n    Top = 'top',\n    TopLeft = 'topLeft',\n    TopRight = 'topRight',\n    Right = 'right',\n    RightTop = 'rightTop',\n    RightBottom = 'rightBottom',\n    Left = 'left',\n    LeftTop = 'leftTop',\n    LeftBottom = 'leftBottom',\n    Bottom = 'bottom',\n    BottomLeft = 'bottomLeft',\n    BottomRight = 'bottomRight'\n}\n\nexport type KbqPopUpPlacementValues = KbqEnumValues<PopUpPlacements>;\n\nexport type KbqStickToWindowPlacementValues = KbqEnumValues<\n    PopUpPlacements.Top | PopUpPlacements.Right | PopUpPlacements.Bottom | PopUpPlacements.Left\n>;\n\nexport enum PopUpVisibility {\n    Initial = 'initial',\n    Visible = 'visible',\n    Hidden = 'hidden'\n}\n\nexport enum PopUpTriggers {\n    Click = 'click',\n    Focus = 'focus',\n    Hover = 'hover',\n    Keydown = 'keydown',\n    Program = 'program'\n}\n\nexport enum PopUpSizes {\n    Small = 'small',\n    Medium = 'medium',\n    Large = 'large',\n    Custom = 'custom'\n}\n\nexport type KbqPopUpSizeValues = KbqEnumValues<PopUpSizes>;\n\n/**\n * Default value when configuring overlay in popups (Autocomplete, Datepicker, Dropdown, Select, Tags Autocomplete,\n * Tags Input, Timezone, TreeSelect).\n */\nexport const defaultOffsetY: number = 4;\n\n/**\n * Variable used for offsetY(X) calculations when applying Angular Overlay\n *\n * @docs-private\n */\nexport const ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT = Math.round(parseInt(TooltipSizeArrowSize) * Math.sqrt(2));\n","import { FocusTrapInertStrategy } from '@angular/cdk/a11y';\n\n// Need replace EventListenerFocusTrapInertStrategy to EmptyFocusTrapStrategy for focus work correctly with open popover\nexport class EmptyFocusTrapStrategy implements FocusTrapInertStrategy {\n    preventFocus(): void {}\n    allowFocus(): void {}\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport {\n    ChangeDetectorRef,\n    DestroyRef,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    inject,\n    OnDestroy,\n    Renderer2,\n    TemplateRef\n} from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { PopUpPlacements, PopUpVisibility } from './constants';\nimport { KbqPopUpTrigger } from './pop-up-trigger';\n\n@Directive({\n    host: {\n        '(mouseenter)': 'hovered.next(true)',\n        '(mouseleave)': 'hovered.next(false)'\n    }\n})\nexport abstract class KbqPopUp implements OnDestroy {\n    protected readonly renderer: Renderer2 = inject(Renderer2);\n    protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n    protected readonly changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n    readonly destroyRef = inject(DestroyRef);\n\n    /** Stream that emits when the popup item is hovered. */\n    readonly hovered = new BehaviorSubject<boolean>(false);\n\n    trigger: KbqPopUpTrigger<unknown>;\n    header: string | TemplateRef<any>;\n    content: string | TemplateRef<any>;\n    context: { $implicit: any } | null;\n\n    classMap = {};\n\n    warning: boolean;\n    arrow: boolean;\n    defaultPaddings: boolean;\n\n    offset: number | null;\n\n    visibility = PopUpVisibility.Initial;\n    visibleChange = new EventEmitter<boolean>();\n\n    protected prefix: string;\n\n    /** Subject for notifying that the tooltip has been hidden from the view */\n    protected readonly onHideSubject = new Subject<void>();\n\n    protected closeOnInteraction: boolean = false;\n\n    private showTimeoutId: any;\n    private hideTimeoutId: any;\n\n    ngOnDestroy() {\n        clearTimeout(this.showTimeoutId);\n        clearTimeout(this.hideTimeoutId);\n\n        this.onHideSubject.complete();\n        this.hovered.complete();\n    }\n\n    isTemplateRef(value: any): boolean {\n        return value instanceof TemplateRef;\n    }\n\n    show(delay: number): void {\n        if (this.hideTimeoutId) {\n            clearTimeout(this.hideTimeoutId);\n        }\n\n        this.closeOnInteraction = true;\n\n        this.showTimeoutId = setTimeout(() => {\n            this.showTimeoutId = undefined;\n\n            this.visibility = PopUpVisibility.Visible;\n            this.visibleChange.emit(true);\n            // Mark for check so if any parent component has set the\n            // ChangeDetectionStrategy to OnPush it will be checked anyways\n            this.markForCheck();\n\n            if (this.trigger.triggerName === 'mouseenter') {\n                this.addEventListenerForHide();\n            }\n        }, delay);\n    }\n\n    /**\n     * Hides the popup after a specified delay.\n     *\n     * The hide timeout triggers the hiding of the popup by updating visibility and emitting relevant events.\n     * Also, it marks for check to ensure proper change detection, especially for parent components with OnPush strategy.\n     * @param delay - The delay in milliseconds before hiding the popup.\n     */\n    hide(delay: number): void {\n        if (this.showTimeoutId) {\n            clearTimeout(this.showTimeoutId);\n        }\n\n        this.hideTimeoutId = setTimeout(() => {\n            this.hideTimeoutId = undefined;\n            this.visibility = PopUpVisibility.Hidden;\n\n            this.visibleChange.emit(false);\n            this.onHideSubject.next();\n\n            // Mark for check so if any parent component has set the\n            // ChangeDetectionStrategy to OnPush it will be checked anyways\n            this.markForCheck();\n        }, delay);\n    }\n\n    isVisible(): boolean {\n        return this.visibility === PopUpVisibility.Visible;\n    }\n\n    updateClassMap(placement: string, customClass: string, classMap?): void {\n        this.classMap = {\n            [`${this.prefix}_placement-${placement}`]: true,\n            [customClass]: !!customClass,\n            ...classMap\n        };\n    }\n\n    /** Returns an observable that notifies when the tooltip has been hidden from view. */\n    afterHidden(): Observable<void> {\n        return this.onHideSubject.asObservable();\n    }\n\n    markForCheck(): void {\n        this.changeDetectorRef.markForCheck();\n    }\n\n    detectChanges(): void {\n        this.changeDetectorRef.detectChanges();\n    }\n\n    animationStart() {\n        this.closeOnInteraction = false;\n    }\n\n    animationDone({ toState }: AnimationEvent): void {\n        if (toState === PopUpVisibility.Hidden && !this.isVisible()) {\n            this.onHideSubject.next();\n        }\n\n        if (toState === PopUpVisibility.Visible || toState === PopUpVisibility.Hidden) {\n            this.closeOnInteraction = true;\n        }\n    }\n\n    handleBodyInteraction(): void {\n        if (this.closeOnInteraction) {\n            this.hide(0);\n        }\n    }\n\n    protected addEventListenerForHide() {\n        this.elementRef.nativeElement.addEventListener('mouseleave', () => this.hide(0));\n    }\n\n    protected setStickPosition() {\n        const oppositeSide = {\n            [PopUpPlacements.Top]: PopUpPlacements.Bottom,\n            [PopUpPlacements.Bottom]: PopUpPlacements.Top,\n            [PopUpPlacements.Right]: PopUpPlacements.Left,\n            [PopUpPlacements.Left]: PopUpPlacements.Right\n        }[this.trigger.stickToWindow];\n\n        if (!this.trigger.stickToWindow || !oppositeSide) return;\n\n        this.arrow = false;\n\n        if (this.trigger.container) {\n            const { width, height } = this.elementRef.nativeElement.getBoundingClientRect();\n            const { right, left, top, bottom } = this.trigger.container.getBoundingClientRect();\n\n            if (this.trigger.stickToWindow === PopUpPlacements.Right) {\n                this.renderer.setStyle(\n                    this.trigger.overlayRef?.overlayElement,\n                    'left',\n                    coerceCssPixelValue(right - width)\n                );\n            } else if (this.trigger.stickToWindow === PopUpPlacements.Left) {\n                this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'left', coerceCssPixelValue(left));\n            } else if (this.trigger.stickToWindow === PopUpPlacements.Top) {\n                this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'top', coerceCssPixelValue(top));\n            } else if (this.trigger.stickToWindow === PopUpPlacements.Bottom) {\n                this.renderer.setStyle(\n                    this.trigger.overlayRef?.overlayElement,\n                    'top',\n                    coerceCssPixelValue(bottom - height)\n                );\n            }\n\n            this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'right', 'unset');\n            this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'bottom', 'unset');\n        } else {\n            this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, this.trigger.stickToWindow, 0);\n            this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, oppositeSide, 'unset');\n        }\n    }\n}\n","import { Renderer2 } from '@angular/core';\n\nexport const applyPopupMargins = (renderer: Renderer2, element: HTMLElement, name: string, value: string) => {\n    const classList = element.classList;\n\n    if (\n        classList.contains(`${name}_placement-top`) ||\n        classList.contains(`${name}_placement-top-left`) ||\n        classList.contains(`${name}_placement-top-right`)\n    ) {\n        renderer.setStyle(element, 'margin-bottom', value);\n    }\n\n    if (\n        classList.contains(`${name}_placement-right`) ||\n        classList.contains(`${name}_placement-right-top`) ||\n        classList.contains(`${name}_placement-right-bottom`)\n    ) {\n        renderer.setStyle(element, 'margin-left', value);\n    }\n\n    if (\n        classList.contains(`${name}_placement-bottom`) ||\n        classList.contains(`${name}_placement-bottom-left`) ||\n        classList.contains(`${name}_placement-bottom-right`)\n    ) {\n        renderer.setStyle(element, 'margin-top', value);\n    }\n\n    if (\n        classList.contains(`${name}_placement-left`) ||\n        classList.contains(`${name}_placement-left-top`) ||\n        classList.contains(`${name}_placement-left-bottom`)\n    ) {\n        renderer.setStyle(element, 'margin-right', value);\n    }\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n    CdkScrollable,\n    ConnectedOverlayPositionChange,\n    ConnectionPositionPair,\n    FlexibleConnectedPositionStrategy,\n    Overlay,\n    OverlayConfig,\n    OverlayRef,\n    ScrollDispatcher,\n    ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n    ChangeDetectorRef,\n    DestroyRef,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    inject,\n    NgZone,\n    OnDestroy,\n    OnInit,\n    TemplateRef,\n    Type,\n    ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, ESCAPE, SPACE } from '@koobiq/cdk/keycodes';\nimport { BehaviorSubject, interval, Observable, Subscription } from 'rxjs';\nimport { AsyncScheduler } from 'rxjs/internal/scheduler/AsyncScheduler';\nimport { distinctUntilChanged, filter, delay as rxDelay } from 'rxjs/operators';\nimport {\n    EXTENDED_OVERLAY_POSITIONS,\n    POSITION_MAP,\n    POSITION_PRIORITY_STRATEGY,\n    POSITION_TO_CSS_MAP\n} from '../overlay/overlay-position-map';\nimport {\n    ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT,\n    KbqPopUpPlacementValues,\n    KbqStickToWindowPlacementValues,\n    PopUpPlacements,\n    PopUpTriggers\n} from './constants';\nimport { KbqPopUp } from './pop-up';\n\ntype KbqPopupTriggerOffset = Pick<ConnectionPositionPair, 'offsetX' | 'offsetY'>;\n\nconst getOffset = (\n    { originX, overlayX, originY, overlayY }: ConnectionPositionPair,\n    { width, height }: DOMRect\n): KbqPopupTriggerOffset => {\n    const offset: KbqPopupTriggerOffset = {};\n    const elementWidthHalf = width / 2;\n    const elementHeightHalf = height / 2;\n\n    // alignment should be applied only if the element is small\n    if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementWidthHalf) {\n        const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementWidthHalf;\n\n        if (originX === overlayX) {\n            if (originX === 'start') {\n                offset.offsetX = -PADDING;\n            }\n\n            if (originX === 'end') {\n                offset.offsetX = PADDING;\n            }\n        }\n    }\n\n    // alignment should be applied only if the element is small\n    if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementHeightHalf) {\n        const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementHeightHalf;\n\n        if (originY === overlayY) {\n            if (originY === 'top') {\n                offset.offsetY = -PADDING;\n            }\n\n            if (originY === 'bottom') {\n                offset.offsetY = PADDING;\n            }\n        }\n    }\n\n    return offset;\n};\n\n@Directive({\n    host: {\n        '(mouseenter)': 'hovered.next(true)',\n        '(mouseleave)': 'hovered.next(false)'\n    }\n})\nexport abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {\n    /** Stream that emits when the popupTrigger is hovered. */\n    readonly hovered = new BehaviorSubject<boolean>(false);\n\n    protected readonly scheduler = inject(AsyncScheduler, { optional: true }) || undefined;\n\n    protected readonly overlay: Overlay = inject(Overlay);\n    protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n    protected readonly ngZone: NgZone = inject(NgZone);\n    protected readonly scrollDispatcher: ScrollDispatcher = inject(ScrollDispatcher);\n    protected readonly hostView: ViewContainerRef = inject(ViewContainerRef);\n    protected readonly direction = inject(Directionality, { optional: true });\n    protected readonly destroyRef = inject(DestroyRef);\n    protected readonly scrollable = inject(CdkScrollable, { optional: true });\n\n    protected abstract scrollStrategy: () => ScrollStrategy;\n\n    /** @docs-private */\n    protected externalNativeElement: HTMLElement;\n\n    private popUpChangeDetectorRef = inject(ChangeDetectorRef);\n\n    get isOpen(): boolean {\n        return this._isOpen;\n    }\n\n    set isOpen(value: boolean) {\n        this._isOpen = value;\n\n        this.popUpChangeDetectorRef.markForCheck();\n    }\n\n    private _isOpen: boolean = false;\n\n    enterDelay: number = 0;\n    leaveDelay: number = 0;\n\n    triggerName: string;\n\n    overlayRef: OverlayRef | null;\n\n    stickToWindow: KbqStickToWindowPlacementValues;\n\n    container: HTMLElement;\n\n    abstract disabled: boolean;\n    abstract arrow: boolean;\n    abstract trigger: string;\n    abstract customClass: string;\n    abstract content: string | TemplateRef<any>;\n\n    abstract placementChange: EventEmitter<string>;\n    abstract visibleChange: EventEmitter<boolean>;\n\n    protected abstract originSelector: string;\n    protected abstract overlayConfig: OverlayConfig;\n\n    protected placement: KbqPopUpPlacementValues = PopUpPlacements.Top;\n    protected placementPriority: string | string[] | null = null;\n\n    protected visible = false;\n\n    protected _content: string | TemplateRef<any>;\n    protected _disabled: boolean;\n    protected _customClass: string;\n\n    protected portal: ComponentPortal<T>;\n    protected instance: any | null;\n\n    protected listeners = new Map<string, EventListener>();\n    protected closingActionsSubscription: Subscription;\n\n    protected readonly availablePositions: { [key: string]: ConnectionPositionPair } = POSITION_MAP;\n\n    protected mouseEvent?: MouseEvent;\n    protected strategy: FlexibleConnectedPositionStrategy;\n\n    /** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger */\n    protected hideWithTimeout: boolean = false;\n\n    /** prevents closure by any event */\n    protected preventClose: boolean = false;\n\n    abstract updateClassMap(newPlacement?: string): void;\n\n    abstract updateData(): void;\n\n    abstract closingActions(): Observable<any>;\n\n    abstract getOverlayHandleComponentType(): Type<T>;\n\n    ngOnInit(): void {\n        this.initListeners();\n    }\n\n    ngOnDestroy(): void {\n        this.overlayRef?.dispose();\n\n        this.listeners.forEach(this.removeEventListener);\n\n        this.listeners.clear();\n    }\n\n    updatePlacement(value: KbqPopUpPlacementValues) {\n        if (POSITION_TO_CSS_MAP[value]) {\n            this.placement = value;\n\n            this.updateClassMap();\n        } else {\n            this.placement = PopUpPlacements.Top;\n\n            // eslint-disable-next-line no-console\n            console.warn(`Unknown position: ${value}. Will used default position: ${this.placement}`);\n        }\n\n        if (this.visible) {\n            this.updatePosition();\n        }\n    }\n\n    updatePlacementPriority(value) {\n        if (value && value.length > 0) {\n            this.placementPriority = value;\n        } else {\n            this.placementPriority = null;\n        }\n    }\n\n    updateVisible(externalValue: boolean) {\n        const value = coerceBooleanProperty(externalValue);\n\n        if (this.visible !== value) {\n            this.visible = value;\n\n            if (value) {\n                this.show();\n            } else {\n                this.hide();\n            }\n        }\n    }\n\n    keydownHandler(event: KeyboardEvent) {\n        if (this.isOpen && event.keyCode === ESCAPE) {\n            this.hide();\n        }\n    }\n\n    touchendHandler() {\n        this.hide();\n    }\n\n    show(delay: number = this.enterDelay): void {\n        if (this.disabled || this.instance) {\n            return;\n        }\n\n        this.overlayRef = this.createOverlay();\n        this.subscribeOnClosingActions();\n        this.detach();\n\n        this.portal = this.portal || new ComponentPortal(this.getOverlayHandleComponentType(), this.hostView);\n\n        this.instance = this.overlayRef.attach(this.portal).instance as KbqPopUp;\n\n        this.instance.trigger = this;\n\n        this.instance.afterHidden().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n        this.updateClassMap();\n\n        this.updateData();\n\n        this.instance.visibleChange\n            .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n            .subscribe((value) => {\n                this.visible = value;\n                this.visibleChange.emit(value);\n                this.isOpen = value;\n            });\n\n        this.updatePosition();\n\n        this.instance.show(delay);\n\n        if (this.hideWithTimeout && this.trigger.includes(PopUpTriggers.Hover)) {\n            this.ngZone.runOutsideAngular(() => {\n                interval(this.leaveDelay, this.scheduler)\n                    .pipe(\n                        filter(() => this.trigger.includes(PopUpTriggers.Hover)),\n                        filter(() => !this.hovered.getValue() && !this.instance?.hovered.getValue()),\n                        takeUntilDestroyed(this.instance?.destroyRef)\n                    )\n                    .subscribe(() => this.hide());\n            });\n        }\n    }\n\n    hide(delay: number = this.leaveDelay) {\n        if (this.preventClose) return;\n\n        if (\n            (this.instance && this.triggerName !== 'mouseleave') ||\n            (this.triggerName === 'mouseleave' && !this.instance?.hovered.getValue())\n        ) {\n            this.ngZone.run(() => this.instance?.hide(delay));\n        }\n    }\n\n    detach = (): void => {\n        if (this.overlayRef?.hasAttached()) {\n            this.overlayRef.detach();\n        }\n\n        this.instance = null;\n    };\n\n    /** Create the overlay config and position strategy */\n    createOverlay(): OverlayRef {\n        if (this.overlayRef) {\n            return this.overlayRef;\n        }\n\n        // Create connected position strategy that listens for scroll events to reposition.\n        this.strategy = this.overlay\n            .position()\n            .flexibleConnectedTo(this.getNativeElement())\n            .withTransformOriginOn(this.originSelector)\n            .withFlexibleDimensions(false)\n            .withPositions([...EXTENDED_OVERLAY_POSITIONS])\n            .withLockedPosition()\n            .withScrollableContainers(this.scrollDispatcher.getAncestorScrollContainers(this.getNativeElement()));\n\n        this.strategy.positionChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.onPositionChange);\n\n        this.overlayRef = this.overlay.create({\n            ...this.overlayConfig,\n            direction: this.direction || undefined,\n            positionStrategy: this.strategy,\n            scrollStrategy: this.scrollStrategy()\n        });\n\n        this.subscribeOnClosingActions();\n\n        this.overlayRef.detachments().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n        return this.overlayRef;\n    }\n\n    resetOrigin() {\n        this.strategy.setOrigin(this.getNativeElement());\n    }\n\n    onPositionChange = ($event: ConnectedOverlayPositionChange): void => {\n        if (!this.instance) {\n            return;\n        }\n\n        let newPlacement = this.placement;\n\n        const { originX, originY, overlayX, overlayY } = $event.connectionPair;\n\n        Object.keys(this.availablePositions).some((key) => {\n            if (\n                originX === this.availablePositions[key].originX &&\n                originY === this.availablePositions[key].originY &&\n                overlayX === this.availablePositions[key].overlayX &&\n                overlayY === this.availablePositions[key].overlayY\n            ) {\n                newPlacement = key as PopUpPlacements;\n\n                return true;\n            }\n\n            return false;\n        });\n\n        this.placementChange.emit(newPlacement);\n\n        this.updateClassMap(newPlacement);\n\n        this.instance.detectChanges();\n    };\n\n    initListeners() {\n        this.clearListeners();\n\n        if (this.trigger.includes(PopUpTriggers.Click)) {\n            this.listeners.set(...this.createListener('click', this.show));\n        }\n\n        if (this.trigger.includes(PopUpTriggers.Hover)) {\n            this.listeners\n                .set(...this.createListener('mouseenter', this.show))\n                .set(...this.createListener('mouseleave', this.getMouseLeaveListener()));\n        }\n\n        if (this.trigger.includes(PopUpTriggers.Focus)) {\n            this.listeners\n                .set(...this.createListener('focus', this.show))\n                .set(...this.createListener('blur', this.hide));\n        }\n\n        if (this.trigger.includes(PopUpTriggers.Keydown)) {\n            this.listeners.set('keydown', (event) => {\n                if (event instanceof KeyboardEvent && [ENTER, SPACE].includes(event.keyCode)) {\n                    setTimeout(() => this.show());\n                }\n            });\n        }\n\n        this.listeners.forEach(this.addEventListener);\n    }\n\n    getMouseLeaveListener() {\n        if (this.hideWithTimeout) {\n            return () => setTimeout(() => this.hide(), this.leaveDelay);\n        }\n\n        return this.hide;\n    }\n\n    /** Updates the position of the current popover. */\n    updatePosition(reapplyPosition: boolean = false) {\n        this.overlayRef = this.createOverlay();\n\n        this.subscribeOnClosingActions();\n\n        const position = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)\n            .withPositions(this.getAdjustedPositions())\n            .withPush(true);\n\n        if (reapplyPosition) {\n            setTimeout(() => position.reapplyLastPosition());\n        }\n    }\n\n    focus() {\n        this.getNativeElement().focus();\n    }\n\n    /** @docs-private */\n    getNativeElement(): HTMLElement {\n        return this.externalNativeElement || this.elementRef.nativeElement;\n    }\n\n    /** @docs-private */\n    setExternalNativeElement(value: HTMLElement) {\n        this.externalNativeElement = value;\n    }\n\n    /**\n     * Returns a list of positions that are aligned with the element's dimensions and offsets.\n     * @protected\n     */\n    protected getAdjustedPositions(): ConnectionPositionPair[] {\n        const res: ConnectionPositionPair[] = [];\n\n        for (const pos of this.getPrioritizedPositions()) {\n            const offset: KbqPopupTriggerOffset = this.arrow\n                ? getOffset(pos, this.getNativeElement().getBoundingClientRect())\n                : {};\n\n            res.push({\n                ...pos,\n                ...offset\n            });\n        }\n\n        return res;\n    }\n\n    protected getPriorityPlacementStrategy(value: string | string[]): ConnectionPositionPair[] {\n        const result: ConnectionPositionPair[] = [];\n        const possiblePositions = Object.keys(this.availablePositions);\n\n        if (Array.isArray(value)) {\n            value.forEach((position: string) => {\n                if (possiblePositions.includes(position)) {\n                    result.push(this.availablePositions[position]);\n                }\n            });\n        } else if (possiblePositions.includes(value)) {\n            result.push(this.availablePositions[value]);\n        }\n\n        return result;\n    }\n\n    protected getPrioritizedPositions() {\n        if (this.placementPriority) {\n            return this.getPriorityPlacementStrategy(this.placementPriority);\n        }\n\n        return POSITION_PRIORITY_STRATEGY[this.placement];\n    }\n\n    protected clearListeners() {\n        this.listeners.forEach(this.removeEventListener);\n\n        this.listeners.clear();\n    }\n\n    private createListener(name: string, listener: () => void): [string, (event: unknown) => void] {\n        return [\n            name,\n            (event: unknown) => {\n                this.triggerName = name;\n                this.saveMouseEvent(event as MouseEvent);\n\n                return listener.call(this);\n            }\n        ];\n    }\n\n    private saveMouseEvent(event: MouseEvent) {\n        if (this.triggerName === 'mouseenter') {\n            this.mouseEvent = event;\n        }\n    }\n\n    private addEventListener = (listener: EventListener, event: string) => {\n        this.getNativeElement().addEventListener(event, listener);\n    };\n\n    private removeEventListener = (listener: EventListener, event: string) => {\n        this.getNativeElement().removeEventListener(event, listener);\n    };\n\n    private subscribeOnClosingActions() {\n        this.closingActionsSubscription?.unsubscribe();\n\n        this.closingActionsSubscription = this.closingActions()\n            .pipe(takeUntilDestroyed(this.destroyRef))\n            .pipe(rxDelay(0))\n            .subscribe((event) => {\n                if (event?.type === 'click' && event.kbqPopoverPreventHide) {\n                    return;\n                }\n\n                this.hide();\n            });\n    }\n}\n","import { Overlay, RepositionScrollStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\n/**\n * Minimum option count threshold for displaying select search.\n * Search is hidden when fewer options are available.\n */\nexport const KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD = 10;\n\n/**\n * The select panel will only \"fit\" inside the viewport if it is positioned at\n * this value or more away from the viewport boundary.\n */\nexport const SELECT_PANEL_VIEWPORT_PADDING = 8;\n\n/** Injection token that determines the scroll handling while a select is open. */\nexport const KBQ_SELECT_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-select-scroll-strategy');\n\n/** @docs-private */\nexport function kbqSelectScrollStrategyProviderFactory(overlay: Overlay): () => RepositionScrollStrategy {\n    return () => overlay.scrollStrategies.reposition();\n}\n\n/** @docs-private */\nexport const KBQ_SELECT_SCROLL_STRATEGY_PROVIDER = {\n    provide: KBQ_SELECT_SCROLL_STRATEGY,\n    deps: [Overlay],\n    useFactory: kbqSelectScrollStrategyProviderFactory\n};\n","import { CdkConnectedOverlay } from '@angular/cdk/overlay';\nimport {\n    AfterContentInit,\n    booleanAttribute,\n    Directive,\n    EventEmitter,\n    Inject,\n    Input,\n    OnDestroy,\n    Optional\n} from '@angular/core';\nimport { END, ESCAPE, HOME, SPACE } from '@koobiq/cdk/keycodes';\nimport { Subscription } from 'rxjs';\nimport { KBQ_FORM_FIELD_REF, KbqFormFieldRef } from '../form-field';\nimport { KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, SELECT_PANEL_VIEWPORT_PADDING } from './constants';\n\n@Directive({\n    selector: 'kbq-select-trigger, [kbq-select-trigger]'\n})\nexport class KbqSelectTrigger {}\n\n@Directive({\n    selector: 'kbq-select-matcher, [kbq-select-matcher]'\n})\nexport class KbqSelectMatcher {\n    @Input({ transform: booleanAttribute }) useDefaultHandlers: boolean = true;\n}\n\n@Directive({\n    selector: '[kbq-select-search-empty-result]',\n    exportAs: 'kbqSelectSearchEmptyResult',\n    host: {\n        class: 'kbq-select-search-empty-result kbq-select__no-options-message'\n    }\n})\nexport class KbqSelectSearchEmptyResult {}\n\n@Directive({\n    selector: 'kbq-select-footer, [kbq-select-footer]',\n    host: { class: 'kbq-select__footer' }\n})\nexport class KbqSelectFooter {}\n\n@Directive({\n    selector: '[kbqSelectSearch]',\n    exportAs: 'kbqSelectSearch',\n    host: {\n        '(keydown)': 'handleKeydown($event)'\n    }\n})\nexport class KbqSelectSearch implements AfterContentInit, OnDestroy {\n    readonly changes: EventEmitter<string> = new EventEmitter<string>();\n\n    isSearchChanged: boolean = false;\n\n    get ngControl() {\n        return this.formField.control.ngControl;\n    }\n\n    private searchChangesSubscription: Subscription = new Subscription();\n\n    constructor(@Optional() @Inject(KBQ_FORM_FIELD_REF) protected formField: KbqFormFieldRef) {\n        this.formField.canCleanerClearByEsc = false;\n        this.formField.inOverlay.set(true);\n    }\n\n    setPlaceholder(value: string): void {\n        this.formField.control.placeholder = value;\n    }\n\n    hasPlaceholder(): boolean {\n        return !!this.formField?.control.placeholder;\n    }\n\n    focus(): void {\n        this.formField.focusViaKeyboard();\n    }\n\n    reset(): void {\n        this.ngControl?.reset();\n    }\n\n    value() {\n        return this.formField.control.value;\n    }\n\n    ngAfterContentInit(): void {\n        if (this.formField.control.controlType !== 'input') {\n            throw Error('KbqSelectSearch does not work without kbqInput');\n        }\n\n        if (!this.ngControl) {\n            throw Error('KbqSelectSearch does not work without ngControl');\n        }\n\n        Promise.resolve().then(() => {\n            this.searchChangesSubscription = this.ngControl.valueChanges!.subscribe((value) => {\n                this.isSearchChanged = true;\n                this.changes.next(value);\n            });\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.searchChangesSubscription.unsubscribe();\n    }\n\n    handleKeydown(event: KeyboardEvent) {\n        if (event.keyCode === ESCAPE) {\n            if (this.value()) {\n                this.reset();\n                event.stopPropagation();\n            }\n        }\n\n        if ([SPACE, HOME, END].includes(event.keyCode)) {\n            event.stopPropagation();\n        }\n    }\n}\n\n/**\n * Abstract class representing a customizable select component with an overlay.\n *\n * This class provides base functionality for handling the overlay positioning.\n * @docs-private\n */\n@Directive()\nexport abstract class KbqAbstractSelect {\n    protected overlayDir: CdkConnectedOverlay;\n    protected triggerRect: DOMRect;\n\n    /** Overlay panel class. */\n    protected readonly overlayPanelClass = 'kbq-select-overlay';\n\n    protected setOverlayPosition() {\n        if (!this.overlayDir.overlayRef) return;\n\n        this.resetOverlay();\n\n        const overlayRect = this.getOverlayRect();\n        // Window width without scrollbar\n        const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n        let offsetX: number = 0;\n        let overlayMaxWidth: number;\n\n        // Determine if select overflows on either side.\n        const leftOverflow = -overlayRect.left;\n        const rightOverflow = overlayRect.right - windowWidth;\n\n        // If the element overflows on either side, reduce the offset to allow it to fit.\n        if (leftOverflow > 0 || rightOverflow > 0) {\n            [offsetX, overlayMaxWidth] = this.calculateOverlayOffsetX(offsetX);\n            this.overlayDir.overlayRef.overlayElement.style.maxWidth = `${overlayMaxWidth}px`;\n            // reset the minWidth property\n            this.overlayDir.overlayRef.overlayElement.style.minWidth = '';\n        }\n\n        // Set the offset directly in order to avoid having to go through change detection and\n        // potentially triggering \"changed after it was checked\" errors. Round the value to avoid\n        // blurry content in some browsers.\n        this.overlayDir.offsetX = Math.round(offsetX);\n        this.overlayDir.overlayRef.updatePosition();\n    }\n\n    protected calculateOverlayOffsetX(baseOffsetX: number): number[] {\n        let offsetX = baseOffsetX;\n        const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n        const { left: leftIndent, right: triggerRight, width: triggerWidth } = this.triggerRect;\n        const { width: overlayRectWidth } = this.getOverlayRect();\n        const rightIndent = windowWidth - triggerRight;\n        // Setting direction of dropdown expansion\n        const isRightDirection = leftIndent <= rightIndent;\n\n        const indent = isRightDirection ? rightIndent : leftIndent;\n        const maxDropdownWidth = indent + triggerWidth - SELECT_PANEL_VIEWPORT_PADDING;\n        const overlayMaxWidth = overlayRectWidth < maxDropdownWidth ? overlayRectWidth : maxDropdownWidth;\n\n        if (!isRightDirection) {\n            const leftOffset = triggerRight - overlayMaxWidth;\n\n            offsetX -= leftIndent - leftOffset;\n        }\n\n        return [offsetX, overlayMaxWidth];\n    }\n\n    protected getOverlayRect(): DOMRect {\n        return this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n    }\n\n    protected resetOverlay(): void {\n        this.overlayDir.overlayRef.hostElement.classList.add(this.overlayPanelClass);\n        this.overlayDir.offsetX = 0;\n        this.overlayDir.overlayRef.overlayElement.style.maxWidth = 'unset';\n        this.overlayDir.overlayRef.updatePosition();\n    }\n\n    protected resolveSearchMinOptionsThreshold(value?: 'auto' | number) {\n        return value === 'auto' ? KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD : value;\n    }\n}\n","/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nexport function getKbqSelectDynamicMultipleError(): Error {\n    return Error('Cannot change `multiple` mode of select after initialization.');\n}\n\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nexport function getKbqSelectNonArrayValueError(): Error {\n    return Error('Value must be an array in multiple-selection mode.');\n}\n\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nexport function getKbqSelectNonFunctionValueError(): Error {\n    return Error('`compareWith` must be a function.');\n}\n","export const selectEvents = 'selectEvents';\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class KbqMeasureScrollbarService {\n    protected readonly document = inject<Document>(DOCUMENT);\n\n    get scrollBarWidth(): number {\n        if (this._scrollBarWidth) {\n            return this._scrollBarWidth;\n        }\n\n        this.initScrollBarWidth();\n\n        return this._scrollBarWidth;\n    }\n\n    private _scrollBarWidth: number;\n    private scrollbarMeasure = {\n        position: 'absolute',\n        top: '-9999px',\n        width: '50px',\n        height: '50px',\n        overflow: 'scroll'\n    };\n\n    constructor() {\n        this.initScrollBarWidth();\n    }\n\n    initScrollBarWidth() {\n        const scrollDiv = this.document.createElement('div');\n\n        for (const scrollProp in this.scrollbarMeasure) {\n            if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {\n                scrollDiv.style[scrollProp] = this.scrollbarMeasure[scrollProp];\n            }\n        }\n\n        this.document.body.appendChild(scrollDiv);\n\n        const width = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n        this.document.body.removeChild(scrollDiv);\n        this._scrollBarWidth = width;\n    }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, OnDestroy, Renderer2, RendererFactory2 } from '@angular/core';\nimport { BehaviorSubject, pairwise, Subscription } from 'rxjs';\n\nexport interface KbqTheme {\n    name: string;\n    className: string;\n    selected: boolean;\n}\n\n/**\n * Enum representing the available themes for the Koobiq design system.\n * This enum is used to manage and switch between different visual themes.\n */\nexport enum KbqThemeSelector {\n    /**\n     * Represents the default light theme.\n     * This is the standard theme that is applied\n     * when the application is first loaded if nothing else provided\n     */\n    Default = 'kbq-light',\n    /**\n     * This theme is used to provide a darker visual experience, often preferred in low-light environments.\n     */\n    Dark = 'kbq-dark'\n}\n\nexport const KbqDefaultThemes: KbqTheme[] = [\n    {\n        name: 'light',\n        className: KbqThemeSelector.Default,\n        selected: true\n    },\n    {\n        name: 'dark',\n        className: KbqThemeSelector.Dark,\n        selected: false\n    }\n];\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService<T extends KbqTheme | null = KbqTheme> implements OnDestroy {\n    protected readonly document = inject<Document>(DOCUMENT);\n    protected readonly rendererFactory = inject(RendererFactory2);\n    protected renderer: Renderer2;\n\n    current: BehaviorSubject<T> = new BehaviorSubject(null as T);\n\n    themes: T[] = KbqDefaultThemes as T[];\n\n    protected subscription: Subscription;\n\n    constructor() {\n        this.renderer = this.rendererFactory.createRenderer(null, null);\n\n        this.subscription = this.current.pipe(pairwise()).subscribe(this.update);\n    }\n\n    ngOnDestroy() {\n        this.subscription.unsubscribe();\n    }\n\n    setThemes(items: T[]) {\n        this.themes = items;\n    }\n\n    setTheme(value: T | number) {\n        if (typeof value === 'number') {\n            this.current.next(this.themes[value]);\n        } else if (typeof value === 'object' && this.themes.includes(value)) {\n            this.current.next(value);\n        } else {\n            throw Error(`value has unsupported type: ${typeof value}`);\n        }\n    }\n\n    getTheme(): T {\n        return this.current.value;\n    }\n\n    protected update = ([prev, current]: T[]) => {\n        if (prev) {\n            prev.selected = false;\n            this.renderer.removeClass(this.document.body, prev.className);\n        }\n\n        if (current) {\n            this.renderer.addClass(this.document.body, current.className);\n            current.selected = true;\n        }\n    };\n}\n","import { InjectionToken, Provider } from '@angular/core';\n\n/**\n * @docs-private\n */\nexport const validationTooltipShowDelay = 10;\n\n/**\n * @docs-private\n */\nexport const validationTooltipHideDelay = 3000;\n\n/**\n * @deprecated Will be removed in next major release.\n *\n * @docs-private\n */\nexport interface KbqValidationOptions {\n    useValidation: boolean;\n}\n\n/**\n * @deprecated Will be removed in next major release.\n *\n * @docs-private\n */\nexport const KBQ_VALIDATION = new InjectionToken<KbqValidationOptions>('KbqUseValidation', {\n    factory: () => ({ useValidation: true })\n});\n\n/**\n * Utility provider which disables legacy validation directive.\n *\n * Will be removed in next major release, so legacy validation will be disabled by default.\n */\nexport const kbqDisableLegacyValidationDirectiveProvider = (): Provider => ({\n    provide: KBQ_VALIDATION,\n    useValue: { useValidation: false } satisfies KbqValidationOptions\n});\n","import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.8.2+sha-0239c50');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BaseDateAdapter","BaseDateFormatter","i1.KbqOptgroup","i2.KbqPseudoCheckbox","rxDelay"],"mappings":"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"}