UNPKG

amis

Version:

一种MIS页面生成工具

62 lines (61 loc) 2.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = tslib_1.__importDefault(require("react")); var factory_1 = require("../factory"); var ProgressField = /** @class */ (function (_super) { tslib_1.__extends(ProgressField, _super); function ProgressField() { return _super !== null && _super.apply(this, arguments) || this; } ProgressField.prototype.autoClassName = function (value) { var map = this.props.map; var index = Math.floor((value * map.length) / 100); index = Math.max(0, Math.min(map.length - 1, index)); return map[index]; }; ProgressField.prototype.render = function () { var _a = this.props, className = _a.className, placeholder = _a.placeholder, progressClassName = _a.progressClassName, progressBarClassName = _a.progressBarClassName, map = _a.map, showLabel = _a.showLabel, cx = _a.classnames; var value = this.props.value; var viewValue = react_1.default.createElement("span", { className: "text-muted" }, placeholder); if (/^\d*\.?\d+$/.test(value)) { value = parseFloat(value); } if (typeof value === 'number') { viewValue = [ react_1.default.createElement("div", { key: "progress", className: cx('progress', progressClassName) }, react_1.default.createElement("div", { className: cx('progress-bar', progressBarClassName || this.autoClassName(value)), title: value + "%", style: { width: value + "%" } })), showLabel ? react_1.default.createElement("div", { key: "value" }, value, "%") : null ]; } return react_1.default.createElement("span", { className: cx('ProgressField', className) }, viewValue); }; ProgressField.defaultProps = { placeholder: '-', progressClassName: 'progress-xs progress-striped active m-b-none', progressBarClassName: '', map: ['bg-danger', 'bg-warning', 'bg-info', 'bg-success', 'bg-success'], showLabel: true }; return ProgressField; }(react_1.default.Component)); exports.ProgressField = ProgressField; var ProgressFieldRenderer = /** @class */ (function (_super) { tslib_1.__extends(ProgressFieldRenderer, _super); function ProgressFieldRenderer() { return _super !== null && _super.apply(this, arguments) || this; } ProgressFieldRenderer = tslib_1.__decorate([ factory_1.Renderer({ test: /(^|\/)progress$/, name: 'progress' }) ], ProgressFieldRenderer); return ProgressFieldRenderer; }(ProgressField)); exports.ProgressFieldRenderer = ProgressFieldRenderer; //# sourceMappingURL=./renderers/Progress.js.map