choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
241 lines (191 loc) • 8.42 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = wrapPicker;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _LocaleReceiver = _interopRequireDefault(require("../locale-provider/LocaleReceiver"));
var _timePicker = require("../time-picker");
var _en_US = _interopRequireDefault(require("./locale/en_US"));
var _Panel = _interopRequireDefault(require("../rc-components/time-picker/Panel"));
var _enum = require("../_util/enum");
var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigContext"));
function _createSuper(Derived) {
function isNativeReflectConstruct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
if (Reflect.construct.sham) return false;
if (typeof Proxy === "function") return true;
try {
Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
return true;
} catch (e) {
return false;
}
}
return function () {
var Super = (0, _getPrototypeOf2["default"])(Derived),
result;
if (isNativeReflectConstruct()) {
var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor;
result = Reflect.construct(Super, arguments, NewTarget);
} else {
result = Super.apply(this, arguments);
}
return (0, _possibleConstructorReturn2["default"])(this, result);
};
}
function getColumns(_ref) {
var showHour = _ref.showHour,
showMinute = _ref.showMinute,
showSecond = _ref.showSecond,
use12Hours = _ref.use12Hours;
var column = 0;
if (showHour) {
column += 1;
}
if (showMinute) {
column += 1;
}
if (showSecond) {
column += 1;
}
if (use12Hours) {
column += 1;
}
return column;
}
function wrapPicker(Picker, defaultFormat) {
var _a;
return _a =
/*#__PURE__*/
function (_Component) {
(0, _inherits2["default"])(PickerWrapper, _Component);
var _super = _createSuper(PickerWrapper);
function PickerWrapper() {
var _this;
(0, _classCallCheck2["default"])(this, PickerWrapper);
_this = _super.apply(this, arguments);
_this.handleOpenChange = function (open) {
var onOpenChange = _this.props.onOpenChange;
onOpenChange(open);
};
_this.handleFocus = function (e) {
var onFocus = _this.props.onFocus;
if (onFocus) {
onFocus(e);
}
};
_this.handleBlur = function (e) {
var onBlur = _this.props.onBlur;
if (onBlur) {
onBlur(e);
}
};
_this.savePicker = function (node) {
_this.picker = node;
};
_this.getDefaultLocale = function () {
var locale = _this.props.locale;
var result = (0, _objectSpread2["default"])({}, _en_US["default"], {}, locale);
result.lang = (0, _objectSpread2["default"])({}, result.lang, {}, (locale || {}).lang);
return result;
};
_this.renderPicker = function (locale, localeCode) {
var _classNames2, _classNames3;
var _assertThisInitialize = (0, _assertThisInitialized2["default"])(_this),
props = _assertThisInitialize.props;
var getPrefixCls = _this.context.getPrefixCls;
var _props$prefixCls = props.prefixCls,
prefixCls = _props$prefixCls === void 0 ? getPrefixCls('calendar') : _props$prefixCls,
_props$inputPrefixCls = props.inputPrefixCls,
inputPrefixCls = _props$inputPrefixCls === void 0 ? getPrefixCls('input') : _props$inputPrefixCls;
var pickerClass = (0, _classnames["default"])("".concat(prefixCls, "-picker"), (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-picker-").concat(props.size), !!props.size));
var pickerInputClass = (0, _classnames["default"])("".concat(prefixCls, "-picker-input"), inputPrefixCls, (_classNames2 = {}, (0, _defineProperty2["default"])(_classNames2, "".concat(inputPrefixCls, "-lg"), props.size === _enum.Size.large), (0, _defineProperty2["default"])(_classNames2, "".concat(inputPrefixCls, "-sm"), props.size === _enum.Size.small), (0, _defineProperty2["default"])(_classNames2, "".concat(inputPrefixCls, "-disabled"), props.disabled), _classNames2));
var pickerWrapperInputClass = (0, _classnames["default"])("".concat(inputPrefixCls, "-wrapper"), (_classNames3 = {}, (0, _defineProperty2["default"])(_classNames3, "".concat(inputPrefixCls, "-disabled"), props.disabled), (0, _defineProperty2["default"])(_classNames3, "".concat(inputPrefixCls, "-has-border"), props.border), _classNames3));
var timeFormat = props.showTime && props.showTime.format || 'HH:mm:ss';
var rcTimePickerProps = (0, _objectSpread2["default"])({}, (0, _timePicker.generateShowHourMinuteSecond)(timeFormat), {
format: timeFormat,
use12Hours: props.showTime && props.showTime.use12Hours
});
var columns = getColumns(rcTimePickerProps);
var timePickerCls = "".concat(prefixCls, "-time-picker-column-").concat(columns);
var timePicker = props.showTime ? _react["default"].createElement(_Panel["default"], (0, _extends2["default"])({}, rcTimePickerProps, props.showTime, {
prefixCls: "".concat(prefixCls, "-time-picker"),
className: timePickerCls,
placeholder: locale.timePickerLocale.placeholder,
transitionName: "slide-up"
})) : null;
return _react["default"].createElement(Picker, (0, _extends2["default"])({}, props, {
ref: _this.savePicker,
pickerClass: pickerClass,
pickerInputClass: pickerInputClass,
pickerWrapperInputClass: pickerWrapperInputClass,
locale: locale,
localeCode: localeCode,
timePicker: timePicker,
onOpenChange: _this.handleOpenChange,
onFocus: _this.handleFocus,
onBlur: _this.handleBlur
}));
};
return _this;
}
(0, _createClass2["default"])(PickerWrapper, [{
key: "componentDidMount",
value: function componentDidMount() {
var _this$props = this.props,
autoFocus = _this$props.autoFocus,
disabled = _this$props.disabled;
if (autoFocus && !disabled) {
this.focus();
}
}
}, {
key: "focus",
value: function focus() {
this.picker.focus();
}
}, {
key: "blur",
value: function blur() {
this.picker.blur();
}
}, {
key: "render",
value: function render() {
return _react["default"].createElement(_LocaleReceiver["default"], {
componentName: "DatePicker",
defaultLocale: this.getDefaultLocale
}, this.renderPicker);
}
}], [{
key: "contextType",
get: function get() {
return _ConfigContext["default"];
}
}]);
return PickerWrapper;
}(_react.Component), _a.displayName = 'PickerWrapper', _a.defaultProps = {
format: defaultFormat || 'YYYY-MM-DD',
transitionName: 'slide-up',
popupStyle: {},
onChange: function onChange() {},
onOk: function onOk() {},
onOpenChange: function onOpenChange() {},
locale: {},
border: true
}, _a;
}
//# sourceMappingURL=wrapPicker.js.map