@alicloud/console-components-search 0.1.3 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +104 -131
  2. package/demos/demo1.demo.tsx +100 -90
  3. package/doc-dist/0.js +1917 -16
  4. package/doc-dist/1.js +16 -1917
  5. package/doc-dist/10.js +1 -1
  6. package/doc-dist/11.js +1 -1
  7. package/doc-dist/12.js +1 -1
  8. package/doc-dist/13.js +1 -1
  9. package/doc-dist/14.js +1 -1
  10. package/doc-dist/15.js +1 -1
  11. package/doc-dist/3.js +5 -5
  12. package/doc-dist/4.js +1 -1
  13. package/doc-dist/5.js +2 -2
  14. package/doc-dist/6.js +1 -1
  15. package/doc-dist/7.js +1 -1
  16. package/doc-dist/8.js +1 -1
  17. package/doc-dist/9.js +1 -1
  18. package/doc-dist/deps/main.css +1 -1
  19. package/doc-dist/deps/main.js +8 -8
  20. package/doc-dist/deps/main.os.css +1 -1
  21. package/doc-dist/index.js +3 -3
  22. package/doc-dist/log-deps-build.log +3 -3
  23. package/es/constants.js +4 -1
  24. package/es/index.js +1 -1
  25. package/es/modeSingleSingle/InputPrefix.js +29 -0
  26. package/es/modeSingleSingle/index2.js +369 -0
  27. package/es/search.js +2 -3
  28. package/es/searchTagList/PureTag.js +57 -0
  29. package/es/searchTagList/index.js +30 -14
  30. package/es/style.js +2 -2
  31. package/lib/constants.d.ts +2 -0
  32. package/lib/constants.js +6 -2
  33. package/lib/index.d.ts +2 -1
  34. package/lib/index.js +1 -1
  35. package/lib/modeSingleSingle/InputPrefix.d.ts +2 -0
  36. package/lib/modeSingleSingle/InputPrefix.js +43 -0
  37. package/lib/modeSingleSingle/index2.d.ts +4 -0
  38. package/lib/modeSingleSingle/index2.js +400 -0
  39. package/lib/search.js +2 -4
  40. package/lib/searchTagList/PureTag.d.ts +14 -0
  41. package/lib/searchTagList/PureTag.js +71 -0
  42. package/lib/searchTagList/index.d.ts +3 -1
  43. package/lib/searchTagList/index.js +31 -15
  44. package/lib/style.js +2 -2
  45. package/lib/types/IRcSearchProps.type.d.ts +22 -21
  46. package/lib/types/IRcSearchTagItemProps.type.d.ts +2 -2
  47. package/lib/types/IRcSearchTagListProps.type.d.ts +9 -5
  48. package/package.json +2 -1
  49. package/demos/demo2.demo.tsx +0 -81
  50. package/demos/demo3.demo.tsx +0 -90
  51. package/demos/demo4.demo.tsx +0 -137
  52. package/dist/index.css +0 -1
  53. package/dist/index.js +0 -60
  54. package/doc-dist/16.js +0 -6
  55. package/doc-dist/17.js +0 -6
  56. package/doc-dist/18.js +0 -6
  57. package/doc-dist/19.js +0 -6
  58. package/doc-dist/20.js +0 -6
  59. package/docs/markdown-render.doc.md +0 -21
  60. package/docs/test.doc.md +0 -8
  61. package/es/modeSingleMulti/index.js +0 -868
  62. package/es/modeSingleSingle/index.js +0 -201
  63. package/lib/modeSingleMulti/index.d.ts +0 -2
  64. package/lib/modeSingleMulti/index.js +0 -894
  65. package/lib/modeSingleSingle/index.d.ts +0 -2
  66. package/lib/modeSingleSingle/index.js +0 -226
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+
18
+ var _consoleComponents = require("@alicloud/console-components");
19
+
20
+ var _excluded = ["dataSource", "label"];
21
+
22
+ var SearchConditionSelectPrefix = function SearchConditionSelectPrefix(props) {
23
+ var _props$dataSource = props.dataSource,
24
+ dataSource = _props$dataSource === void 0 ? [] : _props$dataSource,
25
+ label = props.label,
26
+ reset = (0, _objectWithoutProperties2.default)(props, _excluded);
27
+ return /*#__PURE__*/_react.default.createElement("div", {
28
+ className: (0, _classnames.default)('condition-item')
29
+ }, /*#__PURE__*/_react.default.createElement("span", {
30
+ className: (0, _classnames.default)('condition-item-txt')
31
+ }, label), /*#__PURE__*/_react.default.createElement(_consoleComponents.Icon, {
32
+ type: "caret-down",
33
+ size: "xxs"
34
+ }), /*#__PURE__*/_react.default.createElement(_consoleComponents.Select, (0, _extends2.default)({
35
+ className: (0, _classnames.default)('condition-select'),
36
+ hasBorder: false,
37
+ dataSource: dataSource,
38
+ autoWidth: true
39
+ }, reset)));
40
+ };
41
+
42
+ var _default = SearchConditionSelectPrefix;
43
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { IRcSearchProps } from "../types/IRcSearchProps.type";
3
+ declare const _default: React.FC<IRcSearchProps>;
4
+ export default _default;
@@ -0,0 +1,400 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
+
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
22
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
23
+
24
+ var _groupBy = _interopRequireDefault(require("lodash/groupBy"));
25
+
26
+ var _isArray = _interopRequireDefault(require("lodash/isArray"));
27
+
28
+ var _react = _interopRequireWildcard(require("react"));
29
+
30
+ var _consoleComponents = require("@alicloud/console-components");
31
+
32
+ var _style = require("../style");
33
+
34
+ var _InputPrefix = _interopRequireDefault(require("./InputPrefix"));
35
+
36
+ var _constants = require("../constants");
37
+
38
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
+
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
+
42
+ 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; }
43
+
44
+ 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) { (0, _defineProperty2.default)(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; }
45
+
46
+ var AutoComplete = _consoleComponents.Select.AutoComplete;
47
+ /**
48
+ *
49
+ * @param IRcSearchOptionsProps options
50
+ * @returns
51
+ */
52
+
53
+ var normalizeOptions = function normalizeOptions(options) {
54
+ var optionsCopy = (0, _cloneDeep.default)(options);
55
+ optionsCopy.forEach(function (o) {
56
+ var _o$groupName;
57
+
58
+ return (_o$groupName = o.groupName) !== null && _o$groupName !== void 0 ? _o$groupName : o.groupName = "选择筛选条件";
59
+ });
60
+ return Object.entries((0, _groupBy.default)(optionsCopy, 'groupName')).map(function (_ref) {
61
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
62
+ groupName = _ref2[0],
63
+ children = _ref2[1];
64
+
65
+ return {
66
+ label: groupName,
67
+ children: children.map(function (l) {
68
+ return {
69
+ label: l.label,
70
+ value: l.dataIndex
71
+ };
72
+ })
73
+ };
74
+ });
75
+ };
76
+
77
+ var normalizeSelectDataSource = function normalizeSelectDataSource(title, list) {
78
+ return [{
79
+ label: title || '',
80
+ children: (0, _toConsumableArray2.default)(list)
81
+ }];
82
+ };
83
+
84
+ var normalizeSearchOptions = function normalizeSearchOptions(dataIndex, value, options) {
85
+ var opt = options.find(function (o) {
86
+ return o.dataIndex === dataIndex;
87
+ });
88
+ var valueLabel = value;
89
+
90
+ if ((opt === null || opt === void 0 ? void 0 : opt.template) === 'select') {
91
+ var _opt$templateProps;
92
+
93
+ valueLabel = (_opt$templateProps = opt.templateProps) === null || _opt$templateProps === void 0 ? void 0 : _opt$templateProps.dataSource.find(function (d) {
94
+ return d.value === value;
95
+ }).label;
96
+ }
97
+
98
+ if ((opt === null || opt === void 0 ? void 0 : opt.template) === 'multiple') {
99
+ var _opt$templateProps2;
100
+
101
+ valueLabel = (_opt$templateProps2 = opt.templateProps) === null || _opt$templateProps2 === void 0 ? void 0 : _opt$templateProps2.dataSource.filter(function (d) {
102
+ return value.indexOf(d.value) !== -1;
103
+ }).map(function (d) {
104
+ return d.label;
105
+ }).join('/');
106
+ }
107
+
108
+ return {
109
+ label: opt === null || opt === void 0 ? void 0 : opt.label,
110
+ valueLabel: valueLabel,
111
+ value: value,
112
+ dataIndex: dataIndex
113
+ };
114
+ };
115
+
116
+ var highlightKeyword = function highlightKeyword(value, keywords) {
117
+ var idx = value.toLowerCase().indexOf(keywords.toLowerCase());
118
+ var startValue = value.slice(0, idx);
119
+ var highlightValue = value.slice(idx, idx + keywords.length);
120
+ var endValue = value.slice(idx + keywords.length);
121
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, startValue, /*#__PURE__*/_react.default.createElement("span", {
122
+ style: {
123
+ color: 'var(--color-brand1-6)'
124
+ }
125
+ }, highlightValue), endValue);
126
+ };
127
+
128
+ var ComplexSearch = function ComplexSearch(props) {
129
+ var options = props.options,
130
+ fuzzy = props.fuzzy,
131
+ defaultDataIndex = props.defaultDataIndex,
132
+ placeholder = props.placeholder,
133
+ onSearch = props.onSearch,
134
+ onSuggest = props.onSuggest,
135
+ _props$suggestions = props.suggestions,
136
+ suggestions = _props$suggestions === void 0 ? [] : _props$suggestions,
137
+ _props$prefix = props.prefix,
138
+ prefix = _props$prefix === void 0 ? 'next-' : _props$prefix;
139
+
140
+ var _useState = (0, _react.useState)(null),
141
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
142
+ selectedFilterType = _useState2[0],
143
+ setSelectedFilterType = _useState2[1];
144
+
145
+ var _useState3 = (0, _react.useState)(false),
146
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
147
+ focused = _useState4[0],
148
+ setFocused = _useState4[1];
149
+
150
+ var autoRef = (0, _react.useRef)(null);
151
+
152
+ var field = _consoleComponents.Field.useField();
153
+
154
+ var init = field.init,
155
+ getValue = field.getValue,
156
+ reset = field.reset,
157
+ getError = field.getError;
158
+ var focusProps = {
159
+ onFocus: function onFocus() {
160
+ setFocused(true);
161
+ },
162
+ onBlur: function onBlur() {
163
+ setFocused(false);
164
+ }
165
+ }; //计算视图,根据内部状态和输入的 props 决定一些值
166
+
167
+ var isFuzzy = (!!defaultDataIndex || fuzzy) && !!getValue(_constants.SEARCH_FILTER_FIELD);
168
+ var defaultFilter = options.find(function (t) {
169
+ return t.dataIndex === defaultDataIndex;
170
+ });
171
+
172
+ var highlightItem = function highlightItem(item, searchKey) {
173
+ var label = item.label;
174
+
175
+ if (searchKey && searchKey.length) {
176
+ label = highlightKeyword(item.label, searchKey);
177
+ }
178
+
179
+ return label;
180
+ };
181
+ /**
182
+ * 处理筛选类型选中的情况
183
+ */
184
+
185
+
186
+ var handlerFilterTypeChange = function handlerFilterTypeChange(type) {
187
+ var resetValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
188
+ setSelectedFilterType(options.find(function (o) {
189
+ return o.dataIndex === type;
190
+ }));
191
+ resetValue && reset();
192
+ };
193
+ /**
194
+ * 处理当筛选类型没选中,用户输入筛选类型,或者是做默认搜索的情况
195
+ */
196
+
197
+
198
+ var handlerFilterTypeInput = function handlerFilterTypeInput(value, actionType, isFuzzy) {
199
+ var isFuzzySearch = isFuzzy && getValue(_constants.SEARCH_FILTER_FIELD); // 如果是模糊搜索,则直接处理
200
+
201
+ if (isFuzzySearch) {
202
+ if (actionType !== 'change') {
203
+ handleSearch();
204
+ } else {
205
+ onSuggest && onSuggest(value, defaultDataIndex || '');
206
+ }
207
+
208
+ return;
209
+ } // 否则处理筛选项改变的情况
210
+
211
+
212
+ handlerFilterTypeChange(value, false);
213
+ };
214
+
215
+ var handlerFilterClear = function handlerFilterClear() {
216
+ setSelectedFilterType(null);
217
+ reset();
218
+ };
219
+
220
+ var handleSearch = function handleSearch() {
221
+ if (onSearch) {
222
+ var value = getValue(_constants.SEARCH_FILTER_VALUE_FIELD);
223
+
224
+ if (defaultDataIndex && !selectedFilterType) {
225
+ onSearch(getValue(_constants.SEARCH_FILTER_FIELD), defaultDataIndex, normalizeSearchOptions(defaultDataIndex, getValue(_constants.SEARCH_FILTER_FIELD), options));
226
+ }
227
+
228
+ if (selectedFilterType) {
229
+ onSearch(value, selectedFilterType.dataIndex, normalizeSearchOptions(selectedFilterType.dataIndex, value, options));
230
+ }
231
+ }
232
+
233
+ reset();
234
+ document.body.click();
235
+ setFocused(false);
236
+ };
237
+
238
+ var handleKeyUp = function handleKeyUp(e) {
239
+ if (e.keyCode === 13 && e.currentTarget.value) {
240
+ handleSearch();
241
+ document.body.click();
242
+ }
243
+ };
244
+
245
+ var renderMultipleSelectorItem = function renderMultipleSelectorItem(item) {
246
+ var searchValue = getValue(_constants.SEARCH_FILTER_VALUE_FIELD);
247
+ var checked = (0, _isArray.default)(searchValue) && searchValue.some(function (v) {
248
+ return v === item.value;
249
+ });
250
+ return /*#__PURE__*/_react.default.createElement(_consoleComponents.Checkbox, {
251
+ checked: checked
252
+ }, item.label);
253
+ };
254
+
255
+ var renderSelectedFilter = function renderSelectedFilter() {
256
+ var _selectedFilterType$t, _selectedFilterType$t2;
257
+
258
+ var type = selectedFilterType === null || selectedFilterType === void 0 ? void 0 : selectedFilterType.template;
259
+ var searchValue = getValue(_constants.SEARCH_FILTER_VALUE_FIELD);
260
+
261
+ var props = _objectSpread({
262
+ hasBorder: false,
263
+ autoFocus: true,
264
+ hasClear: true,
265
+ key: type,
266
+ placeholder: (selectedFilterType === null || selectedFilterType === void 0 ? void 0 : (_selectedFilterType$t = selectedFilterType.templateProps) === null || _selectedFilterType$t === void 0 ? void 0 : _selectedFilterType$t.placeholder) || "\u9ED8\u8BA4\u6309".concat(selectedFilterType === null || selectedFilterType === void 0 ? void 0 : selectedFilterType.label, "\u641C\u7D22")
267
+ }, focusProps);
268
+
269
+ var selectProps = {
270
+ dataSource: normalizeSelectDataSource(selectedFilterType === null || selectedFilterType === void 0 ? void 0 : selectedFilterType.label, (selectedFilterType === null || selectedFilterType === void 0 ? void 0 : (_selectedFilterType$t2 = selectedFilterType.templateProps) === null || _selectedFilterType$t2 === void 0 ? void 0 : _selectedFilterType$t2.dataSource) || []),
271
+ defaultVisible: true,
272
+ popupStyle: {
273
+ width: 'auto'
274
+ }
275
+ };
276
+
277
+ switch (type) {
278
+ case 'input':
279
+ return /*#__PURE__*/_react.default.createElement(AutoComplete, (0, _extends2.default)({}, init(_constants.SEARCH_FILTER_VALUE_FIELD, {}), {
280
+ className: (0, _classnames.default)('main-input', 'multi')
281
+ }, props, {
282
+ onKeyUp: handleKeyUp
283
+ }));
284
+
285
+ case 'select':
286
+ return /*#__PURE__*/_react.default.createElement(_consoleComponents.Select, (0, _extends2.default)({
287
+ className: (0, _classnames.default)('main-input', 'select')
288
+ }, init(_constants.SEARCH_FILTER_VALUE_FIELD, {
289
+ props: {
290
+ onChange: handleSearch
291
+ }
292
+ }), props, selectProps));
293
+
294
+ case 'multiple':
295
+ return /*#__PURE__*/_react.default.createElement(_consoleComponents.Select, (0, _extends2.default)({
296
+ className: (0, _classnames.default)('main-input', 'multi')
297
+ }, init(_constants.SEARCH_FILTER_VALUE_FIELD, {}), props, selectProps, {
298
+ itemRender: renderMultipleSelectorItem,
299
+ popupClassName: "xconsole-rcsearch-multi-pop",
300
+ mode: "multiple",
301
+ maxTagCount: 0,
302
+ menuProps: {
303
+ footer: /*#__PURE__*/_react.default.createElement(_style.MultiBtnWarp, {
304
+ prefix: prefix
305
+ }, /*#__PURE__*/_react.default.createElement(_consoleComponents.Button, {
306
+ size: "small",
307
+ className: (0, _classnames.default)("pri-btn"),
308
+ type: "primary",
309
+ disabled: !(searchValue !== null && searchValue !== void 0 && searchValue.length),
310
+ onClick: function onClick() {
311
+ handleSearch();
312
+ }
313
+ }, "\u786E\u5B9A"), /*#__PURE__*/_react.default.createElement(_consoleComponents.Button, {
314
+ size: "small",
315
+ className: (0, _classnames.default)("cancel-btn"),
316
+ type: "normal",
317
+ onClick: function onClick() {
318
+ reset();
319
+ document.body.click();
320
+ }
321
+ }, "\u53D6\u6D88"))
322
+ }
323
+ }));
324
+
325
+ default:
326
+ return null;
327
+ }
328
+ };
329
+
330
+ var renderSelectFilterCloseIcon = function renderSelectFilterCloseIcon() {
331
+ var hasFilterTypeClearBtn = !!selectedFilterType && !((selectedFilterType === null || selectedFilterType === void 0 ? void 0 : selectedFilterType.template) === 'input' && !!getValue(_constants.SEARCH_FILTER_VALUE_FIELD));
332
+ return hasFilterTypeClearBtn && /*#__PURE__*/_react.default.createElement("div", {
333
+ className: "clear-level1"
334
+ }, /*#__PURE__*/_react.default.createElement("span", {
335
+ className: "".concat(prefix, "input-control")
336
+ }, /*#__PURE__*/_react.default.createElement("span", {
337
+ className: "".concat(prefix, "input-hint-wrap")
338
+ }, /*#__PURE__*/_react.default.createElement("i", {
339
+ className: "".concat(prefix, "icon ").concat(prefix, "icon-delete-filling ").concat(prefix, "medium ").concat(prefix, "input-hint ").concat(prefix, "input-clear-icon"),
340
+ role: "button",
341
+ "aria-label": "\u6E05\u9664",
342
+ onClick: function onClick() {
343
+ handlerFilterClear();
344
+ }
345
+ }))));
346
+ };
347
+
348
+ return /*#__PURE__*/_react.default.createElement(_style.SearchWarp, {
349
+ prefix: prefix
350
+ }, /*#__PURE__*/_react.default.createElement("div", {
351
+ className: (0, _classnames.default)('left-wrap', "".concat(prefix, "input"), {
352
+ 'focus': focused
353
+ })
354
+ }, /*#__PURE__*/_react.default.createElement("div", {
355
+ className: (0, _classnames.default)('condition')
356
+ }, selectedFilterType ? /*#__PURE__*/_react.default.createElement(_InputPrefix.default, {
357
+ dataSource: normalizeOptions(options),
358
+ label: selectedFilterType === null || selectedFilterType === void 0 ? void 0 : selectedFilterType.label,
359
+ defaultValue: selectedFilterType === null || selectedFilterType === void 0 ? void 0 : selectedFilterType.dataIndex,
360
+ onChange: function onChange(value) {
361
+ handlerFilterTypeChange(value);
362
+ }
363
+ }) : null), /*#__PURE__*/_react.default.createElement("div", {
364
+ className: (0, _classnames.default)('forms')
365
+ }, !selectedFilterType ? /*#__PURE__*/_react.default.createElement(AutoComplete, (0, _extends2.default)({}, init(_constants.SEARCH_FILTER_FIELD, {
366
+ props: {
367
+ // @ts-ignore
368
+ onChange: function onChange(value, actionType) {
369
+ handlerFilterTypeInput(value, actionType, isFuzzy);
370
+ }
371
+ }
372
+ }), {
373
+ // @ts-ignore
374
+ itemRender: highlightItem,
375
+ placeholder: placeholder ? placeholder : defaultFilter !== null && defaultFilter !== void 0 && defaultFilter.label ? "\u9ED8\u8BA4\u6309".concat(defaultFilter === null || defaultFilter === void 0 ? void 0 : defaultFilter.label, "\u641C\u7D22") : '请搜索',
376
+ className: (0, _classnames.default)('main-input', 'multi'),
377
+ hasBorder: false,
378
+ onKeyUp: handleKeyUp,
379
+ dataSource: // 如果是指定了默认的筛选类型或者是直接指定模糊搜索模式 ,并且用户在这个输入框里面已经输入了值
380
+ // 则表示需要模糊搜索,调用 handleSuggest
381
+ isFuzzy ? suggestions : normalizeOptions(options),
382
+ popupStyle: {
383
+ width: 'auto'
384
+ }
385
+ }, focusProps)) : null, renderSelectedFilter(), renderSelectFilterCloseIcon())), /*#__PURE__*/_react.default.createElement("div", {
386
+ className: (0, _classnames.default)('right-wrap'),
387
+ ref: autoRef
388
+ }, /*#__PURE__*/_react.default.createElement(_consoleComponents.Button, {
389
+ className: (0, _classnames.default)('search-btn', {
390
+ 'focus': focused
391
+ }),
392
+ onClick: handleSearch
393
+ }, /*#__PURE__*/_react.default.createElement(_consoleComponents.Icon, {
394
+ type: "search"
395
+ }))));
396
+ };
397
+
398
+ var _default = _consoleComponents.ConfigProvider.config(ComplexSearch);
399
+
400
+ exports.default = _default;
package/lib/search.js CHANGED
@@ -9,9 +9,7 @@ exports.Search = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var _modeSingleSingle = _interopRequireDefault(require("./modeSingleSingle"));
13
-
14
- var _modeSingleMulti = _interopRequireDefault(require("./modeSingleMulti"));
12
+ var _index = _interopRequireDefault(require("./modeSingleSingle/index2"));
15
13
 
16
14
  var _classnames = _interopRequireDefault(require("classnames"));
17
15
 
@@ -37,7 +35,7 @@ var Search = function Search(props) {
37
35
  }), /*#__PURE__*/_react.default.createElement(SearchWrap, {
38
36
  className: (0, _classnames.default)(_constants.baseClassName, className),
39
37
  style: style
40
- }, simple ? /*#__PURE__*/_react.default.createElement(_modeSingleSingle.default, props) : /*#__PURE__*/_react.default.createElement(_modeSingleMulti.default, props)));
38
+ }, /*#__PURE__*/_react.default.createElement(_index.default, props)));
41
39
  };
42
40
 
43
41
  exports.Search = Search;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { CloseableProps } from '@alifd/next/lib/tag';
3
+ import './index.less';
4
+ export interface PureTagProps extends CloseableProps {
5
+ tagKey: string;
6
+ tagValue: string;
7
+ disableTruncate?: boolean;
8
+ closable?: boolean;
9
+ showDot?: boolean;
10
+ showLabel?: boolean | string;
11
+ intl?: any;
12
+ }
13
+ declare const PureTag: React.FC<PureTagProps>;
14
+ export default PureTag;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _consoleComponents = require("@alicloud/console-components");
17
+
18
+ var _consoleComponentsTruncate = _interopRequireDefault(require("@alicloud/console-components-truncate"));
19
+
20
+ var _excluded = ["intl", "tagKey", "disableTruncate", "showDot", "tagValue", "showLabel", "closable"];
21
+
22
+ var Empty = function Empty(_ref) {
23
+ var children = _ref.children;
24
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
25
+ };
26
+
27
+ var PureTag = function PureTag(props) {
28
+ var intl = props.intl,
29
+ tagKey = props.tagKey,
30
+ disableTruncate = props.disableTruncate,
31
+ showDot = props.showDot,
32
+ tagValue = props.tagValue,
33
+ showLabel = props.showLabel,
34
+ _props$closable = props.closable,
35
+ closable = _props$closable === void 0 ? true : _props$closable,
36
+ resetProps = (0, _objectWithoutProperties2.default)(props, _excluded);
37
+ var defaultTruncateProps = {
38
+ threshold: 20,
39
+ showTooltip: false
40
+ };
41
+ var TruncateWrapper = disableTruncate ? Empty : _consoleComponentsTruncate.default;
42
+ var DotWrapper = showDot ? _consoleComponents.Badge : Empty;
43
+ var TagWrapper = closable ? _consoleComponents.Tag.Closeable : _consoleComponents.Tag;
44
+ var transformedTagValue = tagValue;
45
+
46
+ if (tagValue === '') {
47
+ transformedTagValue = '空值';
48
+ } else if (tagValue === undefined || tagValue === null) {
49
+ transformedTagValue = '全部值';
50
+ }
51
+
52
+ return (
53
+ /*#__PURE__*/
54
+ //@ts-ignore
55
+ _react.default.createElement(DotWrapper, {
56
+ title: "\u5373\u5C06\u65B0\u5EFA",
57
+ className: "console-tags-tag-dot",
58
+ dot: true
59
+ }, /*#__PURE__*/_react.default.createElement(TagWrapper, (0, _extends2.default)({
60
+ title: "".concat(tagKey, ":").concat(tagValue),
61
+ className: "console-tags-tag"
62
+ }, resetProps), showLabel && /*#__PURE__*/_react.default.createElement("label", {
63
+ className: "console-tags-tag-label"
64
+ }, "\u6807\u7B7E"), /*#__PURE__*/_react.default.createElement(TruncateWrapper, defaultTruncateProps, tagKey), ":", tagValue ? /*#__PURE__*/_react.default.createElement(TruncateWrapper, defaultTruncateProps, tagValue) : /*#__PURE__*/_react.default.createElement("span", {
65
+ className: "console-tags-tag_empty"
66
+ }, transformedTagValue)))
67
+ );
68
+ };
69
+
70
+ var _default = PureTag;
71
+ exports.default = _default;
@@ -1,2 +1,4 @@
1
- declare const _default: any;
1
+ import React from "react";
2
+ import { IRcSearchTagListProps } from '../types/IRcSearchTagListProps.type';
3
+ declare const _default: React.FC<IRcSearchTagListProps>;
2
4
  export default _default;
@@ -15,38 +15,39 @@ var _classnames = _interopRequireDefault(require("classnames"));
15
15
 
16
16
  var _consoleComponents = require("@alicloud/console-components");
17
17
 
18
- var _LoggerProvider = _interopRequireDefault(require("../provider/LoggerProvider"));
19
-
20
18
  var _style = require("../style");
21
19
 
22
20
  var _constants = require("../constants");
23
21
 
22
+ var _PureTag = _interopRequireDefault(require("./PureTag"));
23
+
24
24
  var TagGroup = _consoleComponents.Tag.Group,
25
25
  ClosableTag = _consoleComponents.Tag.Closeable;
26
26
 
27
27
  var SearchTagList = function SearchTagList(props) {
28
- var tagList = props.tagList,
28
+ var dataSource = props.dataSource,
29
29
  className = props.className,
30
30
  style = props.style,
31
31
  onChange = props.onChange,
32
+ onClear = props.onClear,
32
33
  _props$prefix = props.prefix,
33
34
  prefix = _props$prefix === void 0 ? "next-" : _props$prefix;
34
35
 
35
36
  function onRemoveTag(item) {
36
- var newTagList = (0, _toConsumableArray2.default)(tagList);
37
+ var newTagList = (0, _toConsumableArray2.default)(dataSource);
37
38
 
38
39
  if (onChange) {
39
40
  var resFindIndex = newTagList.findIndex(function (x) {
40
41
  return x.dataIndex === item.dataIndex;
41
42
  });
42
- newTagList.splice(resFindIndex, 1);
43
- onChange(newTagList);
43
+ var deletedTags = newTagList.splice(resFindIndex, 1);
44
+ onChange(deletedTags[0], newTagList);
44
45
  }
45
46
  }
46
47
 
47
48
  function onRemoveAllTag() {
48
- if (onChange) {
49
- onChange([]);
49
+ if (onClear) {
50
+ onClear();
50
51
  }
51
52
  }
52
53
 
@@ -54,12 +55,25 @@ var SearchTagList = function SearchTagList(props) {
54
55
  prefix: prefix,
55
56
  className: (0, _classnames.default)(_constants.baseTagListClassName, className),
56
57
  style: style
57
- }, /*#__PURE__*/_react.default.createElement(_LoggerProvider.default, {
58
- regionId: props.regionId,
59
- resourceType: props.resourceType || '',
60
- componentName: "RcSearch"
61
- }), /*#__PURE__*/_react.default.createElement(TagGroup, null, tagList && tagList.length > 0 && tagList.map(function (tagItem) {
58
+ }, /*#__PURE__*/_react.default.createElement(TagGroup, null, dataSource && dataSource.length > 0 && dataSource.map(function (tagItem) {
59
+ var value = tagItem.value;
60
+ var isTag = !!value.tagKey;
61
+
62
+ if (isTag) {
63
+ return /*#__PURE__*/_react.default.createElement(_PureTag.default, {
64
+ showLabel: true,
65
+ tagKey: value.tagKey,
66
+ tagValue: value.tagKey,
67
+ closable: true,
68
+ onClose: function onClose() {
69
+ onRemoveTag(tagItem);
70
+ return true;
71
+ }
72
+ });
73
+ }
74
+
62
75
  return /*#__PURE__*/_react.default.createElement(ClosableTag, {
76
+ className: "console-tags-tag",
63
77
  key: tagItem.dataIndex + tagItem.value,
64
78
  type: "normal",
65
79
  size: "medium",
@@ -67,8 +81,10 @@ var SearchTagList = function SearchTagList(props) {
67
81
  onRemoveTag(tagItem);
68
82
  return true;
69
83
  }
70
- }, tagItem.label, ":", tagItem.valueShow);
71
- }), tagList && tagList.length > 0 && /*#__PURE__*/_react.default.createElement("a", {
84
+ }, /*#__PURE__*/_react.default.createElement("label", {
85
+ className: "console-tags-tag-label"
86
+ }, tagItem.label), tagItem.value || tagItem.valueLabel);
87
+ }), dataSource && dataSource.length > 0 && /*#__PURE__*/_react.default.createElement("a", {
72
88
  className: "remove-btn",
73
89
  onClick: onRemoveAllTag
74
90
  }, "\u6E05\u9664\u7B5B\u9009\u6761\u4EF6")));