assui 2.1.31 → 2.1.34

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.
@@ -12,6 +12,8 @@ export interface LabelCustomizeRangePickerProps extends Omit<LabelRangePickerPro
12
12
  customizeTimeList?: dateTypeEnum[];
13
13
  rangePickerType?: 'label' | 'origin';
14
14
  label?: React.ReactNode;
15
+ /** 最大时间范围 */
16
+ maxScope?: number;
15
17
  }
16
18
  declare const LabelCustomizeRangePicker: (props: LabelCustomizeRangePickerProps) => JSX.Element;
17
19
  export default LabelCustomizeRangePicker;
@@ -59,6 +59,8 @@ import Radio from 'antd/lib/radio';
59
59
  import Checkbox from 'antd/lib/checkbox';
60
60
  import DatePicker from 'antd/lib/date-picker';
61
61
  import useControllableValue from 'ahooks/lib/useControllableValue';
62
+ import moment from 'moment';
63
+ import omit from 'lodash/omit';
62
64
  import getDefaultRadioList from './defaultRadioList';
63
65
  import LabelRangePicker from '../label-range-picker';
64
66
  import LocaleContext from '../config-provider/context';
@@ -71,7 +73,8 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
71
73
  _a = props.rangePickerType,
72
74
  rangePickerType = _a === void 0 ? 'label' : _a,
73
75
  label = props.label,
74
- options = __rest(props, ["customizeTimeList", "radioList", "rangePickerType", "label"]);
76
+ maxScope = props.maxScope,
77
+ options = __rest(props, ["customizeTimeList", "radioList", "rangePickerType", "label", "maxScope"]);
75
78
 
76
79
  var _b = __read(useControllableValue(props), 2),
77
80
  date = _b[0],
@@ -92,7 +95,7 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
92
95
  var messages = useContext(LocaleContext);
93
96
  var dataSource = radioList !== null && radioList !== void 0 ? radioList : getDefaultRadioList(messages);
94
97
  useEffect(function () {
95
- var foundItem = dataSource.find(function (item) {
98
+ var filterItemList = dataSource.filter(function (item) {
96
99
  if (!date) return false;
97
100
 
98
101
  var _a = __read(item.value, 2),
@@ -109,8 +112,21 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
109
112
 
110
113
  return false;
111
114
  });
112
- var data = foundItem ? foundItem.key : null;
113
- setRadioKey(data);
115
+
116
+ if (filterItemList.length === 0) {
117
+ setRadioKey(null);
118
+ } else if (filterItemList.length > 1) {
119
+ var findItem = filterItemList.find(function (item) {
120
+ return item.key === radioKey;
121
+ });
122
+ var resutRadioKey = findItem ? findItem.key : filterItemList[0].key;
123
+ setRadioKey(resutRadioKey);
124
+ } else {
125
+ var _a = __read(filterItemList, 1),
126
+ item = _a[0];
127
+
128
+ setRadioKey(item.key);
129
+ }
114
130
  }, [date]);
115
131
 
116
132
  var onDiyTimeChange = function onDiyTimeChange(event) {
@@ -119,7 +135,47 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
119
135
  };
120
136
 
121
137
  var onDateChange = function onDateChange(nextValue) {
122
- setDate(nextValue);
138
+ var _a, _b;
139
+
140
+ var _c = __read(nextValue || [], 2),
141
+ start = _c[0],
142
+ end = _c[1];
143
+
144
+ var nextStartDate = (_a = start === null || start === void 0 ? void 0 : start.clone().startOf('day')) !== null && _a !== void 0 ? _a : null;
145
+ var nextEndDate = (_b = end === null || end === void 0 ? void 0 : end.clone().endOf('day')) !== null && _b !== void 0 ? _b : null;
146
+
147
+ if (!nextStartDate && !nextEndDate) {
148
+ return setDate(undefined);
149
+ }
150
+
151
+ if (!maxScope) {
152
+ return setDate([nextStartDate, nextEndDate]);
153
+ }
154
+
155
+ var _d = __read(date || [], 1),
156
+ startDate = _d[0];
157
+
158
+ if (nextStartDate && nextEndDate) {
159
+ var isChangeStartData = !(startDate === null || startDate === void 0 ? void 0 : startDate.clone().isSame(nextStartDate, 'day'));
160
+
161
+ if (isChangeStartData) {
162
+ if (nextEndDate.diff(nextStartDate, 'day') > maxScope) {
163
+ nextEndDate = nextStartDate.clone().add(maxScope - 1, 'day');
164
+ }
165
+ } else if (nextEndDate.diff(nextStartDate, 'day') > maxScope) {
166
+ nextStartDate = nextEndDate.clone().subtract(maxScope - 1, 'day');
167
+ }
168
+ } else if (!nextStartDate && nextEndDate) {
169
+ nextStartDate = nextEndDate.clone().subtract(maxScope - 1, 'day');
170
+ } else if (nextStartDate && !nextEndDate) {
171
+ nextEndDate = nextStartDate.clone().add(maxScope - 1, 'day');
172
+ }
173
+
174
+ if (nextStartDate && nextEndDate) {
175
+ return setDate([nextStartDate, nextEndDate]);
176
+ }
177
+
178
+ return setDate([nextStartDate, nextEndDate]);
123
179
  };
124
180
 
125
181
  var onRadioChange = function onRadioChange(event) {
@@ -135,6 +191,14 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
135
191
  var list = radioList !== null && radioList !== void 0 ? radioList : getDefaultRadioList(messages).filter(function (item) {
136
192
  return customizeTimeList ? customizeTimeList.includes(item.key) : true;
137
193
  });
194
+ var resultList = maxScope ? list.filter(function (item) {
195
+ var _a = __read(item.value, 2),
196
+ startTime = _a[0],
197
+ entTime = _a[1];
198
+
199
+ var space = moment.duration(entTime.diff(startTime)).asDays();
200
+ return space <= maxScope;
201
+ }) : list;
138
202
 
139
203
  var panelRender = function panelRender(panel) {
140
204
  return /*#__PURE__*/React.createElement("div", {
@@ -154,7 +218,7 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
154
218
  }, /*#__PURE__*/React.createElement(Radio.Group, {
155
219
  onChange: onRadioChange,
156
220
  value: radioKey
157
- }, list.map(function (_a) {
221
+ }, resultList.map(function (_a) {
158
222
  var key = _a.key,
159
223
  text = _a.text;
160
224
  return /*#__PURE__*/React.createElement(Radio, {
@@ -179,7 +243,7 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
179
243
  };
180
244
  return rangePickerType === 'label' ? /*#__PURE__*/React.createElement(LabelRangePicker, __assign({
181
245
  label: label
182
- }, baseOptions, options)) : /*#__PURE__*/React.createElement(RangePicker, __assign({}, baseOptions, options));
246
+ }, baseOptions, omit(options, 'onChange'))) : /*#__PURE__*/React.createElement(RangePicker, __assign({}, baseOptions, omit(options, 'onChange')));
183
247
  };
184
248
 
185
249
  export default LabelCustomizeRangePicker;
@@ -1793,6 +1793,12 @@ html {
1793
1793
  padding: 8px 11px 6px;
1794
1794
  border-bottom: 1px solid #f5f6fa;
1795
1795
  }
1796
+ .label-customize-range-picker-panel .check-wrapper .ant-checkbox-wrapper {
1797
+ pointer-events: none;
1798
+ }
1799
+ .label-customize-range-picker-panel .check-wrapper .ant-checkbox-input {
1800
+ pointer-events: auto;
1801
+ }
1796
1802
  .label-customize-range-picker-panel .pick-box {
1797
1803
  display: flex;
1798
1804
  justify-content: space-between;
@@ -8,6 +8,14 @@
8
8
  .check-wrapper {
9
9
  padding: 8px 11px 6px;
10
10
  border-bottom: 1px solid #f5f6fa;
11
+
12
+ .@{ant-prefix}-checkbox-wrapper {
13
+ pointer-events: none;
14
+ }
15
+
16
+ .@{ant-prefix}-checkbox-input {
17
+ pointer-events: auto;
18
+ }
11
19
  }
12
20
 
13
21
  .pick-box {
@@ -80,6 +80,7 @@ var LabelDatePicker = function LabelDatePicker(props) {
80
80
  };
81
81
 
82
82
  var handleOpenChange = function handleOpenChange(nextOpen) {
83
+ console.log('--');
83
84
  onOpenChange(nextOpen);
84
85
  };
85
86
 
@@ -12,6 +12,8 @@ export interface LabelCustomizeRangePickerProps extends Omit<LabelRangePickerPro
12
12
  customizeTimeList?: dateTypeEnum[];
13
13
  rangePickerType?: 'label' | 'origin';
14
14
  label?: React.ReactNode;
15
+ /** 最大时间范围 */
16
+ maxScope?: number;
15
17
  }
16
18
  declare const LabelCustomizeRangePicker: (props: LabelCustomizeRangePickerProps) => JSX.Element;
17
19
  export default LabelCustomizeRangePicker;
@@ -116,6 +116,10 @@ var date_picker_1 = __importDefault(require("antd/lib/date-picker"));
116
116
 
117
117
  var useControllableValue_1 = __importDefault(require("ahooks/lib/useControllableValue"));
118
118
 
119
+ var moment_1 = __importDefault(require("moment"));
120
+
121
+ var omit_1 = __importDefault(require("lodash/omit"));
122
+
119
123
  var defaultRadioList_1 = __importDefault(require("./defaultRadioList"));
120
124
 
121
125
  var label_range_picker_1 = __importDefault(require("../label-range-picker"));
@@ -132,7 +136,8 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
132
136
  _a = props.rangePickerType,
133
137
  rangePickerType = _a === void 0 ? 'label' : _a,
134
138
  label = props.label,
135
- options = __rest(props, ["customizeTimeList", "radioList", "rangePickerType", "label"]);
139
+ maxScope = props.maxScope,
140
+ options = __rest(props, ["customizeTimeList", "radioList", "rangePickerType", "label", "maxScope"]);
136
141
 
137
142
  var _b = __read((0, useControllableValue_1["default"])(props), 2),
138
143
  date = _b[0],
@@ -153,7 +158,7 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
153
158
  var messages = (0, react_1.useContext)(context_1["default"]);
154
159
  var dataSource = radioList !== null && radioList !== void 0 ? radioList : (0, defaultRadioList_1["default"])(messages);
155
160
  (0, react_1.useEffect)(function () {
156
- var foundItem = dataSource.find(function (item) {
161
+ var filterItemList = dataSource.filter(function (item) {
157
162
  if (!date) return false;
158
163
 
159
164
  var _a = __read(item.value, 2),
@@ -170,8 +175,21 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
170
175
 
171
176
  return false;
172
177
  });
173
- var data = foundItem ? foundItem.key : null;
174
- setRadioKey(data);
178
+
179
+ if (filterItemList.length === 0) {
180
+ setRadioKey(null);
181
+ } else if (filterItemList.length > 1) {
182
+ var findItem = filterItemList.find(function (item) {
183
+ return item.key === radioKey;
184
+ });
185
+ var resutRadioKey = findItem ? findItem.key : filterItemList[0].key;
186
+ setRadioKey(resutRadioKey);
187
+ } else {
188
+ var _a = __read(filterItemList, 1),
189
+ item = _a[0];
190
+
191
+ setRadioKey(item.key);
192
+ }
175
193
  }, [date]);
176
194
 
177
195
  var onDiyTimeChange = function onDiyTimeChange(event) {
@@ -180,7 +198,47 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
180
198
  };
181
199
 
182
200
  var onDateChange = function onDateChange(nextValue) {
183
- setDate(nextValue);
201
+ var _a, _b;
202
+
203
+ var _c = __read(nextValue || [], 2),
204
+ start = _c[0],
205
+ end = _c[1];
206
+
207
+ var nextStartDate = (_a = start === null || start === void 0 ? void 0 : start.clone().startOf('day')) !== null && _a !== void 0 ? _a : null;
208
+ var nextEndDate = (_b = end === null || end === void 0 ? void 0 : end.clone().endOf('day')) !== null && _b !== void 0 ? _b : null;
209
+
210
+ if (!nextStartDate && !nextEndDate) {
211
+ return setDate(undefined);
212
+ }
213
+
214
+ if (!maxScope) {
215
+ return setDate([nextStartDate, nextEndDate]);
216
+ }
217
+
218
+ var _d = __read(date || [], 1),
219
+ startDate = _d[0];
220
+
221
+ if (nextStartDate && nextEndDate) {
222
+ var isChangeStartData = !(startDate === null || startDate === void 0 ? void 0 : startDate.clone().isSame(nextStartDate, 'day'));
223
+
224
+ if (isChangeStartData) {
225
+ if (nextEndDate.diff(nextStartDate, 'day') > maxScope) {
226
+ nextEndDate = nextStartDate.clone().add(maxScope - 1, 'day');
227
+ }
228
+ } else if (nextEndDate.diff(nextStartDate, 'day') > maxScope) {
229
+ nextStartDate = nextEndDate.clone().subtract(maxScope - 1, 'day');
230
+ }
231
+ } else if (!nextStartDate && nextEndDate) {
232
+ nextStartDate = nextEndDate.clone().subtract(maxScope - 1, 'day');
233
+ } else if (nextStartDate && !nextEndDate) {
234
+ nextEndDate = nextStartDate.clone().add(maxScope - 1, 'day');
235
+ }
236
+
237
+ if (nextStartDate && nextEndDate) {
238
+ return setDate([nextStartDate, nextEndDate]);
239
+ }
240
+
241
+ return setDate([nextStartDate, nextEndDate]);
184
242
  };
185
243
 
186
244
  var onRadioChange = function onRadioChange(event) {
@@ -196,6 +254,14 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
196
254
  var list = radioList !== null && radioList !== void 0 ? radioList : (0, defaultRadioList_1["default"])(messages).filter(function (item) {
197
255
  return customizeTimeList ? customizeTimeList.includes(item.key) : true;
198
256
  });
257
+ var resultList = maxScope ? list.filter(function (item) {
258
+ var _a = __read(item.value, 2),
259
+ startTime = _a[0],
260
+ entTime = _a[1];
261
+
262
+ var space = moment_1["default"].duration(entTime.diff(startTime)).asDays();
263
+ return space <= maxScope;
264
+ }) : list;
199
265
 
200
266
  var panelRender = function panelRender(panel) {
201
267
  return react_1["default"].createElement("div", {
@@ -215,7 +281,7 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
215
281
  }, react_1["default"].createElement(radio_1["default"].Group, {
216
282
  onChange: onRadioChange,
217
283
  value: radioKey
218
- }, list.map(function (_a) {
284
+ }, resultList.map(function (_a) {
219
285
  var key = _a.key,
220
286
  text = _a.text;
221
287
  return react_1["default"].createElement(radio_1["default"], {
@@ -240,7 +306,7 @@ var LabelCustomizeRangePicker = function LabelCustomizeRangePicker(props) {
240
306
  };
241
307
  return rangePickerType === 'label' ? react_1["default"].createElement(label_range_picker_1["default"], __assign({
242
308
  label: label
243
- }, baseOptions, options)) : react_1["default"].createElement(RangePicker, __assign({}, baseOptions, options));
309
+ }, baseOptions, (0, omit_1["default"])(options, 'onChange'))) : react_1["default"].createElement(RangePicker, __assign({}, baseOptions, (0, omit_1["default"])(options, 'onChange')));
244
310
  };
245
311
 
246
312
  exports["default"] = LabelCustomizeRangePicker;
@@ -1793,6 +1793,12 @@ html {
1793
1793
  padding: 8px 11px 6px;
1794
1794
  border-bottom: 1px solid #f5f6fa;
1795
1795
  }
1796
+ .label-customize-range-picker-panel .check-wrapper .ant-checkbox-wrapper {
1797
+ pointer-events: none;
1798
+ }
1799
+ .label-customize-range-picker-panel .check-wrapper .ant-checkbox-input {
1800
+ pointer-events: auto;
1801
+ }
1796
1802
  .label-customize-range-picker-panel .pick-box {
1797
1803
  display: flex;
1798
1804
  justify-content: space-between;
@@ -8,6 +8,14 @@
8
8
  .check-wrapper {
9
9
  padding: 8px 11px 6px;
10
10
  border-bottom: 1px solid #f5f6fa;
11
+
12
+ .@{ant-prefix}-checkbox-wrapper {
13
+ pointer-events: none;
14
+ }
15
+
16
+ .@{ant-prefix}-checkbox-input {
17
+ pointer-events: auto;
18
+ }
11
19
  }
12
20
 
13
21
  .pick-box {
@@ -98,6 +98,7 @@ var LabelDatePicker = function LabelDatePicker(props) {
98
98
  };
99
99
 
100
100
  var handleOpenChange = function handleOpenChange(nextOpen) {
101
+ console.log('--');
101
102
  onOpenChange(nextOpen);
102
103
  };
103
104
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "assui",
3
- "version": "2.1.31",
3
+ "version": "2.1.34",
4
4
  "description": "react ui library",
5
5
  "author": "jason <usochen@gmail.com>",
6
6
  "main": "./lib/index.js",
@@ -30,7 +30,7 @@
30
30
  "README.md"
31
31
  ],
32
32
  "dependencies": {
33
- "@ahooksjs/use-url-state": "^2.5.8",
33
+ "@ahooksjs/use-url-state": "^3.1.9",
34
34
  "@tinymce/tinymce-react": "^4.0.0",
35
35
  "@types/react-beautiful-dnd": "^13.1.2",
36
36
  "@types/react-resizable": "^3.0.0",
@@ -54,7 +54,7 @@
54
54
  "tinymce": "^6.0.2"
55
55
  },
56
56
  "peerDependencies": {
57
- "antd": "^4.16.11",
57
+ "antd": "^4.21.6",
58
58
  "react": "^16.8.6 || ^17.0 || ^18.0"
59
59
  },
60
60
  "devDependencies": {
@@ -72,5 +72,5 @@
72
72
  "node": ">=10.0.0"
73
73
  },
74
74
  "license": "MIT",
75
- "gitHead": "308bb75f7d010780720d9e318424c4886a2ef4be"
75
+ "gitHead": "eb926e3a81ebd83d37c2ace39c832ba69e0f9bb6"
76
76
  }