@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 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.140.0/helpers/esm/typeof.js
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.140.0/helpers/esm/toPrimitive.js
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.140.0/helpers/esm/toPropertyKey.js
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.140.0/helpers/esm/defineProperty.js
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.140.0/helpers/esm/decorateParam.js
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.140.0/helpers/esm/decorate.js
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-rc.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: keyboardInset,
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")
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/ar-SA.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "بحث واستبدال",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/ca-ES.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Cerca i reemplaça",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/de-DE.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Suchen & Ersetzen",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/en-US.ts
3
2
  /**
4
3
  * Copyright 2023-present DreamNum Co., Ltd.
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/es-ES.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Buscar y reemplazar",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/fa-IR.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "یافتن و جایگزینی",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/fr-FR.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Rechercher & Remplacer",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/id-ID.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Cari & Ganti",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/it-IT.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Trova e sostituisci",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/ja-JP.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "検索と置換",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/ko-KR.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "찾기 및 바꾸기",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/pl-PL.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Znajdź i zamień",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/pt-BR.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Localizar e Substituir",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/ru-RU.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Найти и заменить",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/sk-SK.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Hľadať a nahradiť",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/vi-VN.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "Tìm kiếm và Thay thế",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/zh-CN.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "查找替换",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/zh-HK.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "尋找替換",
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/locale/zh-TW.ts
3
2
  const locale = { "find-replace": {
4
3
  toolbar: "尋找替換",
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, MobileKeyboardInsetContext, RibbonDataGroup, UniverMobileUIPlugin, connectInjector, getMenuHiddenObservable, useDebounceFn, useDependency, useObservable } from "@univerjs/ui";
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, useContext, useEffect, useImperativeHandle, useRef, useState } from "react";
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.140.0/helpers/esm/typeof.js
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.140.0/helpers/esm/toPrimitive.js
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.140.0/helpers/esm/toPropertyKey.js
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.140.0/helpers/esm/defineProperty.js
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.140.0/helpers/esm/decorateParam.js
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.140.0/helpers/esm/decorate.js
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-rc.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: keyboardInset,
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, MobileKeyboardInsetContext, RibbonDataGroup, UniverMobileUIPlugin, connectInjector, getMenuHiddenObservable, useDebounceFn, useDependency, useObservable } from "@univerjs/ui";
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, useContext, useEffect, useImperativeHandle, useRef, useState } from "react";
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.140.0/helpers/esm/typeof.js
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.140.0/helpers/esm/toPrimitive.js
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.140.0/helpers/esm/toPropertyKey.js
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.140.0/helpers/esm/defineProperty.js
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.140.0/helpers/esm/decorateParam.js
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.140.0/helpers/esm/decorate.js
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-rc.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: keyboardInset,
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-rc.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/icons": "1.38.0",
62
- "@univerjs/core": "1.0.0-rc.0",
63
- "@univerjs/engine-render": "1.0.0-rc.0",
64
- "@univerjs/ui": "1.0.0-rc.0",
65
- "@univerjs/design": "1.0.0-rc.0"
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
- "postcss": "^8.5.26",
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",