ukelli-ui
Version:
Base on React's UI lib. Make frontend's dev simpler and faster.
72 lines (71 loc) • 3.6 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import React from 'react';
import { Icon } from '../icon';
import SelectorBasic from './selector';
import { $T } from '../config';
var Radio = /** @class */ (function (_super) {
__extends(Radio, _super);
function Radio() {
return _super !== null && _super.apply(this, arguments) || this;
}
Radio.getDefaultValue = function (values) {
var result;
if (Array.isArray(values)) {
result = values[0].value;
}
else {
result = Object.keys(values)[0];
}
return result;
};
Radio.prototype.selectItem = function (value, idx) {
this.changeValue(value, idx);
};
Radio.prototype.render = function () {
var _this = this;
var _a = this.props, itemWidth = _a.itemWidth, isMultiple = _a.isMultiple, _b = _a.checkAllBtn, checkAllBtn = _b === void 0 ? true : _b, _c = _a.itemStyle, itemStyle = _c === void 0 ? {} : _c, n = _a.n, column = _a.column;
var selectedValue = this.getValue();
var isSelectedAll = isMultiple && selectedValue
&& selectedValue.length === this.values.length;
var selectAllBtn = isMultiple && checkAllBtn ? (React.createElement("span", { className: "btn flat selectAllBtn " + (isSelectedAll ? 'red' : 'theme'), onClick: function (e) { return (isSelectedAll ? _this.clearAll() : _this.selectAll()); } }, this.$T_UKE(isSelectedAll ? '清除' : '全选'))) : null;
var radioGroup = this.values.map(function (item, idx) {
var text = item.text, value = item.value, img = item.img;
var isActive = isMultiple ? (selectedValue || []).indexOf(value) > -1 : selectedValue == value;
return (React.createElement("div", { className: "item " + (isActive ? 'active' : ''), style: __assign({ width: itemWidth }, itemStyle), key: value, onClick: function (e) { return _this.selectItem(value, idx); } },
img && (React.createElement("img", { src: img, alt: "" })),
React.createElement("div", { className: "text" }, $T(text)),
React.createElement("div", { className: "frame" + (n ? ' icon-mode' : '') }, n ? React.createElement(Icon, { n: n }) : React.createElement("div", { className: "unit" }))));
});
return (React.createElement("div", { className: "__radio-container" + (isMultiple ? ' multiple' : '') },
selectAllBtn,
React.createElement("div", { className: "layout " + (column ? 'col' : '') + " group" }, radioGroup)));
};
Radio.defaultProps = {
column: false
};
return Radio;
}(SelectorBasic));
export default Radio;