ehr-form-engine 1.0.0-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 (239) hide show
  1. package/README.md +77 -0
  2. package/dist/favicon.ico +0 -0
  3. package/dist/index.cjs.js +33 -0
  4. package/dist/index.d.ts +3 -0
  5. package/dist/index.es.js +38836 -0
  6. package/dist/src/components/AutoScrollbar/components/ScrollArea/ScrollArea.vue.d.ts +46 -0
  7. package/dist/src/components/AutoScrollbar/components/ScrollArea/index.d.ts +3 -0
  8. package/dist/src/components/AutoScrollbar/components/ScrollBar/ScrollBar.vue.d.ts +31 -0
  9. package/dist/src/components/AutoScrollbar/components/ScrollBar/index.d.ts +3 -0
  10. package/dist/src/components/AutoScrollbar/components/index.d.ts +2 -0
  11. package/dist/src/components/AutoScrollbar/index.d.ts +5 -0
  12. package/dist/src/components/AutoScrollbar/index.vue.d.ts +69 -0
  13. package/dist/src/components/AutoScrollbar/types/emits.d.ts +8 -0
  14. package/dist/src/components/AutoScrollbar/types/index.d.ts +3 -0
  15. package/dist/src/components/AutoScrollbar/types/props.d.ts +13 -0
  16. package/dist/src/components/AutoScrollbar/types/types.d.ts +1 -0
  17. package/dist/src/components/Button/Collapse/index.d.ts +3 -0
  18. package/dist/src/components/Button/Collapse/index.vue.d.ts +18 -0
  19. package/dist/src/components/Button/Delete/index.d.ts +3 -0
  20. package/dist/src/components/Button/Delete/index.vue.d.ts +43 -0
  21. package/dist/src/components/Button/DragDrop/index.d.ts +3 -0
  22. package/dist/src/components/Button/DragDrop/index.vue.d.ts +27 -0
  23. package/dist/src/components/Button/MoveBottom/index.d.ts +3 -0
  24. package/dist/src/components/Button/MoveBottom/index.vue.d.ts +40 -0
  25. package/dist/src/components/Button/MoveDown/index.d.ts +3 -0
  26. package/dist/src/components/Button/MoveDown/index.vue.d.ts +40 -0
  27. package/dist/src/components/Button/MoveTop/index.d.ts +3 -0
  28. package/dist/src/components/Button/MoveTop/index.vue.d.ts +40 -0
  29. package/dist/src/components/Button/MoveUp/index.d.ts +3 -0
  30. package/dist/src/components/Button/MoveUp/index.vue.d.ts +40 -0
  31. package/dist/src/components/Button/ToggleVisible/index.d.ts +3 -0
  32. package/dist/src/components/Button/ToggleVisible/index.vue.d.ts +34 -0
  33. package/dist/src/components/Button/index.d.ts +9 -0
  34. package/dist/src/components/Button/types/index.d.ts +2 -0
  35. package/dist/src/components/Button/types/props.d.ts +47 -0
  36. package/dist/src/components/Button/types/types.d.ts +12 -0
  37. package/dist/src/components/Column/Container/index.d.ts +3 -0
  38. package/dist/src/components/Column/Container/index.vue.d.ts +27 -0
  39. package/dist/src/components/Column/Designer/index.d.ts +3 -0
  40. package/dist/src/components/Column/Designer/index.vue.d.ts +26 -0
  41. package/dist/src/components/Column/Property/index.d.ts +3 -0
  42. package/dist/src/components/Column/Property/index.vue.d.ts +18 -0
  43. package/dist/src/components/Column/index.d.ts +4 -0
  44. package/dist/src/components/Column/types/emits.d.ts +20 -0
  45. package/dist/src/components/Column/types/index.d.ts +2 -0
  46. package/dist/src/components/Column/types/props.d.ts +15 -0
  47. package/dist/src/components/ComponentProps/Cascader/index.d.ts +3 -0
  48. package/dist/src/components/ComponentProps/Cascader/index.vue.d.ts +21 -0
  49. package/dist/src/components/ComponentProps/DatePicker/index.d.ts +3 -0
  50. package/dist/src/components/ComponentProps/DatePicker/index.vue.d.ts +21 -0
  51. package/dist/src/components/ComponentProps/Input/index.d.ts +3 -0
  52. package/dist/src/components/ComponentProps/Input/index.vue.d.ts +21 -0
  53. package/dist/src/components/ComponentProps/InputNumber/index.d.ts +3 -0
  54. package/dist/src/components/ComponentProps/InputNumber/index.vue.d.ts +21 -0
  55. package/dist/src/components/ComponentProps/InputPassword/index.d.ts +3 -0
  56. package/dist/src/components/ComponentProps/InputPassword/index.vue.d.ts +21 -0
  57. package/dist/src/components/ComponentProps/RadioGroup/index.d.ts +3 -0
  58. package/dist/src/components/ComponentProps/RadioGroup/index.vue.d.ts +21 -0
  59. package/dist/src/components/ComponentProps/RangePicker/index.d.ts +3 -0
  60. package/dist/src/components/ComponentProps/RangePicker/index.vue.d.ts +21 -0
  61. package/dist/src/components/ComponentProps/Rate/index.d.ts +3 -0
  62. package/dist/src/components/ComponentProps/Rate/index.vue.d.ts +21 -0
  63. package/dist/src/components/ComponentProps/Select/index.d.ts +3 -0
  64. package/dist/src/components/ComponentProps/Select/index.vue.d.ts +21 -0
  65. package/dist/src/components/ComponentProps/Switch/index.d.ts +3 -0
  66. package/dist/src/components/ComponentProps/Switch/index.vue.d.ts +21 -0
  67. package/dist/src/components/ComponentProps/Textarea/index.d.ts +3 -0
  68. package/dist/src/components/ComponentProps/Textarea/index.vue.d.ts +21 -0
  69. package/dist/src/components/ComponentProps/TimePicker/index.d.ts +3 -0
  70. package/dist/src/components/ComponentProps/TimePicker/index.vue.d.ts +21 -0
  71. package/dist/src/components/ComponentProps/TimeRangePicker/index.d.ts +3 -0
  72. package/dist/src/components/ComponentProps/TimeRangePicker/index.vue.d.ts +21 -0
  73. package/dist/src/components/ComponentProps/Upload/index.d.ts +3 -0
  74. package/dist/src/components/ComponentProps/Upload/index.vue.d.ts +21 -0
  75. package/dist/src/components/ComponentProps/UploadDragger/index.d.ts +3 -0
  76. package/dist/src/components/ComponentProps/UploadDragger/index.vue.d.ts +21 -0
  77. package/dist/src/components/ComponentProps/index.d.ts +15 -0
  78. package/dist/src/components/Container/FormDraggable/index.d.ts +4 -0
  79. package/dist/src/components/Container/FormDraggable/index.vue.d.ts +32 -0
  80. package/dist/src/components/Container/NestedDraggable/index.d.ts +3 -0
  81. package/dist/src/components/Container/NestedDraggable/index.vue.d.ts +32 -0
  82. package/dist/src/components/Container/TableDraggable/index.d.ts +3 -0
  83. package/dist/src/components/Container/TableDraggable/index.vue.d.ts +32 -0
  84. package/dist/src/components/Container/UploadDraggable/index.d.ts +4 -0
  85. package/dist/src/components/Container/UploadDraggable/index.vue.d.ts +32 -0
  86. package/dist/src/components/Container/index.d.ts +5 -0
  87. package/dist/src/components/Container/types/emits.d.ts +12 -0
  88. package/dist/src/components/Container/types/index.d.ts +2 -0
  89. package/dist/src/components/Container/types/props.d.ts +22 -0
  90. package/dist/src/components/Core/hooks/useLayoutHeight.d.ts +9 -0
  91. package/dist/src/components/Core/index.d.ts +5 -0
  92. package/dist/src/components/Core/index.vue.d.ts +13 -0
  93. package/dist/src/components/Core/types/index.d.ts +5 -0
  94. package/dist/src/components/Dependency/Item/index.d.ts +3 -0
  95. package/dist/src/components/Dependency/Item/index.vue.d.ts +19 -0
  96. package/dist/src/components/Dependency/List/index.d.ts +3 -0
  97. package/dist/src/components/Dependency/List/index.vue.d.ts +22 -0
  98. package/dist/src/components/Dependency/Operator/index.d.ts +3 -0
  99. package/dist/src/components/Dependency/Operator/index.vue.d.ts +17 -0
  100. package/dist/src/components/Dependency/index.d.ts +4 -0
  101. package/dist/src/components/Dependency/types/emits.d.ts +14 -0
  102. package/dist/src/components/Dependency/types/index.d.ts +2 -0
  103. package/dist/src/components/Dependency/types/props.d.ts +15 -0
  104. package/dist/src/components/Designer/Panel/Form/index.d.ts +3 -0
  105. package/dist/src/components/Designer/Panel/Form/index.vue.d.ts +31 -0
  106. package/dist/src/components/Designer/Panel/Table/index.d.ts +3 -0
  107. package/dist/src/components/Designer/Panel/Table/index.vue.d.ts +31 -0
  108. package/dist/src/components/Designer/Panel/Upload/index.d.ts +3 -0
  109. package/dist/src/components/Designer/Panel/Upload/index.vue.d.ts +31 -0
  110. package/dist/src/components/Designer/Panel/index.d.ts +3 -0
  111. package/dist/src/components/Designer/Template/Form/index.d.ts +3 -0
  112. package/dist/src/components/Designer/Template/Form/index.vue.d.ts +13 -0
  113. package/dist/src/components/Designer/Template/Table/index.d.ts +3 -0
  114. package/dist/src/components/Designer/Template/Table/index.vue.d.ts +13 -0
  115. package/dist/src/components/Designer/Template/Upload/index.d.ts +3 -0
  116. package/dist/src/components/Designer/Template/Upload/index.vue.d.ts +13 -0
  117. package/dist/src/components/Designer/Template/index.d.ts +3 -0
  118. package/dist/src/components/Designer/Toolbar/index.d.ts +3 -0
  119. package/dist/src/components/Designer/Toolbar/index.vue.d.ts +8 -0
  120. package/dist/src/components/Designer/index.d.ts +7 -0
  121. package/dist/src/components/Designer/index.vue.d.ts +30 -0
  122. package/dist/src/components/Designer/types/emits.d.ts +7 -0
  123. package/dist/src/components/Designer/types/index.d.ts +3 -0
  124. package/dist/src/components/Designer/types/props.d.ts +26 -0
  125. package/dist/src/components/Designer/types/types.d.ts +8 -0
  126. package/dist/src/components/DragContainer/Designer/index.d.ts +3 -0
  127. package/dist/src/components/DragContainer/Designer/index.vue.d.ts +16 -0
  128. package/dist/src/components/DragContainer/Item/index.d.ts +3 -0
  129. package/dist/src/components/DragContainer/Item/index.vue.d.ts +13 -0
  130. package/dist/src/components/DragContainer/List/index.d.ts +3 -0
  131. package/dist/src/components/DragContainer/List/index.vue.d.ts +13 -0
  132. package/dist/src/components/DragContainer/index.d.ts +4 -0
  133. package/dist/src/components/DragContainer/types/index.d.ts +1 -0
  134. package/dist/src/components/DragContainer/types/props.d.ts +15 -0
  135. package/dist/src/components/Drawer/CodeSandbox/index.d.ts +3 -0
  136. package/dist/src/components/Drawer/CodeSandbox/index.vue.d.ts +33 -0
  137. package/dist/src/components/Drawer/DesignerEngine/index.d.ts +3 -0
  138. package/dist/src/components/Drawer/DesignerEngine/index.vue.d.ts +33 -0
  139. package/dist/src/components/Drawer/TemplateEngine/index.d.ts +3 -0
  140. package/dist/src/components/Drawer/TemplateEngine/index.vue.d.ts +36 -0
  141. package/dist/src/components/Drawer/index.d.ts +4 -0
  142. package/dist/src/components/Drawer/types/emits.d.ts +8 -0
  143. package/dist/src/components/Drawer/types/index.d.ts +2 -0
  144. package/dist/src/components/Drawer/types/props.d.ts +10 -0
  145. package/dist/src/components/Icon/index.d.ts +4 -0
  146. package/dist/src/components/Icon/index.vue.d.ts +19 -0
  147. package/dist/src/components/Input/Tag/index.vue.d.ts +17 -0
  148. package/dist/src/components/Input/Value/index.vue.d.ts +17 -0
  149. package/dist/src/components/Input/index.d.ts +3 -0
  150. package/dist/src/components/Input/types/emits.d.ts +6 -0
  151. package/dist/src/components/Input/types/index.d.ts +2 -0
  152. package/dist/src/components/Input/types/props.d.ts +9 -0
  153. package/dist/src/components/Modal/Dependency/index.d.ts +3 -0
  154. package/dist/src/components/Modal/Dependency/index.vue.d.ts +20 -0
  155. package/dist/src/components/Modal/TableSetting/index.d.ts +3 -0
  156. package/dist/src/components/Modal/TableSetting/index.vue.d.ts +20 -0
  157. package/dist/src/components/Modal/index.d.ts +3 -0
  158. package/dist/src/components/Modal/types/emits.d.ts +10 -0
  159. package/dist/src/components/Modal/types/index.d.ts +2 -0
  160. package/dist/src/components/Modal/types/props.d.ts +12 -0
  161. package/dist/src/components/MyInput/MyInput.vue.d.ts +19 -0
  162. package/dist/src/components/MyInput/index.d.ts +1 -0
  163. package/dist/src/components/Panel/ContainerProperty/index.d.ts +3 -0
  164. package/dist/src/components/Panel/ContainerProperty/index.vue.d.ts +20 -0
  165. package/dist/src/components/Panel/Designer/index.d.ts +3 -0
  166. package/dist/src/components/Panel/Designer/index.vue.d.ts +21 -0
  167. package/dist/src/components/Panel/FieldProperty/index.d.ts +3 -0
  168. package/dist/src/components/Panel/FieldProperty/index.vue.d.ts +18 -0
  169. package/dist/src/components/Panel/GlobalProperty/index.d.ts +3 -0
  170. package/dist/src/components/Panel/GlobalProperty/index.vue.d.ts +2 -0
  171. package/dist/src/components/Panel/TableProperty/index.d.ts +3 -0
  172. package/dist/src/components/Panel/TableProperty/index.vue.d.ts +18 -0
  173. package/dist/src/components/Panel/UploadProperty/index.d.ts +3 -0
  174. package/dist/src/components/Panel/UploadProperty/index.vue.d.ts +18 -0
  175. package/dist/src/components/Panel/index.d.ts +7 -0
  176. package/dist/src/components/Panel/types/emits.d.ts +20 -0
  177. package/dist/src/components/Panel/types/index.d.ts +2 -0
  178. package/dist/src/components/Panel/types/props.d.ts +25 -0
  179. package/dist/src/components/Render/Form/index.d.ts +3 -0
  180. package/dist/src/components/Render/Form/index.vue.d.ts +26 -0
  181. package/dist/src/components/Render/FormItem/index.d.ts +3 -0
  182. package/dist/src/components/Render/FormItem/index.vue.d.ts +17 -0
  183. package/dist/src/components/Render/Table/index.d.ts +3 -0
  184. package/dist/src/components/Render/Table/index.vue.d.ts +13 -0
  185. package/dist/src/components/Render/TableForm/index.d.ts +3 -0
  186. package/dist/src/components/Render/TableForm/index.vue.d.ts +26 -0
  187. package/dist/src/components/Render/Upload/index.d.ts +3 -0
  188. package/dist/src/components/Render/Upload/index.vue.d.ts +17 -0
  189. package/dist/src/components/Render/Uploads/index.d.ts +3 -0
  190. package/dist/src/components/Render/Uploads/index.vue.d.ts +17 -0
  191. package/dist/src/components/Render/index.d.ts +7 -0
  192. package/dist/src/components/Render/types/emits.d.ts +13 -0
  193. package/dist/src/components/Render/types/index.d.ts +3 -0
  194. package/dist/src/components/Render/types/props.d.ts +30 -0
  195. package/dist/src/components/Render/types/types.d.ts +12 -0
  196. package/dist/src/components/Skeletons/Grid/index.d.ts +3 -0
  197. package/dist/src/components/Skeletons/Grid/index.vue.d.ts +2 -0
  198. package/dist/src/components/Skeletons/LeftRight/index.d.ts +3 -0
  199. package/dist/src/components/Skeletons/LeftRight/index.vue.d.ts +2 -0
  200. package/dist/src/components/Skeletons/Table/index.d.ts +3 -0
  201. package/dist/src/components/Skeletons/Table/index.vue.d.ts +2 -0
  202. package/dist/src/components/Skeletons/index.d.ts +3 -0
  203. package/dist/src/components/Toolbar/index.d.ts +4 -0
  204. package/dist/src/components/Toolbar/index.vue.d.ts +44 -0
  205. package/dist/src/components/Toolbar/types/emits.d.ts +4 -0
  206. package/dist/src/components/Toolbar/types/index.d.ts +2 -0
  207. package/dist/src/components/Toolbar/types/props.d.ts +6 -0
  208. package/dist/src/components/index.d.ts +43 -0
  209. package/dist/src/components/utils/sleep.d.ts +1 -0
  210. package/dist/src/data/common/allTemplateData.d.ts +3 -0
  211. package/dist/src/data/common/dataMap.d.ts +40 -0
  212. package/dist/src/data/common/formAndTableTemplateData.d.ts +3 -0
  213. package/dist/src/data/common/formTemplateData.d.ts +3 -0
  214. package/dist/src/data/common/index.d.ts +5 -0
  215. package/dist/src/data/common/tableColumnData.d.ts +9 -0
  216. package/dist/src/data/components/componentMap.d.ts +4 -0
  217. package/dist/src/data/data/containerComponentsData.d.ts +3 -0
  218. package/dist/src/data/data/formComponentsData.d.ts +3 -0
  219. package/dist/src/data/data/hrComponentsData.d.ts +3 -0
  220. package/dist/src/data/data/hrTableComponentsData.d.ts +3 -0
  221. package/dist/src/data/data/index.d.ts +6 -0
  222. package/dist/src/data/data/tableComponentsData.d.ts +3 -0
  223. package/dist/src/data/data/uploadComponentsData.d.ts +3 -0
  224. package/dist/src/data/index.d.ts +3 -0
  225. package/dist/src/data/json/cascader.json.d.ts +5447 -0
  226. package/dist/src/main.d.ts +1 -0
  227. package/dist/src/types/emits.d.ts +36 -0
  228. package/dist/src/types/index.d.ts +2 -0
  229. package/dist/src/types/types.d.ts +461 -0
  230. package/dist/src/utils/cn.d.ts +4 -0
  231. package/dist/src/utils/convert.d.ts +20 -0
  232. package/dist/src/utils/index.d.ts +7 -0
  233. package/dist/src/utils/inference.d.ts +92 -0
  234. package/dist/src/utils/tableUtils.d.ts +29 -0
  235. package/dist/src/utils/types.d.ts +6 -0
  236. package/dist/src/utils/validator.d.ts +3 -0
  237. package/dist/src/utils/with-install.d.ts +4 -0
  238. package/dist/style.css +1 -0
  239. package/package.json +140 -0
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ import { ItemTypeTag } from './types';
2
+
3
+ export interface DeleteEvent {
4
+ (e: 'eventOnDelete', id: string): void;
5
+ }
6
+ export interface MoveBottomEvent {
7
+ (e: 'eventOnMoveBottom', id: string): void;
8
+ }
9
+ export interface MoveTopEvent {
10
+ (e: 'eventOnMoveTop', id: string): void;
11
+ }
12
+ export interface MoveUpEvent {
13
+ (e: 'eventOnMoveUp', id: string): void;
14
+ }
15
+ export interface MoveDownEvent {
16
+ (e: 'eventOnMoveDown', id: string): void;
17
+ }
18
+ export interface ToggleVisibleEvent {
19
+ (e: 'eventOnToggleVisible', id: string): void;
20
+ }
21
+ export interface CopyEvent {
22
+ (e: 'eventOnCopy', id: string): void;
23
+ }
24
+ export interface SelectedEvent {
25
+ (e: 'eventOnSelected', id: string, type: ItemTypeTag): void;
26
+ }
27
+ export interface ContainerEvents {
28
+ (e: 'eventOnDelete', id: string): void;
29
+ (e: 'eventOnMoveBottom', id: string): void;
30
+ (e: 'eventOnMoveTop', id: string): void;
31
+ (e: 'eventOnMoveUp', id: string): void;
32
+ (e: 'eventOnMoveDown', id: string): void;
33
+ (e: 'eventOnToggleVisible', id: string): void;
34
+ (e: 'eventOnCopy', id: string): void;
35
+ (e: 'eventOnSelected', id: string, type: ItemTypeTag): void;
36
+ }
@@ -0,0 +1,2 @@
1
+ export * from './emits';
2
+ export * from './types';
@@ -0,0 +1,461 @@
1
+ import { VxeFormItemPropTypes, VxeFormProps } from 'vxe-pc-ui';
2
+ import { VxeColumnPropTypes, VxeGridProps } from 'vxe-table';
3
+ import { CSSProperties } from 'vue';
4
+
5
+ /**
6
+ * 严格禁止多余属性,但优先保留显式属性(解决正常属性与never冲突)
7
+ * 原理:先声明所有允许的属性,再排除所有其他属性
8
+ */
9
+ type StrictRootType<T> = {
10
+ [K in keyof T]: T[K];
11
+ } & Omit<never, Exclude<string, keyof T>>;
12
+ /**
13
+ * 严格约束componentProps,禁止多余属性
14
+ */
15
+ type StrictProps<T> = Omit<never, Exclude<string, keyof T>> & {
16
+ [K in keyof T]: T[K];
17
+ };
18
+ export interface Option {
19
+ children?: Option[];
20
+ label: string;
21
+ value: number | string;
22
+ }
23
+ export interface ColProp {
24
+ span: number;
25
+ }
26
+ export interface LabelProp {
27
+ style: {
28
+ width: number;
29
+ };
30
+ }
31
+ export type ValidatorType = 'chinese' | 'currency' | 'email' | 'idCard' | 'integer' | 'none' | 'number' | 'phone' | 'postcode' | 'url';
32
+ export type DatePickerType = 'date' | 'month' | 'quarter' | 'time' | 'week' | 'year';
33
+ export type DatePickerFormatType = 'HH:mm:ss' | 'YYYY' | 'YYYY-MM' | 'YYYY-MM-DD' | 'YYYY-MM-DD HH:mm:ss' | 'YYYY-Q' | 'YYYY-wo';
34
+ export type SelectModeType = 'combobox' | 'multiple' | 'tags';
35
+ export type UploadListType = 'picture' | 'picture-card' | 'text';
36
+ export type SelectPlacementType = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';
37
+ export type TimerPickerFormatType = 'HH:mm' | 'HH:mm:ss';
38
+ export type ColumnDataType = 'cascader' | 'date' | 'number' | 'select' | 'string' | 'textarea' | 'time';
39
+ /**
40
+ ****************************************************
41
+ 组件插槽支持类型定义开始
42
+ ****************************************************
43
+ */
44
+ interface SlotComponentConfig {
45
+ bindValue: string;
46
+ componentName: string;
47
+ componentProps: {
48
+ [key: string]: any;
49
+ icon?: string;
50
+ };
51
+ }
52
+ interface SlotItem {
53
+ componentConfig: SlotComponentConfig;
54
+ type: 'component';
55
+ }
56
+ /**
57
+ * 可扩展的插槽类型
58
+ * 支持任意插槽名称(如prefix、suffix、prepend、append等)
59
+ * 每个插槽值均为SlotItem类型
60
+ */
61
+ interface SlotsType {
62
+ [key: string]: SlotItem;
63
+ }
64
+ /**
65
+ ****************************************************
66
+ 组件插槽支持类型定义结束
67
+ ****************************************************
68
+ */
69
+ /**
70
+ ****************************************************
71
+ 表单验证规则类型定义开始
72
+ ****************************************************
73
+ */
74
+ /**
75
+ * 必填项验证规则(含required属性)
76
+ */
77
+ export type RequiredRule = StrictProps<{
78
+ message: string;
79
+ required: boolean;
80
+ trigger: 'blur' | 'change' | ('blur' | 'change')[];
81
+ }>;
82
+ /**
83
+ * 模式验证规则(含pattern和validatorType属性)
84
+ */
85
+ export type PatternRule = StrictProps<{
86
+ message: string;
87
+ pattern: RegExp;
88
+ trigger: 'blur' | 'change' | ('blur' | 'change')[];
89
+ validatorType?: ValidatorType;
90
+ }>;
91
+ /**
92
+ * 验证规则联合类型(支持多种规则类型,非单一混合类型)
93
+ * 可根据需要扩展更多规则类型(如自定义验证器规则等)
94
+ */
95
+ type RuleItem = PatternRule | RequiredRule;
96
+ /**
97
+ * 验证规则数组类型
98
+ */
99
+ type RulesType = RuleItem[];
100
+ /**
101
+ ****************************************************
102
+ 表单验证规则类型定义结束
103
+ ****************************************************
104
+ */
105
+ /**
106
+ ****************************************************
107
+ 依赖数据类型定义开始
108
+ ****************************************************
109
+ */
110
+ export type DependencyCondition = 'equals' | 'greaterThan' | 'includes' | 'lessThan' | 'notEquals' | 'notIncludes';
111
+ export interface DependencyRuleType {
112
+ fieldId: string;
113
+ fieldName: string;
114
+ condition: DependencyCondition;
115
+ value: any;
116
+ }
117
+ export interface DependencyRulesType {
118
+ operator: 'AND' | 'OR';
119
+ rules?: Array<DependencyRuleType>;
120
+ }
121
+ /**
122
+ ****************************************************
123
+ 依赖数据类型定义结束
124
+ ****************************************************
125
+ */
126
+ export type TableFieldType = 'tableDynamic' | 'tableHrCertificateInfo' | 'tableHrEducation' | 'tableHrFamilyMembers' | 'tableHrLanguageSpecialty' | 'tableHrProjectExperience' | 'tableHrSkillSpecialty' | 'tableHrTrainingExperience' | 'tableHrWorkExperience' | 'tableSimple';
127
+ export declare namespace ComponentProps {
128
+ type None = StrictProps<Record<string, never>>;
129
+ type CheckboxGroupProps = StrictProps<Record<string, never>>;
130
+ type SliderProps = StrictProps<Record<string, never>>;
131
+ type CascaderProps = StrictProps<{
132
+ allowClear: boolean;
133
+ placeholder: string;
134
+ }>;
135
+ type InputProps = StrictProps<{
136
+ addonAfter: string | undefined;
137
+ allowClear: boolean;
138
+ maxlength: number;
139
+ placeholder: string;
140
+ showCount: boolean;
141
+ }>;
142
+ type InputNumberProps = StrictProps<{
143
+ addonAfter?: string;
144
+ max: number;
145
+ min: number;
146
+ placeholder: string;
147
+ precision: number;
148
+ prefix?: string;
149
+ step: number;
150
+ }>;
151
+ type InputPasswordProps = StrictProps<InputProps & {
152
+ visibilityToggle: boolean;
153
+ }>;
154
+ type TextareaProps = StrictProps<{
155
+ allowClear: boolean;
156
+ autoSize: boolean;
157
+ maxlength: number;
158
+ placeholder: string;
159
+ showCount: boolean;
160
+ }>;
161
+ type RadioGroupProps = StrictProps<{
162
+ optionType: 'button' | 'default';
163
+ }>;
164
+ type SelectProps = StrictProps<{
165
+ allowClear: boolean;
166
+ mode: SelectModeType;
167
+ placeholder: string;
168
+ placement: SelectPlacementType;
169
+ style?: CSSProperties;
170
+ }>;
171
+ type SwitchProps = StrictProps<{
172
+ checkedChildren: string;
173
+ checkedValue: boolean | number | string;
174
+ unCheckedChildren: string;
175
+ uncheckedValue: boolean | number | string;
176
+ }>;
177
+ type RateProps = StrictProps<{
178
+ allowClear: boolean;
179
+ allowHalf: boolean;
180
+ character: string | undefined;
181
+ count: number;
182
+ }>;
183
+ type DatePickerProps = StrictProps<{
184
+ allowClear: boolean;
185
+ format: DatePickerFormatType;
186
+ picker: DatePickerType;
187
+ placeholder: string;
188
+ showTime: boolean;
189
+ valueFormat: DatePickerFormatType;
190
+ }>;
191
+ type RangePickerProps = StrictProps<{
192
+ allowClear: boolean;
193
+ format: DatePickerFormatType;
194
+ picker: DatePickerType;
195
+ placeholder: [string, string];
196
+ showTime: boolean;
197
+ valueFormat: DatePickerFormatType;
198
+ }>;
199
+ type TimeRangePickerProps = StrictProps<{
200
+ allowClear: boolean;
201
+ format: TimerPickerFormatType;
202
+ placeholder: [string, string];
203
+ valueFormat: TimerPickerFormatType;
204
+ }>;
205
+ type TimePickerProps = StrictProps<{
206
+ allowClear: boolean;
207
+ format: TimerPickerFormatType;
208
+ placeholder: string;
209
+ showNow: boolean;
210
+ valueFormat: TimerPickerFormatType;
211
+ }>;
212
+ type UploadProps = StrictProps<{
213
+ accept: string;
214
+ directory: boolean;
215
+ listType: UploadListType;
216
+ maxCount: number;
217
+ multiple: boolean;
218
+ name: 'file' | string;
219
+ }>;
220
+ type UploadDraggerProps = UploadProps;
221
+ }
222
+ interface ComponentMap {
223
+ Cascader: {
224
+ DataType: 'cascader';
225
+ ModelValue: (number | string)[] | null;
226
+ NeedOptions: true;
227
+ Props: ComponentProps.CascaderProps;
228
+ };
229
+ CheckboxGroup: {
230
+ ModelValue: (number | string)[];
231
+ NeedOptions: true;
232
+ Props: ComponentProps.CheckboxGroupProps;
233
+ };
234
+ DatePicker: {
235
+ DataType: 'date';
236
+ ModelValue: null | string;
237
+ NeedOptions: false;
238
+ Props: ComponentProps.DatePickerProps;
239
+ };
240
+ Input: {
241
+ DataType: 'string';
242
+ ModelValue: string;
243
+ NeedOptions: false;
244
+ Props: ComponentProps.InputProps;
245
+ };
246
+ InputNumber: {
247
+ DataType: 'number';
248
+ ModelValue: number | undefined;
249
+ NeedOptions: false;
250
+ Props: ComponentProps.InputNumberProps;
251
+ };
252
+ InputPassword: {
253
+ ModelValue: string;
254
+ NeedOptions: false;
255
+ Props: ComponentProps.InputPasswordProps;
256
+ };
257
+ none: {
258
+ ModelValue: object;
259
+ NeedOptions: false;
260
+ Props: ComponentProps.None;
261
+ };
262
+ RadioGroup: {
263
+ ModelValue: null | number | string;
264
+ NeedOptions: true;
265
+ Props: ComponentProps.RadioGroupProps;
266
+ };
267
+ RangePicker: {
268
+ ModelValue: [string, string] | null;
269
+ NeedOptions: false;
270
+ Props: ComponentProps.RangePickerProps;
271
+ };
272
+ Rate: {
273
+ ModelValue: null | number;
274
+ NeedOptions: false;
275
+ Props: ComponentProps.RateProps;
276
+ };
277
+ Select: {
278
+ DataType: 'select';
279
+ ModelValue: number | string | undefined;
280
+ NeedOptions: true;
281
+ Props: ComponentProps.SelectProps;
282
+ };
283
+ Slider: {
284
+ ModelValue: null | number;
285
+ NeedOptions: false;
286
+ Props: ComponentProps.SliderProps;
287
+ };
288
+ Switch: {
289
+ ModelValue: boolean;
290
+ NeedOptions: false;
291
+ Props: ComponentProps.SwitchProps;
292
+ };
293
+ Textarea: {
294
+ DataType: 'textarea';
295
+ ModelValue: string;
296
+ NeedOptions: false;
297
+ Props: ComponentProps.TextareaProps;
298
+ };
299
+ TimePicker: {
300
+ DataType: 'time';
301
+ ModelValue: null | string;
302
+ NeedOptions: false;
303
+ Props: ComponentProps.TimePickerProps;
304
+ };
305
+ TimeRangePicker: {
306
+ ModelValue: [string, string] | null;
307
+ NeedOptions: false;
308
+ Props: ComponentProps.TimeRangePickerProps;
309
+ };
310
+ Upload: {
311
+ ModelValue: [string, string] | null;
312
+ NeedOptions: false;
313
+ Props: ComponentProps.UploadProps;
314
+ };
315
+ UploadDragger: {
316
+ ModelValue: [string, string] | null;
317
+ NeedOptions: false;
318
+ Props: ComponentProps.UploadDraggerProps;
319
+ };
320
+ }
321
+ type ValidComponentName = keyof ComponentMap;
322
+ type ValidColumnComponentName = 'Cascader' | 'DatePicker' | 'Input' | 'InputNumber' | 'Select' | 'Textarea' | 'TimePicker';
323
+ export type BaseSchemaType<CN extends ValidComponentName, Tag extends ItemTypeTag> = StrictRootType<{
324
+ actions?: {
325
+ deleteable?: boolean;
326
+ editable?: boolean;
327
+ sortable?: boolean;
328
+ };
329
+ binding: {
330
+ [key: string]: any | any[];
331
+ columnCode: string;
332
+ dictCode: string;
333
+ tableCode: string;
334
+ };
335
+ colProp: ColProp;
336
+ componentName: CN;
337
+ componentProps: ComponentMap[CN]['Props'];
338
+ dependencies?: DependencyRulesType;
339
+ description: string;
340
+ dragGroupType: string;
341
+ dragItemType: Tag;
342
+ fieldType: string;
343
+ icon: string;
344
+ id: string;
345
+ isDraggable?: boolean;
346
+ isEndNode: boolean;
347
+ label: string;
348
+ labelProp?: CN extends 'none' ? LabelProp : never;
349
+ modelValue: ComponentMap[CN]['ModelValue'];
350
+ name: string;
351
+ required: boolean;
352
+ visible: boolean;
353
+ }>;
354
+ export type ItemTypeTag = 'column' | 'container' | 'field' | 'table' | 'upload';
355
+ type WithOptions<CN extends ValidComponentName> = ComponentMap[CN]['NeedOptions'] extends true ? {
356
+ options: Option[];
357
+ } : {
358
+ options?: never;
359
+ };
360
+ export type BaseColumnSchemaType<CN extends ValidColumnComponentName> = StrictRootType<{
361
+ actions?: {
362
+ deleteable?: boolean;
363
+ editable?: boolean;
364
+ sortable?: boolean;
365
+ };
366
+ binding: {
367
+ [key: string]: any | any[];
368
+ columnCode: string;
369
+ dictCode: string;
370
+ tableCode: string;
371
+ };
372
+ children?: never;
373
+ colProp: ColProp;
374
+ componentName: CN;
375
+ componentProps: ComponentMap[CN]['Props'];
376
+ dependencies?: DependencyRulesType;
377
+ description: string;
378
+ dragGroupType: 'column';
379
+ dragItemType: 'column';
380
+ fieldType: 'column';
381
+ icon: string;
382
+ id: string;
383
+ isDraggable?: boolean;
384
+ isEndNode: boolean;
385
+ label: string;
386
+ labelProp?: never;
387
+ modelValue: ComponentMap[CN]['ModelValue'];
388
+ name: string;
389
+ required: boolean;
390
+ rules?: RulesType;
391
+ slots?: SlotsType;
392
+ type: ComponentMap[CN]['DataType'];
393
+ validatorType: ValidatorType;
394
+ visible: boolean;
395
+ }>;
396
+ export type InputColumnSchemaType = BaseColumnSchemaType<'Input'> & WithOptions<'Input'>;
397
+ export type InputNumberColumnSchemaType = BaseColumnSchemaType<'InputNumber'> & WithOptions<'InputNumber'>;
398
+ export type SelectColumnSchemaType = BaseColumnSchemaType<'Select'> & WithOptions<'Select'>;
399
+ export type DatePickerColumnSchemaType = BaseColumnSchemaType<'DatePicker'> & WithOptions<'DatePicker'>;
400
+ export type TimePickerColumnSchemaType = BaseColumnSchemaType<'TimePicker'> & WithOptions<'TimePicker'>;
401
+ export type CascaderColumnSchemaType = BaseColumnSchemaType<'Cascader'> & WithOptions<'Cascader'>;
402
+ export type TextareaColumnSchemaType = BaseColumnSchemaType<'Textarea'> & WithOptions<'Textarea'>;
403
+ export type ColumnSchemaType = CascaderColumnSchemaType | DatePickerColumnSchemaType | InputColumnSchemaType | InputNumberColumnSchemaType | SelectColumnSchemaType | TextareaColumnSchemaType | TimePickerColumnSchemaType;
404
+ export type TableSchemaType = BaseSchemaType<'none', 'table'> & StrictRootType<{
405
+ children: Array<ColumnSchemaType>;
406
+ fieldType: TableFieldType;
407
+ isEndNode: true;
408
+ labelProp: LabelProp;
409
+ }> & WithOptions<'none'>;
410
+ export type FieldSchemaType = {
411
+ [CN in ValidComponentName]: CN extends 'none' ? never : BaseSchemaType<CN, 'field'> & StrictRootType<{
412
+ children?: never;
413
+ fieldType: Exclude<string, 'column' | 'form' | 'table' | 'upload'>;
414
+ isEndNode: true;
415
+ rules?: RulesType;
416
+ slots?: SlotsType;
417
+ validatorType: ValidatorType;
418
+ }> & WithOptions<CN>;
419
+ }[ValidComponentName];
420
+ export type UploadSchemaType = {
421
+ uploadSetting: {
422
+ /**
423
+ * 像素
424
+ */
425
+ pixel: {
426
+ height: number;
427
+ width: number;
428
+ };
429
+ size: number;
430
+ spec: number;
431
+ };
432
+ } & BaseSchemaType<'Upload' | 'UploadDragger', 'upload'> & StrictRootType<{
433
+ children?: never;
434
+ fieldType: 'hrUploadAvatar' | 'hrUploadDegreeFile' | 'hrUploadEducationFile' | 'hrUploadIdCardBackend' | 'hrUploadIdCardFrontend' | 'uploadFile' | 'uploadFiles' | 'uploadOthers' | 'uploadPicture' | 'uploadPictures';
435
+ isEndNode: true;
436
+ labelProp?: never;
437
+ }> & WithOptions<'none'>;
438
+ export type ContainerSchemaType = BaseSchemaType<'none', 'container'> & StrictRootType<{
439
+ children: Array<FieldSchemaType> | TableSchemaType[] | UploadSchemaType[];
440
+ fieldType: 'form' | 'table' | 'upload';
441
+ isEndNode: false;
442
+ labelProp: LabelProp;
443
+ }> & WithOptions<'none'>;
444
+ export type JsonSchemaType = ContainerSchemaType | FieldSchemaType | TableSchemaType | UploadSchemaType;
445
+ export interface PanelListType<T> {
446
+ title: string;
447
+ hint: string;
448
+ items: T[];
449
+ }
450
+ export type DynamicRowVO<T extends Array<ColumnSchemaType>> = {
451
+ [K in T[number]['id']]: T[number] extends {
452
+ name: K;
453
+ type: infer Type;
454
+ } ? Type extends 'number' ? number | string : Type extends 'time' ? string : Type extends 'date' ? string : Type extends 'switch' ? boolean : Type extends 'cascader' | 'select' ? number | number[] | string | string[] : string : string;
455
+ };
456
+ export type DynamicGridEditRender<T extends ColumnSchemaType> = T['type'] extends 'string' ? VxeColumnPropTypes.EditRender<DynamicRowVO<any>, ComponentProps.InputProps> : T['type'] extends 'number' ? VxeColumnPropTypes.EditRender<DynamicRowVO<any>, ComponentProps.InputNumberProps> : T['type'] extends 'date' ? VxeColumnPropTypes.EditRender<DynamicRowVO<any>, ComponentProps.DatePickerProps> : T['type'] extends 'time' ? VxeColumnPropTypes.EditRender<DynamicRowVO<any>, ComponentProps.TimePickerProps> : T['type'] extends 'select' ? VxeColumnPropTypes.EditRender<DynamicRowVO<any>, ComponentProps.SelectProps> : T['type'] extends 'cascader' ? VxeColumnPropTypes.EditRender<DynamicRowVO<any>, ComponentProps.CascaderProps> : T['type'] extends 'textarea' ? VxeColumnPropTypes.EditRender<DynamicRowVO<any>, ComponentProps.TextareaProps> : never;
457
+ export type ColumnComponentProps = ComponentProps.CascaderProps | ComponentProps.DatePickerProps | ComponentProps.InputNumberProps | ComponentProps.InputProps | ComponentProps.SelectProps | ComponentProps.TextareaProps | ComponentProps.TimePickerProps;
458
+ export type DynamicGridProps<T extends Array<ColumnSchemaType>> = VxeGridProps<DynamicRowVO<T>>;
459
+ export type DynamicFormEditRender<T extends ColumnSchemaType> = T['type'] extends 'string' ? VxeFormItemPropTypes.ItemRender<DynamicRowVO<any>, ComponentProps.InputProps> : T['type'] extends 'number' ? VxeFormItemPropTypes.ItemRender<DynamicRowVO<any>, ComponentProps.InputNumberProps> : T['type'] extends 'date' ? VxeFormItemPropTypes.ItemRender<DynamicRowVO<any>, ComponentProps.DatePickerProps> : T['type'] extends 'time' ? VxeFormItemPropTypes.ItemRender<DynamicRowVO<any>, ComponentProps.TimePickerProps> : T['type'] extends 'select' ? VxeFormItemPropTypes.ItemRender<DynamicRowVO<any>, ComponentProps.SelectProps> : T['type'] extends 'cascader' ? VxeFormItemPropTypes.ItemRender<DynamicRowVO<any>, ComponentProps.CascaderProps> : T['type'] extends 'textarea' ? VxeFormItemPropTypes.ItemRender<DynamicRowVO<any>, ComponentProps.TextareaProps> : never;
460
+ export type DynamicFormProps<T extends Array<ColumnSchemaType>> = VxeFormProps<DynamicRowVO<T>>;
461
+ export {};
@@ -0,0 +1,4 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare function cn(...inputs: ClassValue[]): string;
4
+ export { cn };
@@ -0,0 +1,20 @@
1
+ import { FieldSchemaType, JsonSchemaType, Option as SelectOption } from '../types';
2
+
3
+ /**
4
+ * 递归提取所有类型为field的表单项
5
+ * @param items 表单项数组
6
+ * @returns 提取出的field项数组
7
+ */
8
+ export declare const extractFields: (items: JsonSchemaType[]) => Array<FieldSchemaType>;
9
+ /**
10
+ * 将FormFieldItem转换为ProcessedField
11
+ * @param field 原始字段项
12
+ * @returns 处理后的字段项
13
+ */
14
+ export declare const convertToProcessedField: (field: FieldSchemaType) => SelectOption;
15
+ /**
16
+ * 处理表单数据,提取并转换所有field项
17
+ * @param formData 原始表单数据
18
+ * @returns 处理后的字段数组
19
+ */
20
+ export declare const processFormData: (formData: JsonSchemaType[]) => SelectOption[];
@@ -0,0 +1,7 @@
1
+ export * from './inference';
2
+ export * from './types';
3
+ export * from './validator';
4
+ export * from './with-install';
5
+ export * from './convert';
6
+ export * from './cn';
7
+ export * from './tableUtils';
@@ -0,0 +1,92 @@
1
+ import { isFunction, isObject, isString } from '@vue/shared';
2
+
3
+ /**
4
+ * 检查传入的值是否为undefined。
5
+ *
6
+ * @param {unknown} value 要检查的值。
7
+ * @returns {boolean} 如果值是undefined,返回true,否则返回false。
8
+ */
9
+ declare function isUndefined(value?: unknown): value is undefined;
10
+ /**
11
+ * 检查传入的值是否为boolean
12
+ * @param value
13
+ * @returns 如果值是布尔值,返回true,否则返回false。
14
+ */
15
+ declare function isBoolean(value: unknown): value is boolean;
16
+ /**
17
+ * 检查传入的值是否为空。
18
+ *
19
+ * 以下情况将被认为是空:
20
+ * - 值为null。
21
+ * - 值为undefined。
22
+ * - 值为一个空字符串。
23
+ * - 值为一个长度为0的数组。
24
+ * - 值为一个没有元素的Map或Set。
25
+ * - 值为一个没有属性的对象。
26
+ *
27
+ * @param {T} value 要检查的值。
28
+ * @returns {boolean} 如果值为空,返回true,否则返回false。
29
+ */
30
+ declare function isEmpty<T = unknown>(value?: T): value is T;
31
+ /**
32
+ * 检查传入的字符串是否为有效的HTTP或HTTPS URL。
33
+ *
34
+ * @param {string} url 要检查的字符串。
35
+ * @return {boolean} 如果字符串是有效的HTTP或HTTPS URL,返回true,否则返回false。
36
+ */
37
+ declare function isHttpUrl(url?: string): boolean;
38
+ /**
39
+ * 检查传入的值是否为window对象。
40
+ *
41
+ * @param {any} value 要检查的值。
42
+ * @returns {boolean} 如果值是window对象,返回true,否则返回false。
43
+ */
44
+ declare function isWindow(value: any): value is Window;
45
+ /**
46
+ * 检查当前运行环境是否为Mac OS。
47
+ *
48
+ * 这个函数通过检查navigator.userAgent字符串来判断当前运行环境。
49
+ * 如果userAgent字符串中包含"macintosh"或"mac os x"(不区分大小写),则认为当前环境是Mac OS。
50
+ *
51
+ * @returns {boolean} 如果当前环境是Mac OS,返回true,否则返回false。
52
+ */
53
+ declare function isMacOs(): boolean;
54
+ /**
55
+ * 检查当前运行环境是否为Windows OS。
56
+ *
57
+ * 这个函数通过检查navigator.userAgent字符串来判断当前运行环境。
58
+ * 如果userAgent字符串中包含"windows"或"win32"(不区分大小写),则认为当前环境是Windows OS。
59
+ *
60
+ * @returns {boolean} 如果当前环境是Windows OS,返回true,否则返回false。
61
+ */
62
+ declare function isWindowsOs(): boolean;
63
+ /**
64
+ * 检查传入的值是否为数字
65
+ * @param value
66
+ */
67
+ declare function isNumber(value: any): value is number;
68
+ /**
69
+ * Returns the first value in the provided list that is neither `null` nor `undefined`.
70
+ *
71
+ * This function iterates over the input values and returns the first one that is
72
+ * not strictly equal to `null` or `undefined`. If all values are either `null` or
73
+ * `undefined`, it returns `undefined`.
74
+ *
75
+ * @template T - The type of the input values.
76
+ * @param {...(T | null | undefined)[]} values - A list of values to evaluate.
77
+ * @returns {T | undefined} - The first value that is not `null` or `undefined`, or `undefined` if none are found.
78
+ *
79
+ * @example
80
+ * // Returns 42 because it is the first non-null, non-undefined value.
81
+ * getFirstNonNullOrUndefined(undefined, null, 42, 'hello'); // 42
82
+ *
83
+ * @example
84
+ * // Returns 'hello' because it is the first non-null, non-undefined value.
85
+ * getFirstNonNullOrUndefined(null, undefined, 'hello', 123); // 'hello'
86
+ *
87
+ * @example
88
+ * // Returns undefined because all values are either null or undefined.
89
+ * getFirstNonNullOrUndefined(undefined, null); // undefined
90
+ */
91
+ declare function getFirstNonNullOrUndefined<T>(...values: (null | T | undefined)[]): T | undefined;
92
+ export { getFirstNonNullOrUndefined, isBoolean, isEmpty, isFunction, isHttpUrl, isMacOs, isNumber, isObject, isString, isUndefined, isWindow, isWindowsOs, };
@@ -0,0 +1,29 @@
1
+ import { ColumnDataType, ColumnSchemaType, DynamicFormEditRender, DynamicFormProps, DynamicGridEditRender, DynamicGridProps, DynamicRowVO, PatternRule, RequiredRule } from '../types';
2
+
3
+ export declare const generateMockData: <T extends ColumnSchemaType[]>(fields: T, count: number) => DynamicRowVO<T>[];
4
+ export declare const generateMockRow: <T extends ColumnSchemaType[]>(fields: T) => DynamicRowVO<T>;
5
+ export declare const generateEditRender: <T extends ColumnSchemaType>(field: T) => DynamicGridEditRender<T>;
6
+ export declare const generateItemRender: <T extends ColumnSchemaType>(field: T) => DynamicFormEditRender<T>;
7
+ export declare const generateFormItems: <T extends ColumnSchemaType[]>(fields: T) => {
8
+ field: string;
9
+ title: string;
10
+ span: number;
11
+ itemRender: never;
12
+ }[];
13
+ export declare const generateFormData: <T extends ColumnSchemaType[]>(fields: T) => Record<string, any>;
14
+ export declare const generateGridColumns: <T extends ColumnSchemaType[]>(fields: T, readonlyMode?: boolean) => {
15
+ [key: string]: any;
16
+ }[];
17
+ export declare const generateEditRules: <T extends ColumnSchemaType[]>(fields: T) => Record<string, (RequiredRule | PatternRule)[]>;
18
+ export declare const generateFormOptions: <T extends ColumnSchemaType[]>(fields: T) => DynamicFormProps<T>;
19
+ export declare const generateGridOptions: <T extends ColumnSchemaType[]>(fields: T, initialData: DynamicRowVO<T>[], editMode?: boolean, rowEditMode?: boolean, readonlyMode?: boolean) => DynamicGridProps<T>;
20
+ export declare const fetchTreeData: (url: string) => Promise<{
21
+ label: string;
22
+ value: string;
23
+ children: {
24
+ label: string;
25
+ value: string;
26
+ }[];
27
+ }[]>;
28
+ export declare const generateEmptyRow: <T extends ColumnSchemaType[]>(fields: T) => DynamicRowVO<T>;
29
+ export declare const getColumnByDataType: (type: ColumnDataType) => ColumnSchemaType;
@@ -0,0 +1,6 @@
1
+ import { AppContext, Plugin } from 'vue';
2
+
3
+ export type SFCWithInstall<T> = T & Plugin;
4
+ export type SFCInstallWithContext<T> = SFCWithInstall<T> & {
5
+ _context: AppContext | null;
6
+ };
@@ -0,0 +1,3 @@
1
+ import { PatternRule, ValidatorType } from '../types';
2
+
3
+ export declare function getValidatorConfig(type: ValidatorType): PatternRule;
@@ -0,0 +1,4 @@
1
+ import { SFCInstallWithContext, SFCWithInstall } from './types';
2
+
3
+ export declare function withInstall<T, E extends Record<string, any>>(main: T, extra?: E): SFCWithInstall<T> & E;
4
+ export declare function withInstallFunction<T>(fn: T, name: string): SFCInstallWithContext<T>;