@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.
- package/README.md +3 -0
- package/dist/base-search-select/base-search-form-select.d.ts +3 -0
- package/dist/base-search-select/base-search-form-select.js +6 -0
- package/dist/base-search-select/base-search-form-select.js.map +1 -0
- package/dist/base-search-select/base-search-select.d.ts +9 -0
- package/dist/base-search-select/base-search-select.js +125 -0
- package/dist/base-search-select/base-search-select.js.map +1 -0
- package/dist/base-search-select/index.d.ts +3 -0
- package/dist/base-search-select/index.js +3 -0
- package/dist/base-search-select/index.js.map +1 -0
- package/dist/base-search-select/types.d.ts +10 -0
- package/dist/base-search-select/types.js +2 -0
- package/dist/base-search-select/types.js.map +1 -0
- package/dist/base-search-select/utils.d.ts +8 -0
- package/dist/base-search-select/utils.js +48 -0
- package/dist/base-search-select/utils.js.map +1 -0
- package/dist/code-editor/index.d.ts +3 -0
- package/dist/code-editor/index.js +6 -0
- package/dist/code-editor/index.js.map +1 -0
- package/dist/collapse-card/index.d.ts +13 -0
- package/dist/collapse-card/index.js +31 -0
- package/dist/collapse-card/index.js.map +1 -0
- package/dist/collapsible-card/index.d.ts +13 -0
- package/dist/collapsible-card/index.js +13 -0
- package/dist/collapsible-card/index.js.map +1 -0
- package/dist/column-manage-storage/index.d.ts +11 -0
- package/dist/column-manage-storage/index.js +48 -0
- package/dist/column-manage-storage/index.js.map +1 -0
- package/dist/columns-select/index.d.ts +19 -0
- package/dist/columns-select/index.js +79 -0
- package/dist/columns-select/index.js.map +1 -0
- package/dist/edit-icon-button/index.d.ts +8 -0
- package/dist/edit-icon-button/index.js +13 -0
- package/dist/edit-icon-button/index.js.map +1 -0
- package/dist/es/collapsible-card/index.js +45 -0
- package/dist/es/collapsible-card/index.module.js +5 -0
- package/dist/es/collapsible-card/index_module.css +48 -0
- package/dist/es/column-manage-storage/index.js +73 -0
- package/dist/es/columns-select/index.js +219 -0
- package/dist/es/hooks/use-infinite-scroll.js +178 -0
- package/dist/es/hooks/use-mouse-down-offset.js +41 -0
- package/dist/es/id-render/icon-button-container.js +61 -0
- package/dist/es/id-render/index.js +78 -0
- package/dist/es/index.js +66 -0
- package/dist/es/infinite-scroll-table/index.js +98 -0
- package/dist/es/input-slider/index.js +123 -0
- package/dist/es/input-slider/index.module.js +5 -0
- package/dist/es/input-slider/index_module.css +21 -0
- package/dist/es/large-txt-render/index.js +38 -0
- package/dist/es/page-content/index.js +108 -0
- package/dist/es/primary-page/index.js +4 -0
- package/dist/es/primary-page/primary-header.js +38 -0
- package/dist/es/resize-sidesheet/index.js +100 -0
- package/dist/es/resize-sidesheet/index.module.js +5 -0
- package/dist/es/resize-sidesheet/index_module.css +9 -0
- package/dist/es/resize-sidesheet/use-drag.js +31 -0
- package/dist/es/table/index.js +56 -0
- package/dist/es/table/index.module.js +5 -0
- package/dist/es/table/index_module.css +90 -0
- package/dist/es/table/sort-icon.js +105 -0
- package/dist/es/table/table-with-pagination.js +112 -0
- package/dist/es/table/table-without-pagniation.js +74 -0
- package/dist/es/table-col-actions/index.js +103 -0
- package/dist/es/table-header/index.js +68 -0
- package/dist/es/table-header/index.module.js +5 -0
- package/dist/es/table-header/index_module.css +3 -0
- package/dist/es/tabs/index.js +42 -0
- package/dist/es/tabs/index.module.js +5 -0
- package/dist/es/tabs/index_module.css +37 -0
- package/dist/es/text-with-copy/index.js +71 -0
- package/dist/es/tooltip-with-disabled/index.js +49 -0
- package/dist/es/utils/basic.js +44 -0
- package/dist/es/utils/rect.js +37 -0
- package/dist/hooks/use-infinite-scroll.d.ts +23 -0
- package/dist/hooks/use-infinite-scroll.js +133 -0
- package/dist/hooks/use-infinite-scroll.js.map +1 -0
- package/dist/hooks/use-mouse-down-offset.d.ts +9 -0
- package/dist/hooks/use-mouse-down-offset.js +39 -0
- package/dist/hooks/use-mouse-down-offset.js.map +1 -0
- package/dist/id-render/icon-button-container.d.ts +6 -0
- package/dist/id-render/icon-button-container.js +6 -0
- package/dist/id-render/icon-button-container.js.map +1 -0
- package/dist/id-render/index.d.ts +7 -0
- package/dist/id-render/index.js +21 -0
- package/dist/id-render/index.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/infinite-scroll-table/index.d.ts +19 -0
- package/dist/infinite-scroll-table/index.js +34 -0
- package/dist/infinite-scroll-table/index.js.map +1 -0
- package/dist/info-tooltip/index.d.ts +6 -0
- package/dist/info-tooltip/index.js +6 -0
- package/dist/info-tooltip/index.js.map +1 -0
- package/dist/input-slider/index.d.ts +14 -0
- package/dist/input-slider/index.js +81 -0
- package/dist/input-slider/index.js.map +1 -0
- package/dist/jump-button/jump-icon-button.d.ts +4 -0
- package/dist/jump-button/jump-icon-button.js +7 -0
- package/dist/jump-button/jump-icon-button.js.map +1 -0
- package/dist/large-txt-render/index.d.ts +4 -0
- package/dist/large-txt-render/index.js +26 -0
- package/dist/large-txt-render/index.js.map +1 -0
- package/dist/lib/collapsible-card/index.js +79 -0
- package/dist/lib/collapsible-card/index.module.js +25 -0
- package/dist/lib/collapsible-card/index_module.css +48 -0
- package/dist/lib/column-manage-storage/index.js +98 -0
- package/dist/lib/columns-select/index.js +241 -0
- package/dist/lib/hooks/use-infinite-scroll.js +195 -0
- package/dist/lib/hooks/use-mouse-down-offset.js +65 -0
- package/dist/lib/id-render/icon-button-container.js +89 -0
- package/dist/lib/id-render/index.js +112 -0
- package/dist/lib/index.js +110 -0
- package/dist/lib/infinite-scroll-table/index.js +126 -0
- package/dist/lib/input-slider/index.js +154 -0
- package/dist/lib/input-slider/index.module.js +25 -0
- package/dist/lib/input-slider/index_module.css +21 -0
- package/dist/lib/large-txt-render/index.js +62 -0
- package/dist/lib/page-content/index.js +136 -0
- package/dist/lib/primary-page/index.js +28 -0
- package/dist/lib/primary-page/primary-header.js +72 -0
- package/dist/lib/resize-sidesheet/index.js +129 -0
- package/dist/lib/resize-sidesheet/index.module.js +25 -0
- package/dist/lib/resize-sidesheet/index_module.css +9 -0
- package/dist/lib/resize-sidesheet/use-drag.js +55 -0
- package/dist/lib/table/index.js +88 -0
- package/dist/lib/table/index.module.js +25 -0
- package/dist/lib/table/index_module.css +90 -0
- package/dist/lib/table/sort-icon.js +137 -0
- package/dist/lib/table/table-with-pagination.js +146 -0
- package/dist/lib/table/table-without-pagniation.js +108 -0
- package/dist/lib/table-col-actions/index.js +123 -0
- package/dist/lib/table-header/index.js +96 -0
- package/dist/lib/table-header/index.module.js +25 -0
- package/dist/lib/table-header/index_module.css +3 -0
- package/dist/lib/tabs/index.js +74 -0
- package/dist/lib/tabs/index.module.js +25 -0
- package/dist/lib/tabs/index_module.css +37 -0
- package/dist/lib/text-with-copy/index.js +105 -0
- package/dist/lib/tooltip-with-disabled/index.js +71 -0
- package/dist/lib/utils/basic.js +78 -0
- package/dist/lib/utils/rect.js +65 -0
- package/dist/logic-expr/consts.d.ts +4 -0
- package/dist/logic-expr/consts.js +5 -0
- package/dist/logic-expr/consts.js.map +1 -0
- package/dist/logic-expr/expr-group-render.d.ts +2 -0
- package/dist/logic-expr/expr-group-render.js +60 -0
- package/dist/logic-expr/expr-group-render.js.map +1 -0
- package/dist/logic-expr/expr-render.d.ts +2 -0
- package/dist/logic-expr/expr-render.js +84 -0
- package/dist/logic-expr/expr-render.js.map +1 -0
- package/dist/logic-expr/index.d.ts +2 -0
- package/dist/logic-expr/index.js +2 -0
- package/dist/logic-expr/index.js.map +1 -0
- package/dist/logic-expr/logic-expr.d.ts +2 -0
- package/dist/logic-expr/logic-expr.js +187 -0
- package/dist/logic-expr/logic-expr.js.map +1 -0
- package/dist/logic-expr/logic-not.d.ts +10 -0
- package/dist/logic-expr/logic-not.js +20 -0
- package/dist/logic-expr/logic-not.js.map +1 -0
- package/dist/logic-expr/logic-toggle.d.ts +12 -0
- package/dist/logic-expr/logic-toggle.js +32 -0
- package/dist/logic-expr/logic-toggle.js.map +1 -0
- package/dist/logic-expr/types.d.ts +79 -0
- package/dist/logic-expr/types.js +2 -0
- package/dist/logic-expr/types.js.map +1 -0
- package/dist/open-detail-button/index.d.ts +6 -0
- package/dist/open-detail-button/index.js +11 -0
- package/dist/open-detail-button/index.js.map +1 -0
- package/dist/page-content/index.d.ts +20 -0
- package/dist/page-content/index.js +23 -0
- package/dist/page-content/index.js.map +1 -0
- package/dist/primary-page/index.d.ts +1 -0
- package/dist/primary-page/index.js +2 -0
- package/dist/primary-page/index.js.map +1 -0
- package/dist/primary-page/primary-header.d.ts +10 -0
- package/dist/primary-page/primary-header.js +4 -0
- package/dist/primary-page/primary-header.js.map +1 -0
- package/dist/resize-sidesheet/index.d.ts +6 -0
- package/dist/resize-sidesheet/index.js +15 -0
- package/dist/resize-sidesheet/index.js.map +1 -0
- package/dist/resize-sidesheet/use-drag.d.ts +10 -0
- package/dist/resize-sidesheet/use-drag.js +25 -0
- package/dist/resize-sidesheet/use-drag.js.map +1 -0
- package/dist/route/route-back-action.d.ts +6 -0
- package/dist/route/route-back-action.js +29 -0
- package/dist/route/route-back-action.js.map +1 -0
- package/dist/table/index.d.ts +2 -0
- package/dist/table/index.js +6 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table/sort-icon.d.ts +8 -0
- package/dist/table/sort-icon.js +30 -0
- package/dist/table/sort-icon.js.map +1 -0
- package/dist/table/table-with-pagination.d.ts +14 -0
- package/dist/table/table-with-pagination.js +55 -0
- package/dist/table/table-with-pagination.js.map +1 -0
- package/dist/table/table-without-pagniation.d.ts +8 -0
- package/dist/table/table-without-pagniation.js +36 -0
- package/dist/table/table-without-pagniation.js.map +1 -0
- package/dist/table-col-actions/index.d.ts +17 -0
- package/dist/table-col-actions/index.js +24 -0
- package/dist/table-col-actions/index.js.map +1 -0
- package/dist/table-header/index.d.ts +12 -0
- package/dist/table-header/index.js +10 -0
- package/dist/table-header/index.js.map +1 -0
- package/dist/tabs/index.d.ts +2 -0
- package/dist/tabs/index.js +9 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/text-with-copy/index.d.ts +14 -0
- package/dist/text-with-copy/index.js +21 -0
- package/dist/text-with-copy/index.js.map +1 -0
- package/dist/tooltip-with-disabled/index.d.ts +5 -0
- package/dist/tooltip-with-disabled/index.js +9 -0
- package/dist/tooltip-with-disabled/index.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/collapsible-card/index.d.ts +22 -0
- package/dist/types/column-manage-storage/index.d.ts +11 -0
- package/dist/types/columns-select/index.d.ts +29 -0
- package/dist/types/hooks/use-infinite-scroll.d.ts +23 -0
- package/dist/types/hooks/use-mouse-down-offset.d.ts +9 -0
- package/dist/types/id-render/icon-button-container.d.ts +12 -0
- package/dist/types/id-render/index.d.ts +13 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/infinite-scroll-table/index.d.ts +19 -0
- package/dist/types/input-slider/index.d.ts +14 -0
- package/dist/types/large-txt-render/index.d.ts +4 -0
- package/dist/types/page-content/index.d.ts +36 -0
- package/dist/types/primary-page/index.d.ts +1 -0
- package/dist/types/primary-page/primary-header.d.ts +17 -0
- package/dist/types/resize-sidesheet/index.d.ts +6 -0
- package/dist/types/resize-sidesheet/use-drag.d.ts +10 -0
- package/dist/types/table/index.d.ts +2 -0
- package/dist/types/table/sort-icon.d.ts +13 -0
- package/dist/types/table/table-with-pagination.d.ts +14 -0
- package/dist/types/table/table-without-pagniation.d.ts +8 -0
- package/dist/types/table-col-actions/index.d.ts +21 -0
- package/dist/types/table-header/index.d.ts +20 -0
- package/dist/types/tabs/index.d.ts +2 -0
- package/dist/types/text-with-copy/index.d.ts +24 -0
- package/dist/types/tooltip-with-disabled/index.d.ts +9 -0
- package/dist/types/utils/basic.d.ts +1 -0
- package/dist/types/utils/rect.d.ts +10 -0
- package/dist/upload/index.d.ts +9 -0
- package/dist/upload/index.js +25 -0
- package/dist/upload/index.js.map +1 -0
- package/dist/user-profile/index.d.ts +8 -0
- package/dist/user-profile/index.js +16 -0
- package/dist/user-profile/index.js.map +1 -0
- package/dist/user-select/index.d.ts +0 -0
- package/dist/user-select/index.js +188 -0
- package/dist/user-select/index.js.map +1 -0
- package/dist/user-select/user-info.d.ts +8 -0
- package/dist/user-select/user-info.js +16 -0
- package/dist/user-select/user-info.js.map +1 -0
- package/dist/utils/basic.d.ts +1 -0
- package/dist/utils/basic.js +24 -0
- package/dist/utils/basic.js.map +1 -0
- package/dist/utils/rect.d.ts +10 -0
- package/dist/utils/rect.js +35 -0
- package/dist/utils/rect.js.map +1 -0
- package/dist/version-list/version-descriptions.d.ts +15 -0
- package/dist/version-list/version-descriptions.js +14 -0
- package/dist/version-list/version-descriptions.js.map +1 -0
- package/dist/version-list/version-item.d.ts +9 -0
- package/dist/version-list/version-item.js +6 -0
- package/dist/version-list/version-item.js.map +1 -0
- package/dist/version-list/version-list.d.ts +11 -0
- package/dist/version-list/version-list.js +11 -0
- package/dist/version-list/version-list.js.map +1 -0
- package/dist/version-list/version-switch-panel.d.ts +5 -0
- package/dist/version-list/version-switch-panel.js +10 -0
- package/dist/version-list/version-switch-panel.js.map +1 -0
- package/package.json +54 -0
package/README.md
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { withField } from '@coze-arch/coze-design';
|
|
3
|
+
import BaseSearchSelect from './base-search-select';
|
|
4
|
+
const BaseSearchFormSelect = withField((props) => _jsx(BaseSearchSelect, { ...props }));
|
|
5
|
+
export default BaseSearchFormSelect;
|
|
6
|
+
//# sourceMappingURL=base-search-form-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-search-form-select.js","sourceRoot":"","sources":["../../src/base-search-select/base-search-form-select.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AAEpD,MAAM,oBAAoB,GAA8B,SAAS,CAC/D,CAAC,KAAsB,EAAE,EAAE,CAAC,KAAC,gBAAgB,OAAK,KAAK,GAAI,CAC5D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type BaseSelectProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 基础选择器组件
|
|
4
|
+
* 解决两个主要问题:
|
|
5
|
+
* 1. 初始选中值不在第一页数据中导致只显示ID
|
|
6
|
+
* 2. 搜索后选中值不在结果中导致只显示ID
|
|
7
|
+
*/
|
|
8
|
+
declare const BaseSearchSelect: (props: BaseSelectProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export default BaseSearchSelect;
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { isNull, isUndefined } from 'lodash-es';
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
import { useRequest } from 'ahooks';
|
|
7
|
+
import { IconCozRefresh } from '@coze-arch/coze-design/icons';
|
|
8
|
+
import { Select, Tooltip, Button, } from '@coze-arch/coze-design';
|
|
9
|
+
import { getOptionsNotInList, transformValueToArray } from './utils';
|
|
10
|
+
import styles from './index.module.less';
|
|
11
|
+
/**
|
|
12
|
+
* 基础选择器组件
|
|
13
|
+
* 解决两个主要问题:
|
|
14
|
+
* 1. 初始选中值不在第一页数据中导致只显示ID
|
|
15
|
+
* 2. 搜索后选中值不在结果中导致只显示ID
|
|
16
|
+
*/
|
|
17
|
+
// eslint-disable-next-line @coze-arch/max-line-per-function
|
|
18
|
+
const BaseSearchSelect = (props) => {
|
|
19
|
+
const { optionList: _optionList, loadOptionByIds, value, defaultValue, onSearch, renderSelectedItem, onChangeWithObject, onDropdownVisibleChange, showRefreshBtn, onClickRefresh, } = props;
|
|
20
|
+
// 是否在搜索中
|
|
21
|
+
const [searchWord, setSearchWord] = useState('');
|
|
22
|
+
const [refreshFlag, setRefreshFlag] = useState([]);
|
|
23
|
+
const [dropdownVisible, setDropdownVisible] = useState(false);
|
|
24
|
+
const optionMapRef = useRef({});
|
|
25
|
+
const optionList = useMemo(() => _optionList || [], [_optionList]);
|
|
26
|
+
const isOptionListNotExists = useMemo(() => !_optionList, [_optionList]);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (isOptionListNotExists) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// 每次 optionList 变化, 将 optionList 中的 option 添加到 optionMapRef 中缓存
|
|
32
|
+
(optionList || []).forEach(item => {
|
|
33
|
+
optionMapRef.current[item?.value] = item;
|
|
34
|
+
});
|
|
35
|
+
}, [optionList]);
|
|
36
|
+
// 初始化
|
|
37
|
+
useRequest(async () => {
|
|
38
|
+
const initialValue = value || defaultValue;
|
|
39
|
+
// 1. 判断 list 有没有value, 有则不发请求
|
|
40
|
+
if (isUndefined(initialValue) ||
|
|
41
|
+
isNull(initialValue) ||
|
|
42
|
+
initialValue === '' ||
|
|
43
|
+
!loadOptionByIds) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// 2. 判断 optionList 中有没有 value 中不存在的 选项, 有则不发请求
|
|
47
|
+
const optionsNotInList = getOptionsNotInList({
|
|
48
|
+
value: initialValue,
|
|
49
|
+
optionList,
|
|
50
|
+
onChangeWithObject,
|
|
51
|
+
});
|
|
52
|
+
if (optionsNotInList.length === 0) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
const payload = transformValueToArray(value, onChangeWithObject);
|
|
57
|
+
const fetchOptions = await loadOptionByIds(payload);
|
|
58
|
+
if (fetchOptions) {
|
|
59
|
+
setRefreshFlag([]);
|
|
60
|
+
optionMapRef.current = {
|
|
61
|
+
...optionMapRef.current,
|
|
62
|
+
...fetchOptions.reduce((acc, item) => {
|
|
63
|
+
acc[item?.value] = item;
|
|
64
|
+
return acc;
|
|
65
|
+
}, {}),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.error('Failed to load selected option:', error);
|
|
71
|
+
}
|
|
72
|
+
}, {
|
|
73
|
+
refreshDeps: [value],
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* 最后展示的选项
|
|
77
|
+
*/
|
|
78
|
+
const cacheOptions = useMemo(() => {
|
|
79
|
+
// searchWord 表示处于搜索中, 不应该展示不在选项列表中的选项
|
|
80
|
+
if (!value || searchWord) {
|
|
81
|
+
return optionList;
|
|
82
|
+
}
|
|
83
|
+
const optionsNotInList = getOptionsNotInList({
|
|
84
|
+
value,
|
|
85
|
+
optionList,
|
|
86
|
+
onChangeWithObject,
|
|
87
|
+
});
|
|
88
|
+
// value 所有选项都在选项列表中, 直接返回
|
|
89
|
+
if (optionsNotInList.length === 0) {
|
|
90
|
+
return optionList;
|
|
91
|
+
}
|
|
92
|
+
// value 不在选项列表, 则对value进行处理, 前面已经处理为arr了
|
|
93
|
+
// 所以这里可以直接按arr 处理 返回缓存中的选项
|
|
94
|
+
const optionsInCache = optionsNotInList.map(k => optionMapRef.current[k]);
|
|
95
|
+
return [...optionsInCache, ...optionList];
|
|
96
|
+
}, [optionList, value, searchWord, refreshFlag]);
|
|
97
|
+
/**
|
|
98
|
+
* 选中项渲染, 如果list中没有, 从缓存中拿当前的选种值
|
|
99
|
+
*/
|
|
100
|
+
const RenderSelectedItem = useCallback((optionNode, multipleProps) => {
|
|
101
|
+
const renderOpt = optionMapRef.current[optionNode?.value] || optionNode;
|
|
102
|
+
if (renderSelectedItem) {
|
|
103
|
+
return renderSelectedItem(renderOpt, multipleProps);
|
|
104
|
+
}
|
|
105
|
+
// 多选
|
|
106
|
+
if (multipleProps) {
|
|
107
|
+
return {
|
|
108
|
+
isRenderInTag: true,
|
|
109
|
+
content: renderOpt?.label || renderOpt?.value,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return renderOpt?.label || renderOpt?.value;
|
|
113
|
+
}, [renderSelectedItem]);
|
|
114
|
+
return (_jsx(Select, { suffix: showRefreshBtn && dropdownVisible ? (_jsx(Tooltip, { theme: "dark", content: "\u5237\u65B0", children: _jsxs("div", { className: "flex flex-row items-center", children: [_jsx(Button, { className: "!h-6 !w-6", icon: _jsx(IconCozRefresh, {}), size: "small", color: "secondary", onClick: () => onClickRefresh?.() }), _jsx("div", { className: "h-3 w-0 border-0 border-l border-solid coz-stroke-primary ml-[2px]" })] }) })) : null, ...props, onDropdownVisibleChange: visible => {
|
|
115
|
+
setDropdownVisible(visible);
|
|
116
|
+
onDropdownVisibleChange?.(visible);
|
|
117
|
+
}, dropdownClassName: classNames(styles['select-dropdown-style'], props.dropdownClassName), optionList: isOptionListNotExists ? undefined : cacheOptions, renderSelectedItem: RenderSelectedItem, onSearch: (vs, e) => {
|
|
118
|
+
setSearchWord(vs);
|
|
119
|
+
if (onSearch) {
|
|
120
|
+
onSearch?.(vs, e);
|
|
121
|
+
}
|
|
122
|
+
} }));
|
|
123
|
+
};
|
|
124
|
+
export default BaseSearchSelect;
|
|
125
|
+
//# sourceMappingURL=base-search-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-search-select.js","sourceRoot":"","sources":["../../src/base-search-select/base-search-select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base-search-select/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type OptionProps, type SelectProps } from '@coze-arch/coze-design';
|
|
2
|
+
export interface BaseSelectProps extends SelectProps {
|
|
3
|
+
loadOptionByIds?: (ids?: string | number | any[] | Record<string, any> | undefined) => Promise<(OptionProps & {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
})[]>;
|
|
6
|
+
/** 是否显示刷新按钮 */
|
|
7
|
+
showRefreshBtn?: boolean;
|
|
8
|
+
/** 点击刷新按钮的回调 */
|
|
9
|
+
onClickRefresh?: () => void;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/base-search-select/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const transformValueToArray: (value: any, onChangeWithObject?: boolean) => any[];
|
|
2
|
+
export declare const filterValueNotInOptionList: (value: any, optionSet: Set<string | number | undefined>, onChangeWithObject?: boolean) => Int64[];
|
|
3
|
+
export declare const getOptionsNotInList: ({ value, optionList, onChangeWithObject, }: {
|
|
4
|
+
value: any;
|
|
5
|
+
optionList: any[];
|
|
6
|
+
onChangeWithObject?: boolean;
|
|
7
|
+
}) => Int64[];
|
|
8
|
+
export declare const initialValueChecker: (value: any, optionList: any[], onChangeWithObject?: boolean) => any;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
export const transformValueToArray = (value, onChangeWithObject = false) => {
|
|
3
|
+
// 对象传入
|
|
4
|
+
if (onChangeWithObject) {
|
|
5
|
+
// 对象数组
|
|
6
|
+
if (Array.isArray(value)) {
|
|
7
|
+
return value.map(item => item?.value || '').filter(Boolean);
|
|
8
|
+
}
|
|
9
|
+
// 单个对象
|
|
10
|
+
return value?.value ? [value?.value] : [];
|
|
11
|
+
}
|
|
12
|
+
// 普通数组 或 字符串
|
|
13
|
+
return Array.isArray(value) ? value : [value];
|
|
14
|
+
};
|
|
15
|
+
// 过滤 value 中不在 optionlist 中的 option
|
|
16
|
+
export const filterValueNotInOptionList = (value, optionSet, onChangeWithObject = false) => {
|
|
17
|
+
if (onChangeWithObject) {
|
|
18
|
+
// 对象数组
|
|
19
|
+
if (Array.isArray(value)) {
|
|
20
|
+
return value
|
|
21
|
+
.filter(item => !optionSet.has(item?.value))
|
|
22
|
+
.map(it => it?.value);
|
|
23
|
+
}
|
|
24
|
+
// 单个对象
|
|
25
|
+
return optionSet.has(value?.value) ? [] : [value?.value];
|
|
26
|
+
}
|
|
27
|
+
if (Array.isArray(value)) {
|
|
28
|
+
return value.filter(item => !optionSet.has(item));
|
|
29
|
+
}
|
|
30
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
31
|
+
return optionSet.has(value) ? [] : [value];
|
|
32
|
+
}
|
|
33
|
+
return [];
|
|
34
|
+
};
|
|
35
|
+
export const getOptionsNotInList = ({ value, optionList, onChangeWithObject = false, }) => {
|
|
36
|
+
// 集合
|
|
37
|
+
const existingValues = new Set(optionList.map(item => item.value));
|
|
38
|
+
// 找到 value 里面不在选项列表中的选项
|
|
39
|
+
const optionsNotInList = filterValueNotInOptionList(value, existingValues, onChangeWithObject);
|
|
40
|
+
return optionsNotInList;
|
|
41
|
+
};
|
|
42
|
+
export const initialValueChecker = (value, optionList, onChangeWithObject = false) => {
|
|
43
|
+
if (typeof value === 'string') {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return value;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/base-search-select/utils.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAU,EACV,kBAAkB,GAAG,KAAK,EAC1B,EAAE;IACF,OAAO;IACP,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO;QACP,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO;QACP,OAAO,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,CAAC;IACD,aAAa;IACb,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,oCAAoC;AACpC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAU,EACV,SAA2C,EAC3C,kBAAkB,GAAG,KAAK,EACjB,EAAE;IACX,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO;QACP,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK;iBACT,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;iBAC3C,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO;QACP,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,KAAK,EACL,UAAU,EACV,kBAAkB,GAAG,KAAK,GAK3B,EAAE,EAAE;IACH,KAAK;IACL,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,wBAAwB;IACxB,MAAM,gBAAgB,GAAG,0BAA0B,CACjD,KAAK,EACL,cAAc,EACd,kBAAkB,CACnB,CAAC;IACF,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAU,EACV,UAAiB,EACjB,kBAAkB,GAAG,KAAK,EAC1B,EAAE;IACF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/code-editor/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGzE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,CAAC,MAAM,CAAC;IACZ,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE;CAC5B,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface CollapseCardProps {
|
|
2
|
+
className?: string;
|
|
3
|
+
title: React.ReactNode;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
subInfo?: React.ReactNode;
|
|
6
|
+
extra?: React.ReactNode;
|
|
7
|
+
defaultVisible?: boolean;
|
|
8
|
+
visible?: boolean;
|
|
9
|
+
disableCollapse?: boolean;
|
|
10
|
+
onVisibleChange?: (visible: boolean) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const CollapseCard: ({ className, title, children, subInfo, extra, defaultVisible, visible, onVisibleChange, disableCollapse, }: CollapseCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import cn from 'classnames';
|
|
4
|
+
import { IconCozArrowDown } from '@coze-arch/coze-design/icons';
|
|
5
|
+
import { Collapse } from '@coze-arch/coze-design';
|
|
6
|
+
import styles from './index.module.less';
|
|
7
|
+
export const CollapseCard = ({ className, title, children, subInfo, extra, defaultVisible, visible, onVisibleChange, disableCollapse, }) => {
|
|
8
|
+
const [activeKey, setActiveKey] = useState(defaultVisible ? ['1'] : []);
|
|
9
|
+
// 处理受控模式
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (visible !== undefined) {
|
|
12
|
+
setActiveKey(visible ? ['1'] : []);
|
|
13
|
+
}
|
|
14
|
+
}, [visible]);
|
|
15
|
+
const customHeader = (_jsxs("div", { className: "flex items-center justify-between flex-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [title, _jsx(IconCozArrowDown, { className: cn(styles['chevron-icon'], {
|
|
16
|
+
[styles['chevron-icon-close']]: !activeKey.length,
|
|
17
|
+
}) }), subInfo] }), extra] }));
|
|
18
|
+
const handleChange = (keys) => {
|
|
19
|
+
if (visible === undefined) {
|
|
20
|
+
setActiveKey(keys);
|
|
21
|
+
}
|
|
22
|
+
onVisibleChange?.(keys.length > 0);
|
|
23
|
+
};
|
|
24
|
+
if (disableCollapse) {
|
|
25
|
+
return (_jsxs("div", { className: cn('flex flex-col gap-4', className), children: [title, children] }));
|
|
26
|
+
}
|
|
27
|
+
return (_jsx(Collapse, { activeKey: activeKey, onChange: v => handleChange(v), children: _jsx(Collapse.Panel, { className: cn(styles['coze-up-panel'], styles['coze-up-panel-hidden'], {
|
|
28
|
+
className,
|
|
29
|
+
}), header: customHeader, itemKey: "1", showArrow: false, extra: extra, children: children }) }));
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collapse-card/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAczC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAK,EACL,cAAc,EACd,OAAO,EACP,eAAe,EACf,eAAe,GACG,EAAE,EAAE;IACtB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAExE,SAAS;IACT,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,YAAY,GAAG,CACnB,eAAK,SAAS,EAAC,0CAA0C,aACvD,eAAK,SAAS,EAAC,yBAAyB,aACrC,KAAK,EACN,KAAC,gBAAgB,IACf,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;4BACpC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM;yBAClD,CAAC,GACF,EACD,OAAO,IACJ,EACL,KAAK,IACF,CACP,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,EAAE;QACtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,aACjD,KAAK,EACL,QAAQ,IACL,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,QAAQ,IAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAa,CAAC,YACxE,KAAC,QAAQ,CAAC,KAAK,IACb,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE;gBACrE,SAAS;aACV,CAAC,EACF,MAAM,EAAE,YAAY,EACpB,OAAO,EAAC,GAAG,EACX,SAAS,EAAE,KAAK,EAChB,KAAK,EAAE,KAAK,YAEX,QAAQ,GACM,GACR,CACZ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactNode } from 'react';
|
|
2
|
+
interface Props {
|
|
3
|
+
title?: ReactNode;
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
actionBtns?: ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
hideExpand?: boolean;
|
|
9
|
+
isExpand?: boolean;
|
|
10
|
+
setIsExpand?: (isExpand: boolean) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function CollapsibleCard({ title, children, actionBtns, className, style, isExpand, setIsExpand, hideExpand, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import cn from 'classnames';
|
|
3
|
+
import { IconCozArrowUpFill } from '@coze-arch/coze-design/icons';
|
|
4
|
+
import { Card, Typography } from '@coze-arch/coze-design';
|
|
5
|
+
import styles from './index.module.less';
|
|
6
|
+
export function CollapsibleCard({ title, children, actionBtns, className, style, isExpand, setIsExpand, hideExpand, }) {
|
|
7
|
+
return (_jsxs(Card, { className: cn(styles.card, className), style: style, bordered: false, children: [title || actionBtns ? (_jsxs("div", { className: styles['card-header'], children: [_jsxs(Typography.Text, { className: styles['card-title'], children: [title, children && !hideExpand ? (_jsx(IconCozArrowUpFill, { className: cn(styles['chevron-icon'], {
|
|
8
|
+
[styles['chevron-icon-close']]: !isExpand,
|
|
9
|
+
}), onClick: () => setIsExpand?.(!isExpand) })) : null] }), _jsx("div", { children: actionBtns })] })) : null, _jsx("div", { className: cn(styles['card-content'], {
|
|
10
|
+
[styles.active]: isExpand,
|
|
11
|
+
}), children: children })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collapsible-card/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAazC,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,WAAW,EACX,UAAU,GACJ;IACN,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,aACvE,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CACrB,eAAK,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,aACnC,MAAC,UAAU,CAAC,IAAI,IAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,aAC7C,KAAK,EACL,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CACzB,KAAC,kBAAkB,IACjB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;oCACpC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,QAAQ;iCAC1C,CAAC,EACF,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,GACvC,CACH,CAAC,CAAC,CAAC,IAAI,IACQ,EAClB,wBAAM,UAAU,GAAO,IACnB,CACP,CAAC,CAAC,CAAC,IAAI,EACR,cACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;oBACpC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ;iBAC1B,CAAC,YAED,QAAQ,GACL,IACD,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ColumnItem } from '../columns-select';
|
|
2
|
+
export declare const DATASET_COLUMN_STORAGE_KEY = "dataset-column";
|
|
3
|
+
export declare const getColumnManageStorage: (storageKey: string) => any;
|
|
4
|
+
export interface ColumnSort {
|
|
5
|
+
[key: string]: {
|
|
6
|
+
index: number;
|
|
7
|
+
checked: boolean;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export declare const setColumnsManageStorage: (storageKey: string, columns: ColumnItem[]) => void;
|
|
11
|
+
export declare const dealColumnsWithStorage: (storageKey: string, columns: ColumnItem[]) => ColumnItem[];
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { isEmpty } from 'lodash-es';
|
|
2
|
+
import { safeJsonParse } from '@cozeloop/toolkit';
|
|
3
|
+
export const DATASET_COLUMN_STORAGE_KEY = 'dataset-column';
|
|
4
|
+
export const getColumnManageStorage = (storageKey) => {
|
|
5
|
+
const storage = localStorage.getItem(storageKey);
|
|
6
|
+
return safeJsonParse(storage || '{}') || {};
|
|
7
|
+
};
|
|
8
|
+
export const setColumnsManageStorage = (storageKey, columns) => {
|
|
9
|
+
if (!storageKey) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const data = {};
|
|
13
|
+
columns.forEach((column, index) => {
|
|
14
|
+
data[column.key] = {
|
|
15
|
+
index,
|
|
16
|
+
checked: column.checked ?? true,
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
localStorage.setItem(storageKey, JSON.stringify(data));
|
|
20
|
+
};
|
|
21
|
+
export const dealColumnsWithStorage = (storageKey, columns) => {
|
|
22
|
+
const sort = getColumnManageStorage(storageKey);
|
|
23
|
+
if (!sort || isEmpty(sort)) {
|
|
24
|
+
return columns;
|
|
25
|
+
}
|
|
26
|
+
const newColumns = [...(columns || [])].sort((a, b) => {
|
|
27
|
+
const indexA = sort[a.key]?.index ?? Infinity;
|
|
28
|
+
const indexB = sort[b.key]?.index ?? Infinity;
|
|
29
|
+
// 如果两个元素都在 arrayB 中,按照 arrayB 的顺序排序
|
|
30
|
+
if (indexA !== Infinity && indexB !== Infinity) {
|
|
31
|
+
return indexA - indexB;
|
|
32
|
+
}
|
|
33
|
+
// 如果只有一个元素在 arrayB 中,将其排在前面
|
|
34
|
+
if (indexA !== Infinity) {
|
|
35
|
+
return -1;
|
|
36
|
+
}
|
|
37
|
+
if (indexB !== Infinity) {
|
|
38
|
+
return 1;
|
|
39
|
+
}
|
|
40
|
+
// 如果两个元素都不在 arrayB 中,保持原有顺序
|
|
41
|
+
return 0;
|
|
42
|
+
});
|
|
43
|
+
return newColumns.map(column => ({
|
|
44
|
+
...column,
|
|
45
|
+
checked: sort[column.key]?.checked ?? true,
|
|
46
|
+
}));
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/column-manage-storage/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,UAAkB,EAClB,OAAqB,EACrB,EAAE;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;YACjB,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;SAChC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,UAAkB,EAClB,OAAqB,EACP,EAAE;IAChB,MAAM,IAAI,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC;QAC9C,oCAAoC;QACpC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,4BAA4B;QAC5B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,4BAA4B;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,GAAG,MAAM;QACT,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI;KAC3C,CAAC,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ColumnProps } from '@coze-arch/coze-design';
|
|
2
|
+
export interface ColumnItem extends ColumnProps {
|
|
3
|
+
key: string;
|
|
4
|
+
value: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
checked?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface ColumnSelectorProps {
|
|
9
|
+
columns: ColumnItem[];
|
|
10
|
+
onChange?: (items: ColumnItem[]) => void;
|
|
11
|
+
buttonText?: string;
|
|
12
|
+
resetButtonText?: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
sortable?: boolean;
|
|
15
|
+
defaultColumns?: ColumnItem[];
|
|
16
|
+
itemRender?: (item: ColumnItem) => React.ReactNode;
|
|
17
|
+
footerRender?: (item: ColumnItem[]) => React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export declare const ColumnSelector: ({ columns, defaultColumns, onChange, buttonText, resetButtonText, className, sortable, itemRender, footerRender, }: ColumnSelectorProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable @flow-infra/max-line-per-function */
|
|
3
|
+
/* eslint-disable @flow-infra/no-batch-import-or-export */
|
|
4
|
+
import * as sort from 'react-sortable-hoc';
|
|
5
|
+
import { Fragment, useEffect, useMemo, useState } from 'react';
|
|
6
|
+
import { IconCozHandle, IconCozTableSetting, } from '@coze-arch/coze-design/icons';
|
|
7
|
+
import { Button, Checkbox, Dropdown, Typography, Divider, Tooltip, } from '@coze-arch/coze-design';
|
|
8
|
+
// @ts-expect-error react-sortable-hoc ts type issue
|
|
9
|
+
const { sortableContainer, sortableElement, sortableHandle } = sort;
|
|
10
|
+
const { arrayMove } = sort;
|
|
11
|
+
export const ColumnSelector = ({ columns, defaultColumns = columns, onChange, buttonText, resetButtonText = '重置为默认', className, sortable = true, itemRender, footerRender, }) => {
|
|
12
|
+
const [list, setList] = useState(() => [...columns]);
|
|
13
|
+
const selectedKeys = useMemo(() => list.filter(item => item.checked).map(item => item.key), [list]);
|
|
14
|
+
const disabledKeys = useMemo(() => list.filter(item => item.disabled).map(item => item.key), [list]);
|
|
15
|
+
const DragHandle = sortableHandle(() => (_jsx(IconCozHandle, { className: "cursor-grab", "aria-label": "\u62D6\u52A8\u6392\u5E8F", role: "button" })));
|
|
16
|
+
const RenderItem = (value, slot) => {
|
|
17
|
+
// const spanRef = useRef<HTMLSpanElement>(null);
|
|
18
|
+
// const isHovering = useHover(spanRef);
|
|
19
|
+
const render = itemRender ? itemRender(value) : null;
|
|
20
|
+
if (render) {
|
|
21
|
+
return render;
|
|
22
|
+
}
|
|
23
|
+
return (_jsx("span", {
|
|
24
|
+
// ref={spanRef}
|
|
25
|
+
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", style: {
|
|
26
|
+
zIndex: 99999,
|
|
27
|
+
}, children: _jsxs("div", { className: "flex items-center gap-x-2 max-w-full w-full", onClick: () => {
|
|
28
|
+
if (disabledKeys.includes(value.key ?? '') || value.disabled) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const newKeys = selectedKeys.includes(value.key ?? '')
|
|
32
|
+
? selectedKeys.filter(key => key !== value.key)
|
|
33
|
+
: [...selectedKeys, value.key];
|
|
34
|
+
const newColumns = list.map(item => {
|
|
35
|
+
if (newKeys.includes(item.key)) {
|
|
36
|
+
return {
|
|
37
|
+
...item,
|
|
38
|
+
checked: true,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
...item,
|
|
43
|
+
checked: false,
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
setList(newColumns);
|
|
47
|
+
onChange?.(newColumns);
|
|
48
|
+
}, children: [_jsx(Checkbox, { disabled: disabledKeys.includes(value.key ?? '') || value.disabled, checked: selectedKeys.includes(value.key ?? ''), "aria-label": `选择${value.value}` }), _jsx(Typography.Text, { ellipsis: {
|
|
49
|
+
showTooltip: {
|
|
50
|
+
opts: {
|
|
51
|
+
content: value.value,
|
|
52
|
+
theme: 'dark',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
}, className: "text-[13px] text-[var(--coz-fg-primary)] flex-1 overflow-hidden w-full", style: {
|
|
56
|
+
color: disabledKeys.includes(value.key ?? '') || value.disabled
|
|
57
|
+
? 'var(--coz-fg-dim)'
|
|
58
|
+
: '',
|
|
59
|
+
}, children: value.value }), _jsx("div", { className: "opacity-0 group-hover:opacity-100 transition-opacity flex items-center coz-fg-secondary", children: slot })] }) }));
|
|
60
|
+
};
|
|
61
|
+
const SortableItem = sortableElement(({ value }) => RenderItem(value, _jsx(DragHandle, {})));
|
|
62
|
+
const SortableContainer = sortableContainer(({ children }) => (_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: children })));
|
|
63
|
+
const handleSortEnd = ({ oldIndex, newIndex, }) => {
|
|
64
|
+
const newList = arrayMove(list, oldIndex, newIndex);
|
|
65
|
+
setList(newList);
|
|
66
|
+
onChange?.(newList);
|
|
67
|
+
};
|
|
68
|
+
const handleReset = () => {
|
|
69
|
+
setList(defaultColumns);
|
|
70
|
+
onChange?.(defaultColumns);
|
|
71
|
+
};
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
setList(columns);
|
|
74
|
+
}, [columns]);
|
|
75
|
+
return (_jsx("div", { className: className, children: _jsx(Dropdown, { position: "bottomRight", render: _jsxs("div", { onClick: event => {
|
|
76
|
+
event.stopPropagation();
|
|
77
|
+
}, children: [_jsx(SortableContainer, { onSortEnd: handleSortEnd, useDragHandle: true, children: _jsx(_Fragment, { children: list.map((value, index) => value?.disabled || !sortable ? (_jsx(Fragment, { children: RenderItem(value) }, `item-${value.key}`)) : (_jsx(SortableItem, { index: index, value: value }, `item-${value.key}`))) }) }), _jsx(Divider, {}), footerRender ? (_jsxs("div", { className: "flex items-center", children: [footerRender(list), _jsx(Button, { color: "secondary", type: "secondary", className: "text-center flex-1", onClick: handleReset, children: _jsx("span", { className: "text-brand font-medium text-[13px]", children: resetButtonText }) })] })) : (_jsx(Button, { color: "secondary", type: "secondary", className: "w-full text-center", onClick: handleReset, children: _jsx("span", { className: "text-brand font-medium text-[13px]", children: resetButtonText }) }))] }), trigger: "click", children: _jsx("div", { children: _jsx(Tooltip, { content: "\u5217\u7BA1\u7406", theme: "dark", position: "top", children: _jsx(Button, { icon: _jsx(IconCozTableSetting, {}), type: "primary", color: "primary", className: "flex items-center justify-center", "aria-label": buttonText }) }) }) }) }));
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/columns-select/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type MouseEvent } from 'react';
|
|
2
|
+
interface Props {
|
|
3
|
+
className?: string;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
onClick?: (e: MouseEvent<SVGElement>) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function EditIconButton({ disabled, className, onClick }: Props): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { IconCozPencil } from '@coze-arch/coze-design/icons';
|
|
4
|
+
export function EditIconButton({ disabled, className, onClick }) {
|
|
5
|
+
return (_jsx(IconCozPencil, { fontSize: 14, className: classNames('text-[var(--coz-fg-dim)]', disabled
|
|
6
|
+
? 'cursor-not-allowed'
|
|
7
|
+
: 'cursor-pointer hover:text-[rgba(var(--coze-up-brand-9))]', className), onClick: e => {
|
|
8
|
+
if (!disabled) {
|
|
9
|
+
onClick?.(e);
|
|
10
|
+
}
|
|
11
|
+
} }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/edit-icon-button/index.tsx"],"names":[],"mappings":";AAEA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQ7D,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAS;IACpE,OAAO,CACL,KAAC,aAAa,IACZ,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,UAAU,CACnB,0BAA0B,EAC1B,QAAQ;YACN,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,0DAA0D,EAC9D,SAAS,CACV,EACD,OAAO,EAAE,CAAC,CAAC,EAAE;YACX,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC,GACD,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import cn from "classnames";
|
|
3
|
+
import { IconCozArrowUpFill } from "@coze-arch/coze-design/icons";
|
|
4
|
+
import { Card, Typography } from "@coze-arch/coze-design";
|
|
5
|
+
import styles from "./index.module";
|
|
6
|
+
function CollapsibleCard({
|
|
7
|
+
title,
|
|
8
|
+
children,
|
|
9
|
+
actionBtns,
|
|
10
|
+
className,
|
|
11
|
+
style,
|
|
12
|
+
isExpand,
|
|
13
|
+
setIsExpand,
|
|
14
|
+
hideExpand
|
|
15
|
+
}) {
|
|
16
|
+
return /* @__PURE__ */ jsxs(Card, { className: cn(styles.card, className), style, bordered: false, children: [
|
|
17
|
+
title || actionBtns ? /* @__PURE__ */ jsxs("div", { className: styles["card-header"], children: [
|
|
18
|
+
/* @__PURE__ */ jsxs(Typography.Text, { className: styles["card-title"], children: [
|
|
19
|
+
title,
|
|
20
|
+
children && !hideExpand ? /* @__PURE__ */ jsx(
|
|
21
|
+
IconCozArrowUpFill,
|
|
22
|
+
{
|
|
23
|
+
className: cn(styles["chevron-icon"], {
|
|
24
|
+
[styles["chevron-icon-close"]]: !isExpand
|
|
25
|
+
}),
|
|
26
|
+
onClick: () => setIsExpand == null ? void 0 : setIsExpand(!isExpand)
|
|
27
|
+
}
|
|
28
|
+
) : null
|
|
29
|
+
] }),
|
|
30
|
+
/* @__PURE__ */ jsx("div", { children: actionBtns })
|
|
31
|
+
] }) : null,
|
|
32
|
+
/* @__PURE__ */ jsx(
|
|
33
|
+
"div",
|
|
34
|
+
{
|
|
35
|
+
className: cn(styles["card-content"], {
|
|
36
|
+
[styles.active]: isExpand
|
|
37
|
+
}),
|
|
38
|
+
children
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
] });
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
CollapsibleCard
|
|
45
|
+
};
|