@tmagic/form 1.7.7 → 1.7.8-beta.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.
Files changed (103) hide show
  1. package/LICENSE +235 -164
  2. package/dist/es/Form.js +5 -0
  3. package/dist/es/Form.vue_vue_type_script_setup_true_lang.js +234 -0
  4. package/dist/es/FormBox.js +5 -0
  5. package/dist/es/FormBox.vue_vue_type_script_setup_true_lang.js +117 -0
  6. package/dist/es/FormDialog.js +5 -0
  7. package/dist/es/FormDialog.vue_vue_type_script_setup_true_lang.js +222 -0
  8. package/dist/es/FormDrawer.js +5 -0
  9. package/dist/es/FormDrawer.vue_vue_type_script_setup_true_lang.js +176 -0
  10. package/dist/es/_virtual/_rolldown/runtime.js +27 -0
  11. package/dist/es/containers/Col.js +5 -0
  12. package/dist/es/containers/Col.vue_vue_type_script_setup_true_lang.js +60 -0
  13. package/dist/es/containers/Container.js +5 -0
  14. package/dist/es/containers/Container.vue_vue_type_script_setup_true_lang.js +439 -0
  15. package/dist/es/containers/Fieldset.js +5 -0
  16. package/dist/es/containers/Fieldset.vue_vue_type_script_setup_true_lang.js +153 -0
  17. package/dist/es/containers/FlexLayout.js +5 -0
  18. package/dist/es/containers/FlexLayout.vue_vue_type_script_setup_true_lang.js +64 -0
  19. package/dist/es/containers/FormLabel.js +5 -0
  20. package/dist/es/containers/FormLabel.vue_vue_type_script_setup_true_lang.js +51 -0
  21. package/dist/es/containers/GroupList.js +5 -0
  22. package/dist/es/containers/GroupList.vue_vue_type_script_setup_true_lang.js +164 -0
  23. package/dist/es/containers/GroupListItem.js +5 -0
  24. package/dist/es/containers/GroupListItem.vue_vue_type_script_setup_true_lang.js +221 -0
  25. package/dist/es/containers/Panel.js +5 -0
  26. package/dist/es/containers/Panel.vue_vue_type_script_setup_true_lang.js +130 -0
  27. package/dist/es/containers/Row.js +5 -0
  28. package/dist/es/containers/Row.vue_vue_type_script_setup_true_lang.js +65 -0
  29. package/dist/es/containers/Step.js +5 -0
  30. package/dist/es/containers/Step.vue_vue_type_script_setup_true_lang.js +85 -0
  31. package/dist/es/containers/Tabs.js +5 -0
  32. package/dist/es/containers/Tabs.vue_vue_type_script_setup_true_lang.js +194 -0
  33. package/dist/es/fields/Cascader.js +5 -0
  34. package/dist/es/fields/Cascader.vue_vue_type_script_setup_true_lang.js +123 -0
  35. package/dist/es/fields/Checkbox.js +5 -0
  36. package/dist/es/fields/Checkbox.vue_vue_type_script_setup_true_lang.js +61 -0
  37. package/dist/es/fields/CheckboxGroup.js +5 -0
  38. package/dist/es/fields/CheckboxGroup.vue_vue_type_script_setup_true_lang.js +63 -0
  39. package/dist/es/fields/ColorPicker.js +5 -0
  40. package/dist/es/fields/ColorPicker.vue_vue_type_script_setup_true_lang.js +42 -0
  41. package/dist/es/fields/Date.js +5 -0
  42. package/dist/es/fields/Date.vue_vue_type_script_setup_true_lang.js +52 -0
  43. package/dist/es/fields/DateTime.js +5 -0
  44. package/dist/es/fields/DateTime.vue_vue_type_script_setup_true_lang.js +57 -0
  45. package/dist/es/fields/Daterange.js +5 -0
  46. package/dist/es/fields/Daterange.vue_vue_type_script_setup_true_lang.js +99 -0
  47. package/dist/es/fields/Display.js +5 -0
  48. package/dist/es/fields/Display.vue_vue_type_script_setup_true_lang.js +36 -0
  49. package/dist/es/fields/DynamicField.js +5 -0
  50. package/dist/es/fields/DynamicField.vue_vue_type_script_setup_true_lang.js +91 -0
  51. package/dist/es/fields/Hidden.js +5 -0
  52. package/dist/es/fields/Hidden.vue_vue_type_script_setup_true_lang.js +24 -0
  53. package/dist/es/fields/Link.js +5 -0
  54. package/dist/es/fields/Link.vue_vue_type_script_setup_true_lang.js +104 -0
  55. package/dist/es/fields/Number.js +5 -0
  56. package/dist/es/fields/Number.vue_vue_type_script_setup_true_lang.js +65 -0
  57. package/dist/es/fields/NumberRange.js +5 -0
  58. package/dist/es/fields/NumberRange.vue_vue_type_script_setup_true_lang.js +76 -0
  59. package/dist/es/fields/RadioGroup.js +5 -0
  60. package/dist/es/fields/RadioGroup.vue_vue_type_script_setup_true_lang.js +74 -0
  61. package/dist/es/fields/Select.js +5 -0
  62. package/dist/es/fields/Select.vue_vue_type_script_setup_true_lang.js +337 -0
  63. package/dist/es/fields/Switch.js +5 -0
  64. package/dist/es/fields/Switch.vue_vue_type_script_setup_true_lang.js +59 -0
  65. package/dist/es/fields/Text.js +5 -0
  66. package/dist/es/fields/Text.vue_vue_type_script_setup_true_lang.js +215 -0
  67. package/dist/es/fields/Textarea.js +5 -0
  68. package/dist/es/fields/Textarea.vue_vue_type_script_setup_true_lang.js +60 -0
  69. package/dist/es/fields/Time.js +5 -0
  70. package/dist/es/fields/Time.vue_vue_type_script_setup_true_lang.js +49 -0
  71. package/dist/es/fields/Timerange.js +5 -0
  72. package/dist/es/fields/Timerange.vue_vue_type_script_setup_true_lang.js +100 -0
  73. package/dist/es/index.js +41 -0
  74. package/dist/es/plugin.js +74 -0
  75. package/dist/es/schema.js +2 -0
  76. package/dist/es/style.css +325 -0
  77. package/dist/es/table/ActionsColumn.js +5 -0
  78. package/dist/es/table/ActionsColumn.vue_vue_type_script_setup_true_lang.js +107 -0
  79. package/dist/es/table/SortColumn.js +5 -0
  80. package/dist/es/table/SortColumn.vue_vue_type_script_setup_true_lang.js +88 -0
  81. package/dist/es/table/Table.js +5 -0
  82. package/dist/es/table/Table.vue_vue_type_script_setup_true_lang.js +232 -0
  83. package/dist/es/table/useAdd.js +71 -0
  84. package/dist/es/table/useFullscreen.js +15 -0
  85. package/dist/es/table/useImport.js +46 -0
  86. package/dist/es/table/usePagination.js +26 -0
  87. package/dist/es/table/useSelection.js +26 -0
  88. package/dist/es/table/useSortable.js +39 -0
  89. package/dist/es/table/useTableColumns.js +160 -0
  90. package/dist/es/utils/config.js +15 -0
  91. package/dist/es/utils/form.js +173 -0
  92. package/dist/es/utils/useAddField.js +13 -0
  93. package/dist/style.css +1 -1
  94. package/dist/tmagic-form.umd.cjs +7693 -8924
  95. package/package.json +7 -6
  96. package/src/containers/Container.vue +16 -10
  97. package/src/fields/Hidden.vue +6 -2
  98. package/src/index.ts +8 -82
  99. package/src/plugin.ts +102 -0
  100. package/src/table/useSortable.ts +8 -4
  101. package/src/utils/config.ts +16 -1
  102. package/types/index.d.ts +1264 -1226
  103. package/dist/tmagic-form.js +0 -5940
@@ -0,0 +1,176 @@
1
+ import Form_default from "./Form.js";
2
+ import { createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, ref, renderSlot, toDisplayString, unref, watchEffect, withCtx } from "vue";
3
+ import { TMagicButton, TMagicCol, TMagicDrawer, TMagicRow } from "@tmagic/design";
4
+ //#region packages/form/src/FormDrawer.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = { style: { "min-height": "1px" } };
6
+ var FormDrawer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
7
+ name: "MFormDialog",
8
+ __name: "FormDrawer",
9
+ props: {
10
+ config: { default: () => [] },
11
+ values: { default: () => ({}) },
12
+ parentValues: {},
13
+ width: {},
14
+ labelWidth: {},
15
+ disabled: { type: Boolean },
16
+ closeOnPressEscape: {
17
+ type: Boolean,
18
+ default: true
19
+ },
20
+ title: {},
21
+ zIndex: {},
22
+ size: {},
23
+ confirmText: { default: "确定" },
24
+ inline: { type: Boolean },
25
+ labelPosition: {},
26
+ preventSubmitDefault: { type: Boolean },
27
+ beforeClose: {}
28
+ },
29
+ emits: [
30
+ "close",
31
+ "closed",
32
+ "submit",
33
+ "error",
34
+ "change",
35
+ "open",
36
+ "opened"
37
+ ],
38
+ setup(__props, { expose: __expose, emit: __emit }) {
39
+ const emit = __emit;
40
+ const drawer = ref();
41
+ const form = ref();
42
+ const drawerBody = ref();
43
+ const visible = ref(false);
44
+ const saveFetch = ref(false);
45
+ const bodyHeight = ref(0);
46
+ watchEffect(() => {
47
+ if (drawerBody.value) bodyHeight.value = drawerBody.value.clientHeight;
48
+ });
49
+ const submitHandler = async () => {
50
+ try {
51
+ const changeRecords = form.value?.changeRecords;
52
+ emit("submit", await form.value?.submitForm(), { changeRecords });
53
+ } catch (e) {
54
+ emit("error", e);
55
+ }
56
+ };
57
+ const changeHandler = (value, eventData) => {
58
+ emit("change", value, eventData);
59
+ };
60
+ const openHandler = () => {
61
+ emit("open");
62
+ };
63
+ const openedHandler = () => {
64
+ emit("opened");
65
+ };
66
+ const closeHandler = () => {
67
+ emit("close");
68
+ };
69
+ const closedHandler = () => {
70
+ emit("closed");
71
+ };
72
+ const show = () => {
73
+ visible.value = true;
74
+ };
75
+ const hide = () => {
76
+ visible.value = false;
77
+ };
78
+ /** 用于关闭 Drawer, 该方法会调用传入的 before-close 方法 */
79
+ const handleClose = () => {
80
+ drawer.value?.handleClose();
81
+ };
82
+ __expose({
83
+ form,
84
+ saveFetch,
85
+ bodyHeight,
86
+ show,
87
+ hide,
88
+ handleClose
89
+ });
90
+ return (_ctx, _cache) => {
91
+ return openBlock(), createBlock(unref(TMagicDrawer), {
92
+ class: "m-form-drawer",
93
+ ref_key: "drawer",
94
+ ref: drawer,
95
+ modelValue: visible.value,
96
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
97
+ title: __props.title,
98
+ "close-on-press-escape": __props.closeOnPressEscape,
99
+ "append-to-body": true,
100
+ "show-close": true,
101
+ "close-on-click-modal": true,
102
+ size: __props.width,
103
+ zIndex: __props.zIndex,
104
+ "before-close": __props.beforeClose,
105
+ onOpen: openHandler,
106
+ onOpened: openedHandler,
107
+ onClose: closeHandler,
108
+ onClosed: closedHandler
109
+ }, {
110
+ footer: withCtx(() => [createVNode(unref(TMagicRow), { class: "dialog-footer" }, {
111
+ default: withCtx(() => [createVNode(unref(TMagicCol), {
112
+ span: 12,
113
+ style: { "text-align": "left" }
114
+ }, {
115
+ default: withCtx(() => [createElementVNode("div", _hoisted_1, [renderSlot(_ctx.$slots, "left")])]),
116
+ _: 3
117
+ }), createVNode(unref(TMagicCol), { span: 12 }, {
118
+ default: withCtx(() => [renderSlot(_ctx.$slots, "footer", {}, () => [createVNode(unref(TMagicButton), { onClick: handleClose }, {
119
+ default: withCtx(() => [..._cache[1] || (_cache[1] = [createTextVNode("关闭", -1)])]),
120
+ _: 1
121
+ }), createVNode(unref(TMagicButton), {
122
+ type: "primary",
123
+ disabled: __props.disabled,
124
+ loading: saveFetch.value,
125
+ onClick: submitHandler
126
+ }, {
127
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.confirmText), 1)]),
128
+ _: 1
129
+ }, 8, ["disabled", "loading"])])]),
130
+ _: 3
131
+ })]),
132
+ _: 3
133
+ })]),
134
+ default: withCtx(() => [visible.value ? (openBlock(), createElementBlock("div", {
135
+ key: 0,
136
+ ref_key: "drawerBody",
137
+ ref: drawerBody,
138
+ class: "m-drawer-body"
139
+ }, [createVNode(Form_default, {
140
+ ref_key: "form",
141
+ ref: form,
142
+ size: __props.size,
143
+ disabled: __props.disabled,
144
+ config: __props.config,
145
+ "init-values": __props.values,
146
+ "parent-values": __props.parentValues,
147
+ "label-width": __props.labelWidth,
148
+ "label-position": __props.labelPosition,
149
+ inline: __props.inline,
150
+ "prevent-submit-default": __props.preventSubmitDefault,
151
+ onChange: changeHandler
152
+ }, null, 8, [
153
+ "size",
154
+ "disabled",
155
+ "config",
156
+ "init-values",
157
+ "parent-values",
158
+ "label-width",
159
+ "label-position",
160
+ "inline",
161
+ "prevent-submit-default"
162
+ ]), renderSlot(_ctx.$slots, "default")], 512)) : createCommentVNode("v-if", true)]),
163
+ _: 3
164
+ }, 8, [
165
+ "modelValue",
166
+ "title",
167
+ "close-on-press-escape",
168
+ "size",
169
+ "zIndex",
170
+ "before-close"
171
+ ]);
172
+ };
173
+ }
174
+ });
175
+ //#endregion
176
+ export { FormDrawer_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,27 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __exportAll = (all, no_symbols) => {
7
+ let target = {};
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ return target;
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
17
+ key = keys[i];
18
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: ((k) => from[k]).bind(null, key),
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
24
+ };
25
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
26
+ //#endregion
27
+ export { __exportAll, __reExport };
@@ -0,0 +1,5 @@
1
+ import Col_vue_vue_type_script_setup_true_lang_default from "./Col.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/form/src/containers/Col.vue
3
+ var Col_default = Col_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { Col_default as default };
@@ -0,0 +1,60 @@
1
+ import { display } from "../utils/form.js";
2
+ import Container_default from "./Container.js";
3
+ import { computed, createBlock, createVNode, defineComponent, inject, openBlock, unref, vShow, withCtx, withDirectives } from "vue";
4
+ import { TMagicCol } from "@tmagic/design";
5
+ //#region packages/form/src/containers/Col.vue?vue&type=script&setup=true&lang.ts
6
+ var Col_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
7
+ name: "MFormCol",
8
+ __name: "Col",
9
+ props: {
10
+ model: {},
11
+ lastValues: {},
12
+ isCompare: { type: Boolean },
13
+ config: {},
14
+ labelWidth: {},
15
+ expandMore: { type: Boolean },
16
+ span: {},
17
+ size: {},
18
+ prop: {},
19
+ disabled: { type: Boolean }
20
+ },
21
+ emits: ["change", "addDiffCount"],
22
+ setup(__props, { emit: __emit }) {
23
+ const props = __props;
24
+ const emit = __emit;
25
+ const mForm = inject("mForm");
26
+ const display$1 = computed(() => display(mForm, props.config.display, props));
27
+ const changeHandler = (v, eventData) => emit("change", v, eventData);
28
+ const onAddDiffCount = () => emit("addDiffCount");
29
+ return (_ctx, _cache) => {
30
+ return withDirectives((openBlock(), createBlock(unref(TMagicCol), { span: __props.span }, {
31
+ default: withCtx(() => [createVNode(Container_default, {
32
+ model: __props.model,
33
+ lastValues: __props.lastValues,
34
+ "is-compare": __props.isCompare,
35
+ config: __props.config,
36
+ prop: __props.prop,
37
+ "label-width": __props.config.labelWidth || __props.labelWidth,
38
+ "expand-more": __props.expandMore,
39
+ size: __props.size,
40
+ disabled: __props.disabled,
41
+ onChange: changeHandler,
42
+ onAddDiffCount
43
+ }, null, 8, [
44
+ "model",
45
+ "lastValues",
46
+ "is-compare",
47
+ "config",
48
+ "prop",
49
+ "label-width",
50
+ "expand-more",
51
+ "size",
52
+ "disabled"
53
+ ])]),
54
+ _: 1
55
+ }, 8, ["span"])), [[vShow, display$1.value && __props.config.type !== "hidden"]]);
56
+ };
57
+ }
58
+ });
59
+ //#endregion
60
+ export { Col_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,5 @@
1
+ import Container_vue_vue_type_script_setup_true_lang_default from "./Container.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/form/src/containers/Container.vue
3
+ var Container_default = Container_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { Container_default as default };