@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
236 lines • 18.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: rate.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, forwardRef } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
var RateComponent = /** @class */ (function () {
function RateComponent() {
this.read = false;
this.count = 5;
this.color = '';
this.icon = '';
this.character = '';
this.totalLevel_array = [];
this.width = '';
this.onChange = (/**
* @return {?}
*/
function () { return null; });
this.onTouched = (/**
* @return {?}
*/
function () { return null; });
}
/**
* @return {?}
*/
RateComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
for (var i = 0; i < this.count; i++) {
this.totalLevel_array.push({ width: '0' });
}
};
// 只读模式配置
// 只读模式配置
/**
* @return {?}
*/
RateComponent.prototype.setStaticRating =
// 只读模式配置
/**
* @return {?}
*/
function () {
/** @type {?} */
var half_star = this.chooseValue % 1;
/** @type {?} */
var int_current_level = Math.floor(this.chooseValue);
this.setChange(0, int_current_level + 1, '100%');
if (half_star > 0) {
this.totalLevel_array[int_current_level + 1]['width'] = half_star * 100 + '%';
this.setChange(int_current_level + 2, this.count, '0');
}
else {
this.setChange(int_current_level + 1, this.count, '0');
}
};
// 动态模式配置
// 动态模式配置
/**
* @return {?}
*/
RateComponent.prototype.setDynamicRating =
// 动态模式配置
/**
* @return {?}
*/
function () {
this.setChange(0, this.chooseValue + 1, '100%');
this.setChange(this.chooseValue + 1, this.count, '0');
};
/**
* @param {?} event
* @param {?=} index
* @param {?=} reset
* @return {?}
*/
RateComponent.prototype.hoverToggle = /**
* @param {?} event
* @param {?=} index
* @param {?=} reset
* @return {?}
*/
function (event, index, reset) {
if (reset === void 0) { reset = false; }
if (this.read) {
return;
}
if (reset) {
if (this.chooseValue >= 0) {
this.setChange(0, this.chooseValue + 1, '100%');
this.setChange(this.chooseValue + 1, this.count, '0');
}
else {
this.setChange(0, this.count, '0');
}
}
else {
this.setChange(0, index + 1, '100%');
this.setChange(index + 1, this.count, '0');
}
};
// 根据mouseMove,mouseLeave,select等操作,改变颜色与是否选中
// 根据mouseMove,mouseLeave,select等操作,改变颜色与是否选中
/**
* @param {?} start
* @param {?} end
* @param {?} width
* @return {?}
*/
RateComponent.prototype.setChange =
// 根据mouseMove,mouseLeave,select等操作,改变颜色与是否选中
/**
* @param {?} start
* @param {?} end
* @param {?} width
* @return {?}
*/
function (start, end, width) {
for (var i = start; i < end; i++) {
this.totalLevel_array[i]['width'] = width;
}
};
/**
* @param {?} index
* @return {?}
*/
RateComponent.prototype.selectValue = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (this.read) {
return;
}
this.setChange(0, index + 1, '100%');
this.setChange(index + 1, this.count, '0');
this.chooseValue = index;
this.onChange(index + 1);
this.onTouched();
};
/**
* @param {?} fn
* @return {?}
*/
RateComponent.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onChange = fn;
};
/**
* @param {?} fn
* @return {?}
*/
RateComponent.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onTouched = fn;
};
/**
* @param {?} value
* @return {?}
*/
RateComponent.prototype.writeValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.chooseValue = value - 1;
if (this.read) {
this.setStaticRating();
}
else {
this.setDynamicRating();
}
};
RateComponent.decorators = [
{ type: Component, args: [{
selector: 'd-rate',
template: "<div class=\"devui-star-container\" (mouseleave)=\"hoverToggle($event, chooseValue, true)\">\r\n <div\r\n *ngFor=\"let item of totalLevel_array; let i = index\"\r\n class=\"devui-star-align devui-pointer\"\r\n [ngClass]=\"{ 'devui-only-read': read }\"\r\n (mouseover)=\"hoverToggle($event, i)\"\r\n (click)=\"selectValue(i)\"\r\n >\r\n <span class=\"devui-star-color {{ icon }}\">\r\n {{ character }}\r\n <svg\r\n *ngIf=\"!icon && !character\"\r\n width=\"16px\"\r\n height=\"16px\"\r\n viewBox=\"0 0 16 16\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <g id=\"\u6536\u85CF\u661F\u6807\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g fill=\"#E3E5E9\" id=\"Mask\">\r\n <polygon\r\n points=\"8 12.7603585 3.67376208 14.3147912 3.81523437 9.71994835 1 6.0857977 5.41367261 4.80046131 8 1 10.5863274 4.80046131 15 6.0857977 12.1847656 9.71994835 12.3262379 14.3147912\"\r\n ></polygon>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n <span\r\n class=\"devui-star-color-active devui-active-star devui-star-color-{{ type }} {{ icon }}\"\r\n [style.color]=\"color\"\r\n [style.width]=\"item.width\"\r\n >\r\n {{ character }}\r\n <svg\r\n *ngIf=\"!icon && !character\"\r\n width=\"16px\"\r\n height=\"16px\"\r\n viewBox=\"0 0 16 16\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <g id=\"\u6536\u85CF\u661F\u6807\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g [style.fill]=\"color\" id=\"Mask\">\r\n <polygon\r\n points=\"8 12.7603585 3.67376208 14.3147912 3.81523437 9.71994835 1 6.0857977 5.41367261 4.80046131 8 1 10.5863274 4.80046131 15 6.0857977 12.1847656 9.71994835 12.3262379 14.3147912\"\r\n ></polygon>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n </div>\r\n <div style=\"clear:both;\"></div>\r\n</div>\r\n",
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef((/**
* @return {?}
*/
function () { return RateComponent; })),
multi: true
}
],
styles: [".devui-star-align{float:left;font-size:16px;margin-right:5px;position:relative}.devui-pointer{cursor:pointer}.devui-star-container{display:inline-block}.devui-star-color-active{color:#6a81ed}.devui-star-color-active svg g{fill:#6a81ed}.devui-star-color-success{color:#3dcca6}.devui-star-color-success svg g{fill:#3dcca6}.devui-star-color-warning{color:#fac20a}.devui-star-color-warning svg g{fill:#fac20a}.devui-star-color-error{color:#f66f6a}.devui-star-color-error svg g{fill:#f66f6a}.devui-active-star{position:absolute;top:0;left:0;overflow:hidden}.devui-star-color{color:#dfe1e6}.devui-star-color svg g{fill:#dfe1e6}.devui-only-read{cursor:not-allowed}"]
}] }
];
RateComponent.propDecorators = {
read: [{ type: Input }],
count: [{ type: Input }],
color: [{ type: Input }],
icon: [{ type: Input }],
character: [{ type: Input }],
type: [{ type: Input }]
};
return RateComponent;
}());
export { RateComponent };
if (false) {
/** @type {?} */
RateComponent.prototype.read;
/** @type {?} */
RateComponent.prototype.count;
/** @type {?} */
RateComponent.prototype.color;
/** @type {?} */
RateComponent.prototype.icon;
/** @type {?} */
RateComponent.prototype.character;
/** @type {?} */
RateComponent.prototype.type;
/** @type {?} */
RateComponent.prototype.totalLevel_array;
/** @type {?} */
RateComponent.prototype.chooseValue;
/** @type {?} */
RateComponent.prototype.width;
/** @type {?} */
RateComponent.prototype.onChange;
/** @type {?} */
RateComponent.prototype.onTouched;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS9yYXRlLyIsInNvdXJjZXMiOlsicmF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBRXpFO0lBQUE7UUFhVyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUV4QixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGFBQVE7OztRQUE0QixjQUFNLE9BQUEsSUFBSSxFQUFKLENBQUksRUFBQztRQUMvQyxjQUFTOzs7UUFBZSxjQUFNLE9BQUEsSUFBSSxFQUFKLENBQUksRUFBQztJQTZFckMsQ0FBQzs7OztJQTNFQyxnQ0FBUTs7O0lBQVI7UUFDRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQsU0FBUzs7Ozs7SUFDVCx1Q0FBZTs7Ozs7SUFBZjs7WUFDUSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDOztZQUNoQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUs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d0NBQWdCOzs7O0lBQWhCLFVBQWlCLEVBQXVCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBRUQseUNBQWlCOzs7O0lBQWpCLFVBQWtCLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFRCxrQ0FBVTs7OztJQUFWLFVBQVcsS0FBb0I7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDOztnQkFuR0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxRQUFRO29CQUNsQixndEVBQW9DO29CQUVwQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVU7Ozs0QkFBQyxjQUFNLE9BQUEsYUFBYSxFQUFiLENBQWEsRUFBQzs0QkFDNUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7O2lCQUNGOzs7dUJBRUUsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLEtBQUs7dUJBQ0wsS0FBSzs0QkFDTCxLQUFLO3VCQUNMLEtBQUs7O0lBa0ZSLG9CQUFDO0NBQUEsQUFwR0QsSUFvR0M7U0F4RlksYUFBYTs7O0lBQ3hCLDZCQUFzQjs7SUFDdEIsOEJBQW1COztJQUNuQiw4QkFBb0I7O0lBQ3BCLDZCQUFtQjs7SUFDbkIsa0NBQXdCOztJQUN4Qiw2QkFBK0M7O0lBQy9DLHlDQUFzQjs7SUFDdEIsb0NBQW9COztJQUNwQiw4QkFBVzs7SUFDWCxpQ0FBK0M7O0lBQy9DLGtDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2QtcmF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhdGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhdGVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSByZWFkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY291bnQgPSA1O1xyXG4gIEBJbnB1dCgpIGNvbG9yID0gJyc7XHJcbiAgQElucHV0KCkgaWNvbiA9ICcnO1xyXG4gIEBJbnB1dCgpIGNoYXJhY3RlciA9ICcnO1xyXG4gIEBJbnB1dCgpIHR5cGU6ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdlcnJvcic7XHJcbiAgdG90YWxMZXZlbF9hcnJheSA9IFtdO1xyXG4gIGNob29zZVZhbHVlOiBudW1iZXI7XHJcbiAgd2lkdGggPSAnJztcclxuICBvbkNoYW5nZTogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQgPSAoKSA9PiBudWxsO1xyXG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IG51bGw7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvdW50OyBpKyspIHtcclxuICAgICAgdGhpcy50b3RhbExldmVsX2FycmF5LnB1c2goeyB3aWR0aDogJzAnIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g5Y+q6K+75qih5byP6YWN572uXHJcbiAgc2V0U3RhdGljUmF0aW5nKCkge1xyXG4gICAgY29uc3QgaGFsZl9zdGFyID0gdGhpcy5jaG9vc2VWYWx1ZSAlIDE7XHJcbiAgICBjb25zdCBpbnRfY3VycmVudF9sZXZlbCA9IE1hdGguZmxvb3IodGhpcy5jaG9vc2VWYWx1ZSk7XHJcbiAgICB0aGlzLnNldENoYW5nZSgwLCBpbnRfY3VycmVudF9sZXZlbCArIDEsICcxMDAlJyk7XHJcbiAgICBpZiAoaGFsZl9zdGFyID4gMCkge1xyXG4gICAgICB0aGlzLnRvdGFsTGV2ZWxfYXJyYXlbaW50X2N1cnJlbnRfbGV2ZWwgKyAxXVsnd2lkdGgnXSA9IGhhbGZfc3RhciAqIDEwMCArICclJztcclxuICAgICAgdGhpcy5zZXRDaGFuZ2UoaW50X2N1cnJlbnRfbGV2ZWwgKyAyLCB0aGlzLmNvdW50LCAnMCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRDaGFuZ2UoaW50X2N1cnJlbnRfbGV2ZWwgKyAxLCB0aGlzLmNvdW50LCAnMCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g5Yqo5oCB5qih5byP6YWN572uXHJcbiAgc2V0RHluYW1pY1JhdGluZygpIHtcclxuICAgIHRoaXMuc2V0Q2hhbmdlKDAsIHRoaXMuY2hvb3NlVmFsdWUgKyAxLCAnMTAwJScpO1xyXG4gICAgdGhpcy5zZXRDaGFuZ2UodGhpcy5jaG9vc2VWYWx1ZSArIDEsIHRoaXMuY291bnQsICcwJyk7XHJcbiAgfVxyXG5cclxuICBob3ZlclRvZ2dsZShldmVudCwgaW5kZXg/OiBudW1iZXIsIHJlc2V0OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGlmICh0aGlzLnJlYWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHJlc2V0KSB7XHJcbiAgICAgIGlmICh0aGlzLmNob29zZVZhbHVlID49IDApIHtcclxuICAgICAgICB0aGlzLnNldENoYW5nZSgwLCB0aGlzLmNob29zZVZhbHVlICsgMSwgJzEwMCUnKTtcclxuICAgICAgICB0aGlzLnNldENoYW5nZSh0aGlzLmNob29zZVZhbHVlICsgMSwgdGhpcy5jb3VudCwgJzAnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldENoYW5nZSgwLCB0aGlzLmNvdW50LCAnMCcpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldENoYW5nZSgwLCBpbmRleCArIDEsICcxMDAlJyk7XHJcbiAgICAgIHRoaXMuc2V0Q2hhbmdlKGluZGV4ICsgMSwgdGhpcy5jb3VudCwgJzAnKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8g5qC55o2ubW91c2VNb3Zl77yMbW91c2VMZWF2ZSxzZWxlY3TnrYnmk43kvZzvvIzmlLnlj5jpopzoibLkuI7mmK/lkKbpgInkuK1cclxuICBzZXRDaGFuZ2Uoc3RhcnQsIGVuZCwgd2lkdGgpIHtcclxuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XHJcbiAgICAgIHRoaXMudG90YWxMZXZlbF9hcnJheVtpXVsnd2lkdGgnXSA9IHdpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0VmFsdWUoaW5kZXgpIHtcclxuICAgIGlmICh0aGlzLnJlYWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRDaGFuZ2UoMCwgaW5kZXggKyAxLCAnMTAwJScpO1xyXG4gICAgdGhpcy5zZXRDaGFuZ2UoaW5kZXggKyAxLCB0aGlzLmNvdW50LCAnMCcpO1xyXG4gICAgdGhpcy5jaG9vc2VWYWx1ZSA9IGluZGV4O1xyXG4gICAgdGhpcy5vbkNoYW5nZShpbmRleCArIDEpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaG9vc2VWYWx1ZSA9IHZhbHVlIC0gMTtcclxuICAgIGlmICh0aGlzLnJlYWQpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0aWNSYXRpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0RHluYW1pY1JhdGluZygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=