@fileverse-dev/fortune-core 1.2.55 → 1.2.56-patch-1

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.
@@ -1150,9 +1150,12 @@ function resizePastedCellsToContent(ctx) {
1150
1150
  updateSheetCellSizes(ctx, sheetIdx, rangeCellSize);
1151
1151
  }
1152
1152
  export function handlePaste(ctx, e) {
1153
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
1153
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
1154
1154
  var allowEdit = isAllowEdit(ctx);
1155
1155
  if (!allowEdit || ctx.isFlvReadOnly) return;
1156
+ if (!selectionCache.isPasteAction) {
1157
+ return;
1158
+ }
1156
1159
  if (selectionCache.isPasteAction) {
1157
1160
  ctx.luckysheetCellUpdate = [];
1158
1161
  selectionCache.isPasteAction = false;
@@ -1183,11 +1186,11 @@ export function handlePaste(ctx, e) {
1183
1186
  }
1184
1187
  cpDataArr.push(cpRowArr);
1185
1188
  }
1186
- var copy_r1 = ctx.luckysheet_copy_save.copyRange[0].row[0];
1187
- var copy_r2 = ctx.luckysheet_copy_save.copyRange[0].row[1];
1188
- var copy_c1 = ctx.luckysheet_copy_save.copyRange[0].column[0];
1189
- var copy_c2 = ctx.luckysheet_copy_save.copyRange[0].column[1];
1190
- var copy_index = ctx.luckysheet_copy_save.dataSheetId;
1189
+ var copy_r1 = (_c = (_b = ctx.luckysheet_copy_save) === null || _b === void 0 ? void 0 : _b.copyRange[0]) === null || _c === void 0 ? void 0 : _c.row[0];
1190
+ var copy_r2 = (_e = (_d = ctx.luckysheet_copy_save) === null || _d === void 0 ? void 0 : _d.copyRange[0]) === null || _e === void 0 ? void 0 : _e.row[1];
1191
+ var copy_c1 = (_g = (_f = ctx.luckysheet_copy_save) === null || _f === void 0 ? void 0 : _f.copyRange[0]) === null || _g === void 0 ? void 0 : _g.column[0];
1192
+ var copy_c2 = (_j = (_h = ctx.luckysheet_copy_save) === null || _h === void 0 ? void 0 : _h.copyRange[0]) === null || _j === void 0 ? void 0 : _j.column[1];
1193
+ var copy_index = ctx.luckysheet_copy_save.dataSheetId || ctx.currentSheetId;
1191
1194
  var d = void 0;
1192
1195
  if (copy_index === ctx.currentSheetId) {
1193
1196
  d = getFlowdata(ctx);
@@ -1209,15 +1212,15 @@ export function handlePaste(ctx, e) {
1209
1212
  }
1210
1213
  var v = void 0;
1211
1214
  if (!_.isNil(cell)) {
1212
- if (((_d = (_c = (_b = cell.ct) === null || _b === void 0 ? void 0 : _b.fa) === null || _c === void 0 ? void 0 : _c.indexOf("w")) !== null && _d !== void 0 ? _d : -1) > -1) {
1213
- v = (_f = (_e = d[r]) === null || _e === void 0 ? void 0 : _e[c]) === null || _f === void 0 ? void 0 : _f.v;
1215
+ if (((_m = (_l = (_k = cell.ct) === null || _k === void 0 ? void 0 : _k.fa) === null || _l === void 0 ? void 0 : _l.indexOf("w")) !== null && _m !== void 0 ? _m : -1) > -1) {
1216
+ v = (_p = (_o = d[r]) === null || _o === void 0 ? void 0 : _o[c]) === null || _p === void 0 ? void 0 : _p.v;
1214
1217
  } else {
1215
- v = (_h = (_g = d[r]) === null || _g === void 0 ? void 0 : _g[c]) === null || _h === void 0 ? void 0 : _h.m;
1218
+ v = (_r = (_q = d[r]) === null || _q === void 0 ? void 0 : _q[c]) === null || _r === void 0 ? void 0 : _r.m;
1216
1219
  }
1217
1220
  } else {
1218
1221
  v = "";
1219
1222
  }
1220
- if (_.isNil(v) && ((_l = (_k = (_j = d[r]) === null || _j === void 0 ? void 0 : _j[c]) === null || _k === void 0 ? void 0 : _k.ct) === null || _l === void 0 ? void 0 : _l.t) === "inlineStr") {
1223
+ if (_.isNil(v) && ((_u = (_t = (_s = d[r]) === null || _s === void 0 ? void 0 : _s[c]) === null || _t === void 0 ? void 0 : _t.ct) === null || _u === void 0 ? void 0 : _u.t) === "inlineStr") {
1221
1224
  v = d[r][c].ct.s.map(function (val) {
1222
1225
  return val.v;
1223
1226
  }).join("");
@@ -1235,10 +1238,10 @@ export function handlePaste(ctx, e) {
1235
1238
  }
1236
1239
  }
1237
1240
  }
1238
- if (((_o = (_m = ctx.hooks).beforePaste) === null || _o === void 0 ? void 0 : _o.call(_m, ctx.luckysheet_select_save, txtdata)) === false) {
1241
+ if (((_w = (_v = ctx.hooks).beforePaste) === null || _w === void 0 ? void 0 : _w.call(_v, ctx.luckysheet_select_save, txtdata)) === false) {
1239
1242
  return;
1240
1243
  }
1241
- if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((_p = ctx.luckysheet_copy_save) === null || _p === void 0 ? void 0 : _p.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0 && isEqual) {
1244
+ if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((_x = ctx.luckysheet_copy_save) === null || _x === void 0 ? void 0 : _x.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0 && isEqual) {
1242
1245
  if (ctx.luckysheet_paste_iscut) {
1243
1246
  ctx.luckysheet_paste_iscut = false;
1244
1247
  pasteHandlerOfCutPaste(ctx, ctx.luckysheet_copy_save);
@@ -1261,10 +1264,10 @@ export function handlePaste(ctx, e) {
1261
1264
  var _txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
1262
1265
  var embedUrl = sanitizeDuneUrl(_txtdata);
1263
1266
  if (embedUrl) {
1264
- var last = (_q = ctx.luckysheet_select_save) === null || _q === void 0 ? void 0 : _q[ctx.luckysheet_select_save.length - 1];
1267
+ var last = (_y = ctx.luckysheet_select_save) === null || _y === void 0 ? void 0 : _y[ctx.luckysheet_select_save.length - 1];
1265
1268
  if (last) {
1266
- var rowIndex = (_t = (_r = last.row_focus) !== null && _r !== void 0 ? _r : (_s = last.row) === null || _s === void 0 ? void 0 : _s[0]) !== null && _t !== void 0 ? _t : 0;
1267
- var colIndex = (_w = (_u = last.column_focus) !== null && _u !== void 0 ? _u : (_v = last.column) === null || _v === void 0 ? void 0 : _v[0]) !== null && _w !== void 0 ? _w : 0;
1269
+ var rowIndex = (_1 = (_z = last.row_focus) !== null && _z !== void 0 ? _z : (_0 = last.row) === null || _0 === void 0 ? void 0 : _0[0]) !== null && _1 !== void 0 ? _1 : 0;
1270
+ var colIndex = (_4 = (_2 = last.column_focus) !== null && _2 !== void 0 ? _2 : (_3 = last.column) === null || _3 === void 0 ? void 0 : _3[0]) !== null && _4 !== void 0 ? _4 : 0;
1268
1271
  var left = colIndex === 0 ? 0 : ctx.visibledatacolumn[colIndex - 1];
1269
1272
  var top_1 = rowIndex === 0 ? 0 : ctx.visibledatarow[rowIndex + 5];
1270
1273
  ctx.showDunePreview = {
@@ -59,14 +59,18 @@ export function normalizedCellAttr(cell, attr, defaultFontSize) {
59
59
  }
60
60
  export function normalizedAttr(data, r, c, attr) {
61
61
  if (!data || !data[r]) {
62
- console.warn("cell (%d, %d) is null", r, c);
63
62
  return null;
64
63
  }
65
64
  var cell = data[r][c];
66
65
  if (!cell) return undefined;
67
66
  return normalizedCellAttr(cell, attr);
68
67
  }
68
+ function newlinesToBr(text) {
69
+ if (!text) return "";
70
+ return text.replace(/\r\n|\r|\n/g, "<br />");
71
+ }
69
72
  export function getCellValue(r, c, data, attr) {
73
+ var _a;
70
74
  if (!attr) {
71
75
  attr = "v";
72
76
  }
@@ -96,6 +100,9 @@ export function getCellValue(r, c, data, attr) {
96
100
  } else if (d && d.ct && d.ct.t === "d") {
97
101
  retv = d.m;
98
102
  }
103
+ if ((d === null || d === void 0 ? void 0 : d.ct) && isInlineStringCT(d.ct) && (attr === "v" || attr === "m")) {
104
+ retv = newlinesToBr((_a = d.ct.s[0]) === null || _a === void 0 ? void 0 : _a.v);
105
+ }
99
106
  }
100
107
  if (retv === undefined) {
101
108
  retv = null;
@@ -1039,6 +1046,8 @@ export function getStyleByCell(ctx, d, r, c) {
1039
1046
  } else {
1040
1047
  style.background = "".concat(value);
1041
1048
  }
1049
+ } else {
1050
+ style.background = "".concat(value);
1042
1051
  }
1043
1052
  }
1044
1053
  if ("ht" in cell) {
@@ -1047,8 +1056,18 @@ export function getStyleByCell(ctx, d, r, c) {
1047
1056
  style.textAlign = "center";
1048
1057
  } else if (Number(value) === 2) {
1049
1058
  style.textAlign = "right";
1059
+ style.overflowWrap = "anywhere";
1050
1060
  }
1051
1061
  }
1062
+ if ("tb" in cell) {
1063
+ if (Number(cell.tb) === 2) {
1064
+ style.overflowWrap = "anywhere";
1065
+ }
1066
+ }
1067
+ if ("ff" in cell) {
1068
+ var value = normalizedCellAttr(cell, "ff");
1069
+ style.fontFamily = value;
1070
+ }
1052
1071
  if ("vt" in cell) {
1053
1072
  var value = normalizedCellAttr(cell, "vt");
1054
1073
  if (Number(value) === 0) {
@@ -1129,7 +1129,7 @@ function getHtmlBorderStyle(type, color) {
1129
1129
  return "".concat(style + color, ";");
1130
1130
  }
1131
1131
  export function rangeValueToHtml(ctx, sheetId, ranges) {
1132
- var _a, _b, _c;
1132
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1133
1133
  var idx = getSheetIndex(ctx, sheetId);
1134
1134
  if (idx == null) return "";
1135
1135
  var sheet = ctx.luckysheetfile[idx];
@@ -1162,11 +1162,12 @@ export function rangeValueToHtml(ctx, sheetId, ranges) {
1162
1162
  var colgroup = "";
1163
1163
  for (var i = 0; i < rowIndexArr.length; i += 1) {
1164
1164
  var r = rowIndexArr[i];
1165
- cpdata += "<tr>";
1165
+ var rowLen = (_e = (_d = (_c = sheet.config) === null || _c === void 0 ? void 0 : _c.rowlen) === null || _d === void 0 ? void 0 : _d[r.toString()]) !== null && _e !== void 0 ? _e : sheet.defaultRowHeight;
1166
+ cpdata += "<tr height=".concat(rowLen, "px >");
1166
1167
  var _loop_3 = function _loop_3(j) {
1167
1168
  var c = colIndexArr[j];
1168
1169
  var column = '<td ${span} style="${style}">';
1169
- var cell = (_c = d[r]) === null || _c === void 0 ? void 0 : _c[c];
1170
+ var cell = (_f = d[r]) === null || _f === void 0 ? void 0 : _f[c];
1170
1171
  if (cell != null) {
1171
1172
  var style = "";
1172
1173
  var span = "";
@@ -1178,11 +1179,14 @@ export function rangeValueToHtml(ctx, sheetId, ranges) {
1178
1179
  }
1179
1180
  }
1180
1181
  if (c === colIndexArr[0]) {
1181
- if (_.isNil(sheet.config) || _.isNil(sheet.config.rowlen) || _.isNil(sheet.config.rowlen[r.toString()])) {
1182
+ var rowLenValue = (_h = (_g = sheet.config) === null || _g === void 0 ? void 0 : _g.rowlen) === null || _h === void 0 ? void 0 : _h[r.toString()];
1183
+ var colLen = (_k = (_j = sheet.config) === null || _j === void 0 ? void 0 : _j.columnlen) === null || _k === void 0 ? void 0 : _k[c.toString()];
1184
+ if (_.isNil(rowLenValue)) {
1182
1185
  style += "height:19px;";
1183
1186
  } else {
1184
- style += "height:".concat(sheet.config.rowlen[r.toString()], "px;");
1187
+ style += "height:".concat(rowLenValue, "px;");
1185
1188
  }
1189
+ style += "width:".concat(colLen !== null && colLen !== void 0 ? colLen : sheet.defaultColWidth, "px;");
1186
1190
  }
1187
1191
  var reg = /^(w|W)((0?)|(0\.0+))$/;
1188
1192
  var c_value = void 0;
@@ -1485,6 +1489,7 @@ export function copy(ctx) {
1485
1489
  HasMC: HasMC
1486
1490
  };
1487
1491
  var cpdata = rangeValueToHtml(ctx, ctx.currentSheetId, ctx.luckysheet_select_save);
1492
+ cpdata = cpdata === null ? cpdata : cpdata.replace('<td style="', '<td style="white-space: pre-line;"');
1488
1493
  if (cpdata) {
1489
1494
  ctx.iscopyself = true;
1490
1495
  clipboard.writeHtml(cpdata);
@@ -1,9 +1,20 @@
1
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
+ };
2
12
  import _ from "lodash";
3
13
  import { locale } from "./locale";
4
14
  import { getQKBorder, saveHyperlink } from "./modules";
5
15
  import { genarate } from "./modules/format";
6
16
  import { getSheetIndex } from "./utils";
17
+ import { setRowHeight } from "../src/api";
7
18
  export var DEFAULT_FONT_SIZE = 12;
8
19
  var parseStylesheetPairs = function parseStylesheetPairs(styleInner) {
9
20
  var patternReg = /{([^}]*)}/g;
@@ -112,14 +123,28 @@ var detectHyperlink = function detectHyperlink(td) {
112
123
  }
113
124
  return null;
114
125
  };
126
+ function brToNewline(str) {
127
+ return str.replace(/<br\s*\/?>/gi, "\n");
128
+ }
115
129
  var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
116
130
  var _a;
117
- var _b, _c;
131
+ var _b, _c, _d;
118
132
  var cell = {};
119
133
  var rawText = (td.innerText || td.innerHTML || "").trim();
134
+ var isLineBreak = rawText.includes("<br />");
120
135
  if (!rawText) {
121
136
  cell.v = undefined;
122
137
  cell.m = "";
138
+ } else if (isLineBreak) {
139
+ var value = brToNewline(rawText);
140
+ cell = __assign(__assign({}, cell), {
141
+ ct: __assign(__assign({}, cell.ct), {
142
+ t: "inlineStr",
143
+ s: [{
144
+ v: value
145
+ }]
146
+ })
147
+ });
123
148
  } else {
124
149
  var mask = genarate(rawText);
125
150
  _a = mask || [], cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
@@ -166,7 +191,11 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
166
191
  } else {
167
192
  cell.vt = 2;
168
193
  }
169
- cell.tb = "1";
194
+ if (((_d = td === null || td === void 0 ? void 0 : td.style) === null || _d === void 0 ? void 0 : _d["overflow-wrap"]) === "anywhere") {
195
+ cell.tb = "2";
196
+ } else {
197
+ cell.tb = "2";
198
+ }
170
199
  if ("mso-rotate" in styles) cell.rt = parseFloat(styles["mso-rotate"]);
171
200
  var rowspan = parseInt(td.getAttribute("rowspan") || "1", 10);
172
201
  var colspan = parseInt(td.getAttribute("colspan") || "1", 10);
@@ -218,17 +247,19 @@ export function handlePastedTable(ctx, html, pasteHandler) {
218
247
  var localRowIndex = 0;
219
248
  tableRows.forEach(function (tr) {
220
249
  var _a;
250
+ var _b;
221
251
  var localColIndex = 0;
222
252
  var anchorRow = ctx.luckysheet_select_save[0].row[0];
223
253
  var targetRowIndex = anchorRow + localRowIndex;
224
254
  var explicitRowHeightAttr = tr.getAttribute("height");
225
255
  if (!_.isNil(explicitRowHeightAttr)) {
226
256
  var explicitRowHeight = parseInt(explicitRowHeightAttr, 10);
227
- var hasCustomRowHeight = _.has((_a = sheetFile.config) === null || _a === void 0 ? void 0 : _a.rowlen, targetRowIndex);
257
+ var hasCustomRowHeight = _.has((_b = sheetFile.config) === null || _b === void 0 ? void 0 : _b.rowlen, targetRowIndex);
228
258
  var currentRowHeight = hasCustomRowHeight ? sheetFile.config.rowlen[targetRowIndex] : sheetFile.defaultRowHeight;
229
259
  if (currentRowHeight !== explicitRowHeight) {
230
260
  rowHeightsConfig[targetRowIndex] = explicitRowHeight;
231
261
  }
262
+ setRowHeight(ctx, (_a = {}, _a[String(targetRowIndex)] = explicitRowHeight, _a));
232
263
  }
233
264
  tr.querySelectorAll("td, th").forEach(function (node) {
234
265
  var tdElement = node;
@@ -1163,9 +1163,12 @@ function resizePastedCellsToContent(ctx) {
1163
1163
  (0, _calculateRangeCellSize.updateSheetCellSizes)(ctx, sheetIdx, rangeCellSize);
1164
1164
  }
1165
1165
  function handlePaste(ctx, e) {
1166
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
1166
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
1167
1167
  var allowEdit = (0, _utils.isAllowEdit)(ctx);
1168
1168
  if (!allowEdit || ctx.isFlvReadOnly) return;
1169
+ if (!_selection.selectionCache.isPasteAction) {
1170
+ return;
1171
+ }
1169
1172
  if (_selection.selectionCache.isPasteAction) {
1170
1173
  ctx.luckysheetCellUpdate = [];
1171
1174
  _selection.selectionCache.isPasteAction = false;
@@ -1196,11 +1199,11 @@ function handlePaste(ctx, e) {
1196
1199
  }
1197
1200
  cpDataArr.push(cpRowArr);
1198
1201
  }
1199
- var copy_r1 = ctx.luckysheet_copy_save.copyRange[0].row[0];
1200
- var copy_r2 = ctx.luckysheet_copy_save.copyRange[0].row[1];
1201
- var copy_c1 = ctx.luckysheet_copy_save.copyRange[0].column[0];
1202
- var copy_c2 = ctx.luckysheet_copy_save.copyRange[0].column[1];
1203
- var copy_index = ctx.luckysheet_copy_save.dataSheetId;
1202
+ var copy_r1 = (_c = (_b = ctx.luckysheet_copy_save) === null || _b === void 0 ? void 0 : _b.copyRange[0]) === null || _c === void 0 ? void 0 : _c.row[0];
1203
+ var copy_r2 = (_e = (_d = ctx.luckysheet_copy_save) === null || _d === void 0 ? void 0 : _d.copyRange[0]) === null || _e === void 0 ? void 0 : _e.row[1];
1204
+ var copy_c1 = (_g = (_f = ctx.luckysheet_copy_save) === null || _f === void 0 ? void 0 : _f.copyRange[0]) === null || _g === void 0 ? void 0 : _g.column[0];
1205
+ var copy_c2 = (_j = (_h = ctx.luckysheet_copy_save) === null || _h === void 0 ? void 0 : _h.copyRange[0]) === null || _j === void 0 ? void 0 : _j.column[1];
1206
+ var copy_index = ctx.luckysheet_copy_save.dataSheetId || ctx.currentSheetId;
1204
1207
  var d = void 0;
1205
1208
  if (copy_index === ctx.currentSheetId) {
1206
1209
  d = (0, _context.getFlowdata)(ctx);
@@ -1222,15 +1225,15 @@ function handlePaste(ctx, e) {
1222
1225
  }
1223
1226
  var v = void 0;
1224
1227
  if (!_lodash.default.isNil(cell)) {
1225
- if (((_d = (_c = (_b = cell.ct) === null || _b === void 0 ? void 0 : _b.fa) === null || _c === void 0 ? void 0 : _c.indexOf("w")) !== null && _d !== void 0 ? _d : -1) > -1) {
1226
- v = (_f = (_e = d[r]) === null || _e === void 0 ? void 0 : _e[c]) === null || _f === void 0 ? void 0 : _f.v;
1228
+ if (((_m = (_l = (_k = cell.ct) === null || _k === void 0 ? void 0 : _k.fa) === null || _l === void 0 ? void 0 : _l.indexOf("w")) !== null && _m !== void 0 ? _m : -1) > -1) {
1229
+ v = (_p = (_o = d[r]) === null || _o === void 0 ? void 0 : _o[c]) === null || _p === void 0 ? void 0 : _p.v;
1227
1230
  } else {
1228
- v = (_h = (_g = d[r]) === null || _g === void 0 ? void 0 : _g[c]) === null || _h === void 0 ? void 0 : _h.m;
1231
+ v = (_r = (_q = d[r]) === null || _q === void 0 ? void 0 : _q[c]) === null || _r === void 0 ? void 0 : _r.m;
1229
1232
  }
1230
1233
  } else {
1231
1234
  v = "";
1232
1235
  }
1233
- if (_lodash.default.isNil(v) && ((_l = (_k = (_j = d[r]) === null || _j === void 0 ? void 0 : _j[c]) === null || _k === void 0 ? void 0 : _k.ct) === null || _l === void 0 ? void 0 : _l.t) === "inlineStr") {
1236
+ if (_lodash.default.isNil(v) && ((_u = (_t = (_s = d[r]) === null || _s === void 0 ? void 0 : _s[c]) === null || _t === void 0 ? void 0 : _t.ct) === null || _u === void 0 ? void 0 : _u.t) === "inlineStr") {
1234
1237
  v = d[r][c].ct.s.map(function (val) {
1235
1238
  return val.v;
1236
1239
  }).join("");
@@ -1248,10 +1251,10 @@ function handlePaste(ctx, e) {
1248
1251
  }
1249
1252
  }
1250
1253
  }
1251
- if (((_o = (_m = ctx.hooks).beforePaste) === null || _o === void 0 ? void 0 : _o.call(_m, ctx.luckysheet_select_save, txtdata)) === false) {
1254
+ if (((_w = (_v = ctx.hooks).beforePaste) === null || _w === void 0 ? void 0 : _w.call(_v, ctx.luckysheet_select_save, txtdata)) === false) {
1252
1255
  return;
1253
1256
  }
1254
- if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((_p = ctx.luckysheet_copy_save) === null || _p === void 0 ? void 0 : _p.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0 && isEqual) {
1257
+ if (txtdata.indexOf("fortune-copy-action-table") > -1 && ((_x = ctx.luckysheet_copy_save) === null || _x === void 0 ? void 0 : _x.copyRange) != null && ctx.luckysheet_copy_save.copyRange.length > 0 && isEqual) {
1255
1258
  if (ctx.luckysheet_paste_iscut) {
1256
1259
  ctx.luckysheet_paste_iscut = false;
1257
1260
  pasteHandlerOfCutPaste(ctx, ctx.luckysheet_copy_save);
@@ -1274,10 +1277,10 @@ function handlePaste(ctx, e) {
1274
1277
  var _txtdata = clipboardData.getData("text/html") || clipboardData.getData("text/plain");
1275
1278
  var embedUrl = (0, _modules.sanitizeDuneUrl)(_txtdata);
1276
1279
  if (embedUrl) {
1277
- var last = (_q = ctx.luckysheet_select_save) === null || _q === void 0 ? void 0 : _q[ctx.luckysheet_select_save.length - 1];
1280
+ var last = (_y = ctx.luckysheet_select_save) === null || _y === void 0 ? void 0 : _y[ctx.luckysheet_select_save.length - 1];
1278
1281
  if (last) {
1279
- var rowIndex = (_t = (_r = last.row_focus) !== null && _r !== void 0 ? _r : (_s = last.row) === null || _s === void 0 ? void 0 : _s[0]) !== null && _t !== void 0 ? _t : 0;
1280
- var colIndex = (_w = (_u = last.column_focus) !== null && _u !== void 0 ? _u : (_v = last.column) === null || _v === void 0 ? void 0 : _v[0]) !== null && _w !== void 0 ? _w : 0;
1282
+ var rowIndex = (_1 = (_z = last.row_focus) !== null && _z !== void 0 ? _z : (_0 = last.row) === null || _0 === void 0 ? void 0 : _0[0]) !== null && _1 !== void 0 ? _1 : 0;
1283
+ var colIndex = (_4 = (_2 = last.column_focus) !== null && _2 !== void 0 ? _2 : (_3 = last.column) === null || _3 === void 0 ? void 0 : _3[0]) !== null && _4 !== void 0 ? _4 : 0;
1281
1284
  var left = colIndex === 0 ? 0 : ctx.visibledatacolumn[colIndex - 1];
1282
1285
  var top_1 = rowIndex === 0 ? 0 : ctx.visibledatarow[rowIndex + 5];
1283
1286
  ctx.showDunePreview = {
@@ -92,14 +92,18 @@ function normalizedCellAttr(cell, attr, defaultFontSize) {
92
92
  }
93
93
  function normalizedAttr(data, r, c, attr) {
94
94
  if (!data || !data[r]) {
95
- console.warn("cell (%d, %d) is null", r, c);
96
95
  return null;
97
96
  }
98
97
  var cell = data[r][c];
99
98
  if (!cell) return undefined;
100
99
  return normalizedCellAttr(cell, attr);
101
100
  }
101
+ function newlinesToBr(text) {
102
+ if (!text) return "";
103
+ return text.replace(/\r\n|\r|\n/g, "<br />");
104
+ }
102
105
  function getCellValue(r, c, data, attr) {
106
+ var _a;
103
107
  if (!attr) {
104
108
  attr = "v";
105
109
  }
@@ -129,6 +133,9 @@ function getCellValue(r, c, data, attr) {
129
133
  } else if (d && d.ct && d.ct.t === "d") {
130
134
  retv = d.m;
131
135
  }
136
+ if ((d === null || d === void 0 ? void 0 : d.ct) && (0, _inlineString.isInlineStringCT)(d.ct) && (attr === "v" || attr === "m")) {
137
+ retv = newlinesToBr((_a = d.ct.s[0]) === null || _a === void 0 ? void 0 : _a.v);
138
+ }
132
139
  }
133
140
  if (retv === undefined) {
134
141
  retv = null;
@@ -1072,6 +1079,8 @@ function getStyleByCell(ctx, d, r, c) {
1072
1079
  } else {
1073
1080
  style.background = "".concat(value);
1074
1081
  }
1082
+ } else {
1083
+ style.background = "".concat(value);
1075
1084
  }
1076
1085
  }
1077
1086
  if ("ht" in cell) {
@@ -1080,8 +1089,18 @@ function getStyleByCell(ctx, d, r, c) {
1080
1089
  style.textAlign = "center";
1081
1090
  } else if (Number(value) === 2) {
1082
1091
  style.textAlign = "right";
1092
+ style.overflowWrap = "anywhere";
1083
1093
  }
1084
1094
  }
1095
+ if ("tb" in cell) {
1096
+ if (Number(cell.tb) === 2) {
1097
+ style.overflowWrap = "anywhere";
1098
+ }
1099
+ }
1100
+ if ("ff" in cell) {
1101
+ var value = normalizedCellAttr(cell, "ff");
1102
+ style.fontFamily = value;
1103
+ }
1085
1104
  if ("vt" in cell) {
1086
1105
  var value = normalizedCellAttr(cell, "vt");
1087
1106
  if (Number(value) === 0) {
@@ -1164,7 +1164,7 @@ function getHtmlBorderStyle(type, color) {
1164
1164
  return "".concat(style + color, ";");
1165
1165
  }
1166
1166
  function rangeValueToHtml(ctx, sheetId, ranges) {
1167
- var _a, _b, _c;
1167
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1168
1168
  var idx = (0, _utils.getSheetIndex)(ctx, sheetId);
1169
1169
  if (idx == null) return "";
1170
1170
  var sheet = ctx.luckysheetfile[idx];
@@ -1197,11 +1197,12 @@ function rangeValueToHtml(ctx, sheetId, ranges) {
1197
1197
  var colgroup = "";
1198
1198
  for (var i = 0; i < rowIndexArr.length; i += 1) {
1199
1199
  var r = rowIndexArr[i];
1200
- cpdata += "<tr>";
1200
+ var rowLen = (_e = (_d = (_c = sheet.config) === null || _c === void 0 ? void 0 : _c.rowlen) === null || _d === void 0 ? void 0 : _d[r.toString()]) !== null && _e !== void 0 ? _e : sheet.defaultRowHeight;
1201
+ cpdata += "<tr height=".concat(rowLen, "px >");
1201
1202
  var _loop_3 = function _loop_3(j) {
1202
1203
  var c = colIndexArr[j];
1203
1204
  var column = '<td ${span} style="${style}">';
1204
- var cell = (_c = d[r]) === null || _c === void 0 ? void 0 : _c[c];
1205
+ var cell = (_f = d[r]) === null || _f === void 0 ? void 0 : _f[c];
1205
1206
  if (cell != null) {
1206
1207
  var style = "";
1207
1208
  var span = "";
@@ -1213,11 +1214,14 @@ function rangeValueToHtml(ctx, sheetId, ranges) {
1213
1214
  }
1214
1215
  }
1215
1216
  if (c === colIndexArr[0]) {
1216
- if (_lodash.default.isNil(sheet.config) || _lodash.default.isNil(sheet.config.rowlen) || _lodash.default.isNil(sheet.config.rowlen[r.toString()])) {
1217
+ var rowLenValue = (_h = (_g = sheet.config) === null || _g === void 0 ? void 0 : _g.rowlen) === null || _h === void 0 ? void 0 : _h[r.toString()];
1218
+ var colLen = (_k = (_j = sheet.config) === null || _j === void 0 ? void 0 : _j.columnlen) === null || _k === void 0 ? void 0 : _k[c.toString()];
1219
+ if (_lodash.default.isNil(rowLenValue)) {
1217
1220
  style += "height:19px;";
1218
1221
  } else {
1219
- style += "height:".concat(sheet.config.rowlen[r.toString()], "px;");
1222
+ style += "height:".concat(rowLenValue, "px;");
1220
1223
  }
1224
+ style += "width:".concat(colLen !== null && colLen !== void 0 ? colLen : sheet.defaultColWidth, "px;");
1221
1225
  }
1222
1226
  var reg = /^(w|W)((0?)|(0\.0+))$/;
1223
1227
  var c_value = void 0;
@@ -1520,6 +1524,7 @@ function copy(ctx) {
1520
1524
  HasMC: HasMC
1521
1525
  };
1522
1526
  var cpdata = rangeValueToHtml(ctx, ctx.currentSheetId, ctx.luckysheet_select_save);
1527
+ cpdata = cpdata === null ? cpdata : cpdata.replace('<td style="', '<td style="white-space: pre-line;"');
1523
1528
  if (cpdata) {
1524
1529
  ctx.iscopyself = true;
1525
1530
  _clipboard.default.writeHtml(cpdata);
@@ -10,8 +10,19 @@ var _locale = require("./locale");
10
10
  var _modules = require("./modules");
11
11
  var _format = require("./modules/format");
12
12
  var _utils = require("./utils");
13
+ var _api = require("../src/api");
13
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
15
  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); }
16
+ var __assign = void 0 && (void 0).__assign || function () {
17
+ __assign = Object.assign || function (t) {
18
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
19
+ s = arguments[i];
20
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
15
26
  var DEFAULT_FONT_SIZE = exports.DEFAULT_FONT_SIZE = 12;
16
27
  var parseStylesheetPairs = function parseStylesheetPairs(styleInner) {
17
28
  var patternReg = /{([^}]*)}/g;
@@ -120,14 +131,28 @@ var detectHyperlink = function detectHyperlink(td) {
120
131
  }
121
132
  return null;
122
133
  };
134
+ function brToNewline(str) {
135
+ return str.replace(/<br\s*\/?>/gi, "\n");
136
+ }
123
137
  var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
124
138
  var _a;
125
- var _b, _c;
139
+ var _b, _c, _d;
126
140
  var cell = {};
127
141
  var rawText = (td.innerText || td.innerHTML || "").trim();
142
+ var isLineBreak = rawText.includes("<br />");
128
143
  if (!rawText) {
129
144
  cell.v = undefined;
130
145
  cell.m = "";
146
+ } else if (isLineBreak) {
147
+ var value = brToNewline(rawText);
148
+ cell = __assign(__assign({}, cell), {
149
+ ct: __assign(__assign({}, cell.ct), {
150
+ t: "inlineStr",
151
+ s: [{
152
+ v: value
153
+ }]
154
+ })
155
+ });
131
156
  } else {
132
157
  var mask = (0, _format.genarate)(rawText);
133
158
  _a = mask || [], cell.m = _a[0], cell.ct = _a[1], cell.v = _a[2];
@@ -174,7 +199,11 @@ var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
174
199
  } else {
175
200
  cell.vt = 2;
176
201
  }
177
- cell.tb = "1";
202
+ if (((_d = td === null || td === void 0 ? void 0 : td.style) === null || _d === void 0 ? void 0 : _d["overflow-wrap"]) === "anywhere") {
203
+ cell.tb = "2";
204
+ } else {
205
+ cell.tb = "2";
206
+ }
178
207
  if ("mso-rotate" in styles) cell.rt = parseFloat(styles["mso-rotate"]);
179
208
  var rowspan = parseInt(td.getAttribute("rowspan") || "1", 10);
180
209
  var colspan = parseInt(td.getAttribute("colspan") || "1", 10);
@@ -226,17 +255,19 @@ function handlePastedTable(ctx, html, pasteHandler) {
226
255
  var localRowIndex = 0;
227
256
  tableRows.forEach(function (tr) {
228
257
  var _a;
258
+ var _b;
229
259
  var localColIndex = 0;
230
260
  var anchorRow = ctx.luckysheet_select_save[0].row[0];
231
261
  var targetRowIndex = anchorRow + localRowIndex;
232
262
  var explicitRowHeightAttr = tr.getAttribute("height");
233
263
  if (!_lodash.default.isNil(explicitRowHeightAttr)) {
234
264
  var explicitRowHeight = parseInt(explicitRowHeightAttr, 10);
235
- var hasCustomRowHeight = _lodash.default.has((_a = sheetFile.config) === null || _a === void 0 ? void 0 : _a.rowlen, targetRowIndex);
265
+ var hasCustomRowHeight = _lodash.default.has((_b = sheetFile.config) === null || _b === void 0 ? void 0 : _b.rowlen, targetRowIndex);
236
266
  var currentRowHeight = hasCustomRowHeight ? sheetFile.config.rowlen[targetRowIndex] : sheetFile.defaultRowHeight;
237
267
  if (currentRowHeight !== explicitRowHeight) {
238
268
  rowHeightsConfig[targetRowIndex] = explicitRowHeight;
239
269
  }
270
+ (0, _api.setRowHeight)(ctx, (_a = {}, _a[String(targetRowIndex)] = explicitRowHeight, _a));
240
271
  }
241
272
  tr.querySelectorAll("td, th").forEach(function (node) {
242
273
  var tdElement = node;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fileverse-dev/fortune-core",
3
- "version": "1.2.55",
3
+ "version": "1.2.56-patch-1",
4
4
  "main": "lib/index.js",
5
5
  "module": "es/index.js",
6
6
  "typings": "lib/index.d.ts",