ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
378 lines (377 loc) • 20.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, Input, Output, EventEmitter, ElementRef, ViewEncapsulation, HostBinding } from '@angular/core';
var Slider = /** @class */ (function () {
function Slider(_elf) {
this._elf = _elf;
this.prefixCls = 'am-slider';
this.offset = 0;
this.length = 0;
this._min = 0;
this._max = 100;
this._step = 1;
this._value = 10;
this._disabled = false;
this._marks = {};
this._dots = false;
this._included = true;
this._trackStyle = {};
this.onChange = new EventEmitter();
this.onAfterChange = new EventEmitter();
this.amSliderWrapper = true;
}
Object.defineProperty(Slider.prototype, "min", {
get: /**
* @return {?}
*/
function () {
return this._min;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._min = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "max", {
get: /**
* @return {?}
*/
function () {
return this._max;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._max = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "step", {
get: /**
* @return {?}
*/
function () {
return this._step;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._step = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "value", {
get: /**
* @return {?}
*/
function () {
return this._value;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._value = value;
this.valueRange();
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "defaultValue", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._defaultValue = value;
this._value = this._defaultValue;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "disabled", {
get: /**
* @return {?}
*/
function () {
return this._disabled;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._disabled = value;
this.setCls();
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "marks", {
get: /**
* @return {?}
*/
function () {
return this._marks;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._marks = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "dots", {
get: /**
* @return {?}
*/
function () {
return this._dots;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._dots = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "included", {
get: /**
* @return {?}
*/
function () {
return this._included;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._included = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "handleStyle", {
get: /**
* @return {?}
*/
function () {
return this._handleStyle;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._handleStyle = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "trackStyle", {
get: /**
* @return {?}
*/
function () {
return this._trackStyle;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._trackStyle = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Slider.prototype, "railStyle", {
get: /**
* @return {?}
*/
function () {
return this._railStyle;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._railStyle = value;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
Slider.prototype.setCls = /**
* @return {?}
*/
function () {
var _a;
this.sliderCls = (_a = {},
_a[this.prefixCls + "-disabled"] = this._disabled,
_a);
};
/**
* @param {?} e
* @return {?}
*/
Slider.prototype.handleChange = /**
* @param {?} e
* @return {?}
*/
function (e) {
var _this = this;
setTimeout(function () {
_this.offset = 0;
_this.length = ((e - _this._min) * 100) / (_this._max - _this._min);
_this._value = e;
}, 10);
this.onChange.emit(e);
};
/**
* @param {?} e
* @return {?}
*/
Slider.prototype.handleAfterChange = /**
* @param {?} e
* @return {?}
*/
function (e) {
var _this = this;
setTimeout(function () {
_this.offset = 0;
_this.length = ((e - _this._min) * 100) / (_this._max - _this._min);
_this._value = e;
}, 10);
this.onAfterChange.emit(e);
};
/**
* @return {?}
*/
Slider.prototype.valueRange = /**
* @return {?}
*/
function () {
if (this._value < this._min) {
this._value = this._min;
}
if (this._value > this._max) {
this._value = this._max;
}
};
/**
* @return {?}
*/
Slider.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.setCls();
this.valueRange();
/** @type {?} */
var sliderCoords = this._elf.nativeElement.getElementsByClassName('am-slider')[0].getBoundingClientRect();
this.sliderLength = sliderCoords.width;
this.sliderStart = sliderCoords.left;
};
Slider.decorators = [
{ type: Component, args: [{
selector: 'Slider , nzm-slider',
template: "<div class=\"am-slider\" [ngClass]=\"sliderCls\">\n <div class=\"am-slider-rail\" [ngStyle]=\"railStyle\"></div>\n <SliderTrack [className]=\"'am-slider-track'\"\n [style]=\"trackStyle\"\n [offset]=\"offset\"\n [length]=\"length\"\n [included]=\"included\"\n ></SliderTrack>\n <SliderSteps [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 [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 [max]=\"max\"\n [min]=\"min\"\n [marks]=\"marks\"\n [lowerBound]=\"min\"\n [upperBound]=\"value\"\n [included]=\"included\"\n ></SliderMarks>\n</div>",
encapsulation: ViewEncapsulation.None
}] }
];
/** @nocollapse */
Slider.ctorParameters = function () { return [
{ type: ElementRef }
]; };
Slider.propDecorators = {
min: [{ type: Input }],
max: [{ type: Input }],
step: [{ type: Input }],
value: [{ type: Input }],
defaultValue: [{ type: Input }],
disabled: [{ type: Input }],
marks: [{ type: Input }],
dots: [{ type: Input }],
included: [{ type: Input }],
handleStyle: [{ type: Input }],
trackStyle: [{ type: Input }],
railStyle: [{ type: Input }],
onChange: [{ type: Output }],
onAfterChange: [{ type: Output }],
amSliderWrapper: [{ type: HostBinding, args: ['class.am-slider-wrapper',] }]
};
return Slider;
}());
export { Slider };
if (false) {
/** @type {?} */
Slider.prototype.prefixCls;
/** @type {?} */
Slider.prototype.sliderLength;
/** @type {?} */
Slider.prototype.sliderStart;
/** @type {?} */
Slider.prototype.sliderCls;
/** @type {?} */
Slider.prototype.offset;
/** @type {?} */
Slider.prototype.length;
/** @type {?} */
Slider.prototype._min;
/** @type {?} */
Slider.prototype._max;
/** @type {?} */
Slider.prototype._step;
/** @type {?} */
Slider.prototype._value;
/** @type {?} */
Slider.prototype._defaultValue;
/** @type {?} */
Slider.prototype._disabled;
/** @type {?} */
Slider.prototype._marks;
/** @type {?} */
Slider.prototype._dots;
/** @type {?} */
Slider.prototype._included;
/** @type {?} */
Slider.prototype._handleStyle;
/** @type {?} */
Slider.prototype._trackStyle;
/** @type {?} */
Slider.prototype._railStyle;
/** @type {?} */
Slider.prototype.onChange;
/** @type {?} */
Slider.prototype.onAfterChange;
/** @type {?} */
Slider.prototype.amSliderWrapper;
/** @type {?} */
Slider.prototype._elf;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQtbW9iaWxlLyIsInNvdXJjZXMiOlsic2xpZGVyL3NsaWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osVUFBVSxFQUNWLGlCQUFpQixFQUNqQixXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7O0lBd0hyQixnQkFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTt5QkFoSHhCLFdBQVc7c0JBSU4sQ0FBQztzQkFDRCxDQUFDO29CQUVLLENBQUM7b0JBQ0QsR0FBRztxQkFDRixDQUFDO3NCQUNBLEVBQUU7eUJBRUUsS0FBSztzQkFDVCxFQUFFO3FCQUNGLEtBQUs7eUJBQ0QsSUFBSTsyQkFFSCxFQUFFO3dCQXdGckIsSUFBSSxZQUFZLEVBQU87NkJBRWxCLElBQUksWUFBWSxFQUFPOytCQUdaLElBQUk7S0FFUztJQTVGeEMsc0JBQ0ksdUJBQUc7Ozs7UUFEUDtZQUVFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztTQUNsQjs7Ozs7UUFDRCxVQUFRLEtBQWE7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDbkI7OztPQUhBO0lBSUQsc0JBQ0ksdUJBQUc7Ozs7UUFEUDtZQUVFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztTQUNsQjs7Ozs7UUFDRCxVQUFRLEtBQWE7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDbkI7OztPQUhBO0lBSUQsc0JBQ0ksd0JBQUk7Ozs7UUFEUjtZQUVFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQjs7Ozs7UUFDRCxVQUFTLEtBQWE7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDcEI7OztPQUhBO0lBSUQsc0JBQ0kseUJB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QkFRTCxLQUFLOzJCQUtMLEtBQUs7d0JBUUwsS0FBSzt1QkFPTCxLQUFLOzJCQU9MLEtBQUs7OEJBT0wsS0FBSzs2QkFPTCxLQUFLOzRCQU9MLEtBQUs7MkJBT0wsTUFBTTtnQ0FFTixNQUFNO2tDQUdOLFdBQVcsU0FBQyx5QkFBeUI7O2lCQTlIeEM7O1NBZ0JhLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1NsaWRlciAsIG56bS1zbGlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXIgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcmVmaXhDbHMgPSAnYW0tc2xpZGVyJztcbiAgc2xpZGVyTGVuZ3RoOiBudW1iZXI7XG4gIHNsaWRlclN0YXJ0OiBudW1iZXI7XG4gIHNsaWRlckNsczogb2JqZWN0O1xuICBvZmZzZXQ6IG51bWJlciA9IDA7XG4gIGxlbmd0aDogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIF9taW46IG51bWJlciA9IDA7XG4gIHByaXZhdGUgX21heDogbnVtYmVyID0gMTAwO1xuICBwcml2YXRlIF9zdGVwOiBudW1iZXIgPSAxO1xuICBwcml2YXRlIF92YWx1ZTogbnVtYmVyID0gMTA7XG4gIHByaXZhdGUgX2RlZmF1bHRWYWx1ZTogbnVtYmVyO1xuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9tYXJrczogb2JqZWN0ID0ge307XG4gIHByaXZhdGUgX2RvdHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaW5jbHVkZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBwcml2YXRlIF9oYW5kbGVTdHlsZTogb2JqZWN0O1xuICBwcml2YXRlIF90cmFja1N0eWxlOiBvYmplY3QgPSB7fTtcbiAgcHJpdmF0ZSBfcmFpbFN0eWxlOiBvYmplY3Q7XG5cbiAgQElucHV0KClcbiAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW47XG4gIH1cbiAgc2V0IG1pbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWluID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tYXg7XG4gIH1cbiAgc2V0IG1heCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWF4ID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHN0ZXAoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3RlcDtcbiAgfVxuICBzZXQgc3RlcCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fc3RlcCA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy52YWx1ZVJhbmdlKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGRlZmF1bHRWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fZGVmYXVsdFZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBtYXJrcygpOiBvYmplY3Qge1xuICAgIHJldHVybiB0aGlzLl9tYXJrcztcbiAgfVxuICBzZXQgbWFya3ModmFsdWU6IG9iamVjdCkge1xuICAgIHRoaXMuX21hcmtzID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGRvdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RvdHM7XG4gIH1cbiAgc2V0IGRvdHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kb3RzID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGluY2x1ZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbmNsdWRlZDtcbiAgfVxuICBzZXQgaW5jbHVkZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pbmNsdWRlZCA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBoYW5kbGVTdHlsZSgpOiBvYmplY3Qge1xuICAgIHJldHVybiB0aGlzLl9oYW5kbGVTdHlsZTtcbiAgfVxuICBzZXQgaGFuZGxlU3R5bGUodmFsdWU6IG9iamVjdCkge1xuICAgIHRoaXMuX2hhbmRsZVN0eWxlID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHRyYWNrU3R5bGUoKTogb2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5fdHJhY2tTdHlsZTtcbiAgfVxuICBzZXQgdHJhY2tTdHlsZSh2YWx1ZTogb2JqZWN0KSB7XG4gICAgdGhpcy5fdHJhY2tTdHlsZSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCByYWlsU3R5bGUoKTogb2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5fcmFpbFN0eWxlO1xuICB9XG4gIHNldCByYWlsU3R5bGUodmFsdWU6IG9iamVjdCkge1xuICAgIHRoaXMuX3JhaWxTdHlsZSA9IHZhbHVlO1xuICB9XG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KClcbiAgb25BZnRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tc2xpZGVyLXdyYXBwZXInKVxuICBhbVNsaWRlcldyYXBwZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZjogRWxlbWVudFJlZikge31cblxuICBzZXRDbHMoKSB7XG4gICAgdGhpcy5zbGlkZXJDbHMgPSB7XG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWRpc2FibGVkYF06IHRoaXMuX2Rpc2FibGVkXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZShlKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICB0aGlzLmxlbmd0aCA9ICgoZSAtIHRoaXMuX21pbikgKiAxMDApIC8gKHRoaXMuX21heCAtIHRoaXMuX21pbik7XG4gICAgICB0aGlzLl92YWx1ZSA9IGU7XG4gICAgfSwgMTApO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdChlKTtcbiAgfVxuXG4gIGhhbmRsZUFmdGVyQ2hhbmdlKGUpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICAgIHRoaXMubGVuZ3RoID0gKChlIC0gdGhpcy5fbWluKSAqIDEwMCkgLyAodGhpcy5fbWF4IC0gdGhpcy5fbWluKTtcbiAgICAgIHRoaXMuX3ZhbHVlID0gZTtcbiAgICB9LCAxMCk7XG4gICAgdGhpcy5vbkFmdGVyQ2hhbmdlLmVtaXQoZSk7XG4gIH1cblxuICB2YWx1ZVJhbmdlKCkge1xuICAgIGlmICh0aGlzLl92YWx1ZSA8IHRoaXMuX21pbikge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9taW47XG4gICAgfVxuICAgIGlmICh0aGlzLl92YWx1ZSA+IHRoaXMuX21heCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9tYXg7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgICB0aGlzLnZhbHVlUmFuZ2UoKTtcbiAgICBjb25zdCBzbGlkZXJDb29yZHMgPSB0aGlzLl9lbGYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdhbS1zbGlkZXInKVswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLnNsaWRlckxlbmd0aCA9IHNsaWRlckNvb3Jkcy53aWR0aDtcbiAgICB0aGlzLnNsaWRlclN0YXJ0ID0gc2xpZGVyQ29vcmRzLmxlZnQ7XG4gIH1cbn1cbiJdfQ==