{"version":3,"file":"primeng-slider.umd.js","sources":["../../src/app/components/slider/slider.ts","../../src/app/components/slider/primeng-slider.ts"],"sourcesContent":["import {NgModule, Component, ElementRef, OnDestroy, Input, Output, EventEmitter, forwardRef, Renderer2,NgZone,ChangeDetectorRef, ViewChild, ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DomHandler} from 'primeng/dom';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\n\nexport const SLIDER_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => Slider),\n  multi: true\n};\n\n@Component({\n    selector: 'p-slider',\n    template: `\n        <div [ngStyle]=\"style\" [class]=\"styleClass\" [ngClass]=\"{'p-slider p-component':true,'p-disabled':disabled,\n            'p-slider-horizontal':orientation == 'horizontal','p-slider-vertical':orientation == 'vertical','p-slider-animate':animate}\"\n            (click)=\"onBarClick($event)\">\n            <span *ngIf=\"range && orientation == 'horizontal'\" class=\"p-slider-range\" [ngStyle]=\"{'left':handleValues[0] + '%',width: (handleValues[1] - handleValues[0] + '%')}\"></span>\n            <span *ngIf=\"range && orientation == 'vertical'\" class=\"p-slider-range\" [ngStyle]=\"{'bottom':handleValues[0] + '%',height: (handleValues[1] - handleValues[0] + '%')}\"></span>\n            <span *ngIf=\"!range && orientation=='vertical'\" class=\"p-slider-range\" [ngStyle]=\"{'height': handleValue + '%'}\"></span>\n            <span *ngIf=\"!range && orientation=='horizontal'\" class=\"p-slider-range\" [ngStyle]=\"{'width': handleValue + '%'}\"></span>\n            <span #sliderHandle *ngIf=\"!range\" [attr.tabindex]=\"disabled ? null : tabindex\" (keydown)=\"onHandleKeydown($event)\" class=\"p-slider-handle\" (mousedown)=\"onMouseDown($event)\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd($event)\"\n                [style.transition]=\"dragging ? 'none': null\" [ngStyle]=\"{'left': orientation == 'horizontal' ? handleValue + '%' : null,'bottom': orientation == 'vertical' ? handleValue + '%' : null}\"\n                [attr.aria-valuemin]=\"min\" [attr.aria-valuenow]=\"value\" [attr.aria-valuemax]=\"max\" [attr.aria-labelledby]=\"ariaLabelledBy\"></span>\n            <span #sliderHandleStart *ngIf=\"range\" [attr.tabindex]=\"disabled ? null : tabindex\" (keydown)=\"onHandleKeydown($event,0)\" (mousedown)=\"onMouseDown($event,0)\" (touchstart)=\"onTouchStart($event,0)\" (touchmove)=\"onTouchMove($event,0)\" (touchend)=\"onTouchEnd($event)\" [style.transition]=\"dragging ? 'none': null\" class=\"p-slider-handle\" \n                [ngStyle]=\"{'left': rangeStartLeft, 'bottom': rangeStartBottom}\" [ngClass]=\"{'p-slider-handle-active':handleIndex==0}\"\n                [attr.aria-valuemin]=\"min\" [attr.aria-valuenow]=\"value ? value[0] : null\" [attr.aria-valuemax]=\"max\" [attr.aria-labelledby]=\"ariaLabelledBy\"></span>\n            <span #sliderHandleEnd *ngIf=\"range\" [attr.tabindex]=\"disabled ? null : tabindex\" (keydown)=\"onHandleKeydown($event,1)\" (mousedown)=\"onMouseDown($event,1)\" (touchstart)=\"onTouchStart($event,1)\" (touchmove)=\"onTouchMove($event,1)\" (touchend)=\"onTouchEnd($event)\" [style.transition]=\"dragging ? 'none': null\" class=\"p-slider-handle\" \n                [ngStyle]=\"{'left': rangeEndLeft, 'bottom': rangeEndBottom}\" [ngClass]=\"{'p-slider-handle-active':handleIndex==1}\"\n                [attr.aria-valuemin]=\"min\" [attr.aria-valuenow]=\"value ? value[1] : null\" [attr.aria-valuemax]=\"max\" [attr.aria-labelledby]=\"ariaLabelledBy\"></span>\n        </div>\n    `,\n    providers: [SLIDER_VALUE_ACCESSOR],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['./slider.css']\n})\nexport class Slider implements OnDestroy,ControlValueAccessor {\n\n    @Input() animate: boolean;\n\n    @Input() disabled: boolean;\n\n    @Input() min: number = 0;\n\n    @Input() max: number = 100;\n\n    @Input() orientation: string = 'horizontal';\n\n    @Input() step: number;\n\n    @Input() range: boolean;\n\n    @Input() style: any;\n\n    @Input() styleClass: string;\n\n    @Input() ariaLabelledBy: string;\n\n    @Input() tabindex: number = 0;\n\n    @Output() onChange: EventEmitter<any> = new EventEmitter();\n    \n    @Output() onSlideEnd: EventEmitter<any> = new EventEmitter();\n    \n    @ViewChild(\"sliderHandle\") sliderHandle: ElementRef;\n\n    @ViewChild(\"sliderHandleStart\") sliderHandleStart: ElementRef;\n\n    @ViewChild(\"sliderHandleEnd\") sliderHandleEnd: ElementRef;\n\n    public value: number;\n    \n    public values: number[];\n    \n    public handleValue: number;\n    \n    public handleValues: number[] = [];\n        \n    public onModelChange: Function = () => {};\n    \n    public onModelTouched: Function = () => {};\n    \n    public dragging: boolean;\n    \n    public dragListener: any;\n    \n    public mouseupListener: any;\n        \n    public initX: number;\n    \n    public initY: number;\n    \n    public barWidth: number;\n    \n    public barHeight: number;\n    \n    public sliderHandleClick: boolean;\n    \n    public handleIndex: number = 0;\n\n    public startHandleValue: any;\n\n    public startx: number;\n\n    public starty: number;\n    \n    constructor(public el: ElementRef, public renderer: Renderer2, private ngZone: NgZone, public cd: ChangeDetectorRef) {}\n    \n    onMouseDown(event, index?:number) {\n        if (this.disabled) {\n            return;\n        }\n        \n        this.dragging = true;\n        this.updateDomData();\n        this.sliderHandleClick = true;\n        if (this.range && this.handleValues && this.handleValues[0] === this.max) {\n            this.handleIndex = 0;\n        }\n        else {\n            this.handleIndex = index;\n        }\n\n        this.bindDragListeners();\n        event.target.focus();\n        event.preventDefault();\n\n        if (this.animate) {\n            DomHandler.removeClass(this.el.nativeElement.children[0], 'p-slider-animate');\n        }\n    }\n\n    onTouchStart(event, index?:number) {\n        if (this.disabled) {\n            return;\n        }\n\n        var touchobj = event.changedTouches[0];\n        this.startHandleValue = (this.range) ? this.handleValues[index] : this.handleValue;\n        this.dragging = true;\n        if (this.range && this.handleValues && this.handleValues[0] === this.max) {\n            this.handleIndex = 0;\n        }\n        else {\n            this.handleIndex = index;\n        }\n\n        if (this.orientation === 'horizontal') {\n            this.startx = parseInt(touchobj.clientX, 10);\n            this.barWidth = this.el.nativeElement.children[0].offsetWidth;\n        }\n        else {\n            this.starty = parseInt(touchobj.clientY, 10);\n            this.barHeight = this.el.nativeElement.children[0].offsetHeight;\n        }\n\n        if (this.animate) {\n            DomHandler.removeClass(this.el.nativeElement.children[0], 'p-slider-animate');\n        }\n\n        event.preventDefault();\n    }\n\n    onTouchMove(event, index?:number) {\n        if (this.disabled) {\n            return;\n        }\n        \n        var touchobj = event.changedTouches[0],\n        handleValue = 0;\n\n        if (this.orientation === 'horizontal') {\n            handleValue = Math.floor(((parseInt(touchobj.clientX, 10) - this.startx) * 100) / (this.barWidth)) + this.startHandleValue;\n        }\n        else {\n            handleValue = Math.floor(((this.starty - parseInt(touchobj.clientY, 10)) * 100) / (this.barHeight))  + this.startHandleValue;\n        }\n\n        this.setValueFromHandle(event, handleValue);\n\n        event.preventDefault();\n    }\n\n    onTouchEnd(event, index?:number) {\n        if (this.disabled) {\n            return;\n        }\n\n        this.dragging = false;\n        \n        if (this.range)\n            this.onSlideEnd.emit({originalEvent: event, values: this.values});\n        else\n            this.onSlideEnd.emit({originalEvent: event, value: this.value});\n\n        if (this.animate) {\n            DomHandler.addClass(this.el.nativeElement.children[0], 'p-slider-animate');\n        }\n        \n        event.preventDefault();\n    }\n    \n    onBarClick(event) {\n        if (this.disabled) {\n            return;\n        }\n        \n        if (!this.sliderHandleClick) {\n            this.updateDomData();\n            this.handleChange(event);\n        }\n        \n        this.sliderHandleClick = false;\n    }\n\n    onHandleKeydown(event, handleIndex?:number) {\n        if (this.disabled) {\n            return;\n        }\n        if (event.which == 38 || event.which == 39) {\n            this.spin(event, 1, handleIndex);\n        }\n        else if (event.which == 37 || event.which == 40) {\n            this.spin(event, -1, handleIndex);\n        }\n    }\n    \n    spin(event, dir: number, handleIndex?:number) {\n        let step = (this.step || 1) * dir;\n\n        if (this.range) {\n            this.handleIndex = handleIndex;\n            this.updateValue(this.values[this.handleIndex] + step);\n            this.updateHandleValue();\n        }\n        else {\n            this.updateValue(this.value + step);\n            this.updateHandleValue();\n        }\n\n        event.preventDefault();\n    }\n\n    handleChange(event: Event) {\n        let handleValue = this.calculateHandleValue(event);\n        this.setValueFromHandle(event, handleValue);\n    }\n    \n    bindDragListeners() {\n        this.ngZone.runOutsideAngular(() => {\n            const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n            if (!this.dragListener) {\n                this.dragListener = this.renderer.listen(documentTarget, 'mousemove', (event) => {\n                    if (this.dragging) {\n                        this.ngZone.run(() => {\n                            this.handleChange(event);\n                        });\n                    }\n                });\n            }\n\n            if (!this.mouseupListener) {\n                this.mouseupListener = this.renderer.listen(documentTarget, 'mouseup', (event) => {\n                    if (this.dragging) {\n                        this.dragging = false;\n                        this.ngZone.run(() => {\n                            if (this.range)\n                                this.onSlideEnd.emit({originalEvent: event, values: this.values});\n                            else\n                                this.onSlideEnd.emit({originalEvent: event, value: this.value});\n\n                            if (this.animate) {\n                                DomHandler.addClass(this.el.nativeElement.children[0], 'p-slider-animate');\n                            }\n                        });\n                    }\n                });\n            }\n        });\n    }\n    \n    unbindDragListeners() {\n        if (this.dragListener) {\n            this.dragListener();\n        }\n        \n        if (this.mouseupListener) {\n            this.mouseupListener();\n        }\n    }\n\n    setValueFromHandle(event: Event, handleValue: any) {\n        this.sliderHandleClick = false;\n        let newValue = this.getValueFromHandle(handleValue);\n\n        if (this.range) {\n            if (this.step) {\n                this.handleStepChange(newValue, this.values[this.handleIndex]);\n            }\n            else {\n                this.handleValues[this.handleIndex] = handleValue;          \n                this.updateValue(newValue, event);\n            }\n        }\n        else {            \n            if (this.step) {\n                this.handleStepChange(newValue, this.value);\n            } \n            else {\n                this.handleValue = handleValue;\n                this.updateValue(newValue, event);\n            }         \n        }\n\n        this.cd.markForCheck();\n    }\n    \n    handleStepChange(newValue: number, oldValue: number) {\n        let diff = (newValue - oldValue);\n        let val = oldValue;\n        \n        if (diff < 0) {\n            val = oldValue + Math.ceil(newValue / this.step - oldValue / this.step) * this.step;\n        }\n        else if (diff > 0) {\n            val = oldValue + Math.floor(newValue / this.step - oldValue / this.step) * this.step;\n        }\n        \n        this.updateValue(val);\n        this.updateHandleValue();\n    }\n    \n    writeValue(value: any) : void {\n        if (this.range)\n            this.values = value||[0,0];\n        else\n            this.value = value||0;\n        \n        this.updateHandleValue();\n        this.cd.markForCheck();\n    }\n    \n    registerOnChange(fn: Function): void {\n        this.onModelChange = fn;\n    }\n\n    registerOnTouched(fn: Function): void {\n        this.onModelTouched = fn;\n    }\n    \n    setDisabledState(val: boolean): void {\n        this.disabled = val;\n        this.cd.markForCheck();\n    }\n    \n    get rangeStartLeft() {\n        return this.isVertical() ? 'auto' : this.handleValues[0] + '%';\n    }\n    \n    get rangeStartBottom() {\n        return this.isVertical() ? this.handleValues[0] + '%' : 'auto';\n    }\n    \n    get rangeEndLeft() {\n        return this.isVertical() ? 'auto' : this.handleValues[1] + '%';\n    }\n    \n    get rangeEndBottom() {\n        return this.isVertical() ? this.handleValues[1] + '%' : 'auto';\n    }\n    \n    isVertical(): boolean {\n        return this.orientation === 'vertical';\n    }\n    \n    updateDomData(): void {\n        let rect = this.el.nativeElement.children[0].getBoundingClientRect();\n        this.initX = rect.left + DomHandler.getWindowScrollLeft();\n        this.initY = rect.top + DomHandler.getWindowScrollTop();\n        this.barWidth = this.el.nativeElement.children[0].offsetWidth;\n        this.barHeight = this.el.nativeElement.children[0].offsetHeight;\n    }\n    \n    calculateHandleValue(event): number {\n        if (this.orientation === 'horizontal')\n            return ((event.pageX - this.initX) * 100) / (this.barWidth);\n        else\n            return(((this.initY + this.barHeight) - event.pageY) * 100) / (this.barHeight);\n    }\n    \n    updateHandleValue(): void {\n        if (this.range) {\n            this.handleValues[0] = (this.values[0] < this.min ? 0 : this.values[0] - this.min) * 100 / (this.max - this.min);\n            this.handleValues[1] = (this.values[1] > this.max ? 100 : this.values[1] - this.min) * 100 / (this.max - this.min);\n        }\n        else {\n            if (this.value < this.min)\n                this.handleValue = 0;\n            else if (this.value > this.max)\n                this.handleValue = 100;\n            else\n                this.handleValue = (this.value - this.min) * 100 / (this.max - this.min);\n        }\n    }\n    \n    updateValue(val: number, event?: Event): void {\n        if (this.range) {\n            let value = val;\n            \n            if (this.handleIndex == 0) {\n                if (value < this.min) {\n                    value = this.min;\n                    this.handleValues[0] = 0;\n                }\n                else if (value > this.values[1]) {\n                    value = this.values[1];\n                    this.handleValues[0] = this.handleValues[1];\n                }\n\n                this.sliderHandleStart.nativeElement.focus();\n            }\n            else {\n                if (value > this.max) {\n                    value = this.max;\n                    this.handleValues[1] = 100;\n                }\n                else if (value < this.values[0]) {\n                    value = this.values[0];\n                    this.handleValues[1] = this.handleValues[0];\n                }\n\n                this.sliderHandleEnd.nativeElement.focus();\n            }\n            \n            this.values[this.handleIndex] = this.getNormalizedValue(value);\n            this.values = this.values.slice();\n            this.onModelChange(this.values);\n            this.onChange.emit({event: event, values: this.values});\n        }\n        else {\n            if (val < this.min) {\n                val = this.min;\n                this.handleValue = 0;\n            }\n            else if (val > this.max) {\n                val = this.max;\n                this.handleValue = 100;\n            }\n            \n\t\t\tthis.value = this.getNormalizedValue(val);\n            \n            this.onModelChange(this.value);\n            this.onChange.emit({event: event, value: this.value});\n            this.sliderHandle.nativeElement.focus();\n        }\n    }\n            \n    getValueFromHandle(handleValue: number): number {\n        return (this.max - this.min) * (handleValue / 100) + this.min;\n    }\n\t\n\tgetDecimalsCount(value: number): number {\n\t\tif (value && Math.floor(value) !== value)\n\t\t\treturn value.toString().split(\".\")[1].length || 0;\n\t\treturn 0;\n\t}\n\t\n\tgetNormalizedValue(val: number): number {\n\t\tlet decimalsCount = this.getDecimalsCount(this.step);\n\t\tif (decimalsCount > 0) {\n\t\t\treturn +val.toFixed(decimalsCount);\n\t\t} \n\t\telse {\n\t\t\treturn Math.floor(val);\n\t\t}\n\t}\n    \n    ngOnDestroy() {\n        this.unbindDragListeners();\n    }\n}\n\n@NgModule({\n    imports: [CommonModule],\n    exports: [Slider],\n    declarations: [Slider]\n})\nexport class SliderModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NG_VALUE_ACCESSOR","forwardRef","EventEmitter","DomHandler","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","Output","ViewChild","CommonModule","NgModule"],"mappings":"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"}