You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6634 lines
230 KiB
6634 lines
230 KiB
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[57],{
|
|
|
|
/***/ "0yVv":
|
|
/*!***********************************************************************!*\
|
|
!*** ./src/pages/Classrooms/Lists/Exercise/Add/index.tsx + 1 modules ***!
|
|
\***********************************************************************/
|
|
/*! exports provided: default */
|
|
/*! all exports used */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/objectSpread2.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/slicedToArray.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/regenerator/index.js (<- Module is not an ECMAScript module) */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./src/pages/Classrooms/Lists/Exercise/Add/index.less?modules (<- Module is not an ECMAScript module) */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./src/.umi-production/core/umiExports.ts */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./src/utils/fetch.ts */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./src/utils/util.tsx */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/breadcrumb/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/breadcrumb/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/button/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/button/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/cascader/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/cascader/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/col/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/col/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/date-picker/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/date-picker/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/form/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/form/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/input-number/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/input-number/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/input/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/input/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/message/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/message/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/modal/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/modal/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/radio/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/radio/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/row/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/row/style/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/moment/moment.js (<- Module is not an ECMAScript module) */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/react-router-dom/esm/react-router-dom.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/react-router/esm/react-router.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with external "window.React" (<- Module is not an ECMAScript module) */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
// ESM COMPAT FLAG
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/message/style/index.js
|
|
var style = __webpack_require__("miYZ");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/message/index.js + 1 modules
|
|
var message = __webpack_require__("tsqr");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/objectSpread2.js
|
|
var objectSpread2 = __webpack_require__("k1fw");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/button/style/index.js
|
|
var button_style = __webpack_require__("+L6B");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/button/index.js
|
|
var es_button = __webpack_require__("2/Rp");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/radio/style/index.js
|
|
var radio_style = __webpack_require__("7Kak");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/radio/index.js + 4 modules
|
|
var es_radio = __webpack_require__("9yH6");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/input-number/style/index.js
|
|
var input_number_style = __webpack_require__("giR+");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/input-number/index.js
|
|
var input_number = __webpack_require__("fyUT");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/input/style/index.js
|
|
var input_style = __webpack_require__("5NDa");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 3 modules
|
|
var input = __webpack_require__("5rEg");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/cascader/style/index.js
|
|
var cascader_style = __webpack_require__("6UJt");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/cascader/index.js
|
|
var cascader = __webpack_require__("DFOY");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/row/style/index.js
|
|
var row_style = __webpack_require__("14J3");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/row/index.js
|
|
var row = __webpack_require__("BMrR");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/col/style/index.js
|
|
var col_style = __webpack_require__("jCWc");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/col/index.js
|
|
var col = __webpack_require__("kPKH");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/breadcrumb/style/index.js
|
|
var breadcrumb_style = __webpack_require__("sPJy");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/breadcrumb/index.js + 3 modules
|
|
var breadcrumb = __webpack_require__("bE4q");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
|
|
var asyncToGenerator = __webpack_require__("9og8");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/form/style/index.js
|
|
var form_style = __webpack_require__("y8nQ");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/form/index.js + 11 modules
|
|
var es_form = __webpack_require__("Vl3Y");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
|
|
var slicedToArray = __webpack_require__("tJVT");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js + 1 modules
|
|
var objectWithoutProperties = __webpack_require__("PpiC");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/regenerator/index.js
|
|
var regenerator = __webpack_require__("WmNS");
|
|
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
|
|
|
|
// EXTERNAL MODULE: external "window.React"
|
|
var external_window_React_ = __webpack_require__("cDcd");
|
|
var external_window_React_default = /*#__PURE__*/__webpack_require__.n(external_window_React_);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/react-router/esm/react-router.js
|
|
var react_router = __webpack_require__("Ty5D");
|
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/core/umiExports.ts + 17 modules
|
|
var umiExports = __webpack_require__("9kvl");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/react-router-dom/esm/react-router-dom.js
|
|
var react_router_dom = __webpack_require__("55Ip");
|
|
|
|
// EXTERNAL MODULE: ./src/pages/Classrooms/Lists/Exercise/Add/index.less?modules
|
|
var Addmodules = __webpack_require__("Hkc5");
|
|
var Addmodules_default = /*#__PURE__*/__webpack_require__.n(Addmodules);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/modal/style/index.js
|
|
var modal_style = __webpack_require__("2qtc");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 7 modules
|
|
var modal = __webpack_require__("kLXV");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/date-picker/style/index.js
|
|
var date_picker_style = __webpack_require__("iQDF");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/date-picker/index.js + 6 modules
|
|
var date_picker = __webpack_require__("+eQT");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/moment/moment.js
|
|
var moment = __webpack_require__("wd/R");
|
|
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
|
|
|
|
// CONCATENATED MODULE: ./src/components/ExerciseModel/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var ExerciseModel_ShixunsListPage = function ShixunsListPage(_ref) {
|
|
var user = _ref.user,
|
|
dispatch = _ref.dispatch,
|
|
classroomList = _ref.classroomList,
|
|
onModalOk = _ref.onModalOk;
|
|
var params = Object(react_router["i" /* useParams */])();
|
|
|
|
var _useState = Object(external_window_React_["useState"])(),
|
|
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
|
|
time = _useState2[0],
|
|
setTime = _useState2[1];
|
|
|
|
var _useState3 = Object(external_window_React_["useState"])(false),
|
|
_useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
|
|
btnLoading = _useState4[0],
|
|
setBtnLoading = _useState4[1];
|
|
|
|
function disabledDate(current) {
|
|
return current && current < moment_default()().subtract(1, "days");
|
|
}
|
|
|
|
return /*#__PURE__*/external_window_React_default.a.createElement(modal["a" /* default */], {
|
|
title: "\u6E29\u99A8\u63D0\u793A" // visible={true}
|
|
,
|
|
afterClose: function afterClose() {
|
|
setBtnLoading(false);
|
|
},
|
|
zIndex: 8888,
|
|
destroyOnClose: true,
|
|
footer: null,
|
|
maskClosable: false,
|
|
keyboard: false,
|
|
visible: classroomList.actionTabs.key === '预约弹窗' ? true : false,
|
|
onCancel: function onCancel() {
|
|
if (btnLoading) {
|
|
message["b" /* default */].warn('正在请求数据中...');
|
|
|
|
return;
|
|
}
|
|
|
|
dispatch({
|
|
type: 'classroomList/setActionTabs',
|
|
payload: {}
|
|
});
|
|
}
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement("div", null, /*#__PURE__*/external_window_React_default.a.createElement("span", null, "EduCoder\u6CE8\u610F\u5230\u60A8\u7684\u8BFE\u5802\u4E2D\u5B66\u751F\u4EBA\u6570\u8F83\u591A\u3002\u4E3A\u66F4\u597D\u5730\u4E3A\u60A8\u548C\u60A8\u7684\u5B66\u751F\u670D\u52A1\uFF0C\u7ED9\u540C\u5B66\u4EEC\u5E26\u6765\u66F4\u597D\u7684\u8003\u8BD5\u4F53\u9A8C\uFF0C\u6211\u4EEC\u5C06\u63D0\u524D\u4E3A\u60A8\u548C\u60A8\u7684\u5B66\u751F\u51C6\u5907\u597D\u670D\u52A1\u5668\u8D44\u6E90\u3002 \u8BF7\u60A8\u544A\u77E5\u6211\u4EEC\uFF0C\u8FD9\u4EFD\u8BD5\u5377\u7684\u9884\u8BA1\u8003\u8BD5\u65F6\u95F4\u662F\uFF1A"), /*#__PURE__*/external_window_React_default.a.createElement("br", null), /*#__PURE__*/external_window_React_default.a.createElement(date_picker["a" /* default */], {
|
|
popupStyle: {
|
|
zIndex: 9999
|
|
},
|
|
style: {
|
|
marginTop: '10px',
|
|
marginBottom: '10px'
|
|
},
|
|
disabledDate: disabledDate,
|
|
format: "YYYY-MM-DD HH:mm:ss",
|
|
onChange: function onChange(date, dateString) {
|
|
// console.log(date,dateString);
|
|
setTime(dateString);
|
|
},
|
|
showTime: {
|
|
defaultValue: moment_default()('00:00:00', 'HH:mm:ss')
|
|
}
|
|
}), /*#__PURE__*/external_window_React_default.a.createElement("br", null), /*#__PURE__*/external_window_React_default.a.createElement("span", null, "\u611F\u8C22\u60A8\u7684\u914D\u5408"), /*#__PURE__*/external_window_React_default.a.createElement("br", null), /*#__PURE__*/external_window_React_default.a.createElement("div", {
|
|
style: {
|
|
textAlign: 'end'
|
|
}
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(es_button["a" /* default */], {
|
|
loading: btnLoading,
|
|
type: "primary",
|
|
onClick: /*#__PURE__*/Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
|
|
return regenerator_default.a.wrap(function _callee$(_context) {
|
|
while (1) {
|
|
switch (_context.prev = _context.next) {
|
|
case 0:
|
|
setBtnLoading(true);
|
|
onModalOk(time, function () {
|
|
dispatch({
|
|
type: 'classroomList/setActionTabs',
|
|
payload: {}
|
|
});
|
|
});
|
|
|
|
case 2:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}
|
|
}, _callee);
|
|
}))
|
|
}, "\u786E\u8BA4"))));
|
|
};
|
|
|
|
/* harmony default export */ var ExerciseModel = (Object(umiExports["a" /* connect */])(function (_ref3) {
|
|
var user = _ref3.user,
|
|
classroomList = _ref3.classroomList;
|
|
return {
|
|
user: user,
|
|
classroomList: classroomList
|
|
};
|
|
})(ExerciseModel_ShixunsListPage));
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
var fetch = __webpack_require__("ErOA");
|
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx + 1 modules
|
|
var util = __webpack_require__("1vsH");
|
|
|
|
// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Exercise/Add/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Add_ExerciseAdd = function ExerciseAdd(_ref) {
|
|
var _problemset$disciplin6, _userInfo$course;
|
|
|
|
var classroomList = _ref.classroomList,
|
|
globalSetting = _ref.globalSetting,
|
|
problemset = _ref.problemset,
|
|
loading = _ref.loading,
|
|
user = _ref.user,
|
|
dispatch = _ref.dispatch,
|
|
props = Object(objectWithoutProperties["a" /* default */])(_ref, ["classroomList", "globalSetting", "problemset", "loading", "user", "dispatch"]);
|
|
|
|
var params = Object(react_router["i" /* useParams */])();
|
|
var location = Object(react_router["h" /* useLocation */])();
|
|
|
|
var _useState = Object(external_window_React_["useState"])(false),
|
|
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
|
|
btnLoading = _useState2[0],
|
|
setBtnLoading = _useState2[1];
|
|
|
|
var userInfo = user.userInfo;
|
|
|
|
var _Form$useForm = es_form["a" /* default */].useForm(),
|
|
_Form$useForm2 = Object(slicedToArray["a" /* default */])(_Form$useForm, 1),
|
|
form = _Form$useForm2[0];
|
|
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
dispatch({
|
|
type: 'problemset/getEditDisciplines',
|
|
payload: {
|
|
source: 'question',
|
|
identifier: params === null || params === void 0 ? void 0 : params.coursesId
|
|
}
|
|
});
|
|
}, []);
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
var _problemset$disciplin;
|
|
|
|
if (problemset !== null && problemset !== void 0 && (_problemset$disciplin = problemset.disciplinesData) !== null && _problemset$disciplin !== void 0 && _problemset$disciplin.checked) {
|
|
var _problemset$disciplin2, _problemset$disciplin3, _problemset$disciplin4, _problemset$disciplin5;
|
|
|
|
form.setFieldsValue({
|
|
courseid: [problemset === null || problemset === void 0 ? void 0 : (_problemset$disciplin2 = problemset.disciplinesData) === null || _problemset$disciplin2 === void 0 ? void 0 : (_problemset$disciplin3 = _problemset$disciplin2.checked) === null || _problemset$disciplin3 === void 0 ? void 0 : _problemset$disciplin3.discipline_id, problemset === null || problemset === void 0 ? void 0 : (_problemset$disciplin4 = problemset.disciplinesData) === null || _problemset$disciplin4 === void 0 ? void 0 : (_problemset$disciplin5 = _problemset$disciplin4.checked) === null || _problemset$disciplin5 === void 0 ? void 0 : _problemset$disciplin5.sub_discipline_id]
|
|
});
|
|
}
|
|
}, [problemset === null || problemset === void 0 ? void 0 : (_problemset$disciplin6 = problemset.disciplinesData) === null || _problemset$disciplin6 === void 0 ? void 0 : _problemset$disciplin6.checked]);
|
|
|
|
function onModalOk(_x, _x2) {
|
|
return _onModalOk.apply(this, arguments);
|
|
}
|
|
|
|
function _onModalOk() {
|
|
_onModalOk = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee2(time, cb) {
|
|
var value, courseid, _courseid2, id, subid, res, _res$data2, _res$data3;
|
|
|
|
return regenerator_default.a.wrap(function _callee2$(_context2) {
|
|
while (1) {
|
|
switch (_context2.prev = _context2.next) {
|
|
case 0:
|
|
_context2.next = 2;
|
|
return form.validateFields();
|
|
|
|
case 2:
|
|
value = form.getFieldValue();
|
|
courseid = value.courseid;
|
|
_courseid2 = Object(slicedToArray["a" /* default */])(courseid, 2), id = _courseid2[0], subid = _courseid2[1];
|
|
value.sub_discipline_id = subid;
|
|
value.is_md = true;
|
|
_context2.next = 9;
|
|
return dispatch({
|
|
type: "exercise/addExercise",
|
|
payload: Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, value), params)
|
|
});
|
|
|
|
case 9:
|
|
res = _context2.sent;
|
|
|
|
if (!(res.status === 0)) {
|
|
_context2.next = 16;
|
|
break;
|
|
}
|
|
|
|
_context2.next = 13;
|
|
return Object(fetch["a" /* default */])("/api/courses/".concat(params === null || params === void 0 ? void 0 : params.coursesId, "/exercises/notice_at.json"), {
|
|
method: 'POST',
|
|
body: {
|
|
course_id: params === null || params === void 0 ? void 0 : params.coursesId,
|
|
id: res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.exercise_id,
|
|
time: time
|
|
}
|
|
});
|
|
|
|
case 13:
|
|
umiExports["d" /* history */].push("/classrooms/".concat(params.coursesId, "/exercise/").concat((_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.exercise_id, "/edit"));
|
|
_context2.next = 17;
|
|
break;
|
|
|
|
case 16:
|
|
message["b" /* default */].error(res.message);
|
|
|
|
case 17:
|
|
cb();
|
|
|
|
case 18:
|
|
case "end":
|
|
return _context2.stop();
|
|
}
|
|
}
|
|
}, _callee2);
|
|
}));
|
|
return _onModalOk.apply(this, arguments);
|
|
}
|
|
|
|
return /*#__PURE__*/external_window_React_default.a.createElement("section", {
|
|
className: "edu-container"
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement("section", {
|
|
className: "animated fadeIn"
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement("aside", {
|
|
className: "mt10"
|
|
}, userInfo && /*#__PURE__*/external_window_React_default.a.createElement(breadcrumb["a" /* default */], {
|
|
separator: ">"
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(breadcrumb["a" /* default */].Item, null, /*#__PURE__*/external_window_React_default.a.createElement(react_router_dom["a" /* Link */], {
|
|
to: "/classrooms/".concat(params.coursesId, "/exercise")
|
|
}, userInfo === null || userInfo === void 0 ? void 0 : (_userInfo$course = userInfo.course) === null || _userInfo$course === void 0 ? void 0 : _userInfo$course.course_name)), /*#__PURE__*/external_window_React_default.a.createElement(breadcrumb["a" /* default */].Item, null, /*#__PURE__*/external_window_React_default.a.createElement(react_router_dom["a" /* Link */], {
|
|
to: "/classrooms/".concat(params.coursesId, "/exercise")
|
|
}, "\u8BD5\u5377\u5217\u8868")), /*#__PURE__*/external_window_React_default.a.createElement(breadcrumb["a" /* default */].Item, null, "\u65B0\u5EFA\u8BD5\u5377"))), /*#__PURE__*/external_window_React_default.a.createElement("aside", {
|
|
className: [Addmodules_default.a.title, 'mt20'].join(' ')
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(row["a" /* default */], {
|
|
style: {
|
|
width: "100%"
|
|
}
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], {
|
|
flex: "1"
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement("strong", {
|
|
className: "font20 ml5"
|
|
}, "\u65B0\u5EFA\u8BD5\u5377")), /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], null)))), /*#__PURE__*/external_window_React_default.a.createElement("section", {
|
|
className: [Addmodules_default.a.bg, 'pt30', 'pl30', 'pr30', 'pb30', 'mt20'].join(' ')
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */], {
|
|
layout: "vertical",
|
|
form: form,
|
|
className: Addmodules_default.a.formWrap
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */].Item, {
|
|
label: "方向&课程:",
|
|
name: "courseid",
|
|
labelCol: {
|
|
span: 5
|
|
},
|
|
wrapperCol: {
|
|
span: 5
|
|
},
|
|
rules: [{
|
|
required: true,
|
|
message: '请选择课程'
|
|
}]
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(cascader["a" /* default */], {
|
|
placeholder: "\u8BF7\u9009\u62E9...",
|
|
options: problemset.courseOptions
|
|
})), /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */].Item, {
|
|
name: "exercise_name",
|
|
label: "\u8BD5\u5377\u540D\u79F0",
|
|
rules: [{
|
|
required: true,
|
|
message: "请填写试卷标题"
|
|
}]
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(input["a" /* default */], {
|
|
maxLength: 60,
|
|
placeholder: "\u8BD5\u5377\u6807\u9898\uFF0C\u6700\u5927\u9650\u523660\u4E2A\u5B57\u7B26"
|
|
})), /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */].Item, {
|
|
name: "time",
|
|
label: "\u7B54\u9898\u65F6\u957F",
|
|
style: {
|
|
width: '300px'
|
|
}
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement("div", {
|
|
style: {
|
|
display: 'flex'
|
|
}
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(input_number["a" /* default */], {
|
|
min: 1,
|
|
max: 9999,
|
|
maxLength: 60,
|
|
placeholder: "\u8BF7\u586B\u5199\u7B54\u9898\u65F6\u957F"
|
|
}), /*#__PURE__*/external_window_React_default.a.createElement("span", {
|
|
style: {
|
|
marginLeft: "10px",
|
|
width: '40px',
|
|
lineHeight: '32px'
|
|
}
|
|
}, "\u5206\u949F"))), /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */].Item, {
|
|
label: "\u96BE\u5EA6\uFF1A",
|
|
name: "difficulty",
|
|
rules: [{
|
|
required: true,
|
|
message: '请选择难度'
|
|
}]
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(es_radio["a" /* default */].Group, null, /*#__PURE__*/external_window_React_default.a.createElement(es_radio["a" /* default */].Button, {
|
|
value: 1
|
|
}, "\u7B80\u5355"), /*#__PURE__*/external_window_React_default.a.createElement(es_radio["a" /* default */].Button, {
|
|
value: 2
|
|
}, "\u9002\u4E2D"), /*#__PURE__*/external_window_React_default.a.createElement(es_radio["a" /* default */].Button, {
|
|
value: 3
|
|
}, "\u56F0\u96BE"))), /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */].Item, {
|
|
label: "\u8BD5\u5377\u987B\u77E5\uFF1A",
|
|
name: "exercise_description"
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(input["a" /* default */].TextArea, {
|
|
rows: 6,
|
|
maxLength: 65535,
|
|
placeholder: "\u8BF7\u5728\u6B64\u8F93\u5165\u672C\u6B21\u8BD5\u5377\u7B54\u9898\u7684\u76F8\u5173\u8BF4\u660E\uFF0C\u6700\u5927\u9650\u523665535\u4E2A\u5B57\u7B26"
|
|
})))), /*#__PURE__*/external_window_React_default.a.createElement("div", {
|
|
className: ['mt20', 'pb20', 'pt20'].join(' ')
|
|
}, /*#__PURE__*/external_window_React_default.a.createElement(es_button["a" /* default */], {
|
|
style: {
|
|
marginRight: '5px'
|
|
},
|
|
onClick: function onClick() {
|
|
umiExports["d" /* history */].push("/classrooms/".concat(params.coursesId, "/exercise"));
|
|
}
|
|
}, "\u53D6\u6D88"), /*#__PURE__*/external_window_React_default.a.createElement(es_button["a" /* default */], {
|
|
loading: btnLoading,
|
|
onClick: /*#__PURE__*/Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
|
|
var value, res, courseid, _courseid, id, subid, _res, _res$data;
|
|
|
|
return regenerator_default.a.wrap(function _callee$(_context) {
|
|
while (1) {
|
|
switch (_context.prev = _context.next) {
|
|
case 0:
|
|
_context.next = 2;
|
|
return form.validateFields();
|
|
|
|
case 2:
|
|
value = form.getFieldValue();
|
|
console.log(value, 'value');
|
|
setBtnLoading(true); //调用接口 获取是否要弹窗
|
|
|
|
_context.next = 7;
|
|
return Object(fetch["a" /* default */])("/api/courses/".concat(params === null || params === void 0 ? void 0 : params.coursesId, "/exercises/overload_alert.json"), {
|
|
method: 'get',
|
|
params: {
|
|
course_id: params === null || params === void 0 ? void 0 : params.coursesId
|
|
}
|
|
});
|
|
|
|
case 7:
|
|
res = _context.sent;
|
|
|
|
if (!(res !== null && res !== void 0 && res.alert)) {
|
|
_context.next = 12;
|
|
break;
|
|
}
|
|
|
|
dispatch({
|
|
type: 'classroomList/setActionTabs',
|
|
payload: {
|
|
key: '预约弹窗'
|
|
}
|
|
});
|
|
_context.next = 20;
|
|
break;
|
|
|
|
case 12:
|
|
courseid = value.courseid;
|
|
_courseid = Object(slicedToArray["a" /* default */])(courseid, 2), id = _courseid[0], subid = _courseid[1];
|
|
value.sub_discipline_id = subid;
|
|
value.is_md = true;
|
|
_context.next = 18;
|
|
return dispatch({
|
|
type: "exercise/addExercise",
|
|
payload: Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, value), params)
|
|
});
|
|
|
|
case 18:
|
|
_res = _context.sent;
|
|
|
|
if (_res.status === 0) {
|
|
Object(util["ab" /* trackEvent */])(['教学课堂', '试卷', '新建试卷']);
|
|
umiExports["d" /* history */].push("/classrooms/".concat(params.coursesId, "/exercise/").concat((_res$data = _res.data) === null || _res$data === void 0 ? void 0 : _res$data.exercise_id, "/edit"));
|
|
} else {
|
|
message["b" /* default */].error(_res.message);
|
|
}
|
|
|
|
case 20:
|
|
setBtnLoading(false);
|
|
|
|
case 21:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}
|
|
}, _callee);
|
|
})),
|
|
type: "primary",
|
|
style: {
|
|
marginLeft: '5px'
|
|
}
|
|
}, "\u786E\u5B9A")), /*#__PURE__*/external_window_React_default.a.createElement(ExerciseModel, {
|
|
onModalOk: onModalOk
|
|
}));
|
|
};
|
|
|
|
/* harmony default export */ var Add = __webpack_exports__["default"] = (Object(umiExports["a" /* connect */])(function (_ref3) {
|
|
var classroomList = _ref3.classroomList,
|
|
loading = _ref3.loading,
|
|
user = _ref3.user,
|
|
problemset = _ref3.problemset,
|
|
globalSetting = _ref3.globalSetting;
|
|
return {
|
|
classroomList: classroomList,
|
|
globalSetting: globalSetting,
|
|
problemset: problemset,
|
|
user: user,
|
|
loading: loading.effects
|
|
};
|
|
})(Add_ExerciseAdd));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "55Ip":
|
|
/*!***************************************************************!*\
|
|
!*** ./node_modules/react-router-dom/esm/react-router-dom.js ***!
|
|
\***************************************************************/
|
|
/*! exports provided: MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter, BrowserRouter, HashRouter, Link, NavLink */
|
|
/*! exports used: Link, NavLink */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
/* unused harmony export BrowserRouter */
|
|
/* unused harmony export HashRouter */
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Link; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return NavLink; });
|
|
/* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router */ "Ty5D");
|
|
/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "dI71");
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "cDcd");
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
|
|
/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! history */ "YS25");
|
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "17x9");
|
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
|
|
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "wx14");
|
|
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "zLVn");
|
|
/* harmony import */ var tiny_invariant__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! tiny-invariant */ "9R94");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* The public API for a <Router> that uses HTML5 history.
|
|
*/
|
|
|
|
var BrowserRouter =
|
|
/*#__PURE__*/
|
|
function (_React$Component) {
|
|
Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(BrowserRouter, _React$Component);
|
|
|
|
function BrowserRouter() {
|
|
var _this;
|
|
|
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
|
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
_this.history = Object(history__WEBPACK_IMPORTED_MODULE_3__[/* createBrowserHistory */ "a"])(_this.props);
|
|
return _this;
|
|
}
|
|
|
|
var _proto = BrowserRouter.prototype;
|
|
|
|
_proto.render = function render() {
|
|
return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_router__WEBPACK_IMPORTED_MODULE_0__[/* Router */ "c"], {
|
|
history: this.history,
|
|
children: this.props.children
|
|
});
|
|
};
|
|
|
|
return BrowserRouter;
|
|
}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);
|
|
|
|
if (false) {}
|
|
|
|
/**
|
|
* The public API for a <Router> that uses window.location.hash.
|
|
*/
|
|
|
|
var HashRouter =
|
|
/*#__PURE__*/
|
|
function (_React$Component) {
|
|
Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(HashRouter, _React$Component);
|
|
|
|
function HashRouter() {
|
|
var _this;
|
|
|
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
|
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
_this.history = Object(history__WEBPACK_IMPORTED_MODULE_3__[/* createHashHistory */ "b"])(_this.props);
|
|
return _this;
|
|
}
|
|
|
|
var _proto = HashRouter.prototype;
|
|
|
|
_proto.render = function render() {
|
|
return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_router__WEBPACK_IMPORTED_MODULE_0__[/* Router */ "c"], {
|
|
history: this.history,
|
|
children: this.props.children
|
|
});
|
|
};
|
|
|
|
return HashRouter;
|
|
}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);
|
|
|
|
if (false) {}
|
|
|
|
var resolveToLocation = function resolveToLocation(to, currentLocation) {
|
|
return typeof to === "function" ? to(currentLocation) : to;
|
|
};
|
|
var normalizeToLocation = function normalizeToLocation(to, currentLocation) {
|
|
return typeof to === "string" ? Object(history__WEBPACK_IMPORTED_MODULE_3__[/* createLocation */ "c"])(to, null, null, currentLocation) : to;
|
|
};
|
|
|
|
var forwardRefShim = function forwardRefShim(C) {
|
|
return C;
|
|
};
|
|
|
|
var forwardRef = react__WEBPACK_IMPORTED_MODULE_2___default.a.forwardRef;
|
|
|
|
if (typeof forwardRef === "undefined") {
|
|
forwardRef = forwardRefShim;
|
|
}
|
|
|
|
function isModifiedEvent(event) {
|
|
return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
|
|
}
|
|
|
|
var LinkAnchor = forwardRef(function (_ref, forwardedRef) {
|
|
var innerRef = _ref.innerRef,
|
|
navigate = _ref.navigate,
|
|
_onClick = _ref.onClick,
|
|
rest = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(_ref, ["innerRef", "navigate", "onClick"]);
|
|
|
|
var target = rest.target;
|
|
|
|
var props = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])({}, rest, {
|
|
onClick: function onClick(event) {
|
|
try {
|
|
if (_onClick) _onClick(event);
|
|
} catch (ex) {
|
|
event.preventDefault();
|
|
throw ex;
|
|
}
|
|
|
|
if (!event.defaultPrevented && // onClick prevented default
|
|
event.button === 0 && ( // ignore everything but left clicks
|
|
!target || target === "_self") && // let browser handle "target=_blank" etc.
|
|
!isModifiedEvent(event) // ignore clicks with modifier keys
|
|
) {
|
|
event.preventDefault();
|
|
navigate();
|
|
}
|
|
}
|
|
}); // React 15 compat
|
|
|
|
|
|
if (forwardRefShim !== forwardRef) {
|
|
props.ref = forwardedRef || innerRef;
|
|
} else {
|
|
props.ref = innerRef;
|
|
}
|
|
/* eslint-disable-next-line jsx-a11y/anchor-has-content */
|
|
|
|
|
|
return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("a", props);
|
|
});
|
|
|
|
if (false) {}
|
|
/**
|
|
* The public API for rendering a history-aware <a>.
|
|
*/
|
|
|
|
|
|
var Link = forwardRef(function (_ref2, forwardedRef) {
|
|
var _ref2$component = _ref2.component,
|
|
component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,
|
|
replace = _ref2.replace,
|
|
to = _ref2.to,
|
|
innerRef = _ref2.innerRef,
|
|
rest = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(_ref2, ["component", "replace", "to", "innerRef"]);
|
|
|
|
return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_router__WEBPACK_IMPORTED_MODULE_0__[/* __RouterContext */ "e"].Consumer, null, function (context) {
|
|
!context ? false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(false) : void 0;
|
|
var history = context.history;
|
|
var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);
|
|
var href = location ? history.createHref(location) : "";
|
|
|
|
var props = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])({}, rest, {
|
|
href: href,
|
|
navigate: function navigate() {
|
|
var location = resolveToLocation(to, context.location);
|
|
var method = replace ? history.replace : history.push;
|
|
method(location);
|
|
}
|
|
}); // React 15 compat
|
|
|
|
|
|
if (forwardRefShim !== forwardRef) {
|
|
props.ref = forwardedRef || innerRef;
|
|
} else {
|
|
props.innerRef = innerRef;
|
|
}
|
|
|
|
return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(component, props);
|
|
});
|
|
});
|
|
|
|
if (false) { var refType, toType; }
|
|
|
|
var forwardRefShim$1 = function forwardRefShim(C) {
|
|
return C;
|
|
};
|
|
|
|
var forwardRef$1 = react__WEBPACK_IMPORTED_MODULE_2___default.a.forwardRef;
|
|
|
|
if (typeof forwardRef$1 === "undefined") {
|
|
forwardRef$1 = forwardRefShim$1;
|
|
}
|
|
|
|
function joinClassnames() {
|
|
for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
classnames[_key] = arguments[_key];
|
|
}
|
|
|
|
return classnames.filter(function (i) {
|
|
return i;
|
|
}).join(" ");
|
|
}
|
|
/**
|
|
* A <Link> wrapper that knows if it's "active" or not.
|
|
*/
|
|
|
|
|
|
var NavLink = forwardRef$1(function (_ref, forwardedRef) {
|
|
var _ref$ariaCurrent = _ref["aria-current"],
|
|
ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent,
|
|
_ref$activeClassName = _ref.activeClassName,
|
|
activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName,
|
|
activeStyle = _ref.activeStyle,
|
|
classNameProp = _ref.className,
|
|
exact = _ref.exact,
|
|
isActiveProp = _ref.isActive,
|
|
locationProp = _ref.location,
|
|
sensitive = _ref.sensitive,
|
|
strict = _ref.strict,
|
|
styleProp = _ref.style,
|
|
to = _ref.to,
|
|
innerRef = _ref.innerRef,
|
|
rest = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]);
|
|
|
|
return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_router__WEBPACK_IMPORTED_MODULE_0__[/* __RouterContext */ "e"].Consumer, null, function (context) {
|
|
!context ? false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(false) : void 0;
|
|
var currentLocation = locationProp || context.location;
|
|
var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);
|
|
var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202
|
|
|
|
var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1");
|
|
var match = escapedPath ? Object(react_router__WEBPACK_IMPORTED_MODULE_0__[/* matchPath */ "f"])(currentLocation.pathname, {
|
|
path: escapedPath,
|
|
exact: exact,
|
|
sensitive: sensitive,
|
|
strict: strict
|
|
}) : null;
|
|
var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);
|
|
var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp;
|
|
var style = isActive ? Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])({}, styleProp, {}, activeStyle) : styleProp;
|
|
|
|
var props = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])({
|
|
"aria-current": isActive && ariaCurrent || null,
|
|
className: className,
|
|
style: style,
|
|
to: toLocation
|
|
}, rest); // React 15 compat
|
|
|
|
|
|
if (forwardRefShim$1 !== forwardRef$1) {
|
|
props.ref = forwardedRef || innerRef;
|
|
} else {
|
|
props.innerRef = innerRef;
|
|
}
|
|
|
|
return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(Link, props);
|
|
});
|
|
});
|
|
|
|
if (false) { var ariaCurrentType; }
|
|
|
|
|
|
//# sourceMappingURL=react-router-dom.js.map
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "6cGi":
|
|
/*!*********************************************************!*\
|
|
!*** ./node_modules/rc-util/es/hooks/useMergedState.js ***!
|
|
\*********************************************************/
|
|
/*! exports provided: default */
|
|
/*! exports used: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useControlledState; });
|
|
/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ "ODXe");
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "cDcd");
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
|
|
|
function useControlledState(defaultStateValue, option) {
|
|
var _ref = option || {},
|
|
defaultValue = _ref.defaultValue,
|
|
value = _ref.value,
|
|
onChange = _ref.onChange,
|
|
postState = _ref.postState;
|
|
|
|
var _React$useState = react__WEBPACK_IMPORTED_MODULE_1__["useState"](function () {
|
|
if (value !== undefined) {
|
|
return value;
|
|
}
|
|
|
|
if (defaultValue !== undefined) {
|
|
return typeof defaultValue === 'function' ? defaultValue() : defaultValue;
|
|
}
|
|
|
|
return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;
|
|
}),
|
|
_React$useState2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_React$useState, 2),
|
|
innerValue = _React$useState2[0],
|
|
setInnerValue = _React$useState2[1];
|
|
|
|
var mergedValue = value !== undefined ? value : innerValue;
|
|
|
|
if (postState) {
|
|
mergedValue = postState(mergedValue);
|
|
} // setState
|
|
|
|
|
|
var onChangeRef = react__WEBPACK_IMPORTED_MODULE_1__["useRef"](onChange);
|
|
onChangeRef.current = onChange;
|
|
var triggerChange = react__WEBPACK_IMPORTED_MODULE_1__["useCallback"](function (newValue) {
|
|
setInnerValue(newValue);
|
|
|
|
if (mergedValue !== newValue && onChangeRef.current) {
|
|
onChangeRef.current(newValue, mergedValue);
|
|
}
|
|
}, [mergedValue, onChangeRef]); // Effect of reset value to `undefined`
|
|
|
|
var firstRenderRef = react__WEBPACK_IMPORTED_MODULE_1__["useRef"](true);
|
|
react__WEBPACK_IMPORTED_MODULE_1__["useEffect"](function () {
|
|
if (firstRenderRef.current) {
|
|
firstRenderRef.current = false;
|
|
return;
|
|
}
|
|
|
|
if (value === undefined) {
|
|
setInnerValue(value);
|
|
}
|
|
}, [value]);
|
|
return [mergedValue, triggerChange];
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "Hkc5":
|
|
/*!********************************************************************!*\
|
|
!*** ./src/pages/Classrooms/Lists/Exercise/Add/index.less?modules ***!
|
|
\********************************************************************/
|
|
/*! no static exports found */
|
|
/*! exports used: default */
|
|
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
// extracted by mini-css-extract-plugin
|
|
module.exports = {"flex_box_center":"flex_box_center___3KwMu","flex_space_between":"flex_space_between___1akH8","flex_box_vertical_center":"flex_box_vertical_center___7Jz-q","flex_box_center_end":"flex_box_center_end___3NYWv","flex_box_column":"flex_box_column___2ztEc","bg":"bg___1FDUF","title":"title___SV-0k","titleLeft":"titleLeft___2739d","titleRight":"titleRight___3sqsq","formWrap":"formWrap___1_b9c"};
|
|
|
|
/***/ }),
|
|
|
|
/***/ "ZpRC":
|
|
/*!*************************************************************************!*\
|
|
!*** ./node_modules/scroll-into-view-if-needed/es/index.js + 1 modules ***!
|
|
\*************************************************************************/
|
|
/*! exports provided: default */
|
|
/*! exports used: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// CONCATENATED MODULE: ./node_modules/compute-scroll-into-view/dist/index.module.js
|
|
function t(t){return"object"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||"hidden"!==t)&&"visible"!==t&&"clip"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var r=getComputedStyle(t,null);return e(r.overflowY,n)||e(r.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function r(t,e,n,r,i,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-r:l>e&&d<n||o<t&&d>n?l-e+i:0}/* harmony default export */ var index_module = (function(e,i){var o=window,l=i.scrollMode,d=i.block,u=i.inline,h=i.boundary,a=i.skipOverflowHiddenElements,c="function"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError("Invalid target");for(var f=document.scrollingElement||document.documentElement,s=[],p=e;t(p)&&c(p);){if((p=p.parentElement)===f){s.push(p);break}null!=p&&p===document.body&&n(p)&&!n(document.documentElement)||null!=p&&n(p,a)&&s.push(p)}for(var m=o.visualViewport?o.visualViewport.width:innerWidth,g=o.visualViewport?o.visualViewport.height:innerHeight,w=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,W=e.getBoundingClientRect(),b=W.height,H=W.width,y=W.top,E=W.right,M=W.bottom,V=W.left,x="start"===d||"nearest"===d?y:"end"===d?M:y+b/2,I="center"===u?V+H/2:"end"===u?E:V,C=[],T=0;T<s.length;T++){var k=s[T],B=k.getBoundingClientRect(),D=B.height,O=B.width,R=B.top,X=B.right,Y=B.bottom,L=B.left;if("if-needed"===l&&y>=0&&V>=0&&M<=g&&E<=m&&y>=R&&M<=Y&&V>=L&&E<=X)return C;var S=getComputedStyle(k),j=parseInt(S.borderLeftWidth,10),q=parseInt(S.borderTopWidth,10),z=parseInt(S.borderRightWidth,10),A=parseInt(S.borderBottomWidth,10),F=0,G=0,J="offsetWidth"in k?k.offsetWidth-k.clientWidth-j-z:0,K="offsetHeight"in k?k.offsetHeight-k.clientHeight-q-A:0;if(f===k)F="start"===d?x:"end"===d?x-g:"nearest"===d?r(v,v+g,g,q,A,v+x,v+x+b,b):x-g/2,G="start"===u?I:"center"===u?I-m/2:"end"===u?I-m:r(w,w+m,m,j,z,w+I,w+I+H,H),F=Math.max(0,F+v),G=Math.max(0,G+w);else{F="start"===d?x-R-q:"end"===d?x-Y+A+K:"nearest"===d?r(R,Y,D,q,A+K,x,x+b,b):x-(R+D/2)+K/2,G="start"===u?I-L-j:"center"===u?I-(L+O/2)+J/2:"end"===u?I-X+z+J:r(L,X,O,j,z+J,I,I+H,H);var N=k.scrollLeft,P=k.scrollTop;x+=P-(F=Math.max(0,Math.min(P+F,k.scrollHeight-D+K))),I+=N-(G=Math.max(0,Math.min(N+G,k.scrollWidth-O+J)))}C.push({el:k,top:F,left:G})}return C});
|
|
//# sourceMappingURL=index.module.js.map
|
|
|
|
// CONCATENATED MODULE: ./node_modules/scroll-into-view-if-needed/es/index.js
|
|
|
|
|
|
function isOptionsObject(options) {
|
|
return options === Object(options) && Object.keys(options).length !== 0;
|
|
}
|
|
|
|
function defaultBehavior(actions, behavior) {
|
|
if (behavior === void 0) {
|
|
behavior = 'auto';
|
|
}
|
|
|
|
var canSmoothScroll = ('scrollBehavior' in document.body.style);
|
|
actions.forEach(function (_ref) {
|
|
var el = _ref.el,
|
|
top = _ref.top,
|
|
left = _ref.left;
|
|
|
|
if (el.scroll && canSmoothScroll) {
|
|
el.scroll({
|
|
top: top,
|
|
left: left,
|
|
behavior: behavior
|
|
});
|
|
} else {
|
|
el.scrollTop = top;
|
|
el.scrollLeft = left;
|
|
}
|
|
});
|
|
}
|
|
|
|
function getOptions(options) {
|
|
if (options === false) {
|
|
return {
|
|
block: 'end',
|
|
inline: 'nearest'
|
|
};
|
|
}
|
|
|
|
if (isOptionsObject(options)) {
|
|
return options;
|
|
}
|
|
|
|
return {
|
|
block: 'start',
|
|
inline: 'nearest'
|
|
};
|
|
}
|
|
|
|
function scrollIntoView(target, options) {
|
|
var targetIsDetached = !target.ownerDocument.documentElement.contains(target);
|
|
|
|
if (isOptionsObject(options) && typeof options.behavior === 'function') {
|
|
return options.behavior(targetIsDetached ? [] : index_module(target, options));
|
|
}
|
|
|
|
if (targetIsDetached) {
|
|
return;
|
|
}
|
|
|
|
var computeOptions = getOptions(options);
|
|
return defaultBehavior(index_module(target, computeOptions), computeOptions.behavior);
|
|
}
|
|
|
|
/* harmony default export */ var es = __webpack_exports__["a"] = (scrollIntoView);
|
|
|
|
/***/ }),
|
|
|
|
/***/ "dmUQ":
|
|
/*!**************************************************************!*\
|
|
!*** ./node_modules/rc-input-number/es/index.js + 1 modules ***!
|
|
\**************************************************************/
|
|
/*! exports provided: default */
|
|
/*! exports used: default */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/createClass.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/defineProperty.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/inherits.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/classnames/index.js (<- Module is not an ECMAScript module) */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/rc-util/es/KeyCode.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with external "window.React" (<- Module is not an ECMAScript module) */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
|
|
var objectWithoutProperties = __webpack_require__("Ff2n");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
|
|
var defineProperty = __webpack_require__("rePB");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
|
|
var classCallCheck = __webpack_require__("1OyB");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
|
|
var createClass = __webpack_require__("vuIU");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
|
|
var inherits = __webpack_require__("Ji7U");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
|
|
var possibleConstructorReturn = __webpack_require__("md7G");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
|
|
var getPrototypeOf = __webpack_require__("foSv");
|
|
|
|
// EXTERNAL MODULE: external "window.React"
|
|
var external_window_React_ = __webpack_require__("cDcd");
|
|
var external_window_React_default = /*#__PURE__*/__webpack_require__.n(external_window_React_);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/classnames/index.js
|
|
var classnames = __webpack_require__("TSYQ");
|
|
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/rc-util/es/KeyCode.js
|
|
var KeyCode = __webpack_require__("4IlW");
|
|
|
|
// CONCATENATED MODULE: ./node_modules/rc-input-number/es/InputNumber.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
|
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
|
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
|
|
|
|
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; } }
|
|
|
|
/* eslint-disable react/prop-types */
|
|
|
|
|
|
|
|
|
|
function noop() {}
|
|
|
|
function preventDefault(e) {
|
|
e.preventDefault();
|
|
}
|
|
|
|
var defaultParser = function defaultParser(input) {
|
|
return input.replace(/[^\w.-]+/g, '');
|
|
};
|
|
/**
|
|
* When click and hold on a button - the speed of auto changin the value.
|
|
*/
|
|
|
|
|
|
var SPEED = 200;
|
|
/**
|
|
* When click and hold on a button - the delay before auto changin the value.
|
|
*/
|
|
|
|
var DELAY = 600;
|
|
/**
|
|
* Max Safe Integer -- on IE this is not available, so manually set the number in that case.
|
|
* The reason this is used, instead of Infinity is because numbers above the MSI are unstable
|
|
*/
|
|
|
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;
|
|
|
|
var isValidProps = function isValidProps(value) {
|
|
return value !== undefined && value !== null;
|
|
};
|
|
|
|
var isEqual = function isEqual(oldValue, newValue) {
|
|
return newValue === oldValue || typeof newValue === 'number' && typeof oldValue === 'number' && isNaN(newValue) && isNaN(oldValue);
|
|
};
|
|
|
|
var InputNumber_InputNumber = /*#__PURE__*/function (_React$Component) {
|
|
Object(inherits["a" /* default */])(InputNumber, _React$Component);
|
|
|
|
var _super = _createSuper(InputNumber);
|
|
|
|
function InputNumber(props) {
|
|
var _this;
|
|
|
|
Object(classCallCheck["a" /* default */])(this, InputNumber);
|
|
|
|
_this = _super.call(this, props);
|
|
|
|
_this.onKeyDown = function (e) {
|
|
var _this$props = _this.props,
|
|
onKeyDown = _this$props.onKeyDown,
|
|
onPressEnter = _this$props.onPressEnter;
|
|
|
|
if (e.keyCode === KeyCode["a" /* default */].UP) {
|
|
var ratio = _this.getRatio(e);
|
|
|
|
_this.up(e, ratio, null);
|
|
|
|
_this.stop();
|
|
} else if (e.keyCode === KeyCode["a" /* default */].DOWN) {
|
|
var _ratio = _this.getRatio(e);
|
|
|
|
_this.down(e, _ratio, null);
|
|
|
|
_this.stop();
|
|
} else if (e.keyCode === KeyCode["a" /* default */].ENTER && onPressEnter) {
|
|
onPressEnter(e);
|
|
} // Trigger user key down
|
|
|
|
|
|
_this.recordCursorPosition();
|
|
|
|
_this.lastKeyCode = e.keyCode;
|
|
|
|
if (onKeyDown) {
|
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
args[_key - 1] = arguments[_key];
|
|
}
|
|
|
|
onKeyDown.apply(void 0, [e].concat(args));
|
|
}
|
|
};
|
|
|
|
_this.onKeyUp = function (e) {
|
|
var onKeyUp = _this.props.onKeyUp;
|
|
|
|
_this.stop();
|
|
|
|
_this.recordCursorPosition(); // Trigger user key up
|
|
|
|
|
|
if (onKeyUp) {
|
|
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
args[_key2 - 1] = arguments[_key2];
|
|
}
|
|
|
|
onKeyUp.apply(void 0, [e].concat(args));
|
|
}
|
|
};
|
|
|
|
_this.onChange = function (e) {
|
|
var onChange = _this.props.onChange;
|
|
|
|
if (_this.state.focused) {
|
|
_this.inputting = true;
|
|
}
|
|
|
|
_this.rawInput = _this.props.parser(_this.getValueFromEvent(e));
|
|
|
|
_this.setState({
|
|
inputValue: _this.rawInput
|
|
});
|
|
|
|
onChange(_this.toNumber(_this.rawInput)); // valid number or invalid string
|
|
};
|
|
|
|
_this.onMouseUp = function () {
|
|
var onMouseUp = _this.props.onMouseUp;
|
|
|
|
_this.recordCursorPosition();
|
|
|
|
if (onMouseUp) {
|
|
onMouseUp.apply(void 0, arguments);
|
|
}
|
|
};
|
|
|
|
_this.onFocus = function () {
|
|
var _this$props2;
|
|
|
|
_this.setState({
|
|
focused: true
|
|
});
|
|
|
|
(_this$props2 = _this.props).onFocus.apply(_this$props2, arguments);
|
|
};
|
|
|
|
_this.onBlur = function () {
|
|
var onBlur = _this.props.onBlur;
|
|
_this.inputting = false;
|
|
|
|
_this.setState({
|
|
focused: false
|
|
});
|
|
|
|
var value = _this.getCurrentValidValue(_this.state.inputValue);
|
|
|
|
var newValue = _this.setValue(value, noop);
|
|
|
|
if (onBlur) {
|
|
var originValue = _this.input.value;
|
|
|
|
var displayValue = _this.getInputDisplayValue({
|
|
focus: false,
|
|
value: newValue
|
|
});
|
|
|
|
_this.input.value = displayValue ? Number(displayValue) : displayValue;
|
|
onBlur.apply(void 0, arguments);
|
|
_this.input.value = originValue;
|
|
}
|
|
};
|
|
|
|
_this.getRatio = function (e) {
|
|
var ratio = 1;
|
|
|
|
if (e.metaKey || e.ctrlKey) {
|
|
ratio = 0.1;
|
|
} else if (e.shiftKey) {
|
|
ratio = 10;
|
|
}
|
|
|
|
return ratio;
|
|
};
|
|
|
|
_this.getFullNum = function (num) {
|
|
if (isNaN(num)) {
|
|
return num;
|
|
}
|
|
|
|
if (!/e/i.test(String(num))) {
|
|
return num;
|
|
}
|
|
|
|
return Number(num).toFixed(18).replace(/\.?0+$/, '');
|
|
};
|
|
|
|
_this.getPrecision = function (value) {
|
|
if (isValidProps(_this.props.precision)) {
|
|
return _this.props.precision;
|
|
}
|
|
|
|
var valueString = String(value);
|
|
|
|
if (valueString.indexOf('e-') >= 0) {
|
|
return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);
|
|
}
|
|
|
|
var precision = 0;
|
|
|
|
if (valueString.indexOf('.') >= 0) {
|
|
precision = valueString.length - valueString.indexOf('.') - 1;
|
|
}
|
|
|
|
return precision;
|
|
};
|
|
|
|
_this.getInputDisplayValue = function (state) {
|
|
var _ref = state || _this.state,
|
|
focused = _ref.focused,
|
|
inputValue = _ref.inputValue,
|
|
value = _ref.value;
|
|
|
|
var inputDisplayValue;
|
|
|
|
if (focused) {
|
|
inputDisplayValue = inputValue;
|
|
} else {
|
|
inputDisplayValue = _this.toPrecisionAsStep(value);
|
|
}
|
|
|
|
if (inputDisplayValue === undefined || inputDisplayValue === null) {
|
|
inputDisplayValue = '';
|
|
}
|
|
|
|
var inputDisplayValueFormat = _this.formatWrapper(inputDisplayValue);
|
|
|
|
if (isValidProps(_this.props.decimalSeparator)) {
|
|
inputDisplayValueFormat = inputDisplayValueFormat.toString().replace('.', _this.props.decimalSeparator);
|
|
}
|
|
|
|
return inputDisplayValueFormat;
|
|
};
|
|
|
|
_this.recordCursorPosition = function () {
|
|
// Record position
|
|
try {
|
|
_this.cursorStart = _this.input.selectionStart;
|
|
_this.cursorEnd = _this.input.selectionEnd;
|
|
_this.currentValue = _this.input.value;
|
|
_this.cursorBefore = _this.input.value.substring(0, _this.cursorStart);
|
|
_this.cursorAfter = _this.input.value.substring(_this.cursorEnd);
|
|
} catch (e) {// Fix error in Chrome:
|
|
// Failed to read the 'selectionStart' property from 'HTMLInputElement'
|
|
// http://stackoverflow.com/q/21177489/3040605
|
|
}
|
|
};
|
|
|
|
_this.restoreByAfter = function (str) {
|
|
if (str === undefined) return false;
|
|
var fullStr = _this.input.value;
|
|
var index = fullStr.lastIndexOf(str);
|
|
if (index === -1) return false;
|
|
var prevCursorPos = _this.cursorBefore.length;
|
|
|
|
if (_this.lastKeyCode === KeyCode["a" /* default */].DELETE && _this.cursorBefore.charAt(prevCursorPos - 1) === str[0]) {
|
|
_this.fixCaret(prevCursorPos, prevCursorPos);
|
|
|
|
return true;
|
|
}
|
|
|
|
if (index + str.length === fullStr.length) {
|
|
_this.fixCaret(index, index);
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
};
|
|
|
|
_this.partRestoreByAfter = function (str) {
|
|
if (str === undefined) return false; // For loop from full str to the str with last char to map. e.g. 123
|
|
// -> 123
|
|
// -> 23
|
|
// -> 3
|
|
|
|
return Array.prototype.some.call(str, function (_, start) {
|
|
var partStr = str.substring(start);
|
|
return _this.restoreByAfter(partStr);
|
|
});
|
|
}; // '1.' '1x' 'xx' '' => are not complete numbers
|
|
|
|
|
|
_this.isNotCompleteNumber = function (num) {
|
|
return isNaN(num) || num === '' || num === null || num && num.toString().indexOf('.') === num.toString().length - 1;
|
|
};
|
|
|
|
_this.stop = function () {
|
|
if (_this.autoStepTimer) {
|
|
clearTimeout(_this.autoStepTimer);
|
|
}
|
|
};
|
|
|
|
_this.down = function (e, ratio, recursive) {
|
|
_this.pressingUpOrDown = true;
|
|
|
|
_this.step('down', e, ratio, recursive);
|
|
};
|
|
|
|
_this.up = function (e, ratio, recursive) {
|
|
_this.pressingUpOrDown = true;
|
|
|
|
_this.step('up', e, ratio, recursive);
|
|
};
|
|
|
|
_this.saveInput = function (node) {
|
|
_this.input = node;
|
|
};
|
|
|
|
var value = props.value;
|
|
|
|
if (value === undefined) {
|
|
value = props.defaultValue;
|
|
}
|
|
|
|
_this.state = {
|
|
focused: props.autoFocus
|
|
};
|
|
|
|
var validValue = _this.getValidValue(_this.toNumber(value));
|
|
|
|
_this.state = _objectSpread(_objectSpread({}, _this.state), {}, {
|
|
inputValue: _this.toPrecisionAsStep(validValue),
|
|
value: validValue
|
|
});
|
|
return _this;
|
|
}
|
|
|
|
Object(createClass["a" /* default */])(InputNumber, [{
|
|
key: "componentDidMount",
|
|
value: function componentDidMount() {
|
|
this.componentDidUpdate(null);
|
|
}
|
|
}, {
|
|
key: "componentDidUpdate",
|
|
value: function componentDidUpdate(prevProps) {
|
|
var _this$props3 = this.props,
|
|
value = _this$props3.value,
|
|
onChange = _this$props3.onChange,
|
|
max = _this$props3.max,
|
|
min = _this$props3.min;
|
|
var focused = this.state.focused; // Don't trigger in componentDidMount
|
|
|
|
if (prevProps) {
|
|
if (!isEqual(prevProps.value, value) || !isEqual(prevProps.max, max) || !isEqual(prevProps.min, min)) {
|
|
var validValue = focused ? value : this.getValidValue(value);
|
|
var nextInputValue;
|
|
|
|
if (this.pressingUpOrDown) {
|
|
nextInputValue = validValue;
|
|
} else if (this.inputting) {
|
|
nextInputValue = this.rawInput;
|
|
} else {
|
|
nextInputValue = this.toPrecisionAsStep(validValue);
|
|
}
|
|
|
|
this.setState({
|
|
// eslint-disable-line
|
|
value: validValue,
|
|
inputValue: nextInputValue
|
|
});
|
|
} // Trigger onChange when max or min change
|
|
// https://github.com/ant-design/ant-design/issues/11574
|
|
|
|
|
|
var nextValue = 'value' in this.props ? value : this.state.value; // ref: null < 20 === true
|
|
// https://github.com/ant-design/ant-design/issues/14277
|
|
|
|
if ('max' in this.props && prevProps.max !== max && typeof nextValue === 'number' && nextValue > max && onChange) {
|
|
onChange(max);
|
|
}
|
|
|
|
if ('min' in this.props && prevProps.min !== min && typeof nextValue === 'number' && nextValue < min && onChange) {
|
|
onChange(min);
|
|
}
|
|
} // Restore cursor
|
|
|
|
|
|
try {
|
|
// Firefox set the input cursor after it get focused.
|
|
// This caused that if an input didn't init with the selection,
|
|
// set will cause cursor not correct when first focus.
|
|
// Safari will focus input if set selection. We need skip this.
|
|
if (this.cursorStart !== undefined && this.state.focused) {
|
|
// In most cases, the string after cursor is stable.
|
|
// We can move the cursor before it
|
|
if ( // If not match full str, try to match part of str
|
|
!this.partRestoreByAfter(this.cursorAfter) && this.state.value !== this.props.value) {
|
|
// If not match any of then, let's just keep the position
|
|
// TODO: Logic should not reach here, need check if happens
|
|
var pos = this.cursorStart + 1; // If not have last string, just position to the end
|
|
|
|
if (!this.cursorAfter) {
|
|
pos = this.input.value.length;
|
|
} else if (this.lastKeyCode === KeyCode["a" /* default */].BACKSPACE) {
|
|
pos = this.cursorStart - 1;
|
|
} else if (this.lastKeyCode === KeyCode["a" /* default */].DELETE) {
|
|
pos = this.cursorStart;
|
|
}
|
|
|
|
this.fixCaret(pos, pos);
|
|
} else if (this.currentValue === this.input.value) {
|
|
// Handle some special key code
|
|
switch (this.lastKeyCode) {
|
|
case KeyCode["a" /* default */].BACKSPACE:
|
|
this.fixCaret(this.cursorStart - 1, this.cursorStart - 1);
|
|
break;
|
|
|
|
case KeyCode["a" /* default */].DELETE:
|
|
this.fixCaret(this.cursorStart + 1, this.cursorStart + 1);
|
|
break;
|
|
|
|
default: // Do nothing
|
|
|
|
}
|
|
}
|
|
}
|
|
} catch (e) {// Do nothing
|
|
} // Reset last key
|
|
|
|
|
|
this.lastKeyCode = null; // pressingUpOrDown is true means that someone just click up or down button
|
|
|
|
if (!this.pressingUpOrDown) {
|
|
return;
|
|
}
|
|
|
|
if (this.props.focusOnUpDown && this.state.focused) {
|
|
if (document.activeElement !== this.input) {
|
|
this.focus();
|
|
}
|
|
}
|
|
}
|
|
}, {
|
|
key: "componentWillUnmount",
|
|
value: function componentWillUnmount() {
|
|
this.stop();
|
|
}
|
|
}, {
|
|
key: "getCurrentValidValue",
|
|
value: function getCurrentValidValue(value) {
|
|
var val = value;
|
|
|
|
if (val === '') {
|
|
val = '';
|
|
} else if (!this.isNotCompleteNumber(parseFloat(val))) {
|
|
val = this.getValidValue(val);
|
|
} else {
|
|
val = this.state.value;
|
|
}
|
|
|
|
return this.toNumber(val);
|
|
}
|
|
}, {
|
|
key: "getValueFromEvent",
|
|
value: function getValueFromEvent(e) {
|
|
// optimize for chinese input expierence
|
|
// https://github.com/ant-design/ant-design/issues/8196
|
|
var value = e.target.value.trim().replace(/。/g, '.');
|
|
|
|
if (isValidProps(this.props.decimalSeparator)) {
|
|
value = value.replace(this.props.decimalSeparator, '.');
|
|
}
|
|
|
|
return value;
|
|
}
|
|
}, {
|
|
key: "getValidValue",
|
|
value: function getValidValue(value) {
|
|
var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.min;
|
|
var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.max;
|
|
var val = parseFloat(value); // https://github.com/ant-design/ant-design/issues/7358
|
|
|
|
if (isNaN(val)) {
|
|
return value;
|
|
}
|
|
|
|
if (val < min) {
|
|
val = min;
|
|
}
|
|
|
|
if (val > max) {
|
|
val = max;
|
|
}
|
|
|
|
return val;
|
|
}
|
|
}, {
|
|
key: "setValue",
|
|
value: function setValue(v, callback) {
|
|
// trigger onChange
|
|
var precision = this.props.precision;
|
|
var newValue = this.isNotCompleteNumber(parseFloat(v)) ? null : parseFloat(v);
|
|
var _this$state$value = this.state.value,
|
|
value = _this$state$value === void 0 ? null : _this$state$value;
|
|
var _this$state$inputValu = this.state.inputValue,
|
|
inputValue = _this$state$inputValu === void 0 ? null : _this$state$inputValu; // https://github.com/ant-design/ant-design/issues/7363
|
|
// https://github.com/ant-design/ant-design/issues/16622
|
|
|
|
var newValueInString = typeof newValue === 'number' ? newValue.toFixed(precision) : "".concat(newValue);
|
|
var changed = newValue !== value || newValueInString !== "".concat(inputValue);
|
|
|
|
if (!('value' in this.props)) {
|
|
this.setState({
|
|
value: newValue,
|
|
inputValue: this.toPrecisionAsStep(v)
|
|
}, callback);
|
|
} else {
|
|
// always set input value same as value
|
|
inputValue = this.toPrecisionAsStep(this.state.value);
|
|
this.setState({
|
|
inputValue: inputValue
|
|
}, callback);
|
|
}
|
|
|
|
if (changed) {
|
|
this.props.onChange(newValue);
|
|
}
|
|
|
|
return newValue;
|
|
} // step={1.0} value={1.51}
|
|
// press +
|
|
// then value should be 2.51, rather than 2.5
|
|
// if this.props.precision is undefined
|
|
// https://github.com/react-component/input-number/issues/39
|
|
|
|
}, {
|
|
key: "getMaxPrecision",
|
|
value: function getMaxPrecision(currentValue) {
|
|
var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
var _this$props4 = this.props,
|
|
precision = _this$props4.precision,
|
|
step = _this$props4.step;
|
|
|
|
if (isValidProps(precision)) {
|
|
return precision;
|
|
}
|
|
|
|
var ratioPrecision = this.getPrecision(ratio);
|
|
var stepPrecision = this.getPrecision(step);
|
|
var currentValuePrecision = this.getPrecision(currentValue);
|
|
|
|
if (!currentValue) {
|
|
return ratioPrecision + stepPrecision;
|
|
}
|
|
|
|
return Math.max(currentValuePrecision, ratioPrecision + stepPrecision);
|
|
}
|
|
}, {
|
|
key: "getPrecisionFactor",
|
|
value: function getPrecisionFactor(currentValue) {
|
|
var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
var precision = this.getMaxPrecision(currentValue, ratio);
|
|
return Math.pow(10, precision);
|
|
}
|
|
}, {
|
|
key: "focus",
|
|
value: function focus() {
|
|
this.input.focus();
|
|
this.recordCursorPosition();
|
|
}
|
|
}, {
|
|
key: "blur",
|
|
value: function blur() {
|
|
this.input.blur();
|
|
}
|
|
}, {
|
|
key: "select",
|
|
value: function select() {
|
|
this.input.select();
|
|
}
|
|
}, {
|
|
key: "formatWrapper",
|
|
value: function formatWrapper(num) {
|
|
// http://2ality.com/2012/03/signedzero.html
|
|
// https://github.com/ant-design/ant-design/issues/9439
|
|
if (this.props.formatter) {
|
|
return this.props.formatter(num);
|
|
}
|
|
|
|
return num;
|
|
}
|
|
}, {
|
|
key: "toPrecisionAsStep",
|
|
value: function toPrecisionAsStep(num) {
|
|
if (this.isNotCompleteNumber(num) || num === '') {
|
|
return num;
|
|
}
|
|
|
|
var precision = Math.abs(this.getMaxPrecision(num));
|
|
|
|
if (!isNaN(precision)) {
|
|
return Number(num).toFixed(precision);
|
|
}
|
|
|
|
return num.toString();
|
|
}
|
|
}, {
|
|
key: "toNumber",
|
|
value: function toNumber(num) {
|
|
var precision = this.props.precision;
|
|
var focused = this.state.focused; // num.length > 16 => This is to prevent input of large numbers
|
|
|
|
var numberIsTooLarge = num && num.length > 16 && focused;
|
|
|
|
if (this.isNotCompleteNumber(num) || numberIsTooLarge) {
|
|
return num;
|
|
}
|
|
|
|
if (isValidProps(precision)) {
|
|
return Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision);
|
|
}
|
|
|
|
return Number(num);
|
|
}
|
|
}, {
|
|
key: "upStep",
|
|
value: function upStep(val, rat) {
|
|
var step = this.props.step;
|
|
var precisionFactor = this.getPrecisionFactor(val, rat);
|
|
var precision = Math.abs(this.getMaxPrecision(val, rat));
|
|
var result = ((precisionFactor * val + precisionFactor * step * rat) / precisionFactor).toFixed(precision);
|
|
return this.toNumber(result);
|
|
}
|
|
}, {
|
|
key: "downStep",
|
|
value: function downStep(val, rat) {
|
|
var step = this.props.step;
|
|
var precisionFactor = this.getPrecisionFactor(val, rat);
|
|
var precision = Math.abs(this.getMaxPrecision(val, rat));
|
|
var result = ((precisionFactor * val - precisionFactor * step * rat) / precisionFactor).toFixed(precision);
|
|
return this.toNumber(result);
|
|
}
|
|
}, {
|
|
key: "step",
|
|
value: function step(type, e) {
|
|
var _this2 = this;
|
|
|
|
var ratio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
var recursive = arguments.length > 3 ? arguments[3] : undefined;
|
|
this.stop();
|
|
|
|
if (e) {
|
|
e.persist();
|
|
e.preventDefault();
|
|
}
|
|
|
|
var props = this.props;
|
|
|
|
if (props.disabled) {
|
|
return;
|
|
}
|
|
|
|
var value = this.getCurrentValidValue(this.state.inputValue) || 0;
|
|
|
|
if (this.isNotCompleteNumber(value)) {
|
|
return;
|
|
}
|
|
|
|
var val = this["".concat(type, "Step")](value, ratio);
|
|
var outOfRange = val > props.max || val < props.min;
|
|
|
|
if (val > props.max) {
|
|
val = props.max;
|
|
} else if (val < props.min) {
|
|
val = props.min;
|
|
}
|
|
|
|
this.setValue(val, null);
|
|
this.setState({
|
|
focused: true
|
|
}, function () {
|
|
_this2.pressingUpOrDown = false;
|
|
});
|
|
|
|
if (outOfRange) {
|
|
return;
|
|
}
|
|
|
|
this.autoStepTimer = setTimeout(function () {
|
|
_this2[type](e, ratio, true);
|
|
}, recursive ? SPEED : DELAY);
|
|
}
|
|
}, {
|
|
key: "fixCaret",
|
|
value: function fixCaret(start, end) {
|
|
if (start === undefined || end === undefined || !this.input || !this.input.value) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
var currentStart = this.input.selectionStart;
|
|
var currentEnd = this.input.selectionEnd;
|
|
|
|
if (start !== currentStart || end !== currentEnd) {
|
|
this.input.setSelectionRange(start, end);
|
|
}
|
|
} catch (e) {// Fix error in Chrome:
|
|
// Failed to read the 'selectionStart' property from 'HTMLInputElement'
|
|
// http://stackoverflow.com/q/21177489/3040605
|
|
}
|
|
}
|
|
}, {
|
|
key: "render",
|
|
value: function render() {
|
|
var _classNames;
|
|
|
|
var _this$props5 = this.props,
|
|
prefixCls = _this$props5.prefixCls,
|
|
disabled = _this$props5.disabled,
|
|
readOnly = _this$props5.readOnly,
|
|
useTouch = _this$props5.useTouch,
|
|
autoComplete = _this$props5.autoComplete,
|
|
upHandler = _this$props5.upHandler,
|
|
downHandler = _this$props5.downHandler,
|
|
className = _this$props5.className,
|
|
max = _this$props5.max,
|
|
min = _this$props5.min,
|
|
style = _this$props5.style,
|
|
title = _this$props5.title,
|
|
onMouseEnter = _this$props5.onMouseEnter,
|
|
onMouseLeave = _this$props5.onMouseLeave,
|
|
onMouseOver = _this$props5.onMouseOver,
|
|
onMouseOut = _this$props5.onMouseOut,
|
|
required = _this$props5.required,
|
|
onClick = _this$props5.onClick,
|
|
tabIndex = _this$props5.tabIndex,
|
|
type = _this$props5.type,
|
|
placeholder = _this$props5.placeholder,
|
|
id = _this$props5.id,
|
|
inputMode = _this$props5.inputMode,
|
|
pattern = _this$props5.pattern,
|
|
step = _this$props5.step,
|
|
maxLength = _this$props5.maxLength,
|
|
autoFocus = _this$props5.autoFocus,
|
|
name = _this$props5.name,
|
|
onPaste = _this$props5.onPaste,
|
|
onInput = _this$props5.onInput,
|
|
rest = Object(objectWithoutProperties["a" /* default */])(_this$props5, ["prefixCls", "disabled", "readOnly", "useTouch", "autoComplete", "upHandler", "downHandler", "className", "max", "min", "style", "title", "onMouseEnter", "onMouseLeave", "onMouseOver", "onMouseOut", "required", "onClick", "tabIndex", "type", "placeholder", "id", "inputMode", "pattern", "step", "maxLength", "autoFocus", "name", "onPaste", "onInput"]);
|
|
|
|
var _this$state = this.state,
|
|
value = _this$state.value,
|
|
focused = _this$state.focused;
|
|
var classes = classnames_default()(prefixCls, (_classNames = {}, Object(defineProperty["a" /* default */])(_classNames, className, !!className), Object(defineProperty["a" /* default */])(_classNames, "".concat(prefixCls, "-disabled"), disabled), Object(defineProperty["a" /* default */])(_classNames, "".concat(prefixCls, "-focused"), focused), _classNames));
|
|
var dataOrAriaAttributeProps = {};
|
|
Object.keys(rest).forEach(function (key) {
|
|
if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {
|
|
dataOrAriaAttributeProps[key] = rest[key];
|
|
}
|
|
});
|
|
var editable = !readOnly && !disabled; // focus state, show input value
|
|
// unfocus state, show valid value
|
|
|
|
var inputDisplayValue = this.getInputDisplayValue(null);
|
|
var upDisabled = (value || value === 0) && (isNaN(value) || Number(value) >= max);
|
|
var downDisabled = (value || value === 0) && (isNaN(value) || Number(value) <= min);
|
|
var isUpDisabled = upDisabled || disabled || readOnly;
|
|
var isDownDisabled = downDisabled || disabled || readOnly;
|
|
var upClassName = classnames_default()("".concat(prefixCls, "-handler"), "".concat(prefixCls, "-handler-up"), Object(defineProperty["a" /* default */])({}, "".concat(prefixCls, "-handler-up-disabled"), isUpDisabled));
|
|
var downClassName = classnames_default()("".concat(prefixCls, "-handler"), "".concat(prefixCls, "-handler-down"), Object(defineProperty["a" /* default */])({}, "".concat(prefixCls, "-handler-down-disabled"), isDownDisabled));
|
|
var upEvents = useTouch ? {
|
|
onTouchStart: isUpDisabled ? noop : this.up,
|
|
onTouchEnd: this.stop
|
|
} : {
|
|
onMouseDown: isUpDisabled ? noop : this.up,
|
|
onMouseUp: this.stop,
|
|
onMouseLeave: this.stop
|
|
};
|
|
var downEvents = useTouch ? {
|
|
onTouchStart: isDownDisabled ? noop : this.down,
|
|
onTouchEnd: this.stop
|
|
} : {
|
|
onMouseDown: isDownDisabled ? noop : this.down,
|
|
onMouseUp: this.stop,
|
|
onMouseLeave: this.stop
|
|
};
|
|
return external_window_React_default.a.createElement("div", {
|
|
className: classes,
|
|
style: style,
|
|
title: title,
|
|
onMouseEnter: onMouseEnter,
|
|
onMouseLeave: onMouseLeave,
|
|
onMouseOver: onMouseOver,
|
|
onMouseOut: onMouseOut,
|
|
onFocus: function onFocus() {
|
|
return null;
|
|
},
|
|
onBlur: function onBlur() {
|
|
return null;
|
|
}
|
|
}, external_window_React_default.a.createElement("div", {
|
|
className: "".concat(prefixCls, "-handler-wrap")
|
|
}, external_window_React_default.a.createElement("span", Object.assign({
|
|
unselectable: "on"
|
|
}, upEvents, {
|
|
role: "button",
|
|
"aria-label": "Increase Value",
|
|
"aria-disabled": isUpDisabled,
|
|
className: upClassName
|
|
}), upHandler || external_window_React_default.a.createElement("span", {
|
|
unselectable: "on",
|
|
className: "".concat(prefixCls, "-handler-up-inner"),
|
|
onClick: preventDefault
|
|
})), external_window_React_default.a.createElement("span", Object.assign({
|
|
unselectable: "on"
|
|
}, downEvents, {
|
|
role: "button",
|
|
"aria-label": "Decrease Value",
|
|
"aria-disabled": isDownDisabled,
|
|
className: downClassName
|
|
}), downHandler || external_window_React_default.a.createElement("span", {
|
|
unselectable: "on",
|
|
className: "".concat(prefixCls, "-handler-down-inner"),
|
|
onClick: preventDefault
|
|
}))), external_window_React_default.a.createElement("div", {
|
|
className: "".concat(prefixCls, "-input-wrap")
|
|
}, external_window_React_default.a.createElement("input", Object.assign({
|
|
role: "spinbutton",
|
|
"aria-valuemin": min,
|
|
"aria-valuemax": max,
|
|
"aria-valuenow": value,
|
|
required: required,
|
|
type: type,
|
|
placeholder: placeholder,
|
|
onPaste: onPaste,
|
|
onClick: onClick,
|
|
onMouseUp: this.onMouseUp,
|
|
className: "".concat(prefixCls, "-input"),
|
|
tabIndex: tabIndex,
|
|
autoComplete: autoComplete,
|
|
onFocus: this.onFocus,
|
|
onBlur: this.onBlur,
|
|
onKeyDown: editable ? this.onKeyDown : noop,
|
|
onKeyUp: editable ? this.onKeyUp : noop,
|
|
autoFocus: autoFocus,
|
|
maxLength: maxLength,
|
|
readOnly: readOnly,
|
|
disabled: disabled,
|
|
max: max,
|
|
min: min,
|
|
step: step,
|
|
name: name,
|
|
title: title,
|
|
id: id,
|
|
onChange: this.onChange,
|
|
ref: this.saveInput,
|
|
value: this.getFullNum(inputDisplayValue),
|
|
pattern: pattern,
|
|
inputMode: inputMode,
|
|
onInput: onInput
|
|
}, dataOrAriaAttributeProps))));
|
|
}
|
|
}]);
|
|
|
|
return InputNumber;
|
|
}(external_window_React_default.a.Component);
|
|
|
|
InputNumber_InputNumber.defaultProps = {
|
|
focusOnUpDown: true,
|
|
useTouch: false,
|
|
prefixCls: 'rc-input-number',
|
|
max: MAX_SAFE_INTEGER,
|
|
min: -MAX_SAFE_INTEGER,
|
|
step: 1,
|
|
style: {},
|
|
onChange: noop,
|
|
onKeyDown: noop,
|
|
onPressEnter: noop,
|
|
onFocus: noop,
|
|
onBlur: noop,
|
|
parser: defaultParser,
|
|
required: false,
|
|
autoComplete: 'off'
|
|
};
|
|
/* harmony default export */ var es_InputNumber = (InputNumber_InputNumber);
|
|
// CONCATENATED MODULE: ./node_modules/rc-input-number/es/index.js
|
|
|
|
/* harmony default export */ var es = __webpack_exports__["a"] = (es_InputNumber);
|
|
|
|
/***/ }),
|
|
|
|
/***/ "ogmK":
|
|
/*!*********************************************************!*\
|
|
!*** ./node_modules/rc-picker/es/index.js + 42 modules ***!
|
|
\*********************************************************/
|
|
/*! exports provided: PickerPanel, RangePicker, default */
|
|
/*! exports used: RangePicker, default */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/createClass.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/createSuper.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/defineProperty.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/inherits.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@babel/runtime/helpers/esm/typeof.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/classnames/index.js (<- Module is not an ECMAScript module) */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/rc-trigger/es/index.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/rc-util/es/KeyCode.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/rc-util/es/hooks/useMemo.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/rc-util/es/hooks/useMergedState.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/rc-util/es/warning.js */
|
|
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/shallowequal/index.js (<- Module is not an ECMAScript module) */
|
|
/*! ModuleConcatenation bailout: Cannot concat with external "window.React" (<- Module is not an ECMAScript module) */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ es_RangePicker; });
|
|
|
|
// UNUSED EXPORTS: PickerPanel
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
|
|
var classCallCheck = __webpack_require__("1OyB");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
|
|
var createClass = __webpack_require__("vuIU");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
|
|
var inherits = __webpack_require__("Ji7U");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createSuper.js + 1 modules
|
|
var createSuper = __webpack_require__("LK+K");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
|
|
var defineProperty = __webpack_require__("rePB");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js
|
|
var objectSpread2 = __webpack_require__("VTBJ");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
|
|
var slicedToArray = __webpack_require__("ODXe");
|
|
|
|
// EXTERNAL MODULE: external "window.React"
|
|
var external_window_React_ = __webpack_require__("cDcd");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/classnames/index.js
|
|
var classnames = __webpack_require__("TSYQ");
|
|
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/rc-util/es/warning.js
|
|
var warning = __webpack_require__("Kwbf");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/rc-util/es/hooks/useMergedState.js
|
|
var useMergedState = __webpack_require__("6cGi");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
|
|
var esm_typeof = __webpack_require__("U8pU");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/rc-util/es/KeyCode.js
|
|
var KeyCode = __webpack_require__("4IlW");
|
|
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/PanelContext.js
|
|
|
|
var PanelContext = external_window_React_["createContext"]({});
|
|
/* harmony default export */ var es_PanelContext = (PanelContext);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/Header.js
|
|
|
|
|
|
var HIDDEN_STYLE = {
|
|
visibility: 'hidden'
|
|
};
|
|
|
|
function Header(_ref) {
|
|
var prefixCls = _ref.prefixCls,
|
|
_ref$prevIcon = _ref.prevIcon,
|
|
prevIcon = _ref$prevIcon === void 0 ? "\u2039" : _ref$prevIcon,
|
|
_ref$nextIcon = _ref.nextIcon,
|
|
nextIcon = _ref$nextIcon === void 0 ? "\u203A" : _ref$nextIcon,
|
|
_ref$superPrevIcon = _ref.superPrevIcon,
|
|
superPrevIcon = _ref$superPrevIcon === void 0 ? "\xAB" : _ref$superPrevIcon,
|
|
_ref$superNextIcon = _ref.superNextIcon,
|
|
superNextIcon = _ref$superNextIcon === void 0 ? "\xBB" : _ref$superNextIcon,
|
|
onSuperPrev = _ref.onSuperPrev,
|
|
onSuperNext = _ref.onSuperNext,
|
|
onPrev = _ref.onPrev,
|
|
onNext = _ref.onNext,
|
|
children = _ref.children;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_PanelContext),
|
|
hideNextBtn = _React$useContext.hideNextBtn,
|
|
hidePrevBtn = _React$useContext.hidePrevBtn;
|
|
|
|
return external_window_React_["createElement"]("div", {
|
|
className: prefixCls
|
|
}, onSuperPrev && external_window_React_["createElement"]("button", {
|
|
type: "button",
|
|
onClick: onSuperPrev,
|
|
tabIndex: -1,
|
|
className: "".concat(prefixCls, "-super-prev-btn"),
|
|
style: hidePrevBtn ? HIDDEN_STYLE : {}
|
|
}, superPrevIcon), onPrev && external_window_React_["createElement"]("button", {
|
|
type: "button",
|
|
onClick: onPrev,
|
|
tabIndex: -1,
|
|
className: "".concat(prefixCls, "-prev-btn"),
|
|
style: hidePrevBtn ? HIDDEN_STYLE : {}
|
|
}, prevIcon), external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-view")
|
|
}, children), onNext && external_window_React_["createElement"]("button", {
|
|
type: "button",
|
|
onClick: onNext,
|
|
tabIndex: -1,
|
|
className: "".concat(prefixCls, "-next-btn"),
|
|
style: hideNextBtn ? HIDDEN_STYLE : {}
|
|
}, nextIcon), onSuperNext && external_window_React_["createElement"]("button", {
|
|
type: "button",
|
|
onClick: onSuperNext,
|
|
tabIndex: -1,
|
|
className: "".concat(prefixCls, "-super-next-btn"),
|
|
style: hideNextBtn ? HIDDEN_STYLE : {}
|
|
}, superNextIcon));
|
|
}
|
|
|
|
/* harmony default export */ var panels_Header = (Header);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/TimePanel/TimeHeader.js
|
|
|
|
|
|
|
|
|
|
function TimeHeader(props) {
|
|
var _React$useContext = external_window_React_["useContext"](es_PanelContext),
|
|
hideHeader = _React$useContext.hideHeader;
|
|
|
|
if (hideHeader) {
|
|
return null;
|
|
}
|
|
|
|
var prefixCls = props.prefixCls,
|
|
generateConfig = props.generateConfig,
|
|
locale = props.locale,
|
|
value = props.value,
|
|
format = props.format;
|
|
var headerPrefixCls = "".concat(prefixCls, "-header");
|
|
return external_window_React_["createElement"](panels_Header, {
|
|
prefixCls: headerPrefixCls
|
|
}, value ? generateConfig.locale.format(locale.locale, value, format) : "\xA0");
|
|
}
|
|
|
|
/* harmony default export */ var TimePanel_TimeHeader = (TimeHeader);
|
|
// EXTERNAL MODULE: ./node_modules/rc-util/es/hooks/useMemo.js
|
|
var useMemo = __webpack_require__("YrtM");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
|
|
var toConsumableArray = __webpack_require__("KQm4");
|
|
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/utils/uiUtil.js
|
|
|
|
|
|
var scrollIds = new Map();
|
|
/* eslint-disable no-param-reassign */
|
|
|
|
function scrollTo(element, to, duration) {
|
|
if (scrollIds.get(element)) {
|
|
cancelAnimationFrame(scrollIds.get(element));
|
|
} // jump to target if duration zero
|
|
|
|
|
|
if (duration <= 0) {
|
|
scrollIds.set(element, requestAnimationFrame(function () {
|
|
element.scrollTop = to;
|
|
}));
|
|
return;
|
|
}
|
|
|
|
var difference = to - element.scrollTop;
|
|
var perTick = difference / duration * 10;
|
|
scrollIds.set(element, requestAnimationFrame(function () {
|
|
element.scrollTop += perTick;
|
|
|
|
if (element.scrollTop !== to) {
|
|
scrollTo(element, to, duration - 10);
|
|
}
|
|
}));
|
|
}
|
|
function createKeyDownHandler(event, _ref) {
|
|
var onLeftRight = _ref.onLeftRight,
|
|
onCtrlLeftRight = _ref.onCtrlLeftRight,
|
|
onUpDown = _ref.onUpDown,
|
|
onPageUpDown = _ref.onPageUpDown,
|
|
onEnter = _ref.onEnter;
|
|
var which = event.which,
|
|
ctrlKey = event.ctrlKey,
|
|
metaKey = event.metaKey;
|
|
|
|
switch (which) {
|
|
case KeyCode["a" /* default */].LEFT:
|
|
if (ctrlKey || metaKey) {
|
|
if (onCtrlLeftRight) {
|
|
onCtrlLeftRight(-1);
|
|
return true;
|
|
}
|
|
} else if (onLeftRight) {
|
|
onLeftRight(-1);
|
|
return true;
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
|
|
break;
|
|
|
|
case KeyCode["a" /* default */].RIGHT:
|
|
if (ctrlKey || metaKey) {
|
|
if (onCtrlLeftRight) {
|
|
onCtrlLeftRight(1);
|
|
return true;
|
|
}
|
|
} else if (onLeftRight) {
|
|
onLeftRight(1);
|
|
return true;
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
|
|
break;
|
|
|
|
case KeyCode["a" /* default */].UP:
|
|
if (onUpDown) {
|
|
onUpDown(-1);
|
|
return true;
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
|
|
break;
|
|
|
|
case KeyCode["a" /* default */].DOWN:
|
|
if (onUpDown) {
|
|
onUpDown(1);
|
|
return true;
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
|
|
break;
|
|
|
|
case KeyCode["a" /* default */].PAGE_UP:
|
|
if (onPageUpDown) {
|
|
onPageUpDown(-1);
|
|
return true;
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
|
|
break;
|
|
|
|
case KeyCode["a" /* default */].PAGE_DOWN:
|
|
if (onPageUpDown) {
|
|
onPageUpDown(1);
|
|
return true;
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
|
|
break;
|
|
|
|
case KeyCode["a" /* default */].ENTER:
|
|
if (onEnter) {
|
|
onEnter();
|
|
return true;
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
|
|
break;
|
|
}
|
|
|
|
return false;
|
|
} // ===================== Format =====================
|
|
|
|
function getDefaultFormat(format, picker, showTime, use12Hours) {
|
|
var mergedFormat = format;
|
|
|
|
if (!mergedFormat) {
|
|
switch (picker) {
|
|
case 'time':
|
|
mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';
|
|
break;
|
|
|
|
case 'week':
|
|
mergedFormat = 'gggg-wo';
|
|
break;
|
|
|
|
case 'month':
|
|
mergedFormat = 'YYYY-MM';
|
|
break;
|
|
|
|
case 'quarter':
|
|
mergedFormat = 'YYYY-[Q]Q';
|
|
break;
|
|
|
|
case 'year':
|
|
mergedFormat = 'YYYY';
|
|
break;
|
|
|
|
default:
|
|
mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';
|
|
}
|
|
}
|
|
|
|
return mergedFormat;
|
|
}
|
|
function getInputSize(picker, format) {
|
|
var defaultSize = picker === 'time' ? 8 : 10;
|
|
return Math.max(defaultSize, format.length) + 2;
|
|
}
|
|
var uiUtil_globalClickFunc = null;
|
|
var clickCallbacks = new Set();
|
|
function addGlobalMouseDownEvent(callback) {
|
|
if (!uiUtil_globalClickFunc && typeof window !== 'undefined' && window.addEventListener) {
|
|
uiUtil_globalClickFunc = function globalClickFunc(e) {
|
|
// Clone a new list to avoid repeat trigger events
|
|
Object(toConsumableArray["a" /* default */])(clickCallbacks).forEach(function (queueFunc) {
|
|
queueFunc(e);
|
|
});
|
|
};
|
|
|
|
window.addEventListener('mousedown', uiUtil_globalClickFunc);
|
|
}
|
|
|
|
clickCallbacks.add(callback);
|
|
return function () {
|
|
clickCallbacks.delete(callback);
|
|
|
|
if (clickCallbacks.size === 0) {
|
|
window.removeEventListener('mousedown', uiUtil_globalClickFunc);
|
|
uiUtil_globalClickFunc = null;
|
|
}
|
|
};
|
|
} // ====================== Mode ======================
|
|
|
|
var getYearNextMode = function getYearNextMode(next) {
|
|
if (next === 'month' || next === 'date') {
|
|
return 'year';
|
|
}
|
|
|
|
return next;
|
|
};
|
|
|
|
var getMonthNextMode = function getMonthNextMode(next) {
|
|
if (next === 'date') {
|
|
return 'month';
|
|
}
|
|
|
|
return next;
|
|
};
|
|
|
|
var getQuarterNextMode = function getQuarterNextMode(next) {
|
|
if (next === 'month' || next === 'date') {
|
|
return 'quarter';
|
|
}
|
|
|
|
return next;
|
|
};
|
|
|
|
var getWeekNextMode = function getWeekNextMode(next) {
|
|
if (next === 'date') {
|
|
return 'week';
|
|
}
|
|
|
|
return next;
|
|
};
|
|
|
|
var PickerModeMap = {
|
|
year: getYearNextMode,
|
|
month: getMonthNextMode,
|
|
quarter: getQuarterNextMode,
|
|
week: getWeekNextMode,
|
|
time: null,
|
|
date: null
|
|
};
|
|
function elementsContains(elements, target) {
|
|
return elements.some(function (ele) {
|
|
return ele && ele.contains(target);
|
|
});
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/TimePanel/TimeUnitColumn.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function TimeUnitColumn(props) {
|
|
var prefixCls = props.prefixCls,
|
|
units = props.units,
|
|
onSelect = props.onSelect,
|
|
value = props.value,
|
|
active = props.active,
|
|
hideDisabledOptions = props.hideDisabledOptions;
|
|
var cellPrefixCls = "".concat(prefixCls, "-cell");
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_PanelContext),
|
|
open = _React$useContext.open;
|
|
|
|
var ulRef = external_window_React_["useRef"](null);
|
|
var liRefs = external_window_React_["useRef"](new Map()); // `useLayoutEffect` here to avoid blink by duration is 0
|
|
|
|
external_window_React_["useLayoutEffect"](function () {
|
|
var li = liRefs.current.get(value);
|
|
|
|
if (li && open !== false) {
|
|
scrollTo(ulRef.current, li.offsetTop, 120);
|
|
}
|
|
}, [value]);
|
|
external_window_React_["useLayoutEffect"](function () {
|
|
if (open) {
|
|
var li = liRefs.current.get(value);
|
|
|
|
if (li) {
|
|
scrollTo(ulRef.current, li.offsetTop, 0);
|
|
}
|
|
}
|
|
}, [open]);
|
|
return external_window_React_["createElement"]("ul", {
|
|
className: classnames_default()("".concat(prefixCls, "-column"), Object(defineProperty["a" /* default */])({}, "".concat(prefixCls, "-column-active"), active)),
|
|
ref: ulRef,
|
|
style: {
|
|
position: 'relative'
|
|
}
|
|
}, units.map(function (unit) {
|
|
var _classNames2;
|
|
|
|
if (hideDisabledOptions && unit.disabled) {
|
|
return null;
|
|
}
|
|
|
|
return external_window_React_["createElement"]("li", {
|
|
key: unit.value,
|
|
ref: function ref(element) {
|
|
liRefs.current.set(unit.value, element);
|
|
},
|
|
className: classnames_default()(cellPrefixCls, (_classNames2 = {}, Object(defineProperty["a" /* default */])(_classNames2, "".concat(cellPrefixCls, "-disabled"), unit.disabled), Object(defineProperty["a" /* default */])(_classNames2, "".concat(cellPrefixCls, "-selected"), value === unit.value), _classNames2)),
|
|
onClick: function onClick() {
|
|
if (unit.disabled) {
|
|
return;
|
|
}
|
|
|
|
onSelect(unit.value);
|
|
}
|
|
}, external_window_React_["createElement"]("div", {
|
|
className: "".concat(cellPrefixCls, "-inner")
|
|
}, unit.label));
|
|
}));
|
|
}
|
|
|
|
/* harmony default export */ var TimePanel_TimeUnitColumn = (TimeUnitColumn);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/utils/miscUtil.js
|
|
function leftPad(str, length) {
|
|
var fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
|
|
var current = String(str);
|
|
|
|
while (current.length < length) {
|
|
current = "".concat(fill).concat(str);
|
|
}
|
|
|
|
return current;
|
|
}
|
|
var tuple = function tuple() {
|
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
|
|
return args;
|
|
};
|
|
function toArray(val) {
|
|
if (val === null || val === undefined) {
|
|
return [];
|
|
}
|
|
|
|
return Array.isArray(val) ? val : [val];
|
|
}
|
|
function getDataOrAriaProps(props) {
|
|
var retProps = {};
|
|
Object.keys(props).forEach(function (key) {
|
|
if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role' || key === 'name') && key.substr(0, 7) !== 'data-__') {
|
|
retProps[key] = props[key];
|
|
}
|
|
});
|
|
return retProps;
|
|
}
|
|
function getValue(values, index) {
|
|
return values ? values[index] : null;
|
|
}
|
|
function updateValues(values, value, index) {
|
|
var newValues = [getValue(values, 0), getValue(values, 1)];
|
|
newValues[index] = typeof value === 'function' ? value(newValues[index]) : value;
|
|
|
|
if (!newValues[0] && !newValues[1]) {
|
|
return null;
|
|
}
|
|
|
|
return newValues;
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/utils/timeUtil.js
|
|
function timeUtil_setTime(generateConfig, date, hour, minute, second) {
|
|
var nextTime = generateConfig.setHour(date, hour);
|
|
nextTime = generateConfig.setMinute(nextTime, minute);
|
|
nextTime = generateConfig.setSecond(nextTime, second);
|
|
return nextTime;
|
|
}
|
|
function getLowerBoundTime(hour, minute, second, hourStep, minuteStep, secondStep) {
|
|
var lowerBoundHour = Math.floor(hour / hourStep) * hourStep;
|
|
|
|
if (lowerBoundHour < hour) {
|
|
return [lowerBoundHour, 60 - minuteStep, 60 - secondStep];
|
|
}
|
|
|
|
var lowerBoundMinute = Math.floor(minute / minuteStep) * minuteStep;
|
|
|
|
if (lowerBoundMinute < minute) {
|
|
return [lowerBoundHour, lowerBoundMinute, 60 - secondStep];
|
|
}
|
|
|
|
var lowerBoundSecond = Math.floor(second / secondStep) * secondStep;
|
|
return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/TimePanel/TimeBody.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function shouldUnitsUpdate(prevUnits, nextUnits) {
|
|
if (prevUnits.length !== nextUnits.length) return true; // if any unit's disabled status is different, the units should be re-evaluted
|
|
|
|
for (var i = 0; i < prevUnits.length; i += 1) {
|
|
if (prevUnits[i].disabled !== nextUnits[i].disabled) return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function generateUnits(start, end, step, disabledUnits) {
|
|
var units = [];
|
|
|
|
for (var i = start; i <= end; i += step) {
|
|
units.push({
|
|
label: leftPad(i, 2),
|
|
value: i,
|
|
disabled: (disabledUnits || []).includes(i)
|
|
});
|
|
}
|
|
|
|
return units;
|
|
}
|
|
|
|
function TimeBody(props) {
|
|
var generateConfig = props.generateConfig,
|
|
prefixCls = props.prefixCls,
|
|
operationRef = props.operationRef,
|
|
activeColumnIndex = props.activeColumnIndex,
|
|
value = props.value,
|
|
showHour = props.showHour,
|
|
showMinute = props.showMinute,
|
|
showSecond = props.showSecond,
|
|
use12Hours = props.use12Hours,
|
|
_props$hourStep = props.hourStep,
|
|
hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,
|
|
_props$minuteStep = props.minuteStep,
|
|
minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,
|
|
_props$secondStep = props.secondStep,
|
|
secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep,
|
|
disabledHours = props.disabledHours,
|
|
disabledMinutes = props.disabledMinutes,
|
|
disabledSeconds = props.disabledSeconds,
|
|
hideDisabledOptions = props.hideDisabledOptions,
|
|
onSelect = props.onSelect;
|
|
var columns = [];
|
|
var contentPrefixCls = "".concat(prefixCls, "-content");
|
|
var columnPrefixCls = "".concat(prefixCls, "-time-panel");
|
|
var isPM;
|
|
var hour = value ? generateConfig.getHour(value) : -1;
|
|
var minute = value ? generateConfig.getMinute(value) : -1;
|
|
var second = value ? generateConfig.getSecond(value) : -1;
|
|
|
|
var setTime = function setTime(isNewPM, newHour, newMinute, newSecond) {
|
|
var newDate = value || generateConfig.getNow();
|
|
var mergedHour = Math.max(0, newHour);
|
|
var mergedMinute = Math.max(0, newMinute);
|
|
var mergedSecond = Math.max(0, newSecond);
|
|
newDate = timeUtil_setTime(generateConfig, newDate, !use12Hours || !isNewPM ? mergedHour : mergedHour + 12, mergedMinute, mergedSecond);
|
|
return newDate;
|
|
}; // ========================= Unit =========================
|
|
|
|
|
|
var rawHours = generateUnits(0, 23, hourStep, disabledHours && disabledHours());
|
|
var memorizedRawHours = Object(useMemo["a" /* default */])(function () {
|
|
return rawHours;
|
|
}, rawHours, shouldUnitsUpdate); // Should additional logic to handle 12 hours
|
|
|
|
if (use12Hours) {
|
|
isPM = hour >= 12; // -1 means should display AM
|
|
|
|
hour %= 12;
|
|
}
|
|
|
|
var _React$useMemo = external_window_React_["useMemo"](function () {
|
|
if (!use12Hours) {
|
|
return [false, false];
|
|
}
|
|
|
|
var AMPMDisabled = [true, true];
|
|
memorizedRawHours.forEach(function (_ref) {
|
|
var disabled = _ref.disabled,
|
|
hourValue = _ref.value;
|
|
if (disabled) return;
|
|
|
|
if (hourValue >= 12) {
|
|
AMPMDisabled[1] = false;
|
|
} else {
|
|
AMPMDisabled[0] = false;
|
|
}
|
|
});
|
|
return AMPMDisabled;
|
|
}, [use12Hours, memorizedRawHours]),
|
|
_React$useMemo2 = Object(slicedToArray["a" /* default */])(_React$useMemo, 2),
|
|
AMDisabled = _React$useMemo2[0],
|
|
PMDisabled = _React$useMemo2[1];
|
|
|
|
var hours = external_window_React_["useMemo"](function () {
|
|
if (!use12Hours) return memorizedRawHours;
|
|
return memorizedRawHours.filter(isPM ? function (hourMeta) {
|
|
return hourMeta.value >= 12;
|
|
} : function (hourMeta) {
|
|
return hourMeta.value < 12;
|
|
}).map(function (hourMeta) {
|
|
var hourValue = hourMeta.value % 12;
|
|
var hourLabel = hourValue === 0 ? '12' : leftPad(hourValue, 2);
|
|
return Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, hourMeta), {}, {
|
|
label: hourLabel,
|
|
value: hourValue
|
|
});
|
|
});
|
|
}, [use12Hours, memorizedRawHours]);
|
|
var minutes = generateUnits(0, 59, minuteStep, disabledMinutes && disabledMinutes(hour));
|
|
var seconds = generateUnits(0, 59, secondStep, disabledSeconds && disabledSeconds(hour, minute)); // ====================== Operations ======================
|
|
|
|
operationRef.current = {
|
|
onUpDown: function onUpDown(diff) {
|
|
var column = columns[activeColumnIndex];
|
|
|
|
if (column) {
|
|
var valueIndex = column.units.findIndex(function (unit) {
|
|
return unit.value === column.value;
|
|
});
|
|
var unitLen = column.units.length;
|
|
|
|
for (var i = 1; i < unitLen; i += 1) {
|
|
var nextUnit = column.units[(valueIndex + diff * i + unitLen) % unitLen];
|
|
|
|
if (nextUnit.disabled !== true) {
|
|
column.onSelect(nextUnit.value);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}; // ======================== Render ========================
|
|
|
|
function addColumnNode(condition, node, columnValue, units, onColumnSelect) {
|
|
if (condition !== false) {
|
|
columns.push({
|
|
node: external_window_React_["cloneElement"](node, {
|
|
prefixCls: columnPrefixCls,
|
|
value: columnValue,
|
|
active: activeColumnIndex === columns.length,
|
|
onSelect: onColumnSelect,
|
|
units: units,
|
|
hideDisabledOptions: hideDisabledOptions
|
|
}),
|
|
onSelect: onColumnSelect,
|
|
value: columnValue,
|
|
units: units
|
|
});
|
|
}
|
|
} // Hour
|
|
|
|
|
|
addColumnNode(showHour, external_window_React_["createElement"](TimePanel_TimeUnitColumn, {
|
|
key: "hour"
|
|
}), hour, hours, function (num) {
|
|
onSelect(setTime(isPM, num, minute, second), 'mouse');
|
|
}); // Minute
|
|
|
|
addColumnNode(showMinute, external_window_React_["createElement"](TimePanel_TimeUnitColumn, {
|
|
key: "minute"
|
|
}), minute, minutes, function (num) {
|
|
onSelect(setTime(isPM, hour, num, second), 'mouse');
|
|
}); // Second
|
|
|
|
addColumnNode(showSecond, external_window_React_["createElement"](TimePanel_TimeUnitColumn, {
|
|
key: "second"
|
|
}), second, seconds, function (num) {
|
|
onSelect(setTime(isPM, hour, minute, num), 'mouse');
|
|
}); // 12 Hours
|
|
|
|
var PMIndex = -1;
|
|
|
|
if (typeof isPM === 'boolean') {
|
|
PMIndex = isPM ? 1 : 0;
|
|
}
|
|
|
|
addColumnNode(use12Hours === true, external_window_React_["createElement"](TimePanel_TimeUnitColumn, {
|
|
key: "12hours"
|
|
}), PMIndex, [{
|
|
label: 'AM',
|
|
value: 0,
|
|
disabled: AMDisabled
|
|
}, {
|
|
label: 'PM',
|
|
value: 1,
|
|
disabled: PMDisabled
|
|
}], function (num) {
|
|
onSelect(setTime(!!num, hour, minute, second), 'mouse');
|
|
});
|
|
return external_window_React_["createElement"]("div", {
|
|
className: contentPrefixCls
|
|
}, columns.map(function (_ref2) {
|
|
var node = _ref2.node;
|
|
return node;
|
|
}));
|
|
}
|
|
|
|
/* harmony default export */ var TimePanel_TimeBody = (TimeBody);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/TimePanel/index.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var countBoolean = function countBoolean(boolList) {
|
|
return boolList.filter(function (bool) {
|
|
return bool !== false;
|
|
}).length;
|
|
};
|
|
|
|
function TimePanel(props) {
|
|
var generateConfig = props.generateConfig,
|
|
_props$format = props.format,
|
|
format = _props$format === void 0 ? 'HH:mm:ss' : _props$format,
|
|
prefixCls = props.prefixCls,
|
|
active = props.active,
|
|
operationRef = props.operationRef,
|
|
showHour = props.showHour,
|
|
showMinute = props.showMinute,
|
|
showSecond = props.showSecond,
|
|
_props$use12Hours = props.use12Hours,
|
|
use12Hours = _props$use12Hours === void 0 ? false : _props$use12Hours,
|
|
onSelect = props.onSelect,
|
|
value = props.value;
|
|
var panelPrefixCls = "".concat(prefixCls, "-time-panel");
|
|
var bodyOperationRef = external_window_React_["useRef"](); // ======================= Keyboard =======================
|
|
|
|
var _React$useState = external_window_React_["useState"](-1),
|
|
_React$useState2 = Object(slicedToArray["a" /* default */])(_React$useState, 2),
|
|
activeColumnIndex = _React$useState2[0],
|
|
setActiveColumnIndex = _React$useState2[1];
|
|
|
|
var columnsCount = countBoolean([showHour, showMinute, showSecond, use12Hours]);
|
|
operationRef.current = {
|
|
onKeyDown: function onKeyDown(event) {
|
|
return createKeyDownHandler(event, {
|
|
onLeftRight: function onLeftRight(diff) {
|
|
setActiveColumnIndex((activeColumnIndex + diff + columnsCount) % columnsCount);
|
|
},
|
|
onUpDown: function onUpDown(diff) {
|
|
if (activeColumnIndex === -1) {
|
|
setActiveColumnIndex(0);
|
|
} else if (bodyOperationRef.current) {
|
|
bodyOperationRef.current.onUpDown(diff);
|
|
}
|
|
},
|
|
onEnter: function onEnter() {
|
|
onSelect(value || generateConfig.getNow(), 'key');
|
|
setActiveColumnIndex(-1);
|
|
}
|
|
});
|
|
},
|
|
onBlur: function onBlur() {
|
|
setActiveColumnIndex(-1);
|
|
}
|
|
};
|
|
return external_window_React_["createElement"]("div", {
|
|
className: classnames_default()(panelPrefixCls, Object(defineProperty["a" /* default */])({}, "".concat(panelPrefixCls, "-active"), active))
|
|
}, external_window_React_["createElement"](TimePanel_TimeHeader, Object.assign({}, props, {
|
|
format: format,
|
|
prefixCls: prefixCls
|
|
})), external_window_React_["createElement"](TimePanel_TimeBody, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
activeColumnIndex: activeColumnIndex,
|
|
operationRef: bodyOperationRef
|
|
})));
|
|
}
|
|
|
|
/* harmony default export */ var panels_TimePanel = (TimePanel);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/utils/dateUtil.js
|
|
var WEEK_DAY_COUNT = 7;
|
|
function isNullEqual(value1, value2) {
|
|
if (!value1 && !value2) {
|
|
return true;
|
|
}
|
|
|
|
if (!value1 || !value2) {
|
|
return false;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
function isSameDecade(generateConfig, decade1, decade2) {
|
|
var equal = isNullEqual(decade1, decade2);
|
|
|
|
if (typeof equal === 'boolean') {
|
|
return equal;
|
|
}
|
|
|
|
var num1 = Math.floor(generateConfig.getYear(decade1) / 10);
|
|
var num2 = Math.floor(generateConfig.getYear(decade2) / 10);
|
|
return num1 === num2;
|
|
}
|
|
function isSameYear(generateConfig, year1, year2) {
|
|
var equal = isNullEqual(year1, year2);
|
|
|
|
if (typeof equal === 'boolean') {
|
|
return equal;
|
|
}
|
|
|
|
return generateConfig.getYear(year1) === generateConfig.getYear(year2);
|
|
}
|
|
function getQuarter(generateConfig, date) {
|
|
var quota = Math.floor(generateConfig.getMonth(date) / 3);
|
|
return quota + 1;
|
|
}
|
|
function isSameQuarter(generateConfig, quarter1, quarter2) {
|
|
var equal = isNullEqual(quarter1, quarter2);
|
|
|
|
if (typeof equal === 'boolean') {
|
|
return equal;
|
|
}
|
|
|
|
return isSameYear(generateConfig, quarter1, quarter2) && getQuarter(generateConfig, quarter1) === getQuarter(generateConfig, quarter2);
|
|
}
|
|
function isSameMonth(generateConfig, month1, month2) {
|
|
var equal = isNullEqual(month1, month2);
|
|
|
|
if (typeof equal === 'boolean') {
|
|
return equal;
|
|
}
|
|
|
|
return isSameYear(generateConfig, month1, month2) && generateConfig.getMonth(month1) === generateConfig.getMonth(month2);
|
|
}
|
|
function isSameDate(generateConfig, date1, date2) {
|
|
var equal = isNullEqual(date1, date2);
|
|
|
|
if (typeof equal === 'boolean') {
|
|
return equal;
|
|
}
|
|
|
|
return generateConfig.getYear(date1) === generateConfig.getYear(date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);
|
|
}
|
|
function isSameTime(generateConfig, time1, time2) {
|
|
var equal = isNullEqual(time1, time2);
|
|
|
|
if (typeof equal === 'boolean') {
|
|
return equal;
|
|
}
|
|
|
|
return generateConfig.getHour(time1) === generateConfig.getHour(time2) && generateConfig.getMinute(time1) === generateConfig.getMinute(time2) && generateConfig.getSecond(time1) === generateConfig.getSecond(time2);
|
|
}
|
|
function isSameWeek(generateConfig, locale, date1, date2) {
|
|
var equal = isNullEqual(date1, date2);
|
|
|
|
if (typeof equal === 'boolean') {
|
|
return equal;
|
|
}
|
|
|
|
return generateConfig.locale.getWeek(locale, date1) === generateConfig.locale.getWeek(locale, date2);
|
|
}
|
|
function isEqual(generateConfig, value1, value2) {
|
|
return isSameDate(generateConfig, value1, value2) && isSameTime(generateConfig, value1, value2);
|
|
}
|
|
/** Between in date but not equal of date */
|
|
|
|
function isInRange(generateConfig, startDate, endDate, current) {
|
|
if (!startDate || !endDate || !current) {
|
|
return false;
|
|
}
|
|
|
|
return !isSameDate(generateConfig, startDate, current) && !isSameDate(generateConfig, endDate, current) && generateConfig.isAfter(current, startDate) && generateConfig.isAfter(endDate, current);
|
|
}
|
|
function getWeekStartDate(locale, generateConfig, value) {
|
|
var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale);
|
|
var monthStartDate = generateConfig.setDate(value, 1);
|
|
var startDateWeekDay = generateConfig.getWeekDay(monthStartDate);
|
|
var alignStartDate = generateConfig.addDate(monthStartDate, weekFirstDay - startDateWeekDay);
|
|
|
|
if (generateConfig.getMonth(alignStartDate) === generateConfig.getMonth(value) && generateConfig.getDate(alignStartDate) > 1) {
|
|
alignStartDate = generateConfig.addDate(alignStartDate, -7);
|
|
}
|
|
|
|
return alignStartDate;
|
|
}
|
|
function getClosingViewDate(viewDate, picker, generateConfig) {
|
|
var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
|
|
switch (picker) {
|
|
case 'year':
|
|
return generateConfig.addYear(viewDate, offset * 10);
|
|
|
|
case 'quarter':
|
|
case 'month':
|
|
return generateConfig.addYear(viewDate, offset);
|
|
|
|
default:
|
|
return generateConfig.addMonth(viewDate, offset);
|
|
}
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/RangeContext.js
|
|
|
|
var RangeContext = external_window_React_["createContext"]({});
|
|
/* harmony default export */ var es_RangeContext = (RangeContext);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/hooks/useCellClassName.js
|
|
|
|
|
|
|
|
function useCellClassName(_ref) {
|
|
var cellPrefixCls = _ref.cellPrefixCls,
|
|
generateConfig = _ref.generateConfig,
|
|
rangedValue = _ref.rangedValue,
|
|
hoverRangedValue = _ref.hoverRangedValue,
|
|
isInView = _ref.isInView,
|
|
isSameCell = _ref.isSameCell,
|
|
offsetCell = _ref.offsetCell,
|
|
today = _ref.today,
|
|
value = _ref.value;
|
|
|
|
function getClassName(currentDate) {
|
|
var _ref2;
|
|
|
|
var prevDate = offsetCell(currentDate, -1);
|
|
var nextDate = offsetCell(currentDate, 1);
|
|
var rangeStart = getValue(rangedValue, 0);
|
|
var rangeEnd = getValue(rangedValue, 1);
|
|
var hoverStart = getValue(hoverRangedValue, 0);
|
|
var hoverEnd = getValue(hoverRangedValue, 1);
|
|
var isRangeHovered = isInRange(generateConfig, hoverStart, hoverEnd, currentDate);
|
|
|
|
function isRangeStart(date) {
|
|
return isSameCell(rangeStart, date);
|
|
}
|
|
|
|
function isRangeEnd(date) {
|
|
return isSameCell(rangeEnd, date);
|
|
}
|
|
|
|
var isHoverStart = isSameCell(hoverStart, currentDate);
|
|
var isHoverEnd = isSameCell(hoverEnd, currentDate);
|
|
var isHoverEdgeStart = (isRangeHovered || isHoverEnd) && (!isInView(prevDate) || isRangeEnd(prevDate));
|
|
var isHoverEdgeEnd = (isRangeHovered || isHoverStart) && (!isInView(nextDate) || isRangeStart(nextDate));
|
|
return _ref2 = {}, Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-in-view"), isInView(currentDate)), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-in-range"), isInRange(generateConfig, rangeStart, rangeEnd, currentDate)), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-start"), isRangeStart(currentDate)), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-end"), isRangeEnd(currentDate)), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-start-single"), isRangeStart(currentDate) && !rangeEnd), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-end-single"), isRangeEnd(currentDate) && !rangeStart), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-start-near-hover"), isRangeStart(currentDate) && (isSameCell(prevDate, hoverStart) || isInRange(generateConfig, hoverStart, hoverEnd, prevDate))), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-end-near-hover"), isRangeEnd(currentDate) && (isSameCell(nextDate, hoverEnd) || isInRange(generateConfig, hoverStart, hoverEnd, nextDate))), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-hover"), isRangeHovered), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-hover-start"), isHoverStart), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-hover-end"), isHoverEnd), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-hover-edge-start"), isHoverEdgeStart), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-hover-edge-end"), isHoverEdgeEnd), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-hover-edge-start-near-range"), isHoverEdgeStart && isSameCell(prevDate, rangeEnd)), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-range-hover-edge-end-near-range"), isHoverEdgeEnd && isSameCell(nextDate, rangeStart)), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-today"), isSameCell(today, currentDate)), Object(defineProperty["a" /* default */])(_ref2, "".concat(cellPrefixCls, "-selected"), isSameCell(value, currentDate)), _ref2;
|
|
}
|
|
|
|
return getClassName;
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/PanelBody.js
|
|
|
|
|
|
|
|
|
|
|
|
function PanelBody(_ref) {
|
|
var prefixCls = _ref.prefixCls,
|
|
disabledDate = _ref.disabledDate,
|
|
onSelect = _ref.onSelect,
|
|
rowNum = _ref.rowNum,
|
|
colNum = _ref.colNum,
|
|
prefixColumn = _ref.prefixColumn,
|
|
rowClassName = _ref.rowClassName,
|
|
baseDate = _ref.baseDate,
|
|
getCellClassName = _ref.getCellClassName,
|
|
getCellText = _ref.getCellText,
|
|
getCellNode = _ref.getCellNode,
|
|
getCellDate = _ref.getCellDate,
|
|
titleCell = _ref.titleCell,
|
|
headerCells = _ref.headerCells;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_PanelContext),
|
|
onDateMouseEnter = _React$useContext.onDateMouseEnter,
|
|
onDateMouseLeave = _React$useContext.onDateMouseLeave;
|
|
|
|
var cellPrefixCls = "".concat(prefixCls, "-cell"); // =============================== Body ===============================
|
|
|
|
var rows = [];
|
|
|
|
for (var i = 0; i < rowNum; i += 1) {
|
|
var row = [];
|
|
var rowStartDate = void 0;
|
|
|
|
var _loop = function _loop(j) {
|
|
var offset = i * colNum + j;
|
|
var currentDate = getCellDate(baseDate, offset);
|
|
var disabled = disabledDate && disabledDate(currentDate);
|
|
|
|
if (j === 0) {
|
|
rowStartDate = currentDate;
|
|
|
|
if (prefixColumn) {
|
|
row.push(prefixColumn(rowStartDate));
|
|
}
|
|
}
|
|
|
|
row.push(external_window_React_["createElement"]("td", {
|
|
key: j,
|
|
title: titleCell && titleCell(currentDate),
|
|
className: classnames_default()(cellPrefixCls, Object(objectSpread2["a" /* default */])(Object(defineProperty["a" /* default */])({}, "".concat(cellPrefixCls, "-disabled"), disabled), getCellClassName(currentDate))),
|
|
onClick: function onClick() {
|
|
if (!disabled) {
|
|
onSelect(currentDate);
|
|
}
|
|
},
|
|
onMouseEnter: function onMouseEnter() {
|
|
if (!disabled && onDateMouseEnter) {
|
|
onDateMouseEnter(currentDate);
|
|
}
|
|
},
|
|
onMouseLeave: function onMouseLeave() {
|
|
if (!disabled && onDateMouseLeave) {
|
|
onDateMouseLeave(currentDate);
|
|
}
|
|
}
|
|
}, getCellNode ? getCellNode(currentDate) : external_window_React_["createElement"]("div", {
|
|
className: "".concat(cellPrefixCls, "-inner")
|
|
}, getCellText(currentDate))));
|
|
};
|
|
|
|
for (var j = 0; j < colNum; j += 1) {
|
|
_loop(j);
|
|
}
|
|
|
|
rows.push(external_window_React_["createElement"]("tr", {
|
|
key: i,
|
|
className: rowClassName && rowClassName(rowStartDate)
|
|
}, row));
|
|
}
|
|
|
|
return external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-body")
|
|
}, external_window_React_["createElement"]("table", {
|
|
className: "".concat(prefixCls, "-content")
|
|
}, headerCells && external_window_React_["createElement"]("thead", null, external_window_React_["createElement"]("tr", null, headerCells)), external_window_React_["createElement"]("tbody", null, rows)));
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/DatePanel/DateBody.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function DateBody(props) {
|
|
var prefixCls = props.prefixCls,
|
|
generateConfig = props.generateConfig,
|
|
prefixColumn = props.prefixColumn,
|
|
locale = props.locale,
|
|
rowCount = props.rowCount,
|
|
viewDate = props.viewDate,
|
|
value = props.value,
|
|
dateRender = props.dateRender;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_RangeContext),
|
|
rangedValue = _React$useContext.rangedValue,
|
|
hoverRangedValue = _React$useContext.hoverRangedValue;
|
|
|
|
var baseDate = getWeekStartDate(locale.locale, generateConfig, viewDate);
|
|
var cellPrefixCls = "".concat(prefixCls, "-cell");
|
|
var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);
|
|
var today = generateConfig.getNow(); // ============================== Header ==============================
|
|
|
|
var headerCells = [];
|
|
var weekDaysLocale = locale.shortWeekDays || (generateConfig.locale.getShortWeekDays ? generateConfig.locale.getShortWeekDays(locale.locale) : []);
|
|
|
|
if (prefixColumn) {
|
|
headerCells.push(external_window_React_["createElement"]("th", {
|
|
key: "empty",
|
|
"aria-label": "empty cell"
|
|
}));
|
|
}
|
|
|
|
for (var i = 0; i < WEEK_DAY_COUNT; i += 1) {
|
|
headerCells.push(external_window_React_["createElement"]("th", {
|
|
key: i
|
|
}, weekDaysLocale[(i + weekFirstDay) % WEEK_DAY_COUNT]));
|
|
} // =============================== Body ===============================
|
|
|
|
|
|
var getCellClassName = useCellClassName({
|
|
cellPrefixCls: cellPrefixCls,
|
|
today: today,
|
|
value: value,
|
|
generateConfig: generateConfig,
|
|
rangedValue: prefixColumn ? null : rangedValue,
|
|
hoverRangedValue: prefixColumn ? null : hoverRangedValue,
|
|
isSameCell: function isSameCell(current, target) {
|
|
return isSameDate(generateConfig, current, target);
|
|
},
|
|
isInView: function isInView(date) {
|
|
return isSameMonth(generateConfig, date, viewDate);
|
|
},
|
|
offsetCell: function offsetCell(date, offset) {
|
|
return generateConfig.addDate(date, offset);
|
|
}
|
|
});
|
|
var getCellNode = dateRender ? function (date) {
|
|
return dateRender(date, today);
|
|
} : undefined;
|
|
return external_window_React_["createElement"](PanelBody, Object.assign({}, props, {
|
|
rowNum: rowCount,
|
|
colNum: WEEK_DAY_COUNT,
|
|
baseDate: baseDate,
|
|
getCellNode: getCellNode,
|
|
getCellText: generateConfig.getDate,
|
|
getCellClassName: getCellClassName,
|
|
getCellDate: generateConfig.addDate,
|
|
titleCell: function titleCell(date) {
|
|
return generateConfig.locale.format(locale.locale, date, 'YYYY-MM-DD');
|
|
},
|
|
headerCells: headerCells
|
|
}));
|
|
}
|
|
|
|
/* harmony default export */ var DatePanel_DateBody = (DateBody);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/DatePanel/DateHeader.js
|
|
|
|
|
|
|
|
|
|
function DateHeader(props) {
|
|
var prefixCls = props.prefixCls,
|
|
generateConfig = props.generateConfig,
|
|
locale = props.locale,
|
|
viewDate = props.viewDate,
|
|
onNextMonth = props.onNextMonth,
|
|
onPrevMonth = props.onPrevMonth,
|
|
onNextYear = props.onNextYear,
|
|
onPrevYear = props.onPrevYear,
|
|
onYearClick = props.onYearClick,
|
|
onMonthClick = props.onMonthClick;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_PanelContext),
|
|
hideHeader = _React$useContext.hideHeader;
|
|
|
|
if (hideHeader) {
|
|
return null;
|
|
}
|
|
|
|
var headerPrefixCls = "".concat(prefixCls, "-header");
|
|
var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);
|
|
var month = generateConfig.getMonth(viewDate); // =================== Month & Year ===================
|
|
|
|
var yearNode = external_window_React_["createElement"]("button", {
|
|
type: "button",
|
|
key: "year",
|
|
onClick: onYearClick,
|
|
tabIndex: -1,
|
|
className: "".concat(prefixCls, "-year-btn")
|
|
}, generateConfig.locale.format(locale.locale, viewDate, locale.yearFormat));
|
|
var monthNode = external_window_React_["createElement"]("button", {
|
|
type: "button",
|
|
key: "month",
|
|
onClick: onMonthClick,
|
|
tabIndex: -1,
|
|
className: "".concat(prefixCls, "-month-btn")
|
|
}, locale.monthFormat ? generateConfig.locale.format(locale.locale, viewDate, locale.monthFormat) : monthsLocale[month]);
|
|
var monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];
|
|
return external_window_React_["createElement"](panels_Header, Object.assign({}, props, {
|
|
prefixCls: headerPrefixCls,
|
|
onSuperPrev: onPrevYear,
|
|
onPrev: onPrevMonth,
|
|
onNext: onNextMonth,
|
|
onSuperNext: onNextYear
|
|
}), monthYearNodes);
|
|
}
|
|
|
|
/* harmony default export */ var DatePanel_DateHeader = (DateHeader);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/DatePanel/index.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var DATE_ROW_COUNT = 6;
|
|
|
|
function DatePanel(props) {
|
|
var prefixCls = props.prefixCls,
|
|
_props$panelName = props.panelName,
|
|
panelName = _props$panelName === void 0 ? 'date' : _props$panelName,
|
|
keyboardConfig = props.keyboardConfig,
|
|
active = props.active,
|
|
operationRef = props.operationRef,
|
|
generateConfig = props.generateConfig,
|
|
value = props.value,
|
|
viewDate = props.viewDate,
|
|
onViewDateChange = props.onViewDateChange,
|
|
onPanelChange = props.onPanelChange,
|
|
_onSelect = props.onSelect;
|
|
var panelPrefixCls = "".concat(prefixCls, "-").concat(panelName, "-panel"); // ======================= Keyboard =======================
|
|
|
|
operationRef.current = {
|
|
onKeyDown: function onKeyDown(event) {
|
|
return createKeyDownHandler(event, Object(objectSpread2["a" /* default */])({
|
|
onLeftRight: function onLeftRight(diff) {
|
|
_onSelect(generateConfig.addDate(value || viewDate, diff), 'key');
|
|
},
|
|
onCtrlLeftRight: function onCtrlLeftRight(diff) {
|
|
_onSelect(generateConfig.addYear(value || viewDate, diff), 'key');
|
|
},
|
|
onUpDown: function onUpDown(diff) {
|
|
_onSelect(generateConfig.addDate(value || viewDate, diff * WEEK_DAY_COUNT), 'key');
|
|
},
|
|
onPageUpDown: function onPageUpDown(diff) {
|
|
_onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');
|
|
}
|
|
}, keyboardConfig));
|
|
}
|
|
}; // ==================== View Operation ====================
|
|
|
|
var onYearChange = function onYearChange(diff) {
|
|
var newDate = generateConfig.addYear(viewDate, diff);
|
|
onViewDateChange(newDate);
|
|
onPanelChange(null, newDate);
|
|
};
|
|
|
|
var onMonthChange = function onMonthChange(diff) {
|
|
var newDate = generateConfig.addMonth(viewDate, diff);
|
|
onViewDateChange(newDate);
|
|
onPanelChange(null, newDate);
|
|
};
|
|
|
|
return external_window_React_["createElement"]("div", {
|
|
className: classnames_default()(panelPrefixCls, Object(defineProperty["a" /* default */])({}, "".concat(panelPrefixCls, "-active"), active))
|
|
}, external_window_React_["createElement"](DatePanel_DateHeader, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
value: value,
|
|
viewDate: viewDate,
|
|
// View Operation
|
|
onPrevYear: function onPrevYear() {
|
|
onYearChange(-1);
|
|
},
|
|
onNextYear: function onNextYear() {
|
|
onYearChange(1);
|
|
},
|
|
onPrevMonth: function onPrevMonth() {
|
|
onMonthChange(-1);
|
|
},
|
|
onNextMonth: function onNextMonth() {
|
|
onMonthChange(1);
|
|
},
|
|
onMonthClick: function onMonthClick() {
|
|
onPanelChange('month', viewDate);
|
|
},
|
|
onYearClick: function onYearClick() {
|
|
onPanelChange('year', viewDate);
|
|
}
|
|
})), external_window_React_["createElement"](DatePanel_DateBody, Object.assign({}, props, {
|
|
onSelect: function onSelect(date) {
|
|
return _onSelect(date, 'mouse');
|
|
},
|
|
prefixCls: prefixCls,
|
|
value: value,
|
|
viewDate: viewDate,
|
|
rowCount: DATE_ROW_COUNT
|
|
})));
|
|
}
|
|
|
|
/* harmony default export */ var panels_DatePanel = (DatePanel);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/DatetimePanel/index.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function DatetimePanel_setTime(generateConfig, date, defaultDate) {
|
|
if (!defaultDate) {
|
|
return date;
|
|
}
|
|
|
|
var newDate = date;
|
|
newDate = generateConfig.setHour(newDate, generateConfig.getHour(defaultDate));
|
|
newDate = generateConfig.setMinute(newDate, generateConfig.getMinute(defaultDate));
|
|
newDate = generateConfig.setSecond(newDate, generateConfig.getSecond(defaultDate));
|
|
return newDate;
|
|
}
|
|
|
|
var ACTIVE_PANEL = tuple('date', 'time');
|
|
|
|
function DatetimePanel(props) {
|
|
var prefixCls = props.prefixCls,
|
|
operationRef = props.operationRef,
|
|
generateConfig = props.generateConfig,
|
|
value = props.value,
|
|
defaultValue = props.defaultValue,
|
|
disabledTime = props.disabledTime,
|
|
showTime = props.showTime,
|
|
onSelect = props.onSelect;
|
|
var panelPrefixCls = "".concat(prefixCls, "-datetime-panel");
|
|
|
|
var _React$useState = external_window_React_["useState"](null),
|
|
_React$useState2 = Object(slicedToArray["a" /* default */])(_React$useState, 2),
|
|
activePanel = _React$useState2[0],
|
|
setActivePanel = _React$useState2[1];
|
|
|
|
var dateOperationRef = external_window_React_["useRef"]({});
|
|
var timeOperationRef = external_window_React_["useRef"]({});
|
|
var timeProps = Object(esm_typeof["a" /* default */])(showTime) === 'object' ? Object(objectSpread2["a" /* default */])({}, showTime) : {}; // ======================= Keyboard =======================
|
|
|
|
function getNextActive(offset) {
|
|
var activeIndex = ACTIVE_PANEL.indexOf(activePanel) + offset;
|
|
var nextActivePanel = ACTIVE_PANEL[activeIndex] || null;
|
|
return nextActivePanel;
|
|
}
|
|
|
|
var onBlur = function onBlur(e) {
|
|
if (timeOperationRef.current.onBlur) {
|
|
timeOperationRef.current.onBlur(e);
|
|
}
|
|
|
|
setActivePanel(null);
|
|
};
|
|
|
|
operationRef.current = {
|
|
onKeyDown: function onKeyDown(event) {
|
|
// Switch active panel
|
|
if (event.which === KeyCode["a" /* default */].TAB) {
|
|
var nextActivePanel = getNextActive(event.shiftKey ? -1 : 1);
|
|
setActivePanel(nextActivePanel);
|
|
|
|
if (nextActivePanel) {
|
|
event.preventDefault();
|
|
}
|
|
|
|
return true;
|
|
} // Operate on current active panel
|
|
|
|
|
|
if (activePanel) {
|
|
var ref = activePanel === 'date' ? dateOperationRef : timeOperationRef;
|
|
|
|
if (ref.current && ref.current.onKeyDown) {
|
|
ref.current.onKeyDown(event);
|
|
}
|
|
|
|
return true;
|
|
} // Switch first active panel if operate without panel
|
|
|
|
|
|
if ([KeyCode["a" /* default */].LEFT, KeyCode["a" /* default */].RIGHT, KeyCode["a" /* default */].UP, KeyCode["a" /* default */].DOWN].includes(event.which)) {
|
|
setActivePanel('date');
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
},
|
|
onBlur: onBlur,
|
|
onClose: onBlur
|
|
}; // ======================== Events ========================
|
|
|
|
var onInternalSelect = function onInternalSelect(date, source) {
|
|
var selectedDate = date;
|
|
|
|
if (source === 'date' && !value && timeProps.defaultValue) {
|
|
// Date with time defaultValue
|
|
selectedDate = generateConfig.setHour(selectedDate, generateConfig.getHour(timeProps.defaultValue));
|
|
selectedDate = generateConfig.setMinute(selectedDate, generateConfig.getMinute(timeProps.defaultValue));
|
|
selectedDate = generateConfig.setSecond(selectedDate, generateConfig.getSecond(timeProps.defaultValue));
|
|
} else if (source === 'time' && !value && defaultValue) {
|
|
selectedDate = generateConfig.setYear(selectedDate, generateConfig.getYear(defaultValue));
|
|
selectedDate = generateConfig.setMonth(selectedDate, generateConfig.getMonth(defaultValue));
|
|
selectedDate = generateConfig.setDate(selectedDate, generateConfig.getDate(defaultValue));
|
|
}
|
|
|
|
if (onSelect) {
|
|
onSelect(selectedDate, 'mouse');
|
|
}
|
|
}; // ======================== Render ========================
|
|
|
|
|
|
var disabledTimes = disabledTime ? disabledTime(value || null) : {};
|
|
return external_window_React_["createElement"]("div", {
|
|
className: classnames_default()(panelPrefixCls, Object(defineProperty["a" /* default */])({}, "".concat(panelPrefixCls, "-active"), activePanel))
|
|
}, external_window_React_["createElement"](panels_DatePanel, Object.assign({}, props, {
|
|
operationRef: dateOperationRef,
|
|
active: activePanel === 'date',
|
|
onSelect: function onSelect(date) {
|
|
onInternalSelect(DatetimePanel_setTime(generateConfig, date, showTime && Object(esm_typeof["a" /* default */])(showTime) === 'object' ? showTime.defaultValue : null), 'date');
|
|
}
|
|
})), external_window_React_["createElement"](panels_TimePanel, Object.assign({}, props, {
|
|
format: undefined
|
|
}, timeProps, disabledTimes, {
|
|
defaultValue: undefined,
|
|
operationRef: timeOperationRef,
|
|
active: activePanel === 'time',
|
|
onSelect: function onSelect(date) {
|
|
onInternalSelect(date, 'time');
|
|
}
|
|
})));
|
|
}
|
|
|
|
/* harmony default export */ var panels_DatetimePanel = (DatetimePanel);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/WeekPanel/index.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function WeekPanel(props) {
|
|
var prefixCls = props.prefixCls,
|
|
generateConfig = props.generateConfig,
|
|
locale = props.locale,
|
|
value = props.value; // Render additional column
|
|
|
|
var cellPrefixCls = "".concat(prefixCls, "-cell");
|
|
|
|
var prefixColumn = function prefixColumn(date) {
|
|
return external_window_React_["createElement"]("td", {
|
|
key: "week",
|
|
className: classnames_default()(cellPrefixCls, "".concat(cellPrefixCls, "-week"))
|
|
}, generateConfig.locale.getWeek(locale.locale, date));
|
|
}; // Add row className
|
|
|
|
|
|
var rowPrefixCls = "".concat(prefixCls, "-week-panel-row");
|
|
|
|
var rowClassName = function rowClassName(date) {
|
|
return classnames_default()(rowPrefixCls, Object(defineProperty["a" /* default */])({}, "".concat(rowPrefixCls, "-selected"), isSameWeek(generateConfig, locale.locale, value, date)));
|
|
};
|
|
|
|
return external_window_React_["createElement"](panels_DatePanel, Object.assign({}, props, {
|
|
panelName: "week",
|
|
prefixColumn: prefixColumn,
|
|
rowClassName: rowClassName,
|
|
keyboardConfig: {
|
|
onLeftRight: null
|
|
}
|
|
}));
|
|
}
|
|
|
|
/* harmony default export */ var panels_WeekPanel = (WeekPanel);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/MonthPanel/MonthHeader.js
|
|
|
|
|
|
|
|
|
|
function MonthHeader(props) {
|
|
var prefixCls = props.prefixCls,
|
|
generateConfig = props.generateConfig,
|
|
locale = props.locale,
|
|
viewDate = props.viewDate,
|
|
onNextYear = props.onNextYear,
|
|
onPrevYear = props.onPrevYear,
|
|
onYearClick = props.onYearClick;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_PanelContext),
|
|
hideHeader = _React$useContext.hideHeader;
|
|
|
|
if (hideHeader) {
|
|
return null;
|
|
}
|
|
|
|
var headerPrefixCls = "".concat(prefixCls, "-header");
|
|
return external_window_React_["createElement"](panels_Header, Object.assign({}, props, {
|
|
prefixCls: headerPrefixCls,
|
|
onSuperPrev: onPrevYear,
|
|
onSuperNext: onNextYear
|
|
}), external_window_React_["createElement"]("button", {
|
|
type: "button",
|
|
onClick: onYearClick,
|
|
className: "".concat(prefixCls, "-year-btn")
|
|
}, generateConfig.locale.format(locale.locale, viewDate, locale.yearFormat)));
|
|
}
|
|
|
|
/* harmony default export */ var MonthPanel_MonthHeader = (MonthHeader);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/MonthPanel/MonthBody.js
|
|
|
|
|
|
|
|
|
|
|
|
var MONTH_COL_COUNT = 3;
|
|
var MONTH_ROW_COUNT = 4;
|
|
|
|
function MonthBody(props) {
|
|
var prefixCls = props.prefixCls,
|
|
locale = props.locale,
|
|
value = props.value,
|
|
viewDate = props.viewDate,
|
|
generateConfig = props.generateConfig,
|
|
monthCellRender = props.monthCellRender;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_RangeContext),
|
|
rangedValue = _React$useContext.rangedValue,
|
|
hoverRangedValue = _React$useContext.hoverRangedValue;
|
|
|
|
var cellPrefixCls = "".concat(prefixCls, "-cell");
|
|
var getCellClassName = useCellClassName({
|
|
cellPrefixCls: cellPrefixCls,
|
|
value: value,
|
|
generateConfig: generateConfig,
|
|
rangedValue: rangedValue,
|
|
hoverRangedValue: hoverRangedValue,
|
|
isSameCell: function isSameCell(current, target) {
|
|
return isSameMonth(generateConfig, current, target);
|
|
},
|
|
isInView: function isInView() {
|
|
return true;
|
|
},
|
|
offsetCell: function offsetCell(date, offset) {
|
|
return generateConfig.addMonth(date, offset);
|
|
}
|
|
});
|
|
var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);
|
|
var baseMonth = generateConfig.setMonth(viewDate, 0);
|
|
var getCellNode = monthCellRender ? function (date) {
|
|
return monthCellRender(date, locale);
|
|
} : undefined;
|
|
return external_window_React_["createElement"](PanelBody, Object.assign({}, props, {
|
|
rowNum: MONTH_ROW_COUNT,
|
|
colNum: MONTH_COL_COUNT,
|
|
baseDate: baseMonth,
|
|
getCellNode: getCellNode,
|
|
getCellText: function getCellText(date) {
|
|
return locale.monthFormat ? generateConfig.locale.format(locale.locale, date, locale.monthFormat) : monthsLocale[generateConfig.getMonth(date)];
|
|
},
|
|
getCellClassName: getCellClassName,
|
|
getCellDate: generateConfig.addMonth,
|
|
titleCell: function titleCell(date) {
|
|
return generateConfig.locale.format(locale.locale, date, 'YYYY-MM');
|
|
}
|
|
}));
|
|
}
|
|
|
|
/* harmony default export */ var MonthPanel_MonthBody = (MonthBody);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/MonthPanel/index.js
|
|
|
|
|
|
|
|
|
|
|
|
function MonthPanel(props) {
|
|
var prefixCls = props.prefixCls,
|
|
operationRef = props.operationRef,
|
|
onViewDateChange = props.onViewDateChange,
|
|
generateConfig = props.generateConfig,
|
|
value = props.value,
|
|
viewDate = props.viewDate,
|
|
onPanelChange = props.onPanelChange,
|
|
_onSelect = props.onSelect;
|
|
var panelPrefixCls = "".concat(prefixCls, "-month-panel"); // ======================= Keyboard =======================
|
|
|
|
operationRef.current = {
|
|
onKeyDown: function onKeyDown(event) {
|
|
return createKeyDownHandler(event, {
|
|
onLeftRight: function onLeftRight(diff) {
|
|
_onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');
|
|
},
|
|
onCtrlLeftRight: function onCtrlLeftRight(diff) {
|
|
_onSelect(generateConfig.addYear(value || viewDate, diff), 'key');
|
|
},
|
|
onUpDown: function onUpDown(diff) {
|
|
_onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');
|
|
},
|
|
onEnter: function onEnter() {
|
|
onPanelChange('date', value || viewDate);
|
|
}
|
|
});
|
|
}
|
|
}; // ==================== View Operation ====================
|
|
|
|
var onYearChange = function onYearChange(diff) {
|
|
var newDate = generateConfig.addYear(viewDate, diff);
|
|
onViewDateChange(newDate);
|
|
onPanelChange(null, newDate);
|
|
};
|
|
|
|
return external_window_React_["createElement"]("div", {
|
|
className: panelPrefixCls
|
|
}, external_window_React_["createElement"](MonthPanel_MonthHeader, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
onPrevYear: function onPrevYear() {
|
|
onYearChange(-1);
|
|
},
|
|
onNextYear: function onNextYear() {
|
|
onYearChange(1);
|
|
},
|
|
onYearClick: function onYearClick() {
|
|
onPanelChange('year', viewDate);
|
|
}
|
|
})), external_window_React_["createElement"](MonthPanel_MonthBody, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
onSelect: function onSelect(date) {
|
|
_onSelect(date, 'mouse');
|
|
|
|
onPanelChange('date', date);
|
|
}
|
|
})));
|
|
}
|
|
|
|
/* harmony default export */ var panels_MonthPanel = (MonthPanel);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/QuarterPanel/QuarterHeader.js
|
|
|
|
|
|
|
|
|
|
function QuarterHeader(props) {
|
|
var prefixCls = props.prefixCls,
|
|
generateConfig = props.generateConfig,
|
|
locale = props.locale,
|
|
viewDate = props.viewDate,
|
|
onNextYear = props.onNextYear,
|
|
onPrevYear = props.onPrevYear,
|
|
onYearClick = props.onYearClick;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_PanelContext),
|
|
hideHeader = _React$useContext.hideHeader;
|
|
|
|
if (hideHeader) {
|
|
return null;
|
|
}
|
|
|
|
var headerPrefixCls = "".concat(prefixCls, "-header");
|
|
return external_window_React_["createElement"](panels_Header, Object.assign({}, props, {
|
|
prefixCls: headerPrefixCls,
|
|
onSuperPrev: onPrevYear,
|
|
onSuperNext: onNextYear
|
|
}), external_window_React_["createElement"]("button", {
|
|
type: "button",
|
|
onClick: onYearClick,
|
|
className: "".concat(prefixCls, "-year-btn")
|
|
}, generateConfig.locale.format(locale.locale, viewDate, locale.yearFormat)));
|
|
}
|
|
|
|
/* harmony default export */ var QuarterPanel_QuarterHeader = (QuarterHeader);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/QuarterPanel/QuarterBody.js
|
|
|
|
|
|
|
|
|
|
|
|
var QUARTER_COL_COUNT = 4;
|
|
var QUARTER_ROW_COUNT = 1;
|
|
|
|
function QuarterBody(props) {
|
|
var prefixCls = props.prefixCls,
|
|
locale = props.locale,
|
|
value = props.value,
|
|
viewDate = props.viewDate,
|
|
generateConfig = props.generateConfig;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_RangeContext),
|
|
rangedValue = _React$useContext.rangedValue,
|
|
hoverRangedValue = _React$useContext.hoverRangedValue;
|
|
|
|
var cellPrefixCls = "".concat(prefixCls, "-cell");
|
|
var getCellClassName = useCellClassName({
|
|
cellPrefixCls: cellPrefixCls,
|
|
value: value,
|
|
generateConfig: generateConfig,
|
|
rangedValue: rangedValue,
|
|
hoverRangedValue: hoverRangedValue,
|
|
isSameCell: function isSameCell(current, target) {
|
|
return isSameQuarter(generateConfig, current, target);
|
|
},
|
|
isInView: function isInView() {
|
|
return true;
|
|
},
|
|
offsetCell: function offsetCell(date, offset) {
|
|
return generateConfig.addMonth(date, offset * 3);
|
|
}
|
|
});
|
|
var baseQuarter = generateConfig.setDate(generateConfig.setMonth(viewDate, 0), 1);
|
|
return external_window_React_["createElement"](PanelBody, Object.assign({}, props, {
|
|
rowNum: QUARTER_ROW_COUNT,
|
|
colNum: QUARTER_COL_COUNT,
|
|
baseDate: baseQuarter,
|
|
getCellText: function getCellText(date) {
|
|
return generateConfig.locale.format(locale.locale, date, locale.quarterFormat || '[Q]Q');
|
|
},
|
|
getCellClassName: getCellClassName,
|
|
getCellDate: function getCellDate(date, offset) {
|
|
return generateConfig.addMonth(date, offset * 3);
|
|
},
|
|
titleCell: function titleCell(date) {
|
|
return generateConfig.locale.format(locale.locale, date, 'YYYY-[Q]Q');
|
|
}
|
|
}));
|
|
}
|
|
|
|
/* harmony default export */ var QuarterPanel_QuarterBody = (QuarterBody);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/QuarterPanel/index.js
|
|
|
|
|
|
|
|
|
|
|
|
function QuarterPanel(props) {
|
|
var prefixCls = props.prefixCls,
|
|
operationRef = props.operationRef,
|
|
onViewDateChange = props.onViewDateChange,
|
|
generateConfig = props.generateConfig,
|
|
value = props.value,
|
|
viewDate = props.viewDate,
|
|
onPanelChange = props.onPanelChange,
|
|
_onSelect = props.onSelect;
|
|
var panelPrefixCls = "".concat(prefixCls, "-quarter-panel"); // ======================= Keyboard =======================
|
|
|
|
operationRef.current = {
|
|
onKeyDown: function onKeyDown(event) {
|
|
return createKeyDownHandler(event, {
|
|
onLeftRight: function onLeftRight(diff) {
|
|
_onSelect(generateConfig.addMonth(value || viewDate, diff * 3), 'key');
|
|
},
|
|
onCtrlLeftRight: function onCtrlLeftRight(diff) {
|
|
_onSelect(generateConfig.addYear(value || viewDate, diff), 'key');
|
|
},
|
|
onUpDown: function onUpDown(diff) {
|
|
_onSelect(generateConfig.addYear(value || viewDate, diff), 'key');
|
|
}
|
|
});
|
|
}
|
|
}; // ==================== View Operation ====================
|
|
|
|
var onYearChange = function onYearChange(diff) {
|
|
var newDate = generateConfig.addYear(viewDate, diff);
|
|
onViewDateChange(newDate);
|
|
onPanelChange(null, newDate);
|
|
};
|
|
|
|
return external_window_React_["createElement"]("div", {
|
|
className: panelPrefixCls
|
|
}, external_window_React_["createElement"](QuarterPanel_QuarterHeader, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
onPrevYear: function onPrevYear() {
|
|
onYearChange(-1);
|
|
},
|
|
onNextYear: function onNextYear() {
|
|
onYearChange(1);
|
|
},
|
|
onYearClick: function onYearClick() {
|
|
onPanelChange('year', viewDate);
|
|
}
|
|
})), external_window_React_["createElement"](QuarterPanel_QuarterBody, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
onSelect: function onSelect(date) {
|
|
_onSelect(date, 'mouse');
|
|
}
|
|
})));
|
|
}
|
|
|
|
/* harmony default export */ var panels_QuarterPanel = (QuarterPanel);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/YearPanel/YearHeader.js
|
|
|
|
|
|
|
|
|
|
|
|
function YearHeader(props) {
|
|
var prefixCls = props.prefixCls,
|
|
generateConfig = props.generateConfig,
|
|
viewDate = props.viewDate,
|
|
onPrevDecade = props.onPrevDecade,
|
|
onNextDecade = props.onNextDecade,
|
|
onDecadeClick = props.onDecadeClick;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_PanelContext),
|
|
hideHeader = _React$useContext.hideHeader;
|
|
|
|
if (hideHeader) {
|
|
return null;
|
|
}
|
|
|
|
var headerPrefixCls = "".concat(prefixCls, "-header");
|
|
var yearNumber = generateConfig.getYear(viewDate);
|
|
var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;
|
|
var endYear = startYear + YEAR_DECADE_COUNT - 1;
|
|
return external_window_React_["createElement"](panels_Header, Object.assign({}, props, {
|
|
prefixCls: headerPrefixCls,
|
|
onSuperPrev: onPrevDecade,
|
|
onSuperNext: onNextDecade
|
|
}), external_window_React_["createElement"]("button", {
|
|
type: "button",
|
|
onClick: onDecadeClick,
|
|
className: "".concat(prefixCls, "-decade-btn")
|
|
}, startYear, "-", endYear));
|
|
}
|
|
|
|
/* harmony default export */ var YearPanel_YearHeader = (YearHeader);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/YearPanel/YearBody.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var YEAR_COL_COUNT = 3;
|
|
var YEAR_ROW_COUNT = 4;
|
|
|
|
function YearBody(props) {
|
|
var prefixCls = props.prefixCls,
|
|
value = props.value,
|
|
viewDate = props.viewDate,
|
|
locale = props.locale,
|
|
generateConfig = props.generateConfig;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_RangeContext),
|
|
rangedValue = _React$useContext.rangedValue,
|
|
hoverRangedValue = _React$useContext.hoverRangedValue;
|
|
|
|
var yearPrefixCls = "".concat(prefixCls, "-cell"); // =============================== Year ===============================
|
|
|
|
var yearNumber = generateConfig.getYear(viewDate);
|
|
var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;
|
|
var endYear = startYear + YEAR_DECADE_COUNT - 1;
|
|
var baseYear = generateConfig.setYear(viewDate, startYear - Math.ceil((YEAR_COL_COUNT * YEAR_ROW_COUNT - YEAR_DECADE_COUNT) / 2));
|
|
|
|
var isInView = function isInView(date) {
|
|
var currentYearNumber = generateConfig.getYear(date);
|
|
return startYear <= currentYearNumber && currentYearNumber <= endYear;
|
|
};
|
|
|
|
var getCellClassName = useCellClassName({
|
|
cellPrefixCls: yearPrefixCls,
|
|
value: value,
|
|
generateConfig: generateConfig,
|
|
rangedValue: rangedValue,
|
|
hoverRangedValue: hoverRangedValue,
|
|
isSameCell: function isSameCell(current, target) {
|
|
return isSameYear(generateConfig, current, target);
|
|
},
|
|
isInView: isInView,
|
|
offsetCell: function offsetCell(date, offset) {
|
|
return generateConfig.addYear(date, offset);
|
|
}
|
|
});
|
|
return external_window_React_["createElement"](PanelBody, Object.assign({}, props, {
|
|
rowNum: YEAR_ROW_COUNT,
|
|
colNum: YEAR_COL_COUNT,
|
|
baseDate: baseYear,
|
|
getCellText: generateConfig.getYear,
|
|
getCellClassName: getCellClassName,
|
|
getCellDate: generateConfig.addYear,
|
|
titleCell: function titleCell(date) {
|
|
return generateConfig.locale.format(locale.locale, date, 'YYYY');
|
|
}
|
|
}));
|
|
}
|
|
|
|
/* harmony default export */ var YearPanel_YearBody = (YearBody);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/YearPanel/index.js
|
|
|
|
|
|
|
|
|
|
var YEAR_DECADE_COUNT = 10;
|
|
|
|
function YearPanel(props) {
|
|
var prefixCls = props.prefixCls,
|
|
operationRef = props.operationRef,
|
|
onViewDateChange = props.onViewDateChange,
|
|
generateConfig = props.generateConfig,
|
|
value = props.value,
|
|
viewDate = props.viewDate,
|
|
sourceMode = props.sourceMode,
|
|
_onSelect = props.onSelect,
|
|
onPanelChange = props.onPanelChange;
|
|
var panelPrefixCls = "".concat(prefixCls, "-year-panel"); // ======================= Keyboard =======================
|
|
|
|
operationRef.current = {
|
|
onKeyDown: function onKeyDown(event) {
|
|
return createKeyDownHandler(event, {
|
|
onLeftRight: function onLeftRight(diff) {
|
|
_onSelect(generateConfig.addYear(value || viewDate, diff), 'key');
|
|
},
|
|
onCtrlLeftRight: function onCtrlLeftRight(diff) {
|
|
_onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_DECADE_COUNT), 'key');
|
|
},
|
|
onUpDown: function onUpDown(diff) {
|
|
_onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_COL_COUNT), 'key');
|
|
},
|
|
onEnter: function onEnter() {
|
|
onPanelChange(sourceMode === 'date' ? 'date' : 'month', value || viewDate);
|
|
}
|
|
});
|
|
}
|
|
}; // ==================== View Operation ====================
|
|
|
|
var onDecadeChange = function onDecadeChange(diff) {
|
|
var newDate = generateConfig.addYear(viewDate, diff * 10);
|
|
onViewDateChange(newDate);
|
|
onPanelChange(null, newDate);
|
|
};
|
|
|
|
return external_window_React_["createElement"]("div", {
|
|
className: panelPrefixCls
|
|
}, external_window_React_["createElement"](YearPanel_YearHeader, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
onPrevDecade: function onPrevDecade() {
|
|
onDecadeChange(-1);
|
|
},
|
|
onNextDecade: function onNextDecade() {
|
|
onDecadeChange(1);
|
|
},
|
|
onDecadeClick: function onDecadeClick() {
|
|
onPanelChange('decade', viewDate);
|
|
}
|
|
})), external_window_React_["createElement"](YearPanel_YearBody, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
onSelect: function onSelect(date) {
|
|
onPanelChange(sourceMode === 'date' ? 'date' : 'month', date);
|
|
|
|
_onSelect(date, 'mouse');
|
|
}
|
|
})));
|
|
}
|
|
|
|
/* harmony default export */ var panels_YearPanel = (YearPanel);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/DecadePanel/DecadeHeader.js
|
|
|
|
|
|
|
|
|
|
|
|
function DecadeHeader(props) {
|
|
var prefixCls = props.prefixCls,
|
|
generateConfig = props.generateConfig,
|
|
viewDate = props.viewDate,
|
|
onPrevDecades = props.onPrevDecades,
|
|
onNextDecades = props.onNextDecades;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_PanelContext),
|
|
hideHeader = _React$useContext.hideHeader;
|
|
|
|
if (hideHeader) {
|
|
return null;
|
|
}
|
|
|
|
var headerPrefixCls = "".concat(prefixCls, "-header");
|
|
var yearNumber = generateConfig.getYear(viewDate);
|
|
var startYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;
|
|
var endYear = startYear + DECADE_DISTANCE_COUNT - 1;
|
|
return external_window_React_["createElement"](panels_Header, Object.assign({}, props, {
|
|
prefixCls: headerPrefixCls,
|
|
onSuperPrev: onPrevDecades,
|
|
onSuperNext: onNextDecades
|
|
}), startYear, "-", endYear);
|
|
}
|
|
|
|
/* harmony default export */ var DecadePanel_DecadeHeader = (DecadeHeader);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/DecadePanel/DecadeBody.js
|
|
|
|
|
|
|
|
|
|
var DECADE_COL_COUNT = 3;
|
|
var DECADE_ROW_COUNT = 4;
|
|
|
|
function DecadeBody(props) {
|
|
var DECADE_UNIT_DIFF_DES = DECADE_UNIT_DIFF - 1;
|
|
var prefixCls = props.prefixCls,
|
|
viewDate = props.viewDate,
|
|
generateConfig = props.generateConfig,
|
|
disabledDate = props.disabledDate;
|
|
var cellPrefixCls = "".concat(prefixCls, "-cell");
|
|
var yearNumber = generateConfig.getYear(viewDate);
|
|
var decadeYearNumber = Math.floor(yearNumber / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;
|
|
var startDecadeYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;
|
|
var endDecadeYear = startDecadeYear + DECADE_DISTANCE_COUNT - 1;
|
|
var baseDecadeYear = generateConfig.setYear(viewDate, startDecadeYear - Math.ceil((DECADE_COL_COUNT * DECADE_ROW_COUNT * DECADE_UNIT_DIFF - DECADE_DISTANCE_COUNT) / 2));
|
|
|
|
var getCellClassName = function getCellClassName(date) {
|
|
var _ref;
|
|
|
|
var disabled = disabledDate && disabledDate(date);
|
|
var startDecadeNumber = generateConfig.getYear(date);
|
|
var endDecadeNumber = startDecadeNumber + DECADE_UNIT_DIFF_DES;
|
|
return _ref = {}, Object(defineProperty["a" /* default */])(_ref, "".concat(cellPrefixCls, "-disabled"), disabled), Object(defineProperty["a" /* default */])(_ref, "".concat(cellPrefixCls, "-in-view"), startDecadeYear <= startDecadeNumber && endDecadeNumber <= endDecadeYear), Object(defineProperty["a" /* default */])(_ref, "".concat(cellPrefixCls, "-selected"), startDecadeNumber === decadeYearNumber), _ref;
|
|
};
|
|
|
|
return external_window_React_["createElement"](PanelBody, Object.assign({}, props, {
|
|
rowNum: DECADE_ROW_COUNT,
|
|
colNum: DECADE_COL_COUNT,
|
|
baseDate: baseDecadeYear,
|
|
getCellText: function getCellText(date) {
|
|
var startDecadeNumber = generateConfig.getYear(date);
|
|
return "".concat(startDecadeNumber, "-").concat(startDecadeNumber + DECADE_UNIT_DIFF_DES);
|
|
},
|
|
getCellClassName: getCellClassName,
|
|
getCellDate: function getCellDate(date, offset) {
|
|
return generateConfig.addYear(date, offset * DECADE_UNIT_DIFF);
|
|
}
|
|
}));
|
|
}
|
|
|
|
/* harmony default export */ var DecadePanel_DecadeBody = (DecadeBody);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/panels/DecadePanel/index.js
|
|
|
|
|
|
|
|
|
|
var DECADE_UNIT_DIFF = 10;
|
|
var DECADE_DISTANCE_COUNT = DECADE_UNIT_DIFF * 10;
|
|
|
|
function DecadePanel(props) {
|
|
var prefixCls = props.prefixCls,
|
|
onViewDateChange = props.onViewDateChange,
|
|
generateConfig = props.generateConfig,
|
|
viewDate = props.viewDate,
|
|
operationRef = props.operationRef,
|
|
onSelect = props.onSelect,
|
|
onPanelChange = props.onPanelChange;
|
|
var panelPrefixCls = "".concat(prefixCls, "-decade-panel"); // ======================= Keyboard =======================
|
|
|
|
operationRef.current = {
|
|
onKeyDown: function onKeyDown(event) {
|
|
return createKeyDownHandler(event, {
|
|
onLeftRight: function onLeftRight(diff) {
|
|
onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF), 'key');
|
|
},
|
|
onCtrlLeftRight: function onCtrlLeftRight(diff) {
|
|
onSelect(generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT), 'key');
|
|
},
|
|
onUpDown: function onUpDown(diff) {
|
|
onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF * DECADE_COL_COUNT), 'key');
|
|
},
|
|
onEnter: function onEnter() {
|
|
onPanelChange('year', viewDate);
|
|
}
|
|
});
|
|
}
|
|
}; // ==================== View Operation ====================
|
|
|
|
var onDecadesChange = function onDecadesChange(diff) {
|
|
var newDate = generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT);
|
|
onViewDateChange(newDate);
|
|
onPanelChange(null, newDate);
|
|
};
|
|
|
|
var onInternalSelect = function onInternalSelect(date) {
|
|
onSelect(date, 'mouse');
|
|
onPanelChange('year', date);
|
|
};
|
|
|
|
return external_window_React_["createElement"]("div", {
|
|
className: panelPrefixCls
|
|
}, external_window_React_["createElement"](DecadePanel_DecadeHeader, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
onPrevDecades: function onPrevDecades() {
|
|
onDecadesChange(-1);
|
|
},
|
|
onNextDecades: function onNextDecades() {
|
|
onDecadesChange(1);
|
|
}
|
|
})), external_window_React_["createElement"](DecadePanel_DecadeBody, Object.assign({}, props, {
|
|
prefixCls: prefixCls,
|
|
onSelect: onInternalSelect
|
|
})));
|
|
}
|
|
|
|
/* harmony default export */ var panels_DecadePanel = (DecadePanel);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/utils/getExtraFooter.js
|
|
|
|
function getExtraFooter(prefixCls, mode, renderExtraFooter) {
|
|
if (!renderExtraFooter) {
|
|
return null;
|
|
}
|
|
|
|
return external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-footer-extra")
|
|
}, renderExtraFooter(mode));
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/utils/getRanges.js
|
|
|
|
function getRanges(_ref) {
|
|
var prefixCls = _ref.prefixCls,
|
|
_ref$rangeList = _ref.rangeList,
|
|
rangeList = _ref$rangeList === void 0 ? [] : _ref$rangeList,
|
|
_ref$components = _ref.components,
|
|
components = _ref$components === void 0 ? {} : _ref$components,
|
|
needConfirmButton = _ref.needConfirmButton,
|
|
onNow = _ref.onNow,
|
|
onOk = _ref.onOk,
|
|
okDisabled = _ref.okDisabled,
|
|
showNow = _ref.showNow,
|
|
locale = _ref.locale;
|
|
var presetNode;
|
|
var okNode;
|
|
|
|
if (rangeList.length) {
|
|
var Item = components.rangeItem || 'span';
|
|
presetNode = external_window_React_["createElement"](external_window_React_["Fragment"], null, rangeList.map(function (_ref2) {
|
|
var label = _ref2.label,
|
|
onClick = _ref2.onClick,
|
|
onMouseEnter = _ref2.onMouseEnter,
|
|
onMouseLeave = _ref2.onMouseLeave;
|
|
return external_window_React_["createElement"]("li", {
|
|
key: label,
|
|
className: "".concat(prefixCls, "-preset")
|
|
}, external_window_React_["createElement"](Item, {
|
|
onClick: onClick,
|
|
onMouseEnter: onMouseEnter,
|
|
onMouseLeave: onMouseLeave
|
|
}, label));
|
|
}));
|
|
}
|
|
|
|
if (needConfirmButton) {
|
|
var Button = components.button || 'button';
|
|
|
|
if (onNow && !presetNode && showNow !== false) {
|
|
presetNode = external_window_React_["createElement"]("li", {
|
|
className: "".concat(prefixCls, "-now")
|
|
}, external_window_React_["createElement"]("a", {
|
|
className: "".concat(prefixCls, "-now-btn"),
|
|
onClick: onNow
|
|
}, locale.now));
|
|
}
|
|
|
|
okNode = needConfirmButton && external_window_React_["createElement"]("li", {
|
|
className: "".concat(prefixCls, "-ok")
|
|
}, external_window_React_["createElement"](Button, {
|
|
disabled: okDisabled,
|
|
onClick: onOk
|
|
}, locale.ok));
|
|
}
|
|
|
|
if (!presetNode && !okNode) {
|
|
return null;
|
|
}
|
|
|
|
return external_window_React_["createElement"]("ul", {
|
|
className: "".concat(prefixCls, "-ranges")
|
|
}, presetNode, okNode);
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/PickerPanel.js
|
|
|
|
|
|
|
|
|
|
|
|
/* eslint-disable jsx-a11y/no-noninteractive-tabindex */
|
|
|
|
/**
|
|
* Logic:
|
|
* When `mode` === `picker`,
|
|
* click will trigger `onSelect` (if value changed trigger `onChange` also).
|
|
* Panel change will not trigger `onSelect` but trigger `onPanelChange`
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function PickerPanel(props) {
|
|
var _classNames;
|
|
|
|
var _props$prefixCls = props.prefixCls,
|
|
prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,
|
|
className = props.className,
|
|
style = props.style,
|
|
locale = props.locale,
|
|
generateConfig = props.generateConfig,
|
|
value = props.value,
|
|
defaultValue = props.defaultValue,
|
|
pickerValue = props.pickerValue,
|
|
defaultPickerValue = props.defaultPickerValue,
|
|
disabledDate = props.disabledDate,
|
|
mode = props.mode,
|
|
_props$picker = props.picker,
|
|
picker = _props$picker === void 0 ? 'date' : _props$picker,
|
|
_props$tabIndex = props.tabIndex,
|
|
tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,
|
|
showNow = props.showNow,
|
|
showTime = props.showTime,
|
|
showToday = props.showToday,
|
|
renderExtraFooter = props.renderExtraFooter,
|
|
hideHeader = props.hideHeader,
|
|
onSelect = props.onSelect,
|
|
onChange = props.onChange,
|
|
onPanelChange = props.onPanelChange,
|
|
onMouseDown = props.onMouseDown,
|
|
onPickerValueChange = props.onPickerValueChange,
|
|
_onOk = props.onOk,
|
|
components = props.components,
|
|
direction = props.direction,
|
|
_props$hourStep = props.hourStep,
|
|
hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,
|
|
_props$minuteStep = props.minuteStep,
|
|
minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,
|
|
_props$secondStep = props.secondStep,
|
|
secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep;
|
|
var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';
|
|
var isHourStepValid = 24 % hourStep === 0;
|
|
var isMinuteStepValid = 60 % minuteStep === 0;
|
|
var isSecondStepValid = 60 % secondStep === 0;
|
|
|
|
if (false) {} // ============================ State =============================
|
|
|
|
|
|
var panelContext = external_window_React_["useContext"](es_PanelContext);
|
|
var operationRef = panelContext.operationRef,
|
|
panelDivRef = panelContext.panelRef,
|
|
onContextSelect = panelContext.onSelect,
|
|
hideRanges = panelContext.hideRanges,
|
|
defaultOpenValue = panelContext.defaultOpenValue;
|
|
|
|
var _React$useContext = external_window_React_["useContext"](es_RangeContext),
|
|
inRange = _React$useContext.inRange,
|
|
panelPosition = _React$useContext.panelPosition,
|
|
rangedValue = _React$useContext.rangedValue,
|
|
hoverRangedValue = _React$useContext.hoverRangedValue;
|
|
|
|
var panelRef = external_window_React_["useRef"]({}); // Handle init logic
|
|
|
|
var initRef = external_window_React_["useRef"](true); // Value
|
|
|
|
var _useMergedState = Object(useMergedState["a" /* default */])(null, {
|
|
value: value,
|
|
defaultValue: defaultValue,
|
|
postState: function postState(val) {
|
|
if (!val && defaultOpenValue && picker === 'time') {
|
|
return defaultOpenValue;
|
|
}
|
|
|
|
return val;
|
|
}
|
|
}),
|
|
_useMergedState2 = Object(slicedToArray["a" /* default */])(_useMergedState, 2),
|
|
mergedValue = _useMergedState2[0],
|
|
setInnerValue = _useMergedState2[1]; // View date control
|
|
|
|
|
|
var _useMergedState3 = Object(useMergedState["a" /* default */])(null, {
|
|
value: pickerValue,
|
|
defaultValue: defaultPickerValue || mergedValue,
|
|
postState: function postState(date) {
|
|
return date || generateConfig.getNow();
|
|
}
|
|
}),
|
|
_useMergedState4 = Object(slicedToArray["a" /* default */])(_useMergedState3, 2),
|
|
viewDate = _useMergedState4[0],
|
|
setInnerViewDate = _useMergedState4[1];
|
|
|
|
var setViewDate = function setViewDate(date) {
|
|
setInnerViewDate(date);
|
|
|
|
if (onPickerValueChange) {
|
|
onPickerValueChange(date);
|
|
}
|
|
}; // Panel control
|
|
|
|
|
|
var getInternalNextMode = function getInternalNextMode(nextMode) {
|
|
var getNextMode = PickerModeMap[picker];
|
|
|
|
if (getNextMode) {
|
|
return getNextMode(nextMode);
|
|
}
|
|
|
|
return nextMode;
|
|
}; // Save panel is changed from which panel
|
|
|
|
|
|
var _useMergedState5 = Object(useMergedState["a" /* default */])(function () {
|
|
if (picker === 'time') {
|
|
return 'time';
|
|
}
|
|
|
|
return getInternalNextMode('date');
|
|
}, {
|
|
value: mode
|
|
}),
|
|
_useMergedState6 = Object(slicedToArray["a" /* default */])(_useMergedState5, 2),
|
|
mergedMode = _useMergedState6[0],
|
|
setInnerMode = _useMergedState6[1];
|
|
|
|
external_window_React_["useEffect"](function () {
|
|
setInnerMode(picker);
|
|
}, [picker]);
|
|
|
|
var _React$useState = external_window_React_["useState"](function () {
|
|
return mergedMode;
|
|
}),
|
|
_React$useState2 = Object(slicedToArray["a" /* default */])(_React$useState, 2),
|
|
sourceMode = _React$useState2[0],
|
|
setSourceMode = _React$useState2[1];
|
|
|
|
var onInternalPanelChange = function onInternalPanelChange(newMode, viewValue) {
|
|
var nextMode = getInternalNextMode(newMode || mergedMode);
|
|
setSourceMode(mergedMode);
|
|
setInnerMode(nextMode);
|
|
|
|
if (onPanelChange && (mergedMode !== nextMode || isEqual(generateConfig, viewDate, viewDate))) {
|
|
onPanelChange(viewValue, nextMode);
|
|
}
|
|
};
|
|
|
|
var triggerSelect = function triggerSelect(date, type) {
|
|
var forceTriggerSelect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
|
|
if (mergedMode === picker || forceTriggerSelect) {
|
|
setInnerValue(date);
|
|
|
|
if (onSelect) {
|
|
onSelect(date);
|
|
}
|
|
|
|
if (onContextSelect) {
|
|
onContextSelect(date, type);
|
|
}
|
|
|
|
if (onChange && !isEqual(generateConfig, date, mergedValue)) {
|
|
onChange(date);
|
|
}
|
|
}
|
|
}; // ========================= Interactive ==========================
|
|
|
|
|
|
var onInternalKeyDown = function onInternalKeyDown(e) {
|
|
if (panelRef.current && panelRef.current.onKeyDown) {
|
|
if ([KeyCode["a" /* default */].LEFT, KeyCode["a" /* default */].RIGHT, KeyCode["a" /* default */].UP, KeyCode["a" /* default */].DOWN, KeyCode["a" /* default */].PAGE_UP, KeyCode["a" /* default */].PAGE_DOWN, KeyCode["a" /* default */].ENTER].includes(e.which)) {
|
|
e.preventDefault();
|
|
}
|
|
|
|
return panelRef.current.onKeyDown(e);
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
/* eslint-disable no-lone-blocks */
|
|
|
|
|
|
{
|
|
Object(warning["a" /* default */])(false, 'Panel not correct handle keyDown event. Please help to fire issue about this.');
|
|
return false;
|
|
}
|
|
/* eslint-enable no-lone-blocks */
|
|
};
|
|
|
|
var onInternalBlur = function onInternalBlur(e) {
|
|
if (panelRef.current && panelRef.current.onBlur) {
|
|
panelRef.current.onBlur(e);
|
|
}
|
|
};
|
|
|
|
if (operationRef && panelPosition !== 'right') {
|
|
operationRef.current = {
|
|
onKeyDown: onInternalKeyDown,
|
|
onClose: function onClose() {
|
|
if (panelRef.current && panelRef.current.onClose) {
|
|
panelRef.current.onClose();
|
|
}
|
|
}
|
|
};
|
|
} // ============================ Effect ============================
|
|
|
|
|
|
external_window_React_["useEffect"](function () {
|
|
if (value && !initRef.current) {
|
|
setInnerViewDate(value);
|
|
}
|
|
}, [value]);
|
|
external_window_React_["useEffect"](function () {
|
|
initRef.current = false;
|
|
}, []); // ============================ Panels ============================
|
|
|
|
var panelNode;
|
|
|
|
var pickerProps = Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, props), {}, {
|
|
operationRef: panelRef,
|
|
prefixCls: prefixCls,
|
|
viewDate: viewDate,
|
|
value: mergedValue,
|
|
onViewDateChange: setViewDate,
|
|
sourceMode: sourceMode,
|
|
onPanelChange: onInternalPanelChange,
|
|
disabledDate: mergedMode !== 'decade' ? disabledDate : undefined
|
|
});
|
|
|
|
delete pickerProps.onChange;
|
|
delete pickerProps.onSelect;
|
|
|
|
switch (mergedMode) {
|
|
case 'decade':
|
|
panelNode = external_window_React_["createElement"](panels_DecadePanel, Object.assign({}, pickerProps, {
|
|
onSelect: function onSelect(date, type) {
|
|
setViewDate(date);
|
|
triggerSelect(date, type);
|
|
}
|
|
}));
|
|
break;
|
|
|
|
case 'year':
|
|
panelNode = external_window_React_["createElement"](panels_YearPanel, Object.assign({}, pickerProps, {
|
|
onSelect: function onSelect(date, type) {
|
|
setViewDate(date);
|
|
triggerSelect(date, type);
|
|
}
|
|
}));
|
|
break;
|
|
|
|
case 'month':
|
|
panelNode = external_window_React_["createElement"](panels_MonthPanel, Object.assign({}, pickerProps, {
|
|
onSelect: function onSelect(date, type) {
|
|
setViewDate(date);
|
|
triggerSelect(date, type);
|
|
}
|
|
}));
|
|
break;
|
|
|
|
case 'quarter':
|
|
panelNode = external_window_React_["createElement"](panels_QuarterPanel, Object.assign({}, pickerProps, {
|
|
onSelect: function onSelect(date, type) {
|
|
setViewDate(date);
|
|
triggerSelect(date, type);
|
|
}
|
|
}));
|
|
break;
|
|
|
|
case 'week':
|
|
panelNode = external_window_React_["createElement"](panels_WeekPanel, Object.assign({}, pickerProps, {
|
|
onSelect: function onSelect(date, type) {
|
|
setViewDate(date);
|
|
triggerSelect(date, type);
|
|
}
|
|
}));
|
|
break;
|
|
|
|
case 'time':
|
|
delete pickerProps.showTime;
|
|
panelNode = external_window_React_["createElement"](panels_TimePanel, Object.assign({}, pickerProps, Object(esm_typeof["a" /* default */])(showTime) === 'object' ? showTime : null, {
|
|
onSelect: function onSelect(date, type) {
|
|
setViewDate(date);
|
|
triggerSelect(date, type);
|
|
}
|
|
}));
|
|
break;
|
|
|
|
default:
|
|
if (showTime) {
|
|
panelNode = external_window_React_["createElement"](panels_DatetimePanel, Object.assign({}, pickerProps, {
|
|
onSelect: function onSelect(date, type) {
|
|
setViewDate(date);
|
|
triggerSelect(date, type);
|
|
}
|
|
}));
|
|
} else {
|
|
panelNode = external_window_React_["createElement"](panels_DatePanel, Object.assign({}, pickerProps, {
|
|
onSelect: function onSelect(date, type) {
|
|
setViewDate(date);
|
|
triggerSelect(date, type);
|
|
}
|
|
}));
|
|
}
|
|
|
|
} // ============================ Footer ============================
|
|
|
|
|
|
var extraFooter;
|
|
var rangesNode;
|
|
|
|
var onNow = function onNow() {
|
|
var now = generateConfig.getNow();
|
|
var lowerBoundTime = getLowerBoundTime(generateConfig.getHour(now), generateConfig.getMinute(now), generateConfig.getSecond(now), isHourStepValid ? hourStep : 1, isMinuteStepValid ? minuteStep : 1, isSecondStepValid ? secondStep : 1);
|
|
var adjustedNow = timeUtil_setTime(generateConfig, now, lowerBoundTime[0], // hour
|
|
lowerBoundTime[1], // minute
|
|
lowerBoundTime[2]);
|
|
triggerSelect(adjustedNow, 'submit');
|
|
};
|
|
|
|
if (!hideRanges) {
|
|
extraFooter = getExtraFooter(prefixCls, mergedMode, renderExtraFooter);
|
|
rangesNode = getRanges({
|
|
prefixCls: prefixCls,
|
|
components: components,
|
|
needConfirmButton: needConfirmButton,
|
|
okDisabled: !mergedValue || disabledDate && disabledDate(mergedValue),
|
|
locale: locale,
|
|
showNow: showNow,
|
|
onNow: needConfirmButton && onNow,
|
|
onOk: function onOk() {
|
|
if (mergedValue) {
|
|
triggerSelect(mergedValue, 'submit', true);
|
|
|
|
if (_onOk) {
|
|
_onOk(mergedValue);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
var todayNode;
|
|
|
|
if (showToday && mergedMode === 'date' && picker === 'date' && !showTime) {
|
|
var now = generateConfig.getNow();
|
|
var todayCls = "".concat(prefixCls, "-today-btn");
|
|
var disabled = disabledDate && disabledDate(now);
|
|
todayNode = external_window_React_["createElement"]("a", {
|
|
className: classnames_default()(todayCls, disabled && "".concat(todayCls, "-disabled")),
|
|
"aria-disabled": disabled,
|
|
onClick: function onClick() {
|
|
if (!disabled) {
|
|
triggerSelect(now, 'mouse', true);
|
|
}
|
|
}
|
|
}, locale.today);
|
|
}
|
|
|
|
return external_window_React_["createElement"](es_PanelContext.Provider, {
|
|
value: Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, panelContext), {}, {
|
|
hideHeader: 'hideHeader' in props ? hideHeader : panelContext.hideHeader,
|
|
hidePrevBtn: inRange && panelPosition === 'right',
|
|
hideNextBtn: inRange && panelPosition === 'left'
|
|
})
|
|
}, external_window_React_["createElement"]("div", {
|
|
tabIndex: tabIndex,
|
|
className: classnames_default()("".concat(prefixCls, "-panel"), className, (_classNames = {}, Object(defineProperty["a" /* default */])(_classNames, "".concat(prefixCls, "-panel-has-range"), rangedValue && rangedValue[0] && rangedValue[1]), Object(defineProperty["a" /* default */])(_classNames, "".concat(prefixCls, "-panel-has-range-hover"), hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1]), Object(defineProperty["a" /* default */])(_classNames, "".concat(prefixCls, "-panel-rtl"), direction === 'rtl'), _classNames)),
|
|
style: style,
|
|
onKeyDown: onInternalKeyDown,
|
|
onBlur: onInternalBlur,
|
|
onMouseDown: onMouseDown,
|
|
ref: panelDivRef
|
|
}, panelNode, extraFooter || rangesNode || todayNode ? external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-footer")
|
|
}, extraFooter, rangesNode, todayNode) : null));
|
|
}
|
|
|
|
/* harmony default export */ var es_PickerPanel = (PickerPanel);
|
|
/* eslint-enable */
|
|
// EXTERNAL MODULE: ./node_modules/rc-trigger/es/index.js + 5 modules
|
|
var es = __webpack_require__("uciX");
|
|
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/PickerTrigger.js
|
|
|
|
|
|
|
|
|
|
var BUILT_IN_PLACEMENTS = {
|
|
bottomLeft: {
|
|
points: ['tl', 'bl'],
|
|
offset: [0, 4],
|
|
overflow: {
|
|
adjustX: 1,
|
|
adjustY: 1
|
|
}
|
|
},
|
|
bottomRight: {
|
|
points: ['tr', 'br'],
|
|
offset: [0, 4],
|
|
overflow: {
|
|
adjustX: 1,
|
|
adjustY: 1
|
|
}
|
|
},
|
|
topLeft: {
|
|
points: ['bl', 'tl'],
|
|
offset: [0, -4],
|
|
overflow: {
|
|
adjustX: 0,
|
|
adjustY: 1
|
|
}
|
|
},
|
|
topRight: {
|
|
points: ['br', 'tr'],
|
|
offset: [0, -4],
|
|
overflow: {
|
|
adjustX: 0,
|
|
adjustY: 1
|
|
}
|
|
}
|
|
};
|
|
|
|
function PickerTrigger(_ref) {
|
|
var _classNames;
|
|
|
|
var prefixCls = _ref.prefixCls,
|
|
popupElement = _ref.popupElement,
|
|
popupStyle = _ref.popupStyle,
|
|
visible = _ref.visible,
|
|
dropdownClassName = _ref.dropdownClassName,
|
|
dropdownAlign = _ref.dropdownAlign,
|
|
transitionName = _ref.transitionName,
|
|
getPopupContainer = _ref.getPopupContainer,
|
|
children = _ref.children,
|
|
range = _ref.range,
|
|
popupPlacement = _ref.popupPlacement,
|
|
direction = _ref.direction;
|
|
var dropdownPrefixCls = "".concat(prefixCls, "-dropdown");
|
|
|
|
var getPopupPlacement = function getPopupPlacement() {
|
|
if (popupPlacement !== undefined) {
|
|
return popupPlacement;
|
|
}
|
|
|
|
return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';
|
|
};
|
|
|
|
return external_window_React_["createElement"](es["a" /* default */], {
|
|
showAction: [],
|
|
hideAction: [],
|
|
popupPlacement: getPopupPlacement(),
|
|
builtinPlacements: BUILT_IN_PLACEMENTS,
|
|
prefixCls: dropdownPrefixCls,
|
|
popupTransitionName: transitionName,
|
|
popup: popupElement,
|
|
popupAlign: dropdownAlign,
|
|
popupVisible: visible,
|
|
popupClassName: classnames_default()(dropdownClassName, (_classNames = {}, Object(defineProperty["a" /* default */])(_classNames, "".concat(dropdownPrefixCls, "-range"), range), Object(defineProperty["a" /* default */])(_classNames, "".concat(dropdownPrefixCls, "-rtl"), direction === 'rtl'), _classNames)),
|
|
popupStyle: popupStyle,
|
|
getPopupContainer: getPopupContainer
|
|
}, children);
|
|
}
|
|
|
|
/* harmony default export */ var es_PickerTrigger = (PickerTrigger);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/hooks/usePickerInput.js
|
|
|
|
|
|
|
|
|
|
function usePickerInput(_ref) {
|
|
var open = _ref.open,
|
|
value = _ref.value,
|
|
isClickOutside = _ref.isClickOutside,
|
|
triggerOpen = _ref.triggerOpen,
|
|
forwardKeyDown = _ref.forwardKeyDown,
|
|
blurToCancel = _ref.blurToCancel,
|
|
onSubmit = _ref.onSubmit,
|
|
onCancel = _ref.onCancel,
|
|
_onFocus = _ref.onFocus,
|
|
_onBlur = _ref.onBlur;
|
|
|
|
var _useState = Object(external_window_React_["useState"])(false),
|
|
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
|
|
typing = _useState2[0],
|
|
setTyping = _useState2[1];
|
|
|
|
var _useState3 = Object(external_window_React_["useState"])(false),
|
|
_useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
|
|
focused = _useState4[0],
|
|
setFocused = _useState4[1];
|
|
/**
|
|
* We will prevent blur to handle open event when user click outside,
|
|
* since this will repeat trigger `onOpenChange` event.
|
|
*/
|
|
|
|
|
|
var preventBlurRef = Object(external_window_React_["useRef"])(false);
|
|
var valueChangedRef = Object(external_window_React_["useRef"])(false);
|
|
var inputProps = {
|
|
onMouseDown: function onMouseDown() {
|
|
setTyping(true);
|
|
triggerOpen(true);
|
|
},
|
|
onKeyDown: function onKeyDown(e) {
|
|
switch (e.which) {
|
|
case KeyCode["a" /* default */].ENTER:
|
|
{
|
|
if (!open) {
|
|
triggerOpen(true);
|
|
} else if (onSubmit() !== false) {
|
|
setTyping(true);
|
|
}
|
|
|
|
e.preventDefault();
|
|
return;
|
|
}
|
|
|
|
case KeyCode["a" /* default */].TAB:
|
|
{
|
|
if (typing && open && !e.shiftKey) {
|
|
setTyping(false);
|
|
e.preventDefault();
|
|
} else if (!typing && open) {
|
|
if (!forwardKeyDown(e) && e.shiftKey) {
|
|
setTyping(true);
|
|
e.preventDefault();
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
case KeyCode["a" /* default */].ESC:
|
|
{
|
|
setTyping(true);
|
|
onCancel();
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (!open && ![KeyCode["a" /* default */].SHIFT].includes(e.which)) {
|
|
triggerOpen(true);
|
|
} else if (!typing) {
|
|
// Let popup panel handle keyboard
|
|
forwardKeyDown(e);
|
|
}
|
|
},
|
|
onFocus: function onFocus(e) {
|
|
setTyping(true);
|
|
setFocused(true);
|
|
|
|
if (_onFocus) {
|
|
_onFocus(e);
|
|
}
|
|
},
|
|
onBlur: function onBlur(e) {
|
|
if (preventBlurRef.current || !isClickOutside(document.activeElement)) {
|
|
preventBlurRef.current = false;
|
|
return;
|
|
}
|
|
|
|
if (blurToCancel) {
|
|
setTimeout(function () {
|
|
if (isClickOutside(document.activeElement)) {
|
|
onCancel();
|
|
}
|
|
}, 0);
|
|
} else if (open) {
|
|
triggerOpen(false);
|
|
|
|
if (valueChangedRef.current) {
|
|
onSubmit();
|
|
}
|
|
}
|
|
|
|
setFocused(false);
|
|
|
|
if (_onBlur) {
|
|
_onBlur(e);
|
|
}
|
|
}
|
|
}; // check if value changed
|
|
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
valueChangedRef.current = false;
|
|
}, [open]);
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
valueChangedRef.current = true;
|
|
}, [value]); // Global click handler
|
|
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
return addGlobalMouseDownEvent(function (_ref2) {
|
|
var target = _ref2.target;
|
|
|
|
if (open) {
|
|
if (!isClickOutside(target)) {
|
|
preventBlurRef.current = true; // Always set back in case `onBlur` prevented by user
|
|
|
|
requestAnimationFrame(function () {
|
|
preventBlurRef.current = false;
|
|
});
|
|
} else if (!focused) {
|
|
triggerOpen(false);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
return [inputProps, {
|
|
focused: focused,
|
|
typing: typing
|
|
}];
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/hooks/useTextValueMapping.js
|
|
|
|
|
|
function useTextValueMapping(_ref) {
|
|
var valueTexts = _ref.valueTexts,
|
|
onTextChange = _ref.onTextChange;
|
|
|
|
var _React$useState = external_window_React_["useState"](''),
|
|
_React$useState2 = Object(slicedToArray["a" /* default */])(_React$useState, 2),
|
|
text = _React$useState2[0],
|
|
setInnerText = _React$useState2[1];
|
|
|
|
var valueTextsRef = external_window_React_["useRef"]([]);
|
|
valueTextsRef.current = valueTexts;
|
|
|
|
function triggerTextChange(value) {
|
|
setInnerText(value);
|
|
onTextChange(value);
|
|
}
|
|
|
|
function resetText() {
|
|
setInnerText(valueTextsRef.current[0]);
|
|
}
|
|
|
|
external_window_React_["useEffect"](function () {
|
|
if (valueTexts.every(function (valText) {
|
|
return valText !== text;
|
|
})) {
|
|
resetText();
|
|
}
|
|
}, [valueTexts.join('||')]);
|
|
return [text, triggerTextChange, resetText];
|
|
}
|
|
// EXTERNAL MODULE: ./node_modules/shallowequal/index.js
|
|
var shallowequal = __webpack_require__("Gytx");
|
|
var shallowequal_default = /*#__PURE__*/__webpack_require__.n(shallowequal);
|
|
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/hooks/useValueTexts.js
|
|
|
|
|
|
function useValueTexts(value, _ref) {
|
|
var formatList = _ref.formatList,
|
|
generateConfig = _ref.generateConfig,
|
|
locale = _ref.locale;
|
|
return Object(useMemo["a" /* default */])(function () {
|
|
if (!value) {
|
|
return [[''], ''];
|
|
} // We will convert data format back to first format
|
|
|
|
|
|
var firstValueText = '';
|
|
var fullValueTexts = [];
|
|
|
|
for (var i = 0; i < formatList.length; i += 1) {
|
|
var format = formatList[i];
|
|
var formatStr = generateConfig.locale.format(locale.locale, value, format);
|
|
fullValueTexts.push(formatStr);
|
|
|
|
if (i === 0) {
|
|
firstValueText = formatStr;
|
|
}
|
|
}
|
|
|
|
return [fullValueTexts, firstValueText];
|
|
}, [value, formatList], function (prev, next) {
|
|
return prev[0] !== next[0] || !shallowequal_default()(prev[1], next[1]);
|
|
});
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/hooks/useHoverValue.js
|
|
|
|
|
|
|
|
function useHoverValue(valueText, _ref) {
|
|
var formatList = _ref.formatList,
|
|
generateConfig = _ref.generateConfig,
|
|
locale = _ref.locale;
|
|
|
|
var _useState = Object(external_window_React_["useState"])(null),
|
|
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
|
|
value = _useState2[0],
|
|
internalSetValue = _useState2[1];
|
|
|
|
var raf = Object(external_window_React_["useRef"])(null);
|
|
|
|
function setValue(val) {
|
|
var immediately = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
cancelAnimationFrame(raf.current);
|
|
|
|
if (immediately) {
|
|
internalSetValue(val);
|
|
return;
|
|
}
|
|
|
|
raf.current = requestAnimationFrame(function () {
|
|
internalSetValue(val);
|
|
});
|
|
}
|
|
|
|
var _useValueTexts = useValueTexts(value, {
|
|
formatList: formatList,
|
|
generateConfig: generateConfig,
|
|
locale: locale
|
|
}),
|
|
_useValueTexts2 = Object(slicedToArray["a" /* default */])(_useValueTexts, 2),
|
|
firstText = _useValueTexts2[1];
|
|
|
|
function onEnter(date) {
|
|
setValue(date);
|
|
}
|
|
|
|
function onLeave() {
|
|
var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
setValue(null, immediately);
|
|
}
|
|
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
onLeave(true);
|
|
}, [valueText]);
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
return function () {
|
|
return cancelAnimationFrame(raf.current);
|
|
};
|
|
}, []);
|
|
return [firstText, onEnter, onLeave];
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/Picker.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Removed:
|
|
* - getCalendarContainer: use `getPopupContainer` instead
|
|
* - onOk
|
|
*
|
|
* New Feature:
|
|
* - picker
|
|
* - allowEmpty
|
|
* - selectable
|
|
*
|
|
* Tips: Should add faq about `datetime` mode with `defaultValue`
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function InnerPicker(props) {
|
|
var _classNames2;
|
|
|
|
var _props$prefixCls = props.prefixCls,
|
|
prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,
|
|
id = props.id,
|
|
tabIndex = props.tabIndex,
|
|
style = props.style,
|
|
className = props.className,
|
|
dropdownClassName = props.dropdownClassName,
|
|
dropdownAlign = props.dropdownAlign,
|
|
popupStyle = props.popupStyle,
|
|
transitionName = props.transitionName,
|
|
generateConfig = props.generateConfig,
|
|
locale = props.locale,
|
|
inputReadOnly = props.inputReadOnly,
|
|
allowClear = props.allowClear,
|
|
autoFocus = props.autoFocus,
|
|
showTime = props.showTime,
|
|
_props$picker = props.picker,
|
|
picker = _props$picker === void 0 ? 'date' : _props$picker,
|
|
format = props.format,
|
|
use12Hours = props.use12Hours,
|
|
value = props.value,
|
|
defaultValue = props.defaultValue,
|
|
open = props.open,
|
|
defaultOpen = props.defaultOpen,
|
|
defaultOpenValue = props.defaultOpenValue,
|
|
suffixIcon = props.suffixIcon,
|
|
clearIcon = props.clearIcon,
|
|
disabled = props.disabled,
|
|
disabledDate = props.disabledDate,
|
|
placeholder = props.placeholder,
|
|
getPopupContainer = props.getPopupContainer,
|
|
pickerRef = props.pickerRef,
|
|
panelRender = props.panelRender,
|
|
onChange = props.onChange,
|
|
onOpenChange = props.onOpenChange,
|
|
onFocus = props.onFocus,
|
|
onBlur = props.onBlur,
|
|
onMouseDown = props.onMouseDown,
|
|
onMouseUp = props.onMouseUp,
|
|
onMouseEnter = props.onMouseEnter,
|
|
onMouseLeave = props.onMouseLeave,
|
|
onContextMenu = props.onContextMenu,
|
|
onClick = props.onClick,
|
|
direction = props.direction,
|
|
_props$autoComplete = props.autoComplete,
|
|
autoComplete = _props$autoComplete === void 0 ? 'off' : _props$autoComplete;
|
|
var inputRef = external_window_React_["useRef"](null);
|
|
var needConfirmButton = picker === 'date' && !!showTime || picker === 'time'; // ============================= State =============================
|
|
|
|
var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours)); // Panel ref
|
|
|
|
var panelDivRef = external_window_React_["useRef"](null);
|
|
var inputDivRef = external_window_React_["useRef"](null); // Real value
|
|
|
|
var _useMergedState = Object(useMergedState["a" /* default */])(null, {
|
|
value: value,
|
|
defaultValue: defaultValue
|
|
}),
|
|
_useMergedState2 = Object(slicedToArray["a" /* default */])(_useMergedState, 2),
|
|
mergedValue = _useMergedState2[0],
|
|
setInnerValue = _useMergedState2[1]; // Selected value
|
|
|
|
|
|
var _React$useState = external_window_React_["useState"](mergedValue),
|
|
_React$useState2 = Object(slicedToArray["a" /* default */])(_React$useState, 2),
|
|
selectedValue = _React$useState2[0],
|
|
setSelectedValue = _React$useState2[1]; // Operation ref
|
|
|
|
|
|
var operationRef = external_window_React_["useRef"](null); // Open
|
|
|
|
var _useMergedState3 = Object(useMergedState["a" /* default */])(false, {
|
|
value: open,
|
|
defaultValue: defaultOpen,
|
|
postState: function postState(postOpen) {
|
|
return disabled ? false : postOpen;
|
|
},
|
|
onChange: function onChange(newOpen) {
|
|
if (onOpenChange) {
|
|
onOpenChange(newOpen);
|
|
}
|
|
|
|
if (!newOpen && operationRef.current && operationRef.current.onClose) {
|
|
operationRef.current.onClose();
|
|
}
|
|
}
|
|
}),
|
|
_useMergedState4 = Object(slicedToArray["a" /* default */])(_useMergedState3, 2),
|
|
mergedOpen = _useMergedState4[0],
|
|
triggerInnerOpen = _useMergedState4[1]; // ============================= Text ==============================
|
|
|
|
|
|
var _useValueTexts = useValueTexts(selectedValue, {
|
|
formatList: formatList,
|
|
generateConfig: generateConfig,
|
|
locale: locale
|
|
}),
|
|
_useValueTexts2 = Object(slicedToArray["a" /* default */])(_useValueTexts, 2),
|
|
valueTexts = _useValueTexts2[0],
|
|
firstValueText = _useValueTexts2[1];
|
|
|
|
var _useTextValueMapping = useTextValueMapping({
|
|
valueTexts: valueTexts,
|
|
onTextChange: function onTextChange(newText) {
|
|
var inputDate = generateConfig.locale.parse(locale.locale, newText, formatList);
|
|
|
|
if (inputDate && (!disabledDate || !disabledDate(inputDate))) {
|
|
setSelectedValue(inputDate);
|
|
}
|
|
}
|
|
}),
|
|
_useTextValueMapping2 = Object(slicedToArray["a" /* default */])(_useTextValueMapping, 3),
|
|
text = _useTextValueMapping2[0],
|
|
triggerTextChange = _useTextValueMapping2[1],
|
|
resetText = _useTextValueMapping2[2]; // ============================ Trigger ============================
|
|
|
|
|
|
var triggerChange = function triggerChange(newValue) {
|
|
setSelectedValue(newValue);
|
|
setInnerValue(newValue);
|
|
|
|
if (onChange && !isEqual(generateConfig, mergedValue, newValue)) {
|
|
onChange(newValue, newValue ? generateConfig.locale.format(locale.locale, newValue, formatList[0]) : '');
|
|
}
|
|
};
|
|
|
|
var triggerOpen = function triggerOpen(newOpen) {
|
|
if (disabled && newOpen) {
|
|
return;
|
|
}
|
|
|
|
triggerInnerOpen(newOpen);
|
|
};
|
|
|
|
var forwardKeyDown = function forwardKeyDown(e) {
|
|
if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {
|
|
// Let popup panel handle keyboard
|
|
return operationRef.current.onKeyDown(e);
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
/* eslint-disable no-lone-blocks */
|
|
|
|
|
|
{
|
|
Object(warning["a" /* default */])(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');
|
|
return false;
|
|
}
|
|
};
|
|
|
|
var onInternalMouseUp = function onInternalMouseUp() {
|
|
if (onMouseUp) {
|
|
onMouseUp.apply(void 0, arguments);
|
|
}
|
|
|
|
if (inputRef.current) {
|
|
inputRef.current.focus();
|
|
triggerOpen(true);
|
|
}
|
|
}; // ============================= Input =============================
|
|
|
|
|
|
var _usePickerInput = usePickerInput({
|
|
blurToCancel: needConfirmButton,
|
|
open: mergedOpen,
|
|
value: text,
|
|
triggerOpen: triggerOpen,
|
|
forwardKeyDown: forwardKeyDown,
|
|
isClickOutside: function isClickOutside(target) {
|
|
return !elementsContains([panelDivRef.current, inputDivRef.current], target);
|
|
},
|
|
onSubmit: function onSubmit() {
|
|
if (disabledDate && disabledDate(selectedValue)) {
|
|
return false;
|
|
}
|
|
|
|
triggerChange(selectedValue);
|
|
triggerOpen(false);
|
|
resetText();
|
|
return true;
|
|
},
|
|
onCancel: function onCancel() {
|
|
triggerOpen(false);
|
|
setSelectedValue(mergedValue);
|
|
resetText();
|
|
},
|
|
onFocus: onFocus,
|
|
onBlur: onBlur
|
|
}),
|
|
_usePickerInput2 = Object(slicedToArray["a" /* default */])(_usePickerInput, 2),
|
|
inputProps = _usePickerInput2[0],
|
|
_usePickerInput2$ = _usePickerInput2[1],
|
|
focused = _usePickerInput2$.focused,
|
|
typing = _usePickerInput2$.typing; // ============================= Sync ==============================
|
|
// Close should sync back with text value
|
|
|
|
|
|
external_window_React_["useEffect"](function () {
|
|
if (!mergedOpen) {
|
|
setSelectedValue(mergedValue);
|
|
|
|
if (!valueTexts.length || valueTexts[0] === '') {
|
|
triggerTextChange('');
|
|
} else if (firstValueText !== text) {
|
|
resetText();
|
|
}
|
|
}
|
|
}, [mergedOpen, valueTexts]); // Change picker should sync back with text value
|
|
|
|
external_window_React_["useEffect"](function () {
|
|
if (!mergedOpen) {
|
|
resetText();
|
|
}
|
|
}, [picker]); // Sync innerValue with control mode
|
|
|
|
external_window_React_["useEffect"](function () {
|
|
// Sync select value
|
|
setSelectedValue(mergedValue);
|
|
}, [mergedValue]); // ============================ Private ============================
|
|
|
|
if (pickerRef) {
|
|
pickerRef.current = {
|
|
focus: function focus() {
|
|
if (inputRef.current) {
|
|
inputRef.current.focus();
|
|
}
|
|
},
|
|
blur: function blur() {
|
|
if (inputRef.current) {
|
|
inputRef.current.blur();
|
|
}
|
|
}
|
|
};
|
|
} // ============================= Panel =============================
|
|
|
|
|
|
var panelProps = Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, props), {}, {
|
|
className: undefined,
|
|
style: undefined,
|
|
pickerValue: undefined,
|
|
onPickerValueChange: undefined
|
|
});
|
|
|
|
var panelNode = external_window_React_["createElement"](es_PickerPanel, Object.assign({}, panelProps, {
|
|
generateConfig: generateConfig,
|
|
className: classnames_default()(Object(defineProperty["a" /* default */])({}, "".concat(prefixCls, "-panel-focused"), !typing)),
|
|
value: selectedValue,
|
|
locale: locale,
|
|
tabIndex: -1,
|
|
onChange: setSelectedValue,
|
|
direction: direction
|
|
}));
|
|
|
|
if (panelRender) {
|
|
panelNode = panelRender(panelNode);
|
|
}
|
|
|
|
var panel = external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-panel-container"),
|
|
onMouseDown: function onMouseDown(e) {
|
|
e.preventDefault();
|
|
}
|
|
}, panelNode);
|
|
var suffixNode;
|
|
|
|
if (suffixIcon) {
|
|
suffixNode = external_window_React_["createElement"]("span", {
|
|
className: "".concat(prefixCls, "-suffix")
|
|
}, suffixIcon);
|
|
}
|
|
|
|
var clearNode;
|
|
|
|
if (allowClear && mergedValue && !disabled) {
|
|
clearNode = external_window_React_["createElement"]("span", {
|
|
onMouseDown: function onMouseDown(e) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
},
|
|
onMouseUp: function onMouseUp(e) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
triggerChange(null);
|
|
triggerOpen(false);
|
|
},
|
|
className: "".concat(prefixCls, "-clear")
|
|
}, clearIcon || external_window_React_["createElement"]("span", {
|
|
className: "".concat(prefixCls, "-clear-btn")
|
|
}));
|
|
} // ============================ Warning ============================
|
|
|
|
|
|
if (false) {} // ============================ Return =============================
|
|
|
|
|
|
var onContextSelect = function onContextSelect(date, type) {
|
|
if (type === 'submit' || type !== 'key' && !needConfirmButton) {
|
|
// triggerChange will also update selected values
|
|
triggerChange(date);
|
|
triggerOpen(false);
|
|
}
|
|
};
|
|
|
|
var popupPlacement = direction === 'rtl' ? 'bottomRight' : 'bottomLeft';
|
|
|
|
var _useHoverValue = useHoverValue(text, {
|
|
formatList: formatList,
|
|
generateConfig: generateConfig,
|
|
locale: locale
|
|
}),
|
|
_useHoverValue2 = Object(slicedToArray["a" /* default */])(_useHoverValue, 3),
|
|
hoverValue = _useHoverValue2[0],
|
|
onEnter = _useHoverValue2[1],
|
|
onLeave = _useHoverValue2[2];
|
|
|
|
return external_window_React_["createElement"](es_PanelContext.Provider, {
|
|
value: {
|
|
operationRef: operationRef,
|
|
hideHeader: picker === 'time',
|
|
panelRef: panelDivRef,
|
|
onSelect: onContextSelect,
|
|
open: mergedOpen,
|
|
defaultOpenValue: defaultOpenValue,
|
|
onDateMouseEnter: onEnter,
|
|
onDateMouseLeave: onLeave
|
|
}
|
|
}, external_window_React_["createElement"](es_PickerTrigger, {
|
|
visible: mergedOpen,
|
|
popupElement: panel,
|
|
popupStyle: popupStyle,
|
|
prefixCls: prefixCls,
|
|
dropdownClassName: dropdownClassName,
|
|
dropdownAlign: dropdownAlign,
|
|
getPopupContainer: getPopupContainer,
|
|
transitionName: transitionName,
|
|
popupPlacement: popupPlacement,
|
|
direction: direction
|
|
}, external_window_React_["createElement"]("div", {
|
|
className: classnames_default()(prefixCls, className, (_classNames2 = {}, Object(defineProperty["a" /* default */])(_classNames2, "".concat(prefixCls, "-disabled"), disabled), Object(defineProperty["a" /* default */])(_classNames2, "".concat(prefixCls, "-focused"), focused), Object(defineProperty["a" /* default */])(_classNames2, "".concat(prefixCls, "-rtl"), direction === 'rtl'), _classNames2)),
|
|
style: style,
|
|
onMouseDown: onMouseDown,
|
|
onMouseUp: onInternalMouseUp,
|
|
onMouseEnter: onMouseEnter,
|
|
onMouseLeave: onMouseLeave,
|
|
onContextMenu: onContextMenu,
|
|
onClick: onClick
|
|
}, external_window_React_["createElement"]("div", {
|
|
className: classnames_default()("".concat(prefixCls, "-input"), Object(defineProperty["a" /* default */])({}, "".concat(prefixCls, "-input-placeholder"), !!hoverValue)),
|
|
ref: inputDivRef
|
|
}, external_window_React_["createElement"]("input", Object.assign({
|
|
id: id,
|
|
tabIndex: tabIndex,
|
|
disabled: disabled,
|
|
readOnly: inputReadOnly || !typing,
|
|
value: hoverValue || text,
|
|
onChange: function onChange(e) {
|
|
triggerTextChange(e.target.value);
|
|
},
|
|
autoFocus: autoFocus,
|
|
placeholder: placeholder,
|
|
ref: inputRef,
|
|
title: text
|
|
}, inputProps, {
|
|
size: getInputSize(picker, formatList[0])
|
|
}, getDataOrAriaProps(props), {
|
|
autoComplete: autoComplete
|
|
})), suffixNode, clearNode))));
|
|
} // Wrap with class component to enable pass generic with instance method
|
|
|
|
|
|
var Picker_Picker = /*#__PURE__*/function (_React$Component) {
|
|
Object(inherits["a" /* default */])(Picker, _React$Component);
|
|
|
|
var _super = Object(createSuper["a" /* default */])(Picker);
|
|
|
|
function Picker() {
|
|
var _this;
|
|
|
|
Object(classCallCheck["a" /* default */])(this, Picker);
|
|
|
|
_this = _super.apply(this, arguments);
|
|
_this.pickerRef = external_window_React_["createRef"]();
|
|
|
|
_this.focus = function () {
|
|
if (_this.pickerRef.current) {
|
|
_this.pickerRef.current.focus();
|
|
}
|
|
};
|
|
|
|
_this.blur = function () {
|
|
if (_this.pickerRef.current) {
|
|
_this.pickerRef.current.blur();
|
|
}
|
|
};
|
|
|
|
return _this;
|
|
}
|
|
|
|
Object(createClass["a" /* default */])(Picker, [{
|
|
key: "render",
|
|
value: function render() {
|
|
return external_window_React_["createElement"](InnerPicker, Object.assign({}, this.props, {
|
|
pickerRef: this.pickerRef
|
|
}));
|
|
}
|
|
}]);
|
|
|
|
return Picker;
|
|
}(external_window_React_["Component"]);
|
|
|
|
/* harmony default export */ var es_Picker = (Picker_Picker);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/hooks/useRangeDisabled.js
|
|
|
|
|
|
|
|
function useRangeDisabled(_ref, disabledStart, disabledEnd) {
|
|
var picker = _ref.picker,
|
|
locale = _ref.locale,
|
|
selectedValue = _ref.selectedValue,
|
|
disabledDate = _ref.disabledDate,
|
|
disabled = _ref.disabled,
|
|
generateConfig = _ref.generateConfig;
|
|
var startDate = getValue(selectedValue, 0);
|
|
var endDate = getValue(selectedValue, 1);
|
|
|
|
function weekNumber(date) {
|
|
var year = generateConfig.getYear(date);
|
|
var week = generateConfig.locale.getWeek(locale.locale, date);
|
|
return year * 100 + week;
|
|
}
|
|
|
|
function monthNumber(date) {
|
|
var year = generateConfig.getYear(date);
|
|
var month = generateConfig.getMonth(date);
|
|
return year * 100 + month;
|
|
}
|
|
|
|
function quarterNumber(date) {
|
|
var year = generateConfig.getYear(date);
|
|
var quarter = getQuarter(generateConfig, date);
|
|
return year * 10 + quarter;
|
|
}
|
|
|
|
var disabledStartDate = external_window_React_["useCallback"](function (date) {
|
|
if (disabledDate && disabledDate(date)) {
|
|
return true;
|
|
} // Disabled range
|
|
|
|
|
|
if (disabled[1] && endDate) {
|
|
return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);
|
|
} // Disabled part
|
|
|
|
|
|
if (disabledStart && endDate) {
|
|
switch (picker) {
|
|
case 'quarter':
|
|
return quarterNumber(date) > quarterNumber(endDate);
|
|
|
|
case 'month':
|
|
return monthNumber(date) > monthNumber(endDate);
|
|
|
|
case 'week':
|
|
return weekNumber(date) > weekNumber(endDate);
|
|
|
|
default:
|
|
return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}, [disabledDate, disabled[1], endDate, disabledStart]);
|
|
var disabledEndDate = external_window_React_["useCallback"](function (date) {
|
|
if (disabledDate && disabledDate(date)) {
|
|
return true;
|
|
} // Disabled range
|
|
|
|
|
|
if (disabled[0] && startDate) {
|
|
return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(startDate, date);
|
|
} // Disabled part
|
|
|
|
|
|
if (disabledEnd && startDate) {
|
|
switch (picker) {
|
|
case 'quarter':
|
|
return quarterNumber(date) < quarterNumber(startDate);
|
|
|
|
case 'month':
|
|
return monthNumber(date) < monthNumber(startDate);
|
|
|
|
case 'week':
|
|
return weekNumber(date) < weekNumber(startDate);
|
|
|
|
default:
|
|
return !isSameDate(generateConfig, date, startDate) && generateConfig.isAfter(startDate, date);
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}, [disabledDate, disabled[0], startDate, disabledEnd]);
|
|
return [disabledStartDate, disabledEndDate];
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/hooks/useRangeViewDates.js
|
|
|
|
|
|
|
|
|
|
|
|
function getStartEndDistance(startDate, endDate, picker, generateConfig) {
|
|
var startNext = getClosingViewDate(startDate, picker, generateConfig, 1);
|
|
|
|
function getDistance(compareFunc) {
|
|
if (compareFunc(startDate, endDate)) {
|
|
return 'same';
|
|
}
|
|
|
|
if (compareFunc(startNext, endDate)) {
|
|
return 'closing';
|
|
}
|
|
|
|
return 'far';
|
|
}
|
|
|
|
switch (picker) {
|
|
case 'year':
|
|
return getDistance(function (start, end) {
|
|
return isSameDecade(generateConfig, start, end);
|
|
});
|
|
|
|
case 'quarter':
|
|
case 'month':
|
|
return getDistance(function (start, end) {
|
|
return isSameYear(generateConfig, start, end);
|
|
});
|
|
|
|
default:
|
|
return getDistance(function (start, end) {
|
|
return isSameMonth(generateConfig, start, end);
|
|
});
|
|
}
|
|
}
|
|
|
|
function getRangeViewDate(values, index, picker, generateConfig) {
|
|
var startDate = getValue(values, 0);
|
|
var endDate = getValue(values, 1);
|
|
|
|
if (index === 0) {
|
|
return startDate;
|
|
}
|
|
|
|
if (startDate && endDate) {
|
|
var distance = getStartEndDistance(startDate, endDate, picker, generateConfig);
|
|
|
|
switch (distance) {
|
|
case 'same':
|
|
return startDate;
|
|
|
|
case 'closing':
|
|
return startDate;
|
|
|
|
default:
|
|
return getClosingViewDate(endDate, picker, generateConfig, -1);
|
|
}
|
|
}
|
|
|
|
return startDate;
|
|
}
|
|
|
|
function useRangeViewDates(_ref) {
|
|
var values = _ref.values,
|
|
picker = _ref.picker,
|
|
defaultDates = _ref.defaultDates,
|
|
generateConfig = _ref.generateConfig;
|
|
|
|
var _React$useState = external_window_React_["useState"](function () {
|
|
return [getValue(defaultDates, 0), getValue(defaultDates, 1)];
|
|
}),
|
|
_React$useState2 = Object(slicedToArray["a" /* default */])(_React$useState, 2),
|
|
defaultViewDates = _React$useState2[0],
|
|
setDefaultViewDates = _React$useState2[1];
|
|
|
|
var _React$useState3 = external_window_React_["useState"](null),
|
|
_React$useState4 = Object(slicedToArray["a" /* default */])(_React$useState3, 2),
|
|
viewDates = _React$useState4[0],
|
|
setInternalViewDates = _React$useState4[1];
|
|
|
|
var startDate = getValue(values, 0);
|
|
var endDate = getValue(values, 1);
|
|
|
|
function getViewDate(index) {
|
|
// If set default view date, use it
|
|
if (defaultViewDates[index]) {
|
|
return defaultViewDates[index];
|
|
}
|
|
|
|
return getValue(viewDates, index) || getRangeViewDate(values, index, picker, generateConfig) || startDate || endDate || generateConfig.getNow();
|
|
}
|
|
|
|
function setViewDate(viewDate, index) {
|
|
if (viewDate) {
|
|
var newViewDates = updateValues(viewDates, viewDate, index); // Set view date will clean up default one
|
|
|
|
setDefaultViewDates( // Should always be an array
|
|
updateValues(defaultViewDates, null, index) || [null, null]); // Reset another one when not have value
|
|
|
|
var anotherIndex = (index + 1) % 2;
|
|
|
|
if (!getValue(values, anotherIndex)) {
|
|
newViewDates = updateValues(newViewDates, viewDate, anotherIndex);
|
|
}
|
|
|
|
setInternalViewDates(newViewDates);
|
|
} else if (startDate || endDate) {
|
|
// Reset all when has values when `viewDate` is `null` which means from open trigger
|
|
setInternalViewDates(null);
|
|
}
|
|
}
|
|
|
|
return [getViewDate, setViewDate];
|
|
}
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/RangePicker.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function reorderValues(values, generateConfig) {
|
|
if (values && values[0] && values[1] && generateConfig.isAfter(values[0], values[1])) {
|
|
return [values[1], values[0]];
|
|
}
|
|
|
|
return values;
|
|
}
|
|
|
|
function canValueTrigger(value, index, disabled, allowEmpty) {
|
|
if (value) {
|
|
return true;
|
|
}
|
|
|
|
if (allowEmpty && allowEmpty[index]) {
|
|
return true;
|
|
}
|
|
|
|
if (disabled[(index + 1) % 2]) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function InnerRangePicker(props) {
|
|
var _classNames2, _classNames3, _classNames4;
|
|
|
|
var _props$prefixCls = props.prefixCls,
|
|
prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,
|
|
id = props.id,
|
|
style = props.style,
|
|
className = props.className,
|
|
popupStyle = props.popupStyle,
|
|
dropdownClassName = props.dropdownClassName,
|
|
transitionName = props.transitionName,
|
|
dropdownAlign = props.dropdownAlign,
|
|
getPopupContainer = props.getPopupContainer,
|
|
generateConfig = props.generateConfig,
|
|
locale = props.locale,
|
|
placeholder = props.placeholder,
|
|
autoFocus = props.autoFocus,
|
|
disabled = props.disabled,
|
|
format = props.format,
|
|
_props$picker = props.picker,
|
|
picker = _props$picker === void 0 ? 'date' : _props$picker,
|
|
showTime = props.showTime,
|
|
use12Hours = props.use12Hours,
|
|
_props$separator = props.separator,
|
|
separator = _props$separator === void 0 ? '~' : _props$separator,
|
|
value = props.value,
|
|
defaultValue = props.defaultValue,
|
|
defaultPickerValue = props.defaultPickerValue,
|
|
open = props.open,
|
|
defaultOpen = props.defaultOpen,
|
|
disabledDate = props.disabledDate,
|
|
_disabledTime = props.disabledTime,
|
|
dateRender = props.dateRender,
|
|
panelRender = props.panelRender,
|
|
ranges = props.ranges,
|
|
allowEmpty = props.allowEmpty,
|
|
allowClear = props.allowClear,
|
|
suffixIcon = props.suffixIcon,
|
|
clearIcon = props.clearIcon,
|
|
pickerRef = props.pickerRef,
|
|
inputReadOnly = props.inputReadOnly,
|
|
mode = props.mode,
|
|
renderExtraFooter = props.renderExtraFooter,
|
|
onChange = props.onChange,
|
|
onOpenChange = props.onOpenChange,
|
|
onPanelChange = props.onPanelChange,
|
|
onCalendarChange = props.onCalendarChange,
|
|
_onFocus = props.onFocus,
|
|
onBlur = props.onBlur,
|
|
_onOk = props.onOk,
|
|
components = props.components,
|
|
order = props.order,
|
|
direction = props.direction,
|
|
activePickerIndex = props.activePickerIndex,
|
|
_props$autoComplete = props.autoComplete,
|
|
autoComplete = _props$autoComplete === void 0 ? 'off' : _props$autoComplete;
|
|
var needConfirmButton = picker === 'date' && !!showTime || picker === 'time'; // We record opened status here in case repeat open with picker
|
|
|
|
var openRecordsRef = Object(external_window_React_["useRef"])({});
|
|
var containerRef = Object(external_window_React_["useRef"])(null);
|
|
var panelDivRef = Object(external_window_React_["useRef"])(null);
|
|
var startInputDivRef = Object(external_window_React_["useRef"])(null);
|
|
var endInputDivRef = Object(external_window_React_["useRef"])(null);
|
|
var separatorRef = Object(external_window_React_["useRef"])(null);
|
|
var startInputRef = Object(external_window_React_["useRef"])(null);
|
|
var endInputRef = Object(external_window_React_["useRef"])(null); // ============================= Misc ==============================
|
|
|
|
var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours)); // Active picker
|
|
|
|
var _useMergedState = Object(useMergedState["a" /* default */])(0, {
|
|
value: activePickerIndex
|
|
}),
|
|
_useMergedState2 = Object(slicedToArray["a" /* default */])(_useMergedState, 2),
|
|
mergedActivePickerIndex = _useMergedState2[0],
|
|
setMergedActivePickerIndex = _useMergedState2[1]; // Operation ref
|
|
|
|
|
|
var operationRef = Object(external_window_React_["useRef"])(null);
|
|
var mergedDisabled = external_window_React_["useMemo"](function () {
|
|
if (Array.isArray(disabled)) {
|
|
return disabled;
|
|
}
|
|
|
|
return [disabled || false, disabled || false];
|
|
}, [disabled]); // ============================= Value =============================
|
|
|
|
var _useMergedState3 = Object(useMergedState["a" /* default */])(null, {
|
|
value: value,
|
|
defaultValue: defaultValue,
|
|
postState: function postState(values) {
|
|
return picker === 'time' && !order ? values : reorderValues(values, generateConfig);
|
|
}
|
|
}),
|
|
_useMergedState4 = Object(slicedToArray["a" /* default */])(_useMergedState3, 2),
|
|
mergedValue = _useMergedState4[0],
|
|
setInnerValue = _useMergedState4[1]; // =========================== View Date ===========================
|
|
// Config view panel
|
|
|
|
|
|
var _useRangeViewDates = useRangeViewDates({
|
|
values: mergedValue,
|
|
picker: picker,
|
|
defaultDates: defaultPickerValue,
|
|
generateConfig: generateConfig
|
|
}),
|
|
_useRangeViewDates2 = Object(slicedToArray["a" /* default */])(_useRangeViewDates, 2),
|
|
getViewDate = _useRangeViewDates2[0],
|
|
setViewDate = _useRangeViewDates2[1]; // ========================= Select Values =========================
|
|
|
|
|
|
var _useMergedState5 = Object(useMergedState["a" /* default */])(mergedValue, {
|
|
postState: function postState(values) {
|
|
var postValues = values;
|
|
|
|
if (mergedDisabled[0] && mergedDisabled[1]) {
|
|
return postValues;
|
|
} // Fill disabled unit
|
|
|
|
|
|
for (var i = 0; i < 2; i += 1) {
|
|
if (mergedDisabled[i] && !getValue(postValues, i) && !getValue(allowEmpty, i)) {
|
|
postValues = updateValues(postValues, generateConfig.getNow(), i);
|
|
}
|
|
}
|
|
|
|
return postValues;
|
|
}
|
|
}),
|
|
_useMergedState6 = Object(slicedToArray["a" /* default */])(_useMergedState5, 2),
|
|
selectedValue = _useMergedState6[0],
|
|
setSelectedValue = _useMergedState6[1]; // ============================= Modes =============================
|
|
|
|
|
|
var _useMergedState7 = Object(useMergedState["a" /* default */])([picker, picker], {
|
|
value: mode
|
|
}),
|
|
_useMergedState8 = Object(slicedToArray["a" /* default */])(_useMergedState7, 2),
|
|
mergedModes = _useMergedState8[0],
|
|
setInnerModes = _useMergedState8[1];
|
|
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
setInnerModes([picker, picker]);
|
|
}, [picker]);
|
|
|
|
var triggerModesChange = function triggerModesChange(modes, values) {
|
|
setInnerModes(modes);
|
|
|
|
if (onPanelChange) {
|
|
onPanelChange(values, modes);
|
|
}
|
|
}; // ========================= Disable Date ==========================
|
|
|
|
|
|
var _useRangeDisabled = useRangeDisabled({
|
|
picker: picker,
|
|
selectedValue: selectedValue,
|
|
locale: locale,
|
|
disabled: mergedDisabled,
|
|
disabledDate: disabledDate,
|
|
generateConfig: generateConfig
|
|
}, openRecordsRef.current[1], openRecordsRef.current[0]),
|
|
_useRangeDisabled2 = Object(slicedToArray["a" /* default */])(_useRangeDisabled, 2),
|
|
disabledStartDate = _useRangeDisabled2[0],
|
|
disabledEndDate = _useRangeDisabled2[1]; // ============================= Open ==============================
|
|
|
|
|
|
var _useMergedState9 = Object(useMergedState["a" /* default */])(false, {
|
|
value: open,
|
|
defaultValue: defaultOpen,
|
|
postState: function postState(postOpen) {
|
|
return mergedDisabled[mergedActivePickerIndex] ? false : postOpen;
|
|
},
|
|
onChange: function onChange(newOpen) {
|
|
if (onOpenChange) {
|
|
onOpenChange(newOpen);
|
|
}
|
|
|
|
if (!newOpen && operationRef.current && operationRef.current.onClose) {
|
|
operationRef.current.onClose();
|
|
}
|
|
}
|
|
}),
|
|
_useMergedState10 = Object(slicedToArray["a" /* default */])(_useMergedState9, 2),
|
|
mergedOpen = _useMergedState10[0],
|
|
triggerInnerOpen = _useMergedState10[1];
|
|
|
|
var startOpen = mergedOpen && mergedActivePickerIndex === 0;
|
|
var endOpen = mergedOpen && mergedActivePickerIndex === 1; // ============================= Popup =============================
|
|
// Popup min width
|
|
|
|
var _useState = Object(external_window_React_["useState"])(0),
|
|
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
|
|
popupMinWidth = _useState2[0],
|
|
setPopupMinWidth = _useState2[1];
|
|
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
if (!mergedOpen && containerRef.current) {
|
|
setPopupMinWidth(containerRef.current.offsetWidth);
|
|
}
|
|
}, [mergedOpen]); // ============================ Trigger ============================
|
|
|
|
var triggerRef = external_window_React_["useRef"]();
|
|
|
|
function _triggerOpen(newOpen, index) {
|
|
if (newOpen) {
|
|
clearTimeout(triggerRef.current);
|
|
openRecordsRef.current[index] = true;
|
|
setMergedActivePickerIndex(index);
|
|
triggerInnerOpen(newOpen); // Open to reset view date
|
|
|
|
if (!mergedOpen) {
|
|
setViewDate(null, index);
|
|
}
|
|
} else if (mergedActivePickerIndex === index) {
|
|
triggerInnerOpen(newOpen); // Clean up async
|
|
// This makes ref not quick refresh in case user open another input with blur trigger
|
|
|
|
var openRecords = openRecordsRef.current;
|
|
triggerRef.current = setTimeout(function () {
|
|
if (openRecords === openRecordsRef.current) {
|
|
openRecordsRef.current = {};
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
function triggerOpenAndFocus(index) {
|
|
_triggerOpen(true, index); // Use setTimeout to make sure panel DOM exists
|
|
|
|
|
|
setTimeout(function () {
|
|
var inputRef = [startInputRef, endInputRef][index];
|
|
|
|
if (inputRef.current) {
|
|
inputRef.current.focus();
|
|
}
|
|
}, 0);
|
|
}
|
|
|
|
function triggerChange(newValue, sourceIndex) {
|
|
var values = newValue;
|
|
var startValue = getValue(values, 0);
|
|
var endValue = getValue(values, 1); // >>>>> Format start & end values
|
|
|
|
if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {
|
|
if ( // WeekPicker only compare week
|
|
picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) || // QuotaPicker only compare week
|
|
picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) || // Other non-TimePicker compare date
|
|
picker !== 'week' && picker !== 'quarter' && picker !== 'time' && !isSameDate(generateConfig, startValue, endValue)) {
|
|
// Clean up end date when start date is after end date
|
|
if (sourceIndex === 0) {
|
|
values = [startValue, null];
|
|
endValue = null;
|
|
} else {
|
|
startValue = null;
|
|
values = [null, endValue];
|
|
} // Clean up cache since invalidate
|
|
|
|
|
|
openRecordsRef.current = Object(defineProperty["a" /* default */])({}, sourceIndex, true);
|
|
} else if (picker !== 'time' || order !== false) {
|
|
// Reorder when in same date
|
|
values = reorderValues(values, generateConfig);
|
|
}
|
|
}
|
|
|
|
setSelectedValue(values);
|
|
var startStr = values && values[0] ? generateConfig.locale.format(locale.locale, values[0], formatList[0]) : '';
|
|
var endStr = values && values[1] ? generateConfig.locale.format(locale.locale, values[1], formatList[0]) : '';
|
|
|
|
if (onCalendarChange) {
|
|
var info = {
|
|
range: sourceIndex === 0 ? 'start' : 'end'
|
|
};
|
|
onCalendarChange(values, [startStr, endStr], info);
|
|
} // >>>>> Trigger `onChange` event
|
|
|
|
|
|
var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);
|
|
var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);
|
|
var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;
|
|
|
|
if (canTrigger) {
|
|
// Trigger onChange only when value is validate
|
|
setInnerValue(values);
|
|
|
|
if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {
|
|
onChange(values, [startStr, endStr]);
|
|
}
|
|
} // >>>>> Open picker when
|
|
// Always open another picker if possible
|
|
|
|
|
|
var nextOpenIndex = null;
|
|
|
|
if (sourceIndex === 0 && !mergedDisabled[1]) {
|
|
nextOpenIndex = 1;
|
|
} else if (sourceIndex === 1 && !mergedDisabled[0]) {
|
|
nextOpenIndex = 0;
|
|
}
|
|
|
|
if (nextOpenIndex !== null && nextOpenIndex !== mergedActivePickerIndex && (!openRecordsRef.current[nextOpenIndex] || !getValue(values, nextOpenIndex)) && getValue(values, sourceIndex)) {
|
|
// Delay to focus to avoid input blur trigger expired selectedValues
|
|
triggerOpenAndFocus(nextOpenIndex);
|
|
} else {
|
|
_triggerOpen(false, sourceIndex);
|
|
}
|
|
}
|
|
|
|
var forwardKeyDown = function forwardKeyDown(e) {
|
|
if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {
|
|
// Let popup panel handle keyboard
|
|
return operationRef.current.onKeyDown(e);
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
/* eslint-disable no-lone-blocks */
|
|
|
|
|
|
{
|
|
Object(warning["a" /* default */])(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');
|
|
return false;
|
|
}
|
|
}; // ============================= Text ==============================
|
|
|
|
|
|
var sharedTextHooksProps = {
|
|
formatList: formatList,
|
|
generateConfig: generateConfig,
|
|
locale: locale
|
|
};
|
|
|
|
var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),
|
|
_useValueTexts2 = Object(slicedToArray["a" /* default */])(_useValueTexts, 2),
|
|
startValueTexts = _useValueTexts2[0],
|
|
firstStartValueText = _useValueTexts2[1];
|
|
|
|
var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),
|
|
_useValueTexts4 = Object(slicedToArray["a" /* default */])(_useValueTexts3, 2),
|
|
endValueTexts = _useValueTexts4[0],
|
|
firstEndValueText = _useValueTexts4[1];
|
|
|
|
var _onTextChange = function onTextChange(newText, index) {
|
|
var inputDate = generateConfig.locale.parse(locale.locale, newText, formatList);
|
|
var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;
|
|
|
|
if (inputDate && !disabledFunc(inputDate)) {
|
|
setSelectedValue(updateValues(selectedValue, inputDate, index));
|
|
setViewDate(inputDate, index);
|
|
}
|
|
};
|
|
|
|
var _useTextValueMapping = useTextValueMapping({
|
|
valueTexts: startValueTexts,
|
|
onTextChange: function onTextChange(newText) {
|
|
return _onTextChange(newText, 0);
|
|
}
|
|
}),
|
|
_useTextValueMapping2 = Object(slicedToArray["a" /* default */])(_useTextValueMapping, 3),
|
|
startText = _useTextValueMapping2[0],
|
|
triggerStartTextChange = _useTextValueMapping2[1],
|
|
resetStartText = _useTextValueMapping2[2];
|
|
|
|
var _useTextValueMapping3 = useTextValueMapping({
|
|
valueTexts: endValueTexts,
|
|
onTextChange: function onTextChange(newText) {
|
|
return _onTextChange(newText, 1);
|
|
}
|
|
}),
|
|
_useTextValueMapping4 = Object(slicedToArray["a" /* default */])(_useTextValueMapping3, 3),
|
|
endText = _useTextValueMapping4[0],
|
|
triggerEndTextChange = _useTextValueMapping4[1],
|
|
resetEndText = _useTextValueMapping4[2];
|
|
|
|
var _useState3 = Object(external_window_React_["useState"])(null),
|
|
_useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
|
|
rangeHoverValue = _useState4[0],
|
|
setRangeHoverValue = _useState4[1]; // ========================== Hover Range ==========================
|
|
|
|
|
|
var _useState5 = Object(external_window_React_["useState"])(null),
|
|
_useState6 = Object(slicedToArray["a" /* default */])(_useState5, 2),
|
|
hoverRangedValue = _useState6[0],
|
|
setHoverRangedValue = _useState6[1];
|
|
|
|
var _useHoverValue = useHoverValue(startText, {
|
|
formatList: formatList,
|
|
generateConfig: generateConfig,
|
|
locale: locale
|
|
}),
|
|
_useHoverValue2 = Object(slicedToArray["a" /* default */])(_useHoverValue, 3),
|
|
startHoverValue = _useHoverValue2[0],
|
|
onStartEnter = _useHoverValue2[1],
|
|
onStartLeave = _useHoverValue2[2];
|
|
|
|
var _useHoverValue3 = useHoverValue(endText, {
|
|
formatList: formatList,
|
|
generateConfig: generateConfig,
|
|
locale: locale
|
|
}),
|
|
_useHoverValue4 = Object(slicedToArray["a" /* default */])(_useHoverValue3, 3),
|
|
endHoverValue = _useHoverValue4[0],
|
|
onEndEnter = _useHoverValue4[1],
|
|
onEndLeave = _useHoverValue4[2];
|
|
|
|
var onDateMouseEnter = function onDateMouseEnter(date) {
|
|
setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));
|
|
|
|
if (mergedActivePickerIndex === 0) {
|
|
onStartEnter(date);
|
|
} else {
|
|
onEndEnter(date);
|
|
}
|
|
};
|
|
|
|
var onDateMouseLeave = function onDateMouseLeave() {
|
|
setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));
|
|
|
|
if (mergedActivePickerIndex === 0) {
|
|
onStartLeave();
|
|
} else {
|
|
onEndLeave();
|
|
}
|
|
}; // ============================= Input =============================
|
|
|
|
|
|
var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {
|
|
return {
|
|
blurToCancel: needConfirmButton,
|
|
forwardKeyDown: forwardKeyDown,
|
|
onBlur: onBlur,
|
|
isClickOutside: function isClickOutside(target) {
|
|
return !elementsContains([panelDivRef.current, startInputDivRef.current, endInputDivRef.current], target);
|
|
},
|
|
onFocus: function onFocus(e) {
|
|
setMergedActivePickerIndex(index);
|
|
|
|
if (_onFocus) {
|
|
_onFocus(e);
|
|
}
|
|
},
|
|
triggerOpen: function triggerOpen(newOpen) {
|
|
_triggerOpen(newOpen, index);
|
|
},
|
|
onSubmit: function onSubmit() {
|
|
triggerChange(selectedValue, index);
|
|
resetText();
|
|
},
|
|
onCancel: function onCancel() {
|
|
_triggerOpen(false, index);
|
|
|
|
setSelectedValue(mergedValue);
|
|
resetText();
|
|
}
|
|
};
|
|
};
|
|
|
|
var _usePickerInput = usePickerInput(Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, getSharedInputHookProps(0, resetStartText)), {}, {
|
|
open: startOpen,
|
|
value: startText
|
|
})),
|
|
_usePickerInput2 = Object(slicedToArray["a" /* default */])(_usePickerInput, 2),
|
|
startInputProps = _usePickerInput2[0],
|
|
_usePickerInput2$ = _usePickerInput2[1],
|
|
startFocused = _usePickerInput2$.focused,
|
|
startTyping = _usePickerInput2$.typing;
|
|
|
|
var _usePickerInput3 = usePickerInput(Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, getSharedInputHookProps(1, resetEndText)), {}, {
|
|
open: endOpen,
|
|
value: endText
|
|
})),
|
|
_usePickerInput4 = Object(slicedToArray["a" /* default */])(_usePickerInput3, 2),
|
|
endInputProps = _usePickerInput4[0],
|
|
_usePickerInput4$ = _usePickerInput4[1],
|
|
endFocused = _usePickerInput4$.focused,
|
|
endTyping = _usePickerInput4$.typing; // ========================== Click Picker ==========================
|
|
|
|
|
|
var onPickerClick = function onPickerClick(e) {
|
|
// When click inside the picker & outside the picker's input elements
|
|
// the panel should still be opened
|
|
if (!mergedOpen && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {
|
|
if (!mergedDisabled[0]) {
|
|
triggerOpenAndFocus(0);
|
|
} else if (!mergedDisabled[1]) {
|
|
triggerOpenAndFocus(1);
|
|
}
|
|
}
|
|
};
|
|
|
|
var onPickerMouseDown = function onPickerMouseDown(e) {
|
|
// shouldn't affect input elements if picker is active
|
|
if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {
|
|
e.preventDefault();
|
|
}
|
|
}; // ============================= Sync ==============================
|
|
// Close should sync back with text value
|
|
|
|
|
|
var startStr = mergedValue && mergedValue[0] ? generateConfig.locale.format(locale.locale, mergedValue[0], 'YYYYMMDDHHmmss') : '';
|
|
var endStr = mergedValue && mergedValue[1] ? generateConfig.locale.format(locale.locale, mergedValue[1], 'YYYYMMDDHHmmss') : '';
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
if (!mergedOpen) {
|
|
setSelectedValue(mergedValue);
|
|
|
|
if (!startValueTexts.length || startValueTexts[0] === '') {
|
|
triggerStartTextChange('');
|
|
} else if (firstStartValueText !== startText) {
|
|
resetStartText();
|
|
}
|
|
|
|
if (!endValueTexts.length || endValueTexts[0] === '') {
|
|
triggerEndTextChange('');
|
|
} else if (firstEndValueText !== endText) {
|
|
resetEndText();
|
|
}
|
|
}
|
|
}, [mergedOpen, startValueTexts, endValueTexts]); // Sync innerValue with control mode
|
|
|
|
Object(external_window_React_["useEffect"])(function () {
|
|
setSelectedValue(mergedValue);
|
|
}, [startStr, endStr]); // ============================ Warning ============================
|
|
|
|
if (false) {} // ============================ Private ============================
|
|
|
|
|
|
if (pickerRef) {
|
|
pickerRef.current = {
|
|
focus: function focus() {
|
|
if (startInputRef.current) {
|
|
startInputRef.current.focus();
|
|
}
|
|
},
|
|
blur: function blur() {
|
|
if (startInputRef.current) {
|
|
startInputRef.current.blur();
|
|
}
|
|
|
|
if (endInputRef.current) {
|
|
endInputRef.current.blur();
|
|
}
|
|
}
|
|
};
|
|
} // ============================ Ranges =============================
|
|
|
|
|
|
var rangeLabels = Object.keys(ranges || {});
|
|
var rangeList = rangeLabels.map(function (label) {
|
|
var range = ranges[label];
|
|
var newValues = typeof range === 'function' ? range() : range;
|
|
return {
|
|
label: label,
|
|
onClick: function onClick() {
|
|
triggerChange(newValues, null);
|
|
|
|
_triggerOpen(false, mergedActivePickerIndex);
|
|
},
|
|
onMouseEnter: function onMouseEnter() {
|
|
setRangeHoverValue(newValues);
|
|
},
|
|
onMouseLeave: function onMouseLeave() {
|
|
setRangeHoverValue(null);
|
|
}
|
|
};
|
|
}); // ============================= Panel =============================
|
|
|
|
function renderPanel() {
|
|
var panelPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
var panelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
var panelHoverRangedValue = null;
|
|
|
|
if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {
|
|
panelHoverRangedValue = hoverRangedValue;
|
|
}
|
|
|
|
var panelShowTime = showTime;
|
|
|
|
if (showTime && Object(esm_typeof["a" /* default */])(showTime) === 'object' && showTime.defaultValue) {
|
|
var timeDefaultValues = showTime.defaultValue;
|
|
panelShowTime = Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, showTime), {}, {
|
|
defaultValue: getValue(timeDefaultValues, mergedActivePickerIndex) || undefined
|
|
});
|
|
}
|
|
|
|
var panelDateRender = null;
|
|
|
|
if (dateRender) {
|
|
panelDateRender = function panelDateRender(date, today) {
|
|
return dateRender(date, today, {
|
|
range: mergedActivePickerIndex ? 'end' : 'start'
|
|
});
|
|
};
|
|
}
|
|
|
|
return external_window_React_["createElement"](es_RangeContext.Provider, {
|
|
value: {
|
|
inRange: true,
|
|
panelPosition: panelPosition,
|
|
rangedValue: rangeHoverValue || selectedValue,
|
|
hoverRangedValue: panelHoverRangedValue
|
|
}
|
|
}, external_window_React_["createElement"](es_PickerPanel, Object.assign({}, props, panelProps, {
|
|
dateRender: panelDateRender,
|
|
showTime: panelShowTime,
|
|
mode: mergedModes[mergedActivePickerIndex],
|
|
generateConfig: generateConfig,
|
|
style: undefined,
|
|
direction: direction,
|
|
disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate,
|
|
disabledTime: function disabledTime(date) {
|
|
if (_disabledTime) {
|
|
return _disabledTime(date, mergedActivePickerIndex === 0 ? 'start' : 'end');
|
|
}
|
|
|
|
return false;
|
|
},
|
|
className: classnames_default()(Object(defineProperty["a" /* default */])({}, "".concat(prefixCls, "-panel-focused"), mergedActivePickerIndex === 0 ? !startTyping : !endTyping)),
|
|
value: getValue(selectedValue, mergedActivePickerIndex),
|
|
locale: locale,
|
|
tabIndex: -1,
|
|
onPanelChange: function onPanelChange(date, newMode) {
|
|
triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));
|
|
var viewDate = date;
|
|
|
|
if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {
|
|
viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);
|
|
}
|
|
|
|
setViewDate(viewDate, mergedActivePickerIndex);
|
|
},
|
|
onOk: null,
|
|
onSelect: undefined,
|
|
onChange: undefined,
|
|
defaultValue: undefined,
|
|
defaultPickerValue: undefined
|
|
})));
|
|
}
|
|
|
|
var arrowLeft = 0;
|
|
var panelLeft = 0;
|
|
|
|
if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current) {
|
|
// Arrow offset
|
|
arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth;
|
|
|
|
if (panelDivRef.current.offsetWidth && arrowLeft > panelDivRef.current.offsetWidth) {
|
|
panelLeft = arrowLeft;
|
|
}
|
|
}
|
|
|
|
var arrowPositionStyle = direction === 'rtl' ? {
|
|
right: arrowLeft
|
|
} : {
|
|
left: arrowLeft
|
|
};
|
|
|
|
function renderPanels() {
|
|
var panels;
|
|
var extraNode = getExtraFooter(prefixCls, mergedModes[mergedActivePickerIndex], renderExtraFooter);
|
|
var rangesNode = getRanges({
|
|
prefixCls: prefixCls,
|
|
components: components,
|
|
needConfirmButton: needConfirmButton,
|
|
okDisabled: !getValue(selectedValue, mergedActivePickerIndex) || disabledDate && disabledDate(selectedValue[mergedActivePickerIndex]),
|
|
locale: locale,
|
|
rangeList: rangeList,
|
|
onOk: function onOk() {
|
|
if (getValue(selectedValue, mergedActivePickerIndex)) {
|
|
// triggerChangeOld(selectedValue);
|
|
triggerChange(selectedValue, mergedActivePickerIndex);
|
|
|
|
if (_onOk) {
|
|
_onOk(selectedValue);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
if (picker !== 'time' && !showTime) {
|
|
var viewDate = getViewDate(mergedActivePickerIndex);
|
|
var nextViewDate = getClosingViewDate(viewDate, picker, generateConfig);
|
|
var currentMode = mergedModes[mergedActivePickerIndex];
|
|
var showDoublePanel = currentMode === picker;
|
|
var leftPanel = renderPanel(showDoublePanel ? 'left' : false, {
|
|
pickerValue: viewDate,
|
|
onPickerValueChange: function onPickerValueChange(newViewDate) {
|
|
setViewDate(newViewDate, mergedActivePickerIndex);
|
|
}
|
|
});
|
|
var rightPanel = renderPanel('right', {
|
|
pickerValue: nextViewDate,
|
|
onPickerValueChange: function onPickerValueChange(newViewDate) {
|
|
setViewDate(getClosingViewDate(newViewDate, picker, generateConfig, -1), mergedActivePickerIndex);
|
|
}
|
|
});
|
|
|
|
if (direction === 'rtl') {
|
|
panels = external_window_React_["createElement"](external_window_React_["Fragment"], null, rightPanel, showDoublePanel && leftPanel);
|
|
} else {
|
|
panels = external_window_React_["createElement"](external_window_React_["Fragment"], null, leftPanel, showDoublePanel && rightPanel);
|
|
}
|
|
} else {
|
|
panels = renderPanel();
|
|
}
|
|
|
|
var mergedNodes = external_window_React_["createElement"](external_window_React_["Fragment"], null, external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-panels")
|
|
}, panels), (extraNode || rangesNode) && external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-footer")
|
|
}, extraNode, rangesNode));
|
|
|
|
if (panelRender) {
|
|
mergedNodes = panelRender(mergedNodes);
|
|
}
|
|
|
|
return external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-panel-container"),
|
|
style: {
|
|
marginLeft: panelLeft
|
|
},
|
|
ref: panelDivRef,
|
|
onMouseDown: function onMouseDown(e) {
|
|
e.preventDefault();
|
|
}
|
|
}, mergedNodes);
|
|
}
|
|
|
|
var rangePanel = external_window_React_["createElement"]("div", {
|
|
className: classnames_default()("".concat(prefixCls, "-range-wrapper"), "".concat(prefixCls, "-").concat(picker, "-range-wrapper")),
|
|
style: {
|
|
minWidth: popupMinWidth
|
|
}
|
|
}, external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-range-arrow"),
|
|
style: arrowPositionStyle
|
|
}), renderPanels()); // ============================= Icons =============================
|
|
|
|
var suffixNode;
|
|
|
|
if (suffixIcon) {
|
|
suffixNode = external_window_React_["createElement"]("span", {
|
|
className: "".concat(prefixCls, "-suffix")
|
|
}, suffixIcon);
|
|
}
|
|
|
|
var clearNode;
|
|
|
|
if (allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1])) {
|
|
clearNode = external_window_React_["createElement"]("span", {
|
|
onMouseDown: function onMouseDown(e) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
},
|
|
onMouseUp: function onMouseUp(e) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
var values = mergedValue;
|
|
|
|
if (!mergedDisabled[0]) {
|
|
values = updateValues(values, null, 0);
|
|
}
|
|
|
|
if (!mergedDisabled[1]) {
|
|
values = updateValues(values, null, 1);
|
|
}
|
|
|
|
triggerChange(values, null);
|
|
|
|
_triggerOpen(false, mergedActivePickerIndex);
|
|
},
|
|
className: "".concat(prefixCls, "-clear")
|
|
}, clearIcon || external_window_React_["createElement"]("span", {
|
|
className: "".concat(prefixCls, "-clear-btn")
|
|
}));
|
|
}
|
|
|
|
var inputSharedProps = {
|
|
size: getInputSize(picker, formatList[0])
|
|
};
|
|
var activeBarLeft = 0;
|
|
var activeBarWidth = 0;
|
|
|
|
if (startInputDivRef.current && endInputDivRef.current && separatorRef.current) {
|
|
if (mergedActivePickerIndex === 0) {
|
|
activeBarWidth = startInputDivRef.current.offsetWidth;
|
|
} else {
|
|
activeBarLeft = arrowLeft;
|
|
activeBarWidth = endInputDivRef.current.offsetWidth;
|
|
}
|
|
}
|
|
|
|
var activeBarPositionStyle = direction === 'rtl' ? {
|
|
right: activeBarLeft
|
|
} : {
|
|
left: activeBarLeft
|
|
}; // ============================ Return =============================
|
|
|
|
var onContextSelect = function onContextSelect(date, type) {
|
|
var values = updateValues(selectedValue, date, mergedActivePickerIndex);
|
|
|
|
if (type === 'submit' || type !== 'key' && !needConfirmButton) {
|
|
// triggerChange will also update selected values
|
|
triggerChange(values, mergedActivePickerIndex); // clear hover value style
|
|
|
|
if (mergedActivePickerIndex === 0) {
|
|
onStartLeave();
|
|
} else {
|
|
onEndLeave();
|
|
}
|
|
} else {
|
|
setSelectedValue(values);
|
|
}
|
|
};
|
|
|
|
return external_window_React_["createElement"](es_PanelContext.Provider, {
|
|
value: {
|
|
operationRef: operationRef,
|
|
hideHeader: picker === 'time',
|
|
onDateMouseEnter: onDateMouseEnter,
|
|
onDateMouseLeave: onDateMouseLeave,
|
|
hideRanges: true,
|
|
onSelect: onContextSelect,
|
|
open: mergedOpen
|
|
}
|
|
}, external_window_React_["createElement"](es_PickerTrigger, {
|
|
visible: mergedOpen,
|
|
popupElement: rangePanel,
|
|
popupStyle: popupStyle,
|
|
prefixCls: prefixCls,
|
|
dropdownClassName: dropdownClassName,
|
|
dropdownAlign: dropdownAlign,
|
|
getPopupContainer: getPopupContainer,
|
|
transitionName: transitionName,
|
|
range: true,
|
|
direction: direction
|
|
}, external_window_React_["createElement"]("div", Object.assign({
|
|
ref: containerRef,
|
|
className: classnames_default()(prefixCls, "".concat(prefixCls, "-range"), className, (_classNames2 = {}, Object(defineProperty["a" /* default */])(_classNames2, "".concat(prefixCls, "-disabled"), mergedDisabled[0] && mergedDisabled[1]), Object(defineProperty["a" /* default */])(_classNames2, "".concat(prefixCls, "-focused"), mergedActivePickerIndex === 0 ? startFocused : endFocused), Object(defineProperty["a" /* default */])(_classNames2, "".concat(prefixCls, "-rtl"), direction === 'rtl'), _classNames2)),
|
|
style: style,
|
|
onClick: onPickerClick,
|
|
onMouseDown: onPickerMouseDown
|
|
}, getDataOrAriaProps(props)), external_window_React_["createElement"]("div", {
|
|
className: classnames_default()("".concat(prefixCls, "-input"), (_classNames3 = {}, Object(defineProperty["a" /* default */])(_classNames3, "".concat(prefixCls, "-input-active"), mergedActivePickerIndex === 0), Object(defineProperty["a" /* default */])(_classNames3, "".concat(prefixCls, "-input-placeholder"), !!startHoverValue), _classNames3)),
|
|
ref: startInputDivRef
|
|
}, external_window_React_["createElement"]("input", Object.assign({
|
|
id: id,
|
|
disabled: mergedDisabled[0],
|
|
readOnly: inputReadOnly || !startTyping,
|
|
value: startHoverValue || startText,
|
|
onChange: function onChange(e) {
|
|
triggerStartTextChange(e.target.value);
|
|
},
|
|
autoFocus: autoFocus,
|
|
placeholder: getValue(placeholder, 0) || '',
|
|
ref: startInputRef
|
|
}, startInputProps, inputSharedProps, {
|
|
autoComplete: autoComplete
|
|
}))), external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-range-separator"),
|
|
ref: separatorRef
|
|
}, separator), external_window_React_["createElement"]("div", {
|
|
className: classnames_default()("".concat(prefixCls, "-input"), (_classNames4 = {}, Object(defineProperty["a" /* default */])(_classNames4, "".concat(prefixCls, "-input-active"), mergedActivePickerIndex === 1), Object(defineProperty["a" /* default */])(_classNames4, "".concat(prefixCls, "-input-placeholder"), !!endHoverValue), _classNames4)),
|
|
ref: endInputDivRef
|
|
}, external_window_React_["createElement"]("input", Object.assign({
|
|
disabled: mergedDisabled[1],
|
|
readOnly: inputReadOnly || !endTyping,
|
|
value: endHoverValue || endText,
|
|
onChange: function onChange(e) {
|
|
triggerEndTextChange(e.target.value);
|
|
},
|
|
placeholder: getValue(placeholder, 1) || '',
|
|
ref: endInputRef
|
|
}, endInputProps, inputSharedProps, {
|
|
autoComplete: autoComplete
|
|
}))), external_window_React_["createElement"]("div", {
|
|
className: "".concat(prefixCls, "-active-bar"),
|
|
style: Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, activeBarPositionStyle), {}, {
|
|
width: activeBarWidth,
|
|
position: 'absolute'
|
|
})
|
|
}), suffixNode, clearNode)));
|
|
} // Wrap with class component to enable pass generic with instance method
|
|
|
|
|
|
var RangePicker_RangePicker = /*#__PURE__*/function (_React$Component) {
|
|
Object(inherits["a" /* default */])(RangePicker, _React$Component);
|
|
|
|
var _super = Object(createSuper["a" /* default */])(RangePicker);
|
|
|
|
function RangePicker() {
|
|
var _this;
|
|
|
|
Object(classCallCheck["a" /* default */])(this, RangePicker);
|
|
|
|
_this = _super.apply(this, arguments);
|
|
_this.pickerRef = external_window_React_["createRef"]();
|
|
|
|
_this.focus = function () {
|
|
if (_this.pickerRef.current) {
|
|
_this.pickerRef.current.focus();
|
|
}
|
|
};
|
|
|
|
_this.blur = function () {
|
|
if (_this.pickerRef.current) {
|
|
_this.pickerRef.current.blur();
|
|
}
|
|
};
|
|
|
|
return _this;
|
|
}
|
|
|
|
Object(createClass["a" /* default */])(RangePicker, [{
|
|
key: "render",
|
|
value: function render() {
|
|
return external_window_React_["createElement"](InnerRangePicker, Object.assign({}, this.props, {
|
|
pickerRef: this.pickerRef
|
|
}));
|
|
}
|
|
}]);
|
|
|
|
return RangePicker;
|
|
}(external_window_React_["Component"]);
|
|
|
|
/* harmony default export */ var es_RangePicker = (RangePicker_RangePicker);
|
|
// CONCATENATED MODULE: ./node_modules/rc-picker/es/index.js
|
|
|
|
|
|
|
|
|
|
/* harmony default export */ var rc_picker_es = __webpack_exports__["b"] = (es_Picker);
|
|
|
|
/***/ })
|
|
|
|
}]); |