UNPKG

tdesign-react

Version:
426 lines (418 loc) 16.6 kB
/** * tdesign v1.13.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var toConsumableArray = require('../../_chunks/dep-64a1054a.js'); var slicedToArray = require('../../_chunks/dep-e17e2d31.js'); var React = require('react'); var locale_LocalReceiver = require('../../locale/LocalReceiver.js'); var hooks_useConfig = require('../../hooks/useConfig.js'); var select_index = require('../../select/index.js'); var pagination_index = require('../../pagination/index.js'); require('../../_chunks/dep-b7d577ac.js'); require('../../_chunks/dep-cc768e34.js'); require('../../_chunks/dep-6d4d8660.js'); require('../../_chunks/dep-3e2d2665.js'); require('../../_chunks/dep-f0379c5f.js'); require('../../_chunks/dep-028b759d.js'); require('../../_chunks/dep-ddacd27a.js'); require('../../config-provider/ConfigProvider.js'); require('../../config-provider/ConfigContext.js'); require('../../_chunks/dep-3a869b87.js'); require('../../_chunks/dep-ac58e1cc.js'); require('dayjs'); require('../../_chunks/dep-7da96a57.js'); require('../../_chunks/dep-07b911d8.js'); require('../../_chunks/dep-4b02d669.js'); require('../../_chunks/dep-8a116183.js'); require('../../_chunks/dep-4671b9bd.js'); require('../../_chunks/dep-bed9d73e.js'); require('../../_chunks/dep-780eda7b.js'); require('../../_chunks/dep-47bdc05f.js'); require('../../_chunks/dep-cab13149.js'); require('../../_chunks/dep-a30819a4.js'); require('../../_chunks/dep-6a7ba247.js'); require('../../_chunks/dep-c87d9752.js'); require('../../_chunks/dep-bd956a2d.js'); require('../../_chunks/dep-0cdb3286.js'); require('../../_chunks/dep-865c186c.js'); require('../../_chunks/dep-f4e58639.js'); require('../../_chunks/dep-781a2854.js'); require('../../_chunks/dep-1ef213f8.js'); require('../../_chunks/dep-e2c832a5.js'); require('../../_chunks/dep-ed886f2a.js'); require('../../_chunks/dep-aeef4e56.js'); require('../../_chunks/dep-0c1ca63f.js'); require('../../_chunks/dep-fd5d57c1.js'); require('../../_chunks/dep-ac2874ce.js'); require('../../_chunks/dep-6cfc06a0.js'); require('../../_chunks/dep-5d9d080b.js'); require('../../select/base/Select.js'); require('../../_chunks/dep-810b3643.js'); require('classnames'); require('../../_util/helper.js'); require('../../_chunks/dep-a70197cb.js'); require('../../_chunks/dep-62193a48.js'); require('../../_chunks/dep-f076775e.js'); require('../../_chunks/dep-4be7f839.js'); require('../../_chunks/dep-d42c60f4.js'); require('../../_chunks/dep-05b4c661.js'); require('../../hooks/useControlled.js'); require('../../_util/noop.js'); require('../../_util/forwardRefWithStatics.js'); require('hoist-non-react-statics'); require('../../_chunks/dep-c148acab.js'); require('../../select/base/OptionGroup.js'); require('../../select/defaultProps.js'); require('../../hooks/useDefaultProps.js'); require('../../select/base/Option.js'); require('../../hooks/useDomRefCallback.js'); require('../../hooks/useRipple.js'); require('../../_chunks/dep-58719304.js'); require('../../hooks/useAnimation.js'); require('../../_chunks/dep-3f65dfe7.js'); require('../../_chunks/dep-422caf30.js'); require('../../_chunks/dep-fbc19a54.js'); require('../../_chunks/dep-4ba2ac6b.js'); require('../../common/FakeArrow.js'); require('../../loading/index.js'); require('../../loading/Loading.js'); require('../../common/Portal.js'); require('react-dom'); require('../../hooks/useLayoutEffect.js'); require('../../loading/gradient.js'); require('../../_chunks/dep-b8d4cf07.js'); require('../../loading/defaultProps.js'); require('../../loading/plugin.js'); require('../../_util/react-render.js'); require('../../_chunks/dep-a93b6608.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('../../_util/ref.js'); require('react-is'); require('../../_util/isFragment.js'); require('../../hooks/useAttach.js'); require('../../hooks/useMutationObserver.js'); require('../../hooks/useLatest.js'); require('../../_chunks/dep-d6e82200.js'); require('../../_chunks/dep-94d97586.js'); require('../../_chunks/dep-b12bf98d.js'); require('../../_chunks/dep-1bcdd0a4.js'); require('../../_chunks/dep-c915e145.js'); require('../../hooks/usePopper.js'); require('@popperjs/core'); require('react-fast-compare'); require('../../hooks/useWindowSize.js'); require('../../popup/defaultProps.js'); require('../../popup/hooks/useTrigger.js'); require('../../_util/composeRefs.js'); require('../../_util/listener.js'); require('../../popup/utils/transition.js'); require('../../popup/PopupPlugin.js'); require('../../select-input/useSingle.js'); require('../../input/index.js'); require('../../input/Input.js'); require('tdesign-icons-react'); require('../../hooks/useGlobalIcon.js'); require('../../input/InputGroup.js'); require('../../input/defaultProps.js'); require('../../_util/parseTNode.js'); require('../../_chunks/dep-4bc3c0ab.js'); require('../../input/useLengthLimit.js'); require('../../_chunks/dep-08fa4947.js'); require('../../_chunks/dep-2df3735a.js'); require('../../_chunks/dep-aaaf9309.js'); require('../../_chunks/dep-ef231277.js'); require('../../_chunks/dep-ba1bf618.js'); require('../../select-input/useMultiple.js'); require('../../tag-input/index.js'); require('../../tag-input/TagInput.js'); require('../../hooks/useDragSorter.js'); require('../../hooks/useEventCallback.js'); require('../../tag-input/useTagScroll.js'); require('../../tag-input/useTagList.js'); require('../../tag/index.js'); require('../../tag/Tag.js'); require('../../_chunks/dep-7bc521fe.js'); require('../../tag/defaultProps.js'); require('../../tag/CheckTag.js'); require('../../_chunks/dep-d33a1510.js'); require('../../tag/CheckTagGroup.js'); require('../../tag-input/useHover.js'); require('../../tag-input/defaultProps.js'); require('../../select-input/useOverlayInnerStyle.js'); require('../../select-input/defaultProps.js'); require('../../select/base/PopupContent.js'); require('../../select/hooks/usePanelVirtualScroll.js'); require('../../hooks/useVirtualScroll.js'); require('../../hooks/useResizeObserver.js'); require('../../pagination/Pagination.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-0a15e4d8.js'); require('../../_chunks/dep-f400737d.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-ab823a9f.js'); require('../../_chunks/dep-1843e637.js'); require('../../_chunks/dep-e6a14ce7.js'); require('../../pagination/PaginationMini.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var useDatePickerLocalConfig = function useDatePickerLocalConfig() { var _useLocaleReceiver = locale_LocalReceiver.useLocaleReceiver("datePicker"), _useLocaleReceiver2 = slicedToArray._slicedToArray(_useLocaleReceiver, 2), local = _useLocaleReceiver2[0], t = _useLocaleReceiver2[1]; return { months: t(local.months), nextYear: t(local.nextYear), preYear: t(local.preYear), nextMonth: t(local.nextMonth), preMonth: t(local.preMonth), preDecade: t(local.preDecade), nextDecade: t(local.nextDecade), now: t(local.now) }; }; var DatePickerHeader = function DatePickerHeader(props) { var _useConfig = hooks_useConfig["default"](), classPrefix = _useConfig.classPrefix; var mode = props.mode, year = props.year, month = props.month, onMonthChange = props.onMonthChange, onYearChange = props.onYearChange, onJumperClick = props.onJumperClick; var _useDatePickerLocalCo = useDatePickerLocalConfig(), now = _useDatePickerLocalCo.now, months = _useDatePickerLocalCo.months, preMonth = _useDatePickerLocalCo.preMonth, preYear = _useDatePickerLocalCo.preYear, nextMonth = _useDatePickerLocalCo.nextMonth, nextYear = _useDatePickerLocalCo.nextYear, preDecade = _useDatePickerLocalCo.preDecade, nextDecade = _useDatePickerLocalCo.nextDecade; var scrollAnchorRef = React.useRef("default"); var monthOptions = months.map(function (item, index) { return { label: item, value: index }; }); var initOptions = React.useCallback(function (year2) { var options = []; if (mode === "year") { var extraYear = year2 % 10; var minYear = year2 - extraYear - 100; var maxYear = year2 - extraYear + 100; for (var i = minYear; i <= maxYear; i += 10) { options.push({ label: "".concat(i, " - ").concat(i + 9), value: i + 9 }); } } else { options.push({ label: "".concat(year2), value: year2 }); for (var _i = 1; _i <= 10; _i++) { options.push({ label: "".concat(year2 + _i), value: year2 + _i }); options.unshift({ label: "".concat(year2 - _i), value: year2 - _i }); } } return options; }, [mode]); var _useState = React.useState(function () { return initOptions(year); }), _useState2 = slicedToArray._slicedToArray(_useState, 2), yearOptions = _useState2[0], setYearOptions = _useState2[1]; var nearestYear = React.useMemo(function () { var _yearOptions$find; return ((_yearOptions$find = yearOptions.find(function (option) { return option.value - year <= 9 && option.value - year >= 0; })) === null || _yearOptions$find === void 0 ? void 0 : _yearOptions$find.value) || year; }, [yearOptions, year]); React.useEffect(function () { var yearRange = initOptions(year); setYearOptions(yearRange); }, [initOptions, year]); function loadMoreYear(year2, type) { var options = []; if (mode === "year") { var extraYear = year2 % 10; if (type === "add") { for (var i = year2 - extraYear + 10; i <= year2 - extraYear + 50; i += 10) { options.push({ label: "".concat(i, " - ").concat(i + 9), value: i }); } } else { for (var _i2 = year2 - extraYear - 1; _i2 > year2 - extraYear - 50; _i2 -= 10) { options.unshift({ label: "".concat(_i2 - 9, " - ").concat(_i2), value: _i2 }); } } } else if (type === "add") { for (var _i3 = year2 + 1; _i3 <= year2 + 10; _i3++) { options.push({ label: "".concat(_i3), value: _i3 }); } } else { for (var _i4 = year2 - 1; _i4 > year2 - 10; _i4--) { options.unshift({ label: "".concat(_i4), value: _i4 }); } } return options; } var labelMap = { year: { prev: preDecade, current: now, next: nextDecade }, month: { prev: preYear, current: now, next: nextYear }, date: { prev: preMonth, current: now, next: nextMonth } }; var headerClassName = "".concat(classPrefix, "-date-picker__header"); var showMonthPicker = mode === "date" || mode === "week"; function handlePanelTopClick(e) { var _e$stopPropagation, _e$nativeEvent, _e$nativeEvent$stopIm; e === null || e === void 0 || (_e$stopPropagation = e.stopPropagation) === null || _e$stopPropagation === void 0 || _e$stopPropagation.call(e); e === null || e === void 0 || (_e$nativeEvent = e.nativeEvent) === null || _e$nativeEvent === void 0 || (_e$nativeEvent$stopIm = _e$nativeEvent.stopImmediatePropagation) === null || _e$nativeEvent$stopIm === void 0 || _e$nativeEvent$stopIm.call(_e$nativeEvent); var firstYear = yearOptions[0].value; var options = loadMoreYear(firstYear, "reduce"); setYearOptions([].concat(toConsumableArray._toConsumableArray(options), toConsumableArray._toConsumableArray(yearOptions))); } function handlePanelBottomClick(e) { var _e$stopPropagation2, _e$nativeEvent2; e === null || e === void 0 || (_e$stopPropagation2 = e.stopPropagation) === null || _e$stopPropagation2 === void 0 || _e$stopPropagation2.call(e); e === null || e === void 0 || (_e$nativeEvent2 = e.nativeEvent) === null || _e$nativeEvent2 === void 0 || _e$nativeEvent2.stopImmediatePropagation(); var lastYear = yearOptions.slice(-1)[0].value; var options = loadMoreYear(lastYear, "add"); setYearOptions([].concat(toConsumableArray._toConsumableArray(yearOptions), toConsumableArray._toConsumableArray(options))); } function handleScroll(_ref) { var e = _ref.e; if (e.target.scrollTop === 0) { handlePanelTopClick(); scrollAnchorRef.current = "top"; } else if (e.target.scrollTop === e.target.scrollHeight - e.target.clientHeight) { handlePanelBottomClick(); scrollAnchorRef.current = "bottom"; } } function handleUpdateScrollTop(content) { if (scrollAnchorRef.current === "top") { content.scrollTop = 30 * 10; } else if (scrollAnchorRef.current === "bottom") { content.scrollTop = content.scrollHeight - 30 * 10; } else { var firstSelectedNode = content.querySelector(".".concat(classPrefix, "-is-selected")); if (firstSelectedNode) { var _getComputedStyle = getComputedStyle(firstSelectedNode), paddingBottom = _getComputedStyle.paddingBottom; var _getComputedStyle2 = getComputedStyle(content), marginBottom = _getComputedStyle2.marginBottom; var elementBottomHeight = parseInt(paddingBottom, 10) + parseInt(marginBottom, 10); var updateValue = firstSelectedNode.offsetTop - content.offsetTop - (content.clientHeight - firstSelectedNode.clientHeight) + elementBottomHeight; content.scrollTop = updateValue; } } } return /* @__PURE__ */React__default["default"].createElement("div", { className: headerClassName }, /* @__PURE__ */React__default["default"].createElement("div", { className: "".concat(headerClassName, "-controller") }, showMonthPicker && /* @__PURE__ */React__default["default"].createElement(select_index.Select, { className: "".concat(headerClassName, "-controller-month"), value: month, options: monthOptions, onChange: function onChange(val) { return onMonthChange(val); }, popupProps: { attach: function attach(triggerElement) { return triggerElement.parentNode; }, overlayClassName: "".concat(headerClassName, "-controller-month-popup") } }), /* @__PURE__ */React__default["default"].createElement(select_index.Select, { className: "".concat(headerClassName, "-controller-year"), value: mode === "year" ? nearestYear : year, options: yearOptions, onChange: function onChange(val) { return onYearChange(val); }, onPopupVisibleChange: function onPopupVisibleChange(visible) { if (!visible) scrollAnchorRef.current = "default"; }, popupProps: { onScroll: handleScroll, updateScrollTop: handleUpdateScrollTop, attach: function attach(triggerElement) { return triggerElement.parentNode; }, overlayClassName: "".concat(headerClassName, "-controller-year-popup") }, panelTopContent: /* @__PURE__ */React__default["default"].createElement("div", { className: "".concat(classPrefix, "-select-option"), onClick: handlePanelTopClick }, "..."), panelBottomContent: /* @__PURE__ */React__default["default"].createElement("div", { className: "".concat(classPrefix, "-select-option"), onClick: handlePanelBottomClick }, "...") })), /* @__PURE__ */React__default["default"].createElement(pagination_index.PaginationMini, { tips: labelMap[mode], size: "small", onChange: onJumperClick })); }; DatePickerHeader.displayName = "DatePickerHeader"; var DateHeader = /*#__PURE__*/React__default["default"].memo(DatePickerHeader); exports["default"] = DateHeader; //# sourceMappingURL=Header.js.map