@spacego/fe-components 0.1.0 → 0.2.0

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 (205) hide show
  1. package/README.md +37 -37
  2. package/lib/_virtual/Resizable.js +4 -0
  3. package/lib/_virtual/ResizableBox.js +4 -0
  4. package/lib/_virtual/index.js +5 -0
  5. package/lib/_virtual/index2.js +4 -0
  6. package/lib/_virtual/index3.js +4 -0
  7. package/lib/_virtual/index4.js +4 -0
  8. package/lib/_virtual/propTypes.js +4 -0
  9. package/lib/_virtual/react-is.development.js +4 -0
  10. package/lib/_virtual/react-is.production.min.js +4 -0
  11. package/lib/_virtual/utils.js +4 -0
  12. package/lib/fe-auto-complete/index.js +6 -0
  13. package/lib/fe-button/index.js +27 -0
  14. package/lib/fe-cascader/index.js +19 -0
  15. package/lib/fe-checkbox/index.js +6 -0
  16. package/lib/fe-checkbox-group/index.js +6 -0
  17. package/lib/fe-date-picker/index.js +19 -0
  18. package/lib/fe-description-render/index.js +43 -0
  19. package/lib/fe-descriptions/index.js +6 -0
  20. package/lib/fe-empty/index.js +6 -0
  21. package/lib/fe-error-block/index.js +6 -0
  22. package/lib/fe-form/fe-form/index.js +133 -0
  23. package/lib/fe-form/fe-form-auto-complete/index.js +57 -0
  24. package/lib/fe-form/fe-form-btn-group/index.js +29 -0
  25. package/lib/fe-form/fe-form-cascader/index.js +25 -0
  26. package/lib/fe-form/fe-form-checkbox-group/index.js +21 -0
  27. package/lib/fe-form/fe-form-date-picker/index.js +75 -0
  28. package/lib/fe-form/fe-form-date-range-picker/index.js +99 -0
  29. package/lib/fe-form/fe-form-input/index.js +53 -0
  30. package/lib/fe-form/fe-form-input-input/index.js +63 -0
  31. package/lib/fe-form/fe-form-input-number/index.js +43 -0
  32. package/lib/fe-form/fe-form-item/index.js +46 -0
  33. package/lib/fe-form/fe-form-label/index.js +20 -0
  34. package/lib/fe-form/fe-form-radio/index.js +21 -0
  35. package/lib/fe-form/fe-form-render/index.js +33 -0
  36. package/lib/fe-form/fe-form-rich-text/index.js +25 -0
  37. package/lib/fe-form/fe-form-select/index.js +93 -0
  38. package/lib/fe-form/fe-form-switch/index.js +21 -0
  39. package/lib/fe-form/fe-form-text/index.js +20 -0
  40. package/lib/fe-form/fe-form-text-area/index.js +24 -0
  41. package/lib/fe-form/fe-form-time-picker/index.js +21 -0
  42. package/lib/fe-form/fe-form-upload/index.js +63 -0
  43. package/lib/fe-form/utils/index.js +28 -0
  44. package/lib/fe-input/index.js +32 -0
  45. package/lib/fe-input-number/index.js +19 -0
  46. package/lib/fe-layouts/auth-layout/index.js +35 -17
  47. package/lib/fe-layouts/basics-layout/index.js +2 -2
  48. package/lib/fe-layouts/layout.js +34 -16
  49. package/lib/fe-link/index.js +23 -0
  50. package/lib/fe-map/index.js +263 -0
  51. package/lib/fe-modal/index.js +85 -0
  52. package/lib/fe-pagination/index.js +6 -0
  53. package/lib/fe-panel/fe-panel-toolbar.js +40 -0
  54. package/lib/fe-panel/index.js +49 -0
  55. package/lib/fe-panel/use-panel-context.js +9 -0
  56. package/lib/fe-permission/index.js +12 -0
  57. package/lib/fe-permission-provider/index.js +29 -0
  58. package/lib/fe-radio/index.js +11 -0
  59. package/lib/fe-radio-group/index.js +6 -0
  60. package/lib/fe-rich-text/index.js +293 -0
  61. package/lib/fe-select/index.js +24 -0
  62. package/lib/fe-switch/index.js +6 -0
  63. package/lib/fe-table/fe-edit-table/index.js +39 -0
  64. package/lib/fe-table/fe-edit-table-cell/index.js +63 -0
  65. package/lib/fe-table/fe-head-title/index.js +9 -0
  66. package/lib/fe-table/fe-normal-table/index.js +192 -0
  67. package/lib/fe-table/fe-sub-table/index.js +74 -0
  68. package/lib/fe-table/fe-table/index.js +7 -0
  69. package/lib/fe-table/fe-table-alert/index.js +42 -0
  70. package/lib/fe-table/fe-table-link/index.js +87 -0
  71. package/lib/fe-table/fe-table-render/index.js +56 -0
  72. package/lib/fe-table/fe-table-setting/index.js +165 -0
  73. package/lib/fe-table/fe-table-toolbar/index.js +63 -0
  74. package/lib/fe-table/fe-table-utils/index.js +157 -0
  75. package/lib/fe-table/type/table.d.js +4 -0
  76. package/lib/fe-table/use-edit-table/index.js +151 -0
  77. package/lib/fe-table/use-pagination/index.js +59 -0
  78. package/lib/fe-table/use-sub-table/index.js +23 -0
  79. package/lib/fe-table/use-table/index.js +177 -0
  80. package/lib/fe-table/use-table-columns/index.js +53 -0
  81. package/lib/fe-table/use-table-form-context/index.js +14 -0
  82. package/lib/fe-table/use-table-selection/index.js +53 -0
  83. package/lib/fe-text-area/index.js +21 -0
  84. package/lib/fe-time-picker/index.js +19 -0
  85. package/lib/fe-upload/index.js +182 -0
  86. package/lib/fe-upload/upload.constant.js +91 -0
  87. package/lib/fe-upload-atomic/index.js +6 -0
  88. package/lib/fe-upload-crop/index.js +207 -0
  89. package/lib/hooks/{use-auth.hook.js → use-auth.hook/index.js} +3 -3
  90. package/lib/hooks/use-form/index.js +38 -0
  91. package/lib/hooks/use-permission.hook/index.js +9 -0
  92. package/lib/index.css +7 -1
  93. package/lib/index.js +161 -42
  94. package/lib/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@18.3.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +56 -0
  95. package/lib/node_modules/.pnpm/@dnd-kit_core@6.3.1_nnrd3gsncyragczmpvfhocinkq/node_modules/@dnd-kit/core/dist/core.esm.js +2344 -0
  96. package/lib/node_modules/.pnpm/@dnd-kit_modifiers@9.0.0_55ztycxty3xzw7t4rzpvix55vq/node_modules/@dnd-kit/modifiers/dist/modifiers.esm.js +13 -0
  97. package/lib/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_55ztycxty3xzw7t4rzpvix55vq/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +439 -0
  98. package/lib/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@18.3.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +235 -0
  99. package/lib/node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js +54 -0
  100. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js +54 -0
  101. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js +52 -0
  102. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js +329 -0
  103. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +17 -0
  104. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js +10 -0
  105. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/has.js +7 -0
  106. package/lib/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js +95 -0
  107. package/lib/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js +78 -0
  108. package/lib/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +10 -0
  109. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/Resizable.js +233 -0
  110. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/ResizableBox.js +164 -0
  111. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/propTypes.js +113 -0
  112. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/utils.js +56 -0
  113. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/index.js +12 -0
  114. package/lib/store/modules/layout-config.store.js +83 -65
  115. package/lib/store/modules/theme.store.js +36 -18
  116. package/lib/types/fe-auto-complete/index.d.ts +2 -0
  117. package/lib/types/fe-button/index.d.ts +16 -0
  118. package/lib/types/fe-cascader/index.d.ts +7 -0
  119. package/lib/types/fe-checkbox/index.d.ts +6 -0
  120. package/lib/types/fe-checkbox-group/index.d.ts +7 -0
  121. package/lib/types/fe-date-picker/index.d.ts +3 -0
  122. package/lib/types/fe-description-render/index.d.ts +31 -0
  123. package/lib/types/fe-descriptions/index.d.ts +2 -0
  124. package/lib/types/fe-empty/index.d.ts +2 -0
  125. package/lib/types/fe-error-block/index.d.ts +6 -0
  126. package/lib/types/fe-form/fe-form/index.d.ts +356 -0
  127. package/lib/types/fe-form/fe-form-auto-complete/index.d.ts +3 -0
  128. package/lib/types/fe-form/fe-form-btn-group/index.d.ts +3 -0
  129. package/lib/types/fe-form/fe-form-cascader/index.d.ts +3 -0
  130. package/lib/types/fe-form/fe-form-checkbox-group/index.d.ts +3 -0
  131. package/lib/types/fe-form/fe-form-date-picker/index.d.ts +3 -0
  132. package/lib/types/fe-form/fe-form-date-range-picker/index.d.ts +3 -0
  133. package/lib/types/fe-form/fe-form-input/index.d.ts +3 -0
  134. package/lib/types/fe-form/fe-form-input-input/index.d.ts +3 -0
  135. package/lib/types/fe-form/fe-form-input-number/index.d.ts +3 -0
  136. package/lib/types/fe-form/fe-form-item/index.d.ts +70 -0
  137. package/lib/types/fe-form/fe-form-label/index.d.ts +45 -0
  138. package/lib/types/fe-form/fe-form-radio/index.d.ts +3 -0
  139. package/lib/types/fe-form/fe-form-render/index.d.ts +3 -0
  140. package/lib/types/fe-form/fe-form-rich-text/index.d.ts +3 -0
  141. package/lib/types/fe-form/fe-form-select/index.d.ts +3 -0
  142. package/lib/types/fe-form/fe-form-switch/index.d.ts +3 -0
  143. package/lib/types/fe-form/fe-form-text/index.d.ts +3 -0
  144. package/lib/types/fe-form/fe-form-text-area/index.d.ts +3 -0
  145. package/lib/types/fe-form/fe-form-time-picker/index.d.ts +3 -0
  146. package/lib/types/fe-form/fe-form-upload/index.d.ts +3 -0
  147. package/lib/types/fe-form/index.d.ts +26 -0
  148. package/lib/types/fe-form/utils/index.d.ts +24 -0
  149. package/lib/types/fe-input/index.d.ts +12 -0
  150. package/lib/types/fe-input-number/index.d.ts +2 -0
  151. package/lib/types/fe-layouts/context/global-context.d.ts +240 -238
  152. package/lib/types/fe-link/index.d.ts +6 -0
  153. package/lib/types/fe-map/index.d.ts +73 -0
  154. package/lib/types/fe-modal/index.d.ts +20 -0
  155. package/lib/types/fe-pagination/index.d.ts +2 -0
  156. package/lib/types/fe-panel/fe-panel-toolbar.d.ts +3 -0
  157. package/lib/types/fe-panel/index.d.ts +61 -0
  158. package/lib/types/fe-panel/panel-toolbar.d.ts +4 -0
  159. package/lib/types/fe-panel/use-panel-context.d.ts +6 -0
  160. package/lib/types/fe-permission/index.d.ts +10 -0
  161. package/lib/types/fe-permission-provider/index.d.ts +8 -0
  162. package/lib/types/fe-radio/index.d.ts +2 -0
  163. package/lib/types/fe-radio-group/index.d.ts +2 -0
  164. package/lib/types/fe-rich-text/index.d.ts +167 -0
  165. package/lib/types/fe-select/index.d.ts +8 -0
  166. package/lib/types/fe-switch/index.d.ts +2 -0
  167. package/lib/types/fe-table/fe-edit-table/index.d.ts +3 -0
  168. package/lib/types/fe-table/fe-edit-table-cell/index.d.ts +16 -0
  169. package/lib/types/fe-table/fe-head-title/index.d.ts +6 -0
  170. package/lib/types/fe-table/fe-normal-table/index.d.ts +3 -0
  171. package/lib/types/fe-table/fe-sub-table/index.d.ts +3 -0
  172. package/lib/types/fe-table/fe-table/index.d.ts +3 -0
  173. package/lib/types/fe-table/fe-table-alert/index.d.ts +13 -0
  174. package/lib/types/fe-table/fe-table-link/index.d.ts +12 -0
  175. package/lib/types/fe-table/fe-table-render/index.d.ts +13 -0
  176. package/lib/types/fe-table/fe-table-setting/index.d.ts +22 -0
  177. package/lib/types/fe-table/fe-table-toolbar/index.d.ts +18 -0
  178. package/lib/types/fe-table/fe-table-utils/index.d.ts +193 -0
  179. package/lib/types/fe-table/index.d.ts +6 -0
  180. package/lib/types/fe-table/type/table-context.d.ts +60 -0
  181. package/lib/types/fe-table/type/table.d.ts +797 -0
  182. package/lib/types/fe-table/use-edit-table/index.d.ts +6 -0
  183. package/lib/types/fe-table/use-pagination/index.d.ts +3 -0
  184. package/lib/types/fe-table/use-sub-table/index.d.ts +8 -0
  185. package/lib/types/fe-table/use-table/index.d.ts +3 -0
  186. package/lib/types/fe-table/use-table-columns/index.d.ts +47 -0
  187. package/lib/types/fe-table/use-table-form-context/index.d.ts +10 -0
  188. package/lib/types/fe-table/use-table-selection/index.d.ts +46 -0
  189. package/lib/types/fe-text-area/index.d.ts +4 -0
  190. package/lib/types/fe-time-picker/index.d.ts +3 -0
  191. package/lib/types/fe-upload/index.d.ts +85 -0
  192. package/lib/types/fe-upload/upload.constant.d.ts +39 -0
  193. package/lib/types/fe-upload-atomic/index.d.ts +2 -0
  194. package/lib/types/fe-upload-crop/index.d.ts +10 -0
  195. package/lib/types/hooks/index.d.ts +1 -0
  196. package/lib/types/hooks/use-descriptions/index.d.ts +3 -0
  197. package/lib/types/hooks/use-form/index.d.ts +16 -0
  198. package/lib/types/hooks/use-permission.hook/index.d.ts +10 -0
  199. package/lib/types/index.d.ts +32 -0
  200. package/lib/types/typings/index.d.ts +98 -59
  201. package/lib/types/typings/shims-axios.d.ts +38 -38
  202. package/package.json +79 -68
  203. /package/lib/hooks/{use-nprogress.hook.js → use-nprogress.hook/index.js} +0 -0
  204. /package/lib/types/hooks/{use-auth.hook.d.ts → use-auth.hook/index.d.ts} +0 -0
  205. /package/lib/types/hooks/{use-nprogress.hook.d.ts → use-nprogress.hook/index.d.ts} +0 -0
@@ -0,0 +1,10 @@
1
+ import { IBasicProps, IPermissionProps } from '../typings';
2
+ /**
3
+ * 权限控制组件属性
4
+ */
5
+ export interface FePermissionProps extends IPermissionProps, Pick<IBasicProps, 'children'> {
6
+ /**
7
+ * @name 权限字符串
8
+ */
9
+ permission?: string;
10
+ }
@@ -0,0 +1,8 @@
1
+ import { IPermissionStore } from '../hooks/use-permission.hook/index.d';
2
+ import { IBasicProps } from '../typings';
3
+ export interface FePermissionProviderProps extends Pick<IBasicProps, 'children'> {
4
+ /**
5
+ * @name 按钮权限字符串
6
+ */
7
+ btnPermissionList?: IPermissionStore['btnPermissionList'];
8
+ }
@@ -0,0 +1,2 @@
1
+ import { RadioProps } from 'antd';
2
+ export interface FeRadioProps extends RadioProps {}
@@ -0,0 +1,2 @@
1
+ import { RadioGroupProps } from 'antd';
2
+ export interface FeRadioGroupProps extends RadioGroupProps {}
@@ -0,0 +1,167 @@
1
+ import { default as Quill, BoundsStatic, DeltaStatic, RangeStatic, Sources } from 'quill';
2
+ import { CSSProperties, ReactElement } from 'react';
3
+ export type Value = string | DeltaStatic;
4
+ export type Range = RangeStatic | null;
5
+
6
+ export interface FeRichTextRef {
7
+ focus: () => void;
8
+ blur: () => void;
9
+ getEditor: () => Quill | null;
10
+ getUnprivilegedEditor: () => UnprivilegedEditor | null;
11
+ }
12
+
13
+ export interface UnprivilegedEditor {
14
+ getLength(): number;
15
+ getText(index?: number, length?: number): string;
16
+ getHTML(): string;
17
+ getDisplayHTML(): string;
18
+ getBounds(index: number, length?: number): BoundsStatic;
19
+ getSelection(focus?: boolean): RangeStatic;
20
+ getContents(index?: number, length?: number): DeltaStatic;
21
+ }
22
+
23
+ type uploadToolConfig = {
24
+ imageConfig?: any;
25
+ uploadFn: any;
26
+ };
27
+
28
+ export interface FeRichTextProps {
29
+ /**
30
+ * 编辑器的内容
31
+ */
32
+ value?: Value;
33
+
34
+ /**
35
+ * 非受控模式的默认值
36
+ */
37
+ defaultValue?: Value;
38
+
39
+ /**
40
+ * 内容变化时的回调函数
41
+ */
42
+ onChange?: (value: string, delta: DeltaStatic, source: Sources, editor: UnprivilegedEditor) => void;
43
+
44
+ /**
45
+ * 选择变化时的回调函数
46
+ */
47
+ onChangeSelection?: (selection: Range, source: Sources, editor: UnprivilegedEditor) => void;
48
+
49
+ /**
50
+ * 编辑器获取焦点回调
51
+ */
52
+ onFocus?: (selection: Range, source: Sources, editor: UnprivilegedEditor) => void;
53
+
54
+ /**
55
+ * 编辑器失去焦点回调
56
+ */
57
+ onBlur?: (previousSelection: Range, source: Sources, editor: UnprivilegedEditor) => void;
58
+
59
+ /**
60
+ * 编辑器高度
61
+ */
62
+ height?: number | string;
63
+
64
+ /**
65
+ * 是否只读
66
+ */
67
+ readOnly?: boolean;
68
+
69
+ /**
70
+ * 占位符文本
71
+ */
72
+ placeholder?: string;
73
+
74
+ /**
75
+ * 编辑区域边界
76
+ */
77
+ bounds?: string | HTMLElement;
78
+
79
+ /**
80
+ * 格式白名单
81
+ */
82
+ formats?: string[];
83
+
84
+ /**
85
+ * 自定义模块配置
86
+ */
87
+ modules?: Record<string, any>;
88
+
89
+ /**
90
+ * 自定义样式
91
+ */
92
+ style?: CSSProperties;
93
+
94
+ /**
95
+ * 自定义类名
96
+ */
97
+ className?: string;
98
+
99
+ /**
100
+ * HTML ID
101
+ */
102
+ id?: string;
103
+
104
+ /**
105
+ * Tab索引
106
+ */
107
+ tabIndex?: number;
108
+
109
+ /**
110
+ * Tab键对应的空格数量
111
+ */
112
+ tabSize?: number;
113
+
114
+ /**
115
+ * 自定义主题
116
+ */
117
+ theme?: 'snow' | 'bubble' | string;
118
+
119
+ /**
120
+ * 滚动容器
121
+ */
122
+ scrollingContainer?: string | HTMLElement;
123
+
124
+ /**
125
+ * 键盘事件
126
+ */
127
+ onKeyPress?: React.KeyboardEventHandler;
128
+ onKeyDown?: React.KeyboardEventHandler;
129
+ onKeyUp?: React.KeyboardEventHandler;
130
+
131
+ /**
132
+ * 保留空白符
133
+ */
134
+ preserveWhitespace?: boolean;
135
+
136
+ /**
137
+ * 自定义子元素
138
+ */
139
+ children?: ReactElement;
140
+
141
+ /**
142
+ * 上传配置
143
+ */
144
+ uploadToolConfig?: uploadToolConfig;
145
+ }
146
+
147
+ /**
148
+ * Quill Delta格式类型
149
+ */
150
+ export interface Delta {
151
+ ops?: {
152
+ insert?: any;
153
+ delete?: number;
154
+ retain?: number;
155
+ attributes?: Record<string, any>;
156
+ }[];
157
+ }
158
+
159
+ /**
160
+ * 工具栏配置选项
161
+ */
162
+ export interface ToolbarOptions {
163
+ container?: string | string[][] | HTMLElement;
164
+ handlers?: Record<string, any>;
165
+ }
166
+
167
+ declare const FeRichText: React.FC<FeRichTextProps>;
@@ -0,0 +1,8 @@
1
+ import { SelectProps } from 'antd';
2
+ export interface FeSelectProps extends SelectProps {
3
+ /**
4
+ * @name minWidth 最小宽度
5
+ * @default `200px`
6
+ */
7
+ minWidth?: string;
8
+ }
@@ -0,0 +1,2 @@
1
+ import { SwitchProps } from 'antd';
2
+ export interface FeSwitchProps extends SwitchProps {}
@@ -0,0 +1,3 @@
1
+ import { FeEditTableProps } from '../type/table.d';
2
+ declare const FeEditTable: (props: FeEditTableProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default FeEditTable;
@@ -0,0 +1,16 @@
1
+ import { ITableColumns } from '../type/table.d';
2
+ interface EditableCellProps extends ITableColumns {
3
+ dataIndex: string;
4
+ label: string;
5
+ editing: boolean;
6
+ record: any;
7
+ rowKey: string;
8
+ index: number;
9
+ children: React.ReactNode;
10
+ formRef: React.RefObject<any>;
11
+ onTableValueChange: (values: any) => void;
12
+ errorKey: Array<string>;
13
+ [key: string]: any;
14
+ }
15
+ declare const FeEditableCell: import('react').MemoExoticComponent<(props: EditableCellProps) => import("react/jsx-runtime").JSX.Element>;
16
+ export default FeEditableCell;
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ declare const FeHeadTitle: (props: {
3
+ title: ReactNode;
4
+ subTitle: ReactNode;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ export default FeHeadTitle;
@@ -0,0 +1,3 @@
1
+ import { FeTableProps } from '../type/table.d';
2
+ declare const FeNormalTable: (props: FeTableProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default FeNormalTable;
@@ -0,0 +1,3 @@
1
+ import { FeSubTableProps } from '../type/table.d';
2
+ declare const FeSubTable: ({ columns, record, config }: FeSubTableProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default FeSubTable;
@@ -0,0 +1,3 @@
1
+ import { FeFullTableProps } from '../type/table.d';
2
+ declare const FeTable: (props: FeFullTableProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default FeTable;
@@ -0,0 +1,13 @@
1
+ import { Key } from 'antd/es/table/interface';
2
+ export interface FeTableAlertProps<T = any> {
3
+ selectedRowKeys: Key[];
4
+ selectedRows: T[];
5
+ onCleanSelected: () => void;
6
+ tableAlertRender?: ((params: {
7
+ selectedRowKeys: Key[];
8
+ selectedRows: T[];
9
+ onCleanSelected: () => void;
10
+ }) => React.ReactNode) | false;
11
+ }
12
+ declare const FeTableAlert: <T extends Record<string, any> = any>(props: FeTableAlertProps<T>) => import("react/jsx-runtime").JSX.Element | null;
13
+ export default FeTableAlert;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { IColumnsHandleConfig } from '../type/table.d';
3
+
4
+
5
+ export type TFeTableLinkConfig<T> = IColumnsHandleConfig & { record: T; index: number };
6
+
7
+ export interface FeTableLinkProps<T> {
8
+ config: Array<TFeTableLinkConfig<T>>;
9
+ modal?: {
10
+ confirm: (config: { title?: string; content?: React.ReactNode; onOk?: () => void; onCancel?: () => void }) => void;
11
+ };
12
+ }
@@ -0,0 +1,13 @@
1
+ import { ITableColumns, TRenderType } from '../type/table.d';
2
+
3
+
4
+ export interface FeTableRenderProps<DataType extends Record<string, any>> {
5
+ value: any;
6
+ width: ITableColumns<DataType>['width'];
7
+ record: DataType;
8
+ column: ITableColumns<DataType>;
9
+ renderType: TRenderType;
10
+ renderParams: ITableColumns<DataType>['renderParams'];
11
+ tagRenderParams: ITableColumns<DataType>['tagRenderParams'];
12
+ thousandsParams?: ITableColumns<DataType>['thousandsParams'];
13
+ }
@@ -0,0 +1,22 @@
1
+ import { ITableColumns } from '../type/table.d';
2
+ export interface FeTableSettingProps<T = any> {
3
+ /**
4
+ * 表格列配置
5
+ */
6
+ columns: ITableColumns<T>[];
7
+ /**
8
+ * 列顺序变化回调
9
+ */
10
+ onColumnsChange?: (columns: ITableColumns<T>[]) => void;
11
+ /**
12
+ * 列显示/隐藏变化回调
13
+ */
14
+ onColumnVisibilityChange?: (dataIndex: string, visible: boolean) => void;
15
+ /**
16
+ * 隐藏的列的dataIndex数组
17
+ */
18
+ hiddenColumns?: string[];
19
+ style?: React.CSSProperties;
20
+ }
21
+ declare const FeTableSetting: <T extends Record<string, any> = any>(props: FeTableSettingProps<T>) => import("react/jsx-runtime").JSX.Element;
22
+ export default FeTableSetting;
@@ -0,0 +1,18 @@
1
+ import { default as React } from 'react';
2
+ import { IToolBarBtnConfig } from '../type/table.d';
3
+
4
+
5
+ export interface FeTableToolbarProps {
6
+ config: IToolBarBtnConfig[];
7
+ btnPermissionList?: string[];
8
+ modal?: {
9
+ confirm: (config: {
10
+ title?: string;
11
+ content?: React.ReactNode;
12
+ onOk?: () => void;
13
+ onCancel?: () => void;
14
+ }) => void;
15
+ }
16
+ }
17
+
18
+ declare const FeTableToolbar: React.ForwardRefExoticComponent<FeTableToolbarProps>;
@@ -0,0 +1,193 @@
1
+ import { FormInstance } from 'antd';
2
+ import { ITableColumns, ITableParams } from '../type/table.d';
3
+ import * as React from 'react';
4
+ /**
5
+ * 判断是否需要重新请求前一页数据
6
+ * @param record 当前数据记录
7
+ * @param pageNo 当前页码
8
+ * @returns 是否需要重新请求前一页
9
+ */
10
+ export declare const shouldRequestPreviousPage: (record: any[], pageNo: number) => boolean;
11
+ /**
12
+ * 渲染操作按钮
13
+ */
14
+ export declare const renderActionButtons: <T extends Record<string, any>>(record: T, index: number, columnsHandleConfig: any[], btnPermissionList: string[] | undefined, modal: any) => import("react/jsx-runtime").JSX.Element | never[];
15
+ /**
16
+ * 创建单元格渲染器
17
+ */
18
+ export declare const createCellRenderer: (column: ITableColumns<any>) => ((text: any, record: any, index: number) => React.ReactNode) | ((_: any, record: any) => import("react/jsx-runtime").JSX.Element);
19
+ /**
20
+ * 添加序号列
21
+ */
22
+ export declare const addIndexColumn: (columns: ITableColumns<any>[], showIndex?: boolean, pageNo?: number, pageSize?: number) => ITableColumns<any>[];
23
+ /**
24
+ * 添加操作列并处理所有列的渲染函数
25
+ */
26
+ export declare const processTableColumns: (columns: ITableColumns<any>[], columnsHandleConfig: any[] | undefined, btnPermissionList: string[] | undefined, columnsHandleAttr: ITableParams<any>["columnsHandleAttr"], modal: any) => {
27
+ render: ((text: any, record: any, index: number) => React.ReactNode) | ((_: any, record: any) => import("react/jsx-runtime").JSX.Element);
28
+ dataIndex: string | number | symbol;
29
+ key?: React.Key;
30
+ title: string | React.ReactNode;
31
+ titleRender?: React.ReactNode;
32
+ showHint?: boolean;
33
+ hintText?: string | React.ReactNode;
34
+ ellipsis?: boolean | {
35
+ showTitle: boolean;
36
+ };
37
+ align?: "left" | "center" | "right";
38
+ fixed?: false | "left" | "right";
39
+ width?: number;
40
+ dataType?: "string" | "integer" | "double" | "dict";
41
+ renderType?: import('../type/table.d').TRenderType;
42
+ renderParams?: {
43
+ tooltip: boolean;
44
+ ellipsis: boolean;
45
+ maxLines?: number;
46
+ };
47
+ defaultRenderParams?: {
48
+ filter?: any;
49
+ dictfilterParams?: {
50
+ dictList: Array<{
51
+ dataIndex: string;
52
+ label: string;
53
+ }>;
54
+ };
55
+ };
56
+ tagRenderParams?: {
57
+ filter?: any;
58
+ dictfilterParams?: {
59
+ dictList: Array<{
60
+ dataIndex: string;
61
+ label: string;
62
+ }>;
63
+ };
64
+ separator?: string;
65
+ themeEnums?: Record<string, "processing" | "success" | "error" | "default" | "warning">;
66
+ };
67
+ editRenderParams?: import('../type/table.d').IEditRenderParams;
68
+ thousandsParams?: {
69
+ precision?: number;
70
+ fillZero?: boolean;
71
+ separator?: string;
72
+ };
73
+ hideInSetting?: boolean;
74
+ }[];
75
+ /**
76
+ * 应用列样式
77
+ */
78
+ export declare const applyColumnStyles: (columns: ITableColumns<any>[]) => {
79
+ ellipsis: boolean | {
80
+ showTitle: boolean;
81
+ };
82
+ align: "center" | "left" | "right";
83
+ dataIndex: string | number | symbol;
84
+ key?: React.Key;
85
+ title: string | React.ReactNode;
86
+ titleRender?: React.ReactNode;
87
+ showHint?: boolean;
88
+ hintText?: string | React.ReactNode;
89
+ render?: (text: any, record: any, index: number) => React.ReactNode;
90
+ fixed?: false | "left" | "right";
91
+ width?: number;
92
+ dataType?: "string" | "integer" | "double" | "dict";
93
+ renderType?: import('../type/table.d').TRenderType;
94
+ renderParams?: {
95
+ tooltip: boolean;
96
+ ellipsis: boolean;
97
+ maxLines?: number;
98
+ };
99
+ defaultRenderParams?: {
100
+ filter?: any;
101
+ dictfilterParams?: {
102
+ dictList: Array<{
103
+ dataIndex: string;
104
+ label: string;
105
+ }>;
106
+ };
107
+ };
108
+ tagRenderParams?: {
109
+ filter?: any;
110
+ dictfilterParams?: {
111
+ dictList: Array<{
112
+ dataIndex: string;
113
+ label: string;
114
+ }>;
115
+ };
116
+ separator?: string;
117
+ themeEnums?: Record<string, "processing" | "success" | "error" | "default" | "warning">;
118
+ };
119
+ editRenderParams?: import('../type/table.d').IEditRenderParams;
120
+ thousandsParams?: {
121
+ precision?: number;
122
+ fillZero?: boolean;
123
+ separator?: string;
124
+ };
125
+ hideInSetting?: boolean;
126
+ }[];
127
+ /**
128
+ * 解析表单数据,将带行ID后缀的字段名转换为按行分组的数据
129
+ * @param formData 原始表单数据 (如 {name_1: 'John', age_1: 25, name_2: 'Jane'})
130
+ * @param rowKey 行标识字段名
131
+ * @returns 按行分组的数据 (如 {'1': {name: 'John', age: 25}, '2': {name: 'Jane'}})
132
+ */
133
+ export declare const parseTableFormData: (formData: Record<string, any>, rowKey?: string) => Record<string, any>;
134
+ /**
135
+ * 从当前行数据中提取行ID
136
+ * @param record 当前行记录
137
+ * @param rowKey 行标识字段名
138
+ * @returns 行ID
139
+ */
140
+ export declare const getRowIdFromRecord: (record: any, rowKey?: string) => string;
141
+ /**
142
+ * 根据字段名和行ID构建表单字段名
143
+ * @param fieldName 字段名
144
+ * @param rowId 行ID
145
+ * @returns 表单字段名 (如 'name_1')
146
+ */
147
+ export declare const buildFormFieldName: (fieldName: string, rowId: string) => string;
148
+ /**
149
+ * 处理表格校验规则,注入表格上下文
150
+ * @param rules 原始校验规则数组
151
+ * @param record 当前行记录
152
+ * @param rowKey 行标识字段名
153
+ * @param formInstance 表单实例
154
+ * @returns 处理后的校验规则数组
155
+ */
156
+ export declare const processTableRules: (rules: any[] | undefined, record: any, rowKey: string, formInstance: any) => any[];
157
+ /**
158
+ * 表格上下文类型定义
159
+ */
160
+ export interface TableContext {
161
+ /** 当前行记录(包含最新表单数据) */
162
+ currentRecord: Record<string, any>;
163
+ /** 所有表格行数据 */
164
+ allTableData: Record<string, any>;
165
+ /** 表单实例 */
166
+ form: FormInstance;
167
+ }
168
+ /**
169
+ * 创建表格校验上下文
170
+ * @param record 当前行记录
171
+ * @param rowKey 行标识字段名
172
+ * @param formInstance 表单实例
173
+ * @returns 表格校验上下文对象
174
+ */
175
+ export declare const createTableContext: (record: any, rowKey: string, formInstance: any) => TableContext;
176
+ /**
177
+ * 处理对象中的事件处理器,注入表格上下文
178
+ * @param obj 包含事件处理器的对象
179
+ * @param record 当前行记录
180
+ * @param rowKey 行标识字段名
181
+ * @param formInstance 表单实例
182
+ * @returns 处理后的对象
183
+ */
184
+ export declare const processEventHandlers: (obj: Record<string, any> | undefined, record: any, rowKey: string, formInstance: any) => Record<string, any>;
185
+ /**
186
+ * 深度处理表单属性中所有 *Attributes 对象的事件处理器
187
+ * @param formProps 表单属性配置
188
+ * @param record 当前行记录
189
+ * @param rowKey 行标识字段名
190
+ * @param formInstance 表单实例
191
+ * @returns 处理后的表单属性配置
192
+ */
193
+ export declare const enhanceFormPropsWithContext: (formProps: any, record: any, rowKey: string, formInstance: any) => any;
@@ -0,0 +1,6 @@
1
+ export { default as FeTable } from './fe-table';
2
+ export { shouldRequestPreviousPage } from './fe-table-utils';
3
+ export * from './type/table.d';
4
+ export * from './type/table-context.d';
5
+ export { default as UseEditTable } from './use-edit-table';
6
+ export { default as UseTable } from './use-table';
@@ -0,0 +1,60 @@
1
+ /**
2
+ * 可编辑表格上下文类型定义
3
+ */
4
+ export interface TableContext {
5
+ /**
6
+ * 当前行记录(包含最新表单数据)
7
+ * 注意:这里的字段值是已经从表单中获取的最新值
8
+ */
9
+
10
+ currentRecord: Record<string, any>;
11
+
12
+ /**
13
+ * 所有表格行数据
14
+ * 格式: { rowId: rowData }
15
+ * 例如: { '1': { id: 1, name: '张三' }, '2': { id: 2, name: '李四' } }
16
+ */
17
+ allTableData: Record<string, Record<string, any>>;
18
+
19
+ /**
20
+ * Ant Design Form 表单实例
21
+ * 可以使用所有表单方法,如:
22
+ * - getFieldValue(name)
23
+ * - setFieldValue(name, value)
24
+ * - getFieldsValue()
25
+ * - setFieldsValue(values)
26
+ * - validateFields()
27
+ */
28
+ form: any;
29
+ }
30
+
31
+ /**
32
+ * 带表格上下文的事件处理器类型
33
+ * 用于为事件处理器提供类型提示
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * import type { TableEventHandler } from '@orchid/fe-table';
38
+ *
39
+ * const handleBlur: TableEventHandler<[React.FocusEvent]> = (event, tableContext) => {
40
+ * const { currentRecord, form } = tableContext;
41
+ * // ...
42
+ * };
43
+ * ```
44
+ */
45
+ export type TableEventHandler<T extends any[] = any[]> = (...args: [...T, TableContext]) => void | Promise<void>;
46
+
47
+ /**
48
+ * 表格值变更事件处理器
49
+ */
50
+ export type TableValueChangeHandler = TableEventHandler<[any]>;
51
+
52
+ /**
53
+ * 表格点击事件处理器
54
+ */
55
+ export type TableClickHandler = TableEventHandler<[React.MouseEvent]>;
56
+
57
+ /**
58
+ * 表格焦点事件处理器
59
+ */
60
+ export type TableFocusHandler = TableEventHandler<[React.FocusEvent]>;