tdesign-react
Version:
TDesign Component for React
438 lines (430 loc) • 19.3 kB
JavaScript
/**
* tdesign v1.16.6
* (c) 2026 tdesign
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var defineProperty = require('../../_chunks/dep-1f6c39e3.js');
var slicedToArray = require('../../_chunks/dep-3281986a.js');
var React = require('react');
var classNames = require('classnames');
var format = require('../../_chunks/dep-a12038f7.js');
var hooks_useConfig = require('../../hooks/useConfig.js');
var datePicker_panel_PanelContent = require('./PanelContent.js');
var datePicker_panel_ExtraContent = require('./ExtraContent.js');
var datePicker_hooks_useTableData = require('../hooks/useTableData.js');
var datePicker_hooks_useDisableDate = require('../hooks/useDisableDate.js');
var hooks_useDefaultProps = require('../../hooks/useDefaultProps.js');
var datePicker_utils = require('../utils.js');
var timePicker_index = require('../../time-picker/index.js');
var isFunction = require('../../_chunks/dep-8c9795f9.js');
require('../../_chunks/dep-90a93885.js');
require('../../_chunks/dep-54373955.js');
require('../../_chunks/dep-ef5bfcf1.js');
require('dayjs');
require('../../_chunks/dep-20f09a63.js');
require('../../_chunks/dep-f2e56581.js');
require('../../_chunks/dep-ed99b2c6.js');
require('../../_chunks/dep-202d6c73.js');
require('../../_chunks/dep-615c149d.js');
require('../../_chunks/dep-a8d5081a.js');
require('../../_chunks/dep-0173c82c.js');
require('../../_chunks/dep-723e29d6.js');
require('../../config-provider/ConfigContext.js');
require('../../_chunks/dep-875a5344.js');
require('../../_chunks/dep-e691746e.js');
require('../../_chunks/dep-9d3b1a05.js');
require('../../_chunks/dep-1f8c969d.js');
require('../../_chunks/dep-403f5edf.js');
require('../../_chunks/dep-d24b94bc.js');
require('../../_chunks/dep-6478e7e3.js');
require('../../_chunks/dep-c9025587.js');
require('../../_chunks/dep-8663a5c9.js');
require('../../_chunks/dep-50349518.js');
require('../../_chunks/dep-0bd8b970.js');
require('../../_chunks/dep-73ef2133.js');
require('../../_chunks/dep-cae1e5aa.js');
require('../../_chunks/dep-0b97e212.js');
require('../../_chunks/dep-0652d2a6.js');
require('../../_chunks/dep-1a7ce20e.js');
require('../../_chunks/dep-116af952.js');
require('../../_chunks/dep-f6a777ad.js');
require('../../_chunks/dep-ff301423.js');
require('../base/Header.js');
require('../../_chunks/dep-33be2db8.js');
require('../../_chunks/dep-989c8b4a.js');
require('../../locale/LocalReceiver.js');
require('../../config-provider/ConfigProvider.js');
require('../../_chunks/dep-400d026f.js');
require('../../_chunks/dep-081faea2.js');
require('../../_chunks/dep-91b467dd.js');
require('../../_chunks/dep-18ca5cd9.js');
require('../../_chunks/dep-3facd669.js');
require('../../pagination/index.js');
require('../../pagination/Pagination.js');
require('../../_chunks/dep-79129c54.js');
require('../../_util/noop.js');
require('../../hooks/useControlled.js');
require('../../_chunks/dep-825f3fca.js');
require('../../_chunks/dep-0cf6dbad.js');
require('../../_chunks/dep-cb9114ad.js');
require('../../_chunks/dep-d7d7df54.js');
require('../../_chunks/dep-4748ebeb.js');
require('../../select/index.js');
require('../../select/base/Select.js');
require('../../_util/forwardRefWithStatics.js');
require('hoist-non-react-statics');
require('../../_util/helper.js');
require('../../_chunks/dep-e63bc1f4.js');
require('../../_util/parseTNode.js');
require('../../_util/ref.js');
require('react-is');
require('../../_util/isFragment.js');
require('../../common/FakeArrow.js');
require('../../_chunks/dep-d7a3225b.js');
require('../../_chunks/dep-4c4d8eee.js');
require('../../loading/index.js');
require('../../loading/Loading.js');
require('../../_chunks/dep-2bbded38.js');
require('../../common/Portal.js');
require('react-dom');
require('../../hooks/useLayoutEffect.js');
require('../../loading/defaultProps.js');
require('../../loading/gradient.js');
require('../../_chunks/dep-4cca69f7.js');
require('../../hooks/useDomRefCallback.js');
require('../../loading/plugin.js');
require('../../_util/react-render.js');
require('../../_chunks/dep-05097eca.js');
require('../../common/PluginContainer.js');
require('../../select-input/index.js');
require('../../select-input/SelectInput.js');
require('../../popup/index.js');
require('../../popup/Popup.js');
require('react-transition-group');
require('../../hooks/useAnimation.js');
require('../../hooks/useAttach.js');
require('../../hooks/useMutationObserver.js');
require('../../hooks/useLatest.js');
require('../../_chunks/dep-a96a03f6.js');
require('../../_chunks/dep-e0d43c80.js');
require('../../_chunks/dep-18c47660.js');
require('../../_chunks/dep-63bb9ba0.js');
require('../../_chunks/dep-4cbff404.js');
require('../../hooks/usePopper.js');
require('react-fast-compare');
require('@popperjs/core');
require('../../hooks/useWindowSize.js');
require('../../popup/defaultProps.js');
require('../../popup/hooks/useTrigger.js');
require('../../_util/listener.js');
require('../../popup/utils/transition.js');
require('../../popup/PopupPlugin.js');
require('../../select-input/defaultProps.js');
require('../../select-input/useMultiple.js');
require('../../tag-input/index.js');
require('../../tag-input/TagInput.js');
require('tdesign-icons-react');
require('../../hooks/useDragSorter.js');
require('../../hooks/useEventCallback.js');
require('../../hooks/useGlobalIcon.js');
require('../../input/index.js');
require('../../input/Input.js');
require('../../input/defaultProps.js');
require('../../input/InputGroup.js');
require('../../input/useLengthLimit.js');
require('../../tag-input/defaultProps.js');
require('../../tag-input/useHover.js');
require('../../tag-input/useTagList.js');
require('../../tag/index.js');
require('../../tag/Tag.js');
require('../../_chunks/dep-79967866.js');
require('../../tag/defaultProps.js');
require('../../tag/CheckTag.js');
require('../../_chunks/dep-d42cbde8.js');
require('../../tag/CheckTagGroup.js');
require('../../tag-input/useTagScroll.js');
require('../../select-input/useOverlayInnerStyle.js');
require('../../hooks/useInnerPopupVisible.js');
require('../../select-input/useSingle.js');
require('../../_chunks/dep-fa647529.js');
require('../../_chunks/dep-adec3cbe.js');
require('../../_chunks/dep-7809b92f.js');
require('../../_chunks/dep-80f72db2.js');
require('../../_chunks/dep-66bd7fa8.js');
require('../../_chunks/dep-454836ac.js');
require('../../select/defaultProps.js');
require('../../select/hooks/useKeyboardControl.js');
require('../../_chunks/dep-c846b0cb.js');
require('../../hooks/useRipple.js');
require('../../select/base/OptionGroup.js');
require('../../_chunks/dep-d1f369bc.js');
require('../../select/base/PopupContent.js');
require('../../select/hooks/usePanelVirtualScroll.js');
require('../../hooks/useVirtualScroll.js');
require('../../input-number/index.js');
require('../../input-number/InputNumber.js');
require('../../button/index.js');
require('../../button/Button.js');
require('../../button/defaultProps.js');
require('../../input-number/useInputNumber.js');
require('../../_chunks/dep-ceca7b69.js');
require('../../_chunks/dep-8e51ca2b.js');
require('../../hooks/useCommonClassName.js');
require('../../input-number/defaultProps.js');
require('../../input-adornment/InputAdornment.js');
require('../../pagination/hooks/useBoundaryJumper.js');
require('../../pagination/hooks/usePrevNextJumper.js');
require('../../pagination/hooks/usePageNumber.js');
require('../../pagination/hooks/useTotal.js');
require('../../pagination/validators.js');
require('../../pagination/defaultProps.js');
require('../../_chunks/dep-854a3020.js');
require('../../_chunks/dep-9721faba.js');
require('../../_chunks/dep-1c011250.js');
require('../../pagination/PaginationMini.js');
require('../base/Table.js');
require('../base/Cell.js');
require('../../_chunks/dep-92f7ff4b.js');
require('../../_chunks/dep-ff9bf4c8.js');
require('../base/Footer.js');
require('../../_chunks/dep-d1066fe4.js');
require('../../time-picker/TimePicker.js');
require('../../_chunks/dep-ac381086.js');
require('../../time-picker/hooks/useTimePickerTextConfig.js');
require('../../hooks/useDebounce.js');
require('../../hooks/usePersistFn.js');
require('../../hooks/usePropsRef.js');
require('../../time-picker/TimeRangePicker.js');
require('../../range-input/index.js');
require('../../range-input/RangeInput.js');
require('../../range-input/defaultProps.js');
require('../../range-input/RangeInputPopup.js');
require('../../time-picker/panel/TimePickerPanel.js');
require('../../time-picker/defaultProps.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var RangePanel = /*#__PURE__*/React.forwardRef(function (originalProps, ref) {
var _useConfig = hooks_useConfig["default"](),
classPrefix = _useConfig.classPrefix,
globalDatePickerConfig = _useConfig.datePicker;
var panelName = "".concat(classPrefix, "-date-range-picker__panel");
var _useState = React.useState(true),
_useState2 = slicedToArray._slicedToArray(_useState, 2),
isDateRangeContent = _useState2[0],
toggleDateRangeContent = _useState2[1];
var props = hooks_useDefaultProps["default"](originalProps, {
mode: "date",
panelPreselection: true,
enableTimePicker: false,
presetsPlacement: "bottom",
needConfirm: true
});
var _props$value = props.value,
value = _props$value === void 0 ? [] : _props$value,
_props$hoverValue = props.hoverValue,
hoverValue = _props$hoverValue === void 0 ? [] : _props$hoverValue,
mode = props.mode,
presets = props.presets,
enableTimePicker = props.enableTimePicker,
presetsPlacement = props.presetsPlacement,
disableDateFromProps = props.disableDate,
_props$firstDayOfWeek = props.firstDayOfWeek,
firstDayOfWeek = _props$firstDayOfWeek === void 0 ? globalDatePickerConfig.firstDayOfWeek : _props$firstDayOfWeek,
isFirstValueSelected = props.isFirstValueSelected,
needConfirm = props.needConfirm,
style = props.style,
className = props.className,
activeIndex = props.activeIndex,
year = props.year,
month = props.month,
_props$time = props.time,
time = _props$time === void 0 ? [] : _props$time,
panelPreselection = props.panelPreselection,
onPresetClick = props.onPresetClick,
cancelRangeSelectLimit = props.cancelRangeSelectLimit,
_onClick = props.onClick,
onConfirmClick = props.onConfirmClick,
disableTime = props.disableTime,
onTimePickerChange = props.onTimePickerChange,
popupVisible = props.popupVisible,
isSwitchTimeMode = props.isSwitchTimeMode;
var _getDefaultFormat = format.getDefaultFormat({
mode: props.mode,
format: props.format,
enableTimePicker: props.enableTimePicker
}),
format$1 = _getDefaultFormat.format,
timeFormat = _getDefaultFormat.timeFormat;
var disableDateOptions = datePicker_hooks_useDisableDate["default"]({
disableDate: disableDateFromProps,
mode: mode,
format: format$1,
start: isFirstValueSelected && activeIndex === 1 ? new Date(format.parseToDayjs(value[0], format$1, "start").toDate().setHours(0, 0, 0)) : void 0,
end: isFirstValueSelected && activeIndex === 0 ? new Date(format.parseToDayjs(value[1], format$1).toDate().setHours(23, 59, 59)) : void 0
});
React.useEffect(function () {
if (popupVisible && isSwitchTimeMode) {
toggleDateRangeContent(true);
}
}, [popupVisible, isSwitchTimeMode]);
var disableTimeOptions = function disableTimeOptions(h, m, s, ms) {
if (!isFunction.isFunction(disableTime)) {
return {};
}
var _ref = value || [],
_ref2 = slicedToArray._slicedToArray(_ref, 2),
startTime = _ref2[0],
endTime = _ref2[1];
return disableTime([datePicker_utils.parseToDateTime(startTime, format$1), datePicker_utils.parseToDateTime(endTime, format$1, [h, m, s, ms])], {
partial: activeIndex === 0 ? "start" : "end"
});
};
var _year = slicedToArray._slicedToArray(year, 2),
startYear = _year[0],
endYear = _year[1];
var _month = slicedToArray._slicedToArray(month, 2),
startMonth = _month[0],
endMonth = _month[1];
var hidePreselection = !panelPreselection && value.length === 2;
var startTableData = datePicker_hooks_useTableData["default"](_objectSpread({
isRange: true,
start: value[0] ? format.parseToDayjs(value[0], format$1).toDate() : void 0,
end: value[1] ? format.parseToDayjs(value[1], format$1).toDate() : void 0,
hoverStart: !hidePreselection && hoverValue[0] ? format.parseToDayjs(hoverValue[0], format$1).toDate() : void 0,
hoverEnd: !hidePreselection && hoverValue[1] ? format.parseToDayjs(hoverValue[1], format$1).toDate() : void 0,
year: startYear,
month: startMonth,
mode: mode,
firstDayOfWeek: firstDayOfWeek,
cancelRangeSelectLimit: cancelRangeSelectLimit
}, disableDateOptions));
var endTableData = datePicker_hooks_useTableData["default"](_objectSpread({
isRange: true,
start: value[0] ? format.parseToDayjs(value[0], format$1).toDate() : void 0,
end: value[1] ? format.parseToDayjs(value[1], format$1).toDate() : void 0,
hoverStart: !hidePreselection && hoverValue[0] ? format.parseToDayjs(hoverValue[0], format$1).toDate() : void 0,
hoverEnd: !hidePreselection && hoverValue[1] ? format.parseToDayjs(hoverValue[1], format$1).toDate() : void 0,
year: mode === "year" && endYear - startYear <= 9 ? endYear + 9 : endYear,
month: endMonth,
mode: mode,
firstDayOfWeek: firstDayOfWeek,
cancelRangeSelectLimit: cancelRangeSelectLimit
}, disableDateOptions));
var panelContentProps = {
mode: mode,
format: format$1,
firstDayOfWeek: firstDayOfWeek,
popupVisible: popupVisible,
enableTimePicker: props.enableTimePicker,
isSwitchTimeMode: isSwitchTimeMode,
timePickerProps: _objectSpread({
disableTime: disableTimeOptions
}, props.timePickerProps),
onMonthChange: props.onMonthChange,
onYearChange: props.onYearChange,
onJumperClick: props.onJumperClick,
onCellClick: props.onCellClick,
onCellMouseEnter: props.onCellMouseEnter,
onCellMouseLeave: props.onCellMouseLeave,
onTimePickerChange: props.onTimePickerChange
};
var onTimeModeChange = function onTimeModeChange() {
toggleDateRangeContent(function (prev) {
return !prev;
});
};
var renderPanelContent = function renderPanelContent() {
if (!enableTimePicker || isSwitchTimeMode) {
if (isDateRangeContent) return /* @__PURE__ */React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */React__default["default"].createElement(datePicker_panel_PanelContent["default"], _objectSpread({
key: "startPanel",
partial: "start",
year: startYear,
month: startMonth,
time: time[activeIndex],
tableData: startTableData,
value: value
}, panelContentProps)), /* @__PURE__ */React__default["default"].createElement(datePicker_panel_PanelContent["default"], _objectSpread({
key: "endPanel",
partial: "end",
year: endYear,
month: endMonth,
time: time[activeIndex],
value: value,
tableData: endTableData,
internalYear: year
}, panelContentProps)));
return /* @__PURE__ */React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */React__default["default"].createElement(timePicker_index.TimePickerPanel, _objectSpread({
key: "startPanel",
position: "start",
format: timeFormat,
value: time[0],
onChange: function onChange(val) {
return onTimePickerChange(val, {
activeIndex: 0
});
}
}, props.timePickerProps)), /* @__PURE__ */React__default["default"].createElement(timePicker_index.TimePickerPanel, _objectSpread({
key: "endPanel",
position: "end",
format: timeFormat,
value: time[1],
onChange: function onChange(val) {
return onTimePickerChange(val, {
activeIndex: 1
});
}
}, props.timePickerProps)));
}
return /* @__PURE__ */React__default["default"].createElement(datePicker_panel_PanelContent["default"], _objectSpread({
key: "start",
partial: activeIndex ? "end" : "start",
year: activeIndex ? endYear : startYear,
month: activeIndex ? endMonth : startMonth,
time: activeIndex ? time[1] : time[0],
value: value,
tableData: activeIndex ? endTableData : startTableData
}, panelContentProps));
};
return /* @__PURE__ */React__default["default"].createElement("div", {
ref: ref,
style: style,
className: classNames__default["default"](panelName, className, defineProperty._defineProperty(defineProperty._defineProperty({}, "".concat(panelName, "--direction-row"), ["left", "right"].includes(presetsPlacement)), "".concat(panelName, "--switch-mode"), isSwitchTimeMode)),
onClick: function onClick(e) {
return _onClick === null || _onClick === void 0 ? void 0 : _onClick({
e: e
});
}
}, ["top", "left"].includes(presetsPlacement) ? /* @__PURE__ */React__default["default"].createElement(datePicker_panel_ExtraContent["default"], {
presets: presets,
selectedValue: value[activeIndex],
enableTimePicker: enableTimePicker,
onPresetClick: onPresetClick,
onConfirmClick: onConfirmClick,
presetsPlacement: presetsPlacement,
needConfirm: needConfirm,
onTimeModeChange: onTimeModeChange,
isDateRangeContent: isDateRangeContent,
isSwitchTimeMode: isSwitchTimeMode
}) : null, /* @__PURE__ */React__default["default"].createElement("div", {
className: "".concat(panelName, "-content-wrapper")
}, renderPanelContent()), ["bottom", "right"].includes(presetsPlacement) ? /* @__PURE__ */React__default["default"].createElement(datePicker_panel_ExtraContent["default"], {
presets: presets,
selectedValue: value[activeIndex],
enableTimePicker: enableTimePicker,
onPresetClick: onPresetClick,
onConfirmClick: onConfirmClick,
onTimeModeChange: onTimeModeChange,
isDateRangeContent: isDateRangeContent,
isSwitchTimeMode: isSwitchTimeMode,
presetsPlacement: presetsPlacement,
needConfirm: needConfirm
}) : null);
});
RangePanel.displayName = "RangePanel";
exports["default"] = RangePanel;
//# sourceMappingURL=RangePanel.js.map