@alifd/next
Version:
A configurable component library for web built on React.
58 lines (57 loc) • 2.63 kB
JavaScript
import { __assign, __extends, __rest } from "tslib";
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import ConfigProvider from '../config-provider';
/**
* Input.Group
*/
var Group = /** @class */ (function (_super) {
__extends(Group, _super);
function Group() {
return _super !== null && _super.apply(this, arguments) || this;
}
Group.prototype.render = function () {
var _a, _b, _c;
var _d = this.props, className = _d.className, style = _d.style, children = _d.children, prefix = _d.prefix, addonBefore = _d.addonBefore, addonAfter = _d.addonAfter, addonBeforeClassName = _d.addonBeforeClassName, addonAfterClassName = _d.addonAfterClassName, rtl = _d.rtl, disabled = _d.disabled, others = __rest(_d, ["className", "style", "children", "prefix", "addonBefore", "addonAfter", "addonBeforeClassName", "addonAfterClassName", "rtl", "disabled"]);
var cls = classNames((_a = {},
_a["".concat(prefix, "input-group")] = true,
_a["".concat(prefix, "disabled")] = disabled,
_a[className] = !!className,
_a));
var addonCls = "".concat(prefix, "input-group-addon");
var beforeCls = classNames(addonCls, (_b = {},
_b["".concat(prefix, "before")] = true,
_b[addonBeforeClassName] = addonBeforeClassName,
_b));
var afterCls = classNames(addonCls, (_c = {},
_c["".concat(prefix, "after")] = true,
_c[addonAfterClassName] = addonAfterClassName,
_c));
var before = addonBefore ? React.createElement("span", { className: beforeCls }, addonBefore) : null;
var after = addonAfter ? React.createElement("span", { className: afterCls }, addonAfter) : null;
return (React.createElement("span", __assign({}, others, {
// @ts-expect-error span 上没有 disabled
disabled: disabled, dir: rtl ? 'rtl' : undefined, className: cls, style: style }),
before,
children,
after));
};
Group.displayName = 'Group';
Group.propTypes = {
prefix: PropTypes.string,
className: PropTypes.string,
style: PropTypes.object,
children: PropTypes.node,
addonBefore: PropTypes.node,
addonBeforeClassName: PropTypes.string,
addonAfter: PropTypes.node,
addonAfterClassName: PropTypes.string,
rtl: PropTypes.bool,
};
Group.defaultProps = {
prefix: 'next-',
};
return Group;
}(React.Component));
export default ConfigProvider.config(Group);