UNPKG

tdesign-vue

Version:
331 lines (323 loc) 13.5 kB
/** * tdesign v1.15.0 * (c) 2026 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator'); var _slicedToArray = require('@babel/runtime/helpers/slicedToArray'); var _defineProperty = require('@babel/runtime/helpers/defineProperty'); var _regeneratorRuntime = require('@babel/runtime/regenerator'); var form_props = require('./props.js'); var form_const = require('./const.js'); var utils_event = require('../utils/event.js'); var form_formItem = require('./form-item.js'); var configProvider_configReceiver = require('../config-provider/config-receiver.js'); var utils_mixins = require('../utils/mixins.js'); var _getAllKeys = require('../_chunks/dep-7fbd94e9.js'); var isEmpty = require('../_chunks/dep-812bd25d.js'); require('../utils/helper.js'); require('@babel/runtime/helpers/objectWithoutProperties'); require('../_chunks/dep-9c5b91d3.js'); require('../_chunks/dep-9a74c2be.js'); require('../_chunks/dep-689d381f.js'); require('../_chunks/dep-3b2292ce.js'); require('@babel/runtime/helpers/typeof'); require('../_chunks/dep-10fcb46d.js'); require('../_chunks/dep-803744d9.js'); require('../_chunks/dep-ba7f5924.js'); require('../_chunks/dep-84027b7f.js'); require('../_chunks/dep-49400b00.js'); require('../_chunks/dep-f1081d8e.js'); require('vue'); require('tdesign-icons-vue'); require('./form-model.js'); require('../_chunks/dep-c13dcbfd.js'); require('../_chunks/dep-268c68b1.js'); require('./form-item-props.js'); require('../_common/js/log/log.js'); require('../utils/render-tnode.js'); require('@babel/runtime/helpers/readOnlyError'); require('@vue/composition-api'); require('../_chunks/dep-2c592e99.js'); require('../_chunks/dep-1a76e9a7.js'); require('../_chunks/dep-a7198720.js'); require('../_chunks/dep-1e173c2b.js'); require('../_chunks/dep-7c84d9a0.js'); require('../_chunks/dep-733a2279.js'); require('../_chunks/dep-8d206316.js'); require('../_chunks/dep-2bc87cc8.js'); require('../_chunks/dep-d844c9ed.js'); require('../_chunks/dep-25a90d6f.js'); require('../_chunks/dep-594e0165.js'); require('../_chunks/dep-6f4e680e.js'); require('../_chunks/dep-bb0ececf.js'); require('../_chunks/dep-6eba4d23.js'); require('../_chunks/dep-010db548.js'); require('../_chunks/dep-f77d6ad5.js'); require('../_chunks/dep-9dae8101.js'); require('../_chunks/dep-c05a9033.js'); require('../_chunks/dep-efe55b82.js'); require('../_chunks/dep-124386d4.js'); require('../_chunks/dep-56f568d3.js'); require('../_chunks/dep-82ce56ef.js'); require('../_chunks/dep-4e96e31a.js'); require('../_chunks/dep-8eddb350.js'); require('../_common/js/global-config/default-config.js'); require('../_common/js/global-config/locale/zh_CN.js'); require('../_chunks/dep-0c37520c.js'); require('dayjs'); require('../_chunks/dep-7da70ee1.js'); require('../_chunks/dep-f5b14344.js'); require('../_chunks/dep-36c2788b.js'); require('../_chunks/dep-fa353fbb.js'); require('../_chunks/dep-d66ab3a4.js'); require('../_chunks/dep-d4d8c513.js'); require('../_chunks/dep-8e31da93.js'); require('../_chunks/dep-518e9c7b.js'); require('../_common/js/global-config/t.js'); require('../_chunks/dep-a2217d56.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator); var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray); var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty); var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime); 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__default["default"](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; } var classPrefixMixins = configProvider_configReceiver.getClassPrefixMixins("form"); var _Form = utils_mixins["default"](classPrefixMixins).extend({ name: "TForm", props: _objectSpread({}, form_props["default"]), provide: function provide() { return { form: this }; }, data: function data() { return { children: [] }; }, computed: { formClass: function formClass() { return [this.componentName, _defineProperty__default["default"]({}, "".concat(this.componentName, "-inline"), this.layout === "inline")]; }, formDataKeys: function formDataKeys() { return _getAllKeys.keys(this.data); }, controlledComponents: function controlledComponents() { var _this$formControlledC; var fields = form_const.FORM_CONTROL_COMPONENTS; if ((_this$formControlledC = this.formControlledComponents) !== null && _this$formControlledC !== void 0 && _this$formControlledC.length) { fields = fields.concat(this.formControlledComponents); } return fields; } }, created: function created() { var _this = this; this.$on("form-item-created", function (formItem) { _this.children.push(formItem); }); this.$on("form-item-destroyed", function (formItem) { var index = _this.children.findIndex(function (item) { return item === formItem; }); _this.children.splice(index, 1); }); }, methods: { getFirstError: function getFirstError(r) { if (r === true) return; var _Object$keys = Object.keys(r), _Object$keys2 = _slicedToArray__default["default"](_Object$keys, 1), firstKey = _Object$keys2[0]; if (this.scrollToFirstError) { this.scrollTo(".".concat(form_formItem.getFormItemClassName(this.componentName, firstKey))); } return r[firstKey][0].message; }, scrollTo: function scrollTo(selector) { var dom = this.$el.querySelector(selector); var behavior = this.scrollToFirstError; dom && dom.scrollIntoView({ behavior: behavior }); }, isFunction: function isFunction(val) { return typeof val === "function"; }, needValidate: function needValidate(name, fields) { if (!fields || !Array.isArray(fields)) return true; return fields.indexOf(name) !== -1; }, formatValidateResult: function formatValidateResult(arr) { if (!arr || !arr.length) return true; var r = arr.reduce(function (r2, err) { return Object.assign(r2 || {}, err); }); Object.keys(r).forEach(function (key) { if (r[key] === true) { delete r[key]; } else { r[key] = r[key].filter(function (fr) { return fr.result === false; }); } }); return isEmpty.isEmpty(r) ? true : r; }, validate: function validate() { var _arguments = arguments, _this2 = this; return _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() { var param, source, _ref2, fields, _ref2$trigger, trigger, list, arr, result; return _regeneratorRuntime__default["default"].wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: param = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : { showErrorMessage: true }; source = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : "submit-function"; _ref2 = param || {}, fields = _ref2.fields, _ref2$trigger = _ref2.trigger, trigger = _ref2$trigger === void 0 ? "all" : _ref2$trigger; list = _this2.children.filter(function (child) { return _this2.isFunction(child.validate) && _this2.needValidate(String(child.name), fields); }).map(function (child) { return child.validate(trigger, param.showErrorMessage, source); }); _context.next = 1; return Promise.all(list); case 1: arr = _context.sent; result = _this2.formatValidateResult(arr); utils_event.emitEvent(_this2, "validate", { validateResult: result, firstError: _this2.getFirstError(result) }); return _context.abrupt("return", result); case 2: case "end": return _context.stop(); } }, _callee); }))(); }, validateOnly: function validateOnly(param) { var _this3 = this; return _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() { var _ref3, fields, _ref3$trigger, trigger, list, arr, result; return _regeneratorRuntime__default["default"].wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _ref3 = param || {}, fields = _ref3.fields, _ref3$trigger = _ref3.trigger, trigger = _ref3$trigger === void 0 ? "all" : _ref3$trigger; list = _this3.children.filter(function (child) { return _this3.isFunction(child.validate) && _this3.needValidate(String(child.name), fields); }).map(function (child) { return child.validateOnly(trigger); }); _context2.next = 1; return Promise.all(list); case 1: arr = _context2.sent; result = _this3.formatValidateResult(arr); return _context2.abrupt("return", result); case 2: case "end": return _context2.stop(); } }, _callee2); }))(); }, setValidateMessage: function setValidateMessage(validateMessage) { var _this4 = this; var keys2 = Object.keys(validateMessage || {}); if (!keys2.length) return; var list = this.children.filter(function (child) { return _this4.isFunction(child.setValidateMessage) && keys2.includes(String(child.name)); }).map(function (child) { return child.setValidateMessage(validateMessage[child.name]); }); Promise.all(list); }, submitHandler: function submitHandler(e) { var _this5 = this; if (this.preventSubmitDefault) { e === null || e === void 0 || e.preventDefault(); e === null || e === void 0 || e.stopPropagation(); } this.validate({ showErrorMessage: true }, "submit-event").then(function (r) { utils_event.emitEvent(_this5, "submit", { validateResult: r, firstError: _this5.getFirstError(r), e: e }); }); }, resetHandler: function resetHandler(e) { var _this6 = this; if (this.preventSubmitDefault) { e === null || e === void 0 || e.preventDefault(); e === null || e === void 0 || e.stopPropagation(); } this.children.filter(function (child) { return _this6.isFunction(child.resetField) && _this6.needValidate(String(child.name), _this6.formDataKeys); }).forEach(function (child) { return child.resetField(_this6.resetType || "initial"); }); utils_event.emitEvent(this, "reset", { e: e }); }, clearValidate: function clearValidate(fields) { var _this7 = this; this.children.forEach(function (child) { if (_this7.isFunction(child.resetHandler) && _this7.needValidate(String(child.name), fields)) { child.resetHandler(); } }); }, reset: function reset() { var _this8 = this; var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; this.children.filter(function (child) { return _this8.isFunction(child.resetField) && _this8.needValidate(String(child.name), _this8.formDataKeys); }).forEach(function (child) { var resetType = params.type || _this8.resetType || "initial"; if (!params.fields || params.fields && params.fields.includes(child.name)) { child.resetField(resetType); } }); utils_event.emitEvent(this, "reset", { e: void 0 }); }, submit: function submit(params) { var _this9 = this; this.validate({ showErrorMessage: params === null || params === void 0 ? void 0 : params.showErrorMessage }, "submit-function").then(function (r) { utils_event.emitEvent(_this9, "submit", { validateResult: r, firstError: _this9.getFirstError(r) }); }); } }, render: function render() { var h = arguments[0]; var on = { submit: this.submitHandler, reset: this.resetHandler }; return h("form", { "ref": "form", "class": this.formClass, "on": _objectSpread({}, on) }, [this.$slots["default"]]); } }); exports["default"] = _Form; //# sourceMappingURL=form.js.map