@fileverse-dev/fortune-core 1.3.5 → 1.3.6-right

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.
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.detectDateFormat = detectDateFormat;
6
7
  exports.detectErrorFromValue = detectErrorFromValue;
7
8
  exports.diff = diff;
8
9
  exports.errorMessagesFromValue = exports.error = void 0;
@@ -56,33 +57,296 @@ function isRealNum(val) {
56
57
  }
57
58
  return !Number.isNaN(Number(val));
58
59
  }
59
- function checkDateTime(str) {
60
- var reg1 = /^(\d{4})-(\d{1,2})-(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/;
61
- var reg2 = /^(\d{4})\/(\d{1,2})\/(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/;
62
- if (!reg1.test(str) && !reg2.test(str)) {
63
- return false;
60
+ var MONTH_NAME_MAP = {
61
+ january: 1,
62
+ february: 2,
63
+ march: 3,
64
+ april: 4,
65
+ may: 5,
66
+ june: 6,
67
+ july: 7,
68
+ august: 8,
69
+ september: 9,
70
+ october: 10,
71
+ november: 11,
72
+ december: 12,
73
+ jan: 1,
74
+ feb: 2,
75
+ mar: 3,
76
+ apr: 4,
77
+ jun: 6,
78
+ jul: 7,
79
+ aug: 8,
80
+ sep: 9,
81
+ oct: 10,
82
+ nov: 11,
83
+ dec: 12
84
+ };
85
+ var MONTH_NAMES_RE = "january|february|march|april|may|june|july|august|september|october|november|december|jan|feb|mar|apr|jun|jul|aug|sep|oct|nov|dec";
86
+ var MONTH_ABBR_RE = "jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec";
87
+ function isValidDateParts(year, month, day) {
88
+ if (year < 1900) return false;
89
+ if (month < 1 || month > 12) return false;
90
+ if (day < 1 || day > 31) return false;
91
+ if (month === 2) {
92
+ var isLeap = new Date(year, 1, 29).getDate() === 29;
93
+ if (isLeap && day > 29) return false;
94
+ if (!isLeap && day > 28) return false;
64
95
  }
65
- var year = Number(RegExp.$1);
66
- var month = Number(RegExp.$2);
67
- var day = Number(RegExp.$3);
68
- if (year < 1900) {
69
- return false;
96
+ if ([4, 6, 9, 11].includes(month) && day > 30) return false;
97
+ return true;
98
+ }
99
+ function detectDateFormat(str) {
100
+ if (!str || str.toString().length < 5) return null;
101
+ var s = str.toString().trim();
102
+ var m;
103
+ m = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(s);
104
+ if (m) {
105
+ var y = +m[1];
106
+ var mo = +m[2];
107
+ var d = +m[3];
108
+ var h = +m[4];
109
+ var mi = +m[5];
110
+ var sec = m[6] != null ? +m[6] : 0;
111
+ if (isValidDateParts(y, mo, d)) {
112
+ return {
113
+ year: y,
114
+ month: mo,
115
+ day: d,
116
+ hours: h,
117
+ minutes: mi,
118
+ seconds: sec,
119
+ formatType: "yyyy-MM-ddTHH:mm"
120
+ };
121
+ }
70
122
  }
71
- if (month > 12) {
72
- return false;
123
+ m = /^(\d{4})-(\d{1,2})-(\d{1,2})(?:\s(\d{1,2}):(\d{2})(?::(\d{2}))?)?$/.exec(s);
124
+ if (m) {
125
+ var y = +m[1];
126
+ var mo = +m[2];
127
+ var d = +m[3];
128
+ if (isValidDateParts(y, mo, d)) {
129
+ var h = m[4] != null ? +m[4] : 0;
130
+ var mi = m[5] != null ? +m[5] : 0;
131
+ var sec = m[6] != null ? +m[6] : 0;
132
+ return {
133
+ year: y,
134
+ month: mo,
135
+ day: d,
136
+ hours: h,
137
+ minutes: mi,
138
+ seconds: sec,
139
+ formatType: m[4] != null ? "yyyy-MM-dd HH:mm" : "yyyy-MM-dd"
140
+ };
141
+ }
73
142
  }
74
- if (day > 31) {
75
- return false;
143
+ m = /^(\d{4})\/(\d{1,2})\/(\d{1,2})(?:\s(\d{1,2}):(\d{2})(?::(\d{2}))?)?$/.exec(s);
144
+ if (m) {
145
+ var y = +m[1];
146
+ var mo = +m[2];
147
+ var d = +m[3];
148
+ if (isValidDateParts(y, mo, d)) {
149
+ var h = m[4] != null ? +m[4] : 0;
150
+ var mi = m[5] != null ? +m[5] : 0;
151
+ var sec = m[6] != null ? +m[6] : 0;
152
+ return {
153
+ year: y,
154
+ month: mo,
155
+ day: d,
156
+ hours: h,
157
+ minutes: mi,
158
+ seconds: sec,
159
+ formatType: m[4] != null ? "yyyy/MM/dd HH:mm" : "yyyy/MM/dd"
160
+ };
161
+ }
76
162
  }
77
- if (month === 2) {
78
- if (new Date(year, 1, 29).getDate() === 29 && day > 29) {
79
- return false;
163
+ m = /^(\d{4})\.(\d{1,2})\.(\d{1,2})$/.exec(s);
164
+ if (m) {
165
+ var y = +m[1];
166
+ var mo = +m[2];
167
+ var d = +m[3];
168
+ if (isValidDateParts(y, mo, d)) {
169
+ return {
170
+ year: y,
171
+ month: mo,
172
+ day: d,
173
+ hours: 0,
174
+ minutes: 0,
175
+ seconds: 0,
176
+ formatType: "yyyy.MM.dd"
177
+ };
80
178
  }
81
- if (new Date(year, 1, 29).getDate() !== 29 && day > 28) {
82
- return false;
179
+ }
180
+ m = /^(\d{1,2})\/(\d{1,2})\/(\d{4})\s(\d{1,2}):(\d{2})\s?(AM|PM)$/i.exec(s);
181
+ if (m) {
182
+ var p1 = +m[1];
183
+ var p2 = +m[2];
184
+ var y = +m[3];
185
+ var h = +m[4];
186
+ var mi = +m[5];
187
+ var ampm = m[6].toUpperCase();
188
+ if (p1 <= 12 && isValidDateParts(y, p1, p2)) {
189
+ var actualH = h;
190
+ if (ampm === "PM" && h !== 12) actualH = h + 12;
191
+ if (ampm === "AM" && h === 12) actualH = 0;
192
+ return {
193
+ year: y,
194
+ month: p1,
195
+ day: p2,
196
+ hours: actualH,
197
+ minutes: mi,
198
+ seconds: 0,
199
+ formatType: "MM/dd/yyyy h:mm AM/PM"
200
+ };
83
201
  }
84
202
  }
85
- return true;
203
+ m = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/.exec(s);
204
+ if (m) {
205
+ var p1 = +m[1];
206
+ var p2 = +m[2];
207
+ var y = +m[3];
208
+ if (p1 > 12 && isValidDateParts(y, p2, p1)) {
209
+ return {
210
+ year: y,
211
+ month: p2,
212
+ day: p1,
213
+ hours: 0,
214
+ minutes: 0,
215
+ seconds: 0,
216
+ formatType: "dd/MM/yyyy"
217
+ };
218
+ }
219
+ if (p2 > 12 && p1 <= 12 && isValidDateParts(y, p1, p2)) {
220
+ var formatType = m[1].length === 1 ? "M/d/yyyy" : "MM/dd/yyyy";
221
+ return {
222
+ year: y,
223
+ month: p1,
224
+ day: p2,
225
+ hours: 0,
226
+ minutes: 0,
227
+ seconds: 0,
228
+ formatType: formatType
229
+ };
230
+ }
231
+ if (p1 <= 12 && p2 <= 31 && isValidDateParts(y, p1, p2)) {
232
+ var formatType = m[1].length === 1 ? "M/d/yyyy" : "MM/dd/yyyy";
233
+ return {
234
+ year: y,
235
+ month: p1,
236
+ day: p2,
237
+ hours: 0,
238
+ minutes: 0,
239
+ seconds: 0,
240
+ formatType: formatType
241
+ };
242
+ }
243
+ }
244
+ m = /^(\d{2})\/(\d{2})\/(\d{2})$/.exec(s);
245
+ if (m) {
246
+ var p1 = +m[1];
247
+ var p2 = +m[2];
248
+ var y = 2000 + +m[3];
249
+ if (p1 <= 12 && p2 <= 31 && isValidDateParts(y, p1, p2)) {
250
+ return {
251
+ year: y,
252
+ month: p1,
253
+ day: p2,
254
+ hours: 0,
255
+ minutes: 0,
256
+ seconds: 0,
257
+ formatType: "MM/dd/yy"
258
+ };
259
+ }
260
+ }
261
+ m = /^(\d{1,2})-(\d{1,2})-(\d{4})$/.exec(s);
262
+ if (m) {
263
+ var p1 = +m[1];
264
+ var p2 = +m[2];
265
+ var y = +m[3];
266
+ if (p1 > 12 && isValidDateParts(y, p2, p1)) {
267
+ return {
268
+ year: y,
269
+ month: p2,
270
+ day: p1,
271
+ hours: 0,
272
+ minutes: 0,
273
+ seconds: 0,
274
+ formatType: "dd-MM-yyyy"
275
+ };
276
+ }
277
+ }
278
+ m = /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/.exec(s);
279
+ if (m) {
280
+ var p1 = +m[1];
281
+ var p2 = +m[2];
282
+ var y = +m[3];
283
+ if (p1 > 12 && isValidDateParts(y, p2, p1)) {
284
+ return {
285
+ year: y,
286
+ month: p2,
287
+ day: p1,
288
+ hours: 0,
289
+ minutes: 0,
290
+ seconds: 0,
291
+ formatType: "dd.MM.yyyy"
292
+ };
293
+ }
294
+ }
295
+ m = new RegExp("^(".concat(MONTH_NAMES_RE, ")\\s+(\\d{1,2}),?\\s+(\\d{4})$"), "i").exec(s);
296
+ if (m) {
297
+ var mo = MONTH_NAME_MAP[m[1].toLowerCase()];
298
+ var d = +m[2];
299
+ var y = +m[3];
300
+ if (mo && isValidDateParts(y, mo, d)) {
301
+ return {
302
+ year: y,
303
+ month: mo,
304
+ day: d,
305
+ hours: 0,
306
+ minutes: 0,
307
+ seconds: 0,
308
+ formatType: "named"
309
+ };
310
+ }
311
+ }
312
+ m = new RegExp("^(\\d{1,2})\\s+(".concat(MONTH_NAMES_RE, ")\\s+(\\d{4})$"), "i").exec(s);
313
+ if (m) {
314
+ var d = +m[1];
315
+ var mo = MONTH_NAME_MAP[m[2].toLowerCase()];
316
+ var y = +m[3];
317
+ if (mo && isValidDateParts(y, mo, d)) {
318
+ return {
319
+ year: y,
320
+ month: mo,
321
+ day: d,
322
+ hours: 0,
323
+ minutes: 0,
324
+ seconds: 0,
325
+ formatType: "named"
326
+ };
327
+ }
328
+ }
329
+ m = new RegExp("^(".concat(MONTH_ABBR_RE, ")-(\\d{1,2})-(\\d{4})$"), "i").exec(s);
330
+ if (m) {
331
+ var mo = MONTH_NAME_MAP[m[1].toLowerCase()];
332
+ var d = +m[2];
333
+ var y = +m[3];
334
+ if (mo && isValidDateParts(y, mo, d)) {
335
+ return {
336
+ year: y,
337
+ month: mo,
338
+ day: d,
339
+ hours: 0,
340
+ minutes: 0,
341
+ seconds: 0,
342
+ formatType: "named"
343
+ };
344
+ }
345
+ }
346
+ return null;
347
+ }
348
+ function checkDateTime(str) {
349
+ return detectDateFormat(str) !== null;
86
350
  }
87
351
  function isdatetime(s) {
88
352
  if (s === null || s.toString().length < 5) {
@@ -8,7 +8,6 @@ exports.handlePastedTable = handlePastedTable;
8
8
  var _lodash = _interopRequireDefault(require("lodash"));
9
9
  var _locale = require("./locale");
10
10
  var _modules = require("./modules");
11
- var _format = require("./modules/format");
12
11
  var _utils = require("./utils");
13
12
  var _api = require("./api");
14
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -135,8 +134,7 @@ function brToNewline(str) {
135
134
  return str.replace(/<br\s*\/?>/gi, "\n");
136
135
  }
137
136
  var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
138
- var _a;
139
- var _b, _c, _d, _e;
137
+ var _a, _b, _c, _d;
140
138
  var cell = {};
141
139
  var rawText = (td.innerText || td.innerHTML || "").trim();
142
140
  var isLineBreak = rawText.includes("<br />");
@@ -154,22 +152,24 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
154
152
  })
155
153
  });
156
154
  } else {
157
- var mask = (0, _format.genarate)(rawText);
158
- _a = mask || [], cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
155
+ cell.v = rawText;
156
+ cell.m = rawText;
157
+ cell.ct = {
158
+ fa: "General",
159
+ t: "g"
160
+ };
159
161
  if (HEX_REGEX.test(rawText)) {
160
162
  cell.ct = {
161
163
  fa: "@",
162
164
  t: "s"
163
165
  };
164
- cell.m = rawText;
165
- cell.v = rawText;
166
166
  }
167
167
  }
168
- if (((_b = td.style) === null || _b === void 0 ? void 0 : _b.alignItems) === "center") {
168
+ if (((_a = td.style) === null || _a === void 0 ? void 0 : _a.alignItems) === "center") {
169
169
  cell.vt = 0;
170
- } else if (((_c = td.style) === null || _c === void 0 ? void 0 : _c.alignItems) === "flex-end") {
170
+ } else if (((_b = td.style) === null || _b === void 0 ? void 0 : _b.alignItems) === "flex-end") {
171
171
  cell.vt = 2;
172
- } else if (((_d = td.style) === null || _d === void 0 ? void 0 : _d.alignItems) === "flex-start") {
172
+ } else if (((_c = td.style) === null || _c === void 0 ? void 0 : _c.alignItems) === "flex-start") {
173
173
  cell.vt = 1;
174
174
  }
175
175
  var styleBlock = typeof classStyles[".".concat(td.className)] === "string" ? classStyles[".".concat(td.className)] : "";
@@ -196,7 +196,7 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
196
196
  } else {
197
197
  cell.ht = 1;
198
198
  }
199
- if (((_e = td === null || td === void 0 ? void 0 : td.style) === null || _e === void 0 ? void 0 : _e["overflow-wrap"]) === "anywhere") {
199
+ if (((_d = td === null || td === void 0 ? void 0 : td.style) === null || _d === void 0 ? void 0 : _d["overflow-wrap"]) === "anywhere") {
200
200
  cell.tb = "2";
201
201
  } else {
202
202
  cell.tb = "2";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fileverse-dev/fortune-core",
3
- "version": "1.3.5",
3
+ "version": "1.3.6-right",
4
4
  "main": "lib/index.js",
5
5
  "module": "es/index.js",
6
6
  "typings": "lib/index.d.ts",