@steedos/filters 2.3.1 → 2.3.2-beta.3

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.
@@ -4,15 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getFormatter = void 0;
7
-
8
7
  function leftPad(text, length) {
9
8
  while (text.length < length) {
10
9
  text = "0" + text;
11
10
  }
12
-
13
11
  return text;
14
12
  }
15
-
16
13
  var FORMAT_TYPES = {
17
14
  "3": "abbreviated",
18
15
  "4": "wide",
@@ -21,42 +18,34 @@ var FORMAT_TYPES = {
21
18
  var LDML_FORMATTERS = {
22
19
  y: function y(date, count, useUtc) {
23
20
  var year = date[useUtc ? "getUTCFullYear" : "getFullYear"]();
24
-
25
21
  if (count === 2) {
26
22
  year = year % 100;
27
23
  }
28
-
29
24
  return leftPad(year.toString(), count);
30
25
  },
31
26
  M: function M(date, count, useUtc, dateParts) {
32
27
  var month = date[useUtc ? "getUTCMonth" : "getMonth"]();
33
28
  var formatType = FORMAT_TYPES[count];
34
-
35
29
  if (formatType) {
36
30
  return dateParts.getMonthNames(formatType, "format")[month];
37
31
  }
38
-
39
32
  return leftPad((month + 1).toString(), Math.min(count, 2));
40
33
  },
41
34
  L: function L(date, count, useUtc, dateParts) {
42
35
  var month = date[useUtc ? "getUTCMonth" : "getMonth"]();
43
36
  var formatType = FORMAT_TYPES[count];
44
-
45
37
  if (formatType) {
46
38
  return dateParts.getMonthNames(formatType, "standalone")[month];
47
39
  }
48
-
49
40
  return leftPad((month + 1).toString(), Math.min(count, 2));
50
41
  },
51
42
  Q: function Q(date, count, useUtc, dateParts) {
52
43
  var month = date[useUtc ? "getUTCMonth" : "getMonth"]();
53
44
  var quarter = Math.floor(month / 3);
54
45
  var formatType = FORMAT_TYPES[count];
55
-
56
46
  if (formatType) {
57
47
  return dateParts.getQuarterNames(formatType)[quarter];
58
48
  }
59
-
60
49
  return leftPad((quarter + 1).toString(), Math.min(count, 2));
61
50
  },
62
51
  E: function E(date, count, useUtc, dateParts) {
@@ -66,8 +55,8 @@ var LDML_FORMATTERS = {
66
55
  },
67
56
  a: function a(date, count, useUtc, dateParts) {
68
57
  var hours = date[useUtc ? "getUTCHours" : "getHours"](),
69
- period = hours < 12 ? 0 : 1,
70
- formatType = FORMAT_TYPES[count];
58
+ period = hours < 12 ? 0 : 1,
59
+ formatType = FORMAT_TYPES[count];
71
60
  return dateParts.getPeriodNames(formatType)[period];
72
61
  },
73
62
  d: function d(date, count, useUtc) {
@@ -91,69 +80,59 @@ var LDML_FORMATTERS = {
91
80
  },
92
81
  x: function x(date, count, useUtc) {
93
82
  var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset(),
94
- signPart = timezoneOffset > 0 ? "-" : "+",
95
- timezoneOffsetAbs = Math.abs(timezoneOffset),
96
- hours = Math.floor(timezoneOffsetAbs / 60),
97
- minutes = timezoneOffsetAbs % 60,
98
- hoursPart = leftPad(hours.toString(), 2),
99
- minutesPart = leftPad(minutes.toString(), 2);
83
+ signPart = timezoneOffset > 0 ? "-" : "+",
84
+ timezoneOffsetAbs = Math.abs(timezoneOffset),
85
+ hours = Math.floor(timezoneOffsetAbs / 60),
86
+ minutes = timezoneOffsetAbs % 60,
87
+ hoursPart = leftPad(hours.toString(), 2),
88
+ minutesPart = leftPad(minutes.toString(), 2);
100
89
  return signPart + hoursPart + (count >= 3 ? ":" : "") + (count > 1 || minutes ? minutesPart : "");
101
90
  },
102
91
  X: function X(date, count, useUtc) {
103
92
  if (useUtc || !date.getTimezoneOffset()) {
104
93
  return "Z";
105
94
  }
106
-
107
95
  return LDML_FORMATTERS.x(date, count, useUtc);
108
96
  },
109
97
  Z: function Z(date, count, useUtc) {
110
98
  return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc);
111
99
  }
112
100
  };
113
-
114
101
  var getFormatter = function getFormatter(format, dateParts) {
115
102
  return function (date) {
116
103
  var charIndex,
117
- formatter,
118
- _char,
119
- charCount = 0,
120
- separator = "'",
121
- isEscaping = false,
122
- isCurrentCharEqualsNext,
123
- result = "";
124
-
104
+ formatter,
105
+ _char,
106
+ charCount = 0,
107
+ separator = "'",
108
+ isEscaping = false,
109
+ isCurrentCharEqualsNext,
110
+ result = "";
125
111
  if (!date) return null;
126
112
  if (!format) return date;
127
113
  var useUtc = format[format.length - 1] === "Z" || format.slice(-3) === "'Z'";
128
-
129
114
  for (charIndex = 0; charIndex < format.length; charIndex++) {
130
115
  _char = format[charIndex];
131
116
  formatter = LDML_FORMATTERS[_char];
132
117
  isCurrentCharEqualsNext = _char === format[charIndex + 1];
133
118
  charCount++;
134
-
135
119
  if (!isCurrentCharEqualsNext) {
136
120
  if (formatter && !isEscaping) {
137
121
  result += formatter(date, charCount, useUtc, dateParts);
138
122
  }
139
-
140
123
  charCount = 0;
141
124
  }
142
-
143
125
  if (_char === separator && !isCurrentCharEqualsNext) {
144
126
  isEscaping = !isEscaping;
145
127
  } else if (isEscaping || !formatter) {
146
128
  result += _char;
147
129
  }
148
-
149
130
  if (_char === separator && isCurrentCharEqualsNext) {
150
131
  charIndex++;
151
132
  }
152
133
  }
153
-
154
134
  return result;
155
135
  };
156
136
  };
157
-
158
137
  var _getFormatter = getFormatter;
159
138
  exports.getFormatter = _getFormatter;
@@ -9,10 +9,9 @@ exports.getMonthNames = getMonthNames;
9
9
  exports.getPeriodNames = getPeriodNames;
10
10
  exports.getQuarterNames = getQuarterNames;
11
11
  var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
12
- DAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
13
- PERIODS = ["AM", "PM"],
14
- QUARTERS = ["Q1", "Q2", "Q3", "Q4"];
15
-
12
+ DAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
13
+ PERIODS = ["AM", "PM"],
14
+ QUARTERS = ["Q1", "Q2", "Q3", "Q4"];
16
15
  var cutCaptions = function cutCaptions(captions, format) {
17
16
  var lengthByFormat = {
18
17
  abbreviated: 3,
@@ -23,23 +22,18 @@ var cutCaptions = function cutCaptions(captions, format) {
23
22
  return caption.substr(0, lengthByFormat[format]);
24
23
  });
25
24
  };
26
-
27
25
  function getMonthNames(format) {
28
26
  return cutCaptions(MONTHS, format);
29
27
  }
30
-
31
28
  function getDayNames(format) {
32
29
  return cutCaptions(DAYS, format);
33
30
  }
34
-
35
31
  function getQuarterNames(format) {
36
32
  return QUARTERS;
37
33
  }
38
-
39
34
  function getPeriodNames(format) {
40
35
  return PERIODS;
41
36
  }
42
-
43
37
  var _default = {
44
38
  getMonthNames: getMonthNames,
45
39
  getDayNames: getDayNames,
package/lib/filter.js CHANGED
@@ -1,28 +1,20 @@
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["default"] = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
11
  var _date = require("./date.formatter");
17
-
18
12
  var _default_date_names = _interopRequireDefault(require("./default_date_names"));
19
-
20
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
-
22
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
-
24
15
  // const Guid = require("devextreme/core/guid");
25
16
  // const EdmLiteral = require("devextreme/data/odata/utils").EdmLiteral;
17
+
26
18
  var DevExpressData = {
27
19
  utils: {
28
20
  isConjunctiveOperator: function isConjunctiveOperator(condition) {
@@ -35,16 +27,16 @@ var DevExpressData = {
35
27
  return crit[0] === "!" && Array.isArray(crit[1]);
36
28
  }
37
29
  }
38
- }; // const defaultDateNames = DevExpress.localization.date;
30
+ };
31
+
32
+ // const defaultDateNames = DevExpress.localization.date;
39
33
 
40
34
  var DevExpressOData = {
41
35
  pad: function pad(text, length, right) {
42
36
  text = String(text);
43
-
44
37
  while (text.length < length) {
45
38
  text = right ? text + "0" : "0" + text;
46
39
  }
47
-
48
40
  return text;
49
41
  },
50
42
  padLeft2: function padLeft2(text) {
@@ -59,17 +51,13 @@ var DevExpressOData = {
59
51
  // 有可能serializeValueV4函数中if (value instanceof Guid)逻辑被注释掉造成的,放开应该就会自动返回null
60
52
  return null;
61
53
  }
62
-
63
54
  switch (protocolVersion) {
64
55
  case 2:
65
56
  return this.serializeValueV2(value);
66
-
67
57
  case 3:
68
58
  return this.serializeValueV2(value);
69
-
70
59
  case 4:
71
60
  return this.serializeValueV4(value);
72
-
73
61
  default:
74
62
  return this.serializeValueV4(value);
75
63
  }
@@ -77,36 +65,31 @@ var DevExpressOData = {
77
65
  serializeValueV2: function serializeValueV2(value) {
78
66
  if (value instanceof Date) {
79
67
  return this.serializeDate(value);
80
- } // if (value instanceof Guid) {
68
+ }
69
+ // if (value instanceof Guid) {
81
70
  // return "guid'" + value + "'";
82
71
  // }
83
72
  // if (value instanceof EdmLiteral) {
84
73
  // return value.valueOf();
85
74
  // }
86
-
87
-
88
75
  if (typeof value === "string") {
89
76
  return this.serializeString(value);
90
77
  }
91
-
92
78
  return String(value);
93
79
  },
94
80
  serializeValueV4: function serializeValueV4(value) {
95
81
  var _this = this;
96
-
97
82
  if (value instanceof Date) {
98
83
  return this.formatISO8601(value, false, false);
99
- } // if (value instanceof Guid) {
84
+ }
85
+ // if (value instanceof Guid) {
100
86
  // return value.valueOf();
101
87
  // }
102
-
103
-
104
88
  if (Array.isArray(value)) {
105
89
  return "[" + value.map(function (item) {
106
90
  return _this.serializeValueV4(item);
107
91
  }).join(",") + "]";
108
92
  }
109
-
110
93
  return this.serializeValueV2(value);
111
94
  },
112
95
  serializeString: function serializeString(value) {
@@ -116,30 +99,24 @@ var DevExpressOData = {
116
99
  if (!serializationFormat) {
117
100
  return value;
118
101
  }
119
-
120
102
  if (!(value instanceof Date)) {
121
103
  return null;
122
104
  }
123
-
124
105
  if (serializationFormat === "number") {
125
106
  return value && value.valueOf ? value.valueOf() : null;
126
107
  }
127
-
128
108
  return (0, _date.getFormatter)(serializationFormat, _default_date_names["default"])(value);
129
109
  },
130
110
  formatISO8601: function formatISO8601(date, skipZeroTime, skipTimezone) {
131
111
  var bag = [];
132
-
133
112
  var isZeroTime = function isZeroTime() {
134
113
  return date.getUTCHours() + date.getUTCMinutes() + date.getUTCSeconds() + date.getUTCMilliseconds() < 1;
135
114
  };
136
-
137
115
  bag.push(date.getUTCFullYear());
138
116
  bag.push("-");
139
117
  bag.push(this.padLeft2(date.getUTCMonth() + 1));
140
118
  bag.push("-");
141
119
  bag.push(this.padLeft2(date.getUTCDate()));
142
-
143
120
  if (!(skipZeroTime && isZeroTime())) {
144
121
  bag.push("T");
145
122
  bag.push(this.padLeft2(date.getUTCHours()));
@@ -147,21 +124,17 @@ var DevExpressOData = {
147
124
  bag.push(this.padLeft2(date.getUTCMinutes()));
148
125
  bag.push(":");
149
126
  bag.push(this.padLeft2(date.getUTCSeconds()));
150
-
151
127
  if (date.getUTCMilliseconds()) {
152
128
  bag.push(".");
153
129
  bag.push(this.pad(date.getUTCMilliseconds(), 3));
154
130
  }
155
-
156
131
  if (!skipTimezone) {
157
132
  bag.push("Z");
158
133
  }
159
134
  }
160
-
161
135
  return bag.join("");
162
136
  }
163
137
  };
164
-
165
138
  var SteedosFilter = /*#__PURE__*/function () {
166
139
  function SteedosFilter(filters) {
167
140
  var odataProtocolVersion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;
@@ -193,7 +166,6 @@ var SteedosFilter = /*#__PURE__*/function () {
193
166
  "notin": this.createBinaryOperationFormatter("notin")
194
167
  });
195
168
  }
196
-
197
169
  (0, _createClass2["default"])(SteedosFilter, [{
198
170
  key: "createBinaryOperationFormatter",
199
171
  value: function createBinaryOperationFormatter(op) {
@@ -205,22 +177,18 @@ var SteedosFilter = /*#__PURE__*/function () {
205
177
  key: "createStringFuncFormatter",
206
178
  value: function createStringFuncFormatter(op, reverse) {
207
179
  var _this2 = this;
208
-
209
180
  return function (prop, val) {
210
181
  var bag = [op, "("];
211
-
212
182
  if (_this2.forceLowerCase) {
213
183
  // prop = prop.indexOf("tolower(") === -1 ? "tolower(" + prop + ")" : prop;
214
184
  // forceLowerCase时不需要在prop外面增加tolower(..),因为odata-v4-mongodb等包不支持
215
185
  val = val.toLowerCase();
216
186
  }
217
-
218
187
  if (reverse) {
219
188
  bag.push(val, ",", prop);
220
189
  } else {
221
190
  bag.push(prop, ",", val);
222
191
  }
223
-
224
192
  bag.push(")");
225
193
  return bag.join("");
226
194
  };
@@ -229,28 +197,24 @@ var SteedosFilter = /*#__PURE__*/function () {
229
197
  key: "compileUnary",
230
198
  value: function compileUnary(criteria) {
231
199
  var op = criteria[0],
232
- crit = this.compileCore(criteria[1]);
233
-
200
+ crit = this.compileCore(criteria[1]);
234
201
  if (op === "!") {
235
202
  return "not (" + crit + ")";
236
203
  }
237
-
238
204
  throw new Error("E4003");
239
205
  }
240
206
  }, {
241
207
  key: "compileGroup",
242
208
  value: function compileGroup(criteria) {
243
209
  var _this3 = this;
244
-
245
210
  var bag = [],
246
- groupOperator,
247
- nextGroupOperator;
211
+ groupOperator,
212
+ nextGroupOperator;
248
213
  criteria.forEach(function (criterion) {
249
214
  if (Array.isArray(criterion)) {
250
215
  if (bag.length > 1 && groupOperator !== nextGroupOperator) {
251
216
  throw new Error("E4019");
252
217
  }
253
-
254
218
  bag.push("(" + _this3.compileCore(criterion) + ")");
255
219
  groupOperator = nextGroupOperator;
256
220
  nextGroupOperator = "and";
@@ -265,15 +229,13 @@ var SteedosFilter = /*#__PURE__*/function () {
265
229
  value: function compileBinary(criteria) {
266
230
  criteria = DevExpressData.utils.normalizeBinaryCriterion(criteria);
267
231
  var op = criteria[1],
268
- formatters = this.protocolVersion === 4 ? this.formattersV4 : this.formattersV2,
269
- formatter = formatters[op.toLowerCase()];
270
-
232
+ formatters = this.protocolVersion === 4 ? this.formattersV4 : this.formattersV2,
233
+ formatter = formatters[op.toLowerCase()];
271
234
  if (!formatter) {
272
235
  throw new Error("E4003");
273
236
  }
274
-
275
237
  var fieldName = criteria[0],
276
- value = criteria[2];
238
+ value = criteria[2];
277
239
  return formatter(DevExpressOData.serializePropName(fieldName), op === 'in' || op === 'notin' ? value : DevExpressOData.serializeValue(value, this.protocolVersion));
278
240
  }
279
241
  }, {
@@ -282,15 +244,12 @@ var SteedosFilter = /*#__PURE__*/function () {
282
244
  if (!criteria || criteria.length === 0) {
283
245
  return "";
284
246
  }
285
-
286
247
  if (Array.isArray(criteria[0])) {
287
248
  return this.compileGroup(criteria);
288
249
  }
289
-
290
250
  if (DevExpressData.utils.isUnaryOperation(criteria)) {
291
251
  return this.compileUnary(criteria);
292
252
  }
293
-
294
253
  return this.compileBinary(criteria);
295
254
  }
296
255
  }, {
@@ -304,6 +263,5 @@ var SteedosFilter = /*#__PURE__*/function () {
304
263
  }]);
305
264
  return SteedosFilter;
306
265
  }();
307
-
308
266
  var _default = SteedosFilter;
309
267
  exports["default"] = _default;