@leankylin-sheet/react 2.0.10 → 2.0.12
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/dist/components/FxEditor/CalcInfo.d.ts +3 -0
- package/dist/index.esm.js +92 -2
- package/dist/index.js +91 -1
- package/dist/index.umd.js +115 -1
- package/dist/index.umd.min.js +1 -1
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defaultContext, defaultSettings, getSheetIndex, colLocationByIndex, fixPositionOnFrozenCells, colLocation, getFlowdata, isAllowEdit, handleColumnHeaderMouseDown, handleColSizeHandleMouseDown, handleColFreezeHandleMouseDown, handleContextMenu, selectTitlesMap, selectTitlesRange, fixColumnStyleOverflowInFreeze, rowLocationByIndex, rowLocation, handleRowHeaderMouseDown, handleRowSizeHandleMouseDown, handleRowFreezeHandleMouseDown, fixRowStyleOverflowInFreeze, locale, getStyleByCell, getCellValue, createRangeHightlight, isInlineStringCell, getInlineStringHTML, valueShowEs, escapeHTMLTag, escapeScriptTag, moveToEnd, isShowHidenCR, cancelNormalSelected, moveHighlightCell, updateCell, israngeseleciton, handleFormulaInput, onSearchDialogMoveStart, replaceAll, replace, searchAll, searchNext, normalizeSelection, scrollToHighlightCell, isLinkValid, getRangetxt, goToLink, replaceHtml, removeHyperlink, onRangeSelectionModalMoveStart, saveHyperlink, createFilterOptions, onImageMoveStart, onImageResizeStart, showComments, setEditingComment, onCommentBoxMoveStart, onCommentBoxResizeStart, confirmMessage, getRangeByTxt, getDropdownList, setCellValue, setConditionRules, mergeBorder, setDropcownValue, handleCellAreaMouseDown, handleCellAreaDoubleClick, selectAll, showLinkCard, getCellRowColumn, getCellHyperlink, handleOverlayMouseMove, handleOverlayMouseUp, handleKeydownForZoom, handleOverlayTouchStart, handleOverlayTouchMove, handleOverlayTouchEnd, drawArrow, onCellsMoveStart, createDropCellRange, updateContextWithSheetData, updateContextWithCanvas, initFreeze, Canvas, handleGlobalWheel, setCaretPosition, getDataArr, updateMoreCell, getRegStr, getOptionValue, getSelectRange, applyLocation, updateItem, update, normalizedCellAttr, updateFormat, handleTextSize, handleHorizontalAlign, handleVerticalAlign, handleScreenShot, showImgChooser, insertImage, editComment, deleteComment, showHideComment, showHideAllComments, newComment, handleSum, autoSelectionFormula, handleMerge, handleBorder, handleFreeze, handleSort, createFilter, clearFilter, toolbarItemSelectedFunc, toolbarItemClickHandler, handleTextColor, handleTextBackground, getInlineStringNoStyle, rangeHightlightselected, editSheetName, cancelActiveImgItem, MAX_ZOOM_RATIO, MIN_ZOOM_RATIO, addSheet, indexToColumnChar, sortSelection, handleCopy, insertRowCol, deleteRowCol, hideSelected, showSelected, api, removeActiveImage, deleteSelectedCellText, jfrefreshgrid, handleLink, deleteSheet, opToPatch, orderbydatafiler, getFilterColumnValues, getFilterColumnColors, saveFilter, patchToOp, filterPatch, inverseRowColOptions, ensureSheetIndex, initSheetIndex, handleGlobalKeyDown, handlePasteByLeanklin, groupValuesRefresh } from '@leankylin-sheet/core';
|
|
1
|
+
import { defaultContext, defaultSettings, getSheetIndex, colLocationByIndex, fixPositionOnFrozenCells, colLocation, getFlowdata, isAllowEdit, handleColumnHeaderMouseDown, handleColSizeHandleMouseDown, handleColFreezeHandleMouseDown, handleContextMenu, selectTitlesMap, selectTitlesRange, fixColumnStyleOverflowInFreeze, rowLocationByIndex, rowLocation, handleRowHeaderMouseDown, handleRowSizeHandleMouseDown, handleRowFreezeHandleMouseDown, fixRowStyleOverflowInFreeze, locale, getStyleByCell, getCellValue, createRangeHightlight, isInlineStringCell, getInlineStringHTML, valueShowEs, escapeHTMLTag, escapeScriptTag, moveToEnd, isShowHidenCR, cancelNormalSelected, moveHighlightCell, updateCell, israngeseleciton, handleFormulaInput, onSearchDialogMoveStart, replaceAll, replace, searchAll, searchNext, normalizeSelection, scrollToHighlightCell, isLinkValid, getRangetxt, goToLink, replaceHtml, removeHyperlink, onRangeSelectionModalMoveStart, saveHyperlink, createFilterOptions, onImageMoveStart, onImageResizeStart, showComments, setEditingComment, onCommentBoxMoveStart, onCommentBoxResizeStart, confirmMessage, getRangeByTxt, getDropdownList, setCellValue, setConditionRules, mergeBorder, setDropcownValue, handleCellAreaMouseDown, handleCellAreaDoubleClick, selectAll, showLinkCard, getCellRowColumn, getCellHyperlink, handleOverlayMouseMove, handleOverlayMouseUp, handleKeydownForZoom, handleOverlayTouchStart, handleOverlayTouchMove, handleOverlayTouchEnd, drawArrow, onCellsMoveStart, createDropCellRange, updateContextWithSheetData, updateContextWithCanvas, initFreeze, Canvas, handleGlobalWheel, setCaretPosition, getDataArr, updateMoreCell, getRegStr, getOptionValue, getSelectRange, applyLocation, updateItem, update, normalizedCellAttr, updateFormat, handleTextSize, handleHorizontalAlign, handleVerticalAlign, handleScreenShot, showImgChooser, insertImage, editComment, deleteComment, showHideComment, showHideAllComments, newComment, handleSum, autoSelectionFormula, handleMerge, handleBorder, handleFreeze, handleSort, createFilter, clearFilter, toolbarItemSelectedFunc, toolbarItemClickHandler, handleTextColor, handleTextBackground, getDataBySelectionNoCopy, getInlineStringNoStyle, rangeHightlightselected, editSheetName, cancelActiveImgItem, MAX_ZOOM_RATIO, MIN_ZOOM_RATIO, addSheet, indexToColumnChar, sortSelection, handleCopy, insertRowCol, deleteRowCol, hideSelected, showSelected, api, removeActiveImage, deleteSelectedCellText, jfrefreshgrid, handleLink, deleteSheet, opToPatch, orderbydatafiler, getFilterColumnValues, getFilterColumnColors, saveFilter, patchToOp, filterPatch, inverseRowColOptions, ensureSheetIndex, initSheetIndex, handleGlobalKeyDown, handlePasteByLeanklin, groupValuesRefresh } from '@leankylin-sheet/core';
|
|
2
2
|
import React, { useContext, useRef, useState, useMemo, useCallback, useEffect, useLayoutEffect, useImperativeHandle } from 'react';
|
|
3
3
|
import produce, { applyPatches, enablePatches, produceWithPatches } from 'immer';
|
|
4
4
|
import _ from 'lodash';
|
|
@@ -6324,6 +6324,96 @@ var LocationBox = function LocationBox() {
|
|
|
6324
6324
|
}, rangeText));
|
|
6325
6325
|
};
|
|
6326
6326
|
|
|
6327
|
+
var intThousands = function intThousands(number) {
|
|
6328
|
+
var groupSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ",";
|
|
6329
|
+
return String(number).replace(/\B(?=(\d{3})+(?!\d))/g, groupSeparator);
|
|
6330
|
+
};
|
|
6331
|
+
var numberThousands = function numberThousands(num, groupSeparator, precision) {
|
|
6332
|
+
var number = Number(num).toFixed(precision);
|
|
6333
|
+
var _String$split = String(number).split("."),
|
|
6334
|
+
_String$split2 = _slicedToArray(_String$split, 2),
|
|
6335
|
+
init = _String$split2[0],
|
|
6336
|
+
decimal = _String$split2[1];
|
|
6337
|
+
if (precision) {
|
|
6338
|
+
return "".concat(intThousands(init, groupSeparator), ".").concat(decimal);
|
|
6339
|
+
}
|
|
6340
|
+
return intThousands(init, groupSeparator);
|
|
6341
|
+
};
|
|
6342
|
+
var CalcInfo = function CalcInfo() {
|
|
6343
|
+
var _useContext = useContext(WorkbookContext),
|
|
6344
|
+
context = _useContext.context,
|
|
6345
|
+
settings = _useContext.settings;
|
|
6346
|
+
var data = useMemo(function () {
|
|
6347
|
+
var _context$luckysheet_s;
|
|
6348
|
+
var firstSelection = (_context$luckysheet_s = context.luckysheet_select_save) === null || _context$luckysheet_s === void 0 ? void 0 : _context$luckysheet_s[0];
|
|
6349
|
+
if (!firstSelection) {
|
|
6350
|
+
return null;
|
|
6351
|
+
}
|
|
6352
|
+
var columns = firstSelection.column;
|
|
6353
|
+
var rows = firstSelection.row;
|
|
6354
|
+
if ((columns === null || columns === void 0 ? void 0 : columns.length) !== 2 || (rows === null || rows === void 0 ? void 0 : rows.length) !== 2) {
|
|
6355
|
+
return null;
|
|
6356
|
+
}
|
|
6357
|
+
if (columns[0] === columns[1] && rows[0] === rows[1]) {
|
|
6358
|
+
return null;
|
|
6359
|
+
}
|
|
6360
|
+
var selectData = getDataBySelectionNoCopy(context, firstSelection);
|
|
6361
|
+
var flatData = selectData.flat();
|
|
6362
|
+
var count = 0;
|
|
6363
|
+
var sum = 0;
|
|
6364
|
+
var max = null;
|
|
6365
|
+
var min = null;
|
|
6366
|
+
for (var index = 0; index < flatData.length; index += 1) {
|
|
6367
|
+
var cell = flatData[index];
|
|
6368
|
+
var value = Number(cell === null || cell === void 0 ? void 0 : cell.v);
|
|
6369
|
+
count += 1;
|
|
6370
|
+
if (Number.isNaN(value)) {
|
|
6371
|
+
continue;
|
|
6372
|
+
}
|
|
6373
|
+
if (max === null) {
|
|
6374
|
+
max = value;
|
|
6375
|
+
}
|
|
6376
|
+
if (min === null) {
|
|
6377
|
+
min = value;
|
|
6378
|
+
}
|
|
6379
|
+
max = Math.max(max, value);
|
|
6380
|
+
min = Math.min(min, value);
|
|
6381
|
+
sum += value;
|
|
6382
|
+
}
|
|
6383
|
+
return {
|
|
6384
|
+
sum: sum,
|
|
6385
|
+
count: count,
|
|
6386
|
+
average: count ? sum / count : null,
|
|
6387
|
+
max: max,
|
|
6388
|
+
min: min
|
|
6389
|
+
};
|
|
6390
|
+
}, [context.luckysheet_select_save]);
|
|
6391
|
+
var labelMap = {
|
|
6392
|
+
count: "计数",
|
|
6393
|
+
sum: "总和",
|
|
6394
|
+
average: "平均值",
|
|
6395
|
+
max: "最大值",
|
|
6396
|
+
min: "最小值"
|
|
6397
|
+
};
|
|
6398
|
+
if (settings.renderCalcInfo) {
|
|
6399
|
+
return settings.renderCalcInfo(data, context.luckysheet_select_save);
|
|
6400
|
+
}
|
|
6401
|
+
if (!data) {
|
|
6402
|
+
return null;
|
|
6403
|
+
}
|
|
6404
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
6405
|
+
style: {
|
|
6406
|
+
fontSize: 12
|
|
6407
|
+
}
|
|
6408
|
+
}, Object.keys(labelMap).map(function (key) {
|
|
6409
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
6410
|
+
style: {
|
|
6411
|
+
marginRight: 10
|
|
6412
|
+
}
|
|
6413
|
+
}, labelMap[key], ":", key === "count" ? data[key] : numberThousands(data[key], ",", 2));
|
|
6414
|
+
}));
|
|
6415
|
+
};
|
|
6416
|
+
|
|
6327
6417
|
var FxEditor = function FxEditor() {
|
|
6328
6418
|
var _context$luckysheet_s;
|
|
6329
6419
|
var _useContext = useContext(WorkbookContext),
|
|
@@ -6487,7 +6577,7 @@ var FxEditor = function FxEditor() {
|
|
|
6487
6577
|
},
|
|
6488
6578
|
tabIndex: 0,
|
|
6489
6579
|
allowEdit: allowEdit
|
|
6490
|
-
}), settings === null || settings === void 0 ? void 0 : settings.fxContainer, focused && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormulaSearch, {
|
|
6580
|
+
}), /*#__PURE__*/React.createElement(CalcInfo, null), settings === null || settings === void 0 ? void 0 : settings.fxContainer, focused && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormulaSearch, {
|
|
6491
6581
|
style: {
|
|
6492
6582
|
top: inputContainerRef.current.clientHeight
|
|
6493
6583
|
}
|
package/dist/index.js
CHANGED
|
@@ -6334,6 +6334,96 @@ var LocationBox = function LocationBox() {
|
|
|
6334
6334
|
}, rangeText));
|
|
6335
6335
|
};
|
|
6336
6336
|
|
|
6337
|
+
var intThousands = function intThousands(number) {
|
|
6338
|
+
var groupSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ",";
|
|
6339
|
+
return String(number).replace(/\B(?=(\d{3})+(?!\d))/g, groupSeparator);
|
|
6340
|
+
};
|
|
6341
|
+
var numberThousands = function numberThousands(num, groupSeparator, precision) {
|
|
6342
|
+
var number = Number(num).toFixed(precision);
|
|
6343
|
+
var _String$split = String(number).split("."),
|
|
6344
|
+
_String$split2 = _slicedToArray(_String$split, 2),
|
|
6345
|
+
init = _String$split2[0],
|
|
6346
|
+
decimal = _String$split2[1];
|
|
6347
|
+
if (precision) {
|
|
6348
|
+
return "".concat(intThousands(init, groupSeparator), ".").concat(decimal);
|
|
6349
|
+
}
|
|
6350
|
+
return intThousands(init, groupSeparator);
|
|
6351
|
+
};
|
|
6352
|
+
var CalcInfo = function CalcInfo() {
|
|
6353
|
+
var _useContext = React.useContext(WorkbookContext),
|
|
6354
|
+
context = _useContext.context,
|
|
6355
|
+
settings = _useContext.settings;
|
|
6356
|
+
var data = React.useMemo(function () {
|
|
6357
|
+
var _context$luckysheet_s;
|
|
6358
|
+
var firstSelection = (_context$luckysheet_s = context.luckysheet_select_save) === null || _context$luckysheet_s === void 0 ? void 0 : _context$luckysheet_s[0];
|
|
6359
|
+
if (!firstSelection) {
|
|
6360
|
+
return null;
|
|
6361
|
+
}
|
|
6362
|
+
var columns = firstSelection.column;
|
|
6363
|
+
var rows = firstSelection.row;
|
|
6364
|
+
if ((columns === null || columns === void 0 ? void 0 : columns.length) !== 2 || (rows === null || rows === void 0 ? void 0 : rows.length) !== 2) {
|
|
6365
|
+
return null;
|
|
6366
|
+
}
|
|
6367
|
+
if (columns[0] === columns[1] && rows[0] === rows[1]) {
|
|
6368
|
+
return null;
|
|
6369
|
+
}
|
|
6370
|
+
var selectData = core.getDataBySelectionNoCopy(context, firstSelection);
|
|
6371
|
+
var flatData = selectData.flat();
|
|
6372
|
+
var count = 0;
|
|
6373
|
+
var sum = 0;
|
|
6374
|
+
var max = null;
|
|
6375
|
+
var min = null;
|
|
6376
|
+
for (var index = 0; index < flatData.length; index += 1) {
|
|
6377
|
+
var cell = flatData[index];
|
|
6378
|
+
var value = Number(cell === null || cell === void 0 ? void 0 : cell.v);
|
|
6379
|
+
count += 1;
|
|
6380
|
+
if (Number.isNaN(value)) {
|
|
6381
|
+
continue;
|
|
6382
|
+
}
|
|
6383
|
+
if (max === null) {
|
|
6384
|
+
max = value;
|
|
6385
|
+
}
|
|
6386
|
+
if (min === null) {
|
|
6387
|
+
min = value;
|
|
6388
|
+
}
|
|
6389
|
+
max = Math.max(max, value);
|
|
6390
|
+
min = Math.min(min, value);
|
|
6391
|
+
sum += value;
|
|
6392
|
+
}
|
|
6393
|
+
return {
|
|
6394
|
+
sum: sum,
|
|
6395
|
+
count: count,
|
|
6396
|
+
average: count ? sum / count : null,
|
|
6397
|
+
max: max,
|
|
6398
|
+
min: min
|
|
6399
|
+
};
|
|
6400
|
+
}, [context.luckysheet_select_save]);
|
|
6401
|
+
var labelMap = {
|
|
6402
|
+
count: "计数",
|
|
6403
|
+
sum: "总和",
|
|
6404
|
+
average: "平均值",
|
|
6405
|
+
max: "最大值",
|
|
6406
|
+
min: "最小值"
|
|
6407
|
+
};
|
|
6408
|
+
if (settings.renderCalcInfo) {
|
|
6409
|
+
return settings.renderCalcInfo(data, context.luckysheet_select_save);
|
|
6410
|
+
}
|
|
6411
|
+
if (!data) {
|
|
6412
|
+
return null;
|
|
6413
|
+
}
|
|
6414
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6415
|
+
style: {
|
|
6416
|
+
fontSize: 12
|
|
6417
|
+
}
|
|
6418
|
+
}, Object.keys(labelMap).map(function (key) {
|
|
6419
|
+
return /*#__PURE__*/React__default['default'].createElement("span", {
|
|
6420
|
+
style: {
|
|
6421
|
+
marginRight: 10
|
|
6422
|
+
}
|
|
6423
|
+
}, labelMap[key], ":", key === "count" ? data[key] : numberThousands(data[key], ",", 2));
|
|
6424
|
+
}));
|
|
6425
|
+
};
|
|
6426
|
+
|
|
6337
6427
|
var FxEditor = function FxEditor() {
|
|
6338
6428
|
var _context$luckysheet_s;
|
|
6339
6429
|
var _useContext = React.useContext(WorkbookContext),
|
|
@@ -6497,7 +6587,7 @@ var FxEditor = function FxEditor() {
|
|
|
6497
6587
|
},
|
|
6498
6588
|
tabIndex: 0,
|
|
6499
6589
|
allowEdit: allowEdit
|
|
6500
|
-
}), settings === null || settings === void 0 ? void 0 : settings.fxContainer, focused && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(FormulaSearch, {
|
|
6590
|
+
}), /*#__PURE__*/React__default['default'].createElement(CalcInfo, null), settings === null || settings === void 0 ? void 0 : settings.fxContainer, focused && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(FormulaSearch, {
|
|
6501
6591
|
style: {
|
|
6502
6592
|
top: inputContainerRef.current.clientHeight
|
|
6503
6593
|
}
|
package/dist/index.umd.js
CHANGED
|
@@ -85137,6 +85137,30 @@
|
|
|
85137
85137
|
function luckysheetUpdateCell(ctx, row_index, col_index) {
|
|
85138
85138
|
ctx.luckysheetCellUpdate = [row_index, col_index];
|
|
85139
85139
|
}
|
|
85140
|
+
function getDataBySelectionNoCopy(ctx, range) {
|
|
85141
|
+
if (!range || !range.row || range.row.length === 0) return [];
|
|
85142
|
+
var data = [];
|
|
85143
|
+
var flowData = getFlowdata(ctx);
|
|
85144
|
+
if (!flowData) return [];
|
|
85145
|
+
for (var r = range.row[0]; r <= range.row[1]; r += 1) {
|
|
85146
|
+
var row = [];
|
|
85147
|
+
if (ctx.config.rowhidden != null && ctx.config.rowhidden[r] != null) {
|
|
85148
|
+
continue;
|
|
85149
|
+
}
|
|
85150
|
+
for (var c = range.column[0]; c <= range.column[1]; c += 1) {
|
|
85151
|
+
var value = null;
|
|
85152
|
+
if (ctx.config.colhidden != null && ctx.config.colhidden[c] != null) {
|
|
85153
|
+
continue;
|
|
85154
|
+
}
|
|
85155
|
+
if (flowData[r] != null && flowData[r][c] != null) {
|
|
85156
|
+
value = flowData[r][c];
|
|
85157
|
+
}
|
|
85158
|
+
row.push(value);
|
|
85159
|
+
}
|
|
85160
|
+
data.push(row);
|
|
85161
|
+
}
|
|
85162
|
+
return data;
|
|
85163
|
+
}
|
|
85140
85164
|
|
|
85141
85165
|
var clipboard = /*#__PURE__*/function () {
|
|
85142
85166
|
function clipboard() {
|
|
@@ -108542,6 +108566,96 @@
|
|
|
108542
108566
|
}, rangeText));
|
|
108543
108567
|
};
|
|
108544
108568
|
|
|
108569
|
+
var intThousands$1 = function intThousands(number) {
|
|
108570
|
+
var groupSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ",";
|
|
108571
|
+
return String(number).replace(/\B(?=(\d{3})+(?!\d))/g, groupSeparator);
|
|
108572
|
+
};
|
|
108573
|
+
var numberThousands$1 = function numberThousands(num, groupSeparator, precision) {
|
|
108574
|
+
var number = Number(num).toFixed(precision);
|
|
108575
|
+
var _String$split = String(number).split("."),
|
|
108576
|
+
_String$split2 = _slicedToArray(_String$split, 2),
|
|
108577
|
+
init = _String$split2[0],
|
|
108578
|
+
decimal = _String$split2[1];
|
|
108579
|
+
if (precision) {
|
|
108580
|
+
return "".concat(intThousands$1(init, groupSeparator), ".").concat(decimal);
|
|
108581
|
+
}
|
|
108582
|
+
return intThousands$1(init, groupSeparator);
|
|
108583
|
+
};
|
|
108584
|
+
var CalcInfo = function CalcInfo() {
|
|
108585
|
+
var _useContext = React.useContext(WorkbookContext),
|
|
108586
|
+
context = _useContext.context,
|
|
108587
|
+
settings = _useContext.settings;
|
|
108588
|
+
var data = React.useMemo(function () {
|
|
108589
|
+
var _context$luckysheet_s;
|
|
108590
|
+
var firstSelection = (_context$luckysheet_s = context.luckysheet_select_save) === null || _context$luckysheet_s === void 0 ? void 0 : _context$luckysheet_s[0];
|
|
108591
|
+
if (!firstSelection) {
|
|
108592
|
+
return null;
|
|
108593
|
+
}
|
|
108594
|
+
var columns = firstSelection.column;
|
|
108595
|
+
var rows = firstSelection.row;
|
|
108596
|
+
if ((columns === null || columns === void 0 ? void 0 : columns.length) !== 2 || (rows === null || rows === void 0 ? void 0 : rows.length) !== 2) {
|
|
108597
|
+
return null;
|
|
108598
|
+
}
|
|
108599
|
+
if (columns[0] === columns[1] && rows[0] === rows[1]) {
|
|
108600
|
+
return null;
|
|
108601
|
+
}
|
|
108602
|
+
var selectData = getDataBySelectionNoCopy(context, firstSelection);
|
|
108603
|
+
var flatData = selectData.flat();
|
|
108604
|
+
var count = 0;
|
|
108605
|
+
var sum = 0;
|
|
108606
|
+
var max = null;
|
|
108607
|
+
var min = null;
|
|
108608
|
+
for (var index = 0; index < flatData.length; index += 1) {
|
|
108609
|
+
var cell = flatData[index];
|
|
108610
|
+
var value = Number(cell === null || cell === void 0 ? void 0 : cell.v);
|
|
108611
|
+
count += 1;
|
|
108612
|
+
if (Number.isNaN(value)) {
|
|
108613
|
+
continue;
|
|
108614
|
+
}
|
|
108615
|
+
if (max === null) {
|
|
108616
|
+
max = value;
|
|
108617
|
+
}
|
|
108618
|
+
if (min === null) {
|
|
108619
|
+
min = value;
|
|
108620
|
+
}
|
|
108621
|
+
max = Math.max(max, value);
|
|
108622
|
+
min = Math.min(min, value);
|
|
108623
|
+
sum += value;
|
|
108624
|
+
}
|
|
108625
|
+
return {
|
|
108626
|
+
sum: sum,
|
|
108627
|
+
count: count,
|
|
108628
|
+
average: count ? sum / count : null,
|
|
108629
|
+
max: max,
|
|
108630
|
+
min: min
|
|
108631
|
+
};
|
|
108632
|
+
}, [context.luckysheet_select_save]);
|
|
108633
|
+
var labelMap = {
|
|
108634
|
+
count: "计数",
|
|
108635
|
+
sum: "总和",
|
|
108636
|
+
average: "平均值",
|
|
108637
|
+
max: "最大值",
|
|
108638
|
+
min: "最小值"
|
|
108639
|
+
};
|
|
108640
|
+
if (settings.renderCalcInfo) {
|
|
108641
|
+
return settings.renderCalcInfo(data, context.luckysheet_select_save);
|
|
108642
|
+
}
|
|
108643
|
+
if (!data) {
|
|
108644
|
+
return null;
|
|
108645
|
+
}
|
|
108646
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
108647
|
+
style: {
|
|
108648
|
+
fontSize: 12
|
|
108649
|
+
}
|
|
108650
|
+
}, Object.keys(labelMap).map(function (key) {
|
|
108651
|
+
return /*#__PURE__*/React__default['default'].createElement("span", {
|
|
108652
|
+
style: {
|
|
108653
|
+
marginRight: 10
|
|
108654
|
+
}
|
|
108655
|
+
}, labelMap[key], ":", key === "count" ? data[key] : numberThousands$1(data[key], ",", 2));
|
|
108656
|
+
}));
|
|
108657
|
+
};
|
|
108658
|
+
|
|
108545
108659
|
var FxEditor = function FxEditor() {
|
|
108546
108660
|
var _context$luckysheet_s;
|
|
108547
108661
|
var _useContext = React.useContext(WorkbookContext),
|
|
@@ -108705,7 +108819,7 @@
|
|
|
108705
108819
|
},
|
|
108706
108820
|
tabIndex: 0,
|
|
108707
108821
|
allowEdit: allowEdit
|
|
108708
|
-
}), settings === null || settings === void 0 ? void 0 : settings.fxContainer, focused && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(FormulaSearch, {
|
|
108822
|
+
}), /*#__PURE__*/React__default['default'].createElement(CalcInfo, null), settings === null || settings === void 0 ? void 0 : settings.fxContainer, focused && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(FormulaSearch, {
|
|
108709
108823
|
style: {
|
|
108710
108824
|
top: inputContainerRef.current.clientHeight
|
|
108711
108825
|
}
|