@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.
package/es/api/sheet.js CHANGED
@@ -1,3 +1,14 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var __assign = this && this.__assign || function () {
3
+ __assign = Object.assign || function (t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
1
12
  import _ from "lodash";
2
13
  import { v4 as uuidv4 } from "uuid";
3
14
  import { dataToCelldata, getSheet } from "./common";
@@ -135,6 +146,7 @@ function generateCopySheetName(ctx, sheetId) {
135
146
  return sheetCopyName;
136
147
  }
137
148
  export function copySheet(ctx, sheetId) {
149
+ var _a, _b, _c;
138
150
  var index = getSheetIndex(ctx, sheetId);
139
151
  var order = ctx.luckysheetfile[index].order + 1;
140
152
  var sheetName = generateCopySheetName(ctx, sheetId);
@@ -144,8 +156,32 @@ export function copySheet(ctx, sheetId) {
144
156
  sheetData.celldata = dataToCelldata(sheetData.data);
145
157
  delete sheetData.data;
146
158
  api.addSheet(ctx, undefined, uuidv4(), ctx.luckysheetfile[index].isPivotTable, sheetName, sheetData);
159
+ var newSheetIndex = ctx.luckysheetfile.length - 1;
160
+ var newSheet = ctx.luckysheetfile[newSheetIndex];
161
+ var newSheetId = newSheet.id;
162
+ if ((_a = newSheet.calcChain) === null || _a === void 0 ? void 0 : _a.length) {
163
+ newSheet.calcChain = newSheet.calcChain.map(function (entry) {
164
+ return __assign(__assign({}, entry), {
165
+ id: newSheetId
166
+ });
167
+ });
168
+ }
169
+ if ((_b = newSheet.dynamicArray) === null || _b === void 0 ? void 0 : _b.length) {
170
+ newSheet.dynamicArray = newSheet.dynamicArray.map(function (entry) {
171
+ return entry && _typeof(entry) === "object" && "id" in entry ? __assign(__assign({}, entry), {
172
+ id: newSheetId
173
+ }) : entry;
174
+ });
175
+ }
176
+ if ((_c = newSheet.dynamicArray_compute) === null || _c === void 0 ? void 0 : _c.length) {
177
+ newSheet.dynamicArray_compute = newSheet.dynamicArray_compute.map(function (entry) {
178
+ return entry && _typeof(entry) === "object" && "id" in entry ? __assign(__assign({}, entry), {
179
+ id: newSheetId
180
+ }) : entry;
181
+ });
182
+ }
147
183
  var sheetOrderList = {};
148
- sheetOrderList[ctx.luckysheetfile[ctx.luckysheetfile.length - 1].id] = order;
184
+ sheetOrderList[newSheetId] = order;
149
185
  api.setSheetOrder(ctx, sheetOrderList);
150
186
  }
151
187
  export function calculateSheetFromula(ctx, id) {
@@ -173,23 +209,22 @@ export function calculateSheetFromula(ctx, id) {
173
209
  }
174
210
  }
175
211
  export function calculateReferencedCellSheetFromula(ctx, id, refCell) {
176
- var _a, _b, _c, _d, _e, _f;
212
+ var _a, _b, _c, _d, _e;
177
213
  var index = getSheetIndex(ctx, id);
178
214
  if (!ctx.luckysheetfile[index].data) return;
179
215
  var _loop_1 = function _loop_1(r) {
180
216
  var _loop_2 = function _loop_2(c) {
181
- console.log(refCell, (_a = ctx.luckysheetfile[index].data[r][c]) === null || _a === void 0 ? void 0 : _a.f);
182
217
  var isRef = false;
183
- if (refCell && ((_b = ctx.luckysheetfile[index].data[r][c]) === null || _b === void 0 ? void 0 : _b.f) && !((_c = ctx.luckysheetfile[index].data[r][c]) === null || _c === void 0 ? void 0 : _c.isDataBlockFormula)) {
218
+ if (refCell && ((_a = ctx.luckysheetfile[index].data[r][c]) === null || _a === void 0 ? void 0 : _a.f) && !((_b = ctx.luckysheetfile[index].data[r][c]) === null || _b === void 0 ? void 0 : _b.isDataBlockFormula)) {
184
219
  isRef = refCell.some(function (cell) {
185
220
  var _a;
186
221
  return isCellReferenced((_a = ctx.luckysheetfile[index].data[r][c]) === null || _a === void 0 ? void 0 : _a.f, cell);
187
222
  });
188
223
  }
189
- if (!isRef || !((_d = ctx.luckysheetfile[index].data[r][c]) === null || _d === void 0 ? void 0 : _d.f) || ((_e = ctx.luckysheetfile[index].data[r][c]) === null || _e === void 0 ? void 0 : _e.isDataBlockFormula)) {
224
+ if (!isRef || !((_c = ctx.luckysheetfile[index].data[r][c]) === null || _c === void 0 ? void 0 : _c.f) || ((_d = ctx.luckysheetfile[index].data[r][c]) === null || _d === void 0 ? void 0 : _d.isDataBlockFormula)) {
190
225
  return "continue";
191
226
  }
192
- var result = execfunction(ctx, (_f = ctx.luckysheetfile[index].data[r][c]) === null || _f === void 0 ? void 0 : _f.f, r, c, id);
227
+ var result = execfunction(ctx, (_e = ctx.luckysheetfile[index].data[r][c]) === null || _e === void 0 ? void 0 : _e.f, r, c, id);
193
228
  var isValueArray = Array.isArray(result[1]);
194
229
  if (isValueArray) {
195
230
  var value = {
package/es/canvas.js CHANGED
@@ -1012,7 +1012,7 @@ var Canvas = function () {
1012
1012
  renderCtx.clip();
1013
1013
  renderCtx.scale(this.sheetCtx.zoomRatio, this.sheetCtx.zoomRatio);
1014
1014
  var measureText = getMeasureText(value, renderCtx, this.sheetCtx);
1015
- var textMetrics = measureText.width + 14;
1015
+ var textMetrics = measureText.width + 18;
1016
1016
  var oneLineTextHeight = measureText.actualBoundingBoxDescent + measureText.actualBoundingBoxAscent;
1017
1017
  var horizonAlignPos = pos_x + space_width;
1018
1018
  if (horizonAlign === 0) {
@@ -139,7 +139,7 @@ export function handleGlobalEnter(ctx, cellInput, e, canvas) {
139
139
  row_focus: lastCellUpdate[0],
140
140
  column_focus: lastCellUpdate[1]
141
141
  }];
142
- moveHighlightCell(ctx, "down", 1, "rangeOfSelect");
142
+ moveHighlightCell(ctx, "down", hideCRCount(ctx, "ArrowDown"), "rangeOfSelect");
143
143
  e.preventDefault();
144
144
  } else {
145
145
  if (((_c = (_b = ctx.luckysheet_select_save) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0) {
@@ -434,9 +434,9 @@ export function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUnd
434
434
  updateCell(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput, undefined, canvas);
435
435
  }
436
436
  if (e.shiftKey) {
437
- moveHighlightCell(ctx, "right", -1, "rangeOfSelect");
437
+ moveHighlightCell(ctx, "right", -hideCRCount(ctx, "ArrowLeft"), "rangeOfSelect");
438
438
  } else {
439
- moveHighlightCell(ctx, "right", 1, "rangeOfSelect");
439
+ moveHighlightCell(ctx, "right", hideCRCount(ctx, "ArrowRight"), "rangeOfSelect");
440
440
  }
441
441
  e.preventDefault();
442
442
  } else if (kstr === "F2") {
@@ -145,7 +145,7 @@ export function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, containe
145
145
  _a = margeset.row, row_pre = _a[0], row = _a[1], row_index = _a[2], row_index_ed = _a[3];
146
146
  _b = margeset.column, col_pre = _b[0], col = _b[1], col_index = _b[2], col_index_ed = _b[3];
147
147
  }
148
- showLinkCard(ctx, row_index, col_index, false, true);
148
+ showLinkCard(ctx, row_index, col_index, undefined, false, true);
149
149
  if (((_e = (_d = ctx.hooks).beforeCellMouseDown) === null || _e === void 0 ? void 0 : _e.call(_d, (_f = flowdata[row_index]) === null || _f === void 0 ? void 0 : _f[col_index], {
150
150
  row: row_index,
151
151
  column: col_index,
@@ -34,10 +34,10 @@ import { handlePastedTable } from "../paste-table-helpers";
34
34
  import { getFlowdata } from "../context";
35
35
  import { execfunction } from "../modules/formula";
36
36
  import { getdatabyselection } from "../modules/cell";
37
- import { genarate, update } from "../modules/format";
37
+ import { update, datenum_local } from "../modules/format";
38
38
  import { normalizeSelection, selectionCache } from "../modules/selection";
39
39
  import { getSheetIndex, isAllowEdit } from "../utils";
40
- import { hasPartMC, isRealNum } from "../modules/validation";
40
+ import { hasPartMC, isRealNum, detectDateFormat } from "../modules/validation";
41
41
  import { getBorderInfoCompute } from "../modules/border";
42
42
  import { expandRowsAndColumns, storeSheetParamALL } from "../modules/sheet";
43
43
  import { jfrefreshgrid } from "../modules/refresh";
@@ -78,11 +78,9 @@ export function adjustFormulaForPaste(formula, srcCol, srcRow, destCol, destRow)
78
78
  var rowOffset = destRow - srcRow;
79
79
  var hadInvalid = false;
80
80
  var cellRefRegex = /\b(\$?)([A-Z]+)(\$?)(\d+)\b/g;
81
- var stringOrCellRef = /"(?:\\.|[^"])*"|(?<!\$)([A-Z]+\d+\b)/g;
81
+ var stringOrCellRef = /"(?:\\.|[^"])*"|(\$?[A-Z]+\$?\d+)(?!\s*!)\b/g;
82
82
  var result = formula.replace(stringOrCellRef, function (m, cellRef) {
83
83
  if (!cellRef) return m;
84
- if (cellRef.startsWith("$")) return m;
85
- console.log(m, "cellRef", cellRef);
86
84
  return cellRef.replace(cellRefRegex, function (__, absCol, colLetters, absRow, rowNum) {
87
85
  var colIndex = columnLabelIndex(colLetters);
88
86
  var rowIndex = parseInt(rowNum, 10);
@@ -209,14 +207,13 @@ var handleFormulaOnPaste = function handleFormulaOnPaste(ctx, d) {
209
207
  }
210
208
  };
211
209
  function pasteHandler(ctx, data, borderInfo) {
212
- var _a;
213
- var _b, _c, _d, _e, _f, _g;
210
+ var _a, _b, _c, _d, _e, _f;
214
211
  if (ctx.luckysheet_selection_range) {
215
212
  ctx.luckysheet_selection_range = [];
216
213
  }
217
214
  var allowEdit = isAllowEdit(ctx);
218
215
  if (!allowEdit || ctx.isFlvReadOnly) return;
219
- if (((_c = (_b = ctx.luckysheet_select_save) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) !== 1) {
216
+ if (((_b = (_a = ctx.luckysheet_select_save) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) !== 1) {
220
217
  return;
221
218
  }
222
219
  if (_typeof(data) === "object") {
@@ -265,7 +262,7 @@ function pasteHandler(ctx, data, borderInfo) {
265
262
  currentRowLen = cfg.rowlen[h];
266
263
  }
267
264
  for (var c = minc; c <= maxc; c += 1) {
268
- if ((_d = x === null || x === void 0 ? void 0 : x[c]) === null || _d === void 0 ? void 0 : _d.mc) {
265
+ if ((_c = x === null || x === void 0 ? void 0 : x[c]) === null || _c === void 0 ? void 0 : _c.mc) {
269
266
  if ("rs" in x[c].mc) {
270
267
  delete cfg.merge["".concat(x[c].mc.r, "_").concat(x[c].mc.c)];
271
268
  }
@@ -276,7 +273,7 @@ function pasteHandler(ctx, data, borderInfo) {
276
273
  value = data[h - minh][c - minc];
277
274
  }
278
275
  x[c] = value;
279
- if (value != null && ((_e = x === null || x === void 0 ? void 0 : x[c]) === null || _e === void 0 ? void 0 : _e.mc)) {
276
+ if (value != null && ((_d = x === null || x === void 0 ? void 0 : x[c]) === null || _d === void 0 ? void 0 : _d.mc)) {
280
277
  if (x[c].mc.rs != null) {
281
278
  x[c].mc.r = h;
282
279
  x[c].mc.c = c;
@@ -303,7 +300,7 @@ function pasteHandler(ctx, data, borderInfo) {
303
300
  b: borderInfo["".concat(h - minh, "_").concat(c - minc)].b
304
301
  }
305
302
  };
306
- (_f = cfg.borderInfo) === null || _f === void 0 ? void 0 : _f.push(bd_obj);
303
+ (_e = cfg.borderInfo) === null || _e === void 0 ? void 0 : _e.push(bd_obj);
307
304
  }
308
305
  }
309
306
  d[h] = x;
@@ -335,7 +332,7 @@ function pasteHandler(ctx, data, borderInfo) {
335
332
  }
336
333
  var d = getFlowdata(ctx);
337
334
  if (!d) return;
338
- var last = (_g = ctx.luckysheet_select_save) === null || _g === void 0 ? void 0 : _g[ctx.luckysheet_select_save.length - 1];
335
+ var last = (_f = ctx.luckysheet_select_save) === null || _f === void 0 ? void 0 : _f[ctx.luckysheet_select_save.length - 1];
339
336
  if (!last) return;
340
337
  var curR = last.row == null ? 0 : last.row[0];
341
338
  var curC = last.column == null ? 0 : last.column[0];
@@ -376,9 +373,23 @@ function pasteHandler(ctx, data, borderInfo) {
376
373
  }
377
374
  }
378
375
  if (originCell) {
379
- originCell.v = isUrl ? originalValueStr : value;
376
+ if (originCell.ct && originCell.ct.t === "d" && !isUrl) {
377
+ var df = detectDateFormat(originalValueStr);
378
+ if (df) {
379
+ var dateObj = new Date(df.year, df.month - 1, df.day, df.hours, df.minutes, df.seconds);
380
+ originCell.v = datenum_local(dateObj);
381
+ } else {
382
+ originCell.v = originalValueStr;
383
+ }
384
+ } else {
385
+ originCell.v = isUrl ? originalValueStr : value;
386
+ }
380
387
  if (originCell.ct != null && originCell.ct.fa != null) {
381
- originCell.m = update(originCell.ct.fa, originCell.v);
388
+ if (originCell.ct.t === "d" && typeof originCell.v !== "number") {
389
+ originCell.m = String(originCell.v);
390
+ } else {
391
+ originCell.m = update(originCell.ct.fa, originCell.v);
392
+ }
382
393
  } else {
383
394
  originCell.m = typeof originCell.v === "boolean" ? String(originCell.v) : originCell.v;
384
395
  }
@@ -407,8 +418,12 @@ function pasteHandler(ctx, data, borderInfo) {
407
418
  t: "s"
408
419
  };
409
420
  } else {
410
- var mask = genarate(value);
411
- _a = mask, cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
421
+ cell.v = originalValueStr;
422
+ cell.m = originalValueStr;
423
+ cell.ct = {
424
+ fa: "General",
425
+ t: "g"
426
+ };
412
427
  if (/^0x?[a-fA-F0-9]+$/.test(value)) {
413
428
  cell.m = value;
414
429
  cell.ct = {
@@ -1011,9 +1026,10 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
1011
1026
  if (!_.isNil(value) && !_.isNil(value.f)) {
1012
1027
  var adjustedFormula = value.f;
1013
1028
  var isError = false;
1029
+ var srcRow = c_r1 + (h - mth);
1030
+ var srcCol = c_c1 + (c - mtc);
1014
1031
  try {
1015
- adjustedFormula = adjustFormulaForPaste(value.f, c_c1, c_r1, c, h);
1016
- console.log("adjustedFormula", adjustedFormula);
1032
+ adjustedFormula = adjustFormulaForPaste(value.f, srcCol, srcRow, c, h);
1017
1033
  } catch (error) {
1018
1034
  isError = true;
1019
1035
  value.error = {
@@ -110,7 +110,7 @@ export function getCellValue(r, c, data, attr) {
110
110
  return retv;
111
111
  }
112
112
  export function setCellValue(ctx, r, c, d, v) {
113
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
113
+ var _a, _b, _c, _d, _e, _f, _g;
114
114
  if (ctx.allowEdit === false || ctx.isFlvReadOnly) return;
115
115
  if (_.isNil(d)) {
116
116
  d = getFlowdata(ctx);
@@ -135,6 +135,9 @@ export function setCellValue(ctx, r, c, d, v) {
135
135
  if (!_.isNil(v.ct)) {
136
136
  cell.ct = v.ct;
137
137
  }
138
+ if (!_.isNil(v.ht)) {
139
+ cell.ht = v.ht;
140
+ }
138
141
  }
139
142
  if (_.isPlainObject(v.v)) {
140
143
  vupdate = v.v.v;
@@ -276,10 +279,7 @@ export function setCellValue(ctx, r, c, d, v) {
276
279
  } else if (!_.isNil(cell.ct) && !_.isNil(cell.ct.fa) && cell.ct.fa !== "General") {
277
280
  var fa = cell.ct.fa;
278
281
  if (isRealNum(vupdate)) {
279
- 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(",")) {
280
- if (fa.includes(",") !== String(vupdate).includes(",")) {
281
- commaPresent = true;
282
- }
282
+ if (commaPresent && !fa.includes(",")) {
283
283
  fa = getNumberFormat(String(vupdate), commaPresent);
284
284
  }
285
285
  vupdate = parseFloat(vupdate);
@@ -289,12 +289,16 @@ export function setCellValue(ctx, r, c, d, v) {
289
289
  t: "n"
290
290
  });
291
291
  }
292
+ cell.ht = 2;
292
293
  }
293
294
  var mask = update(fa, vupdate);
294
295
  if (mask === vupdate) {
295
296
  mask = genarate(vupdate);
296
297
  cell.m = mask[0].toString();
297
298
  cell.ct = mask[1], cell.v = mask[2];
299
+ if (isRealNum(vupdate)) {
300
+ cell.ht = 2;
301
+ }
298
302
  } else {
299
303
  if (v.m) {
300
304
  cell.m = v.m;
@@ -317,7 +321,7 @@ export function setCellValue(ctx, r, c, d, v) {
317
321
  var strValue = String(vupdate);
318
322
  var format = getNumberFormat(strValue, commaPresent);
319
323
  cell.m = v.m ? v.m : update(format, cell.v);
320
- cell.ht = (v === null || v === void 0 ? void 0 : v.ht) ? cell.ht : 2;
324
+ cell.ht = 2;
321
325
  cell.ct = {
322
326
  fa: format,
323
327
  t: "n"
@@ -6,3 +6,4 @@ export declare function getSelectionCharacterOffsets(element: Node): {
6
6
  end: number;
7
7
  } | null;
8
8
  export declare function setSelectionByCharacterOffset(element: HTMLDivElement, start: number, end: number): void;
9
+ export declare function getRangeRectsByCharacterOffset(element: HTMLDivElement, start: number, end: number): DOMRect[];
@@ -114,4 +114,39 @@ export function setSelectionByCharacterOffset(element, start, end) {
114
114
  sel.removeAllRanges();
115
115
  sel.addRange(range);
116
116
  }
117
+ }
118
+ export function getRangeRectsByCharacterOffset(element, start, end) {
119
+ if (start >= end) return [];
120
+ var charIndex = 0;
121
+ var startNode = null;
122
+ var startOffset = 0;
123
+ var endNode = null;
124
+ var endOffset = 0;
125
+ function walk(node) {
126
+ if (node.nodeType === Node.TEXT_NODE) {
127
+ var len = (node.textContent || "").length;
128
+ if (startNode == null && charIndex + len > start) {
129
+ startNode = node;
130
+ startOffset = start - charIndex;
131
+ }
132
+ if (endNode == null && charIndex + len >= end) {
133
+ endNode = node;
134
+ endOffset = end - charIndex;
135
+ return true;
136
+ }
137
+ charIndex += len;
138
+ return false;
139
+ }
140
+ for (var i = 0; i < node.childNodes.length; i += 1) {
141
+ if (walk(node.childNodes[i])) return true;
142
+ }
143
+ return false;
144
+ }
145
+ walk(element);
146
+ if (!startNode || !endNode) return [];
147
+ var range = document.createRange();
148
+ range.setStart(startNode, startOffset);
149
+ range.setEnd(endNode, endOffset);
150
+ var rects = range.getClientRects();
151
+ return Array.from(rects);
117
152
  }
@@ -1,6 +1,6 @@
1
1
  import numeral from "numeral";
2
2
  import _ from "lodash";
3
- import { isRealNum, valueIsError, isdatetime } from "./validation";
3
+ import { isRealNum, valueIsError, detectDateFormat } from "./validation";
4
4
  import SSF from "./ssf";
5
5
  import { getCellValue } from "./cell";
6
6
  var base1904 = new Date(1900, 2, 1, 0, 0, 0);
@@ -10,29 +10,6 @@ export function datenum_local(v, date1904) {
10
10
  if (date1904) epoch -= 1461 * 24 * 60 * 60 * 1000;else if (v >= base1904) epoch += 24 * 60 * 60 * 1000;
11
11
  return (epoch - dnthresh_utc) / (24 * 60 * 60 * 1000);
12
12
  }
13
- var good_pd_date = new Date("2017-02-19T19:06:09.000Z");
14
- if (Number.isNaN(good_pd_date.getFullYear())) good_pd_date = new Date("2/19/17");
15
- var good_pd = good_pd_date.getFullYear() === 2017;
16
- function parseDate(str, fixdate) {
17
- var d = new Date(str);
18
- if (good_pd) {
19
- if (!_.isNil(fixdate)) {
20
- if (fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);else if (fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);
21
- }
22
- return d;
23
- }
24
- if (str instanceof Date) return str;
25
- if (good_pd_date.getFullYear() === 1917 && !Number.isNaN(d.getFullYear())) {
26
- var s = d.getFullYear();
27
- if (str.indexOf("".concat(s)) > -1) return d;
28
- d.setFullYear(d.getFullYear() + 100);
29
- return d;
30
- }
31
- var n = str.match(/\d+/g) || ["2017", "2", "19", "0", "0", "0"];
32
- var out = new Date(+n[0], +n[1] - 1, +n[2], +n[3] || 0, +n[4] || 0, +n[5] || 0);
33
- if (str.indexOf("Z") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);
34
- return out;
35
- }
36
13
  export function genarate(value) {
37
14
  var m = null;
38
15
  var ct = {};
@@ -256,23 +233,37 @@ export function genarate(value) {
256
233
  t: "n"
257
234
  };
258
235
  v = parseFloat(value);
259
- } else if (isdatetime(value) && (value.toString().indexOf(".") > -1 || value.toString().indexOf(":") > -1 || value.toString().length < 16)) {
260
- v = datenum_local(parseDate(value.toString().replace(/-/g, "/")));
261
- if (v.toString().indexOf(".") > -1) {
262
- if (value.toString().length > 18) {
263
- ct.fa = "yyyy-MM-dd hh:mm:ss";
264
- } else if (value.toString().length > 11) {
265
- ct.fa = "yyyy-MM-dd hh:mm";
266
- } else {
267
- ct.fa = "yyyy-MM-dd";
268
- }
236
+ } else if (typeof value === "string") {
237
+ var df = detectDateFormat(value.toString());
238
+ if (df) {
239
+ var dateObj = new Date(df.year, df.month - 1, df.day, df.hours, df.minutes, df.seconds);
240
+ v = datenum_local(dateObj);
241
+ ct.t = "d";
242
+ var map = {
243
+ "yyyy-MM-dd": "dd/MM/yyyy",
244
+ "yyyy-MM-dd HH:mm": "dd/MM/yyyy",
245
+ "yyyy-MM-ddTHH:mm": "dd/MM/yyyy",
246
+ "yyyy/MM/dd": "dd/MM/yyyy",
247
+ "yyyy/MM/dd HH:mm": "dd/MM/yyyy",
248
+ "yyyy.MM.dd": "yyyy.MM.dd",
249
+ "MM/dd/yyyy h:mm AM/PM": "MM/dd/yyyy h:mm AM/PM",
250
+ "MM/dd/yyyy": "MM/dd/yyyy",
251
+ "M/d/yyyy": "M/d/yyyy",
252
+ "MM/dd/yy": "MM/dd/yy",
253
+ "dd/MM/yyyy": "dd/MM/yyyy",
254
+ "dd-MM-yyyy": "dd/MM/yyyy",
255
+ "dd.MM.yyyy": "dd.MM.yyyy",
256
+ named: "dd/MM/yyyy"
257
+ };
258
+ ct.fa = map[df.formatType] || "dd/MM/yyyy";
259
+ m = SSF.format(ct.fa, v);
269
260
  } else {
270
- ct.fa = "yyyy-MM-dd";
261
+ m = String(value);
262
+ ct.fa = "General";
263
+ ct.t = "g";
271
264
  }
272
- ct.t = "d";
273
- m = SSF.format(ct.fa, v);
274
265
  } else {
275
- m = value;
266
+ m = String(value);
276
267
  ct.fa = "General";
277
268
  ct.t = "g";
278
269
  }
@@ -13,14 +13,14 @@ export declare function saveHyperlink(ctx: Context, r: number, c: number, linkTe
13
13
  cellInput?: HTMLDivElement | null;
14
14
  }): void;
15
15
  export declare function removeHyperlink(ctx: Context, r: number, c: number): void;
16
- export declare function showLinkCard(ctx: Context, r: number, c: number, isEditing?: boolean, isMouseDown?: boolean, options?: {
16
+ export declare function showLinkCard(ctx: Context, r: number, c: number, options?: {
17
17
  applyToSelection?: boolean;
18
18
  originText?: string;
19
19
  selectionOffsets?: {
20
20
  start: number;
21
21
  end: number;
22
22
  };
23
- }): void;
23
+ }, isEditing?: boolean, isMouseDown?: boolean): void;
24
24
  export declare function goToLink(ctx: Context, r: number, c: number, linkType: string, linkAddress: string, scrollbarX: HTMLDivElement, scrollbarY: HTMLDivElement): void;
25
25
  export declare function isLinkValid(ctx: Context, linkType: string, linkAddress: string): {
26
26
  isValid: boolean;
@@ -111,7 +111,7 @@ export function removeHyperlink(ctx, r, c) {
111
111
  }
112
112
  ctx.linkCard = undefined;
113
113
  }
114
- export function showLinkCard(ctx, r, c, isEditing, isMouseDown, options) {
114
+ export function showLinkCard(ctx, r, c, options, isEditing, isMouseDown) {
115
115
  var _a, _b, _c, _d, _e, _f, _g, _h;
116
116
  if (isEditing === void 0) {
117
117
  isEditing = false;
@@ -130,7 +130,11 @@ export function showLinkCard(ctx, r, c, isEditing, isMouseDown, options) {
130
130
  if (isEditing || link != null && (!((_f = ctx.linkCard) === null || _f === void 0 ? void 0 : _f.isEditing) || isMouseDown) || ((_g = ctx.linkCard) === null || _g === void 0 ? void 0 : _g.sheetId) !== ctx.currentSheetId) {
131
131
  var col_pre = c - 1 === -1 ? 0 : ctx.visibledatacolumn[c - 1];
132
132
  var row = ctx.visibledatarow[r];
133
- var originText = (options === null || options === void 0 ? void 0 : options.originText) !== undefined ? options.originText : (cell === null || cell === void 0 ? void 0 : cell.v) == null ? "" : "".concat(cell.v);
133
+ var originText = function () {
134
+ if ((options === null || options === void 0 ? void 0 : options.originText) !== undefined) return options.originText;
135
+ if ((cell === null || cell === void 0 ? void 0 : cell.v) == null) return "";
136
+ return "".concat(cell.v);
137
+ }();
134
138
  ctx.linkCard = {
135
139
  sheetId: ctx.currentSheetId,
136
140
  r: r,