UNPKG

ng-zorro-antd-mobile

Version:

An enterprise-class mobile UI components based on Ant Design and Angular

1 lines 53.3 kB
{"version":3,"file":"ng-zorro-antd-mobile-slider.mjs","sources":["../../components/slider/slider-handle/slider-handle.component.ts","../../components/slider/slider-handle/slider-handle.component.html","../../components/slider/slider-marks/slider-marks.component.ts","../../components/slider/slider-marks/slider-marks.component.html","../../components/slider/slider-steps/slider-steps.component.ts","../../components/slider/slider-steps/slider-steps.component.html","../../components/slider/slider-track/slider-track.component.ts","../../components/slider/slider-track/slider-track.component.html","../../components/slider/slider.component.ts","../../components/slider/slider.component.html","../../components/slider/slider.module.ts","../../components/slider/ng-zorro-antd-mobile-slider.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n HostListener,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'SliderHandle, nzm-slider-handle',\n templateUrl: './slider-handle.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SliderHandleComponent implements OnInit, OnDestroy {\n left: number;\n\n private _min: number;\n private _max: number;\n private _step: number;\n private _value: number;\n private _disabled: boolean = false;\n private _marks: object = {};\n private _handleStyle: object;\n private _sliderLength: number;\n private _sliderStart: number;\n private _minBound: number;\n private _maxBound: number;\n private _startX: number;\n private _isDraging: boolean = false;\n private _handleStatus: string;\n private _handleOffsetX: number;\n private _oldValue: number;\n\n @Input()\n set min(value: number) {\n this._min = value;\n }\n @Input()\n set max(value: number) {\n this._max = value;\n }\n @Input()\n set minBound(value: number) {\n this._minBound = value;\n }\n @Input()\n set maxBound(value: number) {\n this._maxBound = value;\n }\n @Input()\n set step(value: number) {\n this._step = value;\n }\n @Input()\n set value(value: number) {\n this._value = value;\n if (this._value) {\n this.left = this.calcOffset(this._value);\n }\n }\n @Input()\n set disabled(value: boolean) {\n this._disabled = value;\n }\n @Input()\n set sliderLength(value: number) {\n this._sliderLength = value;\n }\n @Input()\n set sliderStart(value: number) {\n this._sliderStart = value;\n }\n @Input()\n get handleStyle(): object {\n return this._handleStyle;\n }\n set handleStyle(value: object) {\n this._handleStyle = value;\n }\n @Output()\n onChange = new EventEmitter<any>();\n @Output()\n onAfterChange = new EventEmitter<any>();\n\n /* 手势操作 */\n @HostListener('touchstart', ['$event'])\n panstart(event) {\n // event.preventDefault();\n if (!this._disabled) {\n this._startX = event && event.changedTouches && event.changedTouches[0] && event.changedTouches[0].clientX;\n this._handleStatus = 'start';\n this._isDraging = true;\n }\n }\n\n @HostListener('touchmove', ['$event'])\n panmove(event) {\n event.preventDefault();\n if (!this._disabled && this._isDraging) {\n const pos = event.changedTouches[0].clientX;\n this._value = Math.round(this.calcValueByPos(pos));\n this.left = this.calcOffset(this._value);\n if (this._oldValue !== this._value) {\n this._oldValue = this._value;\n this.onChange.emit(this._value);\n }\n }\n }\n @HostListener('touchend', ['$event'])\n panend(event) {\n event.preventDefault();\n if (!this._disabled && this._isDraging) {\n this._handleStatus = 'end';\n this._isDraging = false;\n const pos = event.changedTouches[0].clientX;\n this._value = Math.round(this.calcValueByPos(pos));\n this.left = this.calcOffset(this._value);\n this.onAfterChange.emit(this._value);\n }\n }\n\n constructor(private _elf: ElementRef, private _sanitizer: DomSanitizer) {}\n\n mouseDown = event => {\n if (!this._disabled && this.isMouseTarget(event)) {\n this._startX = event.clientX;\n this._handleStatus = 'start';\n this._isDraging = true;\n document.addEventListener('mousemove', this.mouseMove, false);\n document.addEventListener('mouseup', this.mouseUp, false);\n this.pauseEvent(event);\n }\n }\n\n mouseMove = event => {\n if (!this._disabled && this._isDraging) {\n this.pauseEvent(event);\n const pos = event.clientX;\n this._value = Math.round(this.calcValueByPos(pos));\n this.left = this.calcOffset(this._value);\n if (this._oldValue !== this._value) {\n this._oldValue = this._value;\n this.onChange.emit(this._value);\n }\n }\n }\n\n mouseUp = event => {\n if (!this._disabled && this._isDraging) {\n this._handleStatus = 'end';\n this._isDraging = false;\n const pos = event.clientX;\n this._value = Math.round(this.calcValueByPos(pos));\n this.left = this.calcOffset(this._value);\n this.onAfterChange.emit(this._value);\n }\n }\n\n calcValueByPos(pos) {\n const offset = pos - this._sliderStart;\n let value = this.calcValue(offset);\n if (value <= this._minBound) {\n value = this._minBound;\n }\n if (value >= this._maxBound) {\n value = this._maxBound;\n }\n const closestPoint = this.getClosestPoint(value);\n return this._step === null ? closestPoint : parseFloat(closestPoint.toFixed(this.getPrecision(this._step)));\n }\n\n calcValue(offset) {\n const ratio = Math.abs(Math.max(offset, 0) / this._sliderLength);\n const value = ratio * (this._max - this._min) + this._min;\n return value;\n }\n\n getClosestPoint(val) {\n const points = Object.keys(this._marks).map(parseFloat);\n if (this._step !== null) {\n const closestStep = Math.round((val - this._min) / this._step) * this._step + this._min;\n points.push(closestStep);\n }\n const diffs = points.map(function(point) {\n return Math.abs(val - point);\n });\n return points[diffs.indexOf(Math.min.apply(Math, this.toConsumableArray(diffs)))];\n }\n\n getPrecision(step) {\n const stepString = step.toString();\n let precision = 0;\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n return precision;\n }\n\n calcOffset(value) {\n const ratio = (value - this._min) / (this._max - this._min);\n return ratio * 100;\n }\n\n pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n isMouseTarget(event) {\n let target = event.target;\n let parentFound = false;\n while (target !== null && !parentFound) {\n if (target === this._elf.nativeElement) {\n parentFound = true;\n }\n target = target.parentElement;\n }\n return parentFound;\n }\n\n toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n const arr2 = Array(arr.length);\n for (let i = 0; i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n }\n }\n\n ngOnInit() {\n const self = this;\n this._elf.nativeElement.addEventListener('mousedown', this.mouseDown, false);\n this._handleOffsetX = this._elf.nativeElement.getBoundingClientRect().x;\n this.left = this.calcOffset(this._value);\n this._minBound = this._minBound === undefined ? this._min : this._minBound;\n this._maxBound = this._maxBound === undefined ? this._max : this._maxBound;\n }\n\n ngOnDestroy() {\n document.removeEventListener('mousemove', this.mouseMove, false);\n document.removeEventListener('mouseup', this.mouseUp, false);\n }\n}\n","<div role=\"slider\" class=\"am-slider-handle\" [ngStyle]=\"handleStyle\" [style.left.%]=\"left\"></div>\n","import {\n Component,\n OnInit,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n AfterViewInit,\n HostBinding,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'SliderMarks, nzm-slider-marks',\n templateUrl: './slider-marks.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SliderMarksComponent implements OnInit, AfterViewInit {\n markArray: Array<any> = [];\n\n private _min: number = 0;\n private _max: number = 100;\n private _marks: object = {};\n private _included: boolean = true;\n private _className: string = 'am-slider-mark';\n private _upperBound: number;\n private _lowerBound: number;\n private _range: number;\n private _markWidth: number;\n\n @Input()\n set min(value: number) {\n if (value && value <= this._max) {\n this._min = value;\n }\n }\n @Input()\n set max(value: number) {\n if (value && value >= this._min) {\n this._max = value;\n }\n }\n @Input()\n set marks(value: object) {\n this._marks = value;\n }\n @Input()\n set included(value: boolean) {\n this._included = value;\n }\n @Input()\n set upperBound(value: number) {\n if (value && value !== this._upperBound) {\n this._upperBound = value;\n this.setActiveCls();\n }\n }\n @Input()\n set lowerBound(value: number) {\n if (value && value !== this.lowerBound) {\n this._lowerBound = value;\n this.setActiveCls();\n }\n }\n @Output()\n onChange = new EventEmitter<any>();\n @Output()\n onAfterChange = new EventEmitter<any>();\n\n @HostBinding()\n get class() {\n return this._className;\n }\n\n constructor(private _elf: ElementRef) {}\n\n getMarks(marksKeys) {\n this.markArray = [];\n marksKeys\n .map(parseFloat)\n .sort((a, b) => a - b)\n .map(point => {\n const markItem = {\n markLabel: '',\n point: '',\n className: {},\n style: {}\n };\n const markPoint = this._marks[point];\n const markPointIsObject = typeof markPoint === 'object';\n const markLabel = markPointIsObject ? markPoint.label : markPoint;\n if (!markLabel && markLabel !== 0) {\n return null;\n }\n const isActive =\n (!this._included && point === this._upperBound) ||\n (this._included && point <= this._upperBound && point >= this._lowerBound);\n const markClassName = {\n [`${this._className}-text`]: true,\n [`${this._className}-text-active`]: isActive\n };\n const bottomStyle = {\n marginBottom: '-50%',\n bottom: `${((point - this._min) / this._range) * 100}%`\n };\n const leftStyle = {\n width: `${this._markWidth}%`,\n marginLeft: `${-this._markWidth / 2}%`,\n left: `${((point - this._min) / this._range) * 100}%`\n };\n const style = leftStyle;\n const markStyle = markPointIsObject ? { ...style, ...markPoint.style } : style;\n markItem.markLabel = markLabel;\n markItem.point = point;\n markItem.className = Object.keys(markClassName).join(' ');\n markItem.style = markStyle;\n this.markArray.push(markItem);\n });\n }\n\n setActiveCls() {\n for (let i = 0; i < this.markArray.length; i++) {\n const point = this.markArray[i].point;\n const isActive =\n (!this._included && point === this._upperBound) ||\n (this._included && point <= this._upperBound && point >= this._lowerBound);\n this.markArray[i].className = {\n [`${this._className}-text`]: true,\n [`${this._className}-text-active`]: isActive\n };\n }\n }\n\n setMarksLable() {\n for (let i = 0; i < this.markArray.length; i++) {\n const markEle = this._elf.nativeElement.getElementsByClassName(this._className + '-text')[i];\n markEle.innerHTML = this.markArray[i].markLabel;\n }\n }\n\n ngOnInit() {\n const marksKeys = Object.keys(this._marks);\n const marksCount = marksKeys.length;\n const unit = marksCount > 1 ? 100 / (marksCount - 1) : 100;\n this._markWidth = unit * 0.9;\n this._range = this._max - this._min;\n this.getMarks(marksKeys);\n }\n\n ngAfterViewInit() {\n this.setMarksLable();\n }\n}\n","<span *ngFor=\"let item of markArray\" [ngClass]=\"item.className\" [ngStyle]=\"item.style\"> </span>\n","import { Component, OnInit, ElementRef, Input, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'SliderSteps, nzm-slider-steps',\n templateUrl: './slider-steps.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SliderStepsComponent implements OnInit {\n prefixCls = 'am-slider';\n stepArray = [];\n\n private _min: number = 0;\n private _max: number = 100;\n private _step: number;\n private _marks: object = {};\n private _included: boolean = true;\n private _upperBound: number;\n private _lowerBound: number;\n private _dots: boolean = false;\n private _dotStyle: object;\n private _activeDotStyle: object;\n\n @Input()\n set min(value: number) {\n if (value && value <= this._max) {\n this._min = value;\n }\n }\n @Input()\n set max(value: number) {\n if (value && value >= this._min) {\n this._max = value;\n }\n }\n @Input()\n set marks(value: object) {\n this._marks = value;\n }\n @Input()\n set step(value: number) {\n this._step = value;\n }\n @Input()\n set included(value: boolean) {\n this._included = value;\n }\n @Input()\n set dots(value: boolean) {\n this._dots = value;\n }\n @Input()\n set upperBound(value: number) {\n if (value !== undefined && value !== this._upperBound) {\n this._upperBound = value;\n this.setActiveCls();\n }\n }\n @Input()\n set lowerBound(value: number) {\n if (value !== undefined && value !== this.lowerBound) {\n this._lowerBound = value;\n this.setActiveCls();\n }\n }\n\n @HostBinding()\n get class() {\n return 'am-slider-step';\n }\n\n constructor(private _elf: ElementRef) {}\n\n calPoints() {\n const points = Object.keys(this._marks).map(parseFloat);\n if (this._dots) {\n for (let i = this._min; i <= this._max; i = i + this._step) {\n if (points.indexOf(i) < 0) {\n points.push(i);\n }\n }\n }\n return points;\n }\n\n getSteps(points) {\n const range = this._max - this._min;\n this.stepArray = [];\n points.map(point => {\n const stepItem = {\n stepStyle: {},\n stepClass: {},\n point: null\n };\n const offset = `${(Math.abs(point - this._min) / range) * 100}%`;\n const isActived =\n (!this._included && point === this._upperBound) ||\n (this._included && point <= this._upperBound && point >= this._lowerBound);\n let style = { left: offset, ...this._dotStyle };\n if (isActived) {\n style = { ...style, ...this._activeDotStyle };\n }\n\n const pointClassName = {\n [`${this.prefixCls}-dot`]: true,\n [`${this.prefixCls}-dot-active`]: isActived\n };\n stepItem.point = point;\n stepItem.stepStyle = style;\n stepItem.stepClass = pointClassName;\n this.stepArray.push(stepItem);\n });\n }\n\n setActiveCls() {\n for (let i = 0; i < this.stepArray.length; i++) {\n const point = this.stepArray[i].point;\n const isActived =\n (!this._included && point === this._upperBound) ||\n (this._included && point <= this._upperBound && point >= this._lowerBound);\n this.stepArray[i].stepClass = {\n [`${this.prefixCls}-dot`]: true,\n [`${this.prefixCls}-dot-active`]: isActived\n };\n }\n }\n\n ngOnInit() {\n const points = this.calPoints();\n this.getSteps(points);\n }\n}\n","<span *ngFor=\"let item of stepArray\" [ngClass]=\"item.stepClass\" [ngStyle]=\"item.stepStyle\"> </span>\n","import { Component, ElementRef, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'SliderTrack, nzm-slider-track',\n templateUrl: './slider-track.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SliderTrackComponent implements OnChanges {\n prefixCls = 'am-slider';\n elStyle: object;\n\n private _className: object;\n private _included: boolean = true;\n private _offset: number;\n private _length: number;\n private _style: object;\n\n @Input()\n get className(): object {\n return this._className;\n }\n set className(value: object) {\n this._className = value;\n }\n @Input()\n get included(): boolean {\n return this._included;\n }\n set included(value: boolean) {\n this._included = value;\n }\n @Input()\n set offset(value: number) {\n this._offset = value;\n }\n @Input()\n set length(value: number) {\n this._length = value;\n }\n @Input()\n set style(value: object) {\n this._style = value;\n }\n\n constructor(private _elf: ElementRef, private _sanitizer: DomSanitizer) {}\n\n ngOnChanges() {\n const positonStyle = {\n left: `${this._offset}%`,\n width: `${this._length}%`\n };\n this.elStyle = {\n ...this._style,\n ...positonStyle\n };\n }\n}\n","<div *ngIf=\"included\" [ngClass]=\"className\" [ngStyle]=\"elStyle\"></div>\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n ViewEncapsulation,\n HostBinding,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'Slider , nzm-slider',\n templateUrl: './slider.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true\n }\n ]\n})\nexport class SliderComponent implements OnInit, ControlValueAccessor {\n prefixCls = 'am-slider';\n sliderLength: number;\n sliderStart: number;\n sliderCls: object;\n offset: number = 0;\n length: number = 0;\n\n private _min: number = 0;\n private _max: number = 100;\n private _step: number = 1;\n private _value: number;\n private _defaultValue: number = 0;\n private _disabled: boolean = false;\n private _marks: object = {};\n private _dots: boolean = false;\n private _included: boolean = true;\n private _handleStyle: object;\n private _trackStyle: object = {};\n private _railStyle: object;\n\n @Input()\n get min(): number {\n return this._min;\n }\n set min(value: number) {\n this._min = value;\n }\n @Input()\n get max(): number {\n return this._max;\n }\n set max(value: number) {\n this._max = value;\n }\n @Input()\n get step(): number {\n return this._step;\n }\n set step(value: number) {\n this._step = value;\n }\n @Input()\n get value(): number {\n return this._value;\n }\n set value(value: number) {\n this.setValue(value);\n }\n @Input()\n set defaultValue(value) {\n this._defaultValue = value;\n this.setValue(value);\n }\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n this.setCls();\n }\n @Input()\n get marks(): object {\n return this._marks;\n }\n set marks(value: object) {\n this._marks = value;\n }\n @Input()\n get dots(): boolean {\n return this._dots;\n }\n set dots(value: boolean) {\n this._dots = value;\n }\n @Input()\n get included(): boolean {\n return this._included;\n }\n set included(value: boolean) {\n this._included = value;\n }\n @Input()\n get handleStyle(): object {\n return this._handleStyle;\n }\n set handleStyle(value: object) {\n this._handleStyle = value;\n }\n @Input()\n get trackStyle(): object {\n return this._trackStyle;\n }\n set trackStyle(value: object) {\n this._trackStyle = value;\n }\n @Input()\n get railStyle(): object {\n return this._railStyle;\n }\n set railStyle(value: object) {\n this._railStyle = value;\n }\n\n @Output()\n onAfterChange = new EventEmitter<any>();\n @Output()\n onChange = new EventEmitter<any>();\n\n @HostBinding('class.am-slider-wrapper')\n amSliderWrapper: boolean = true;\n\n private _ngModelOnChange: (value: number) => void = () => {};\n private _ngModelOnTouched: (value: number) => void = () => {};\n\n constructor(private _elf: ElementRef) {}\n\n setCls() {\n this.sliderCls = {\n [`${this.prefixCls}-disabled`]: this._disabled\n };\n }\n\n handleChange(e) {\n setTimeout(() => {\n this.setTrack(e);\n this._value = e;\n }, 10);\n this.onChange.emit(e);\n this._ngModelOnChange(e);\n }\n\n handleAfterChange(e) {\n setTimeout(() => {\n this.setTrack(e);\n this._value = e;\n }, 10);\n this.onAfterChange.emit(e);\n }\n\n valueRange() {\n if (this._value < this._min) {\n this._value = this._min;\n }\n if (this._value > this._max) {\n this._value = this._max;\n }\n }\n\n ngOnInit() {\n this.setCls();\n this.setValue(this._value);\n const sliderCoords = this._elf.nativeElement.getElementsByClassName('am-slider')[0].getBoundingClientRect();\n this.sliderLength = sliderCoords.width;\n this.sliderStart = sliderCoords.left;\n }\n\n writeValue(value: number): void {\n this.setValue(value, true);\n }\n\n setValue(value: number, isWriteValue = false) {\n if (value === 0 || value) {\n this._value = value;\n } else {\n this._value = this._defaultValue;\n }\n this.valueRange();\n this.setTrack(this._value);\n if (isWriteValue) {\n this._ngModelOnChange(this._value);\n } else {\n this.onAfterChange.emit(this._value);\n }\n }\n\n setTrack(e) {\n this.offset = 0;\n this.length = ((e - this._min) * 100) / (this._max - this._min);\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this._ngModelOnChange = fn;\n }\n\n registerOnTouched(fn: (value: number) => void): void {\n this._ngModelOnTouched = fn;\n }\n}\n","<div class=\"am-slider\" [ngClass]=\"sliderCls\">\n <div class=\"am-slider-rail\" [ngStyle]=\"railStyle\"></div>\n <SliderTrack\n [className]=\"'am-slider-track'\"\n [style]=\"trackStyle\"\n [offset]=\"offset\"\n [length]=\"length\"\n [included]=\"included\"\n ></SliderTrack>\n <SliderSteps\n [max]=\"max\"\n [min]=\"min\"\n [dots]=\"dots\"\n [step]=\"step\"\n [marks]=\"marks\"\n [lowerBound]=\"min\"\n [upperBound]=\"value\"\n [included]=\"included\"\n ></SliderSteps>\n <SliderHandle\n [max]=\"max\"\n [min]=\"min\"\n [value]=\"value\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n [handleStyle]=\"handleStyle\"\n [sliderStart]=\"sliderStart\"\n [sliderLength]=\"sliderLength\"\n (onChange)=\"handleChange($event)\"\n (onAfterChange)=\"handleAfterChange($event)\"\n ></SliderHandle>\n <SliderMarks\n [max]=\"max\"\n [min]=\"min\"\n [marks]=\"marks\"\n [lowerBound]=\"min\"\n [upperBound]=\"value\"\n [included]=\"included\"\n ></SliderMarks>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SliderComponent } from './slider.component';\nimport { SliderHandleComponent } from './slider-handle/slider-handle.component';\nimport { SliderMarksComponent } from './slider-marks/slider-marks.component';\nimport { SliderStepsComponent } from './slider-steps/slider-steps.component';\nimport { SliderTrackComponent } from './slider-track/slider-track.component';\n\n@NgModule({\n exports: [SliderComponent, SliderHandleComponent, SliderMarksComponent, SliderStepsComponent, SliderTrackComponent],\n declarations: [\n SliderComponent,\n SliderHandleComponent,\n SliderMarksComponent,\n SliderStepsComponent,\n SliderTrackComponent\n ],\n imports: [CommonModule]\n})\nexport class SliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i2.SliderHandleComponent","i3.SliderMarksComponent","i4.SliderStepsComponent","i5.SliderTrackComponent"],"mappings":"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