zmdms-webui 2.3.0 → 2.3.2

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 (283) hide show
  1. package/dist/es/canvastable/canvasTable.js +367 -0
  2. package/dist/es/canvastable/components/BadgePopover.js +27 -0
  3. package/dist/es/canvastable/components/CanvasTableMenu.js +74 -0
  4. package/dist/es/canvastable/components/CellOverlay.js +49 -0
  5. package/dist/es/canvastable/components/ColumnDynamic.js +12 -0
  6. package/dist/es/canvastable/components/EmptyPlaceholder.js +20 -0
  7. package/dist/es/canvastable/components/FilterPopover.js +274 -0
  8. package/dist/es/canvastable/components/HeaderOverlay.js +22 -0
  9. package/dist/es/canvastable/components/Tooltip.js +27 -0
  10. package/dist/es/canvastable/hooks/useClickOutside.js +30 -0
  11. package/dist/es/canvastable/hooks/useColumnResize.js +130 -0
  12. package/dist/es/canvastable/hooks/useContainerSize.js +40 -0
  13. package/dist/es/canvastable/hooks/useCopyToClipboard.js +150 -0
  14. package/dist/es/canvastable/hooks/useHeaderHeight.js +103 -0
  15. package/dist/es/canvastable/hooks/useMergeCells.js +111 -0
  16. package/dist/es/canvastable/hooks/useOverlays.js +364 -0
  17. package/dist/es/canvastable/hooks/usePopovers.js +93 -0
  18. package/dist/es/canvastable/hooks/useProcessedColumns.js +94 -0
  19. package/dist/es/canvastable/hooks/useScroll.js +251 -0
  20. package/dist/es/canvastable/hooks/useSummaryRow.js +81 -0
  21. package/dist/es/canvastable/hooks/useTableInteraction.js +804 -0
  22. package/dist/es/canvastable/hooks/useTableRender.js +1289 -0
  23. package/dist/es/canvastable/hooks/useTableSelection.js +57 -0
  24. package/dist/es/canvastable/hooks/useTableState.js +218 -0
  25. package/dist/es/canvastable/index.js +5 -0
  26. package/dist/es/canvastable/utils/canvasDrawHelpers.js +156 -0
  27. package/dist/es/canvastable/utils/cellHelpers.js +121 -0
  28. package/dist/es/canvastable/utils/columnHelpers.js +67 -0
  29. package/dist/es/canvastable/utils/constants.js +42 -0
  30. package/dist/es/canvastable/utils/formatHelpers.js +60 -0
  31. package/dist/es/canvastable/utils/interactionHelpers.js +176 -0
  32. package/dist/es/canvastable/utils/multiHeaderHelpers.js +82 -0
  33. package/dist/es/canvastable/utils/tableCalculations.js +100 -0
  34. package/dist/index.es.css +1 -1
  35. package/dist/index.es.js +1 -0
  36. package/package.json +1 -1
  37. package/dist/es/alert/alert.d.ts +0 -5
  38. package/dist/es/alert/index.css +0 -1
  39. package/dist/es/alert/index.d.ts +0 -5
  40. package/dist/es/alert/interface.d.ts +0 -14
  41. package/dist/es/applayout/appLayout.d.ts +0 -11
  42. package/dist/es/applayout/index.css +0 -1
  43. package/dist/es/applayout/index.d.ts +0 -5
  44. package/dist/es/applayoutheader/appLayoutHeader.d.ts +0 -16
  45. package/dist/es/applayoutheader/index.d.ts +0 -5
  46. package/dist/es/applayoutsider/appLayoutSider.d.ts +0 -57
  47. package/dist/es/applayoutsider/index.d.ts +0 -5
  48. package/dist/es/authloading/authLoading.d.ts +0 -5
  49. package/dist/es/authloading/index.css +0 -1
  50. package/dist/es/authloading/index.d.ts +0 -5
  51. package/dist/es/button/button.d.ts +0 -5
  52. package/dist/es/button/buttonDownload.d.ts +0 -25
  53. package/dist/es/button/buttonExport.d.ts +0 -15
  54. package/dist/es/button/buttonFullScreen.d.ts +0 -9
  55. package/dist/es/button/buttonPreview.d.ts +0 -26
  56. package/dist/es/button/index.css +0 -1
  57. package/dist/es/button/index.d.ts +0 -5
  58. package/dist/es/button/interface.d.ts +0 -34
  59. package/dist/es/calendar/index.d.ts +0 -7
  60. package/dist/es/cascader/index.css +0 -1
  61. package/dist/es/collapse/collapse.d.ts +0 -7
  62. package/dist/es/collapse/index.css +0 -1
  63. package/dist/es/collapse/index.d.ts +0 -5
  64. package/dist/es/collapse/interface.d.ts +0 -25
  65. package/dist/es/config/ZtxkContext.d.ts +0 -32
  66. package/dist/es/container/container.d.ts +0 -51
  67. package/dist/es/container/index.css +0 -1
  68. package/dist/es/container/index.d.ts +0 -5
  69. package/dist/es/datepicker/index.css +0 -1
  70. package/dist/es/datepicker/index.d.ts +0 -48
  71. package/dist/es/datepicker/interface.d.ts +0 -56
  72. package/dist/es/descriptions/descriptions.d.ts +0 -5
  73. package/dist/es/descriptions/index.css +0 -1
  74. package/dist/es/descriptions/index.d.ts +0 -5
  75. package/dist/es/descriptions/interface.d.ts +0 -12
  76. package/dist/es/detaillist/index.css +0 -1
  77. package/dist/es/detaillist/index.d.ts +0 -5
  78. package/dist/es/detaillist/item.d.ts +0 -35
  79. package/dist/es/detaillist/list.d.ts +0 -17
  80. package/dist/es/differences/differences.d.ts +0 -5
  81. package/dist/es/differences/index.css +0 -1
  82. package/dist/es/differences/index.d.ts +0 -5
  83. package/dist/es/differences/interface.d.ts +0 -17
  84. package/dist/es/dynamicsetting/dynamicSetting.d.ts +0 -6
  85. package/dist/es/dynamicsetting/index.css +0 -1
  86. package/dist/es/dynamicsetting/index.d.ts +0 -5
  87. package/dist/es/dynamicsetting/interface.d.ts +0 -43
  88. package/dist/es/electronsignatures/index.css +0 -1
  89. package/dist/es/electronsignatures/index.d.ts +0 -6
  90. package/dist/es/electronsignatures/interface.d.ts +0 -500
  91. package/dist/es/enhanceselect/enhance-select.d.ts +0 -6
  92. package/dist/es/enhanceselect/index.d.ts +0 -5
  93. package/dist/es/enhanceselect/interface.d.ts +0 -71
  94. package/dist/es/footer/footer.d.ts +0 -6
  95. package/dist/es/footer/index.css +0 -1
  96. package/dist/es/footer/index.d.ts +0 -5
  97. package/dist/es/footer/interface.d.ts +0 -34
  98. package/dist/es/form/form.d.ts +0 -18
  99. package/dist/es/form/index.css +0 -1
  100. package/dist/es/form/index.d.ts +0 -5
  101. package/dist/es/form/interface.d.ts +0 -91
  102. package/dist/es/formitem/formItem.d.ts +0 -115
  103. package/dist/es/formitem/index.css +0 -1
  104. package/dist/es/formitem/index.d.ts +0 -5
  105. package/dist/es/icon/icon-oss.d.ts +0 -6
  106. package/dist/es/icon/index.d.ts +0 -6
  107. package/dist/es/input/TextArea.d.ts +0 -13
  108. package/dist/es/input/index.css +0 -1
  109. package/dist/es/input/index.d.ts +0 -5
  110. package/dist/es/input/input.d.ts +0 -23
  111. package/dist/es/inputnumber/index.css +0 -1
  112. package/dist/es/inputnumber/index.d.ts +0 -5
  113. package/dist/es/inputnumber/inputNumber.d.ts +0 -28
  114. package/dist/es/inputnumber/interface.d.ts +0 -4
  115. package/dist/es/leftcontent/index.css +0 -1
  116. package/dist/es/leftcontent/index.d.ts +0 -5
  117. package/dist/es/leftcontent/leftContent.d.ts +0 -31
  118. package/dist/es/login/index.css +0 -1
  119. package/dist/es/login/index.d.ts +0 -37
  120. package/dist/es/message/index.css +0 -1
  121. package/dist/es/message/index.d.ts +0 -5
  122. package/dist/es/microloading/index.css +0 -1
  123. package/dist/es/microloading/index.d.ts +0 -5
  124. package/dist/es/microloading/micro-loading.d.ts +0 -8
  125. package/dist/es/modal/index.css +0 -1
  126. package/dist/es/modal/index.d.ts +0 -5
  127. package/dist/es/modal/interface.d.ts +0 -91
  128. package/dist/es/modal/modal.d.ts +0 -5
  129. package/dist/es/notauthpage/index.css +0 -0
  130. package/dist/es/notauthpage/index.d.ts +0 -5
  131. package/dist/es/notauthpage/notAuthPage.d.ts +0 -8
  132. package/dist/es/notroutepage/index.css +0 -0
  133. package/dist/es/notroutepage/index.d.ts +0 -5
  134. package/dist/es/notroutepage/notRoutePage.d.ts +0 -8
  135. package/dist/es/operationbtn/index.d.ts +0 -5
  136. package/dist/es/operationbtn/interface.d.ts +0 -34
  137. package/dist/es/operationbtn/operationBtn.d.ts +0 -6
  138. package/dist/es/pagination/index.css +0 -1
  139. package/dist/es/pagination/index.d.ts +0 -5
  140. package/dist/es/pagination/pagination.d.ts +0 -8
  141. package/dist/es/placeholder/index.css +0 -1
  142. package/dist/es/placeholder/index.d.ts +0 -5
  143. package/dist/es/placeholder/interface.d.ts +0 -12
  144. package/dist/es/placeholder/placeholder.d.ts +0 -5
  145. package/dist/es/print/index.css +0 -1
  146. package/dist/es/print/index.d.ts +0 -5
  147. package/dist/es/print/interface.d.ts +0 -69
  148. package/dist/es/print/print-page.d.ts +0 -6
  149. package/dist/es/print/print.d.ts +0 -5
  150. package/dist/es/protectedroute/index.d.ts +0 -24
  151. package/dist/es/select/hooks.d.ts +0 -16
  152. package/dist/es/select/index.css +0 -1
  153. package/dist/es/select/index.d.ts +0 -5
  154. package/dist/es/select/interface.d.ts +0 -82
  155. package/dist/es/select/select-render.d.ts +0 -31
  156. package/dist/es/select/select.d.ts +0 -5
  157. package/dist/es/sortable/index.d.ts +0 -5
  158. package/dist/es/sortable/sortable-item.d.ts +0 -14
  159. package/dist/es/sortable/sortable.d.ts +0 -13
  160. package/dist/es/suspensecomponent/index.d.ts +0 -10
  161. package/dist/es/table/components/Badge.d.ts +0 -24
  162. package/dist/es/table/components/TitleDirectionColumn.d.ts +0 -11
  163. package/dist/es/table/constant.d.ts +0 -3
  164. package/dist/es/table/index.css +0 -1
  165. package/dist/es/table/index.d.ts +0 -5
  166. package/dist/es/table/interface.d.ts +0 -613
  167. package/dist/es/table/table.d.ts +0 -11
  168. package/dist/es/tabs/index.css +0 -1
  169. package/dist/es/tabs/index.d.ts +0 -5
  170. package/dist/es/tabs/interface.d.ts +0 -52
  171. package/dist/es/tabs/tabs.d.ts +0 -5
  172. package/dist/es/tag/index.css +0 -1
  173. package/dist/es/tag/index.d.ts +0 -5
  174. package/dist/es/tag/interface.d.ts +0 -9
  175. package/dist/es/tag/tag.d.ts +0 -5
  176. package/dist/es/timepicker/index.d.ts +0 -19
  177. package/dist/es/title/index.css +0 -1
  178. package/dist/es/title/index.d.ts +0 -5
  179. package/dist/es/title/interface.d.ts +0 -35
  180. package/dist/es/title/title.d.ts +0 -5
  181. package/dist/es/tree/index.css +0 -1
  182. package/dist/es/tree/index.d.ts +0 -5
  183. package/dist/es/tree/interface.d.ts +0 -44
  184. package/dist/es/tree/tree.d.ts +0 -5
  185. package/dist/es/treeselect/index.css +0 -1
  186. package/dist/es/treeselect/index.d.ts +0 -5
  187. package/dist/es/treeselect/interface.d.ts +0 -32
  188. package/dist/es/treeselect/treeSelect.d.ts +0 -5
  189. package/dist/es/uploadlist/index.css +0 -1
  190. package/dist/es/uploadlist/index.d.ts +0 -5
  191. package/dist/es/uploadlist/interface.d.ts +0 -113
  192. package/dist/es/uploadlist/uploadList.d.ts +0 -5
  193. package/dist/es/watermark/index.css +0 -1
  194. package/dist/es/watermark/index.d.ts +0 -5
  195. package/dist/es/watermark/interface.d.ts +0 -23
  196. package/dist/es/watermark/watermark.d.ts +0 -5
  197. package/dist/es/zttransfer/index.css +0 -1
  198. package/dist/es/zttransfer/index.d.ts +0 -5
  199. package/dist/es/zttransfer/interface.d.ts +0 -38
  200. package/dist/es/zttransfer/zt-transfer.d.ts +0 -6
  201. package/dist/index.build.d.ts +0 -67
  202. package/dist/index.dark.css +0 -2
  203. package/dist/index.default.css +0 -2
  204. package/dist/less/components/Alert/style/index.less +0 -53
  205. package/dist/less/components/Alert/style/style.less +0 -4
  206. package/dist/less/components/AppLayout/style/index.less +0 -546
  207. package/dist/less/components/AppLayout/style/style.less +0 -2
  208. package/dist/less/components/AppLayout/style.less +0 -5
  209. package/dist/less/components/AuthLoading/style/index.less +0 -15
  210. package/dist/less/components/AuthLoading/style/style.less +0 -2
  211. package/dist/less/components/Button/style/index.less +0 -160
  212. package/dist/less/components/Button/style/style.less +0 -5
  213. package/dist/less/components/Cascader/style/index.less +0 -9
  214. package/dist/less/components/Cascader/style/style.less +0 -2
  215. package/dist/less/components/Collapse/style/index.less +0 -117
  216. package/dist/less/components/Collapse/style/style.less +0 -2
  217. package/dist/less/components/Container/style/index.less +0 -64
  218. package/dist/less/components/Container/style/style.less +0 -2
  219. package/dist/less/components/DatePicker/style/index.less +0 -7
  220. package/dist/less/components/DatePicker/style/style.less +0 -4
  221. package/dist/less/components/Descriptions/style/index.less +0 -32
  222. package/dist/less/components/Descriptions/style/style.less +0 -5
  223. package/dist/less/components/DetailList/style/index.less +0 -105
  224. package/dist/less/components/DetailList/style/style.less +0 -2
  225. package/dist/less/components/Differences/style/index.less +0 -5
  226. package/dist/less/components/Differences/style/style.less +0 -2
  227. package/dist/less/components/DynamicSetting/style/index.less +0 -96
  228. package/dist/less/components/DynamicSetting/style/style.less +0 -2
  229. package/dist/less/components/ElectronSignatures/style/index.less +0 -331
  230. package/dist/less/components/ElectronSignatures/style/style.less +0 -1
  231. package/dist/less/components/Footer/style/index.less +0 -28
  232. package/dist/less/components/Footer/style/style.less +0 -2
  233. package/dist/less/components/Form/style/index.less +0 -150
  234. package/dist/less/components/Form/style/style.less +0 -5
  235. package/dist/less/components/FormItem/style/index.less +0 -456
  236. package/dist/less/components/FormItem/style/style.less +0 -2
  237. package/dist/less/components/Input/style/index.less +0 -15
  238. package/dist/less/components/Input/style/style.less +0 -4
  239. package/dist/less/components/InputNumber/style/index.less +0 -30
  240. package/dist/less/components/InputNumber/style/style.less +0 -4
  241. package/dist/less/components/LeftContent/style/index.less +0 -62
  242. package/dist/less/components/LeftContent/style/style.less +0 -2
  243. package/dist/less/components/Login/style/index.less +0 -63
  244. package/dist/less/components/Login/style/style.less +0 -2
  245. package/dist/less/components/Message/style/index.less +0 -19
  246. package/dist/less/components/Message/style/style.less +0 -2
  247. package/dist/less/components/MicroLoading/style/index.less +0 -15
  248. package/dist/less/components/MicroLoading/style/style.less +0 -2
  249. package/dist/less/components/Modal/style/index.less +0 -43
  250. package/dist/less/components/Modal/style/style.less +0 -2
  251. package/dist/less/components/NotAuthPage/style/index.less +0 -0
  252. package/dist/less/components/NotAuthPage/style/style.less +0 -2
  253. package/dist/less/components/NotRoutePage/style/index.less +0 -0
  254. package/dist/less/components/NotRoutePage/style/style.less +0 -2
  255. package/dist/less/components/Pagination/style/index.less +0 -107
  256. package/dist/less/components/Pagination/style/style.less +0 -5
  257. package/dist/less/components/Placeholder/style/index.less +0 -3
  258. package/dist/less/components/Placeholder/style/style.less +0 -2
  259. package/dist/less/components/Print/style/index.less +0 -65
  260. package/dist/less/components/Print/style/style.less +0 -3
  261. package/dist/less/components/Select/style/index.less +0 -55
  262. package/dist/less/components/Select/style/style.less +0 -4
  263. package/dist/less/components/Table/style/index.less +0 -362
  264. package/dist/less/components/Table/style/style.less +0 -4
  265. package/dist/less/components/Tabs/style/index.less +0 -118
  266. package/dist/less/components/Tabs/style/style.less +0 -4
  267. package/dist/less/components/Tag/style/index.less +0 -3
  268. package/dist/less/components/Tag/style/style.less +0 -4
  269. package/dist/less/components/Title/style/index.less +0 -54
  270. package/dist/less/components/Title/style/style.less +0 -2
  271. package/dist/less/components/Tree/style/index.less +0 -58
  272. package/dist/less/components/Tree/style/style.less +0 -4
  273. package/dist/less/components/TreeSelect/style/index.less +0 -0
  274. package/dist/less/components/TreeSelect/style/style.less +0 -4
  275. package/dist/less/components/UploadList/style/index.less +0 -61
  276. package/dist/less/components/UploadList/style/style.less +0 -4
  277. package/dist/less/components/Watermark/style/index.less +0 -7
  278. package/dist/less/components/Watermark/style/style.less +0 -3
  279. package/dist/less/components/ZtTransfer/style/index.less +0 -136
  280. package/dist/less/components/ZtTransfer/style/style.less +0 -2
  281. package/dist/less/styles/default.less +0 -100
  282. package/dist/less/styles/index.less +0 -86
  283. package/dist/less/styles/reset.less +0 -189
@@ -0,0 +1,60 @@
1
+ import dayjs from 'dayjs';
2
+
3
+ /**
4
+ * 数据格式化工具函数
5
+ */
6
+ /**
7
+ * 格式化数值(千分符)
8
+ */
9
+ var formatThousand = function (value) {
10
+ if (value === null || value === undefined || value === "")
11
+ return "";
12
+ var num = typeof value === "string" ? parseFloat(value) : value;
13
+ if (isNaN(num))
14
+ return String(value);
15
+ return num.toLocaleString("en-US");
16
+ };
17
+ /**
18
+ * 格式化精度
19
+ */
20
+ var formatPrecision = function (value, precision) {
21
+ if (value === null || value === undefined || value === "")
22
+ return "";
23
+ var num = typeof value === "string" ? parseFloat(value) : value;
24
+ if (isNaN(num))
25
+ return String(value);
26
+ return num.toFixed(precision);
27
+ };
28
+ /**
29
+ * 格式化日期
30
+ */
31
+ var formatDate = function (value, format) {
32
+ if (format === void 0) { format = "YYYY-MM-DD"; }
33
+ if (!value)
34
+ return "";
35
+ var date = dayjs(value);
36
+ return date.isValid() ? date.format(format) : String(value);
37
+ };
38
+ /**
39
+ * 格式化单元格值
40
+ */
41
+ var formatCellValue = function (value, column) {
42
+ if (value === null || value === undefined)
43
+ return "";
44
+ var formattedValue = value;
45
+ // 日期格式化
46
+ if (column.dateFormat) {
47
+ formattedValue = formatDate(formattedValue, column.dateFormat);
48
+ }
49
+ // 数值精度
50
+ if (column.precision !== undefined && typeof formattedValue === "number") {
51
+ formattedValue = formatPrecision(formattedValue, column.precision);
52
+ }
53
+ // 千分符
54
+ if (column.thousand && !isNaN(Number(formattedValue))) {
55
+ formattedValue = formatThousand(formattedValue);
56
+ }
57
+ return String(formattedValue);
58
+ };
59
+
60
+ export { formatCellValue, formatDate, formatPrecision, formatThousand };
@@ -0,0 +1,176 @@
1
+ /**
2
+ * 交互相关的辅助函数
3
+ */
4
+ var calculateIconArea = function (column, cellWidth) {
5
+ var hasOrder = column.isOrder !== false;
6
+ var hasFilter = column.isFilter !== false;
7
+ var iconsWidth = 0;
8
+ if (hasFilter) {
9
+ iconsWidth += 15; // 筛选图标宽度(10px图标 + 5px右边距)
10
+ }
11
+ if (hasOrder) {
12
+ iconsWidth += 15; // 排序图标宽度(10px图标)
13
+ if (hasFilter) {
14
+ iconsWidth += 4; // 排序和筛选之间的间距
15
+ }
16
+ }
17
+ // 排序图标区域
18
+ var sortIconStart = hasFilter ? cellWidth - 38 : cellWidth - 18;
19
+ var sortIconEnd = hasFilter ? cellWidth - 20 : cellWidth;
20
+ // 筛选图标区域(最右侧20px)
21
+ var filterIconStart = cellWidth - 20;
22
+ var filterIconEnd = cellWidth;
23
+ return {
24
+ hasOrder: hasOrder,
25
+ hasFilter: hasFilter,
26
+ sortIconStart: sortIconStart,
27
+ sortIconEnd: sortIconEnd,
28
+ filterIconStart: filterIconStart,
29
+ filterIconEnd: filterIconEnd,
30
+ iconsWidth: iconsWidth,
31
+ };
32
+ };
33
+ /**
34
+ * 判断点击是否在图标区域内
35
+ */
36
+ var isClickInIconArea = function (relativeX, iconArea, type) {
37
+ if (type === "filter" && iconArea.hasFilter) {
38
+ return (relativeX >= iconArea.filterIconStart &&
39
+ relativeX < iconArea.filterIconEnd);
40
+ }
41
+ if (type === "sort" && iconArea.hasOrder) {
42
+ return (relativeX >= iconArea.sortIconStart && relativeX < iconArea.sortIconEnd);
43
+ }
44
+ return false;
45
+ };
46
+ /**
47
+ * 计算弹窗位置(确保不超出容器边界)
48
+ */
49
+ var calculatePopoverPosition = function (columnDrawX, columnWidth, containerWidth, headerHeight, popoverWidth, gap) {
50
+ if (popoverWidth === void 0) { popoverWidth = 180; }
51
+ if (gap === void 0) { gap = 2; }
52
+ // 默认位置:列的右边缘对齐弹窗右边缘
53
+ var popoverX = columnDrawX + columnWidth - popoverWidth;
54
+ // 如果超出左边界,调整位置
55
+ if (popoverX < 8) {
56
+ popoverX = 8; // 留一点边距
57
+ }
58
+ // 如果超出右边界,调整位置
59
+ var maxX = containerWidth - popoverWidth - 8;
60
+ if (popoverX > maxX) {
61
+ popoverX = maxX;
62
+ }
63
+ return {
64
+ x: popoverX,
65
+ y: headerHeight + gap,
66
+ };
67
+ };
68
+ var calculateSelectionState = function (dataSource, selectedRowKeys, getRowKey, getCheckboxProps) {
69
+ // 获取所有可选择的数据(排除 disabled 的)
70
+ var selectableData = dataSource.filter(function (record) {
71
+ var checkboxProps = (getCheckboxProps === null || getCheckboxProps === void 0 ? void 0 : getCheckboxProps(record)) || {};
72
+ return !checkboxProps.disabled;
73
+ });
74
+ // 计算选中状态
75
+ var selectedCount = selectableData.filter(function (record) {
76
+ var actualIndex = dataSource.indexOf(record);
77
+ return selectedRowKeys.includes(getRowKey(record, actualIndex));
78
+ }).length;
79
+ var isAllSelected = selectableData.length > 0 && selectedCount === selectableData.length;
80
+ var isIndeterminate = selectedCount > 0 && selectedCount < selectableData.length;
81
+ return {
82
+ isAllSelected: isAllSelected,
83
+ isIndeterminate: isIndeterminate,
84
+ selectedCount: selectedCount,
85
+ selectableCount: selectableData.length,
86
+ };
87
+ };
88
+ /**
89
+ * 切换全选状态
90
+ */
91
+ var toggleSelectAll = function (dataSource, isAllSelected, getRowKey, getCheckboxProps) {
92
+ if (isAllSelected) {
93
+ return [];
94
+ }
95
+ // 获取所有可选择的数据(排除 disabled 的)
96
+ var selectableData = dataSource.filter(function (record) {
97
+ var checkboxProps = (getCheckboxProps === null || getCheckboxProps === void 0 ? void 0 : getCheckboxProps(record)) || {};
98
+ return !checkboxProps.disabled;
99
+ });
100
+ return selectableData.map(function (record) {
101
+ var actualIndex = dataSource.indexOf(record);
102
+ return getRowKey(record, actualIndex);
103
+ });
104
+ };
105
+ /**
106
+ * 处理排序点击
107
+ */
108
+ var handleSortClick = function (clickedUpper, currentSortField, currentSortOrder, columnKey) {
109
+ var newOrder = null;
110
+ if (clickedUpper) {
111
+ // 点击上箭头:升序
112
+ if (currentSortField === columnKey && currentSortOrder === "ascend") {
113
+ newOrder = null; // 取消排序
114
+ }
115
+ else {
116
+ newOrder = "ascend";
117
+ }
118
+ }
119
+ else {
120
+ // 点击下箭头:降序
121
+ if (currentSortField === columnKey && currentSortOrder === "descend") {
122
+ newOrder = null; // 取消排序
123
+ }
124
+ else {
125
+ newOrder = "descend";
126
+ }
127
+ }
128
+ return {
129
+ sortField: newOrder ? columnKey : null,
130
+ sortOrder: newOrder,
131
+ };
132
+ };
133
+ /**
134
+ * 计算三角形badge的区域判断
135
+ */
136
+ var isPointInTriangle = function (x, y, cellX, cellY, cellWidth, cellHeight, position, triangleSize) {
137
+ if (triangleSize === void 0) { triangleSize = 12; }
138
+ switch (position) {
139
+ case "top-left":
140
+ return (x >= cellX &&
141
+ x <= cellX + triangleSize &&
142
+ y >= cellY &&
143
+ y <= cellY + triangleSize &&
144
+ x - cellX + (y - cellY) <= triangleSize);
145
+ case "top-right":
146
+ return (x >= cellX + cellWidth - triangleSize &&
147
+ x <= cellX + cellWidth &&
148
+ y >= cellY &&
149
+ y <= cellY + triangleSize &&
150
+ cellX + cellWidth - x + (y - cellY) <= triangleSize);
151
+ case "bottom-left":
152
+ return (x >= cellX &&
153
+ x <= cellX + triangleSize &&
154
+ y >= cellY + cellHeight - triangleSize &&
155
+ y <= cellY + cellHeight &&
156
+ x - cellX + (cellY + cellHeight - y) <= triangleSize);
157
+ case "bottom-right":
158
+ return (x >= cellX + cellWidth - triangleSize &&
159
+ x <= cellX + cellWidth &&
160
+ y >= cellY + cellHeight - triangleSize &&
161
+ y <= cellY + cellHeight &&
162
+ cellX + cellWidth - x + (cellY + cellHeight - y) <= triangleSize);
163
+ default:
164
+ return false;
165
+ }
166
+ };
167
+ /**
168
+ * 计算滚动位置(限制在最大值范围内)
169
+ */
170
+ var calculateScrollPosition = function (delta, currentScroll, maxScroll, totalSize, dragStart, scrollableSize) {
171
+ var scrollRatio = delta / scrollableSize;
172
+ var newScroll = currentScroll + scrollRatio * totalSize;
173
+ return Math.max(0, Math.min(maxScroll, newScroll));
174
+ };
175
+
176
+ export { calculateIconArea, calculatePopoverPosition, calculateScrollPosition, calculateSelectionState, handleSortClick, isClickInIconArea, isPointInTriangle, toggleSelectAll };
@@ -0,0 +1,82 @@
1
+ /**
2
+ * 多级表头工具函数
3
+ */
4
+ /**
5
+ * 获取叶子列(没有children的列)
6
+ */
7
+ function getLeafColumns(columns) {
8
+ var leafColumns = [];
9
+ var walk = function (nodes) {
10
+ var _a;
11
+ (_a = nodes === null || nodes === void 0 ? void 0 : nodes.forEach) === null || _a === void 0 ? void 0 : _a.call(nodes, function (node) {
12
+ if (Array.isArray(node === null || node === void 0 ? void 0 : node.children) && node.children.length > 0) {
13
+ walk(node.children);
14
+ }
15
+ else {
16
+ leafColumns.push(node);
17
+ }
18
+ });
19
+ };
20
+ walk(columns);
21
+ return leafColumns;
22
+ }
23
+ /**
24
+ * 获取表头的最大深度
25
+ */
26
+ function getMaxDepth(columns) {
27
+ var maxDepth = 1;
28
+ var walk = function (nodes, depth) {
29
+ var _a;
30
+ (_a = nodes === null || nodes === void 0 ? void 0 : nodes.forEach) === null || _a === void 0 ? void 0 : _a.call(nodes, function (node) {
31
+ if (depth > maxDepth) {
32
+ maxDepth = depth;
33
+ }
34
+ if (Array.isArray(node === null || node === void 0 ? void 0 : node.children) && node.children.length > 0) {
35
+ walk(node.children, depth + 1);
36
+ }
37
+ });
38
+ };
39
+ walk(columns, 1);
40
+ return maxDepth;
41
+ }
42
+ /**
43
+ * 计算列的跨度(colspan)
44
+ */
45
+ function computeColSpan(column) {
46
+ if (!column.children || column.children.length === 0) {
47
+ return 1;
48
+ }
49
+ return column.children.reduce(function (sum, child) { return sum + computeColSpan(child); }, 0);
50
+ }
51
+ function flattenHeaders(columns) {
52
+ var maxDepth = getMaxDepth(columns);
53
+ var headerRows = Array.from({ length: maxDepth }, function () { return []; });
54
+ var walk = function (nodes, depth, startColIndexRef) {
55
+ nodes.forEach(function (node) {
56
+ var hasChildren = Array.isArray(node.children) && node.children.length > 0;
57
+ var colSpan = computeColSpan(node);
58
+ var rowSpan = hasChildren ? 1 : maxDepth - depth + 1;
59
+ var currentCol = startColIndexRef.value;
60
+ // 添加表头单元格
61
+ headerRows[depth - 1].push({
62
+ column: node,
63
+ rowSpan: rowSpan,
64
+ colSpan: colSpan,
65
+ depth: depth - 1,
66
+ colIndex: currentCol,
67
+ });
68
+ if (hasChildren) {
69
+ var childStartRef = { value: currentCol };
70
+ walk(node.children, depth + 1, childStartRef);
71
+ startColIndexRef.value = currentCol + colSpan;
72
+ }
73
+ else {
74
+ startColIndexRef.value = currentCol + 1;
75
+ }
76
+ });
77
+ };
78
+ walk(columns, 1, { value: 0 });
79
+ return headerRows;
80
+ }
81
+
82
+ export { computeColSpan, flattenHeaders, getLeafColumns, getMaxDepth };
@@ -0,0 +1,100 @@
1
+ import { DEFAULT_COLUMN_WIDTH } from './constants.js';
2
+ import { getLeafColumns } from './multiHeaderHelpers.js';
3
+
4
+ /**
5
+ * 表格计算工具函数
6
+ */
7
+ /**
8
+ * 计算列的渲染信息
9
+ * 注意:多级表头时,只处理叶子列(用于渲染数据)
10
+ */
11
+ var calculateColumnRenderInfos = function (columns) {
12
+ // 获取叶子列(多级表头时只有叶子列才渲染数据)
13
+ var leafColumns = getLeafColumns(columns);
14
+ var infos = [];
15
+ var currentX = 0;
16
+ var fixedLeftX = 0;
17
+ leafColumns.forEach(function (column) {
18
+ var columnWidth = column.width || DEFAULT_COLUMN_WIDTH;
19
+ var isFixed = column.fixed === "left" || column.fixed === true;
20
+ infos.push({
21
+ column: column,
22
+ x: isFixed ? fixedLeftX : currentX,
23
+ width: columnWidth,
24
+ fixed: isFixed,
25
+ fixedLeft: isFixed ? fixedLeftX : undefined,
26
+ });
27
+ if (isFixed) {
28
+ fixedLeftX += columnWidth;
29
+ }
30
+ currentX += columnWidth;
31
+ });
32
+ return infos;
33
+ };
34
+ /**
35
+ * 计算总宽度
36
+ */
37
+ var calculateTotalWidth = function (columnRenderInfos) {
38
+ return columnRenderInfos.reduce(function (sum, info) { return sum + info.width; }, 0);
39
+ };
40
+ /**
41
+ * 计算总高度
42
+ */
43
+ var calculateTotalHeight = function (headerHeight, dataLength, rowHeight) {
44
+ return headerHeight + dataLength * rowHeight;
45
+ };
46
+ /**
47
+ * 计算滚动条位置和大小
48
+ */
49
+ var calculateScrollbarMetrics = function (params) {
50
+ var containerWidth = params.containerWidth, containerHeight = params.containerHeight, totalWidth = params.totalWidth, totalHeight = params.totalHeight, headerHeight = params.headerHeight, scrollbarSize = params.scrollbarSize, minScrollbarSize = params.minScrollbarSize, scrollTop = params.scrollTop, scrollLeft = params.scrollLeft;
51
+ // 是否需要显示滚动条
52
+ var needVerticalScrollbar = totalHeight > containerHeight;
53
+ var needHorizontalScrollbar = totalWidth > containerWidth;
54
+ // 计算可滚动的最大值
55
+ // maxScrollTop 需要考虑水平滚动条占用的空间
56
+ // 当有水平滚动条时,数据可视区域减少了 scrollbarSize 的高度
57
+ var maxScrollTop = Math.max(0, totalHeight -
58
+ containerHeight +
59
+ (needHorizontalScrollbar ? scrollbarSize : 0));
60
+ // maxScrollLeft 需要考虑垂直滚动条占用的空间
61
+ // 当有垂直滚动条时,数据可视区域减少了 scrollbarSize 的宽度
62
+ var maxScrollLeft = Math.max(0, totalWidth - containerWidth + (needVerticalScrollbar ? scrollbarSize : 0));
63
+ // 计算数据区域高度(不包括表头和水平滚动条)
64
+ var dataAreaHeight = containerHeight -
65
+ headerHeight -
66
+ (needHorizontalScrollbar ? scrollbarSize : 0);
67
+ // 计算垂直滚动条高度
68
+ var verticalScrollbarHeight = needVerticalScrollbar
69
+ ? Math.max(minScrollbarSize, (dataAreaHeight / totalHeight) * dataAreaHeight)
70
+ : 0;
71
+ // 计算水平滚动条宽度
72
+ var horizontalScrollbarWidth = needHorizontalScrollbar
73
+ ? Math.max(minScrollbarSize, ((containerWidth - (needVerticalScrollbar ? scrollbarSize : 0)) /
74
+ totalWidth) *
75
+ (containerWidth - (needVerticalScrollbar ? scrollbarSize : 0)))
76
+ : 0;
77
+ // 计算滚动条位置
78
+ var verticalScrollbarTop = needVerticalScrollbar && maxScrollTop > 0
79
+ ? (scrollTop / maxScrollTop) * (dataAreaHeight - verticalScrollbarHeight)
80
+ : 0;
81
+ var horizontalScrollbarLeft = needHorizontalScrollbar && maxScrollLeft > 0
82
+ ? (scrollLeft / maxScrollLeft) *
83
+ (containerWidth -
84
+ (needVerticalScrollbar ? scrollbarSize : 0) -
85
+ horizontalScrollbarWidth)
86
+ : 0;
87
+ return {
88
+ needVerticalScrollbar: needVerticalScrollbar,
89
+ needHorizontalScrollbar: needHorizontalScrollbar,
90
+ maxScrollTop: maxScrollTop,
91
+ maxScrollLeft: maxScrollLeft,
92
+ dataAreaHeight: dataAreaHeight,
93
+ verticalScrollbarHeight: verticalScrollbarHeight,
94
+ horizontalScrollbarWidth: horizontalScrollbarWidth,
95
+ verticalScrollbarTop: verticalScrollbarTop,
96
+ horizontalScrollbarLeft: horizontalScrollbarLeft,
97
+ };
98
+ };
99
+
100
+ export { calculateColumnRenderInfos, calculateScrollbarMetrics, calculateTotalHeight, calculateTotalWidth };
package/dist/index.es.css CHANGED
@@ -1 +1 @@
1
- :root{--contexify-zIndex:666;--contexify-menu-minWidth:220px;--contexify-menu-padding:6px;--contexify-menu-radius:6px;--contexify-menu-bgColor:#fff;--contexify-menu-shadow:1px 2px 2px #0000001a,2px 4px 4px #0000001a,3px 6px 6px #0000001a;--contexify-menu-negatePadding:var(--contexify-menu-padding);--contexify-separator-color:#0003;--contexify-separator-margin:5px;--contexify-itemContent-padding:6px;--contexify-activeItem-radius:4px;--contexify-item-color:#333;--contexify-activeItem-color:#fff;--contexify-activeItem-bgColor:#3498db;--contexify-rightSlot-color:#6f6e77;--contexify-activeRightSlot-color:#fff;--contexify-arrow-color:#6f6e77;--contexify-activeArrow-color:#fff}@keyframes contexify_feedback{0%{opacity:.4}to{opacity:1}}.contexify{background-color:var(--contexify-menu-bgColor);border-radius:var(--contexify-menu-radius);box-shadow:var(--contexify-menu-shadow);box-sizing:border-box;min-width:var(--contexify-menu-minWidth);opacity:0;padding:var(--contexify-menu-padding);position:fixed;-webkit-user-select:none;user-select:none;z-index:var(--contexify-zIndex)}.contexify_submenu-isOpen,.contexify_submenu-isOpen>.contexify_itemContent{background-color:var(--contexify-activeItem-bgColor);border-radius:var(--contexify-activeItem-radius);color:var(--contexify-activeItem-color)}.contexify_submenu-isOpen>.contexify_itemContent .contexify_rightSlot{color:var(--contexify-activeArrow-color)}.contexify_submenu-isOpen>.contexify_submenu{opacity:1;pointer-events:auto}.contexify .contexify_submenu{left:100%;pointer-events:none;position:absolute;top:calc(var(--contexify-menu-negatePadding)*-1);transition:opacity .265s}.contexify .contexify_submenu-bottom{bottom:calc(var(--contexify-menu-negatePadding)*-1);top:unset}.contexify .contexify_submenu-right{left:unset;right:100%}.contexify_rightSlot{color:var(--contexify-rightSlot-color);display:flex;margin-left:auto}.contexify_separator{background-color:var(--contexify-separator-color);cursor:default;height:1px;margin:var(--contexify-separator-margin)}.contexify_willLeave-disabled{pointer-events:none}.contexify_item{cursor:pointer;position:relative}.contexify_item:focus{outline:0}.contexify_item:focus .contexify_rightSlot,.contexify_item:not(.contexify_item-disabled):hover>.contexify_itemContent .contexify_rightSlot{color:var(--contexify-activeRightSlot-color)}.contexify_item:not(.contexify_item-disabled)[aria-haspopup]>.contexify_itemContent .contexify_rightSlot{color:var(--contexify-arrow-color)}.contexify_item:not(.contexify_item-disabled)[aria-haspopup].contexify_submenu-isOpen>.contexify_itemContent .contexify_rightSlot,.contexify_item:not(.contexify_item-disabled)[aria-haspopup]:hover>.contexify_itemContent .contexify_rightSlot,.contexify_item[aria-haspopup]:focus>.contexify_itemContent .contexify_rightSlot{color:var(--contexify-activeArrow-color)}.contexify_item:not(.contexify_item-disabled):focus>.contexify_itemContent,.contexify_item:not(.contexify_item-disabled):hover>.contexify_itemContent{background-color:var(--contexify-activeItem-bgColor);border-radius:var(--contexify-activeItem-radius);color:var(--contexify-activeItem-color)}.contexify_item:not(.contexify_item-disabled):hover>.contexify_submenu{opacity:1;pointer-events:auto}.contexify_item-disabled{cursor:default;opacity:.5}.contexify_itemContent{align-items:center;color:var(--contexify-item-color);display:flex;padding:var(--contexify-itemContent-padding);position:relative;white-space:nowrap}.contexify_item-feedback{animation:contexify_feedback .12s both}.contexify_theme-dark{--contexify-menu-bgColor:#282828fa;--contexify-separator-color:#4c4c4c;--contexify-item-color:#fff}.contexify_theme-light{--contexify-separator-color:#eee;--contexify-item-color:#666;--contexify-activeItem-color:#3498db;--contexify-activeItem-bgColor:#e0eefd;--contexify-activeRightSlot-color:#3498db;--contexify-active-arrow-color:#3498db}@keyframes contexify_scaleIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:1}}@keyframes contexify_scaleOut{0%{opacity:1}to{opacity:0;transform:scale3d(.3,.3,.3)}}.contexify_willEnter-scale{animation:contexify_scaleIn .3s;transform-origin:top left}.contexify_willLeave-scale{animation:contexify_scaleOut .3s;transform-origin:top left}@keyframes contexify_fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes contexify_fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}.contexify_willEnter-fade{animation:contexify_fadeIn .3s ease}.contexify_willLeave-fade{animation:contexify_fadeOut .3s ease}@keyframes contexify_flipInX{0%{transform:perspective(800px) rotateX(45deg)}to{transform:perspective(800px)}}@keyframes contexify_flipOutX{0%{transform:perspective(800px)}to{opacity:0;transform:perspective(800px) rotateX(45deg)}}.contexify_willEnter-flip{animation:contexify_flipInX .3s}.contexify_willEnter-flip,.contexify_willLeave-flip{backface-visibility:visible!important;transform-origin:top center}.contexify_willLeave-flip{animation:contexify_flipOutX .3s}@keyframes contexify_slideIn{0%{opacity:0;transform:scaleY(.3)}to{opacity:1}}@keyframes contexify_slideOut{0%{opacity:1}to{opacity:0;transform:scaleY(.3)}}.contexify_willEnter-slide{animation:contexify_slideIn .3s;transform-origin:top center}.contexify_willLeave-slide{animation:contexify_slideOut .3s;transform-origin:top center}
1
+ :root{--contexify-zIndex:666;--contexify-menu-minWidth:220px;--contexify-menu-padding:6px;--contexify-menu-radius:6px;--contexify-menu-bgColor:#fff;--contexify-menu-shadow:1px 2px 2px #0000001a,2px 4px 4px #0000001a,3px 6px 6px #0000001a;--contexify-menu-negatePadding:var(--contexify-menu-padding);--contexify-separator-color:#0003;--contexify-separator-margin:5px;--contexify-itemContent-padding:6px;--contexify-activeItem-radius:4px;--contexify-item-color:#333;--contexify-activeItem-color:#fff;--contexify-activeItem-bgColor:#3498db;--contexify-rightSlot-color:#6f6e77;--contexify-activeRightSlot-color:#fff;--contexify-arrow-color:#6f6e77;--contexify-activeArrow-color:#fff}@keyframes contexify_feedback{0%{opacity:.4}to{opacity:1}}.contexify{background-color:var(--contexify-menu-bgColor);border-radius:var(--contexify-menu-radius);box-shadow:var(--contexify-menu-shadow);box-sizing:border-box;min-width:var(--contexify-menu-minWidth);opacity:0;padding:var(--contexify-menu-padding);position:fixed;-webkit-user-select:none;user-select:none;z-index:var(--contexify-zIndex)}.contexify_submenu-isOpen,.contexify_submenu-isOpen>.contexify_itemContent{background-color:var(--contexify-activeItem-bgColor);border-radius:var(--contexify-activeItem-radius);color:var(--contexify-activeItem-color)}.contexify_submenu-isOpen>.contexify_itemContent .contexify_rightSlot{color:var(--contexify-activeArrow-color)}.contexify_submenu-isOpen>.contexify_submenu{opacity:1;pointer-events:auto}.contexify .contexify_submenu{left:100%;pointer-events:none;position:absolute;top:calc(var(--contexify-menu-negatePadding)*-1);transition:opacity .265s}.contexify .contexify_submenu-bottom{bottom:calc(var(--contexify-menu-negatePadding)*-1);top:unset}.contexify .contexify_submenu-right{left:unset;right:100%}.contexify_rightSlot{color:var(--contexify-rightSlot-color);display:flex;margin-left:auto}.contexify_separator{background-color:var(--contexify-separator-color);cursor:default;height:1px;margin:var(--contexify-separator-margin)}.contexify_willLeave-disabled{pointer-events:none}.contexify_item{cursor:pointer;position:relative}.contexify_item:focus{outline:0}.contexify_item:focus .contexify_rightSlot,.contexify_item:not(.contexify_item-disabled):hover>.contexify_itemContent .contexify_rightSlot{color:var(--contexify-activeRightSlot-color)}.contexify_item:not(.contexify_item-disabled)[aria-haspopup]>.contexify_itemContent .contexify_rightSlot{color:var(--contexify-arrow-color)}.contexify_item:not(.contexify_item-disabled)[aria-haspopup].contexify_submenu-isOpen>.contexify_itemContent .contexify_rightSlot,.contexify_item:not(.contexify_item-disabled)[aria-haspopup]:hover>.contexify_itemContent .contexify_rightSlot,.contexify_item[aria-haspopup]:focus>.contexify_itemContent .contexify_rightSlot{color:var(--contexify-activeArrow-color)}.contexify_item:not(.contexify_item-disabled):focus>.contexify_itemContent,.contexify_item:not(.contexify_item-disabled):hover>.contexify_itemContent{background-color:var(--contexify-activeItem-bgColor);border-radius:var(--contexify-activeItem-radius);color:var(--contexify-activeItem-color)}.contexify_item:not(.contexify_item-disabled):hover>.contexify_submenu{opacity:1;pointer-events:auto}.contexify_item-disabled{cursor:default;opacity:.5}.contexify_itemContent{align-items:center;color:var(--contexify-item-color);display:flex;padding:var(--contexify-itemContent-padding);position:relative;white-space:nowrap}.contexify_item-feedback{animation:contexify_feedback .12s both}.contexify_theme-dark{--contexify-menu-bgColor:#282828fa;--contexify-separator-color:#4c4c4c;--contexify-item-color:#fff}.contexify_theme-light{--contexify-separator-color:#eee;--contexify-item-color:#666;--contexify-activeItem-color:#3498db;--contexify-activeItem-bgColor:#e0eefd;--contexify-activeRightSlot-color:#3498db;--contexify-active-arrow-color:#3498db}@keyframes contexify_scaleIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:1}}@keyframes contexify_scaleOut{0%{opacity:1}to{opacity:0;transform:scale3d(.3,.3,.3)}}.contexify_willEnter-scale{animation:contexify_scaleIn .3s;transform-origin:top left}.contexify_willLeave-scale{animation:contexify_scaleOut .3s;transform-origin:top left}@keyframes contexify_fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes contexify_fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}.contexify_willEnter-fade{animation:contexify_fadeIn .3s ease}.contexify_willLeave-fade{animation:contexify_fadeOut .3s ease}@keyframes contexify_flipInX{0%{transform:perspective(800px) rotateX(45deg)}to{transform:perspective(800px)}}@keyframes contexify_flipOutX{0%{transform:perspective(800px)}to{opacity:0;transform:perspective(800px) rotateX(45deg)}}.contexify_willEnter-flip{animation:contexify_flipInX .3s}.contexify_willEnter-flip,.contexify_willLeave-flip{backface-visibility:visible!important;transform-origin:top center}.contexify_willLeave-flip{animation:contexify_flipOutX .3s}@keyframes contexify_slideIn{0%{opacity:0;transform:scaleY(.3)}to{opacity:1}}@keyframes contexify_slideOut{0%{opacity:1}to{opacity:0;transform:scaleY(.3)}}.contexify_willEnter-slide{animation:contexify_slideIn .3s;transform-origin:top center}.contexify_willLeave-slide{animation:contexify_slideOut .3s;transform-origin:top center}.canvas-table-container{-webkit-overflow-scrolling:auto;background:#fff;border:1px solid #dee9f6;box-sizing:border-box;overflow:hidden;overscroll-behavior:contain;position:relative;touch-action:none}.canvas-table-container canvas{cursor:default;touch-action:none}.canvas-table-container .canvas-table-filter-popover{background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.canvas-table-container .canvas-table-filter-popover .ant-checkbox-wrapper{width:100%}.canvas-table-container .canvas-table-filter-popover .ant-checkbox-wrapper:hover{background-color:#f5f5f5}.canvas-table-container .canvas-table-cell-overlay{align-items:center;box-sizing:border-box;display:flex;overflow:hidden;pointer-events:auto;position:absolute}.canvas-table-container .canvas-table-cell-content>*,.canvas-table-container .canvas-table-cell-overlay a,.canvas-table-container .canvas-table-cell-overlay button,.canvas-table-container .canvas-table-cell-overlay input,.canvas-table-container .canvas-table-cell-overlay select,.canvas-table-container .canvas-table-cell-overlay textarea{pointer-events:auto}.canvas-table-container canvas{position:relative;z-index:0}.canvas-table-container.canvas-table--fullscreen{background-color:#fff;bottom:0!important;height:100%!important;left:0!important;margin:0!important;position:fixed!important;right:0!important;top:0!important;width:100%!important;z-index:9999!important}.canvas-table-container .canvas-table--exit-fullscreen{background:#000000b3;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;position:fixed;right:20px;top:20px;transition:background .3s;-webkit-user-select:none;user-select:none;z-index:10000}.canvas-table-container .canvas-table--exit-fullscreen:hover{background:#000000e6}
package/dist/index.es.js CHANGED
@@ -46,6 +46,7 @@ export { default as Watermark } from './es/watermark/watermark.js';
46
46
  export { default as Sortable } from './es/sortable/sortable.js';
47
47
  export { default as ElectronSignatures } from './es/electronsignatures/index.js';
48
48
  export { default as message } from './es/message/index.js';
49
+ export { default as CanvasTable } from './es/canvastable/canvasTable.js';
49
50
  export { Affix, Anchor, AutoComplete, Avatar, BackTop, Badge, Breadcrumb, Card, Carousel, Cascader, Checkbox, Col, Comment, ConfigProvider, Divider, Drawer, Dropdown, Empty, Grid, Image, Layout, List, Mentions, Menu, PageHeader, Popconfirm, Popover, Progress, Radio, Rate, Result, Row, Segmented, Skeleton, Slider, Space, Spin, Statistic, Steps, Switch, Timeline, Tooltip, Transfer, Typography, Upload, notification } from 'antd';
50
51
  export { default as Button } from './es/button/button.js';
51
52
  export { default as NotAuthPage } from './es/notauthpage/notAuthPage.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zmdms-webui",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "private": false,
5
5
  "main": "dist/index.es.js",
6
6
  "module": "dist/index.es.js",
@@ -1,5 +0,0 @@
1
- import { AlertComponent } from './interface.js';
2
-
3
- declare const MemoAlert: AlertComponent;
4
-
5
- export { MemoAlert as default };
@@ -1 +0,0 @@
1
- .ant-alert{font-feature-settings:"tnum";word-wrap:break-word;align-items:center;border-radius:2px;box-sizing:border-box;color:#000000a6;display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:8px 15px;position:relative}.ant-alert-content{flex:1;min-width:0}.ant-alert-icon{margin-right:8px}.ant-alert-description{display:none;font-size:14px;line-height:22px}.ant-alert-success{background-color:#f6ffed;border:1px solid #b7eb8f}.ant-alert-success .ant-alert-icon{color:#52c41a}.ant-alert-info{background-color:#f0f5ff;border:1px solid #d9e3ff}.ant-alert-info .ant-alert-icon{color:#5b76f6}.ant-alert-warning{background-color:#fffbe6;border:1px solid #ffe58f}.ant-alert-warning .ant-alert-icon{color:#faad14}.ant-alert-error{background-color:#fff2f0;border:1px solid #ffccc7}.ant-alert-error .ant-alert-icon{color:#ff4d4f}.ant-alert-error .ant-alert-description>pre{margin:0;padding:0}.ant-alert-action{margin-left:8px}.ant-alert-close-icon{background-color:initial;border:none;cursor:pointer;font-size:12px;line-height:12px;margin-left:8px;outline:none;overflow:hidden;padding:0}.ant-alert-close-icon .anticon-close{color:#00000073;transition:color .3s}.ant-alert-close-icon .anticon-close:hover{color:#000000bf}.ant-alert-close-text{color:#00000073;transition:color .3s}.ant-alert-close-text:hover{color:#000000bf}.ant-alert-with-description{align-items:flex-start;padding:15px 15px 15px 24px}.ant-alert-with-description.ant-alert-no-icon{padding:15px}.ant-alert-with-description .ant-alert-icon{font-size:24px;margin-right:15px}.ant-alert-with-description .ant-alert-message{color:#000000d9;display:block;font-size:16px;margin-bottom:4px}.ant-alert-message{color:#000000d9}.ant-alert-with-description .ant-alert-description{display:block}.ant-alert.ant-alert-motion-leave{opacity:1;overflow:hidden;transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86)}.ant-alert.ant-alert-motion-leave-active{margin-bottom:0!important;max-height:0;opacity:0;padding-bottom:0;padding-top:0}.ant-alert-banner{border:0;border-radius:0;margin-bottom:0}.ant-alert.ant-alert-rtl{direction:rtl}.ant-alert-rtl .ant-alert-icon{margin-left:8px;margin-right:auto}.ant-alert-rtl .ant-alert-action,.ant-alert-rtl .ant-alert-close-icon{margin-left:auto;margin-right:8px}.ant-alert-rtl.ant-alert-with-description{padding-left:15px;padding-right:24px}.ant-alert-rtl.ant-alert-with-description .ant-alert-icon{margin-left:15px;margin-right:auto}.zt-alert{border:none;border-radius:4px}.zt-alert>.anticon{font-size:16px;margin-right:10px}.zt-alert.ant-alert-with-description{padding:8px 15px}.zt-alert.ant-alert-with-description>.anticon{font-size:24px;margin-top:2px}.zt-alert.zt-alert--margin-top{margin-top:10px}.zt-alert.zt-alert--margin-bottom{margin-bottom:10px}.zt-alert.ant-alert-success{background-color:#6c6;color:#fff}.zt-alert.ant-alert-success .ant-alert-message,.zt-alert.ant-alert-success .anticon{color:#fff}.zt-alert.ant-alert-error{background-color:#f66;color:#fff}.zt-alert.ant-alert-error .anticon{color:#fff;margin-top:1px}.zt-alert.ant-alert-error .ant-alert-message{color:#fff}.zt-alert.ant-alert-info,.zt-alert.ant-alert-warning{background-color:#fcecc8;color:#794808}.zt-alert.ant-alert-info .ant-alert-message,.zt-alert.ant-alert-info .anticon,.zt-alert.ant-alert-warning .ant-alert-message,.zt-alert.ant-alert-warning .anticon{color:#794808}
@@ -1,5 +0,0 @@
1
- import MemoAlert from './alert.js';
2
-
3
-
4
-
5
- export { MemoAlert as default };
@@ -1,14 +0,0 @@
1
- import React__default from 'react';
2
- import { Alert } from 'antd';
3
- import { AlertProps } from 'antd/es/alert';
4
-
5
- interface IAlertProps extends AlertProps {
6
- marginTop?: boolean;
7
- marginBottom?: boolean;
8
- }
9
- interface AlertComponent extends React__default.FC<IAlertProps> {
10
- displayName: string;
11
- ErrorBoundary: typeof Alert.ErrorBoundary;
12
- }
13
-
14
- export { AlertComponent, IAlertProps };
@@ -1,11 +0,0 @@
1
- import React__default from 'react';
2
-
3
- interface ILayoutProps {
4
- children?: React__default.ReactNode;
5
- layoutSliderRender?: React__default.ReactNode;
6
- layoutHeaderRender?: React__default.ReactNode;
7
- contentClassName?: string;
8
- }
9
- declare const _default: React__default.NamedExoticComponent<ILayoutProps>;
10
-
11
- export { _default as default };
@@ -1 +0,0 @@
1
- .zmdms-container{background-color:#e9ecf3}.zmdms-container .zmdms-sider{background-color:#5b76f6;background-repeat:no-repeat;background-size:100% auto;background-size:cover;z-index:102}.zmdms-container .zmdms-content{background-color:#e9ecf3}.zmdms-container .zmdms-content--header{align-items:center;background:#fff;display:flex;height:48px;justify-content:space-between;line-height:48px;padding:0 0 0 10px}.zmdms-container .zmdms-content--header .ant-tabs{flex:1;margin-top:8px;width:calc(100% - 350px)}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab>div{padding:0}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab a{color:#768696;display:inline-block;padding:0 10px 0 20px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-nav{margin-bottom:0}.zmdms-container .zmdms-content--content{height:calc(100vh - 48px);position:relative}.zmdms-container .zmdms-content--header-info{color:#000000a6;display:flex;height:48px;max-width:350px}.zmdms-container .zmdms-content--header-info .full-screen{cursor:pointer;text-align:center;width:36px}.zmdms-container .zmdms-content--header-info .user-operation{align-items:center;cursor:pointer;display:flex;padding:0 12px}.zmdms-container .zmdms-content--header-info .user-operation:hover{background-color:#f7f7f7}.zmdms-container .zmdms-content--header-info .user-operation>span:last-child{color:#000000a6;display:inline-block;margin-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:70px}.zmdms-menu{display:flex;flex-direction:column;height:100vh}.zmdms-menu .zmdms-logo{align-items:center;display:block;display:flex;height:48px;padding:9px 0 5px}.zmdms-menu .zmdms-logo.zmdms-logo--line{position:relative;z-index:1000}.zmdms-menu .zmdms-logo.zmdms-logo--line:after{background:#505cbe;content:"";height:29px;position:absolute;right:-.5px;width:1px}.zmdms-menu .zmdms-logo>img{display:block;margin:0 auto;width:78px}.zmdms-menu .zmdms-menu--search{background-color:#5b8af666;position:relative}.zmdms-menu .zmdms-menu--search>input{background-color:#5b8af666;border:none;color:#fff;font-size:13px;height:36px;line-height:36px}.zmdms-menu .zmdms-menu--search>input::placeholder{color:#fff;font-size:13px}.zmdms-menu .zmdms-menu--search .zmdms-menu--search__icon{align-items:center;color:#fff;cursor:pointer;display:flex;font-size:16px;height:30px;justify-content:center;position:absolute;right:0;top:3px;width:30px}.zmdms-menu .zmdms-menu--main{background:#0000;border-right:none;flex:1;overflow-x:hidden;overflow-y:auto}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-hide-bg .ant-menu-item-selected{background:#1566d2!important}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:36px}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu.ant-menu-submenu-open>.ant-menu-submenu-title{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#5b76f5;background-color:#5b8af666;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0;padding:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{color:#ffffffa6;right:6px}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content{flex:none;width:88%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub.ant-menu-inline{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected{background:#5b76f5;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu .zmdms-menu--main>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected{background:#5b76f6;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub{padding:0}.zmdms-menu--sub .ant-drawer-content{background:#0000;background-position:100%;background-repeat:no-repeat;background-size:cover;overflow:hidden}.zmdms-menu--sub .ant-drawer-content .ant-menu{background:#0000;color:#fff}.zmdms-menu--sub.ant-drawer-left>.ant-drawer-content-wrapper{left:-1px}.zmdms-menu--sub .ant-drawer-header{background:#0000;border-bottom:none;padding:0}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title{align-items:center;color:#fff;display:flex;height:48px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title{align-items:center;color:#fff;display:flex;font-size:14px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title img{width:118px}.zmdms-menu--sub .ant-drawer-body{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#5b76f566;font-size:13px;overflow-x:hidden;padding:0}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu.ant-menu-submenu-inline{border-bottom:1px solid #8d9eff47;padding-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline{background:#0000;padding:0 10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-item,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item{align-items:center;border-radius:4px;color:#fff;display:flex;font-size:13px;height:30px;line-height:30px;margin:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:not(:last-child),.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:last-child,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:last-child{margin-bottom:10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title{color:#fff;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-root>.ant-menu-item-only-child{margin-top:2px}.zmdms-menu--sub .ant-drawer-body .ant-menu-root>.ant-menu-item-only-child .ant-menu-title-content{font-weight:700}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected{background-color:#5b76f5!important;color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub .ant-drawer-footer{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#5b76f566;border-top:1px solid #5670ea;display:flex;height:40px;justify-content:center;line-height:40px;padding:3px 10px}.zmdms-menu--sub .ant-drawer-footer .zt-btn-link{color:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content .ant-menu{background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-header{background:#fff;border-bottom:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-track{background:#fff;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb{background:#8695a1;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#727e88}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a:hover{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title{color:#000000a6;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item-selected{background-color:#e6f7ff!important;color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer{-webkit-backdrop-filter:none;backdrop-filter:none;background:none;border-top:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer .zt-btn-link{color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:30px}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.logout-spin{background-color:#ffffffb3;bottom:0;left:0;padding-top:100px;position:fixed;right:0;top:0;z-index:1000}
@@ -1,5 +0,0 @@
1
- import _default from './appLayout.js';
2
-
3
-
4
-
5
- export { _default as default };
@@ -1,16 +0,0 @@
1
- import React__default from 'react';
2
-
3
- interface IProps {
4
- tabs?: any;
5
- activeTab?: any;
6
- deleteTabHandle?: any;
7
- deleteTabsHandle?: any;
8
- setActiveTab?: any;
9
- logout?: () => void;
10
- userInfo?: any;
11
- updatePassword?: Function;
12
- isSaveState?: boolean;
13
- }
14
- declare const _default: React__default.NamedExoticComponent<IProps>;
15
-
16
- export { _default as default };
@@ -1,5 +0,0 @@
1
- import _default from './appLayoutHeader.js';
2
-
3
-
4
-
5
- export { _default as default };
@@ -1,57 +0,0 @@
1
- import React__default from 'react';
2
-
3
- interface ILayoutSiderProps {
4
- siderWidth?: number;
5
- subMenuWidth?: number;
6
- addTab?: any;
7
- siderBg?: any;
8
- logo?: any;
9
- logoStyle?: React__default.CSSProperties;
10
- subMenuLogo?: any;
11
- /** 隐藏二级菜单背景 */
12
- hideSubMenuBg?: boolean;
13
- /** 菜单是否换行显示 */
14
- menuItemLine?: boolean;
15
- /** 二级菜单是否换行显示 */
16
- subMenuItemLine?: boolean;
17
- /**
18
- * 是否显示搜索框
19
- */
20
- isShowSearchInput?: boolean;
21
- /**
22
- * 微应用列表,在qiankun下有用 需要拼接路由前缀
23
- */
24
- apps?: any;
25
- /** 当前选中页签 */
26
- activeTab?: string;
27
- /** 用户一级菜单 */
28
- userMenus?: any;
29
- /** 用户二级菜单 */
30
- userSubMenus?: any;
31
- /** 合并的系统id [[110, 111], [121, 131]] */
32
- mergeSystemIds?: number[][];
33
- /** 合并的系统id对应合并后的系统id ['hr', 'xx'] */
34
- postMergeSystemIds?: (string | number)[];
35
- /** 二级菜单头部内容 */
36
- drawerTitle?: React__default.ReactNode;
37
- /** 初始化选中菜单 */
38
- selectMainMenu?: (activeTab: any) => any;
39
- /** 菜单拼接规则 */
40
- menuJoinRule?: (menuInfo: any, preFix: string) => boolean | string;
41
- /**
42
- * 自定义渲染菜单
43
- * addTab({
44
- key: newPath,
45
- path: newPath,
46
- label: menuItem.name,
47
- })
48
- **/
49
- renderItem?: (path: string, menu: any, onClick: any) => React__default.ReactNode | false;
50
- defaultVisible?: boolean;
51
- defaultFixed?: boolean;
52
- /** 只有当主菜单有对应子菜单数据时,点击时才打开子菜单 */
53
- openOnlyHasSubmenus?: boolean;
54
- }
55
- declare const _default: React__default.NamedExoticComponent<ILayoutSiderProps>;
56
-
57
- export { _default as default };
@@ -1,5 +0,0 @@
1
- import _default from './appLayoutSider.js';
2
-
3
-
4
-
5
- export { _default as default };
@@ -1,5 +0,0 @@
1
- import React__default from 'react';
2
-
3
- declare const AuthLoading: React__default.FC;
4
-
5
- export { AuthLoading as default };
@@ -1 +0,0 @@
1
- .auth-loading{align-items:center;display:flex;flex-direction:column;font-size:20px;height:50vh;justify-content:center;width:100vw}.auth-loading .ant-spin-dot{font-size:18px}.auth-loading .ant-spin-text{font-size:20px}