@steedos/filters 2.3.1 → 2.3.2-beta.2

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/lib/utils.js CHANGED
@@ -1,43 +1,33 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.isBetweenFilterOperation = exports.getQuarterStartMonth = exports.getNextQuarterFirstDay = exports.getMonthDays = exports.getLastQuarterFirstDay = exports.getLastMonthFirstDay = exports.getBetweenTimeBuiltinValueItem = exports.getBetweenBuiltinValueItem = void 0;
9
-
10
8
  var _moment = _interopRequireDefault(require("moment"));
11
-
12
9
  var t = function t(key) {
13
10
  return key;
14
11
  };
15
-
16
12
  var getMonthDays = function getMonthDays(year, month) {
17
13
  var days, endDate, millisecond, startDate;
18
-
19
14
  if (month === 11) {
20
15
  return 31;
21
16
  }
22
-
23
17
  millisecond = 1000 * 60 * 60 * 24;
24
18
  startDate = new Date(year, month, 1);
25
19
  endDate = new Date(year, month + 1, 1);
26
20
  days = (endDate - startDate) / millisecond;
27
21
  return days;
28
22
  };
29
-
30
23
  exports.getMonthDays = getMonthDays;
31
-
32
24
  var getNextQuarterFirstDay = function getNextQuarterFirstDay(year, month) {
33
25
  if (!year) {
34
26
  year = new Date().getFullYear();
35
27
  }
36
-
37
28
  if (!month) {
38
29
  month = new Date().getMonth();
39
30
  }
40
-
41
31
  if (month < 3) {
42
32
  month = 3;
43
33
  } else if (month < 6) {
@@ -48,40 +38,31 @@ var getNextQuarterFirstDay = function getNextQuarterFirstDay(year, month) {
48
38
  year++;
49
39
  month = 0;
50
40
  }
51
-
52
41
  return new Date(year, month, 1);
53
42
  };
54
-
55
43
  exports.getNextQuarterFirstDay = getNextQuarterFirstDay;
56
-
57
44
  var getLastMonthFirstDay = function getLastMonthFirstDay(year, month) {
58
45
  if (!year) {
59
46
  year = new Date().getFullYear();
60
47
  }
61
-
62
48
  if (!month) {
63
49
  month = new Date().getMonth();
64
- } // 月份为0代表本年的第一月
65
-
66
-
50
+ }
51
+ // 月份为0代表本年的第一月
67
52
  if (month === 0) {
68
53
  month = 11;
69
54
  year--;
70
55
  return new Date(year, month, 1);
71
- } // 否则,只减去月份
72
-
73
-
56
+ }
57
+ // 否则,只减去月份
74
58
  month--;
75
59
  return new Date(year, month, 1);
76
60
  };
77
-
78
61
  exports.getLastMonthFirstDay = getLastMonthFirstDay;
79
-
80
62
  var getQuarterStartMonth = function getQuarterStartMonth(month) {
81
63
  if (!month) {
82
64
  month = new Date().getMonth();
83
65
  }
84
-
85
66
  if (month < 3) {
86
67
  return 0;
87
68
  } else if (month < 6) {
@@ -89,21 +70,16 @@ var getQuarterStartMonth = function getQuarterStartMonth(month) {
89
70
  } else if (month < 9) {
90
71
  return 6;
91
72
  }
92
-
93
73
  return 9;
94
74
  };
95
-
96
75
  exports.getQuarterStartMonth = getQuarterStartMonth;
97
-
98
76
  var getLastQuarterFirstDay = function getLastQuarterFirstDay(year, month) {
99
77
  if (!year) {
100
78
  year = new Date().getFullYear();
101
79
  }
102
-
103
80
  if (!month) {
104
81
  month = new Date().getMonth();
105
82
  }
106
-
107
83
  if (month < 3) {
108
84
  year--;
109
85
  month = 9;
@@ -114,53 +90,49 @@ var getLastQuarterFirstDay = function getLastQuarterFirstDay(year, month) {
114
90
  } else {
115
91
  month = 6;
116
92
  }
117
-
118
93
  return new Date(year, month, 1);
119
94
  };
120
-
121
95
  exports.getLastQuarterFirstDay = getLastQuarterFirstDay;
122
-
123
96
  var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key, utcOffset) {
124
97
  // 过滤器between运算符,现算日期/日期时间类型字段的values值
125
98
  var currentMonth, currentYear, endValue, firstDay, label, lastDay, lastMonday, lastMonthFinalDay, lastMonthFirstDay, lastQuarterEndDay, lastQuarterStartDay, lastSunday, last_120_days, last_30_days, last_60_days, last_7_days, last_90_days, millisecond, minusDay, monday, month, nextMonday, nextMonthFinalDay, nextMonthFirstDay, nextQuarterEndDay, nextQuarterStartDay, nextSunday, nextYear, next_120_days, next_30_days, next_60_days, next_7_days, next_90_days, now, previousYear, startValue, strEndDay, strFirstDay, strLastDay, strMonday, strStartDay, strSunday, strToday, strTomorrow, strYestday, sunday, thisQuarterEndDay, thisQuarterStartDay, tomorrow, values, week, year, yestday;
126
- now = new Date(); // 一天的毫秒数
127
-
99
+ now = new Date();
100
+ // 一天的毫秒数
128
101
  millisecond = 1000 * 60 * 60 * 24;
129
102
  yestday = new Date(now.getTime() - millisecond);
130
- tomorrow = new Date(now.getTime() + millisecond); // 一周中的某一天
131
-
132
- week = now.getDay(); // 减去的天数
133
-
103
+ tomorrow = new Date(now.getTime() + millisecond);
104
+ // 一周中的某一天
105
+ week = now.getDay();
106
+ // 减去的天数
134
107
  minusDay = week !== 0 ? week - 1 : 6;
135
108
  monday = new Date(now.getTime() - minusDay * millisecond);
136
- sunday = new Date(monday.getTime() + 6 * millisecond); // 上周日
137
-
138
- lastSunday = new Date(monday.getTime() - millisecond); // 上周一
139
-
140
- lastMonday = new Date(lastSunday.getTime() - millisecond * 6); // 下周一
141
-
142
- nextMonday = new Date(sunday.getTime() + millisecond); // 下周日
143
-
109
+ sunday = new Date(monday.getTime() + 6 * millisecond);
110
+ // 上周日
111
+ lastSunday = new Date(monday.getTime() - millisecond);
112
+ // 上周一
113
+ lastMonday = new Date(lastSunday.getTime() - millisecond * 6);
114
+ // 下周一
115
+ nextMonday = new Date(sunday.getTime() + millisecond);
116
+ // 下周日
144
117
  nextSunday = new Date(nextMonday.getTime() + millisecond * 6);
145
118
  currentYear = now.getFullYear();
146
119
  previousYear = currentYear - 1;
147
- nextYear = currentYear + 1; // 当前月份
148
-
149
- currentMonth = now.getMonth(); // 计数年、月
150
-
120
+ nextYear = currentYear + 1;
121
+ // 当前月份
122
+ currentMonth = now.getMonth();
123
+ // 计数年、月
151
124
  year = now.getFullYear();
152
- month = now.getMonth(); // 本月第一天
153
-
154
- firstDay = new Date(currentYear, currentMonth, 1); // 当为12月的时候年份需要加1
125
+ month = now.getMonth();
126
+ // 本月第一天
127
+ firstDay = new Date(currentYear, currentMonth, 1);
128
+ // 当为12月的时候年份需要加1
155
129
  // 月份需要更新为0 也就是下一年的第一个月
156
-
157
130
  if (currentMonth === 11) {
158
131
  year++;
159
132
  month++;
160
133
  } else {
161
134
  month++;
162
135
  }
163
-
164
136
  nextMonthFirstDay = new Date(year, month, 1);
165
137
  nextMonthFinalDay = new Date(year, month, getMonthDays(year, month));
166
138
  lastDay = new Date(nextMonthFirstDay.getTime() - millisecond);
@@ -182,7 +154,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
182
154
  next_60_days = new Date(now.getTime() + 59 * millisecond);
183
155
  next_90_days = new Date(now.getTime() + 89 * millisecond);
184
156
  next_120_days = new Date(now.getTime() + 119 * millisecond);
185
-
186
157
  switch (key) {
187
158
  case "last_year":
188
159
  // 去年
@@ -190,21 +161,18 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
190
161
  startValue = new Date(previousYear + "-01-01T00:00:00Z");
191
162
  endValue = new Date(previousYear + "-12-31T23:59:59Z");
192
163
  break;
193
-
194
164
  case "this_year":
195
165
  // 今年
196
166
  label = t("creator_filter_operation_between_this_year");
197
167
  startValue = new Date(currentYear + "-01-01T00:00:00Z");
198
168
  endValue = new Date(currentYear + "-12-31T23:59:59Z");
199
169
  break;
200
-
201
170
  case "next_year":
202
171
  // 明年
203
172
  label = t("creator_filter_operation_between_next_year");
204
173
  startValue = new Date(nextYear + "-01-01T00:00:00Z");
205
174
  endValue = new Date(nextYear + "-12-31T23:59:59Z");
206
175
  break;
207
-
208
176
  case "last_quarter":
209
177
  // 上季度
210
178
  strFirstDay = (0, _moment["default"])(lastQuarterStartDay).format("YYYY-MM-DD");
@@ -213,7 +181,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
213
181
  startValue = new Date(strFirstDay + "T00:00:00Z");
214
182
  endValue = new Date(strLastDay + "T23:59:59Z");
215
183
  break;
216
-
217
184
  case "this_quarter":
218
185
  // 本季度
219
186
  strFirstDay = (0, _moment["default"])(thisQuarterStartDay).format("YYYY-MM-DD");
@@ -222,7 +189,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
222
189
  startValue = new Date(strFirstDay + "T00:00:00Z");
223
190
  endValue = new Date(strLastDay + "T23:59:59Z");
224
191
  break;
225
-
226
192
  case "next_quarter":
227
193
  // 下季度
228
194
  strFirstDay = (0, _moment["default"])(nextQuarterStartDay).format("YYYY-MM-DD");
@@ -231,7 +197,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
231
197
  startValue = new Date(strFirstDay + "T00:00:00Z");
232
198
  endValue = new Date(strLastDay + "T23:59:59Z");
233
199
  break;
234
-
235
200
  case "last_month":
236
201
  // 上月
237
202
  strFirstDay = (0, _moment["default"])(lastMonthFirstDay).format("YYYY-MM-DD");
@@ -240,7 +205,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
240
205
  startValue = new Date(strFirstDay + "T00:00:00Z");
241
206
  endValue = new Date(strLastDay + "T23:59:59Z");
242
207
  break;
243
-
244
208
  case "this_month":
245
209
  // 本月
246
210
  strFirstDay = (0, _moment["default"])(firstDay).format("YYYY-MM-DD");
@@ -249,7 +213,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
249
213
  startValue = new Date(strFirstDay + "T00:00:00Z");
250
214
  endValue = new Date(strLastDay + "T23:59:59Z");
251
215
  break;
252
-
253
216
  case "next_month":
254
217
  // 下月
255
218
  strFirstDay = (0, _moment["default"])(nextMonthFirstDay).format("YYYY-MM-DD");
@@ -258,7 +221,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
258
221
  startValue = new Date(strFirstDay + "T00:00:00Z");
259
222
  endValue = new Date(strLastDay + "T23:59:59Z");
260
223
  break;
261
-
262
224
  case "last_week":
263
225
  // 上周
264
226
  strMonday = (0, _moment["default"])(lastMonday).format("YYYY-MM-DD");
@@ -267,7 +229,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
267
229
  startValue = new Date(strMonday + "T00:00:00Z");
268
230
  endValue = new Date(strSunday + "T23:59:59Z");
269
231
  break;
270
-
271
232
  case "this_week":
272
233
  // 本周
273
234
  strMonday = (0, _moment["default"])(monday).format("YYYY-MM-DD");
@@ -276,7 +237,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
276
237
  startValue = new Date(strMonday + "T00:00:00Z");
277
238
  endValue = new Date(strSunday + "T23:59:59Z");
278
239
  break;
279
-
280
240
  case "next_week":
281
241
  // 下周
282
242
  strMonday = (0, _moment["default"])(nextMonday).format("YYYY-MM-DD");
@@ -285,7 +245,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
285
245
  startValue = new Date(strMonday + "T00:00:00Z");
286
246
  endValue = new Date(strSunday + "T23:59:59Z");
287
247
  break;
288
-
289
248
  case "yestday":
290
249
  // 昨天
291
250
  strYestday = (0, _moment["default"])(yestday).format("YYYY-MM-DD");
@@ -293,7 +252,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
293
252
  startValue = new Date(strYestday + "T00:00:00Z");
294
253
  endValue = new Date(strYestday + "T23:59:59Z");
295
254
  break;
296
-
297
255
  case "today":
298
256
  // 今天
299
257
  strToday = (0, _moment["default"])(now).format("YYYY-MM-DD");
@@ -301,7 +259,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
301
259
  startValue = new Date(strToday + "T00:00:00Z");
302
260
  endValue = new Date(strToday + "T23:59:59Z");
303
261
  break;
304
-
305
262
  case "tomorrow":
306
263
  // 明天
307
264
  strTomorrow = (0, _moment["default"])(tomorrow).format("YYYY-MM-DD");
@@ -309,7 +266,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
309
266
  startValue = new Date(strTomorrow + "T00:00:00Z");
310
267
  endValue = new Date(strTomorrow + "T23:59:59Z");
311
268
  break;
312
-
313
269
  case "last_7_days":
314
270
  // 过去7天
315
271
  strStartDay = (0, _moment["default"])(last_7_days).format("YYYY-MM-DD");
@@ -318,7 +274,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
318
274
  startValue = new Date(strStartDay + "T00:00:00Z");
319
275
  endValue = new Date(strEndDay + "T23:59:59Z");
320
276
  break;
321
-
322
277
  case "last_30_days":
323
278
  // 过去30天
324
279
  strStartDay = (0, _moment["default"])(last_30_days).format("YYYY-MM-DD");
@@ -327,7 +282,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
327
282
  startValue = new Date(strStartDay + "T00:00:00Z");
328
283
  endValue = new Date(strEndDay + "T23:59:59Z");
329
284
  break;
330
-
331
285
  case "last_60_days":
332
286
  // 过去60天
333
287
  strStartDay = (0, _moment["default"])(last_60_days).format("YYYY-MM-DD");
@@ -336,7 +290,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
336
290
  startValue = new Date(strStartDay + "T00:00:00Z");
337
291
  endValue = new Date(strEndDay + "T23:59:59Z");
338
292
  break;
339
-
340
293
  case "last_90_days":
341
294
  // 过去90天
342
295
  strStartDay = (0, _moment["default"])(last_90_days).format("YYYY-MM-DD");
@@ -345,7 +298,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
345
298
  startValue = new Date(strStartDay + "T00:00:00Z");
346
299
  endValue = new Date(strEndDay + "T23:59:59Z");
347
300
  break;
348
-
349
301
  case "last_120_days":
350
302
  // 过去120天
351
303
  strStartDay = (0, _moment["default"])(last_120_days).format("YYYY-MM-DD");
@@ -354,7 +306,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
354
306
  startValue = new Date(strStartDay + "T00:00:00Z");
355
307
  endValue = new Date(strEndDay + "T23:59:59Z");
356
308
  break;
357
-
358
309
  case "next_7_days":
359
310
  // 未来7天
360
311
  strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
@@ -363,7 +314,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
363
314
  startValue = new Date(strStartDay + "T00:00:00Z");
364
315
  endValue = new Date(strEndDay + "T23:59:59Z");
365
316
  break;
366
-
367
317
  case "next_30_days":
368
318
  // 未来30天
369
319
  strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
@@ -372,7 +322,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
372
322
  startValue = new Date(strStartDay + "T00:00:00Z");
373
323
  endValue = new Date(strEndDay + "T23:59:59Z");
374
324
  break;
375
-
376
325
  case "next_60_days":
377
326
  // 未来60天
378
327
  strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
@@ -381,7 +330,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
381
330
  startValue = new Date(strStartDay + "T00:00:00Z");
382
331
  endValue = new Date(strEndDay + "T23:59:59Z");
383
332
  break;
384
-
385
333
  case "next_90_days":
386
334
  // 未来90天
387
335
  strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
@@ -390,7 +338,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
390
338
  startValue = new Date(strStartDay + "T00:00:00Z");
391
339
  endValue = new Date(strEndDay + "T23:59:59Z");
392
340
  break;
393
-
394
341
  case "next_120_days":
395
342
  // 未来120天
396
343
  strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
@@ -399,45 +346,36 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
399
346
  startValue = new Date(strStartDay + "T00:00:00Z");
400
347
  endValue = new Date(strEndDay + "T23:59:59Z");
401
348
  }
402
-
403
- values = [startValue, endValue]; // 时间类型字段,应该考虑偏移时区值,否则过滤数据存在偏差
349
+ values = [startValue, endValue];
350
+ // 时间类型字段,应该考虑偏移时区值,否则过滤数据存在偏差
404
351
  // 日期类型字段,数据库本来就存的是UTC的0点;
405
352
  // 日期类型字段,目前creator代码(2019年08月07号存的)存的是UTC的16点,见:https://github.com/steedos/creator/issues/1271;
406
353
  // 比如用户想搜索2019-08-07的数据,请求会是:((created ge 2019-08-06T16:00:00Z) and (created le 2019-08-07T15:59:59Z)) ,
407
354
  // 如果数据库中存储的是2019-08-07T16:00:00Z而不是2019-08-07T00:00:00Z,那么就搜索不到数据。
408
355
  // 所以,日期类型字段,要求存储的是UTC的0点,而不可以是16点,否则可能搜索不到数据。
409
-
410
356
  if (utcOffset) {
411
357
  values = values.map(function (fv) {
412
358
  if (fv) {
413
359
  // 注意这里取的值是moment().utcOffset() / 60得到的,不是new Date().getTimezoneOffset() / 60
414
360
  // 它们的值正好为正负关系,北京时间前者为 +8,后者为 -8
415
361
  fv = new Date(fv.getTime()); // clone fv的值以防止原来的值被更改
416
-
417
362
  fv.setHours(fv.getHours() - utcOffset);
418
363
  }
419
-
420
364
  return fv;
421
365
  });
422
366
  }
423
-
424
367
  return {
425
368
  label: label,
426
369
  key: key,
427
370
  values: values
428
371
  };
429
372
  };
430
-
431
373
  exports.getBetweenTimeBuiltinValueItem = getBetweenTimeBuiltinValueItem;
432
-
433
374
  var getBetweenBuiltinValueItem = function getBetweenBuiltinValueItem(key, utcOffset) {
434
375
  return getBetweenTimeBuiltinValueItem(key, utcOffset);
435
376
  };
436
-
437
377
  exports.getBetweenBuiltinValueItem = getBetweenBuiltinValueItem;
438
-
439
378
  var isBetweenFilterOperation = function isBetweenFilterOperation(operation) {
440
379
  return operation === "between";
441
380
  };
442
-
443
381
  exports.isBetweenFilterOperation = isBetweenFilterOperation;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@steedos/filters",
3
3
  "private": false,
4
- "version": "2.3.1",
4
+ "version": "2.3.2-beta.2",
5
5
  "description": "filters lib for steedos",
6
6
  "main": "lib/index.js",
7
7
  "files": [
@@ -36,5 +36,5 @@
36
36
  "publishConfig": {
37
37
  "access": "public"
38
38
  },
39
- "gitHead": "f8938e298cec11b2f91172e0d3506079daa7d670"
39
+ "gitHead": "2e469778c682ec784fbfb93f5e83d2f5f9671ea5"
40
40
  }