@fileverse-dev/fortune-core 1.3.5-hyper-2 → 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.
@@ -39,33 +39,296 @@ export function isRealNum(val) {
39
39
  }
40
40
  return !Number.isNaN(Number(val));
41
41
  }
42
- function checkDateTime(str) {
43
- var reg1 = /^(\d{4})-(\d{1,2})-(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/;
44
- var reg2 = /^(\d{4})\/(\d{1,2})\/(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/;
45
- if (!reg1.test(str) && !reg2.test(str)) {
46
- return false;
42
+ var MONTH_NAME_MAP = {
43
+ january: 1,
44
+ february: 2,
45
+ march: 3,
46
+ april: 4,
47
+ may: 5,
48
+ june: 6,
49
+ july: 7,
50
+ august: 8,
51
+ september: 9,
52
+ october: 10,
53
+ november: 11,
54
+ december: 12,
55
+ jan: 1,
56
+ feb: 2,
57
+ mar: 3,
58
+ apr: 4,
59
+ jun: 6,
60
+ jul: 7,
61
+ aug: 8,
62
+ sep: 9,
63
+ oct: 10,
64
+ nov: 11,
65
+ dec: 12
66
+ };
67
+ 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";
68
+ var MONTH_ABBR_RE = "jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec";
69
+ function isValidDateParts(year, month, day) {
70
+ if (year < 1900) return false;
71
+ if (month < 1 || month > 12) return false;
72
+ if (day < 1 || day > 31) return false;
73
+ if (month === 2) {
74
+ var isLeap = new Date(year, 1, 29).getDate() === 29;
75
+ if (isLeap && day > 29) return false;
76
+ if (!isLeap && day > 28) return false;
47
77
  }
48
- var year = Number(RegExp.$1);
49
- var month = Number(RegExp.$2);
50
- var day = Number(RegExp.$3);
51
- if (year < 1900) {
52
- return false;
78
+ if ([4, 6, 9, 11].includes(month) && day > 30) return false;
79
+ return true;
80
+ }
81
+ export function detectDateFormat(str) {
82
+ if (!str || str.toString().length < 5) return null;
83
+ var s = str.toString().trim();
84
+ var m;
85
+ m = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(s);
86
+ if (m) {
87
+ var y = +m[1];
88
+ var mo = +m[2];
89
+ var d = +m[3];
90
+ var h = +m[4];
91
+ var mi = +m[5];
92
+ var sec = m[6] != null ? +m[6] : 0;
93
+ if (isValidDateParts(y, mo, d)) {
94
+ return {
95
+ year: y,
96
+ month: mo,
97
+ day: d,
98
+ hours: h,
99
+ minutes: mi,
100
+ seconds: sec,
101
+ formatType: "yyyy-MM-ddTHH:mm"
102
+ };
103
+ }
53
104
  }
54
- if (month > 12) {
55
- return false;
105
+ m = /^(\d{4})-(\d{1,2})-(\d{1,2})(?:\s(\d{1,2}):(\d{2})(?::(\d{2}))?)?$/.exec(s);
106
+ if (m) {
107
+ var y = +m[1];
108
+ var mo = +m[2];
109
+ var d = +m[3];
110
+ if (isValidDateParts(y, mo, d)) {
111
+ var h = m[4] != null ? +m[4] : 0;
112
+ var mi = m[5] != null ? +m[5] : 0;
113
+ var sec = m[6] != null ? +m[6] : 0;
114
+ return {
115
+ year: y,
116
+ month: mo,
117
+ day: d,
118
+ hours: h,
119
+ minutes: mi,
120
+ seconds: sec,
121
+ formatType: m[4] != null ? "yyyy-MM-dd HH:mm" : "yyyy-MM-dd"
122
+ };
123
+ }
56
124
  }
57
- if (day > 31) {
58
- return false;
125
+ m = /^(\d{4})\/(\d{1,2})\/(\d{1,2})(?:\s(\d{1,2}):(\d{2})(?::(\d{2}))?)?$/.exec(s);
126
+ if (m) {
127
+ var y = +m[1];
128
+ var mo = +m[2];
129
+ var d = +m[3];
130
+ if (isValidDateParts(y, mo, d)) {
131
+ var h = m[4] != null ? +m[4] : 0;
132
+ var mi = m[5] != null ? +m[5] : 0;
133
+ var sec = m[6] != null ? +m[6] : 0;
134
+ return {
135
+ year: y,
136
+ month: mo,
137
+ day: d,
138
+ hours: h,
139
+ minutes: mi,
140
+ seconds: sec,
141
+ formatType: m[4] != null ? "yyyy/MM/dd HH:mm" : "yyyy/MM/dd"
142
+ };
143
+ }
59
144
  }
60
- if (month === 2) {
61
- if (new Date(year, 1, 29).getDate() === 29 && day > 29) {
62
- return false;
145
+ m = /^(\d{4})\.(\d{1,2})\.(\d{1,2})$/.exec(s);
146
+ if (m) {
147
+ var y = +m[1];
148
+ var mo = +m[2];
149
+ var d = +m[3];
150
+ if (isValidDateParts(y, mo, d)) {
151
+ return {
152
+ year: y,
153
+ month: mo,
154
+ day: d,
155
+ hours: 0,
156
+ minutes: 0,
157
+ seconds: 0,
158
+ formatType: "yyyy.MM.dd"
159
+ };
63
160
  }
64
- if (new Date(year, 1, 29).getDate() !== 29 && day > 28) {
65
- return false;
161
+ }
162
+ m = /^(\d{1,2})\/(\d{1,2})\/(\d{4})\s(\d{1,2}):(\d{2})\s?(AM|PM)$/i.exec(s);
163
+ if (m) {
164
+ var p1 = +m[1];
165
+ var p2 = +m[2];
166
+ var y = +m[3];
167
+ var h = +m[4];
168
+ var mi = +m[5];
169
+ var ampm = m[6].toUpperCase();
170
+ if (p1 <= 12 && isValidDateParts(y, p1, p2)) {
171
+ var actualH = h;
172
+ if (ampm === "PM" && h !== 12) actualH = h + 12;
173
+ if (ampm === "AM" && h === 12) actualH = 0;
174
+ return {
175
+ year: y,
176
+ month: p1,
177
+ day: p2,
178
+ hours: actualH,
179
+ minutes: mi,
180
+ seconds: 0,
181
+ formatType: "MM/dd/yyyy h:mm AM/PM"
182
+ };
66
183
  }
67
184
  }
68
- return true;
185
+ m = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/.exec(s);
186
+ if (m) {
187
+ var p1 = +m[1];
188
+ var p2 = +m[2];
189
+ var y = +m[3];
190
+ if (p1 > 12 && isValidDateParts(y, p2, p1)) {
191
+ return {
192
+ year: y,
193
+ month: p2,
194
+ day: p1,
195
+ hours: 0,
196
+ minutes: 0,
197
+ seconds: 0,
198
+ formatType: "dd/MM/yyyy"
199
+ };
200
+ }
201
+ if (p2 > 12 && p1 <= 12 && isValidDateParts(y, p1, p2)) {
202
+ var formatType = m[1].length === 1 ? "M/d/yyyy" : "MM/dd/yyyy";
203
+ return {
204
+ year: y,
205
+ month: p1,
206
+ day: p2,
207
+ hours: 0,
208
+ minutes: 0,
209
+ seconds: 0,
210
+ formatType: formatType
211
+ };
212
+ }
213
+ if (p1 <= 12 && p2 <= 31 && isValidDateParts(y, p1, p2)) {
214
+ var formatType = m[1].length === 1 ? "M/d/yyyy" : "MM/dd/yyyy";
215
+ return {
216
+ year: y,
217
+ month: p1,
218
+ day: p2,
219
+ hours: 0,
220
+ minutes: 0,
221
+ seconds: 0,
222
+ formatType: formatType
223
+ };
224
+ }
225
+ }
226
+ m = /^(\d{2})\/(\d{2})\/(\d{2})$/.exec(s);
227
+ if (m) {
228
+ var p1 = +m[1];
229
+ var p2 = +m[2];
230
+ var y = 2000 + +m[3];
231
+ if (p1 <= 12 && p2 <= 31 && isValidDateParts(y, p1, p2)) {
232
+ return {
233
+ year: y,
234
+ month: p1,
235
+ day: p2,
236
+ hours: 0,
237
+ minutes: 0,
238
+ seconds: 0,
239
+ formatType: "MM/dd/yy"
240
+ };
241
+ }
242
+ }
243
+ m = /^(\d{1,2})-(\d{1,2})-(\d{4})$/.exec(s);
244
+ if (m) {
245
+ var p1 = +m[1];
246
+ var p2 = +m[2];
247
+ var y = +m[3];
248
+ if (p1 > 12 && isValidDateParts(y, p2, p1)) {
249
+ return {
250
+ year: y,
251
+ month: p2,
252
+ day: p1,
253
+ hours: 0,
254
+ minutes: 0,
255
+ seconds: 0,
256
+ formatType: "dd-MM-yyyy"
257
+ };
258
+ }
259
+ }
260
+ m = /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/.exec(s);
261
+ if (m) {
262
+ var p1 = +m[1];
263
+ var p2 = +m[2];
264
+ var y = +m[3];
265
+ if (p1 > 12 && isValidDateParts(y, p2, p1)) {
266
+ return {
267
+ year: y,
268
+ month: p2,
269
+ day: p1,
270
+ hours: 0,
271
+ minutes: 0,
272
+ seconds: 0,
273
+ formatType: "dd.MM.yyyy"
274
+ };
275
+ }
276
+ }
277
+ m = new RegExp("^(".concat(MONTH_NAMES_RE, ")\\s+(\\d{1,2}),?\\s+(\\d{4})$"), "i").exec(s);
278
+ if (m) {
279
+ var mo = MONTH_NAME_MAP[m[1].toLowerCase()];
280
+ var d = +m[2];
281
+ var y = +m[3];
282
+ if (mo && isValidDateParts(y, mo, d)) {
283
+ return {
284
+ year: y,
285
+ month: mo,
286
+ day: d,
287
+ hours: 0,
288
+ minutes: 0,
289
+ seconds: 0,
290
+ formatType: "named"
291
+ };
292
+ }
293
+ }
294
+ m = new RegExp("^(\\d{1,2})\\s+(".concat(MONTH_NAMES_RE, ")\\s+(\\d{4})$"), "i").exec(s);
295
+ if (m) {
296
+ var d = +m[1];
297
+ var mo = MONTH_NAME_MAP[m[2].toLowerCase()];
298
+ var y = +m[3];
299
+ if (mo && isValidDateParts(y, mo, d)) {
300
+ return {
301
+ year: y,
302
+ month: mo,
303
+ day: d,
304
+ hours: 0,
305
+ minutes: 0,
306
+ seconds: 0,
307
+ formatType: "named"
308
+ };
309
+ }
310
+ }
311
+ m = new RegExp("^(".concat(MONTH_ABBR_RE, ")-(\\d{1,2})-(\\d{4})$"), "i").exec(s);
312
+ if (m) {
313
+ var mo = MONTH_NAME_MAP[m[1].toLowerCase()];
314
+ var d = +m[2];
315
+ var y = +m[3];
316
+ if (mo && isValidDateParts(y, mo, d)) {
317
+ return {
318
+ year: y,
319
+ month: mo,
320
+ day: d,
321
+ hours: 0,
322
+ minutes: 0,
323
+ seconds: 0,
324
+ formatType: "named"
325
+ };
326
+ }
327
+ }
328
+ return null;
329
+ }
330
+ function checkDateTime(str) {
331
+ return detectDateFormat(str) !== null;
69
332
  }
70
333
  export function isdatetime(s) {
71
334
  if (s === null || s.toString().length < 5) {
@@ -12,7 +12,6 @@ var __assign = this && this.__assign || function () {
12
12
  import _ from "lodash";
13
13
  import { locale } from "./locale";
14
14
  import { getQKBorder, saveHyperlink } from "./modules";
15
- import { genarate } from "./modules/format";
16
15
  import { getSheetIndex } from "./utils";
17
16
  import { setRowHeight, setColumnWidth } from "./api";
18
17
  export var DEFAULT_FONT_SIZE = 12;
@@ -127,8 +126,7 @@ function brToNewline(str) {
127
126
  return str.replace(/<br\s*\/?>/gi, "\n");
128
127
  }
129
128
  var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
130
- var _a;
131
- var _b, _c, _d, _e;
129
+ var _a, _b, _c, _d;
132
130
  var cell = {};
133
131
  var rawText = (td.innerText || td.innerHTML || "").trim();
134
132
  var isLineBreak = rawText.includes("<br />");
@@ -146,22 +144,24 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
146
144
  })
147
145
  });
148
146
  } else {
149
- var mask = genarate(rawText);
150
- _a = mask || [], cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
147
+ cell.v = rawText;
148
+ cell.m = rawText;
149
+ cell.ct = {
150
+ fa: "General",
151
+ t: "g"
152
+ };
151
153
  if (HEX_REGEX.test(rawText)) {
152
154
  cell.ct = {
153
155
  fa: "@",
154
156
  t: "s"
155
157
  };
156
- cell.m = rawText;
157
- cell.v = rawText;
158
158
  }
159
159
  }
160
- if (((_b = td.style) === null || _b === void 0 ? void 0 : _b.alignItems) === "center") {
160
+ if (((_a = td.style) === null || _a === void 0 ? void 0 : _a.alignItems) === "center") {
161
161
  cell.vt = 0;
162
- } else if (((_c = td.style) === null || _c === void 0 ? void 0 : _c.alignItems) === "flex-end") {
162
+ } else if (((_b = td.style) === null || _b === void 0 ? void 0 : _b.alignItems) === "flex-end") {
163
163
  cell.vt = 2;
164
- } else if (((_d = td.style) === null || _d === void 0 ? void 0 : _d.alignItems) === "flex-start") {
164
+ } else if (((_c = td.style) === null || _c === void 0 ? void 0 : _c.alignItems) === "flex-start") {
165
165
  cell.vt = 1;
166
166
  }
167
167
  var styleBlock = typeof classStyles[".".concat(td.className)] === "string" ? classStyles[".".concat(td.className)] : "";
@@ -188,7 +188,7 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
188
188
  } else {
189
189
  cell.ht = 1;
190
190
  }
191
- if (((_e = td === null || td === void 0 ? void 0 : td.style) === null || _e === void 0 ? void 0 : _e["overflow-wrap"]) === "anywhere") {
191
+ if (((_d = td === null || td === void 0 ? void 0 : td.style) === null || _d === void 0 ? void 0 : _d["overflow-wrap"]) === "anywhere") {
192
192
  cell.tb = "2";
193
193
  } else {
194
194
  cell.tb = "2";
package/lib/canvas.js CHANGED
@@ -1019,7 +1019,7 @@ var Canvas = exports.Canvas = function () {
1019
1019
  renderCtx.clip();
1020
1020
  renderCtx.scale(this.sheetCtx.zoomRatio, this.sheetCtx.zoomRatio);
1021
1021
  var measureText = (0, _text.getMeasureText)(value, renderCtx, this.sheetCtx);
1022
- var textMetrics = measureText.width + 14;
1022
+ var textMetrics = measureText.width + 18;
1023
1023
  var oneLineTextHeight = measureText.actualBoundingBoxDescent + measureText.actualBoundingBoxAscent;
1024
1024
  var horizonAlignPos = pos_x + space_width;
1025
1025
  if (horizonAlign === 0) {
@@ -220,14 +220,13 @@ var handleFormulaOnPaste = function handleFormulaOnPaste(ctx, d) {
220
220
  }
221
221
  };
222
222
  function pasteHandler(ctx, data, borderInfo) {
223
- var _a;
224
- var _b, _c, _d, _e, _f, _g;
223
+ var _a, _b, _c, _d, _e, _f;
225
224
  if (ctx.luckysheet_selection_range) {
226
225
  ctx.luckysheet_selection_range = [];
227
226
  }
228
227
  var allowEdit = (0, _utils.isAllowEdit)(ctx);
229
228
  if (!allowEdit || ctx.isFlvReadOnly) return;
230
- if (((_c = (_b = ctx.luckysheet_select_save) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) !== 1) {
229
+ if (((_b = (_a = ctx.luckysheet_select_save) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) !== 1) {
231
230
  return;
232
231
  }
233
232
  if (_typeof(data) === "object") {
@@ -276,7 +275,7 @@ function pasteHandler(ctx, data, borderInfo) {
276
275
  currentRowLen = cfg.rowlen[h];
277
276
  }
278
277
  for (var c = minc; c <= maxc; c += 1) {
279
- if ((_d = x === null || x === void 0 ? void 0 : x[c]) === null || _d === void 0 ? void 0 : _d.mc) {
278
+ if ((_c = x === null || x === void 0 ? void 0 : x[c]) === null || _c === void 0 ? void 0 : _c.mc) {
280
279
  if ("rs" in x[c].mc) {
281
280
  delete cfg.merge["".concat(x[c].mc.r, "_").concat(x[c].mc.c)];
282
281
  }
@@ -287,7 +286,7 @@ function pasteHandler(ctx, data, borderInfo) {
287
286
  value = data[h - minh][c - minc];
288
287
  }
289
288
  x[c] = value;
290
- if (value != null && ((_e = x === null || x === void 0 ? void 0 : x[c]) === null || _e === void 0 ? void 0 : _e.mc)) {
289
+ if (value != null && ((_d = x === null || x === void 0 ? void 0 : x[c]) === null || _d === void 0 ? void 0 : _d.mc)) {
291
290
  if (x[c].mc.rs != null) {
292
291
  x[c].mc.r = h;
293
292
  x[c].mc.c = c;
@@ -314,7 +313,7 @@ function pasteHandler(ctx, data, borderInfo) {
314
313
  b: borderInfo["".concat(h - minh, "_").concat(c - minc)].b
315
314
  }
316
315
  };
317
- (_f = cfg.borderInfo) === null || _f === void 0 ? void 0 : _f.push(bd_obj);
316
+ (_e = cfg.borderInfo) === null || _e === void 0 ? void 0 : _e.push(bd_obj);
318
317
  }
319
318
  }
320
319
  d[h] = x;
@@ -346,7 +345,7 @@ function pasteHandler(ctx, data, borderInfo) {
346
345
  }
347
346
  var d = (0, _context.getFlowdata)(ctx);
348
347
  if (!d) return;
349
- var last = (_g = ctx.luckysheet_select_save) === null || _g === void 0 ? void 0 : _g[ctx.luckysheet_select_save.length - 1];
348
+ var last = (_f = ctx.luckysheet_select_save) === null || _f === void 0 ? void 0 : _f[ctx.luckysheet_select_save.length - 1];
350
349
  if (!last) return;
351
350
  var curR = last.row == null ? 0 : last.row[0];
352
351
  var curC = last.column == null ? 0 : last.column[0];
@@ -387,9 +386,23 @@ function pasteHandler(ctx, data, borderInfo) {
387
386
  }
388
387
  }
389
388
  if (originCell) {
390
- originCell.v = isUrl ? originalValueStr : value;
389
+ if (originCell.ct && originCell.ct.t === "d" && !isUrl) {
390
+ var df = (0, _validation.detectDateFormat)(originalValueStr);
391
+ if (df) {
392
+ var dateObj = new Date(df.year, df.month - 1, df.day, df.hours, df.minutes, df.seconds);
393
+ originCell.v = (0, _format.datenum_local)(dateObj);
394
+ } else {
395
+ originCell.v = originalValueStr;
396
+ }
397
+ } else {
398
+ originCell.v = isUrl ? originalValueStr : value;
399
+ }
391
400
  if (originCell.ct != null && originCell.ct.fa != null) {
392
- originCell.m = (0, _format.update)(originCell.ct.fa, originCell.v);
401
+ if (originCell.ct.t === "d" && typeof originCell.v !== "number") {
402
+ originCell.m = String(originCell.v);
403
+ } else {
404
+ originCell.m = (0, _format.update)(originCell.ct.fa, originCell.v);
405
+ }
393
406
  } else {
394
407
  originCell.m = typeof originCell.v === "boolean" ? String(originCell.v) : originCell.v;
395
408
  }
@@ -418,8 +431,12 @@ function pasteHandler(ctx, data, borderInfo) {
418
431
  t: "s"
419
432
  };
420
433
  } else {
421
- var mask = (0, _format.genarate)(value);
422
- _a = mask, cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
434
+ cell.v = originalValueStr;
435
+ cell.m = originalValueStr;
436
+ cell.ct = {
437
+ fa: "General",
438
+ t: "g"
439
+ };
423
440
  if (/^0x?[a-fA-F0-9]+$/.test(value)) {
424
441
  cell.m = value;
425
442
  cell.ct = {
@@ -143,7 +143,7 @@ function getCellValue(r, c, data, attr) {
143
143
  return retv;
144
144
  }
145
145
  function setCellValue(ctx, r, c, d, v) {
146
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
146
+ var _a, _b, _c, _d, _e, _f, _g;
147
147
  if (ctx.allowEdit === false || ctx.isFlvReadOnly) return;
148
148
  if (_lodash.default.isNil(d)) {
149
149
  d = (0, _context.getFlowdata)(ctx);
@@ -168,6 +168,9 @@ function setCellValue(ctx, r, c, d, v) {
168
168
  if (!_lodash.default.isNil(v.ct)) {
169
169
  cell.ct = v.ct;
170
170
  }
171
+ if (!_lodash.default.isNil(v.ht)) {
172
+ cell.ht = v.ht;
173
+ }
171
174
  }
172
175
  if (_lodash.default.isPlainObject(v.v)) {
173
176
  vupdate = v.v.v;
@@ -309,10 +312,7 @@ function setCellValue(ctx, r, c, d, v) {
309
312
  } else if (!_lodash.default.isNil(cell.ct) && !_lodash.default.isNil(cell.ct.fa) && cell.ct.fa !== "General") {
310
313
  var fa = cell.ct.fa;
311
314
  if ((0, _validation.isRealNum)(vupdate)) {
312
- if (commaPresent && !fa.includes(",") || String(vupdate).includes(".") && ((_j = (_h = String(vupdate).split(".")) === null || _h === void 0 ? void 0 : _h[1]) === null || _j === void 0 ? void 0 : _j.length) !== ((_l = (_k = fa.split(".")) === null || _k === void 0 ? void 0 : _k[1]) === null || _l === void 0 ? void 0 : _l.length) || fa.includes(",") !== String(vupdate).includes(",")) {
313
- if (fa.includes(",") !== String(vupdate).includes(",")) {
314
- commaPresent = true;
315
- }
315
+ if (commaPresent && !fa.includes(",")) {
316
316
  fa = (0, _utils.getNumberFormat)(String(vupdate), commaPresent);
317
317
  }
318
318
  vupdate = parseFloat(vupdate);
@@ -322,12 +322,16 @@ function setCellValue(ctx, r, c, d, v) {
322
322
  t: "n"
323
323
  });
324
324
  }
325
+ cell.ht = 2;
325
326
  }
326
327
  var mask = (0, _format.update)(fa, vupdate);
327
328
  if (mask === vupdate) {
328
329
  mask = (0, _format.genarate)(vupdate);
329
330
  cell.m = mask[0].toString();
330
331
  cell.ct = mask[1], cell.v = mask[2];
332
+ if ((0, _validation.isRealNum)(vupdate)) {
333
+ cell.ht = 2;
334
+ }
331
335
  } else {
332
336
  if (v.m) {
333
337
  cell.m = v.m;
@@ -350,7 +354,7 @@ function setCellValue(ctx, r, c, d, v) {
350
354
  var strValue = String(vupdate);
351
355
  var format = (0, _utils.getNumberFormat)(strValue, commaPresent);
352
356
  cell.m = v.m ? v.m : (0, _format.update)(format, cell.v);
353
- cell.ht = (v === null || v === void 0 ? void 0 : v.ht) ? cell.ht : 2;
357
+ cell.ht = 2;
354
358
  cell.ct = {
355
359
  fa: format,
356
360
  t: "n"
@@ -21,29 +21,6 @@ function datenum_local(v, date1904) {
21
21
  if (date1904) epoch -= 1461 * 24 * 60 * 60 * 1000;else if (v >= base1904) epoch += 24 * 60 * 60 * 1000;
22
22
  return (epoch - dnthresh_utc) / (24 * 60 * 60 * 1000);
23
23
  }
24
- var good_pd_date = new Date("2017-02-19T19:06:09.000Z");
25
- if (Number.isNaN(good_pd_date.getFullYear())) good_pd_date = new Date("2/19/17");
26
- var good_pd = good_pd_date.getFullYear() === 2017;
27
- function parseDate(str, fixdate) {
28
- var d = new Date(str);
29
- if (good_pd) {
30
- if (!_lodash.default.isNil(fixdate)) {
31
- if (fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);else if (fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);
32
- }
33
- return d;
34
- }
35
- if (str instanceof Date) return str;
36
- if (good_pd_date.getFullYear() === 1917 && !Number.isNaN(d.getFullYear())) {
37
- var s = d.getFullYear();
38
- if (str.indexOf("".concat(s)) > -1) return d;
39
- d.setFullYear(d.getFullYear() + 100);
40
- return d;
41
- }
42
- var n = str.match(/\d+/g) || ["2017", "2", "19", "0", "0", "0"];
43
- var out = new Date(+n[0], +n[1] - 1, +n[2], +n[3] || 0, +n[4] || 0, +n[5] || 0);
44
- if (str.indexOf("Z") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);
45
- return out;
46
- }
47
24
  function genarate(value) {
48
25
  var m = null;
49
26
  var ct = {};
@@ -267,23 +244,37 @@ function genarate(value) {
267
244
  t: "n"
268
245
  };
269
246
  v = parseFloat(value);
270
- } else if ((0, _validation.isdatetime)(value) && (value.toString().indexOf(".") > -1 || value.toString().indexOf(":") > -1 || value.toString().length < 16)) {
271
- v = datenum_local(parseDate(value.toString().replace(/-/g, "/")));
272
- if (v.toString().indexOf(".") > -1) {
273
- if (value.toString().length > 18) {
274
- ct.fa = "yyyy-MM-dd hh:mm:ss";
275
- } else if (value.toString().length > 11) {
276
- ct.fa = "yyyy-MM-dd hh:mm";
277
- } else {
278
- ct.fa = "yyyy-MM-dd";
279
- }
247
+ } else if (typeof value === "string") {
248
+ var df = (0, _validation.detectDateFormat)(value.toString());
249
+ if (df) {
250
+ var dateObj = new Date(df.year, df.month - 1, df.day, df.hours, df.minutes, df.seconds);
251
+ v = datenum_local(dateObj);
252
+ ct.t = "d";
253
+ var map = {
254
+ "yyyy-MM-dd": "dd/MM/yyyy",
255
+ "yyyy-MM-dd HH:mm": "dd/MM/yyyy",
256
+ "yyyy-MM-ddTHH:mm": "dd/MM/yyyy",
257
+ "yyyy/MM/dd": "dd/MM/yyyy",
258
+ "yyyy/MM/dd HH:mm": "dd/MM/yyyy",
259
+ "yyyy.MM.dd": "yyyy.MM.dd",
260
+ "MM/dd/yyyy h:mm AM/PM": "MM/dd/yyyy h:mm AM/PM",
261
+ "MM/dd/yyyy": "MM/dd/yyyy",
262
+ "M/d/yyyy": "M/d/yyyy",
263
+ "MM/dd/yy": "MM/dd/yy",
264
+ "dd/MM/yyyy": "dd/MM/yyyy",
265
+ "dd-MM-yyyy": "dd/MM/yyyy",
266
+ "dd.MM.yyyy": "dd.MM.yyyy",
267
+ named: "dd/MM/yyyy"
268
+ };
269
+ ct.fa = map[df.formatType] || "dd/MM/yyyy";
270
+ m = _ssf.default.format(ct.fa, v);
280
271
  } else {
281
- ct.fa = "yyyy-MM-dd";
272
+ m = String(value);
273
+ ct.fa = "General";
274
+ ct.t = "g";
282
275
  }
283
- ct.t = "d";
284
- m = _ssf.default.format(ct.fa, v);
285
276
  } else {
286
- m = value;
277
+ m = String(value);
287
278
  ct.fa = "General";
288
279
  ct.t = "g";
289
280
  }