@cozeloop/components 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +3 -0
  2. package/dist/base-search-select/base-search-form-select.d.ts +3 -0
  3. package/dist/base-search-select/base-search-form-select.js +6 -0
  4. package/dist/base-search-select/base-search-form-select.js.map +1 -0
  5. package/dist/base-search-select/base-search-select.d.ts +9 -0
  6. package/dist/base-search-select/base-search-select.js +125 -0
  7. package/dist/base-search-select/base-search-select.js.map +1 -0
  8. package/dist/base-search-select/index.d.ts +3 -0
  9. package/dist/base-search-select/index.js +3 -0
  10. package/dist/base-search-select/index.js.map +1 -0
  11. package/dist/base-search-select/types.d.ts +10 -0
  12. package/dist/base-search-select/types.js +2 -0
  13. package/dist/base-search-select/types.js.map +1 -0
  14. package/dist/base-search-select/utils.d.ts +8 -0
  15. package/dist/base-search-select/utils.js +48 -0
  16. package/dist/base-search-select/utils.js.map +1 -0
  17. package/dist/code-editor/index.d.ts +3 -0
  18. package/dist/code-editor/index.js +6 -0
  19. package/dist/code-editor/index.js.map +1 -0
  20. package/dist/collapse-card/index.d.ts +13 -0
  21. package/dist/collapse-card/index.js +31 -0
  22. package/dist/collapse-card/index.js.map +1 -0
  23. package/dist/collapsible-card/index.d.ts +13 -0
  24. package/dist/collapsible-card/index.js +13 -0
  25. package/dist/collapsible-card/index.js.map +1 -0
  26. package/dist/column-manage-storage/index.d.ts +11 -0
  27. package/dist/column-manage-storage/index.js +48 -0
  28. package/dist/column-manage-storage/index.js.map +1 -0
  29. package/dist/columns-select/index.d.ts +19 -0
  30. package/dist/columns-select/index.js +79 -0
  31. package/dist/columns-select/index.js.map +1 -0
  32. package/dist/edit-icon-button/index.d.ts +8 -0
  33. package/dist/edit-icon-button/index.js +13 -0
  34. package/dist/edit-icon-button/index.js.map +1 -0
  35. package/dist/es/collapsible-card/index.js +45 -0
  36. package/dist/es/collapsible-card/index.module.js +5 -0
  37. package/dist/es/collapsible-card/index_module.css +48 -0
  38. package/dist/es/column-manage-storage/index.js +73 -0
  39. package/dist/es/columns-select/index.js +219 -0
  40. package/dist/es/hooks/use-infinite-scroll.js +178 -0
  41. package/dist/es/hooks/use-mouse-down-offset.js +41 -0
  42. package/dist/es/id-render/icon-button-container.js +61 -0
  43. package/dist/es/id-render/index.js +78 -0
  44. package/dist/es/index.js +66 -0
  45. package/dist/es/infinite-scroll-table/index.js +98 -0
  46. package/dist/es/input-slider/index.js +123 -0
  47. package/dist/es/input-slider/index.module.js +5 -0
  48. package/dist/es/input-slider/index_module.css +21 -0
  49. package/dist/es/large-txt-render/index.js +38 -0
  50. package/dist/es/page-content/index.js +108 -0
  51. package/dist/es/primary-page/index.js +4 -0
  52. package/dist/es/primary-page/primary-header.js +38 -0
  53. package/dist/es/resize-sidesheet/index.js +100 -0
  54. package/dist/es/resize-sidesheet/index.module.js +5 -0
  55. package/dist/es/resize-sidesheet/index_module.css +9 -0
  56. package/dist/es/resize-sidesheet/use-drag.js +31 -0
  57. package/dist/es/table/index.js +56 -0
  58. package/dist/es/table/index.module.js +5 -0
  59. package/dist/es/table/index_module.css +90 -0
  60. package/dist/es/table/sort-icon.js +105 -0
  61. package/dist/es/table/table-with-pagination.js +112 -0
  62. package/dist/es/table/table-without-pagniation.js +74 -0
  63. package/dist/es/table-col-actions/index.js +103 -0
  64. package/dist/es/table-header/index.js +68 -0
  65. package/dist/es/table-header/index.module.js +5 -0
  66. package/dist/es/table-header/index_module.css +3 -0
  67. package/dist/es/tabs/index.js +42 -0
  68. package/dist/es/tabs/index.module.js +5 -0
  69. package/dist/es/tabs/index_module.css +37 -0
  70. package/dist/es/text-with-copy/index.js +71 -0
  71. package/dist/es/tooltip-with-disabled/index.js +49 -0
  72. package/dist/es/utils/basic.js +44 -0
  73. package/dist/es/utils/rect.js +37 -0
  74. package/dist/hooks/use-infinite-scroll.d.ts +23 -0
  75. package/dist/hooks/use-infinite-scroll.js +133 -0
  76. package/dist/hooks/use-infinite-scroll.js.map +1 -0
  77. package/dist/hooks/use-mouse-down-offset.d.ts +9 -0
  78. package/dist/hooks/use-mouse-down-offset.js +39 -0
  79. package/dist/hooks/use-mouse-down-offset.js.map +1 -0
  80. package/dist/id-render/icon-button-container.d.ts +6 -0
  81. package/dist/id-render/icon-button-container.js +6 -0
  82. package/dist/id-render/icon-button-container.js.map +1 -0
  83. package/dist/id-render/index.d.ts +7 -0
  84. package/dist/id-render/index.js +21 -0
  85. package/dist/id-render/index.js.map +1 -0
  86. package/dist/index.d.ts +19 -0
  87. package/dist/index.js +22 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/infinite-scroll-table/index.d.ts +19 -0
  90. package/dist/infinite-scroll-table/index.js +34 -0
  91. package/dist/infinite-scroll-table/index.js.map +1 -0
  92. package/dist/info-tooltip/index.d.ts +6 -0
  93. package/dist/info-tooltip/index.js +6 -0
  94. package/dist/info-tooltip/index.js.map +1 -0
  95. package/dist/input-slider/index.d.ts +14 -0
  96. package/dist/input-slider/index.js +81 -0
  97. package/dist/input-slider/index.js.map +1 -0
  98. package/dist/jump-button/jump-icon-button.d.ts +4 -0
  99. package/dist/jump-button/jump-icon-button.js +7 -0
  100. package/dist/jump-button/jump-icon-button.js.map +1 -0
  101. package/dist/large-txt-render/index.d.ts +4 -0
  102. package/dist/large-txt-render/index.js +26 -0
  103. package/dist/large-txt-render/index.js.map +1 -0
  104. package/dist/lib/collapsible-card/index.js +79 -0
  105. package/dist/lib/collapsible-card/index.module.js +25 -0
  106. package/dist/lib/collapsible-card/index_module.css +48 -0
  107. package/dist/lib/column-manage-storage/index.js +98 -0
  108. package/dist/lib/columns-select/index.js +241 -0
  109. package/dist/lib/hooks/use-infinite-scroll.js +195 -0
  110. package/dist/lib/hooks/use-mouse-down-offset.js +65 -0
  111. package/dist/lib/id-render/icon-button-container.js +89 -0
  112. package/dist/lib/id-render/index.js +112 -0
  113. package/dist/lib/index.js +110 -0
  114. package/dist/lib/infinite-scroll-table/index.js +126 -0
  115. package/dist/lib/input-slider/index.js +154 -0
  116. package/dist/lib/input-slider/index.module.js +25 -0
  117. package/dist/lib/input-slider/index_module.css +21 -0
  118. package/dist/lib/large-txt-render/index.js +62 -0
  119. package/dist/lib/page-content/index.js +136 -0
  120. package/dist/lib/primary-page/index.js +28 -0
  121. package/dist/lib/primary-page/primary-header.js +72 -0
  122. package/dist/lib/resize-sidesheet/index.js +129 -0
  123. package/dist/lib/resize-sidesheet/index.module.js +25 -0
  124. package/dist/lib/resize-sidesheet/index_module.css +9 -0
  125. package/dist/lib/resize-sidesheet/use-drag.js +55 -0
  126. package/dist/lib/table/index.js +88 -0
  127. package/dist/lib/table/index.module.js +25 -0
  128. package/dist/lib/table/index_module.css +90 -0
  129. package/dist/lib/table/sort-icon.js +137 -0
  130. package/dist/lib/table/table-with-pagination.js +146 -0
  131. package/dist/lib/table/table-without-pagniation.js +108 -0
  132. package/dist/lib/table-col-actions/index.js +123 -0
  133. package/dist/lib/table-header/index.js +96 -0
  134. package/dist/lib/table-header/index.module.js +25 -0
  135. package/dist/lib/table-header/index_module.css +3 -0
  136. package/dist/lib/tabs/index.js +74 -0
  137. package/dist/lib/tabs/index.module.js +25 -0
  138. package/dist/lib/tabs/index_module.css +37 -0
  139. package/dist/lib/text-with-copy/index.js +105 -0
  140. package/dist/lib/tooltip-with-disabled/index.js +71 -0
  141. package/dist/lib/utils/basic.js +78 -0
  142. package/dist/lib/utils/rect.js +65 -0
  143. package/dist/logic-expr/consts.d.ts +4 -0
  144. package/dist/logic-expr/consts.js +5 -0
  145. package/dist/logic-expr/consts.js.map +1 -0
  146. package/dist/logic-expr/expr-group-render.d.ts +2 -0
  147. package/dist/logic-expr/expr-group-render.js +60 -0
  148. package/dist/logic-expr/expr-group-render.js.map +1 -0
  149. package/dist/logic-expr/expr-render.d.ts +2 -0
  150. package/dist/logic-expr/expr-render.js +84 -0
  151. package/dist/logic-expr/expr-render.js.map +1 -0
  152. package/dist/logic-expr/index.d.ts +2 -0
  153. package/dist/logic-expr/index.js +2 -0
  154. package/dist/logic-expr/index.js.map +1 -0
  155. package/dist/logic-expr/logic-expr.d.ts +2 -0
  156. package/dist/logic-expr/logic-expr.js +187 -0
  157. package/dist/logic-expr/logic-expr.js.map +1 -0
  158. package/dist/logic-expr/logic-not.d.ts +10 -0
  159. package/dist/logic-expr/logic-not.js +20 -0
  160. package/dist/logic-expr/logic-not.js.map +1 -0
  161. package/dist/logic-expr/logic-toggle.d.ts +12 -0
  162. package/dist/logic-expr/logic-toggle.js +32 -0
  163. package/dist/logic-expr/logic-toggle.js.map +1 -0
  164. package/dist/logic-expr/types.d.ts +79 -0
  165. package/dist/logic-expr/types.js +2 -0
  166. package/dist/logic-expr/types.js.map +1 -0
  167. package/dist/open-detail-button/index.d.ts +6 -0
  168. package/dist/open-detail-button/index.js +11 -0
  169. package/dist/open-detail-button/index.js.map +1 -0
  170. package/dist/page-content/index.d.ts +20 -0
  171. package/dist/page-content/index.js +23 -0
  172. package/dist/page-content/index.js.map +1 -0
  173. package/dist/primary-page/index.d.ts +1 -0
  174. package/dist/primary-page/index.js +2 -0
  175. package/dist/primary-page/index.js.map +1 -0
  176. package/dist/primary-page/primary-header.d.ts +10 -0
  177. package/dist/primary-page/primary-header.js +4 -0
  178. package/dist/primary-page/primary-header.js.map +1 -0
  179. package/dist/resize-sidesheet/index.d.ts +6 -0
  180. package/dist/resize-sidesheet/index.js +15 -0
  181. package/dist/resize-sidesheet/index.js.map +1 -0
  182. package/dist/resize-sidesheet/use-drag.d.ts +10 -0
  183. package/dist/resize-sidesheet/use-drag.js +25 -0
  184. package/dist/resize-sidesheet/use-drag.js.map +1 -0
  185. package/dist/route/route-back-action.d.ts +6 -0
  186. package/dist/route/route-back-action.js +29 -0
  187. package/dist/route/route-back-action.js.map +1 -0
  188. package/dist/table/index.d.ts +2 -0
  189. package/dist/table/index.js +6 -0
  190. package/dist/table/index.js.map +1 -0
  191. package/dist/table/sort-icon.d.ts +8 -0
  192. package/dist/table/sort-icon.js +30 -0
  193. package/dist/table/sort-icon.js.map +1 -0
  194. package/dist/table/table-with-pagination.d.ts +14 -0
  195. package/dist/table/table-with-pagination.js +55 -0
  196. package/dist/table/table-with-pagination.js.map +1 -0
  197. package/dist/table/table-without-pagniation.d.ts +8 -0
  198. package/dist/table/table-without-pagniation.js +36 -0
  199. package/dist/table/table-without-pagniation.js.map +1 -0
  200. package/dist/table-col-actions/index.d.ts +17 -0
  201. package/dist/table-col-actions/index.js +24 -0
  202. package/dist/table-col-actions/index.js.map +1 -0
  203. package/dist/table-header/index.d.ts +12 -0
  204. package/dist/table-header/index.js +10 -0
  205. package/dist/table-header/index.js.map +1 -0
  206. package/dist/tabs/index.d.ts +2 -0
  207. package/dist/tabs/index.js +9 -0
  208. package/dist/tabs/index.js.map +1 -0
  209. package/dist/text-with-copy/index.d.ts +14 -0
  210. package/dist/text-with-copy/index.js +21 -0
  211. package/dist/text-with-copy/index.js.map +1 -0
  212. package/dist/tooltip-with-disabled/index.d.ts +5 -0
  213. package/dist/tooltip-with-disabled/index.js +9 -0
  214. package/dist/tooltip-with-disabled/index.js.map +1 -0
  215. package/dist/tsconfig.build.tsbuildinfo +1 -0
  216. package/dist/types/collapsible-card/index.d.ts +22 -0
  217. package/dist/types/column-manage-storage/index.d.ts +11 -0
  218. package/dist/types/columns-select/index.d.ts +29 -0
  219. package/dist/types/hooks/use-infinite-scroll.d.ts +23 -0
  220. package/dist/types/hooks/use-mouse-down-offset.d.ts +9 -0
  221. package/dist/types/id-render/icon-button-container.d.ts +12 -0
  222. package/dist/types/id-render/index.d.ts +13 -0
  223. package/dist/types/index.d.ts +19 -0
  224. package/dist/types/infinite-scroll-table/index.d.ts +19 -0
  225. package/dist/types/input-slider/index.d.ts +14 -0
  226. package/dist/types/large-txt-render/index.d.ts +4 -0
  227. package/dist/types/page-content/index.d.ts +36 -0
  228. package/dist/types/primary-page/index.d.ts +1 -0
  229. package/dist/types/primary-page/primary-header.d.ts +17 -0
  230. package/dist/types/resize-sidesheet/index.d.ts +6 -0
  231. package/dist/types/resize-sidesheet/use-drag.d.ts +10 -0
  232. package/dist/types/table/index.d.ts +2 -0
  233. package/dist/types/table/sort-icon.d.ts +13 -0
  234. package/dist/types/table/table-with-pagination.d.ts +14 -0
  235. package/dist/types/table/table-without-pagniation.d.ts +8 -0
  236. package/dist/types/table-col-actions/index.d.ts +21 -0
  237. package/dist/types/table-header/index.d.ts +20 -0
  238. package/dist/types/tabs/index.d.ts +2 -0
  239. package/dist/types/text-with-copy/index.d.ts +24 -0
  240. package/dist/types/tooltip-with-disabled/index.d.ts +9 -0
  241. package/dist/types/utils/basic.d.ts +1 -0
  242. package/dist/types/utils/rect.d.ts +10 -0
  243. package/dist/upload/index.d.ts +9 -0
  244. package/dist/upload/index.js +25 -0
  245. package/dist/upload/index.js.map +1 -0
  246. package/dist/user-profile/index.d.ts +8 -0
  247. package/dist/user-profile/index.js +16 -0
  248. package/dist/user-profile/index.js.map +1 -0
  249. package/dist/user-select/index.d.ts +0 -0
  250. package/dist/user-select/index.js +188 -0
  251. package/dist/user-select/index.js.map +1 -0
  252. package/dist/user-select/user-info.d.ts +8 -0
  253. package/dist/user-select/user-info.js +16 -0
  254. package/dist/user-select/user-info.js.map +1 -0
  255. package/dist/utils/basic.d.ts +1 -0
  256. package/dist/utils/basic.js +24 -0
  257. package/dist/utils/basic.js.map +1 -0
  258. package/dist/utils/rect.d.ts +10 -0
  259. package/dist/utils/rect.js +35 -0
  260. package/dist/utils/rect.js.map +1 -0
  261. package/dist/version-list/version-descriptions.d.ts +15 -0
  262. package/dist/version-list/version-descriptions.js +14 -0
  263. package/dist/version-list/version-descriptions.js.map +1 -0
  264. package/dist/version-list/version-item.d.ts +9 -0
  265. package/dist/version-list/version-item.js +6 -0
  266. package/dist/version-list/version-item.js.map +1 -0
  267. package/dist/version-list/version-list.d.ts +11 -0
  268. package/dist/version-list/version-list.js +11 -0
  269. package/dist/version-list/version-list.js.map +1 -0
  270. package/dist/version-list/version-switch-panel.d.ts +5 -0
  271. package/dist/version-list/version-switch-panel.js +10 -0
  272. package/dist/version-list/version-switch-panel.js.map +1 -0
  273. package/package.json +54 -0
@@ -0,0 +1,5 @@
1
+ import "./index_module.css";
2
+ var index_module_default = { "card": "card_42a41", "card-header": "card-header_42a41", "card-title": "card-title_42a41", "chevron-icon": "chevron-icon_42a41", "chevron-icon-close": "chevron-icon-close_42a41", "card-content": "card-content_42a41", "active": "active_42a41" };
3
+ export {
4
+ index_module_default as default
5
+ };
@@ -0,0 +1,48 @@
1
+ /* stylelint-disable declaration-no-important */
2
+ .card_42a41 {
3
+ background: transparent !important;
4
+ border-radius: 0 !important;
5
+ }
6
+ .card_42a41 .semi-card-body {
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: 8px;
10
+ box-sizing: border-box;
11
+ height: 100%;
12
+ padding: 0;
13
+ }
14
+ .card_42a41 .card-header_42a41 {
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: space-between;
18
+ height: 24px;
19
+ min-height: 24px;
20
+ padding: 10px 20px 0;
21
+ }
22
+ .card_42a41 .card-title_42a41 {
23
+ position: relative;
24
+ display: flex;
25
+ gap: 4px;
26
+ align-items: center;
27
+ font-weight: 600;
28
+ }
29
+ .card_42a41 .card-title_42a41 .chevron-icon_42a41 {
30
+ cursor: pointer;
31
+ transition: transform 0.3s;
32
+ }
33
+ .card_42a41 .card-title_42a41 .chevron-icon_42a41.chevron-icon-close_42a41 {
34
+ transform: rotate(180deg);
35
+ }
36
+ .card_42a41 .card-title_42a41 .chevron-icon_42a41:hover {
37
+ color: var(--semi-color-primary);
38
+ }
39
+ .card_42a41 .card-content_42a41 {
40
+ height: 0;
41
+ opacity: 0;
42
+ transition: height 0.2s, opacity 0.2s;
43
+ }
44
+ .card_42a41 .card-content_42a41.active_42a41 {
45
+ overflow: hidden;
46
+ height: 100%;
47
+ opacity: 1;
48
+ }
@@ -0,0 +1,73 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { isEmpty } from "lodash-es";
21
+ import { safeJsonParse } from "@cozeloop/toolkit";
22
+ const DATASET_COLUMN_STORAGE_KEY = "dataset-column";
23
+ const getColumnManageStorage = (storageKey) => {
24
+ const storage = localStorage.getItem(storageKey);
25
+ return safeJsonParse(storage || "{}") || {};
26
+ };
27
+ const setColumnsManageStorage = (storageKey, columns) => {
28
+ if (!storageKey) {
29
+ return;
30
+ }
31
+ const data = {};
32
+ columns.forEach((column, index) => {
33
+ var _a;
34
+ data[column.key] = {
35
+ index,
36
+ checked: (_a = column.checked) != null ? _a : true
37
+ };
38
+ });
39
+ localStorage.setItem(storageKey, JSON.stringify(data));
40
+ };
41
+ const dealColumnsWithStorage = (storageKey, columns) => {
42
+ const sort = getColumnManageStorage(storageKey);
43
+ if (!sort || isEmpty(sort)) {
44
+ return columns;
45
+ }
46
+ const newColumns = [...columns || []].sort((a, b) => {
47
+ var _a, _b, _c, _d;
48
+ const indexA = (_b = (_a = sort[a.key]) == null ? void 0 : _a.index) != null ? _b : Infinity;
49
+ const indexB = (_d = (_c = sort[b.key]) == null ? void 0 : _c.index) != null ? _d : Infinity;
50
+ if (indexA !== Infinity && indexB !== Infinity) {
51
+ return indexA - indexB;
52
+ }
53
+ if (indexA !== Infinity) {
54
+ return -1;
55
+ }
56
+ if (indexB !== Infinity) {
57
+ return 1;
58
+ }
59
+ return 0;
60
+ });
61
+ return newColumns.map((column) => {
62
+ var _a, _b;
63
+ return __spreadProps(__spreadValues({}, column), {
64
+ checked: (_b = (_a = sort[column.key]) == null ? void 0 : _a.checked) != null ? _b : true
65
+ });
66
+ });
67
+ };
68
+ export {
69
+ DATASET_COLUMN_STORAGE_KEY,
70
+ dealColumnsWithStorage,
71
+ getColumnManageStorage,
72
+ setColumnsManageStorage
73
+ };
@@ -0,0 +1,219 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
21
+ import * as sort from "react-sortable-hoc";
22
+ import { Fragment as Fragment2, useEffect, useMemo, useState } from "react";
23
+ import {
24
+ IconCozHandle,
25
+ IconCozTableSetting
26
+ } from "@coze-arch/coze-design/icons";
27
+ import {
28
+ Button,
29
+ Checkbox,
30
+ Dropdown,
31
+ Typography,
32
+ Divider,
33
+ Tooltip
34
+ } from "@coze-arch/coze-design";
35
+ const { sortableContainer, sortableElement, sortableHandle } = sort;
36
+ const { arrayMove } = sort;
37
+ const ColumnSelector = ({
38
+ columns,
39
+ defaultColumns = columns,
40
+ onChange,
41
+ buttonText,
42
+ resetButtonText = "重置为默认",
43
+ className,
44
+ sortable = true,
45
+ itemRender,
46
+ footerRender
47
+ }) => {
48
+ const [list, setList] = useState(() => [...columns]);
49
+ const selectedKeys = useMemo(
50
+ () => list.filter((item) => item.checked).map((item) => item.key),
51
+ [list]
52
+ );
53
+ const disabledKeys = useMemo(
54
+ () => list.filter((item) => item.disabled).map((item) => item.key),
55
+ [list]
56
+ );
57
+ const DragHandle = sortableHandle(() => /* @__PURE__ */ jsx(
58
+ IconCozHandle,
59
+ {
60
+ className: "cursor-grab",
61
+ "aria-label": "拖动排序",
62
+ role: "button"
63
+ }
64
+ ));
65
+ const RenderItem = (value, slot) => {
66
+ var _a, _b, _c;
67
+ const render = itemRender ? itemRender(value) : null;
68
+ if (render) {
69
+ return render;
70
+ }
71
+ return /* @__PURE__ */ jsx(
72
+ "span",
73
+ {
74
+ className: "group flex items-center justify-between py-1 px-2 text-[var(--coz-fg-primary)] z-[99999] select-none hover:bg-[var(--coz-mg-secondary)] rounded-[6px] cursor-pointer bg-white",
75
+ style: {
76
+ zIndex: 99999
77
+ },
78
+ children: /* @__PURE__ */ jsxs(
79
+ "div",
80
+ {
81
+ className: "flex items-center gap-x-2 max-w-full w-full",
82
+ onClick: () => {
83
+ var _a2, _b2;
84
+ if (disabledKeys.includes((_a2 = value.key) != null ? _a2 : "") || value.disabled) {
85
+ return;
86
+ }
87
+ const newKeys = selectedKeys.includes((_b2 = value.key) != null ? _b2 : "") ? selectedKeys.filter((key) => key !== value.key) : [...selectedKeys, value.key];
88
+ const newColumns = list.map((item) => {
89
+ if (newKeys.includes(item.key)) {
90
+ return __spreadProps(__spreadValues({}, item), {
91
+ checked: true
92
+ });
93
+ }
94
+ return __spreadProps(__spreadValues({}, item), {
95
+ checked: false
96
+ });
97
+ });
98
+ setList(newColumns);
99
+ onChange == null ? void 0 : onChange(newColumns);
100
+ },
101
+ children: [
102
+ /* @__PURE__ */ jsx(
103
+ Checkbox,
104
+ {
105
+ disabled: disabledKeys.includes((_a = value.key) != null ? _a : "") || value.disabled,
106
+ checked: selectedKeys.includes((_b = value.key) != null ? _b : ""),
107
+ "aria-label": `选择${value.value}`
108
+ }
109
+ ),
110
+ /* @__PURE__ */ jsx(
111
+ Typography.Text,
112
+ {
113
+ ellipsis: {
114
+ showTooltip: {
115
+ opts: {
116
+ content: value.value,
117
+ theme: "dark"
118
+ }
119
+ }
120
+ },
121
+ className: "text-[13px] text-[var(--coz-fg-primary)] flex-1 overflow-hidden w-full",
122
+ style: {
123
+ color: disabledKeys.includes((_c = value.key) != null ? _c : "") || value.disabled ? "var(--coz-fg-dim)" : ""
124
+ },
125
+ children: value.value
126
+ }
127
+ ),
128
+ /* @__PURE__ */ jsx("div", { className: "opacity-0 group-hover:opacity-100 transition-opacity flex items-center coz-fg-secondary", children: slot })
129
+ ]
130
+ }
131
+ )
132
+ }
133
+ );
134
+ };
135
+ const SortableItem = sortableElement(
136
+ ({ value }) => RenderItem(value, /* @__PURE__ */ jsx(DragHandle, {}))
137
+ );
138
+ const SortableContainer = sortableContainer(
139
+ ({ children }) => /* @__PURE__ */ jsx("div", { className: "max-w-[200px] w-fit rounded-[6px] py-2 px-1 max-h-[372px] overflow-y-auto flex gap-y-1 flex-col", children })
140
+ );
141
+ const handleSortEnd = ({
142
+ oldIndex,
143
+ newIndex
144
+ }) => {
145
+ const newList = arrayMove(list, oldIndex, newIndex);
146
+ setList(newList);
147
+ onChange == null ? void 0 : onChange(newList);
148
+ };
149
+ const handleReset = () => {
150
+ setList(defaultColumns);
151
+ onChange == null ? void 0 : onChange(defaultColumns);
152
+ };
153
+ useEffect(() => {
154
+ setList(columns);
155
+ }, [columns]);
156
+ return /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsx(
157
+ Dropdown,
158
+ {
159
+ position: "bottomRight",
160
+ render: /* @__PURE__ */ jsxs(
161
+ "div",
162
+ {
163
+ onClick: (event) => {
164
+ event.stopPropagation();
165
+ },
166
+ children: [
167
+ /* @__PURE__ */ jsx(SortableContainer, { onSortEnd: handleSortEnd, useDragHandle: true, children: /* @__PURE__ */ jsx(Fragment, { children: list.map(
168
+ (value, index) => (value == null ? void 0 : value.disabled) || !sortable ? /* @__PURE__ */ jsx(Fragment2, { children: RenderItem(value) }, `item-${value.key}`) : /* @__PURE__ */ jsx(
169
+ SortableItem,
170
+ {
171
+ index,
172
+ value
173
+ },
174
+ `item-${value.key}`
175
+ )
176
+ ) }) }),
177
+ /* @__PURE__ */ jsx(Divider, {}),
178
+ footerRender ? /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
179
+ footerRender(list),
180
+ /* @__PURE__ */ jsx(
181
+ Button,
182
+ {
183
+ color: "secondary",
184
+ type: "secondary",
185
+ className: "text-center flex-1",
186
+ onClick: handleReset,
187
+ children: /* @__PURE__ */ jsx("span", { className: "text-brand font-medium text-[13px]", children: resetButtonText })
188
+ }
189
+ )
190
+ ] }) : /* @__PURE__ */ jsx(
191
+ Button,
192
+ {
193
+ color: "secondary",
194
+ type: "secondary",
195
+ className: "w-full text-center",
196
+ onClick: handleReset,
197
+ children: /* @__PURE__ */ jsx("span", { className: "text-brand font-medium text-[13px]", children: resetButtonText })
198
+ }
199
+ )
200
+ ]
201
+ }
202
+ ),
203
+ trigger: "click",
204
+ children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Tooltip, { content: "列管理", theme: "dark", position: "top", children: /* @__PURE__ */ jsx(
205
+ Button,
206
+ {
207
+ icon: /* @__PURE__ */ jsx(IconCozTableSetting, {}),
208
+ type: "primary",
209
+ color: "primary",
210
+ className: "flex items-center justify-center",
211
+ "aria-label": buttonText
212
+ }
213
+ ) }) })
214
+ }
215
+ ) });
216
+ };
217
+ export {
218
+ ColumnSelector
219
+ };
@@ -0,0 +1,178 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import { useMemo, useState } from "react";
41
+ import { getTargetElement } from "ahooks/lib/utils/domTarget";
42
+ import {
43
+ useEventListener,
44
+ useMemoizedFn,
45
+ useRequest,
46
+ useUpdateEffect
47
+ } from "ahooks";
48
+ import { getClientHeight, getScrollHeight, getScrollTop } from "../utils/rect";
49
+ const useInfiniteScroll = (service, options = {}) => {
50
+ const {
51
+ target,
52
+ isNoMore,
53
+ threshold = 100,
54
+ reloadDeps = [],
55
+ manual,
56
+ onBefore,
57
+ onSuccess,
58
+ onError,
59
+ onFinally
60
+ } = options;
61
+ const [finalData, setFinalData] = useState();
62
+ const [loadingMore, setLoadingMore] = useState(false);
63
+ const noMore = useMemo(() => {
64
+ if (!isNoMore) {
65
+ return false;
66
+ }
67
+ return isNoMore(finalData);
68
+ }, [finalData]);
69
+ const { loading, error, run, runAsync, cancel } = useRequest(
70
+ (lastData) => __async(void 0, null, function* () {
71
+ var _a, _b;
72
+ const currentData = yield service(lastData);
73
+ if (!lastData) {
74
+ setFinalData(__spreadProps(__spreadValues({}, currentData), {
75
+ list: [...(_a = currentData.list) != null ? _a : []]
76
+ }));
77
+ } else {
78
+ setFinalData(__spreadProps(__spreadValues({}, currentData), {
79
+ list: [...(_b = lastData.list) != null ? _b : [], ...currentData.list]
80
+ }));
81
+ }
82
+ return currentData;
83
+ }),
84
+ {
85
+ manual,
86
+ onFinally: (_, d, e) => {
87
+ setLoadingMore(false);
88
+ onFinally == null ? void 0 : onFinally(d, e);
89
+ },
90
+ onBefore: () => onBefore == null ? void 0 : onBefore(),
91
+ onSuccess: (d) => {
92
+ onSuccess == null ? void 0 : onSuccess(d);
93
+ setTimeout(() => {
94
+ checkFirstScreen();
95
+ });
96
+ },
97
+ onError
98
+ }
99
+ );
100
+ const loadMore = useMemoizedFn(() => {
101
+ if (noMore) {
102
+ return;
103
+ }
104
+ setLoadingMore(true);
105
+ run(finalData);
106
+ });
107
+ const loadMoreAsync = useMemoizedFn(() => {
108
+ if (noMore) {
109
+ return Promise.reject();
110
+ }
111
+ setLoadingMore(true);
112
+ return runAsync(finalData);
113
+ });
114
+ const reload = () => {
115
+ setLoadingMore(false);
116
+ setFinalData(void 0);
117
+ return run();
118
+ };
119
+ const reloadAsync = () => {
120
+ setLoadingMore(false);
121
+ return runAsync();
122
+ };
123
+ const checkFirstScreen = () => {
124
+ let el = getTargetElement(target);
125
+ if (!el) {
126
+ return;
127
+ }
128
+ el = el === document ? document.documentElement : el;
129
+ const scrollHeight = getScrollHeight(el);
130
+ const clientHeight = getClientHeight(el);
131
+ if (scrollHeight <= clientHeight) {
132
+ loadMore();
133
+ }
134
+ };
135
+ const scrollMethod = () => {
136
+ let el = getTargetElement(target);
137
+ if (!el) {
138
+ return;
139
+ }
140
+ el = el === document ? document.documentElement : el;
141
+ const scrollTop = getScrollTop(el);
142
+ const scrollHeight = getScrollHeight(el);
143
+ const clientHeight = getClientHeight(el);
144
+ if (scrollHeight - scrollTop <= clientHeight + threshold) {
145
+ loadMore();
146
+ }
147
+ };
148
+ useEventListener(
149
+ "scroll",
150
+ () => {
151
+ if (loading || loadingMore) {
152
+ return;
153
+ }
154
+ scrollMethod();
155
+ },
156
+ { target }
157
+ );
158
+ useUpdateEffect(() => {
159
+ setFinalData(void 0);
160
+ run();
161
+ }, [...reloadDeps]);
162
+ return {
163
+ data: finalData,
164
+ loading: !loadingMore && loading,
165
+ error,
166
+ loadingMore,
167
+ noMore,
168
+ loadMore,
169
+ loadMoreAsync,
170
+ reload: useMemoizedFn(reload),
171
+ reloadAsync: useMemoizedFn(reloadAsync),
172
+ mutate: setFinalData,
173
+ cancel
174
+ };
175
+ };
176
+ export {
177
+ useInfiniteScroll
178
+ };
@@ -0,0 +1,41 @@
1
+ import { useState, useRef, useCallback } from "react";
2
+ import { useLatest, useMemoizedFn } from "ahooks";
3
+ const useMouseDownOffset = (callback) => {
4
+ const [isActive, setIsActive] = useState(false);
5
+ const targetRef = useRef(null);
6
+ const [startPosition, setStartPosition] = useState(null);
7
+ const callbackRef = useLatest(callback);
8
+ const ref = useCallback((node) => {
9
+ if (targetRef.current) {
10
+ targetRef.current.removeEventListener("mousedown", handleMouseDown);
11
+ }
12
+ targetRef.current = node;
13
+ if (targetRef.current) {
14
+ targetRef.current.addEventListener("mousedown", handleMouseDown);
15
+ }
16
+ }, []);
17
+ const handleMouseDown = useMemoizedFn((event) => {
18
+ setIsActive(true);
19
+ setStartPosition({ offsetX: event.clientX, offsetY: event.clientY });
20
+ window.addEventListener("mousemove", handleMouseMove);
21
+ window.addEventListener("mouseup", handleMouseUp);
22
+ });
23
+ const handleMouseMove = useMemoizedFn((event) => {
24
+ if (startPosition) {
25
+ callbackRef.current({
26
+ offsetX: event.clientX - startPosition.offsetX,
27
+ offsetY: event.clientY - startPosition.offsetY
28
+ });
29
+ }
30
+ });
31
+ const handleMouseUp = useMemoizedFn(() => {
32
+ setIsActive(false);
33
+ setStartPosition(null);
34
+ window.removeEventListener("mousemove", handleMouseMove);
35
+ window.removeEventListener("mouseup", handleMouseUp);
36
+ });
37
+ return { isActive, ref };
38
+ };
39
+ export {
40
+ useMouseDownOffset
41
+ };
@@ -0,0 +1,61 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { jsx } from "react/jsx-runtime";
33
+ import cls from "classnames";
34
+ function IconButtonContainer(_a) {
35
+ var _b = _a, {
36
+ icon,
37
+ className,
38
+ style,
39
+ onClick
40
+ } = _b, rest = __objRest(_b, [
41
+ "icon",
42
+ "className",
43
+ "style",
44
+ "onClick"
45
+ ]);
46
+ return /* @__PURE__ */ jsx(
47
+ "div",
48
+ __spreadProps(__spreadValues({}, rest), {
49
+ onClick,
50
+ style,
51
+ className: cls(
52
+ "inline-flex items-center justify-center w-5 h-5 rounded-[4px] cursor-pointer text-[var(--coz-fg-secondary)] hover:text-[var(--coz-fg-primary)] hover:bg-[var(--coz-mg-secondary-hovered)]",
53
+ className
54
+ ),
55
+ children: icon
56
+ })
57
+ );
58
+ }
59
+ export {
60
+ IconButtonContainer as default
61
+ };