@kne/react-filter 0.1.16 → 0.1.19
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 +25 -9
- package/dist/index.css +10 -2
- package/dist/index.css.map +1 -1
- package/dist/index.js +140 -97
- package/dist/index.js.map +1 -1
- package/dist/{index.modern.mjs → index.modern.js} +130 -84
- package/dist/index.modern.js.map +1 -0
- package/package.json +4 -1
- package/dist/index.modern.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -29,11 +29,11 @@ npm i --save @kne/react-filter
|
|
|
29
29
|
|
|
30
30
|
- 基础示例
|
|
31
31
|
- 展示一个筛选器的普通模式
|
|
32
|
-
- reactFilter(@kne/react-filter),
|
|
32
|
+
- reactFilter(@kne/react-filter),_(lodash)
|
|
33
33
|
|
|
34
34
|
```jsx
|
|
35
35
|
const {useState} = React;
|
|
36
|
-
const {Filter, createExtraButton} = reactFilter;
|
|
36
|
+
const {default: Filter, createExtraButton} = reactFilter;
|
|
37
37
|
|
|
38
38
|
const {City, List, Range, Text, Selector, Check} = Filter.type;
|
|
39
39
|
const {isNumber} = _;
|
|
@@ -43,7 +43,19 @@ const BaseExample = () => {
|
|
|
43
43
|
console.log(value);
|
|
44
44
|
return <Filter value={value} onChange={(value) => {
|
|
45
45
|
setValue(value);
|
|
46
|
-
}}
|
|
46
|
+
}} more={[
|
|
47
|
+
<Text label="测试字段" name="test1"/>,
|
|
48
|
+
<Text label="测试字段2" name="test2"/>,
|
|
49
|
+
<Range label="测试字段3" name="test3"/>,
|
|
50
|
+
<Selector label="测试字段4" name="test4"
|
|
51
|
+
options={[{
|
|
52
|
+
label: "英语", value: "en"
|
|
53
|
+
}, {
|
|
54
|
+
label: "日语", value: "jap"
|
|
55
|
+
}, {
|
|
56
|
+
label: "法语", value: "fac"
|
|
57
|
+
}]}/>
|
|
58
|
+
]} list={[[<City label="目前城市" name="currentCity" size={5}/>], [<List label="学历" name="degree" size={1}>
|
|
47
59
|
<List.Item value="0" label="初中"/>
|
|
48
60
|
<List.Item value="1" label="高中"/>
|
|
49
61
|
<List.Item value="2" label="大学专科"/>
|
|
@@ -105,7 +117,7 @@ render(<BaseExample/>);
|
|
|
105
117
|
|
|
106
118
|
```jsx
|
|
107
119
|
const {useState} = React;
|
|
108
|
-
const {Filter} = reactFilter;
|
|
120
|
+
const {default: Filter} = reactFilter.default;
|
|
109
121
|
const {default: Space} = space;
|
|
110
122
|
|
|
111
123
|
const {RadioList, Selector, Text, CheckboxList} = Filter.type;
|
|
@@ -178,11 +190,14 @@ render(<Example/>);
|
|
|
178
190
|
|
|
179
191
|
### API
|
|
180
192
|
|
|
181
|
-
| 属性名
|
|
182
|
-
|
|
183
|
-
| value
|
|
184
|
-
| onChange
|
|
185
|
-
| list
|
|
193
|
+
| 属性名 | 说明 | 类型 | 默认值 |
|
|
194
|
+
|-----------|------------------------------------------------------------------------------|----------|-------|
|
|
195
|
+
| value | 筛选器的值,该组件为一个受控组件 | object | - |
|
|
196
|
+
| onChange | 筛选器的值发生改变的时候调用的函数 | function | - |
|
|
197
|
+
| list | 筛选器的选项,为一个二维数组,二维数组中的每一个数组为一行,内部数组的每一项为一个筛选选项,筛选选项为Filter.type中的一项或者是自行扩展的选项 | array | [] |
|
|
198
|
+
| more | 筛选项更多选项,为一个一维数组,数组中的每一项为一个筛选项,和list不同的是该筛选项默认为收起状态|array| [] |
|
|
199
|
+
| moreLabel | 更多选项的label|string| 更多 |
|
|
200
|
+
|moreTrigger|更多选项的触发方式,默认为hover触发,页可以设置为click|string| hover |
|
|
186
201
|
|
|
187
202
|
#### Filter.type
|
|
188
203
|
|
|
@@ -203,6 +218,7 @@ CheckboxList(多选列表)
|
|
|
203
218
|
|-------|--------------------------------------------------------------|----------|-----|
|
|
204
219
|
| template | 将一组数据范围显示成一段用户可阅读的问题的模版,参数为筛选项的值,要求返回一个描述的字符串 | function | - |
|
|
205
220
|
|placeholder| 当为字符串时前后两个输入框显示同样内容,当为一个数组时,第一个输入框显示数组的第一个值,第二个输入框显示为数组的第二个值 | string|array | - |
|
|
221
|
+
|
|
206
222
|
#### List
|
|
207
223
|
|
|
208
224
|
| 属性名 | 说明 | 类型 | 默认值 |
|
package/dist/index.css
CHANGED
|
@@ -11,10 +11,15 @@
|
|
|
11
11
|
white-space: nowrap;
|
|
12
12
|
line-height: 32px; }
|
|
13
13
|
.react-filter-item .ant-input, .react-filter-item .ant-select {
|
|
14
|
-
min-width:
|
|
14
|
+
min-width: 150px; }
|
|
15
|
+
|
|
16
|
+
.react-filter-item-popover .ant-input, .react-filter-item-popover .ant-select {
|
|
17
|
+
min-width: 150px; }
|
|
15
18
|
|
|
16
19
|
.react-filter-item-label {
|
|
17
20
|
font-size: 14px; }
|
|
21
|
+
.react-filter-item-label.is-more {
|
|
22
|
+
cursor: pointer; }
|
|
18
23
|
|
|
19
24
|
.react-filter-item-children {
|
|
20
25
|
display: flex;
|
|
@@ -45,7 +50,10 @@
|
|
|
45
50
|
box-shadow: 2px 3px 10px 4px rgba(0, 0, 0, 0.2);
|
|
46
51
|
background: #FFFFFF; }
|
|
47
52
|
|
|
48
|
-
.react-filter-search-confirm {
|
|
53
|
+
.react-filter-search-confirm.is-more {
|
|
54
|
+
margin-left: 8px; }
|
|
55
|
+
|
|
56
|
+
.react-filter-search-confirm:not(.is-more) {
|
|
49
57
|
position: absolute;
|
|
50
58
|
top: 50%;
|
|
51
59
|
right: -10px;
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.scss"],"names":[],"mappings":"AAAA;EACE,oBAAoB,EAAE;;AAExB;EACE,gBAAgB,EAAE;;AAEpB;EACE,eAAe,EAAE;;AAEnB;EACE,mBAAmB;EACnB,iBAAiB,EAAE;EACnB;IACE,
|
|
1
|
+
{"version":3,"sources":["index.scss"],"names":[],"mappings":"AAAA;EACE,oBAAoB,EAAE;;AAExB;EACE,gBAAgB,EAAE;;AAEpB;EACE,eAAe,EAAE;;AAEnB;EACE,mBAAmB;EACnB,iBAAiB,EAAE;EACnB;IACE,gBAAgB,EAAE;;AAEtB;EACE,gBAAgB,EAAE;;AAEpB;EACE,eAAe,EAAE;EACjB;IACE,eAAe,EAAE;;AAErB;EACE,aAAa;EACb,mBAAmB,EAAE;;AAEvB;EACE,kBAAkB,EAAE;EACpB;IACE,kBAAkB,EAAE;EACtB;IACE,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,oBAAoB;IACpB,kBAAkB;IAClB,yBAAyB;IACzB,uBAAuB;IACvB,gCAAgC;IAChC,8CAA8C,EAAE;EAClD;IACE,UAAU,EAAE;IACZ;MACE,UAAU,EAAE;IACd;MACE,oBAAoB;MACpB,+CAA+C;MAC/C,mBAAmB,EAAE;;AAE3B;EACE,gBAAgB,EAAE;;AAEpB;EACE,kBAAkB;EAClB,QAAQ;EACR,YAAY;EACZ,gCAAgC,EAAE;;AAEpC;EACE,iBAAiB,EAAE;;AAErB;EACE,WAAW,EAAE","file":"index.css","sourcesContent":[".react-filter-inner {\n padding-right: 116px; }\n\n.react-filter-divider {\n margin: 5px auto; }\n\n.react-filter-line {\n min-width: 100%; }\n\n.react-filter-item {\n white-space: nowrap;\n line-height: 32px; }\n .react-filter-item .ant-input, .react-filter-item .ant-select {\n min-width: 150px; }\n\n.react-filter-item-popover .ant-input, .react-filter-item-popover .ant-select {\n min-width: 150px; }\n\n.react-filter-item-label {\n font-size: 14px; }\n .react-filter-item-label.is-more {\n cursor: pointer; }\n\n.react-filter-item-children {\n display: flex;\n align-items: center; }\n\n.react-filter-search-button {\n position: relative; }\n .react-filter-search-button .inner {\n position: relative; }\n .react-filter-search-button:before {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n border-radius: 3px;\n padding: 4px 4px 4px 60px;\n box-sizing: content-box;\n transform: translate(-3px, -3px);\n transition: box-shadow 300ms, background 300ms; }\n .react-filter-search-button.is-active {\n z-index: 1; }\n .react-filter-search-button.is-active .inner {\n z-index: 1; }\n .react-filter-search-button.is-active:before {\n pointer-events: auto;\n box-shadow: 2px 3px 10px 4px rgba(0, 0, 0, 0.2);\n background: #FFFFFF; }\n\n.react-filter-search-confirm.is-more {\n margin-left: 8px; }\n\n.react-filter-search-confirm:not(.is-more) {\n position: absolute;\n top: 50%;\n right: -10px;\n transform: translate(100%, -50%); }\n\n.react-filter-switch-btn {\n margin-top: -32px; }\n\n.react-filter-selected {\n width: 100%; }\n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
var React = require('react');
|
|
2
2
|
var antd = require('antd');
|
|
3
|
-
var reactCitySelect = require('@kne/react-city-select');
|
|
4
3
|
var classnames = require('classnames');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var isEqual = require('lodash/isEqual');
|
|
4
|
+
var reactCitySelect = require('@kne/react-city-select');
|
|
5
|
+
var lodash = require('lodash');
|
|
8
6
|
var useClickOutSide = require('@kne/use-click-outside');
|
|
9
|
-
var isNumber = require('lodash/isNumber');
|
|
10
7
|
|
|
11
8
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
9
|
|
|
13
10
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
14
11
|
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
15
|
-
var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
|
|
16
|
-
var isFunction__default = /*#__PURE__*/_interopDefaultLegacy(isFunction);
|
|
17
|
-
var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
|
|
18
12
|
var useClickOutSide__default = /*#__PURE__*/_interopDefaultLegacy(useClickOutSide);
|
|
19
|
-
|
|
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
|
+
};
|
|
20
19
|
|
|
21
20
|
function _extends() {
|
|
22
21
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
@@ -50,19 +49,27 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
50
49
|
return target;
|
|
51
50
|
}
|
|
52
51
|
|
|
53
|
-
var
|
|
54
|
-
var Provider$1 = context$1.Provider;
|
|
55
|
-
var useConsumer = function useConsumer() {
|
|
56
|
-
return React.useContext(context$1);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
var _excluded$8 = ["label", "labelHidden"];
|
|
52
|
+
var _excluded$8 = ["label", "labelHidden", "isMore", "moreTrigger"];
|
|
60
53
|
|
|
61
54
|
var FilterItem = function FilterItem(_ref) {
|
|
62
55
|
var className = _ref.className,
|
|
63
56
|
label = _ref.label,
|
|
64
57
|
labelHidden = _ref.labelHidden,
|
|
58
|
+
isMore = _ref.isMore,
|
|
59
|
+
moreTrigger = _ref.moreTrigger,
|
|
65
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
|
+
|
|
66
73
|
return /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
67
74
|
className: classnames__default["default"]('react-filter-item', className)
|
|
68
75
|
}, labelHidden ? null : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
@@ -76,13 +83,18 @@ var withFilterItem = function withFilterItem(WrappedComponent) {
|
|
|
76
83
|
return function (_ref2) {
|
|
77
84
|
var label = _ref2.label,
|
|
78
85
|
labelHidden = _ref2.labelHidden,
|
|
86
|
+
isMore = _ref2.isMore,
|
|
87
|
+
moreTrigger = _ref2.moreTrigger,
|
|
79
88
|
props = _objectWithoutPropertiesLoose(_ref2, _excluded$8);
|
|
80
89
|
|
|
81
90
|
return /*#__PURE__*/React__default["default"].createElement(FilterItem, {
|
|
82
91
|
label: label,
|
|
83
|
-
labelHidden: labelHidden
|
|
92
|
+
labelHidden: labelHidden,
|
|
93
|
+
isMore: isMore,
|
|
94
|
+
moreTrigger: moreTrigger
|
|
84
95
|
}, /*#__PURE__*/React__default["default"].createElement(WrappedComponent, _extends({}, props, {
|
|
85
|
-
label: label
|
|
96
|
+
label: label,
|
|
97
|
+
isMore: isMore
|
|
86
98
|
})));
|
|
87
99
|
};
|
|
88
100
|
};
|
|
@@ -106,7 +118,7 @@ var List = function List(_ref) {
|
|
|
106
118
|
onChange = _useConsumer.onChange;
|
|
107
119
|
|
|
108
120
|
var currentValue = function () {
|
|
109
|
-
var originValue =
|
|
121
|
+
var originValue = lodash.get(value, name);
|
|
110
122
|
|
|
111
123
|
if (size === 1) {
|
|
112
124
|
return originValue !== void 0 ? [originValue] : [];
|
|
@@ -165,7 +177,7 @@ var List = function List(_ref) {
|
|
|
165
177
|
});
|
|
166
178
|
}
|
|
167
179
|
|
|
168
|
-
if (
|
|
180
|
+
if (lodash.isFunction(children)) {
|
|
169
181
|
return children({
|
|
170
182
|
value: currentValue,
|
|
171
183
|
onChange: changeHandler
|
|
@@ -184,7 +196,7 @@ var List = function List(_ref) {
|
|
|
184
196
|
createCheckedChangeHandler: createCheckedChangeHandler
|
|
185
197
|
}
|
|
186
198
|
}, computedChildren, more ? function () {
|
|
187
|
-
if (
|
|
199
|
+
if (lodash.isFunction(more)) {
|
|
188
200
|
return more({
|
|
189
201
|
name: name,
|
|
190
202
|
size: size,
|
|
@@ -223,7 +235,7 @@ List.Item = function (_ref3) {
|
|
|
223
235
|
|
|
224
236
|
if (value !== void 0) {
|
|
225
237
|
itemProps.checked = currentValue.findIndex(function (item) {
|
|
226
|
-
return
|
|
238
|
+
return lodash.isEqual(lodash.get(item, 'value'), value);
|
|
227
239
|
}) > -1;
|
|
228
240
|
itemProps.onChange = createCheckedChangeHandler({
|
|
229
241
|
label: label,
|
|
@@ -238,7 +250,7 @@ List.defaultProps = {
|
|
|
238
250
|
size: 2
|
|
239
251
|
};
|
|
240
252
|
|
|
241
|
-
var _excluded$6 = ["label", "labelHidden", "name", "size"];
|
|
253
|
+
var _excluded$6 = ["label", "labelHidden", "name", "size", "isMore"];
|
|
242
254
|
var Item = List.Item;
|
|
243
255
|
|
|
244
256
|
var City = function City(_ref) {
|
|
@@ -331,6 +343,7 @@ var City = function City(_ref) {
|
|
|
331
343
|
var SearchButton = function SearchButton(_ref) {
|
|
332
344
|
var name = _ref.name,
|
|
333
345
|
size = _ref.size,
|
|
346
|
+
isMore = _ref.isMore,
|
|
334
347
|
template = _ref.template,
|
|
335
348
|
children = _ref.children,
|
|
336
349
|
defaultValue = _ref.defaultValue,
|
|
@@ -347,7 +360,7 @@ var SearchButton = function SearchButton(_ref) {
|
|
|
347
360
|
|
|
348
361
|
var currentValue = aValue[name];
|
|
349
362
|
|
|
350
|
-
var _useState = React.useState(defaultValue ||
|
|
363
|
+
var _useState = React.useState(defaultValue || lodash.get(currentValue, "value")),
|
|
351
364
|
value = _useState[0],
|
|
352
365
|
setValue = _useState[1];
|
|
353
366
|
|
|
@@ -362,12 +375,12 @@ var SearchButton = function SearchButton(_ref) {
|
|
|
362
375
|
|
|
363
376
|
return {
|
|
364
377
|
value: value,
|
|
365
|
-
label:
|
|
378
|
+
label: lodash.isFunction(template) ? template(value) : value.toString()
|
|
366
379
|
};
|
|
367
380
|
};
|
|
368
381
|
|
|
369
382
|
var ref = useClickOutSide__default["default"](function () {
|
|
370
|
-
setValue(
|
|
383
|
+
setValue(lodash.get(currentValue, "value"));
|
|
371
384
|
setActive(false);
|
|
372
385
|
onBlur && onBlur();
|
|
373
386
|
});
|
|
@@ -378,7 +391,7 @@ var SearchButton = function SearchButton(_ref) {
|
|
|
378
391
|
}, [active]);
|
|
379
392
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
380
393
|
className: classnames__default["default"]("react-filter-search-button", {
|
|
381
|
-
"is-active": active
|
|
394
|
+
"is-active": active && !isMore
|
|
382
395
|
}),
|
|
383
396
|
ref: ref,
|
|
384
397
|
onMouseEnter: function onMouseEnter() {
|
|
@@ -387,14 +400,17 @@ var SearchButton = function SearchButton(_ref) {
|
|
|
387
400
|
onMouseLeave: function onMouseLeave() {
|
|
388
401
|
active && setActive(false);
|
|
389
402
|
}
|
|
390
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
391
|
-
className: "inner"
|
|
403
|
+
}, /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
404
|
+
className: "inner",
|
|
405
|
+
size: 0
|
|
392
406
|
}, /*#__PURE__*/React__default["default"].createElement("div", null, children({
|
|
393
407
|
value: value,
|
|
394
408
|
setValue: setValue,
|
|
395
409
|
setActive: setActive
|
|
396
|
-
})), active ? /*#__PURE__*/React__default["default"].createElement(antd.Button, {
|
|
397
|
-
className: "react-filter-search-confirm",
|
|
410
|
+
})), active || isMore ? /*#__PURE__*/React__default["default"].createElement(antd.Button, {
|
|
411
|
+
className: classnames__default["default"]("react-filter-search-confirm", {
|
|
412
|
+
"is-more": isMore
|
|
413
|
+
}),
|
|
398
414
|
size: "small",
|
|
399
415
|
type: "primary",
|
|
400
416
|
onClick: function onClick(e) {
|
|
@@ -421,6 +437,7 @@ SearchButton.defaultProps = {
|
|
|
421
437
|
var RangeInner = function RangeInner(_ref) {
|
|
422
438
|
var name = _ref.name,
|
|
423
439
|
size = _ref.size,
|
|
440
|
+
isMore = _ref.isMore,
|
|
424
441
|
defaultActive = _ref.defaultActive,
|
|
425
442
|
template = _ref.template,
|
|
426
443
|
onBlur = _ref.onBlur,
|
|
@@ -441,7 +458,7 @@ var RangeInner = function RangeInner(_ref) {
|
|
|
441
458
|
return false;
|
|
442
459
|
}
|
|
443
460
|
|
|
444
|
-
if (
|
|
461
|
+
if (lodash.isNumber(value[1]) && value[0] > value[1]) {
|
|
445
462
|
setError("最大值不能小于最小值");
|
|
446
463
|
return false;
|
|
447
464
|
}
|
|
@@ -452,6 +469,7 @@ var RangeInner = function RangeInner(_ref) {
|
|
|
452
469
|
return /*#__PURE__*/React__default["default"].createElement(SearchButton, {
|
|
453
470
|
size: size,
|
|
454
471
|
template: template,
|
|
472
|
+
isMore: isMore,
|
|
455
473
|
onBlur: onBlur,
|
|
456
474
|
defaultActive: defaultActive,
|
|
457
475
|
name: name,
|
|
@@ -479,9 +497,9 @@ var RangeInner = function RangeInner(_ref) {
|
|
|
479
497
|
}, /*#__PURE__*/React__default["default"].createElement(antd.InputNumber, _extends({
|
|
480
498
|
size: "small"
|
|
481
499
|
}, startProps, {
|
|
482
|
-
value:
|
|
500
|
+
value: lodash.get(value, 0),
|
|
483
501
|
onChange: function onChange(inputValue) {
|
|
484
|
-
var target = [inputValue,
|
|
502
|
+
var target = [inputValue, lodash.get(value, 1)];
|
|
485
503
|
check(target);
|
|
486
504
|
setValue(target);
|
|
487
505
|
},
|
|
@@ -492,9 +510,9 @@ var RangeInner = function RangeInner(_ref) {
|
|
|
492
510
|
})), "~", /*#__PURE__*/React__default["default"].createElement(antd.InputNumber, _extends({
|
|
493
511
|
size: "small"
|
|
494
512
|
}, endProps, {
|
|
495
|
-
value:
|
|
513
|
+
value: lodash.get(value, 1),
|
|
496
514
|
onChange: function onChange(inputValue) {
|
|
497
|
-
var target = [
|
|
515
|
+
var target = [lodash.get(value, 0), inputValue];
|
|
498
516
|
check(target);
|
|
499
517
|
setValue(target);
|
|
500
518
|
},
|
|
@@ -507,10 +525,11 @@ var RangeInner = function RangeInner(_ref) {
|
|
|
507
525
|
};
|
|
508
526
|
var Range = withFilterItem(RangeInner);
|
|
509
527
|
|
|
510
|
-
var _excluded$5 = ["name", "label", "template", "defaultActive", "onBlur", "onSearch", "onActiveChange", "placeholder"];
|
|
528
|
+
var _excluded$5 = ["name", "label", "isMore", "template", "defaultActive", "onBlur", "onSearch", "onActiveChange", "placeholder"];
|
|
511
529
|
var TextInner = function TextInner(_ref) {
|
|
512
530
|
var name = _ref.name,
|
|
513
531
|
label = _ref.label,
|
|
532
|
+
isMore = _ref.isMore,
|
|
514
533
|
template = _ref.template,
|
|
515
534
|
defaultActive = _ref.defaultActive,
|
|
516
535
|
onBlur = _ref.onBlur,
|
|
@@ -521,6 +540,7 @@ var TextInner = function TextInner(_ref) {
|
|
|
521
540
|
|
|
522
541
|
return /*#__PURE__*/React__default["default"].createElement(SearchButton, {
|
|
523
542
|
defaultActive: defaultActive,
|
|
543
|
+
isMore: isMore,
|
|
524
544
|
onBlur: onBlur,
|
|
525
545
|
template: template,
|
|
526
546
|
name: name,
|
|
@@ -548,7 +568,7 @@ var TextInner = function TextInner(_ref) {
|
|
|
548
568
|
};
|
|
549
569
|
var Text = withFilterItem(TextInner);
|
|
550
570
|
|
|
551
|
-
var _excluded$4 = ["name", "label", "placeholder"];
|
|
571
|
+
var _excluded$4 = ["name", "label", "placeholder", "isMore"];
|
|
552
572
|
var SelectorInner = function SelectorInner(_ref) {
|
|
553
573
|
var name = _ref.name,
|
|
554
574
|
label = _ref.label,
|
|
@@ -571,7 +591,7 @@ var SelectorInner = function SelectorInner(_ref) {
|
|
|
571
591
|
};
|
|
572
592
|
var Selector = withFilterItem(SelectorInner);
|
|
573
593
|
|
|
574
|
-
var _excluded$3 = ["name", "label", "className"];
|
|
594
|
+
var _excluded$3 = ["name", "label", "className", "isMore"];
|
|
575
595
|
|
|
576
596
|
var Check = function Check(_ref) {
|
|
577
597
|
var name = _ref.name,
|
|
@@ -597,7 +617,7 @@ var Check = function Check(_ref) {
|
|
|
597
617
|
}), label);
|
|
598
618
|
};
|
|
599
619
|
|
|
600
|
-
var _excluded$2 = ["label", "name", "options"];
|
|
620
|
+
var _excluded$2 = ["label", "name", "options", "isMore"];
|
|
601
621
|
var RadioList = withFilterItem(function (_ref) {
|
|
602
622
|
var name = _ref.name,
|
|
603
623
|
options = _ref.options,
|
|
@@ -608,10 +628,9 @@ var RadioList = withFilterItem(function (_ref) {
|
|
|
608
628
|
_onChange = _useConsumer.onChange;
|
|
609
629
|
|
|
610
630
|
var currentValue = aValue[name];
|
|
611
|
-
console.log(currentValue);
|
|
612
631
|
return /*#__PURE__*/React__default["default"].createElement(antd.Radio.Group, _extends({}, props, {
|
|
613
632
|
options: options,
|
|
614
|
-
value:
|
|
633
|
+
value: lodash.get(currentValue, 'value'),
|
|
615
634
|
onChange: function onChange(e) {
|
|
616
635
|
var item = options.find(function (item) {
|
|
617
636
|
return item.value === e.target.value;
|
|
@@ -622,7 +641,7 @@ var RadioList = withFilterItem(function (_ref) {
|
|
|
622
641
|
}));
|
|
623
642
|
});
|
|
624
643
|
|
|
625
|
-
var _excluded$1 = ["label", "name", "options"];
|
|
644
|
+
var _excluded$1 = ["label", "name", "options", "isMore"];
|
|
626
645
|
var CheckboxList = withFilterItem(function (_ref) {
|
|
627
646
|
var name = _ref.name,
|
|
628
647
|
options = _ref.options,
|
|
@@ -652,57 +671,6 @@ var CheckboxList = withFilterItem(function (_ref) {
|
|
|
652
671
|
}));
|
|
653
672
|
});
|
|
654
673
|
|
|
655
|
-
var _excluded = ["name", "value", "children"],
|
|
656
|
-
_excluded2 = ["type"];
|
|
657
|
-
var withMoreExtraButton = function withMoreExtraButton(WrappedComponent) {
|
|
658
|
-
return function (_ref) {
|
|
659
|
-
var name = _ref.name,
|
|
660
|
-
children = _ref.children,
|
|
661
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
662
|
-
|
|
663
|
-
var _useState = React.useState(false),
|
|
664
|
-
isEdit = _useState[0],
|
|
665
|
-
setIsEdit = _useState[1];
|
|
666
|
-
|
|
667
|
-
return isEdit ? /*#__PURE__*/React__default["default"].createElement(WrappedComponent, _extends({
|
|
668
|
-
defaultActive: true
|
|
669
|
-
}, props, {
|
|
670
|
-
name: name,
|
|
671
|
-
onBlur: function onBlur() {
|
|
672
|
-
setIsEdit(false);
|
|
673
|
-
}
|
|
674
|
-
})) : /*#__PURE__*/React__default["default"].createElement(List.Item, {
|
|
675
|
-
onClick: function onClick(e) {
|
|
676
|
-
e.stopPropagation();
|
|
677
|
-
setIsEdit(true);
|
|
678
|
-
},
|
|
679
|
-
label: children || "其他"
|
|
680
|
-
});
|
|
681
|
-
};
|
|
682
|
-
};
|
|
683
|
-
var RangeButton = withMoreExtraButton(RangeInner);
|
|
684
|
-
var TextButton = withMoreExtraButton(TextInner);
|
|
685
|
-
var SelectorButton = withMoreExtraButton(SelectorInner);
|
|
686
|
-
var createExtraButton = function createExtraButton(_ref2) {
|
|
687
|
-
var type = _ref2.type,
|
|
688
|
-
props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
|
|
689
|
-
|
|
690
|
-
return function (innerProps) {
|
|
691
|
-
var mapping = {
|
|
692
|
-
range: RangeButton,
|
|
693
|
-
text: TextButton,
|
|
694
|
-
selector: SelectorButton
|
|
695
|
-
};
|
|
696
|
-
var ExtraButtonComponent = mapping[type];
|
|
697
|
-
|
|
698
|
-
if (!ExtraButtonComponent) {
|
|
699
|
-
return null;
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
return /*#__PURE__*/React__default["default"].createElement(ExtraButtonComponent, _extends({}, props, innerProps));
|
|
703
|
-
};
|
|
704
|
-
};
|
|
705
|
-
|
|
706
674
|
var filterNull = function filterNull(item) {
|
|
707
675
|
var target = Object.assign({}, item);
|
|
708
676
|
Object.keys(target).forEach(function (key) {
|
|
@@ -748,6 +716,9 @@ var Filter = function Filter(_ref) {
|
|
|
748
716
|
unfoldText = _ref.unfoldText,
|
|
749
717
|
foldText = _ref.foldText,
|
|
750
718
|
extra = _ref.extra,
|
|
719
|
+
more = _ref.more,
|
|
720
|
+
moreTrigger = _ref.moreTrigger,
|
|
721
|
+
moreLabel = _ref.moreLabel,
|
|
751
722
|
originValue = _ref.value,
|
|
752
723
|
onChange = _ref.onChange;
|
|
753
724
|
var value = React.useMemo(function () {
|
|
@@ -782,6 +753,24 @@ var Filter = function Filter(_ref) {
|
|
|
782
753
|
onChange(filterNull(target));
|
|
783
754
|
};
|
|
784
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;
|
|
785
774
|
return /*#__PURE__*/React__default["default"].createElement(Provider$1, {
|
|
786
775
|
value: {
|
|
787
776
|
value: value,
|
|
@@ -808,11 +797,11 @@ var Filter = function Filter(_ref) {
|
|
|
808
797
|
var label = _ref2.label;
|
|
809
798
|
return label;
|
|
810
799
|
}).join(",") : item.label);
|
|
811
|
-
})), /*#__PURE__*/React__default["default"].createElement("div", null, extra))), renderList(isExtra ? basicList : list)), display ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(antd.Divider, {
|
|
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, {
|
|
812
801
|
className: "react-filter-divider"
|
|
813
802
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
814
803
|
className: "react-filter-inner"
|
|
815
|
-
}, renderList(moreList))) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
804
|
+
}, renderList(moreList)), moreList.length > 0 ? moreFilter : null) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
816
805
|
className: "react-filter-divider-close"
|
|
817
806
|
}), isExtra && list.length > displayLine ? /*#__PURE__*/React__default["default"].createElement(antd.Row, {
|
|
818
807
|
className: "react-filter-switch-btn",
|
|
@@ -826,6 +815,7 @@ var Filter = function Filter(_ref) {
|
|
|
826
815
|
}
|
|
827
816
|
}, display ? foldText : unfoldText))) : null));
|
|
828
817
|
};
|
|
818
|
+
|
|
829
819
|
Filter.type = {
|
|
830
820
|
City: City,
|
|
831
821
|
List: List,
|
|
@@ -846,12 +836,65 @@ Filter.defaultProps = {
|
|
|
846
836
|
defaultDisplay: false,
|
|
847
837
|
isExtra: true,
|
|
848
838
|
list: [[]],
|
|
839
|
+
more: [],
|
|
840
|
+
moreTrigger: 'hover',
|
|
841
|
+
moreLabel: '更多',
|
|
849
842
|
value: {},
|
|
850
843
|
extra: null,
|
|
851
844
|
onChange: function onChange() {}
|
|
852
845
|
};
|
|
853
846
|
|
|
854
|
-
|
|
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
|
+
|
|
855
898
|
exports.FilterItem = FilterItem;
|
|
856
899
|
exports.SearchButton = SearchButton;
|
|
857
900
|
exports.createExtraButton = createExtraButton;
|