@lemon-fe/components 0.1.85 → 0.1.91
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/es/Filter/index.d.ts +1 -0
- package/es/Filter/index.js +28 -13
- package/es/Filter/index.less +8 -0
- package/es/Filter/typings.d.ts +1 -0
- package/es/Portal/index.d.ts +9 -4
- package/es/Portal/index.js +103 -34
- package/package.json +9 -14
package/es/Filter/index.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ declare function Filter<T extends Record<string, any> = Record<string, any>>(pro
|
|
|
3
3
|
declare namespace Filter {
|
|
4
4
|
var setComponents: (items: ComponentOption[]) => void;
|
|
5
5
|
var setStorage: <T>(getData: (storageKey: string) => T | Promise<T>, setData: <T_1>(storageKey: string, data: T_1) => void | Promise<void>) => void;
|
|
6
|
+
var defaultProps: Partial<FilterProps<Record<string, any>>>;
|
|
6
7
|
}
|
|
7
8
|
export default Filter;
|
package/es/Filter/index.js
CHANGED
|
@@ -111,7 +111,9 @@ function Filter(props) {
|
|
|
111
111
|
storageKey = props.storageKey,
|
|
112
112
|
onValuesChange = props.onValuesChange,
|
|
113
113
|
style = props.style,
|
|
114
|
-
simple = props.simple
|
|
114
|
+
simple = props.simple,
|
|
115
|
+
_props$defaultCollaps = props.defaultCollapsed,
|
|
116
|
+
defaultCollapsed = _props$defaultCollaps === void 0 ? true : _props$defaultCollaps;
|
|
115
117
|
var prefixCls = "".concat(PREFIX_CLS, "-filter");
|
|
116
118
|
var defaultValue = useMemo(function () {
|
|
117
119
|
return defaultValueProp || value;
|
|
@@ -172,7 +174,7 @@ function Filter(props) {
|
|
|
172
174
|
width = _useState12[0],
|
|
173
175
|
setWidth = _useState12[1];
|
|
174
176
|
|
|
175
|
-
var _useState13 = useState(
|
|
177
|
+
var _useState13 = useState(defaultCollapsed),
|
|
176
178
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
177
179
|
collapsed = _useState14[0],
|
|
178
180
|
setCollapsed = _useState14[1];
|
|
@@ -328,17 +330,17 @@ function Filter(props) {
|
|
|
328
330
|
});
|
|
329
331
|
};
|
|
330
332
|
|
|
333
|
+
var handleFinish = function handleFinish(val) {
|
|
334
|
+
if (onChange) {
|
|
335
|
+
onChange(_objectSpread(_objectSpread({}, value), val));
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
|
|
331
339
|
var handleTabChange = function handleTabChange(index) {
|
|
332
340
|
if (index !== active) {
|
|
333
341
|
setActive(index);
|
|
334
342
|
form.setFieldsValue(tabs[index].value);
|
|
335
|
-
handleFinish();
|
|
336
|
-
}
|
|
337
|
-
};
|
|
338
|
-
|
|
339
|
-
var handleFinish = function handleFinish() {
|
|
340
|
-
if (onChange) {
|
|
341
|
-
onChange(_objectSpread({}, form.getFieldsValue(true)));
|
|
343
|
+
handleFinish(form.getFieldsValue());
|
|
342
344
|
}
|
|
343
345
|
};
|
|
344
346
|
|
|
@@ -375,6 +377,12 @@ function Filter(props) {
|
|
|
375
377
|
};
|
|
376
378
|
|
|
377
379
|
var _useMemo = useMemo(function () {
|
|
380
|
+
var getSet = function getSet(items) {
|
|
381
|
+
return new Set(items.map(function (item) {
|
|
382
|
+
return item.key;
|
|
383
|
+
}));
|
|
384
|
+
};
|
|
385
|
+
|
|
378
386
|
var result = data.filter(function (item) {
|
|
379
387
|
if (activeKeys.has(item.key)) {
|
|
380
388
|
return true;
|
|
@@ -384,7 +392,7 @@ function Filter(props) {
|
|
|
384
392
|
});
|
|
385
393
|
|
|
386
394
|
if (!width) {
|
|
387
|
-
return [result, false];
|
|
395
|
+
return [getSet(result), false];
|
|
388
396
|
}
|
|
389
397
|
|
|
390
398
|
var btnsWidth = simple ? 208 : 248;
|
|
@@ -410,10 +418,10 @@ function Filter(props) {
|
|
|
410
418
|
btnsVisible = btnsVisible && result.length > 1;
|
|
411
419
|
|
|
412
420
|
if (!collapsed) {
|
|
413
|
-
return [result, btnsVisible];
|
|
421
|
+
return [getSet(result), btnsVisible];
|
|
414
422
|
}
|
|
415
423
|
|
|
416
|
-
return [result.slice(0, end), btnsVisible];
|
|
424
|
+
return [getSet(result.slice(0, end)), btnsVisible];
|
|
417
425
|
}, [data, width, collapsed, simple, activeKeys]),
|
|
418
426
|
_useMemo2 = _slicedToArray(_useMemo, 2),
|
|
419
427
|
cols = _useMemo2[0],
|
|
@@ -464,10 +472,15 @@ function Filter(props) {
|
|
|
464
472
|
className: "".concat(prefixCls, "-tab-bar")
|
|
465
473
|
}), /*#__PURE__*/React.createElement(FormLayout, {
|
|
466
474
|
direction: "row"
|
|
467
|
-
},
|
|
475
|
+
}, data.map(function (item) {
|
|
476
|
+
var className = classNames("".concat(prefixCls, "-form-item"), {
|
|
477
|
+
hidden: !cols.has(item.key) ? true : false
|
|
478
|
+
});
|
|
479
|
+
|
|
468
480
|
if (item.renderFormItem) {
|
|
469
481
|
return /*#__PURE__*/React.createElement("div", {
|
|
470
482
|
style: getColStyle(item.colSpan),
|
|
483
|
+
className: className,
|
|
471
484
|
key: item.key
|
|
472
485
|
}, item.renderFormItem());
|
|
473
486
|
}
|
|
@@ -484,6 +497,7 @@ function Filter(props) {
|
|
|
484
497
|
|
|
485
498
|
return /*#__PURE__*/React.createElement("div", {
|
|
486
499
|
style: getColStyle(item.colSpan || target.colSpan),
|
|
500
|
+
className: className,
|
|
487
501
|
key: item.key
|
|
488
502
|
}, /*#__PURE__*/React.createElement(Form.Item, {
|
|
489
503
|
name: item.key,
|
|
@@ -609,4 +623,5 @@ function Filter(props) {
|
|
|
609
623
|
|
|
610
624
|
Filter.setComponents = setComponents;
|
|
611
625
|
Filter.setStorage = setStorage;
|
|
626
|
+
Filter.defaultProps = {};
|
|
612
627
|
export default Filter;
|
package/es/Filter/index.less
CHANGED
package/es/Filter/typings.d.ts
CHANGED
package/es/Portal/index.d.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare type ContentType =
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
declare type ContentType = ReactElement | null;
|
|
3
3
|
declare function PortalHost(props: {
|
|
4
4
|
children: ContentType;
|
|
5
5
|
}): JSX.Element;
|
|
6
|
+
declare function PortalSlot(props: {
|
|
7
|
+
slot: string;
|
|
8
|
+
}): ContentType;
|
|
6
9
|
declare function Portal(props: {
|
|
7
|
-
children
|
|
8
|
-
|
|
10
|
+
children: ContentType;
|
|
11
|
+
slot: string;
|
|
12
|
+
}): null;
|
|
9
13
|
declare namespace Portal {
|
|
10
14
|
var Host: typeof PortalHost;
|
|
15
|
+
var Slot: typeof PortalSlot;
|
|
11
16
|
}
|
|
12
17
|
export default Portal;
|
package/es/Portal/index.js
CHANGED
|
@@ -10,63 +10,132 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
10
10
|
|
|
11
11
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
12
|
|
|
13
|
-
import React from 'react';
|
|
14
|
-
import { createContext, memo, useContext, useEffect, useMemo, useState } from 'react';
|
|
15
|
-
import { uniqueId } from 'lodash';
|
|
13
|
+
import React, { createContext, memo, useContext, useEffect, useMemo, useState } from 'react';
|
|
16
14
|
var Slot = /*#__PURE__*/memo(function Content(props) {
|
|
17
|
-
return
|
|
15
|
+
return props.children;
|
|
18
16
|
});
|
|
19
|
-
var Context = /*#__PURE__*/createContext(
|
|
17
|
+
var Context = /*#__PURE__*/createContext({
|
|
18
|
+
set: function set() {},
|
|
19
|
+
delete: function _delete() {},
|
|
20
|
+
observable: {
|
|
21
|
+
subscribe: function subscribe() {
|
|
22
|
+
return {
|
|
23
|
+
unsubscribe: function unsubscribe() {}
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
get: function get() {
|
|
27
|
+
return new Map();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
function Subject(initialData) {
|
|
33
|
+
var observers = [];
|
|
34
|
+
var data = initialData;
|
|
35
|
+
return {
|
|
36
|
+
get: function get() {
|
|
37
|
+
return data;
|
|
38
|
+
},
|
|
39
|
+
next: function next(state) {
|
|
40
|
+
data = state;
|
|
41
|
+
observers.forEach(function (item) {
|
|
42
|
+
return item.next(state);
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
subscribe: function subscribe(observer) {
|
|
46
|
+
observers.push(observer);
|
|
47
|
+
return {
|
|
48
|
+
unsubscribe: function unsubscribe() {
|
|
49
|
+
var index = observers.findIndex(function (item) {
|
|
50
|
+
return item === observer;
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
if (index >= 0) {
|
|
54
|
+
observers.splice(index, 1);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
20
61
|
|
|
21
62
|
function PortalHost(props) {
|
|
22
63
|
var children = props.children;
|
|
23
64
|
|
|
24
|
-
var _useState = useState(
|
|
65
|
+
var _useState = useState(new Map()),
|
|
25
66
|
_useState2 = _slicedToArray(_useState, 2),
|
|
26
|
-
|
|
27
|
-
|
|
67
|
+
nodes = _useState2[0],
|
|
68
|
+
setNodes = _useState2[1];
|
|
28
69
|
|
|
70
|
+
var observable = useMemo(function () {
|
|
71
|
+
return Subject(nodes);
|
|
72
|
+
}, []);
|
|
29
73
|
var portal = useMemo(function () {
|
|
30
74
|
return {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
75
|
+
set: function set(key, node) {
|
|
76
|
+
setNodes(function (prev) {
|
|
77
|
+
var next = new Map(prev);
|
|
78
|
+
next.set(key, node);
|
|
79
|
+
return next;
|
|
35
80
|
});
|
|
36
81
|
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return prev;
|
|
82
|
+
delete: function _delete(key) {
|
|
83
|
+
setNodes(function (prev) {
|
|
84
|
+
var next = new Map(prev);
|
|
85
|
+
next.delete(key);
|
|
86
|
+
return next;
|
|
44
87
|
});
|
|
45
|
-
}
|
|
88
|
+
},
|
|
89
|
+
observable: observable
|
|
46
90
|
};
|
|
47
91
|
}, []);
|
|
92
|
+
useEffect(function () {
|
|
93
|
+
observable.next(nodes);
|
|
94
|
+
}, [nodes]);
|
|
48
95
|
return /*#__PURE__*/React.createElement(Context.Provider, {
|
|
49
96
|
value: portal
|
|
50
|
-
}, /*#__PURE__*/React.createElement(Slot, null,
|
|
97
|
+
}, /*#__PURE__*/React.createElement(Slot, null, children));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function PortalSlot(props) {
|
|
101
|
+
var slot = props.slot;
|
|
102
|
+
|
|
103
|
+
var _useContext = useContext(Context),
|
|
104
|
+
observable = _useContext.observable;
|
|
105
|
+
|
|
106
|
+
var _useState3 = useState(observable.get().get(slot) || null),
|
|
107
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
108
|
+
node = _useState4[0],
|
|
109
|
+
setNode = _useState4[1];
|
|
110
|
+
|
|
111
|
+
useEffect(function () {
|
|
112
|
+
var _observable$subscribe = observable.subscribe({
|
|
113
|
+
next: function next(state) {
|
|
114
|
+
setNode(state.get(slot) || null);
|
|
115
|
+
}
|
|
116
|
+
}),
|
|
117
|
+
unsubscribe = _observable$subscribe.unsubscribe;
|
|
118
|
+
|
|
119
|
+
return unsubscribe;
|
|
120
|
+
}, [slot]);
|
|
121
|
+
return node;
|
|
51
122
|
}
|
|
52
123
|
|
|
53
124
|
function Portal(props) {
|
|
54
|
-
var
|
|
55
|
-
children =
|
|
125
|
+
var slot = props.slot,
|
|
126
|
+
children = props.children;
|
|
56
127
|
var portal = useContext(Context);
|
|
57
|
-
var key = useMemo(function () {
|
|
58
|
-
return uniqueId('portal-');
|
|
59
|
-
}, []);
|
|
60
128
|
useEffect(function () {
|
|
61
|
-
|
|
62
|
-
portal.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}, [
|
|
68
|
-
return
|
|
129
|
+
return function () {
|
|
130
|
+
portal.delete(slot);
|
|
131
|
+
};
|
|
132
|
+
}, [slot]);
|
|
133
|
+
useEffect(function () {
|
|
134
|
+
portal.set(slot, children);
|
|
135
|
+
}, [slot, children]);
|
|
136
|
+
return null;
|
|
69
137
|
}
|
|
70
138
|
|
|
71
139
|
Portal.Host = PortalHost;
|
|
140
|
+
Portal.Slot = PortalSlot;
|
|
72
141
|
export default Portal;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lemon-fe/components",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.91",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "鲁盛杰 <lusj@cnlemon.net>",
|
|
6
6
|
"homepage": "",
|
|
@@ -16,23 +16,19 @@
|
|
|
16
16
|
"registry": "https://registry.npmjs.org"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@lemon-fe/hooks": "^0.1.
|
|
19
|
+
"@lemon-fe/hooks": "^0.1.86",
|
|
20
20
|
"classnames": "^2.2.6",
|
|
21
|
-
"
|
|
21
|
+
"color-string": "^1.9.0",
|
|
22
|
+
"lodash": "^4.17.0",
|
|
23
|
+
"rc-resize-observer": "^1.0.0",
|
|
22
24
|
"react-color": "^2.19.3",
|
|
23
25
|
"react-gcolor-picker": "^1.2.4",
|
|
24
26
|
"react-resizable": "^3.0.4"
|
|
25
27
|
},
|
|
26
28
|
"peerDependencies": {
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"color-string": ">=1.0.0",
|
|
31
|
-
"lodash": ">=4.17.0",
|
|
32
|
-
"rc-resize-observer": "^1.0.0",
|
|
33
|
-
"rc-tree": ">=4.0.0",
|
|
34
|
-
"react": ">=16.9.0",
|
|
35
|
-
"react-dom": ">=16.9.0"
|
|
29
|
+
"antd": ">=4.20",
|
|
30
|
+
"react": ">=16.8",
|
|
31
|
+
"react-dom": ">=16.8"
|
|
36
32
|
},
|
|
37
33
|
"devDependencies": {
|
|
38
34
|
"@types/color-string": "^1.5.2",
|
|
@@ -40,9 +36,8 @@
|
|
|
40
36
|
"@types/react-color": "^3.0.6",
|
|
41
37
|
"@types/react-resizable": "^1.7.4",
|
|
42
38
|
"antd": "^4.21.6",
|
|
43
|
-
"rc-resize-observer": "^1.2.0",
|
|
44
39
|
"react": "^17.0.2",
|
|
45
40
|
"react-dom": "^17.0.2"
|
|
46
41
|
},
|
|
47
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "407f33c49a0de8ae9b3fc07002ee9eace8dbd179"
|
|
48
43
|
}
|