UNPKG

ng2-nouislider

Version:
1 lines 21.4 kB
{"version":3,"file":"ng2-nouislider.mjs","sources":["../../../projects/ng2-nouislider/src/lib/ng2-nouislider.component.ts","../../../projects/ng2-nouislider/src/lib/ng2-nouislider.module.ts","../../../projects/ng2-nouislider/src/public-api.ts","../../../projects/ng2-nouislider/src/ng2-nouislider.ts"],"sourcesContent":["import * as noUiSlider from 'nouislider';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n Output,\n Renderer2,\n NgZone,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface NouiFormatter {\n to(value: number): string;\n from(value: string): number;\n}\n\nexport class DefaultFormatter implements NouiFormatter {\n to(value: number): string {\n // formatting with http://stackoverflow.com/a/26463364/478584\n return String(parseFloat(parseFloat(String(value)).toFixed(2)));\n }\n\n from(value: string): number {\n return parseFloat(value);\n }\n}\n\n@Component({\n selector: 'nouislider',\n host: {\n '[class.ng2-nouislider]': 'true',\n },\n template: '<div [attr.disabled]=\"disabled ? true : undefined\"></div>',\n styles: [\n `\n :host {\n display: block;\n margin-top: 1rem;\n margin-bottom: 1rem;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NouisliderComponent),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class NouisliderComponent\n implements ControlValueAccessor, OnChanges, OnDestroy\n{\n public slider: any;\n public handles: any[] = [];\n @Input() public disabled!: boolean;\n @Input() public behaviour!: string;\n @Input() public connect!: boolean[] | boolean;\n @Input() public limit!: number;\n @Input() public min!: number;\n @Input() public max!: number;\n @Input() public snap!: boolean;\n @Input() public animate!: boolean | boolean[];\n @Input() public range!: any;\n @Input() public step!: number;\n @Input() public format!: NouiFormatter;\n @Input() public pageSteps!: number;\n @Input() public config: any = {};\n @Input() public keyboard!: boolean;\n @Input() public onKeydown: any;\n @Input() public tooltips!: Array<any>;\n @Output() public change: EventEmitter<any> = new EventEmitter(true);\n @Output() public update: EventEmitter<any> = new EventEmitter(true);\n @Output() public slide: EventEmitter<any> = new EventEmitter(true);\n @Output() public set: EventEmitter<any> = new EventEmitter(true);\n @Output() public start: EventEmitter<any> = new EventEmitter(true);\n @Output() public end: EventEmitter<any> = new EventEmitter(true);\n private value: any;\n private onChange: any = Function.prototype;\n private cleanups: VoidFunction[] = [];\n\n constructor(\n private ngZone: NgZone,\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n this.slider &&\n (changes.min || changes.max || changes.step || changes.range)\n ) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.slider.updateOptions({\n range: Object.assign(\n {},\n {\n min: this.min,\n max: this.max,\n },\n this.range || {}\n ),\n step: this.step,\n });\n });\n });\n }\n }\n\n ngOnDestroy(): void {\n this.slider.destroy();\n\n while (this.cleanups.length) {\n this.cleanups.pop()?.();\n }\n }\n\n toValues(values: string[]): any | any[] {\n let v = values.map(this.config.format.from);\n return v.length == 1 ? v[0] : v;\n }\n\n writeValue(value: any): void {\n if (this.slider) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.slider.set(value);\n });\n });\n } else if (value !== null) {\n this.value = value;\n this.createSlider(value);\n }\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {}\n\n setDisabledState(isDisabled: boolean): void {\n isDisabled\n ? this.renderer.setAttribute(\n this.el.nativeElement.childNodes[0],\n 'disabled',\n 'true'\n )\n : this.renderer.removeAttribute(\n this.el.nativeElement.childNodes[0],\n 'disabled'\n );\n }\n\n private eventHandler = (\n emitter: EventEmitter<any>,\n values: string[],\n handle: number,\n unencoded: number[]\n ) => {\n let v = this.toValues(values);\n let emitEvents = false;\n if (this.value === undefined) {\n this.value = v;\n return;\n }\n if (Array.isArray(v) && this.value[handle] != v[handle]) {\n emitEvents = true;\n }\n if (!Array.isArray(v) && this.value != v) {\n emitEvents = true;\n }\n if (emitEvents) {\n this.ngZone.run(() => {\n if (emitter.observers.length > 0) {\n emitter.emit(v);\n }\n this.onChange(v);\n });\n }\n if (Array.isArray(v)) {\n this.value[handle] = v[handle];\n } else {\n this.value = v;\n }\n };\n\n private defaultKeyHandler = (e: KeyboardEvent) => {\n let stepSize: any[] = this.slider.steps();\n let index = parseInt(\n (e.target as HTMLElement).getAttribute('data-handle') as string\n );\n let sign = 1;\n let multiplier: number = 1;\n let step = 0;\n let delta = 0;\n\n switch (e.which) {\n case 34: // PageDown\n multiplier = this.config.pageSteps;\n break;\n case 40: // ArrowDown\n case 37: // ArrowLeft\n sign = -1;\n step = stepSize[index][0];\n e.preventDefault();\n break;\n\n case 33: // PageUp\n multiplier = this.config.pageSteps;\n break;\n case 38: // ArrowUp\n case 39: // ArrowRight\n step = stepSize[index][1];\n e.preventDefault();\n break;\n\n default:\n break;\n }\n\n delta = sign * multiplier * step;\n let newValue: number | number[];\n\n if (Array.isArray(this.value)) {\n newValue = [...this.value];\n newValue[index] = newValue[index] + delta;\n } else {\n newValue = this.value + delta;\n }\n\n this.slider.set(newValue);\n };\n\n private createSlider(initialValue: any): void {\n let inputsConfig = JSON.parse(\n JSON.stringify({\n behaviour: this.behaviour,\n connect: this.connect,\n limit: this.limit,\n start: initialValue,\n step: this.step,\n pageSteps: this.pageSteps,\n keyboard: this.keyboard,\n onKeydown: this.onKeydown,\n range: this.range ||\n this.config.range || { min: this.min, max: this.max },\n tooltips: this.tooltips,\n snap: this.snap,\n animate: this.animate,\n })\n );\n inputsConfig.tooltips = this.tooltips || this.config.tooltips;\n inputsConfig.format =\n this.format || this.config.format || new DefaultFormatter();\n\n this.ngZone.runOutsideAngular(() => {\n this.slider = noUiSlider.create(\n this.el.nativeElement.querySelector('div'),\n Object.assign(this.config, inputsConfig)\n );\n });\n\n this.handles = [].slice.call(\n this.el.nativeElement.querySelectorAll('.noUi-handle')\n );\n\n if (this.config.keyboard) {\n if (this.config.pageSteps === undefined) {\n this.config.pageSteps = 10;\n }\n\n for (const handle of this.handles) {\n handle.setAttribute('tabindex', 0);\n\n const onKeydown = this.config.onKeydown || this.defaultKeyHandler;\n\n this.ngZone.runOutsideAngular(() => {\n this.cleanups.push(\n this.renderer.listen(handle, 'keydown', onKeydown),\n this.renderer.listen(handle, 'click', () => {\n handle.focus();\n })\n );\n });\n }\n }\n\n this.slider.on(\n 'set',\n (values: string[], handle: number, unencoded: number[]) => {\n this.eventHandler(this.set, values, handle, unencoded);\n }\n );\n\n this.slider.on(\n 'update',\n (values: string[], handle: number, unencoded: number[]) => {\n if (this.update.observers.length > 0) {\n this.ngZone.run(() => {\n this.update.emit(this.toValues(values));\n });\n }\n }\n );\n\n this.slider.on(\n 'change',\n (values: string[], handle: number, unencoded: number[]) => {\n if (this.change.observers.length > 0) {\n this.ngZone.run(() => {\n this.change.emit(this.toValues(values));\n });\n }\n }\n );\n\n this.slider.on(\n 'slide',\n (values: string[], handle: number, unencoded: number[]) => {\n this.eventHandler(this.slide, values, handle, unencoded);\n }\n );\n\n this.slider.on(\n 'start',\n (values: string[], handle: number, unencoded: number[]) => {\n if (this.start.observers.length > 0) {\n this.ngZone.run(() => {\n this.start.emit(this.toValues(values));\n });\n }\n }\n );\n\n this.slider.on(\n 'end',\n (values: string[], handle: number, unencoded: number[]) => {\n if (this.end.observers.length > 0) {\n this.ngZone.run(() => {\n this.end.emit(this.toValues(values));\n });\n }\n }\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NouisliderComponent } from './ng2-nouislider.component';\n\n@NgModule({\n exports: [NouisliderComponent],\n imports: [NouisliderComponent],\n})\nexport class NouisliderModule {}\n","/*\n * Public API Surface of ng2-nouislider\n */\n\nexport * from './lib/ng2-nouislider.component';\nexport * from './lib/ng2-nouislider.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}