@tmagic/form 1.8.0-manmanyu.9 → 1.8.1
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 +88 -107
- package/dist/es/FormBox.vue_vue_type_script_setup_true_lang.js +21 -5
- package/dist/es/FormDialog.vue_vue_type_script_setup_true_lang.js +21 -5
- package/dist/es/FormDrawer.vue_vue_type_script_setup_true_lang.js +46 -12
- package/dist/es/containers/Col.vue_vue_type_script_setup_true_lang.js +6 -2
- package/dist/es/containers/Container.vue_vue_type_script_setup_true_lang.js +44 -47
- package/dist/es/containers/Fieldset.vue_vue_type_script_setup_true_lang.js +7 -1
- package/dist/es/containers/FlexLayout.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/containers/FormLabel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/GroupList.vue_vue_type_script_setup_true_lang.js +59 -22
- package/dist/es/containers/GroupListItem.vue_vue_type_script_setup_true_lang.js +118 -100
- package/dist/es/containers/Panel.vue_vue_type_script_setup_true_lang.js +8 -3
- package/dist/es/containers/Row.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/containers/Step.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/containers/Tabs.vue_vue_type_script_setup_true_lang.js +8 -1
- package/dist/es/containers/table/ActionsColumn.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/table/SortColumn.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/table/Table.vue_vue_type_script_setup_true_lang.js +14 -10
- package/dist/es/containers/table/useTableColumns.js +10 -15
- package/dist/es/containers/table-group-list/TableGroupList.vue_vue_type_script_setup_true_lang.js +72 -79
- 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 +2 -2
- package/dist/es/fields/Checkbox.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/ColorPicker.vue_vue_type_script_setup_true_lang.js +1 -1
- 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/Daterange.vue_vue_type_script_setup_true_lang.js +2 -2
- 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/Hidden.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Link.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/es/fields/Number.vue_vue_type_script_setup_true_lang.js +4 -2
- 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/RadioGroup.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/fields/Select.vue_vue_type_script_setup_true_lang.js +14 -6
- package/dist/es/fields/Switch.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Text.vue_vue_type_script_setup_true_lang.js +13 -10
- package/dist/es/fields/Textarea.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Time.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Timerange.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/headless.js +13 -0
- package/dist/es/index.js +19 -12
- package/dist/es/plugin.js +57 -39
- package/dist/es/schema.js +11 -2
- package/dist/es/style.css +123 -3
- package/dist/es/submitForm.js +270 -72
- package/dist/es/utils/builtInFields.js +49 -0
- package/dist/es/utils/collectFields.js +407 -0
- package/dist/es/utils/config.js +4 -8
- package/dist/es/utils/fieldInnerConfig.js +42 -0
- package/dist/es/utils/fieldValueEffects.js +80 -0
- package/dist/es/utils/form.js +154 -19
- package/dist/es/utils/formStateProxy.js +111 -0
- package/dist/es/utils/registerField.js +158 -0
- package/dist/es/utils/submitHeadless.js +54 -0
- package/dist/es/utils/tableGroupList.js +104 -0
- package/dist/es/utils/typeMatch.js +532 -0
- package/dist/es/utils/validateError.js +57 -0
- package/dist/es/utils/validateValues.js +115 -0
- package/dist/style.css +123 -3
- package/dist/themes/magic-admin.css +576 -14
- package/dist/tmagic-form-headless.umd.cjs +4515 -0
- package/dist/tmagic-form.umd.cjs +3444 -983
- package/package.json +16 -10
- package/src/Form.vue +113 -129
- package/src/FormBox.vue +16 -4
- package/src/FormDialog.vue +16 -5
- package/src/FormDrawer.vue +41 -13
- package/src/containers/Col.vue +3 -0
- package/src/containers/Container.vue +40 -45
- package/src/containers/Fieldset.vue +5 -0
- package/src/containers/FlexLayout.vue +2 -0
- package/src/containers/GroupList.vue +64 -13
- package/src/containers/GroupListItem.vue +88 -81
- 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 +5 -3
- package/src/containers/table/usePagination.ts +1 -1
- package/src/containers/table/useSortable.ts +1 -1
- package/src/containers/table/useTableColumns.ts +15 -22
- package/src/containers/table-group-list/TableGroupList.vue +46 -72
- 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/Link.vue +3 -4
- package/src/fields/Number.vue +2 -1
- package/src/fields/{NumberRange.vue → NumberRange/Index.vue} +2 -6
- package/src/fields/NumberRange/effect.ts +27 -0
- package/src/fields/RadioGroup.vue +13 -1
- package/src/fields/Select.vue +13 -4
- package/src/headless.ts +78 -0
- package/src/index.ts +46 -9
- package/src/plugin.ts +68 -37
- package/src/schema.ts +13 -2
- package/src/submitForm.ts +410 -131
- package/src/theme/fieldset.scss +1 -0
- package/src/theme/form-box.scss +5 -0
- package/src/theme/form-dialog.scss +1 -1
- package/src/theme/group-list.scss +143 -2
- package/src/theme/table.scss +11 -1
- package/src/theme/themes/magic-admin/index.scss +27 -16
- package/src/utils/builtInFields.ts +69 -0
- package/src/utils/collectFields.ts +561 -0
- package/src/utils/config.ts +7 -15
- package/src/utils/fieldInnerConfig.ts +127 -0
- package/src/utils/fieldValueEffects.ts +140 -0
- package/src/utils/form.ts +230 -30
- package/src/utils/formStateProxy.ts +149 -0
- package/src/utils/registerField.ts +308 -0
- package/src/utils/submitHeadless.ts +206 -0
- package/src/utils/tableGroupList.ts +147 -0
- package/src/utils/typeMatch.ts +948 -0
- 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 +900 -180
- package/dist/es/_virtual/_rolldown/runtime.js +0 -27
- 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
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getConfig } from "../../utils/config.js";
|
|
2
|
+
import { useAddField } from "../../utils/useAddField.js";
|
|
3
|
+
import { eachDynamicField } from "./effect.js";
|
|
3
4
|
import { Fragment, createBlock, createElementBlock, createVNode, defineComponent, onBeforeUnmount, openBlock, reactive, renderList, unref, watch, withCtx } from "vue";
|
|
4
5
|
import { TMagicForm, TMagicFormItem, TMagicInput } from "@tmagic/design";
|
|
5
|
-
//#region packages/form/src/fields/DynamicField.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
//#region packages/form/src/fields/DynamicField/Index.vue?vue&type=script&setup=true&lang.ts
|
|
6
7
|
var _hoisted_1 = { class: "m-fields-dynamic-field" };
|
|
7
|
-
var
|
|
8
|
+
var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
8
9
|
name: "MFormDynamicField",
|
|
9
|
-
__name: "
|
|
10
|
+
__name: "Index",
|
|
10
11
|
props: {
|
|
11
12
|
config: {},
|
|
12
13
|
model: {},
|
|
@@ -44,15 +45,10 @@ var DynamicField_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
44
45
|
const fields = await props.config.returnFields(props.config, props.model, request);
|
|
45
46
|
fieldMap.value = {};
|
|
46
47
|
fieldLabelMap.value = {};
|
|
47
|
-
fields.
|
|
48
|
-
if (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
oldVal = v.defaultValue;
|
|
52
|
-
emit("change", oldVal, { modifyKey: v.name });
|
|
53
|
-
}
|
|
54
|
-
fieldMap.value[v.name] = oldVal;
|
|
55
|
-
fieldLabelMap.value[v.name] = v.label || "";
|
|
48
|
+
eachDynamicField(fields, props.model, (field, value, isDefaultApplied) => {
|
|
49
|
+
if (isDefaultApplied) emit("change", value, { modifyKey: field.name });
|
|
50
|
+
fieldMap.value[field.name] = value;
|
|
51
|
+
fieldLabelMap.value[field.name] = field.label || "";
|
|
56
52
|
});
|
|
57
53
|
};
|
|
58
54
|
const unwatch = watch(() => props.model?.[props.config.dynamicKey], (val) => {
|
|
@@ -91,4 +87,4 @@ var DynamicField_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
91
87
|
}
|
|
92
88
|
});
|
|
93
89
|
//#endregion
|
|
94
|
-
export {
|
|
90
|
+
export { Index_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { getConfig } from "../../utils/config.js";
|
|
2
|
+
import { setValueByKeyPath } from "@tmagic/utils";
|
|
3
|
+
//#region packages/form/src/fields/DynamicField/effect.ts
|
|
4
|
+
/**
|
|
5
|
+
* 遍历动态字段列表,按「原值为空且声明了 defaultValue 则取默认值」求出每个字段当前的值。
|
|
6
|
+
*
|
|
7
|
+
* `isDefaultApplied` 为真表示该值来自 `defaultValue`,需要写回表单值
|
|
8
|
+
* (组件通过 emit change 写回,初始化写入直接写 `values`)。
|
|
9
|
+
*/
|
|
10
|
+
var eachDynamicField = (fields, model, onField) => {
|
|
11
|
+
for (const field of fields) {
|
|
12
|
+
if (typeof field !== "object" || field?.name === void 0) continue;
|
|
13
|
+
let value = model?.[field.name] || "";
|
|
14
|
+
let isDefaultApplied = false;
|
|
15
|
+
if (!value && field.defaultValue !== void 0) {
|
|
16
|
+
value = field.defaultValue;
|
|
17
|
+
isDefaultApplied = true;
|
|
18
|
+
}
|
|
19
|
+
onField(field, value, isDefaultApplied);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* 同步 `returnFields` 的 defaultValue 按 prop 写入值根对象。
|
|
24
|
+
*
|
|
25
|
+
* 该组件读取的是同级 model,但写入走 Container 的 modifyKey 分支,落在 `${prop}.${key}`,
|
|
26
|
+
* 这里保持与渲染一致(含这层不对称),避免两条链路产出不同的值。
|
|
27
|
+
* 异步 returnFields 由组件挂载后的 watch 负责,此处不等待。
|
|
28
|
+
*/
|
|
29
|
+
var effect = ({ config, model, prop, values }) => {
|
|
30
|
+
const { returnFields, dynamicKey } = config;
|
|
31
|
+
if (typeof returnFields !== "function" || !model) return;
|
|
32
|
+
if (model[dynamicKey] === "") return;
|
|
33
|
+
const result = returnFields(config, model, getConfig("request"));
|
|
34
|
+
if (!result || typeof result.then === "function" || !Array.isArray(result)) return;
|
|
35
|
+
eachDynamicField(result, model, (field, value, isDefaultApplied) => {
|
|
36
|
+
if (isDefaultApplied) setValueByKeyPath(`${prop}.${field.name}`, value, values || model);
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
export { eachDynamicField, effect };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useAddField } from "../utils/useAddField.js";
|
|
2
2
|
import { createCommentVNode, createElementBlock, defineComponent, openBlock, vModelText, withDirectives } from "vue";
|
|
3
3
|
//#region packages/form/src/fields/Hidden.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
-
var Hidden_vue_vue_type_script_setup_true_lang_default =
|
|
4
|
+
var Hidden_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
5
5
|
name: "MFormHidden",
|
|
6
6
|
__name: "Hidden",
|
|
7
7
|
props: {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { isGlobalFlat } from "../utils/config.js";
|
|
1
2
|
import { useAddField } from "../utils/useAddField.js";
|
|
2
3
|
import FormDialog_default from "../FormDialog.js";
|
|
3
4
|
import { computed, createElementBlock, createTextVNode, createVNode, defineComponent, inject, normalizeStyle, openBlock, readonly, ref, toDisplayString, unref, withCtx } from "vue";
|
|
4
|
-
import { TMagicButton, TMagicIcon
|
|
5
|
+
import { TMagicButton, TMagicIcon } from "@tmagic/design";
|
|
5
6
|
import { Notebook } from "@element-plus/icons-vue";
|
|
6
7
|
//#region packages/form/src/fields/Link.vue?vue&type=script&setup=true&lang.ts
|
|
7
8
|
var _hoisted_1 = ["href"];
|
|
@@ -10,7 +11,7 @@ var _hoisted_3 = {
|
|
|
10
11
|
key: 3,
|
|
11
12
|
class: "m-fields-link"
|
|
12
13
|
};
|
|
13
|
-
var Link_vue_vue_type_script_setup_true_lang_default =
|
|
14
|
+
var Link_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
14
15
|
name: "MFormLink",
|
|
15
16
|
__name: "Link",
|
|
16
17
|
props: {
|
|
@@ -33,7 +34,6 @@ var Link_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
33
34
|
setup(__props, { emit: __emit }) {
|
|
34
35
|
const props = __props;
|
|
35
36
|
const emit = __emit;
|
|
36
|
-
const displayTheme = useTheme(props);
|
|
37
37
|
useAddField(props.prop);
|
|
38
38
|
const formValue = ref({});
|
|
39
39
|
const editor = ref();
|
|
@@ -71,7 +71,7 @@ var Link_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
71
71
|
editor.value && (editor.value.dialogVisible = false);
|
|
72
72
|
};
|
|
73
73
|
return (_ctx, _cache) => {
|
|
74
|
-
return unref(
|
|
74
|
+
return unref(isGlobalFlat) && __props.config.href && !__props.disabled ? (openBlock(), createElementBlock("a", {
|
|
75
75
|
key: 0,
|
|
76
76
|
target: "_blank",
|
|
77
77
|
href: href.value,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { isGlobalFlat } from "../utils/config.js";
|
|
1
2
|
import { useAddField } from "../utils/useAddField.js";
|
|
2
3
|
import { createBlock, createCommentVNode, defineComponent, inject, openBlock, ref, unref, watch } from "vue";
|
|
3
4
|
import { TMagicInputNumber } from "@tmagic/design";
|
|
4
5
|
//#region packages/form/src/fields/Number.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var Number_vue_vue_type_script_setup_true_lang_default =
|
|
6
|
+
var Number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
7
|
name: "MFormNumber",
|
|
7
8
|
__name: "Number",
|
|
8
9
|
props: {
|
|
@@ -43,7 +44,7 @@ var Number_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
43
44
|
modelValue: value.value,
|
|
44
45
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => value.value = $event),
|
|
45
46
|
clearable: "",
|
|
46
|
-
"controls-position": "right",
|
|
47
|
+
"controls-position": unref(isGlobalFlat) ? "" : "right",
|
|
47
48
|
size: __props.size,
|
|
48
49
|
max: __props.config.max,
|
|
49
50
|
min: __props.config.min,
|
|
@@ -54,6 +55,7 @@ var Number_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
54
55
|
onInput: inputHandler
|
|
55
56
|
}, null, 8, [
|
|
56
57
|
"modelValue",
|
|
58
|
+
"controls-position",
|
|
57
59
|
"size",
|
|
58
60
|
"max",
|
|
59
61
|
"min",
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import Index_vue_vue_type_script_setup_true_lang_default from "./Index.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/form/src/fields/NumberRange/Index.vue
|
|
3
|
+
var Index_default = Index_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { Index_default as default };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { useAddField } from "
|
|
1
|
+
import { useAddField } from "../../utils/useAddField.js";
|
|
2
2
|
import { createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, ref, unref, watch } from "vue";
|
|
3
3
|
import { TMagicInput } from "@tmagic/design";
|
|
4
|
-
//#region packages/form/src/fields/NumberRange.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
//#region packages/form/src/fields/NumberRange/Index.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = { class: "m-fields-number-range" };
|
|
6
|
-
var
|
|
6
|
+
var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
7
7
|
name: "MFormNumberRange",
|
|
8
|
-
__name: "
|
|
8
|
+
__name: "Index",
|
|
9
9
|
props: {
|
|
10
10
|
config: {},
|
|
11
11
|
model: {},
|
|
@@ -35,7 +35,6 @@ var NumberRange_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
35
35
|
deep: true
|
|
36
36
|
});
|
|
37
37
|
useAddField(props.prop);
|
|
38
|
-
if (!Array.isArray(props.model[props.name])) props.model[props.name] = [];
|
|
39
38
|
const minChangeHandler = (v) => {
|
|
40
39
|
emit("change", [Number(v), props.model[props.name][1]]);
|
|
41
40
|
};
|
|
@@ -76,4 +75,4 @@ var NumberRange_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
76
75
|
}
|
|
77
76
|
});
|
|
78
77
|
//#endregion
|
|
79
|
-
export {
|
|
78
|
+
export { Index_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -7,7 +7,7 @@ var _hoisted_2 = {
|
|
|
7
7
|
key: 1,
|
|
8
8
|
class: "m-fields-radio-group__text"
|
|
9
9
|
};
|
|
10
|
-
var RadioGroup_vue_vue_type_script_setup_true_lang_default =
|
|
10
|
+
var RadioGroup_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
11
11
|
name: "MFormRadioGroup",
|
|
12
12
|
__name: "RadioGroup",
|
|
13
13
|
props: {
|
|
@@ -31,10 +31,12 @@ var RadioGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
31
31
|
const itemComponent = computed(() => props.config.childType === "button" ? TMagicRadioButton : TMagicRadio);
|
|
32
32
|
const emit = __emit;
|
|
33
33
|
const clickHandler = (item) => {
|
|
34
|
+
if (props.disabled) return;
|
|
34
35
|
emit("change", props.model[props.name] === item ? "" : item);
|
|
35
36
|
};
|
|
36
37
|
useAddField(props.prop);
|
|
37
38
|
const iconSize = computed(() => {
|
|
39
|
+
if (props.config.iconSize) return props.config.iconSize;
|
|
38
40
|
if (props.size === "small") return "14";
|
|
39
41
|
if (props.size === "large") return "16";
|
|
40
42
|
return "16";
|
|
@@ -44,7 +46,8 @@ var RadioGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
44
46
|
key: 0,
|
|
45
47
|
"model-value": __props.model[__props.name],
|
|
46
48
|
size: __props.size,
|
|
47
|
-
disabled: __props.disabled
|
|
49
|
+
disabled: __props.disabled,
|
|
50
|
+
class: "icon-{{ iconSize }}"
|
|
48
51
|
}, {
|
|
49
52
|
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.config.options, (option) => {
|
|
50
53
|
return openBlock(), createBlock(resolveDynamicComponent(itemComponent.value), {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { useAddField } from "../utils/useAddField.js";
|
|
2
1
|
import { getConfig } from "../utils/config.js";
|
|
2
|
+
import { useAddField } from "../utils/useAddField.js";
|
|
3
3
|
import { Fragment, createBlock, createCommentVNode, createElementBlock, defineComponent, inject, mergeProps, nextTick, openBlock, ref, renderList, resolveDirective, resolveDynamicComponent, unref, watch, watchEffect, withCtx, withDirectives } from "vue";
|
|
4
|
-
import { TMagicSelect, getDesignConfig } from "@tmagic/design";
|
|
5
4
|
import { getValueByKeyPath } from "@tmagic/utils";
|
|
5
|
+
import { TMagicSelect, getDesignConfig } from "@tmagic/design";
|
|
6
6
|
//#region packages/form/src/fields/Select.vue?vue&type=script&setup=true&lang.ts
|
|
7
7
|
var _hoisted_1 = { key: 2 };
|
|
8
|
-
var Select_vue_vue_type_script_setup_true_lang_default =
|
|
8
|
+
var Select_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
9
9
|
name: "MFormSelect",
|
|
10
10
|
__name: "Select",
|
|
11
11
|
props: {
|
|
@@ -199,7 +199,10 @@ var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
199
199
|
prop: props.prop,
|
|
200
200
|
postOptions
|
|
201
201
|
});
|
|
202
|
-
let initData
|
|
202
|
+
let initData;
|
|
203
|
+
try {
|
|
204
|
+
initData = getValueByKeyPath(initRoot || root, res);
|
|
205
|
+
} catch {}
|
|
203
206
|
if (initData) {
|
|
204
207
|
if (!Array.isArray(initData)) initData = [initData];
|
|
205
208
|
if (typeof option.item === "function") options = option.item(initData);
|
|
@@ -230,7 +233,12 @@ var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
230
233
|
const v = props.model[props.name];
|
|
231
234
|
if (Array.isArray(v) ? !v.length : typeof v === "undefined") return;
|
|
232
235
|
if (typeof v === "undefined" || hasOption(v)) return;
|
|
233
|
-
|
|
236
|
+
try {
|
|
237
|
+
const data = await getInitOption();
|
|
238
|
+
setOptions(data);
|
|
239
|
+
} catch {
|
|
240
|
+
setOptions([]);
|
|
241
|
+
}
|
|
234
242
|
};
|
|
235
243
|
watch(() => props.model?.[props.name], () => {
|
|
236
244
|
initOption();
|
|
@@ -325,7 +333,7 @@ var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
325
333
|
}), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(options.value, (option) => {
|
|
326
334
|
return openBlock(), createBlock(resolveDynamicComponent(unref(optionComponent)?.component || "el-option"), mergeProps({
|
|
327
335
|
class: "tmagic-design-option",
|
|
328
|
-
key: __props.config.valueKey ? option.value[__props.config.valueKey] : option.value
|
|
336
|
+
key: __props.config.valueKey ? option.value?.[__props.config.valueKey] : option.value
|
|
329
337
|
}, { ref_for: true }, unref(optionComponent)?.props({
|
|
330
338
|
label: option.text,
|
|
331
339
|
value: option.value,
|
|
@@ -2,7 +2,7 @@ import { useAddField } from "../utils/useAddField.js";
|
|
|
2
2
|
import { computed, createBlock, defineComponent, openBlock, unref } from "vue";
|
|
3
3
|
import { TMagicSwitch } from "@tmagic/design";
|
|
4
4
|
//#region packages/form/src/fields/Switch.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var Switch_vue_vue_type_script_setup_true_lang_default =
|
|
5
|
+
var Switch_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
6
|
name: "MFormSwitch",
|
|
7
7
|
__name: "Switch",
|
|
8
8
|
props: {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useAddField } from "../utils/useAddField.js";
|
|
2
2
|
import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, inject, normalizeClass, openBlock, readonly, ref, shallowRef, toDisplayString, unref, watch, withCtx, withModifiers } from "vue";
|
|
3
3
|
import { debounce } from "lodash-es";
|
|
4
|
-
import { TMagicButton, TMagicInput } from "@tmagic/design";
|
|
5
4
|
import { isNumber } from "@tmagic/utils";
|
|
5
|
+
import { TMagicButton, TMagicInput } from "@tmagic/design";
|
|
6
6
|
import { createPopper } from "@popperjs/core";
|
|
7
7
|
//#region packages/form/src/fields/Text.vue?vue&type=script&setup=true&lang.ts
|
|
8
8
|
var _hoisted_1 = { key: 0 };
|
|
@@ -19,7 +19,7 @@ var _hoisted_8 = { style: {
|
|
|
19
19
|
"display": "flex",
|
|
20
20
|
"justify-content": "flex-end"
|
|
21
21
|
} };
|
|
22
|
-
var Text_vue_vue_type_script_setup_true_lang_default =
|
|
22
|
+
var Text_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
23
23
|
name: "MFormText",
|
|
24
24
|
__name: "Text",
|
|
25
25
|
props: {
|
|
@@ -120,14 +120,17 @@ var Text_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
120
120
|
const ctrl = navigator.platform.match("Mac") ? $event.metaKey : $event.ctrlKey;
|
|
121
121
|
const shift = $event.shiftKey;
|
|
122
122
|
const alt = $event.altKey;
|
|
123
|
-
if (arrowUp)
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
else if (
|
|
129
|
-
|
|
130
|
-
|
|
123
|
+
if (arrowUp) {
|
|
124
|
+
if (ctrl) num += 100;
|
|
125
|
+
else if (alt) num = (num * 1e4 + 1e3) / 1e4;
|
|
126
|
+
else if (shift) num = num + 10;
|
|
127
|
+
else num += 1;
|
|
128
|
+
} else if (arrowDown) {
|
|
129
|
+
if (ctrl) num -= 100;
|
|
130
|
+
else if (alt) num = (num * 1e4 - 1e3) / 1e4;
|
|
131
|
+
else if (shift) num -= 10;
|
|
132
|
+
else num -= 1;
|
|
133
|
+
}
|
|
131
134
|
props.model[props.name] = `${num}${unit || ""}`;
|
|
132
135
|
emit("change", props.model[props.name]);
|
|
133
136
|
};
|
|
@@ -2,7 +2,7 @@ import { useAddField } from "../utils/useAddField.js";
|
|
|
2
2
|
import { createBlock, defineComponent, inject, openBlock, ref, unref, watch } from "vue";
|
|
3
3
|
import { TMagicInput } from "@tmagic/design";
|
|
4
4
|
//#region packages/form/src/fields/Textarea.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var Textarea_vue_vue_type_script_setup_true_lang_default =
|
|
5
|
+
var Textarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
6
|
name: "MFormTextarea",
|
|
7
7
|
__name: "Textarea",
|
|
8
8
|
props: {
|
|
@@ -2,7 +2,7 @@ import { useAddField } from "../utils/useAddField.js";
|
|
|
2
2
|
import { createBlock, defineComponent, openBlock, unref } from "vue";
|
|
3
3
|
import { TMagicTimePicker } from "@tmagic/design";
|
|
4
4
|
//#region packages/form/src/fields/Time.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var Time_vue_vue_type_script_setup_true_lang_default =
|
|
5
|
+
var Time_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
6
|
name: "MFormTime",
|
|
7
7
|
__name: "Time",
|
|
8
8
|
props: {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { useAddField } from "../utils/useAddField.js";
|
|
2
1
|
import { datetimeFormatter } from "../utils/form.js";
|
|
2
|
+
import { useAddField } from "../utils/useAddField.js";
|
|
3
3
|
import { createBlock, defineComponent, onUnmounted, openBlock, ref, unref, watch } from "vue";
|
|
4
|
-
import { TMagicTimePicker } from "@tmagic/design";
|
|
5
4
|
import dayjs from "dayjs";
|
|
5
|
+
import { TMagicTimePicker } from "@tmagic/design";
|
|
6
6
|
//#region packages/form/src/fields/Timerange.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var Timerange_vue_vue_type_script_setup_true_lang_default =
|
|
7
|
+
var Timerange_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
8
8
|
name: "MFormTimeRange",
|
|
9
9
|
__name: "Timerange",
|
|
10
10
|
props: {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FORM_CONTEXT_KEY, FORM_DIFF_CONFIG_KEY, FORM_TYPE_MATCH_VALID_KEY } from "./schema.js";
|
|
2
|
+
import { isLeafFieldType } from "./utils/fieldValueEffects.js";
|
|
3
|
+
import { MAX_SUGGESTION_OPTIONS, clearTypeMatchRules, deleteTypeMatchRule, getTypeMatchRule, optionSuggestion, stringifyExampleValue, validateTypeMatch } from "./utils/typeMatch.js";
|
|
4
|
+
import { createFormStateProxy, mergeFormContexts } from "./utils/formStateProxy.js";
|
|
5
|
+
import { adaptFormValidator, appendProp, createFormStateBase, createObjectProp, createValues, datetimeFormatter, display, filterFunction, getDataByPage, getItemProp, getNativeRules, getRules, initValue, isValidName, resolveItemType, sortArray, sortChange } from "./utils/form.js";
|
|
6
|
+
import { FieldInnerConfigError, applyMountValueEffects, collectValidatableFields, isFieldInnerConfigError } from "./utils/collectFields.js";
|
|
7
|
+
import { formatValidateError, getTextByName } from "./utils/validateError.js";
|
|
8
|
+
import { createHeadlessFormState, validateValues } from "./utils/validateValues.js";
|
|
9
|
+
import { submitForm, validateForm } from "./utils/submitHeadless.js";
|
|
10
|
+
import { clearFields, getField, mergeFieldOptions, registerBuiltInFields, registerField, registerFields, unregisterField } from "./utils/registerField.js";
|
|
11
|
+
import { builtInFields } from "./utils/builtInFields.js";
|
|
12
|
+
export * from "@tmagic/form-schema";
|
|
13
|
+
export { FORM_CONTEXT_KEY, FORM_DIFF_CONFIG_KEY, FORM_TYPE_MATCH_VALID_KEY, FieldInnerConfigError, MAX_SUGGESTION_OPTIONS, adaptFormValidator, appendProp, applyMountValueEffects, builtInFields, clearFields, clearTypeMatchRules, collectValidatableFields, createFormStateBase, createFormStateProxy, createHeadlessFormState, createObjectProp, createValues, datetimeFormatter, deleteTypeMatchRule, display, filterFunction, formatValidateError, getDataByPage, getField as getFormField, getItemProp, getNativeRules, getRules, getTextByName, getTypeMatchRule, initValue, isFieldInnerConfigError, isLeafFieldType, isValidName, mergeFieldOptions, mergeFormContexts, optionSuggestion, registerBuiltInFields, registerField, registerFields, resolveItemType, sortArray, sortChange, stringifyExampleValue, submitForm, unregisterField, validateForm, validateTypeMatch, validateValues };
|
package/dist/es/index.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import {
|
|
1
|
+
import { FORM_CONTEXT_KEY, FORM_DIFF_CONFIG_KEY, FORM_TYPE_MATCH_VALID_KEY } from "./schema.js";
|
|
2
|
+
import { isLeafFieldType } from "./utils/fieldValueEffects.js";
|
|
3
|
+
import { MAX_SUGGESTION_OPTIONS, clearTypeMatchRules, deleteTypeMatchRule, getTypeMatchRule, optionSuggestion, stringifyExampleValue, validateTypeMatch } from "./utils/typeMatch.js";
|
|
4
|
+
import { createFormStateProxy, mergeFormContexts } from "./utils/formStateProxy.js";
|
|
5
|
+
import { adaptFormValidator, appendProp, createFormStateBase, createObjectProp, createValues, datetimeFormatter, display, filterFunction, getDataByPage, getItemProp, getNativeRules, getRules, initValue, isValidName, resolveItemType, sortArray, sortChange } from "./utils/form.js";
|
|
6
|
+
import { FieldInnerConfigError, applyMountValueEffects, collectValidatableFields, isFieldInnerConfigError } from "./utils/collectFields.js";
|
|
7
|
+
import { formatValidateError, getTextByName } from "./utils/validateError.js";
|
|
8
|
+
import { createHeadlessFormState, validateValues } from "./utils/validateValues.js";
|
|
3
9
|
import { useAddField } from "./utils/useAddField.js";
|
|
4
10
|
import Hidden_default from "./fields/Hidden.js";
|
|
5
|
-
import {
|
|
6
|
-
import { createObjectProp, createValues, datetimeFormatter, display, filterFunction, getDataByPage, getRules, initValue, sortArray, sortChange } from "./utils/form.js";
|
|
11
|
+
import { clearFields, getField, mergeFieldOptions, registerBuiltInFields, registerField, registerFields, unregisterField } from "./utils/registerField.js";
|
|
7
12
|
import Container_default from "./containers/Container.js";
|
|
8
13
|
import Form_default from "./Form.js";
|
|
9
|
-
import { submitForm } from "./submitForm.js";
|
|
14
|
+
import { stripTabItemsLazy, submitForm, validateForm } from "./submitForm.js";
|
|
10
15
|
import FormDialog_default from "./FormDialog.js";
|
|
11
16
|
import FormDrawer_default from "./FormDrawer.js";
|
|
12
17
|
import FormBox_default from "./FormBox.js";
|
|
@@ -18,25 +23,27 @@ import Tabs_default from "./containers/Tabs.js";
|
|
|
18
23
|
import TableGroupList_default from "./containers/table-group-list/TableGroupList.js";
|
|
19
24
|
import Text_default from "./fields/Text.js";
|
|
20
25
|
import Number_default from "./fields/Number.js";
|
|
21
|
-
import
|
|
26
|
+
import Index_default$5 from "./fields/NumberRange/Index.js";
|
|
22
27
|
import Textarea_default from "./fields/Textarea.js";
|
|
23
|
-
import
|
|
24
|
-
import
|
|
28
|
+
import Index_default$1 from "./fields/Date/Index.js";
|
|
29
|
+
import Index_default$2 from "./fields/DateTime/Index.js";
|
|
25
30
|
import Time_default from "./fields/Time.js";
|
|
26
31
|
import Checkbox_default from "./fields/Checkbox.js";
|
|
27
32
|
import Switch_default from "./fields/Switch.js";
|
|
28
33
|
import Daterange_default from "./fields/Daterange.js";
|
|
29
34
|
import Timerange_default from "./fields/Timerange.js";
|
|
30
35
|
import ColorPicker_default from "./fields/ColorPicker.js";
|
|
31
|
-
import
|
|
36
|
+
import Index_default from "./fields/CheckboxGroup/Index.js";
|
|
32
37
|
import RadioGroup_default from "./fields/RadioGroup.js";
|
|
33
|
-
import
|
|
38
|
+
import Index_default$3 from "./fields/Display/Index.js";
|
|
34
39
|
import Link_default from "./fields/Link.js";
|
|
35
40
|
import Select_default from "./fields/Select.js";
|
|
36
41
|
import Cascader_default from "./fields/Cascader.js";
|
|
37
|
-
import
|
|
42
|
+
import Index_default$4 from "./fields/DynamicField/Index.js";
|
|
43
|
+
import { builtInFields } from "./utils/builtInFields.js";
|
|
38
44
|
import plugin_default from "./plugin.js";
|
|
39
45
|
export * from "@tmagic/form-schema";
|
|
46
|
+
//#region packages/form/src/index.ts
|
|
40
47
|
var createForm = (config) => config;
|
|
41
48
|
//#endregion
|
|
42
|
-
export { FORM_DIFF_CONFIG_KEY, Cascader_default as MCascader, Checkbox_default as MCheckbox,
|
|
49
|
+
export { FORM_CONTEXT_KEY, FORM_DIFF_CONFIG_KEY, FORM_TYPE_MATCH_VALID_KEY, FieldInnerConfigError, MAX_SUGGESTION_OPTIONS, Cascader_default as MCascader, Checkbox_default as MCheckbox, Index_default as MCheckboxGroup, ColorPicker_default as MColorPicker, Container_default as MContainer, Index_default$1 as MDate, Index_default$2 as MDateTime, Daterange_default as MDaterange, Index_default$3 as MDisplay, Index_default$4 as MDynamicField, Fieldset_default as MFieldset, FlexLayout_default as MFlexLayout, Form_default as MForm, FormBox_default as MFormBox, FormDialog_default as MFormDialog, FormDrawer_default as MFormDrawer, TableGroupList_default as MGroupList, Hidden_default as MHidden, Link_default as MLink, Number_default as MNumber, Index_default$5 as MNumberRange, Panel_default as MPanel, RadioGroup_default as MRadioGroup, Row_default as MRow, Select_default as MSelect, Switch_default as MSwitch, TableGroupList_default as MTable, TableGroupList_default as MTableGroupList, Tabs_default as MTabs, Text_default as MText, Textarea_default as MTextarea, Time_default as MTime, Timerange_default as MTimerange, adaptFormValidator, appendProp, applyMountValueEffects, builtInFields, clearFields, clearTypeMatchRules, collectValidatableFields, createForm, createFormStateBase, createFormStateProxy, createHeadlessFormState, createObjectProp, createValues, datetimeFormatter, plugin_default as default, deleteTypeMatchRule, display, filterFunction, formatValidateError, getDataByPage, getField as getFormField, getItemProp, getNativeRules, getRules, getTextByName, getTypeMatchRule, initValue, isFieldInnerConfigError, isLeafFieldType, isValidName, mergeFieldOptions, mergeFormContexts, optionSuggestion, registerBuiltInFields, registerField, registerFields, resolveItemType, sortArray, sortChange, stringifyExampleValue, stripTabItemsLazy, submitForm, unregisterField, useAddField, validateForm, validateTypeMatch, validateValues };
|
package/dist/es/plugin.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import Hidden_default from "./fields/Hidden.js";
|
|
2
1
|
import { setConfig } from "./utils/config.js";
|
|
2
|
+
import Hidden_default from "./fields/Hidden.js";
|
|
3
|
+
import { registerBuiltInFields, registerFields } from "./utils/registerField.js";
|
|
3
4
|
import Container_default from "./containers/Container.js";
|
|
4
5
|
import Form_default from "./Form.js";
|
|
5
6
|
import FormDialog_default from "./FormDialog.js";
|
|
@@ -12,64 +13,81 @@ import Tabs_default from "./containers/Tabs.js";
|
|
|
12
13
|
import TableGroupList_default from "./containers/table-group-list/TableGroupList.js";
|
|
13
14
|
import Text_default from "./fields/Text.js";
|
|
14
15
|
import Number_default from "./fields/Number.js";
|
|
15
|
-
import
|
|
16
|
+
import Index_default from "./fields/NumberRange/Index.js";
|
|
16
17
|
import Textarea_default from "./fields/Textarea.js";
|
|
17
|
-
import
|
|
18
|
-
import
|
|
18
|
+
import Index_default$1 from "./fields/Date/Index.js";
|
|
19
|
+
import Index_default$2 from "./fields/DateTime/Index.js";
|
|
19
20
|
import Time_default from "./fields/Time.js";
|
|
20
21
|
import Checkbox_default from "./fields/Checkbox.js";
|
|
21
22
|
import Switch_default from "./fields/Switch.js";
|
|
22
23
|
import Daterange_default from "./fields/Daterange.js";
|
|
23
24
|
import Timerange_default from "./fields/Timerange.js";
|
|
24
25
|
import ColorPicker_default from "./fields/ColorPicker.js";
|
|
25
|
-
import
|
|
26
|
+
import Index_default$3 from "./fields/CheckboxGroup/Index.js";
|
|
26
27
|
import RadioGroup_default from "./fields/RadioGroup.js";
|
|
27
|
-
import
|
|
28
|
+
import Index_default$4 from "./fields/Display/Index.js";
|
|
28
29
|
import Link_default from "./fields/Link.js";
|
|
29
30
|
import Select_default from "./fields/Select.js";
|
|
30
31
|
import Cascader_default from "./fields/Cascader.js";
|
|
31
|
-
import
|
|
32
|
+
import Index_default$5 from "./fields/DynamicField/Index.js";
|
|
33
|
+
import { builtInFields } from "./utils/builtInFields.js";
|
|
32
34
|
import Step_default from "./containers/Step.js";
|
|
33
35
|
/* empty css */
|
|
34
36
|
//#region packages/form/src/plugin.ts
|
|
37
|
+
var builtInFieldVue = {
|
|
38
|
+
text: { component: Text_default },
|
|
39
|
+
"img-upload": { component: Text_default },
|
|
40
|
+
number: { component: Number_default },
|
|
41
|
+
"number-range": { component: Index_default },
|
|
42
|
+
textarea: { component: Textarea_default },
|
|
43
|
+
hidden: { component: Hidden_default },
|
|
44
|
+
date: { component: Index_default$1 },
|
|
45
|
+
datetime: { component: Index_default$2 },
|
|
46
|
+
daterange: { component: Daterange_default },
|
|
47
|
+
timerange: { component: Timerange_default },
|
|
48
|
+
time: { component: Time_default },
|
|
49
|
+
checkbox: { component: Checkbox_default },
|
|
50
|
+
switch: { component: Switch_default },
|
|
51
|
+
"color-picker": { component: ColorPicker_default },
|
|
52
|
+
"checkbox-group": { component: Index_default$3 },
|
|
53
|
+
"radio-group": { component: RadioGroup_default },
|
|
54
|
+
display: { component: Index_default$4 },
|
|
55
|
+
link: { component: Link_default },
|
|
56
|
+
select: { component: Select_default },
|
|
57
|
+
cascader: { component: Cascader_default },
|
|
58
|
+
"dynamic-field": { component: Index_default$5 },
|
|
59
|
+
container: { container: Container_default },
|
|
60
|
+
tab: { container: Tabs_default },
|
|
61
|
+
row: { container: Row_default },
|
|
62
|
+
"flex-layout": { container: FlexLayout_default },
|
|
63
|
+
fieldset: { container: Fieldset_default },
|
|
64
|
+
panel: { container: Panel_default },
|
|
65
|
+
step: { container: Step_default },
|
|
66
|
+
table: { container: TableGroupList_default },
|
|
67
|
+
"group-list": { container: TableGroupList_default },
|
|
68
|
+
"table-group-list": { container: TableGroupList_default }
|
|
69
|
+
};
|
|
35
70
|
var defaultInstallOpt = {};
|
|
36
|
-
var plugin_default = {
|
|
37
|
-
|
|
71
|
+
var plugin_default = {
|
|
72
|
+
/**
|
|
73
|
+
* 安装 `@tmagic/form`:登记内置字段、挂载 `m-form` / `m-form-dialog` / `m-form-drawer`。
|
|
74
|
+
*
|
|
75
|
+
* @param app - Vue 应用
|
|
76
|
+
* @param [opt] - 安装选项
|
|
77
|
+
*/
|
|
78
|
+
install(app, opt = {}) {
|
|
79
|
+
const option = {
|
|
80
|
+
...defaultInstallOpt,
|
|
81
|
+
...opt
|
|
82
|
+
};
|
|
38
83
|
app.config.globalProperties.$MAGIC_FORM = option;
|
|
39
84
|
setConfig(option);
|
|
85
|
+
registerBuiltInFields(builtInFields);
|
|
86
|
+
registerBuiltInFields(builtInFieldVue, app);
|
|
87
|
+
if (option.fields) registerFields(option.fields, app);
|
|
40
88
|
app.component("m-form", Form_default);
|
|
41
89
|
app.component("m-form-dialog", FormDialog_default);
|
|
42
90
|
app.component("m-form-drawer", FormDrawer_default);
|
|
43
|
-
app.component("m-form-container", Container_default);
|
|
44
|
-
app.component("m-form-fieldset", Fieldset_default);
|
|
45
|
-
app.component("m-form-group-list", TableGroupList_default);
|
|
46
|
-
app.component("m-form-panel", Panel_default);
|
|
47
|
-
app.component("m-form-row", Row_default);
|
|
48
|
-
app.component("m-form-step", Step_default);
|
|
49
|
-
app.component("m-form-table", TableGroupList_default);
|
|
50
|
-
app.component("m-form-tab", Tabs_default);
|
|
51
|
-
app.component("m-form-flex-layout", FlexLayout_default);
|
|
52
|
-
app.component("m-fields-text", Text_default);
|
|
53
|
-
app.component("m-fields-img-upload", Text_default);
|
|
54
|
-
app.component("m-fields-number", Number_default);
|
|
55
|
-
app.component("m-fields-number-range", NumberRange_default);
|
|
56
|
-
app.component("m-fields-textarea", Textarea_default);
|
|
57
|
-
app.component("m-fields-hidden", Hidden_default);
|
|
58
|
-
app.component("m-fields-date", Date_default);
|
|
59
|
-
app.component("m-fields-datetime", DateTime_default);
|
|
60
|
-
app.component("m-fields-daterange", Daterange_default);
|
|
61
|
-
app.component("m-fields-timerange", Timerange_default);
|
|
62
|
-
app.component("m-fields-time", Time_default);
|
|
63
|
-
app.component("m-fields-checkbox", Checkbox_default);
|
|
64
|
-
app.component("m-fields-switch", Switch_default);
|
|
65
|
-
app.component("m-fields-color-picker", ColorPicker_default);
|
|
66
|
-
app.component("m-fields-checkbox-group", CheckboxGroup_default);
|
|
67
|
-
app.component("m-fields-radio-group", RadioGroup_default);
|
|
68
|
-
app.component("m-fields-display", Display_default);
|
|
69
|
-
app.component("m-fields-link", Link_default);
|
|
70
|
-
app.component("m-fields-select", Select_default);
|
|
71
|
-
app.component("m-fields-cascader", Cascader_default);
|
|
72
|
-
app.component("m-fields-dynamic-field", DynamicField_default);
|
|
73
91
|
} };
|
|
74
92
|
//#endregion
|
|
75
93
|
export { plugin_default as default };
|
package/dist/es/schema.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import "./_virtual/_rolldown/runtime.js";
|
|
2
1
|
export * from "@tmagic/form-schema";
|
|
3
2
|
//#region packages/form/src/schema.ts
|
|
4
3
|
var FORM_DIFF_CONFIG_KEY = Symbol("mFormDiffConfig");
|
|
4
|
+
var FORM_TYPE_MATCH_VALID_KEY = Symbol("mFormTypeMatchValid");
|
|
5
|
+
/**
|
|
6
|
+
* 宿主业务上下文,由 `MForm`(或更外层的 Editor)通过 `provide` 下发。
|
|
7
|
+
*
|
|
8
|
+
* 嵌套表单(Link 子表单、FormBox、临时校验表单等)会自动继承最近祖先的 context,
|
|
9
|
+
* 无需层层透传。
|
|
10
|
+
*
|
|
11
|
+
* 配置回调统一通过 `mForm.xxx` 读取,由 formState 的读穿 Proxy 落到这里。
|
|
12
|
+
*/
|
|
13
|
+
var FORM_CONTEXT_KEY = Symbol("mFormContext");
|
|
5
14
|
//#endregion
|
|
6
|
-
export { FORM_DIFF_CONFIG_KEY };
|
|
15
|
+
export { FORM_CONTEXT_KEY, FORM_DIFF_CONFIG_KEY, FORM_TYPE_MATCH_VALID_KEY };
|