UNPKG

tdesign-react

Version:
348 lines (342 loc) 17.3 kB
/** * tdesign v1.16.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var toConsumableArray = require('../../_chunks/dep-a7fe58de.js'); var objectWithoutProperties = require('../../_chunks/dep-40583e7c.js'); var index = require('../../_chunks/dep-e88f025c.js'); var slicedToArray = require('../../_chunks/dep-5cb0d66d.js'); var log = require('../../_chunks/dep-05f87b98.js'); var hooks_useConfig = require('../../hooks/useConfig.js'); var form_utils_index = require('../utils/index.js'); var cloneDeep = require('../../_chunks/dep-542bd26e.js'); var get = require('../../_chunks/dep-b7bd245a.js'); var set = require('../../_chunks/dep-e19c8b39.js'); var isEmpty = require('../../_chunks/dep-57675be6.js'); var isFunction = require('../../_chunks/dep-967e785f.js'); var merge = require('../../_chunks/dep-481a1ecc.js'); require('../../_chunks/dep-737b8bd8.js'); require('../../_chunks/dep-b325182b.js'); require('react'); require('../../config-provider/ConfigContext.js'); require('../../_chunks/dep-0fe55884.js'); require('../../_chunks/dep-17dea53e.js'); require('../../_chunks/dep-a0cbf081.js'); require('dayjs'); require('../../_chunks/dep-474eb386.js'); require('../../_chunks/dep-3b256bc0.js'); require('../../_chunks/dep-4ce0670e.js'); require('../../_chunks/dep-3448f35f.js'); require('../../_chunks/dep-b6a3ada9.js'); require('../../_chunks/dep-735cd5b9.js'); require('../../_chunks/dep-bdafd287.js'); require('../../_chunks/dep-4d300b8f.js'); require('../../_chunks/dep-3332ad6f.js'); require('../../_chunks/dep-98783318.js'); require('../../_chunks/dep-5c8525ea.js'); require('../../_chunks/dep-fc884a8e.js'); require('../../_chunks/dep-008b21d4.js'); require('../../_chunks/dep-9193eded.js'); require('../../_chunks/dep-afe817f9.js'); require('../../_chunks/dep-0b70c7ec.js'); require('../../_chunks/dep-a1e3e59b.js'); require('../../_chunks/dep-24ab8f68.js'); require('../../_chunks/dep-753b7d52.js'); require('../../_chunks/dep-2fca59e9.js'); require('../../_chunks/dep-50a2eaa5.js'); require('../../_chunks/dep-5dd1b13c.js'); require('../../_chunks/dep-eb2203ae.js'); require('../../_chunks/dep-7659797a.js'); require('../../_chunks/dep-c89d3d1e.js'); require('../../_chunks/dep-e018b522.js'); require('../../_chunks/dep-7f4d0687.js'); require('../../_chunks/dep-b23d5e45.js'); require('../../_chunks/dep-0398d4b6.js'); var _excluded = ["name"]; 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$current11, _formItemRef$current12; return isFunction.isFunction(formItemRef === null || formItemRef === void 0 || (_formItemRef$current11 = formItemRef.current) === null || _formItemRef$current11 === void 0 ? void 0 : _formItemRef$current11.validate) && needValidate(formItemRef === null || formItemRef === void 0 || (_formItemRef$current12 = formItemRef.current) === null || _formItemRef$current12 === void 0 ? void 0 : _formItemRef$current12.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$current13, _formItemRef$current14; return isFunction.isFunction(formItemRef === null || formItemRef === void 0 || (_formItemRef$current13 = formItemRef.current) === null || _formItemRef$current13 === void 0 ? void 0 : _formItemRef$current13.validateOnly) && needValidate(formItemRef === null || formItemRef === void 0 || (_formItemRef$current14 = formItemRef.current) === null || _formItemRef$current14 === void 0 ? void 0 : _formItemRef$current14.name, fields); }).map(function (formItemRef) { var _formItemRef$current$3, _formItemRef$current15; return formItemRef === null || formItemRef === void 0 || (_formItemRef$current$3 = (_formItemRef$current15 = formItemRef.current).validateOnly) === null || _formItemRef$current$3 === void 0 ? void 0 : _formItemRef$current$3.call(_formItemRef$current15, 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.findFormItem(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 = {}; var processField = function processField(name, formItemRef) { if (!(formItemRef !== null && formItemRef !== void 0 && formItemRef.current)) return; var getValue = formItemRef.current.getValue; var value = getValue === null || getValue === void 0 ? void 0 : getValue(); var fieldValue = form_utils_index.calcFieldValue(name, value, !props.supportNumberKey); merge.merge(fieldsValue, fieldValue); }; if (nameList === true) { var entries = Array.from(formMapRef.current.entries()); for (var i = entries.length - 1; i >= 0; i--) { var _entries$i = slicedToArray._slicedToArray(entries[i], 2), name = _entries$i[0], formItemRef = _entries$i[1]; processField(name, formItemRef); } } else { if (!Array.isArray(nameList)) { log.log.error("Form", 'The parameter of "getFieldsValue" must be an array'); return {}; } for (var _i = 0; _i < nameList.length; _i++) { var _name = nameList[_i]; var _formItemRef = form_utils_index.findFormItem(_name, formMapRef); processField(_name, _formItemRef); } } return cloneDeep.cloneDeep(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 fieldValue = get.get(fields, nameList); var formItemRef = form_utils_index.findFormItem(nameList, formMapRef); if (formItemRef !== null && formItemRef !== void 0 && formItemRef.current) { var _formItemRef$current$2, _formItemRef$current2; (_formItemRef$current$2 = (_formItemRef$current2 = formItemRef.current).setValue) === null || _formItemRef$current$2 === void 0 || _formItemRef$current$2.call(_formItemRef$current2, fieldValue); } 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 TypeError('The parameter of "setFields" must be an array'); fields.forEach(function (field) { var _formItemRef$current3; var name = field.name, restFields = objectWithoutProperties._objectWithoutProperties(field, _excluded); var formItemRef = form_utils_index.findFormItem(name, formMapRef); formItemRef === null || formItemRef === void 0 || (_formItemRef$current3 = formItemRef.current) === null || _formItemRef$current3 === void 0 || _formItemRef$current3.setField(restFields); }); } function reset(params) { if (typeof params === "undefined") { toConsumableArray._toConsumableArray(formMapRef.current.values()).forEach(function (formItemRef) { var _formItemRef$current4; formItemRef === null || formItemRef === void 0 || (_formItemRef$current4 = formItemRef.current) === null || _formItemRef$current4 === void 0 || _formItemRef$current4.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$current5; var formItemRef = form_utils_index.findFormItem(name, formMapRef); formItemRef === null || formItemRef === void 0 || (_formItemRef$current5 = formItemRef.current) === null || _formItemRef$current5 === void 0 || _formItemRef$current5.resetField(type); }); } onReset === null || onReset === void 0 || onReset({}); requestAnimationFrame(function () { var _props$onValuesChange; var fieldValue = getFieldsValue(true); (_props$onValuesChange = props.onValuesChange) === null || _props$onValuesChange === void 0 || _props$onValuesChange.call(props, fieldValue, fieldValue); }); } function clearValidate(fields) { if (typeof fields === "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.resetValidate(); }); } else { if (!Array.isArray(fields)) throw new TypeError('The parameter of "clearValidate" must be an array'); fields.forEach(function (name) { var _formItemRef$current7; var formItemRef = form_utils_index.findFormItem(name, formMapRef); formItemRef === null || formItemRef === void 0 || (_formItemRef$current7 = formItemRef.current) === null || _formItemRef$current7 === void 0 || _formItemRef$current7.resetValidate(); }); } } function setValidateMessage(message) { form_utils_index.travelMapFromObject(message, formMapRef, function (formItemRef, fieldValue) { var _formItemRef$current8, _formItemRef$current9; formItemRef === null || formItemRef === void 0 || (_formItemRef$current8 = formItemRef.current) === null || _formItemRef$current8 === void 0 || (_formItemRef$current9 = _formItemRef$current8.setValidateMessage) === null || _formItemRef$current9 === void 0 || _formItemRef$current9.call(_formItemRef$current8, fieldValue); }); } function getValidateMessage(fields) { if (typeof fields !== "undefined" && !Array.isArray(fields)) { throw new TypeError('The parameter of "getValidateMessage" must be an array'); } var formItemRefs = typeof fields === "undefined" ? toConsumableArray._toConsumableArray(formMapRef.current.values()) : fields.map(function (name) { var formItemRef = form_utils_index.findFormItem(name, formMapRef); return formItemRef; }).filter(Boolean); var extractValidateMessage = function extractValidateMessage(formItemRef) { var _formItemRef$current0, _formItemRef$current1, _formItemRef$current10; var item = formItemRef === null || formItemRef === void 0 || (_formItemRef$current0 = formItemRef.current) === null || _formItemRef$current0 === void 0 || (_formItemRef$current1 = _formItemRef$current0.getValidateMessage) === null || _formItemRef$current1 === void 0 ? void 0 : _formItemRef$current1.call(_formItemRef$current0); if (isEmpty.isEmpty(item)) return null; var nameKey = formItemRef === null || formItemRef === void 0 || (_formItemRef$current10 = formItemRef.current) === null || _formItemRef$current10 === void 0 ? void 0 : _formItemRef$current10.name; return { nameKey: nameKey, item: item }; }; var message = {}; formItemRefs.forEach(function (formItemRef) { var result = extractValidateMessage(formItemRef); if (!result) return; var key = Array.isArray(result.nameKey) ? result.nameKey.toString() : String(result.nameKey); message[key] = result.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