@kne/entry-selector 0.2.2 → 0.2.4
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 +381 -56
- package/dist/index.css +39 -23
- package/dist/index.css.map +1 -1
- package/dist/index.js +21 -28
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +7 -4
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
|
|
2
1
|
# entry-selector
|
|
3
2
|
|
|
4
|
-
|
|
5
3
|
### 描述
|
|
6
4
|
|
|
7
5
|
EntrySelector是一个用于选择和管理条目列表的 React 组件。它提供了一个直观的界面,允许用户从可选列表中选择条目,并对已选条目进行管理,包括排序、搜索和删除等操作。
|
|
8
6
|
|
|
9
|
-
|
|
10
7
|
### 安装
|
|
11
8
|
|
|
12
9
|
```shell
|
|
13
10
|
npm i --save @kne/entry-selector
|
|
14
11
|
```
|
|
15
12
|
|
|
16
|
-
|
|
17
13
|
### 概述
|
|
18
14
|
|
|
19
15
|
EntrySelector 是一个用于选择和管理条目列表的 React 组件。它提供了一个直观的界面,允许用户从可选列表中选择条目,并对已选条目进行管理,包括排序、搜索和删除等操作。
|
|
@@ -44,7 +40,6 @@ EntrySelector 适用于需要从预定义列表中选择多个条目并进行排
|
|
|
44
40
|
|
|
45
41
|
### 示例
|
|
46
42
|
|
|
47
|
-
|
|
48
43
|
#### 示例样式
|
|
49
44
|
|
|
50
45
|
```scss
|
|
@@ -57,82 +52,412 @@ EntrySelector 适用于需要从预定义列表中选择多个条目并进行排
|
|
|
57
52
|
|
|
58
53
|
#### 示例代码
|
|
59
54
|
|
|
60
|
-
-
|
|
61
|
-
-
|
|
55
|
+
- 基础用法
|
|
56
|
+
- 展示EntrySelector组件的基本使用,包括条目选择、搜索过滤和拖拽排序功能
|
|
62
57
|
- _EntrySelector(@kne/current-lib_entry-selector)[import * as _EntrySelector from "@kne/entry-selector"],(@kne/current-lib_entry-selector/dist/index.css),antd(antd)
|
|
63
58
|
|
|
64
59
|
```jsx
|
|
65
60
|
const { default: EntrySelector } = _EntrySelector;
|
|
66
|
-
const {
|
|
61
|
+
const { useState } = React;
|
|
62
|
+
const { message } = antd;
|
|
63
|
+
|
|
64
|
+
// 模拟面试题库数据
|
|
65
|
+
const mockQuestionDatabase = [
|
|
66
|
+
{ id: 1, title: '请简单介绍一下你自己', category: '个人介绍', difficulty: '简单' },
|
|
67
|
+
{ id: 2, title: '你认为自己最大的优点和缺点是什么?', category: '性格分析', difficulty: '简单' },
|
|
68
|
+
{ id: 3, title: '请描述一次你成功解决团队冲突的经历', category: '团队协作', difficulty: '中等' },
|
|
69
|
+
{ id: 4, title: '你如何处理工作中的高压情况?请举例说明', category: '压力管理', difficulty: '中等' },
|
|
70
|
+
{ id: 5, title: '请分享一次你快速作出决策的经验', category: '决策能力', difficulty: '中等' },
|
|
71
|
+
{ id: 6, title: '你如何看待加班?如何平衡工作与生活?', category: '工作态度', difficulty: '简单' },
|
|
72
|
+
{ id: 7, title: '描述一次你主动承担责任并超出预期的项目', category: '主动性', difficulty: '困难' },
|
|
73
|
+
{ id: 8, title: '你如何让团队成员有效高质完成工作?', category: '团队管理', difficulty: '困难' }
|
|
74
|
+
];
|
|
67
75
|
|
|
68
76
|
const BaseExample = () => {
|
|
77
|
+
const [selectedQuestions, setSelectedQuestions] = useState([
|
|
78
|
+
{ id: 1, title: '请简单介绍一下你自己' }
|
|
79
|
+
]);
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<EntrySelector
|
|
83
|
+
value={selectedQuestions}
|
|
84
|
+
onChange={value => {
|
|
85
|
+
setSelectedQuestions(value);
|
|
86
|
+
message.success(`已选择 ${value.length} 道题目`);
|
|
87
|
+
}}
|
|
88
|
+
pagination={{ paramsType: 'params' }}
|
|
89
|
+
api={{
|
|
90
|
+
loader: async ({ params }) => {
|
|
91
|
+
// 模拟API请求延迟
|
|
92
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
93
|
+
|
|
94
|
+
const { title } = params || {};
|
|
95
|
+
let filteredData = mockQuestionDatabase;
|
|
96
|
+
|
|
97
|
+
// 根据搜索关键词过滤
|
|
98
|
+
if (title) {
|
|
99
|
+
filteredData = filteredData.filter(
|
|
100
|
+
item => item.title.includes(title) || item.category.includes(title)
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return {
|
|
105
|
+
totalCount: filteredData.length,
|
|
106
|
+
pageData: filteredData
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}}
|
|
110
|
+
getSearchProps={({ searchText }) => {
|
|
111
|
+
return { title: searchText };
|
|
112
|
+
}}
|
|
113
|
+
searchPlaceholder="搜索题目或分类"
|
|
114
|
+
selectedTitle="已选题目(可拖拽排序)"
|
|
115
|
+
listTitle="题目库"
|
|
116
|
+
maxScrollerHeight={600}
|
|
117
|
+
/>
|
|
118
|
+
);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
render(<BaseExample />);
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
- 自定义渲染
|
|
126
|
+
- 展示如何自定义渲染已选条目和可选条目,实现更丰富的交互功能
|
|
127
|
+
- _EntrySelector(@kne/current-lib_entry-selector)[import * as _EntrySelector from "@kne/entry-selector"],(@kne/current-lib_entry-selector/dist/index.css),antd(antd)
|
|
128
|
+
|
|
129
|
+
```jsx
|
|
130
|
+
const { default: EntrySelector } = _EntrySelector;
|
|
131
|
+
const { useState } = React;
|
|
132
|
+
const { Tag, Switch, Flex, message } = antd;
|
|
133
|
+
|
|
134
|
+
// 模拟产品特性数据
|
|
135
|
+
const mockFeatures = [
|
|
136
|
+
{ id: 1, title: '用户注册登录', status: '已完成', priority: 'high', category: '基础功能' },
|
|
137
|
+
{ id: 2, title: '商品搜索与筛选', status: '开发中', priority: 'high', category: '核心功能' },
|
|
138
|
+
{ id: 3, title: '购物车功能', status: '已完成', priority: 'high', category: '核心功能' },
|
|
139
|
+
{ id: 4, title: '订单管理', status: '待开发', priority: 'medium', category: '核心功能' },
|
|
140
|
+
{ id: 5, title: '支付集成', status: '待开发', priority: 'high', category: '核心功能' },
|
|
141
|
+
{ id: 6, title: '用户评价系统', status: '开发中', priority: 'medium', category: '增值功能' },
|
|
142
|
+
{ id: 7, title: '数据统计面板', status: '待开发', priority: 'low', category: '增值功能' },
|
|
143
|
+
{ id: 8, title: '消息推送', status: '已完成', priority: 'medium', category: '增值功能' }
|
|
144
|
+
];
|
|
145
|
+
|
|
146
|
+
const priorityColors = {
|
|
147
|
+
high: 'red',
|
|
148
|
+
medium: 'orange',
|
|
149
|
+
low: 'blue'
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
const statusColors = {
|
|
153
|
+
'已完成': 'green',
|
|
154
|
+
'开发中': 'blue',
|
|
155
|
+
'待开发': 'default'
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
const CustomRenderExample = () => {
|
|
159
|
+
const [selectedFeatures, setSelectedFeatures] = useState([]);
|
|
160
|
+
|
|
161
|
+
return (
|
|
162
|
+
<EntrySelector
|
|
163
|
+
value={selectedFeatures}
|
|
164
|
+
onChange={setSelectedFeatures}
|
|
165
|
+
pagination={{ paramsType: 'params' }}
|
|
166
|
+
api={{
|
|
167
|
+
loader: async ({ params }) => {
|
|
168
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
169
|
+
|
|
170
|
+
const { title } = params || {};
|
|
171
|
+
let filteredData = mockFeatures;
|
|
172
|
+
|
|
173
|
+
if (title) {
|
|
174
|
+
filteredData = filteredData.filter(
|
|
175
|
+
item => item.title.includes(title) || item.category.includes(title)
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return {
|
|
180
|
+
totalCount: filteredData.length,
|
|
181
|
+
pageData: filteredData
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}}
|
|
185
|
+
getSearchProps={({ searchText }) => ({ title: searchText })}
|
|
186
|
+
searchPlaceholder="搜索特性名称或分类"
|
|
187
|
+
selectedTitle="已选特性(需排期开发)"
|
|
188
|
+
// 自定义渲染已选条目:展示优先级开关
|
|
189
|
+
renderSelectedItem={(item, { el, onReplace }) => {
|
|
190
|
+
return (
|
|
191
|
+
<Flex vertical gap={4} style={{ width: '100%' }}>
|
|
192
|
+
{el}
|
|
193
|
+
<Flex align="center" gap={8}>
|
|
194
|
+
<span style={{ fontSize: '12px' }}>高优先级</span>
|
|
195
|
+
<Switch
|
|
196
|
+
size="small"
|
|
197
|
+
checked={item.isPriority}
|
|
198
|
+
onChange={checked => {
|
|
199
|
+
onReplace({ ...item, isPriority: checked });
|
|
200
|
+
message.info(`已${checked ? '开启' : '关闭'} "${item.title}" 的优先级`);
|
|
201
|
+
}}
|
|
202
|
+
/>
|
|
203
|
+
</Flex>
|
|
204
|
+
</Flex>
|
|
205
|
+
);
|
|
206
|
+
}}
|
|
207
|
+
// 自定义渲染可选条目:展示标签和状态
|
|
208
|
+
renderItem={(item, { el }) => {
|
|
209
|
+
return (
|
|
210
|
+
<Flex vertical gap={4}>
|
|
211
|
+
{el}
|
|
212
|
+
<Flex gap={4}>
|
|
213
|
+
<Tag color={statusColors[item.status]} style={{ margin: 0 }}>
|
|
214
|
+
{item.status}
|
|
215
|
+
</Tag>
|
|
216
|
+
<Tag color={priorityColors[item.priority]} style={{ margin: 0 }}>
|
|
217
|
+
{item.priority === 'high' ? '高' : item.priority === 'medium' ? '中' : '低'}
|
|
218
|
+
</Tag>
|
|
219
|
+
<Tag color="purple" style={{ margin: 0 }}>
|
|
220
|
+
{item.category}
|
|
221
|
+
</Tag>
|
|
222
|
+
</Flex>
|
|
223
|
+
</Flex>
|
|
224
|
+
);
|
|
225
|
+
}}
|
|
226
|
+
// 自定义渲染操作选项
|
|
227
|
+
renderOptions={(item, { fetchApi }) => {
|
|
228
|
+
return [
|
|
229
|
+
{
|
|
230
|
+
children: '查看详情',
|
|
231
|
+
onClick: () => {
|
|
232
|
+
message.info(`查看特性:${item.title}`);
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
children: '编辑',
|
|
237
|
+
onClick: () => {
|
|
238
|
+
message.info(`编辑特性:${item.title}`);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
];
|
|
242
|
+
}}
|
|
243
|
+
maxScrollerHeight={600}
|
|
244
|
+
/>
|
|
245
|
+
);
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
render(<CustomRenderExample />);
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
- 完整功能
|
|
253
|
+
- 展示EntrySelector的完整功能,包括添加新条目、操作选项、自定义标题等
|
|
254
|
+
- _EntrySelector(@kne/current-lib_entry-selector)[import * as _EntrySelector from "@kne/entry-selector"],(@kne/current-lib_entry-selector/dist/index.css),antd(antd),remoteLoader(@kne/remote-loader)
|
|
255
|
+
|
|
256
|
+
```jsx
|
|
257
|
+
const { default: EntrySelector } = _EntrySelector;
|
|
258
|
+
const { createWithRemoteLoader } = remoteLoader;
|
|
259
|
+
const { useState } = React;
|
|
260
|
+
const { Button, Modal, Form, Input, Select, message, Tag, Flex } = antd;
|
|
261
|
+
|
|
262
|
+
// 模拟候选人技能数据
|
|
263
|
+
const mockSkillsDatabase = [
|
|
264
|
+
{ id: 1, title: 'JavaScript', level: 'advanced', category: '前端开发' },
|
|
265
|
+
{ id: 2, title: 'TypeScript', level: 'advanced', category: '前端开发' },
|
|
266
|
+
{ id: 3, title: 'React', level: 'advanced', category: '前端框架' },
|
|
267
|
+
{ id: 4, title: 'Vue.js', level: 'intermediate', category: '前端框架' },
|
|
268
|
+
{ id: 5, title: 'Node.js', level: 'advanced', category: '后端开发' },
|
|
269
|
+
{ id: 6, title: 'Python', level: 'intermediate', category: '后端开发' },
|
|
270
|
+
{ id: 7, title: 'MySQL', level: 'advanced', category: '数据库' },
|
|
271
|
+
{ id: 8, title: 'MongoDB', level: 'intermediate', category: '数据库' },
|
|
272
|
+
{ id: 9, title: 'Docker', level: 'intermediate', category: '运维工具' },
|
|
273
|
+
{ id: 10, title: 'Git', level: 'advanced', category: '版本控制' }
|
|
274
|
+
];
|
|
275
|
+
|
|
276
|
+
const levelColors = {
|
|
277
|
+
advanced: 'green',
|
|
278
|
+
intermediate: 'blue',
|
|
279
|
+
beginner: 'orange'
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
const levelLabels = {
|
|
283
|
+
advanced: '精通',
|
|
284
|
+
intermediate: '熟练',
|
|
285
|
+
beginner: '了解'
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
const FullFeaturesExample = createWithRemoteLoader({
|
|
289
|
+
modules: ['components-core:Global@PureGlobal']
|
|
290
|
+
})(({ remoteModules }) => {
|
|
291
|
+
const [PureGlobal] = remoteModules;
|
|
292
|
+
const [selectedSkills, setSelectedSkills] = useState([]);
|
|
293
|
+
const [modalVisible, setModalVisible] = useState(false);
|
|
294
|
+
const [form] = Form.useForm();
|
|
295
|
+
|
|
296
|
+
// 处理添加新技能
|
|
297
|
+
const handleAdd = ({ fetchApi, onChange }) => {
|
|
298
|
+
setModalVisible(true);
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
// 提交新技能
|
|
302
|
+
const handleSubmit = async () => {
|
|
303
|
+
try {
|
|
304
|
+
const values = await form.validateFields();
|
|
305
|
+
const newSkill = {
|
|
306
|
+
id: Date.now(),
|
|
307
|
+
...values,
|
|
308
|
+
isNew: true
|
|
309
|
+
};
|
|
310
|
+
onChange(prev => [...prev, newSkill]);
|
|
311
|
+
message.success(`已添加技能:${values.title}`);
|
|
312
|
+
setModalVisible(false);
|
|
313
|
+
form.resetFields();
|
|
314
|
+
} catch (error) {
|
|
315
|
+
console.error('表单验证失败:', error);
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
|
|
69
319
|
return (
|
|
70
|
-
<
|
|
320
|
+
<PureGlobal
|
|
321
|
+
preset={{
|
|
322
|
+
ajax: async api => {
|
|
323
|
+
return { data: { code: 0, data: api.loader() } };
|
|
324
|
+
}
|
|
325
|
+
}}
|
|
326
|
+
>
|
|
71
327
|
<EntrySelector
|
|
328
|
+
value={selectedSkills}
|
|
329
|
+
onChange={setSelectedSkills}
|
|
330
|
+
// 添加新条目功能
|
|
331
|
+
onAdd={handleAdd}
|
|
332
|
+
// API配置
|
|
72
333
|
pagination={{ paramsType: 'params' }}
|
|
73
334
|
api={{
|
|
74
|
-
loader:
|
|
75
|
-
|
|
335
|
+
loader: async ({ params }) => {
|
|
336
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
337
|
+
|
|
338
|
+
const { title } = params || {};
|
|
339
|
+
let filteredData = mockSkillsDatabase;
|
|
340
|
+
|
|
341
|
+
if (title) {
|
|
342
|
+
filteredData = filteredData.filter(
|
|
343
|
+
item => item.title.toLowerCase().includes(title.toLowerCase()) ||
|
|
344
|
+
item.category.includes(title)
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
|
|
76
348
|
return {
|
|
77
|
-
totalCount:
|
|
78
|
-
pageData:
|
|
79
|
-
{
|
|
80
|
-
id: 1,
|
|
81
|
-
title: '你是什么性格的人?有哪些方面的不足?需要怎样改进?'
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
id: 2,
|
|
85
|
-
title: '你认为如何可以让一个员工有效高质的完成他的工作?'
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
id: 3,
|
|
89
|
-
title: '请分享一次你快速作出决定的经验,当时的情况怎样?你是怎么处理的?'
|
|
90
|
-
}
|
|
91
|
-
].filter(({ title }) => !(data?.params?.title && title.indexOf(data.params.title) === -1))
|
|
349
|
+
totalCount: filteredData.length,
|
|
350
|
+
pageData: filteredData
|
|
92
351
|
};
|
|
93
352
|
}
|
|
94
353
|
}}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
354
|
+
// 搜索配置
|
|
355
|
+
getSearchProps={({ searchText }) => ({ title: searchText })}
|
|
356
|
+
searchPlaceholder="搜索技能名称或分类"
|
|
357
|
+
// 自定义标题
|
|
358
|
+
selectedTitle="候选人技能清单(可拖拽调整顺序)"
|
|
359
|
+
renderListTitle={({ fetchApi, searchProps, setSearchProps }) => (
|
|
360
|
+
<Flex justify="space-between" align="center" style={{ width: '100%' }}>
|
|
361
|
+
<span style={{ fontWeight: 'bold', fontSize: '14px' }}>
|
|
362
|
+
技能库 ({fetchApi.data?.totalCount || 0} 项)
|
|
363
|
+
</span>
|
|
364
|
+
</Flex>
|
|
365
|
+
)}
|
|
366
|
+
// 自定义渲染已选条目
|
|
367
|
+
renderSelectedItem={(item, { el, onReplace }) => (
|
|
368
|
+
<Flex vertical gap={4} style={{ width: '100%' }}>
|
|
369
|
+
{el}
|
|
370
|
+
{item.isNew && <Tag color="cyan" style={{ margin: 0 }}>新增</Tag>}
|
|
371
|
+
</Flex>
|
|
372
|
+
)}
|
|
373
|
+
// 自定义渲染可选条目
|
|
374
|
+
renderItem={(item, { el }) => (
|
|
375
|
+
<Flex vertical gap={4}>
|
|
376
|
+
{el}
|
|
377
|
+
<Flex gap={4}>
|
|
378
|
+
<Tag color={levelColors[item.level]} style={{ margin: 0 }}>
|
|
379
|
+
{levelLabels[item.level]}
|
|
380
|
+
</Tag>
|
|
381
|
+
<Tag color="purple" style={{ margin: 0 }}>
|
|
382
|
+
{item.category}
|
|
383
|
+
</Tag>
|
|
384
|
+
</Flex>
|
|
385
|
+
</Flex>
|
|
386
|
+
)}
|
|
387
|
+
// 操作选项
|
|
118
388
|
options={[
|
|
119
389
|
{
|
|
120
|
-
children: '
|
|
390
|
+
children: '查看详情',
|
|
391
|
+
onClick: (e, item) => {
|
|
392
|
+
Modal.info({
|
|
393
|
+
title: item.title,
|
|
394
|
+
content: (
|
|
395
|
+
<div>
|
|
396
|
+
<p>技能等级:{levelLabels[item.level]}</p>
|
|
397
|
+
<p>所属分类:{item.category}</p>
|
|
398
|
+
</div>
|
|
399
|
+
)
|
|
400
|
+
});
|
|
401
|
+
}
|
|
121
402
|
},
|
|
122
403
|
{
|
|
123
|
-
children: '
|
|
404
|
+
children: '添加到收藏',
|
|
405
|
+
onClick: (e, item) => {
|
|
406
|
+
message.success(`已收藏技能:${item.title}`);
|
|
407
|
+
}
|
|
124
408
|
}
|
|
125
409
|
]}
|
|
410
|
+
maxScrollerHeight={600}
|
|
126
411
|
/>
|
|
127
|
-
|
|
412
|
+
|
|
413
|
+
{/* 添加新技能的弹窗 */}
|
|
414
|
+
<Modal
|
|
415
|
+
title="添加新技能"
|
|
416
|
+
open={modalVisible}
|
|
417
|
+
onOk={handleSubmit}
|
|
418
|
+
onCancel={() => {
|
|
419
|
+
setModalVisible(false);
|
|
420
|
+
form.resetFields();
|
|
421
|
+
}}
|
|
422
|
+
okText="确定"
|
|
423
|
+
cancelText="取消"
|
|
424
|
+
>
|
|
425
|
+
<Form form={form} layout="vertical">
|
|
426
|
+
<Form.Item
|
|
427
|
+
label="技能名称"
|
|
428
|
+
name="title"
|
|
429
|
+
rules={[{ required: true, message: '请输入技能名称' }]}
|
|
430
|
+
>
|
|
431
|
+
<Input placeholder="例如:GraphQL" />
|
|
432
|
+
</Form.Item>
|
|
433
|
+
<Form.Item
|
|
434
|
+
label="熟练程度"
|
|
435
|
+
name="level"
|
|
436
|
+
rules={[{ required: true, message: '请选择熟练程度' }]}
|
|
437
|
+
>
|
|
438
|
+
<Select placeholder="请选择">
|
|
439
|
+
<Select.Option value="beginner">了解</Select.Option>
|
|
440
|
+
<Select.Option value="intermediate">熟练</Select.Option>
|
|
441
|
+
<Select.Option value="advanced">精通</Select.Option>
|
|
442
|
+
</Select>
|
|
443
|
+
</Form.Item>
|
|
444
|
+
<Form.Item
|
|
445
|
+
label="所属分类"
|
|
446
|
+
name="category"
|
|
447
|
+
rules={[{ required: true, message: '请输入所属分类' }]}
|
|
448
|
+
>
|
|
449
|
+
<Input placeholder="例如:前端开发、后端开发" />
|
|
450
|
+
</Form.Item>
|
|
451
|
+
</Form>
|
|
452
|
+
</Modal>
|
|
453
|
+
</PureGlobal>
|
|
128
454
|
);
|
|
129
|
-
};
|
|
455
|
+
});
|
|
130
456
|
|
|
131
|
-
render(<
|
|
457
|
+
render(<FullFeaturesExample />);
|
|
132
458
|
|
|
133
459
|
```
|
|
134
460
|
|
|
135
|
-
|
|
136
461
|
### API
|
|
137
462
|
|
|
138
463
|
### 组件属性
|
|
@@ -170,4 +495,4 @@ render(<BaseExample />);
|
|
|
170
495
|
| add | 添加 | Add |
|
|
171
496
|
| selected | 已选 | Selected |
|
|
172
497
|
| list | 列表 | List |
|
|
173
|
-
| searchPlaceholder | 请输入关键字 | Please input keyword |
|
|
498
|
+
| searchPlaceholder | 请输入关键字 | Please input keyword |
|
package/dist/index.css
CHANGED
|
@@ -1,52 +1,65 @@
|
|
|
1
|
-
.
|
|
1
|
+
.kne-entry-selector_TIU4- {
|
|
2
2
|
background: #f6f7f9;
|
|
3
3
|
border-radius: 12px;
|
|
4
4
|
padding: 16px;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.
|
|
7
|
+
.kne-entry-selector_ZXEhy {
|
|
8
8
|
background: #ffffff;
|
|
9
9
|
border-radius: 12px;
|
|
10
10
|
height: 100%;
|
|
11
11
|
overflow: hidden;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
.
|
|
14
|
+
.kne-entry-selector_JEs2H {
|
|
15
|
+
padding: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.kne-entry-selector_HAF3g {
|
|
15
19
|
padding: 8px 16px;
|
|
16
20
|
border-bottom: 1px solid var(--bg-color-grey-3);
|
|
17
21
|
font-weight: 600;
|
|
22
|
+
white-space: nowrap;
|
|
23
|
+
overflow: hidden;
|
|
24
|
+
text-overflow: ellipsis;
|
|
18
25
|
}
|
|
19
26
|
|
|
20
|
-
.
|
|
27
|
+
.kne-entry-selector_5Xg6J {
|
|
28
|
+
white-space: nowrap;
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
text-overflow: ellipsis;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.kne-entry-selector_VO7i- {
|
|
21
34
|
max-height: var(--max-scroller-height, 800px);
|
|
22
35
|
}
|
|
23
36
|
|
|
24
|
-
.
|
|
37
|
+
.kne-entry-selector_8w58c {
|
|
25
38
|
height: 100%;
|
|
26
39
|
background: #ffffff;
|
|
27
40
|
min-height: 150px;
|
|
28
41
|
}
|
|
29
|
-
.
|
|
42
|
+
.kne-entry-selector_8w58c .ant-list-header {
|
|
30
43
|
padding: 8px 16px;
|
|
31
44
|
font-weight: 600;
|
|
32
45
|
color: var(--primary-color);
|
|
33
46
|
}
|
|
34
|
-
.
|
|
35
|
-
.
|
|
47
|
+
.kne-entry-selector_8w58c .list-item-title,
|
|
48
|
+
.kne-entry-selector_8w58c .list-item-description {
|
|
36
49
|
white-space: pre-wrap;
|
|
37
50
|
}
|
|
38
|
-
.
|
|
51
|
+
.kne-entry-selector_8w58c .list-item-title {
|
|
39
52
|
font-weight: 600;
|
|
40
53
|
}
|
|
41
|
-
.
|
|
54
|
+
.kne-entry-selector_8w58c .list-item-description {
|
|
42
55
|
color: var(--font-color-grey);
|
|
43
56
|
}
|
|
44
57
|
|
|
45
|
-
.
|
|
58
|
+
.kne-entry-selector_9m0I0 .ant-list-item {
|
|
46
59
|
cursor: pointer;
|
|
47
60
|
}
|
|
48
61
|
|
|
49
|
-
.
|
|
62
|
+
.kne-entry-selector_P8KYX {
|
|
50
63
|
width: 20px;
|
|
51
64
|
height: 20px;
|
|
52
65
|
background: var(--primary-color);
|
|
@@ -59,48 +72,51 @@
|
|
|
59
72
|
justify-content: center;
|
|
60
73
|
}
|
|
61
74
|
|
|
62
|
-
.
|
|
75
|
+
.kne-entry-selector_VXH4S {
|
|
76
|
+
align-items: center;
|
|
77
|
+
}
|
|
78
|
+
.kne-entry-selector_VXH4S .list-item-remove-btn {
|
|
63
79
|
opacity: 0;
|
|
64
80
|
flex: none;
|
|
65
81
|
}
|
|
66
|
-
.
|
|
82
|
+
.kne-entry-selector_VXH4S:hover .list-item-remove-btn {
|
|
67
83
|
opacity: 1;
|
|
68
84
|
}
|
|
69
85
|
|
|
70
|
-
.
|
|
86
|
+
.kne-entry-selector_agPfO {
|
|
71
87
|
padding: 0;
|
|
72
88
|
}
|
|
73
89
|
|
|
74
|
-
.
|
|
90
|
+
.kne-entry-selector_iFzfk {
|
|
75
91
|
padding: 8px 14px !important;
|
|
76
92
|
background: #ffffff;
|
|
77
93
|
transition: box-shadow 500ms;
|
|
78
94
|
}
|
|
79
|
-
.
|
|
95
|
+
.kne-entry-selector_iFzfk .ant-checkbox-wrapper {
|
|
80
96
|
flex: 1;
|
|
81
97
|
}
|
|
82
|
-
.
|
|
98
|
+
.kne-entry-selector_iFzfk.kne-entry-selector_uB1q2 .sortable-drag-handle {
|
|
83
99
|
cursor: move !important;
|
|
84
100
|
padding: 12px 2px;
|
|
85
101
|
}
|
|
86
|
-
.
|
|
102
|
+
.kne-entry-selector_iFzfk.kne-entry-selector_uB1q2 .ant-checkbox-wrapper {
|
|
87
103
|
margin-left: 2px;
|
|
88
104
|
}
|
|
89
|
-
.
|
|
105
|
+
.kne-entry-selector_iFzfk:not(.kne-entry-selector_uB1q2) .ant-checkbox-wrapper {
|
|
90
106
|
margin-left: 16px;
|
|
91
107
|
}
|
|
92
108
|
|
|
93
|
-
.
|
|
109
|
+
.kne-entry-selector_WHlyH {
|
|
94
110
|
color: var(--font-color-grey-1);
|
|
95
111
|
}
|
|
96
112
|
|
|
97
|
-
.
|
|
113
|
+
.kne-entry-selector_dxhFH {
|
|
98
114
|
opacity: 1 !important;
|
|
99
115
|
background: rgba(255, 255, 255, 0.9);
|
|
100
116
|
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1);
|
|
101
117
|
}
|
|
102
118
|
|
|
103
|
-
.
|
|
119
|
+
.kne-entry-selector_7ZIH8 {
|
|
104
120
|
background: var(--primary-color-1);
|
|
105
121
|
border: 1px dashed var(--primary-color) !important;
|
|
106
122
|
}
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["style.module.scss"],"names":[],"mappings":"AAAA;EACE,mBAAmB;EACnB,mBAAmB;EACnB,aAAa;AACf;;AAEA;EACE,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,gBAAgB;AAClB;;AAEA;EACE,iBAAiB;EACjB,+CAA+C;EAC/C,gBAAgB;
|
|
1
|
+
{"version":3,"sources":["style.module.scss"],"names":[],"mappings":"AAAA;EACE,mBAAmB;EACnB,mBAAmB;EACnB,aAAa;AACf;;AAEA;EACE,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,gBAAgB;AAClB;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,iBAAiB;EACjB,+CAA+C;EAC/C,gBAAgB;EAChB,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;;AAEA;EACE,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,YAAY;EACZ,mBAAmB;EACnB,iBAAiB;AACnB;AACA;EACE,iBAAiB;EACjB,gBAAgB;EAChB,2BAA2B;AAC7B;AACA;;EAEE,qBAAqB;AACvB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,6BAA6B;AAC/B;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,gCAAgC;EAChC,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,aAAa;EACb,cAAc;EACd,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,mBAAmB;AACrB;AACA;EACE,UAAU;EACV,UAAU;AACZ;AACA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,4BAA4B;EAC5B,mBAAmB;EACnB,4BAA4B;AAC9B;AACA;EACE,OAAO;AACT;AACA;EACE,uBAAuB;EACvB,iBAAiB;AACnB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;;AAEA;EACE,+BAA+B;AACjC;;AAEA;EACE,qBAAqB;EACrB,oCAAoC;EACpC,0CAA0C;AAC5C;;AAEA;EACE,kCAAkC;EAClC,kDAAkD;AACpD","file":"index.css","sourcesContent":[".entry-selector {\n background: #f6f7f9;\n border-radius: 12px;\n padding: 16px;\n}\n\n.list-outer {\n background: #ffffff;\n border-radius: 12px;\n height: 100%;\n overflow: hidden;\n}\n\n.list-header-search {\n padding: 0;\n}\n\n.list-header {\n padding: 8px 16px;\n border-bottom: 1px solid var(--bg-color-grey-3);\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.list-header-title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.list-scroll {\n max-height: var(--max-scroller-height, 800px);\n}\n\n.list {\n height: 100%;\n background: #ffffff;\n min-height: 150px;\n}\n.list :global .ant-list-header {\n padding: 8px 16px;\n font-weight: 600;\n color: var(--primary-color);\n}\n.list :global .list-item-title,\n.list :global .list-item-description {\n white-space: pre-wrap;\n}\n.list :global .list-item-title {\n font-weight: 600;\n}\n.list :global .list-item-description {\n color: var(--font-color-grey);\n}\n\n.list-lib :global .ant-list-item {\n cursor: pointer;\n}\n\n.list-index {\n width: 20px;\n height: 20px;\n background: var(--primary-color);\n color: #ffffff;\n border-radius: 50%;\n margin: 0 6px;\n display: flex;\n flex: 0 0 20px;\n align-items: center;\n justify-content: center;\n}\n\n.list-item-content {\n align-items: center;\n}\n.list-item-content :global(.list-item-remove-btn) {\n opacity: 0;\n flex: none;\n}\n.list-item-content:hover :global(.list-item-remove-btn) {\n opacity: 1;\n}\n\n.columns-control-content-list {\n padding: 0;\n}\n\n.columns-control-content-item {\n padding: 8px 14px !important;\n background: #ffffff;\n transition: box-shadow 500ms;\n}\n.columns-control-content-item :global .ant-checkbox-wrapper {\n flex: 1;\n}\n.columns-control-content-item.is-drag :global .sortable-drag-handle {\n cursor: move !important;\n padding: 12px 2px;\n}\n.columns-control-content-item.is-drag :global .ant-checkbox-wrapper {\n margin-left: 2px;\n}\n.columns-control-content-item:not(.is-drag) :global .ant-checkbox-wrapper {\n margin-left: 16px;\n}\n\n.columns-control-content-item-icon {\n color: var(--font-color-grey-1);\n}\n\n.sortable-drag {\n opacity: 1 !important;\n background: rgba(255, 255, 255, 0.9);\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1);\n}\n\n.sortable-ghost {\n background: var(--primary-color-1);\n border: 1px dashed var(--primary-color) !important;\n}"]}
|
package/dist/index.js
CHANGED
|
@@ -30,15 +30,6 @@ function _extends() {
|
|
|
30
30
|
return n;
|
|
31
31
|
}, _extends.apply(null, arguments);
|
|
32
32
|
}
|
|
33
|
-
function _objectWithoutPropertiesLoose(r, e) {
|
|
34
|
-
if (null == r) return {};
|
|
35
|
-
var t = {};
|
|
36
|
-
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
37
|
-
if (-1 !== e.indexOf(n)) continue;
|
|
38
|
-
t[n] = r[n];
|
|
39
|
-
}
|
|
40
|
-
return t;
|
|
41
|
-
}
|
|
42
33
|
|
|
43
34
|
const locale$1 = {
|
|
44
35
|
add: '添加',
|
|
@@ -54,9 +45,8 @@ const locale = {
|
|
|
54
45
|
searchPlaceholder: 'Please input keyword'
|
|
55
46
|
};
|
|
56
47
|
|
|
57
|
-
var style = {"entry-selector":"
|
|
48
|
+
var style = {"entry-selector":"kne-entry-selector_TIU4-","list-outer":"kne-entry-selector_ZXEhy","list-header-search":"kne-entry-selector_JEs2H","list-header":"kne-entry-selector_HAF3g","list-header-title":"kne-entry-selector_5Xg6J","list-scroll":"kne-entry-selector_VO7i-","list":"kne-entry-selector_8w58c","list-lib":"kne-entry-selector_9m0I0","list-index":"kne-entry-selector_P8KYX","list-item-content":"kne-entry-selector_VXH4S","columns-control-content-list":"kne-entry-selector_agPfO","columns-control-content-item":"kne-entry-selector_iFzfk","is-drag":"kne-entry-selector_uB1q2","columns-control-content-item-icon":"kne-entry-selector_WHlyH","sortable-drag":"kne-entry-selector_dxhFH","sortable-ghost":"kne-entry-selector_7ZIH8"};
|
|
58
49
|
|
|
59
|
-
const _excluded = ["onAdd", "api", "options", "selectedTitle", "listTitle", "renderListTitle", "renderSelectedItem", "renderItem", "renderOptions", "getSearchProps", "searchPlaceholder", "maxScrollerHeight"];
|
|
60
50
|
const EntrySelector = reactIntl.createWithIntlProvider({
|
|
61
51
|
defaultLocale: 'zh-CN',
|
|
62
52
|
messages: {
|
|
@@ -66,20 +56,21 @@ const EntrySelector = reactIntl.createWithIntlProvider({
|
|
|
66
56
|
namespace: 'entry-selector'
|
|
67
57
|
})(_ref => {
|
|
68
58
|
let {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
props
|
|
59
|
+
className,
|
|
60
|
+
onAdd,
|
|
61
|
+
api,
|
|
62
|
+
options,
|
|
63
|
+
selectedTitle,
|
|
64
|
+
listTitle,
|
|
65
|
+
renderListTitle,
|
|
66
|
+
renderSelectedItem,
|
|
67
|
+
renderItem,
|
|
68
|
+
renderOptions,
|
|
69
|
+
getSearchProps,
|
|
70
|
+
searchPlaceholder,
|
|
71
|
+
maxScrollerHeight = 800,
|
|
72
|
+
...props
|
|
73
|
+
} = _ref;
|
|
83
74
|
const [value, onChange] = useControllerValue__default["default"](props);
|
|
84
75
|
const [searchProps, setSearchProps] = React.useState({});
|
|
85
76
|
const {
|
|
@@ -107,9 +98,9 @@ const EntrySelector = reactIntl.createWithIntlProvider({
|
|
|
107
98
|
return /*#__PURE__*/React__default["default"].createElement(antd.Flex, {
|
|
108
99
|
vertical: true,
|
|
109
100
|
gap: 8,
|
|
110
|
-
className: style['entry-selector'],
|
|
101
|
+
className: classnames__default["default"](className, style['entry-selector']),
|
|
111
102
|
style: {
|
|
112
|
-
'--max-scroller-height': maxScrollerHeight
|
|
103
|
+
'--max-scroller-height': `${maxScrollerHeight}px`
|
|
113
104
|
}
|
|
114
105
|
}, typeof onAdd === 'function' && /*#__PURE__*/React__default["default"].createElement(antd.Flex, null, /*#__PURE__*/React__default["default"].createElement(antd.Button, {
|
|
115
106
|
shape: "round",
|
|
@@ -254,7 +245,8 @@ const EntrySelector = reactIntl.createWithIntlProvider({
|
|
|
254
245
|
className: style['list-outer']
|
|
255
246
|
}, /*#__PURE__*/React__default["default"].createElement(antd.Flex, {
|
|
256
247
|
className: style['list-header'],
|
|
257
|
-
justify: "space-between"
|
|
248
|
+
justify: "space-between",
|
|
249
|
+
gap: 8
|
|
258
250
|
}, (() => {
|
|
259
251
|
const defaultTitle = /*#__PURE__*/React__default["default"].createElement("div", {
|
|
260
252
|
className: style['list-header-title']
|
|
@@ -268,6 +260,7 @@ const EntrySelector = reactIntl.createWithIntlProvider({
|
|
|
268
260
|
setSearchProps
|
|
269
261
|
}) || defaultTitle;
|
|
270
262
|
})(), /*#__PURE__*/React__default["default"].createElement("div", null, typeof getSearchProps === 'function' && /*#__PURE__*/React__default["default"].createElement(SearchInput__default["default"], {
|
|
263
|
+
className: style['list-header-search'],
|
|
271
264
|
size: "small",
|
|
272
265
|
placeholder: searchPlaceholder || formatMessage({
|
|
273
266
|
id: 'searchPlaceholder'
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/locale/zh-CN.js","../src/locale/en-US.js","../src/index.js"],"sourcesContent":["const locale = {\n add: '添加',\n selected: '已选择',\n list: '列表',\n searchPlaceholder: '请输入关键字'\n};\n\nexport default locale;\n","const locale = {\n add: 'Add',\n selected: 'Selected',\n list: 'List',\n searchPlaceholder: 'Please input keyword'\n};\n\nexport default locale;\n","import React, { useRef, useState } from 'react';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\nimport { ReactSortable } from 'react-sortablejs';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport { MoreOutlined, HolderOutlined, DeleteOutlined } from '@ant-design/icons';\nimport ButtonGroup, { ConfirmButton } from '@kne/button-group';\nimport useControllerValue from '@kne/use-control-value';\nimport { FetchScrollLoader } from '@kne/scroll-loader';\nimport classnames from 'classnames';\nimport SearchInput from '@kne/search-input';\nimport { Flex, Button, Row, Col, List, Empty, Checkbox } from 'antd';\nimport SimpleBar from 'simplebar-react';\nimport 'simplebar/dist/simplebar.min.css';\nimport '@kne/button-group/dist/index.css';\nimport style from './style.module.scss';\n\nconst EntrySelector = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'entry-selector'\n})(({ onAdd, api, options, selectedTitle, listTitle, renderListTitle, renderSelectedItem, renderItem, renderOptions, getSearchProps, searchPlaceholder, maxScrollerHeight = 800, ...props }) => {\n const [value, onChange] = useControllerValue(props);\n const [searchProps, setSearchProps] = useState({});\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const selectedMappingRef = useRef(new Map());\n const onSelected = item => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n if (index > -1) {\n newValue.splice(index, 1);\n } else {\n newValue.push(Object.assign({}, item));\n }\n\n return newValue;\n });\n };\n\n return (\n <Flex\n vertical\n gap={8}\n className={style['entry-selector']}\n style={{\n '--max-scroller-height': `${maxScrollerHeight}px`\n }}\n >\n {typeof onAdd === 'function' && (\n <Flex>\n <Button\n shape=\"round\"\n size=\"small\"\n type=\"primary\"\n onClick={() => {\n onAdd({ fetchApi: ref.current, value, onChange });\n }}\n >\n {formatMessage({ id: 'add' })}\n </Button>\n </Flex>\n )}\n <FetchScrollLoader\n {...props}\n completeTips={null}\n searchProps={searchProps}\n getSearchProps={getSearchProps}\n api={api}\n ref={ref}\n className={style['list-scroll']}\n autoHide={false}\n render={({ fetchApi, children }) => {\n const { data } = fetchApi;\n const { pageData, totalCount } = Object.assign(\n {},\n {\n pageData: [],\n totalCount: 0\n },\n data\n );\n pageData.forEach(item => {\n selectedMappingRef.current.set(item.id, item);\n });\n const listMapping = selectedMappingRef.current;\n const currentList = (value || []).map(item => Object.assign({}, listMapping.get(item.id) || item));\n return (\n <Row gutter={[12, 12]}>\n <Col span={12}>\n <div className={style['list-outer']}>\n {totalCount > 0 && <div className={style['list-header']}>{selectedTitle || formatMessage({ id: 'selected' })}</div>}\n <SimpleBar className={style['list-scroll']} autoHide={false}>\n {value && value.length > 0 ? (\n <List className={style['list']} size=\"small\">\n <ReactSortable\n filter=\".sortable-ignore-elements\"\n handle=\".sortable-drag-handle\"\n dragClass={style['sortable-drag']}\n ghostClass={style['sortable-ghost']}\n forceFallback\n animation={300}\n delayOnTouchStart\n delay={2}\n list={currentList}\n setList={list => {\n onChange(value => {\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return list.map(({ id }) => {\n return mapping.get(id);\n });\n });\n }}\n >\n {currentList.map((item, index) => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const removeOption = (\n <ConfirmButton\n color=\"danger\"\n variant=\"filled\"\n className={'list-item-remove-btn'}\n icon={<DeleteOutlined />}\n onClick={() => {\n onSelected(item);\n }}\n />\n );\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return (\n <List.Item key={item.id} className={classnames(style['columns-control-content-item'], style['is-drag'])}>\n <HolderOutlined className={classnames('sortable-drag-handle', style['columns-control-content-item-icon'])} />\n <div className={style['list-index']}>{index + 1}</div>\n <Flex justify=\"space-between\" gap={8} flex={1} className={style['list-item-content']}>\n <Flex vertical flex={1}>\n {typeof renderSelectedItem === 'function'\n ? renderSelectedItem(mapping.get(item.id), {\n el: defaultItem,\n removeOptionEl: removeOption,\n target: item,\n fetchApi,\n searchProps,\n setSearchProps,\n onChange,\n onSelected,\n onReplace: targetItem => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n const currentItem = newValue[index];\n if (index > -1) {\n newValue.splice(index, 1, Object.assign({}, typeof targetItem === 'function' ? targetItem(currentItem) : targetItem));\n }\n return newValue;\n });\n }\n })\n : defaultItem}\n </Flex>\n {removeOption}\n </Flex>\n </List.Item>\n );\n })}\n </ReactSortable>\n </List>\n ) : (\n <Flex className={style['list']} justify=\"center\" align=\"center\">\n <Empty />\n </Flex>\n )}\n </SimpleBar>\n </div>\n </Col>\n <Col span={12}>\n <div className={style['list-outer']}>\n <Flex className={style['list-header']} justify=\"space-between\">\n {(() => {\n const defaultTitle = <div className={style['list-header-title']}>{formatMessage({ id: 'list' })}</div>;\n return (\n listTitle ||\n (typeof renderListTitle === 'function' &&\n renderListTitle({\n fetchApi,\n defaultTitle,\n searchProps,\n setSearchProps\n })) ||\n defaultTitle\n );\n })()}\n <div>\n {typeof getSearchProps === 'function' && (\n <SearchInput\n size=\"small\"\n placeholder={searchPlaceholder || formatMessage({ id: 'searchPlaceholder' })}\n value={searchProps.searchText}\n onSearch={value => {\n setSearchProps(searchProps => Object.assign({}, searchProps, { searchText: value }));\n }}\n />\n )}\n </div>\n </Flex>\n {children}\n </div>\n </Col>\n </Row>\n );\n }}\n >\n {({ fetchApi, list }) => {\n return (\n <List\n className={classnames(style['list'], style['list-lib'])}\n size=\"small\"\n dataSource={list}\n renderItem={item => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const targetOptions =\n typeof renderOptions === 'function'\n ? renderOptions(item, {\n searchProps,\n setSearchProps,\n fetchApi,\n options\n })\n : options;\n return (\n <List.Item\n key={item.id}\n onClick={() => {\n onSelected(item);\n }}\n >\n <Checkbox checked={(value || []).findIndex(({ id }) => id === item.id) > -1} />\n <Flex vertical flex={1}>\n {typeof renderItem === 'function'\n ? renderItem(item, {\n fetchApi,\n el: defaultItem,\n searchProps,\n setSearchProps\n })\n : defaultItem}\n </Flex>\n {targetOptions && (\n <Flex\n flex={'0 0 50px'}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <ButtonGroup more={<Button type=\"link\" icon={<MoreOutlined />} />} list={targetOptions} />\n </Flex>\n )}\n </List.Item>\n );\n }}\n />\n );\n }}\n </FetchScrollLoader>\n </Flex>\n );\n});\n\nexport default EntrySelector;\n"],"names":["locale","add","selected","list","searchPlaceholder","EntrySelector","createWithIntlProvider","defaultLocale","messages","zhCn","enUS","namespace","_ref","onAdd","api","options","selectedTitle","listTitle","renderListTitle","renderSelectedItem","renderItem","renderOptions","getSearchProps","maxScrollerHeight","props","_objectWithoutPropertiesLoose","_excluded","value","onChange","useControllerValue","searchProps","setSearchProps","useState","formatMessage","useIntl","ref","useRef","selectedMappingRef","Map","onSelected","item","newValue","slice","index","findIndex","_ref2","id","splice","push","Object","assign","React","createElement","Flex","vertical","gap","className","style","Button","shape","size","type","onClick","fetchApi","current","FetchScrollLoader","_extends","completeTips","autoHide","render","_ref3","children","data","pageData","totalCount","forEach","set","listMapping","currentList","map","get","Row","gutter","Col","span","SimpleBar","length","List","ReactSortable","filter","handle","dragClass","ghostClass","forceFallback","animation","delayOnTouchStart","delay","setList","mapping","_ref4","defaultItem","title","removeOption","ConfirmButton","color","variant","icon","DeleteOutlined","Item","key","classnames","HolderOutlined","justify","flex","el","removeOptionEl","target","onReplace","targetItem","_ref5","currentItem","align","Empty","defaultTitle","SearchInput","placeholder","searchText","onSearch","_ref6","dataSource","targetOptions","Checkbox","checked","_ref7","e","stopPropagation","ButtonGroup","more","MoreOutlined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/locale/zh-CN.js","../src/locale/en-US.js","../src/index.js"],"sourcesContent":["const locale = {\n add: '添加',\n selected: '已选择',\n list: '列表',\n searchPlaceholder: '请输入关键字'\n};\n\nexport default locale;\n","const locale = {\n add: 'Add',\n selected: 'Selected',\n list: 'List',\n searchPlaceholder: 'Please input keyword'\n};\n\nexport default locale;\n","import React, { useRef, useState } from 'react';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\nimport { ReactSortable } from 'react-sortablejs';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport { MoreOutlined, HolderOutlined, DeleteOutlined } from '@ant-design/icons';\nimport ButtonGroup, { ConfirmButton } from '@kne/button-group';\nimport useControllerValue from '@kne/use-control-value';\nimport { FetchScrollLoader } from '@kne/scroll-loader';\nimport classnames from 'classnames';\nimport SearchInput from '@kne/search-input';\nimport { Flex, Button, Row, Col, List, Empty, Checkbox } from 'antd';\nimport SimpleBar from 'simplebar-react';\nimport 'simplebar/dist/simplebar.min.css';\nimport '@kne/button-group/dist/index.css';\nimport style from './style.module.scss';\n\nconst EntrySelector = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'entry-selector'\n})(({ className, onAdd, api, options, selectedTitle, listTitle, renderListTitle, renderSelectedItem, renderItem, renderOptions, getSearchProps, searchPlaceholder, maxScrollerHeight = 800, ...props }) => {\n const [value, onChange] = useControllerValue(props);\n const [searchProps, setSearchProps] = useState({});\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const selectedMappingRef = useRef(new Map());\n const onSelected = item => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n if (index > -1) {\n newValue.splice(index, 1);\n } else {\n newValue.push(Object.assign({}, item));\n }\n\n return newValue;\n });\n };\n\n return (\n <Flex\n vertical\n gap={8}\n className={classnames(className, style['entry-selector'])}\n style={{\n '--max-scroller-height': `${maxScrollerHeight}px`\n }}\n >\n {typeof onAdd === 'function' && (\n <Flex>\n <Button\n shape=\"round\"\n size=\"small\"\n type=\"primary\"\n onClick={() => {\n onAdd({ fetchApi: ref.current, value, onChange });\n }}\n >\n {formatMessage({ id: 'add' })}\n </Button>\n </Flex>\n )}\n <FetchScrollLoader\n {...props}\n completeTips={null}\n searchProps={searchProps}\n getSearchProps={getSearchProps}\n api={api}\n ref={ref}\n className={style['list-scroll']}\n autoHide={false}\n render={({ fetchApi, children }) => {\n const { data } = fetchApi;\n const { pageData, totalCount } = Object.assign(\n {},\n {\n pageData: [],\n totalCount: 0\n },\n data\n );\n pageData.forEach(item => {\n selectedMappingRef.current.set(item.id, item);\n });\n const listMapping = selectedMappingRef.current;\n const currentList = (value || []).map(item => Object.assign({}, listMapping.get(item.id) || item));\n return (\n <Row gutter={[12, 12]}>\n <Col span={12}>\n <div className={style['list-outer']}>\n {totalCount > 0 && <div className={style['list-header']}>{selectedTitle || formatMessage({ id: 'selected' })}</div>}\n <SimpleBar className={style['list-scroll']} autoHide={false}>\n {value && value.length > 0 ? (\n <List className={style['list']} size=\"small\">\n <ReactSortable\n filter=\".sortable-ignore-elements\"\n handle=\".sortable-drag-handle\"\n dragClass={style['sortable-drag']}\n ghostClass={style['sortable-ghost']}\n forceFallback\n animation={300}\n delayOnTouchStart\n delay={2}\n list={currentList}\n setList={list => {\n onChange(value => {\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return list.map(({ id }) => {\n return mapping.get(id);\n });\n });\n }}\n >\n {currentList.map((item, index) => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const removeOption = (\n <ConfirmButton\n color=\"danger\"\n variant=\"filled\"\n className={'list-item-remove-btn'}\n icon={<DeleteOutlined />}\n onClick={() => {\n onSelected(item);\n }}\n />\n );\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return (\n <List.Item key={item.id} className={classnames(style['columns-control-content-item'], style['is-drag'])}>\n <HolderOutlined className={classnames('sortable-drag-handle', style['columns-control-content-item-icon'])} />\n <div className={style['list-index']}>{index + 1}</div>\n <Flex justify=\"space-between\" gap={8} flex={1} className={style['list-item-content']}>\n <Flex vertical flex={1}>\n {typeof renderSelectedItem === 'function'\n ? renderSelectedItem(mapping.get(item.id), {\n el: defaultItem,\n removeOptionEl: removeOption,\n target: item,\n fetchApi,\n searchProps,\n setSearchProps,\n onChange,\n onSelected,\n onReplace: targetItem => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n const currentItem = newValue[index];\n if (index > -1) {\n newValue.splice(index, 1, Object.assign({}, typeof targetItem === 'function' ? targetItem(currentItem) : targetItem));\n }\n return newValue;\n });\n }\n })\n : defaultItem}\n </Flex>\n {removeOption}\n </Flex>\n </List.Item>\n );\n })}\n </ReactSortable>\n </List>\n ) : (\n <Flex className={style['list']} justify=\"center\" align=\"center\">\n <Empty />\n </Flex>\n )}\n </SimpleBar>\n </div>\n </Col>\n <Col span={12}>\n <div className={style['list-outer']}>\n <Flex className={style['list-header']} justify=\"space-between\" gap={8}>\n {(() => {\n const defaultTitle = <div className={style['list-header-title']}>{formatMessage({ id: 'list' })}</div>;\n return (\n listTitle ||\n (typeof renderListTitle === 'function' &&\n renderListTitle({\n fetchApi,\n defaultTitle,\n searchProps,\n setSearchProps\n })) ||\n defaultTitle\n );\n })()}\n <div>\n {typeof getSearchProps === 'function' && (\n <SearchInput\n className={style['list-header-search']}\n size=\"small\"\n placeholder={searchPlaceholder || formatMessage({ id: 'searchPlaceholder' })}\n value={searchProps.searchText}\n onSearch={value => {\n setSearchProps(searchProps => Object.assign({}, searchProps, { searchText: value }));\n }}\n />\n )}\n </div>\n </Flex>\n {children}\n </div>\n </Col>\n </Row>\n );\n }}\n >\n {({ fetchApi, list }) => {\n return (\n <List\n className={classnames(style['list'], style['list-lib'])}\n size=\"small\"\n dataSource={list}\n renderItem={item => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const targetOptions =\n typeof renderOptions === 'function'\n ? renderOptions(item, {\n searchProps,\n setSearchProps,\n fetchApi,\n options\n })\n : options;\n return (\n <List.Item\n key={item.id}\n onClick={() => {\n onSelected(item);\n }}\n >\n <Checkbox checked={(value || []).findIndex(({ id }) => id === item.id) > -1} />\n <Flex vertical flex={1}>\n {typeof renderItem === 'function'\n ? renderItem(item, {\n fetchApi,\n el: defaultItem,\n searchProps,\n setSearchProps\n })\n : defaultItem}\n </Flex>\n {targetOptions && (\n <Flex\n flex={'0 0 50px'}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <ButtonGroup more={<Button type=\"link\" icon={<MoreOutlined />} />} list={targetOptions} />\n </Flex>\n )}\n </List.Item>\n );\n }}\n />\n );\n }}\n </FetchScrollLoader>\n </Flex>\n );\n});\n\nexport default EntrySelector;\n"],"names":["locale","add","selected","list","searchPlaceholder","EntrySelector","createWithIntlProvider","defaultLocale","messages","zhCn","enUS","namespace","_ref","className","onAdd","api","options","selectedTitle","listTitle","renderListTitle","renderSelectedItem","renderItem","renderOptions","getSearchProps","maxScrollerHeight","props","value","onChange","useControllerValue","searchProps","setSearchProps","useState","formatMessage","useIntl","ref","useRef","selectedMappingRef","Map","onSelected","item","newValue","slice","index","findIndex","_ref2","id","splice","push","Object","assign","React","createElement","Flex","vertical","gap","classnames","style","Button","shape","size","type","onClick","fetchApi","current","FetchScrollLoader","_extends","completeTips","autoHide","render","_ref3","children","data","pageData","totalCount","forEach","set","listMapping","currentList","map","get","Row","gutter","Col","span","SimpleBar","length","List","ReactSortable","filter","handle","dragClass","ghostClass","forceFallback","animation","delayOnTouchStart","delay","setList","mapping","_ref4","defaultItem","title","removeOption","ConfirmButton","color","variant","icon","DeleteOutlined","Item","key","HolderOutlined","justify","flex","el","removeOptionEl","target","onReplace","targetItem","_ref5","currentItem","align","Empty","defaultTitle","SearchInput","placeholder","searchText","onSearch","_ref6","dataSource","targetOptions","Checkbox","checked","_ref7","e","stopPropagation","ButtonGroup","more","MoreOutlined"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -45,9 +45,9 @@ const locale = {
|
|
|
45
45
|
searchPlaceholder: 'Please input keyword'
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
var style = {"entry-selector":"
|
|
48
|
+
var style = {"entry-selector":"kne-entry-selector_TIU4-","list-outer":"kne-entry-selector_ZXEhy","list-header-search":"kne-entry-selector_JEs2H","list-header":"kne-entry-selector_HAF3g","list-header-title":"kne-entry-selector_5Xg6J","list-scroll":"kne-entry-selector_VO7i-","list":"kne-entry-selector_8w58c","list-lib":"kne-entry-selector_9m0I0","list-index":"kne-entry-selector_P8KYX","list-item-content":"kne-entry-selector_VXH4S","columns-control-content-list":"kne-entry-selector_agPfO","columns-control-content-item":"kne-entry-selector_iFzfk","is-drag":"kne-entry-selector_uB1q2","columns-control-content-item-icon":"kne-entry-selector_WHlyH","sortable-drag":"kne-entry-selector_dxhFH","sortable-ghost":"kne-entry-selector_7ZIH8"};
|
|
49
49
|
|
|
50
|
-
const _excluded = ["onAdd", "api", "options", "selectedTitle", "listTitle", "renderListTitle", "renderSelectedItem", "renderItem", "renderOptions", "getSearchProps", "searchPlaceholder", "maxScrollerHeight"];
|
|
50
|
+
const _excluded = ["className", "onAdd", "api", "options", "selectedTitle", "listTitle", "renderListTitle", "renderSelectedItem", "renderItem", "renderOptions", "getSearchProps", "searchPlaceholder", "maxScrollerHeight"];
|
|
51
51
|
const EntrySelector = createWithIntlProvider({
|
|
52
52
|
defaultLocale: 'zh-CN',
|
|
53
53
|
messages: {
|
|
@@ -57,6 +57,7 @@ const EntrySelector = createWithIntlProvider({
|
|
|
57
57
|
namespace: 'entry-selector'
|
|
58
58
|
})(_ref => {
|
|
59
59
|
let {
|
|
60
|
+
className,
|
|
60
61
|
onAdd,
|
|
61
62
|
api,
|
|
62
63
|
options,
|
|
@@ -95,7 +96,7 @@ const EntrySelector = createWithIntlProvider({
|
|
|
95
96
|
return /*#__PURE__*/React.createElement(Flex, {
|
|
96
97
|
vertical: true,
|
|
97
98
|
gap: 8,
|
|
98
|
-
className: style['entry-selector'],
|
|
99
|
+
className: classnames(className, style['entry-selector']),
|
|
99
100
|
style: {
|
|
100
101
|
'--max-scroller-height': `${maxScrollerHeight}px`
|
|
101
102
|
}
|
|
@@ -237,7 +238,8 @@ const EntrySelector = createWithIntlProvider({
|
|
|
237
238
|
className: style['list-outer']
|
|
238
239
|
}, /*#__PURE__*/React.createElement(Flex, {
|
|
239
240
|
className: style['list-header'],
|
|
240
|
-
justify: "space-between"
|
|
241
|
+
justify: "space-between",
|
|
242
|
+
gap: 8
|
|
241
243
|
}, (() => {
|
|
242
244
|
const defaultTitle = /*#__PURE__*/React.createElement("div", {
|
|
243
245
|
className: style['list-header-title']
|
|
@@ -251,6 +253,7 @@ const EntrySelector = createWithIntlProvider({
|
|
|
251
253
|
setSearchProps
|
|
252
254
|
}) || defaultTitle;
|
|
253
255
|
})(), /*#__PURE__*/React.createElement("div", null, typeof getSearchProps === 'function' && /*#__PURE__*/React.createElement(SearchInput, {
|
|
256
|
+
className: style['list-header-search'],
|
|
254
257
|
size: "small",
|
|
255
258
|
placeholder: searchPlaceholder || formatMessage({
|
|
256
259
|
id: 'searchPlaceholder'
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/locale/zh-CN.js","../src/locale/en-US.js","../src/index.js"],"sourcesContent":["const locale = {\n add: '添加',\n selected: '已选择',\n list: '列表',\n searchPlaceholder: '请输入关键字'\n};\n\nexport default locale;\n","const locale = {\n add: 'Add',\n selected: 'Selected',\n list: 'List',\n searchPlaceholder: 'Please input keyword'\n};\n\nexport default locale;\n","import React, { useRef, useState } from 'react';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\nimport { ReactSortable } from 'react-sortablejs';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport { MoreOutlined, HolderOutlined, DeleteOutlined } from '@ant-design/icons';\nimport ButtonGroup, { ConfirmButton } from '@kne/button-group';\nimport useControllerValue from '@kne/use-control-value';\nimport { FetchScrollLoader } from '@kne/scroll-loader';\nimport classnames from 'classnames';\nimport SearchInput from '@kne/search-input';\nimport { Flex, Button, Row, Col, List, Empty, Checkbox } from 'antd';\nimport SimpleBar from 'simplebar-react';\nimport 'simplebar/dist/simplebar.min.css';\nimport '@kne/button-group/dist/index.css';\nimport style from './style.module.scss';\n\nconst EntrySelector = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'entry-selector'\n})(({ onAdd, api, options, selectedTitle, listTitle, renderListTitle, renderSelectedItem, renderItem, renderOptions, getSearchProps, searchPlaceholder, maxScrollerHeight = 800, ...props }) => {\n const [value, onChange] = useControllerValue(props);\n const [searchProps, setSearchProps] = useState({});\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const selectedMappingRef = useRef(new Map());\n const onSelected = item => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n if (index > -1) {\n newValue.splice(index, 1);\n } else {\n newValue.push(Object.assign({}, item));\n }\n\n return newValue;\n });\n };\n\n return (\n <Flex\n vertical\n gap={8}\n className={style['entry-selector']}\n style={{\n '--max-scroller-height': `${maxScrollerHeight}px`\n }}\n >\n {typeof onAdd === 'function' && (\n <Flex>\n <Button\n shape=\"round\"\n size=\"small\"\n type=\"primary\"\n onClick={() => {\n onAdd({ fetchApi: ref.current, value, onChange });\n }}\n >\n {formatMessage({ id: 'add' })}\n </Button>\n </Flex>\n )}\n <FetchScrollLoader\n {...props}\n completeTips={null}\n searchProps={searchProps}\n getSearchProps={getSearchProps}\n api={api}\n ref={ref}\n className={style['list-scroll']}\n autoHide={false}\n render={({ fetchApi, children }) => {\n const { data } = fetchApi;\n const { pageData, totalCount } = Object.assign(\n {},\n {\n pageData: [],\n totalCount: 0\n },\n data\n );\n pageData.forEach(item => {\n selectedMappingRef.current.set(item.id, item);\n });\n const listMapping = selectedMappingRef.current;\n const currentList = (value || []).map(item => Object.assign({}, listMapping.get(item.id) || item));\n return (\n <Row gutter={[12, 12]}>\n <Col span={12}>\n <div className={style['list-outer']}>\n {totalCount > 0 && <div className={style['list-header']}>{selectedTitle || formatMessage({ id: 'selected' })}</div>}\n <SimpleBar className={style['list-scroll']} autoHide={false}>\n {value && value.length > 0 ? (\n <List className={style['list']} size=\"small\">\n <ReactSortable\n filter=\".sortable-ignore-elements\"\n handle=\".sortable-drag-handle\"\n dragClass={style['sortable-drag']}\n ghostClass={style['sortable-ghost']}\n forceFallback\n animation={300}\n delayOnTouchStart\n delay={2}\n list={currentList}\n setList={list => {\n onChange(value => {\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return list.map(({ id }) => {\n return mapping.get(id);\n });\n });\n }}\n >\n {currentList.map((item, index) => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const removeOption = (\n <ConfirmButton\n color=\"danger\"\n variant=\"filled\"\n className={'list-item-remove-btn'}\n icon={<DeleteOutlined />}\n onClick={() => {\n onSelected(item);\n }}\n />\n );\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return (\n <List.Item key={item.id} className={classnames(style['columns-control-content-item'], style['is-drag'])}>\n <HolderOutlined className={classnames('sortable-drag-handle', style['columns-control-content-item-icon'])} />\n <div className={style['list-index']}>{index + 1}</div>\n <Flex justify=\"space-between\" gap={8} flex={1} className={style['list-item-content']}>\n <Flex vertical flex={1}>\n {typeof renderSelectedItem === 'function'\n ? renderSelectedItem(mapping.get(item.id), {\n el: defaultItem,\n removeOptionEl: removeOption,\n target: item,\n fetchApi,\n searchProps,\n setSearchProps,\n onChange,\n onSelected,\n onReplace: targetItem => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n const currentItem = newValue[index];\n if (index > -1) {\n newValue.splice(index, 1, Object.assign({}, typeof targetItem === 'function' ? targetItem(currentItem) : targetItem));\n }\n return newValue;\n });\n }\n })\n : defaultItem}\n </Flex>\n {removeOption}\n </Flex>\n </List.Item>\n );\n })}\n </ReactSortable>\n </List>\n ) : (\n <Flex className={style['list']} justify=\"center\" align=\"center\">\n <Empty />\n </Flex>\n )}\n </SimpleBar>\n </div>\n </Col>\n <Col span={12}>\n <div className={style['list-outer']}>\n <Flex className={style['list-header']} justify=\"space-between\">\n {(() => {\n const defaultTitle = <div className={style['list-header-title']}>{formatMessage({ id: 'list' })}</div>;\n return (\n listTitle ||\n (typeof renderListTitle === 'function' &&\n renderListTitle({\n fetchApi,\n defaultTitle,\n searchProps,\n setSearchProps\n })) ||\n defaultTitle\n );\n })()}\n <div>\n {typeof getSearchProps === 'function' && (\n <SearchInput\n size=\"small\"\n placeholder={searchPlaceholder || formatMessage({ id: 'searchPlaceholder' })}\n value={searchProps.searchText}\n onSearch={value => {\n setSearchProps(searchProps => Object.assign({}, searchProps, { searchText: value }));\n }}\n />\n )}\n </div>\n </Flex>\n {children}\n </div>\n </Col>\n </Row>\n );\n }}\n >\n {({ fetchApi, list }) => {\n return (\n <List\n className={classnames(style['list'], style['list-lib'])}\n size=\"small\"\n dataSource={list}\n renderItem={item => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const targetOptions =\n typeof renderOptions === 'function'\n ? renderOptions(item, {\n searchProps,\n setSearchProps,\n fetchApi,\n options\n })\n : options;\n return (\n <List.Item\n key={item.id}\n onClick={() => {\n onSelected(item);\n }}\n >\n <Checkbox checked={(value || []).findIndex(({ id }) => id === item.id) > -1} />\n <Flex vertical flex={1}>\n {typeof renderItem === 'function'\n ? renderItem(item, {\n fetchApi,\n el: defaultItem,\n searchProps,\n setSearchProps\n })\n : defaultItem}\n </Flex>\n {targetOptions && (\n <Flex\n flex={'0 0 50px'}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <ButtonGroup more={<Button type=\"link\" icon={<MoreOutlined />} />} list={targetOptions} />\n </Flex>\n )}\n </List.Item>\n );\n }}\n />\n );\n }}\n </FetchScrollLoader>\n </Flex>\n );\n});\n\nexport default EntrySelector;\n"],"names":["locale","add","selected","list","searchPlaceholder","EntrySelector","createWithIntlProvider","defaultLocale","messages","zhCn","enUS","namespace","_ref","onAdd","api","options","selectedTitle","listTitle","renderListTitle","renderSelectedItem","renderItem","renderOptions","getSearchProps","maxScrollerHeight","props","_objectWithoutPropertiesLoose","_excluded","value","onChange","useControllerValue","searchProps","setSearchProps","useState","formatMessage","useIntl","ref","useRef","selectedMappingRef","Map","onSelected","item","newValue","slice","index","findIndex","id","splice","push","Object","assign","React","createElement","Flex","vertical","gap","className","style","Button","shape","size","type","onClick","fetchApi","current","FetchScrollLoader","_extends","completeTips","autoHide","render","children","data","pageData","totalCount","forEach","set","listMapping","currentList","map","get","Row","gutter","Col","span","SimpleBar","length","List","ReactSortable","filter","handle","dragClass","ghostClass","forceFallback","animation","delayOnTouchStart","delay","setList","mapping","defaultItem","title","removeOption","ConfirmButton","color","variant","icon","DeleteOutlined","Item","key","classnames","HolderOutlined","justify","flex","el","removeOptionEl","target","onReplace","targetItem","currentItem","align","Empty","defaultTitle","SearchInput","placeholder","searchText","onSearch","dataSource","targetOptions","Checkbox","checked","e","stopPropagation","ButtonGroup","more","MoreOutlined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/locale/zh-CN.js","../src/locale/en-US.js","../src/index.js"],"sourcesContent":["const locale = {\n add: '添加',\n selected: '已选择',\n list: '列表',\n searchPlaceholder: '请输入关键字'\n};\n\nexport default locale;\n","const locale = {\n add: 'Add',\n selected: 'Selected',\n list: 'List',\n searchPlaceholder: 'Please input keyword'\n};\n\nexport default locale;\n","import React, { useRef, useState } from 'react';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\nimport { ReactSortable } from 'react-sortablejs';\nimport { createWithIntlProvider, useIntl } from '@kne/react-intl';\nimport { MoreOutlined, HolderOutlined, DeleteOutlined } from '@ant-design/icons';\nimport ButtonGroup, { ConfirmButton } from '@kne/button-group';\nimport useControllerValue from '@kne/use-control-value';\nimport { FetchScrollLoader } from '@kne/scroll-loader';\nimport classnames from 'classnames';\nimport SearchInput from '@kne/search-input';\nimport { Flex, Button, Row, Col, List, Empty, Checkbox } from 'antd';\nimport SimpleBar from 'simplebar-react';\nimport 'simplebar/dist/simplebar.min.css';\nimport '@kne/button-group/dist/index.css';\nimport style from './style.module.scss';\n\nconst EntrySelector = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'entry-selector'\n})(({ className, onAdd, api, options, selectedTitle, listTitle, renderListTitle, renderSelectedItem, renderItem, renderOptions, getSearchProps, searchPlaceholder, maxScrollerHeight = 800, ...props }) => {\n const [value, onChange] = useControllerValue(props);\n const [searchProps, setSearchProps] = useState({});\n const { formatMessage } = useIntl();\n const ref = useRef(null);\n const selectedMappingRef = useRef(new Map());\n const onSelected = item => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n if (index > -1) {\n newValue.splice(index, 1);\n } else {\n newValue.push(Object.assign({}, item));\n }\n\n return newValue;\n });\n };\n\n return (\n <Flex\n vertical\n gap={8}\n className={classnames(className, style['entry-selector'])}\n style={{\n '--max-scroller-height': `${maxScrollerHeight}px`\n }}\n >\n {typeof onAdd === 'function' && (\n <Flex>\n <Button\n shape=\"round\"\n size=\"small\"\n type=\"primary\"\n onClick={() => {\n onAdd({ fetchApi: ref.current, value, onChange });\n }}\n >\n {formatMessage({ id: 'add' })}\n </Button>\n </Flex>\n )}\n <FetchScrollLoader\n {...props}\n completeTips={null}\n searchProps={searchProps}\n getSearchProps={getSearchProps}\n api={api}\n ref={ref}\n className={style['list-scroll']}\n autoHide={false}\n render={({ fetchApi, children }) => {\n const { data } = fetchApi;\n const { pageData, totalCount } = Object.assign(\n {},\n {\n pageData: [],\n totalCount: 0\n },\n data\n );\n pageData.forEach(item => {\n selectedMappingRef.current.set(item.id, item);\n });\n const listMapping = selectedMappingRef.current;\n const currentList = (value || []).map(item => Object.assign({}, listMapping.get(item.id) || item));\n return (\n <Row gutter={[12, 12]}>\n <Col span={12}>\n <div className={style['list-outer']}>\n {totalCount > 0 && <div className={style['list-header']}>{selectedTitle || formatMessage({ id: 'selected' })}</div>}\n <SimpleBar className={style['list-scroll']} autoHide={false}>\n {value && value.length > 0 ? (\n <List className={style['list']} size=\"small\">\n <ReactSortable\n filter=\".sortable-ignore-elements\"\n handle=\".sortable-drag-handle\"\n dragClass={style['sortable-drag']}\n ghostClass={style['sortable-ghost']}\n forceFallback\n animation={300}\n delayOnTouchStart\n delay={2}\n list={currentList}\n setList={list => {\n onChange(value => {\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return list.map(({ id }) => {\n return mapping.get(id);\n });\n });\n }}\n >\n {currentList.map((item, index) => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const removeOption = (\n <ConfirmButton\n color=\"danger\"\n variant=\"filled\"\n className={'list-item-remove-btn'}\n icon={<DeleteOutlined />}\n onClick={() => {\n onSelected(item);\n }}\n />\n );\n const mapping = new Map((value || []).map(item => [item.id, item]));\n return (\n <List.Item key={item.id} className={classnames(style['columns-control-content-item'], style['is-drag'])}>\n <HolderOutlined className={classnames('sortable-drag-handle', style['columns-control-content-item-icon'])} />\n <div className={style['list-index']}>{index + 1}</div>\n <Flex justify=\"space-between\" gap={8} flex={1} className={style['list-item-content']}>\n <Flex vertical flex={1}>\n {typeof renderSelectedItem === 'function'\n ? renderSelectedItem(mapping.get(item.id), {\n el: defaultItem,\n removeOptionEl: removeOption,\n target: item,\n fetchApi,\n searchProps,\n setSearchProps,\n onChange,\n onSelected,\n onReplace: targetItem => {\n return onChange(value => {\n const newValue = (value || []).slice(0);\n const index = newValue.findIndex(({ id }) => id === item.id);\n const currentItem = newValue[index];\n if (index > -1) {\n newValue.splice(index, 1, Object.assign({}, typeof targetItem === 'function' ? targetItem(currentItem) : targetItem));\n }\n return newValue;\n });\n }\n })\n : defaultItem}\n </Flex>\n {removeOption}\n </Flex>\n </List.Item>\n );\n })}\n </ReactSortable>\n </List>\n ) : (\n <Flex className={style['list']} justify=\"center\" align=\"center\">\n <Empty />\n </Flex>\n )}\n </SimpleBar>\n </div>\n </Col>\n <Col span={12}>\n <div className={style['list-outer']}>\n <Flex className={style['list-header']} justify=\"space-between\" gap={8}>\n {(() => {\n const defaultTitle = <div className={style['list-header-title']}>{formatMessage({ id: 'list' })}</div>;\n return (\n listTitle ||\n (typeof renderListTitle === 'function' &&\n renderListTitle({\n fetchApi,\n defaultTitle,\n searchProps,\n setSearchProps\n })) ||\n defaultTitle\n );\n })()}\n <div>\n {typeof getSearchProps === 'function' && (\n <SearchInput\n className={style['list-header-search']}\n size=\"small\"\n placeholder={searchPlaceholder || formatMessage({ id: 'searchPlaceholder' })}\n value={searchProps.searchText}\n onSearch={value => {\n setSearchProps(searchProps => Object.assign({}, searchProps, { searchText: value }));\n }}\n />\n )}\n </div>\n </Flex>\n {children}\n </div>\n </Col>\n </Row>\n );\n }}\n >\n {({ fetchApi, list }) => {\n return (\n <List\n className={classnames(style['list'], style['list-lib'])}\n size=\"small\"\n dataSource={list}\n renderItem={item => {\n const defaultItem = <span className={'list-item-title'}>{item.title}</span>;\n const targetOptions =\n typeof renderOptions === 'function'\n ? renderOptions(item, {\n searchProps,\n setSearchProps,\n fetchApi,\n options\n })\n : options;\n return (\n <List.Item\n key={item.id}\n onClick={() => {\n onSelected(item);\n }}\n >\n <Checkbox checked={(value || []).findIndex(({ id }) => id === item.id) > -1} />\n <Flex vertical flex={1}>\n {typeof renderItem === 'function'\n ? renderItem(item, {\n fetchApi,\n el: defaultItem,\n searchProps,\n setSearchProps\n })\n : defaultItem}\n </Flex>\n {targetOptions && (\n <Flex\n flex={'0 0 50px'}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <ButtonGroup more={<Button type=\"link\" icon={<MoreOutlined />} />} list={targetOptions} />\n </Flex>\n )}\n </List.Item>\n );\n }}\n />\n );\n }}\n </FetchScrollLoader>\n </Flex>\n );\n});\n\nexport default EntrySelector;\n"],"names":["locale","add","selected","list","searchPlaceholder","EntrySelector","createWithIntlProvider","defaultLocale","messages","zhCn","enUS","namespace","_ref","className","onAdd","api","options","selectedTitle","listTitle","renderListTitle","renderSelectedItem","renderItem","renderOptions","getSearchProps","maxScrollerHeight","props","_objectWithoutPropertiesLoose","_excluded","value","onChange","useControllerValue","searchProps","setSearchProps","useState","formatMessage","useIntl","ref","useRef","selectedMappingRef","Map","onSelected","item","newValue","slice","index","findIndex","id","splice","push","Object","assign","React","createElement","Flex","vertical","gap","classnames","style","Button","shape","size","type","onClick","fetchApi","current","FetchScrollLoader","_extends","completeTips","autoHide","render","children","data","pageData","totalCount","forEach","set","listMapping","currentList","map","get","Row","gutter","Col","span","SimpleBar","length","List","ReactSortable","filter","handle","dragClass","ghostClass","forceFallback","animation","delayOnTouchStart","delay","setList","mapping","defaultItem","title","removeOption","ConfirmButton","color","variant","icon","DeleteOutlined","Item","key","HolderOutlined","justify","flex","el","removeOptionEl","target","onReplace","targetItem","currentItem","align","Empty","defaultTitle","SearchInput","placeholder","searchText","onSearch","dataSource","targetOptions","Checkbox","checked","e","stopPropagation","ButtonGroup","more","MoreOutlined"],"mappings":"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"}
|