tdesign-react
Version:
TDesign Component for React
302 lines (298 loc) • 12.3 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
import React, { useEffect } from 'react';
import { isEmpty, get, unset } 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-872df51f.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-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 '../../_chunks/dep-f97636ce.js';
import '../../_chunks/dep-9dbbf468.js';
import 'dayjs';
import '../../common/Portal.js';
import 'react-dom';
import '../../hooks/useLayoutEffect.js';
import '../../loading/gradient.js';
import '../../_chunks/dep-c48e2ca1.js';
import '../../_chunks/dep-6af6bc60.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-52ff3837.js';
import '../../common/PluginContainer.js';
import '../../config-provider/ConfigProvider.js';
import '../../hooks/useRipple.js';
import '../../hooks/useAnimation.js';
import '../../hooks/useGlobalIcon.js';
import '../../checkbox/index.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-603c8128.js';
import '../../_chunks/dep-46885238.js';
import 'mitt';
import '../../_chunks/dep-6575b736.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-f83e4452.js';
import '../../link/index.js';
import '../../link/Link.js';
import '../../link/defaultProps.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-6a010af7.js';
import '../../_chunks/dep-76b39920.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 '../../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 '../../tooltip/defaultProps.js';
import '../../tooltip/TooltipLite.js';
import '../../hooks/useSwitch.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 '../../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-51092aec.js';
import '../../dialog/utils.js';
import '../../dialog/plugin.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 '../../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-dbcf7b24.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 '../../tag-input/defaultProps.js';
import '../../tag-input/useHover.js';
import '../../tag-input/useTagList.js';
import '../../tag/index.js';
import '../../tag/CheckTagGroup.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 '../../select-input/useOverlayInnerStyle.js';
import '../../select-input/defaultProps.js';
import '../../select/defaultProps.js';
import '../../_chunks/dep-72472aa7.js';
import '../../select/base/OptionGroup.js';
import '../../select/base/Option.js';
import '../../select/base/PopupContent.js';
import '../../select/hooks/usePanelVirtualScroll.js';
import '../../input-number/index.js';
import '../../input-number/InputNumber.js';
import '../../input-number/useInputNumber.js';
import '../../input-number/defaultProps.js';
import '../../input-adornment/InputAdornment.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 '../../transfer/defaultProps.js';
import '../../_chunks/dep-2c0a85a4.js';
import '../../_chunks/dep-f9b15bc8.js';
import '../../_chunks/dep-b1c8a9c9.js';
import '../../_chunks/dep-8ef7b882.js';
import '../../range-input/index.js';
import '../../range-input/RangeInputPopup.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-2990bb49.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 '../../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