UNPKG

tdesign-react

Version:
375 lines (369 loc) 20.6 kB
/** * tdesign v1.13.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var objectWithoutProperties = require('../../_chunks/dep-810b3643.js'); var toConsumableArray = require('../../_chunks/dep-64a1054a.js'); var index = require('../../_chunks/dep-a93b6608.js'); var slicedToArray = require('../../_chunks/dep-e17e2d31.js'); var log = require('../../_chunks/dep-4bc3c0ab.js'); var hooks_useConfig = require('../../hooks/useConfig.js'); var form_utils_index = require('../utils/index.js'); var merge = require('../../_chunks/dep-7da96a57.js'); var get = require('../../_chunks/dep-fbc19a54.js'); var isEqual = require('../../_chunks/dep-d6e82200.js'); var set = require('../../_chunks/dep-ad833f1c.js'); var isEmpty = require('../../_chunks/dep-2bf61ef1.js'); var isFunction = require('../../_chunks/dep-bed9d73e.js'); require('../../_chunks/dep-b7d577ac.js'); require('../../_chunks/dep-6d4d8660.js'); require('react'); require('../../config-provider/ConfigContext.js'); require('../../_chunks/dep-cc768e34.js'); require('../../_chunks/dep-3a869b87.js'); require('../../_chunks/dep-ac58e1cc.js'); require('dayjs'); require('../../_chunks/dep-07b911d8.js'); require('../../_chunks/dep-4b02d669.js'); require('../../_chunks/dep-f0379c5f.js'); require('../../_chunks/dep-ddacd27a.js'); require('../../_chunks/dep-028b759d.js'); require('../../_chunks/dep-8a116183.js'); require('../../_chunks/dep-4671b9bd.js'); require('../../_chunks/dep-47bdc05f.js'); require('../../_chunks/dep-cab13149.js'); require('../../_chunks/dep-a30819a4.js'); require('../../_chunks/dep-6a7ba247.js'); require('../../_chunks/dep-780eda7b.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-aaaf9309.js'); require('../../_chunks/dep-4ba2ac6b.js'); require('../../_chunks/dep-f076775e.js'); require('../../_chunks/dep-62193a48.js'); require('../../_chunks/dep-94d97586.js'); require('../../_chunks/dep-b12bf98d.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('../../_chunks/dep-2df3735a.js'); 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 = form_utils_index.calcFieldValue(keyList, result[key]); merge.merge(result, fieldValue); delete result[key]; } }); return isEmpty.isEmpty(result) ? true : result; } function useInstance(props, formRef, formMapRef, floatingFormDataRef) { var _useConfig = hooks_useConfig["default"](), 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._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 = index._asyncToGenerator(/*#__PURE__*/index.regenerator.mark(function _callee(param) { var _ref, fields, _ref$trigger, trigger, showErrorMessage, list, validateList; return index.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._toConsumableArray(formMapRef.current.values()).filter(function (formItemRef) { var _formItemRef$current16, _formItemRef$current17; return isFunction.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 = index._asyncToGenerator(/*#__PURE__*/index.regenerator.mark(function _callee2(param) { var _ref2, fields, _ref2$trigger, trigger, list, validateList; return index.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._toConsumableArray(formMapRef.current.values()).filter(function (formItemRef) { var _formItemRef$current18, _formItemRef$current19; return isFunction.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 = form_utils_index.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._toConsumableArray(formMapRef.current.entries()).reverse()), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var _step$value = slicedToArray._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 = form_utils_index.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 = form_utils_index.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.merge(fieldsValue, fieldValue); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } else { if (!Array.isArray(nameList)) { log.log.error("Form", "`getFieldsValue` \u53C2\u6570\u9700\u8981 Array \u7C7B\u578B"); return {}; } nameList.forEach(function (name) { var _formItemRef$current$4, _formItemRef$current4; var formItemRef = form_utils_index.getMapValue(name, formMapRef); if (!formItemRef) return; var fieldValue = form_utils_index.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.merge(fieldsValue, fieldValue); }); } return fieldsValue; } function setFieldsValue() { var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var nameLists = form_utils_index.objectToArray(fields); nameLists.forEach(function (nameList) { var _formItemRef2; var fieldValue = get.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._slicedToArray(_step2.value, 2), mapNameList = _step2$value[0], _formItemRef = _step2$value[1]; if (isEqual.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.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._objectWithoutProperties(field, _excluded); var formItemRef = form_utils_index.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._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 = form_utils_index.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._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 = form_utils_index.getMapValue(name, formMapRef); formItemRef === null || formItemRef === void 0 || (_formItemRef$current9 = formItemRef.current) === null || _formItemRef$current9 === void 0 || _formItemRef$current9.resetValidate(); }); } } function setValidateMessage(message) { form_utils_index.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._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.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 = form_utils_index.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.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.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; } }; } exports["default"] = useInstance; //# sourceMappingURL=useInstance.js.map