@leankylin-sheet/react 5.2.58 → 5.2.60
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/index.css +17 -8
- package/dist/index.esm.css +17 -8
- package/dist/index.esm.js +85 -10
- package/dist/index.js +84 -9
- package/dist/index.umd.css +17 -8
- package/dist/index.umd.js +84 -9
- package/dist/index.umd.min.css +1 -1
- package/dist/index.umd.min.js +1 -1
- package/package.json +3 -3
package/dist/index.css
CHANGED
|
@@ -1579,8 +1579,9 @@ html::-webkit-scrollbar-button {
|
|
|
1579
1579
|
color: #555;
|
|
1580
1580
|
}
|
|
1581
1581
|
|
|
1582
|
-
/*
|
|
1583
|
-
#leankylin-search-replace #searchTypeSelect
|
|
1582
|
+
/* 搜索范围/搜索区域下拉 - 与查找/替换输入行同样的布局,select 展开至 input 相同宽度 */
|
|
1583
|
+
#leankylin-search-replace #searchTypeSelect,
|
|
1584
|
+
#leankylin-search-replace #searchRangeSelect {
|
|
1584
1585
|
display: flex;
|
|
1585
1586
|
align-items: center;
|
|
1586
1587
|
gap: 8px;
|
|
@@ -1589,11 +1590,13 @@ html::-webkit-scrollbar-button {
|
|
|
1589
1590
|
white-space: nowrap;
|
|
1590
1591
|
}
|
|
1591
1592
|
|
|
1592
|
-
#leankylin-search-replace #searchTypeSelect > span
|
|
1593
|
+
#leankylin-search-replace #searchTypeSelect > span,
|
|
1594
|
+
#leankylin-search-replace #searchRangeSelect > span {
|
|
1593
1595
|
flex-shrink: 0;
|
|
1594
1596
|
}
|
|
1595
1597
|
|
|
1596
|
-
#leankylin-search-replace #searchTypeSelect select
|
|
1598
|
+
#leankylin-search-replace #searchTypeSelect select,
|
|
1599
|
+
#leankylin-search-replace #searchRangeSelect select {
|
|
1597
1600
|
flex: 1;
|
|
1598
1601
|
width: auto;
|
|
1599
1602
|
height: 32px;
|
|
@@ -1615,11 +1618,13 @@ html::-webkit-scrollbar-button {
|
|
|
1615
1618
|
box-sizing: border-box;
|
|
1616
1619
|
}
|
|
1617
1620
|
|
|
1618
|
-
#leankylin-search-replace #searchTypeSelect select:hover
|
|
1621
|
+
#leankylin-search-replace #searchTypeSelect select:hover,
|
|
1622
|
+
#leankylin-search-replace #searchRangeSelect select:hover {
|
|
1619
1623
|
border-color: #b0aefe;
|
|
1620
1624
|
}
|
|
1621
1625
|
|
|
1622
|
-
#leankylin-search-replace #searchTypeSelect select:focus
|
|
1626
|
+
#leankylin-search-replace #searchTypeSelect select:focus,
|
|
1627
|
+
#leankylin-search-replace #searchRangeSelect select:focus {
|
|
1623
1628
|
border-color: #8C89FE;
|
|
1624
1629
|
box-shadow: 0 0 0 3px rgba(140, 137, 254, 0.12);
|
|
1625
1630
|
}
|
|
@@ -1650,10 +1655,14 @@ html::-webkit-scrollbar-button {
|
|
|
1650
1655
|
background-color: #f9f9ff;
|
|
1651
1656
|
}
|
|
1652
1657
|
|
|
1653
|
-
/*
|
|
1658
|
+
/* 关闭按钮:始终固定于弹窗右下角,宽度紧凑 */
|
|
1654
1659
|
#leankylin-search-replace .close-button {
|
|
1660
|
+
position: sticky;
|
|
1661
|
+
bottom: 12px;
|
|
1662
|
+
align-self: flex-end;
|
|
1663
|
+
flex-shrink: 0;
|
|
1655
1664
|
margin: 12px 0 0;
|
|
1656
|
-
padding: 6px
|
|
1665
|
+
padding: 6px 14px;
|
|
1657
1666
|
border-radius: 6px;
|
|
1658
1667
|
font-size: 13px;
|
|
1659
1668
|
transition: all 0.15s;
|
package/dist/index.esm.css
CHANGED
|
@@ -1579,8 +1579,9 @@ html::-webkit-scrollbar-button {
|
|
|
1579
1579
|
color: #555;
|
|
1580
1580
|
}
|
|
1581
1581
|
|
|
1582
|
-
/*
|
|
1583
|
-
#leankylin-search-replace #searchTypeSelect
|
|
1582
|
+
/* 搜索范围/搜索区域下拉 - 与查找/替换输入行同样的布局,select 展开至 input 相同宽度 */
|
|
1583
|
+
#leankylin-search-replace #searchTypeSelect,
|
|
1584
|
+
#leankylin-search-replace #searchRangeSelect {
|
|
1584
1585
|
display: flex;
|
|
1585
1586
|
align-items: center;
|
|
1586
1587
|
gap: 8px;
|
|
@@ -1589,11 +1590,13 @@ html::-webkit-scrollbar-button {
|
|
|
1589
1590
|
white-space: nowrap;
|
|
1590
1591
|
}
|
|
1591
1592
|
|
|
1592
|
-
#leankylin-search-replace #searchTypeSelect > span
|
|
1593
|
+
#leankylin-search-replace #searchTypeSelect > span,
|
|
1594
|
+
#leankylin-search-replace #searchRangeSelect > span {
|
|
1593
1595
|
flex-shrink: 0;
|
|
1594
1596
|
}
|
|
1595
1597
|
|
|
1596
|
-
#leankylin-search-replace #searchTypeSelect select
|
|
1598
|
+
#leankylin-search-replace #searchTypeSelect select,
|
|
1599
|
+
#leankylin-search-replace #searchRangeSelect select {
|
|
1597
1600
|
flex: 1;
|
|
1598
1601
|
width: auto;
|
|
1599
1602
|
height: 32px;
|
|
@@ -1615,11 +1618,13 @@ html::-webkit-scrollbar-button {
|
|
|
1615
1618
|
box-sizing: border-box;
|
|
1616
1619
|
}
|
|
1617
1620
|
|
|
1618
|
-
#leankylin-search-replace #searchTypeSelect select:hover
|
|
1621
|
+
#leankylin-search-replace #searchTypeSelect select:hover,
|
|
1622
|
+
#leankylin-search-replace #searchRangeSelect select:hover {
|
|
1619
1623
|
border-color: #b0aefe;
|
|
1620
1624
|
}
|
|
1621
1625
|
|
|
1622
|
-
#leankylin-search-replace #searchTypeSelect select:focus
|
|
1626
|
+
#leankylin-search-replace #searchTypeSelect select:focus,
|
|
1627
|
+
#leankylin-search-replace #searchRangeSelect select:focus {
|
|
1623
1628
|
border-color: #8C89FE;
|
|
1624
1629
|
box-shadow: 0 0 0 3px rgba(140, 137, 254, 0.12);
|
|
1625
1630
|
}
|
|
@@ -1650,10 +1655,14 @@ html::-webkit-scrollbar-button {
|
|
|
1650
1655
|
background-color: #f9f9ff;
|
|
1651
1656
|
}
|
|
1652
1657
|
|
|
1653
|
-
/*
|
|
1658
|
+
/* 关闭按钮:始终固定于弹窗右下角,宽度紧凑 */
|
|
1654
1659
|
#leankylin-search-replace .close-button {
|
|
1660
|
+
position: sticky;
|
|
1661
|
+
bottom: 12px;
|
|
1662
|
+
align-self: flex-end;
|
|
1663
|
+
flex-shrink: 0;
|
|
1655
1664
|
margin: 12px 0 0;
|
|
1656
|
-
padding: 6px
|
|
1665
|
+
padding: 6px 14px;
|
|
1657
1666
|
border-radius: 6px;
|
|
1658
1667
|
font-size: 13px;
|
|
1659
1668
|
transition: all 0.15s;
|
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, functionHTMLGenerate, locale, getCellValue, createRangeHightlight, isInlineStringCell, getInlineStringHTML, valueShowEs, escapeHTMLTag, escapeScriptTag, isShowHidenCR, cancelNormalSelected, moveHighlightCell, updateCell, israngeseleciton, handleFormulaInput, onSearchDialogMoveStart, replaceAll, replace, searchAll, searchNext, changeSheet, normalizeSelection, scrollToHighlightCell, isLinkValid, getRangetxt, goToLink, replaceHtml, removeHyperlink, onRangeSelectionModalMoveStart, saveHyperlink, createFilterOptions, onImageMoveStart, onImageResizeStart, showComments, setEditingComment, onCommentBoxMoveStart, onCommentBoxResizeStart, confirmMessage, getRangeByTxt, getDropdownList, setCellValue, setConditionRules, mergeBorder, setDropcownValue, handleCellAreaMouseDown, handleCellAreaMouseMove, handleCellAreaDragOver, handleCellDrop, handleCellAreaDoubleClick, selectAll, showLinkCard, getCellRowColumn, getCellHyperlink, handleOverlayMouseMove, handleOverlayMouseUp, handleKeydownForZoom, handleOverlayTouchStart, handleOverlayTouchMove, handleOverlayTouchEnd, onCellsMoveStart, createDropCellRange, handleDropCellDoubleClick, 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, setNextSheet, 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, cancelActiveImgItem, 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, functionHTMLGenerate, locale, getCellValue, createRangeHightlight, isInlineStringCell, getInlineStringHTML, valueShowEs, escapeHTMLTag, escapeScriptTag, isShowHidenCR, cancelNormalSelected, moveHighlightCell, updateCell, israngeseleciton, handleFormulaInput, onSearchDialogMoveStart, replaceAll, replace, searchAll, searchNext, changeSheet, normalizeSelection, scrollToHighlightCell, chatatABC, isLinkValid, getRangetxt, goToLink, replaceHtml, removeHyperlink, onRangeSelectionModalMoveStart, saveHyperlink, createFilterOptions, onImageMoveStart, onImageResizeStart, showComments, setEditingComment, onCommentBoxMoveStart, onCommentBoxResizeStart, confirmMessage, getRangeByTxt, getDropdownList, setCellValue, setConditionRules, mergeBorder, setDropcownValue, handleCellAreaMouseDown, handleCellAreaMouseMove, handleCellAreaDragOver, handleCellDrop, handleCellAreaDoubleClick, selectAll, showLinkCard, getCellRowColumn, getCellHyperlink, handleOverlayMouseMove, handleOverlayMouseUp, handleKeydownForZoom, handleOverlayTouchStart, handleOverlayTouchMove, handleOverlayTouchEnd, onCellsMoveStart, createDropCellRange, handleDropCellDoubleClick, 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, setNextSheet, 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, cancelActiveImgItem, 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';
|
|
@@ -1585,6 +1585,29 @@ function useAlert() {
|
|
|
1585
1585
|
};
|
|
1586
1586
|
}
|
|
1587
1587
|
|
|
1588
|
+
function getSelectionRangeName(selection) {
|
|
1589
|
+
if (selection == null || selection.length === 0) return null;
|
|
1590
|
+
var names = [];
|
|
1591
|
+
var _iterator = _createForOfIteratorHelper(selection),
|
|
1592
|
+
_step;
|
|
1593
|
+
try {
|
|
1594
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1595
|
+
var item = _step.value;
|
|
1596
|
+
var row = item.row,
|
|
1597
|
+
column = item.column;
|
|
1598
|
+
var row1 = Math.min(row[0], row[1]);
|
|
1599
|
+
var row2 = Math.max(row[0], row[1]);
|
|
1600
|
+
var col1 = Math.min(column[0], column[1]);
|
|
1601
|
+
var col2 = Math.max(column[0], column[1]);
|
|
1602
|
+
names.push(row1 === row2 && col1 === col2 ? "".concat(chatatABC(col1)).concat(row1 + 1) : "".concat(chatatABC(col1)).concat(row1 + 1, ":").concat(chatatABC(col2)).concat(row2 + 1));
|
|
1603
|
+
}
|
|
1604
|
+
} catch (err) {
|
|
1605
|
+
_iterator.e(err);
|
|
1606
|
+
} finally {
|
|
1607
|
+
_iterator.f();
|
|
1608
|
+
}
|
|
1609
|
+
return names.join(",");
|
|
1610
|
+
}
|
|
1588
1611
|
var SearchReplace = function SearchReplace() {
|
|
1589
1612
|
var _useContext = useContext(WorkbookContext),
|
|
1590
1613
|
context = _useContext.context,
|
|
@@ -1627,6 +1650,33 @@ var SearchReplace = function SearchReplace() {
|
|
|
1627
1650
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
1628
1651
|
searchType = _useState14[0],
|
|
1629
1652
|
setSearchType = _useState14[1];
|
|
1653
|
+
var _useState15 = useState("currentSheet"),
|
|
1654
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
1655
|
+
searchRange = _useState16[0],
|
|
1656
|
+
setSearchRange = _useState16[1];
|
|
1657
|
+
var _useState17 = useState([]),
|
|
1658
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
1659
|
+
searchSelection = _useState18[0],
|
|
1660
|
+
setSearchSelection = _useState18[1];
|
|
1661
|
+
var sheetIndex = getSheetIndex(context, context.currentSheetId);
|
|
1662
|
+
var currentSheetName = sheetIndex == null ? null : context.luckysheetfile[sheetIndex].name;
|
|
1663
|
+
var isRealSelection = useMemo(function () {
|
|
1664
|
+
var selection = context.luckysheet_select_save;
|
|
1665
|
+
return selection != null && selection.length > 0 && !(selection.length === 1 && selection[0].row[0] === selection[0].row[1] && selection[0].column[0] === selection[0].column[1]);
|
|
1666
|
+
}, [context.luckysheet_select_save]);
|
|
1667
|
+
useEffect(function () {
|
|
1668
|
+
if (searchRange !== "selection") return;
|
|
1669
|
+
if (isRealSelection) {
|
|
1670
|
+
setSearchSelection(_.assign([], context.luckysheet_select_save));
|
|
1671
|
+
} else {
|
|
1672
|
+
setSearchRange("currentSheet");
|
|
1673
|
+
}
|
|
1674
|
+
}, [isRealSelection, searchRange, context.luckysheet_select_save]);
|
|
1675
|
+
var selectionRangeName = getSelectionRangeName(context.luckysheet_select_save);
|
|
1676
|
+
var selectionRangeDisplay = findAndReplace.searchRangeSelection;
|
|
1677
|
+
if (selectionRangeName != null) {
|
|
1678
|
+
selectionRangeDisplay = currentSheetName ? "".concat(findAndReplace.searchRangeSelection, " (").concat(currentSheetName, "!").concat(selectionRangeName, ")") : "".concat(findAndReplace.searchRangeSelection, " (").concat(selectionRangeName, ")");
|
|
1679
|
+
}
|
|
1630
1680
|
var closeDialog = useCallback(function () {
|
|
1631
1681
|
_.set(refs.globalCache, "searchDialog.mouseEnter", false);
|
|
1632
1682
|
setContext(function (draftCtx) {
|
|
@@ -1724,6 +1774,23 @@ var SearchReplace = function SearchReplace() {
|
|
|
1724
1774
|
}, findAndReplace.searchTypeFormula), /*#__PURE__*/React.createElement("option", {
|
|
1725
1775
|
value: "m"
|
|
1726
1776
|
}, findAndReplace.searchTypeDisplay))), /*#__PURE__*/React.createElement("div", {
|
|
1777
|
+
id: "searchRangeSelect"
|
|
1778
|
+
}, /*#__PURE__*/React.createElement("span", null, findAndReplace.searchRangeLabel, "\uFF1A"), /*#__PURE__*/React.createElement("select", {
|
|
1779
|
+
value: searchRange,
|
|
1780
|
+
onChange: function onChange(e) {
|
|
1781
|
+
var value = e.target.value;
|
|
1782
|
+
setSearchRange(value);
|
|
1783
|
+
if (value === "selection") {
|
|
1784
|
+
setSearchSelection(_.assign([], context.luckysheet_select_save));
|
|
1785
|
+
}
|
|
1786
|
+
}
|
|
1787
|
+
}, /*#__PURE__*/React.createElement("option", {
|
|
1788
|
+
value: "currentSheet"
|
|
1789
|
+
}, currentSheetName ? "".concat(findAndReplace.searchRangeCurrentSheet, "\uFF08").concat(currentSheetName, "\uFF09") : findAndReplace.searchRangeCurrentSheet), isRealSelection && ( /*#__PURE__*/React.createElement("option", {
|
|
1790
|
+
value: "selection"
|
|
1791
|
+
}, selectionRangeDisplay)), /*#__PURE__*/React.createElement("option", {
|
|
1792
|
+
value: "all"
|
|
1793
|
+
}, findAndReplace.searchRangeAllSheet))), /*#__PURE__*/React.createElement("div", {
|
|
1727
1794
|
className: "textboxs",
|
|
1728
1795
|
id: "searchInput"
|
|
1729
1796
|
}, findAndReplace.findTextbox, "\uFF1A", /*#__PURE__*/React.createElement("input", {
|
|
@@ -1787,7 +1854,7 @@ var SearchReplace = function SearchReplace() {
|
|
|
1787
1854
|
onClick: function onClick() {
|
|
1788
1855
|
setContext(function (draftCtx) {
|
|
1789
1856
|
setSelectedCell(undefined);
|
|
1790
|
-
var alertMsg = replaceAll(draftCtx, searchText, replaceText, checkMode, searchType);
|
|
1857
|
+
var alertMsg = replaceAll(draftCtx, searchText, replaceText, checkMode, searchType, searchRange, searchSelection);
|
|
1791
1858
|
showAlert(alertMsg);
|
|
1792
1859
|
});
|
|
1793
1860
|
}
|
|
@@ -1797,7 +1864,7 @@ var SearchReplace = function SearchReplace() {
|
|
|
1797
1864
|
onClick: function onClick() {
|
|
1798
1865
|
return setContext(function (draftCtx) {
|
|
1799
1866
|
setSelectedCell(undefined);
|
|
1800
|
-
var alertMsg = replace(draftCtx, searchText, replaceText, checkMode, searchType);
|
|
1867
|
+
var alertMsg = replace(draftCtx, searchText, replaceText, checkMode, searchType, searchRange, searchSelection);
|
|
1801
1868
|
if (alertMsg != null) {
|
|
1802
1869
|
showAlert(alertMsg);
|
|
1803
1870
|
}
|
|
@@ -1810,7 +1877,7 @@ var SearchReplace = function SearchReplace() {
|
|
|
1810
1877
|
return setContext(function (draftCtx) {
|
|
1811
1878
|
setSelectedCell(undefined);
|
|
1812
1879
|
if (!searchText) return;
|
|
1813
|
-
var res = searchAll(draftCtx, searchText, checkMode, searchType);
|
|
1880
|
+
var res = searchAll(draftCtx, searchText, checkMode, searchType, searchRange, searchSelection);
|
|
1814
1881
|
setSearchResult(res);
|
|
1815
1882
|
if (_.isEmpty(res)) showAlert(findAndReplace.noFindTip);
|
|
1816
1883
|
});
|
|
@@ -1821,14 +1888,11 @@ var SearchReplace = function SearchReplace() {
|
|
|
1821
1888
|
onClick: function onClick() {
|
|
1822
1889
|
return setContext(function (draftCtx) {
|
|
1823
1890
|
setSearchResult([]);
|
|
1824
|
-
var alertMsg = searchNext(draftCtx, searchText, checkMode, searchType);
|
|
1891
|
+
var alertMsg = searchNext(draftCtx, searchText, checkMode, searchType, searchRange, searchSelection);
|
|
1825
1892
|
if (alertMsg != null) showAlert(alertMsg);
|
|
1826
1893
|
});
|
|
1827
1894
|
}
|
|
1828
|
-
}, findAndReplace.findBtn))), /*#__PURE__*/React.createElement("div", {
|
|
1829
|
-
className: "close-button leankylin-message-box-button button-default",
|
|
1830
|
-
onClick: closeDialog
|
|
1831
|
-
}, button.close), searchResult.length > 0 && ( /*#__PURE__*/React.createElement("div", {
|
|
1895
|
+
}, findAndReplace.findBtn))), searchResult.length > 0 && ( /*#__PURE__*/React.createElement("div", {
|
|
1832
1896
|
id: "searchAllbox",
|
|
1833
1897
|
onScroll: function onScroll(e) {
|
|
1834
1898
|
return e.stopPropagation();
|
|
@@ -1861,7 +1925,10 @@ var SearchReplace = function SearchReplace() {
|
|
|
1861
1925
|
});
|
|
1862
1926
|
}
|
|
1863
1927
|
}, /*#__PURE__*/React.createElement("span", null, v.sheetName), /*#__PURE__*/React.createElement("span", null, v.cellPosition), /*#__PURE__*/React.createElement("span", null, v.value), /*#__PURE__*/React.createElement("span", null, v.formula), /*#__PURE__*/React.createElement("span", null, v.displayValue));
|
|
1864
|
-
}))))
|
|
1928
|
+
})))), /*#__PURE__*/React.createElement("div", {
|
|
1929
|
+
className: "close-button leankylin-message-box-button button-default",
|
|
1930
|
+
onClick: closeDialog
|
|
1931
|
+
}, button.close))), body);
|
|
1865
1932
|
};
|
|
1866
1933
|
|
|
1867
1934
|
var LinkEditCard = function LinkEditCard(_ref) {
|
|
@@ -11676,6 +11743,14 @@ var Workbook = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
11676
11743
|
(_mergedSettings$hooks = mergedSettings.hooks) === null || _mergedSettings$hooks === void 0 ? void 0 : (_mergedSettings$hooks2 = _mergedSettings$hooks.afterSelectionChange) === null || _mergedSettings$hooks2 === void 0 ? void 0 : _mergedSettings$hooks2.call(_mergedSettings$hooks, context.currentSheetId, context.luckysheet_select_save[0]);
|
|
11677
11744
|
}
|
|
11678
11745
|
}, [context.currentSheetId, context.luckysheet_select_save, mergedSettings.hooks]);
|
|
11746
|
+
var prevSheetIdRef = useRef(context.currentSheetId);
|
|
11747
|
+
useEffect(function () {
|
|
11748
|
+
if (prevSheetIdRef.current !== context.currentSheetId) {
|
|
11749
|
+
var _mergedSettings$hooks3, _mergedSettings$hooks4;
|
|
11750
|
+
(_mergedSettings$hooks3 = mergedSettings.hooks) === null || _mergedSettings$hooks3 === void 0 ? void 0 : (_mergedSettings$hooks4 = _mergedSettings$hooks3.afterSheetChange) === null || _mergedSettings$hooks4 === void 0 ? void 0 : _mergedSettings$hooks4.call(_mergedSettings$hooks3, context.currentSheetId, prevSheetIdRef.current);
|
|
11751
|
+
prevSheetIdRef.current = context.currentSheetId;
|
|
11752
|
+
}
|
|
11753
|
+
}, [context.currentSheetId]);
|
|
11679
11754
|
var providerValue = useMemo(function () {
|
|
11680
11755
|
return {
|
|
11681
11756
|
context: context,
|
package/dist/index.js
CHANGED
|
@@ -1595,6 +1595,29 @@ function useAlert() {
|
|
|
1595
1595
|
};
|
|
1596
1596
|
}
|
|
1597
1597
|
|
|
1598
|
+
function getSelectionRangeName(selection) {
|
|
1599
|
+
if (selection == null || selection.length === 0) return null;
|
|
1600
|
+
var names = [];
|
|
1601
|
+
var _iterator = _createForOfIteratorHelper(selection),
|
|
1602
|
+
_step;
|
|
1603
|
+
try {
|
|
1604
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1605
|
+
var item = _step.value;
|
|
1606
|
+
var row = item.row,
|
|
1607
|
+
column = item.column;
|
|
1608
|
+
var row1 = Math.min(row[0], row[1]);
|
|
1609
|
+
var row2 = Math.max(row[0], row[1]);
|
|
1610
|
+
var col1 = Math.min(column[0], column[1]);
|
|
1611
|
+
var col2 = Math.max(column[0], column[1]);
|
|
1612
|
+
names.push(row1 === row2 && col1 === col2 ? "".concat(core.chatatABC(col1)).concat(row1 + 1) : "".concat(core.chatatABC(col1)).concat(row1 + 1, ":").concat(core.chatatABC(col2)).concat(row2 + 1));
|
|
1613
|
+
}
|
|
1614
|
+
} catch (err) {
|
|
1615
|
+
_iterator.e(err);
|
|
1616
|
+
} finally {
|
|
1617
|
+
_iterator.f();
|
|
1618
|
+
}
|
|
1619
|
+
return names.join(",");
|
|
1620
|
+
}
|
|
1598
1621
|
var SearchReplace = function SearchReplace() {
|
|
1599
1622
|
var _useContext = React.useContext(WorkbookContext),
|
|
1600
1623
|
context = _useContext.context,
|
|
@@ -1637,6 +1660,33 @@ var SearchReplace = function SearchReplace() {
|
|
|
1637
1660
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
1638
1661
|
searchType = _useState14[0],
|
|
1639
1662
|
setSearchType = _useState14[1];
|
|
1663
|
+
var _useState15 = React.useState("currentSheet"),
|
|
1664
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
1665
|
+
searchRange = _useState16[0],
|
|
1666
|
+
setSearchRange = _useState16[1];
|
|
1667
|
+
var _useState17 = React.useState([]),
|
|
1668
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
1669
|
+
searchSelection = _useState18[0],
|
|
1670
|
+
setSearchSelection = _useState18[1];
|
|
1671
|
+
var sheetIndex = core.getSheetIndex(context, context.currentSheetId);
|
|
1672
|
+
var currentSheetName = sheetIndex == null ? null : context.luckysheetfile[sheetIndex].name;
|
|
1673
|
+
var isRealSelection = React.useMemo(function () {
|
|
1674
|
+
var selection = context.luckysheet_select_save;
|
|
1675
|
+
return selection != null && selection.length > 0 && !(selection.length === 1 && selection[0].row[0] === selection[0].row[1] && selection[0].column[0] === selection[0].column[1]);
|
|
1676
|
+
}, [context.luckysheet_select_save]);
|
|
1677
|
+
React.useEffect(function () {
|
|
1678
|
+
if (searchRange !== "selection") return;
|
|
1679
|
+
if (isRealSelection) {
|
|
1680
|
+
setSearchSelection(___default['default'].assign([], context.luckysheet_select_save));
|
|
1681
|
+
} else {
|
|
1682
|
+
setSearchRange("currentSheet");
|
|
1683
|
+
}
|
|
1684
|
+
}, [isRealSelection, searchRange, context.luckysheet_select_save]);
|
|
1685
|
+
var selectionRangeName = getSelectionRangeName(context.luckysheet_select_save);
|
|
1686
|
+
var selectionRangeDisplay = findAndReplace.searchRangeSelection;
|
|
1687
|
+
if (selectionRangeName != null) {
|
|
1688
|
+
selectionRangeDisplay = currentSheetName ? "".concat(findAndReplace.searchRangeSelection, " (").concat(currentSheetName, "!").concat(selectionRangeName, ")") : "".concat(findAndReplace.searchRangeSelection, " (").concat(selectionRangeName, ")");
|
|
1689
|
+
}
|
|
1640
1690
|
var closeDialog = React.useCallback(function () {
|
|
1641
1691
|
___default['default'].set(refs.globalCache, "searchDialog.mouseEnter", false);
|
|
1642
1692
|
setContext(function (draftCtx) {
|
|
@@ -1734,6 +1784,23 @@ var SearchReplace = function SearchReplace() {
|
|
|
1734
1784
|
}, findAndReplace.searchTypeFormula), /*#__PURE__*/React__default['default'].createElement("option", {
|
|
1735
1785
|
value: "m"
|
|
1736
1786
|
}, findAndReplace.searchTypeDisplay))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1787
|
+
id: "searchRangeSelect"
|
|
1788
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", null, findAndReplace.searchRangeLabel, "\uFF1A"), /*#__PURE__*/React__default['default'].createElement("select", {
|
|
1789
|
+
value: searchRange,
|
|
1790
|
+
onChange: function onChange(e) {
|
|
1791
|
+
var value = e.target.value;
|
|
1792
|
+
setSearchRange(value);
|
|
1793
|
+
if (value === "selection") {
|
|
1794
|
+
setSearchSelection(___default['default'].assign([], context.luckysheet_select_save));
|
|
1795
|
+
}
|
|
1796
|
+
}
|
|
1797
|
+
}, /*#__PURE__*/React__default['default'].createElement("option", {
|
|
1798
|
+
value: "currentSheet"
|
|
1799
|
+
}, currentSheetName ? "".concat(findAndReplace.searchRangeCurrentSheet, "\uFF08").concat(currentSheetName, "\uFF09") : findAndReplace.searchRangeCurrentSheet), isRealSelection && ( /*#__PURE__*/React__default['default'].createElement("option", {
|
|
1800
|
+
value: "selection"
|
|
1801
|
+
}, selectionRangeDisplay)), /*#__PURE__*/React__default['default'].createElement("option", {
|
|
1802
|
+
value: "all"
|
|
1803
|
+
}, findAndReplace.searchRangeAllSheet))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1737
1804
|
className: "textboxs",
|
|
1738
1805
|
id: "searchInput"
|
|
1739
1806
|
}, findAndReplace.findTextbox, "\uFF1A", /*#__PURE__*/React__default['default'].createElement("input", {
|
|
@@ -1797,7 +1864,7 @@ var SearchReplace = function SearchReplace() {
|
|
|
1797
1864
|
onClick: function onClick() {
|
|
1798
1865
|
setContext(function (draftCtx) {
|
|
1799
1866
|
setSelectedCell(undefined);
|
|
1800
|
-
var alertMsg = core.replaceAll(draftCtx, searchText, replaceText, checkMode, searchType);
|
|
1867
|
+
var alertMsg = core.replaceAll(draftCtx, searchText, replaceText, checkMode, searchType, searchRange, searchSelection);
|
|
1801
1868
|
showAlert(alertMsg);
|
|
1802
1869
|
});
|
|
1803
1870
|
}
|
|
@@ -1807,7 +1874,7 @@ var SearchReplace = function SearchReplace() {
|
|
|
1807
1874
|
onClick: function onClick() {
|
|
1808
1875
|
return setContext(function (draftCtx) {
|
|
1809
1876
|
setSelectedCell(undefined);
|
|
1810
|
-
var alertMsg = core.replace(draftCtx, searchText, replaceText, checkMode, searchType);
|
|
1877
|
+
var alertMsg = core.replace(draftCtx, searchText, replaceText, checkMode, searchType, searchRange, searchSelection);
|
|
1811
1878
|
if (alertMsg != null) {
|
|
1812
1879
|
showAlert(alertMsg);
|
|
1813
1880
|
}
|
|
@@ -1820,7 +1887,7 @@ var SearchReplace = function SearchReplace() {
|
|
|
1820
1887
|
return setContext(function (draftCtx) {
|
|
1821
1888
|
setSelectedCell(undefined);
|
|
1822
1889
|
if (!searchText) return;
|
|
1823
|
-
var res = core.searchAll(draftCtx, searchText, checkMode, searchType);
|
|
1890
|
+
var res = core.searchAll(draftCtx, searchText, checkMode, searchType, searchRange, searchSelection);
|
|
1824
1891
|
setSearchResult(res);
|
|
1825
1892
|
if (___default['default'].isEmpty(res)) showAlert(findAndReplace.noFindTip);
|
|
1826
1893
|
});
|
|
@@ -1831,14 +1898,11 @@ var SearchReplace = function SearchReplace() {
|
|
|
1831
1898
|
onClick: function onClick() {
|
|
1832
1899
|
return setContext(function (draftCtx) {
|
|
1833
1900
|
setSearchResult([]);
|
|
1834
|
-
var alertMsg = core.searchNext(draftCtx, searchText, checkMode, searchType);
|
|
1901
|
+
var alertMsg = core.searchNext(draftCtx, searchText, checkMode, searchType, searchRange, searchSelection);
|
|
1835
1902
|
if (alertMsg != null) showAlert(alertMsg);
|
|
1836
1903
|
});
|
|
1837
1904
|
}
|
|
1838
|
-
}, findAndReplace.findBtn))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1839
|
-
className: "close-button leankylin-message-box-button button-default",
|
|
1840
|
-
onClick: closeDialog
|
|
1841
|
-
}, button.close), searchResult.length > 0 && ( /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1905
|
+
}, findAndReplace.findBtn))), searchResult.length > 0 && ( /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1842
1906
|
id: "searchAllbox",
|
|
1843
1907
|
onScroll: function onScroll(e) {
|
|
1844
1908
|
return e.stopPropagation();
|
|
@@ -1871,7 +1935,10 @@ var SearchReplace = function SearchReplace() {
|
|
|
1871
1935
|
});
|
|
1872
1936
|
}
|
|
1873
1937
|
}, /*#__PURE__*/React__default['default'].createElement("span", null, v.sheetName), /*#__PURE__*/React__default['default'].createElement("span", null, v.cellPosition), /*#__PURE__*/React__default['default'].createElement("span", null, v.value), /*#__PURE__*/React__default['default'].createElement("span", null, v.formula), /*#__PURE__*/React__default['default'].createElement("span", null, v.displayValue));
|
|
1874
|
-
}))))
|
|
1938
|
+
})))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1939
|
+
className: "close-button leankylin-message-box-button button-default",
|
|
1940
|
+
onClick: closeDialog
|
|
1941
|
+
}, button.close))), body);
|
|
1875
1942
|
};
|
|
1876
1943
|
|
|
1877
1944
|
var LinkEditCard = function LinkEditCard(_ref) {
|
|
@@ -11686,6 +11753,14 @@ var Workbook = /*#__PURE__*/React__default['default'].forwardRef(function (_ref,
|
|
|
11686
11753
|
(_mergedSettings$hooks = mergedSettings.hooks) === null || _mergedSettings$hooks === void 0 ? void 0 : (_mergedSettings$hooks2 = _mergedSettings$hooks.afterSelectionChange) === null || _mergedSettings$hooks2 === void 0 ? void 0 : _mergedSettings$hooks2.call(_mergedSettings$hooks, context.currentSheetId, context.luckysheet_select_save[0]);
|
|
11687
11754
|
}
|
|
11688
11755
|
}, [context.currentSheetId, context.luckysheet_select_save, mergedSettings.hooks]);
|
|
11756
|
+
var prevSheetIdRef = React.useRef(context.currentSheetId);
|
|
11757
|
+
React.useEffect(function () {
|
|
11758
|
+
if (prevSheetIdRef.current !== context.currentSheetId) {
|
|
11759
|
+
var _mergedSettings$hooks3, _mergedSettings$hooks4;
|
|
11760
|
+
(_mergedSettings$hooks3 = mergedSettings.hooks) === null || _mergedSettings$hooks3 === void 0 ? void 0 : (_mergedSettings$hooks4 = _mergedSettings$hooks3.afterSheetChange) === null || _mergedSettings$hooks4 === void 0 ? void 0 : _mergedSettings$hooks4.call(_mergedSettings$hooks3, context.currentSheetId, prevSheetIdRef.current);
|
|
11761
|
+
prevSheetIdRef.current = context.currentSheetId;
|
|
11762
|
+
}
|
|
11763
|
+
}, [context.currentSheetId]);
|
|
11689
11764
|
var providerValue = React.useMemo(function () {
|
|
11690
11765
|
return {
|
|
11691
11766
|
context: context,
|
package/dist/index.umd.css
CHANGED
|
@@ -1579,8 +1579,9 @@ html::-webkit-scrollbar-button {
|
|
|
1579
1579
|
color: #555;
|
|
1580
1580
|
}
|
|
1581
1581
|
|
|
1582
|
-
/*
|
|
1583
|
-
#leankylin-search-replace #searchTypeSelect
|
|
1582
|
+
/* 搜索范围/搜索区域下拉 - 与查找/替换输入行同样的布局,select 展开至 input 相同宽度 */
|
|
1583
|
+
#leankylin-search-replace #searchTypeSelect,
|
|
1584
|
+
#leankylin-search-replace #searchRangeSelect {
|
|
1584
1585
|
display: flex;
|
|
1585
1586
|
align-items: center;
|
|
1586
1587
|
gap: 8px;
|
|
@@ -1589,11 +1590,13 @@ html::-webkit-scrollbar-button {
|
|
|
1589
1590
|
white-space: nowrap;
|
|
1590
1591
|
}
|
|
1591
1592
|
|
|
1592
|
-
#leankylin-search-replace #searchTypeSelect > span
|
|
1593
|
+
#leankylin-search-replace #searchTypeSelect > span,
|
|
1594
|
+
#leankylin-search-replace #searchRangeSelect > span {
|
|
1593
1595
|
flex-shrink: 0;
|
|
1594
1596
|
}
|
|
1595
1597
|
|
|
1596
|
-
#leankylin-search-replace #searchTypeSelect select
|
|
1598
|
+
#leankylin-search-replace #searchTypeSelect select,
|
|
1599
|
+
#leankylin-search-replace #searchRangeSelect select {
|
|
1597
1600
|
flex: 1;
|
|
1598
1601
|
width: auto;
|
|
1599
1602
|
height: 32px;
|
|
@@ -1615,11 +1618,13 @@ html::-webkit-scrollbar-button {
|
|
|
1615
1618
|
box-sizing: border-box;
|
|
1616
1619
|
}
|
|
1617
1620
|
|
|
1618
|
-
#leankylin-search-replace #searchTypeSelect select:hover
|
|
1621
|
+
#leankylin-search-replace #searchTypeSelect select:hover,
|
|
1622
|
+
#leankylin-search-replace #searchRangeSelect select:hover {
|
|
1619
1623
|
border-color: #b0aefe;
|
|
1620
1624
|
}
|
|
1621
1625
|
|
|
1622
|
-
#leankylin-search-replace #searchTypeSelect select:focus
|
|
1626
|
+
#leankylin-search-replace #searchTypeSelect select:focus,
|
|
1627
|
+
#leankylin-search-replace #searchRangeSelect select:focus {
|
|
1623
1628
|
border-color: #8C89FE;
|
|
1624
1629
|
box-shadow: 0 0 0 3px rgba(140, 137, 254, 0.12);
|
|
1625
1630
|
}
|
|
@@ -1650,10 +1655,14 @@ html::-webkit-scrollbar-button {
|
|
|
1650
1655
|
background-color: #f9f9ff;
|
|
1651
1656
|
}
|
|
1652
1657
|
|
|
1653
|
-
/*
|
|
1658
|
+
/* 关闭按钮:始终固定于弹窗右下角,宽度紧凑 */
|
|
1654
1659
|
#leankylin-search-replace .close-button {
|
|
1660
|
+
position: sticky;
|
|
1661
|
+
bottom: 12px;
|
|
1662
|
+
align-self: flex-end;
|
|
1663
|
+
flex-shrink: 0;
|
|
1655
1664
|
margin: 12px 0 0;
|
|
1656
|
-
padding: 6px
|
|
1665
|
+
padding: 6px 14px;
|
|
1657
1666
|
border-radius: 6px;
|
|
1658
1667
|
font-size: 13px;
|
|
1659
1668
|
transition: all 0.15s;
|