@kne/react-filter 0.1.18 → 0.1.21
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 +42 -16
- package/dist/index.css +7 -2
- package/dist/index.css.map +1 -1
- package/dist/index.js +6645 -0
- package/dist/index.js.map +1 -0
- package/dist/index.modern.js +5754 -24
- package/dist/index.modern.js.map +1 -1
- package/package.json +5 -3
- package/dist/index.cjs +0 -905
- package/dist/index.cjs.map +0 -1
package/dist/index.cjs
DELETED
|
@@ -1,905 +0,0 @@
|
|
|
1
|
-
var React = require('react');
|
|
2
|
-
var antd = require('antd');
|
|
3
|
-
var classnames = require('classnames');
|
|
4
|
-
var reactCitySelect = require('@kne/react-city-select');
|
|
5
|
-
var lodash = require('lodash');
|
|
6
|
-
var useClickOutSide = require('@kne/use-click-outside');
|
|
7
|
-
|
|
8
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
-
|
|
10
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
11
|
-
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
12
|
-
var useClickOutSide__default = /*#__PURE__*/_interopDefaultLegacy(useClickOutSide);
|
|
13
|
-
|
|
14
|
-
var context$1 = React.createContext({});
|
|
15
|
-
var Provider$1 = context$1.Provider;
|
|
16
|
-
var useConsumer = function useConsumer() {
|
|
17
|
-
return React.useContext(context$1);
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
function _extends() {
|
|
21
|
-
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
22
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
23
|
-
var source = arguments[i];
|
|
24
|
-
|
|
25
|
-
for (var key in source) {
|
|
26
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
27
|
-
target[key] = source[key];
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return target;
|
|
33
|
-
};
|
|
34
|
-
return _extends.apply(this, arguments);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
38
|
-
if (source == null) return {};
|
|
39
|
-
var target = {};
|
|
40
|
-
var sourceKeys = Object.keys(source);
|
|
41
|
-
var key, i;
|
|
42
|
-
|
|
43
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
44
|
-
key = sourceKeys[i];
|
|
45
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
46
|
-
target[key] = source[key];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return target;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
var _excluded$8 = ["label", "labelHidden", "isMore", "moreTrigger"];
|
|
53
|
-
|
|
54
|
-
var FilterItem = function FilterItem(_ref) {
|
|
55
|
-
var className = _ref.className,
|
|
56
|
-
label = _ref.label,
|
|
57
|
-
labelHidden = _ref.labelHidden,
|
|
58
|
-
isMore = _ref.isMore,
|
|
59
|
-
moreTrigger = _ref.moreTrigger,
|
|
60
|
-
children = _ref.children;
|
|
61
|
-
|
|
62
|
-
if (isMore) {
|
|
63
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
64
|
-
className: classnames__default["default"]("react-filter-item-label", "is-more", className)
|
|
65
|
-
}, /*#__PURE__*/React__default["default"].createElement(antd.Popover, {
|
|
66
|
-
content: children,
|
|
67
|
-
trigger: moreTrigger,
|
|
68
|
-
placement: "bottom",
|
|
69
|
-
overlayClassName: "react-filter-item-popover"
|
|
70
|
-
}, /*#__PURE__*/React__default["default"].createElement("a", null, label)));
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
74
|
-
className: classnames__default["default"]('react-filter-item', className)
|
|
75
|
-
}, labelHidden ? null : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
76
|
-
className: "react-filter-item-label"
|
|
77
|
-
}, label, ":"), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
78
|
-
className: "react-filter-item-children"
|
|
79
|
-
}, children));
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
var withFilterItem = function withFilterItem(WrappedComponent) {
|
|
83
|
-
return function (_ref2) {
|
|
84
|
-
var label = _ref2.label,
|
|
85
|
-
labelHidden = _ref2.labelHidden,
|
|
86
|
-
isMore = _ref2.isMore,
|
|
87
|
-
moreTrigger = _ref2.moreTrigger,
|
|
88
|
-
props = _objectWithoutPropertiesLoose(_ref2, _excluded$8);
|
|
89
|
-
|
|
90
|
-
return /*#__PURE__*/React__default["default"].createElement(FilterItem, {
|
|
91
|
-
label: label,
|
|
92
|
-
labelHidden: labelHidden,
|
|
93
|
-
isMore: isMore,
|
|
94
|
-
moreTrigger: moreTrigger
|
|
95
|
-
}, /*#__PURE__*/React__default["default"].createElement(WrappedComponent, _extends({}, props, {
|
|
96
|
-
label: label,
|
|
97
|
-
isMore: isMore
|
|
98
|
-
})));
|
|
99
|
-
};
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
var _excluded$7 = ["value", "label"];
|
|
103
|
-
var CheckableTag = antd.Tag.CheckableTag;
|
|
104
|
-
var context = React.createContext({});
|
|
105
|
-
var Provider = context.Provider;
|
|
106
|
-
|
|
107
|
-
var List = function List(_ref) {
|
|
108
|
-
var label = _ref.label,
|
|
109
|
-
labelHidden = _ref.labelHidden,
|
|
110
|
-
name = _ref.name,
|
|
111
|
-
size = _ref.size,
|
|
112
|
-
children = _ref.children,
|
|
113
|
-
options = _ref.options,
|
|
114
|
-
more = _ref.more;
|
|
115
|
-
|
|
116
|
-
var _useConsumer = useConsumer(),
|
|
117
|
-
value = _useConsumer.value,
|
|
118
|
-
onChange = _useConsumer.onChange;
|
|
119
|
-
|
|
120
|
-
var currentValue = function () {
|
|
121
|
-
var originValue = lodash.get(value, name);
|
|
122
|
-
|
|
123
|
-
if (size === 1) {
|
|
124
|
-
return originValue !== void 0 ? [originValue] : [];
|
|
125
|
-
} else {
|
|
126
|
-
return originValue || [];
|
|
127
|
-
}
|
|
128
|
-
}();
|
|
129
|
-
|
|
130
|
-
var changeHandler = function changeHandler(value) {
|
|
131
|
-
if (size === 1) {
|
|
132
|
-
return onChange(name, value[0]);
|
|
133
|
-
} else {
|
|
134
|
-
return onChange(name, value);
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
var createCheckedChangeHandler = function createCheckedChangeHandler(value) {
|
|
139
|
-
return function (checked) {
|
|
140
|
-
if (checked) {
|
|
141
|
-
var newList = currentValue.slice(0);
|
|
142
|
-
|
|
143
|
-
if (currentValue.length < size) {
|
|
144
|
-
newList.push(value);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
if (currentValue.length === size && size === 1) {
|
|
148
|
-
newList = [value];
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
if (currentValue.length >= size && size > 1) {
|
|
152
|
-
antd.message.error("\u6700\u591A\u9009\u62E9" + size + "\u4E2A");
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
changeHandler(newList);
|
|
157
|
-
} else {
|
|
158
|
-
var _newList = currentValue.slice(0);
|
|
159
|
-
|
|
160
|
-
_newList.splice(currentValue.indexOf(value), 1);
|
|
161
|
-
|
|
162
|
-
changeHandler(_newList);
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
var computedChildren = function () {
|
|
168
|
-
if (Array.isArray(options)) {
|
|
169
|
-
return options.map(function (_ref2) {
|
|
170
|
-
var label = _ref2.label,
|
|
171
|
-
value = _ref2.value;
|
|
172
|
-
return /*#__PURE__*/React__default["default"].createElement(List.Item, {
|
|
173
|
-
key: value,
|
|
174
|
-
value: value,
|
|
175
|
-
label: label
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
if (lodash.isFunction(children)) {
|
|
181
|
-
return children({
|
|
182
|
-
value: currentValue,
|
|
183
|
-
onChange: changeHandler
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
return children;
|
|
188
|
-
}();
|
|
189
|
-
|
|
190
|
-
return /*#__PURE__*/React__default["default"].createElement(FilterItem, {
|
|
191
|
-
label: label,
|
|
192
|
-
labelHidden: labelHidden
|
|
193
|
-
}, /*#__PURE__*/React__default["default"].createElement(Provider, {
|
|
194
|
-
value: {
|
|
195
|
-
currentValue: currentValue,
|
|
196
|
-
createCheckedChangeHandler: createCheckedChangeHandler
|
|
197
|
-
}
|
|
198
|
-
}, computedChildren, more ? function () {
|
|
199
|
-
if (lodash.isFunction(more)) {
|
|
200
|
-
return more({
|
|
201
|
-
name: name,
|
|
202
|
-
size: size,
|
|
203
|
-
label: label,
|
|
204
|
-
value: currentValue,
|
|
205
|
-
onChange: changeHandler
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
var children = more.children,
|
|
210
|
-
_onClick = more.onClick;
|
|
211
|
-
return /*#__PURE__*/React__default["default"].createElement(List.Item, _extends({}, more, {
|
|
212
|
-
onClick: function onClick(e) {
|
|
213
|
-
_onClick({
|
|
214
|
-
name: name,
|
|
215
|
-
label: label,
|
|
216
|
-
value: currentValue,
|
|
217
|
-
onChange: changeHandler
|
|
218
|
-
}, e);
|
|
219
|
-
},
|
|
220
|
-
label: children || "其他"
|
|
221
|
-
}));
|
|
222
|
-
}() : null));
|
|
223
|
-
};
|
|
224
|
-
|
|
225
|
-
List.Item = function (_ref3) {
|
|
226
|
-
var value = _ref3.value,
|
|
227
|
-
label = _ref3.label,
|
|
228
|
-
props = _objectWithoutPropertiesLoose(_ref3, _excluded$7);
|
|
229
|
-
|
|
230
|
-
var _useContext = React.useContext(context),
|
|
231
|
-
currentValue = _useContext.currentValue,
|
|
232
|
-
createCheckedChangeHandler = _useContext.createCheckedChangeHandler;
|
|
233
|
-
|
|
234
|
-
var itemProps = {};
|
|
235
|
-
|
|
236
|
-
if (value !== void 0) {
|
|
237
|
-
itemProps.checked = currentValue.findIndex(function (item) {
|
|
238
|
-
return lodash.isEqual(lodash.get(item, 'value'), value);
|
|
239
|
-
}) > -1;
|
|
240
|
-
itemProps.onChange = createCheckedChangeHandler({
|
|
241
|
-
label: label,
|
|
242
|
-
value: value
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
return /*#__PURE__*/React__default["default"].createElement(CheckableTag, _extends({}, props, itemProps), label);
|
|
247
|
-
};
|
|
248
|
-
|
|
249
|
-
List.defaultProps = {
|
|
250
|
-
size: 2
|
|
251
|
-
};
|
|
252
|
-
|
|
253
|
-
var _excluded$6 = ["label", "labelHidden", "name", "size", "isMore"];
|
|
254
|
-
var Item = List.Item;
|
|
255
|
-
|
|
256
|
-
var City = function City(_ref) {
|
|
257
|
-
var label = _ref.label,
|
|
258
|
-
labelHidden = _ref.labelHidden,
|
|
259
|
-
name = _ref.name,
|
|
260
|
-
size = _ref.size;
|
|
261
|
-
_objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
262
|
-
|
|
263
|
-
return /*#__PURE__*/React__default["default"].createElement(List, {
|
|
264
|
-
labelHidden: labelHidden,
|
|
265
|
-
label: label,
|
|
266
|
-
name: name,
|
|
267
|
-
size: size,
|
|
268
|
-
more: {
|
|
269
|
-
children: "其他",
|
|
270
|
-
onClick: function onClick(_ref2) {
|
|
271
|
-
var value = _ref2.value,
|
|
272
|
-
_onChange = _ref2.onChange;
|
|
273
|
-
reactCitySelect.createCitySelect({
|
|
274
|
-
size: size,
|
|
275
|
-
defaultValue: value.map(function (_ref3) {
|
|
276
|
-
var value = _ref3.value;
|
|
277
|
-
return value;
|
|
278
|
-
}),
|
|
279
|
-
onChange: function onChange(value) {
|
|
280
|
-
Promise.all(value.map(function (id) {
|
|
281
|
-
return reactCitySelect.apis.getCity(id).then(function (_ref4) {
|
|
282
|
-
var city = _ref4.city;
|
|
283
|
-
return {
|
|
284
|
-
label: city.name,
|
|
285
|
-
value: city.code
|
|
286
|
-
};
|
|
287
|
-
});
|
|
288
|
-
})).then(function (value) {
|
|
289
|
-
return _onChange(value);
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}, function (_ref5) {
|
|
296
|
-
var currentValue = _ref5.value;
|
|
297
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(reactCitySelect.RemoteData, {
|
|
298
|
-
loader: reactCitySelect.apis.getChinaHotCities
|
|
299
|
-
}, function (data) {
|
|
300
|
-
var otherList = currentValue.filter(function (_ref6) {
|
|
301
|
-
var code = _ref6.value;
|
|
302
|
-
return !data.find(function (item) {
|
|
303
|
-
return item.code === code;
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
var extraLength = 0;
|
|
307
|
-
data.forEach(function (item, index) {
|
|
308
|
-
if (currentValue.findIndex(function (_ref7) {
|
|
309
|
-
var value = _ref7.value;
|
|
310
|
-
return value === item.code;
|
|
311
|
-
}) > -1 && index >= data.length - otherList.length) {
|
|
312
|
-
extraLength += 1;
|
|
313
|
-
}
|
|
314
|
-
});
|
|
315
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, otherList.map(function (_ref8) {
|
|
316
|
-
var code = _ref8.value;
|
|
317
|
-
return /*#__PURE__*/React__default["default"].createElement(reactCitySelect.DisplayCity, {
|
|
318
|
-
id: code,
|
|
319
|
-
key: code
|
|
320
|
-
}, function (_ref9) {
|
|
321
|
-
var item = _ref9.city;
|
|
322
|
-
return /*#__PURE__*/React__default["default"].createElement(Item, {
|
|
323
|
-
value: code,
|
|
324
|
-
label: item.name
|
|
325
|
-
});
|
|
326
|
-
});
|
|
327
|
-
}), data.filter(function (item, index) {
|
|
328
|
-
return currentValue.findIndex(function (_ref10) {
|
|
329
|
-
var value = _ref10.value;
|
|
330
|
-
return value === item.code;
|
|
331
|
-
}) > -1 || index < data.length - otherList.length - extraLength;
|
|
332
|
-
}).map(function (item) {
|
|
333
|
-
return /*#__PURE__*/React__default["default"].createElement(Item, {
|
|
334
|
-
key: item.code,
|
|
335
|
-
value: item.code,
|
|
336
|
-
label: item.name
|
|
337
|
-
});
|
|
338
|
-
}));
|
|
339
|
-
}));
|
|
340
|
-
});
|
|
341
|
-
};
|
|
342
|
-
|
|
343
|
-
var SearchButton = function SearchButton(_ref) {
|
|
344
|
-
var name = _ref.name,
|
|
345
|
-
size = _ref.size,
|
|
346
|
-
isMore = _ref.isMore,
|
|
347
|
-
template = _ref.template,
|
|
348
|
-
children = _ref.children,
|
|
349
|
-
defaultValue = _ref.defaultValue,
|
|
350
|
-
defaultActive = _ref.defaultActive,
|
|
351
|
-
onBlur = _ref.onBlur,
|
|
352
|
-
onSearch = _ref.onSearch,
|
|
353
|
-
onBeforeSearch = _ref.onBeforeSearch,
|
|
354
|
-
onActiveChange = _ref.onActiveChange,
|
|
355
|
-
buttonText = _ref.buttonText;
|
|
356
|
-
|
|
357
|
-
var _useConsumer = useConsumer(),
|
|
358
|
-
aValue = _useConsumer.value,
|
|
359
|
-
onChange = _useConsumer.onChange;
|
|
360
|
-
|
|
361
|
-
var currentValue = aValue[name];
|
|
362
|
-
|
|
363
|
-
var _useState = React.useState(defaultValue || lodash.get(currentValue, "value")),
|
|
364
|
-
value = _useState[0],
|
|
365
|
-
setValue = _useState[1];
|
|
366
|
-
|
|
367
|
-
var _useState2 = React.useState(defaultActive),
|
|
368
|
-
active = _useState2[0],
|
|
369
|
-
setActive = _useState2[1];
|
|
370
|
-
|
|
371
|
-
var withTemplate = function withTemplate(value) {
|
|
372
|
-
if (value === void 0) {
|
|
373
|
-
value = '';
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
return {
|
|
377
|
-
value: value,
|
|
378
|
-
label: lodash.isFunction(template) ? template(value) : value.toString()
|
|
379
|
-
};
|
|
380
|
-
};
|
|
381
|
-
|
|
382
|
-
var ref = useClickOutSide__default["default"](function () {
|
|
383
|
-
setValue(lodash.get(currentValue, "value"));
|
|
384
|
-
setActive(false);
|
|
385
|
-
onBlur && onBlur();
|
|
386
|
-
});
|
|
387
|
-
var activeChangeRef = React.useRef(onActiveChange);
|
|
388
|
-
activeChangeRef.current = onActiveChange;
|
|
389
|
-
React.useEffect(function () {
|
|
390
|
-
activeChangeRef.current && activeChangeRef.current(active);
|
|
391
|
-
}, [active]);
|
|
392
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
393
|
-
className: classnames__default["default"]("react-filter-search-button", {
|
|
394
|
-
"is-active": active && !isMore
|
|
395
|
-
}),
|
|
396
|
-
ref: ref,
|
|
397
|
-
onMouseEnter: function onMouseEnter() {
|
|
398
|
-
!active && setActive(true);
|
|
399
|
-
},
|
|
400
|
-
onMouseLeave: function onMouseLeave() {
|
|
401
|
-
active && setActive(false);
|
|
402
|
-
}
|
|
403
|
-
}, /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
404
|
-
className: "inner",
|
|
405
|
-
size: 0
|
|
406
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", null, children({
|
|
407
|
-
value: value,
|
|
408
|
-
setValue: setValue,
|
|
409
|
-
setActive: setActive
|
|
410
|
-
})), active || isMore ? /*#__PURE__*/React__default["default"].createElement(antd.Button, {
|
|
411
|
-
className: classnames__default["default"]("react-filter-search-confirm", {
|
|
412
|
-
"is-more": isMore
|
|
413
|
-
}),
|
|
414
|
-
size: "small",
|
|
415
|
-
type: "primary",
|
|
416
|
-
onClick: function onClick(e) {
|
|
417
|
-
e.stopPropagation();
|
|
418
|
-
|
|
419
|
-
if (onBeforeSearch && onBeforeSearch(value) === false) {
|
|
420
|
-
return;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
onChange(name, Number.isInteger(size) && size > 1 ? [withTemplate(value)] : withTemplate(value));
|
|
424
|
-
setActive(false);
|
|
425
|
-
onSearch && onSearch({
|
|
426
|
-
value: value
|
|
427
|
-
});
|
|
428
|
-
}
|
|
429
|
-
}, buttonText) : null));
|
|
430
|
-
};
|
|
431
|
-
|
|
432
|
-
SearchButton.defaultProps = {
|
|
433
|
-
defaultActive: false,
|
|
434
|
-
buttonText: "确定"
|
|
435
|
-
};
|
|
436
|
-
|
|
437
|
-
var RangeInner = function RangeInner(_ref) {
|
|
438
|
-
var name = _ref.name,
|
|
439
|
-
size = _ref.size,
|
|
440
|
-
isMore = _ref.isMore,
|
|
441
|
-
defaultActive = _ref.defaultActive,
|
|
442
|
-
template = _ref.template,
|
|
443
|
-
onBlur = _ref.onBlur,
|
|
444
|
-
onSearch = _ref.onSearch,
|
|
445
|
-
_onActiveChange = _ref.onActiveChange,
|
|
446
|
-
startProps = _ref.startProps,
|
|
447
|
-
endProps = _ref.endProps,
|
|
448
|
-
placeholder = _ref.placeholder;
|
|
449
|
-
|
|
450
|
-
var _useState = React.useState(null),
|
|
451
|
-
error = _useState[0],
|
|
452
|
-
setError = _useState[1];
|
|
453
|
-
|
|
454
|
-
var check = function check(value) {
|
|
455
|
-
setError(null);
|
|
456
|
-
|
|
457
|
-
if (!Array.isArray(value)) {
|
|
458
|
-
return false;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
if (lodash.isNumber(value[1]) && value[0] > value[1]) {
|
|
462
|
-
setError("最大值不能小于最小值");
|
|
463
|
-
return false;
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
return true;
|
|
467
|
-
};
|
|
468
|
-
|
|
469
|
-
return /*#__PURE__*/React__default["default"].createElement(SearchButton, {
|
|
470
|
-
size: size,
|
|
471
|
-
template: template,
|
|
472
|
-
isMore: isMore,
|
|
473
|
-
onBlur: onBlur,
|
|
474
|
-
defaultActive: defaultActive,
|
|
475
|
-
name: name,
|
|
476
|
-
onSearch: onSearch,
|
|
477
|
-
onBeforeSearch: function onBeforeSearch(value) {
|
|
478
|
-
return check(value);
|
|
479
|
-
},
|
|
480
|
-
onActiveChange: function onActiveChange(active) {
|
|
481
|
-
if (!active) {
|
|
482
|
-
setError(null);
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
_onActiveChange && _onActiveChange(active);
|
|
486
|
-
}
|
|
487
|
-
}, function (_ref2) {
|
|
488
|
-
var value = _ref2.value,
|
|
489
|
-
setValue = _ref2.setValue,
|
|
490
|
-
setActive = _ref2.setActive;
|
|
491
|
-
return /*#__PURE__*/React__default["default"].createElement(antd.Tooltip, {
|
|
492
|
-
visible: !!error,
|
|
493
|
-
title: error,
|
|
494
|
-
placement: "bottomRight"
|
|
495
|
-
}, /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
496
|
-
size: "small"
|
|
497
|
-
}, /*#__PURE__*/React__default["default"].createElement(antd.InputNumber, _extends({
|
|
498
|
-
size: "small"
|
|
499
|
-
}, startProps, {
|
|
500
|
-
value: lodash.get(value, 0),
|
|
501
|
-
onChange: function onChange(inputValue) {
|
|
502
|
-
var target = [inputValue, lodash.get(value, 1)];
|
|
503
|
-
check(target);
|
|
504
|
-
setValue(target);
|
|
505
|
-
},
|
|
506
|
-
onFocus: function onFocus() {
|
|
507
|
-
setActive(true);
|
|
508
|
-
},
|
|
509
|
-
placeholder: Array.isArray(placeholder) ? placeholder[0] : placeholder || "请输入"
|
|
510
|
-
})), "~", /*#__PURE__*/React__default["default"].createElement(antd.InputNumber, _extends({
|
|
511
|
-
size: "small"
|
|
512
|
-
}, endProps, {
|
|
513
|
-
value: lodash.get(value, 1),
|
|
514
|
-
onChange: function onChange(inputValue) {
|
|
515
|
-
var target = [lodash.get(value, 0), inputValue];
|
|
516
|
-
check(target);
|
|
517
|
-
setValue(target);
|
|
518
|
-
},
|
|
519
|
-
onFocus: function onFocus() {
|
|
520
|
-
setActive(true);
|
|
521
|
-
},
|
|
522
|
-
placeholder: Array.isArray(placeholder) ? placeholder[0] : placeholder || "请输入"
|
|
523
|
-
}))));
|
|
524
|
-
});
|
|
525
|
-
};
|
|
526
|
-
var Range = withFilterItem(RangeInner);
|
|
527
|
-
|
|
528
|
-
var _excluded$5 = ["name", "label", "isMore", "template", "defaultActive", "onBlur", "onSearch", "onActiveChange", "placeholder"];
|
|
529
|
-
var TextInner = function TextInner(_ref) {
|
|
530
|
-
var name = _ref.name,
|
|
531
|
-
label = _ref.label,
|
|
532
|
-
isMore = _ref.isMore,
|
|
533
|
-
template = _ref.template,
|
|
534
|
-
defaultActive = _ref.defaultActive,
|
|
535
|
-
onBlur = _ref.onBlur,
|
|
536
|
-
onSearch = _ref.onSearch,
|
|
537
|
-
_onActiveChange = _ref.onActiveChange,
|
|
538
|
-
placeholder = _ref.placeholder,
|
|
539
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
540
|
-
|
|
541
|
-
return /*#__PURE__*/React__default["default"].createElement(SearchButton, {
|
|
542
|
-
defaultActive: defaultActive,
|
|
543
|
-
isMore: isMore,
|
|
544
|
-
onBlur: onBlur,
|
|
545
|
-
template: template,
|
|
546
|
-
name: name,
|
|
547
|
-
onSearch: onSearch,
|
|
548
|
-
onActiveChange: function onActiveChange(active) {
|
|
549
|
-
_onActiveChange && _onActiveChange(active);
|
|
550
|
-
}
|
|
551
|
-
}, function (_ref2) {
|
|
552
|
-
var value = _ref2.value,
|
|
553
|
-
setValue = _ref2.setValue,
|
|
554
|
-
setActive = _ref2.setActive;
|
|
555
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(antd.Input, _extends({
|
|
556
|
-
size: "small"
|
|
557
|
-
}, props, {
|
|
558
|
-
placeholder: placeholder || label,
|
|
559
|
-
value: value,
|
|
560
|
-
onChange: function onChange(e) {
|
|
561
|
-
setValue(e.target.value);
|
|
562
|
-
},
|
|
563
|
-
onFocus: function onFocus() {
|
|
564
|
-
setActive(true);
|
|
565
|
-
}
|
|
566
|
-
})));
|
|
567
|
-
});
|
|
568
|
-
};
|
|
569
|
-
var Text = withFilterItem(TextInner);
|
|
570
|
-
|
|
571
|
-
var _excluded$4 = ["name", "label", "placeholder", "isMore"];
|
|
572
|
-
var SelectorInner = function SelectorInner(_ref) {
|
|
573
|
-
var name = _ref.name,
|
|
574
|
-
label = _ref.label,
|
|
575
|
-
placeholder = _ref.placeholder,
|
|
576
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
577
|
-
|
|
578
|
-
var _useConsumer = useConsumer(),
|
|
579
|
-
aValue = _useConsumer.value,
|
|
580
|
-
_onChange = _useConsumer.onChange;
|
|
581
|
-
|
|
582
|
-
var currentValue = aValue[name];
|
|
583
|
-
return /*#__PURE__*/React__default["default"].createElement(antd.Select, _extends({}, props, {
|
|
584
|
-
placeholder: label || placeholder,
|
|
585
|
-
size: "small",
|
|
586
|
-
value: currentValue,
|
|
587
|
-
onChange: function onChange(value, item) {
|
|
588
|
-
_onChange(name, item);
|
|
589
|
-
}
|
|
590
|
-
}));
|
|
591
|
-
};
|
|
592
|
-
var Selector = withFilterItem(SelectorInner);
|
|
593
|
-
|
|
594
|
-
var _excluded$3 = ["name", "label", "className", "isMore"];
|
|
595
|
-
|
|
596
|
-
var Check = function Check(_ref) {
|
|
597
|
-
var name = _ref.name,
|
|
598
|
-
label = _ref.label,
|
|
599
|
-
className = _ref.className,
|
|
600
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
601
|
-
|
|
602
|
-
var _useConsumer = useConsumer(),
|
|
603
|
-
aValue = _useConsumer.value,
|
|
604
|
-
_onChange = _useConsumer.onChange;
|
|
605
|
-
|
|
606
|
-
var currentValue = aValue[name];
|
|
607
|
-
return /*#__PURE__*/React__default["default"].createElement(antd.Checkbox, _extends({}, props, {
|
|
608
|
-
className: classnames__default["default"]('react-filter-item', className),
|
|
609
|
-
size: "small",
|
|
610
|
-
checked: currentValue,
|
|
611
|
-
onChange: function onChange(e) {
|
|
612
|
-
_onChange(name, e.target.checked ? {
|
|
613
|
-
value: true,
|
|
614
|
-
label: label
|
|
615
|
-
} : null);
|
|
616
|
-
}
|
|
617
|
-
}), label);
|
|
618
|
-
};
|
|
619
|
-
|
|
620
|
-
var _excluded$2 = ["label", "name", "options", "isMore"];
|
|
621
|
-
var RadioList = withFilterItem(function (_ref) {
|
|
622
|
-
var name = _ref.name,
|
|
623
|
-
options = _ref.options,
|
|
624
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
625
|
-
|
|
626
|
-
var _useConsumer = useConsumer(),
|
|
627
|
-
aValue = _useConsumer.value,
|
|
628
|
-
_onChange = _useConsumer.onChange;
|
|
629
|
-
|
|
630
|
-
var currentValue = aValue[name];
|
|
631
|
-
return /*#__PURE__*/React__default["default"].createElement(antd.Radio.Group, _extends({}, props, {
|
|
632
|
-
options: options,
|
|
633
|
-
value: lodash.get(currentValue, 'value'),
|
|
634
|
-
onChange: function onChange(e) {
|
|
635
|
-
var item = options.find(function (item) {
|
|
636
|
-
return item.value === e.target.value;
|
|
637
|
-
});
|
|
638
|
-
|
|
639
|
-
_onChange(name, item);
|
|
640
|
-
}
|
|
641
|
-
}));
|
|
642
|
-
});
|
|
643
|
-
|
|
644
|
-
var _excluded$1 = ["label", "name", "options", "isMore"];
|
|
645
|
-
var CheckboxList = withFilterItem(function (_ref) {
|
|
646
|
-
var name = _ref.name,
|
|
647
|
-
options = _ref.options,
|
|
648
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
649
|
-
|
|
650
|
-
var _useConsumer = useConsumer(),
|
|
651
|
-
aValue = _useConsumer.value,
|
|
652
|
-
_onChange = _useConsumer.onChange;
|
|
653
|
-
|
|
654
|
-
var currentValue = aValue[name];
|
|
655
|
-
return /*#__PURE__*/React__default["default"].createElement(antd.Checkbox.Group, _extends({}, props, {
|
|
656
|
-
value: (currentValue || []).map(function (_ref2) {
|
|
657
|
-
var value = _ref2.value;
|
|
658
|
-
return value;
|
|
659
|
-
}),
|
|
660
|
-
onChange: function onChange(value) {
|
|
661
|
-
var item = value.map(function (value) {
|
|
662
|
-
return options.find(function (item) {
|
|
663
|
-
return item.value === value;
|
|
664
|
-
});
|
|
665
|
-
});
|
|
666
|
-
console.log(item);
|
|
667
|
-
|
|
668
|
-
_onChange(name, item);
|
|
669
|
-
},
|
|
670
|
-
options: options
|
|
671
|
-
}));
|
|
672
|
-
});
|
|
673
|
-
|
|
674
|
-
var filterNull = function filterNull(item) {
|
|
675
|
-
var target = Object.assign({}, item);
|
|
676
|
-
Object.keys(target).forEach(function (key) {
|
|
677
|
-
var item = target[key];
|
|
678
|
-
|
|
679
|
-
(function () {
|
|
680
|
-
if (Array.isArray(item) && item.length > 0 && item.every(function (item) {
|
|
681
|
-
return item.value === void 0 || item.value === null || item.value === "";
|
|
682
|
-
})) {
|
|
683
|
-
delete target[key];
|
|
684
|
-
return;
|
|
685
|
-
}
|
|
686
|
-
|
|
687
|
-
if (Array.isArray(item) && item.length === 0) {
|
|
688
|
-
delete target[key];
|
|
689
|
-
return;
|
|
690
|
-
}
|
|
691
|
-
|
|
692
|
-
if (item && Array.isArray(item.value) && (item.value.length === 0 || item.value.every(function (item) {
|
|
693
|
-
return item === void 0 || item === null || item === "";
|
|
694
|
-
}))) {
|
|
695
|
-
delete target[key];
|
|
696
|
-
return;
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
if (item === void 0 || item === null || !Array.isArray(item) && item && (item.value === void 0 || item.value === null || item.value === "")) {
|
|
700
|
-
delete target[key];
|
|
701
|
-
return;
|
|
702
|
-
}
|
|
703
|
-
})();
|
|
704
|
-
});
|
|
705
|
-
return target;
|
|
706
|
-
};
|
|
707
|
-
|
|
708
|
-
var Filter = function Filter(_ref) {
|
|
709
|
-
var displayLine = _ref.displayLine,
|
|
710
|
-
defaultDisplay = _ref.defaultDisplay,
|
|
711
|
-
isExtra = _ref.isExtra,
|
|
712
|
-
list = _ref.list,
|
|
713
|
-
label = _ref.label,
|
|
714
|
-
labelHidden = _ref.labelHidden,
|
|
715
|
-
itemLabelHidden = _ref.itemLabelHidden,
|
|
716
|
-
unfoldText = _ref.unfoldText,
|
|
717
|
-
foldText = _ref.foldText,
|
|
718
|
-
extra = _ref.extra,
|
|
719
|
-
more = _ref.more,
|
|
720
|
-
moreTrigger = _ref.moreTrigger,
|
|
721
|
-
moreLabel = _ref.moreLabel,
|
|
722
|
-
originValue = _ref.value,
|
|
723
|
-
onChange = _ref.onChange;
|
|
724
|
-
var value = React.useMemo(function () {
|
|
725
|
-
return filterNull(originValue);
|
|
726
|
-
}, [originValue]);
|
|
727
|
-
|
|
728
|
-
var _useState = React.useState(defaultDisplay),
|
|
729
|
-
display = _useState[0],
|
|
730
|
-
setDisplay = _useState[1];
|
|
731
|
-
|
|
732
|
-
var basicList = list.slice(0, displayLine),
|
|
733
|
-
moreList = list.slice(displayLine);
|
|
734
|
-
|
|
735
|
-
var renderList = function renderList(list) {
|
|
736
|
-
return list.map(function (item, index) {
|
|
737
|
-
return /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
738
|
-
key: index,
|
|
739
|
-
className: "react-filter-line"
|
|
740
|
-
}, item.map(function (item, index) {
|
|
741
|
-
return React.cloneElement(item, {
|
|
742
|
-
key: index,
|
|
743
|
-
labelHidden: itemLabelHidden
|
|
744
|
-
});
|
|
745
|
-
}));
|
|
746
|
-
});
|
|
747
|
-
};
|
|
748
|
-
|
|
749
|
-
var changeHandler = function changeHandler(name, item) {
|
|
750
|
-
var _Object$assign;
|
|
751
|
-
|
|
752
|
-
var target = Object.assign({}, value, (_Object$assign = {}, _Object$assign[name] = item, _Object$assign));
|
|
753
|
-
onChange(filterNull(target));
|
|
754
|
-
};
|
|
755
|
-
|
|
756
|
-
var moreFilter = more && more.length > 0 ? /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
757
|
-
className: "react-filter-line is-more"
|
|
758
|
-
}, /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
759
|
-
className: "react-filter-item"
|
|
760
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
761
|
-
className: "react-filter-item-label"
|
|
762
|
-
}, moreLabel, ":"), /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
763
|
-
className: "react-filter-item-children",
|
|
764
|
-
split: /*#__PURE__*/React__default["default"].createElement(antd.Divider, {
|
|
765
|
-
type: "vertical"
|
|
766
|
-
})
|
|
767
|
-
}, more.map(function (item, index) {
|
|
768
|
-
return React.cloneElement(item, {
|
|
769
|
-
key: index,
|
|
770
|
-
isMore: true,
|
|
771
|
-
moreTrigger: moreTrigger
|
|
772
|
-
});
|
|
773
|
-
})))) : null;
|
|
774
|
-
return /*#__PURE__*/React__default["default"].createElement(Provider$1, {
|
|
775
|
-
value: {
|
|
776
|
-
value: value,
|
|
777
|
-
onChange: changeHandler
|
|
778
|
-
}
|
|
779
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
780
|
-
className: "react-filter"
|
|
781
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
782
|
-
className: "react-filter-inner"
|
|
783
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", null, labelHidden ? null : /*#__PURE__*/React__default["default"].createElement(antd.Space, null, /*#__PURE__*/React__default["default"].createElement(FilterItem, {
|
|
784
|
-
className: "react-filter-selected",
|
|
785
|
-
label: label
|
|
786
|
-
}, Object.keys(value).map(function (key) {
|
|
787
|
-
var item = value[key];
|
|
788
|
-
if (!item) return null;
|
|
789
|
-
if (Array.isArray(item) && item.length === 0) return null;
|
|
790
|
-
return /*#__PURE__*/React__default["default"].createElement(antd.Tag, {
|
|
791
|
-
key: key,
|
|
792
|
-
closable: true,
|
|
793
|
-
onClose: function onClose() {
|
|
794
|
-
changeHandler(key, null);
|
|
795
|
-
}
|
|
796
|
-
}, Array.isArray(item) ? item.map(function (_ref2) {
|
|
797
|
-
var label = _ref2.label;
|
|
798
|
-
return label;
|
|
799
|
-
}).join(",") : item.label);
|
|
800
|
-
})), /*#__PURE__*/React__default["default"].createElement("div", null, extra))), renderList(isExtra ? basicList : list), moreList.length === 0 ? moreFilter : null), display ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(antd.Divider, {
|
|
801
|
-
className: "react-filter-divider"
|
|
802
|
-
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
803
|
-
className: "react-filter-inner"
|
|
804
|
-
}, renderList(moreList)), moreList.length > 0 ? moreFilter : null) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
805
|
-
className: "react-filter-divider-close"
|
|
806
|
-
}), isExtra && list.length > displayLine ? /*#__PURE__*/React__default["default"].createElement(antd.Row, {
|
|
807
|
-
className: "react-filter-switch-btn",
|
|
808
|
-
justify: "end"
|
|
809
|
-
}, /*#__PURE__*/React__default["default"].createElement(antd.Col, null, /*#__PURE__*/React__default["default"].createElement(antd.Button, {
|
|
810
|
-
type: "link",
|
|
811
|
-
onClick: function onClick() {
|
|
812
|
-
setDisplay(function (display) {
|
|
813
|
-
return !display;
|
|
814
|
-
});
|
|
815
|
-
}
|
|
816
|
-
}, display ? foldText : unfoldText))) : null));
|
|
817
|
-
};
|
|
818
|
-
|
|
819
|
-
Filter.type = {
|
|
820
|
-
City: City,
|
|
821
|
-
List: List,
|
|
822
|
-
Range: Range,
|
|
823
|
-
Text: Text,
|
|
824
|
-
Selector: Selector,
|
|
825
|
-
Check: Check,
|
|
826
|
-
RadioList: RadioList,
|
|
827
|
-
CheckboxList: CheckboxList
|
|
828
|
-
};
|
|
829
|
-
Filter.defaultProps = {
|
|
830
|
-
label: '筛选项',
|
|
831
|
-
labelHidden: false,
|
|
832
|
-
itemLabelHidden: false,
|
|
833
|
-
unfoldText: '展开',
|
|
834
|
-
foldText: '收起',
|
|
835
|
-
displayLine: 2,
|
|
836
|
-
defaultDisplay: false,
|
|
837
|
-
isExtra: true,
|
|
838
|
-
list: [[]],
|
|
839
|
-
more: [],
|
|
840
|
-
moreTrigger: 'hover',
|
|
841
|
-
moreLabel: '更多',
|
|
842
|
-
value: {},
|
|
843
|
-
extra: null,
|
|
844
|
-
onChange: function onChange() {}
|
|
845
|
-
};
|
|
846
|
-
|
|
847
|
-
var _excluded = ["name", "value", "children"],
|
|
848
|
-
_excluded2 = ["type"];
|
|
849
|
-
var withMoreExtraButton = function withMoreExtraButton(WrappedComponent) {
|
|
850
|
-
return function (_ref) {
|
|
851
|
-
var name = _ref.name,
|
|
852
|
-
children = _ref.children,
|
|
853
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
854
|
-
|
|
855
|
-
var _useState = React.useState(false),
|
|
856
|
-
isEdit = _useState[0],
|
|
857
|
-
setIsEdit = _useState[1];
|
|
858
|
-
|
|
859
|
-
return isEdit ? /*#__PURE__*/React__default["default"].createElement(WrappedComponent, _extends({
|
|
860
|
-
defaultActive: true
|
|
861
|
-
}, props, {
|
|
862
|
-
name: name,
|
|
863
|
-
onBlur: function onBlur() {
|
|
864
|
-
setIsEdit(false);
|
|
865
|
-
}
|
|
866
|
-
})) : /*#__PURE__*/React__default["default"].createElement(List.Item, {
|
|
867
|
-
onClick: function onClick(e) {
|
|
868
|
-
e.stopPropagation();
|
|
869
|
-
setIsEdit(true);
|
|
870
|
-
},
|
|
871
|
-
label: children || "其他"
|
|
872
|
-
});
|
|
873
|
-
};
|
|
874
|
-
};
|
|
875
|
-
var RangeButton = withMoreExtraButton(RangeInner);
|
|
876
|
-
var TextButton = withMoreExtraButton(TextInner);
|
|
877
|
-
var SelectorButton = withMoreExtraButton(SelectorInner);
|
|
878
|
-
var createExtraButton = function createExtraButton(_ref2) {
|
|
879
|
-
var type = _ref2.type,
|
|
880
|
-
props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
|
|
881
|
-
|
|
882
|
-
return function (innerProps) {
|
|
883
|
-
var mapping = {
|
|
884
|
-
range: RangeButton,
|
|
885
|
-
text: TextButton,
|
|
886
|
-
selector: SelectorButton
|
|
887
|
-
};
|
|
888
|
-
var ExtraButtonComponent = mapping[type];
|
|
889
|
-
|
|
890
|
-
if (!ExtraButtonComponent) {
|
|
891
|
-
return null;
|
|
892
|
-
}
|
|
893
|
-
|
|
894
|
-
return /*#__PURE__*/React__default["default"].createElement(ExtraButtonComponent, _extends({}, props, innerProps));
|
|
895
|
-
};
|
|
896
|
-
};
|
|
897
|
-
|
|
898
|
-
exports.FilterItem = FilterItem;
|
|
899
|
-
exports.SearchButton = SearchButton;
|
|
900
|
-
exports.createExtraButton = createExtraButton;
|
|
901
|
-
exports["default"] = Filter;
|
|
902
|
-
exports.useFilterContext = useConsumer;
|
|
903
|
-
exports.withFilterItem = withFilterItem;
|
|
904
|
-
exports.withMoreExtraButton = withMoreExtraButton;
|
|
905
|
-
//# sourceMappingURL=index.cjs.map
|