linkmore-design 1.0.53 → 1.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/Alert/ErrorBoundary.d.ts +22 -0
  2. package/dist/{Notification → Alert}/demos/basic.d.ts +0 -0
  3. package/dist/{Notification/demos/button.d.ts → Alert/demos/visible.d.ts} +0 -0
  4. package/dist/Alert/index.d.ts +41 -0
  5. package/dist/{Notification → Alert}/style/index.d.ts +0 -0
  6. package/dist/CardTable/fns/index.d.ts +7 -3
  7. package/dist/CardTable/{toolbar → pager}/TablePagination.d.ts +0 -0
  8. package/dist/CardTable/pager/index.d.ts +3 -0
  9. package/dist/LmFilter/LmFilter.d.ts +3 -0
  10. package/dist/LmFilter/baseFilter/index.d.ts +3 -0
  11. package/dist/LmFilter/clearFilter/index.d.ts +3 -0
  12. package/dist/LmFilter/complexFilter/index.d.ts +2 -0
  13. package/dist/LmFilter/components/CascaderFilter.d.ts +5 -0
  14. package/dist/LmFilter/components/CheckboxFilter.d.ts +5 -0
  15. package/dist/LmFilter/components/DateFilter.d.ts +5 -0
  16. package/dist/LmFilter/components/DropdownFIlter.d.ts +3 -0
  17. package/dist/LmFilter/components/EmptyFilter.d.ts +2 -0
  18. package/dist/LmFilter/components/InputFilter.d.ts +4 -0
  19. package/dist/LmFilter/components/InputSearchClose.d.ts +3 -0
  20. package/dist/LmFilter/components/SelectFilter.d.ts +5 -0
  21. package/dist/LmFilter/components/fuzzySearch.d.ts +4 -0
  22. package/dist/LmFilter/components/index.d.ts +3 -0
  23. package/dist/LmFilter/customFilter/index.d.ts +2 -0
  24. package/dist/LmFilter/demos/basic.d.ts +2 -0
  25. package/dist/LmFilter/filterFns/index.d.ts +12 -0
  26. package/dist/LmFilter/hooks/index.d.ts +1 -0
  27. package/dist/LmFilter/hooks/useDelayedFn.d.ts +2 -0
  28. package/dist/LmFilter/index.d.ts +2 -0
  29. package/dist/LmFilter/style/index.d.ts +1 -0
  30. package/dist/LmFilter/utils.d.ts +8 -0
  31. package/dist/LmFilter/wrapper/Filter.d.ts +3 -0
  32. package/dist/LmFilter/wrapper/FilterContainer.d.ts +3 -0
  33. package/dist/LmFilter/wrapper/FilterRoot.d.ts +3 -0
  34. package/dist/LmFilter/wrapper/FilterWrapper.d.ts +3 -0
  35. package/dist/_util/getDataOrAriaProps.d.ts +1 -0
  36. package/dist/_util/reactNode.d.ts +7 -0
  37. package/dist/index.d.ts +1 -1
  38. package/dist/index.umd.js +3665 -3297
  39. package/dist/index.umd.min.js +6 -6
  40. package/dist/{Notification/demos/icon.d.ts → notification/demos/basic.d.ts} +0 -0
  41. package/dist/notification/demos/button.d.ts +2 -0
  42. package/dist/notification/demos/icon.d.ts +2 -0
  43. package/dist/notification/hooks/useNotification.d.ts +7 -0
  44. package/dist/notification/index.d.ts +54 -0
  45. package/dist/notification/style/index.d.ts +1 -0
  46. package/es/Alert/ErrorBoundary.d.ts +22 -0
  47. package/es/Alert/ErrorBoundary.js +65 -0
  48. package/es/Alert/index.d.ts +41 -0
  49. package/es/Alert/index.js +192 -0
  50. package/es/{Notification → Alert}/style/index.css +25 -2
  51. package/es/{Notification → Alert}/style/index.d.ts +0 -0
  52. package/es/{Notification → Alert}/style/index.js +0 -0
  53. package/es/CardTable/card/PictureTextColumn.js +8 -6
  54. package/es/CardTable/card/PictureTextRow.js +1 -1
  55. package/es/CardTable/fns/index.js +38 -9
  56. package/es/CardTable/{toolbar → pager}/TablePagination.js +0 -0
  57. package/es/CardTable/pager/index.js +48 -0
  58. package/es/CardTable/style/index.css +2 -2
  59. package/es/CardTable/table/TableRoot.js +20 -18
  60. package/es/CardTable/table/TableWrapper.js +4 -0
  61. package/es/CardTable/toolbar/ToolBarBottom.js +8 -27
  62. package/es/LmFilter/LmFilter.js +27 -0
  63. package/es/LmFilter/baseFilter/index.js +34 -0
  64. package/es/LmFilter/clearFilter/index.js +33 -0
  65. package/es/LmFilter/complexFilter/index.js +17 -0
  66. package/es/LmFilter/components/CascaderFilter.js +183 -0
  67. package/es/LmFilter/components/CheckboxFilter.js +197 -0
  68. package/es/LmFilter/components/DateFilter.js +147 -0
  69. package/es/LmFilter/components/DropdownFIlter.js +162 -0
  70. package/es/LmFilter/components/EmptyFilter.js +27 -0
  71. package/es/LmFilter/components/InputFilter.js +52 -0
  72. package/es/LmFilter/components/InputSearchClose.js +74 -0
  73. package/es/LmFilter/components/SelectFilter.js +113 -0
  74. package/es/LmFilter/components/fuzzySearch.js +37 -0
  75. package/es/LmFilter/components/index.js +97 -0
  76. package/es/LmFilter/customFilter/index.js +17 -0
  77. package/es/LmFilter/filterFns/index.js +54 -0
  78. package/es/LmFilter/hooks/index.js +18 -0
  79. package/es/LmFilter/hooks/useDelayedFn.js +27 -0
  80. package/es/LmFilter/icon_placeholder.png +0 -0
  81. package/es/LmFilter/index.js +16 -0
  82. package/es/LmFilter/style/index.js +3 -0
  83. package/es/LmFilter/style/style.css +189 -0
  84. package/es/LmFilter/utils.js +55 -0
  85. package/es/LmFilter/wrapper/Filter.js +33 -0
  86. package/es/LmFilter/wrapper/FilterContainer.js +29 -0
  87. package/es/LmFilter/wrapper/FilterRoot.js +114 -0
  88. package/es/LmFilter/wrapper/FilterWrapper.js +25 -0
  89. package/es/_util/getDataOrAriaProps.d.ts +1 -0
  90. package/es/_util/getDataOrAriaProps.js +9 -0
  91. package/es/_util/reactNode.d.ts +7 -0
  92. package/es/_util/reactNode.js +10 -0
  93. package/es/index.d.ts +1 -1
  94. package/es/index.js +1 -1
  95. package/es/message/style/index.css +1 -0
  96. package/es/notification/hooks/useNotification.d.ts +7 -0
  97. package/es/notification/hooks/useNotification.js +54 -0
  98. package/es/notification/index.d.ts +54 -0
  99. package/es/notification/index.js +342 -0
  100. package/es/notification/style/index.css +546 -0
  101. package/{lib/Notification → es/notification}/style/index.d.ts +0 -0
  102. package/es/notification/style/index.js +1 -0
  103. package/lib/Alert/ErrorBoundary.d.ts +22 -0
  104. package/lib/Alert/ErrorBoundary.js +79 -0
  105. package/lib/Alert/index.d.ts +41 -0
  106. package/lib/Alert/index.js +215 -0
  107. package/lib/{Notification → Alert}/style/index.css +25 -2
  108. package/lib/Alert/style/index.d.ts +1 -0
  109. package/lib/{Notification → Alert}/style/index.js +0 -0
  110. package/lib/CardTable/card/PictureTextColumn.js +8 -6
  111. package/lib/CardTable/card/PictureTextRow.js +1 -1
  112. package/lib/CardTable/fns/index.js +38 -9
  113. package/lib/CardTable/{toolbar → pager}/TablePagination.js +0 -0
  114. package/lib/CardTable/pager/index.js +48 -0
  115. package/lib/CardTable/style/index.css +2 -2
  116. package/lib/CardTable/table/TableRoot.js +20 -18
  117. package/lib/CardTable/table/TableWrapper.js +4 -0
  118. package/lib/CardTable/toolbar/ToolBarBottom.js +8 -27
  119. package/lib/LmFilter/LmFilter.js +27 -0
  120. package/lib/LmFilter/baseFilter/index.js +34 -0
  121. package/lib/LmFilter/clearFilter/index.js +33 -0
  122. package/lib/LmFilter/complexFilter/index.js +17 -0
  123. package/lib/LmFilter/components/CascaderFilter.js +183 -0
  124. package/lib/LmFilter/components/CheckboxFilter.js +197 -0
  125. package/lib/LmFilter/components/DateFilter.js +147 -0
  126. package/lib/LmFilter/components/DropdownFIlter.js +162 -0
  127. package/lib/LmFilter/components/EmptyFilter.js +27 -0
  128. package/lib/LmFilter/components/InputFilter.js +52 -0
  129. package/lib/LmFilter/components/InputSearchClose.js +74 -0
  130. package/lib/LmFilter/components/SelectFilter.js +113 -0
  131. package/lib/LmFilter/components/fuzzySearch.js +37 -0
  132. package/lib/LmFilter/components/index.js +97 -0
  133. package/lib/LmFilter/customFilter/index.js +17 -0
  134. package/lib/LmFilter/filterFns/index.js +54 -0
  135. package/lib/LmFilter/hooks/index.js +18 -0
  136. package/lib/LmFilter/hooks/useDelayedFn.js +27 -0
  137. package/lib/LmFilter/icon_placeholder.png +0 -0
  138. package/lib/LmFilter/index.js +16 -0
  139. package/lib/LmFilter/style/index.js +3 -0
  140. package/lib/LmFilter/style/style.css +189 -0
  141. package/lib/LmFilter/utils.js +55 -0
  142. package/lib/LmFilter/wrapper/Filter.js +33 -0
  143. package/lib/LmFilter/wrapper/FilterContainer.js +29 -0
  144. package/lib/LmFilter/wrapper/FilterRoot.js +114 -0
  145. package/lib/LmFilter/wrapper/FilterWrapper.js +25 -0
  146. package/lib/_util/getDataOrAriaProps.d.ts +1 -0
  147. package/lib/_util/getDataOrAriaProps.js +16 -0
  148. package/lib/_util/reactNode.d.ts +7 -0
  149. package/lib/_util/reactNode.js +24 -0
  150. package/lib/index.d.ts +1 -1
  151. package/lib/index.js +2 -2
  152. package/lib/message/style/index.css +1 -0
  153. package/lib/notification/hooks/useNotification.d.ts +7 -0
  154. package/lib/notification/hooks/useNotification.js +69 -0
  155. package/lib/notification/index.d.ts +54 -0
  156. package/lib/notification/index.js +365 -0
  157. package/lib/notification/style/index.css +546 -0
  158. package/lib/notification/style/index.d.ts +1 -0
  159. package/lib/notification/style/index.js +3 -0
  160. package/package.json +1 -1
  161. package/dist/Notification/index.d.ts +0 -7
  162. package/es/Notification/index.d.ts +0 -7
  163. package/es/Notification/index.js +0 -10
  164. package/lib/Notification/index.d.ts +0 -7
  165. package/lib/Notification/index.js +0 -23
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _fuzzySearch = _interopRequireDefault(require("../components/fuzzySearch"));
13
+
14
+ var _components = _interopRequireDefault(require("../components"));
15
+
16
+ // 二级过滤 => 基础过滤组件
17
+ var LmFilterBase = /*#__PURE__*/_react.default.memo(function (_ref) {
18
+ var instance = _ref.instance;
19
+ var dataSource = instance.dataSource;
20
+ return /*#__PURE__*/_react.default.createElement("div", {
21
+ className: "lm_filter_basic"
22
+ }, /*#__PURE__*/_react.default.createElement(_fuzzySearch.default, {
23
+ instance: instance
24
+ }), dataSource.map(function (v, index) {
25
+ return /*#__PURE__*/_react.default.createElement(_components.default, {
26
+ key: (v === null || v === void 0 ? void 0 : v.field) || index,
27
+ instance: instance,
28
+ item: v
29
+ });
30
+ }));
31
+ });
32
+
33
+ var _default = LmFilterBase;
34
+ exports.default = _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _linkmoreDesign = require("linkmore-design");
13
+
14
+ var LmFilterClear = /*#__PURE__*/_react.default.memo(function (_ref) {
15
+ var instance = _ref.instance;
16
+ var state = instance.state,
17
+ dispatch = instance.dispatch;
18
+
19
+ var handleClear = function handleClear() {
20
+ // dispatch();
21
+ console.log('state', state);
22
+ };
23
+
24
+ return /*#__PURE__*/_react.default.createElement("div", {
25
+ className: "lm_filter_clear"
26
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
27
+ type: "link",
28
+ onClick: handleClear
29
+ }, "\u4E00\u952E\u6E05\u7A7A"));
30
+ });
31
+
32
+ var _default = LmFilterClear;
33
+ exports.default = _default;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var LmFilterComplex = function LmFilterComplex(e) {
13
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "LmFilterComplex");
14
+ };
15
+
16
+ var _default = LmFilterComplex;
17
+ exports.default = _default;
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ require("antd/es/cascader/style");
13
+
14
+ var _cascader = _interopRequireDefault(require("antd/es/cascader"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _linkmoreDesign = require("linkmore-design");
21
+
22
+ var _InputSearchClose = _interopRequireDefault(require("./InputSearchClose"));
23
+
24
+ // 重置级联弹框
25
+ var DropdownRender = function DropdownRender(_ref) {
26
+ var dom = _ref.dom,
27
+ instance = _ref.instance,
28
+ item = _ref.item,
29
+ setOptions = _ref.setOptions,
30
+ checkedValues = _ref.checkedValues,
31
+ setCheckedValues = _ref.setCheckedValues;
32
+ var _instance$filterValue = instance.filterValue,
33
+ filterValue = _instance$filterValue === void 0 ? [] : _instance$filterValue,
34
+ setFilterValue = instance.setFilterValue,
35
+ visible = instance.visible,
36
+ setVisible = instance.setVisible;
37
+ var _item$data = item.data,
38
+ filters = _item$data === void 0 ? [] : _item$data;
39
+ var inputRef = (0, _react.useRef)(null);
40
+
41
+ var handleFilter = function handleFilter(val) {
42
+ var serachValues = filters.filter(function (v) {
43
+ return v.label.indexOf(val) > -1;
44
+ });
45
+ setOptions(serachValues);
46
+ }; // 确定
47
+
48
+
49
+ var handleSure = function handleSure() {
50
+ setFilterValue(checkedValues);
51
+ setVisible(false);
52
+ }; // 取消
53
+
54
+
55
+ var handleReset = function handleReset() {
56
+ setVisible === null || setVisible === void 0 ? void 0 : setVisible(false);
57
+ };
58
+
59
+ (0, _react.useEffect)(function () {
60
+ if (visible) {
61
+ var _inputRef$current2, _inputRef$current2$se;
62
+
63
+ setTimeout(function () {
64
+ var _inputRef$current;
65
+
66
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus({
67
+ cursor: 'all'
68
+ });
69
+ }, 200);
70
+ setCheckedValues(filterValue);
71
+ (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : (_inputRef$current2$se = _inputRef$current2.setValue) === null || _inputRef$current2$se === void 0 ? void 0 : _inputRef$current2$se.call(_inputRef$current2, '');
72
+ handleFilter('');
73
+ }
74
+ }, [visible]);
75
+ return /*#__PURE__*/_react.default.createElement("div", {
76
+ className: "filter_dropdown"
77
+ }, /*#__PURE__*/_react.default.createElement("div", {
78
+ className: "filter_header"
79
+ }, /*#__PURE__*/_react.default.createElement(_InputSearchClose.default, {
80
+ ref: inputRef,
81
+ onSearch: handleFilter,
82
+ onChange: handleFilter
83
+ })), dom, /*#__PURE__*/_react.default.createElement("div", {
84
+ className: "filter_footer"
85
+ }, /*#__PURE__*/_react.default.createElement("div", {
86
+ className: "footer_clear",
87
+ onClick: handleReset
88
+ }, "\u53D6\u6D88"), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
89
+ type: "primary",
90
+ size: "small",
91
+ onClick: handleSure
92
+ }, "\u786E\u5B9A")));
93
+ };
94
+
95
+ var CascaderFilter = function CascaderFilter(_ref2) {
96
+ var instance = _ref2.instance,
97
+ itemProps = _ref2.item;
98
+ var _instance$filterValue2 = instance.filterValue,
99
+ filterValue = _instance$filterValue2 === void 0 ? [] : _instance$filterValue2,
100
+ setFilterValue = instance.setFilterValue,
101
+ visible = instance.visible,
102
+ setVisible = instance.setVisible;
103
+ var _itemProps$data = itemProps.data,
104
+ filters = _itemProps$data === void 0 ? [] : _itemProps$data;
105
+
106
+ var _useState = (0, _react.useState)(filters),
107
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
108
+ options = _useState2[0],
109
+ setOptions = _useState2[1];
110
+
111
+ var _useState3 = (0, _react.useState)([]),
112
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
113
+ checkedValues = _useState4[0],
114
+ setCheckedValues = _useState4[1];
115
+
116
+ var checkedKeys = (0, _react.useMemo)(function () {
117
+ return checkedValues.map(function (v) {
118
+ return v.value;
119
+ });
120
+ }, [checkedValues]);
121
+
122
+ var onChange = function onChange(item, selectedOptions) {
123
+ console.log('item', item, selectedOptions);
124
+ var nValue = [];
125
+
126
+ if (selectedOptions.length === 1) {
127
+ nValue = selectedOptions[0][1] ? [selectedOptions[0][1]] : selectedOptions[0][0].children;
128
+ }
129
+
130
+ if (selectedOptions.length > 1) {
131
+ var arr = selectedOptions.map(function (v) {
132
+ return v[1] ? v[1] : v[0].children;
133
+ });
134
+ nValue = arr.flat(2);
135
+ }
136
+
137
+ console.log('nValue', nValue);
138
+ setCheckedValues(nValue); // setFilterValue(nValue);
139
+ // if (!item.length) {
140
+ // setCheckedValues(itemProps.multiple ? [] : '');
141
+ // setFilterValue(undefined);
142
+ // return;
143
+ // }
144
+ // if (itemProps.multiple) {
145
+ // const arr = [];
146
+ // selectedOptions.map((vals) => {
147
+ // return vals.length > 1
148
+ // ? arr.push(vals.map((v) => v.label).join('/'))
149
+ // : vals[0].children.map((v) => arr.push(`${vals[0].label}/${v.label}`));
150
+ // });
151
+ // const showLabel = arr.length < 3 ? arr.join('、') : `${arr[0]}、+${arr.length}`;
152
+ // setCheckedValues(item);
153
+ // } else {
154
+ // setFilterValue(item);
155
+ // setCheckedValues(item);
156
+ // }
157
+ };
158
+
159
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_cascader.default, {
160
+ multiple: true,
161
+ options: options // value={checkedValues}
162
+ ,
163
+ onChange: onChange,
164
+ open: visible,
165
+ getPopupContainer: function getPopupContainer(triggerNode) {
166
+ return triggerNode;
167
+ },
168
+ dropdownRender: function dropdownRender(dom) {
169
+ return /*#__PURE__*/_react.default.createElement(DropdownRender, {
170
+ dom: dom,
171
+ instance: instance,
172
+ item: itemProps,
173
+ checkedValues: checkedValues,
174
+ setCheckedValues: setCheckedValues,
175
+ setOptions: setOptions
176
+ });
177
+ } // onDropdownVisibleChange={(v) => setVisible(v)}
178
+
179
+ }, /*#__PURE__*/_react.default.createElement("div", null)));
180
+ };
181
+
182
+ var _default = CascaderFilter;
183
+ exports.default = _default;
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
+
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _linkmoreDesign = require("linkmore-design");
23
+
24
+ var _InputSearchClose = _interopRequireDefault(require("./InputSearchClose"));
25
+
26
+ var _EmptyFilter = _interopRequireDefault(require("./EmptyFilter"));
27
+
28
+ var _classnames = _interopRequireDefault(require("classnames"));
29
+
30
+ var _utils = require("../utils");
31
+
32
+ var _hooks = require("../hooks");
33
+
34
+ var _excluded = ["item"];
35
+ var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : _react.useEffect;
36
+
37
+ var CheckboxFilter = function CheckboxFilter(_ref) {
38
+ var instance = _ref.instance,
39
+ itemProps = _ref.item;
40
+ var _instance$filterValue = instance.filterValue,
41
+ filterValue = _instance$filterValue === void 0 ? [] : _instance$filterValue,
42
+ setFilterValue = instance.setFilterValue,
43
+ visible = instance.visible,
44
+ setVisible = instance.setVisible;
45
+ var _itemProps$data = itemProps.data,
46
+ filters = _itemProps$data === void 0 ? [] : _itemProps$data;
47
+ var inputRef = (0, _react.useRef)(); // 选中的数据项: [{}, {}, ...];
48
+
49
+ var _useState = (0, _react.useState)(filterValue),
50
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
51
+ checkedValues = _useState2[0],
52
+ setCheckedValues = _useState2[1]; // 选中的数据的键
53
+
54
+
55
+ var checkedKeys = (0, _react.useMemo)(function () {
56
+ return checkedValues.map(function (v) {
57
+ return v.value;
58
+ });
59
+ }, [checkedValues]); // 搜索后的筛选项
60
+
61
+ var _useState3 = (0, _react.useState)(filters),
62
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
63
+ options = _useState4[0],
64
+ setOptions = _useState4[1];
65
+
66
+ var delayedFn = (0, _hooks.useDelayedFn)(); // 是否存在搜索, 当数据大于8时存在搜索
67
+
68
+ var isSearch = (0, _react.useMemo)(function () {
69
+ return filters.length > 8;
70
+ }, [filters.length]); // 是否全选: 选中的数据大于等于筛选后的数据 && 筛选后的数据全部存在于选中的数据中
71
+
72
+ var checkAll = (0, _react.useMemo)(function () {
73
+ var isAll = checkedValues.length >= options.length;
74
+ return isAll && options.every(function (_ref2) {
75
+ var value = _ref2.value;
76
+ return checkedValues.some(function (v) {
77
+ return v.value === value;
78
+ });
79
+ });
80
+ }, [checkedValues, options]); // 是否半选: 存在选中的数据 && 未全选
81
+
82
+ var indeterminate = (0, _react.useMemo)(function () {
83
+ return checkedValues.length && !checkAll;
84
+ }, [checkedValues.length, checkAll]); // 搜索
85
+
86
+ var handleFilter = function handleFilter() {
87
+ var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
88
+ var serachValues = filters.filter(function (v) {
89
+ return v.label.indexOf(val) > -1;
90
+ });
91
+ setOptions(serachValues);
92
+ }; // 单选事件
93
+
94
+
95
+ var onChange = function onChange(e, item) {
96
+ e.preventDefault();
97
+ var nValue = checkedValues.some(function (_ref3) {
98
+ var value = _ref3.value;
99
+ return value === item.value;
100
+ }) ? checkedValues.filter(function (_ref4) {
101
+ var value = _ref4.value;
102
+ return value !== item.value;
103
+ }) : (0, _utils.uniqueFunc)([].concat((0, _toConsumableArray2.default)(checkedValues), [item]), 'value');
104
+ setCheckedValues(nValue);
105
+ }; // 全选事件
106
+
107
+
108
+ var onCheckAllChange = function onCheckAllChange() {
109
+ var nValue = checkAll ? checkedValues.filter(function (_ref5) {
110
+ var value = _ref5.value;
111
+ return !options.some(function (v) {
112
+ return v.value === value;
113
+ });
114
+ }) : (0, _utils.uniqueFunc)([].concat((0, _toConsumableArray2.default)(checkedValues), (0, _toConsumableArray2.default)(options)), 'value');
115
+ setCheckedValues(nValue);
116
+ }; // 取消 不执行查询操作 关闭下拉框
117
+
118
+
119
+ var handleCancel = function handleCancel() {
120
+ // 手动触发内容改变(不会触发onChange事件)
121
+ setVisible === null || setVisible === void 0 ? void 0 : setVisible(false);
122
+ }; // 确定 执行查询操作
123
+
124
+
125
+ var handleSure = function handleSure() {
126
+ setFilterValue(checkedValues);
127
+ }; // 展开下拉时触发: 赋值 && 聚焦 && 重置显示内容
128
+
129
+
130
+ useIsomorphicLayoutEffect(function () {
131
+ if (visible) {
132
+ delayedFn(function () {
133
+ var _inputRef$current;
134
+
135
+ return (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus({
136
+ cursor: 'all'
137
+ });
138
+ }); // 若开启了 Dropdown => destroyPopupOnHide=true 无需重置操作 反之需开启
139
+ // setCheckedValues(filterValue);
140
+ // inputRef.current?.setValue?.('');
141
+ // handleFilter('');
142
+ }
143
+ }, [visible]);
144
+ return /*#__PURE__*/_react.default.createElement("div", {
145
+ className: "filter_dropdown"
146
+ }, isSearch && /*#__PURE__*/_react.default.createElement("div", {
147
+ className: "filter_header"
148
+ }, /*#__PURE__*/_react.default.createElement(_InputSearchClose.default, {
149
+ ref: inputRef,
150
+ onSearch: handleFilter,
151
+ onChange: handleFilter
152
+ }), /*#__PURE__*/_react.default.createElement("div", {
153
+ className: "filter_header_operate"
154
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Checkbox, {
155
+ indeterminate: indeterminate,
156
+ onChange: onCheckAllChange,
157
+ checked: checkAll,
158
+ className: "filter_tip"
159
+ }, "\u5168\u90E8"), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", {
160
+ className: "filter_tip"
161
+ }, "\u5DF2\u9009: ", checkedValues.length)))), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Checkbox.Group, {
162
+ value: checkedKeys,
163
+ className: "filter_body"
164
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.VirtualList, {
165
+ options: options,
166
+ className: "filter_list"
167
+ }, function (_ref6) {
168
+ var item = _ref6.item,
169
+ resetProps = (0, _objectWithoutProperties2.default)(_ref6, _excluded);
170
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, resetProps, {
171
+ className: (0, _classnames.default)('filter_item', {
172
+ checked: checkedValues.some(function (_ref7) {
173
+ var value = _ref7.value;
174
+ return value === item.value;
175
+ })
176
+ }),
177
+ onClick: function onClick(e) {
178
+ return onChange(e, item);
179
+ }
180
+ }), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Checkbox, {
181
+ value: item.value,
182
+ className: "filter_item-content"
183
+ }, item.label));
184
+ }), !options.length && /*#__PURE__*/_react.default.createElement(_EmptyFilter.default, null)), /*#__PURE__*/_react.default.createElement("div", {
185
+ className: "filter_footer"
186
+ }, /*#__PURE__*/_react.default.createElement("div", {
187
+ className: "footer_clear",
188
+ onClick: handleCancel
189
+ }, "\u53D6\u6D88"), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
190
+ type: "primary",
191
+ size: "small",
192
+ onClick: handleSure
193
+ }, "\u786E\u5B9A")));
194
+ };
195
+
196
+ var _default = CheckboxFilter;
197
+ exports.default = _default;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ require("antd/es/date-picker/style");
13
+
14
+ var _datePicker = _interopRequireDefault(require("antd/es/date-picker"));
15
+
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _linkmoreDesign = require("linkmore-design");
21
+
22
+ var _moment = _interopRequireDefault(require("moment"));
23
+
24
+ var _utils = require("../utils");
25
+
26
+ var RangePicker = function RangePicker(_ref) {
27
+ var filterValue = _ref.filterValue,
28
+ setFilterValue = _ref.setFilterValue,
29
+ onChange = _ref.onChange,
30
+ itemProps = _ref.itemProps,
31
+ visible = _ref.visible;
32
+ var value = (0, _react.useMemo)(function () {
33
+ return filterValue ? [(0, _moment.default)(filterValue[0]), (0, _moment.default)(filterValue[1])] : null;
34
+ }, [filterValue]); // 最近的时间段, 值为JSON转换后的字符串
35
+
36
+ var ranges = (0, _react.useMemo)(function () {
37
+ return Object.entries((0, _utils.getRanges)()).map(function (item, i) {
38
+ return {
39
+ id: i,
40
+ label: item[0],
41
+ value: JSON.stringify(item[1])
42
+ };
43
+ });
44
+ }, []); // 选中时间段的触发
45
+
46
+ var handleOnChange = function handleOnChange(dates, dateStrings) {
47
+ onChange(dates, getIsHas(dateStrings.filter(function (v) {
48
+ return !!v;
49
+ })) ? dateStrings : null);
50
+ }; // 最近的时间触发事件
51
+
52
+
53
+ var handleLastDateOnChange = function handleLastDateOnChange(e) {
54
+ var nValue = JSON.parse(e.target.value);
55
+ setFilterValue(nValue);
56
+ };
57
+
58
+ var panelRender = function panelRender(panelNode) {
59
+ var activeValue = JSON.stringify(filterValue);
60
+ return /*#__PURE__*/_react.default.createElement("div", {
61
+ className: "filter_picker_box"
62
+ }, /*#__PURE__*/_react.default.createElement("div", {
63
+ className: "filter_picker_main"
64
+ }, /*#__PURE__*/_react.default.createElement("div", {
65
+ className: "filter_picker_header"
66
+ }, /*#__PURE__*/_react.default.createElement("div", {
67
+ className: "filter_picker_header_tip"
68
+ }, filterValue && "".concat(filterValue[0], " - ").concat(filterValue[1])), /*#__PURE__*/_react.default.createElement("div", {
69
+ className: "filter_picker_header_operate"
70
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Radio.Group, {
71
+ value: activeValue,
72
+ onChange: handleLastDateOnChange,
73
+ size: "small"
74
+ }, ranges.map(function (v) {
75
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Radio.Button, {
76
+ key: v.label,
77
+ value: v.value
78
+ }, v.label);
79
+ })))), panelNode));
80
+ };
81
+
82
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_datePicker.default.RangePicker, (0, _extends2.default)({
83
+ picker: "date",
84
+ separator: /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
85
+ type: "lmweb-swap-right",
86
+ style: {
87
+ color: 'var(--text-color)'
88
+ }
89
+ }),
90
+ placeholder: ['开始日期', '结束日期'],
91
+ style: {
92
+ width: 210
93
+ }
94
+ }, itemProps, {
95
+ value: value,
96
+ onChange: handleOnChange,
97
+ open: visible,
98
+ panelRender: panelRender,
99
+ dropdownClassName: "lm_filter_dropdown_picker",
100
+ bordered: false,
101
+ size: "small",
102
+ inputReadOnly: true
103
+ }), /*#__PURE__*/_react.default.createElement("div", null)));
104
+ }; // 日期范围选择器
105
+
106
+
107
+ var DatePickerFilter = function DatePickerFilter(_ref2) {
108
+ var instance = _ref2.instance,
109
+ itemProps = _ref2.item;
110
+ var filterValue = instance.filterValue,
111
+ setFilterValue = instance.setFilterValue,
112
+ visible = instance.visible;
113
+ var props = itemProps.props,
114
+ dateType = itemProps.dateType; // 对日期格式的转换, 日期组件仅接收moment格式
115
+
116
+ var value = (0, _react.useMemo)(function () {
117
+ return filterValue ? (0, _moment.default)(filterValue) : null;
118
+ }, [filterValue]); // 选中时间段的触发
119
+
120
+ var onChange = function onChange(dates, dateStrings) {
121
+ setFilterValue(getIsHas(dateStrings) ? dateStrings : null);
122
+ };
123
+
124
+ if (dateType === 'rangePicker') {
125
+ return /*#__PURE__*/_react.default.createElement(RangePicker, {
126
+ filterValue: filterValue,
127
+ setFilterValue: setFilterValue,
128
+ onChange: onChange,
129
+ itemProps: props,
130
+ visible: visible
131
+ });
132
+ }
133
+
134
+ return /*#__PURE__*/_react.default.createElement(_datePicker.default, (0, _extends2.default)({
135
+ placeholder: "\u9009\u62E9\u65F6\u95F4"
136
+ }, props, {
137
+ value: value,
138
+ onChange: onChange,
139
+ open: visible,
140
+ bordered: false,
141
+ size: "small",
142
+ inputReadOnly: true
143
+ }), /*#__PURE__*/_react.default.createElement("div", null));
144
+ };
145
+
146
+ var _default = DatePickerFilter;
147
+ exports.default = _default;