@tmagic/form 1.8.0-beta.24 → 1.8.0-beta.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/Form.vue_vue_type_script_setup_true_lang.js +47 -120
- package/dist/es/FormBox.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/FormDialog.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/FormDrawer.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/containers/Col.vue_vue_type_script_setup_true_lang.js +3 -0
- package/dist/es/containers/Container.vue_vue_type_script_setup_true_lang.js +36 -51
- package/dist/es/containers/Fieldset.vue_vue_type_script_setup_true_lang.js +6 -0
- package/dist/es/containers/FlexLayout.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/containers/GroupList.vue_vue_type_script_setup_true_lang.js +37 -15
- package/dist/es/containers/GroupListItem.vue_vue_type_script_setup_true_lang.js +109 -97
- package/dist/es/containers/Panel.vue_vue_type_script_setup_true_lang.js +7 -2
- package/dist/es/containers/Row.vue_vue_type_script_setup_true_lang.js +3 -0
- package/dist/es/containers/Step.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/containers/Tabs.vue_vue_type_script_setup_true_lang.js +7 -0
- package/dist/es/containers/table/Table.vue_vue_type_script_setup_true_lang.js +7 -5
- package/dist/es/containers/table/useTableColumns.js +5 -13
- package/dist/es/containers/table-group-list/TableGroupList.vue_vue_type_script_setup_true_lang.js +71 -78
- package/dist/es/containers/table-group-list/useAdd.js +26 -16
- package/dist/es/containers/table-group-list/useScrollLastItemIntoView.js +72 -0
- package/dist/es/fields/Cascader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/CheckboxGroup/Index.js +5 -0
- package/dist/es/fields/{CheckboxGroup.vue_vue_type_script_setup_true_lang.js → CheckboxGroup/Index.vue_vue_type_script_setup_true_lang.js} +6 -7
- package/dist/es/fields/CheckboxGroup/effect.js +8 -0
- package/dist/es/fields/Date/Index.js +5 -0
- package/dist/es/fields/{Date.vue_vue_type_script_setup_true_lang.js → Date/Index.vue_vue_type_script_setup_true_lang.js} +5 -7
- package/dist/es/fields/Date/effect.js +10 -0
- package/dist/es/fields/DateTime/Index.js +5 -0
- package/dist/es/fields/{DateTime.vue_vue_type_script_setup_true_lang.js → DateTime/Index.vue_vue_type_script_setup_true_lang.js} +5 -9
- package/dist/es/fields/DateTime/effect.js +15 -0
- package/dist/es/fields/Display/Index.js +5 -0
- package/dist/es/fields/{Display.vue_vue_type_script_setup_true_lang.js → Display/Index.vue_vue_type_script_setup_true_lang.js} +6 -7
- package/dist/es/fields/Display/effect.js +8 -0
- package/dist/es/fields/DynamicField/Index.js +5 -0
- package/dist/es/fields/{DynamicField.vue_vue_type_script_setup_true_lang.js → DynamicField/Index.vue_vue_type_script_setup_true_lang.js} +11 -15
- package/dist/es/fields/DynamicField/effect.js +40 -0
- package/dist/es/fields/Link.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Number.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/NumberRange/Index.js +5 -0
- package/dist/es/fields/{NumberRange.vue_vue_type_script_setup_true_lang.js → NumberRange/Index.vue_vue_type_script_setup_true_lang.js} +5 -6
- package/dist/es/fields/NumberRange/effect.js +8 -0
- package/dist/es/fields/Select.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/fields/Text.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/headless.js +13 -0
- package/dist/es/index.js +17 -12
- package/dist/es/plugin.js +57 -41
- package/dist/es/schema.js +6 -8
- package/dist/es/style.css +85 -1
- package/dist/es/submitForm.js +44 -194
- package/dist/es/utils/builtInFields.js +49 -0
- package/dist/es/utils/collectFields.js +407 -0
- package/dist/es/utils/config.js +1 -8
- package/dist/es/utils/fieldInnerConfig.js +42 -0
- package/dist/es/utils/fieldValueEffects.js +80 -0
- package/dist/es/utils/form.js +96 -43
- package/dist/es/utils/formStateProxy.js +75 -0
- package/dist/es/utils/registerField.js +158 -0
- package/dist/es/utils/submitHeadless.js +54 -0
- package/dist/es/utils/tableGroupList.js +85 -0
- package/dist/es/utils/typeMatch.js +17 -19
- package/dist/es/utils/validateError.js +57 -0
- package/dist/es/utils/validateValues.js +115 -0
- package/dist/style.css +85 -1
- package/dist/themes/magic-admin.css +87 -7
- package/dist/tmagic-form-headless.umd.cjs +4044 -0
- package/dist/tmagic-form.umd.cjs +1975 -874
- package/package.json +10 -4
- package/src/Form.vue +49 -149
- package/src/FormBox.vue +5 -4
- package/src/FormDialog.vue +5 -5
- package/src/FormDrawer.vue +5 -5
- package/src/containers/Col.vue +2 -0
- package/src/containers/Container.vue +86 -157
- package/src/containers/Fieldset.vue +5 -0
- package/src/containers/FlexLayout.vue +2 -0
- package/src/containers/GroupList.vue +41 -11
- package/src/containers/GroupListItem.vue +83 -80
- package/src/containers/Panel.vue +3 -0
- package/src/containers/Row.vue +2 -0
- package/src/containers/Step.vue +2 -0
- package/src/containers/Tabs.vue +13 -0
- package/src/containers/table/ActionsColumn.vue +1 -1
- package/src/containers/table/Table.vue +4 -3
- package/src/containers/table/usePagination.ts +1 -1
- package/src/containers/table/useSortable.ts +1 -1
- package/src/containers/table/useTableColumns.ts +9 -19
- package/src/containers/table-group-list/TableGroupList.vue +43 -71
- package/src/containers/table-group-list/useAdd.ts +40 -25
- package/src/containers/table-group-list/useScrollLastItemIntoView.ts +94 -0
- package/src/fields/{CheckboxGroup.vue → CheckboxGroup/Index.vue} +3 -8
- package/src/fields/CheckboxGroup/effect.ts +27 -0
- package/src/fields/{Date.vue → Date/Index.vue} +2 -5
- package/src/fields/Date/effect.ts +29 -0
- package/src/fields/{DateTime.vue → DateTime/Index.vue} +2 -16
- package/src/fields/DateTime/effect.ts +36 -0
- package/src/fields/{Display.vue → Display/Index.vue} +3 -7
- package/src/fields/Display/effect.ts +28 -0
- package/src/fields/{DynamicField.vue → DynamicField/Index.vue} +11 -11
- package/src/fields/DynamicField/effect.ts +74 -0
- package/src/fields/{NumberRange.vue → NumberRange/Index.vue} +2 -6
- package/src/fields/NumberRange/effect.ts +27 -0
- package/src/headless.ts +78 -0
- package/src/index.ts +32 -15
- package/src/plugin.ts +63 -42
- package/src/schema.ts +6 -8
- package/src/submitForm.ts +81 -409
- package/src/theme/form-box.scss +5 -0
- package/src/theme/group-list.scss +107 -1
- package/src/theme/themes/magic-admin/index.scss +2 -8
- package/src/utils/builtInFields.ts +69 -0
- package/src/utils/collectFields.ts +561 -0
- package/src/utils/config.ts +1 -15
- package/src/utils/fieldInnerConfig.ts +127 -0
- package/src/utils/fieldValueEffects.ts +140 -0
- package/src/utils/form.ts +141 -75
- package/src/utils/formStateProxy.ts +104 -0
- package/src/utils/registerField.ts +308 -0
- package/src/utils/submitHeadless.ts +206 -0
- package/src/utils/tableGroupList.ts +120 -0
- package/src/utils/typeMatch.ts +19 -15
- package/src/utils/validateError.ts +92 -0
- package/src/utils/validateValues.ts +177 -0
- package/types/headless.d.ts +682 -0
- package/types/index.d.ts +631 -272
- package/dist/es/fields/CheckboxGroup.js +0 -5
- package/dist/es/fields/Date.js +0 -5
- package/dist/es/fields/DateTime.js +0 -5
- package/dist/es/fields/Display.js +0 -5
- package/dist/es/fields/DynamicField.js +0 -5
- package/dist/es/fields/NumberRange.js +0 -5
- package/dist/es/utils/silentLeafFieldTypes.js +0 -49
- package/src/utils/silentLeafFieldTypes.ts +0 -71
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import CheckboxGroup_vue_vue_type_script_setup_true_lang_default from "./CheckboxGroup.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
-
//#region packages/form/src/fields/CheckboxGroup.vue
|
|
3
|
-
var CheckboxGroup_default = CheckboxGroup_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { CheckboxGroup_default as default };
|
package/dist/es/fields/Date.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import Date_vue_vue_type_script_setup_true_lang_default from "./Date.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
-
//#region packages/form/src/fields/Date.vue
|
|
3
|
-
var Date_default = Date_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { Date_default as default };
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import DateTime_vue_vue_type_script_setup_true_lang_default from "./DateTime.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
-
//#region packages/form/src/fields/DateTime.vue
|
|
3
|
-
var DateTime_default = DateTime_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { DateTime_default as default };
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import Display_vue_vue_type_script_setup_true_lang_default from "./Display.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
-
//#region packages/form/src/fields/Display.vue
|
|
3
|
-
var Display_default = Display_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { Display_default as default };
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import DynamicField_vue_vue_type_script_setup_true_lang_default from "./DynamicField.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
-
//#region packages/form/src/fields/DynamicField.vue
|
|
3
|
-
var DynamicField_default = DynamicField_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { DynamicField_default as default };
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import NumberRange_vue_vue_type_script_setup_true_lang_default from "./NumberRange.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
-
//#region packages/form/src/fields/NumberRange.vue
|
|
3
|
-
var NumberRange_default = NumberRange_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { NumberRange_default as default };
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { toLine } from "@tmagic/utils";
|
|
2
|
-
//#region packages/form/src/utils/silentLeafFieldTypes.ts
|
|
3
|
-
/**
|
|
4
|
-
* 可在静默校验模式下跳过渲染的内置叶子字段(默认集合)。
|
|
5
|
-
*
|
|
6
|
-
* 这些字段只渲染一个输入控件,内部没有嵌套 FormItem,且不会依赖组件挂载修改 model;
|
|
7
|
-
* 字段值由初始化逻辑处理(包括 defaultValue),因此跳过不影响校验结果。
|
|
8
|
-
*
|
|
9
|
-
* 业务侧可通过 `registerSilentLeafFieldTypes` 追加已审计的安全自定义字段。
|
|
10
|
-
*/
|
|
11
|
-
var LEAF_FIELD_TYPES = /* @__PURE__ */ new Set([
|
|
12
|
-
"text",
|
|
13
|
-
"textarea",
|
|
14
|
-
"number",
|
|
15
|
-
"time",
|
|
16
|
-
"daterange",
|
|
17
|
-
"timerange",
|
|
18
|
-
"checkbox",
|
|
19
|
-
"radio-group",
|
|
20
|
-
"switch",
|
|
21
|
-
"select",
|
|
22
|
-
"cascader",
|
|
23
|
-
"color-picker",
|
|
24
|
-
"link"
|
|
25
|
-
]);
|
|
26
|
-
/** 业务侧追加的静默叶子字段(不含内置默认集合) */
|
|
27
|
-
var extraSilentLeafFieldTypes = /* @__PURE__ */ new Set();
|
|
28
|
-
/**
|
|
29
|
-
* 注册可在静默校验中跳过渲染的叶子字段 type(追加到默认 `LEAF_FIELD_TYPES` 之上)。
|
|
30
|
-
*
|
|
31
|
-
* 仅应纳入「无嵌套 FormItem、无挂载值副作用」的字段;复合 / 动态子表单不可加入。
|
|
32
|
-
*/
|
|
33
|
-
var registerSilentLeafFieldTypes = (types) => {
|
|
34
|
-
for (const type of types) {
|
|
35
|
-
if (typeof type !== "string" || !type) continue;
|
|
36
|
-
extraSilentLeafFieldTypes.add(toLine(type));
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
/** 当前生效的静默叶子字段集合:内置默认 ∪ 已注册扩展 */
|
|
40
|
-
var getSilentLeafFieldTypes = () => {
|
|
41
|
-
if (extraSilentLeafFieldTypes.size === 0) return LEAF_FIELD_TYPES;
|
|
42
|
-
return /* @__PURE__ */ new Set([...LEAF_FIELD_TYPES, ...extraSilentLeafFieldTypes]);
|
|
43
|
-
};
|
|
44
|
-
/** 清空业务侧追加的静默叶子字段(不影响内置默认集合;主要用于单测) */
|
|
45
|
-
var clearSilentLeafFieldTypes = () => {
|
|
46
|
-
extraSilentLeafFieldTypes.clear();
|
|
47
|
-
};
|
|
48
|
-
//#endregion
|
|
49
|
-
export { LEAF_FIELD_TYPES, clearSilentLeafFieldTypes, getSilentLeafFieldTypes, registerSilentLeafFieldTypes };
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Tencent is pleased to support the open source community by making TMagicEditor available.
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 2025 Tencent. All rights reserved.
|
|
5
|
-
*
|
|
6
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
* you may not use this file except in compliance with the License.
|
|
8
|
-
* You may obtain a copy of the License at
|
|
9
|
-
*
|
|
10
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
*
|
|
12
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
* See the License for the specific language governing permissions and
|
|
16
|
-
* limitations under the License.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
import { toLine } from '@tmagic/utils';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* 可在静默校验模式下跳过渲染的内置叶子字段(默认集合)。
|
|
23
|
-
*
|
|
24
|
-
* 这些字段只渲染一个输入控件,内部没有嵌套 FormItem,且不会依赖组件挂载修改 model;
|
|
25
|
-
* 字段值由初始化逻辑处理(包括 defaultValue),因此跳过不影响校验结果。
|
|
26
|
-
*
|
|
27
|
-
* 业务侧可通过 `registerSilentLeafFieldTypes` 追加已审计的安全自定义字段。
|
|
28
|
-
*/
|
|
29
|
-
export const LEAF_FIELD_TYPES: ReadonlySet<string> = new Set([
|
|
30
|
-
'text',
|
|
31
|
-
'textarea',
|
|
32
|
-
'number',
|
|
33
|
-
'time',
|
|
34
|
-
'daterange',
|
|
35
|
-
'timerange',
|
|
36
|
-
'checkbox',
|
|
37
|
-
'radio-group',
|
|
38
|
-
'switch',
|
|
39
|
-
'select',
|
|
40
|
-
'cascader',
|
|
41
|
-
'color-picker',
|
|
42
|
-
'link',
|
|
43
|
-
]);
|
|
44
|
-
|
|
45
|
-
/** 业务侧追加的静默叶子字段(不含内置默认集合) */
|
|
46
|
-
const extraSilentLeafFieldTypes = new Set<string>();
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* 注册可在静默校验中跳过渲染的叶子字段 type(追加到默认 `LEAF_FIELD_TYPES` 之上)。
|
|
50
|
-
*
|
|
51
|
-
* 仅应纳入「无嵌套 FormItem、无挂载值副作用」的字段;复合 / 动态子表单不可加入。
|
|
52
|
-
*/
|
|
53
|
-
export const registerSilentLeafFieldTypes = (types: Iterable<string>): void => {
|
|
54
|
-
for (const type of types) {
|
|
55
|
-
if (typeof type !== 'string' || !type) continue;
|
|
56
|
-
extraSilentLeafFieldTypes.add(toLine(type));
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
/** 当前生效的静默叶子字段集合:内置默认 ∪ 已注册扩展 */
|
|
61
|
-
export const getSilentLeafFieldTypes = (): ReadonlySet<string> => {
|
|
62
|
-
if (extraSilentLeafFieldTypes.size === 0) {
|
|
63
|
-
return LEAF_FIELD_TYPES;
|
|
64
|
-
}
|
|
65
|
-
return new Set([...LEAF_FIELD_TYPES, ...extraSilentLeafFieldTypes]);
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
/** 清空业务侧追加的静默叶子字段(不影响内置默认集合;主要用于单测) */
|
|
69
|
-
export const clearSilentLeafFieldTypes = (): void => {
|
|
70
|
-
extraSilentLeafFieldTypes.clear();
|
|
71
|
-
};
|