tdesign-react
Version:
TDesign Component for React
344 lines (340 loc) • 13.8 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
import React, { useEffect } from 'react';
import { unset, isEmpty, get } from 'lodash-es';
import Tree from '../../tree/Tree.js';
import Upload from '../../upload/upload.js';
import CheckTag from '../../tag/CheckTag.js';
import { C as Checkbox, a as CheckboxGroup } from '../../_chunks/dep-0030a252.js';
import TagInput from '../../tag-input/TagInput.js';
import RangeInput from '../../range-input/RangeInput.js';
import Transfer from '../../transfer/Transfer.js';
import DateRangePicker from '../../date-picker/DateRangePicker.js';
import TimeRangePicker from '../../time-picker/TimeRangePicker.js';
import { useFormContext, useFormListContext } from '../FormContext.js';
import '../../_chunks/dep-87d110df.js';
import '../../_chunks/dep-026a4c6b.js';
import '../../_chunks/dep-cb0a3966.js';
import '../../_chunks/dep-eca3a3de.js';
import '../../_chunks/dep-48805ab8.js';
import 'react-transition-group';
import 'classnames';
import '../../_chunks/dep-f53c91cd.js';
import '../../_chunks/dep-b908e1fe.js';
import '../../tree/TreeItem.js';
import '../../_chunks/dep-6b660ef0.js';
import 'tdesign-icons-react';
import '../../loading/index.js';
import '../../loading/Loading.js';
import '../../_chunks/dep-3a09424a.js';
import '../../hooks/useConfig.js';
import '../../config-provider/ConfigContext.js';
import '../../locale/zh_CN.js';
import '../../_chunks/dep-e29214cb.js';
import 'dayjs';
import '../../_chunks/dep-3c9ab31a.js';
import '../../common/Portal.js';
import 'react-dom';
import '../../hooks/useLayoutEffect.js';
import '../../loading/gradient.js';
import '../../_chunks/dep-c48e2ca1.js';
import '../../_chunks/dep-1630b9b4.js';
import '../../hooks/useDomRefCallback.js';
import '../../loading/defaultProps.js';
import '../../hooks/useDefaultProps.js';
import '../../loading/plugin.js';
import '../../_util/react-render.js';
import '../../_chunks/dep-a74cc5e4.js';
import '../../common/PluginContainer.js';
import '../../config-provider/index.js';
import '../../config-provider/ConfigProvider.js';
import '../../config-provider/type.js';
import '../../loading/style/index.js';
import '../../loading/type.js';
import '../../hooks/useRipple.js';
import '../../hooks/useAnimation.js';
import '../../hooks/useGlobalIcon.js';
import '../../checkbox/index.js';
import '../../checkbox/style/index.js';
import '../../checkbox/type.js';
import '../../_util/forwardRefWithStatics.js';
import 'hoist-non-react-statics';
import '../../common/Check.js';
import '../../_util/helper.js';
import '../../hooks/useControlled.js';
import '../../_util/noop.js';
import '../../checkbox/defaultProps.js';
import '../../tree/hooks/useTreeConfig.js';
import '../../locale/LocalReceiver.js';
import '../../tree/hooks/useDraggable.js';
import '../../tree/hooks/TreeDraggableContext.js';
import '../../_util/createHookContext.js';
import '../../hooks/usePersistFn.js';
import '../../_util/composeRefs.js';
import '../../tree/hooks/useControllable.js';
import '../../tree/hooks/useStore.js';
import '../../_chunks/dep-6b3ac896.js';
import '../../_chunks/dep-83726008.js';
import 'mitt';
import '../../_chunks/dep-1d1c579e.js';
import '../../hooks/useUpdateLayoutEffect.js';
import '../../hooks/useIsFirstRender.js';
import '../../hooks/usePrevious.js';
import '../../_util/parseTNode.js';
import '../../tree/hooks/useTreeVirtualScroll.js';
import '../../hooks/useVirtualScroll.js';
import '../../hooks/useEventCallback.js';
import '../../tree/defaultProps.js';
import '../../upload/themes/NormalFile.js';
import '../../_chunks/dep-8918af14.js';
import '../../link/index.js';
import '../../link/Link.js';
import '../../link/defaultProps.js';
import '../../link/style/index.js';
import '../../upload/themes/DraggerFile.js';
import '../../hooks/useCommonClassName.js';
import '../../upload/hooks/useDrag.js';
import '../../image-viewer/index.js';
import '../../image-viewer/ImageViewer.js';
import '../../_chunks/dep-90b6cb7a.js';
import '../../_chunks/dep-46c9e4f5.js';
import '../../hooks/useImagePreviewUrl.js';
import '../../image/index.js';
import '../../image/Image.js';
import '../../_chunks/dep-4450afc0.js';
import '../../image/defaultProps.js';
import '../../space/index.js';
import '../../space/Space.js';
import 'react-is';
import '../../space/defaultProps.js';
import '../../space/style/index.js';
import '../../space/type.js';
import '../../image/style/index.js';
import '../../tooltip/index.js';
import '../../tooltip/Tooltip.js';
import '../../popup/index.js';
import '../../popup/Popup.js';
import '../../_util/ref.js';
import '../../_util/isFragment.js';
import '../../hooks/useAttach.js';
import '../../hooks/useMutationObserver.js';
import '../../hooks/useLatest.js';
import '../../hooks/usePopper.js';
import '@popperjs/core';
import 'react-fast-compare';
import '../../hooks/useWindowSize.js';
import '../../popup/defaultProps.js';
import '../../popup/hooks/useTrigger.js';
import '../../_util/listener.js';
import '../../popup/utils/transition.js';
import '../../popup/PopupPlugin.js';
import '../../popup/style/index.js';
import '../../popup/type.js';
import '../../tooltip/defaultProps.js';
import '../../tooltip/TooltipLite.js';
import '../../hooks/useSwitch.js';
import '../../tooltip/style/index.js';
import '../../tooltip/type.js';
import '../../dialog/index.js';
import '../../dialog/Dialog.js';
import '../../hooks/useDeepEffect.js';
import '../../hooks/useSetState.js';
import '../../dialog/defaultProps.js';
import '../../dialog/DialogCard.js';
import '../../button/index.js';
import '../../button/Button.js';
import '../../button/defaultProps.js';
import '../../button/style/index.js';
import '../../button/type.js';
import '../../dialog/hooks/useDialogDrag.js';
import '../../hooks/useMouseEvent.js';
import '../../dialog/hooks/useDialogEsc.js';
import '../../dialog/hooks/useDialogPosition.js';
import '../../dialog/hooks/useLockStyle.js';
import '../../_chunks/dep-a3bde62f.js';
import '../../dialog/utils.js';
import '../../dialog/plugin.js';
import '../../dialog/style/index.js';
import '../../dialog/type.js';
import '../../image-viewer/hooks/useIconMap.js';
import '../../image-viewer/hooks/useIndex.js';
import '../../image-viewer/hooks/useMirror.js';
import '../../image-viewer/hooks/usePosition.js';
import '../../image-viewer/hooks/useRotate.js';
import '../../image-viewer/hooks/useScale.js';
import '../../image-viewer/utils.js';
import '../../image-viewer/defaultProps.js';
import '../../image-viewer/hooks/useImageScale.js';
import '../../image-viewer/hooks/useList.js';
import '../../image-viewer/hooks/useViewerScale.js';
import '../../image-viewer/style/index.js';
import '../../upload/themes/ImageCard.js';
import '../../upload/themes/MultipleFlowList.js';
import '../../upload/hooks/useUpload.js';
import '../../_chunks/dep-91b20286.js';
import '../../upload/defaultProps.js';
import '../../upload/themes/CustomFile.js';
import '../../_chunks/dep-55732ade.js';
import '../../tag/defaultProps.js';
import '../../tag/Tag.js';
import '../../_chunks/dep-3c3d29db.js';
import '../../hooks/useDragSorter.js';
import '../../input/index.js';
import '../../input/Input.js';
import '../../input/InputGroup.js';
import '../../input/defaultProps.js';
import '../../input/useLengthLimit.js';
import '../../input/style/index.js';
import '../../input/type.js';
import '../../tag-input/defaultProps.js';
import '../../tag-input/useHover.js';
import '../../tag-input/useTagList.js';
import '../../tag/index.js';
import '../../tag/CheckTagGroup.js';
import '../../tag/style/index.js';
import '../../tag/type.js';
import '../../tag-input/useTagScroll.js';
import '../../range-input/defaultProps.js';
import '../../transfer/TransferList.js';
import '../../transfer/utils.js';
import '../../pagination/index.js';
import '../../pagination/Pagination.js';
import '../../select/index.js';
import '../../select/base/Select.js';
import '../../common/FakeArrow.js';
import '../../select-input/index.js';
import '../../select-input/SelectInput.js';
import '../../select-input/useSingle.js';
import '../../select-input/useMultiple.js';
import '../../tag-input/index.js';
import '../../tag-input/style/index.js';
import '../../tag-input/type.js';
import '../../select-input/useOverlayInnerStyle.js';
import '../../select-input/defaultProps.js';
import '../../select-input/style/index.js';
import '../../select-input/type.js';
import '../../select/defaultProps.js';
import '../../_chunks/dep-c7ed701c.js';
import '../../select/base/OptionGroup.js';
import '../../select/base/Option.js';
import '../../select/base/PopupContent.js';
import '../../select/hooks/usePanelVirtualScroll.js';
import '../../select/style/index.js';
import '../../select/type.js';
import '../../input-number/index.js';
import '../../input-number/InputNumber.js';
import '../../input-number/useInputNumber.js';
import '../../input-number/defaultProps.js';
import '../../input-number/style/index.js';
import '../../input-number/type.js';
import '../../input-adornment/index.js';
import '../../input-adornment/InputAdornment.js';
import '../../input-adornment/style/index.js';
import '../../input-adornment/type.js';
import '../../pagination/hooks/useBoundaryJumper.js';
import '../../pagination/hooks/usePrevNextJumper.js';
import '../../pagination/hooks/usePageNumber.js';
import '../../pagination/hooks/useTotal.js';
import '../../pagination/validators.js';
import '../../pagination/defaultProps.js';
import '../../pagination/PaginationMini.js';
import '../../pagination/style/index.js';
import '../../pagination/type.js';
import '../../transfer/defaultProps.js';
import '../../_chunks/dep-9036728c.js';
import '../../_chunks/dep-dbf3be07.js';
import '../../_chunks/dep-9649fdab.js';
import '../../_chunks/dep-3538034b.js';
import '../../range-input/index.js';
import '../../range-input/RangeInputPopup.js';
import '../../range-input/style/index.js';
import '../../range-input/type.js';
import '../../date-picker/defaultProps.js';
import '../../date-picker/hooks/useRange.js';
import '../../date-picker/hooks/useRangeValue.js';
import '../../date-picker/panel/RangePanel.js';
import '../../date-picker/panel/PanelContent.js';
import '../../date-picker/base/Header.js';
import '../../date-picker/base/Table.js';
import '../../date-picker/base/Cell.js';
import '../../time-picker/index.js';
import '../../time-picker/TimePicker.js';
import '../../_chunks/dep-f7770f5d.js';
import '../../time-picker/hooks/useTimePickerTextConfig.js';
import '../../hooks/useDebounce.js';
import '../../hooks/usePropsRef.js';
import '../../time-picker/panel/TimePickerPanel.js';
import '../../time-picker/defaultProps.js';
import '../../time-picker/style/index.js';
import '../../time-picker/type.js';
import '../../date-picker/panel/ExtraContent.js';
import '../../date-picker/base/Footer.js';
import '../../date-picker/hooks/useTableData.js';
import '../../date-picker/hooks/useDisableDate.js';
import '../../date-picker/utils.js';
var ctrlKeyMap = /* @__PURE__ */new Map();
ctrlKeyMap.set(Checkbox, "checked");
ctrlKeyMap.set(CheckTag, "checked");
ctrlKeyMap.set(Upload, "files");
var initialDataMap = /* @__PURE__ */new Map();
[Tree, Upload, Transfer, TagInput, RangeInput, CheckboxGroup, DateRangePicker, TimeRangePicker].forEach(function (component) {
initialDataMap.set(component, []);
});
[Checkbox].forEach(function (component) {
initialDataMap.set(component, false);
});
function useFormItemInitialData(name) {
var hadReadFloatingFormData = false;
var _useFormContext = useFormContext(),
floatingFormDataRef = _useFormContext.floatingFormDataRef,
formContextInitialData = _useFormContext.initialData;
var _useFormListContext = useFormListContext(),
formListName = _useFormListContext.name,
formListInitialData = _useFormListContext.initialData;
useEffect(function () {
if (hadReadFloatingFormData) {
var nameList = formListName ? [formListName, name].flat() : name;
unset(floatingFormDataRef.current, nameList);
}
}, [hadReadFloatingFormData, floatingFormDataRef, formListName, name]);
function getDefaultInitialData(_ref) {
var children = _ref.children,
initialData = _ref.initialData;
if (name && floatingFormDataRef !== null && floatingFormDataRef !== void 0 && floatingFormDataRef.current && !isEmpty(floatingFormDataRef.current)) {
var nameList = formListName ? [formListName, name].flat() : name;
var defaultInitialData = get(floatingFormDataRef.current, nameList);
if (typeof defaultInitialData !== "undefined") {
hadReadFloatingFormData = true;
return defaultInitialData;
}
}
if (typeof initialData !== "undefined") {
return initialData;
}
if (name && formListInitialData.length) {
var _defaultInitialData = get(formListInitialData, name);
if (typeof _defaultInitialData !== "undefined") return _defaultInitialData;
}
if (name && formContextInitialData) {
var _defaultInitialData2 = get(formContextInitialData, name);
if (typeof _defaultInitialData2 !== "undefined") return _defaultInitialData2;
}
if (typeof children !== "function") {
var childList = React.Children.toArray(children);
var lastChild = childList[childList.length - 1];
if (lastChild && /*#__PURE__*/React.isValidElement(lastChild)) {
var _lastChild$props;
var isMultiple = lastChild === null || lastChild === void 0 || (_lastChild$props = lastChild.props) === null || _lastChild$props === void 0 ? void 0 : _lastChild$props.multiple;
return isMultiple ? [] : initialDataMap.get(lastChild.type);
}
}
}
return {
getDefaultInitialData: getDefaultInitialData
};
}
export { ctrlKeyMap, useFormItemInitialData as default, initialDataMap };
//# sourceMappingURL=useFormItemInitialData.js.map