tdesign-react
Version:
TDesign Component for React
348 lines (342 loc) • 17.3 kB
JavaScript
/**
* 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