UNPKG

tdesign-react

Version:
334 lines (330 loc) 18.5 kB
/** * tdesign v1.15.1 * (c) 2025 tdesign * @license MIT */ import { _ as _objectWithoutProperties } from '../../_chunks/dep-6b660ef0.js'; import { _ as _toConsumableArray } from '../../_chunks/dep-87d110df.js'; import { _ as _asyncToGenerator, r as regenerator } from '../../_chunks/dep-52ff3837.js'; import { _ as _slicedToArray } from '../../_chunks/dep-48805ab8.js'; import { merge, get, isEqual, set, isEmpty, isFunction } from 'lodash-es'; import { l as log } from '../../_chunks/dep-b908e1fe.js'; import useConfig from '../../hooks/useConfig.js'; import { getMapValue, calcFieldValue, objectToArray, travelMapFromObject } from '../utils/index.js'; import '../../_chunks/dep-026a4c6b.js'; import '../../_chunks/dep-eca3a3de.js'; import 'react'; import '../../config-provider/ConfigContext.js'; import '../../_chunks/dep-cb0a3966.js'; import '../../_chunks/dep-f97636ce.js'; import '../../_chunks/dep-9dbbf468.js'; import 'dayjs'; var _excluded = ["name"]; function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function needValidate(name, fields) { if (!fields || !Array.isArray(fields)) return true; return fields.some(function (item) { return String(item) === String(name); }); } function formatValidateResult(validateResultList) { var result = validateResultList.reduce(function (r, err) { return Object.assign(r || {}, err); }, {}); Object.keys(result).forEach(function (key) { if (result[key] === true) { delete result[key]; } else { result[key] = result[key].filter(function (fr) { return fr.result === false; }); } if (result[key] && key.includes(",")) { var keyList = key.split(","); var fieldValue = calcFieldValue(keyList, result[key]); merge(result, fieldValue); delete result[key]; } }); return isEmpty(result) ? true : result; } function useInstance(props, formRef, formMapRef, floatingFormDataRef) { var _useConfig = useConfig(), classPrefix = _useConfig.classPrefix; var scrollToFirstError = props.scrollToFirstError, _props$preventSubmitD = props.preventSubmitDefault, preventSubmitDefault = _props$preventSubmitD === void 0 ? true : _props$preventSubmitD, onSubmit = props.onSubmit, onReset = props.onReset; function getFirstError(r) { var _r$firstKey$; if (r === true) return; var _Object$keys = Object.keys(r), _Object$keys2 = _slicedToArray(_Object$keys, 1), firstKey = _Object$keys2[0]; if (scrollToFirstError) { scrollTo(".".concat(classPrefix, "-form--has-error")); } return (_r$firstKey$ = r[firstKey][0]) === null || _r$firstKey$ === void 0 ? void 0 : _r$firstKey$.message; } function scrollTo(selector) { var _formRef$current$quer, _formRef$current; var dom = (_formRef$current$quer = (_formRef$current = formRef.current).querySelector) === null || _formRef$current$quer === void 0 ? void 0 : _formRef$current$quer.call(_formRef$current, selector); var behavior = scrollToFirstError; dom && dom.scrollIntoView({ behavior: behavior }); } function submit(e) { if (preventSubmitDefault) { var _e$preventDefault, _e$stopPropagation; e === null || e === void 0 || (_e$preventDefault = e.preventDefault) === null || _e$preventDefault === void 0 || _e$preventDefault.call(e); e === null || e === void 0 || (_e$stopPropagation = e.stopPropagation) === null || _e$stopPropagation === void 0 || _e$stopPropagation.call(e); } validate().then(function (r) { var firstError = getFirstError(r); var fields = getFieldsValue(true); onSubmit === null || onSubmit === void 0 || onSubmit({ validateResult: r, firstError: firstError, e: e, fields: fields }); }); } function validate(_x) { return _validate.apply(this, arguments); } function _validate() { _validate = _asyncToGenerator(/*#__PURE__*/regenerator.mark(function _callee(param) { var _ref, fields, _ref$trigger, trigger, showErrorMessage, list, validateList; return regenerator.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _ref = param || {}, fields = _ref.fields, _ref$trigger = _ref.trigger, trigger = _ref$trigger === void 0 ? "all" : _ref$trigger, showErrorMessage = _ref.showErrorMessage; list = _toConsumableArray(formMapRef.current.values()).filter(function (formItemRef) { var _formItemRef$current16, _formItemRef$current17; return isFunction(formItemRef === null || formItemRef === void 0 || (_formItemRef$current16 = formItemRef.current) === null || _formItemRef$current16 === void 0 ? void 0 : _formItemRef$current16.validate) && needValidate(formItemRef === null || formItemRef === void 0 || (_formItemRef$current17 = formItemRef.current) === null || _formItemRef$current17 === void 0 ? void 0 : _formItemRef$current17.name, fields); }).map(function (formItemRef) { return formItemRef === null || formItemRef === void 0 ? void 0 : formItemRef.current.validate(trigger, showErrorMessage); }); _context.next = 1; return Promise.all(list); case 1: validateList = _context.sent; return _context.abrupt("return", formatValidateResult(validateList)); case 2: case "end": return _context.stop(); } }, _callee); })); return _validate.apply(this, arguments); } function validateOnly(_x2) { return _validateOnly.apply(this, arguments); } function _validateOnly() { _validateOnly = _asyncToGenerator(/*#__PURE__*/regenerator.mark(function _callee2(param) { var _ref2, fields, _ref2$trigger, trigger, list, validateList; return regenerator.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _ref2 = param || {}, fields = _ref2.fields, _ref2$trigger = _ref2.trigger, trigger = _ref2$trigger === void 0 ? "all" : _ref2$trigger; list = _toConsumableArray(formMapRef.current.values()).filter(function (formItemRef) { var _formItemRef$current18, _formItemRef$current19; return isFunction(formItemRef === null || formItemRef === void 0 || (_formItemRef$current18 = formItemRef.current) === null || _formItemRef$current18 === void 0 ? void 0 : _formItemRef$current18.validateOnly) && needValidate(formItemRef === null || formItemRef === void 0 || (_formItemRef$current19 = formItemRef.current) === null || _formItemRef$current19 === void 0 ? void 0 : _formItemRef$current19.name, fields); }).map(function (formItemRef) { var _formItemRef$current$5, _formItemRef$current20; return formItemRef === null || formItemRef === void 0 || (_formItemRef$current$5 = (_formItemRef$current20 = formItemRef.current).validateOnly) === null || _formItemRef$current$5 === void 0 ? void 0 : _formItemRef$current$5.call(_formItemRef$current20, trigger); }); _context2.next = 1; return Promise.all(list); case 1: validateList = _context2.sent; return _context2.abrupt("return", formatValidateResult(validateList)); case 2: case "end": return _context2.stop(); } }, _callee2); })); return _validateOnly.apply(this, arguments); } function getFieldValue(name) { var _formItemRef$current, _formItemRef$current$; if (!name) return null; var formItemRef = getMapValue(name, formMapRef); return formItemRef === null || formItemRef === void 0 || (_formItemRef$current = formItemRef.current) === null || _formItemRef$current === void 0 || (_formItemRef$current$ = _formItemRef$current.getValue) === null || _formItemRef$current$ === void 0 ? void 0 : _formItemRef$current$.call(_formItemRef$current); } function getFieldsValue(nameList) { var fieldsValue = {}; if (nameList === true) { var _iterator = _createForOfIteratorHelper(_toConsumableArray(formMapRef.current.entries()).reverse()), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var _step$value = _slicedToArray(_step.value, 2), name = _step$value[0], formItemRef = _step$value[1]; var fieldValue = null; if (formItemRef !== null && formItemRef !== void 0 && formItemRef.current.isFormList) { var _formItemRef$current$2, _formItemRef$current2; fieldValue = calcFieldValue(name, formItemRef === null || formItemRef === void 0 || (_formItemRef$current$2 = (_formItemRef$current2 = formItemRef.current).getValue) === null || _formItemRef$current$2 === void 0 ? void 0 : _formItemRef$current$2.call(_formItemRef$current2)); } else { var _formItemRef$current$3, _formItemRef$current3; fieldValue = calcFieldValue(name, formItemRef === null || formItemRef === void 0 || (_formItemRef$current$3 = (_formItemRef$current3 = formItemRef.current).getValue) === null || _formItemRef$current$3 === void 0 ? void 0 : _formItemRef$current$3.call(_formItemRef$current3), !props.supportNumberKey); } merge(fieldsValue, fieldValue); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } else { if (!Array.isArray(nameList)) { log.error("Form", "`getFieldsValue` \u53C2\u6570\u9700\u8981 Array \u7C7B\u578B"); return {}; } nameList.forEach(function (name) { var _formItemRef$current$4, _formItemRef$current4; var formItemRef = getMapValue(name, formMapRef); if (!formItemRef) return; var fieldValue = calcFieldValue(name, formItemRef === null || formItemRef === void 0 || (_formItemRef$current$4 = (_formItemRef$current4 = formItemRef.current).getValue) === null || _formItemRef$current$4 === void 0 ? void 0 : _formItemRef$current$4.call(_formItemRef$current4)); merge(fieldsValue, fieldValue); }); } return fieldsValue; } function setFieldsValue() { var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var nameLists = objectToArray(fields); nameLists.forEach(function (nameList) { var _formItemRef2; var fieldValue = get(fields, nameList); var formItemRef; if (nameList.length > 1) { var _iterator2 = _createForOfIteratorHelper(formMapRef.current.entries()), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var _step2$value = _slicedToArray(_step2.value, 2), mapNameList = _step2$value[0], _formItemRef = _step2$value[1]; if (isEqual(nameList, mapNameList)) { formItemRef = _formItemRef; break; } } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } else { formItemRef = formMapRef.current.get(nameList[0]); } if ((_formItemRef2 = formItemRef) !== null && _formItemRef2 !== void 0 && _formItemRef2.current) { var _formItemRef3, _formItemRef3$setValu; (_formItemRef3 = formItemRef) === null || _formItemRef3 === void 0 || (_formItemRef3 = _formItemRef3.current) === null || _formItemRef3 === void 0 || (_formItemRef3$setValu = _formItemRef3.setValue) === null || _formItemRef3$setValu === void 0 || _formItemRef3$setValu.call(_formItemRef3, fieldValue, fields); } else { set(floatingFormDataRef.current, nameList, fieldValue); } }); } function setFields() { var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; if (!Array.isArray(fields)) throw new Error("setFields \u53C2\u6570\u9700\u8981 Array \u7C7B\u578B"); fields.forEach(function (field) { var _formItemRef$current5; var name = field.name, restFields = _objectWithoutProperties(field, _excluded); var formItemRef = getMapValue(name, formMapRef); formItemRef === null || formItemRef === void 0 || (_formItemRef$current5 = formItemRef.current) === null || _formItemRef$current5 === void 0 || _formItemRef$current5.setField(restFields, field); }); } function reset(params) { if (typeof params === "undefined") { _toConsumableArray(formMapRef.current.values()).forEach(function (formItemRef) { var _formItemRef$current6; formItemRef === null || formItemRef === void 0 || (_formItemRef$current6 = formItemRef.current) === null || _formItemRef$current6 === void 0 || _formItemRef$current6.resetField(); }); } else { var _params$type = params.type, type = _params$type === void 0 ? "initial" : _params$type, _params$fields = params.fields, fields = _params$fields === void 0 ? [] : _params$fields; fields.forEach(function (name) { var _formItemRef$current7; var formItemRef = getMapValue(name, formMapRef); formItemRef === null || formItemRef === void 0 || (_formItemRef$current7 = formItemRef.current) === null || _formItemRef$current7 === void 0 || _formItemRef$current7.resetField(type); }); } onReset === null || onReset === void 0 || onReset({}); } function clearValidate(fields) { if (typeof fields === "undefined") { _toConsumableArray(formMapRef.current.values()).forEach(function (formItemRef) { var _formItemRef$current8; formItemRef === null || formItemRef === void 0 || (_formItemRef$current8 = formItemRef.current) === null || _formItemRef$current8 === void 0 || _formItemRef$current8.resetValidate(); }); } else { if (!Array.isArray(fields)) throw new Error("clearValidate \u53C2\u6570\u9700\u8981 Array \u7C7B\u578B"); fields.forEach(function (name) { var _formItemRef$current9; var formItemRef = getMapValue(name, formMapRef); formItemRef === null || formItemRef === void 0 || (_formItemRef$current9 = formItemRef.current) === null || _formItemRef$current9 === void 0 || _formItemRef$current9.resetValidate(); }); } } function setValidateMessage(message) { travelMapFromObject(message, formMapRef, function (formItemRef, fieldValue) { var _formItemRef$current0, _formItemRef$current1; formItemRef === null || formItemRef === void 0 || (_formItemRef$current0 = formItemRef.current) === null || _formItemRef$current0 === void 0 || (_formItemRef$current1 = _formItemRef$current0.setValidateMessage) === null || _formItemRef$current1 === void 0 || _formItemRef$current1.call(_formItemRef$current0, fieldValue); }); } function getValidateMessage(fields) { var message = {}; if (typeof fields === "undefined") { _toConsumableArray(formMapRef.current.values()).forEach(function (formItemRef) { var _formItemRef$current10, _formItemRef$current11, _formItemRef$current12; var item = formItemRef === null || formItemRef === void 0 || (_formItemRef$current10 = formItemRef.current) === null || _formItemRef$current10 === void 0 || (_formItemRef$current11 = _formItemRef$current10.getValidateMessage) === null || _formItemRef$current11 === void 0 ? void 0 : _formItemRef$current11.call(_formItemRef$current10); if (isEmpty(item)) return; message[formItemRef === null || formItemRef === void 0 || (_formItemRef$current12 = formItemRef.current) === null || _formItemRef$current12 === void 0 ? void 0 : _formItemRef$current12.name] = item; }); } else { if (!Array.isArray(fields)) throw new Error("getValidateMessage \u53C2\u6570\u9700\u8981 Array \u7C7B\u578B"); fields.forEach(function (name) { var _formItemRef$current13, _formItemRef$current14, _formItemRef$current15; var formItemRef = getMapValue(name, formMapRef); var item = formItemRef === null || formItemRef === void 0 || (_formItemRef$current13 = formItemRef.current) === null || _formItemRef$current13 === void 0 || (_formItemRef$current14 = _formItemRef$current13.getValidateMessage) === null || _formItemRef$current14 === void 0 ? void 0 : _formItemRef$current14.call(_formItemRef$current13); if (isEmpty(item)) return; message[formItemRef === null || formItemRef === void 0 || (_formItemRef$current15 = formItemRef.current) === null || _formItemRef$current15 === void 0 ? void 0 : _formItemRef$current15.name] = item; }); } if (isEmpty(message)) return; return message; } return { submit: submit, reset: reset, validate: validate, validateOnly: validateOnly, clearValidate: clearValidate, setFields: setFields, setFieldsValue: setFieldsValue, setValidateMessage: setValidateMessage, getValidateMessage: getValidateMessage, getFieldValue: getFieldValue, getFieldsValue: getFieldsValue, currentElement: formRef.current, getCurrentElement: function getCurrentElement() { return formRef.current; } }; } export { useInstance as default }; //# sourceMappingURL=useInstance.js.map