@alicloud/console-components-search 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +193 -0
  2. package/config/breezr.docs.config.ts +28 -0
  3. package/config/components-with-style.tsx +2 -0
  4. package/config/config.ts +14 -0
  5. package/config/demoOpts.ts +12 -0
  6. package/demos/demo1.demo.tsx +143 -0
  7. package/demos/demo2.demo.tsx +110 -0
  8. package/demos/demo3.demo.tsx +115 -0
  9. package/demos/demo4.demo.tsx +144 -0
  10. package/dist/index.css +1 -0
  11. package/dist/index.js +60 -0
  12. package/doc-dist/0.js +27 -0
  13. package/doc-dist/1.js +1928 -0
  14. package/doc-dist/10.js +6 -0
  15. package/doc-dist/11.js +6 -0
  16. package/doc-dist/12.js +6 -0
  17. package/doc-dist/13.js +6 -0
  18. package/doc-dist/14.js +6 -0
  19. package/doc-dist/15.js +6 -0
  20. package/doc-dist/16.js +6 -0
  21. package/doc-dist/17.js +6 -0
  22. package/doc-dist/18.js +6 -0
  23. package/doc-dist/19.js +6 -0
  24. package/doc-dist/20.js +6 -0
  25. package/doc-dist/3.js +104 -0
  26. package/doc-dist/4.js +6 -0
  27. package/doc-dist/5.js +13 -0
  28. package/doc-dist/6.css +1 -0
  29. package/doc-dist/6.js +6 -0
  30. package/doc-dist/6.os.css +1 -0
  31. package/doc-dist/7.js +6 -0
  32. package/doc-dist/8.js +6 -0
  33. package/doc-dist/9.js +6 -0
  34. package/doc-dist/console-fe-test-rc-search-doc.manifest.json +18 -0
  35. package/doc-dist/deps/console-fe-test-rc-search-doc-deps.manifest.json +18 -0
  36. package/doc-dist/deps/index.html +14 -0
  37. package/doc-dist/deps/main.css +1 -0
  38. package/doc-dist/deps/main.js +66 -0
  39. package/doc-dist/deps/main.os.css +1 -0
  40. package/doc-dist/index.css +1 -0
  41. package/doc-dist/index.html +14 -0
  42. package/doc-dist/index.js +19 -0
  43. package/doc-dist/index.os.css +1 -0
  44. package/doc-dist/log-deps-build.log +16 -0
  45. package/docs/markdown-render.doc.md +21 -0
  46. package/docs/test.doc.md +8 -0
  47. package/es/constants.js +6 -0
  48. package/es/index.js +7 -0
  49. package/es/modeSingleMulti/index.js +862 -0
  50. package/es/modeSingleSingle/index.js +213 -0
  51. package/es/provider/LoggerProvider.js +37 -0
  52. package/es/search.js +23 -0
  53. package/es/searchTagList/index.js +58 -0
  54. package/es/style.js +14 -0
  55. package/es/types/IRcSearchOptions.type.js +1 -0
  56. package/es/types/IRcSearchProps.type.js +1 -0
  57. package/es/types/IRcSearchTagItemProps.type.js +1 -0
  58. package/es/types/IRcSearchTagListProps.type.js +1 -0
  59. package/es/utils.js +149 -0
  60. package/lib/constants.d.ts +2 -0
  61. package/lib/constants.js +15 -0
  62. package/lib/index.d.ts +7 -0
  63. package/lib/index.js +55 -0
  64. package/lib/modeSingleMulti/index.d.ts +4 -0
  65. package/lib/modeSingleMulti/index.js +883 -0
  66. package/lib/modeSingleSingle/index.d.ts +4 -0
  67. package/lib/modeSingleSingle/index.js +237 -0
  68. package/lib/provider/LoggerProvider.d.ts +8 -0
  69. package/lib/provider/LoggerProvider.js +47 -0
  70. package/lib/search.d.ts +4 -0
  71. package/lib/search.js +42 -0
  72. package/lib/searchTagList/index.d.ts +4 -0
  73. package/lib/searchTagList/index.js +75 -0
  74. package/lib/style.d.ts +5 -0
  75. package/lib/style.js +34 -0
  76. package/lib/types/IRcSearchOptions.type.d.ts +26 -0
  77. package/lib/types/IRcSearchOptions.type.js +5 -0
  78. package/lib/types/IRcSearchProps.type.d.ts +76 -0
  79. package/lib/types/IRcSearchProps.type.js +5 -0
  80. package/lib/types/IRcSearchTagItemProps.type.d.ts +23 -0
  81. package/lib/types/IRcSearchTagItemProps.type.js +5 -0
  82. package/lib/types/IRcSearchTagListProps.type.d.ts +32 -0
  83. package/lib/types/IRcSearchTagListProps.type.js +5 -0
  84. package/lib/utils.d.ts +14 -0
  85. package/lib/utils.js +177 -0
  86. package/package.json +41 -0
@@ -0,0 +1,862 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
6
+
7
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
+
9
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
+
11
+ import React, { useState, useEffect } from "react";
12
+ import classNames from 'classnames'; // import styled from "styled-components";
13
+
14
+ import { Button, Icon, Tag, Select } from '@alicloud/console-components'; // import { AutoCompleteProps } from '@alifd/next/lib/select'
15
+
16
+ import { getHistoryTag as getHistoryTagUtil, setHistoryTag as setHistoryTagUtil, removeHistoryTagItem as removeHistoryTagItemUtils, getTagByFileds, checkNoIndexListFormat, getSelectOptionAdatp } from "../utils"; // import '../index.less'
17
+
18
+ import { SearchWarp, MultiBtnWarp, MenuContentWrap } from "../style";
19
+ var TagGroup = Tag.Group,
20
+ ClosableTag = Tag.Closeable;
21
+ var AutoComplete = Select.AutoComplete;
22
+
23
+ var ModeSingleSingle = function ModeSingleSingle(props) {
24
+ var mode = props.mode,
25
+ options = props.options,
26
+ defaultDataIndex = props.defaultDataIndex,
27
+ defaultPlaceholder = props.defaultPlaceholder,
28
+ tags = props.tags,
29
+ onSuggest = props.onSuggest,
30
+ onSuggestNoDataIndex = props.onSuggestNoDataIndex,
31
+ onChange = props.onChange,
32
+ onSearch = props.onSearch,
33
+ onTagChange = props.onTagChange;
34
+
35
+ var _useState = useState({}),
36
+ _useState2 = _slicedToArray(_useState, 2),
37
+ allFileds = _useState2[0],
38
+ setAllFileds = _useState2[1];
39
+
40
+ var _useState3 = useState({}),
41
+ _useState4 = _slicedToArray(_useState3, 2),
42
+ curOptionItem = _useState4[0],
43
+ setCurOptionItem = _useState4[1];
44
+
45
+ var _useState5 = useState({}),
46
+ _useState6 = _slicedToArray(_useState5, 2),
47
+ defaultOptionItem = _useState6[0],
48
+ setDefaultOptionItem = _useState6[1];
49
+
50
+ var _useState7 = useState(''),
51
+ _useState8 = _slicedToArray(_useState7, 2),
52
+ defaultInputValue = _useState8[0],
53
+ setDefaultValue = _useState8[1];
54
+
55
+ var _useState9 = useState(''),
56
+ _useState10 = _slicedToArray(_useState9, 2),
57
+ inputValue = _useState10[0],
58
+ setInputValue = _useState10[1];
59
+
60
+ var _useState11 = useState([]),
61
+ _useState12 = _slicedToArray(_useState11, 2),
62
+ inputDataSource = _useState12[0],
63
+ setInputDataSource = _useState12[1];
64
+
65
+ var _useState13 = useState(false),
66
+ _useState14 = _slicedToArray(_useState13, 2),
67
+ visible = _useState14[0],
68
+ setVisible = _useState14[1];
69
+
70
+ var _useState15 = useState(false),
71
+ _useState16 = _slicedToArray(_useState15, 2),
72
+ defaultVisible = _useState16[0],
73
+ setDefaultVisible = _useState16[1];
74
+
75
+ var _useState17 = useState(false),
76
+ _useState18 = _slicedToArray(_useState17, 2),
77
+ clearLevel1Show = _useState18[0],
78
+ setClearLevel1Show = _useState18[1];
79
+
80
+ var _useState19 = useState([]),
81
+ _useState20 = _slicedToArray(_useState19, 2),
82
+ multipleValues = _useState20[0],
83
+ setMultipleValues = _useState20[1];
84
+
85
+ var _useState21 = useState([]),
86
+ _useState22 = _slicedToArray(_useState21, 2),
87
+ tagList = _useState22[0],
88
+ setTagList = _useState22[1];
89
+
90
+ var _useState23 = useState([]),
91
+ _useState24 = _slicedToArray(_useState23, 2),
92
+ histroyList = _useState24[0],
93
+ setHistroyList = _useState24[1];
94
+
95
+ var _useState25 = useState(''),
96
+ _useState26 = _slicedToArray(_useState25, 2),
97
+ curType = _useState26[0],
98
+ setCurType = _useState26[1]; // defalut/nodefault/item
99
+
100
+
101
+ var _useState27 = useState(''),
102
+ _useState28 = _slicedToArray(_useState27, 2),
103
+ focusClass = _useState28[0],
104
+ setFocusClass = _useState28[1]; // focus/''
105
+
106
+
107
+ useEffect(function () {
108
+ var initHisTags = getHistoryTagUtil();
109
+
110
+ if (initHisTags) {
111
+ setHistroyList(initHisTags);
112
+ }
113
+
114
+ initCurType();
115
+ }, []);
116
+
117
+ function initCurType() {
118
+ var initCurType = '';
119
+
120
+ if (defaultDataIndex && defaultDataIndex !== '') {
121
+ initCurType = 'default';
122
+ var defaultItem = options.find(function (x) {
123
+ return x.dataIndex === defaultDataIndex;
124
+ });
125
+
126
+ if (defaultItem) {
127
+ // console.log(defaultItem)
128
+ setDefaultOptionItem(defaultItem);
129
+ } else {
130
+ initCurType = 'nodefault';
131
+ }
132
+ } else {
133
+ initCurType = 'nodefault';
134
+ } // console.log('initCurType', initCurType)
135
+
136
+
137
+ setCurType(initCurType);
138
+ } // if (initCurType === 'nodefault') {
139
+ // let defaultItem2 = options.find((x:any) => x.template === 'input')
140
+ // if (defaultItem2) {
141
+ // console.log(defaultItem2)
142
+ // setDefaultOptionItem(defaultItem2);
143
+ // }
144
+ // }
145
+
146
+
147
+ var level1DataSourceTemp = [{
148
+ label: '选择筛选条件',
149
+ children: options.map(function (l1) {
150
+ return {
151
+ label: l1.label,
152
+ value: l1.dataIndex
153
+ };
154
+ })
155
+ }];
156
+
157
+ var _useState29 = useState(level1DataSourceTemp),
158
+ _useState30 = _slicedToArray(_useState29, 2),
159
+ level1DataSource = _useState30[0],
160
+ setLevel1DataSource = _useState30[1];
161
+
162
+ var menuPropsLevel1 = {
163
+ focusable: false,
164
+ header: /*#__PURE__*/React.createElement(MenuContentWrap, null, defaultDataIndex && defaultDataIndex !== '' && histroyList && histroyList.length > 0 && defaultInputValue === '' && /*#__PURE__*/React.createElement("li", {
165
+ role: "option",
166
+ title: "\u5386\u53F2\u641C\u7D22\u8BB0\u5F55",
167
+ className: "next-menu-group-label"
168
+ }, /*#__PURE__*/React.createElement("div", {
169
+ className: "next-menu-item-inner"
170
+ }, "\u5386\u53F2\u641C\u7D22\u8BB0\u5F55")), defaultDataIndex && defaultDataIndex !== '' && histroyList && histroyList.length > 0 && defaultInputValue === '' && /*#__PURE__*/React.createElement(TagGroup, {
171
+ style: {
172
+ paddingLeft: '20px'
173
+ }
174
+ }, histroyList.map(function (tag, index) {
175
+ return tag ? /*#__PURE__*/React.createElement(ClosableTag, {
176
+ size: "small",
177
+ key: tag.dataIndex + tag.value + index,
178
+ onClose: function onClose() {
179
+ onRemoveHisTag(tag);
180
+ return true;
181
+ },
182
+ onClick: function onClick() {
183
+ onSelectHisTag(tag);
184
+ }
185
+ }, tag.label, ":", tag.valueShow) : '';
186
+ }))),
187
+ footer: null
188
+ }; // 多选
189
+
190
+ var menuProps = {
191
+ focusable: false,
192
+ header: null,
193
+ footer: /*#__PURE__*/React.createElement(MultiBtnWarp, null, /*#__PURE__*/React.createElement(Button, {
194
+ size: "small",
195
+ className: classNames("pri-btn"),
196
+ disabled: multipleValues.length === 0,
197
+ type: "primary",
198
+ onClick: function onClick() {
199
+ onPrimaryMultiple(curOptionItem.dataIndex);
200
+ }
201
+ }, "\u786E\u5B9A"), /*#__PURE__*/React.createElement(Button, {
202
+ size: "small",
203
+ className: classNames("cancel-btn"),
204
+ type: "normal",
205
+ onClick: function onClick() {
206
+ setVisible(false);
207
+ setMultipleValues([]);
208
+ }
209
+ }, "\u53D6\u6D88"))
210
+ };
211
+
212
+ var itemRender = function itemRender(item, searchKey) {
213
+ var label = item.label;
214
+
215
+ if (searchKey && searchKey.length) {
216
+ var key = searchKey.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
217
+ var reg = new RegExp("(".concat(key, ")"), 'ig');
218
+ label = label.replace(reg, function (x) {
219
+ return "<span class=\"next-select-highlight\" style=\"background-color: #EFF3F8;font-weight: 500;\">".concat(x, "</span>");
220
+ });
221
+ }
222
+
223
+ return /*#__PURE__*/React.createElement("span", {
224
+ dangerouslySetInnerHTML: {
225
+ __html: label
226
+ }
227
+ });
228
+ };
229
+
230
+ var itemRenderMulti = function itemRenderMulti(item) {
231
+ var isChecked = false;
232
+
233
+ if (multipleValues.find(function (v) {
234
+ return v === item.value;
235
+ })) {
236
+ isChecked = true;
237
+ } // console.log('item',item, 'isChecked', isChecked)
238
+
239
+
240
+ return /*#__PURE__*/React.createElement("label", {
241
+ className: classNames('next-checkbox-wrapper', 'multi-lable', isChecked ? 'checked' : ''),
242
+ style: {
243
+ paddingLeft: '8px'
244
+ }
245
+ }, /*#__PURE__*/React.createElement("span", {
246
+ className: "next-checkbox"
247
+ }, /*#__PURE__*/React.createElement("span", {
248
+ className: "next-checkbox-inner"
249
+ }, /*#__PURE__*/React.createElement("i", {
250
+ className: "next-icon next-icon-select next-xs next-checkbox-select-icon"
251
+ })), /*#__PURE__*/React.createElement("input", {
252
+ type: "checkbox",
253
+ className: "next-checkbox-input",
254
+ defaultChecked: isChecked
255
+ })), /*#__PURE__*/React.createElement("span", {
256
+ className: "next-checkbox-label"
257
+ }, item.label));
258
+ };
259
+
260
+ function onRemoveHisTag(tagItem) {
261
+ var newHisTags = removeHistoryTagItemUtils(tagItem);
262
+ setHistroyList(newHisTags);
263
+ }
264
+
265
+ function onSelectHisTag(tagItem) {
266
+ var changeFileds = Object.create({});
267
+ var tempAllFileds = Object.create({});
268
+ changeFileds[tagItem.dataIndex] = tagItem.value;
269
+
270
+ if (mode === 'single-multi') {
271
+ tempAllFileds = changeFileds;
272
+ } else if (mode === 'multi-multi') {
273
+ tempAllFileds = _objectSpread(_objectSpread({}, allFileds), changeFileds);
274
+ }
275
+
276
+ onChangeItem(changeFileds, tempAllFileds);
277
+ }
278
+
279
+ function upDateHistory() {
280
+ // const allFiledsTagList = getTagByFileds(allFileds, options);
281
+ var allFiledsTagList = _toConsumableArray(tagList);
282
+
283
+ var rtHisTags = setHistoryTagUtil(allFiledsTagList);
284
+ setHistroyList(rtHisTags);
285
+ }
286
+
287
+ function checkAllFromTags(allFileds) {
288
+ var allFiledsAdapt = _objectSpread({}, allFileds);
289
+
290
+ if (tags && Array.isArray(tags) && tags.length >= 0) {
291
+ allFiledsAdapt = {};
292
+ tags.forEach(function (tag) {
293
+ if (allFileds[tag.dataIndex]) {
294
+ allFiledsAdapt[tag.dataIndex] = allFileds[tag.dataIndex];
295
+ }
296
+ });
297
+ }
298
+
299
+ return allFiledsAdapt;
300
+ } // 某一类别确定时,修改fileds, 和tags
301
+
302
+
303
+ function onChangeItem(changeFileds, allFileds) {
304
+ setDefaultVisible(false);
305
+ setAllFileds(allFileds); // todo
306
+
307
+ if (onChange) {
308
+ onChange(changeFileds, allFileds);
309
+ }
310
+
311
+ if (onTagChange) {
312
+ var newTags = getTagByFileds(allFileds, options);
313
+ setTagList(newTags);
314
+ onTagChange(newTags);
315
+ } // 仅仅清空值, 保留类别
316
+
317
+
318
+ setVisible(false);
319
+ setInputValue('');
320
+ setFocusClass('');
321
+ setClearLevel1Show(true);
322
+ }
323
+
324
+ function clearLevel1() {
325
+ // 清空类别
326
+ var initCurType = '';
327
+
328
+ if (defaultDataIndex && defaultDataIndex !== '' && defaultOptionItem) {
329
+ initCurType = 'default';
330
+ var defaultItem = options.find(function (x) {
331
+ return x.dataIndex === defaultDataIndex;
332
+ });
333
+
334
+ if (defaultItem) {
335
+ // console.log(defaultItem)
336
+ setDefaultOptionItem(defaultItem);
337
+ } else {
338
+ initCurType = 'nodefault';
339
+ }
340
+ } else {
341
+ initCurType = 'nodefault';
342
+ }
343
+
344
+ setCurType(initCurType);
345
+ setClearLevel1Show(false);
346
+ } // 多选的确定
347
+
348
+
349
+ function onPrimaryMultiple(dataIndex) {
350
+ // multipleValues
351
+ setVisible(false);
352
+
353
+ if (onChangeItem) {
354
+ var changeFileds = Object.create({});
355
+ changeFileds[dataIndex] = multipleValues;
356
+
357
+ if (mode === 'single-multi') {
358
+ setAllFileds(changeFileds);
359
+ onChangeItem(changeFileds, changeFileds);
360
+ } else if (mode === 'multi-multi') {
361
+ allFileds[dataIndex] = multipleValues;
362
+ setAllFileds(allFileds);
363
+ onChangeItem(changeFileds, allFileds);
364
+ }
365
+
366
+ setMultipleValues([]);
367
+ }
368
+ } // 多选的change,仅改变state
369
+
370
+
371
+ function onMultipleChange(values) {
372
+ // console.log('value', values);
373
+ if (values) {
374
+ setMultipleValues(values);
375
+ } else {
376
+ setMultipleValues([]);
377
+ }
378
+ } // 第一级选择某个具体的类别
379
+
380
+
381
+ function onLevel1Change(_x, _x2, _x3) {
382
+ return _onLevel1Change.apply(this, arguments);
383
+ }
384
+
385
+ function _onLevel1Change() {
386
+ _onLevel1Change = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(value, actionType, item) {
387
+ var curOptItem;
388
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
389
+ while (1) {
390
+ switch (_context.prev = _context.next) {
391
+ case 0:
392
+ // console.log('value', value,'level1 , actionType', actionType, 'item:', item)
393
+ setClearLevel1Show(true); // console.log('defaultInputValue', defaultInputValue)
394
+
395
+ if (!(actionType === 'itemClick')) {
396
+ _context.next = 5;
397
+ break;
398
+ }
399
+
400
+ // 判断是level选择还是直接输入的suggest---- 选了一个类别
401
+ if (!defaultInputValue) {
402
+ // level1 的选择
403
+ curOptItem = options.find(function (x) {
404
+ return x.dataIndex === value;
405
+ });
406
+
407
+ if (curOptItem) {
408
+ setCurOptionItem(curOptItem);
409
+ setCurType('item');
410
+ } // 当第一次选择了筛选类别后,需自动进入激活状态,无需再次点击;(自动获取焦点)自动弹窗
411
+
412
+
413
+ setVisible(true);
414
+ } else if (curType === 'default' && defaultDataIndex && defaultDataIndex !== '') {
415
+ // 选了suggest
416
+ inputChange(value, 'itemClick', defaultDataIndex);
417
+ setDefaultValue('');
418
+ setLevel1DataSource(level1DataSourceTemp);
419
+ } else if (curType === 'nodefault') {
420
+ if (item && item.dataIndex) {
421
+ inputChange(value, 'itemClick', item.dataIndex);
422
+ setDefaultValue('');
423
+ setLevel1DataSource(level1DataSourceTemp);
424
+ }
425
+ }
426
+
427
+ _context.next = 19;
428
+ break;
429
+
430
+ case 5:
431
+ if (!(actionType === 'change')) {
432
+ _context.next = 19;
433
+ break;
434
+ }
435
+
436
+ if (!(!value || value === '')) {
437
+ _context.next = 10;
438
+ break;
439
+ }
440
+
441
+ setLevel1DataSource(level1DataSourceTemp);
442
+ _context.next = 18;
443
+ break;
444
+
445
+ case 10:
446
+ if (!(defaultDataIndex && defaultDataIndex !== '' && onSuggest)) {
447
+ _context.next = 15;
448
+ break;
449
+ }
450
+
451
+ _context.next = 13;
452
+ return setDefSuggest(value);
453
+
454
+ case 13:
455
+ _context.next = 18;
456
+ break;
457
+
458
+ case 15:
459
+ if (!onSuggestNoDataIndex) {
460
+ _context.next = 18;
461
+ break;
462
+ }
463
+
464
+ _context.next = 18;
465
+ return setNoDefSuggest(value);
466
+
467
+ case 18:
468
+ setDefaultValue(value);
469
+
470
+ case 19:
471
+ case "end":
472
+ return _context.stop();
473
+ }
474
+ }
475
+ }, _callee);
476
+ }));
477
+ return _onLevel1Change.apply(this, arguments);
478
+ }
479
+
480
+ function onClearLevel1() {
481
+ clearLevel1();
482
+ }
483
+
484
+ function setDefSuggest(_x4) {
485
+ return _setDefSuggest.apply(this, arguments);
486
+ }
487
+
488
+ function _setDefSuggest() {
489
+ _setDefSuggest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(value) {
490
+ var list, newDataSource;
491
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
492
+ while (1) {
493
+ switch (_context2.prev = _context2.next) {
494
+ case 0:
495
+ if (!(onSuggest && defaultDataIndex && defaultDataIndex !== '')) {
496
+ _context2.next = 7;
497
+ break;
498
+ }
499
+
500
+ _context2.next = 3;
501
+ return onSuggest(value, defaultDataIndex);
502
+
503
+ case 3:
504
+ list = _context2.sent;
505
+ newDataSource = [{
506
+ label: defaultOptionItem.label,
507
+ children: list
508
+ }];
509
+ setLevel1DataSource(newDataSource);
510
+ setDefaultVisible(true);
511
+
512
+ case 7:
513
+ case "end":
514
+ return _context2.stop();
515
+ }
516
+ }
517
+ }, _callee2);
518
+ }));
519
+ return _setDefSuggest.apply(this, arguments);
520
+ }
521
+
522
+ function setNoDefSuggest(_x5) {
523
+ return _setNoDefSuggest.apply(this, arguments);
524
+ }
525
+
526
+ function _setNoDefSuggest() {
527
+ _setNoDefSuggest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(value) {
528
+ var list;
529
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
530
+ while (1) {
531
+ switch (_context3.prev = _context3.next) {
532
+ case 0:
533
+ if (!onSuggestNoDataIndex) {
534
+ _context3.next = 7;
535
+ break;
536
+ }
537
+
538
+ _context3.next = 3;
539
+ return onSuggestNoDataIndex(value);
540
+
541
+ case 3:
542
+ list = _context3.sent;
543
+ // console.log(list)
544
+ checkNoIndexListFormat(list);
545
+ setLevel1DataSource(_toConsumableArray(list));
546
+ setDefaultVisible(true);
547
+
548
+ case 7:
549
+ case "end":
550
+ return _context3.stop();
551
+ }
552
+ }
553
+ }, _callee3);
554
+ }));
555
+ return _setNoDefSuggest.apply(this, arguments);
556
+ }
557
+
558
+ function onDeFaultEnter(e) {
559
+ var dataIndex = defaultDataIndex;
560
+ var value = defaultInputValue;
561
+
562
+ if (curType === 'item' && curOptionItem.template === 'input') {
563
+ dataIndex = curOptionItem.dataIndex;
564
+ value = inputValue;
565
+ }
566
+
567
+ if (e.keyCode === 13 && value !== '') {
568
+ if (curOptionItem.template === 'multiple') {
569
+ return;
570
+ }
571
+
572
+ if (defaultDataIndex && defaultDataIndex !== '' && onSuggest) {
573
+ // fuzzyDisable
574
+ if (!curOptionItem.templateProps || !curOptionItem.templateProps.fuzzyDisable) {
575
+ inputChange(value, 'enter', defaultDataIndex);
576
+ setDefaultVisible(false);
577
+ setDefaultValue('');
578
+ }
579
+ }
580
+ }
581
+ }
582
+ /**
583
+ * 当某一类别是, 输入类型时触发
584
+ * 接收一个promise
585
+ */
586
+
587
+
588
+ function inputChange(_x6, _x7, _x8) {
589
+ return _inputChange.apply(this, arguments);
590
+ } // 单选或多选的change,
591
+
592
+
593
+ function _inputChange() {
594
+ _inputChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(value, actionType, dataIndex) {
595
+ var changeFileds, list, newDataSource;
596
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
597
+ while (1) {
598
+ switch (_context4.prev = _context4.next) {
599
+ case 0:
600
+ if (!((actionType === 'itemClick' || actionType === 'enter') && onChangeItem)) {
601
+ _context4.next = 9;
602
+ break;
603
+ }
604
+
605
+ changeFileds = Object.create({});
606
+ changeFileds[dataIndex] = value;
607
+
608
+ if (mode === 'single-multi') {
609
+ setAllFileds(changeFileds);
610
+ onChangeItem(changeFileds, changeFileds);
611
+ } else if (mode === 'multi-multi') {
612
+ allFileds[dataIndex] = value;
613
+ setAllFileds(allFileds);
614
+ onChangeItem(changeFileds, allFileds);
615
+ }
616
+
617
+ setVisible(false);
618
+ setDefaultVisible(false);
619
+ setInputDataSource([]);
620
+ _context4.next = 19;
621
+ break;
622
+
623
+ case 9:
624
+ if (value === '') {
625
+ setInputDataSource([]);
626
+ setClearLevel1Show(true);
627
+ } else {
628
+ setClearLevel1Show(false);
629
+ }
630
+
631
+ setInputValue(value);
632
+
633
+ if (!(value !== '' && onSuggest)) {
634
+ _context4.next = 19;
635
+ break;
636
+ }
637
+
638
+ _context4.next = 14;
639
+ return onSuggest(value, dataIndex);
640
+
641
+ case 14:
642
+ list = _context4.sent;
643
+ // console.log('res suggest', list);
644
+ newDataSource = [{
645
+ label: curOptionItem.label,
646
+ children: list
647
+ }];
648
+ setInputDataSource(newDataSource);
649
+ setVisible(true);
650
+ setDefaultVisible(true);
651
+
652
+ case 19:
653
+ case "end":
654
+ return _context4.stop();
655
+ }
656
+ }
657
+ }, _callee4);
658
+ }));
659
+ return _inputChange.apply(this, arguments);
660
+ }
661
+
662
+ function selectChange(value, dataIndex) {
663
+ // setSingleValues(value);
664
+ setVisible(false);
665
+ setFocusClass('');
666
+
667
+ if (onChangeItem) {
668
+ var changeFileds = Object.create({});
669
+ changeFileds[dataIndex] = value;
670
+
671
+ if (mode === 'single-multi') {
672
+ // 判断value 是否为undefined
673
+ setAllFileds(changeFileds);
674
+ onChangeItem(changeFileds, changeFileds);
675
+ } else if (mode === 'multi-multi') {
676
+ allFileds[dataIndex] = value;
677
+ setAllFileds(allFileds);
678
+ onChangeItem(changeFileds, allFileds);
679
+ }
680
+ }
681
+ } // 提交按钮
682
+
683
+
684
+ function onCommonSearch() {
685
+ if (onSearch) {
686
+ var checkAllFileds = checkAllFromTags(allFileds);
687
+ onSearch(checkAllFileds); // todo: 只有搜索了才会被记录到,根据页面的路由为key,history
688
+
689
+ upDateHistory();
690
+ }
691
+ }
692
+
693
+ return /*#__PURE__*/React.createElement(SearchWarp, null, /*#__PURE__*/React.createElement("div", {
694
+ className: classNames('left-wrap', 'next-input', focusClass)
695
+ }, /*#__PURE__*/React.createElement("div", {
696
+ className: classNames('condition')
697
+ }, curType === 'item' && /*#__PURE__*/React.createElement("div", {
698
+ className: classNames('condition-item')
699
+ }, /*#__PURE__*/React.createElement("span", {
700
+ className: classNames('condition-item-txt')
701
+ }, curOptionItem.label), /*#__PURE__*/React.createElement(Icon, {
702
+ type: "caret-down",
703
+ size: "xxs"
704
+ }), /*#__PURE__*/React.createElement(Select, {
705
+ className: classNames('condition-select'),
706
+ hasBorder: false,
707
+ dataSource: level1DataSource,
708
+ onChange: onLevel1Change,
709
+ autoWidth: false
710
+ }))), /*#__PURE__*/React.createElement("div", {
711
+ className: classNames('forms'),
712
+ onKeyUp: onDeFaultEnter
713
+ }, curType === 'default' && defaultOptionItem && /*#__PURE__*/React.createElement(AutoComplete, {
714
+ className: classNames('main-input', 'multi'),
715
+ placeholder: "\u9ED8\u8BA4\u6309".concat(defaultOptionItem.label, "\u641C\u7D22"),
716
+ hasClear: true,
717
+ hasBorder: false,
718
+ menuProps: menuPropsLevel1,
719
+ dataSource: level1DataSource // @ts-ignore
720
+ ,
721
+ itemRender: itemRender,
722
+ onChange: onLevel1Change,
723
+ popupStyle: histroyList && histroyList.length > 0 ? {} : {
724
+ width: 'auto'
725
+ },
726
+ visible: defaultVisible,
727
+ onFocus: function onFocus() {
728
+ setDefaultVisible(true);
729
+ setFocusClass('focus');
730
+ },
731
+ onBlur: function onBlur() {
732
+ setDefaultVisible(false);
733
+ setFocusClass('');
734
+ },
735
+ value: defaultInputValue
736
+ }), curType === 'nodefault' && /*#__PURE__*/React.createElement(AutoComplete, {
737
+ className: classNames('main-input', 'multi'),
738
+ placeholder: defaultPlaceholder || "\u8BF7\u641C\u7D22",
739
+ hasClear: true,
740
+ hasBorder: false,
741
+ menuProps: menuPropsLevel1,
742
+ popupStyle: histroyList && histroyList.length > 0 ? {} : {
743
+ width: 'auto'
744
+ } // @ts-ignore
745
+ ,
746
+ itemRender: itemRender,
747
+ dataSource: level1DataSource,
748
+ onChange: onLevel1Change,
749
+ visible: defaultVisible,
750
+ onFocus: function onFocus() {
751
+ setDefaultVisible(true);
752
+ setFocusClass('focus');
753
+ },
754
+ onBlur: function onBlur() {
755
+ setDefaultVisible(false);
756
+ setFocusClass('');
757
+ },
758
+ value: defaultInputValue
759
+ }), curType === 'item' && curOptionItem.template === 'input' && /*#__PURE__*/React.createElement(AutoComplete, {
760
+ className: classNames('main-input', 'multi'),
761
+ placeholder: curOptionItem.templateProps.placeholder || "\u9ED8\u8BA4\u6309".concat(curOptionItem.label, "\u641C\u7D22"),
762
+ hasClear: true,
763
+ hasBorder: false // @ts-ignore
764
+ ,
765
+ itemRender: itemRender,
766
+ visible: visible && inputDataSource.length > 0,
767
+ dataSource: inputDataSource,
768
+ autoFocus: true,
769
+ value: inputValue,
770
+ onFocus: function onFocus() {
771
+ setVisible(true);
772
+ setFocusClass('focus');
773
+ },
774
+ onBlur: function onBlur() {
775
+ setVisible(false);
776
+ setFocusClass('');
777
+ },
778
+ onChange: function onChange(value, actionType) {
779
+ inputChange(value, actionType, curOptionItem.dataIndex);
780
+ }
781
+ }), curType === 'item' && curOptionItem.template === 'select' && /*#__PURE__*/React.createElement(Select, {
782
+ className: classNames('main-input', 'select'),
783
+ placeholder: curOptionItem.templateProps.placeholder || "\u8BF7\u9009\u62E9".concat(curOptionItem.label),
784
+ hasClear: true,
785
+ hasBorder: false,
786
+ dataSource: getSelectOptionAdatp(curOptionItem.label, curOptionItem.templateProps.dataSource),
787
+ onChange: function onChange(value) {
788
+ selectChange(value, curOptionItem.dataIndex);
789
+ },
790
+ popupStyle: {
791
+ minWidth: 'auto'
792
+ },
793
+ autoFocus: true,
794
+ visible: visible,
795
+ value: undefined,
796
+ onClick: function onClick() {
797
+ setVisible(true);
798
+ setFocusClass('focus');
799
+ },
800
+ onFocus: function onFocus() {
801
+ setVisible(true);
802
+ setFocusClass('focus');
803
+ },
804
+ onBlur: function onBlur() {
805
+ setVisible(false);
806
+ setFocusClass('');
807
+ }
808
+ }), curType === 'item' && curOptionItem.template === 'multiple' && /*#__PURE__*/React.createElement(Select, {
809
+ className: classNames('main-input', 'multi'),
810
+ placeholder: curOptionItem.templateProps.placeholder || "\u8BF7\u9009\u62E9".concat(curOptionItem.label),
811
+ hasClear: true,
812
+ mode: "multiple",
813
+ maxTagCount: 0,
814
+ hasBorder: false,
815
+ autoFocus: true,
816
+ menuProps: menuProps,
817
+ value: multipleValues,
818
+ onFocus: function onFocus() {
819
+ setVisible(true);
820
+ setFocusClass('focus');
821
+ },
822
+ onClick: function onClick() {
823
+ setVisible(true);
824
+ setFocusClass('focus');
825
+ },
826
+ onBlur: function onBlur() {
827
+ setVisible(false);
828
+ setFocusClass('');
829
+ },
830
+ itemRender: itemRenderMulti,
831
+ popupClassName: "xconsole-rcsearch-multi-pop",
832
+ visible: visible,
833
+ dataSource: getSelectOptionAdatp(curOptionItem.label, curOptionItem.templateProps.dataSource),
834
+ onChange: function onChange(value) {
835
+ onMultipleChange(value);
836
+ },
837
+ popupStyle: {
838
+ minWidth: 'auto',
839
+ padding: '10px 8px 10px 8px'
840
+ }
841
+ }), clearLevel1Show && /*#__PURE__*/React.createElement("div", {
842
+ className: "clear-level1",
843
+ onClick: onClearLevel1
844
+ }, /*#__PURE__*/React.createElement("span", {
845
+ className: "next-input-control"
846
+ }, /*#__PURE__*/React.createElement("span", {
847
+ className: "next-input-hint-wrap"
848
+ }, /*#__PURE__*/React.createElement("i", {
849
+ role: "button",
850
+ "aria-label": "\u6E05\u9664",
851
+ className: "next-icon next-icon-delete-filling next-medium next-input-hint next-input-clear-icon"
852
+ })))))), /*#__PURE__*/React.createElement("div", {
853
+ className: classNames('right-wrap')
854
+ }, /*#__PURE__*/React.createElement(Button, {
855
+ className: classNames('search-btn'),
856
+ onClick: onCommonSearch
857
+ }, /*#__PURE__*/React.createElement(Icon, {
858
+ type: "search"
859
+ }))));
860
+ };
861
+
862
+ export default ModeSingleSingle;