import { DOWN_ARROW, UP_ARROW, SPACE, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';
import * as i0 from '@angular/core';
import { EventEmitter, ElementRef, HostListener, ViewChild, ViewChildren, Output, Input, HostBinding, ViewEncapsulation, ChangeDetectionStrategy, Component, inject, DestroyRef, forwardRef, Optional, NgModule } from '@angular/core';
import { BehaviorSubject, Subject, Subscription, combineLatest } from 'rxjs';
import { filter, tap, debounceTime, buffer, map } from 'rxjs/operators';
import * as i3 from '@fundamental-ngx/cdk/utils';
import { KeyUtil, resizeObservable } from '@fundamental-ngx/cdk/utils';
import { CarouselDirective, CarouselItemDirective } from '@fundamental-ngx/core/carousel';
import { ButtonComponent } from '@fundamental-ngx/core/button';
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import * as i1 from '@fundamental-ngx/core/datetime';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import * as i2 from '@fundamental-ngx/core/content-density';
import { contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';

let timeColumnUniqueId = 0;
class TimeColumnComponent {
    /** Currently chosen, centered time column item */
    set activeValue(activeItem) {
        if (!activeItem) {
            // omitting "null" and "undefined"
            return;
        }
        if (this._viewInit$.value && this._activeValue !== activeItem) {
            this._pickTime(this._getItem(activeItem), false);
        }
        this._activeValue = activeItem;
    }
    get activeValue() {
        return this._activeValue;
    }
    /** Defines if column is active, it has impact on behavior and visual  */
    set active(value) {
        this._active = value;
        if (value && this._viewInit$.value) {
            this._changeDetRef.detectChanges();
            this._pickTime(this._getItem(this.activeValue), false);
            this._focusIndicator();
        }
    }
    get active() {
        return this._active;
    }
    /**
     * Offset for carousel directive, active item is always the first one.
     * In case of having more items in carousel than 1, middle element should be active
     */
    set offset(value) {
        this._offset$.next(value);
    }
    get offset() {
        return this._offset$.value;
    }
    /**
     * Quantity of the elements to be shown at the same time in column
     */
    set elementsAtOnce(value) {
        this._elementsAtOnce$.next(value);
    }
    /** @hidden */
    get currentIndicatorId() {
        return this.id + '-current-indicator';
    }
    /** @hidden */
    get currentIndicatorValueId() {
        return this.currentIndicatorId + '-value';
    }
    /** @hidden */
    constructor(_changeDetRef, _elmRef) {
        this._changeDetRef = _changeDetRef;
        this._elmRef = _elmRef;
        /** items in row */
        this.rows = [];
        /**
         * @Input When set to false, hides the buttons that increment
         * and decrement the corresponding columns.
         */
        this.spinners = true;
        /** Whether time column is meridian */
        this.meridian = false;
        /** Id of column, initiated with some default value */
        this.id = 'fd-time-column-' + timeColumnUniqueId++;
        /** Event emitted, when active item is changed, by carousel */
        this.activeValueChange = new EventEmitter();
        /** Event emitted, when certain column is activated */
        this.activeStateChange = new EventEmitter();
        /**
         * Time to wait in milliseconds after the last keydown before
         * focusing or selecting option based on numeric/alpha keys.
         * @hidden
         */
        this.typeaheadDebounceInterval = 750;
        /** @hidden */
        this.internalTranslationConfig = null;
        /** @hidden */
        this._elementsAtOnce$ = new BehaviorSubject(7);
        /** @hidden */
        this._offset$ = new BehaviorSubject(3);
        /** @hidden */
        this._active = false;
        /** @hidden */
        this._queryKeyDownEvent = new Subject();
        /** @hidden */
        this._isDragging = false;
        /** @hidden */
        this._viewInit$ = new BehaviorSubject(false);
        /** @hidden */
        this._resize$ = new BehaviorSubject(false);
        /** @hidden */
        this._subscriptions = new Subscription();
        /** @hidden
         * logs numeric key inputs to set time using keyboard input.
         */
        this._keyLog = [];
        this._subscriptions.add(combineLatest([this._viewInit$, this._elementsAtOnce$, this._offset$, this._resize$])
            .pipe(filter(([viewInit]) => viewInit), tap(([, elementsAtOnce, offset]) => {
            const averageHeight = this.items.toArray().reduce((acc, next) => acc + next.getHeight(), 0) / this.items.length;
            this.wrapperHeight = averageHeight * elementsAtOnce;
            const visibleButNotSelectedElements = Math.floor(elementsAtOnce / 2);
            if (offset === 0) {
                this.items.first.element.style.marginTop = `${visibleButNotSelectedElements * averageHeight}px`;
                this.items.last.element.style.marginBottom = `${visibleButNotSelectedElements * averageHeight}px`;
            }
            if (this.activeValue) {
                this._pickTime(this._getItem(this.activeValue), false);
            }
            this._changeDetRef.detectChanges();
        }))
            .subscribe());
    }
    /** @hidden */
    onItemClick() {
        this.activeStateChange.emit();
    }
    /** @hidden */
    keyDownHandler(event) {
        if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {
            this.scrollDown();
            event.preventDefault();
        }
        else if (KeyUtil.isKeyCode(event, UP_ARROW)) {
            this.scrollUp();
            event.preventDefault();
        }
        else if (KeyUtil.isKeyType(event, 'numeric')) {
            this._numericKeyInputHandler(event);
        }
        else if (KeyUtil.isKeyType(event, 'alphabetical')) {
            this._alphaKeyInputHandler(event);
        }
    }
    /** @hidden */
    mouseScrollHandler(event) {
        event.preventDefault();
        if (this._active) {
            event.deltaY > 0 ? this.scrollDown() : this.scrollUp();
        }
    }
    /** @hidden */
    ngOnInit() {
        this._subscriptions.add(this._elementsAtOnce$.pipe(tap(() => this._setUpCarouselConfiguration())).subscribe());
        this._setUpQuerySubscription();
    }
    /** @hidden */
    ngAfterViewInit() {
        this._subscriptions.add(resizeObservable(this._elmRef.nativeElement).subscribe(() => {
            this._resize$.next(true);
        }));
        this._viewInit$.next(true);
    }
    /** @hidde */
    ngOnChanges(changes) {
        if (changes.columnTranslationsPreset) {
            this._updateInternalTranslationConfig();
        }
    }
    /** @hidden */
    ngOnDestroy() {
        this._subscriptions.unsubscribe();
    }
    /** @hidden */
    spinnerButtonKeyupHandle(event, upButton) {
        if (KeyUtil.isKeyCode(event, SPACE)) {
            if (upButton) {
                this.scrollUp();
            }
            else {
                this.scrollDown();
            }
            event.stopPropagation();
            event.preventDefault();
        }
    }
    /** @hidden */
    setValueOfActive() {
        if (this._active) {
            this._setUpInitialValue();
        }
    }
    /** It prevents from accidentally change the item by click event */
    handleDrag(isDragging) {
        this._isDragging = isDragging;
    }
    /** Method that handles active item change */
    activeChangedHandle(output) {
        const array = this.items.toArray();
        let index = array.findIndex((__item) => __item === output.item) + this.offset;
        if (index >= array.length) {
            index = index - array.length;
        }
        const _item = array[index];
        this._activeValue = _item.value;
        this.activeValueChange.emit({
            value: this._activeValue,
            after: output.after
        });
        this._activeCarouselItem = _item;
    }
    /** Method that changes active item and triggers carousel scroll */
    pick(item, index) {
        const currentIndex = this.items.toArray().findIndex((_item) => _item === this._activeCarouselItem);
        /** To prevent from switching time, when it's being dragged */
        if (!this._isDragging) {
            this._pickTime(item, true, true, currentIndex < index);
        }
    }
    /** Method triggered by keyboard, or increment button */
    scrollUp(event) {
        /** Keyboard events in reactive forms, shouldn't trigger this method */
        if (event && !event.clientX) {
            return;
        }
        let index = this.items.toArray().findIndex((_item) => _item === this._activeCarouselItem);
        if (index > 0) {
            index--;
        }
        else {
            index = this.rows.length - 1;
        }
        this._pickTime(this.items.toArray()[index], true, true, false);
    }
    /** Method triggered by keyboard, or decrement button */
    scrollDown() {
        let index = this.items.toArray().findIndex((_item) => _item === this._activeCarouselItem);
        if (index < this.rows.length - 1) {
            index++;
        }
        else {
            index = 0;
        }
        this._pickTime(this.items.toArray()[index], true, true, true);
    }
    /** Focus on column */
    focus() {
        this.indicator?.nativeElement.focus();
    }
    /**
     * Create id for column item
     * @param index column item index
     * @returns column item id
     * @hidden
     */
    _createColumnItemIdByIndex(index) {
        return this.id + index;
    }
    /**
     * On focus callback
     * @hidden
     */
    _onFocusIndicator() {
        this.activeStateChange.emit();
    }
    /** @hidden
     * handles alphabetical key inputs to set period.
     */
    _alphaKeyInputHandler(event) {
        if (event.key.toLowerCase() === 'a') {
            this._pickTimeOnValue('AM');
        }
        else if (event.key.toLowerCase() === 'p') {
            this._pickTimeOnValue('PM');
        }
    }
    /** @hidden
     * handles numeric key inputs to set time.
     */
    _numericKeyInputHandler(event) {
        const lastItemValue = this.items.last.value.value; // value of last item in column
        this._numericInputTimeout && clearTimeout(this._numericInputTimeout);
        this._keyLog.push(event.key);
        const inputValue = parseInt(this._keyLog.join(''), 10); // converts keyLog elements to a number
        if (inputValue * 10 > lastItemValue || this._keyLog.length === lastItemValue.toString().length) {
            this._pickTimeOnValue(inputValue);
        }
        else {
            this._numericInputTimeout = setTimeout(() => {
                this._pickTimeOnValue(inputValue);
            }, 500);
        }
    }
    /** @hidden
     * set the time for given item value. used by _numericKeyInputHandler.
     */
    _pickTimeOnValue(value) {
        this._pickTime(this.items.find((item) => item.value.value === value), false, true, false);
        this._keyLog = []; // clear key log
    }
    /**
     * Method triggered by keyboard, or decrement button
     * Args:
     * item => picked carousel item, that should be centered
     * smooth => defines if transition time should be included in transform
     * emitEvent => defines if EventEmitter should be triggered by this change, set to false, when changed from outside
     * after => Defines if value was incremented/decremented, needed for hours to trigger AM/PM change
     * @hidden
     */
    _pickTime(item, smooth, emitEvent, after) {
        if (!item) {
            return;
        }
        if (this.active) {
            this._triggerCarousel(item, smooth);
        }
        this._activeCarouselItem = item;
        this._activeValue = item.value;
        if (emitEvent) {
            this.activeValueChange.emit({
                value: item.value,
                after
            });
        }
    }
    /**
     * Returns item with passed value
     * @hidden
     */
    _getItem(_item) {
        return this.items.find((item) => item.value === _item);
    }
    /** @hidden */
    _triggerCarousel(item, smooth) {
        const array = this.items.toArray();
        let index = array.findIndex((_item) => _item === item) - this.offset;
        if (index < 0) {
            index = array.length + index;
        }
        this.carousel.goToItem(array[index], smooth);
    }
    /**
     * Focus current indicator, which allows to handle keydown events inside column
     * @hidden
     */
    _focusIndicator() {
        document.getElementById(this.currentIndicatorId)?.focus();
    }
    /** @hidden */
    _getValue(value) {
        if (!isNaN(Number(value))) {
            return Number(value);
        }
        else {
            return value;
        }
    }
    /** @hidden */
    _setUpQuerySubscription() {
        const trigger = this._queryKeyDownEvent.pipe(debounceTime(this.typeaheadDebounceInterval));
        this._subscriptions.add(this._queryKeyDownEvent
            .pipe(buffer(trigger), map((keys) => keys.join('')), map((value) => this._getValue(value)), map((value) => this._getItem(value)))
            .subscribe((item) => this._pickTime(item, false, true)));
    }
    /** @hidden */
    _setUpCarouselConfiguration() {
        const config = {
            gestureSupport: true,
            vertical: true,
            elementsAtOnce: this._elementsAtOnce$.value,
            transition: '150ms'
        };
        if (!this.meridian) {
            config.infinite = true;
        }
        this.config = config;
    }
    /** @hidden */
    _setUpInitialValue() {
        if (!this._activeValue) {
            this._activeValue = this.items.first.value;
        }
        this._pickTime(this._getItem(this._activeValue), false);
    }
    /** @hidden */
    _updateInternalTranslationConfig() {
        switch (this.columnTranslationsPreset) {
            case 'hours':
                this.internalTranslationConfig = {
                    increaseLabel: 'coreTime.increaseHoursLabel',
                    label: 'coreTime.hrsLabel',
                    fullLabel: 'coreTime.hoursLabel',
                    decreaseLabel: 'coreTime.decreaseHoursLabel',
                    navigationInstruction: 'coreTime.navigationInstruction'
                };
                break;
            case 'minutes':
                this.internalTranslationConfig = {
                    increaseLabel: 'coreTime.increaseMinutesLabel',
                    label: 'coreTime.minLabel',
                    fullLabel: 'coreTime.minutesLabel',
                    decreaseLabel: 'coreTime.decreaseMinutesLabel',
                    navigationInstruction: 'coreTime.navigationInstruction'
                };
                break;
            case 'seconds':
                this.internalTranslationConfig = {
                    increaseLabel: 'coreTime.increaseSecondsLabel',
                    label: 'coreTime.secLabel',
                    fullLabel: 'coreTime.secondsLabel',
                    decreaseLabel: 'coreTime.decreaseSecondsLabel',
                    navigationInstruction: 'coreTime.navigationInstruction'
                };
                break;
            case 'period':
                this.internalTranslationConfig = {
                    increaseLabel: 'coreTime.increasePeriodLabel',
                    label: 'coreTime.periodLabel',
                    fullLabel: 'coreTime.periodLabel',
                    decreaseLabel: 'coreTime.decreasePeriodLabel',
                    navigationInstruction: 'coreTime.navigationInstruction'
                };
                break;
            default:
                this.internalTranslationConfig = null;
                break;
        }
        this._changeDetRef.markForCheck();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TimeColumnComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: TimeColumnComponent, isStandalone: true, selector: "fd-time-column", inputs: { rows: "rows", spinners: "spinners", activeValue: "activeValue", active: "active", meridian: "meridian", id: "id", timeConfig: "timeConfig", columnTranslationsPreset: "columnTranslationsPreset", offset: "offset", elementsAtOnce: "elementsAtOnce" }, outputs: { activeValueChange: "activeValueChange", activeStateChange: "activeStateChange" }, host: { listeners: { "click": "onItemClick()", "keydown": "keyDownHandler($event)", "wheel": "mouseScrollHandler($event)" }, properties: { "class.fd-time__col--period": "this.meridian" }, classAttribute: "fd-time__col" }, viewQueries: [{ propertyName: "carousel", first: true, predicate: CarouselDirective, descendants: true }, { propertyName: "indicator", first: true, predicate: ["indicator"], descendants: true, read: ElementRef }, { propertyName: "items", predicate: CarouselItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label class=\"fd-time__slider-label\">{{\n    timeConfig?.label || (internalTranslationConfig && (internalTranslationConfig.label | fdTranslate))\n}}</label>\n@if (active && spinners) {\n    <button\n        fd-button\n        fdType=\"transparent\"\n        glyph=\"navigation-up-arrow\"\n        tabindex=\"-1\"\n        [title]=\"\n            timeConfig?.decreaseLabel ||\n            (internalTranslationConfig && (internalTranslationConfig.decreaseLabel | fdTranslate))\n        \"\n        [ariaLabel]=\"\n            timeConfig?.decreaseLabel ||\n            (internalTranslationConfig && (internalTranslationConfig.decreaseLabel | fdTranslate))\n        \"\n        (keyup)=\"spinnerButtonKeyupHandle($event, true)\"\n        (click)=\"scrollUp($event)\"\n    ></button>\n}\n<div\n    class=\"fd-time__wrapper\"\n    [class.fd-time__wrapper--active]=\"active\"\n    [class.fd-time__wrapper--meridian]=\"meridian\"\n    [style.height.px]=\"active ? wrapperHeight : ''\"\n>\n    <ul\n        class=\"fd-time__list\"\n        [class.fd-time-column-custom-hidden]=\"!active\"\n        [config]=\"config\"\n        (click)=\"indicator.focus()\"\n        (activeChange)=\"activeChangedHandle($event)\"\n        (dragStateChange)=\"handleDrag($event)\"\n        fdCarousel\n    >\n        @for (row of rows; track row; let index = $index) {\n            <li\n                class=\"fd-time__item\"\n                fdCarouselItem\n                #item=\"fdCarouselItem\"\n                [id]=\"_createColumnItemIdByIndex(index)\"\n                [attr.data-displayed-value]=\"row.value\"\n                [value]=\"row\"\n            >\n                <span class=\"fd-time__unit\" role=\"button\" [attr.aria-label]=\"row.label\" (click)=\"pick(item, index)\">\n                    {{ row.label }}\n                </span>\n            </li>\n        }\n    </ul>\n    <div\n        class=\"fd-time__current-indicator\"\n        #indicator\n        tabindex=\"0\"\n        role=\"listbox\"\n        [attr.id]=\"currentIndicatorId\"\n        [class.fd-time-column-custom-hidden]=\"!active\"\n        [attr.aria-labelledby]=\"currentIndicatorValueId\"\n        [attr.aria-description]=\"\n            timeConfig?.navigationInstruction ||\n            (internalTranslationConfig && (internalTranslationConfig.navigationInstruction | fdTranslate))\n        \"\n        (focus)=\"_onFocusIndicator()\"\n    >\n        <span\n            class=\"fd-time-column-custom-hidden\"\n            aria-atomic=\"true\"\n            [attr.aria-hidden]=\"!active\"\n            [attr.id]=\"currentIndicatorValueId\"\n            [class.fd-time-column-custom-hidden]=\"active\"\n        >\n            {{ activeValue?.label }}\n            {{\n                timeConfig?.label || (internalTranslationConfig && (internalTranslationConfig.fullLabel | fdTranslate))\n            }}\n        </span>\n    </div>\n    @if (!active) {\n        <span class=\"fd-time__item fd-time__item--collapsed\">\n            {{ activeValue?.label }}\n        </span>\n    }\n</div>\n@if (active && spinners) {\n    <button\n        fd-button\n        fdType=\"transparent\"\n        glyph=\"navigation-down-arrow\"\n        tabindex=\"-1\"\n        [title]=\"\n            timeConfig?.increaseLabel ||\n            (internalTranslationConfig && (internalTranslationConfig.increaseLabel | fdTranslate))\n        \"\n        [ariaLabel]=\"\n            timeConfig?.increaseLabel ||\n            (internalTranslationConfig && (internalTranslationConfig.increaseLabel | fdTranslate))\n        \"\n        (keyup)=\"spinnerButtonKeyupHandle($event)\"\n        (click)=\"scrollDown()\"\n    ></button>\n}\n", styles: [".fd-time__col .fd-carousel{transition:all .2s ease-in}.fd-time__list{overflow:visible}.fd-time-column-custom-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fd-time__current-indicator{pointer-events:none}.fd-time__current-indicator:focus{outline:none}.fd-time--compact .fd-time__wrapper--meridian .fd-time__item:last-child.fd-time__item--collapsed,.fd-time .fd-time__wrapper--meridian .fd-time__item:last-child.fd-time__item--collapsed{margin-bottom:0;margin-top:0}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: CarouselDirective, selector: "[fdCarousel]", inputs: ["config", "active"], outputs: ["activeChange", "dragStateChange"] }, { kind: "directive", type: CarouselItemDirective, selector: "[fd-carousel-item], [fdCarouselItem]", inputs: ["value", "initialHeight", "initialWidth", "id"], exportAs: ["fdCarouselItem"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TimeColumnComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-time-column', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
                        class: 'fd-time__col'
                    }, imports: [ButtonComponent, CarouselDirective, CarouselItemDirective, FdTranslatePipe], template: "<label class=\"fd-time__slider-label\">{{\n    timeConfig?.label || (internalTranslationConfig && (internalTranslationConfig.label | fdTranslate))\n}}</label>\n@if (active && spinners) {\n    <button\n        fd-button\n        fdType=\"transparent\"\n        glyph=\"navigation-up-arrow\"\n        tabindex=\"-1\"\n        [title]=\"\n            timeConfig?.decreaseLabel ||\n            (internalTranslationConfig && (internalTranslationConfig.decreaseLabel | fdTranslate))\n        \"\n        [ariaLabel]=\"\n            timeConfig?.decreaseLabel ||\n            (internalTranslationConfig && (internalTranslationConfig.decreaseLabel | fdTranslate))\n        \"\n        (keyup)=\"spinnerButtonKeyupHandle($event, true)\"\n        (click)=\"scrollUp($event)\"\n    ></button>\n}\n<div\n    class=\"fd-time__wrapper\"\n    [class.fd-time__wrapper--active]=\"active\"\n    [class.fd-time__wrapper--meridian]=\"meridian\"\n    [style.height.px]=\"active ? wrapperHeight : ''\"\n>\n    <ul\n        class=\"fd-time__list\"\n        [class.fd-time-column-custom-hidden]=\"!active\"\n        [config]=\"config\"\n        (click)=\"indicator.focus()\"\n        (activeChange)=\"activeChangedHandle($event)\"\n        (dragStateChange)=\"handleDrag($event)\"\n        fdCarousel\n    >\n        @for (row of rows; track row; let index = $index) {\n            <li\n                class=\"fd-time__item\"\n                fdCarouselItem\n                #item=\"fdCarouselItem\"\n                [id]=\"_createColumnItemIdByIndex(index)\"\n                [attr.data-displayed-value]=\"row.value\"\n                [value]=\"row\"\n            >\n                <span class=\"fd-time__unit\" role=\"button\" [attr.aria-label]=\"row.label\" (click)=\"pick(item, index)\">\n                    {{ row.label }}\n                </span>\n            </li>\n        }\n    </ul>\n    <div\n        class=\"fd-time__current-indicator\"\n        #indicator\n        tabindex=\"0\"\n        role=\"listbox\"\n        [attr.id]=\"currentIndicatorId\"\n        [class.fd-time-column-custom-hidden]=\"!active\"\n        [attr.aria-labelledby]=\"currentIndicatorValueId\"\n        [attr.aria-description]=\"\n            timeConfig?.navigationInstruction ||\n            (internalTranslationConfig && (internalTranslationConfig.navigationInstruction | fdTranslate))\n        \"\n        (focus)=\"_onFocusIndicator()\"\n    >\n        <span\n            class=\"fd-time-column-custom-hidden\"\n            aria-atomic=\"true\"\n            [attr.aria-hidden]=\"!active\"\n            [attr.id]=\"currentIndicatorValueId\"\n            [class.fd-time-column-custom-hidden]=\"active\"\n        >\n            {{ activeValue?.label }}\n            {{\n                timeConfig?.label || (internalTranslationConfig && (internalTranslationConfig.fullLabel | fdTranslate))\n            }}\n        </span>\n    </div>\n    @if (!active) {\n        <span class=\"fd-time__item fd-time__item--collapsed\">\n            {{ activeValue?.label }}\n        </span>\n    }\n</div>\n@if (active && spinners) {\n    <button\n        fd-button\n        fdType=\"transparent\"\n        glyph=\"navigation-down-arrow\"\n        tabindex=\"-1\"\n        [title]=\"\n            timeConfig?.increaseLabel ||\n            (internalTranslationConfig && (internalTranslationConfig.increaseLabel | fdTranslate))\n        \"\n        [ariaLabel]=\"\n            timeConfig?.increaseLabel ||\n            (internalTranslationConfig && (internalTranslationConfig.increaseLabel | fdTranslate))\n        \"\n        (keyup)=\"spinnerButtonKeyupHandle($event)\"\n        (click)=\"scrollDown()\"\n    ></button>\n}\n", styles: [".fd-time__col .fd-carousel{transition:all .2s ease-in}.fd-time__list{overflow:visible}.fd-time-column-custom-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fd-time__current-indicator{pointer-events:none}.fd-time__current-indicator:focus{outline:none}.fd-time--compact .fd-time__wrapper--meridian .fd-time__item:last-child.fd-time__item--collapsed,.fd-time .fd-time__wrapper--meridian .fd-time__item:last-child.fd-time__item--collapsed{margin-bottom:0;margin-top:0}\n"] }]
        }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { rows: [{
                type: Input
            }], spinners: [{
                type: Input
            }], activeValue: [{
                type: Input
            }], active: [{
                type: Input
            }], meridian: [{
                type: Input
            }, {
                type: HostBinding,
                args: ['class.fd-time__col--period']
            }], id: [{
                type: Input
            }], timeConfig: [{
                type: Input
            }], columnTranslationsPreset: [{
                type: Input
            }], offset: [{
                type: Input
            }], elementsAtOnce: [{
                type: Input
            }], activeValueChange: [{
                type: Output
            }], activeStateChange: [{
                type: Output
            }], carousel: [{
                type: ViewChild,
                args: [CarouselDirective]
            }], items: [{
                type: ViewChildren,
                args: [CarouselItemDirective]
            }], indicator: [{
                type: ViewChild,
                args: ['indicator', { read: ElementRef }]
            }], onItemClick: [{
                type: HostListener,
                args: ['click']
            }], keyDownHandler: [{
                type: HostListener,
                args: ['keydown', ['$event']]
            }], mouseScrollHandler: [{
                type: HostListener,
                args: ['wheel', ['$event']]
            }] } });

/** Creates an error to be thrown when attempting to use an invalid date implementation. */
function createMissingDateImplementationError(provider) {
    return Error(`FdTime: No provider found for ${provider}. You must import one of the following ` +
        `modules at your application root: FdDatetimeModule, or provide a ` +
        `custom implementation.`);
}

class TimeComponent {
    /** Offset */
    get offset() {
        return Math.floor(this.elementsAtOnce / 2);
    }
    /** @hidden */
    constructor(_changeDetectorRef, _elementRef, 
    // Use @Optional to avoid angular injection error message and throw our own which is more precise one
    _dateTimeAdapter, _contentDensityObserver, _rtlService) {
        this._changeDetectorRef = _changeDetectorRef;
        this._elementRef = _elementRef;
        this._dateTimeAdapter = _dateTimeAdapter;
        this._contentDensityObserver = _contentDensityObserver;
        this._rtlService = _rtlService;
        /**
         * @Input When set to false, uses the 24 hour clock (hours ranging from 0 to 23)
         * and does not display a period control.
         */
        this.meridian = false;
        /**
         *  @Input When set to false, does not set the input field to invalid state on invalid entry.
         */
        this.validate = true;
        /**
         * @Input when set to true, time inputs won't allow to have 1 digit
         * for example 9 will become 09
         * but 12 will be kept as 12.
         */
        this.keepTwoDigits = false;
        /**
         * @Input When set to false, hides the input for seconds.
         */
        this.displaySeconds = true;
        /** @Input When set to false, hides the input for minutes. */
        this.displayMinutes = true;
        /**
         * When set to false, hides the input for hours
         */
        this.displayHours = true;
        /** @Input Defines if time component should be used in tablet mode */
        this.tablet = false;
        /** @Input Defines quantity of the elements, that are visible at the same time. Should be odd number */
        this.elementsAtOnce = 7;
        /** @Input Whether to show spinner buttons */
        this.spinnerButtons = true;
        /** Active column view to iterate with */
        this.activeView = 'hour';
        /**
         * @hidden
         * container for [0 - 23] hours
         */
        this.hourViewItems = [];
        /**
         * @hidden
         * container for [0 - 59] minutes
         */
        this.minuteViewItems = [];
        /**
         * @hidden
         * container for [0 - 59] seconds
         */
        this.secondViewItems = [];
        /**
         * @hidden
         * container for [am, pm] meridian values
         */
        this.meridianViewItems = [];
        /** @hidden */
        this._destroyRef = inject(DestroyRef);
        /** @hidden */
        this._subscriptions = new Subscription();
        /** @hidden */
        this.onChange = () => { };
        /** @hidden */
        this.onTouched = () => { };
        if (!_dateTimeAdapter) {
            throw createMissingDateImplementationError('DateTimeAdapter');
        }
        this.time = this._getDefaultValue();
    }
    /** @hidden */
    ngOnInit() {
        this._dateTimeAdapter.localeChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
            this._setUpViewGrid();
            this._changeDetectorRef.detectChanges();
        });
        this._setUpViewGrid();
    }
    /** @hidden
     * Reacts only when there is meridian or time input change
     */
    ngOnChanges(changes) {
        if (changes.meridian || changes.time) {
            this._setUpViewGrid();
        }
        if (changes.elementsAtOnce && changes.elementsAtOnce.currentValue % 2 === 0) {
            throw new Error('[elementsAtOnce] should be odd number');
        }
    }
    /** @hidden */
    ngOnDestroy() {
        this._subscriptions.unsubscribe();
    }
    /** @hidden */
    ngAfterViewInit() {
        this.refreshColumns();
    }
    /** @hidden */
    registerOnChange(fn) {
        this.onChange = fn;
    }
    /** @hidden */
    registerOnTouched(fn) {
        this.onTouched = fn;
    }
    /** @hidden */
    setDisabledState(isDisabled) {
        this.disabled = isDisabled;
        this._changeDetectorRef.detectChanges();
    }
    /** @hidden */
    refreshColumns() {
        this.columns.forEach((column) => column.setValueOfActive());
    }
    /**
     * @hidden
     * Handles meridian change.
     * This implicitly changes hours by +/- 12
     */
    handleMeridianChange(meridian) {
        let hourOffset = meridian === "AM" /* Meridian.AM */ ? -12 : 12;
        let currentHour = this._getModelHour();
        if (currentHour > 12 && meridian === "PM" /* Meridian.PM */) {
            currentHour -= 12;
        }
        else if (currentHour === 12) {
            currentHour = 0;
        }
        else if (currentHour < 12 && meridian === "AM" /* Meridian.AM */) {
            hourOffset = 0;
        }
        const newHour = Math.max(0, Math.min(23, currentHour + hourOffset));
        this.handleHourChange(newHour);
    }
    /** @hidden */
    handleSecondChange(second) {
        this.time = this._dateTimeAdapter.setSeconds(this.time, second);
        this._calculateActiveSecondViewItem();
        this.onChange(this.time);
    }
    /** @hidden */
    handleMinuteChange(minute) {
        this.time = this._dateTimeAdapter.setMinutes(this.time, minute);
        this._calculateActiveMinuteViewItem();
        this.onChange(this.time);
    }
    /**
     * @hidden
     * Handles changes of displayed hour value from template.
     */
    handleHourChange(hour) {
        this.time = this._dateTimeAdapter.setHours(this.time, hour);
        this._calculateActiveHourViewItem();
        if (this.meridian) {
            this._calculateActiveMeridianViewItem();
        }
        this.onChange(this.time);
    }
    /** @hidden */
    handleNextColumnFocus(column) {
        const columns = this._getVisibleColumnsWithRtl();
        let nextIndex = columns.indexOf(column) + 1;
        if (nextIndex >= columns.length) {
            nextIndex = 0;
        }
        this.changeActive(columns[nextIndex]);
    }
    /** @hidden */
    handlePreviousColumnFocus(column) {
        const columns = this._getVisibleColumnsWithRtl();
        let nextIndex = columns.indexOf(column) - 1;
        if (nextIndex < 0) {
            nextIndex = columns.length - 1;
        }
        this.changeActive(columns[nextIndex]);
    }
    /** @hidden */
    handleKeyDownEvent(event) {
        if (KeyUtil.isKeyCode(event, LEFT_ARROW)) {
            this.handlePreviousColumnFocus(this.activeView);
            event.preventDefault();
            this.focusActiveColumn();
        }
        else if (KeyUtil.isKeyCode(event, RIGHT_ARROW)) {
            this.handleNextColumnFocus(this.activeView);
            event.preventDefault();
            this.focusActiveColumn();
        }
    }
    /** @hidden */
    writeValue(time) {
        if (!time || !this._dateTimeAdapter.isValid(time)) {
            time = this._getDefaultValue();
        }
        this.time = time;
        this._setUpActiveViewItems();
        this._changeDetectorRef.detectChanges();
    }
    /** @hidden */
    changeActive(view) {
        this.activeView = view;
        this._changeDetectorRef.detectChanges();
    }
    /** @hidden */
    isActive(view) {
        return this.activeView === view;
    }
    /** @hidden */
    focusActiveColumn() {
        const column = this.columns.find(({ active }) => active);
        column?.focus();
    }
    /** @hidden */
    _focusOut(event) {
        if (!this._elementRef.nativeElement.contains(event.relatedTarget)) {
            this.onTouched();
        }
    }
    /**
     * Get visible time columns
     * @returns visible columns list @see {FdTimeActiveView[]}
     */
    _getVisibleColumns() {
        const allOptions = [
            [this.displayHours, 'hour'],
            [this.displayMinutes, 'minute'],
            [this.displaySeconds, 'second'],
            [this.meridian, 'meridian']
        ];
        return allOptions.filter(([enabled]) => enabled).map(([, view]) => view);
    }
    /**
     * Get visible columns taking into account RTL
     * @returns visible columns list @see {FdTimeActiveView[]}
     */
    _getVisibleColumnsWithRtl() {
        const columns = this._getVisibleColumns();
        return this._rtlService?.rtl.value ? columns.reverse() : columns;
    }
    /** @hidden */
    _setUpViewGrid() {
        this._constructHourViewItems();
        this._constructMinuteViewItems();
        this._constructSecondViewItems();
        this._constructMeridianViewItems();
        // update reference to active view items
        this._setUpActiveViewItems();
    }
    /** @hidden */
    _setUpActiveViewItems() {
        this._calculateActiveHourViewItem();
        this._calculateActiveMinuteViewItem();
        this._calculateActiveSecondViewItem();
        this._calculateActiveMeridianViewItem();
    }
    /** @hidden */
    _constructHourViewItems() {
        this.hourViewItems = this._dateTimeAdapter
            .getHourNames({ meridian: this.meridian, twoDigit: this.keepTwoDigits })
            .map((name, hour) => ({
            value: hour,
            label: name
        }));
    }
    /** @hidden */
    _constructMinuteViewItems() {
        this.minuteViewItems = this._dateTimeAdapter
            .getMinuteNames({ twoDigit: this.keepTwoDigits })
            .map((name, minute) => ({
            value: minute,
            label: name
        }));
    }
    /** @hidden */
    _constructSecondViewItems() {
        this.secondViewItems = this._dateTimeAdapter
            .getSecondNames({ twoDigit: this.keepTwoDigits })
            .map((name, second) => ({
            value: second,
            label: name
        }));
    }
    /** @hidden */
    _constructMeridianViewItems() {
        const [amLabel, pmLabel] = this._dateTimeAdapter.getDayPeriodNames();
        this.meridianViewItems = [
            { value: "AM" /* Meridian.AM */, label: amLabel },
            { value: "PM" /* Meridian.PM */, label: pmLabel }
        ];
    }
    /** @hidden */
    _calculateActiveHourViewItem() {
        const hour = this._getModelHour();
        this.activeHourViewItem = this.hourViewItems.find(({ value }) => value === hour);
    }
    /** @hidden */
    _calculateActiveMinuteViewItem() {
        const minute = this._getModelMinute();
        this.activeMinuteViewItem = this.minuteViewItems.find(({ value }) => value === minute);
    }
    /** @hidden */
    _calculateActiveSecondViewItem() {
        const second = this._getModelSecond();
        this.activeSecondViewItem = this.secondViewItems.find(({ value }) => value === second);
    }
    /** @hidden */
    _calculateActiveMeridianViewItem() {
        const meridian = this._getDayPeriodByHour();
        this.activeMeridianViewItem = this.meridianViewItems.find(({ value }) => value === meridian);
    }
    /**
     * @hidden
     * Model hours (0 - 23)
     */
    _getModelHour() {
        return this._dateTimeAdapter.getHours(this.time);
    }
    /**
     * @hidden
     * Model minutes (0 - 59)
     */
    _getModelMinute() {
        return this._dateTimeAdapter.getMinutes(this.time);
    }
    /**
     * @hidden
     * Model seconds (0 - 59)
     */
    _getModelSecond() {
        return this._dateTimeAdapter.getSeconds(this.time);
    }
    /**
     * @hidden
     * Get meridian period based on a given hours
     */
    _getDayPeriodByHour(hour = this._getModelHour()) {
        return this._isPm(hour) ? "PM" /* Meridian.PM */ : "AM" /* Meridian.AM */;
    }
    /** @hidden */
    _isPm(hours = this._getModelHour()) {
        return hours >= 12;
    }
    /**
     * @hidden
     * @returns default time 00:00:00
     */
    _getDefaultValue() {
        return this._dateTimeAdapter.today();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TimeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.DatetimeAdapter, optional: true }, { token: i2.ContentDensityObserver }, { token: i3.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: TimeComponent, isStandalone: true, selector: "fd-time", inputs: { meridian: "meridian", validate: "validate", keepTwoDigits: "keepTwoDigits", disabled: "disabled", displaySeconds: "displaySeconds", displayMinutes: "displayMinutes", displayHours: "displayHours", tablet: "tablet", elementsAtOnce: "elementsAtOnce", time: "time", spinnerButtons: "spinnerButtons" }, host: { listeners: { "focusout": "_focusOut($event)", "blur": "onTouched()" } }, providers: [
            {
                provide: NG_VALUE_ACCESSOR,
                useExisting: forwardRef(() => TimeComponent),
                multi: true
            },
            contentDensityObserverProviders()
        ], viewQueries: [{ propertyName: "columns", predicate: TimeColumnComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n    class=\"fd-time\"\n    [class.is-compact]=\"_contentDensityObserver.isCompactSignal()\"\n    (keydown)=\"handleKeyDownEvent($event)\"\n    [class.fd-time--tablet]=\"tablet\"\n    [attr.aria-label]=\"'coreTime.componentAriaName' | fdTranslate\"\n>\n    <fd-time-column\n        [active]=\"isActive('hour')\"\n        [rows]=\"hourViewItems\"\n        [offset]=\"offset\"\n        [elementsAtOnce]=\"elementsAtOnce\"\n        [activeValue]=\"activeHourViewItem\"\n        columnTranslationsPreset=\"hours\"\n        [spinners]=\"spinnerButtons\"\n        (activeValueChange)=\"handleHourChange($event.value.value)\"\n        (activeStateChange)=\"changeActive('hour')\"\n    ></fd-time-column>\n    @if (displayMinutes) {\n        <fd-time-column\n            [active]=\"isActive('minute')\"\n            [rows]=\"minuteViewItems\"\n            [offset]=\"offset\"\n            [elementsAtOnce]=\"elementsAtOnce\"\n            [activeValue]=\"activeMinuteViewItem\"\n            columnTranslationsPreset=\"minutes\"\n            [spinners]=\"spinnerButtons\"\n            (activeValueChange)=\"handleMinuteChange($event.value.value)\"\n            (activeStateChange)=\"changeActive('minute')\"\n        ></fd-time-column>\n    }\n    @if (displaySeconds) {\n        <fd-time-column\n            [active]=\"isActive('second')\"\n            [rows]=\"secondViewItems\"\n            [offset]=\"offset\"\n            [elementsAtOnce]=\"elementsAtOnce\"\n            [activeValue]=\"activeSecondViewItem\"\n            columnTranslationsPreset=\"seconds\"\n            [spinners]=\"spinnerButtons\"\n            (activeValueChange)=\"handleSecondChange($event.value.value)\"\n            (activeStateChange)=\"changeActive('second')\"\n        ></fd-time-column>\n    }\n    @if (meridian) {\n        <fd-time-column\n            [active]=\"isActive('meridian')\"\n            [rows]=\"meridianViewItems\"\n            [activeValue]=\"activeMeridianViewItem\"\n            [offset]=\"0\"\n            [elementsAtOnce]=\"elementsAtOnce\"\n            columnTranslationsPreset=\"period\"\n            [meridian]=\"true\"\n            [spinners]=\"spinnerButtons\"\n            (activeValueChange)=\"handleMeridianChange($event.value.value)\"\n            (activeStateChange)=\"changeActive('meridian')\"\n        ></fd-time-column>\n    }\n</div>\n", styles: [".fd-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle,var(--sapField_BackgroundStyle));background-color:var(--sapField_Background,var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);-webkit-box-shadow:var(--sapField_Shadow);box-shadow:var(--sapField_Shadow);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdInput_Height,var(--sapElement_Height));line-height:normal;margin-block:0;margin-block:var(--fdInput_Field_Margin_Block,.25rem);margin-inline:0;min-height:var(--fdInput_Height,var(--sapElement_Height));min-width:2.75rem;outline:none;overflow:hidden;padding-block:0;padding-inline:0;padding-inline:var(--fdInput_Field_Padding_Inline,.625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input:after,.fd-input:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-input::-webkit-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::-moz-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input:-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::-webkit-input-placeholder,[dir=rtl] .fd-input::-webkit-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::-moz-placeholder,[dir=rtl] .fd-input::-moz-placeholder{text-indent:.125rem}.fd-input[dir=rtl]:-ms-input-placeholder,[dir=rtl] .fd-input:-ms-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::-ms-input-placeholder,[dir=rtl] .fd-input::-ms-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::-moz-selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{background:var(--sapField_Hover_BackgroundStyle,var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background,var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{background:var(--sapField_Focus_Background,var(--sapField_Focus_Background));-webkit-box-shadow:none;box-shadow:none;outline:var(--fdInput_Outline_Color) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:var(--fdInput_Outline_Offset);z-index:5}.fd-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){-webkit-box-sizing:border-box;box-sizing:border-box;height:var(--fdInput_Compact_Height,var(--sapElement_Compact_Height));margin-block:var(--fdInput_Field_Compact_Margin_Block,.1875rem);margin-inline:0;min-height:var(--fdInput_Compact_Height,var(--sapElement_Compact_Height));min-width:var(--fdInput_Field_Compact_Min_Width,2rem);padding-block:0;padding-inline:var(--fdInput_Field_Compact_Padding,.5rem)}.fd-input--no-number-spinner{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin-block:0;margin-inline:0}.fd-input.right-align{text-align:right}.fd-input.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle);-webkit-box-shadow:var(--sapField_SuccessShadow);box-shadow:var(--sapField_SuccessShadow)}.fd-input.is-success.is-hover,.fd-input.is-success:hover{background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-success.is-expanded,.fd-input.is-success[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Success_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle);-webkit-box-shadow:var(--sapField_InvalidShadow);box-shadow:var(--sapField_InvalidShadow)}.fd-input.is-error.is-hover,.fd-input.is-error:hover{background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-error.is-expanded,.fd-input.is-error[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Error_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle);-webkit-box-shadow:var(--sapField_WarningShadow);box-shadow:var(--sapField_WarningShadow)}.fd-input.is-warning.is-hover,.fd-input.is-warning:hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-warning.is-expanded,.fd-input.is-warning[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.is-alert:hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-alert.is-expanded,.fd-input.is-alert[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle);-webkit-box-shadow:var(--sapField_InformationShadow);box-shadow:var(--sapField_InformationShadow)}.fd-input.is-information.is-hover,.fd-input.is-information:hover{background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-information.is-expanded,.fd-input.is-information[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Information_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-webkit-input-placeholder,.fd-input.is-error::-webkit-input-placeholder,.fd-input.is-warning::-webkit-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-moz-placeholder,.fd-input.is-error::-moz-placeholder,.fd-input.is-warning::-moz-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert:-ms-input-placeholder,.fd-input.is-error:-ms-input-placeholder,.fd-input.is-warning:-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-ms-input-placeholder,.fd-input.is-error::-ms-input-placeholder,.fd-input.is-warning::-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::-webkit-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::-moz-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error:-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::-webkit-input-placeholder,.fd-input:disabled::-webkit-input-placeholder,.fd-input[aria-disabled=true]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::-moz-placeholder,.fd-input:disabled::-moz-placeholder,.fd-input[aria-disabled=true]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled:-ms-input-placeholder,.fd-input:disabled:-ms-input-placeholder,.fd-input[aria-disabled=true]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::-ms-input-placeholder,.fd-input:disabled::-ms-input-placeholder,.fd-input[aria-disabled=true]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[readonly]{--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-input.is-readonly::-webkit-input-placeholder,.fd-input[aria-readonly=true]::-webkit-input-placeholder,.fd-input[readonly]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::-moz-placeholder,.fd-input[aria-readonly=true]::-moz-placeholder,.fd-input[readonly]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly:-ms-input-placeholder,.fd-input[aria-readonly=true]:-ms-input-placeholder,.fd-input[readonly]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::-ms-input-placeholder,.fd-input[aria-readonly=true]::-ms-input-placeholder,.fd-input[readonly]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly.is-focus,.fd-input.is-readonly.is-hover,.fd-input.is-readonly:focus,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:focus,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-focus,.fd-input[readonly].is-hover,.fd-input[readonly]:focus,.fd-input[readonly]:hover{--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{z-index:5}.fd-time{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;--fdTime_Item_Height:2.875rem;--fdTime_Dropdown_Padding:1rem;--fdTime_Wrapper_Height:20.125rem;--fdTime_Unit_Line_Height:2.75rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-block:var(--fdTime_Dropdown_Padding);padding-inline:var(--fdTime_Dropdown_Padding)}.fd-time:after,.fd-time:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__col{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-time__col:after,.fd-time__col:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__col:last-child{-webkit-margin-end:0;margin-inline-end:0}.fd-time__current-indicator{border:0;border:.0625rem solid var(--sapList_SelectionBorderColor);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdTime_Item_Height);left:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:3rem}.fd-time__current-indicator:after,.fd-time__current-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__wrapper{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden;position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:3rem}.fd-time__wrapper:after,.fd-time__wrapper:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__wrapper--active{height:var(--fdTime_Wrapper_Height);max-height:var(--fdTime_Wrapper_Height);-webkit-box-pack:initial;-ms-flex-pack:initial;justify-content:normal}.fd-time__wrapper--meridian .fd-time__item:first-child{margin-top:calc(var(--fdTime_Item_Height)*3)}.fd-time__wrapper--meridian .fd-time__item:last-child{-webkit-margin-after:calc(var(--fdTime_Item_Height)*3);margin-block-end:calc(var(--fdTime_Item_Height)*3)}.fd-time__wrapper--meridian .fd-time__list{height:var(--fdTime_Wrapper_Height)}.fd-time__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--sapLegend_WorkingBackground);border:.0625rem solid var(--sapList_Background);border-radius:var(--sapButton_BorderCornerRadius);cursor:default;height:var(--fdTime_Item_Height);min-height:var(--fdTime_Item_Height);text-shadow:var(--fdTime_Text_Shadow);width:3rem}.fd-time__item:after,.fd-time__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__item:hover{background-color:var(--sapList_Hover_Background)}.fd-time__item:active{background-color:var(--sapContent_Selected_Background);border-color:transparent;color:var(--sapContent_Selected_TextColor)}.fd-time__item--current{background-color:var(--sapList_Background);border-color:var(--sapList_SelectionBorderColor)}.fd-time__item--current:hover{background-color:var(--sapList_Hover_Background)}.fd-time__item--collapsed,.fd-time__item--current:active{background-color:var(--sapContent_Selected_Background);border-color:transparent;color:var(--sapContent_Selected_TextColor)}.fd-time__item--collapsed:hover{background-color:var(--sapContent_Selected_Hover_Background)}.fd-time__item--hidden{visibility:hidden}.fd-time__unit{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:inherit;display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:normal;line-height:var(--fdTime_Unit_Line_Height);margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;z-index:2}.fd-time__unit:after,.fd-time__unit:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-ms-overflow-style:none;overflow:hidden;scrollbar-width:none}.fd-time__list:after,.fd-time__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__list::-webkit-scrollbar{display:none}.fd-time__slider-label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;max-width:100%;position:relative;text-overflow:ellipsis;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;-webkit-margin-end:.5rem;cursor:text;margin-inline-end:.5rem;-ms-flex-item-align:start;align-self:flex-start;font-size:var(--sapFontSmallSize);height:2rem;line-height:2rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:clip;white-space:nowrap;-ms-flex-item-align:auto;align-self:auto}.fd-time__slider-label:after,.fd-time__slider-label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__control{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-time__control:after,.fd-time__control:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time--tablet{--fdTime_Dropdown_Padding:.5rem;--fdTime_Item_Height:2.875rem}.fd-time[class*=-compact],.fd-time[class*=-condensed],[class*=-compact] .fd-time:not([class*=-cozy]),[class*=-condensed] .fd-time:not([class*=-cozy]){--fdTime_Dropdown_Padding:.5rem;--fdTime_Item_Height:2rem;--fdTime_Wrapper_Height:14rem;--fdTime_Unit_Line_Height:1.875rem}.fd-time--scrollable .fd-time__list{overflow:auto}.fd-time__list{touch-action:pan-x;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}\n/*! Bundled license information:\n\nfundamental-styles/dist/time.css:\n  (*!\n   * Fundamental Library Styles v0.40.1\n   * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"], dependencies: [{ kind: "component", type: TimeColumnComponent, selector: "fd-time-column", inputs: ["rows", "spinners", "activeValue", "active", "meridian", "id", "timeConfig", "columnTranslationsPreset", "offset", "elementsAtOnce"], outputs: ["activeValueChange", "activeStateChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TimeComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-time', host: {
                        '(focusout)': '_focusOut($event)',
                        '(blur)': 'onTouched()'
                    }, providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => TimeComponent),
                            multi: true
                        },
                        contentDensityObserverProviders()
                    ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [TimeColumnComponent, FdTranslatePipe], template: "<div\n    class=\"fd-time\"\n    [class.is-compact]=\"_contentDensityObserver.isCompactSignal()\"\n    (keydown)=\"handleKeyDownEvent($event)\"\n    [class.fd-time--tablet]=\"tablet\"\n    [attr.aria-label]=\"'coreTime.componentAriaName' | fdTranslate\"\n>\n    <fd-time-column\n        [active]=\"isActive('hour')\"\n        [rows]=\"hourViewItems\"\n        [offset]=\"offset\"\n        [elementsAtOnce]=\"elementsAtOnce\"\n        [activeValue]=\"activeHourViewItem\"\n        columnTranslationsPreset=\"hours\"\n        [spinners]=\"spinnerButtons\"\n        (activeValueChange)=\"handleHourChange($event.value.value)\"\n        (activeStateChange)=\"changeActive('hour')\"\n    ></fd-time-column>\n    @if (displayMinutes) {\n        <fd-time-column\n            [active]=\"isActive('minute')\"\n            [rows]=\"minuteViewItems\"\n            [offset]=\"offset\"\n            [elementsAtOnce]=\"elementsAtOnce\"\n            [activeValue]=\"activeMinuteViewItem\"\n            columnTranslationsPreset=\"minutes\"\n            [spinners]=\"spinnerButtons\"\n            (activeValueChange)=\"handleMinuteChange($event.value.value)\"\n            (activeStateChange)=\"changeActive('minute')\"\n        ></fd-time-column>\n    }\n    @if (displaySeconds) {\n        <fd-time-column\n            [active]=\"isActive('second')\"\n            [rows]=\"secondViewItems\"\n            [offset]=\"offset\"\n            [elementsAtOnce]=\"elementsAtOnce\"\n            [activeValue]=\"activeSecondViewItem\"\n            columnTranslationsPreset=\"seconds\"\n            [spinners]=\"spinnerButtons\"\n            (activeValueChange)=\"handleSecondChange($event.value.value)\"\n            (activeStateChange)=\"changeActive('second')\"\n        ></fd-time-column>\n    }\n    @if (meridian) {\n        <fd-time-column\n            [active]=\"isActive('meridian')\"\n            [rows]=\"meridianViewItems\"\n            [activeValue]=\"activeMeridianViewItem\"\n            [offset]=\"0\"\n            [elementsAtOnce]=\"elementsAtOnce\"\n            columnTranslationsPreset=\"period\"\n            [meridian]=\"true\"\n            [spinners]=\"spinnerButtons\"\n            (activeValueChange)=\"handleMeridianChange($event.value.value)\"\n            (activeStateChange)=\"changeActive('meridian')\"\n        ></fd-time-column>\n    }\n</div>\n", styles: [".fd-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle,var(--sapField_BackgroundStyle));background-color:var(--sapField_Background,var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);-webkit-box-shadow:var(--sapField_Shadow);box-shadow:var(--sapField_Shadow);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdInput_Height,var(--sapElement_Height));line-height:normal;margin-block:0;margin-block:var(--fdInput_Field_Margin_Block,.25rem);margin-inline:0;min-height:var(--fdInput_Height,var(--sapElement_Height));min-width:2.75rem;outline:none;overflow:hidden;padding-block:0;padding-inline:0;padding-inline:var(--fdInput_Field_Padding_Inline,.625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input:after,.fd-input:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-input::-webkit-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::-moz-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input:-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::-webkit-input-placeholder,[dir=rtl] .fd-input::-webkit-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::-moz-placeholder,[dir=rtl] .fd-input::-moz-placeholder{text-indent:.125rem}.fd-input[dir=rtl]:-ms-input-placeholder,[dir=rtl] .fd-input:-ms-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::-ms-input-placeholder,[dir=rtl] .fd-input::-ms-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::-moz-selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{background:var(--sapField_Hover_BackgroundStyle,var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background,var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{background:var(--sapField_Focus_Background,var(--sapField_Focus_Background));-webkit-box-shadow:none;box-shadow:none;outline:var(--fdInput_Outline_Color) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:var(--fdInput_Outline_Offset);z-index:5}.fd-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){-webkit-box-sizing:border-box;box-sizing:border-box;height:var(--fdInput_Compact_Height,var(--sapElement_Compact_Height));margin-block:var(--fdInput_Field_Compact_Margin_Block,.1875rem);margin-inline:0;min-height:var(--fdInput_Compact_Height,var(--sapElement_Compact_Height));min-width:var(--fdInput_Field_Compact_Min_Width,2rem);padding-block:0;padding-inline:var(--fdInput_Field_Compact_Padding,.5rem)}.fd-input--no-number-spinner{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin-block:0;margin-inline:0}.fd-input.right-align{text-align:right}.fd-input.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle);-webkit-box-shadow:var(--sapField_SuccessShadow);box-shadow:var(--sapField_SuccessShadow)}.fd-input.is-success.is-hover,.fd-input.is-success:hover{background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-success.is-expanded,.fd-input.is-success[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Success_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle);-webkit-box-shadow:var(--sapField_InvalidShadow);box-shadow:var(--sapField_InvalidShadow)}.fd-input.is-error.is-hover,.fd-input.is-error:hover{background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-error.is-expanded,.fd-input.is-error[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Error_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle);-webkit-box-shadow:var(--sapField_WarningShadow);box-shadow:var(--sapField_WarningShadow)}.fd-input.is-warning.is-hover,.fd-input.is-warning:hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-warning.is-expanded,.fd-input.is-warning[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.is-alert:hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-alert.is-expanded,.fd-input.is-alert[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle);-webkit-box-shadow:var(--sapField_InformationShadow);box-shadow:var(--sapField_InformationShadow)}.fd-input.is-information.is-hover,.fd-input.is-information:hover{background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-information.is-expanded,.fd-input.is-information[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Information_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-webkit-input-placeholder,.fd-input.is-error::-webkit-input-placeholder,.fd-input.is-warning::-webkit-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-moz-placeholder,.fd-input.is-error::-moz-placeholder,.fd-input.is-warning::-moz-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert:-ms-input-placeholder,.fd-input.is-error:-ms-input-placeholder,.fd-input.is-warning:-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-ms-input-placeholder,.fd-input.is-error::-ms-input-placeholder,.fd-input.is-warning::-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::-webkit-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::-moz-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error:-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::-webkit-input-placeholder,.fd-input:disabled::-webkit-input-placeholder,.fd-input[aria-disabled=true]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::-moz-placeholder,.fd-input:disabled::-moz-placeholder,.fd-input[aria-disabled=true]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled:-ms-input-placeholder,.fd-input:disabled:-ms-input-placeholder,.fd-input[aria-disabled=true]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::-ms-input-placeholder,.fd-input:disabled::-ms-input-placeholder,.fd-input[aria-disabled=true]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[readonly]{--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-input.is-readonly::-webkit-input-placeholder,.fd-input[aria-readonly=true]::-webkit-input-placeholder,.fd-input[readonly]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::-moz-placeholder,.fd-input[aria-readonly=true]::-moz-placeholder,.fd-input[readonly]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly:-ms-input-placeholder,.fd-input[aria-readonly=true]:-ms-input-placeholder,.fd-input[readonly]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::-ms-input-placeholder,.fd-input[aria-readonly=true]::-ms-input-placeholder,.fd-input[readonly]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly.is-focus,.fd-input.is-readonly.is-hover,.fd-input.is-readonly:focus,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:focus,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-focus,.fd-input[readonly].is-hover,.fd-input[readonly]:focus,.fd-input[readonly]:hover{--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{z-index:5}.fd-time{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;--fdTime_Item_Height:2.875rem;--fdTime_Dropdown_Padding:1rem;--fdTime_Wrapper_Height:20.125rem;--fdTime_Unit_Line_Height:2.75rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-block:var(--fdTime_Dropdown_Padding);padding-inline:var(--fdTime_Dropdown_Padding)}.fd-time:after,.fd-time:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__col{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-time__col:after,.fd-time__col:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__col:last-child{-webkit-margin-end:0;margin-inline-end:0}.fd-time__current-indicator{border:0;border:.0625rem solid var(--sapList_SelectionBorderColor);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdTime_Item_Height);left:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:3rem}.fd-time__current-indicator:after,.fd-time__current-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__wrapper{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden;position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:3rem}.fd-time__wrapper:after,.fd-time__wrapper:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__wrapper--active{height:var(--fdTime_Wrapper_Height);max-height:var(--fdTime_Wrapper_Height);-webkit-box-pack:initial;-ms-flex-pack:initial;justify-content:normal}.fd-time__wrapper--meridian .fd-time__item:first-child{margin-top:calc(var(--fdTime_Item_Height)*3)}.fd-time__wrapper--meridian .fd-time__item:last-child{-webkit-margin-after:calc(var(--fdTime_Item_Height)*3);margin-block-end:calc(var(--fdTime_Item_Height)*3)}.fd-time__wrapper--meridian .fd-time__list{height:var(--fdTime_Wrapper_Height)}.fd-time__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--sapLegend_WorkingBackground);border:.0625rem solid var(--sapList_Background);border-radius:var(--sapButton_BorderCornerRadius);cursor:default;height:var(--fdTime_Item_Height);min-height:var(--fdTime_Item_Height);text-shadow:var(--fdTime_Text_Shadow);width:3rem}.fd-time__item:after,.fd-time__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__item:hover{background-color:var(--sapList_Hover_Background)}.fd-time__item:active{background-color:var(--sapContent_Selected_Background);border-color:transparent;color:var(--sapContent_Selected_TextColor)}.fd-time__item--current{background-color:var(--sapList_Background);border-color:var(--sapList_SelectionBorderColor)}.fd-time__item--current:hover{background-color:var(--sapList_Hover_Background)}.fd-time__item--collapsed,.fd-time__item--current:active{background-color:var(--sapContent_Selected_Background);border-color:transparent;color:var(--sapContent_Selected_TextColor)}.fd-time__item--collapsed:hover{background-color:var(--sapContent_Selected_Hover_Background)}.fd-time__item--hidden{visibility:hidden}.fd-time__unit{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:inherit;display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:normal;line-height:var(--fdTime_Unit_Line_Height);margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;z-index:2}.fd-time__unit:after,.fd-time__unit:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-ms-overflow-style:none;overflow:hidden;scrollbar-width:none}.fd-time__list:after,.fd-time__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__list::-webkit-scrollbar{display:none}.fd-time__slider-label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;max-width:100%;position:relative;text-overflow:ellipsis;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;-webkit-margin-end:.5rem;cursor:text;margin-inline-end:.5rem;-ms-flex-item-align:start;align-self:flex-start;font-size:var(--sapFontSmallSize);height:2rem;line-height:2rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:clip;white-space:nowrap;-ms-flex-item-align:auto;align-self:auto}.fd-time__slider-label:after,.fd-time__slider-label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time__control{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-time__control:after,.fd-time__control:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-time--tablet{--fdTime_Dropdown_Padding:.5rem;--fdTime_Item_Height:2.875rem}.fd-time[class*=-compact],.fd-time[class*=-condensed],[class*=-compact] .fd-time:not([class*=-cozy]),[class*=-condensed] .fd-time:not([class*=-cozy]){--fdTime_Dropdown_Padding:.5rem;--fdTime_Item_Height:2rem;--fdTime_Wrapper_Height:14rem;--fdTime_Unit_Line_Height:1.875rem}.fd-time--scrollable .fd-time__list{overflow:auto}.fd-time__list{touch-action:pan-x;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}\n/*! Bundled license information:\n\nfundamental-styles/dist/time.css:\n  (*!\n   * Fundamental Library Styles v0.40.1\n   * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"] }]
        }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.DatetimeAdapter, decorators: [{
                    type: Optional
                }] }, { type: i2.ContentDensityObserver }, { type: i3.RtlService, decorators: [{
                    type: Optional
                }] }], propDecorators: { meridian: [{
                type: Input
            }], validate: [{
                type: Input
            }], keepTwoDigits: [{
                type: Input
            }], disabled: [{
                type: Input
            }], displaySeconds: [{
                type: Input
            }], displayMinutes: [{
                type: Input
            }], displayHours: [{
                type: Input
            }], tablet: [{
                type: Input
            }], elementsAtOnce: [{
                type: Input
            }], time: [{
                type: Input
            }], spinnerButtons: [{
                type: Input
            }], columns: [{
                type: ViewChildren,
                args: [TimeColumnComponent]
            }] } });

/**
 * @deprecated
 * Use direct imports of `TimeComponent`, `TimeColumnComponent`
 */
class TimeModule {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.3", ngImport: i0, type: TimeModule, imports: [TimeComponent, TimeColumnComponent], exports: [TimeComponent, TimeColumnComponent] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TimeModule, imports: [TimeComponent, TimeColumnComponent] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TimeModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [TimeComponent, TimeColumnComponent],
                    exports: [TimeComponent, TimeColumnComponent]
                }]
        }] });

/**
 * Generated bundle index. Do not edit.
 */

export { TimeColumnComponent, TimeComponent, TimeModule };
//# sourceMappingURL=fundamental-ngx-core-time.mjs.map
