@univerjs/find-replace 1.0.0-rc.0 → 1.0.0
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/lib/cjs/index.js +14 -12
- package/lib/cjs/locale/ar-SA.js +0 -1
- package/lib/cjs/locale/ca-ES.js +0 -1
- package/lib/cjs/locale/de-DE.js +0 -1
- package/lib/cjs/locale/en-US.js +0 -1
- package/lib/cjs/locale/es-ES.js +0 -1
- package/lib/cjs/locale/fa-IR.js +0 -1
- package/lib/cjs/locale/fr-FR.js +0 -1
- package/lib/cjs/locale/id-ID.js +0 -1
- package/lib/cjs/locale/it-IT.js +0 -1
- package/lib/cjs/locale/ja-JP.js +0 -1
- package/lib/cjs/locale/ko-KR.js +0 -1
- package/lib/cjs/locale/pl-PL.js +0 -1
- package/lib/cjs/locale/pt-BR.js +0 -1
- package/lib/cjs/locale/ru-RU.js +0 -1
- package/lib/cjs/locale/sk-SK.js +0 -1
- package/lib/cjs/locale/vi-VN.js +0 -1
- package/lib/cjs/locale/zh-CN.js +0 -1
- package/lib/cjs/locale/zh-HK.js +0 -1
- package/lib/cjs/locale/zh-TW.js +0 -1
- package/lib/es/index.js +17 -15
- package/lib/index.js +17 -15
- package/lib/umd/index.js +1 -1
- package/package.json +9 -9
package/lib/cjs/index.js
CHANGED
|
@@ -37,7 +37,7 @@ const FIND_REPLACE_REPLACE_REVEALED = "FIND_REPLACE_REPLACE_REVEALED";
|
|
|
37
37
|
const FIND_REPLACE_AVAILABLE = "FIND_REPLACE_AVAILABLE";
|
|
38
38
|
|
|
39
39
|
//#endregion
|
|
40
|
-
//#region \0@oxc-project+runtime@0.
|
|
40
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
|
|
41
41
|
function _typeof(o) {
|
|
42
42
|
"@babel/helpers - typeof";
|
|
43
43
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -48,7 +48,7 @@ function _typeof(o) {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
//#endregion
|
|
51
|
-
//#region \0@oxc-project+runtime@0.
|
|
51
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
|
|
52
52
|
function toPrimitive(t, r) {
|
|
53
53
|
if ("object" != _typeof(t) || !t) return t;
|
|
54
54
|
var e = t[Symbol.toPrimitive];
|
|
@@ -61,14 +61,14 @@ function toPrimitive(t, r) {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
//#endregion
|
|
64
|
-
//#region \0@oxc-project+runtime@0.
|
|
64
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
|
|
65
65
|
function toPropertyKey(t) {
|
|
66
66
|
var i = toPrimitive(t, "string");
|
|
67
67
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
//#endregion
|
|
71
|
-
//#region \0@oxc-project+runtime@0.
|
|
71
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
|
|
72
72
|
function _defineProperty(e, r, t) {
|
|
73
73
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
74
74
|
value: t,
|
|
@@ -79,7 +79,7 @@ function _defineProperty(e, r, t) {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
//#endregion
|
|
82
|
-
//#region \0@oxc-project+runtime@0.
|
|
82
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
|
|
83
83
|
function __decorateParam(paramIndex, decorator) {
|
|
84
84
|
return function(target, key) {
|
|
85
85
|
decorator(target, key, paramIndex);
|
|
@@ -87,7 +87,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
//#endregion
|
|
90
|
-
//#region \0@oxc-project+runtime@0.
|
|
90
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
|
|
91
91
|
function __decorate(decorators, target, key, desc) {
|
|
92
92
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
93
93
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1037,7 +1037,7 @@ function getFindReplaceDialogDefaultPosition(direction) {
|
|
|
1037
1037
|
//#endregion
|
|
1038
1038
|
//#region package.json
|
|
1039
1039
|
var name = "@univerjs/find-replace";
|
|
1040
|
-
var version = "1.0.0
|
|
1040
|
+
var version = "1.0.0";
|
|
1041
1041
|
|
|
1042
1042
|
//#endregion
|
|
1043
1043
|
//#region src/config/config.ts
|
|
@@ -1239,7 +1239,6 @@ function MobileFindReplaceBar() {
|
|
|
1239
1239
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MobileFindReplaceBarContent, {});
|
|
1240
1240
|
}
|
|
1241
1241
|
function MobileFindReplaceBarContent() {
|
|
1242
|
-
const keyboardInset = (0, react.useContext)(_univerjs_ui.MobileKeyboardInsetContext);
|
|
1243
1242
|
const commandService = (0, _univerjs_ui.useDependency)(_univerjs_core.ICommandService);
|
|
1244
1243
|
const dialogService = (0, _univerjs_ui.useDependency)(_univerjs_ui.IDialogService);
|
|
1245
1244
|
const findReplaceService = (0, _univerjs_ui.useDependency)(IFindReplaceService);
|
|
@@ -1248,9 +1247,11 @@ function MobileFindReplaceBarContent() {
|
|
|
1248
1247
|
const currentMatch = (0, _univerjs_ui.useObservable)(findReplaceService.currentMatch$, null, true);
|
|
1249
1248
|
const replaceables = (0, _univerjs_ui.useObservable)(findReplaceService.replaceables$, [], true);
|
|
1250
1249
|
const [findValue, setFindValue] = (0, react.useState)(() => state.replaceRevealed ? state.inputtingFindString : state.findString);
|
|
1250
|
+
const barRef = (0, react.useRef)(null);
|
|
1251
1251
|
const inputRef = (0, react.useRef)(null);
|
|
1252
1252
|
const searchTimerRef = (0, react.useRef)(null);
|
|
1253
1253
|
const suppressNextFocusRef = (0, react.useRef)(false);
|
|
1254
|
+
const keyboardLayout = (0, _univerjs_design.useMobileKeyboardViewportLayout)(barRef);
|
|
1254
1255
|
(0, react.useEffect)(() => {
|
|
1255
1256
|
const frame = requestAnimationFrame(() => {
|
|
1256
1257
|
var _inputRef$current;
|
|
@@ -1328,10 +1329,11 @@ function MobileFindReplaceBarContent() {
|
|
|
1328
1329
|
const replaceDisabled = state.matchesCount === 0 || !(currentMatch === null || currentMatch === void 0 ? void 0 : currentMatch.replaceable);
|
|
1329
1330
|
const replaceAllDisabled = replaceables.length === 0;
|
|
1330
1331
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1332
|
+
ref: barRef,
|
|
1331
1333
|
"data-u-comp": "mobile-find-replace-bar",
|
|
1332
1334
|
className: "univer-fixed univer-inset-x-0 univer-z-40 univer-grid univer-gap-2 univer-bg-gray-0 univer-px-2 univer-pt-1.5 univer-shadow-[0_-4px_16px_rgba(0,0,0,0.08)] dark:!univer-bg-gray-800",
|
|
1333
1335
|
style: {
|
|
1334
|
-
bottom:
|
|
1336
|
+
bottom: (keyboardLayout === null || keyboardLayout === void 0 ? void 0 : keyboardLayout.bottom) ?? 0,
|
|
1335
1337
|
paddingBottom: "calc(6px + env(safe-area-inset-bottom, 0px))"
|
|
1336
1338
|
},
|
|
1337
1339
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -1749,20 +1751,20 @@ const ReplaceDialog = (0, react.forwardRef)(function ReplaceDialogImpl(_props, r
|
|
|
1749
1751
|
capabilities.caseSensitive && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_design.FormLayout, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_design.Checkbox, {
|
|
1750
1752
|
checked: caseSensitive,
|
|
1751
1753
|
onChange: (checked) => {
|
|
1752
|
-
findReplaceService.changeCaseSensitive(checked);
|
|
1754
|
+
findReplaceService.changeCaseSensitive(Boolean(checked));
|
|
1753
1755
|
if (findCompleted) findReplaceService.find();
|
|
1754
1756
|
},
|
|
1755
1757
|
children: localeService.t("find-replace.dialog.case-sensitive")
|
|
1756
1758
|
}) }),
|
|
1757
1759
|
capabilities.matchesTheWholeCell && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_design.FormLayout, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_design.Checkbox, {
|
|
1758
1760
|
checked: matchesTheWholeCell,
|
|
1759
|
-
onChange: (checked) => findReplaceService.changeMatchesTheWholeCell(checked),
|
|
1761
|
+
onChange: (checked) => findReplaceService.changeMatchesTheWholeCell(Boolean(checked)),
|
|
1760
1762
|
children: localeService.t("find-replace.dialog.match-the-whole-cell")
|
|
1761
1763
|
}) }),
|
|
1762
1764
|
capabilities.matchesTheWholeWord && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_design.FormLayout, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_design.Checkbox, {
|
|
1763
1765
|
checked: matchesTheWholeWord,
|
|
1764
1766
|
onChange: (checked) => {
|
|
1765
|
-
findReplaceService.changeMatchesTheWholeWord(checked);
|
|
1767
|
+
findReplaceService.changeMatchesTheWholeWord(Boolean(checked));
|
|
1766
1768
|
if (findCompleted) findReplaceService.find();
|
|
1767
1769
|
},
|
|
1768
1770
|
children: localeService.t("find-replace.dialog.match-the-whole-word")
|
package/lib/cjs/locale/ar-SA.js
CHANGED
package/lib/cjs/locale/ca-ES.js
CHANGED
package/lib/cjs/locale/de-DE.js
CHANGED
package/lib/cjs/locale/en-US.js
CHANGED
package/lib/cjs/locale/es-ES.js
CHANGED
package/lib/cjs/locale/fa-IR.js
CHANGED
package/lib/cjs/locale/fr-FR.js
CHANGED
package/lib/cjs/locale/id-ID.js
CHANGED
package/lib/cjs/locale/it-IT.js
CHANGED
package/lib/cjs/locale/ja-JP.js
CHANGED
package/lib/cjs/locale/ko-KR.js
CHANGED
package/lib/cjs/locale/pl-PL.js
CHANGED
package/lib/cjs/locale/pt-BR.js
CHANGED
package/lib/cjs/locale/ru-RU.js
CHANGED
package/lib/cjs/locale/sk-SK.js
CHANGED
package/lib/cjs/locale/vi-VN.js
CHANGED
package/lib/cjs/locale/zh-CN.js
CHANGED
package/lib/cjs/locale/zh-HK.js
CHANGED
package/lib/cjs/locale/zh-TW.js
CHANGED
package/lib/es/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { CommandType, DependentOn, Disposable, DisposableCollection, EDITOR_ACTIVATED, FOCUSING_SHEET, ICommandService, IConfigService, IConfirmService, IContextService, IUniverInstanceService, Inject, Injector, LocaleService, Plugin, RxDisposable, UniverInstanceType, createIdentifier, merge, toDisposable } from "@univerjs/core";
|
|
2
|
-
import { Button, Checkbox, FormDualColumnLayout, FormLayout, Input, MessageType, MobileSelect, Pager, Select, clsx, resetButtonClassName } from "@univerjs/design";
|
|
3
|
-
import { BuiltInUIPart, ComponentManager, IDialogService, ILayoutService, IMenuManagerService, IMessageService, IShortcutService, IUIPartsService, IconManager, KeyCode, MenuItemType, MetaKeys,
|
|
2
|
+
import { Button, Checkbox, FormDualColumnLayout, FormLayout, Input, MessageType, MobileSelect, Pager, Select, clsx, resetButtonClassName, useMobileKeyboardViewportLayout } from "@univerjs/design";
|
|
3
|
+
import { BuiltInUIPart, ComponentManager, IDialogService, ILayoutService, IMenuManagerService, IMessageService, IShortcutService, IUIPartsService, IconManager, KeyCode, MenuItemType, MetaKeys, RibbonDataGroup, UniverMobileUIPlugin, connectInjector, getMenuHiddenObservable, useDebounceFn, useDependency, useObservable } from "@univerjs/ui";
|
|
4
4
|
import { RENDER_RAW_FORMULA_KEY } from "@univerjs/engine-render";
|
|
5
5
|
import { BehaviorSubject, Subject, combineLatest, debounceTime, fromEvent, map, startWith, takeUntil, throttleTime } from "rxjs";
|
|
6
6
|
import { ArrowDownIcon, ArrowUpIcon, CloseIcon, ConfigureTabIcon, SearchIcon } from "@univerjs/icons";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import { forwardRef, useCallback,
|
|
8
|
+
import { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from "react";
|
|
9
9
|
|
|
10
10
|
//#region src/services/context-keys.ts
|
|
11
11
|
/**
|
|
@@ -36,7 +36,7 @@ const FIND_REPLACE_REPLACE_REVEALED = "FIND_REPLACE_REPLACE_REVEALED";
|
|
|
36
36
|
const FIND_REPLACE_AVAILABLE = "FIND_REPLACE_AVAILABLE";
|
|
37
37
|
|
|
38
38
|
//#endregion
|
|
39
|
-
//#region \0@oxc-project+runtime@0.
|
|
39
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
|
|
40
40
|
function _typeof(o) {
|
|
41
41
|
"@babel/helpers - typeof";
|
|
42
42
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -47,7 +47,7 @@ function _typeof(o) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
//#endregion
|
|
50
|
-
//#region \0@oxc-project+runtime@0.
|
|
50
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
|
|
51
51
|
function toPrimitive(t, r) {
|
|
52
52
|
if ("object" != _typeof(t) || !t) return t;
|
|
53
53
|
var e = t[Symbol.toPrimitive];
|
|
@@ -60,14 +60,14 @@ function toPrimitive(t, r) {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
//#endregion
|
|
63
|
-
//#region \0@oxc-project+runtime@0.
|
|
63
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
|
|
64
64
|
function toPropertyKey(t) {
|
|
65
65
|
var i = toPrimitive(t, "string");
|
|
66
66
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
//#endregion
|
|
70
|
-
//#region \0@oxc-project+runtime@0.
|
|
70
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
|
|
71
71
|
function _defineProperty(e, r, t) {
|
|
72
72
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
73
73
|
value: t,
|
|
@@ -78,7 +78,7 @@ function _defineProperty(e, r, t) {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
//#endregion
|
|
81
|
-
//#region \0@oxc-project+runtime@0.
|
|
81
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
|
|
82
82
|
function __decorateParam(paramIndex, decorator) {
|
|
83
83
|
return function(target, key) {
|
|
84
84
|
decorator(target, key, paramIndex);
|
|
@@ -86,7 +86,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
//#endregion
|
|
89
|
-
//#region \0@oxc-project+runtime@0.
|
|
89
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
|
|
90
90
|
function __decorate(decorators, target, key, desc) {
|
|
91
91
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
92
92
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1036,7 +1036,7 @@ function getFindReplaceDialogDefaultPosition(direction) {
|
|
|
1036
1036
|
//#endregion
|
|
1037
1037
|
//#region package.json
|
|
1038
1038
|
var name = "@univerjs/find-replace";
|
|
1039
|
-
var version = "1.0.0
|
|
1039
|
+
var version = "1.0.0";
|
|
1040
1040
|
|
|
1041
1041
|
//#endregion
|
|
1042
1042
|
//#region src/config/config.ts
|
|
@@ -1238,7 +1238,6 @@ function MobileFindReplaceBar() {
|
|
|
1238
1238
|
return /* @__PURE__ */ jsx(MobileFindReplaceBarContent, {});
|
|
1239
1239
|
}
|
|
1240
1240
|
function MobileFindReplaceBarContent() {
|
|
1241
|
-
const keyboardInset = useContext(MobileKeyboardInsetContext);
|
|
1242
1241
|
const commandService = useDependency(ICommandService);
|
|
1243
1242
|
const dialogService = useDependency(IDialogService);
|
|
1244
1243
|
const findReplaceService = useDependency(IFindReplaceService);
|
|
@@ -1247,9 +1246,11 @@ function MobileFindReplaceBarContent() {
|
|
|
1247
1246
|
const currentMatch = useObservable(findReplaceService.currentMatch$, null, true);
|
|
1248
1247
|
const replaceables = useObservable(findReplaceService.replaceables$, [], true);
|
|
1249
1248
|
const [findValue, setFindValue] = useState(() => state.replaceRevealed ? state.inputtingFindString : state.findString);
|
|
1249
|
+
const barRef = useRef(null);
|
|
1250
1250
|
const inputRef = useRef(null);
|
|
1251
1251
|
const searchTimerRef = useRef(null);
|
|
1252
1252
|
const suppressNextFocusRef = useRef(false);
|
|
1253
|
+
const keyboardLayout = useMobileKeyboardViewportLayout(barRef);
|
|
1253
1254
|
useEffect(() => {
|
|
1254
1255
|
const frame = requestAnimationFrame(() => {
|
|
1255
1256
|
var _inputRef$current;
|
|
@@ -1327,10 +1328,11 @@ function MobileFindReplaceBarContent() {
|
|
|
1327
1328
|
const replaceDisabled = state.matchesCount === 0 || !(currentMatch === null || currentMatch === void 0 ? void 0 : currentMatch.replaceable);
|
|
1328
1329
|
const replaceAllDisabled = replaceables.length === 0;
|
|
1329
1330
|
return /* @__PURE__ */ jsxs("div", {
|
|
1331
|
+
ref: barRef,
|
|
1330
1332
|
"data-u-comp": "mobile-find-replace-bar",
|
|
1331
1333
|
className: "univer-fixed univer-inset-x-0 univer-z-40 univer-grid univer-gap-2 univer-bg-gray-0 univer-px-2 univer-pt-1.5 univer-shadow-[0_-4px_16px_rgba(0,0,0,0.08)] dark:!univer-bg-gray-800",
|
|
1332
1334
|
style: {
|
|
1333
|
-
bottom:
|
|
1335
|
+
bottom: (keyboardLayout === null || keyboardLayout === void 0 ? void 0 : keyboardLayout.bottom) ?? 0,
|
|
1334
1336
|
paddingBottom: "calc(6px + env(safe-area-inset-bottom, 0px))"
|
|
1335
1337
|
},
|
|
1336
1338
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
@@ -1748,20 +1750,20 @@ const ReplaceDialog = forwardRef(function ReplaceDialogImpl(_props, ref) {
|
|
|
1748
1750
|
capabilities.caseSensitive && /* @__PURE__ */ jsx(FormLayout, { children: /* @__PURE__ */ jsx(Checkbox, {
|
|
1749
1751
|
checked: caseSensitive,
|
|
1750
1752
|
onChange: (checked) => {
|
|
1751
|
-
findReplaceService.changeCaseSensitive(checked);
|
|
1753
|
+
findReplaceService.changeCaseSensitive(Boolean(checked));
|
|
1752
1754
|
if (findCompleted) findReplaceService.find();
|
|
1753
1755
|
},
|
|
1754
1756
|
children: localeService.t("find-replace.dialog.case-sensitive")
|
|
1755
1757
|
}) }),
|
|
1756
1758
|
capabilities.matchesTheWholeCell && /* @__PURE__ */ jsx(FormLayout, { children: /* @__PURE__ */ jsx(Checkbox, {
|
|
1757
1759
|
checked: matchesTheWholeCell,
|
|
1758
|
-
onChange: (checked) => findReplaceService.changeMatchesTheWholeCell(checked),
|
|
1760
|
+
onChange: (checked) => findReplaceService.changeMatchesTheWholeCell(Boolean(checked)),
|
|
1759
1761
|
children: localeService.t("find-replace.dialog.match-the-whole-cell")
|
|
1760
1762
|
}) }),
|
|
1761
1763
|
capabilities.matchesTheWholeWord && /* @__PURE__ */ jsx(FormLayout, { children: /* @__PURE__ */ jsx(Checkbox, {
|
|
1762
1764
|
checked: matchesTheWholeWord,
|
|
1763
1765
|
onChange: (checked) => {
|
|
1764
|
-
findReplaceService.changeMatchesTheWholeWord(checked);
|
|
1766
|
+
findReplaceService.changeMatchesTheWholeWord(Boolean(checked));
|
|
1765
1767
|
if (findCompleted) findReplaceService.find();
|
|
1766
1768
|
},
|
|
1767
1769
|
children: localeService.t("find-replace.dialog.match-the-whole-word")
|
package/lib/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { CommandType, DependentOn, Disposable, DisposableCollection, EDITOR_ACTIVATED, FOCUSING_SHEET, ICommandService, IConfigService, IConfirmService, IContextService, IUniverInstanceService, Inject, Injector, LocaleService, Plugin, RxDisposable, UniverInstanceType, createIdentifier, merge, toDisposable } from "@univerjs/core";
|
|
2
|
-
import { Button, Checkbox, FormDualColumnLayout, FormLayout, Input, MessageType, MobileSelect, Pager, Select, clsx, resetButtonClassName } from "@univerjs/design";
|
|
3
|
-
import { BuiltInUIPart, ComponentManager, IDialogService, ILayoutService, IMenuManagerService, IMessageService, IShortcutService, IUIPartsService, IconManager, KeyCode, MenuItemType, MetaKeys,
|
|
2
|
+
import { Button, Checkbox, FormDualColumnLayout, FormLayout, Input, MessageType, MobileSelect, Pager, Select, clsx, resetButtonClassName, useMobileKeyboardViewportLayout } from "@univerjs/design";
|
|
3
|
+
import { BuiltInUIPart, ComponentManager, IDialogService, ILayoutService, IMenuManagerService, IMessageService, IShortcutService, IUIPartsService, IconManager, KeyCode, MenuItemType, MetaKeys, RibbonDataGroup, UniverMobileUIPlugin, connectInjector, getMenuHiddenObservable, useDebounceFn, useDependency, useObservable } from "@univerjs/ui";
|
|
4
4
|
import { RENDER_RAW_FORMULA_KEY } from "@univerjs/engine-render";
|
|
5
5
|
import { BehaviorSubject, Subject, combineLatest, debounceTime, fromEvent, map, startWith, takeUntil, throttleTime } from "rxjs";
|
|
6
6
|
import { ArrowDownIcon, ArrowUpIcon, CloseIcon, ConfigureTabIcon, SearchIcon } from "@univerjs/icons";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import { forwardRef, useCallback,
|
|
8
|
+
import { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from "react";
|
|
9
9
|
|
|
10
10
|
//#region src/services/context-keys.ts
|
|
11
11
|
/**
|
|
@@ -36,7 +36,7 @@ const FIND_REPLACE_REPLACE_REVEALED = "FIND_REPLACE_REPLACE_REVEALED";
|
|
|
36
36
|
const FIND_REPLACE_AVAILABLE = "FIND_REPLACE_AVAILABLE";
|
|
37
37
|
|
|
38
38
|
//#endregion
|
|
39
|
-
//#region \0@oxc-project+runtime@0.
|
|
39
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
|
|
40
40
|
function _typeof(o) {
|
|
41
41
|
"@babel/helpers - typeof";
|
|
42
42
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -47,7 +47,7 @@ function _typeof(o) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
//#endregion
|
|
50
|
-
//#region \0@oxc-project+runtime@0.
|
|
50
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
|
|
51
51
|
function toPrimitive(t, r) {
|
|
52
52
|
if ("object" != _typeof(t) || !t) return t;
|
|
53
53
|
var e = t[Symbol.toPrimitive];
|
|
@@ -60,14 +60,14 @@ function toPrimitive(t, r) {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
//#endregion
|
|
63
|
-
//#region \0@oxc-project+runtime@0.
|
|
63
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
|
|
64
64
|
function toPropertyKey(t) {
|
|
65
65
|
var i = toPrimitive(t, "string");
|
|
66
66
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
//#endregion
|
|
70
|
-
//#region \0@oxc-project+runtime@0.
|
|
70
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
|
|
71
71
|
function _defineProperty(e, r, t) {
|
|
72
72
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
73
73
|
value: t,
|
|
@@ -78,7 +78,7 @@ function _defineProperty(e, r, t) {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
//#endregion
|
|
81
|
-
//#region \0@oxc-project+runtime@0.
|
|
81
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
|
|
82
82
|
function __decorateParam(paramIndex, decorator) {
|
|
83
83
|
return function(target, key) {
|
|
84
84
|
decorator(target, key, paramIndex);
|
|
@@ -86,7 +86,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
//#endregion
|
|
89
|
-
//#region \0@oxc-project+runtime@0.
|
|
89
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
|
|
90
90
|
function __decorate(decorators, target, key, desc) {
|
|
91
91
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
92
92
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1036,7 +1036,7 @@ function getFindReplaceDialogDefaultPosition(direction) {
|
|
|
1036
1036
|
//#endregion
|
|
1037
1037
|
//#region package.json
|
|
1038
1038
|
var name = "@univerjs/find-replace";
|
|
1039
|
-
var version = "1.0.0
|
|
1039
|
+
var version = "1.0.0";
|
|
1040
1040
|
|
|
1041
1041
|
//#endregion
|
|
1042
1042
|
//#region src/config/config.ts
|
|
@@ -1238,7 +1238,6 @@ function MobileFindReplaceBar() {
|
|
|
1238
1238
|
return /* @__PURE__ */ jsx(MobileFindReplaceBarContent, {});
|
|
1239
1239
|
}
|
|
1240
1240
|
function MobileFindReplaceBarContent() {
|
|
1241
|
-
const keyboardInset = useContext(MobileKeyboardInsetContext);
|
|
1242
1241
|
const commandService = useDependency(ICommandService);
|
|
1243
1242
|
const dialogService = useDependency(IDialogService);
|
|
1244
1243
|
const findReplaceService = useDependency(IFindReplaceService);
|
|
@@ -1247,9 +1246,11 @@ function MobileFindReplaceBarContent() {
|
|
|
1247
1246
|
const currentMatch = useObservable(findReplaceService.currentMatch$, null, true);
|
|
1248
1247
|
const replaceables = useObservable(findReplaceService.replaceables$, [], true);
|
|
1249
1248
|
const [findValue, setFindValue] = useState(() => state.replaceRevealed ? state.inputtingFindString : state.findString);
|
|
1249
|
+
const barRef = useRef(null);
|
|
1250
1250
|
const inputRef = useRef(null);
|
|
1251
1251
|
const searchTimerRef = useRef(null);
|
|
1252
1252
|
const suppressNextFocusRef = useRef(false);
|
|
1253
|
+
const keyboardLayout = useMobileKeyboardViewportLayout(barRef);
|
|
1253
1254
|
useEffect(() => {
|
|
1254
1255
|
const frame = requestAnimationFrame(() => {
|
|
1255
1256
|
var _inputRef$current;
|
|
@@ -1327,10 +1328,11 @@ function MobileFindReplaceBarContent() {
|
|
|
1327
1328
|
const replaceDisabled = state.matchesCount === 0 || !(currentMatch === null || currentMatch === void 0 ? void 0 : currentMatch.replaceable);
|
|
1328
1329
|
const replaceAllDisabled = replaceables.length === 0;
|
|
1329
1330
|
return /* @__PURE__ */ jsxs("div", {
|
|
1331
|
+
ref: barRef,
|
|
1330
1332
|
"data-u-comp": "mobile-find-replace-bar",
|
|
1331
1333
|
className: "univer-fixed univer-inset-x-0 univer-z-40 univer-grid univer-gap-2 univer-bg-gray-0 univer-px-2 univer-pt-1.5 univer-shadow-[0_-4px_16px_rgba(0,0,0,0.08)] dark:!univer-bg-gray-800",
|
|
1332
1334
|
style: {
|
|
1333
|
-
bottom:
|
|
1335
|
+
bottom: (keyboardLayout === null || keyboardLayout === void 0 ? void 0 : keyboardLayout.bottom) ?? 0,
|
|
1334
1336
|
paddingBottom: "calc(6px + env(safe-area-inset-bottom, 0px))"
|
|
1335
1337
|
},
|
|
1336
1338
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
@@ -1748,20 +1750,20 @@ const ReplaceDialog = forwardRef(function ReplaceDialogImpl(_props, ref) {
|
|
|
1748
1750
|
capabilities.caseSensitive && /* @__PURE__ */ jsx(FormLayout, { children: /* @__PURE__ */ jsx(Checkbox, {
|
|
1749
1751
|
checked: caseSensitive,
|
|
1750
1752
|
onChange: (checked) => {
|
|
1751
|
-
findReplaceService.changeCaseSensitive(checked);
|
|
1753
|
+
findReplaceService.changeCaseSensitive(Boolean(checked));
|
|
1752
1754
|
if (findCompleted) findReplaceService.find();
|
|
1753
1755
|
},
|
|
1754
1756
|
children: localeService.t("find-replace.dialog.case-sensitive")
|
|
1755
1757
|
}) }),
|
|
1756
1758
|
capabilities.matchesTheWholeCell && /* @__PURE__ */ jsx(FormLayout, { children: /* @__PURE__ */ jsx(Checkbox, {
|
|
1757
1759
|
checked: matchesTheWholeCell,
|
|
1758
|
-
onChange: (checked) => findReplaceService.changeMatchesTheWholeCell(checked),
|
|
1760
|
+
onChange: (checked) => findReplaceService.changeMatchesTheWholeCell(Boolean(checked)),
|
|
1759
1761
|
children: localeService.t("find-replace.dialog.match-the-whole-cell")
|
|
1760
1762
|
}) }),
|
|
1761
1763
|
capabilities.matchesTheWholeWord && /* @__PURE__ */ jsx(FormLayout, { children: /* @__PURE__ */ jsx(Checkbox, {
|
|
1762
1764
|
checked: matchesTheWholeWord,
|
|
1763
1765
|
onChange: (checked) => {
|
|
1764
|
-
findReplaceService.changeMatchesTheWholeWord(checked);
|
|
1766
|
+
findReplaceService.changeMatchesTheWholeWord(Boolean(checked));
|
|
1765
1767
|
if (findCompleted) findReplaceService.find();
|
|
1766
1768
|
},
|
|
1767
1769
|
children: localeService.t("find-replace.dialog.match-the-whole-word")
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/design"),require("@univerjs/ui"),require("@univerjs/engine-render"),require("rxjs"),require("react"),require("react/jsx-runtime")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/design`,`@univerjs/ui`,`@univerjs/engine-render`,`rxjs`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverFindReplace={},e.UniverCore,e.UniverDesign,e.UniverUi,e.UniverEngineRender,e.rxjs,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let c=`FIND_REPLACE_INPUT_FOCUS`,l=`FIND_REPLACE_DIALOG_FOCUS`,u=`FIND_REPLACE_REPLACE_REVEALED`,d=`FIND_REPLACE_AVAILABLE`;function f(e){"@babel/helpers - typeof";return f=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},f(e)}function p(e,t){if(f(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(f(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function m(e){var t=p(e,`string`);return f(t)==`symbol`?t:t+``}function h(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e,t){return function(n,r){t(n,r,e)}}function _(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var v=class extends t.Disposable{};let y=(0,t.createIdentifier)(`find-replace.service`);function b(e){return e.findString!==void 0||e.inputtingFindString!==void 0||e.findDirection!==void 0||e.matchesTheWholeCell!==void 0||e.matchesTheWholeWord!==void 0||e.caseSensitive!==void 0||e.findScope!==void 0||e.findBy!==void 0}let x=class extends t.Disposable{get searched(){return this._findModels.length>0}constructor(e,t,n,r){super(),this._state=e,this._providers=t,this._univerInstanceService=n,this._commandService=r,h(this,`currentMatch$`,new a.BehaviorSubject(null)),h(this,`replaceables$`,new a.BehaviorSubject([])),h(this,`_findModels`,[]),h(this,`_matchingModel`,null),h(this,`_matches`,[]),h(this,`_currentSearchingDisposables`,null),this.disposeWithMe(this._state.stateUpdates$.pipe((0,a.throttleTime)(200,void 0,{leading:!0,trailing:!0})).subscribe(async e=>{let t=this._state.state;b(e)&&(t.findString!==``&&!t.replaceRevealed?(await this._startSearching(),this._state.changeState({findCompleted:!0})):e.replaceRevealed!==!0&&this._stopSearching())}))}dispose(){super.dispose(),this._stopSearching(),this.currentMatch$.complete(),this.replaceables$.complete(),this._state.changeState({...T(),revealed:!1})}async start(){if(!this._state.findString)return{results:[]};let e=await this._startSearching();return this._state.changeState({findCompleted:!0}),e}focusSelection(){var e;(e=this._matchingModel)==null||e.focusSelection()}async _startSearching(){if(!this._state.findString)return{results:[]};let e=Array.from(this._providers),t=this._findModels=(await Promise.all(e.map(e=>e.find({findString:this._state.findString,findDirection:this._state.findDirection,findScope:this._state.findScope,findBy:this._state.findBy,replaceRevealed:this._state.replaceRevealed,caseSensitive:this._state.caseSensitive,matchesTheWholeCell:this._state.matchesTheWholeCell,matchesTheWholeWord:this._state.matchesTheWholeWord})))).flat();this._subscribeToModelsChanges(t);let n=this._matches=t.map(e=>e.getMatches()).flat();return this.replaceables$.next(n.filter(e=>e.replaceable)),n.length?(this._moveToInitialMatch(t),this._state.changeState({matchesCount:n.length}),{results:n}):(this._state.changeState({matchesCount:0,matchesPosition:0}),{results:[]})}_stopSearching(){var e;this._providers.forEach(e=>e.terminate()),this._findModels=[],this._matches=[],this._matchingModel=null,(e=this._currentSearchingDisposables)==null||e.dispose(),this._currentSearchingDisposables=null,this.currentMatch$.next(null),this.replaceables$.next([]),this._state.changeState({findCompleted:!1,matchesCount:0,matchesPosition:0})}_subscribeToModelsChanges(e){let n=this._currentSearchingDisposables=new t.DisposableCollection,r=(0,a.combineLatest)(e.map(e=>e.matchesUpdate$)).pipe((0,a.debounceTime)(220)).subscribe(([...e])=>{let t=this._matches=e.flat();t.length?(this._moveToInitialMatch(this._findModels,!0),this._state.changeState({matchesCount:t.length}),this.replaceables$.next(t.filter(e=>e.replaceable))):(this._state.changeState({matchesCount:0,matchesPosition:0}),this.replaceables$.next([]))});e.forEach(e=>n.add((0,t.toDisposable)(e.activelyChangingMatch$.subscribe(e=>{let t=this._matches.findIndex(t=>t===e);this._state.changeState({matchesPosition:t+1})})))),n.add((0,t.toDisposable)(r))}async replace(){return this._matchingModel?this._matchingModel.replace(this._state.replaceString):!1}async replaceAll(){let e=await Promise.all(this._findModels.map(e=>e.replaceAll(this._state.replaceString))).then(e=>e.reduce((e,t)=>(e.success+=t.success,e.failure+=t.failure,e),{success:0,failure:0}));return e.failure===0&&this._stopSearching(),e}getCurrentMatch(){return this._state.matchesPosition>0?this._matches[this._state.matchesPosition-1]:null}_markMatch(e){let t=this._matches.findIndex(t=>t===e);this.currentMatch$.next(e),this._state.changeState({matchesPosition:t+1})}moveToNextMatch(){if(!this._matchingModel)return;let e=this._findModels.length===1,t=this._matchingModel.moveToNextMatch({loop:e});if(t)return this._markMatch(t),t;{let e=this._findModels.findIndex(e=>e===this._matchingModel);return this._moveToNextUnitMatch(e)}}_moveToNextUnitMatch(e){let t=this._findModels.length;for(let n=(e+1)%t;n!==e;){let e=this._findModels[n],r=e.moveToNextMatch({ignoreSelection:!0});if(r)return this._matchingModel=e,this._markMatch(r),r;n=(n+1)%t}if(this._matchingModel){let e=this._matchingModel.moveToNextMatch({ignoreSelection:!0});return e&&this._markMatch(e),e}}moveToPreviousMatch(){if(!this._matchingModel)return;let e=this._findModels.length===1,t=this._matchingModel.moveToPreviousMatch({loop:e});if(t){let e=this._matches.findIndex(e=>e===t);return this.currentMatch$.next(t),this._state.changeState({matchesPosition:e+1}),t}else{let e=this._findModels.length,t=this._findModels.findIndex(e=>e===this._matchingModel);for(let n=(t-1+e)%e;n!==t;){let t=this._findModels[n],r=t.moveToPreviousMatch({ignoreSelection:!0});if(r)return this._matchingModel=t,this._markMatch(r),r;n=(n-1)%e}let n=this._matchingModel.moveToPreviousMatch({ignoreSelection:!0});return n&&this._markMatch(n),n}}_moveToInitialMatch(e,t=!1){var n;let r=(n=this._univerInstanceService.getFocusedUnit())==null?void 0:n.getUnitId();if(!r)return-1;let i=e.findIndex(e=>e.unitId===r);if(i!==-1){this._matchingModel=e[i];let n=this._matchingModel.moveToNextMatch({stayIfOnMatch:!0,noFocus:t});if(n)return this._markMatch(n),i}return this._moveToNextUnitMatch(i),0}};x=_([g(2,t.IUniverInstanceService),g(3,t.ICommandService)],x);let S=function(e){return e.ROW=`row`,e.COLUMN=`column`,e}({}),C=function(e){return e.VALUE=`value`,e.FORMULA=`formula`,e}({}),w=function(e){return e.SUBUNIT=`subunit`,e.UNIT=`unit`,e}({});function T(){return{caseSensitive:!1,findBy:`value`,findCompleted:!1,findDirection:`row`,findScope:`subunit`,findString:``,inputtingFindString:``,matchesCount:0,matchesPosition:0,matchesTheWholeCell:!1,matchesTheWholeWord:!1,replaceRevealed:!1,replaceString:``,revealed:!0}}var E=class{constructor(){h(this,`_stateUpdates$`,new a.Subject),h(this,`stateUpdates$`,this._stateUpdates$.asObservable()),h(this,`_state$`,new a.BehaviorSubject(T())),h(this,`state$`,this._state$.asObservable()),h(this,`_findString`,``),h(this,`_inputtingFindString`,``),h(this,`_replaceString`,``),h(this,`_revealed`,!1),h(this,`_replaceRevealed`,!1),h(this,`_matchesPosition`,0),h(this,`_matchesCount`,0),h(this,`_caseSensitive`,!0),h(this,`_matchesTheWholeCell`,!1),h(this,`_matchesTheWholeWord`,!1),h(this,`_findDirection`,`row`),h(this,`_findScope`,`subunit`),h(this,`_findBy`,`value`),h(this,`_findCompleted`,!1)}get state(){return this._state$.getValue()}get inputtingFindString(){return this._inputtingFindString}get findString(){return this._findString}get revealed(){return this._revealed}get replaceRevealed(){return this._replaceRevealed}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get replaceString(){return this._replaceString}get caseSensitive(){return this._caseSensitive}get matchesTheWholeCell(){return this._matchesTheWholeCell}get matchesTheWholeWord(){return this._matchesTheWholeWord}get findDirection(){return this._findDirection}get findScope(){return this._findScope}get findBy(){return this._findBy}get findCompleted(){return this._findCompleted}changeState(e){let t=!1,n={};e.findString!==void 0&&e.findString!==this._findString&&(this._findString=e.findString,n.findString=this._findString,t=!0),e.revealed!==void 0&&e.revealed!==this._revealed&&(this._revealed=e.revealed,n.revealed=e.revealed,t=!0),e.replaceRevealed!==void 0&&e.replaceRevealed!==this._replaceRevealed&&(this._replaceRevealed=e.replaceRevealed,n.replaceRevealed=e.replaceRevealed,t=!0),e.replaceString!==void 0&&e.replaceString!==this._replaceString&&(this._replaceString=e.replaceString,n.replaceString=e.replaceString,t=!0),e.matchesCount!==void 0&&e.matchesCount!==this._matchesCount&&(this._matchesCount=e.matchesCount,n.matchesCount=e.matchesCount,t=!0),e.matchesPosition!==void 0&&e.matchesPosition!==this._matchesPosition&&(this._matchesPosition=e.matchesPosition,n.matchesPosition=e.matchesPosition,t=!0),e.findBy!==void 0&&e.findBy!==this._findBy&&(this._findBy=e.findBy,n.findBy=e.findBy,t=!0),e.findScope!==void 0&&e.findScope!==this._findScope&&(this._findScope=e.findScope,n.findScope=e.findScope,t=!0),e.findDirection!==void 0&&e.findDirection!==this._findDirection&&(this._findDirection=e.findDirection,n.findDirection=e.findDirection,t=!0),e.caseSensitive!==void 0&&e.caseSensitive!==this._caseSensitive&&(this._caseSensitive=e.caseSensitive,n.caseSensitive=e.caseSensitive,t=!0),e.matchesTheWholeCell!==void 0&&e.matchesTheWholeCell!==this._matchesTheWholeCell&&(this._matchesTheWholeCell=e.matchesTheWholeCell,n.matchesTheWholeCell=e.matchesTheWholeCell,t=!0),e.matchesTheWholeWord!==void 0&&e.matchesTheWholeWord!==this._matchesTheWholeWord&&(this._matchesTheWholeWord=e.matchesTheWholeWord,n.matchesTheWholeWord=e.matchesTheWholeWord,t=!0),e.inputtingFindString!==void 0&&e.inputtingFindString!==this._inputtingFindString&&(this._inputtingFindString=e.inputtingFindString,n.inputtingFindString=e.inputtingFindString,t=!0),e.findCompleted!==void 0&&e.findCompleted!==this._findCompleted&&(this._findCompleted=e.findCompleted,n.findCompleted=e.findCompleted,t=!0),t&&(this._state$.next({caseSensitive:this._caseSensitive,findBy:this._findBy,findCompleted:this._findCompleted,findDirection:this._findDirection,findScope:this._findScope,findString:this._findString,inputtingFindString:this._inputtingFindString,matchesCount:this._matchesCount,matchesPosition:this._matchesPosition,matchesTheWholeCell:this._matchesTheWholeCell,matchesTheWholeWord:this._matchesTheWholeWord,replaceRevealed:this._replaceRevealed,revealed:this._revealed}),this._stateUpdates$.next(n))}};let D=class extends t.Disposable{get stateUpdates$(){return this._state.stateUpdates$}get state$(){return this._state.state$}get revealed(){return this._state.revealed}get replaceRevealed(){return this._state.replaceRevealed}constructor(e,n,r){super(),this._injector=e,this._contextService=n,this._univerInstanceService=r,h(this,`_providers`,new Set),h(this,`_state`,new E),h(this,`_model`,void 0),h(this,`_modelDisposables`,null),h(this,`_currentMatch$`,new a.BehaviorSubject(null)),h(this,`currentMatch$`,this._currentMatch$.asObservable()),h(this,`_replaceables$`,new a.BehaviorSubject([])),h(this,`replaceables$`,this._replaceables$.asObservable()),h(this,`_focusSignal$`,new a.Subject),h(this,`focusSignal$`,this._focusSignal$.asObservable()),h(this,`_providerCapabilities$`,new a.BehaviorSubject(null)),h(this,`providerCapabilities$`,this._providerCapabilities$.asObservable()),h(this,`_activeProvider`,null),this.disposeWithMe((0,t.toDisposable)(this._univerInstanceService.focused$.subscribe(()=>this._syncActiveProvider())))}dispose(){super.dispose(),this._currentMatch$.next(null),this._currentMatch$.complete(),this._replaceables$.next([]),this._replaceables$.complete(),this._focusSignal$.complete(),this._providerCapabilities$.complete()}getProviders(){return this._providers}getCurrentMatch(){var e;return(e=this._model)==null?void 0:e.getCurrentMatch()}getFindString(){return this._state.findString}changeFindString(e){this._state.changeState({findString:e})}focusFindInput(){this._focusSignal$.next()}changeInputtingFindString(e){e?this._state.changeState({inputtingFindString:e}):this._state.changeState({inputtingFindString:``,findString:``})}changeReplaceString(e){this._state.changeState({replaceString:e})}changeMatchesTheWholeCell(e){this._state.changeState({matchesTheWholeCell:e})}changeMatchesTheWholeWord(e){this._state.changeState({matchesTheWholeWord:e})}changeCaseSensitive(e){this._state.changeState({caseSensitive:e})}changeFindBy(e){this._state.changeState({findBy:e}),this._toggleDisplayRawFormula(e===`formula`)}changeFindScope(e){this._state.changeState({findScope:e})}changeFindDirection(e){this._state.changeState({findDirection:e})}moveToNextMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToNextMatch(),this._focusSignal$.next())}moveToPreviousMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToPreviousMatch(),this._focusSignal$.next())}async replace(){return this._model?this._model.replace():!1}async replaceAll(){if(!this._model)throw Error(`[FindReplaceService] replaceAll: model is not initialized!`);return this._model.replaceAll()}revealReplace(){this._state.changeState({replaceRevealed:!0,inputtingFindString:this._state.findString}),this._toggleRevealReplace(!0)}hideReplace(){this._state.changeState({replaceRevealed:!1,findString:this._state.inputtingFindString}),this._toggleRevealReplace(!1)}focusSelection(){var e;(e=this._model)==null||e.focusSelection()}start(e=!1){if(!this._activeProvider)return!1;this._model=this._injector.createInstance(x,this._state,new Set([this._activeProvider])),this._modelDisposables=new t.DisposableCollection,this._modelDisposables.add((0,t.toDisposable)(this._model.currentMatch$.subscribe(e=>this._currentMatch$.next(e)))),this._modelDisposables.add((0,t.toDisposable)(this._model.replaceables$.subscribe(e=>this._replaceables$.next(e))));let n=T();return e&&(n.replaceRevealed=!0),this._state.changeState(n),this._toggleRevealReplace(e),!0}find(){var e;(e=this._model)==null||e.start()}terminate(){var e,t;(e=this._model)==null||e.dispose(),this._model=null,(t=this._modelDisposables)==null||t.dispose(),this._modelDisposables=null,this._toggleDisplayRawFormula(!1),this._toggleRevealReplace(!1)}registerFindReplaceProvider(e){return this._providers.add(e),this._syncActiveProvider(),(0,t.toDisposable)(()=>{this._providers.delete(e),this._syncActiveProvider()})}_syncActiveProvider(){let e=this._univerInstanceService.getFocusedUnit(),t=e==null?null:Array.from(this._providers).find(t=>t.isSupported(e))??null;t!==this._activeProvider&&(this.revealed&&this.terminate(),this._activeProvider=t,this._providerCapabilities$.next((t==null?void 0:t.capabilities)??null),this._contextService.setContextValue(d,t!=null))}_toggleRevealReplace(e){this._contextService.setContextValue(u,e)}_toggleDisplayRawFormula(e){this._contextService.setContextValue(i.RENDER_RAW_FORMULA_KEY,e)}};D=_([g(0,(0,t.Inject)(t.Injector)),g(1,t.IContextService),g(2,t.IUniverInstanceService)],D);let O={id:`ui.command.replace-current-match`,type:t.CommandType.COMMAND,handler:e=>e.get(y).replace()},k={id:`ui.command.replace-all-matches`,type:t.CommandType.COMMAND,handler:async e=>{let i=e.get(t.IConfirmService),a=e.get(t.LocaleService),o=e.get(r.IMessageService);if(!await i.confirm({id:`CONFIRM_REPLACE_ALL`,title:{title:a.t(`find-replace.replace.confirm.title`)},cancelText:a.t(`find-replace.button.cancel`),confirmText:a.t(`find-replace.button.confirm`)}))return!1;let{success:s,failure:c}=await e.get(y).replaceAll();return c>0?(s===0?o.show({type:n.MessageType.Error,content:a.t(`find-replace.replace.all-failure`)}):o.show({type:n.MessageType.Warning,content:a.t(`find-replace.replace.partial-success`,`${s}`,`${c}`)}),!1):(o.show({type:n.MessageType.Success,content:a.t(`find-replace.replace.all-success`,`${s}`)}),!0)}},A={id:`ui.operation.open-find-dialog`,type:t.CommandType.OPERATION,handler:e=>{let t=e.get(y);return t.revealed?t.focusFindInput():t.start(),!0}},j={id:`ui.operation.open-replace-dialog`,type:t.CommandType.OPERATION,handler:e=>{let t=e.get(y);return t.revealed?t.replaceRevealed?t.focusFindInput():t.revealReplace():t.start(!0),!0}},M={id:`ui.operation.close-find-dialog`,type:t.CommandType.OPERATION,handler:e=>(e.get(y).terminate(),!0)},N={type:t.CommandType.OPERATION,id:`ui.operation.go-to-next-match`,handler:e=>(e.get(y).moveToNextMatch(),!0)},P={type:t.CommandType.OPERATION,id:`ui.operation.go-to-previous-match`,handler:e=>(e.get(y).moveToPreviousMatch(),!0)},F={type:t.CommandType.OPERATION,id:`ui.operation.focus-selection`,handler:e=>(e.get(y).focusSelection(),!0)};function I(e){let n=e.get(t.IContextService);return{id:A.id,icon:`SearchIcon`,tooltip:`find-replace.toolbar`,type:r.MenuItemType.BUTTON,hidden$:(0,r.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,a.combineLatest)([n.subscribeContextValue$(t.EDITOR_ACTIVATED),n.subscribeContextValue$(t.FOCUSING_SHEET),n.subscribeContextValue$(d).pipe((0,a.startWith)(n.getContextValue(d)))]).pipe((0,a.map)(([e,t,n])=>e||!t||!n))}}let L={[r.RibbonDataGroup.ORGANIZATION]:{[A.id]:{order:2,gridLayout:{row:1,column:3},menuItemFactory:I}}};function R(e){return e.getContextValue(l)}function ee(e){return e.getContextValue(u)}function te(e){return e.getContextValue(c)}let z=`7_find-replace-shortcuts`;function B(e){return e.getContextValue(d)}function V(e){return!e.getContextValue(t.EDITOR_ACTIVATED)}let ne={id:A.id,description:`find-replace.shortcut.open-find-dialog`,binding:r.KeyCode.F|r.MetaKeys.CTRL_COMMAND,group:z,groupTitle:`find-replace.shortcut.panel`,preconditions(e){return!R(e)&&B(e)&&V(e)}},re={id:A.id,description:`find-replace.shortcut.open-find-dialog`,binding:r.KeyCode.F|r.MetaKeys.CTRL_COMMAND,mac:r.KeyCode.F|r.MetaKeys.MAC_CTRL,preconditions(e){return!R(e)&&B(e)&&V(e)}},ie={id:j.id,description:`find-replace.shortcut.open-replace-dialog`,binding:r.KeyCode.H|r.MetaKeys.CTRL_COMMAND,mac:r.KeyCode.H|r.MetaKeys.MAC_CTRL,group:z,groupTitle:`find-replace.shortcut.panel`,preconditions(e){return B(e)&&V(e)&&(!R(e)||!ee(e))}},ae={id:N.id,description:`find-replace.shortcut.go-to-next-match`,binding:r.KeyCode.ENTER,group:z,groupTitle:`find-replace.shortcut.panel`,priority:1e3,preconditions(e){return te(e)&&R(e)}},oe={id:P.id,description:`find-replace.shortcut.go-to-previous-match`,binding:r.KeyCode.ENTER|r.MetaKeys.SHIFT,group:z,groupTitle:`find-replace.shortcut.panel`,priority:1e3,preconditions(e){return te(e)&&R(e)}},se={id:F.id,description:`find-replace.shortcut.focus-selection`,binding:r.KeyCode.ESC,group:z,groupTitle:`find-replace.shortcut.panel`,priority:1e3,preconditions(e){return R(e)}},ce=`DESKTOP_FIND_REPLACE_DIALOG`,H=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s){super(),this._univerInstanceService=e,this._menuManagerService=t,this._shortcutService=n,this._commandService=r,this._findReplaceService=i,this._dialogService=a,this._layoutService=o,this._localeService=s,h(this,`_closingListenerDisposable`,void 0),this._initCommands(),this._initUI(),this._initShortcuts()}dispose(){var e;super.dispose(),(e=this._closingListenerDisposable)==null||e.dispose(),this._closingListenerDisposable=null}_initCommands(){[A,j,M,N,P,k,O,F].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initShortcuts(){[ie,ne,re,oe,ae,se].forEach(e=>this.disposeWithMe(this._shortcutService.registerShortcut(e)))}_initUI(){this._menuManagerService.mergeMenu(L),this._findReplaceService.stateUpdates$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{e.revealed===!0?this._openPanel():e.revealed===!1&&this._closePanel(!1)})}_openPanel(){var e;let n=(e=this._univerInstanceService.getFocusedUnit())==null?void 0:e.getUnitId();this._dialogService.open({id:ce,draggable:!0,width:350,title:{title:this._localeService.t(`find-replace.dialog.title`)},children:{label:`FindReplaceDialog`},mask:!1,maskClosable:!1,defaultPosition:le(this._localeService.getDirection()),preservePositionOnDestroy:!0,onClose:()=>this.closePanel()}),this._closingListenerDisposable=(0,t.toDisposable)(this._univerInstanceService.focused$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{(!e||e!==n)&&this.closePanel()}))}closePanel(){this._closePanel(!0)}_closePanel(e){this._closingListenerDisposable&&(this._closingListenerDisposable.dispose(),this._closingListenerDisposable=null,this._dialogService.close(ce),e&&this._findReplaceService.terminate(),queueMicrotask(()=>this._layoutService.focus()))}};H=_([g(0,t.IUniverInstanceService),g(1,r.IMenuManagerService),g(2,r.IShortcutService),g(3,t.ICommandService),g(4,y),g(5,r.IDialogService),g(6,r.ILayoutService),g(7,(0,t.Inject)(t.LocaleService))],H);function le(e){let{innerWidth:t}=window;return{x:e===`rtl`?20:t-350-20,y:64}}var ue=`@univerjs/find-replace`,de=`1.0.0-rc.0`;let fe=`find-replace.config`,U={};function W({ref:e,...t}){let{preserveStrokeWidth:n,icon:r,id:i,className:a,extend:s,...c}=t,l=`univerjs-icon univerjs-icon-${i} ${a||``}`.trim(),u=`_${(0,o.useId)()}`,d=(0,o.useRef)(null);return(0,o.useImperativeHandle)(e,()=>d.current),(0,o.useLayoutEffect)(()=>{if(!(!n||!d.current||d.current.localName!==r.tag))return ge(d.current)},[n,r]),pe(r,`${i}`,{defIds:r.defIds,idSuffix:u},{ref:d,className:l,...c},s)}function pe(e,t,n,r,i){return(0,o.createElement)(e.tag,{key:t,...me(e,n,i),...r},(he(e,n).children||[]).map((r,a)=>pe(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function me(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),n!=null&&n.colorChannel1&&r.stroke===`colorChannel1`&&(r.stroke=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function he(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function ge(e){let t=e.viewBox.baseVal,n=Math.max(t.width,t.height);if(!Number.isFinite(n)||n<=0||t.width<=0||t.height<=0)return()=>void 0;let r=16/n,i=Array.from(e.querySelectorAll(`circle, ellipse, line, path, polygon, polyline, rect, text, textPath, tspan, use`)).flatMap(e=>{let t=getComputedStyle(e),n=Number.parseFloat(t.strokeWidth);return t.stroke===`none`||Number.parseFloat(t.strokeOpacity)===0||t.vectorEffect===`non-scaling-stroke`||!Number.isFinite(n)||n<=0?[]:[{element:e,hadStyleAttribute:e.hasAttribute(`style`),originalStrokeWidth:n,strokeWidth:_e(e.style,`stroke-width`)}]}).map(e=>({appliedStrokeWidth:null,element:e.element,hadStyleAttribute:e.hadStyleAttribute,isReleased:!1,originalStrokeWidth:e.originalStrokeWidth,strokeWidth:e.strokeWidth}));if(i.length===0)return()=>void 0;let a=(e,n)=>{if(t.width<=0||t.height<=0||e<=0||n<=0)return;let a=Math.min(e/t.width,n/t.height);!Number.isFinite(a)||a<=0||i.forEach(e=>{if(e.isReleased)return;if(e.appliedStrokeWidth!==null&&(e.element.style.getPropertyValue(`stroke-width`)!==e.appliedStrokeWidth||e.element.style.getPropertyPriority(`stroke-width`)!==e.strokeWidth.priority)){e.appliedStrokeWidth=null,e.isReleased=!0;return}let t=e.originalStrokeWidth*r/a,n=`${Number(t.toFixed(12))}px`;e.element.style.setProperty(`stroke-width`,n,e.strokeWidth.priority),e.appliedStrokeWidth=n})},o=e.getBoundingClientRect();a(o.width,o.height);let s=typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{if(t.some(t=>t.target===e)){let t=e.getBoundingClientRect();a(t.width,t.height)}});return s==null||s.observe(e),()=>{s==null||s.disconnect(),i.forEach(e=>{e.appliedStrokeWidth!==null&&(ve(e.element.style,`stroke-width`,e.appliedStrokeWidth,e.strokeWidth.priority,e.strokeWidth),!e.hadStyleAttribute&&e.element.style.length===0&&e.element.removeAttribute(`style`))})}}function _e(e,t){return{priority:e.getPropertyPriority(t),value:e.getPropertyValue(t)}}function ve(e,t,n,r,i){e.getPropertyValue(t)===n&&e.getPropertyPriority(t)===r&&(i.value?e.setProperty(t,i.value,i.priority):e.removeProperty(t))}W.displayName=`UniverIcon`;let ye={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 20 21`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M8.90467 3.99244C8.84611 4.1338 8.84611 4.31301 8.84611 4.67143V13.716L5.92068 10.7906C5.66724 10.5371 5.54052 10.4104 5.39916 10.3519C5.21067 10.2738 4.9989 10.2738 4.81041 10.3519C4.66905 10.4104 4.54233 10.5371 4.28889 10.7906C4.03545 11.044 3.90873 11.1707 3.85018 11.3121C3.77211 11.5006 3.77211 11.7124 3.85018 11.9008C3.90873 12.0422 4.03545 12.1689 4.28889 12.4224L9.03476 17.1682C9.07839 17.2127 9.12737 17.2617 9.18231 17.3166L9.18239 17.3167L9.18241 17.3167C9.40545 17.5398 9.53035 17.6647 9.65346 17.7313C9.67085 17.7408 9.6882 17.7492 9.70577 17.7564C9.89425 17.8345 10.106 17.8345 10.2945 17.7564C10.4359 17.6979 10.5626 17.5712 10.816 17.3177C10.8986 17.2352 10.9677 17.1661 11.0253 17.1056L15.7095 12.4214L15.7095 12.4213C15.963 12.1679 16.0897 12.0412 16.1482 11.8998C16.2263 11.7114 16.2263 11.4996 16.1482 11.3111C16.0897 11.1697 15.963 11.043 15.7095 10.7896C15.4561 10.5361 15.3294 10.4094 15.188 10.3509C14.9995 10.2728 14.7878 10.2728 14.5993 10.3509C14.4579 10.4094 14.3312 10.5361 14.0778 10.7896L14.0777 10.7896L11.1538 13.7135V4.67142C11.1538 4.31301 11.1538 4.1338 11.0953 3.99244C11.0172 3.80395 10.8674 3.6542 10.6789 3.57613C10.5376 3.51758 10.3584 3.51758 9.99996 3.51758C9.64154 3.51758 9.46233 3.51758 9.32097 3.57613C9.13249 3.6542 8.98274 3.80395 8.90467 3.99244Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},be=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`arrow-down-icon`,ref:t,icon:ye}))});be.displayName=`ArrowDownIcon`;let xe={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 20 21`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M11.0936 17.3406C11.1522 17.1992 11.1522 17.02 11.1522 16.6616V7.61701L14.0776 10.5424C14.3311 10.7959 14.4578 10.9226 14.5991 10.9811C14.7876 11.0592 14.9994 11.0592 15.1879 10.9811C15.3292 10.9226 15.456 10.7959 15.7094 10.5424C15.9628 10.289 16.0896 10.1623 16.1481 10.0209C16.2262 9.83243 16.2262 9.62066 16.1481 9.43217C16.0896 9.29081 15.9628 9.16409 15.7094 8.91065L10.9645 4.16576C10.9207 4.12105 10.8714 4.07178 10.8161 4.01648L10.8159 4.0163C10.5916 3.792 10.4666 3.66696 10.3428 3.60058C10.3261 3.59154 10.3094 3.58358 10.2925 3.57658C10.104 3.49851 9.89226 3.49851 9.70378 3.57658C9.56242 3.63514 9.4357 3.76186 9.18226 4.0153C9.09955 4.09801 9.03034 4.16722 8.97258 4.22785L4.28878 8.91166C4.03534 9.1651 3.90862 9.29182 3.85006 9.43318C3.77199 9.62166 3.77199 9.83344 3.85006 10.0219C3.90862 10.1633 4.03534 10.29 4.28878 10.5434C4.54221 10.7969 4.66893 10.9236 4.8103 10.9822C4.99878 11.0602 5.21056 11.0602 5.39904 10.9822C5.5404 10.9236 5.66712 10.7969 5.92056 10.5434L5.92056 10.5434L8.84449 7.61951V16.6616C8.84449 17.02 8.84449 17.1992 8.90305 17.3406C8.98112 17.5291 9.13087 17.6788 9.31935 17.7569C9.46072 17.8154 9.63992 17.8154 9.99834 17.8154C10.3568 17.8154 10.536 17.8154 10.6773 17.7569C10.8658 17.6788 11.0156 17.5291 11.0936 17.3406Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},Se=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`arrow-up-icon`,ref:t,icon:xe}))});Se.displayName=`ArrowUpIcon`;let Ce={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z`}}]},we=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`close-icon`,ref:t,icon:Ce}))});we.displayName=`CloseIcon`;let Te={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 20 20`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{stroke:`currentColor`,d:`M8.7 3.2h2.6l.4 1.7 1.4.6 1.5-.9 1.8 1.8-.9 1.5.6 1.4 1.7.4v2.6l-1.7.4-.6 1.4.9 1.5-1.8 1.8-1.5-.9-1.4.6-.4 1.7H8.7l-.4-1.7-1.4-.6-1.5.9-1.8-1.8.9-1.5-.6-1.4-1.7-.4V9.7l1.7-.4.6-1.4-.9-1.5 1.8-1.8 1.5.9 1.4-.6.4-1.7Z`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.6}},{tag:`circle`,attrs:{cx:10,cy:11,r:2.2,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.6}}]},Ee=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`configure-tab-icon`,ref:t,icon:Te}))});Ee.displayName=`ConfigureTabIcon`;let De={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.71899 1.36938C4.37604 1.36938 1.66602 4.07941 1.66602 7.42236C1.66602 10.7653 4.37604 13.4753 7.71899 13.4753C9.16744 13.4753 10.4971 12.9666 11.5389 12.118L13.6598 14.4109C13.8848 14.6542 14.2644 14.669 14.5077 14.444C14.7509 14.219 14.7657 13.8393 14.5407 13.5961L12.3906 11.2716C13.2536 10.2254 13.772 8.88442 13.772 7.42236C13.772 4.07941 11.0619 1.36938 7.71899 1.36938ZM2.86602 7.42236C2.86602 4.74215 5.03878 2.56938 7.71899 2.56938C10.3992 2.56938 12.572 4.74215 12.572 7.42236C12.572 10.1026 10.3992 12.2753 7.71899 12.2753C5.03878 12.2753 2.86602 10.1026 2.86602 7.42236Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},G=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`search-icon`,ref:t,icon:De}))});G.displayName=`SearchIcon`;let Oe=`MobileFindReplaceSettings`,ke=`MOBILE_FIND_REPLACE_SETTINGS_DIALOG`,Ae=[{label:`find-replace.dialog.find-scope.current-sheet`,value:`subunit`},{label:`find-replace.dialog.find-scope.workbook`,value:`unit`}],je=[{label:`find-replace.dialog.find-direction.row`,value:`row`},{label:`find-replace.dialog.find-direction.column`,value:`column`}],Me=[{label:`find-replace.dialog.find-by.value`,value:`value`},{label:`find-replace.dialog.find-by.formula`,value:`formula`}];function Ne(){let e=(0,r.useDependency)(y),n=(0,r.useDependency)(t.LocaleService),i=(0,r.useObservable)(e.state$,void 0,!0),a=(0,r.useObservable)(e.providerCapabilities$,null,!0);function o(t=!1){i.findString&&(t||i.replaceRevealed)&&e.find()}let c=Ae.map(e=>({...e,label:n.t(e.label)})),l=je.map(e=>({...e,label:n.t(e.label)})),u=Me.map(e=>({...e,label:n.t(e.label)}));return(0,s.jsxs)(`div`,{className:`univer-grid univer-gap-2`,"data-u-comp":`mobile-find-replace-settings`,children:[(0,s.jsx)(q,{checked:i.replaceRevealed,label:n.t(`find-replace.dialog.replace`),onChange:t=>{t?e.revealReplace():e.hideReplace(),o(!0)}}),(a==null?void 0:a.findDirection)&&(0,s.jsx)(K,{label:n.t(`find-replace.dialog.find-direction.title`),value:i.findDirection,options:l,onChange:t=>{e.changeFindDirection(t),o()}}),(a==null?void 0:a.findScope)&&(0,s.jsx)(K,{label:n.t(`find-replace.dialog.find-scope.title`),value:i.findScope,options:c,onChange:t=>{e.changeFindScope(t),o()}}),(a==null?void 0:a.findBy)&&(0,s.jsx)(K,{label:n.t(`find-replace.dialog.find-by.title`),value:i.findBy,options:u,onChange:t=>{e.changeFindBy(t),o()}}),(a==null?void 0:a.caseSensitive)&&(0,s.jsx)(q,{checked:i.caseSensitive,label:n.t(`find-replace.dialog.case-sensitive`),onChange:t=>{e.changeCaseSensitive(t),o()}}),(a==null?void 0:a.matchesTheWholeCell)&&(0,s.jsx)(q,{checked:i.matchesTheWholeCell,label:n.t(`find-replace.dialog.match-the-whole-cell`),onChange:t=>{e.changeMatchesTheWholeCell(t),o()}}),(a==null?void 0:a.matchesTheWholeWord)&&(0,s.jsx)(q,{checked:i.matchesTheWholeWord,label:n.t(`find-replace.dialog.match-the-whole-word`),onChange:t=>{e.changeMatchesTheWholeWord(t),o()}})]})}function K(e){return(0,s.jsxs)(`label`,{className:`univer-grid univer-gap-1 univer-text-sm univer-text-gray-700 dark:!univer-text-gray-300`,children:[(0,s.jsx)(`span`,{children:e.label}),(0,s.jsx)(n.MobileSelect,{value:e.value,options:e.options,onChange:e.onChange})]})}function q(e){return(0,s.jsx)(`div`,{className:`univer-flex univer-min-h-9 univer-items-center`,children:(0,s.jsx)(n.Checkbox,{checked:e.checked,onChange:t=>e.onChange(!!t),children:e.label})})}let J=class extends t.Disposable{constructor(e,t){super(),this.disposeWithMe(t.register({SearchIcon:G})),this.disposeWithMe(e.register(Oe,Ne))}};J=_([g(0,(0,t.Inject)(r.ComponentManager)),g(1,(0,t.Inject)(r.IconManager))],J);let Pe={[r.RibbonDataGroup.ORGANIZATION]:{[A.id]:{order:2,menuItemFactory:I}}};function Fe(){let e=(0,r.useDependency)(y);return(0,r.useObservable)(e.state$,void 0,!0),e.revealed?(0,s.jsx)(Ie,{}):null}function Ie(){let e=(0,o.useContext)(r.MobileKeyboardInsetContext),i=(0,r.useDependency)(t.ICommandService),a=(0,r.useDependency)(r.IDialogService),c=(0,r.useDependency)(y),l=(0,r.useDependency)(t.LocaleService),u=(0,r.useObservable)(c.state$,void 0,!0),d=(0,r.useObservable)(c.currentMatch$,null,!0),f=(0,r.useObservable)(c.replaceables$,[],!0),[p,m]=(0,o.useState)(()=>u.replaceRevealed?u.inputtingFindString:u.findString),h=(0,o.useRef)(null),g=(0,o.useRef)(null),_=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let e=requestAnimationFrame(()=>{var e;return(e=h.current)==null?void 0:e.focus()});return()=>cancelAnimationFrame(e)},[]),(0,o.useEffect)(()=>{let e=c.focusSignal$.subscribe(()=>{var e;if(_.current){_.current=!1;return}(e=h.current)==null||e.focus()});return()=>e.unsubscribe()},[c]),(0,o.useEffect)(()=>()=>{g.current&&clearTimeout(g.current)},[]);function v(){g.current&&=(clearTimeout(g.current),null)}function b(e){if(v(),!e){c.changeInputtingFindString(``);return}if(c.replaceRevealed){c.changeInputtingFindString(e),c.changeFindString(e),c.find();return}c.changeFindString(e)}function x(e){if(v(),!e){b(e);return}g.current=setTimeout(()=>b(e),500)}function S(){document.activeElement instanceof HTMLElement&&document.activeElement.blur()}function C(e,t=!1){if(S(),p!==u.findString&&(b(p),e===N.id||e===P.id))return;_.current=t;let n=i.executeCommand(e);_.current=!1,n.catch(()=>void 0)}function w(){b(p),S(),a.open({id:ke,title:{title:l.t(`find-replace.mobile.settings-title`)},children:{label:Oe}})}let T=u.findCompleted&&u.matchesCount===0?l.t(`find-replace.dialog.no-result`):u.matchesCount>0?`${u.matchesPosition}/${u.matchesCount}`:void 0,E=u.matchesCount===0,D=u.matchesCount===0||!(d!=null&&d.replaceable),A=f.length===0;return(0,s.jsxs)(`div`,{"data-u-comp":`mobile-find-replace-bar`,className:`univer-fixed univer-inset-x-0 univer-z-40 univer-grid univer-gap-2 univer-bg-gray-0 univer-px-2 univer-pt-1.5 univer-shadow-[0_-4px_16px_rgba(0,0,0,0.08)] dark:!univer-bg-gray-800`,style:{bottom:e,paddingBottom:`calc(6px + env(safe-area-inset-bottom, 0px))`},children:[(0,s.jsxs)(`div`,{className:`univer-flex`,children:[(0,s.jsx)(Y,{label:l.t(`find-replace.mobile.settings`),onClick:w,children:(0,s.jsx)(Ee,{})}),(0,s.jsxs)(`div`,{className:`univer-relative univer-mr-2 univer-min-w-0 univer-flex-1`,children:[(0,s.jsx)(G,{className:`univer-pointer-events-none univer-absolute univer-left-3 univer-top-1/2 univer-z-10 univer-size-5 -univer-translate-y-1/2 univer-text-gray-500`}),(0,s.jsx)(n.Input,{ref:h,size:`middle`,allowClear:!0,value:p,placeholder:l.t(`find-replace.dialog.find-placeholder`),inputClass:`!univer-pl-10`,slot:T?(0,s.jsx)(`span`,{className:`univer-text-xs univer-text-gray-400`,children:T}):void 0,onChange:e=>{m(e),x(e)},onKeyDown:e=>{e.key===`Enter`&&C(N.id)}})]}),(0,s.jsx)(Y,{disabled:E,label:l.t(`find-replace.mobile.previous-match`),onClick:()=>C(P.id,!0),children:(0,s.jsx)(Se,{})}),(0,s.jsx)(Y,{disabled:E,label:l.t(`find-replace.mobile.next-match`),onClick:()=>C(N.id,!0),children:(0,s.jsx)(be,{})}),(0,s.jsx)(Y,{label:l.t(`find-replace.mobile.close`),onClick:()=>{S(),i.executeCommand(M.id).catch(()=>void 0)},children:(0,s.jsx)(we,{})})]}),u.replaceRevealed&&(0,s.jsxs)(`div`,{className:`univer-flex univer-gap-1 univer-pl-9`,children:[(0,s.jsx)(n.Input,{size:`middle`,className:`univer-min-w-0 univer-flex-1`,value:u.replaceString,placeholder:l.t(`find-replace.dialog.replace-placeholder`),onChange:e=>c.changeReplaceString(e)}),(0,s.jsx)(Le,{disabled:D,onClick:()=>C(O.id),children:l.t(`find-replace.dialog.replace`)}),(0,s.jsx)(Le,{disabled:A,onClick:()=>C(k.id),children:l.t(`find-replace.dialog.replace-all`)})]})]})}function Y(e){return(0,s.jsx)(`button`,{type:`button`,"aria-label":e.label,disabled:e.disabled,className:(0,n.clsx)(n.resetButtonClassName,`univer-flex univer-size-9 univer-flex-none univer-items-center univer-justify-center univer-rounded-full univer-text-lg univer-text-gray-700 active:univer-bg-gray-100 disabled:univer-opacity-35 dark:!univer-text-gray-200 dark:active:!univer-bg-gray-700`),onClick:e.onClick,children:e.children})}function Le(e){return(0,s.jsx)(`button`,{type:`button`,disabled:e.disabled,className:(0,n.clsx)(n.resetButtonClassName,`univer-h-10 univer-flex-none univer-whitespace-nowrap univer-rounded-lg univer-bg-primary-600 univer-px-3 univer-text-sm univer-font-medium univer-text-gray-0 active:univer-bg-primary-700 disabled:univer-bg-gray-100 disabled:univer-text-gray-400 dark:disabled:!univer-bg-gray-700 dark:disabled:!univer-text-gray-500`),onClick:e.onClick,children:e.children})}let X=class extends t.RxDisposable{constructor(e,t,n,i,o,s,c){super(),[A,j,M,N,P,k,O,F].forEach(e=>this.disposeWithMe(t.registerCommand(e))),o.mergeMenu(Pe),this.disposeWithMe(c.registerComponent(r.BuiltInUIPart.FOOTER,()=>(0,r.connectInjector)(Fe,e))),i.stateUpdates$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{e.revealed===!1&&n.close(ke)});let l=null;i.stateUpdates$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{if(e.revealed===!0){var t;l=((t=s.getFocusedUnit())==null?void 0:t.getUnitId())??null}else e.revealed===!1&&(l=null)}),s.focused$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{l&&e!==l&&i.terminate()})}};X=_([g(0,(0,t.Inject)(t.Injector)),g(1,t.ICommandService),g(2,r.IDialogService),g(3,y),g(4,r.IMenuManagerService),g(5,t.IUniverInstanceService),g(6,r.IUIPartsService)],X);let Z=class extends t.Plugin{constructor(e=U,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},U,this._config);this._configService.setConfig(fe,i)}onStarting(){this._injector.add([J]),this._injector.get(J),[[X],[y,{useClass:D}]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(X)}};h(Z,`pluginName`,`UNIVER_FIND_REPLACE_PLUGIN`),h(Z,`packageName`,ue),h(Z,`version`,de),Z=_([(0,t.DependentOn)(r.UniverMobileUIPlugin),g(1,(0,t.Inject)(t.Injector)),g(2,t.IConfigService)],Z);function Re(e){let{findCompleted:i,matchesCount:a,matchesPosition:c,initialFindString:l,findReplaceService:u,onChange:d,...f}=e,p=(0,r.useDependency)(t.LocaleService),[m,h]=(0,o.useState)(l),g=i&&a===0?p.t(`find-replace.dialog.no-result`):a===0?` `:void 0;function _(e){c===a&&e===1?u.moveToNextMatch():c===1&&e===a||e<c?u.moveToPreviousMatch():u.moveToNextMatch()}return(0,s.jsx)(`div`,{className:`univer-relative univer-flex univer-items-center univer-gap-2`,onDrag:e=>e.stopPropagation(),children:(0,s.jsx)(n.Input,{"data-u-comp":`search-input`,autoFocus:!0,placeholder:p.t(`find-replace.dialog.find-placeholder`),value:m,onChange:e=>{h(e),d==null||d(e)},slot:(0,s.jsx)(n.Pager,{loop:!0,text:g,value:c,total:a,onChange:_}),...f})})}let ze=[{label:`find-replace.dialog.find-scope.current-sheet`,value:`subunit`},{label:`find-replace.dialog.find-scope.workbook`,value:`unit`}],Be=[{label:`find-replace.dialog.find-direction.row`,value:`row`},{label:`find-replace.dialog.find-direction.column`,value:`column`}],Ve=[{label:`find-replace.dialog.find-by.value`,value:`value`},{label:`find-replace.dialog.find-by.formula`,value:`formula`}];function He(e,t){let n=(0,o.useRef)(null),r=(0,o.useCallback)(()=>{var e;(e=document.querySelector(`.univer-find-input input`))==null||e.focus()},[]),i=(0,o.useCallback)(()=>{r(),n.current=requestAnimationFrame(()=>{n.current=null,r()})},[r]),a=(0,o.useCallback)(()=>{let e=document.querySelectorAll(`[data-u-comp=find-replace-dialog] [data-u-comp=search-input]`);return Array.from(e).some(e=>e===document.activeElement)},[]);return(0,o.useImperativeHandle)(t,()=>({focus:r,selectHasFocus:a})),(0,o.useEffect)(()=>{let t=e.focusSignal$.subscribe(()=>r());return()=>{t.unsubscribe(),n.current!==null&&cancelAnimationFrame(n.current)}},[e,r]),{focus:r,focusAfterDialogClose:i,selectHasFocus:a}}let Ue=(0,o.forwardRef)(function(e,n){let i=(0,r.useDependency)(t.LocaleService),a=(0,r.useDependency)(y),c=(0,r.useDependency)(t.ICommandService),{findCompleted:l,findString:u,matchesCount:d,matchesPosition:f}=(0,r.useObservable)(a.state$,void 0,!0),p=(0,o.useCallback)(()=>{c.executeCommand(j.id)},[c]),m=(0,r.useDebounceFn)(e=>a.changeFindString(e),500);return He(a,n),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(Re,{findCompleted:l,matchesCount:d,matchesPosition:f,findReplaceService:a,initialFindString:u,onChange:m}),(0,s.jsx)(`div`,{className:`univer-mt-4 univer-text-center`,children:(0,s.jsx)(`a`,{className:`hover:univer-text-primary-500/80 univer-cursor-pointer univer-text-sm univer-text-primary-500 univer-transition-colors`,onClick:p,children:i.t(`find-replace.dialog.advanced-finding`)})})]})}),We=(0,o.forwardRef)(function(e,i){let a=(0,r.useDependency)(y),c=(0,r.useDependency)(t.LocaleService),l=(0,r.useDependency)(t.ICommandService),u=(0,r.useDependency)(r.IMessageService),d=(0,r.useObservable)(a.currentMatch$,void 0,!0),f=(0,r.useObservable)(a.replaceables$,void 0,!0),p=(0,r.useObservable)(a.providerCapabilities$,null,!0),{matchesCount:m,matchesPosition:h,findString:g,inputtingFindString:_,replaceString:v,caseSensitive:b,matchesTheWholeCell:x,matchesTheWholeWord:S,findDirection:C,findScope:w,findBy:T,findCompleted:E}=(0,r.useObservable)(a.state$,void 0,!0),D=_.length===0,A=m===0||!(d!=null&&d.replaceable),j=f.length===0,M=(0,o.useCallback)(e=>a.changeInputtingFindString(e),[a]),N=(0,o.useCallback)(e=>a.changeReplaceString(e),[a]),{focusAfterDialogClose:P}=He(a,i),F=(0,o.useCallback)(()=>{g===_?a.moveToNextMatch():(a.changeFindString(_),a.find())},[g,_,a]),I=(0,o.useCallback)(()=>l.executeCommand(O.id),[l]),L=(0,o.useCallback)(async()=>{await l.executeCommand(k.id),P()},[l,P]),R=(0,o.useCallback)(e=>{a.changeFindDirection(e)},[a]),ee=(0,o.useCallback)(e=>{a.changeFindScope(e)},[a]),te=(0,o.useCallback)(e=>{a.changeFindBy(e)},[a]),z=ze.map(e=>({...e,label:c.t(e.label)})),B=Be.map(e=>({...e,label:c.t(e.label)})),V=Ve.map(e=>({...e,label:c.t(e.label)}));return(0,o.useEffect)(()=>{E&&m===0&&u.show({content:c.t(`find-replace.dialog.no-match`),type:n.MessageType.Warning,duration:5e3})},[E,m,u,c]),(0,s.jsxs)(`div`,{children:[(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.find`),children:(0,s.jsx)(Re,{findCompleted:E,className:`univer-find-input`,matchesCount:m,matchesPosition:h,findReplaceService:a,initialFindString:_,onChange:M})}),(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.replace`),children:(0,s.jsx)(n.Input,{placeholder:c.t(`find-replace.dialog.replace-placeholder`),value:v,onChange:e=>N(e)})}),(p==null?void 0:p.findDirection)&&(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.find-direction.title`),children:(0,s.jsx)(n.Select,{value:C,options:B,onChange:R})}),((p==null?void 0:p.findScope)||(p==null?void 0:p.findBy))&&(0,s.jsx)(n.FormDualColumnLayout,{children:(0,s.jsxs)(s.Fragment,{children:[p.findScope&&(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.find-scope.title`),children:(0,s.jsx)(n.Select,{value:w,options:z,onChange:ee})}),p.findBy&&(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.find-by.title`),children:(0,s.jsx)(n.Select,{value:T,options:V,onChange:te})})]})}),((p==null?void 0:p.caseSensitive)||(p==null?void 0:p.matchesTheWholeCell)||(p==null?void 0:p.matchesTheWholeWord))&&(0,s.jsx)(n.FormDualColumnLayout,{children:(0,s.jsxs)(s.Fragment,{children:[p.caseSensitive&&(0,s.jsx)(n.FormLayout,{children:(0,s.jsx)(n.Checkbox,{checked:b,onChange:e=>{a.changeCaseSensitive(e),E&&a.find()},children:c.t(`find-replace.dialog.case-sensitive`)})}),p.matchesTheWholeCell&&(0,s.jsx)(n.FormLayout,{children:(0,s.jsx)(n.Checkbox,{checked:x,onChange:e=>a.changeMatchesTheWholeCell(e),children:c.t(`find-replace.dialog.match-the-whole-cell`)})}),p.matchesTheWholeWord&&(0,s.jsx)(n.FormLayout,{children:(0,s.jsx)(n.Checkbox,{checked:S,onChange:e=>{a.changeMatchesTheWholeWord(e),E&&a.find()},children:c.t(`find-replace.dialog.match-the-whole-word`)})})]})}),(0,s.jsxs)(`div`,{className:`univer-mt-6 univer-flex univer-justify-between`,children:[(0,s.jsx)(n.Button,{variant:`primary`,onClick:F,disabled:D,children:c.t(`find-replace.dialog.find`)}),(0,s.jsxs)(`span`,{className:`univer-inline-flex univer-gap-2`,children:[(0,s.jsx)(n.Button,{disabled:A,onClick:I,children:c.t(`find-replace.dialog.replace`)}),(0,s.jsx)(n.Button,{disabled:j,onClick:L,children:c.t(`find-replace.dialog.replace-all`)})]})]})]})});function Ge(){let e=(0,r.useDependency)(y),n=(0,r.useDependency)(r.ILayoutService),i=(0,r.useDependency)(t.IContextService),u=(0,r.useObservable)(e.state$,void 0,!0),d=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=d.current;if(!e)return;let t=n.registerContainerElement(e);return()=>t.dispose()},[n]);let f=(0,o.useRef)(null),p=(0,o.useCallback)(e=>i.setContextValue(l,e),[i]),m=(0,o.useCallback)(e=>i.setContextValue(c,e),[i]);return(0,o.useEffect)(()=>{var e;let t=(0,a.fromEvent)(document,`focusin`).subscribe(e=>{var t;e.target&&(t=d.current)!=null&&t.contains(e.target)?p(!0):p(!1),!f.current||!f.current.selectHasFocus()?m(!1):m(!0)});return(e=f.current)==null||e.focus(),p(!0),m(!0),()=>{t.unsubscribe(),p(!1)}},[p,m]),(0,s.jsx)(`div`,{ref:d,"data-u-comp":`find-replace-dialog`,children:u.replaceRevealed?(0,s.jsx)(We,{ref:f}):(0,s.jsx)(Ue,{ref:f})})}let Q=class extends t.Disposable{constructor(e,t){super(),this._componentManager=e,this._iconManager=t,this._registerIcons(),this._registerComponents()}_registerIcons(){this.disposeWithMe(this._iconManager.register({SearchIcon:G}))}_registerComponents(){[[`FindReplaceDialog`,Ge]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};Q=_([g(0,(0,t.Inject)(r.ComponentManager)),g(1,(0,t.Inject)(r.IconManager))],Q);let $=class extends t.Plugin{constructor(e=U,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},U,this._config);this._configService.setConfig(fe,i)}onStarting(){this._injector.add([Q]),this._injector.get(Q),[[H],[y,{useClass:D}]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(H)}};h($,`pluginName`,`UNIVER_FIND_REPLACE_PLUGIN`),h($,`packageName`,ue),h($,`version`,de),$=_([g(1,(0,t.Inject)(t.Injector)),g(2,t.IConfigService)],$),e.CloseFindDialogOperation=M,e.FindBy=C,e.FindDirection=S,e.FindModel=v,Object.defineProperty(e,"FindReplaceController",{enumerable:!0,get:function(){return H}}),e.FindReplaceMenuSchema=L,Object.defineProperty(e,"FindReplaceModel",{enumerable:!0,get:function(){return x}}),Object.defineProperty(e,"FindReplaceService",{enumerable:!0,get:function(){return D}}),e.FindReplaceState=E,e.FindScope=w,e.GoToNextMatchOperation=N,e.GoToPreviousMatchOperation=P,e.IFindReplaceService=y,e.OpenFindDialogOperation=A,e.OpenReplaceDialogOperation=j,e.ReplaceAllMatchesCommand=k,e.ReplaceCurrentMatchCommand=O,Object.defineProperty(e,"UniverFindReplaceMobileUIPlugin",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(e,"UniverFindReplacePlugin",{enumerable:!0,get:function(){return $}}),e.createInitFindReplaceState=T});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/design"),require("@univerjs/ui"),require("@univerjs/engine-render"),require("rxjs"),require("react"),require("react/jsx-runtime")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/design`,`@univerjs/ui`,`@univerjs/engine-render`,`rxjs`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverFindReplace={},e.UniverCore,e.UniverDesign,e.UniverUi,e.UniverEngineRender,e.rxjs,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let c=`FIND_REPLACE_INPUT_FOCUS`,l=`FIND_REPLACE_DIALOG_FOCUS`,u=`FIND_REPLACE_REPLACE_REVEALED`,d=`FIND_REPLACE_AVAILABLE`;function f(e){"@babel/helpers - typeof";return f=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},f(e)}function p(e,t){if(f(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(f(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function m(e){var t=p(e,`string`);return f(t)==`symbol`?t:t+``}function h(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e,t){return function(n,r){t(n,r,e)}}function _(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var v=class extends t.Disposable{};let y=(0,t.createIdentifier)(`find-replace.service`);function b(e){return e.findString!==void 0||e.inputtingFindString!==void 0||e.findDirection!==void 0||e.matchesTheWholeCell!==void 0||e.matchesTheWholeWord!==void 0||e.caseSensitive!==void 0||e.findScope!==void 0||e.findBy!==void 0}let x=class extends t.Disposable{get searched(){return this._findModels.length>0}constructor(e,t,n,r){super(),this._state=e,this._providers=t,this._univerInstanceService=n,this._commandService=r,h(this,`currentMatch$`,new a.BehaviorSubject(null)),h(this,`replaceables$`,new a.BehaviorSubject([])),h(this,`_findModels`,[]),h(this,`_matchingModel`,null),h(this,`_matches`,[]),h(this,`_currentSearchingDisposables`,null),this.disposeWithMe(this._state.stateUpdates$.pipe((0,a.throttleTime)(200,void 0,{leading:!0,trailing:!0})).subscribe(async e=>{let t=this._state.state;b(e)&&(t.findString!==``&&!t.replaceRevealed?(await this._startSearching(),this._state.changeState({findCompleted:!0})):e.replaceRevealed!==!0&&this._stopSearching())}))}dispose(){super.dispose(),this._stopSearching(),this.currentMatch$.complete(),this.replaceables$.complete(),this._state.changeState({...T(),revealed:!1})}async start(){if(!this._state.findString)return{results:[]};let e=await this._startSearching();return this._state.changeState({findCompleted:!0}),e}focusSelection(){var e;(e=this._matchingModel)==null||e.focusSelection()}async _startSearching(){if(!this._state.findString)return{results:[]};let e=Array.from(this._providers),t=this._findModels=(await Promise.all(e.map(e=>e.find({findString:this._state.findString,findDirection:this._state.findDirection,findScope:this._state.findScope,findBy:this._state.findBy,replaceRevealed:this._state.replaceRevealed,caseSensitive:this._state.caseSensitive,matchesTheWholeCell:this._state.matchesTheWholeCell,matchesTheWholeWord:this._state.matchesTheWholeWord})))).flat();this._subscribeToModelsChanges(t);let n=this._matches=t.map(e=>e.getMatches()).flat();return this.replaceables$.next(n.filter(e=>e.replaceable)),n.length?(this._moveToInitialMatch(t),this._state.changeState({matchesCount:n.length}),{results:n}):(this._state.changeState({matchesCount:0,matchesPosition:0}),{results:[]})}_stopSearching(){var e;this._providers.forEach(e=>e.terminate()),this._findModels=[],this._matches=[],this._matchingModel=null,(e=this._currentSearchingDisposables)==null||e.dispose(),this._currentSearchingDisposables=null,this.currentMatch$.next(null),this.replaceables$.next([]),this._state.changeState({findCompleted:!1,matchesCount:0,matchesPosition:0})}_subscribeToModelsChanges(e){let n=this._currentSearchingDisposables=new t.DisposableCollection,r=(0,a.combineLatest)(e.map(e=>e.matchesUpdate$)).pipe((0,a.debounceTime)(220)).subscribe(([...e])=>{let t=this._matches=e.flat();t.length?(this._moveToInitialMatch(this._findModels,!0),this._state.changeState({matchesCount:t.length}),this.replaceables$.next(t.filter(e=>e.replaceable))):(this._state.changeState({matchesCount:0,matchesPosition:0}),this.replaceables$.next([]))});e.forEach(e=>n.add((0,t.toDisposable)(e.activelyChangingMatch$.subscribe(e=>{let t=this._matches.findIndex(t=>t===e);this._state.changeState({matchesPosition:t+1})})))),n.add((0,t.toDisposable)(r))}async replace(){return this._matchingModel?this._matchingModel.replace(this._state.replaceString):!1}async replaceAll(){let e=await Promise.all(this._findModels.map(e=>e.replaceAll(this._state.replaceString))).then(e=>e.reduce((e,t)=>(e.success+=t.success,e.failure+=t.failure,e),{success:0,failure:0}));return e.failure===0&&this._stopSearching(),e}getCurrentMatch(){return this._state.matchesPosition>0?this._matches[this._state.matchesPosition-1]:null}_markMatch(e){let t=this._matches.findIndex(t=>t===e);this.currentMatch$.next(e),this._state.changeState({matchesPosition:t+1})}moveToNextMatch(){if(!this._matchingModel)return;let e=this._findModels.length===1,t=this._matchingModel.moveToNextMatch({loop:e});if(t)return this._markMatch(t),t;{let e=this._findModels.findIndex(e=>e===this._matchingModel);return this._moveToNextUnitMatch(e)}}_moveToNextUnitMatch(e){let t=this._findModels.length;for(let n=(e+1)%t;n!==e;){let e=this._findModels[n],r=e.moveToNextMatch({ignoreSelection:!0});if(r)return this._matchingModel=e,this._markMatch(r),r;n=(n+1)%t}if(this._matchingModel){let e=this._matchingModel.moveToNextMatch({ignoreSelection:!0});return e&&this._markMatch(e),e}}moveToPreviousMatch(){if(!this._matchingModel)return;let e=this._findModels.length===1,t=this._matchingModel.moveToPreviousMatch({loop:e});if(t){let e=this._matches.findIndex(e=>e===t);return this.currentMatch$.next(t),this._state.changeState({matchesPosition:e+1}),t}{let e=this._findModels.length,t=this._findModels.findIndex(e=>e===this._matchingModel);for(let n=(t-1+e)%e;n!==t;){let t=this._findModels[n],r=t.moveToPreviousMatch({ignoreSelection:!0});if(r)return this._matchingModel=t,this._markMatch(r),r;n=(n-1)%e}let n=this._matchingModel.moveToPreviousMatch({ignoreSelection:!0});return n&&this._markMatch(n),n}}_moveToInitialMatch(e,t=!1){var n;let r=(n=this._univerInstanceService.getFocusedUnit())==null?void 0:n.getUnitId();if(!r)return-1;let i=e.findIndex(e=>e.unitId===r);if(i!==-1){this._matchingModel=e[i];let n=this._matchingModel.moveToNextMatch({stayIfOnMatch:!0,noFocus:t});if(n)return this._markMatch(n),i}return this._moveToNextUnitMatch(i),0}};x=_([g(2,t.IUniverInstanceService),g(3,t.ICommandService)],x);let S=function(e){return e.ROW=`row`,e.COLUMN=`column`,e}({}),C=function(e){return e.VALUE=`value`,e.FORMULA=`formula`,e}({}),w=function(e){return e.SUBUNIT=`subunit`,e.UNIT=`unit`,e}({});function T(){return{caseSensitive:!1,findBy:`value`,findCompleted:!1,findDirection:`row`,findScope:`subunit`,findString:``,inputtingFindString:``,matchesCount:0,matchesPosition:0,matchesTheWholeCell:!1,matchesTheWholeWord:!1,replaceRevealed:!1,replaceString:``,revealed:!0}}var E=class{constructor(){h(this,`_stateUpdates$`,new a.Subject),h(this,`stateUpdates$`,this._stateUpdates$.asObservable()),h(this,`_state$`,new a.BehaviorSubject(T())),h(this,`state$`,this._state$.asObservable()),h(this,`_findString`,``),h(this,`_inputtingFindString`,``),h(this,`_replaceString`,``),h(this,`_revealed`,!1),h(this,`_replaceRevealed`,!1),h(this,`_matchesPosition`,0),h(this,`_matchesCount`,0),h(this,`_caseSensitive`,!0),h(this,`_matchesTheWholeCell`,!1),h(this,`_matchesTheWholeWord`,!1),h(this,`_findDirection`,`row`),h(this,`_findScope`,`subunit`),h(this,`_findBy`,`value`),h(this,`_findCompleted`,!1)}get state(){return this._state$.getValue()}get inputtingFindString(){return this._inputtingFindString}get findString(){return this._findString}get revealed(){return this._revealed}get replaceRevealed(){return this._replaceRevealed}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get replaceString(){return this._replaceString}get caseSensitive(){return this._caseSensitive}get matchesTheWholeCell(){return this._matchesTheWholeCell}get matchesTheWholeWord(){return this._matchesTheWholeWord}get findDirection(){return this._findDirection}get findScope(){return this._findScope}get findBy(){return this._findBy}get findCompleted(){return this._findCompleted}changeState(e){let t=!1,n={};e.findString!==void 0&&e.findString!==this._findString&&(this._findString=e.findString,n.findString=this._findString,t=!0),e.revealed!==void 0&&e.revealed!==this._revealed&&(this._revealed=e.revealed,n.revealed=e.revealed,t=!0),e.replaceRevealed!==void 0&&e.replaceRevealed!==this._replaceRevealed&&(this._replaceRevealed=e.replaceRevealed,n.replaceRevealed=e.replaceRevealed,t=!0),e.replaceString!==void 0&&e.replaceString!==this._replaceString&&(this._replaceString=e.replaceString,n.replaceString=e.replaceString,t=!0),e.matchesCount!==void 0&&e.matchesCount!==this._matchesCount&&(this._matchesCount=e.matchesCount,n.matchesCount=e.matchesCount,t=!0),e.matchesPosition!==void 0&&e.matchesPosition!==this._matchesPosition&&(this._matchesPosition=e.matchesPosition,n.matchesPosition=e.matchesPosition,t=!0),e.findBy!==void 0&&e.findBy!==this._findBy&&(this._findBy=e.findBy,n.findBy=e.findBy,t=!0),e.findScope!==void 0&&e.findScope!==this._findScope&&(this._findScope=e.findScope,n.findScope=e.findScope,t=!0),e.findDirection!==void 0&&e.findDirection!==this._findDirection&&(this._findDirection=e.findDirection,n.findDirection=e.findDirection,t=!0),e.caseSensitive!==void 0&&e.caseSensitive!==this._caseSensitive&&(this._caseSensitive=e.caseSensitive,n.caseSensitive=e.caseSensitive,t=!0),e.matchesTheWholeCell!==void 0&&e.matchesTheWholeCell!==this._matchesTheWholeCell&&(this._matchesTheWholeCell=e.matchesTheWholeCell,n.matchesTheWholeCell=e.matchesTheWholeCell,t=!0),e.matchesTheWholeWord!==void 0&&e.matchesTheWholeWord!==this._matchesTheWholeWord&&(this._matchesTheWholeWord=e.matchesTheWholeWord,n.matchesTheWholeWord=e.matchesTheWholeWord,t=!0),e.inputtingFindString!==void 0&&e.inputtingFindString!==this._inputtingFindString&&(this._inputtingFindString=e.inputtingFindString,n.inputtingFindString=e.inputtingFindString,t=!0),e.findCompleted!==void 0&&e.findCompleted!==this._findCompleted&&(this._findCompleted=e.findCompleted,n.findCompleted=e.findCompleted,t=!0),t&&(this._state$.next({caseSensitive:this._caseSensitive,findBy:this._findBy,findCompleted:this._findCompleted,findDirection:this._findDirection,findScope:this._findScope,findString:this._findString,inputtingFindString:this._inputtingFindString,matchesCount:this._matchesCount,matchesPosition:this._matchesPosition,matchesTheWholeCell:this._matchesTheWholeCell,matchesTheWholeWord:this._matchesTheWholeWord,replaceRevealed:this._replaceRevealed,revealed:this._revealed}),this._stateUpdates$.next(n))}};let D=class extends t.Disposable{get stateUpdates$(){return this._state.stateUpdates$}get state$(){return this._state.state$}get revealed(){return this._state.revealed}get replaceRevealed(){return this._state.replaceRevealed}constructor(e,n,r){super(),this._injector=e,this._contextService=n,this._univerInstanceService=r,h(this,`_providers`,new Set),h(this,`_state`,new E),h(this,`_model`,void 0),h(this,`_modelDisposables`,null),h(this,`_currentMatch$`,new a.BehaviorSubject(null)),h(this,`currentMatch$`,this._currentMatch$.asObservable()),h(this,`_replaceables$`,new a.BehaviorSubject([])),h(this,`replaceables$`,this._replaceables$.asObservable()),h(this,`_focusSignal$`,new a.Subject),h(this,`focusSignal$`,this._focusSignal$.asObservable()),h(this,`_providerCapabilities$`,new a.BehaviorSubject(null)),h(this,`providerCapabilities$`,this._providerCapabilities$.asObservable()),h(this,`_activeProvider`,null),this.disposeWithMe((0,t.toDisposable)(this._univerInstanceService.focused$.subscribe(()=>this._syncActiveProvider())))}dispose(){super.dispose(),this._currentMatch$.next(null),this._currentMatch$.complete(),this._replaceables$.next([]),this._replaceables$.complete(),this._focusSignal$.complete(),this._providerCapabilities$.complete()}getProviders(){return this._providers}getCurrentMatch(){var e;return(e=this._model)==null?void 0:e.getCurrentMatch()}getFindString(){return this._state.findString}changeFindString(e){this._state.changeState({findString:e})}focusFindInput(){this._focusSignal$.next()}changeInputtingFindString(e){e?this._state.changeState({inputtingFindString:e}):this._state.changeState({inputtingFindString:``,findString:``})}changeReplaceString(e){this._state.changeState({replaceString:e})}changeMatchesTheWholeCell(e){this._state.changeState({matchesTheWholeCell:e})}changeMatchesTheWholeWord(e){this._state.changeState({matchesTheWholeWord:e})}changeCaseSensitive(e){this._state.changeState({caseSensitive:e})}changeFindBy(e){this._state.changeState({findBy:e}),this._toggleDisplayRawFormula(e===`formula`)}changeFindScope(e){this._state.changeState({findScope:e})}changeFindDirection(e){this._state.changeState({findDirection:e})}moveToNextMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToNextMatch(),this._focusSignal$.next())}moveToPreviousMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToPreviousMatch(),this._focusSignal$.next())}async replace(){return this._model?this._model.replace():!1}async replaceAll(){if(!this._model)throw Error(`[FindReplaceService] replaceAll: model is not initialized!`);return this._model.replaceAll()}revealReplace(){this._state.changeState({replaceRevealed:!0,inputtingFindString:this._state.findString}),this._toggleRevealReplace(!0)}hideReplace(){this._state.changeState({replaceRevealed:!1,findString:this._state.inputtingFindString}),this._toggleRevealReplace(!1)}focusSelection(){var e;(e=this._model)==null||e.focusSelection()}start(e=!1){if(!this._activeProvider)return!1;this._model=this._injector.createInstance(x,this._state,new Set([this._activeProvider])),this._modelDisposables=new t.DisposableCollection,this._modelDisposables.add((0,t.toDisposable)(this._model.currentMatch$.subscribe(e=>this._currentMatch$.next(e)))),this._modelDisposables.add((0,t.toDisposable)(this._model.replaceables$.subscribe(e=>this._replaceables$.next(e))));let n=T();return e&&(n.replaceRevealed=!0),this._state.changeState(n),this._toggleRevealReplace(e),!0}find(){var e;(e=this._model)==null||e.start()}terminate(){var e,t;(e=this._model)==null||e.dispose(),this._model=null,(t=this._modelDisposables)==null||t.dispose(),this._modelDisposables=null,this._toggleDisplayRawFormula(!1),this._toggleRevealReplace(!1)}registerFindReplaceProvider(e){return this._providers.add(e),this._syncActiveProvider(),(0,t.toDisposable)(()=>{this._providers.delete(e),this._syncActiveProvider()})}_syncActiveProvider(){let e=this._univerInstanceService.getFocusedUnit(),t=e==null?null:Array.from(this._providers).find(t=>t.isSupported(e))??null;t!==this._activeProvider&&(this.revealed&&this.terminate(),this._activeProvider=t,this._providerCapabilities$.next((t==null?void 0:t.capabilities)??null),this._contextService.setContextValue(d,t!=null))}_toggleRevealReplace(e){this._contextService.setContextValue(u,e)}_toggleDisplayRawFormula(e){this._contextService.setContextValue(i.RENDER_RAW_FORMULA_KEY,e)}};D=_([g(0,(0,t.Inject)(t.Injector)),g(1,t.IContextService),g(2,t.IUniverInstanceService)],D);let O={id:`ui.command.replace-current-match`,type:t.CommandType.COMMAND,handler:e=>e.get(y).replace()},k={id:`ui.command.replace-all-matches`,type:t.CommandType.COMMAND,handler:async e=>{let i=e.get(t.IConfirmService),a=e.get(t.LocaleService),o=e.get(r.IMessageService);if(!await i.confirm({id:`CONFIRM_REPLACE_ALL`,title:{title:a.t(`find-replace.replace.confirm.title`)},cancelText:a.t(`find-replace.button.cancel`),confirmText:a.t(`find-replace.button.confirm`)}))return!1;let{success:s,failure:c}=await e.get(y).replaceAll();return c>0?(s===0?o.show({type:n.MessageType.Error,content:a.t(`find-replace.replace.all-failure`)}):o.show({type:n.MessageType.Warning,content:a.t(`find-replace.replace.partial-success`,`${s}`,`${c}`)}),!1):(o.show({type:n.MessageType.Success,content:a.t(`find-replace.replace.all-success`,`${s}`)}),!0)}},A={id:`ui.operation.open-find-dialog`,type:t.CommandType.OPERATION,handler:e=>{let t=e.get(y);return t.revealed?t.focusFindInput():t.start(),!0}},j={id:`ui.operation.open-replace-dialog`,type:t.CommandType.OPERATION,handler:e=>{let t=e.get(y);return t.revealed?t.replaceRevealed?t.focusFindInput():t.revealReplace():t.start(!0),!0}},M={id:`ui.operation.close-find-dialog`,type:t.CommandType.OPERATION,handler:e=>(e.get(y).terminate(),!0)},N={type:t.CommandType.OPERATION,id:`ui.operation.go-to-next-match`,handler:e=>(e.get(y).moveToNextMatch(),!0)},P={type:t.CommandType.OPERATION,id:`ui.operation.go-to-previous-match`,handler:e=>(e.get(y).moveToPreviousMatch(),!0)},F={type:t.CommandType.OPERATION,id:`ui.operation.focus-selection`,handler:e=>(e.get(y).focusSelection(),!0)};function I(e){let n=e.get(t.IContextService);return{id:A.id,icon:`SearchIcon`,tooltip:`find-replace.toolbar`,type:r.MenuItemType.BUTTON,hidden$:(0,r.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,a.combineLatest)([n.subscribeContextValue$(t.EDITOR_ACTIVATED),n.subscribeContextValue$(t.FOCUSING_SHEET),n.subscribeContextValue$(d).pipe((0,a.startWith)(n.getContextValue(d)))]).pipe((0,a.map)(([e,t,n])=>e||!t||!n))}}let ee={[r.RibbonDataGroup.ORGANIZATION]:{[A.id]:{order:2,gridLayout:{row:1,column:3},menuItemFactory:I}}};function L(e){return e.getContextValue(l)}function te(e){return e.getContextValue(u)}function R(e){return e.getContextValue(c)}let z=`7_find-replace-shortcuts`;function B(e){return e.getContextValue(d)}function V(e){return!e.getContextValue(t.EDITOR_ACTIVATED)}let ne={id:A.id,description:`find-replace.shortcut.open-find-dialog`,binding:r.KeyCode.F|r.MetaKeys.CTRL_COMMAND,group:z,groupTitle:`find-replace.shortcut.panel`,preconditions(e){return!L(e)&&B(e)&&V(e)}},re={id:A.id,description:`find-replace.shortcut.open-find-dialog`,binding:r.KeyCode.F|r.MetaKeys.CTRL_COMMAND,mac:r.KeyCode.F|r.MetaKeys.MAC_CTRL,preconditions(e){return!L(e)&&B(e)&&V(e)}},ie={id:j.id,description:`find-replace.shortcut.open-replace-dialog`,binding:r.KeyCode.H|r.MetaKeys.CTRL_COMMAND,mac:r.KeyCode.H|r.MetaKeys.MAC_CTRL,group:z,groupTitle:`find-replace.shortcut.panel`,preconditions(e){return B(e)&&V(e)&&(!L(e)||!te(e))}},ae={id:N.id,description:`find-replace.shortcut.go-to-next-match`,binding:r.KeyCode.ENTER,group:z,groupTitle:`find-replace.shortcut.panel`,priority:1e3,preconditions(e){return R(e)&&L(e)}},oe={id:P.id,description:`find-replace.shortcut.go-to-previous-match`,binding:r.KeyCode.ENTER|r.MetaKeys.SHIFT,group:z,groupTitle:`find-replace.shortcut.panel`,priority:1e3,preconditions(e){return R(e)&&L(e)}},se={id:F.id,description:`find-replace.shortcut.focus-selection`,binding:r.KeyCode.ESC,group:z,groupTitle:`find-replace.shortcut.panel`,priority:1e3,preconditions(e){return L(e)}},ce=`DESKTOP_FIND_REPLACE_DIALOG`,H=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s){super(),this._univerInstanceService=e,this._menuManagerService=t,this._shortcutService=n,this._commandService=r,this._findReplaceService=i,this._dialogService=a,this._layoutService=o,this._localeService=s,h(this,`_closingListenerDisposable`,void 0),this._initCommands(),this._initUI(),this._initShortcuts()}dispose(){var e;super.dispose(),(e=this._closingListenerDisposable)==null||e.dispose(),this._closingListenerDisposable=null}_initCommands(){[A,j,M,N,P,k,O,F].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initShortcuts(){[ie,ne,re,oe,ae,se].forEach(e=>this.disposeWithMe(this._shortcutService.registerShortcut(e)))}_initUI(){this._menuManagerService.mergeMenu(ee),this._findReplaceService.stateUpdates$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{e.revealed===!0?this._openPanel():e.revealed===!1&&this._closePanel(!1)})}_openPanel(){var e;let n=(e=this._univerInstanceService.getFocusedUnit())==null?void 0:e.getUnitId();this._dialogService.open({id:ce,draggable:!0,width:350,title:{title:this._localeService.t(`find-replace.dialog.title`)},children:{label:`FindReplaceDialog`},mask:!1,maskClosable:!1,defaultPosition:le(this._localeService.getDirection()),preservePositionOnDestroy:!0,onClose:()=>this.closePanel()}),this._closingListenerDisposable=(0,t.toDisposable)(this._univerInstanceService.focused$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{(!e||e!==n)&&this.closePanel()}))}closePanel(){this._closePanel(!0)}_closePanel(e){this._closingListenerDisposable&&(this._closingListenerDisposable.dispose(),this._closingListenerDisposable=null,this._dialogService.close(ce),e&&this._findReplaceService.terminate(),queueMicrotask(()=>this._layoutService.focus()))}};H=_([g(0,t.IUniverInstanceService),g(1,r.IMenuManagerService),g(2,r.IShortcutService),g(3,t.ICommandService),g(4,y),g(5,r.IDialogService),g(6,r.ILayoutService),g(7,(0,t.Inject)(t.LocaleService))],H);function le(e){let{innerWidth:t}=window;return{x:e===`rtl`?20:t-350-20,y:64}}var ue=`@univerjs/find-replace`,de=`1.0.0`;let fe=`find-replace.config`,U={};function W({ref:e,...t}){let{preserveStrokeWidth:n,icon:r,id:i,className:a,extend:s,...c}=t,l=`univerjs-icon univerjs-icon-${i} ${a||``}`.trim(),u=`_${(0,o.useId)()}`,d=(0,o.useRef)(null);return(0,o.useImperativeHandle)(e,()=>d.current),(0,o.useLayoutEffect)(()=>{if(n&&d.current&&d.current.localName===r.tag)return ge(d.current)},[n,r]),pe(r,`${i}`,{defIds:r.defIds,idSuffix:u},{ref:d,className:l,...c},s)}function pe(e,t,n,r,i){return(0,o.createElement)(e.tag,{key:t,...me(e,n,i),...r},(he(e,n).children||[]).map((r,a)=>pe(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function me(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),n!=null&&n.colorChannel1&&r.stroke===`colorChannel1`&&(r.stroke=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function he(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function ge(e){let t=e.viewBox.baseVal,n=Math.max(t.width,t.height);if(!Number.isFinite(n)||n<=0||t.width<=0||t.height<=0)return()=>void 0;let r=16/n,i=Array.from(e.querySelectorAll(`circle, ellipse, line, path, polygon, polyline, rect, text, textPath, tspan, use`)).flatMap(e=>{let t=getComputedStyle(e),n=Number.parseFloat(t.strokeWidth);return t.stroke===`none`||Number.parseFloat(t.strokeOpacity)===0||t.vectorEffect===`non-scaling-stroke`||!Number.isFinite(n)||n<=0?[]:[{element:e,hadStyleAttribute:e.hasAttribute(`style`),originalStrokeWidth:n,strokeWidth:_e(e.style,`stroke-width`)}]}).map(e=>({appliedStrokeWidth:null,element:e.element,hadStyleAttribute:e.hadStyleAttribute,isReleased:!1,originalStrokeWidth:e.originalStrokeWidth,strokeWidth:e.strokeWidth}));if(i.length===0)return()=>void 0;let a=(e,n)=>{if(t.width<=0||t.height<=0||e<=0||n<=0)return;let a=Math.min(e/t.width,n/t.height);!Number.isFinite(a)||a<=0||i.forEach(e=>{if(e.isReleased)return;if(e.appliedStrokeWidth!==null&&(e.element.style.getPropertyValue(`stroke-width`)!==e.appliedStrokeWidth||e.element.style.getPropertyPriority(`stroke-width`)!==e.strokeWidth.priority)){e.appliedStrokeWidth=null,e.isReleased=!0;return}let t=e.originalStrokeWidth*r/a,n=`${Number(t.toFixed(12))}px`;e.element.style.setProperty(`stroke-width`,n,e.strokeWidth.priority),e.appliedStrokeWidth=n})},o=e.getBoundingClientRect();a(o.width,o.height);let s=typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{if(t.some(t=>t.target===e)){let t=e.getBoundingClientRect();a(t.width,t.height)}});return s==null||s.observe(e),()=>{s==null||s.disconnect(),i.forEach(e=>{e.appliedStrokeWidth!==null&&(ve(e.element.style,`stroke-width`,e.appliedStrokeWidth,e.strokeWidth.priority,e.strokeWidth),!e.hadStyleAttribute&&e.element.style.length===0&&e.element.removeAttribute(`style`))})}}function _e(e,t){return{priority:e.getPropertyPriority(t),value:e.getPropertyValue(t)}}function ve(e,t,n,r,i){e.getPropertyValue(t)===n&&e.getPropertyPriority(t)===r&&(i.value?e.setProperty(t,i.value,i.priority):e.removeProperty(t))}W.displayName=`UniverIcon`;let ye={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 20 21`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M8.90467 3.99244C8.84611 4.1338 8.84611 4.31301 8.84611 4.67143V13.716L5.92068 10.7906C5.66724 10.5371 5.54052 10.4104 5.39916 10.3519C5.21067 10.2738 4.9989 10.2738 4.81041 10.3519C4.66905 10.4104 4.54233 10.5371 4.28889 10.7906C4.03545 11.044 3.90873 11.1707 3.85018 11.3121C3.77211 11.5006 3.77211 11.7124 3.85018 11.9008C3.90873 12.0422 4.03545 12.1689 4.28889 12.4224L9.03476 17.1682C9.07839 17.2127 9.12737 17.2617 9.18231 17.3166L9.18239 17.3167L9.18241 17.3167C9.40545 17.5398 9.53035 17.6647 9.65346 17.7313C9.67085 17.7408 9.6882 17.7492 9.70577 17.7564C9.89425 17.8345 10.106 17.8345 10.2945 17.7564C10.4359 17.6979 10.5626 17.5712 10.816 17.3177C10.8986 17.2352 10.9677 17.1661 11.0253 17.1056L15.7095 12.4214L15.7095 12.4213C15.963 12.1679 16.0897 12.0412 16.1482 11.8998C16.2263 11.7114 16.2263 11.4996 16.1482 11.3111C16.0897 11.1697 15.963 11.043 15.7095 10.7896C15.4561 10.5361 15.3294 10.4094 15.188 10.3509C14.9995 10.2728 14.7878 10.2728 14.5993 10.3509C14.4579 10.4094 14.3312 10.5361 14.0778 10.7896L14.0777 10.7896L11.1538 13.7135V4.67142C11.1538 4.31301 11.1538 4.1338 11.0953 3.99244C11.0172 3.80395 10.8674 3.6542 10.6789 3.57613C10.5376 3.51758 10.3584 3.51758 9.99996 3.51758C9.64154 3.51758 9.46233 3.51758 9.32097 3.57613C9.13249 3.6542 8.98274 3.80395 8.90467 3.99244Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},be=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`arrow-down-icon`,ref:t,icon:ye}))});be.displayName=`ArrowDownIcon`;let xe={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 20 21`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M11.0936 17.3406C11.1522 17.1992 11.1522 17.02 11.1522 16.6616V7.61701L14.0776 10.5424C14.3311 10.7959 14.4578 10.9226 14.5991 10.9811C14.7876 11.0592 14.9994 11.0592 15.1879 10.9811C15.3292 10.9226 15.456 10.7959 15.7094 10.5424C15.9628 10.289 16.0896 10.1623 16.1481 10.0209C16.2262 9.83243 16.2262 9.62066 16.1481 9.43217C16.0896 9.29081 15.9628 9.16409 15.7094 8.91065L10.9645 4.16576C10.9207 4.12105 10.8714 4.07178 10.8161 4.01648L10.8159 4.0163C10.5916 3.792 10.4666 3.66696 10.3428 3.60058C10.3261 3.59154 10.3094 3.58358 10.2925 3.57658C10.104 3.49851 9.89226 3.49851 9.70378 3.57658C9.56242 3.63514 9.4357 3.76186 9.18226 4.0153C9.09955 4.09801 9.03034 4.16722 8.97258 4.22785L4.28878 8.91166C4.03534 9.1651 3.90862 9.29182 3.85006 9.43318C3.77199 9.62166 3.77199 9.83344 3.85006 10.0219C3.90862 10.1633 4.03534 10.29 4.28878 10.5434C4.54221 10.7969 4.66893 10.9236 4.8103 10.9822C4.99878 11.0602 5.21056 11.0602 5.39904 10.9822C5.5404 10.9236 5.66712 10.7969 5.92056 10.5434L5.92056 10.5434L8.84449 7.61951V16.6616C8.84449 17.02 8.84449 17.1992 8.90305 17.3406C8.98112 17.5291 9.13087 17.6788 9.31935 17.7569C9.46072 17.8154 9.63992 17.8154 9.99834 17.8154C10.3568 17.8154 10.536 17.8154 10.6773 17.7569C10.8658 17.6788 11.0156 17.5291 11.0936 17.3406Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},Se=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`arrow-up-icon`,ref:t,icon:xe}))});Se.displayName=`ArrowUpIcon`;let Ce={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z`}}]},we=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`close-icon`,ref:t,icon:Ce}))});we.displayName=`CloseIcon`;let Te={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 20 20`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{stroke:`currentColor`,d:`M8.7 3.2h2.6l.4 1.7 1.4.6 1.5-.9 1.8 1.8-.9 1.5.6 1.4 1.7.4v2.6l-1.7.4-.6 1.4.9 1.5-1.8 1.8-1.5-.9-1.4.6-.4 1.7H8.7l-.4-1.7-1.4-.6-1.5.9-1.8-1.8.9-1.5-.6-1.4-1.7-.4V9.7l1.7-.4.6-1.4-.9-1.5 1.8-1.8 1.5.9 1.4-.6.4-1.7Z`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.6}},{tag:`circle`,attrs:{cx:10,cy:11,r:2.2,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.6}}]},Ee=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`configure-tab-icon`,ref:t,icon:Te}))});Ee.displayName=`ConfigureTabIcon`;let De={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.71899 1.36938C4.37604 1.36938 1.66602 4.07941 1.66602 7.42236C1.66602 10.7653 4.37604 13.4753 7.71899 13.4753C9.16744 13.4753 10.4971 12.9666 11.5389 12.118L13.6598 14.4109C13.8848 14.6542 14.2644 14.669 14.5077 14.444C14.7509 14.219 14.7657 13.8393 14.5407 13.5961L12.3906 11.2716C13.2536 10.2254 13.772 8.88442 13.772 7.42236C13.772 4.07941 11.0619 1.36938 7.71899 1.36938ZM2.86602 7.42236C2.86602 4.74215 5.03878 2.56938 7.71899 2.56938C10.3992 2.56938 12.572 4.74215 12.572 7.42236C12.572 10.1026 10.3992 12.2753 7.71899 12.2753C5.03878 12.2753 2.86602 10.1026 2.86602 7.42236Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},G=(0,o.forwardRef)(function(e,t){return(0,o.createElement)(W,Object.assign({},e,{id:`search-icon`,ref:t,icon:De}))});G.displayName=`SearchIcon`;let Oe=`MobileFindReplaceSettings`,ke=`MOBILE_FIND_REPLACE_SETTINGS_DIALOG`,Ae=[{label:`find-replace.dialog.find-scope.current-sheet`,value:`subunit`},{label:`find-replace.dialog.find-scope.workbook`,value:`unit`}],je=[{label:`find-replace.dialog.find-direction.row`,value:`row`},{label:`find-replace.dialog.find-direction.column`,value:`column`}],Me=[{label:`find-replace.dialog.find-by.value`,value:`value`},{label:`find-replace.dialog.find-by.formula`,value:`formula`}];function Ne(){let e=(0,r.useDependency)(y),n=(0,r.useDependency)(t.LocaleService),i=(0,r.useObservable)(e.state$,void 0,!0),a=(0,r.useObservable)(e.providerCapabilities$,null,!0);function o(t=!1){i.findString&&(t||i.replaceRevealed)&&e.find()}let c=Ae.map(e=>({...e,label:n.t(e.label)})),l=je.map(e=>({...e,label:n.t(e.label)})),u=Me.map(e=>({...e,label:n.t(e.label)}));return(0,s.jsxs)(`div`,{className:`univer-grid univer-gap-2`,"data-u-comp":`mobile-find-replace-settings`,children:[(0,s.jsx)(q,{checked:i.replaceRevealed,label:n.t(`find-replace.dialog.replace`),onChange:t=>{t?e.revealReplace():e.hideReplace(),o(!0)}}),(a==null?void 0:a.findDirection)&&(0,s.jsx)(K,{label:n.t(`find-replace.dialog.find-direction.title`),value:i.findDirection,options:l,onChange:t=>{e.changeFindDirection(t),o()}}),(a==null?void 0:a.findScope)&&(0,s.jsx)(K,{label:n.t(`find-replace.dialog.find-scope.title`),value:i.findScope,options:c,onChange:t=>{e.changeFindScope(t),o()}}),(a==null?void 0:a.findBy)&&(0,s.jsx)(K,{label:n.t(`find-replace.dialog.find-by.title`),value:i.findBy,options:u,onChange:t=>{e.changeFindBy(t),o()}}),(a==null?void 0:a.caseSensitive)&&(0,s.jsx)(q,{checked:i.caseSensitive,label:n.t(`find-replace.dialog.case-sensitive`),onChange:t=>{e.changeCaseSensitive(t),o()}}),(a==null?void 0:a.matchesTheWholeCell)&&(0,s.jsx)(q,{checked:i.matchesTheWholeCell,label:n.t(`find-replace.dialog.match-the-whole-cell`),onChange:t=>{e.changeMatchesTheWholeCell(t),o()}}),(a==null?void 0:a.matchesTheWholeWord)&&(0,s.jsx)(q,{checked:i.matchesTheWholeWord,label:n.t(`find-replace.dialog.match-the-whole-word`),onChange:t=>{e.changeMatchesTheWholeWord(t),o()}})]})}function K(e){return(0,s.jsxs)(`label`,{className:`univer-grid univer-gap-1 univer-text-sm univer-text-gray-700 dark:!univer-text-gray-300`,children:[(0,s.jsx)(`span`,{children:e.label}),(0,s.jsx)(n.MobileSelect,{value:e.value,options:e.options,onChange:e.onChange})]})}function q(e){return(0,s.jsx)(`div`,{className:`univer-flex univer-min-h-9 univer-items-center`,children:(0,s.jsx)(n.Checkbox,{checked:e.checked,onChange:t=>e.onChange(!!t),children:e.label})})}let J=class extends t.Disposable{constructor(e,t){super(),this.disposeWithMe(t.register({SearchIcon:G})),this.disposeWithMe(e.register(Oe,Ne))}};J=_([g(0,(0,t.Inject)(r.ComponentManager)),g(1,(0,t.Inject)(r.IconManager))],J);let Pe={[r.RibbonDataGroup.ORGANIZATION]:{[A.id]:{order:2,menuItemFactory:I}}};function Fe(){let e=(0,r.useDependency)(y);return(0,r.useObservable)(e.state$,void 0,!0),e.revealed?(0,s.jsx)(Ie,{}):null}function Ie(){let e=(0,r.useDependency)(t.ICommandService),i=(0,r.useDependency)(r.IDialogService),a=(0,r.useDependency)(y),c=(0,r.useDependency)(t.LocaleService),l=(0,r.useObservable)(a.state$,void 0,!0),u=(0,r.useObservable)(a.currentMatch$,null,!0),d=(0,r.useObservable)(a.replaceables$,[],!0),[f,p]=(0,o.useState)(()=>l.replaceRevealed?l.inputtingFindString:l.findString),m=(0,o.useRef)(null),h=(0,o.useRef)(null),g=(0,o.useRef)(null),_=(0,o.useRef)(!1),v=(0,n.useMobileKeyboardViewportLayout)(m);(0,o.useEffect)(()=>{let e=requestAnimationFrame(()=>{var e;return(e=h.current)==null?void 0:e.focus()});return()=>cancelAnimationFrame(e)},[]),(0,o.useEffect)(()=>{let e=a.focusSignal$.subscribe(()=>{var e;if(_.current){_.current=!1;return}(e=h.current)==null||e.focus()});return()=>e.unsubscribe()},[a]),(0,o.useEffect)(()=>()=>{g.current&&clearTimeout(g.current)},[]);function b(){g.current&&=(clearTimeout(g.current),null)}function x(e){if(b(),!e){a.changeInputtingFindString(``);return}if(a.replaceRevealed){a.changeInputtingFindString(e),a.changeFindString(e),a.find();return}a.changeFindString(e)}function S(e){if(b(),!e){x(e);return}g.current=setTimeout(()=>x(e),500)}function C(){document.activeElement instanceof HTMLElement&&document.activeElement.blur()}function w(t,n=!1){if(C(),f!==l.findString&&(x(f),t===N.id||t===P.id))return;_.current=n;let r=e.executeCommand(t);_.current=!1,r.catch(()=>void 0)}function T(){x(f),C(),i.open({id:ke,title:{title:c.t(`find-replace.mobile.settings-title`)},children:{label:Oe}})}let E=l.findCompleted&&l.matchesCount===0?c.t(`find-replace.dialog.no-result`):l.matchesCount>0?`${l.matchesPosition}/${l.matchesCount}`:void 0,D=l.matchesCount===0,A=l.matchesCount===0||!(u!=null&&u.replaceable),j=d.length===0;return(0,s.jsxs)(`div`,{ref:m,"data-u-comp":`mobile-find-replace-bar`,className:`univer-fixed univer-inset-x-0 univer-z-40 univer-grid univer-gap-2 univer-bg-gray-0 univer-px-2 univer-pt-1.5 univer-shadow-[0_-4px_16px_rgba(0,0,0,0.08)] dark:!univer-bg-gray-800`,style:{bottom:(v==null?void 0:v.bottom)??0,paddingBottom:`calc(6px + env(safe-area-inset-bottom, 0px))`},children:[(0,s.jsxs)(`div`,{className:`univer-flex`,children:[(0,s.jsx)(Y,{label:c.t(`find-replace.mobile.settings`),onClick:T,children:(0,s.jsx)(Ee,{})}),(0,s.jsxs)(`div`,{className:`univer-relative univer-mr-2 univer-min-w-0 univer-flex-1`,children:[(0,s.jsx)(G,{className:`univer-pointer-events-none univer-absolute univer-left-3 univer-top-1/2 univer-z-10 univer-size-5 -univer-translate-y-1/2 univer-text-gray-500`}),(0,s.jsx)(n.Input,{ref:h,size:`middle`,allowClear:!0,value:f,placeholder:c.t(`find-replace.dialog.find-placeholder`),inputClass:`!univer-pl-10`,slot:E?(0,s.jsx)(`span`,{className:`univer-text-xs univer-text-gray-400`,children:E}):void 0,onChange:e=>{p(e),S(e)},onKeyDown:e=>{e.key===`Enter`&&w(N.id)}})]}),(0,s.jsx)(Y,{disabled:D,label:c.t(`find-replace.mobile.previous-match`),onClick:()=>w(P.id,!0),children:(0,s.jsx)(Se,{})}),(0,s.jsx)(Y,{disabled:D,label:c.t(`find-replace.mobile.next-match`),onClick:()=>w(N.id,!0),children:(0,s.jsx)(be,{})}),(0,s.jsx)(Y,{label:c.t(`find-replace.mobile.close`),onClick:()=>{C(),e.executeCommand(M.id).catch(()=>void 0)},children:(0,s.jsx)(we,{})})]}),l.replaceRevealed&&(0,s.jsxs)(`div`,{className:`univer-flex univer-gap-1 univer-pl-9`,children:[(0,s.jsx)(n.Input,{size:`middle`,className:`univer-min-w-0 univer-flex-1`,value:l.replaceString,placeholder:c.t(`find-replace.dialog.replace-placeholder`),onChange:e=>a.changeReplaceString(e)}),(0,s.jsx)(Le,{disabled:A,onClick:()=>w(O.id),children:c.t(`find-replace.dialog.replace`)}),(0,s.jsx)(Le,{disabled:j,onClick:()=>w(k.id),children:c.t(`find-replace.dialog.replace-all`)})]})]})}function Y(e){return(0,s.jsx)(`button`,{type:`button`,"aria-label":e.label,disabled:e.disabled,className:(0,n.clsx)(n.resetButtonClassName,`univer-flex univer-size-9 univer-flex-none univer-items-center univer-justify-center univer-rounded-full univer-text-lg univer-text-gray-700 active:univer-bg-gray-100 disabled:univer-opacity-35 dark:!univer-text-gray-200 dark:active:!univer-bg-gray-700`),onClick:e.onClick,children:e.children})}function Le(e){return(0,s.jsx)(`button`,{type:`button`,disabled:e.disabled,className:(0,n.clsx)(n.resetButtonClassName,`univer-h-10 univer-flex-none univer-whitespace-nowrap univer-rounded-lg univer-bg-primary-600 univer-px-3 univer-text-sm univer-font-medium univer-text-gray-0 active:univer-bg-primary-700 disabled:univer-bg-gray-100 disabled:univer-text-gray-400 dark:disabled:!univer-bg-gray-700 dark:disabled:!univer-text-gray-500`),onClick:e.onClick,children:e.children})}let X=class extends t.RxDisposable{constructor(e,t,n,i,o,s,c){super(),[A,j,M,N,P,k,O,F].forEach(e=>this.disposeWithMe(t.registerCommand(e))),o.mergeMenu(Pe),this.disposeWithMe(c.registerComponent(r.BuiltInUIPart.FOOTER,()=>(0,r.connectInjector)(Fe,e))),i.stateUpdates$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{e.revealed===!1&&n.close(ke)});let l=null;i.stateUpdates$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{if(e.revealed===!0){var t;l=((t=s.getFocusedUnit())==null?void 0:t.getUnitId())??null}else e.revealed===!1&&(l=null)}),s.focused$.pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{l&&e!==l&&i.terminate()})}};X=_([g(0,(0,t.Inject)(t.Injector)),g(1,t.ICommandService),g(2,r.IDialogService),g(3,y),g(4,r.IMenuManagerService),g(5,t.IUniverInstanceService),g(6,r.IUIPartsService)],X);let Z=class extends t.Plugin{constructor(e=U,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},U,this._config);this._configService.setConfig(fe,i)}onStarting(){this._injector.add([J]),this._injector.get(J),[[X],[y,{useClass:D}]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(X)}};h(Z,`pluginName`,`UNIVER_FIND_REPLACE_PLUGIN`),h(Z,`packageName`,ue),h(Z,`version`,de),Z=_([(0,t.DependentOn)(r.UniverMobileUIPlugin),g(1,(0,t.Inject)(t.Injector)),g(2,t.IConfigService)],Z);function Re(e){let{findCompleted:i,matchesCount:a,matchesPosition:c,initialFindString:l,findReplaceService:u,onChange:d,...f}=e,p=(0,r.useDependency)(t.LocaleService),[m,h]=(0,o.useState)(l),g=i&&a===0?p.t(`find-replace.dialog.no-result`):a===0?` `:void 0;function _(e){c===a&&e===1?u.moveToNextMatch():c===1&&e===a||e<c?u.moveToPreviousMatch():u.moveToNextMatch()}return(0,s.jsx)(`div`,{className:`univer-relative univer-flex univer-items-center univer-gap-2`,onDrag:e=>e.stopPropagation(),children:(0,s.jsx)(n.Input,{"data-u-comp":`search-input`,autoFocus:!0,placeholder:p.t(`find-replace.dialog.find-placeholder`),value:m,onChange:e=>{h(e),d==null||d(e)},slot:(0,s.jsx)(n.Pager,{loop:!0,text:g,value:c,total:a,onChange:_}),...f})})}let ze=[{label:`find-replace.dialog.find-scope.current-sheet`,value:`subunit`},{label:`find-replace.dialog.find-scope.workbook`,value:`unit`}],Be=[{label:`find-replace.dialog.find-direction.row`,value:`row`},{label:`find-replace.dialog.find-direction.column`,value:`column`}],Ve=[{label:`find-replace.dialog.find-by.value`,value:`value`},{label:`find-replace.dialog.find-by.formula`,value:`formula`}];function He(e,t){let n=(0,o.useRef)(null),r=(0,o.useCallback)(()=>{var e;(e=document.querySelector(`.univer-find-input input`))==null||e.focus()},[]),i=(0,o.useCallback)(()=>{r(),n.current=requestAnimationFrame(()=>{n.current=null,r()})},[r]),a=(0,o.useCallback)(()=>{let e=document.querySelectorAll(`[data-u-comp=find-replace-dialog] [data-u-comp=search-input]`);return Array.from(e).some(e=>e===document.activeElement)},[]);return(0,o.useImperativeHandle)(t,()=>({focus:r,selectHasFocus:a})),(0,o.useEffect)(()=>{let t=e.focusSignal$.subscribe(()=>r());return()=>{t.unsubscribe(),n.current!==null&&cancelAnimationFrame(n.current)}},[e,r]),{focus:r,focusAfterDialogClose:i,selectHasFocus:a}}let Ue=(0,o.forwardRef)(function(e,n){let i=(0,r.useDependency)(t.LocaleService),a=(0,r.useDependency)(y),c=(0,r.useDependency)(t.ICommandService),{findCompleted:l,findString:u,matchesCount:d,matchesPosition:f}=(0,r.useObservable)(a.state$,void 0,!0),p=(0,o.useCallback)(()=>{c.executeCommand(j.id)},[c]),m=(0,r.useDebounceFn)(e=>a.changeFindString(e),500);return He(a,n),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(Re,{findCompleted:l,matchesCount:d,matchesPosition:f,findReplaceService:a,initialFindString:u,onChange:m}),(0,s.jsx)(`div`,{className:`univer-mt-4 univer-text-center`,children:(0,s.jsx)(`a`,{className:`hover:univer-text-primary-500/80 univer-cursor-pointer univer-text-sm univer-text-primary-500 univer-transition-colors`,onClick:p,children:i.t(`find-replace.dialog.advanced-finding`)})})]})}),We=(0,o.forwardRef)(function(e,i){let a=(0,r.useDependency)(y),c=(0,r.useDependency)(t.LocaleService),l=(0,r.useDependency)(t.ICommandService),u=(0,r.useDependency)(r.IMessageService),d=(0,r.useObservable)(a.currentMatch$,void 0,!0),f=(0,r.useObservable)(a.replaceables$,void 0,!0),p=(0,r.useObservable)(a.providerCapabilities$,null,!0),{matchesCount:m,matchesPosition:h,findString:g,inputtingFindString:_,replaceString:v,caseSensitive:b,matchesTheWholeCell:x,matchesTheWholeWord:S,findDirection:C,findScope:w,findBy:T,findCompleted:E}=(0,r.useObservable)(a.state$,void 0,!0),D=_.length===0,A=m===0||!(d!=null&&d.replaceable),j=f.length===0,M=(0,o.useCallback)(e=>a.changeInputtingFindString(e),[a]),N=(0,o.useCallback)(e=>a.changeReplaceString(e),[a]),{focusAfterDialogClose:P}=He(a,i),F=(0,o.useCallback)(()=>{g===_?a.moveToNextMatch():(a.changeFindString(_),a.find())},[g,_,a]),I=(0,o.useCallback)(()=>l.executeCommand(O.id),[l]),ee=(0,o.useCallback)(async()=>{await l.executeCommand(k.id),P()},[l,P]),L=(0,o.useCallback)(e=>{a.changeFindDirection(e)},[a]),te=(0,o.useCallback)(e=>{a.changeFindScope(e)},[a]),R=(0,o.useCallback)(e=>{a.changeFindBy(e)},[a]),z=ze.map(e=>({...e,label:c.t(e.label)})),B=Be.map(e=>({...e,label:c.t(e.label)})),V=Ve.map(e=>({...e,label:c.t(e.label)}));return(0,o.useEffect)(()=>{E&&m===0&&u.show({content:c.t(`find-replace.dialog.no-match`),type:n.MessageType.Warning,duration:5e3})},[E,m,u,c]),(0,s.jsxs)(`div`,{children:[(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.find`),children:(0,s.jsx)(Re,{findCompleted:E,className:`univer-find-input`,matchesCount:m,matchesPosition:h,findReplaceService:a,initialFindString:_,onChange:M})}),(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.replace`),children:(0,s.jsx)(n.Input,{placeholder:c.t(`find-replace.dialog.replace-placeholder`),value:v,onChange:e=>N(e)})}),(p==null?void 0:p.findDirection)&&(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.find-direction.title`),children:(0,s.jsx)(n.Select,{value:C,options:B,onChange:L})}),((p==null?void 0:p.findScope)||(p==null?void 0:p.findBy))&&(0,s.jsx)(n.FormDualColumnLayout,{children:(0,s.jsxs)(s.Fragment,{children:[p.findScope&&(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.find-scope.title`),children:(0,s.jsx)(n.Select,{value:w,options:z,onChange:te})}),p.findBy&&(0,s.jsx)(n.FormLayout,{label:c.t(`find-replace.dialog.find-by.title`),children:(0,s.jsx)(n.Select,{value:T,options:V,onChange:R})})]})}),((p==null?void 0:p.caseSensitive)||(p==null?void 0:p.matchesTheWholeCell)||(p==null?void 0:p.matchesTheWholeWord))&&(0,s.jsx)(n.FormDualColumnLayout,{children:(0,s.jsxs)(s.Fragment,{children:[p.caseSensitive&&(0,s.jsx)(n.FormLayout,{children:(0,s.jsx)(n.Checkbox,{checked:b,onChange:e=>{a.changeCaseSensitive(!!e),E&&a.find()},children:c.t(`find-replace.dialog.case-sensitive`)})}),p.matchesTheWholeCell&&(0,s.jsx)(n.FormLayout,{children:(0,s.jsx)(n.Checkbox,{checked:x,onChange:e=>a.changeMatchesTheWholeCell(!!e),children:c.t(`find-replace.dialog.match-the-whole-cell`)})}),p.matchesTheWholeWord&&(0,s.jsx)(n.FormLayout,{children:(0,s.jsx)(n.Checkbox,{checked:S,onChange:e=>{a.changeMatchesTheWholeWord(!!e),E&&a.find()},children:c.t(`find-replace.dialog.match-the-whole-word`)})})]})}),(0,s.jsxs)(`div`,{className:`univer-mt-6 univer-flex univer-justify-between`,children:[(0,s.jsx)(n.Button,{variant:`primary`,onClick:F,disabled:D,children:c.t(`find-replace.dialog.find`)}),(0,s.jsxs)(`span`,{className:`univer-inline-flex univer-gap-2`,children:[(0,s.jsx)(n.Button,{disabled:A,onClick:I,children:c.t(`find-replace.dialog.replace`)}),(0,s.jsx)(n.Button,{disabled:j,onClick:ee,children:c.t(`find-replace.dialog.replace-all`)})]})]})]})});function Ge(){let e=(0,r.useDependency)(y),n=(0,r.useDependency)(r.ILayoutService),i=(0,r.useDependency)(t.IContextService),u=(0,r.useObservable)(e.state$,void 0,!0),d=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=d.current;if(!e)return;let t=n.registerContainerElement(e);return()=>t.dispose()},[n]);let f=(0,o.useRef)(null),p=(0,o.useCallback)(e=>i.setContextValue(l,e),[i]),m=(0,o.useCallback)(e=>i.setContextValue(c,e),[i]);return(0,o.useEffect)(()=>{var e;let t=(0,a.fromEvent)(document,`focusin`).subscribe(e=>{var t;e.target&&(t=d.current)!=null&&t.contains(e.target)?p(!0):p(!1),!f.current||!f.current.selectHasFocus()?m(!1):m(!0)});return(e=f.current)==null||e.focus(),p(!0),m(!0),()=>{t.unsubscribe(),p(!1)}},[p,m]),(0,s.jsx)(`div`,{ref:d,"data-u-comp":`find-replace-dialog`,children:u.replaceRevealed?(0,s.jsx)(We,{ref:f}):(0,s.jsx)(Ue,{ref:f})})}let Q=class extends t.Disposable{constructor(e,t){super(),this._componentManager=e,this._iconManager=t,this._registerIcons(),this._registerComponents()}_registerIcons(){this.disposeWithMe(this._iconManager.register({SearchIcon:G}))}_registerComponents(){[[`FindReplaceDialog`,Ge]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};Q=_([g(0,(0,t.Inject)(r.ComponentManager)),g(1,(0,t.Inject)(r.IconManager))],Q);let $=class extends t.Plugin{constructor(e=U,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},U,this._config);this._configService.setConfig(fe,i)}onStarting(){this._injector.add([Q]),this._injector.get(Q),[[H],[y,{useClass:D}]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(H)}};h($,`pluginName`,`UNIVER_FIND_REPLACE_PLUGIN`),h($,`packageName`,ue),h($,`version`,de),$=_([g(1,(0,t.Inject)(t.Injector)),g(2,t.IConfigService)],$),e.CloseFindDialogOperation=M,e.FindBy=C,e.FindDirection=S,e.FindModel=v,Object.defineProperty(e,"FindReplaceController",{enumerable:!0,get:function(){return H}}),e.FindReplaceMenuSchema=ee,Object.defineProperty(e,"FindReplaceModel",{enumerable:!0,get:function(){return x}}),Object.defineProperty(e,"FindReplaceService",{enumerable:!0,get:function(){return D}}),e.FindReplaceState=E,e.FindScope=w,e.GoToNextMatchOperation=N,e.GoToPreviousMatchOperation=P,e.IFindReplaceService=y,e.OpenFindDialogOperation=A,e.OpenReplaceDialogOperation=j,e.ReplaceAllMatchesCommand=k,e.ReplaceCurrentMatchCommand=O,Object.defineProperty(e,"UniverFindReplaceMobileUIPlugin",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(e,"UniverFindReplacePlugin",{enumerable:!0,get:function(){return $}}),e.createInitFindReplaceState=T});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/find-replace",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Shared find and replace services and UI infrastructure for Univer.",
|
|
6
6
|
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
@@ -58,20 +58,20 @@
|
|
|
58
58
|
"rxjs": ">=7.0.0"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@univerjs/
|
|
62
|
-
"@univerjs/
|
|
63
|
-
"@univerjs/engine-render": "1.0.0
|
|
64
|
-
"@univerjs/
|
|
65
|
-
"@univerjs/
|
|
61
|
+
"@univerjs/core": "1.0.0",
|
|
62
|
+
"@univerjs/design": "1.0.0",
|
|
63
|
+
"@univerjs/engine-render": "1.0.0",
|
|
64
|
+
"@univerjs/icons": "1.43.0",
|
|
65
|
+
"@univerjs/ui": "1.0.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"
|
|
68
|
+
"@univerjs-infra/shared": "1.0.0",
|
|
69
|
+
"postcss": "^8.5.28",
|
|
69
70
|
"react": "18.3.1",
|
|
70
71
|
"rxjs": "^7.8.2",
|
|
71
72
|
"tailwindcss": "3.4.18",
|
|
72
73
|
"typescript": "^6.0.3",
|
|
73
|
-
"vitest": "^5.0.0"
|
|
74
|
-
"@univerjs-infra/shared": "1.0.0-rc.0"
|
|
74
|
+
"vitest": "^5.0.0"
|
|
75
75
|
},
|
|
76
76
|
"scripts": {
|
|
77
77
|
"test": "vitest run",
|