@fileverse-dev/dsheet 2.0.0-text → 2.0.1-search-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.
- package/dist/editor/components/import-button-ui.d.ts +1 -1
- package/dist/editor/open-find-and-replace.d.ts +11 -0
- package/dist/editor/utils/csv-import.d.ts +1 -1
- package/dist/editor/utils/custom-toolbar-item.d.ts +1 -1
- package/dist/editor/utils/export-filename.d.ts +1 -0
- package/dist/{es-DqFXH9BK.js → es-BJ3y6kL2.js} +29 -4
- package/dist/{hi-cBN4FoX2.js → hi-BLJfbm0w.js} +29 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +22196 -20665
- package/dist/sheet-engine/core/api/cell.d.ts +1 -1
- package/dist/sheet-engine/core/context.d.ts +36 -0
- package/dist/sheet-engine/core/events/mouse.d.ts +1 -1
- package/dist/sheet-engine/core/index.d.ts +2 -1
- package/dist/sheet-engine/core/locale/en.d.ts +25 -0
- package/dist/sheet-engine/core/locale/es.d.ts +25 -0
- package/dist/sheet-engine/core/locale/hi.d.ts +25 -0
- package/dist/sheet-engine/core/locale/zh.d.ts +25 -0
- package/dist/sheet-engine/core/locale/zh_tw.d.ts +25 -0
- package/dist/sheet-engine/core/modules/formula.d.ts +13 -4
- package/dist/sheet-engine/core/modules/index.d.ts +4 -3
- package/dist/sheet-engine/core/modules/inline-string.d.ts +6 -6
- package/dist/sheet-engine/core/modules/rowcol.d.ts +3 -3
- package/dist/sheet-engine/core/modules/searchReplace.d.ts +118 -26
- package/dist/sheet-engine/core/modules/selection.d.ts +12 -6
- package/dist/sheet-engine/core/types.d.ts +4 -2
- package/dist/sheet-engine/react/components/QuickSearch/index.d.ts +4 -0
- package/dist/sheet-engine/react/components/Workbook/api.d.ts +6 -0
- package/dist/sheet-engine/react/components/Workbook/index.d.ts +4 -0
- package/dist/sheet-engine/react/hooks/useFormulaEditorHistory.d.ts +1 -1
- package/dist/style.css +1 -1
- package/dist/{zh-UJov73Dl.js → zh-DNw41bZD.js} +29 -4
- package/dist/{zh_tw-DTGOcDTq.js → zh_tw-MZjDyZzy.js} +29 -4
- package/package.json +2 -2
|
@@ -8,4 +8,4 @@ export declare function getCellValue(ctx: Context, row: number, column: number,
|
|
|
8
8
|
export declare function setCellValue(ctx: Context, row: number, column: number, value: any, cellInput: HTMLDivElement | null, options?: CommonOptions, callAfterUpdate?: boolean): void;
|
|
9
9
|
export declare function clearCell(ctx: Context, row: number, column: number, options?: CommonOptions): void;
|
|
10
10
|
export declare function setCellFormat(ctx: Context, row: number, column: number, attr: keyof Cell, value: any, options?: CommonOptions): void;
|
|
11
|
-
export declare function autoFillCell(ctx: Context, copyRange: SingleRange, applyRange: SingleRange, direction:
|
|
11
|
+
export declare function autoFillCell(ctx: Context, copyRange: SingleRange, applyRange: SingleRange, direction: 'up' | 'down' | 'left' | 'right'): void;
|
|
@@ -40,6 +40,37 @@ export type Context = {
|
|
|
40
40
|
presences?: Presence[];
|
|
41
41
|
showSearch?: boolean;
|
|
42
42
|
showReplace?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* While picking a range for Find & Replace, the modal is closed (flags false) but
|
|
45
|
+
* this stays true so `SearchReplace` stays mounted and keeps form state. Restored
|
|
46
|
+
* when the range dialog closes.
|
|
47
|
+
*/
|
|
48
|
+
findReplaceHiddenDuringRangePick?: boolean;
|
|
49
|
+
/** Snapshot of `showSearch` / `showReplace` before hiding for range pick. */
|
|
50
|
+
findReplaceRestoreVisibility?: {
|
|
51
|
+
showSearch: boolean;
|
|
52
|
+
showReplace: boolean;
|
|
53
|
+
};
|
|
54
|
+
/** In-sheet find bar (Ctrl/Cmd+F); separate from Find and Replace modal */
|
|
55
|
+
showQuickSearch?: boolean;
|
|
56
|
+
/** Bumped when Ctrl/Cmd+F is pressed while Quick Search is already open (refocus + select-all). */
|
|
57
|
+
quickSearchFocusNonce?: number;
|
|
58
|
+
/** One-shot prefill when opening Find and Replace from Quick Search; cleared after consume. */
|
|
59
|
+
findReplacePrefill?: string;
|
|
60
|
+
quickSearchLoading?: boolean;
|
|
61
|
+
/** Non-destructive match highlights for Quick Search; null when closed or no query. */
|
|
62
|
+
quickSearchHighlight?: {
|
|
63
|
+
matches: {
|
|
64
|
+
r: number;
|
|
65
|
+
c: number;
|
|
66
|
+
}[];
|
|
67
|
+
activeIndex: number;
|
|
68
|
+
} | null;
|
|
69
|
+
/** Highlighted region when Find & Replace scope is "Specific range"; null when not active. */
|
|
70
|
+
searchRangeScopeHighlight?: {
|
|
71
|
+
row: number[];
|
|
72
|
+
column: number[];
|
|
73
|
+
} | null;
|
|
43
74
|
linkCard?: LinkCardProps;
|
|
44
75
|
rangeDialog?: RangeDialogProps;
|
|
45
76
|
warnDialog?: string;
|
|
@@ -192,6 +223,11 @@ export type Context = {
|
|
|
192
223
|
luckysheetPaintSingle: boolean;
|
|
193
224
|
defaultCell: Cell;
|
|
194
225
|
groupValuesRefreshData: any[];
|
|
226
|
+
/**
|
|
227
|
+
* Incremented when formula `func_selectedrange` moves via keyboard (`rangeOfFormula`)
|
|
228
|
+
* so React re-renders — `FormulaCache` is a class and Immer does not track it.
|
|
229
|
+
*/
|
|
230
|
+
formulaRangeNavRevision: number;
|
|
195
231
|
formulaCache: FormulaCache;
|
|
196
232
|
hooks: Hooks;
|
|
197
233
|
showSheetList?: boolean;
|
|
@@ -12,7 +12,7 @@ export declare function fixPositionOnFrozenCells(freeze: Freezen | undefined, x:
|
|
|
12
12
|
};
|
|
13
13
|
export declare function handleCellAreaMouseDown(ctx: Context, globalCache: GlobalCache, e: MouseEvent, cellInput: HTMLDivElement, container: HTMLDivElement, fxInput?: HTMLDivElement | null, canvas?: CanvasRenderingContext2D): void;
|
|
14
14
|
export declare function handleCellAreaDoubleClick(ctx: Context, globalCache: GlobalCache, settings: Settings, e: MouseEvent, container: HTMLElement): void;
|
|
15
|
-
export declare function handleContextMenu(ctx: Context, settings: Settings, e: MouseEvent, workbookContainer: HTMLDivElement, container: HTMLDivElement, area:
|
|
15
|
+
export declare function handleContextMenu(ctx: Context, settings: Settings, e: MouseEvent, workbookContainer: HTMLDivElement, container: HTMLDivElement, area: 'cell' | 'rowHeader' | 'columnHeader'): void;
|
|
16
16
|
export declare function mouseRender(ctx: Context, globalCache: GlobalCache, e: MouseEvent, cellInput: HTMLDivElement, scrollX: HTMLDivElement, scrollY: HTMLDivElement, container: HTMLDivElement, fxInput?: HTMLDivElement | null): void;
|
|
17
17
|
export declare function handleOverlayMouseMove(ctx: Context, globalCache: GlobalCache, e: MouseEvent, cellInput: HTMLDivElement, scrollX: HTMLDivElement, scrollY: HTMLDivElement, container: HTMLDivElement, fxInput?: HTMLDivElement | null): void;
|
|
18
18
|
export declare function handleOverlayMouseUp(ctx: Context, globalCache: GlobalCache, settings: Settings, e: MouseEvent, scrollbarX: HTMLDivElement, scrollbarY: HTMLDivElement, container: HTMLDivElement, cellInput: HTMLDivElement | null, fxInput: HTMLDivElement | null): void;
|
|
@@ -7,9 +7,10 @@ export { defaultSettings } from './settings';
|
|
|
7
7
|
export type { Settings, Hooks } from './settings';
|
|
8
8
|
export { handleCopy, handleGlobalKeyDown, handlePaste, handlePasteByClick, fixPositionOnFrozenCells, handleCellAreaMouseDown, handleCellAreaDoubleClick, handleContextMenu, mouseRender, handleOverlayMouseMove, handleOverlayMouseUp, handleRowHeaderMouseDown, handleColumnHeaderMouseDown, handleColSizeHandleMouseDown, handleColSizeHandleDoubleClick, handleRowSizeHandleMouseDown, handleColFreezeHandleMouseDown, handleRowFreezeHandleMouseDown, } from './events';
|
|
9
9
|
export * from './locale';
|
|
10
|
-
export { getBorderInfoComputeRange, getBorderInfoCompute, normalizedCellAttr, normalizedAttr, getCellValue, setCellValue, getRealCellValue, mergeBorder, cancelNormalSelected, updateCell, getRangetxt, getRangeByTxt, getInlineStringHTML, getStyleByCell, clearSelectedCellFormat, clearRowsCellsFormat, clearColumnsCellsFormat, clipboard, moveToEnd, getRangeRectsByCharacterOffset, update, is_date, valueShowEs, FormulaCache, groupValuesRefresh, setCaretPosition, getrangeseleciton, getFormulaEditorOwner, rangeHightlightselected, handleFormulaInput, israngeseleciton, createRangeHightlight, maybeRecoverDirtyRangeSelection, getFormulaRangeIndexAtCaret, isCaretAtValidFormulaRangeInsertionPoint, isLegacyFormulaRangeMode, markRangeSelectionDirty, setFormulaEditorOwner, functionHTMLGenerate, suppressFormulaRangeSelectionForInitialEdit, rangeSetValue, getFormulaRangeIndexForKeyboardSync, createFormulaRangeSelect, isFormulaReferenceInputMode, initFreeze, isInlineStringCell, getInlineStringNoStyle, rowLocation, rowLocationByIndex, colLocation, colLocationByIndex, insertRowCol, deleteRowCol, hideSelected, showSelected, isShowHidenCR, scrollToHighlightCell, selectTitlesMap, selectTitlesRange, normalizeSelection, syncPrimaryCellActiveFromSelection, setPrimaryCellActive, advancePrimaryCellInLastMultiSelection, moveHighlightCell, deleteSelectedCellText, selectAll, fixRowStyleOverflowInFreeze, fixColumnStyleOverflowInFreeze, calcSelectionInfo, addSheet, deleteSheet, editSheetName, changeSheet, updateFormat, autoSelectionFormula, handleBold, handleItalic, handleStrikeThrough, handleUnderline, handleHorizontalAlign, handleVerticalAlign, handleTextColor, handleTextBackground, handleBorder, handleMerge, handleSort, handleFreeze, handleTextSize, handleSum, handleLink, toolbarItemClickHandler, toolbarItemSelectedFunc, handleScreenShot, insertImage, showImgChooser, drawArrow, setEditingComment, removeEditingComment, newComment, editComment, deleteComment, showComments, showHideComment, showHideAllComments, onCommentBoxMoveStart, removeActiveImage, cancelActiveImgItem, onImageMoveStart, onImageResizeStart, createDropCellRange, sortSelection, searchAll, searchNext, replace, replaceAll, getCellRowColumn, getCellHyperlink, saveHyperlink, removeHyperlink, showLinkCard, goToLink, isLinkValid, createFilterOptions, clearFilter, createFilter, getFilterColumnValues, getFilterColumnColors, orderbydatafiler, saveFilter, onCellsMoveStart, cfSplitRange, updateMoreCell, getRegStr, getDataArr, applyLocation, getOptionValue, getSelectRange, getDropdownList, setDropdownValue, confirmMessage, setConditionRules, handleOverlayTouchStart, handleOverlayTouchEnd, MAX_ZOOM_RATIO, MIN_ZOOM_RATIO, handleKeydownForZoom, jfrefreshgrid, sanitizeDuneUrl, insertDuneChart, onIframeMoveStart, onIframeResizeStart, onIframeMove, onIframeMoveEnd, onIframeResize, onIframeResizeEnd, setCellError, clearCellError, isdatatypemulti, diff, isdatetime, isRealNull, isRealNum, isNumericCellType, iscelldata, getcellrange, cancelFunctionrangeSelected, seletedHighlistByindex, spillSortResult, execfunction, insertUpdateFunctionGroup, remapFormulaReferencesByMap, checkCF, getComputeMap, cancelPaintModel, hideCRCount, getdatabyselection, } from './modules';
|
|
10
|
+
export { getBorderInfoComputeRange, getBorderInfoCompute, normalizedCellAttr, normalizedAttr, getCellValue, setCellValue, getRealCellValue, mergeBorder, cancelNormalSelected, updateCell, getRangetxt, getRangeByTxt, getInlineStringHTML, getStyleByCell, clearSelectedCellFormat, clearRowsCellsFormat, clearColumnsCellsFormat, clipboard, moveToEnd, getRangeRectsByCharacterOffset, update, is_date, valueShowEs, FormulaCache, groupValuesRefresh, execFunctionGroup, setCaretPosition, getrangeseleciton, getFormulaEditorOwner, rangeHightlightselected, handleFormulaInput, israngeseleciton, createRangeHightlight, maybeRecoverDirtyRangeSelection, getFormulaRangeIndexAtCaret, isCaretAtValidFormulaRangeInsertionPoint, isLegacyFormulaRangeMode, markRangeSelectionDirty, setFormulaEditorOwner, functionHTMLGenerate, suppressFormulaRangeSelectionForInitialEdit, rangeSetValue, getFormulaRangeIndexForKeyboardSync, createFormulaRangeSelect, isFormulaReferenceInputMode, seedFormulaFuncSelectedRangeFromLastSelection, initFreeze, isInlineStringCell, getInlineStringNoStyle, rowLocation, rowLocationByIndex, colLocation, colLocationByIndex, insertRowCol, deleteRowCol, hideSelected, showSelected, isShowHidenCR, scrollToHighlightCell, selectTitlesMap, selectTitlesRange, normalizeSelection, syncPrimaryCellActiveFromSelection, setPrimaryCellActive, advancePrimaryCellInLastMultiSelection, snapSheetSelectionFocusToCellPreserveMultiRange, moveHighlightCell, deleteSelectedCellText, selectAll, fixRowStyleOverflowInFreeze, fixColumnStyleOverflowInFreeze, calcSelectionInfo, addSheet, deleteSheet, editSheetName, changeSheet, updateFormat, autoSelectionFormula, handleBold, handleItalic, handleStrikeThrough, handleUnderline, handleHorizontalAlign, handleVerticalAlign, handleTextColor, handleTextBackground, handleBorder, handleMerge, handleSort, handleFreeze, handleTextSize, handleSum, handleLink, toolbarItemClickHandler, toolbarItemSelectedFunc, handleScreenShot, insertImage, showImgChooser, drawArrow, setEditingComment, removeEditingComment, newComment, editComment, deleteComment, showComments, showHideComment, showHideAllComments, onCommentBoxMoveStart, removeActiveImage, cancelActiveImgItem, onImageMoveStart, onImageResizeStart, createDropCellRange, sortSelection, searchAll, searchNext, replace, replaceAll, getSearchIndexArr, getSearchIndexArrAsync, getFindRangeOnCurrentSheet, getQuickSearchIndexArr, getQuickSearchHiddenConfig, expandCellRectForMerge, shouldQuickSearchUseAsync, runQuickSearchIndexArrAsync, QUICK_SEARCH_ASYNC_ROW_THRESHOLD, parseRangeText, getCellRowColumn, getCellHyperlink, saveHyperlink, removeHyperlink, showLinkCard, goToLink, isLinkValid, createFilterOptions, clearFilter, createFilter, getFilterColumnValues, getFilterColumnColors, orderbydatafiler, saveFilter, onCellsMoveStart, cfSplitRange, updateMoreCell, getRegStr, getDataArr, applyLocation, getOptionValue, getSelectRange, getDropdownList, setDropdownValue, confirmMessage, setConditionRules, handleOverlayTouchStart, handleOverlayTouchEnd, MAX_ZOOM_RATIO, MIN_ZOOM_RATIO, handleKeydownForZoom, jfrefreshgrid, sanitizeDuneUrl, insertDuneChart, onIframeMoveStart, onIframeResizeStart, onIframeMove, onIframeMoveEnd, onIframeResize, onIframeResizeEnd, setCellError, clearCellError, isdatatypemulti, diff, isdatetime, isRealNull, isRealNum, isNumericCellType, iscelldata, getcellrange, cancelFunctionrangeSelected, seletedHighlistByindex, spillSortResult, execfunction, insertUpdateFunctionGroup, remapFormulaReferencesByMap, checkCF, getComputeMap, cancelPaintModel, hideCRCount, getdatabyselection, } from './modules';
|
|
11
11
|
export type { FilterDate, FilterValue, FilterColor } from './modules';
|
|
12
12
|
export { getFreezeState, toggleFreeze, indexToColumnChar, escapeScriptTag, escapeHTMLTag, getSheetIndex, replaceHtml, isAllowEdit, isAllowEditReadOnly, filterPatch, patchToOp, opToPatch, inverseRowColOptions, } from './utils';
|
|
13
13
|
export type { PatchOptions, ChangedSheet } from './utils';
|
|
14
14
|
export type { Op, Cell, CellWithRowAndCol, CellMatrix, Selection, Presence, Sheet, GlobalCache, SingleRange, Range, SearchResult, LinkCardProps, LiveQueryData, Freezen, } from './types';
|
|
15
|
+
export type { CheckModes, HyperlinkMap, FindSearchScope, SearchHiddenConfig, SearchNextResult, ReplaceAllResult, } from './modules/searchReplace';
|
|
15
16
|
export { cellFadeAnimator, markCellChanged } from './animate';
|
|
@@ -472,6 +472,20 @@ declare const _default: {
|
|
|
472
472
|
regexTextbox: string;
|
|
473
473
|
wholeTextbox: string;
|
|
474
474
|
distinguishTextbox: string;
|
|
475
|
+
formulaTextbox: string;
|
|
476
|
+
linkTextbox: string;
|
|
477
|
+
allSheetsTextbox: string;
|
|
478
|
+
searchScopeLabel: string;
|
|
479
|
+
searchScopeAllSheets: string;
|
|
480
|
+
searchScopeThisSheet: string;
|
|
481
|
+
searchScopeSpecificRange: string;
|
|
482
|
+
rangeInputPlaceholder: string;
|
|
483
|
+
rangeInputInvalidError: string;
|
|
484
|
+
rangeSelectOnSheetTitle: string;
|
|
485
|
+
selectDataRangeTitle: string;
|
|
486
|
+
replaceAllWithSkippedTip: string;
|
|
487
|
+
replaceAllSuccessInfotext: string;
|
|
488
|
+
replaceAllSuccessWithSkippedInfotext: string;
|
|
475
489
|
allReplaceBtn: string;
|
|
476
490
|
replaceBtn: string;
|
|
477
491
|
allFindBtn: string;
|
|
@@ -499,6 +513,17 @@ declare const _default: {
|
|
|
499
513
|
locationTiplessTwoRow: string;
|
|
500
514
|
locationTiplessTwoColumn: string;
|
|
501
515
|
locationTipNotFindCell: string;
|
|
516
|
+
quickSearchPlaceholder: string;
|
|
517
|
+
quickSearchDialogAria: string;
|
|
518
|
+
quickSearchMoreOptionsTitle: string;
|
|
519
|
+
quickSearchOpenFindReplaceAria: string;
|
|
520
|
+
quickSearchNextAria: string;
|
|
521
|
+
quickSearchPrevAria: string;
|
|
522
|
+
quickSearchCloseAria: string;
|
|
523
|
+
quickSearchNoResults: string;
|
|
524
|
+
quickSearchSearching: string;
|
|
525
|
+
quickSearchCounterTemplate: string;
|
|
526
|
+
quickSearchMatchCountAria: string;
|
|
502
527
|
};
|
|
503
528
|
sheetconfig: {
|
|
504
529
|
delete: string;
|
|
@@ -635,6 +635,20 @@ declare const _default: {
|
|
|
635
635
|
regexTextbox: string;
|
|
636
636
|
wholeTextbox: string;
|
|
637
637
|
distinguishTextbox: string;
|
|
638
|
+
formulaTextbox: string;
|
|
639
|
+
linkTextbox: string;
|
|
640
|
+
allSheetsTextbox: string;
|
|
641
|
+
searchScopeLabel: string;
|
|
642
|
+
searchScopeAllSheets: string;
|
|
643
|
+
searchScopeThisSheet: string;
|
|
644
|
+
searchScopeSpecificRange: string;
|
|
645
|
+
rangeInputPlaceholder: string;
|
|
646
|
+
rangeInputInvalidError: string;
|
|
647
|
+
rangeSelectOnSheetTitle: string;
|
|
648
|
+
selectDataRangeTitle: string;
|
|
649
|
+
replaceAllWithSkippedTip: string;
|
|
650
|
+
replaceAllSuccessInfotext: string;
|
|
651
|
+
replaceAllSuccessWithSkippedInfotext: string;
|
|
638
652
|
allReplaceBtn: string;
|
|
639
653
|
replaceBtn: string;
|
|
640
654
|
allFindBtn: string;
|
|
@@ -662,6 +676,17 @@ declare const _default: {
|
|
|
662
676
|
locationTiplessTwoRow: string;
|
|
663
677
|
locationTiplessTwoColumn: string;
|
|
664
678
|
locationTipNotFindCell: string;
|
|
679
|
+
quickSearchPlaceholder: string;
|
|
680
|
+
quickSearchDialogAria: string;
|
|
681
|
+
quickSearchMoreOptionsTitle: string;
|
|
682
|
+
quickSearchOpenFindReplaceAria: string;
|
|
683
|
+
quickSearchNextAria: string;
|
|
684
|
+
quickSearchPrevAria: string;
|
|
685
|
+
quickSearchCloseAria: string;
|
|
686
|
+
quickSearchNoResults: string;
|
|
687
|
+
quickSearchSearching: string;
|
|
688
|
+
quickSearchCounterTemplate: string;
|
|
689
|
+
quickSearchMatchCountAria: string;
|
|
665
690
|
};
|
|
666
691
|
sheetconfig: {
|
|
667
692
|
delete: string;
|
|
@@ -510,6 +510,20 @@ declare const _default: {
|
|
|
510
510
|
regexTextbox: string;
|
|
511
511
|
wholeTextbox: string;
|
|
512
512
|
distinguishTextbox: string;
|
|
513
|
+
formulaTextbox: string;
|
|
514
|
+
linkTextbox: string;
|
|
515
|
+
allSheetsTextbox: string;
|
|
516
|
+
searchScopeLabel: string;
|
|
517
|
+
searchScopeAllSheets: string;
|
|
518
|
+
searchScopeThisSheet: string;
|
|
519
|
+
searchScopeSpecificRange: string;
|
|
520
|
+
rangeInputPlaceholder: string;
|
|
521
|
+
rangeInputInvalidError: string;
|
|
522
|
+
rangeSelectOnSheetTitle: string;
|
|
523
|
+
selectDataRangeTitle: string;
|
|
524
|
+
replaceAllWithSkippedTip: string;
|
|
525
|
+
replaceAllSuccessInfotext: string;
|
|
526
|
+
replaceAllSuccessWithSkippedInfotext: string;
|
|
513
527
|
allReplaceBtn: string;
|
|
514
528
|
replaceBtn: string;
|
|
515
529
|
allFindBtn: string;
|
|
@@ -537,6 +551,17 @@ declare const _default: {
|
|
|
537
551
|
locationTiplessTwoRow: string;
|
|
538
552
|
locationTiplessTwoColumn: string;
|
|
539
553
|
locationTipNotFindCell: string;
|
|
554
|
+
quickSearchPlaceholder: string;
|
|
555
|
+
quickSearchDialogAria: string;
|
|
556
|
+
quickSearchMoreOptionsTitle: string;
|
|
557
|
+
quickSearchOpenFindReplaceAria: string;
|
|
558
|
+
quickSearchNextAria: string;
|
|
559
|
+
quickSearchPrevAria: string;
|
|
560
|
+
quickSearchCloseAria: string;
|
|
561
|
+
quickSearchNoResults: string;
|
|
562
|
+
quickSearchSearching: string;
|
|
563
|
+
quickSearchCounterTemplate: string;
|
|
564
|
+
quickSearchMatchCountAria: string;
|
|
540
565
|
};
|
|
541
566
|
sheetconfig: {
|
|
542
567
|
delete: string;
|
|
@@ -528,6 +528,20 @@ declare const _default: {
|
|
|
528
528
|
regexTextbox: string;
|
|
529
529
|
wholeTextbox: string;
|
|
530
530
|
distinguishTextbox: string;
|
|
531
|
+
formulaTextbox: string;
|
|
532
|
+
linkTextbox: string;
|
|
533
|
+
allSheetsTextbox: string;
|
|
534
|
+
searchScopeLabel: string;
|
|
535
|
+
searchScopeAllSheets: string;
|
|
536
|
+
searchScopeThisSheet: string;
|
|
537
|
+
searchScopeSpecificRange: string;
|
|
538
|
+
rangeInputPlaceholder: string;
|
|
539
|
+
rangeInputInvalidError: string;
|
|
540
|
+
rangeSelectOnSheetTitle: string;
|
|
541
|
+
selectDataRangeTitle: string;
|
|
542
|
+
replaceAllWithSkippedTip: string;
|
|
543
|
+
replaceAllSuccessInfotext: string;
|
|
544
|
+
replaceAllSuccessWithSkippedInfotext: string;
|
|
531
545
|
allReplaceBtn: string;
|
|
532
546
|
replaceBtn: string;
|
|
533
547
|
allFindBtn: string;
|
|
@@ -555,6 +569,17 @@ declare const _default: {
|
|
|
555
569
|
locationTiplessTwoRow: string;
|
|
556
570
|
locationTiplessTwoColumn: string;
|
|
557
571
|
locationTipNotFindCell: string;
|
|
572
|
+
quickSearchPlaceholder: string;
|
|
573
|
+
quickSearchDialogAria: string;
|
|
574
|
+
quickSearchMoreOptionsTitle: string;
|
|
575
|
+
quickSearchOpenFindReplaceAria: string;
|
|
576
|
+
quickSearchNextAria: string;
|
|
577
|
+
quickSearchPrevAria: string;
|
|
578
|
+
quickSearchCloseAria: string;
|
|
579
|
+
quickSearchNoResults: string;
|
|
580
|
+
quickSearchSearching: string;
|
|
581
|
+
quickSearchCounterTemplate: string;
|
|
582
|
+
quickSearchMatchCountAria: string;
|
|
558
583
|
};
|
|
559
584
|
sheetconfig: {
|
|
560
585
|
delete: string;
|
|
@@ -673,6 +673,20 @@ declare const _default: {
|
|
|
673
673
|
regexTextbox: string;
|
|
674
674
|
wholeTextbox: string;
|
|
675
675
|
distinguishTextbox: string;
|
|
676
|
+
formulaTextbox: string;
|
|
677
|
+
linkTextbox: string;
|
|
678
|
+
allSheetsTextbox: string;
|
|
679
|
+
searchScopeLabel: string;
|
|
680
|
+
searchScopeAllSheets: string;
|
|
681
|
+
searchScopeThisSheet: string;
|
|
682
|
+
searchScopeSpecificRange: string;
|
|
683
|
+
rangeInputPlaceholder: string;
|
|
684
|
+
rangeInputInvalidError: string;
|
|
685
|
+
rangeSelectOnSheetTitle: string;
|
|
686
|
+
selectDataRangeTitle: string;
|
|
687
|
+
replaceAllWithSkippedTip: string;
|
|
688
|
+
replaceAllSuccessInfotext: string;
|
|
689
|
+
replaceAllSuccessWithSkippedInfotext: string;
|
|
676
690
|
allReplaceBtn: string;
|
|
677
691
|
replaceBtn: string;
|
|
678
692
|
allFindBtn: string;
|
|
@@ -700,6 +714,17 @@ declare const _default: {
|
|
|
700
714
|
locationTiplessTwoRow: string;
|
|
701
715
|
locationTiplessTwoColumn: string;
|
|
702
716
|
locationTipNotFindCell: string;
|
|
717
|
+
quickSearchPlaceholder: string;
|
|
718
|
+
quickSearchDialogAria: string;
|
|
719
|
+
quickSearchMoreOptionsTitle: string;
|
|
720
|
+
quickSearchOpenFindReplaceAria: string;
|
|
721
|
+
quickSearchNextAria: string;
|
|
722
|
+
quickSearchPrevAria: string;
|
|
723
|
+
quickSearchCloseAria: string;
|
|
724
|
+
quickSearchNoResults: string;
|
|
725
|
+
quickSearchSearching: string;
|
|
726
|
+
quickSearchCounterTemplate: string;
|
|
727
|
+
quickSearchMatchCountAria: string;
|
|
703
728
|
};
|
|
704
729
|
sheetconfig: {
|
|
705
730
|
delete: string;
|
|
@@ -23,7 +23,9 @@ export declare class FormulaCache {
|
|
|
23
23
|
rangedrag_row_start?: boolean;
|
|
24
24
|
rangeSelectionActive?: boolean | null;
|
|
25
25
|
keyboardRangeSelectionLock?: boolean;
|
|
26
|
-
|
|
26
|
+
/** True after arrow/Shift+arrow moved `func_selectedrange` without updating yellow selection. */
|
|
27
|
+
formulaKeyboardRefSync?: boolean;
|
|
28
|
+
formulaEditorOwner?: 'cell' | 'fx' | null;
|
|
27
29
|
functionRangeIndex?: number[];
|
|
28
30
|
functionlistMap: any;
|
|
29
31
|
execFunctionExist?: any[];
|
|
@@ -39,6 +41,13 @@ export declare function insertUpdateFunctionGroup(ctx: Context, r: number, c: nu
|
|
|
39
41
|
export declare function execfunction(ctx: Context, txt: string, r: number, c: number, id?: string, calcChainSet?: Set<string>, isrefresh?: boolean, notInsertFunc?: boolean): any[];
|
|
40
42
|
export declare function groupValuesRefresh(ctx: Context): void;
|
|
41
43
|
export declare function execFunctionGroup(ctx: Context, origin_r: number, origin_c: number, value: any, id?: string, data?: any, isForce?: boolean): void;
|
|
44
|
+
/**
|
|
45
|
+
* Before the first `moveHighlightCell/Range(..., "rangeOfFormula")` while editing
|
|
46
|
+
* a formula, copy the current yellow selection into `func_selectedrange` so
|
|
47
|
+
* keyboard navigation updates only the blue formula overlay (like mouse drag),
|
|
48
|
+
* without resizing `luckysheet_select_save`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function seedFormulaFuncSelectedRangeFromLastSelection(ctx: Context): boolean;
|
|
42
51
|
export declare function createFormulaRangeSelect(ctx: Context, select: {
|
|
43
52
|
rangeIndex: number;
|
|
44
53
|
} & Rect): void;
|
|
@@ -51,8 +60,8 @@ export declare function functionHTMLGenerate(txt: string): string;
|
|
|
51
60
|
export declare function getLastFormulaRangeIndex($editor: HTMLDivElement): number | null;
|
|
52
61
|
/** Range cell that contains the caret, if any (inside #luckysheet-rich-text-editor tree). */
|
|
53
62
|
export declare function getFormulaRangeIndexAtCaret($editor: HTMLDivElement): number | null;
|
|
54
|
-
export declare function setFormulaEditorOwner(ctx: Context, owner:
|
|
55
|
-
export declare function getFormulaEditorOwner(ctx: Context):
|
|
63
|
+
export declare function setFormulaEditorOwner(ctx: Context, owner: 'cell' | 'fx' | null): void;
|
|
64
|
+
export declare function getFormulaEditorOwner(ctx: Context): 'cell' | 'fx' | null;
|
|
56
65
|
/**
|
|
57
66
|
* True when the formula text looks like a truncated A1-style range: LHS has a row
|
|
58
67
|
* number but RHS after ":" is only column letters (e.g. =A1:A after deleting the
|
|
@@ -86,7 +95,7 @@ export declare function isLegacyFormulaRangeMode(ctx: Context): boolean;
|
|
|
86
95
|
export declare function israngeseleciton(ctx: Context, istooltip?: boolean): boolean;
|
|
87
96
|
export declare function isFormulaReferenceInputMode(ctx: Context): boolean;
|
|
88
97
|
export declare function maybeRecoverDirtyRangeSelection(ctx: Context): boolean;
|
|
89
|
-
export declare function functionStrChange(txt: string, type: string, rc:
|
|
98
|
+
export declare function functionStrChange(txt: string, type: string, rc: 'row' | 'col', orient: string | null, stindex: number, step: number): string;
|
|
90
99
|
export declare function rangeSetValue(ctx: Context, cellInput: HTMLDivElement, selected: any, fxInput?: HTMLDivElement | null): void;
|
|
91
100
|
export declare function onFormulaRangeDragEnd(ctx: Context): void;
|
|
92
101
|
export declare function rangeDrag(ctx: Context, e: MouseEvent, cellInput: HTMLDivElement, scrollLeft: number, scrollTop: number, container: HTMLDivElement, fxInput?: HTMLDivElement | null): void;
|
|
@@ -3,12 +3,12 @@ export { normalizedCellAttr, normalizedAttr, getCellValue, setCellValue, getReal
|
|
|
3
3
|
export { default as clipboard } from './clipboard';
|
|
4
4
|
export { moveToEnd, getRangeRectsByCharacterOffset } from './cursor';
|
|
5
5
|
export { update, is_date, valueShowEs } from './format';
|
|
6
|
-
export { FormulaCache, groupValuesRefresh, setCaretPosition, getrangeseleciton, getFormulaEditorOwner, rangeHightlightselected, handleFormulaInput, israngeseleciton, createRangeHightlight, createFormulaRangeSelect, maybeRecoverDirtyRangeSelection, delFunctionGroup, functionHTMLGenerate, onFormulaRangeDragEnd, rangeDrag, rangeSetValue, remapFormulaReferencesByMap, getFormulaRangeIndexAtCaret, isCaretAtValidFormulaRangeInsertionPoint, isLegacyFormulaRangeMode, markRangeSelectionDirty, getFormulaRangeIndexForKeyboardSync, isFormulaReferenceInputMode, functionStrChange, setFormulaEditorOwner, getAllFunctionGroup, suppressFormulaRangeSelectionForInitialEdit, } from './formula';
|
|
6
|
+
export { FormulaCache, groupValuesRefresh, setCaretPosition, getrangeseleciton, getFormulaEditorOwner, rangeHightlightselected, handleFormulaInput, israngeseleciton, createRangeHightlight, createFormulaRangeSelect, maybeRecoverDirtyRangeSelection, delFunctionGroup, functionHTMLGenerate, onFormulaRangeDragEnd, rangeDrag, rangeSetValue, remapFormulaReferencesByMap, getFormulaRangeIndexAtCaret, isCaretAtValidFormulaRangeInsertionPoint, isLegacyFormulaRangeMode, markRangeSelectionDirty, getFormulaRangeIndexForKeyboardSync, isFormulaReferenceInputMode, seedFormulaFuncSelectedRangeFromLastSelection, functionStrChange, setFormulaEditorOwner, getAllFunctionGroup, execFunctionGroup, suppressFormulaRangeSelectionForInitialEdit, } from './formula';
|
|
7
7
|
export { initFreeze } from './freeze';
|
|
8
8
|
export { isInlineStringCell, getInlineStringNoStyle } from './inline-string';
|
|
9
9
|
export { rowLocation, rowLocationByIndex, colLocation, colLocationByIndex, } from './location';
|
|
10
10
|
export { insertRowCol, deleteRowCol, hideSelected, showSelected, isShowHidenCR, hideCRCount, } from './rowcol';
|
|
11
|
-
export { scrollToHighlightCell, seletedHighlistByindex, selectTitlesMap, selectTitlesRange, normalizeSelection, syncPrimaryCellActiveFromSelection, setPrimaryCellActive, advancePrimaryCellInLastMultiSelection, moveHighlightCell, deleteSelectedCellText, selectAll, fixRowStyleOverflowInFreeze, fixColumnStyleOverflowInFreeze, calcSelectionInfo, rangeValueToHtml, } from './selection';
|
|
11
|
+
export { scrollToHighlightCell, seletedHighlistByindex, selectTitlesMap, selectTitlesRange, normalizeSelection, syncPrimaryCellActiveFromSelection, setPrimaryCellActive, advancePrimaryCellInLastMultiSelection, snapSheetSelectionFocusToCellPreserveMultiRange, moveHighlightCell, deleteSelectedCellText, selectAll, fixRowStyleOverflowInFreeze, fixColumnStyleOverflowInFreeze, calcSelectionInfo, rangeValueToHtml, } from './selection';
|
|
12
12
|
export { addSheet, deleteSheet, editSheetName, changeSheet, updateSheet, } from './sheet';
|
|
13
13
|
export { updateFormat, autoSelectionFormula, handleBold, handleItalic, handleStrikeThrough, handleUnderline, handleHorizontalAlign, handleVerticalAlign, handleTextColor, handleTextBackground, handleBorder, handleMerge, handleSort, handleFreeze, handleTextSize, handleSum, handleLink, toolbarItemClickHandler, toolbarItemSelectedFunc, updateFormatCell, cancelPaintModel, } from './toolbar';
|
|
14
14
|
export { handleScreenShot } from './screenshot';
|
|
@@ -17,7 +17,8 @@ export { showImgChooser, insertImage, removeActiveImage, cancelActiveImgItem, on
|
|
|
17
17
|
export { createDropCellRange, dropCellCache, getTypeItemHide, updateDropCell, } from './dropCell';
|
|
18
18
|
export { mergeCells } from './merge';
|
|
19
19
|
export { sortSelection, spillSortResult } from './sort';
|
|
20
|
-
export { searchAll, searchNext, replace, replaceAll } from './searchReplace';
|
|
20
|
+
export { searchAll, searchNext, replace, replaceAll, getSearchIndexArr, getSearchIndexArrAsync, getFindRangeOnCurrentSheet, getQuickSearchIndexArr, getQuickSearchHiddenConfig, expandCellRectForMerge, shouldQuickSearchUseAsync, runQuickSearchIndexArrAsync, QUICK_SEARCH_ASYNC_ROW_THRESHOLD, parseRangeText, } from './searchReplace';
|
|
21
|
+
export type { CheckModes, HyperlinkMap, FindSearchScope, SearchHiddenConfig, SearchNextResult, ReplaceAllResult, } from './searchReplace';
|
|
21
22
|
export { getCellRowColumn, getCellHyperlink, saveHyperlink, removeHyperlink, showLinkCard, goToLink, isLinkValid, } from './hyperlink';
|
|
22
23
|
export { createFilterOptions, clearFilter, createFilter, getFilterColumnValues, getFilterColumnColors, orderbydatafiler, saveFilter, } from './filter';
|
|
23
24
|
export type { FilterDate, FilterValue, FilterColor } from './filter';
|
|
@@ -20,12 +20,12 @@ export declare const inlineStyleAffectAttribute: {
|
|
|
20
20
|
fc: number;
|
|
21
21
|
};
|
|
22
22
|
export declare const inlineStyleAffectCssName: {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
'font-weight': number;
|
|
24
|
+
'font-style': number;
|
|
25
|
+
'font-family': number;
|
|
26
|
+
'text-decoration': number;
|
|
27
|
+
'border-bottom': number;
|
|
28
|
+
'font-size': number;
|
|
29
29
|
color: number;
|
|
30
30
|
};
|
|
31
31
|
export declare function isInlineStringCell(cell: any): boolean;
|
|
@@ -10,10 +10,10 @@ import { Context } from '../context';
|
|
|
10
10
|
* @returns
|
|
11
11
|
*/
|
|
12
12
|
export declare function insertRowCol(ctx: Context, op: {
|
|
13
|
-
type:
|
|
13
|
+
type: 'row' | 'column';
|
|
14
14
|
index: number;
|
|
15
15
|
count: number;
|
|
16
|
-
direction:
|
|
16
|
+
direction: 'lefttop' | 'rightbottom';
|
|
17
17
|
id: string;
|
|
18
18
|
/** Pre-insert row index for each inserted row (length must equal count). */
|
|
19
19
|
templateSourceRows?: number[];
|
|
@@ -21,7 +21,7 @@ export declare function insertRowCol(ctx: Context, op: {
|
|
|
21
21
|
templateSourceColumns?: number[];
|
|
22
22
|
}, changeSelection?: boolean): void;
|
|
23
23
|
export declare function deleteRowCol(ctx: Context, op: {
|
|
24
|
-
type:
|
|
24
|
+
type: 'row' | 'column';
|
|
25
25
|
start: number;
|
|
26
26
|
end: number;
|
|
27
27
|
id?: string;
|
|
@@ -1,37 +1,129 @@
|
|
|
1
1
|
import { Context } from '../context';
|
|
2
|
-
import { CellMatrix, SearchResult, GlobalCache } from '../types';
|
|
2
|
+
import { CellMatrix, Selection, SearchResult, GlobalCache } from '../types';
|
|
3
3
|
|
|
4
|
+
/** Where find/replace scans on the current sheet (workbook-wide only applies to find-all). */
|
|
5
|
+
export type FindSearchScope = 'allSheets' | 'thisSheet' | 'specificRange';
|
|
6
|
+
/**
|
|
7
|
+
* Return value of {@link searchNext}.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* **Semver:** Older releases returned `string | null` from `searchNext` (a localized message, or `null` on success).
|
|
11
|
+
* The object form is a **breaking change** for callers that still expect `string | null`; update them to read
|
|
12
|
+
* {@link SearchNextResult.alertMsg} (and optionally {@link SearchNextResult.matchIndex} /
|
|
13
|
+
* {@link SearchNextResult.matchTotal} for on-sheet scoped search UI).
|
|
14
|
+
*/
|
|
15
|
+
export type SearchNextResult = {
|
|
16
|
+
/** Localized message for an alert dialog, or `null` when the next/previous hit was selected successfully. */
|
|
17
|
+
alertMsg: string | null;
|
|
18
|
+
/**
|
|
19
|
+
* 0-based index of the selected hit in the current sheet's ordered hit list when
|
|
20
|
+
* `scope` is `thisSheet` or `specificRange` and navigation succeeded; otherwise `0`.
|
|
21
|
+
*/
|
|
22
|
+
matchIndex: number;
|
|
23
|
+
/**
|
|
24
|
+
* Size of that hit list for `thisSheet` / `specificRange`; `0` when not applicable (e.g. `allSheets`, errors,
|
|
25
|
+
* or empty search).
|
|
26
|
+
*/
|
|
27
|
+
matchTotal: number;
|
|
28
|
+
};
|
|
29
|
+
/** Outcome of {@link replaceAll} for UI (inline status vs. error message). */
|
|
30
|
+
export type ReplaceAllResult = {
|
|
31
|
+
ok: false;
|
|
32
|
+
message: string;
|
|
33
|
+
} | {
|
|
34
|
+
ok: true;
|
|
35
|
+
replaced: number;
|
|
36
|
+
skipped: number;
|
|
37
|
+
};
|
|
38
|
+
/** Full used grid on the active sheet for find/replace on this sheet; `null` if the sheet has no cells. */
|
|
39
|
+
export declare function getFindRangeOnCurrentSheet(flowdata: CellMatrix): Selection[] | null;
|
|
40
|
+
export type HyperlinkMap = Record<string, {
|
|
41
|
+
linkType?: string;
|
|
42
|
+
linkAddress?: string;
|
|
43
|
+
}>;
|
|
44
|
+
export interface CheckModes {
|
|
45
|
+
regCheck?: boolean;
|
|
46
|
+
wordCheck?: boolean;
|
|
47
|
+
caseCheck?: boolean;
|
|
48
|
+
/** Also search inside formula strings (cell.f) */
|
|
49
|
+
formulaCheck?: boolean;
|
|
50
|
+
/** Also search sheet hyperlink address/type for the cell */
|
|
51
|
+
linkCheck?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/** Skip cells in hidden rows/columns (manual hide + filter). */
|
|
54
|
+
export type SearchHiddenConfig = {
|
|
55
|
+
rowhidden?: Record<string, number> | null;
|
|
56
|
+
colhidden?: Record<string, number> | null;
|
|
57
|
+
};
|
|
4
58
|
export declare function getSearchIndexArr(searchText: string, range: {
|
|
5
59
|
row: number[];
|
|
6
60
|
column: number[];
|
|
7
|
-
}[], flowdata: CellMatrix, { regCheck, wordCheck, caseCheck }?: {
|
|
8
|
-
regCheck: boolean;
|
|
9
|
-
wordCheck: boolean;
|
|
10
|
-
caseCheck: boolean;
|
|
11
|
-
}): {
|
|
61
|
+
}[], flowdata: CellMatrix, { regCheck, wordCheck, caseCheck, formulaCheck, linkCheck, }?: CheckModes, hyperlinkMap?: HyperlinkMap, hiddenConfig?: SearchHiddenConfig): {
|
|
12
62
|
r: number;
|
|
13
63
|
c: number;
|
|
14
64
|
}[];
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
65
|
+
/** Use chunked async scan when the active sheet has at least this many rows. */
|
|
66
|
+
export declare const QUICK_SEARCH_ASYNC_ROW_THRESHOLD = 50000;
|
|
67
|
+
export declare function getQuickSearchHiddenConfig(ctx: Context): SearchHiddenConfig;
|
|
68
|
+
/** Display-only, case-insensitive substring find; skips hidden rows/columns. */
|
|
69
|
+
export declare function getQuickSearchIndexArr(ctx: Context, searchText: string, flowdata: CellMatrix): {
|
|
70
|
+
r: number;
|
|
71
|
+
c: number;
|
|
72
|
+
}[];
|
|
73
|
+
/** Bounding grid rect for overlay (merged region or single cell). */
|
|
74
|
+
export declare function expandCellRectForMerge(ctx: Context, r: number, c: number): {
|
|
75
|
+
r1: number;
|
|
76
|
+
r2: number;
|
|
77
|
+
c1: number;
|
|
78
|
+
c2: number;
|
|
79
|
+
};
|
|
80
|
+
export declare function shouldQuickSearchUseAsync(flowdata: CellMatrix): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Finds the next or previous match, updates selection and scroll, and optionally switches sheet when
|
|
83
|
+
* `scope` is `allSheets`.
|
|
84
|
+
*
|
|
85
|
+
* @param specificRange - When `scope` is `specificRange`, restricts the scan to this rectangle on the active sheet.
|
|
86
|
+
* @returns Structured result; see {@link SearchNextResult} and semver note on {@link SearchNextResult} remarks.
|
|
87
|
+
*/
|
|
88
|
+
export declare function searchNext(ctx: Context, searchText: string, checkModes: CheckModes, scope?: FindSearchScope, direction?: 'next' | 'prev', specificRange?: Selection): SearchNextResult;
|
|
89
|
+
export declare function searchAll(ctx: Context, searchText: string, checkModes: CheckModes, scope?: FindSearchScope, specificRange?: Selection): SearchResult[];
|
|
25
90
|
export declare function onSearchDialogMoveStart(globalCache: GlobalCache, e: MouseEvent, container: HTMLDivElement): void;
|
|
26
91
|
export declare function onSearchDialogMove(globalCache: GlobalCache, e: MouseEvent): void;
|
|
27
92
|
export declare function onSearchDialogMoveEnd(globalCache: GlobalCache): void;
|
|
28
|
-
export declare function replace(ctx: Context, searchText: string, replaceText: string, checkModes:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
93
|
+
export declare function replace(ctx: Context, searchText: string, replaceText: string, checkModes: CheckModes, specificRange?: Selection): any;
|
|
94
|
+
export declare function replaceAll(ctx: Context, searchText: string, replaceText: string, checkModes: CheckModes, specificRange?: Selection): ReplaceAllResult;
|
|
95
|
+
/**
|
|
96
|
+
* Asynchronously scans `flowdata` for `searchText` in chunks, yielding
|
|
97
|
+
* between chunks so the main thread stays responsive.
|
|
98
|
+
*
|
|
99
|
+
* Returns an AbortController — call `.abort()` to cancel an in-flight scan.
|
|
100
|
+
*
|
|
101
|
+
* @param onProgress - called with partial results after each chunk
|
|
102
|
+
* @param onComplete - called once with the full result array when done
|
|
103
|
+
*/
|
|
104
|
+
export declare function getSearchIndexArrAsync(searchText: string, range: {
|
|
105
|
+
row: number[];
|
|
106
|
+
column: number[];
|
|
107
|
+
}[], flowdata: CellMatrix, modes: CheckModes, hyperlinkMap?: HyperlinkMap, hiddenConfig?: SearchHiddenConfig, onProgress?: (partial: {
|
|
108
|
+
r: number;
|
|
109
|
+
c: number;
|
|
110
|
+
}[]) => void, onComplete?: (all: {
|
|
111
|
+
r: number;
|
|
112
|
+
c: number;
|
|
113
|
+
}[]) => void): AbortController;
|
|
114
|
+
/** Chunked quick search with hidden row/column skip (same semantics as `getQuickSearchIndexArr`). */
|
|
115
|
+
export declare function runQuickSearchIndexArrAsync(ctx: Context, searchText: string, flowdata: CellMatrix, onProgress: (partial: {
|
|
116
|
+
r: number;
|
|
117
|
+
c: number;
|
|
118
|
+
}[]) => void, onComplete: (all: {
|
|
119
|
+
r: number;
|
|
120
|
+
c: number;
|
|
121
|
+
}[]) => void): AbortController;
|
|
122
|
+
/**
|
|
123
|
+
* Parses an A1-notation range string (e.g. "E10:H14" or "Sheet1!E10:H14")
|
|
124
|
+
* into a `Selection` suitable for scoping find/replace.
|
|
125
|
+
*
|
|
126
|
+
* Returns `null` if the text is empty or cannot be parsed.
|
|
127
|
+
* The sheet-name prefix is stripped before parsing — the active sheet is always used.
|
|
128
|
+
*/
|
|
129
|
+
export declare function parseRangeText(rangeText: string, ctx: Context): Selection | null;
|
|
@@ -17,7 +17,7 @@ export declare function seletedHighlistByindex(ctx: Context, r1: number, r2: num
|
|
|
17
17
|
* else null). Pass `selection` explicitly when normalizing a **new** array that is not
|
|
18
18
|
* yet assigned to `ctx.luckysheet_select_save`.
|
|
19
19
|
*/
|
|
20
|
-
export declare function syncPrimaryCellActiveFromSelection(ctx: Context, selection?: SheetType[
|
|
20
|
+
export declare function syncPrimaryCellActiveFromSelection(ctx: Context, selection?: SheetType['luckysheet_select_save'] | null): void;
|
|
21
21
|
/**
|
|
22
22
|
* Multi-cell range only: move `row_focus` / `column_focus` (and primary) in
|
|
23
23
|
* column-major order — forward: down then next column right, wrapping top-left;
|
|
@@ -32,24 +32,30 @@ export declare function advancePrimaryCellInLastMultiSelection(ctx: Context, for
|
|
|
32
32
|
* selection that runs `normalizeSelection` will re-sync from the new range.
|
|
33
33
|
*/
|
|
34
34
|
export declare function setPrimaryCellActive(ctx: Context, r: number, c: number): void;
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* After formula segment / delete handling, move selection focus to the edited cell
|
|
37
|
+
* (r,c). If the sheet already has a multi-cell range and (r,c) is inside it, keep
|
|
38
|
+
* that range so Enter-primary navigation + typing do not collapse the yellow box.
|
|
39
|
+
*/
|
|
40
|
+
export declare function snapSheetSelectionFocusToCellPreserveMultiRange(ctx: Context, r: number, c: number): void;
|
|
41
|
+
export declare function normalizeSelection(ctx: Context, selection: SheetType['luckysheet_select_save']): import('..').Selection[] | undefined;
|
|
36
42
|
export declare function selectTitlesMap(rangeMap: Record<string, number>, range1: number, range2: number): Record<string, number>;
|
|
37
43
|
export declare function selectTitlesRange(map: Record<string, number>): number[][];
|
|
38
|
-
export declare function pasteHandlerOfPaintModel(ctx: Context, copyRange: Context[
|
|
44
|
+
export declare function pasteHandlerOfPaintModel(ctx: Context, copyRange: Context['luckysheet_copy_save']): void;
|
|
39
45
|
export declare function selectionCopyShow(range: any, ctx: Context): void;
|
|
40
46
|
export declare function rowHasMerged(ctx: Context, r: number, c1: number, c2: number): boolean;
|
|
41
47
|
export declare function colHasMerged(ctx: Context, c: number, r1: number, r2: number): boolean;
|
|
42
48
|
export declare function getRowMerge(ctx: Context, rIndex: number, c1: number, c2: number): (number | null)[];
|
|
43
49
|
export declare function getColMerge(ctx: Context, cIndex: number, r1: number, r2: number): (number | null)[];
|
|
44
|
-
export declare function moveHighlightCell(ctx: Context, postion:
|
|
45
|
-
export declare function moveHighlightRange(ctx: Context, postion:
|
|
50
|
+
export declare function moveHighlightCell(ctx: Context, postion: 'down' | 'right', index: number, type: 'rangeOfSelect' | 'rangeOfFormula'): void;
|
|
51
|
+
export declare function moveHighlightRange(ctx: Context, postion: 'down' | 'right', index: number, type: 'rangeOfSelect' | 'rangeOfFormula'): void;
|
|
46
52
|
export declare function rangeValueToHtml(ctx: Context, sheetId: string, ranges?: Range): string | null;
|
|
47
53
|
export declare function copy(ctx: Context): void;
|
|
48
54
|
export declare function deleteSelectedCellText(ctx: Context): string;
|
|
49
55
|
export declare function deleteSelectedCellFormat(ctx: Context): string;
|
|
50
56
|
export declare function fillRightData(ctx: Context): string;
|
|
51
57
|
export declare function fillDownData(ctx: Context): string;
|
|
52
|
-
export declare function textFormat(ctx: Context, type:
|
|
58
|
+
export declare function textFormat(ctx: Context, type: 'left' | 'center' | 'right'): string;
|
|
53
59
|
export declare function fillDate(ctx: Context): string;
|
|
54
60
|
export declare function fillTime(ctx: Context): string;
|
|
55
61
|
export declare function selectIsOverlap(ctx: Context, range?: any): boolean;
|
|
@@ -2,7 +2,7 @@ import { Patch as ImmerPatch } from 'immer';
|
|
|
2
2
|
import { PatchOptions } from './utils';
|
|
3
3
|
|
|
4
4
|
export type Op = {
|
|
5
|
-
op:
|
|
5
|
+
op: 'replace' | 'remove' | 'add' | 'insertRowCol' | 'deleteRowCol' | 'addSheet' | 'deleteSheet';
|
|
6
6
|
id?: string;
|
|
7
7
|
path: (string | number)[];
|
|
8
8
|
value?: any;
|
|
@@ -227,7 +227,7 @@ export type Sheet = {
|
|
|
227
227
|
dynamicArray_compute?: any;
|
|
228
228
|
dynamicArray?: any[];
|
|
229
229
|
frozen?: {
|
|
230
|
-
type:
|
|
230
|
+
type: 'row' | 'column' | 'both' | 'rangeRow' | 'rangeColumn' | 'rangeBoth';
|
|
231
231
|
range?: {
|
|
232
232
|
row_focus: number;
|
|
233
233
|
column_focus: number;
|
|
@@ -388,6 +388,8 @@ export type GlobalCache = {
|
|
|
388
388
|
} | undefined;
|
|
389
389
|
};
|
|
390
390
|
};
|
|
391
|
+
/** Element to restore focus to after closing Quick Search (not stored in Immer context). */
|
|
392
|
+
quickSearchReturnFocus?: Element | null;
|
|
391
393
|
linkCard?: {
|
|
392
394
|
mouseEnter?: boolean;
|
|
393
395
|
rangeSelectionModal?: {
|