@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.
- package/README.md +104 -131
- package/demos/demo1.demo.tsx +100 -90
- package/doc-dist/0.js +1917 -16
- package/doc-dist/1.js +16 -1917
- package/doc-dist/10.js +1 -1
- package/doc-dist/11.js +1 -1
- package/doc-dist/12.js +1 -1
- package/doc-dist/13.js +1 -1
- package/doc-dist/14.js +1 -1
- package/doc-dist/15.js +1 -1
- package/doc-dist/3.js +5 -5
- package/doc-dist/4.js +1 -1
- package/doc-dist/5.js +2 -2
- package/doc-dist/6.js +1 -1
- package/doc-dist/7.js +1 -1
- package/doc-dist/8.js +1 -1
- package/doc-dist/9.js +1 -1
- package/doc-dist/deps/main.css +1 -1
- package/doc-dist/deps/main.js +8 -8
- package/doc-dist/deps/main.os.css +1 -1
- package/doc-dist/index.js +3 -3
- package/doc-dist/log-deps-build.log +3 -3
- package/es/constants.js +4 -1
- package/es/index.js +1 -1
- package/es/modeSingleSingle/InputPrefix.js +29 -0
- package/es/modeSingleSingle/index2.js +369 -0
- package/es/search.js +2 -3
- package/es/searchTagList/PureTag.js +57 -0
- package/es/searchTagList/index.js +30 -14
- package/es/style.js +2 -2
- package/lib/constants.d.ts +2 -0
- package/lib/constants.js +6 -2
- package/lib/index.d.ts +2 -1
- package/lib/index.js +1 -1
- package/lib/modeSingleSingle/InputPrefix.d.ts +2 -0
- package/lib/modeSingleSingle/InputPrefix.js +43 -0
- package/lib/modeSingleSingle/index2.d.ts +4 -0
- package/lib/modeSingleSingle/index2.js +400 -0
- package/lib/search.js +2 -4
- package/lib/searchTagList/PureTag.d.ts +14 -0
- package/lib/searchTagList/PureTag.js +71 -0
- package/lib/searchTagList/index.d.ts +3 -1
- package/lib/searchTagList/index.js +31 -15
- package/lib/style.js +2 -2
- package/lib/types/IRcSearchProps.type.d.ts +22 -21
- package/lib/types/IRcSearchTagItemProps.type.d.ts +2 -2
- package/lib/types/IRcSearchTagListProps.type.d.ts +9 -5
- package/package.json +2 -1
- package/demos/demo2.demo.tsx +0 -81
- package/demos/demo3.demo.tsx +0 -90
- package/demos/demo4.demo.tsx +0 -137
- package/dist/index.css +0 -1
- package/dist/index.js +0 -60
- package/doc-dist/16.js +0 -6
- package/doc-dist/17.js +0 -6
- package/doc-dist/18.js +0 -6
- package/doc-dist/19.js +0 -6
- package/doc-dist/20.js +0 -6
- package/docs/markdown-render.doc.md +0 -21
- package/docs/test.doc.md +0 -8
- package/es/modeSingleMulti/index.js +0 -868
- package/es/modeSingleSingle/index.js +0 -201
- package/lib/modeSingleMulti/index.d.ts +0 -2
- package/lib/modeSingleMulti/index.js +0 -894
- package/lib/modeSingleSingle/index.d.ts +0 -2
- 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,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
|
|
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
|
-
},
|
|
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;
|
|
@@ -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
|
|
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)(
|
|
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 (
|
|
49
|
-
|
|
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(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
},
|
|
71
|
-
|
|
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")));
|