@olddevs/ui 4.4.0 → 4.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -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 +64 -12
- 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 +122 -13
- 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,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { searchState } from "./searchPlugin.js";
|
|
3
|
+
export function searchSnapshot(editor, open) {
|
|
4
|
+
const state = searchState(editor.state);
|
|
5
|
+
if (!state)
|
|
6
|
+
return null;
|
|
7
|
+
const { matchCase, wholeWord, regex } = state.options;
|
|
8
|
+
return {
|
|
9
|
+
open,
|
|
10
|
+
query: state.query,
|
|
11
|
+
flags: { matchCase, wholeWord, regex },
|
|
12
|
+
total: state.total,
|
|
13
|
+
current: state.current,
|
|
14
|
+
error: state.error ?? null,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=searchSnapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchSnapshot.js","sourceRoot":"","sources":["../../../../src/editor/features/search/searchSnapshot.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAIb,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAYhD,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAa;IAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;IACtD,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE;QACtC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ToolDescriptor } from "../../core/toolDescriptor.js";
|
|
2
|
+
import type { SearchToolOptions } from "../../core/toolOptions.js";
|
|
2
3
|
/**
|
|
3
4
|
* Поиск и замена на описании Инструмента. Часть для движка —
|
|
4
5
|
* плагин состояния и подсветки с сочетаниями `Mod+F` и `Mod+Alt+F`; панель
|
|
@@ -9,5 +10,7 @@ import type { ToolDescriptor } from "../../core/toolDescriptor.js";
|
|
|
9
10
|
*/
|
|
10
11
|
/** Сочетание кнопки «Поиск»: строка справочника и подсказка кнопки — из одной записи. */
|
|
11
12
|
export declare const SEARCH_KEYS: readonly ["mod", "F"];
|
|
13
|
+
/** Стартовые флажки панели: все выключены. */
|
|
14
|
+
export declare const SEARCH_DEFAULTS: SearchToolOptions;
|
|
12
15
|
export declare const SEARCH_TOOL: ToolDescriptor;
|
|
13
16
|
//# sourceMappingURL=searchTool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchTool.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/search/searchTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"searchTool.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/search/searchTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE;;;;;;;GAOG;AACH,yFAAyF;AACzF,eAAO,MAAM,WAAW,uBAAwB,CAAC;AAEjD,8CAA8C;AAC9C,eAAO,MAAM,eAAe,EAAE,iBAI7B,CAAC;AAiBF,eAAO,MAAM,WAAW,EAAE,cAsCzB,CAAC"}
|
|
@@ -1,9 +1,38 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { SearchExtension } from "./searchPlugin.js";
|
|
3
3
|
export const SEARCH_KEYS = ["mod", "F"];
|
|
4
|
+
export const SEARCH_DEFAULTS = {
|
|
5
|
+
matchCase: false,
|
|
6
|
+
wholeWord: false,
|
|
7
|
+
regex: false,
|
|
8
|
+
};
|
|
9
|
+
const isFlag = (value) => typeof value === "boolean";
|
|
10
|
+
const reveal = (editor, done) => {
|
|
11
|
+
if (done)
|
|
12
|
+
void import("./revealMatch.js").then((module) => module.scheduleRevealMatch(editor));
|
|
13
|
+
return done;
|
|
14
|
+
};
|
|
4
15
|
export const SEARCH_TOOL = {
|
|
5
16
|
name: "search",
|
|
6
|
-
|
|
17
|
+
defaults: SEARCH_DEFAULTS,
|
|
18
|
+
checks: { matchCase: isFlag, wholeWord: isFlag, regex: isFlag },
|
|
19
|
+
commands: ({ editor, bridge }) => ({
|
|
20
|
+
open: (options) => bridge.openSearch(options?.replace === true, options?.query),
|
|
21
|
+
close: bridge.closeSearch,
|
|
22
|
+
setQuery: (query, flags) => !bridge.sourceOpen() &&
|
|
23
|
+
editor.commands.setSearch(query, flags) &&
|
|
24
|
+
(reveal(editor, query !== ""), true),
|
|
25
|
+
next: () => reveal(editor, editor.commands.searchStep(1)),
|
|
26
|
+
previous: () => reveal(editor, editor.commands.searchStep(-1)),
|
|
27
|
+
replace: (text) => editor.commands.replaceMatch(text),
|
|
28
|
+
replaceAll: (text) => editor.commands.replaceAllMatches(text),
|
|
29
|
+
}),
|
|
30
|
+
engine: (context, options) => [
|
|
31
|
+
SearchExtension.configure({
|
|
32
|
+
open: context.openSearch ?? (() => false),
|
|
33
|
+
flags: options,
|
|
34
|
+
}),
|
|
35
|
+
],
|
|
7
36
|
shortcuts: [
|
|
8
37
|
{ id: "search", group: "search", tool: "search", keys: SEARCH_KEYS, label: (m) => m.search },
|
|
9
38
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchTool.js","sourceRoot":"","sources":["../../../../src/editor/features/search/searchTool.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"searchTool.js","sourceRoot":"","sources":["../../../../src/editor/features/search/searchTool.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAMb,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAWpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,GAAG,CAAU,CAAC;AAGjD,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,SAAS,CAAC;AAU9D,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,IAAa,EAAE,EAAE;IAC/C,IAAI,IAAI;QAAE,KAAK,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/F,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAmB;IACzC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,eAAe;IACzB,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAO/D,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAsB,EAAE,CAAC,CAAC;QACrD,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC;QAC/E,KAAK,EAAE,MAAM,CAAC,WAAW;QACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACzB,CAAC,MAAM,CAAC,UAAU,EAAE;YACpB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;YACvC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;QACtC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACzD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;QACrD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC;KAC9D,CAAC;IACF,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QAC5B,eAAe,CAAC,SAAS,CAAC;YACxB,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;YACzC,KAAK,EAAE,OAA4B;SACpC,CAAC;KACH;IACD,SAAS,EAAE;QACT,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;QAC5F;YACE,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC;YACzB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa;SAC9B;KACF;CACF,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { Editor } from "@tiptap/core";
|
|
2
|
+
import { type HTMLAttributes, type MutableRefObject, type RefObject } from "react";
|
|
2
3
|
import type { RichTextEditorHandle } from "../../RichTextEditor.js";
|
|
3
4
|
export interface RichTextTocProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
|
|
4
5
|
/**
|
|
@@ -28,6 +29,13 @@ export interface RichTextTocProps extends Omit<HTMLAttributes<HTMLDivElement>, "
|
|
|
28
29
|
* По умолчанию 240px.
|
|
29
30
|
*/
|
|
30
31
|
listWidth?: number | string;
|
|
32
|
+
/**
|
|
33
|
+
* Уровни заголовков, которые попадают в Оглавление: подмножество 1–4. Заголовка
|
|
34
|
+
* другого уровня нет ни в полосе, ни в списке, а отступ пунктов считается от
|
|
35
|
+
* самого крупного из оставшихся. Читается при каждой сборке списка, поэтому
|
|
36
|
+
* смена набора уровней пересобирает его. По умолчанию все четыре.
|
|
37
|
+
*/
|
|
38
|
+
levels?: readonly (1 | 2 | 3 | 4)[];
|
|
31
39
|
}
|
|
32
40
|
/**
|
|
33
41
|
* Оглавление Документа: полоса штрихов, по одному на заголовок, штрих текущего
|
|
@@ -58,6 +66,26 @@ export interface TocCoreProps extends RichTextTocProps {
|
|
|
58
66
|
* уровня, а не полоса выше текста.
|
|
59
67
|
*/
|
|
60
68
|
alignToFirstHeading?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Текущий раздел сменился (в том числе при первом показе): Редактор кладёт
|
|
71
|
+
* индекс в Состояние Инструмента `toc`. Индекс считается по списку, который
|
|
72
|
+
* видит `TocCore`; пока заголовков меньше двух, он остаётся прежним.
|
|
73
|
+
*/
|
|
74
|
+
onCurrentChange?: (index: number) => void;
|
|
75
|
+
/**
|
|
76
|
+
* Движок Редактора. Нужен команде `jumpTo` (`jumpRef`): индекс команды — это
|
|
77
|
+
* индекс заголовка в снимке Состояния `toc`, а снимок читает Документ движка
|
|
78
|
+
* на каждой транзакции. Список ядра пересобирается из DOM с задержкой
|
|
79
|
+
* (`REBUILD_DELAY`), и сразу после правки индексы двух списков расходились бы.
|
|
80
|
+
* Без движка `jumpTo` считает по списку ядра.
|
|
81
|
+
*/
|
|
82
|
+
editor?: Editor;
|
|
83
|
+
/**
|
|
84
|
+
* Куда ядро кладёт переход к заголовку по индексу снимка Состояния (команда
|
|
85
|
+
* `jumpTo` Инструмента): ведёт себя как клик по пункту. Пока ядро смонтировано,
|
|
86
|
+
* там функция, после — `null`. Нет заголовка с таким индексом — `false`.
|
|
87
|
+
*/
|
|
88
|
+
jumpRef?: MutableRefObject<((index: number) => boolean) | null>;
|
|
61
89
|
}
|
|
62
90
|
export declare const TocCore: import("react").ForwardRefExoticComponent<TocCoreProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
63
91
|
//# sourceMappingURL=RichTextToc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextToc.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/toc/RichTextToc.tsx"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,cAAc,EAEnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"RichTextToc.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/toc/RichTextToc.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAML,KAAK,cAAc,EAEnB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAKpE,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxF;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,SAAS,CAAC,WAAW,GAAG,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC7D;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;CACrC;AA0PD;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,6GAIvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAChC,+DAA+D;IAC/D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;IACjD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;CACjE;AAED,eAAO,MAAM,OAAO,yGAoclB,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { HoverCard, HoverCardContent, HoverCardTrigger, } from "../../../compone
|
|
|
5
5
|
import { useMessages } from "../../../i18n/useMessages.js";
|
|
6
6
|
import { cn } from "../../../lib/cn.js";
|
|
7
7
|
import { watchHandleEditor } from "../../core/handleWatchers.js";
|
|
8
|
+
import { tocDocumentHeadings } from "./documentHeadings.js";
|
|
8
9
|
import { collectHeadings, documentRoot } from "./headings.js";
|
|
9
10
|
import { stickyOffset } from "./stickyOffset.js";
|
|
10
11
|
const STROKE_WIDTH = ["w-3.5", "w-3", "w-2.5", "w-2"];
|
|
@@ -14,6 +15,7 @@ const strokeWidth = (depth) => STROKE_WIDTH[Math.min(depth, STROKE_WIDTH.length
|
|
|
14
15
|
const itemIndent = (depth) => ITEM_INDENT[Math.min(depth, ITEM_INDENT.length - 1)];
|
|
15
16
|
const OPEN_DELAY = 200;
|
|
16
17
|
const CLOSE_DELAY = 300;
|
|
18
|
+
const ALL_LEVELS = [1, 2, 3, 4];
|
|
17
19
|
const REBUILD_DELAY = 150;
|
|
18
20
|
const STRIP_GAP = 6;
|
|
19
21
|
const STRIP_CELL = 3;
|
|
@@ -62,11 +64,18 @@ function jumpTo(heading, offset, focusHeading) {
|
|
|
62
64
|
}
|
|
63
65
|
flash(heading);
|
|
64
66
|
const behavior = prefersReducedMotion() ? "auto" : "smooth";
|
|
67
|
+
const scroller = scrollParent(heading);
|
|
65
68
|
if (offset === null) {
|
|
66
|
-
|
|
69
|
+
if (!scroller) {
|
|
70
|
+
heading.scrollIntoView({ behavior, block: "start" });
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const margin = parseFloat(getComputedStyle(heading).scrollMarginTop) || 0;
|
|
74
|
+
const edge = scroller.getBoundingClientRect().top;
|
|
75
|
+
const top = heading.getBoundingClientRect().top;
|
|
76
|
+
scroller.scrollTo({ top: scroller.scrollTop + top - edge - margin, behavior });
|
|
67
77
|
return;
|
|
68
78
|
}
|
|
69
|
-
const scroller = scrollParent(heading);
|
|
70
79
|
const top = heading.getBoundingClientRect().top;
|
|
71
80
|
if (scroller) {
|
|
72
81
|
const edge = scroller.getBoundingClientRect().top;
|
|
@@ -134,11 +143,12 @@ function fitsBeside(strip, target) {
|
|
|
134
143
|
export const RichTextToc = forwardRef(function RichTextToc(props, ref) {
|
|
135
144
|
return _jsx(TocCore, { ref: ref, ...props });
|
|
136
145
|
});
|
|
137
|
-
export const TocCore = forwardRef(function TocCore({ target, offsetVar = "--topbar-h", listWidth = 240, stickyTop, focusHeading, alignToFirstHeading = false, className, style, ...rest }, ref) {
|
|
138
|
-
const latest = useRef({ stickyTop, focusHeading, offsetVar });
|
|
146
|
+
export const TocCore = forwardRef(function TocCore({ target, offsetVar = "--topbar-h", listWidth = 240, levels, stickyTop, focusHeading, alignToFirstHeading = false, onCurrentChange, editor, jumpRef, className, style, ...rest }, ref) {
|
|
147
|
+
const latest = useRef({ stickyTop, focusHeading, offsetVar, levels, onCurrentChange, editor });
|
|
139
148
|
useEffect(() => {
|
|
140
|
-
latest.current = { stickyTop, focusHeading, offsetVar };
|
|
149
|
+
latest.current = { stickyTop, focusHeading, offsetVar, levels, onCurrentChange, editor };
|
|
141
150
|
});
|
|
151
|
+
const levelsKey = levels ? levels.join(",") : "";
|
|
142
152
|
const offsetNow = useCallback(() => {
|
|
143
153
|
const own = latest.current;
|
|
144
154
|
return own.stickyTop ? own.stickyTop() : stickyOffset(own.offsetVar);
|
|
@@ -148,6 +158,9 @@ export const TocCore = forwardRef(function TocCore({ target, offsetVar = "--topb
|
|
|
148
158
|
const [headings, setHeadings] = useState([]);
|
|
149
159
|
const [gap, setGap] = useState(STRIP_GAP);
|
|
150
160
|
const [current, setCurrent] = useState(0);
|
|
161
|
+
useEffect(() => {
|
|
162
|
+
latest.current.onCurrentChange?.(current);
|
|
163
|
+
}, [current]);
|
|
151
164
|
const [open, setOpen] = useState(false);
|
|
152
165
|
const [fits, setFits] = useState(true);
|
|
153
166
|
const stripRef = useRef(null);
|
|
@@ -165,7 +178,7 @@ export const TocCore = forwardRef(function TocCore({ target, offsetVar = "--topb
|
|
|
165
178
|
return;
|
|
166
179
|
}
|
|
167
180
|
const read = () => {
|
|
168
|
-
const next = collectHeadings(element);
|
|
181
|
+
const next = collectHeadings(element, latest.current.levels);
|
|
169
182
|
setHeadings((prev) => (sameHeadings(prev, next) ? prev : next));
|
|
170
183
|
};
|
|
171
184
|
read();
|
|
@@ -183,7 +196,7 @@ export const TocCore = forwardRef(function TocCore({ target, offsetVar = "--topb
|
|
|
183
196
|
clearTimeout(timer);
|
|
184
197
|
observer.disconnect();
|
|
185
198
|
};
|
|
186
|
-
}, [element]);
|
|
199
|
+
}, [element, levelsKey]);
|
|
187
200
|
useEffect(() => {
|
|
188
201
|
if (headings.length < 2)
|
|
189
202
|
return;
|
|
@@ -211,20 +224,60 @@ export const TocCore = forwardRef(function TocCore({ target, offsetVar = "--topb
|
|
|
211
224
|
lock.settled = true;
|
|
212
225
|
}, PIN_SETTLE);
|
|
213
226
|
};
|
|
214
|
-
const pin = (index) => {
|
|
227
|
+
const pin = (index, heading) => {
|
|
215
228
|
if (pinned.current)
|
|
216
229
|
window.clearTimeout(pinned.current.timer);
|
|
217
|
-
pinned.current = {
|
|
230
|
+
pinned.current = { heading, settled: false, timer: 0 };
|
|
218
231
|
settle(pinned.current);
|
|
219
232
|
setCurrent(index);
|
|
220
233
|
};
|
|
234
|
+
const go = (index) => {
|
|
235
|
+
const heading = headings[index];
|
|
236
|
+
if (!heading?.element.isConnected)
|
|
237
|
+
return false;
|
|
238
|
+
pin(index, heading.element);
|
|
239
|
+
jumpTo(heading.element, offsetNow(), latest.current.focusHeading);
|
|
240
|
+
return true;
|
|
241
|
+
};
|
|
242
|
+
const goToSnapshotIndex = (index) => {
|
|
243
|
+
const { editor: engine, levels: shown } = latest.current;
|
|
244
|
+
if (!engine)
|
|
245
|
+
return go(index);
|
|
246
|
+
if (engine.isDestroyed)
|
|
247
|
+
return false;
|
|
248
|
+
const found = tocDocumentHeadings(engine, { levels: shown ?? ALL_LEVELS })[index];
|
|
249
|
+
const node = found && engine.view.nodeDOM(found.pos);
|
|
250
|
+
if (!(node instanceof HTMLElement) || !node.isConnected || !element)
|
|
251
|
+
return false;
|
|
252
|
+
const fresh = collectHeadings(element, shown);
|
|
253
|
+
setHeadings((prev) => (sameHeadings(prev, fresh) ? prev : fresh));
|
|
254
|
+
const listed = fresh.findIndex((heading) => heading.element === node);
|
|
255
|
+
if (listed >= 0)
|
|
256
|
+
pin(listed, node);
|
|
257
|
+
jumpTo(node, offsetNow(), latest.current.focusHeading);
|
|
258
|
+
return true;
|
|
259
|
+
};
|
|
260
|
+
const goRef = useRef(goToSnapshotIndex);
|
|
261
|
+
useEffect(() => {
|
|
262
|
+
goRef.current = goToSnapshotIndex;
|
|
263
|
+
});
|
|
264
|
+
useEffect(() => {
|
|
265
|
+
if (!jumpRef)
|
|
266
|
+
return;
|
|
267
|
+
jumpRef.current = (index) => goRef.current(index);
|
|
268
|
+
return () => {
|
|
269
|
+
jumpRef.current = null;
|
|
270
|
+
};
|
|
271
|
+
}, [jumpRef]);
|
|
221
272
|
useEffect(() => {
|
|
222
273
|
if (headings.length < 2)
|
|
223
274
|
return;
|
|
224
275
|
let frame = 0;
|
|
225
276
|
const update = () => {
|
|
226
277
|
frame = 0;
|
|
227
|
-
|
|
278
|
+
const lock = pinned.current;
|
|
279
|
+
const held = lock && !lock.settled ? headings.findIndex((h) => h.element === lock.heading) : -1;
|
|
280
|
+
setCurrent(held >= 0 ? held : currentIndex(headings, offsetNow()));
|
|
228
281
|
};
|
|
229
282
|
const schedule = (event) => {
|
|
230
283
|
const scrolled = event?.target;
|
|
@@ -360,8 +413,7 @@ export const TocCore = forwardRef(function TocCore({ target, offsetVar = "--topb
|
|
|
360
413
|
if (stripRef.current?.contains(event.target))
|
|
361
414
|
event.preventDefault();
|
|
362
415
|
}, children: _jsx("nav", { ref: listRef, "aria-label": label, onKeyDown: onListKeyDown, children: _jsx("ul", { children: headings.map((heading, index) => (_jsx("li", { children: _jsxs("button", { type: "button", "data-depth": heading.depth, "aria-current": index === current ? "location" : undefined, className: cn("hover:bg-bg-2 focus-visible:bg-bg-2 flex w-full cursor-pointer items-center gap-2.5 rounded-sm py-0.5 pr-2 pl-1.5 text-left text-[13px] leading-[18px] outline-none", index === current ? "bg-bg-2 text-fg-0" : "text-fg-2 hover:text-fg-0"), onClick: (event) => {
|
|
363
|
-
|
|
364
|
-
jumpTo(heading.element, offsetNow(), latest.current.focusHeading);
|
|
416
|
+
go(index);
|
|
365
417
|
const item = event.currentTarget;
|
|
366
418
|
if (event.detail > 0 && document.activeElement === item)
|
|
367
419
|
item.blur();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextToc.js","sourceRoot":"","sources":["../../../../src/editor/features/toc/RichTextToc.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RichTextToc.js","sourceRoot":"","sources":["../../../../src/editor/features/toc/RichTextToc.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Editor } from "@tiptap/core";
|
|
2
|
+
import type { TocLevel, TocToolOptions } from "../../core/toolOptions.js";
|
|
3
|
+
/** Заголовок Документа с позицией: по ней команда `jumpTo` находит DOM-узел. */
|
|
4
|
+
export interface TocDocumentHeading {
|
|
5
|
+
level: TocLevel;
|
|
6
|
+
text: string;
|
|
7
|
+
/** Позиция узла заголовка в Документе (для `editor.view.nodeDOM`). */
|
|
8
|
+
pos: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Заголовки Оглавления по Документу движка, а не по DOM: ядро Оглавления
|
|
12
|
+
* (`TocCore`) — ленивый чанк, и пока он не пришёл (или нарисован HTML-режим),
|
|
13
|
+
* узлов для обхода нет, а данные экран просит с первого кадра. Это единственный
|
|
14
|
+
* обход, по которому считаются индексы: и снимок Состояния `toc`, и команда
|
|
15
|
+
* `jumpTo` берут заголовок отсюда, поэтому индекс из снимка ведёт к тому же
|
|
16
|
+
* заголовку сразу после правки, не дожидаясь, пока ядро пересоберёт свой список
|
|
17
|
+
* из DOM (`REBUILD_DELAY`).
|
|
18
|
+
*
|
|
19
|
+
* ТЕ ЖЕ ПРАВИЛА, ЧТО У `collectHeadings` (`headings.ts`), иначе индексы разойдутся
|
|
20
|
+
* с пунктами списка: заголовок на верхнем уровне или внутри Обёрток (колонки
|
|
21
|
+
* Раскладки, свои Блоки, цитаты и списки — нет), уровень из `levels`, текст без
|
|
22
|
+
* крайних пробелов не пуст. Текст — тот же, что у `textContent` DOM: мягкий
|
|
23
|
+
* перенос в него не входит, а Текст атома — входит.
|
|
24
|
+
*
|
|
25
|
+
* Обход по верхнему уровню и Обёрткам, а не по всему Документу: стоимость — число
|
|
26
|
+
* Блоков верхнего уровня, она не растёт от вложенности и заметна не будет даже
|
|
27
|
+
* на каждой транзакции.
|
|
28
|
+
*/
|
|
29
|
+
export declare function tocDocumentHeadings(editor: Editor, { levels }: Pick<TocToolOptions, "levels">): TocDocumentHeading[];
|
|
30
|
+
//# sourceMappingURL=documentHeadings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentHeadings.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/toc/documentHeadings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO1E,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GACzC,kBAAkB,EAAE,CAkBtB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { WRAPPER_NODE } from "../../core/nodeNames.js";
|
|
2
|
+
export function tocDocumentHeadings(editor, { levels }) {
|
|
3
|
+
const headings = [];
|
|
4
|
+
const visit = (parent, start) => parent.forEach((node, offset) => {
|
|
5
|
+
const pos = start + offset;
|
|
6
|
+
if (node.type.name === WRAPPER_NODE)
|
|
7
|
+
return visit(node, pos + 1);
|
|
8
|
+
if (node.type.name !== "heading")
|
|
9
|
+
return;
|
|
10
|
+
const level = node.attrs.level;
|
|
11
|
+
const text = node
|
|
12
|
+
.textBetween(0, node.content.size, "", (leaf) => leaf.type.name === "hardBreak" ? "" : leaf.textContent)
|
|
13
|
+
.trim();
|
|
14
|
+
if (text && levels.includes(level))
|
|
15
|
+
headings.push({ level, text, pos });
|
|
16
|
+
});
|
|
17
|
+
visit(editor.state.doc, 0);
|
|
18
|
+
return headings;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=documentHeadings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentHeadings.js","sourceRoot":"","sources":["../../../../src/editor/features/toc/documentHeadings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAmCvD,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,EAAE,MAAM,EAAkC;IAE1C,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAiB,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI;aACd,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CACvD;aACA,IAAI,EAAE,CAAC;QACV,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IACL,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -26,6 +26,10 @@ export interface TocHeading {
|
|
|
26
26
|
* Документ лежит глубже, в узле движка — Панель и строка статуса снаружи него.
|
|
27
27
|
*/
|
|
28
28
|
export declare function documentRoot(target: HTMLElement): HTMLElement;
|
|
29
|
-
/**
|
|
30
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Заголовки Документа в порядке чтения. `only` — какие уровни (1–4) берутся:
|
|
31
|
+
* остальные не попадают в список, и глубина (`depth`) считается от самого
|
|
32
|
+
* крупного из оставшихся. Нет — все.
|
|
33
|
+
*/
|
|
34
|
+
export declare function collectHeadings(target: HTMLElement, only?: readonly number[]): TocHeading[];
|
|
31
35
|
//# sourceMappingURL=headings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headings.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/toc/headings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8BAA8B;AAC9B,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,OAAO,EAAE,WAAW,CAAC;IACrB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAcD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAE7D;AAUD
|
|
1
|
+
{"version":3,"file":"headings.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/toc/headings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8BAA8B;AAC9B,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,OAAO,EAAE,WAAW,CAAC;IACrB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAcD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAE7D;AAUD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,EAAE,CAkB3F"}
|
|
@@ -10,9 +10,11 @@ function isStructural(heading, root) {
|
|
|
10
10
|
}
|
|
11
11
|
return true;
|
|
12
12
|
}
|
|
13
|
-
export function collectHeadings(target) {
|
|
13
|
+
export function collectHeadings(target, only) {
|
|
14
14
|
const root = documentRoot(target);
|
|
15
|
-
const found = [...root.querySelectorAll(HEADING)].filter((heading) => isStructural(heading, root) &&
|
|
15
|
+
const found = [...root.querySelectorAll(HEADING)].filter((heading) => isStructural(heading, root) &&
|
|
16
|
+
heading.textContent?.trim() &&
|
|
17
|
+
(!only || only.includes(Number(heading.tagName[1]))));
|
|
16
18
|
const levels = found.map((heading) => Number(heading.tagName[1]));
|
|
17
19
|
const top = Math.min(...levels);
|
|
18
20
|
return found.map((element, index) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headings.js","sourceRoot":"","sources":["../../../../src/editor/features/toc/headings.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAUjC,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAM5C,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO,MAAM,CAAC,aAAa,CAAc,cAAc,CAAC,IAAI,MAAM,CAAC;AACrE,CAAC;AAGD,SAAS,YAAY,CAAC,OAAgB,EAAE,IAAiB;IACvD,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;
|
|
1
|
+
{"version":3,"file":"headings.js","sourceRoot":"","sources":["../../../../src/editor/features/toc/headings.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAUjC,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAM5C,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO,MAAM,CAAC,aAAa,CAAc,cAAc,CAAC,IAAI,MAAM,CAAC;AACrE,CAAC;AAGD,SAAS,YAAY,CAAC,OAAgB,EAAE,IAAiB;IACvD,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,MAAM,UAAU,eAAe,CAAC,MAAmB,EAAE,IAAwB;IAC3E,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAGlC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAc,OAAO,CAAC,CAAC,CAAC,MAAM,CACnE,CAAC,OAAO,EAAE,EAAE,CACV,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;QAC3B,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE;QAC3B,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvD,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAE;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAE,GAAG,GAAG;KAC5B,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Editor } from "@tiptap/core";
|
|
2
|
+
import type { TocToolOptions } from "../../core/toolOptions.js";
|
|
3
|
+
import type { TocToolState } from "../../core/toolState.js";
|
|
4
|
+
/**
|
|
5
|
+
* Снимок Состояния `toc` для `useRichTextToolState`: заголовки из
|
|
6
|
+
* `tocDocumentHeadings` без позиций (они в контракт не входят) и текущий раздел.
|
|
7
|
+
* `at` — индекс текущего раздела, который сообщило ядро Оглавления.
|
|
8
|
+
*/
|
|
9
|
+
export declare function tocSnapshot(editor: Editor, options: Pick<TocToolOptions, "levels">, at: number | undefined): TocToolState;
|
|
10
|
+
//# sourceMappingURL=tocSnapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tocSnapshot.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/toc/tocSnapshot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5E;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,EACvC,EAAE,EAAE,MAAM,GAAG,SAAS,GACrB,YAAY,CAOd"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { tocDocumentHeadings } from "./documentHeadings.js";
|
|
3
|
+
export function tocSnapshot(editor, options, at) {
|
|
4
|
+
const headings = tocDocumentHeadings(editor, options).map(({ level, text }, index) => ({ level, text, index }));
|
|
5
|
+
const current = headings.length ? Math.min(Math.max(at ?? 0, 0), headings.length - 1) : -1;
|
|
6
|
+
return { headings, current };
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=tocSnapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tocSnapshot.js","sourceRoot":"","sources":["../../../../src/editor/features/toc/tocSnapshot.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAKb,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAO5D,MAAM,UAAU,WAAW,CACzB,MAAc,EACd,OAAuC,EACvC,EAAsB;IAEtB,MAAM,QAAQ,GAAqB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CACzE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CACrD,CAAC;IAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ToolDescriptor } from "../../core/toolDescriptor.js";
|
|
2
|
+
import type { TocToolOptions } from "../../core/toolOptions.js";
|
|
3
|
+
/** Умолчания Опций: переменная `TopBar` (ADR-0016), все четыре уровня, список в 240 пикселей. */
|
|
4
|
+
export declare const TOC_DEFAULTS: TocToolOptions;
|
|
5
|
+
export declare const TOC_TOOL: ToolDescriptor;
|
|
6
|
+
//# sourceMappingURL=tocTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tocTool.d.ts","sourceRoot":"","sources":["../../../../src/editor/features/toc/tocTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAa1E,iGAAiG;AACjG,eAAO,MAAM,YAAY,EAAE,cAI1B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,cAgBtB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const TOC_LEVELS = [1, 2, 3, 4];
|
|
3
|
+
export const TOC_DEFAULTS = {
|
|
4
|
+
offsetVar: "--topbar-h",
|
|
5
|
+
levels: TOC_LEVELS,
|
|
6
|
+
listWidth: 240,
|
|
7
|
+
};
|
|
8
|
+
export const TOC_TOOL = {
|
|
9
|
+
name: "toc",
|
|
10
|
+
defaults: TOC_DEFAULTS,
|
|
11
|
+
checks: {
|
|
12
|
+
offsetVar: (value) => typeof value === "string" && /^--[\w-]+$/.test(value),
|
|
13
|
+
levels: (value) => Array.isArray(value) &&
|
|
14
|
+
value.length > 0 &&
|
|
15
|
+
value.every((level) => TOC_LEVELS.includes(level)),
|
|
16
|
+
listWidth: (value) => (typeof value === "number" && Number.isFinite(value) && value > 0) ||
|
|
17
|
+
(typeof value === "string" && value.trim() !== ""),
|
|
18
|
+
},
|
|
19
|
+
commands: ({ bridge }) => ({ jumpTo: bridge.jumpToc }),
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=tocTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tocTool.js","sourceRoot":"","sources":["../../../../src/editor/features/toc/tocTool.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAeb,MAAM,UAAU,GAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAGrD,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,SAAS,EAAE,YAAY;IACvB,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,GAAG;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAmB;IACtC,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE;QAEN,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3E,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAE,UAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5E,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;YAClE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;KACrD;IAED,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAmB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;CACxE,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
import type { RichTextTools } from "../core/toolOptions.js";
|
|
3
|
+
import type { RichTextEditorHandle } from "../RichTextEditor.js";
|
|
4
|
+
/**
|
|
5
|
+
* Состояние Инструмента по имени: тип из карты `RichTextTools`. Имя, которого в
|
|
6
|
+
* карте нет, — `unknown`: типизация добровольна, и Инструмент без записи в карте
|
|
7
|
+
* не ломает сборку.
|
|
8
|
+
*/
|
|
9
|
+
export type RichTextToolState<Name extends string> = Name extends keyof RichTextTools ? RichTextTools[Name] extends {
|
|
10
|
+
state: infer State;
|
|
11
|
+
} ? State : unknown : unknown;
|
|
12
|
+
/**
|
|
13
|
+
* Состояние встроенного Инструмента для своего экрана: «3 из 12» в Строке
|
|
14
|
+
* статуса из Поиска, внешняя навигация из заголовков Оглавления. Имя —
|
|
15
|
+
* Инструмент из набора `tools`, а тип снимка выводится из карты
|
|
16
|
+
* `RichTextTools`: `search` отдаёт `SearchToolState`, `toc` — `TocToolState`.
|
|
17
|
+
*
|
|
18
|
+
* ПЕРЕРИСОВКА — ТОЛЬКО ПРИ СМЕНЕ СНИМКА. Снимок пересчитывается на каждую
|
|
19
|
+
* транзакцию движка и на сигналы кита, которых в движке нет: открытие и закрытие
|
|
20
|
+
* панели Поиска, смена текущего раздела Оглавления при прокрутке. Экран
|
|
21
|
+
* перерисовывается, когда результат стал другим (простые данные — примитивы,
|
|
22
|
+
* массивы, простые объекты — сравниваются по значению, как у
|
|
23
|
+
* `useRichTextEditorState`; `Date`, `Map`, `Set` и экземпляры классов — по
|
|
24
|
+
* ссылке), поэтому набор текста, не меняющий снимок, его не трогает. Срез из `selector` сравнивается так же: `(state) => state.total`
|
|
25
|
+
* подписывает экран на одно число.
|
|
26
|
+
*
|
|
27
|
+
* `null` — до монтажа и в первом рендере экрана, на сервере, а также когда
|
|
28
|
+
* Инструмента нет в наборе `tools`: пресеты `toc` не включают, его включают
|
|
29
|
+
* именем или записью `tool("toc")`. Селектор при `null` не вызывается. Один и
|
|
30
|
+
* тот же `ref` отдаётся в `RichTextEditor`.
|
|
31
|
+
*
|
|
32
|
+
* Снимок — данные без DOM-узлов и позиций ProseMirror; изменять его не нужно.
|
|
33
|
+
* Хук в стартовый граф `RichTextEditor` не входит: его цена — только у экрана,
|
|
34
|
+
* который его импортировал.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* const ref = useRef<RichTextEditorHandle>(null);
|
|
38
|
+
* const total = useRichTextToolState(ref, "search", (state) => state.total);
|
|
39
|
+
* const headings = useRichTextToolState(ref, "toc", (state) => state.headings);
|
|
40
|
+
*/
|
|
41
|
+
export declare function useRichTextToolState<Name extends string>(ref: RefObject<RichTextEditorHandle | null>, name: Name): RichTextToolState<Name> | null;
|
|
42
|
+
export declare function useRichTextToolState<Name extends string, Slice>(ref: RefObject<RichTextEditorHandle | null>, name: Name, selector: (state: RichTextToolState<Name>) => Slice): Slice | null;
|
|
43
|
+
//# sourceMappingURL=useRichTextToolState.d.ts.map
|