UNPKG

tdesign-react

Version:
194 lines (188 loc) 7.51 kB
/** * tdesign v1.16.6 * (c) 2026 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var defineProperty = require('../../_chunks/dep-1f6c39e3.js'); var slicedToArray = require('../../_chunks/dep-3281986a.js'); var React = require('react'); var utils = require('../../_chunks/dep-7554ffe5.js'); var form_formModel = require('../../form/formModel.js'); var get = require('../../_chunks/dep-d1f369bc.js'); var isFunction = require('../../_chunks/dep-8c9795f9.js'); require('../../_chunks/dep-90a93885.js'); require('../../_chunks/dep-54373955.js'); require('../../_chunks/dep-ef5bfcf1.js'); require('../../_chunks/dep-05097eca.js'); require('../../_chunks/dep-20f09a63.js'); require('../../_chunks/dep-d7a3225b.js'); require('../../_chunks/dep-33be2db8.js'); require('../../_chunks/dep-989c8b4a.js'); require('../../_chunks/dep-79129c54.js'); require('../../_chunks/dep-4c4d8eee.js'); require('../../_chunks/dep-615c149d.js'); require('../../_chunks/dep-0173c82c.js'); require('../../_chunks/dep-202d6c73.js'); require('../../_chunks/dep-a8d5081a.js'); require('../../_chunks/dep-ef326eab.js'); require('../../_chunks/dep-3facd669.js'); require('../../_chunks/dep-403f5edf.js'); require('../../_chunks/dep-d24b94bc.js'); require('../../_chunks/dep-6478e7e3.js'); require('../../_chunks/dep-50349518.js'); require('../../_chunks/dep-723e29d6.js'); require('../../_chunks/dep-1f8c969d.js'); require('../../_chunks/dep-0652d2a6.js'); require('../../_chunks/dep-adec3cbe.js'); require('../../_chunks/dep-4748ebeb.js'); require('../../_chunks/dep-8663a5c9.js'); require('../../_chunks/dep-0bd8b970.js'); require('../../_chunks/dep-d7d7df54.js'); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function useEditableRow(props) { var cellRuleMap = React.useMemo(function () { return /* @__PURE__ */new Map(); }, []); var editableRowKeys = props.editableRowKeys; var _useState = React.useState({}), _useState2 = slicedToArray._slicedToArray(_useState, 2), errorListMap = _useState2[0], setErrorListMap = _useState2[1]; var editableKeysMap = React.useMemo(function () { return editableRowKeys && utils.getEditableKeysMap(editableRowKeys, props.data, props.rowKey || "id"); }, [editableRowKeys, props.data, props.rowKey]); var getErrorListMapByErrors = function getErrorListMapByErrors(errors) { var errorMap = {}; errors.forEach(function (_ref) { var row = _ref.row, col = _ref.col, errorList = _ref.errorList; var rowValue = get.get(row, props.rowKey || "id"); var key = [rowValue, col.colKey].join("__"); if (errorList !== null && errorList !== void 0 && errorList.length) { errorMap[key] = errorList; } else { delete errorMap[key]; } }); return errorMap; }; var validateOneRowData = function validateOneRowData(rowValue) { var rowRules = cellRuleMap.get(rowValue); if (!rowRules) return; var list = rowRules.map(function (item) { return new Promise(function (resolve) { var editedRow = item.editedRow, col = item.col; var rules = isFunction.isFunction(col.edit.rules) ? col.edit.rules(item) : col.edit.rules; if (!col.edit || !rules || !rules) { resolve(_objectSpread(_objectSpread({}, item), {}, { errorList: [] })); return; } form_formModel.validate(get.get(editedRow, col.colKey), rules).then(function (r) { resolve(_objectSpread(_objectSpread({}, item), {}, { errorList: r.filter(function (t) { return !t.result; }) })); }); }); }); return new Promise(function (resolve, reject) { Promise.all(list).then(function (errors) { resolve({ errors: errors.filter(function (t) { var _t$errorList; return (_t$errorList = t.errorList) === null || _t$errorList === void 0 ? void 0 : _t$errorList.length; }), errorMap: getErrorListMapByErrors(errors) }); }, reject); }); }; var validateRowData = function validateRowData(rowValue) { return new Promise(function (resolve, reject) { validateOneRowData(rowValue).then(function (_ref2) { var _props$onRowValidate; var errors = _ref2.errors, errorMap = _ref2.errorMap; setErrorListMap(errorMap); var tTrigger = "parent"; (_props$onRowValidate = props.onRowValidate) === null || _props$onRowValidate === void 0 || _props$onRowValidate.call(props, { trigger: tTrigger, result: errors }); resolve({ trigger: tTrigger, result: errors }); }, reject); }); }; var validateTableData = function validateTableData() { var promiseList = []; var data = props.data || []; for (var i = 0, len = data.length; i < len; i++) { var rowValue = get.get(data[i], props.rowKey || "id"); promiseList.push(validateOneRowData(rowValue)); } return new Promise(function (resolve, reject) { Promise.all(promiseList).then(function (rList) { var _props$onValidate; var allErrorListMap = {}; rList.forEach(function () { var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { errors: [], errorMap: {} }, errorMap = _ref3.errorMap; errorMap && Object.assign(allErrorListMap, errorMap); }); setErrorListMap(allErrorListMap); (_props$onValidate = props.onValidate) === null || _props$onValidate === void 0 || _props$onValidate.call(props, { result: allErrorListMap }); resolve({ result: allErrorListMap }); }, reject); }); }; var onRuleChange = function onRuleChange(context) { if (props.editableRowKeys) { var rowValue = get.get(context.row, props.rowKey || "id"); var rules = cellRuleMap.get(rowValue); if (rules) { var index = rules.findIndex(function (t) { return t.col.colKey === context.col.colKey; }); if (index === -1) { rules.push(context); } else { rules[index] = context; } cellRuleMap.set(rowValue, rules); } else { cellRuleMap.set(rowValue, [context]); } } }; var clearValidateData = function clearValidateData() { setErrorListMap({}); }; return { errorListMap: errorListMap, editableKeysMap: editableKeysMap, validateRowData: validateRowData, validateTableData: validateTableData, clearValidateData: clearValidateData, onRuleChange: onRuleChange }; } exports.useEditableRow = useEditableRow; //# sourceMappingURL=useEditableRow.js.map