@olddevs/ui 4.4.0 → 4.5.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/CHANGELOG.md +13 -0
- package/dist/editor/RichTextEditor.d.ts +11 -4
- package/dist/editor/RichTextEditor.d.ts.map +1 -1
- package/dist/editor/RichTextEditor.js +90 -60
- package/dist/editor/RichTextEditor.js.map +1 -1
- package/dist/editor/RichTextView.d.ts +2 -1
- package/dist/editor/RichTextView.d.ts.map +1 -1
- package/dist/editor/RichTextView.js.map +1 -1
- package/dist/editor/core/containers.d.ts +2 -6
- package/dist/editor/core/containers.d.ts.map +1 -1
- package/dist/editor/core/containers.js +2 -1
- package/dist/editor/core/containers.js.map +1 -1
- package/dist/editor/core/customTool.d.ts +8 -2
- package/dist/editor/core/customTool.d.ts.map +1 -1
- package/dist/editor/core/customTool.js.map +1 -1
- package/dist/editor/core/customToolEngine.d.ts +9 -1
- package/dist/editor/core/customToolEngine.d.ts.map +1 -1
- package/dist/editor/core/customToolEngine.js +12 -0
- package/dist/editor/core/customToolEngine.js.map +1 -1
- package/dist/editor/core/extensions.d.ts.map +1 -1
- package/dist/editor/core/extensions.js +1 -1
- package/dist/editor/core/extensions.js.map +1 -1
- package/dist/editor/core/handle.d.ts +18 -1
- package/dist/editor/core/handle.d.ts.map +1 -1
- package/dist/editor/core/handle.js +2 -1
- package/dist/editor/core/handle.js.map +1 -1
- package/dist/editor/core/handleWatchers.d.ts +30 -0
- package/dist/editor/core/handleWatchers.d.ts.map +1 -1
- package/dist/editor/core/handleWatchers.js +15 -0
- package/dist/editor/core/handleWatchers.js.map +1 -1
- package/dist/editor/core/nodeNames.d.ts +7 -0
- package/dist/editor/core/nodeNames.d.ts.map +1 -0
- package/dist/editor/core/nodeNames.js +2 -0
- package/dist/editor/core/nodeNames.js.map +1 -0
- package/dist/editor/core/schema.d.ts.map +1 -1
- package/dist/editor/core/schema.js +4 -2
- package/dist/editor/core/schema.js.map +1 -1
- package/dist/editor/core/toolCommands.d.ts +78 -0
- package/dist/editor/core/toolCommands.d.ts.map +1 -0
- package/dist/editor/core/toolCommands.js +2 -0
- package/dist/editor/core/toolCommands.js.map +1 -0
- package/dist/editor/core/toolDefinition.d.ts +139 -0
- package/dist/editor/core/toolDefinition.d.ts.map +1 -0
- package/dist/editor/core/toolDefinition.js +28 -0
- package/dist/editor/core/toolDefinition.js.map +1 -0
- package/dist/editor/core/toolDescriptor.d.ts +71 -2
- package/dist/editor/core/toolDescriptor.d.ts.map +1 -1
- package/dist/editor/core/toolDescriptor.js +6 -2
- package/dist/editor/core/toolDescriptor.js.map +1 -1
- package/dist/editor/core/toolOptions.d.ts +157 -0
- package/dist/editor/core/toolOptions.d.ts.map +1 -0
- package/dist/editor/core/toolOptions.js +21 -0
- package/dist/editor/core/toolOptions.js.map +1 -0
- package/dist/editor/core/toolState.d.ts +46 -0
- package/dist/editor/core/toolState.d.ts.map +1 -0
- package/dist/editor/core/toolState.js +2 -0
- package/dist/editor/core/toolState.js.map +1 -0
- package/dist/editor/core/tools.d.ts +3 -1
- package/dist/editor/core/tools.d.ts.map +1 -1
- package/dist/editor/core/tools.js.map +1 -1
- package/dist/editor/core/viewIsland.d.ts.map +1 -1
- package/dist/editor/core/viewIsland.js +2 -1
- package/dist/editor/core/viewIsland.js.map +1 -1
- package/dist/editor/features/builtins.d.ts +9 -4
- package/dist/editor/features/builtins.d.ts.map +1 -1
- package/dist/editor/features/builtins.js +36 -7
- package/dist/editor/features/builtins.js.map +1 -1
- package/dist/editor/features/search/SearchPanel.d.ts.map +1 -1
- package/dist/editor/features/search/SearchPanel.js +26 -12
- package/dist/editor/features/search/SearchPanel.js.map +1 -1
- package/dist/editor/features/search/revealMatch.d.ts +16 -0
- package/dist/editor/features/search/revealMatch.d.ts.map +1 -1
- package/dist/editor/features/search/revealMatch.js +22 -0
- package/dist/editor/features/search/revealMatch.js.map +1 -1
- package/dist/editor/features/search/searchPlugin.d.ts +8 -3
- package/dist/editor/features/search/searchPlugin.d.ts.map +1 -1
- package/dist/editor/features/search/searchPlugin.js +17 -6
- package/dist/editor/features/search/searchPlugin.js.map +1 -1
- package/dist/editor/features/search/searchSnapshot.d.ts +14 -0
- package/dist/editor/features/search/searchSnapshot.d.ts.map +1 -0
- package/dist/editor/features/search/searchSnapshot.js +17 -0
- package/dist/editor/features/search/searchSnapshot.js.map +1 -0
- package/dist/editor/features/search/searchTool.d.ts +3 -0
- package/dist/editor/features/search/searchTool.d.ts.map +1 -1
- package/dist/editor/features/search/searchTool.js +30 -1
- package/dist/editor/features/search/searchTool.js.map +1 -1
- package/dist/editor/features/toc/RichTextToc.d.ts +29 -1
- package/dist/editor/features/toc/RichTextToc.d.ts.map +1 -1
- package/dist/editor/features/toc/RichTextToc.js +55 -10
- package/dist/editor/features/toc/RichTextToc.js.map +1 -1
- package/dist/editor/features/toc/documentHeadings.d.ts +30 -0
- package/dist/editor/features/toc/documentHeadings.d.ts.map +1 -0
- package/dist/editor/features/toc/documentHeadings.js +20 -0
- package/dist/editor/features/toc/documentHeadings.js.map +1 -0
- package/dist/editor/features/toc/headings.d.ts +6 -2
- package/dist/editor/features/toc/headings.d.ts.map +1 -1
- package/dist/editor/features/toc/headings.js +4 -2
- package/dist/editor/features/toc/headings.js.map +1 -1
- package/dist/editor/features/toc/tocSnapshot.d.ts +10 -0
- package/dist/editor/features/toc/tocSnapshot.d.ts.map +1 -0
- package/dist/editor/features/toc/tocSnapshot.js +8 -0
- package/dist/editor/features/toc/tocSnapshot.js.map +1 -0
- package/dist/editor/features/toc/tocTool.d.ts +6 -0
- package/dist/editor/features/toc/tocTool.d.ts.map +1 -0
- package/dist/editor/features/toc/tocTool.js +21 -0
- package/dist/editor/features/toc/tocTool.js.map +1 -0
- package/dist/editor/hooks/useRichTextToolState.d.ts +43 -0
- package/dist/editor/hooks/useRichTextToolState.d.ts.map +1 -0
- package/dist/editor/hooks/useRichTextToolState.js +77 -0
- package/dist/editor/hooks/useRichTextToolState.js.map +1 -0
- package/dist/editor/index.d.ts +8 -0
- package/dist/editor/index.d.ts.map +1 -1
- package/dist/editor/index.js +3 -0
- package/dist/editor/index.js.map +1 -1
- package/docs/api/editor-extension.en.md +223 -23
- package/docs/api/editor-extension.md +224 -22
- package/docs/api/migration-notes.en.md +36 -1
- package/docs/api/migration-notes.md +35 -0
- package/docs/components/content/rich-text-toc.en.md +13 -11
- package/docs/components/content/rich-text-toc.md +12 -10
- package/docs/components/index.en.md +2 -2
- package/docs/components/index.md +1 -1
- package/docs/components/inputs/rich-text-editor.en.md +227 -11
- package/docs/components/inputs/rich-text-editor.md +228 -10
- package/docs/getting-started.en.md +7 -7
- package/docs/getting-started.md +6 -6
- package/docs/glossary.en.md +52 -48
- package/docs/glossary.md +51 -47
- package/package.json +1 -1
- package/src/editor/RichTextEditor.tsx +94 -39
- package/src/editor/RichTextView.tsx +2 -1
- package/src/editor/core/containers.ts +8 -6
- package/src/editor/core/customTool.ts +8 -2
- package/src/editor/core/customToolEngine.ts +20 -1
- package/src/editor/core/extensions.ts +2 -1
- package/src/editor/core/handle.ts +25 -1
- package/src/editor/core/handleWatchers.ts +45 -0
- package/src/editor/core/nodeNames.ts +7 -0
- package/src/editor/core/schema.ts +5 -2
- package/src/editor/core/toolCommands.ts +85 -0
- package/src/editor/core/toolDefinition.ts +208 -0
- package/src/editor/core/toolDescriptor.ts +94 -3
- package/src/editor/core/toolOptions.ts +211 -0
- package/src/editor/core/toolState.ts +56 -0
- package/src/editor/core/tools.ts +3 -1
- package/src/editor/core/viewIsland.ts +5 -4
- package/src/editor/features/builtins.ts +72 -13
- package/src/editor/features/search/SearchPanel.tsx +38 -14
- package/src/editor/features/search/revealMatch.ts +45 -0
- package/src/editor/features/search/searchPlugin.ts +40 -11
- package/src/editor/features/search/searchSnapshot.ts +29 -0
- package/src/editor/features/search/searchTool.ts +51 -1
- package/src/editor/features/toc/RichTextToc.tsx +108 -10
- package/src/editor/features/toc/documentHeadings.ts +59 -0
- package/src/editor/features/toc/headings.ts +10 -3
- package/src/editor/features/toc/tocSnapshot.ts +24 -0
- package/src/editor/features/toc/tocTool.ts +41 -0
- package/src/editor/hooks/useRichTextToolState.ts +153 -0
- package/src/editor/index.ts +19 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function mergeOptions(base, given) {
|
|
2
|
+
const plain = (value) => value?.constructor === Object;
|
|
3
|
+
const result = { ...base };
|
|
4
|
+
for (const [key, value] of Object.entries(given)) {
|
|
5
|
+
if (value !== undefined) {
|
|
6
|
+
result[key] = plain(value) && plain(result[key]) ? mergeOptions(result[key], value) : value;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
export function tool(entry, options = {}) {
|
|
12
|
+
return typeof entry === "string"
|
|
13
|
+
? { configured: true, name: entry, options }
|
|
14
|
+
: { configured: true, name: entry.name, options, definition: entry };
|
|
15
|
+
}
|
|
16
|
+
export function isConfiguredTool(entry) {
|
|
17
|
+
return (typeof entry === "object" &&
|
|
18
|
+
entry !== null &&
|
|
19
|
+
entry.configured === true);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=toolOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolOptions.js","sourceRoot":"","sources":["../../../src/editor/core/toolOptions.ts"],"names":[],"mappings":"AAgJA,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa;IAEtD,MAAM,KAAK,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC/C,KAA0C,EAAE,WAAW,KAAK,MAAM,CAAC;IACtE,MAAM,MAAM,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9F,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAuCD,MAAM,UAAU,IAAI,CAClB,KAAgC,EAChC,UAAmC,EAAE;IAErC,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC9B,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;QAC5C,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACzE,CAAC;AAGD,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAkC,CAAC,UAAU,KAAK,IAAI,CACxD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { SearchToolOptions, TocLevel } from "./toolOptions.js";
|
|
2
|
+
/** Состояние Инструмента `search` (ADR-0058). */
|
|
3
|
+
export interface SearchToolState {
|
|
4
|
+
/** Панель Поиска открыта. */
|
|
5
|
+
open: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Запрос. Закрытие панели убирает запрос и подсветку; без панели запрос ставит
|
|
8
|
+
* Команда `setQuery`.
|
|
9
|
+
*/
|
|
10
|
+
query: string;
|
|
11
|
+
/**
|
|
12
|
+
* Флажки поиска. Закрытие панели возвращает их к стартовым из Опций
|
|
13
|
+
* Инструмента, с которыми панель и откроется.
|
|
14
|
+
*/
|
|
15
|
+
flags: Readonly<SearchToolOptions>;
|
|
16
|
+
/** Сколько совпадений запроса в Документе. */
|
|
17
|
+
total: number;
|
|
18
|
+
/** Индекс текущего совпадения, от 0; `-1` — совпадений нет. */
|
|
19
|
+
current: number;
|
|
20
|
+
/**
|
|
21
|
+
* Текст ошибки, если запрос — неверное регулярное выражение (сообщение движка
|
|
22
|
+
* JavaScript, не локализованное); иначе `null`. Совпадений при ошибке нет.
|
|
23
|
+
*/
|
|
24
|
+
error: string | null;
|
|
25
|
+
}
|
|
26
|
+
/** Заголовок в Состоянии Инструмента `toc`: пункт списка Оглавления. */
|
|
27
|
+
export interface TocToolHeading {
|
|
28
|
+
/** Уровень по тегу: 1 для `h1` … 4 для `h4`. */
|
|
29
|
+
level: TocLevel;
|
|
30
|
+
/** Текст пункта — текст заголовка без разметки, без крайних пробелов. */
|
|
31
|
+
text: string;
|
|
32
|
+
/** Номер пункта в списке Оглавления, от 0; по нему текущий раздел находит свой заголовок. */
|
|
33
|
+
index: number;
|
|
34
|
+
}
|
|
35
|
+
/** Состояние Инструмента `toc` (ADR-0068). */
|
|
36
|
+
export interface TocToolState {
|
|
37
|
+
/**
|
|
38
|
+
* Заголовки Документа в порядке чтения — те же, что в полосе и списке Оглавления:
|
|
39
|
+
* верхний уровень и Обёртки, только уровни из Опции `levels`, без пустых.
|
|
40
|
+
* Список отдаётся и при одном заголовке, хотя полосы тогда нет.
|
|
41
|
+
*/
|
|
42
|
+
headings: readonly TocToolHeading[];
|
|
43
|
+
/** Индекс текущего раздела в `headings`, от 0; `-1` — заголовков нет. Следует за прокруткой. */
|
|
44
|
+
current: number;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=toolState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolState.d.ts","sourceRoot":"","sources":["../../../src/editor/core/toolState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAUpE,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACnC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,KAAK,EAAE,QAAQ,CAAC;IAChB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,gGAAgG;IAChG,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolState.js","sourceRoot":"","sources":["../../../src/editor/core/toolState.ts"],"names":[],"mappings":""}
|
|
@@ -50,13 +50,15 @@
|
|
|
50
50
|
*
|
|
51
51
|
* `toc` — Оглавление в левом поле рамки (ADR-0068): полоса и список
|
|
52
52
|
* `RichTextToc`, липкие под Панелью или в прокручиваемом поле. Своей Схемы нет.
|
|
53
|
+
* Настраивается записью `tool("toc", { offsetVar, levels, listWidth })`.
|
|
53
54
|
* В пресеты не входит — ни в `full`, ни в `basic`: оно меняет раскладку поля,
|
|
54
55
|
* и обновление кита не должно сдвигать текст там, где его не просили.
|
|
55
56
|
*
|
|
56
57
|
* `search` — поиск и замена по Документу: кнопка «Поиск»
|
|
57
58
|
* фиксированной Панели и `Mod+F` в поле открывают панель в углу поля. Своей
|
|
58
59
|
* Схемы нет, как у `clearFormatting`. Есть и в `basic`: искать по длинному
|
|
59
|
-
* описанию нужно и там, а кнопка у правого края ряд не удлиняет.
|
|
60
|
+
* описанию нужно и там, а кнопка у правого края ряд не удлиняет. Стартовые
|
|
61
|
+
* флажки панели задаёт запись `tool("search", { matchCase, wholeWord, regex })`.
|
|
60
62
|
*/
|
|
61
63
|
export declare const TOOLS: readonly ["history", "heading", "heading1", "bold", "italic", "underline", "strike", "code", "superscript", "subscript", "clearFormatting", "link", "color", "highlight", "align", "bulletList", "orderedList", "taskList", "blockquote", "codeBlock", "horizontalRule", "table", "image", "layout", "wrapper", "emoji", "source", "search", "insertMenu", "toc"];
|
|
62
64
|
/** Имя инструмента Редактора. Список и смысл каждого — на странице компонента. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/editor/core/tools.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/editor/core/tools.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,eAAO,MAAM,KAAK,mWA+BR,CAAC;AAEX,kFAAkF;AAClF,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1C,kCAAkC;AAClC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,oBAAoB,EAAE,SAAS,IAAI,EAAE,CAejE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,SAAS,IAAI,EAAE,CAAC,CAIlF,CAAC;AAEL;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,GACjC,WAAW,CAAC,IAAI,CAAC,CAGnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/editor/core/tools.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/editor/core/tools.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAgEb,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,SAAS;IACT,SAAS;IACT,UAAU;IACV,MAAM;IACN,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,MAAM;IACN,aAAa;IACb,WAAW;IACX,iBAAiB;IACjB,MAAM;IACN,OAAO;IACP,WAAW;IACX,OAAO;IACP,YAAY;IACZ,aAAa;IACb,UAAU;IACV,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,OAAO;IACP,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,KAAK;CACG,CAAC;AAkBX,MAAM,CAAC,MAAM,OAAO,GAAkD;IAEpE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;IAC5C,KAAK,EAAE;QACL,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,QAAQ;KACT;CACF,CAAC;AASF,MAAM,CAAC,MAAM,iBAAiB,GAC5B,MAAM,CAAC,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CACzC,CAAC,CAAC;AAWL,MAAM,UAAU,YAAY,CAC1B,MAA4B,EAC5B,KAAkC;IAElC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,CAAC;IACrC,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewIsland.d.ts","sourceRoot":"","sources":["../../../src/editor/core/viewIsland.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"viewIsland.d.ts","sourceRoot":"","sources":["../../../src/editor/core/viewIsland.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAapE,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACzC,2FAA2F;IAC3F,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAC3D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAO9F"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { customToolOf } from "./toolDefinition.js";
|
|
1
2
|
export function islandsFor(tools, html) {
|
|
2
|
-
return (tools ?? []).flatMap((
|
|
3
|
+
return (tools ?? []).flatMap((entry) => Object.entries(customToolOf(entry)?.blocks ?? {}).flatMap(([block, { island, attributes }]) => island && html.includes(`data-block="${block}"`) ? [{ block, island, attributes }] : []));
|
|
3
4
|
}
|
|
4
5
|
//# sourceMappingURL=viewIsland.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewIsland.js","sourceRoot":"","sources":["../../../src/editor/core/viewIsland.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"viewIsland.js","sourceRoot":"","sources":["../../../src/editor/core/viewIsland.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA0BnD,MAAM,UAAU,UAAU,CAAC,KAAuC,EAAE,IAAY;IAE9E,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACrC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAC5F,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CACxF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -16,10 +16,15 @@ export declare const BUILTIN_TOOLS: Partial<Record<Tool, ToolDescriptor>>;
|
|
|
16
16
|
* Развернуть `tools` (или `preset`) в один список описаний.
|
|
17
17
|
*
|
|
18
18
|
* Имена — те же, что у `resolveTools`: точный `tools` или пресет, неизвестная
|
|
19
|
-
* строка отбрасывается молча.
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* строка отбрасывается молча. Запись `tool()` включает Инструмент так же, как
|
|
20
|
+
* его имя, а если в `tools` есть и имя (из пресета), и запись, побеждает
|
|
21
|
+
* Настроенный Инструмент; две записи с одним именем — ошибка набора
|
|
22
|
+
* (`ToolList.error`). Порядок встроенных — порядок кита (`TOOLS`), а не
|
|
23
|
+
* `tools`: место встроенного на поверхности решает кит, и Настроенный стоит
|
|
24
|
+
* там же, где голое имя. Свои Инструменты (описания в `tools`) идут следом, в
|
|
25
|
+
* порядке `tools` (ADR-0058, п. 5.3); набор имён (`Set`) — только имена кита.
|
|
26
|
+
*
|
|
27
|
+
* Опции Инструментов читаются здесь, один раз, вместе с набором.
|
|
23
28
|
*/
|
|
24
29
|
export declare function expandTools(preset: RichTextEditorPreset, tools: readonly ToolEntry[] | undefined): ToolList;
|
|
25
30
|
//# sourceMappingURL=builtins.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/editor/features/builtins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/editor/features/builtins.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAKzF,OAAO,EAAuB,KAAK,oBAAoB,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAyB7F;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAkE/D,CAAC;AAgCF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,GACtC,QAAQ,CAkCV"}
|
|
@@ -6,10 +6,13 @@ import { turnIntoTypes } from "../core/blockTypes.js";
|
|
|
6
6
|
import { CODE_BLOCK_TOOL } from "./code/codeBlockTool.js";
|
|
7
7
|
import { EMOJI_TOOL } from "./emoji/emojiTool.js";
|
|
8
8
|
import { LINK_TOOL } from "./link/linkTool.js";
|
|
9
|
-
import {
|
|
9
|
+
import { devError } from "../../lib/dev-warn.js";
|
|
10
|
+
import { describeCustomTool, describeDefinition } from "../core/customToolEngine.js";
|
|
10
11
|
import { toolList } from "../core/toolDescriptor.js";
|
|
12
|
+
import { isConfiguredTool, mergeOptions } from "../core/toolOptions.js";
|
|
11
13
|
import { SEARCH_TOOL } from "./search/searchTool.js";
|
|
12
14
|
import { TABLE_TOOL } from "./table/tableTool.js";
|
|
15
|
+
import { TOC_TOOL } from "./toc/tocTool.js";
|
|
13
16
|
import { resolveTools, TOOLS } from "../core/tools.js";
|
|
14
17
|
import { unwrapWrapperAt, WRAPPER_NODE } from "./wrapper/wrapper.js";
|
|
15
18
|
const BLOCKQUOTE_SHORTCUT = {
|
|
@@ -33,6 +36,7 @@ const BLOCKQUOTE_ITEMS = [
|
|
|
33
36
|
];
|
|
34
37
|
export const BUILTIN_TOOLS = {
|
|
35
38
|
search: SEARCH_TOOL,
|
|
39
|
+
toc: TOC_TOOL,
|
|
36
40
|
wrapper: {
|
|
37
41
|
name: "wrapper",
|
|
38
42
|
legacy: true,
|
|
@@ -77,12 +81,37 @@ export const BUILTIN_TOOLS = {
|
|
|
77
81
|
codeBlock: CODE_BLOCK_TOOL,
|
|
78
82
|
table: TABLE_TOOL,
|
|
79
83
|
};
|
|
84
|
+
function resolveOptions(descriptor, configured) {
|
|
85
|
+
const { defaults, checks } = descriptor;
|
|
86
|
+
const given = Object.entries(configured?.options ?? {}).filter(([, value]) => value !== undefined);
|
|
87
|
+
const valid = given.filter(([key, value]) => checks?.[key]?.(value));
|
|
88
|
+
if (valid.length < given.length) {
|
|
89
|
+
devError(`RichTextEditor: tool "${descriptor.name}": ignored invalid options: ` +
|
|
90
|
+
given
|
|
91
|
+
.filter((entry) => !valid.includes(entry))
|
|
92
|
+
.map(([key]) => key)
|
|
93
|
+
.join(", "));
|
|
94
|
+
}
|
|
95
|
+
return defaults
|
|
96
|
+
? { ...descriptor, options: mergeOptions(defaults, Object.fromEntries(valid)) }
|
|
97
|
+
: descriptor;
|
|
98
|
+
}
|
|
80
99
|
export function expandTools(preset, tools) {
|
|
81
|
-
const
|
|
82
|
-
const
|
|
83
|
-
const
|
|
84
|
-
.filter((
|
|
85
|
-
.map(
|
|
86
|
-
|
|
100
|
+
const configured = (tools ?? []).filter((entry) => isConfiguredTool(entry) && !entry.definition);
|
|
101
|
+
const twice = configured.find((entry, index) => configured.some((e, i) => i < index && e.name === entry.name));
|
|
102
|
+
const names = resolveTools(preset, tools && [
|
|
103
|
+
...tools.filter((entry) => typeof entry === "string"),
|
|
104
|
+
...configured.map((entry) => entry.name),
|
|
105
|
+
]);
|
|
106
|
+
const builtin = TOOLS.filter((name) => names.has(name)).map((name) => resolveOptions(BUILTIN_TOOLS[name] ?? { name, legacy: true }, configured.find((entry) => entry.name === name)));
|
|
107
|
+
const custom = (tools ?? []).flatMap((entry) => {
|
|
108
|
+
if (typeof entry !== "object" || entry === null)
|
|
109
|
+
return [];
|
|
110
|
+
if (isConfiguredTool(entry)) {
|
|
111
|
+
return entry.definition ? describeDefinition(entry.definition, entry.options) : [];
|
|
112
|
+
}
|
|
113
|
+
return "defined" in entry ? describeDefinition(entry) : describeCustomTool(entry);
|
|
114
|
+
});
|
|
115
|
+
return toolList(builtin.map((descriptor) => descriptor.name), [...builtin, ...custom], twice && `tool "${twice.name}": two tool() entries share this name`);
|
|
87
116
|
}
|
|
88
117
|
//# sourceMappingURL=builtins.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/editor/features/builtins.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,UAAU,MAAM,8BAA8B,CAAC;AACtD,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/editor/features/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchPanel.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/search/SearchPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchPanel.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/search/SearchPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAkB3C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,gBAAgB,+BAkPlF"}
|
|
@@ -10,14 +10,15 @@ import { ChevronDownIcon, ChevronUpIcon, CloseIcon } from "../../../icons.js";
|
|
|
10
10
|
import { useMessages } from "../../../i18n/useMessages.js";
|
|
11
11
|
import { cn } from "../../../lib/cn.js";
|
|
12
12
|
import { GLASS_PANEL_CLASS } from "../../styles/glass.js";
|
|
13
|
-
import {
|
|
13
|
+
import { cancelRevealMatch, registerSearchOverlays, scheduleRevealMatch } from "./revealMatch.js";
|
|
14
14
|
import { searchState } from "./searchPlugin.js";
|
|
15
15
|
const NO_OPTIONS = { matchCase: false, wholeWord: false, regex: false };
|
|
16
|
+
const FLAGS = ["matchCase", "wholeWord", "regex"];
|
|
16
17
|
export function SearchPanel({ editor, focus, onClose, className }) {
|
|
17
18
|
const messages = useMessages().editor;
|
|
18
|
-
const [query, setQuery] = useState(focus.query);
|
|
19
|
+
const [query, setQuery] = useState(() => focus.query || searchState(editor.state)?.query || "");
|
|
19
20
|
const [replacement, setReplacement] = useState("");
|
|
20
|
-
const [options, setOptions] = useState(NO_OPTIONS);
|
|
21
|
+
const [options, setOptions] = useState(() => searchState(editor.state)?.options ?? NO_OPTIONS);
|
|
21
22
|
const searchRef = useRef(null);
|
|
22
23
|
const replaceRef = useRef(null);
|
|
23
24
|
const panelRef = useRef(null);
|
|
@@ -30,6 +31,8 @@ export function SearchPanel({ editor, focus, onClose, className }) {
|
|
|
30
31
|
current: state?.current ?? -1,
|
|
31
32
|
total: state?.total ?? 0,
|
|
32
33
|
error: state?.error,
|
|
34
|
+
engineQuery: state?.query ?? "",
|
|
35
|
+
engineOptions: state?.options ?? NO_OPTIONS,
|
|
33
36
|
editable: current.isEditable,
|
|
34
37
|
};
|
|
35
38
|
},
|
|
@@ -49,19 +52,30 @@ export function SearchPanel({ editor, focus, onClose, className }) {
|
|
|
49
52
|
field?.focus();
|
|
50
53
|
field?.select();
|
|
51
54
|
}, [focus.token, focus.query, focus.replace, query]);
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
const reveal = () => scheduleRevealMatch(editor);
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
const unregister = registerSearchOverlays(editor, () => [
|
|
58
|
+
panelRef.current,
|
|
59
|
+
panelRef.current?.parentElement,
|
|
60
|
+
]);
|
|
61
|
+
return () => {
|
|
62
|
+
unregister();
|
|
63
|
+
cancelRevealMatch(editor);
|
|
64
|
+
};
|
|
65
|
+
}, [editor]);
|
|
61
66
|
useEffect(() => {
|
|
62
67
|
editor.commands.setSearch(query, options);
|
|
63
68
|
reveal();
|
|
64
69
|
}, [editor, query, options]);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
const live = searchState(editor.state);
|
|
72
|
+
if (!live)
|
|
73
|
+
return;
|
|
74
|
+
if (live.query !== query)
|
|
75
|
+
setQuery(live.query);
|
|
76
|
+
if (FLAGS.some((flag) => live.options[flag] !== options[flag]))
|
|
77
|
+
setOptions(live.options);
|
|
78
|
+
}, [search.engineQuery, search.engineOptions]);
|
|
65
79
|
const step = (direction) => {
|
|
66
80
|
editor.commands.searchStep(direction);
|
|
67
81
|
reveal();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchPanel.js","sourceRoot":"","sources":["../../../../src/editor/features/search/SearchPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAsB,MAAM,OAAO,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SearchPanel.js","sourceRoot":"","sources":["../../../../src/editor/features/search/SearchPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Editor } from "@tiptap/core";
|
|
1
2
|
/**
|
|
2
3
|
* Показать текущее совпадение поиска.
|
|
3
4
|
*
|
|
@@ -22,4 +23,19 @@
|
|
|
22
23
|
* @param overlays элементы поверх Документа: панель поиска и её липкий родитель
|
|
23
24
|
*/
|
|
24
25
|
export declare function revealCurrentMatch(documentRoot: HTMLElement, overlays: readonly (Element | null | undefined)[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Панель поиска сообщает, что лежит поверх Документа, пока открыта. Команды
|
|
28
|
+
* Инструмента (`next`, `previous`, `setQuery`) живут вне панели, но должны
|
|
29
|
+
* обходить её так же. Возвращает снятие регистрации.
|
|
30
|
+
*/
|
|
31
|
+
export declare function registerSearchOverlays(editor: Editor, overlays: () => readonly (Element | null | undefined)[]): () => void;
|
|
32
|
+
/**
|
|
33
|
+
* Показать текущее совпадение кадром позже, когда панель уже разложена. Вызовы
|
|
34
|
+
* одного поля в пределах кадра сливаются в одну прокрутку: панель и команда
|
|
35
|
+
* Инструмента, сработавшие на один переход, не прокручивают дважды. Фокус не
|
|
36
|
+
* трогает.
|
|
37
|
+
*/
|
|
38
|
+
export declare function scheduleRevealMatch(editor: Editor): void;
|
|
39
|
+
/** Отменить отложенную прокрутку (панель закрылась или поле разобрано). */
|
|
40
|
+
export declare function cancelRevealMatch(editor: Editor): void;
|
|
25
41
|
//# sourceMappingURL=revealMatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revealMatch.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/search/revealMatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"revealMatch.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/search/revealMatch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAO3C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,WAAW,EACzB,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAChD,IAAI,CAmCN;AAMD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GACtD,MAAM,IAAI,CAKZ;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAUxD;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGtD"}
|
|
@@ -38,4 +38,26 @@ export function revealCurrentMatch(documentRoot, overlays) {
|
|
|
38
38
|
delta -= scroller.scrollTop - before;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
const overlayProviders = new WeakMap();
|
|
42
|
+
const frames = new WeakMap();
|
|
43
|
+
export function registerSearchOverlays(editor, overlays) {
|
|
44
|
+
overlayProviders.set(editor, overlays);
|
|
45
|
+
return () => {
|
|
46
|
+
if (overlayProviders.get(editor) === overlays)
|
|
47
|
+
overlayProviders.delete(editor);
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function scheduleRevealMatch(editor) {
|
|
51
|
+
cancelAnimationFrame(frames.get(editor) ?? 0);
|
|
52
|
+
frames.set(editor, requestAnimationFrame(() => {
|
|
53
|
+
frames.delete(editor);
|
|
54
|
+
if (editor.isDestroyed)
|
|
55
|
+
return;
|
|
56
|
+
revealCurrentMatch(editor.view.dom, overlayProviders.get(editor)?.() ?? []);
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
export function cancelRevealMatch(editor) {
|
|
60
|
+
cancelAnimationFrame(frames.get(editor) ?? 0);
|
|
61
|
+
frames.delete(editor);
|
|
62
|
+
}
|
|
41
63
|
//# sourceMappingURL=revealMatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revealMatch.js","sourceRoot":"","sources":["../../../../src/editor/features/search/revealMatch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"revealMatch.js","sourceRoot":"","sources":["../../../../src/editor/features/search/revealMatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,11 @@ export declare function searchState(state: EditorState): {
|
|
|
13
13
|
declare module "@tiptap/core" {
|
|
14
14
|
interface Commands<ReturnType> {
|
|
15
15
|
search: {
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Новый запрос или флажки: совпадения пересчитываются, текущее — первое после
|
|
18
|
+
* каретки. Не названные флажки остаются как были.
|
|
19
|
+
*/
|
|
20
|
+
setSearch: (query: string, options?: Partial<SearchOptions>) => ReturnType;
|
|
18
21
|
/**
|
|
19
22
|
* Следующее (`1`) или предыдущее (`-1`) совпадение по кругу; выделяет его.
|
|
20
23
|
* Прокрутка ProseMirror срабатывает, только когда фокус в Документе; из
|
|
@@ -25,12 +28,14 @@ declare module "@tiptap/core" {
|
|
|
25
28
|
replaceMatch: (replacement: string) => ReturnType;
|
|
26
29
|
/** Заменить все совпадения — одна транзакция, одна отмена. */
|
|
27
30
|
replaceAllMatches: (replacement: string) => ReturnType;
|
|
28
|
-
/** Убрать запрос и
|
|
31
|
+
/** Убрать запрос и подсветку; флажки вернутся к Опциям Инструмента. */
|
|
29
32
|
clearSearch: () => ReturnType;
|
|
30
33
|
};
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
36
|
export interface SearchExtensionOptions {
|
|
37
|
+
/** Флажки, с которых стартует поиск и к которым он возвращается: Опции Инструмента. */
|
|
38
|
+
flags: SearchOptions;
|
|
34
39
|
/**
|
|
35
40
|
* Открыть панель поиска (`replace` — с фокусом в поле замены). Панель держит
|
|
36
41
|
* `RichTextEditor`; `false` — панели нет, и `Mod+F` уходит браузеру.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchPlugin.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/search/searchPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2BrF,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAC1C;IACE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;CACjC,GACD,SAAS,CAKZ;
|
|
1
|
+
{"version":3,"file":"searchPlugin.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/search/searchPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2BrF,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAC1C;IACE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;CACjC,GACD,SAAS,CAKZ;AA4HD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,MAAM,EAAE;YACN;;;eAGG;YACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,UAAU,CAAC;YAC3E;;;;eAIG;YACH,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,UAAU,CAAC;YACzC,8DAA8D;YAC9D,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,UAAU,CAAC;YAClD,8DAA8D;YAC9D,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,UAAU,CAAC;YACvD,uEAAuE;YACvE,WAAW,EAAE,MAAM,UAAU,CAAC;SAC/B,CAAC;KACH;CACF;AAED,MAAM,WAAW,sBAAsB;IACrC,uFAAuF;IACvF,KAAK,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;CACrC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,wCAqE1B,CAAC"}
|
|
@@ -37,17 +37,26 @@ function build(state, query, options, current) {
|
|
|
37
37
|
decorations: decorate(state, matches, index),
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function withNamedFlags(current, named = {}) {
|
|
41
|
+
const next = { ...current };
|
|
42
|
+
for (const key of Object.keys(named)) {
|
|
43
|
+
const value = named[key];
|
|
44
|
+
if (value !== undefined)
|
|
45
|
+
next[key] = value;
|
|
46
|
+
}
|
|
47
|
+
return next;
|
|
48
|
+
}
|
|
49
|
+
function searchPlugin(flags) {
|
|
41
50
|
return new Plugin({
|
|
42
51
|
key: SEARCH_KEY,
|
|
43
52
|
state: {
|
|
44
|
-
init: (_, state) => build(state, "",
|
|
53
|
+
init: (_, state) => build(state, "", flags, () => -1),
|
|
45
54
|
apply(tr, previous, _old, state) {
|
|
46
55
|
const meta = tr.getMeta(SEARCH_KEY);
|
|
47
56
|
if (meta?.type === "clear")
|
|
48
|
-
return build(state, "",
|
|
57
|
+
return build(state, "", flags, () => -1);
|
|
49
58
|
if (meta?.type === "set") {
|
|
50
|
-
return build(state, meta.query, meta.options, (matches) => indexFrom(matches, state.selection.from));
|
|
59
|
+
return build(state, meta.query, withNamedFlags(previous.options, meta.options), (matches) => indexFrom(matches, state.selection.from));
|
|
51
60
|
}
|
|
52
61
|
if (meta?.type === "select") {
|
|
53
62
|
return {
|
|
@@ -90,8 +99,10 @@ function replaceRange(tr, { from, to }, text) {
|
|
|
90
99
|
}
|
|
91
100
|
export const SearchExtension = Extension.create({
|
|
92
101
|
name: "search",
|
|
93
|
-
addOptions: () => ({ open: () => false }),
|
|
94
|
-
addProseMirrorPlugins
|
|
102
|
+
addOptions: () => ({ open: () => false, flags: EMPTY_OPTIONS }),
|
|
103
|
+
addProseMirrorPlugins() {
|
|
104
|
+
return [searchPlugin(this.options.flags)];
|
|
105
|
+
},
|
|
95
106
|
addKeyboardShortcuts() {
|
|
96
107
|
return {
|
|
97
108
|
"Mod-f": () => this.options.open(false),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchPlugin.js","sourceRoot":"","sources":["../../../../src/editor/features/search/searchPlugin.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAwC,MAAM,kBAAkB,CAAC;AAuBrF,MAAM,UAAU,GAAG,IAAI,SAAS,CAAoB,QAAQ,CAAC,CAAC;AAE9D,MAAM,aAAa,GAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAG1F,MAAM,UAAU,WAAW,CAAC,KAAkB;IAU5C,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC3D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,QAAQ,CAAC,KAAkB,EAAE,OAAsB,EAAE,OAAe;IAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC,KAAK,CAAC;IACrD,OAAO,aAAa,CAAC,MAAM,CACzB,KAAK,CAAC,GAAG,EACT,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAClC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE;QAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,kBAAkB;KACtF,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAGD,SAAS,SAAS,CAAC,OAAsB,EAAE,GAAW;IACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IAC9D,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,CAAC;AAED,SAAS,KAAK,CACZ,KAAkB,EAClB,KAAa,EACb,OAAsB,EACtB,OAA2C;IAE3C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO,EAAE,KAAK;QACd,KAAK;QACL,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;KAC7C,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"searchPlugin.js","sourceRoot":"","sources":["../../../../src/editor/features/search/searchPlugin.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAwC,MAAM,kBAAkB,CAAC;AAuBrF,MAAM,UAAU,GAAG,IAAI,SAAS,CAAoB,QAAQ,CAAC,CAAC;AAE9D,MAAM,aAAa,GAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAG1F,MAAM,UAAU,WAAW,CAAC,KAAkB;IAU5C,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC3D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,QAAQ,CAAC,KAAkB,EAAE,OAAsB,EAAE,OAAe;IAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC,KAAK,CAAC;IACrD,OAAO,aAAa,CAAC,MAAM,CACzB,KAAK,CAAC,GAAG,EACT,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAClC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE;QAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,kBAAkB;KACtF,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAGD,SAAS,SAAS,CAAC,OAAsB,EAAE,GAAW;IACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IAC9D,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,CAAC;AAED,SAAS,KAAK,CACZ,KAAkB,EAClB,KAAa,EACb,OAAsB,EACtB,OAA2C;IAE3C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO,EAAE,KAAK;QACd,KAAK;QACL,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;KAC7C,CAAC;AACJ,CAAC;AAQD,SAAS,cAAc,CAAC,OAAsB,EAAE,QAAgC,EAAE;IAChF,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAA4B,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAMD,SAAS,YAAY,CAAC,KAAoB;IACxC,OAAO,IAAI,MAAM,CAAoB;QACnC,GAAG,EAAE,UAAU;QACf,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACrD,KAAK,CAAC,EAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;gBAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAA2B,CAAC;gBAC9D,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO;oBAAE,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,IAAI,IAAI,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;oBACzB,OAAO,KAAK,CACV,KAAK,EACL,IAAI,CAAC,KAAK,EACV,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAC9C,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CACtD,CAAC;gBACJ,CAAC;gBACD,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5B,OAAO;wBACL,GAAG,QAAQ;wBACX,OAAO,EAAE,IAAI,CAAC,KAAK;wBACnB,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;qBAC3D,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,KAAK,EAAE;oBAAE,OAAO,QAAQ,CAAC;gBAM7D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC5E,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9F,CAAC;SACF;QACD,KAAK,EAAE;YACL,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW;SAChE;KACF,CAAC,CAAC;AACL,CAAC;AAQD,SAAS,cAAc,CAAC,KAAkB,EAAE,WAAmB,EAAE,OAAsB;IACrF,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC;IACvC,OAAO,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QACnE,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,GAAG,CAAC;QAC5B,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,SAAS,YAAY,CAAC,EAAe,EAAE,EAAE,IAAI,EAAE,EAAE,EAAe,EAAE,IAAY;IAC5E,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IAC/C,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AA2CD,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAyB;IACtE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC/D,qBAAqB;QACnB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,oBAAoB;QAClB,OAAO;YACL,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3C,CAAC;IACJ,CAAC;IACD,WAAW;QACT,OAAO;YACL,SAAS,EACP,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CACnB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACnB,IAAI,QAAQ;oBACV,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAuB,CAAC,CAAC;gBAC/E,OAAO,IAAI,CAAC;YACd,CAAC;YACH,UAAU,EACR,CAAC,IAAI,EAAE,EAAE,CACT,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACzD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;gBAClF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC;gBACrC,IAAI,QAAQ,EAAE,CAAC;oBACb,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAuB,CAAC,CAAC;oBACvE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACvF,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACH,YAAY,EACV,CAAC,WAAW,EAAE,EAAE,CAChB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU;oBAAE,OAAO,KAAK,CAAC;gBAC1D,IAAI,QAAQ,EAAE,CAAC;oBACb,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBAE5E,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1E,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACH,iBAAiB,EACf,CAAC,WAAW,EAAE,EAAE,CAChB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;oBAAE,OAAO,KAAK,CAAC;gBAC/E,IAAI,QAAQ,EAAE,CAAC;oBAEb,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;wBAClD,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC9E,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACH,WAAW,EACT,GAAG,EAAE,CACL,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACnB,IAAI,QAAQ;oBAAE,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAuB,CAAC,CAAC;gBAC7E,OAAO,IAAI,CAAC;YACd,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Editor } from "@tiptap/core";
|
|
2
|
+
import type { SearchToolState } from "../../core/toolState.js";
|
|
3
|
+
/**
|
|
4
|
+
* Снимок Состояния `search` для `useRichTextToolState`: открытые поля
|
|
5
|
+
* `searchState` плагина плюс открытость панели, без позиций совпадений. Лежит
|
|
6
|
+
* отдельно от `searchPlugin.ts`: вычисление нужно только хуку и не должно
|
|
7
|
+
* попадать в статический граф Редактора.
|
|
8
|
+
*
|
|
9
|
+
* Флажки — из плагина и при закрытой панели: их держит движок, а не панель.
|
|
10
|
+
* Закрытие возвращает их к стартовым из Опций, а `setQuery` без панели ставит
|
|
11
|
+
* свои. `null` — плагина нет (Инструмент `search` не вошёл в движок).
|
|
12
|
+
*/
|
|
13
|
+
export declare function searchSnapshot(editor: Editor, open: boolean): SearchToolState | null;
|
|
14
|
+
//# sourceMappingURL=searchSnapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchSnapshot.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/search/searchSnapshot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAYpF"}
|