import { MXValueComponent, AXValuableComponent, AXComponent } from '@acorex/cdk/common';
import { isPlatformBrowser, NgStyle, CommonModule } from '@angular/common';
import * as i0 from '@angular/core';
import { inject, NgZone, PLATFORM_ID, input, model, computed, effect, forwardRef, HostBinding, HostListener, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { classes } from 'polytype';

//import { AXRange } from '@acorex/cdk/common';

/**
 * @description
 * A range slider for selecting a range of values, supporting both single and dual modes.
 * The slider offers step, snap, and tooltip configurations.
 *
 * @example
 * <ax-range-slider [min]="0" [max]="100" [step]="1" [mode]="'dual'"></ax-range-slider>
 */
class AXRangeSliderComponent extends classes((MXValueComponent)) {
    constructor() {
        super();
        this.zone = inject(NgZone);
        this.platformID = inject(PLATFORM_ID);
        /**
         * @description
         * The orientation of the slider, either 'horizontal' or 'vertical'.
         * @default 'horizontal'
         */
        this.orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
        /**
         * @description
         * Color theme for the slider, affecting highlight, tooltip, and handler.
         * @default 'primary'
         */
        this.color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : []));
        /**
         * @description
         * The value(s) of the slider. Can be a single number for single mode or an array of two numbers for dual mode.
         */
        this.values = model(this.value, ...(ngDevMode ? [{ debugName: "values" }] : []));
        /**
         * @description
         * The mode of the slider, either 'single' or 'dual'.
         * @default 'single'
         */
        this.mode = input('single', ...(ngDevMode ? [{ debugName: "mode" }] : []));
        /**
         * @description
         * The minimum value of the slider.
         * @default 0
         */
        this.min = input(0, ...(ngDevMode ? [{ debugName: "min" }] : []));
        /**
         * @description
         * The maximum value of the slider.
         * @default 100
         */
        this.max = input(100, ...(ngDevMode ? [{ debugName: "max" }] : []));
        /**
         * @description
         * The step increment for value changes.
         * @default 1
         */
        this.step = input(1, ...(ngDevMode ? [{ debugName: "step" }] : []));
        /**
         * @description
         * The snapping increment for the slider.
         * @default 1
         */
        this.snap = input(1, ...(ngDevMode ? [{ debugName: "snap" }] : []));
        /**
         * @description
         * Mode for displaying tooltips, can be at the start, end, or both.
         * @default 'end'
         */
        this.tooltipMode = input('end', ...(ngDevMode ? [{ debugName: "tooltipMode" }] : []));
        /**
         * @description
         * Mode for snapping, can snap at the start, end, or both.
         * @default 'start'
         */
        this.snapMode = input('start', ...(ngDevMode ? [{ debugName: "snapMode" }] : []));
        /**
         * @description
         * Whether the slider should have steps.
         * @default true
         */
        this.hasStep = input(true, ...(ngDevMode ? [{ debugName: "hasStep" }] : []));
        /**
         * @description
         * Whether the slider should display snapping.
         * @default false
         */
        this.hasSnap = input(false, ...(ngDevMode ? [{ debugName: "hasSnap" }] : []));
        /**
         * @description
         * Whether the slider should display labels for snapping points.
         * @default Value derived from `hasSnap()`
         */
        this.hasLable = input(this.hasSnap(), ...(ngDevMode ? [{ debugName: "hasLable" }] : []));
        /**
         * @description
         * Whether the slider should display tooltips.
         * @default false
         */
        this.hasTooltip = input(false, ...(ngDevMode ? [{ debugName: "hasTooltip" }] : []));
        /**
         * @ignore
         */
        this.height = 0.25;
        /**
         * @ignore
         */
        this.newHeight = 'var(--ax-comp-range-slider-size)';
        /**
         * @ignore
         */
        this.range = computed(() => this.max() - this.min(), ...(ngDevMode ? [{ debugName: "range" }] : []));
        /**
         * @ignore
         */
        this.isHorizontal = computed(() => this.orientation() === 'horizontal', ...(ngDevMode ? [{ debugName: "isHorizontal" }] : []));
        /**
         * @ignore
         */
        this.isDual = computed(() => this.mode() === 'dual', ...(ngDevMode ? [{ debugName: "isDual" }] : []));
        /**
         * @ignore
         */
        this.correctMinMax = computed(() => this.max() - this.min() > 0, ...(ngDevMode ? [{ debugName: "correctMinMax" }] : []));
        /**
         * @ignore
         */
        this.calculateSnapBar = computed(() => {
            if (this.hasSnap()) {
                if (this.snap() <= 0) {
                    console.error('Wrong Snap!');
                    return null;
                }
                let array = [];
                for (let i = this.min(); i < this.max(); i += this.snap()) {
                    array.push(i);
                }
                array = [...array, this.max()];
                if (array[0] < 0) {
                    array = array.map((i) => i + -array[0]).sort((a, b) => a - b);
                }
                if (array[0] > 0) {
                    array = array.map((i) => i - array[0]).sort((a, b) => a - b);
                }
                if (array.length > 20) {
                    console.warn(`Too many snap points (${array.length}). Max allowed is 20.`);
                    return null;
                }
                return array;
            }
            return null;
        }, ...(ngDevMode ? [{ debugName: "calculateSnapBar" }] : []));
        /**
         * @ignore
         */
        this.calculatePos = computed(() => {
            if (this.isDual() && this.values()) {
                return [
                    ((this.values()[0] - this.min()) / this.range()) * 100,
                    ((this.values()[1] - this.min()) / this.range()) * 100,
                ];
            }
            else {
                return ((this.values() - this.min()) / this.range()) * 100;
            }
        }, ...(ngDevMode ? [{ debugName: "calculatePos" }] : []));
        /**
         * @ignore
         */
        this.choosenHandler = undefined;
        /**
         * @ignore
         */
        this.sliderElement = null;
        /**
         * @ignore
         */
        this.AXRangeSliderHighlight = computed(() => this.isHorizontal()
            ? {
                left: this.isDual() ? this.calculatePos()[0] + '%' : '0%',
                width: this.isDual() ? this.calculatePos()[1] - this.calculatePos()[0] + '%' : this.calculatePos() + '%',
            }
            : {
                height: this.isDual() ? this.calculatePos()[1] - this.calculatePos()[0] + '%' : this.calculatePos() + '%',
                bottom: this.mode() === 'dual' ? this.calculatePos()[0] + '%' : '0%',
            }, ...(ngDevMode ? [{ debugName: "AXRangeSliderHighlight" }] : []));
        /**
         * @ignore
         */
        this.AXRangeSliderHandler1 = computed(() => this.isHorizontal()
            ? {
                left: this.isDual() ? this.calculatePos()[0] + '%' : this.calculatePos() + '%',
            }
            : {
                bottom: this.isDual()
                    ? 'calc(' + this.calculatePos()[0] + '% - ' + 6 * this.height + 'rem)'
                    : 'calc(' + this.calculatePos() + '% - ' + 6 * this.height + 'rem)',
            }, ...(ngDevMode ? [{ debugName: "AXRangeSliderHandler1" }] : []));
        /**
         * @ignore
         */
        this.AXRangeSliderHandler2 = computed(() => this.isHorizontal()
            ? {
                left: this.calculatePos()[1] + '%',
            }
            : {
                bottom: 'calc(' + this.calculatePos()[1] + '% - ' + 6 * this.height + 'rem)',
            }, ...(ngDevMode ? [{ debugName: "AXRangeSliderHandler2" }] : []));
        /**
         * @ignore
         */
        this.AXRangeSliderStep = computed(() => {
            if (this.isHorizontal()) {
                switch (this.snapMode()) {
                    case 'both':
                        return { top: '0', height: 8 * this.height + 'rem' };
                    case 'start':
                        return { top: 4 * this.height + 'rem', height: 4 * this.height + 'rem' };
                    case 'end':
                        return { top: -2 * this.height + 'rem', height: 4 * this.height + 'rem' };
                }
            }
            else {
                switch (this.snapMode()) {
                    case 'both':
                        return { top: '0', width: 8 * this.height + 'rem' };
                    case 'start':
                        return { left: 4 * this.height + 'rem', width: 4 * this.height + 'rem' };
                    case 'end':
                        return { left: -2 * this.height + 'rem', width: 4 * this.height + 'rem' };
                }
            }
        }, ...(ngDevMode ? [{ debugName: "AXRangeSliderStep" }] : []));
        /**
         * @ignore
         */
        this.AXRangeLabel = computed(() => {
            if (this.isHorizontal()) {
                switch (this.snapMode()) {
                    case 'both':
                        return { top: 6 * this.height + 'rem' };
                    case 'start':
                        return { top: 4 * this.height + 'rem' };
                    case 'end':
                        return { top: -6 * this.height + 'rem' };
                }
            }
            else {
                switch (this.snapMode()) {
                    case 'both':
                        return { left: 8 * this.height + 'rem' };
                    case 'start':
                        return { left: 4 * this.height + 'rem' };
                    case 'end':
                        return { left: -8 * this.height + 'rem' };
                }
            }
        }, ...(ngDevMode ? [{ debugName: "AXRangeLabel" }] : []));
        this.isUserInteraction = false;
        effect(() => {
            this.commitValue(this.values(), this.isUserInteraction);
            this.isUserInteraction = false;
        });
        effect(() => {
            if (this.correctMinMax()) {
                this.fixInitializeValues();
                this.fixChangingMode();
            }
            else {
                console.error(`Min = ${this.min()} And Max = ${this.max()} is not correct inputs.`);
            }
        });
        this.onValueChanged.subscribe((value) => {
            if (value?.value != undefined && value?.value != null && this.values() !== value.value)
                this.values.set(value.value);
        });
    }
    /**
     * @ignore
     */
    ngOnInit() {
        super.ngOnInit();
        if (!this.correctMinMax()) {
            console.error(`Min = ${this.min()} And Max = ${this.max()} is not correct inputs.`);
        }
        else {
            this.initializeValues();
        }
    }
    /**
     * @ignore
     */
    ngOnDestroy() {
        super.ngOnDestroy();
        if (isPlatformBrowser(this.platformID)) {
            window.removeEventListener('mousemove', this.moveListener);
            window.removeEventListener('mouseup', this.endListener);
            window.removeEventListener('touchmove', this.moveListener);
            window.removeEventListener('touchend', this.endListener);
        }
    }
    /**
     * @ignore
     */
    onStartHandler(event, circle) {
        this.zone.runOutsideAngular(() => {
            if (this.disabled || this.readonly || !this.correctMinMax())
                return;
            event.preventDefault();
            this.sliderElement = event.target.closest('.ax-range-slider');
            if (this.sliderElement && isPlatformBrowser(this.platformID)) {
                this.choosenHandler = circle;
                const moveListener = (moveEvent) => this.onMove(moveEvent, circle);
                const endListener = () => this.onEnd(moveListener, endListener);
                [this.moveListener, this.endListener] = [moveListener, endListener];
                window.addEventListener('mousemove', moveListener);
                window.addEventListener('mouseup', endListener);
                window.addEventListener('touchmove', moveListener, { passive: true });
                window.addEventListener('touchend', endListener);
            }
        });
    }
    /**
     * @ignore
     */
    onStartBar(event) {
        this.isUserInteraction = true;
        let circle = 'first';
        this.sliderElement = event.target.closest('.ax-range-slider');
        this.zone.runOutsideAngular(() => {
            if (!this.sliderElement || this.disabled || this.readonly)
                return;
            const calculatePercent = this.calculatePercentOnMove(event);
            const exactValue = this.getValueFromPercent(calculatePercent);
            let value = Number.parseFloat(exactValue.toFixed(2));
            if (this.hasStep()) {
                value = this.roundToStep(value);
            }
            if (this.isDual()) {
                if (Math.abs(exactValue - this.values()[0]) > Math.abs(exactValue - this.values()[1])) {
                    this.values.set([this.values()[0], value]);
                    circle = 'second';
                }
                else {
                    if (this.values()[1] === this.min()) {
                        this.values.set([this.values()[0], value]);
                        circle = 'second';
                    }
                    else {
                        this.values.set([value, this.values()[1]]);
                        circle = 'first';
                    }
                }
            }
            else {
                this.values.set(value);
            }
        });
        this.onStartHandler(event, circle);
    }
    /**
     * @ignore
     */
    onMove(event, circle) {
        this.isUserInteraction = true;
        if (!this.sliderElement)
            return;
        const calculatePercent = this.calculatePercentOnMove(event);
        let value = this.getValueFromPercent(calculatePercent);
        value = Number.parseFloat(value.toFixed(2));
        if (this.hasStep()) {
            value = this.roundToStep(value);
        }
        if (this.isDual()) {
            if (circle === 'first' && value <= this.values()[1]) {
                if (this.checkValues(value, 'first', this.values()[1]) && this.values()[0] !== value) {
                    this.values.set([value, this.values()[1]]);
                }
            }
            else if (circle === 'second' && value >= this.values()[0] && this.values()[1] !== value) {
                if (this.checkValues(value, 'second', this.values()[0])) {
                    this.values.set([this.values()[0], value]);
                }
            }
        }
        else {
            if (this.checkValue(value) && this.values() !== value) {
                this.values.set(value);
            }
        }
    }
    /**
     * @ignore
     */
    onEnd(moveListener, endListener) {
        window.removeEventListener('mousemove', moveListener);
        window.removeEventListener('mouseup', endListener);
        window.removeEventListener('touchmove', moveListener);
        window.removeEventListener('touchend', endListener);
        this.sliderElement = null;
    }
    /**
     * @ignore
     */
    initializeValues() {
        this.fixInitializeUndefined();
        this.fixInitializeValues();
        this.fixInitializeStep();
    }
    /**
     * @ignore
     */
    fixInitializeUndefined() {
        if (typeof this.values() === 'undefined') {
            if (this.isDual()) {
                this.values.set([this.min(), this.max()]);
            }
            else {
                this.values.set(this.min());
            }
        }
    }
    /**
     * @ignore
     */
    fixInitializeValues() {
        if (this.isDual() && this.values()[0] > this.values()[1]) {
            this.values.set([this.values()[1], this.values()[0]]);
        }
        if (typeof this.values() === 'number' && !this.checkValue(this.values())) {
            this.values.set(this.min());
        }
        else if (typeof this.values() !== 'number' && !this.checkValues(this.values()[0], 'first', this.values()[1])) {
            this.values.set([this.min(), this.max()]);
        }
    }
    /**
     * @ignore
     */
    fixInitializeStep() {
        if (this.step() !== 1) {
            if (this.isDual()) {
                this.values.update((old) => [this.roundToStep(old[0]), this.roundToStep(old[1])]);
                if (this.values()[0] === this.values()[1]) {
                    this.values.update((old) => [this.roundToStep(old[0]), this.roundToStep(old[1]) + this.step()]);
                }
            }
            else {
                this.values.update((old) => this.roundToStep(old));
            }
        }
    }
    /**
     * @ignore
     */
    fixChangingMode() {
        if (typeof this.values() === 'number' && this.isDual()) {
            this.values.set([this.min(), this.max()]);
        }
        else if (typeof this.values() !== 'number' && !this.isDual()) {
            this.values.set(this.min());
        }
    }
    /**
     * @ignore
     */
    calculatePercentOnMove(event) {
        const sliderRect = this.sliderElement.getBoundingClientRect();
        let percent;
        if (this.isHorizontal()) {
            const clientX = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;
            const x = clientX - sliderRect.left;
            percent = (x / sliderRect.width) * 100;
        }
        else {
            const clientY = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;
            const y = -(clientY - sliderRect.bottom); //reverce slider from bottom to top
            percent = (y / sliderRect.height) * 100;
        }
        if (percent < 0) {
            percent = 0;
        }
        else if (percent > 100) {
            percent = 100;
        }
        return percent;
    }
    /**
     * @ignore
     */
    roundToStep(value) {
        const lower = Math.max(this.min(), Math.floor((value - this.min()) / this.step()) * this.step() + this.min());
        const upper = Math.min(this.max(), lower + this.step());
        if (value - lower < upper - value) {
            return lower;
        }
        else {
            return upper;
        }
    }
    /**
     * @ignore
     */
    checkValue(x) {
        if (x >= this.min() && x <= this.max())
            return true;
        else
            return false;
    }
    /**
     * @ignore
     */
    checkValues(value1, y, value2) {
        if (value1 >= this.min() && value1 <= this.max()) {
            if (y === 'first') {
                if (value1 <= value2 && value2 <= this.max())
                    return true;
                else
                    return false;
            }
            else {
                if (value1 >= value2 && value2 >= this.min())
                    return true;
                else
                    return false;
            }
        }
        else
            return false;
    }
    /**
     * @ignore
     */
    getValueFromPercent(value) {
        return this.min() + (value * (this.max() - this.min())) / 100;
    }
    /**
     * @ignore
     */
    getPercantage(value) {
        return this.range() !== 0 ? (value / this.range()) * 100 : 0;
    }
    /**
     * Increase a step to value if slider in single mode
     * and increase a step the second value if slider in dual mode
     * @method increaseStep
     */
    increaseStep() {
        if (this.isDual()) {
            const newValue = this.roundToStep(this.values()[1] + this.step());
            this.values.set([this.values()[0], newValue]);
        }
        else {
            const newValue = this.roundToStep(this.values() + this.step());
            this.values.set(newValue);
        }
    }
    /**
     * Decrease a step to value if slider in single mode
     * and decrease a step the second value if slider in dual mode
     * @method decreaseStep
     */
    decreaseStep() {
        if (this.isDual()) {
            const newValue = this.roundToStep(this.values()[0] - this.step());
            this.values.set([newValue, this.values()[1]]);
        }
        else {
            const newValue = this.roundToStep(this.values() - this.step());
            this.values.set(newValue);
        }
    }
    /**
     * @ignore
     */
    onWheel(event) {
        this.isUserInteraction = true;
        this.zone.runOutsideAngular(() => {
            event.preventDefault();
            if (!this.choosenHandler || this.readonly || this.disabled || !this.correctMinMax())
                return;
            let newValue;
            if (this.isDual()) {
                if (event.deltaY < 0) {
                    if (this.choosenHandler === 'first') {
                        newValue = this.roundToStep(this.values()[0] + this.step());
                        if (this.checkValues(newValue, this.choosenHandler, this.values()[1]) && this.values()[0] !== newValue) {
                            this.values.update((old) => [this.roundToStep(old[0] + this.step()), old[1]]);
                        }
                    }
                    else {
                        newValue = this.roundToStep(this.values()[1] + this.step());
                        if (newValue <= this.max() && this.values()[1] !== newValue) {
                            this.values.update((old) => [old[0], this.roundToStep(old[1] + this.step())]);
                        }
                    }
                }
                else {
                    if (this.choosenHandler === 'first') {
                        newValue = this.roundToStep(this.values()[0] - this.step());
                        if (this.checkValues(newValue, this.choosenHandler, this.values()[1]) && this.values() !== newValue) {
                            this.values.update((old) => [this.roundToStep(old[0] - this.step()), old[1]]);
                        }
                    }
                    else {
                        newValue = this.roundToStep(this.values()[1] - this.step());
                        if (this.checkValues(newValue, this.choosenHandler, this.values()[0]) && this.values()[1] !== newValue) {
                            this.values.update((old) => [old[0], this.roundToStep(old[1] - this.step())]);
                        }
                    }
                }
            }
            else {
                if (event.deltaY < 0) {
                    if (this.checkValue(this.roundToStep(this.values() + this.step()))) {
                        this.values.update((old) => this.roundToStep(old + this.step()));
                    }
                }
                else {
                    if (this.checkValue(this.roundToStep(this.values() - this.step()))) {
                        this.values.update((old) => this.roundToStep(old - this.step()));
                    }
                }
            }
        });
    }
    /**
     * @ignore
     */
    get __hostClass() {
        return [
            `ax-${this.color()}-solid`,
            `${this.disabled ? 'ax-state-disabled' : ''}`,
            `${this.readonly ? 'ax-state-readonly' : ''}`,
        ];
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXRangeSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXRangeSliderComponent, isStandalone: true, selector: "ax-range-slider", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, snap: { classPropertyName: "snap", publicName: "snap", isSignal: true, isRequired: false, transformFunction: null }, tooltipMode: { classPropertyName: "tooltipMode", publicName: "tooltipMode", isSignal: true, isRequired: false, transformFunction: null }, snapMode: { classPropertyName: "snapMode", publicName: "snapMode", isSignal: true, isRequired: false, transformFunction: null }, hasStep: { classPropertyName: "hasStep", publicName: "hasStep", isSignal: true, isRequired: false, transformFunction: null }, hasSnap: { classPropertyName: "hasSnap", publicName: "hasSnap", isSignal: true, isRequired: false, transformFunction: null }, hasLable: { classPropertyName: "hasLable", publicName: "hasLable", isSignal: true, isRequired: false, transformFunction: null }, hasTooltip: { classPropertyName: "hasTooltip", publicName: "hasTooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { values: "valuesChange" }, host: { listeners: { "wheel": "onWheel($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
            { provide: AXValuableComponent, useExisting: AXRangeSliderComponent },
            {
                provide: NG_VALUE_ACCESSOR,
                useExisting: forwardRef(() => AXRangeSliderComponent),
                multi: true,
            },
            { provide: AXComponent, useExisting: AXRangeSliderComponent },
        ], usesInheritance: true, ngImport: i0, template: "@if (correctMinMax()) {\n  <div class=\"ax-range-slider\" [class]=\"'ax-orientation-' + orientation()\">\n    <div class=\"ax-range-slider-bar\" (mousedown)=\"onStartBar($event)\" (touchstart)=\"onStartBar($event)\"></div>\n    <div\n      class=\"ax-range-slider-highlight\"\n      [ngStyle]=\"AXRangeSliderHighlight()\"\n      (mousedown)=\"onStartBar($event)\"\n      (touchstart)=\"onStartBar($event)\"\n    ></div>\n\n    <div\n      class=\"ax-range-slider-handler\"\n      [ngStyle]=\"AXRangeSliderHandler1()\"\n      name=\"first\"\n      (mousedown)=\"onStartBar($event)\"\n      (touchstart)=\"onStartBar($event)\"\n    >\n      @if (hasTooltip()) {\n        <div class=\"ax-range-slider-tooltip\">{{ isDual() ? values()[0] : values() }}</div>\n      }\n    </div>\n\n    @if (isDual()) {\n      <div\n        class=\"ax-range-slider-handler\"\n        [ngStyle]=\"AXRangeSliderHandler2()\"\n        name=\"second\"\n        (mousedown)=\"onStartBar($event)\"\n        (touchstart)=\"onStartBar($event)\"\n      >\n        @if (hasTooltip()) {\n          <div class=\"ax-range-slider-tooltip\">{{ values()[1] }}</div>\n        }\n      </div>\n    }\n    @if (hasSnap()) {\n      <div class=\"ax-range-slider-step\" [ngStyle]=\"AXRangeSliderStep()\">\n        @for (item of calculateSnapBar(); track $index) {\n          <div\n            class=\"ax-range-slider-steps\"\n            [ngStyle]=\"isHorizontal() ? { left: getPercantage(item) + '%' } : { bottom: getPercantage(item) + '%' }\"\n          >\n            @if (hasLable()) {\n              <div class=\"ax-range-slider-label\" [ngStyle]=\"AXRangeLabel()\">\n                {{ item + min() }}\n              </div>\n            }\n          </div>\n        }\n      </div>\n    }\n  </div>\n}\n", styles: ["ax-range-slider{--ax-comp-range-slider-size: .25rem;--ax-comp-range-slider-ring-size: .6rem}ax-range-slider{--ax-comp-range-slider-ring-color: var(--ax-comp-range-slider-color), .25}ax-range-slider.ax-primary-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-primary-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-primary-surface)}ax-range-slider.ax-secondary-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-secondary-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-secondary-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-secondary-surface)}ax-range-slider.ax-success-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-success-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-success-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-success-surface)}ax-range-slider.ax-warning-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-warning-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-warning-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-warning-surface)}ax-range-slider.ax-danger-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-danger-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-danger-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-danger-surface)}ax-range-slider.ax-accent1-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent1-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent1-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent1-surface)}ax-range-slider.ax-accent2-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent2-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent2-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent2-surface)}ax-range-slider.ax-accent3-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent3-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent3-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent3-surface)}ax-range-slider.ax-accent4-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent4-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent4-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent4-surface)}ax-range-slider.ax-accent5-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent5-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent5-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent5-surface)}ax-range-slider.ax-accent6-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent6-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent6-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent6-surface)}ax-range-slider.ax-accent7-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent7-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent7-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent7-surface)}ax-range-slider{display:flex;align-items:center;justify-content:center;padding:1rem;font-size:small;-webkit-user-select:none;user-select:none}ax-range-slider .ax-range-slider.ax-orientation-horizontal{position:relative;width:100%;height:calc(var(--ax-comp-range-slider-size) * 4)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-bar{position:absolute;top:50%;left:0;width:100.1%;height:var(--ax-comp-range-slider-bar-height, var(--ax-comp-range-slider-size));transform:translateY(-50%);z-index:5;border-radius:9999rem;background-color:rgba(var(--ax-comp-range-slider-line-color));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-highlight{position:absolute;top:50%;height:calc(var(--ax-comp-range-slider-size) * 3 / 2);transform:translateY(-50%);z-index:6;border-radius:9999rem;background-color:rgba(var(--ax-comp-range-slider-color));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler{position:absolute;top:50%;width:var(--ax-comp-range-slider-handler-size, calc(var(--ax-comp-range-slider-size) * 6));height:var(--ax-comp-range-slider-handler-size, calc(var(--ax-comp-range-slider-size) * 6));z-index:10;background-color:rgba(var(--ax-comp-range-slider-color));border-radius:50%;cursor:pointer;transform:translate(-45%,-50%);transition:box-shadow .1s linear}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:hover,ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:active{box-shadow:0 0 0 calc(var(--ax-comp-range-slider-ring-size)) rgba(var(--ax-comp-range-slider-ring-color))}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip{position:absolute;left:calc(var(--ax-comp-range-slider-size) * 2.8);top:calc(var(--ax-comp-range-slider-size) * -2);background-color:rgba(var(--ax-comp-range-slider-color));color:rgba(var(--ax-comp-range-slider-tooltip-text-color));padding:5px 10px;border-radius:3px;white-space:nowrap;font-weight:600;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:1.75rem;left:50%;transform:translate(-50%);border-width:.5rem;border-style:solid;border-color:rgba(var(--ax-comp-range-slider-color)) transparent transparent transparent}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step{position:absolute;display:flex;flex-direction:row;width:100%;z-index:4}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps{position:absolute;border-left:calc(var(--ax-comp-range-slider-size) / 2) solid rgba(var(--ax-sys-color-border-lightest-surface));height:50%}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:relative;text-align:center;top:calc(var(--ax-comp-range-slider-size) * 2);left:-50%}ax-range-slider .ax-range-slider.ax-orientation-vertical{position:relative;width:calc(var(--ax-comp-range-slider-size) * 4);height:100%}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-bar{position:absolute;top:0;left:50%;width:var(--ax-comp-range-slider-size);height:100.1%;transform:translate(-50%);z-index:5;border-radius:9999rem;background-color:rgba(var(--ax-comp-range-slider-line-color));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-highlight{position:absolute;left:50%;width:calc(var(--ax-comp-range-slider-size) * 3 / 2);transform:translate(-50%);z-index:6;border-radius:9999rem;background-color:rgba(var(--ax-comp-range-slider-color));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler{position:absolute;left:50%;width:calc(var(--ax-comp-range-slider-size) * 6);height:calc(var(--ax-comp-range-slider-size) * 6);z-index:10;background-color:rgba(var(--ax-comp-range-slider-color));border-radius:50%;cursor:pointer;transform:translate(-50%,-55%);transition:background-color .2s ease}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler:active{border:1px solid transparent;box-shadow:var(--tw-ring-inset) 0 0 0 calc(.5rem + var(--tw-ring-offset-width)) rgba(var(--ax-comp-range-slider-color),.25)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip{position:absolute;top:calc(var(--ax-comp-range-slider-size) * 8.5);left:calc(var(--ax-comp-range-slider-size) * -8);background-color:rgba(var(--ax-comp-range-slider-color));color:rgba(var(--ax-comp-range-slider-tooltip-text-color));padding:5px 10px;border-radius:3px;font-weight:600;white-space:nowrap;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:50%;left:97%;transform:translateY(-50%);border-width:.5rem;border-style:solid;border-color:transparent transparent transparent rgba(var(--ax-comp-range-slider-color))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step{position:absolute;display:flex;flex-direction:column;height:100%;z-index:4}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps{position:absolute;width:50%;border-top:calc(var(--ax-comp-range-slider-size) / 2) solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:absolute;left:150%;top:calc(var(--ax-comp-range-slider-size) * -3)}ax-range-slider.ax-state-disabled{opacity:.5;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXRangeSliderComponent, decorators: [{
            type: Component,
            args: [{ selector: 'ax-range-slider', inputs: ['disabled', 'readonly'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
                        { provide: AXValuableComponent, useExisting: AXRangeSliderComponent },
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => AXRangeSliderComponent),
                            multi: true,
                        },
                        { provide: AXComponent, useExisting: AXRangeSliderComponent },
                    ], imports: [NgStyle], template: "@if (correctMinMax()) {\n  <div class=\"ax-range-slider\" [class]=\"'ax-orientation-' + orientation()\">\n    <div class=\"ax-range-slider-bar\" (mousedown)=\"onStartBar($event)\" (touchstart)=\"onStartBar($event)\"></div>\n    <div\n      class=\"ax-range-slider-highlight\"\n      [ngStyle]=\"AXRangeSliderHighlight()\"\n      (mousedown)=\"onStartBar($event)\"\n      (touchstart)=\"onStartBar($event)\"\n    ></div>\n\n    <div\n      class=\"ax-range-slider-handler\"\n      [ngStyle]=\"AXRangeSliderHandler1()\"\n      name=\"first\"\n      (mousedown)=\"onStartBar($event)\"\n      (touchstart)=\"onStartBar($event)\"\n    >\n      @if (hasTooltip()) {\n        <div class=\"ax-range-slider-tooltip\">{{ isDual() ? values()[0] : values() }}</div>\n      }\n    </div>\n\n    @if (isDual()) {\n      <div\n        class=\"ax-range-slider-handler\"\n        [ngStyle]=\"AXRangeSliderHandler2()\"\n        name=\"second\"\n        (mousedown)=\"onStartBar($event)\"\n        (touchstart)=\"onStartBar($event)\"\n      >\n        @if (hasTooltip()) {\n          <div class=\"ax-range-slider-tooltip\">{{ values()[1] }}</div>\n        }\n      </div>\n    }\n    @if (hasSnap()) {\n      <div class=\"ax-range-slider-step\" [ngStyle]=\"AXRangeSliderStep()\">\n        @for (item of calculateSnapBar(); track $index) {\n          <div\n            class=\"ax-range-slider-steps\"\n            [ngStyle]=\"isHorizontal() ? { left: getPercantage(item) + '%' } : { bottom: getPercantage(item) + '%' }\"\n          >\n            @if (hasLable()) {\n              <div class=\"ax-range-slider-label\" [ngStyle]=\"AXRangeLabel()\">\n                {{ item + min() }}\n              </div>\n            }\n          </div>\n        }\n      </div>\n    }\n  </div>\n}\n", styles: ["ax-range-slider{--ax-comp-range-slider-size: .25rem;--ax-comp-range-slider-ring-size: .6rem}ax-range-slider{--ax-comp-range-slider-ring-color: var(--ax-comp-range-slider-color), .25}ax-range-slider.ax-primary-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-primary-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-primary-surface)}ax-range-slider.ax-secondary-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-secondary-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-secondary-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-secondary-surface)}ax-range-slider.ax-success-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-success-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-success-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-success-surface)}ax-range-slider.ax-warning-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-warning-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-warning-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-warning-surface)}ax-range-slider.ax-danger-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-danger-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-danger-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-danger-surface)}ax-range-slider.ax-accent1-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent1-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent1-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent1-surface)}ax-range-slider.ax-accent2-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent2-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent2-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent2-surface)}ax-range-slider.ax-accent3-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent3-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent3-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent3-surface)}ax-range-slider.ax-accent4-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent4-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent4-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent4-surface)}ax-range-slider.ax-accent5-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent5-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent5-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent5-surface)}ax-range-slider.ax-accent6-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent6-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent6-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent6-surface)}ax-range-slider.ax-accent7-solid{--ax-comp-range-slider-line-color: var(--ax-sys-color-accent7-lighter-surface);--ax-comp-range-slider-color: var(--ax-sys-color-accent7-surface);--ax-comp-range-slider-tooltip-text-color: var(--ax-sys-color-on-accent7-surface)}ax-range-slider{display:flex;align-items:center;justify-content:center;padding:1rem;font-size:small;-webkit-user-select:none;user-select:none}ax-range-slider .ax-range-slider.ax-orientation-horizontal{position:relative;width:100%;height:calc(var(--ax-comp-range-slider-size) * 4)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-bar{position:absolute;top:50%;left:0;width:100.1%;height:var(--ax-comp-range-slider-bar-height, var(--ax-comp-range-slider-size));transform:translateY(-50%);z-index:5;border-radius:9999rem;background-color:rgba(var(--ax-comp-range-slider-line-color));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-highlight{position:absolute;top:50%;height:calc(var(--ax-comp-range-slider-size) * 3 / 2);transform:translateY(-50%);z-index:6;border-radius:9999rem;background-color:rgba(var(--ax-comp-range-slider-color));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler{position:absolute;top:50%;width:var(--ax-comp-range-slider-handler-size, calc(var(--ax-comp-range-slider-size) * 6));height:var(--ax-comp-range-slider-handler-size, calc(var(--ax-comp-range-slider-size) * 6));z-index:10;background-color:rgba(var(--ax-comp-range-slider-color));border-radius:50%;cursor:pointer;transform:translate(-45%,-50%);transition:box-shadow .1s linear}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:hover,ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:active{box-shadow:0 0 0 calc(var(--ax-comp-range-slider-ring-size)) rgba(var(--ax-comp-range-slider-ring-color))}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip{position:absolute;left:calc(var(--ax-comp-range-slider-size) * 2.8);top:calc(var(--ax-comp-range-slider-size) * -2);background-color:rgba(var(--ax-comp-range-slider-color));color:rgba(var(--ax-comp-range-slider-tooltip-text-color));padding:5px 10px;border-radius:3px;white-space:nowrap;font-weight:600;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:1.75rem;left:50%;transform:translate(-50%);border-width:.5rem;border-style:solid;border-color:rgba(var(--ax-comp-range-slider-color)) transparent transparent transparent}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step{position:absolute;display:flex;flex-direction:row;width:100%;z-index:4}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps{position:absolute;border-left:calc(var(--ax-comp-range-slider-size) / 2) solid rgba(var(--ax-sys-color-border-lightest-surface));height:50%}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:relative;text-align:center;top:calc(var(--ax-comp-range-slider-size) * 2);left:-50%}ax-range-slider .ax-range-slider.ax-orientation-vertical{position:relative;width:calc(var(--ax-comp-range-slider-size) * 4);height:100%}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-bar{position:absolute;top:0;left:50%;width:var(--ax-comp-range-slider-size);height:100.1%;transform:translate(-50%);z-index:5;border-radius:9999rem;background-color:rgba(var(--ax-comp-range-slider-line-color));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-highlight{position:absolute;left:50%;width:calc(var(--ax-comp-range-slider-size) * 3 / 2);transform:translate(-50%);z-index:6;border-radius:9999rem;background-color:rgba(var(--ax-comp-range-slider-color));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler{position:absolute;left:50%;width:calc(var(--ax-comp-range-slider-size) * 6);height:calc(var(--ax-comp-range-slider-size) * 6);z-index:10;background-color:rgba(var(--ax-comp-range-slider-color));border-radius:50%;cursor:pointer;transform:translate(-50%,-55%);transition:background-color .2s ease}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler:active{border:1px solid transparent;box-shadow:var(--tw-ring-inset) 0 0 0 calc(.5rem + var(--tw-ring-offset-width)) rgba(var(--ax-comp-range-slider-color),.25)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip{position:absolute;top:calc(var(--ax-comp-range-slider-size) * 8.5);left:calc(var(--ax-comp-range-slider-size) * -8);background-color:rgba(var(--ax-comp-range-slider-color));color:rgba(var(--ax-comp-range-slider-tooltip-text-color));padding:5px 10px;border-radius:3px;font-weight:600;white-space:nowrap;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:50%;left:97%;transform:translateY(-50%);border-width:.5rem;border-style:solid;border-color:transparent transparent transparent rgba(var(--ax-comp-range-slider-color))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step{position:absolute;display:flex;flex-direction:column;height:100%;z-index:4}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps{position:absolute;width:50%;border-top:calc(var(--ax-comp-range-slider-size) / 2) solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:absolute;left:150%;top:calc(var(--ax-comp-range-slider-size) * -3)}ax-range-slider.ax-state-disabled{opacity:.5;cursor:not-allowed}\n"] }]
        }], ctorParameters: () => [], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], values: [{ type: i0.Input, args: [{ isSignal: true, alias: "values", required: false }] }, { type: i0.Output, args: ["valuesChange"] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], snap: [{ type: i0.Input, args: [{ isSignal: true, alias: "snap", required: false }] }], tooltipMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipMode", required: false }] }], snapMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapMode", required: false }] }], hasStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasStep", required: false }] }], hasSnap: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasSnap", required: false }] }], hasLable: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasLable", required: false }] }], hasTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasTooltip", required: false }] }], onWheel: [{
                type: HostListener,
                args: ['wheel', ['$event']]
            }], __hostClass: [{
                type: HostBinding,
                args: ['class']
            }] } });

class AXRangeSliderModule {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXRangeSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: AXRangeSliderModule, imports: [CommonModule, AXRangeSliderComponent], exports: [AXRangeSliderComponent] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXRangeSliderModule, imports: [CommonModule] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXRangeSliderModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [CommonModule, AXRangeSliderComponent],
                    exports: [AXRangeSliderComponent],
                }]
        }] });

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

export { AXRangeSliderComponent, AXRangeSliderModule };
//# sourceMappingURL=acorex-components-range-slider.mjs.map
