shineout
Version:
Shein 前端组件库
176 lines (132 loc) • 5.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _Day = _interopRequireDefault(require("./Day"));
var _Time = _interopRequireDefault(require("./Time"));
var _Year = _interopRequireDefault(require("./Year"));
var _Month = _interopRequireDefault(require("./Month"));
var _utils = _interopRequireDefault(require("./utils"));
var _Quick = _interopRequireDefault(require("./Quick"));
var _Quarter = _interopRequireDefault(require("./Quarter"));
var _paramUtils = _interopRequireDefault(require("./paramUtils"));
var _locale = require("../locale");
var _styles = require("./styles");
var _component = require("../component");
var Picker =
/*#__PURE__*/
function (_PureComponent) {
(0, _inheritsLoose2.default)(Picker, _PureComponent);
function Picker(props) {
var _this;
_this = _PureComponent.call(this, props) || this;
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "defaultCurrent", void 0);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleEnter", void 0);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleLeave", void 0);
var mode;
switch (props.type) {
case 'year':
mode = 'year';
break;
case 'month':
mode = 'month';
break;
case 'quarter':
mode = 'quarter';
break;
case 'time':
mode = 'time';
break;
default:
mode = 'day';
}
_this.state = {
mode: mode
};
var format = 'YYYY-MM-DD HH:mm:ss';
_this.defaultCurrent = _utils.default.toDateWithFormat(_utils.default.formatDateWithDefaultTime(_utils.default.newDate(undefined, _this.getOptions()), undefined, props.defaultTime[0], format, _this.getOptions()), format, undefined, _this.getOptions());
_this.handleModeChange = _this.handleModeChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
_this.handleEnter = _this.handleMouse.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), true);
_this.handleLeave = _this.handleMouse.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), false);
_this.handleQuick = _this.handleQuick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
return _this;
}
var _proto = Picker.prototype;
_proto.getOptions = function getOptions() {
var timeZone = this.props.timeZone;
return {
timeZone: timeZone,
weekStartsOn: (0, _locale.getLocale)('startOfWeek')
};
};
_proto.handleQuick = function handleQuick(quick) {
var onChange = this.props.onChange;
onChange.apply(void 0, _paramUtils.default.quickHandleChangeParams(quick.value[0], true, false, false, quick));
};
_proto.handleMouse = function handleMouse(isEnter, e) {
// stop
e.stopPropagation();
var _this$props = this.props,
index = _this$props.index,
handleHover = _this$props.handleHover;
if (handleHover && index !== undefined) handleHover(index, isEnter);
};
_proto.handleModeChange = function handleModeChange(mode) {
var _this2 = this;
setTimeout(function () {
_this2.setState({
mode: mode
});
}, 10);
};
_proto.render = function render() {
var mode = this.state.mode;
var _this$props2 = this.props,
current = _this$props2.current,
index = _this$props2.index,
otherProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props2, ["current", "index"]);
var Render;
switch (mode) {
case 'year':
Render = _Year.default;
break;
case 'month':
Render = _Month.default;
break;
case 'time':
Render = _Time.default;
break;
case 'quarter':
Render = _Quarter.default;
break;
default:
Render = _Day.default;
} // only range has index prop
if (index === undefined) return _react.default.createElement("div", {
className: (0, _styles.datepickerClass)('split')
}, _react.default.createElement(_Quick.default, (0, _extends2.default)({}, otherProps, {
current: current || this.defaultCurrent,
onChange: this.handleQuick
})), _react.default.createElement(Render, (0, _extends2.default)({}, otherProps, {
current: current || this.defaultCurrent,
onModeChange: this.handleModeChange
})));
return _react.default.createElement("div", {
onMouseEnter: this.handleEnter,
onMouseLeave: this.handleLeave
}, _react.default.createElement(Render, (0, _extends2.default)({}, otherProps, {
index: index,
current: current || this.defaultCurrent,
onModeChange: this.handleModeChange
})));
};
return Picker;
}(_component.PureComponent);
var _default = Picker;
exports.default = _default;