@lofcz/platejs-toc 52.0.11 → 52.3.6

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.
@@ -0,0 +1,27 @@
1
+ import * as platejs1 from "platejs";
2
+ import { InsertNodesOptions, Path, PluginConfig, SlateEditor, TNode } from "platejs";
3
+
4
+ //#region src/lib/types.d.ts
5
+ type Heading = {
6
+ id: string;
7
+ depth: number;
8
+ path: Path;
9
+ title: string;
10
+ type: string;
11
+ };
12
+ //#endregion
13
+ //#region src/lib/BaseTocPlugin.d.ts
14
+ type TocConfig = PluginConfig<'toc', {
15
+ isScroll: boolean;
16
+ topOffset: number;
17
+ queryHeading?: (editor: SlateEditor) => Heading[];
18
+ }>;
19
+ declare const BaseTocPlugin: platejs1.SlatePlugin<TocConfig>;
20
+ //#endregion
21
+ //#region src/lib/transforms/insertToc.d.ts
22
+ declare const insertToc: (editor: SlateEditor, options?: InsertNodesOptions) => void;
23
+ //#endregion
24
+ //#region src/lib/utils/isHeading.d.ts
25
+ declare const isHeading: (node: TNode) => unknown;
26
+ //#endregion
27
+ export { Heading as a, TocConfig as i, insertToc as n, BaseTocPlugin as r, isHeading as t };
package/dist/index.d.ts CHANGED
@@ -1,19 +1,2 @@
1
- import { t as Heading } from "./types-CqaZEV-V";
2
- import { InsertNodesOptions, PluginConfig, SlateEditor, TNode } from "platejs";
3
-
4
- //#region src/lib/BaseTocPlugin.d.ts
5
- type TocConfig = PluginConfig<'toc', {
6
- isScroll: boolean;
7
- topOffset: number;
8
- queryHeading?: (editor: SlateEditor) => Heading[];
9
- }>;
10
- declare const BaseTocPlugin: any;
11
- //#endregion
12
- //#region src/lib/transforms/insertToc.d.ts
13
- declare const insertToc: (editor: SlateEditor, options?: InsertNodesOptions) => void;
14
- //#endregion
15
- //#region src/lib/utils/isHeading.d.ts
16
- declare const isHeading: (node: TNode) => any;
17
- //#endregion
18
- export { BaseTocPlugin, Heading, TocConfig, insertToc, isHeading };
19
- //# sourceMappingURL=index.d.ts.map
1
+ import { a as Heading, i as TocConfig, n as insertToc, r as BaseTocPlugin, t as isHeading } from "./index-Bo0QYvtJ";
2
+ export { BaseTocPlugin, Heading, TocConfig, insertToc, isHeading };
package/dist/index.js CHANGED
@@ -10,5 +10,4 @@ const insertToc = (editor, options) => {
10
10
  };
11
11
 
12
12
  //#endregion
13
- export { BaseTocPlugin, insertToc, isHeading };
14
- //# sourceMappingURL=index.js.map
13
+ export { BaseTocPlugin, insertToc, isHeading };
@@ -18,5 +18,4 @@ const BaseTocPlugin = createTSlatePlugin({
18
18
  const isHeading = (node) => node.type && KEYS.heading.includes(node.type);
19
19
 
20
20
  //#endregion
21
- export { BaseTocPlugin as n, isHeading as t };
22
- //# sourceMappingURL=isHeading-CiQqjntU.js.map
21
+ export { BaseTocPlugin as n, isHeading as t };
@@ -1,8 +1,17 @@
1
- import { t as Heading } from "../types-CqaZEV-V";
1
+ import { a as Heading } from "../index-Bo0QYvtJ";
2
+ import * as platejs0 from "platejs";
3
+ import * as platejs_react0 from "platejs/react";
2
4
  import React$1 from "react";
5
+ import * as is_hotkey0 from "is-hotkey";
6
+ import * as mutative0 from "mutative";
7
+ import * as zustand_x0 from "zustand-x";
3
8
 
4
9
  //#region src/react/TocPlugin.d.ts
5
- declare const TocPlugin: any;
10
+ declare const TocPlugin: platejs_react0.PlatePlugin<platejs0.PluginConfig<"toc", {
11
+ isScroll: boolean;
12
+ topOffset: number;
13
+ queryHeading?: (editor: platejs0.SlateEditor) => Heading[];
14
+ }, {}, {}, {}>>;
6
15
  //#endregion
7
16
  //#region src/react/types.d.ts
8
17
  type TocSideBarProps = {
@@ -68,8 +77,8 @@ declare const useTocController: ({
68
77
  //#endregion
69
78
  //#region src/react/hooks/useTocElement.d.ts
70
79
  declare const useTocElementState: () => {
71
- editor: any;
72
- headingList: any;
80
+ editor: platejs_react0.PlateEditor;
81
+ headingList: Heading[];
73
82
  onContentScroll: (el: HTMLElement, id: string, behavior?: ScrollBehavior) => void;
74
83
  };
75
84
  declare const useTocElement: ({
@@ -101,7 +110,114 @@ declare const useTocSideBarState: ({
101
110
  open,
102
111
  rootMargin,
103
112
  topOffset
104
- }: TocSideBarProps) => any;
113
+ }: TocSideBarProps) => {
114
+ activeContentId: string;
115
+ editor: {
116
+ id: string;
117
+ children: platejs0.Value;
118
+ history: platejs0.History;
119
+ marks: platejs0.EditorMarks | null;
120
+ meta: platejs0.UnknownObject & {
121
+ isNormalizing?: boolean;
122
+ };
123
+ operations: platejs0.Operation<platejs0.TElement | platejs0.TText>[];
124
+ selection: platejs0.EditorSelection;
125
+ } & platejs0.EditorMethods<platejs0.Value> & platejs0.UnknownObject & {
126
+ dom: {
127
+ composing: boolean;
128
+ currentKeyboardEvent: is_hotkey0.KeyboardEventLike | null;
129
+ focused: boolean;
130
+ prevSelection: platejs0.TRange | null;
131
+ readOnly: boolean;
132
+ };
133
+ meta: platejs0.EditorBase["meta"] & {
134
+ key: any;
135
+ components: platejs0.NodeComponents;
136
+ userId?: string | null;
137
+ isFallback: boolean;
138
+ pluginCache: {
139
+ decorate: string[];
140
+ handlers: {
141
+ onChange: string[];
142
+ onNodeChange: string[];
143
+ onTextChange: string[];
144
+ };
145
+ inject: {
146
+ nodeProps: string[];
147
+ };
148
+ node: {
149
+ isContainer: string[];
150
+ isLeaf: string[];
151
+ isText: string[];
152
+ leafProps: string[];
153
+ textProps: string[];
154
+ types: Record<string, string>;
155
+ };
156
+ normalizeInitialValue: string[];
157
+ render: {
158
+ aboveEditable: string[];
159
+ aboveNodes: string[];
160
+ aboveSlate: string[];
161
+ afterContainer: string[];
162
+ afterEditable: string[];
163
+ beforeContainer: string[];
164
+ beforeEditable: string[];
165
+ belowNodes: string[];
166
+ belowRootNodes: string[];
167
+ };
168
+ rules: {
169
+ match: string[];
170
+ };
171
+ useHooks: string[];
172
+ };
173
+ pluginList: any[];
174
+ uid?: string;
175
+ };
176
+ plugins: Record<string, any>;
177
+ setOptions: <C extends platejs0.AnyPluginConfig>(plugin: platejs0.WithRequiredKey<C>, options: ((state: mutative0.Draft<Partial<platejs0.InferOptions<C>>>) => void) | Partial<platejs0.InferOptions<C>>) => void;
178
+ getInjectProps: <C extends platejs0.AnyPluginConfig = platejs0.PluginConfig>(plugin: platejs0.WithRequiredKey<C>) => platejs0.InjectNodeProps<C>;
179
+ getOption: <C extends platejs0.AnyPluginConfig, StateType extends platejs0.InferOptions<C>, TSelectors extends platejs0.InferSelectors<C>, K$1 extends keyof StateType | keyof TSelectors | "state">(plugin: platejs0.WithRequiredKey<C>, key: K$1, ...args: K$1 extends keyof TSelectors ? Parameters<TSelectors[K$1]> : []) => K$1 extends "state" ? StateType : K$1 extends keyof TSelectors ? ReturnType<TSelectors[K$1]> : K$1 extends keyof StateType ? StateType[K$1] : never;
180
+ getOptions: <C extends platejs0.AnyPluginConfig = platejs0.PluginConfig>(plugin: platejs0.WithRequiredKey<C>) => platejs0.InferOptions<C>;
181
+ getOptionsStore: <C extends platejs0.AnyPluginConfig>(plugin: platejs0.WithRequiredKey<C>) => zustand_x0.TStateApi<platejs0.InferOptions<C>, [["zustand/mutative-x", never]], {}, platejs0.InferSelectors<C>>;
182
+ getPlugin: <C extends platejs0.AnyPluginConfig = platejs0.PluginConfig>(plugin: platejs0.WithRequiredKey<C>) => C extends {
183
+ node: any;
184
+ } ? C : platejs0.EditorPlugin<C>;
185
+ getType: (pluginKey: string) => string;
186
+ setOption: <C extends platejs0.AnyPluginConfig, K$1 extends keyof platejs0.InferOptions<C>>(plugin: platejs0.WithRequiredKey<C>, optionKey: K$1, value: platejs0.InferOptions<C>[K$1]) => void;
187
+ } & {
188
+ api: platejs0.EditorApi & platejs0.UnionToIntersection<platejs0.InferApi<platejs_react0.PlateCorePlugin>>;
189
+ meta: platejs0.BaseEditor["meta"] & {
190
+ pluginList: platejs_react0.AnyEditorPlatePlugin[];
191
+ shortcuts: platejs_react0.Shortcuts;
192
+ };
193
+ plugins: Record<string, platejs_react0.AnyEditorPlatePlugin>;
194
+ tf: platejs0.EditorTransforms & platejs0.UnionToIntersection<platejs0.InferTransforms<platejs_react0.PlateCorePlugin>>;
195
+ transforms: platejs0.EditorTransforms & platejs0.UnionToIntersection<platejs0.InferTransforms<platejs_react0.PlateCorePlugin>>;
196
+ getApi: <C extends platejs0.AnyPluginConfig = platejs0.PluginConfig>(plugin?: platejs0.WithRequiredKey<C>) => platejs_react0.PlateEditor["api"] & platejs0.InferApi<C>;
197
+ getPlugin: <C extends platejs0.AnyPluginConfig = platejs0.PluginConfig>(plugin: platejs0.WithRequiredKey<C>) => C extends {
198
+ node: any;
199
+ } ? C : platejs_react0.EditorPlatePlugin<C>;
200
+ getTransforms: <C extends platejs0.AnyPluginConfig = platejs0.PluginConfig>(plugin?: platejs0.WithRequiredKey<C>) => platejs_react0.PlateEditor["tf"] & platejs0.InferTransforms<C>;
201
+ uid?: string;
202
+ } & {
203
+ store: platejs_react0.PlateStore;
204
+ };
205
+ headingList: Heading[];
206
+ mouseInToc: boolean;
207
+ open: boolean;
208
+ setIsObserve: React$1.Dispatch<React$1.SetStateAction<boolean>>;
209
+ setMouseInToc: React$1.Dispatch<React$1.SetStateAction<boolean>>;
210
+ tocRef: React$1.RefObject<HTMLElement | null>;
211
+ onContentScroll: ({
212
+ id,
213
+ behavior,
214
+ el
215
+ }: {
216
+ id: string;
217
+ el: HTMLElement;
218
+ behavior?: ScrollBehavior;
219
+ }) => void;
220
+ };
105
221
  declare const useTocSideBar: ({
106
222
  editor,
107
223
  mouseInToc,
@@ -112,7 +228,7 @@ declare const useTocSideBar: ({
112
228
  onContentScroll
113
229
  }: ReturnType<typeof useTocSideBarState>) => {
114
230
  navProps: {
115
- ref: any;
231
+ ref: React$1.RefObject<HTMLElement | null>;
116
232
  onMouseEnter: () => void;
117
233
  onMouseLeave: (e: React$1.MouseEvent<HTMLElement, globalThis.MouseEvent>) => void;
118
234
  };
@@ -125,5 +241,4 @@ declare function checkIn(e: React.MouseEvent<HTMLElement, globalThis.MouseEvent>
125
241
  //#region src/react/utils/heightToTop.d.ts
126
242
  declare const heightToTop: (ele: HTMLElement, editorContentRef?: React$1.RefObject<HTMLDivElement | null>) => number;
127
243
  //#endregion
128
- export { TocPlugin, TocSideBarProps, UseContentController, checkIn, heightToTop, useContentController, useContentObserver, useTocController, useTocElement, useTocElementState, useTocObserver, useTocSideBar, useTocSideBarState };
129
- //# sourceMappingURL=index.d.ts.map
244
+ export { TocPlugin, TocSideBarProps, UseContentController, checkIn, heightToTop, useContentController, useContentObserver, useTocController, useTocElement, useTocElementState, useTocObserver, useTocSideBar, useTocSideBarState };
@@ -485,5 +485,4 @@ const useTocSideBar = ({ editor, mouseInToc, open, setIsObserve, setMouseInToc,
485
485
  };
486
486
 
487
487
  //#endregion
488
- export { TocPlugin, checkIn, heightToTop, useContentController, useContentObserver, useTocController, useTocElement, useTocElementState, useTocObserver, useTocSideBar, useTocSideBarState };
489
- //# sourceMappingURL=index.js.map
488
+ export { TocPlugin, checkIn, heightToTop, useContentController, useContentObserver, useTocController, useTocElement, useTocElementState, useTocObserver, useTocSideBar, useTocSideBarState };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lofcz/platejs-toc",
3
- "version": "52.0.11",
3
+ "version": "52.3.6",
4
4
  "description": "Table of Contents plugin for Plate",
5
5
  "keywords": [
6
6
  "plate",
@@ -29,7 +29,8 @@
29
29
  "dist/**/*"
30
30
  ],
31
31
  "devDependencies": {
32
- "@plate/scripts": "1.0.0"
32
+ "@plate/scripts": "1.0.0",
33
+ "platejs": "npm:@lofcz/platejs@52.3.6"
33
34
  },
34
35
  "peerDependencies": {
35
36
  "platejs": ">=52.0.11",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/lib/BaseTocPlugin.ts","../src/lib/transforms/insertToc.ts","../src/lib/utils/isHeading.ts"],"sourcesContent":[],"mappings":";;;;KASY,SAAA,GAAY;;EAAZ,SAAA,EAAA,MAAS;EAKO,YAAA,CAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,GAAgB,OAAhB,EAAA;CAAgB,CAAA;AALpB,cASX,aATW,EAAA,GAAA;;;cCLX,oBACH,uBACE;;;cCJC,kBAAmB"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["InsertNodesOptions","SlateEditor","TElement","KEYS","insertToc","editor","options","tf","insertNodes","children","text","type","getType","toc"],"sources":["../src/lib/transforms/insertToc.ts"],"sourcesContent":["import type { InsertNodesOptions, SlateEditor, TElement } from 'platejs';\n\nimport { KEYS } from 'platejs';\n\nexport const insertToc = (\n editor: SlateEditor,\n options?: InsertNodesOptions\n) => {\n editor.tf.insertNodes<TElement>(\n {\n children: [{ text: '' }],\n type: editor.getType(KEYS.toc),\n },\n options as any\n );\n};\n"],"mappings":";;;;AAIA,MAAaI,aACXC,QACAC,YACG;AACHD,QAAOE,GAAGC,YACR;EACEC,UAAU,CAAC,EAAEC,MAAM,IAAI,CAAC;EACxBC,MAAMN,OAAOO,QAAQT,KAAKU,IAAG;EAC9B,EACDP,QACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isHeading-CiQqjntU.js","names":["PluginConfig","SlateEditor","createTSlatePlugin","KEYS","Heading","TocConfig","isScroll","topOffset","queryHeading","editor","BaseTocPlugin","key","toc","node","isElement","isVoid","options","TNode","KEYS","isHeading","node","type","heading","includes"],"sources":["../src/lib/BaseTocPlugin.ts","../src/lib/utils/isHeading.ts"],"sourcesContent":["import {\n type PluginConfig,\n type SlateEditor,\n createTSlatePlugin,\n KEYS,\n} from 'platejs';\n\nimport type { Heading } from './types';\n\nexport type TocConfig = PluginConfig<\n 'toc',\n {\n isScroll: boolean;\n topOffset: number;\n queryHeading?: (editor: SlateEditor) => Heading[];\n }\n>;\n\nexport const BaseTocPlugin = createTSlatePlugin<TocConfig>({\n key: KEYS.toc,\n node: { isElement: true, isVoid: true },\n options: {\n isScroll: true,\n topOffset: 80,\n },\n});\n","import { type TNode, KEYS } from 'platejs';\n\nexport const isHeading = (node: TNode) =>\n node.type && KEYS.heading.includes(node.type as any);\n"],"mappings":";;;AAkBA,MAAaU,gBAAgBR,mBAA8B;CACzDS,KAAKR,KAAKS;CACVC,MAAM;EAAEC,WAAW;EAAMC,QAAQ;EAAM;CACvCC,SAAS;EACPV,UAAU;EACVC,WAAW;EACb;CACD,CAAC;;;;ACvBF,MAAaY,aAAaC,SACxBA,KAAKC,QAAQH,KAAKI,QAAQC,SAASH,KAAKC,KAAY"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/react/TocPlugin.tsx","../../src/react/types.ts","../../src/react/hooks/useContentController.ts","../../src/react/hooks/useContentObserver.ts","../../src/react/hooks/useTocController.ts","../../src/react/hooks/useTocElement.ts","../../src/react/hooks/useTocObserver.ts","../../src/react/hooks/useTocSideBar.ts","../../src/react/utils/checkIn.ts","../../src/react/utils/heightToTop.ts"],"sourcesContent":[],"mappings":";;;;cAIa;;;KCJD,eAAA;;;;ADIZ,CAAA;KCEY,oBAAA;gBACI,KAAA,CAAM,UAAU;;EAPpB,UAAA,EAAA,MAAe;EAMf,SAAA,EAAA,MAAA;;;;cCMC;;;;;GAKV;;;;;;;IFbU,EAAA,EAAA,MAAwC;QEkD7C;eACO;;ADvDf,CAAA;;;KEOK,kBAAA;oBACe,OAAA,CAAM,UAAU;;EHJvB,QAAA,EAAA,OAAwC;;;;ACJzC,cEeC,kBFfc,EAAA,CAAA;EAAA,gBAAA;EAAA,SAAA;EAAA,QAAA;EAAA,UAAA;EAAA;AAAA,CAAA,EEqBxB,kBFrBwB,EAAA,GAAA;EAMf,QAAA,EAAA,MAAA;;;;KGFP,gBAAA;;;EJAQ,MAAA,EIGH,OAAA,CAAM,SJHqC,CIG3B,WJH2B,GAAA,IAAA,CAAA;;cIMxC;;;;GAIV;;;cCCU;;ELXA,WAAA,EAAwC,GAAA;wBKoB5C,oCAAmC;;cAyB/B;;;GAGV,kBAAkB;EJpDT,KAAA,EAAA;IAMA,OAAA,EAAA,CAAA,CAAA,EIiDH,OAAA,CAAM,UJjDiB,CIiDN,WJhDM,EIgDO,UAAA,CAAW,UJhDnB,CAAA,EAAA,IAAA,EIiDnB,OJjDmB,EAAA,QAAA,EIkDf,cJlDe,EAAA,GAAA,IAAA;;;;;KKL1B,cAAA;;;ENEQ,MAAA,EMCH,OAAA,CAAM,SNDqC,CMC3B,WND2B,GAAA,IAAA,CAAA;;cMIxC;;;;GAIV;;ELZS,OAAA,EAAA,OAAA;AAMZ,CAAA;;;cMMa;;;;GAIV;APZU,cOiDA,aPjDwC,EAAA,CAAA;EAAA,MAAA;EAAA,UAAA;EAAA,IAAA;EAAA,YAAA;EAAA,aAAA;EAAA,MAAA;EAAA;AAAA,CAAA,EOyDlD,UPzDkD,CAAA,OOyDhC,kBPzDgC,CAAA,EAAA,GAAA;;;;ICJzC,YAAA,EAAe,CAAA,CAAA,EMqGhB,OAAA,CAAM,UNrGU,CMqGC,WNrGD,EMqGc,UAAA,CAAW,UNrGzB,CAAA,EAAA,GAAA,IAAA;EAMf,CAAA;sBMmEH,OAAA,CAAM,WAAW,aAAa,UAAA,CAAW,mBACtC,oBACK;;;;iBC3ED,OAAA,IACX,KAAA,CAAM,WAAW,aAAa,UAAA,CAAW;;;cCCjC,mBACN,gCACc,OAAA,CAAM,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["toPlatePlugin","BaseTocPlugin","TocPlugin","checkIn","e","React","MouseEvent","HTMLElement","globalThis","event","window","x","Number","clientX","y","clientY","ele","target","div_x","getBoundingClientRect","left","div_x_width","clientWidth","div_y","top","div_y_height","clientHeight","React","heightToTop","ele","HTMLElement","editorContentRef","RefObject","HTMLDivElement","root","current","document","body","containerRect","getBoundingClientRect","elementRect","scrollY","scrollTop","absoluteElementTop","top","SlateEditor","TElement","NodeApi","Heading","BaseTocPlugin","isHeading","headingDepth","Record","h1","h2","h3","h4","h5","h6","getHeadingList","editor","options","getOptions","queryHeading","headingList","values","api","nodes","at","match","n","node","path","type","title","string","depth","id","push","React","NodeApi","useEditorRef","useEditorSelector","getHeadingList","UseContentObserver","editorContentRef","RefObject","HTMLElement","isObserve","isScroll","rootMargin","status","useContentObserver","t0","$","_c","t1","Symbol","for","headingElementsRef","useRef","editor","t2","headingList","activeId","setActiveId","useState","t3","root","current","undefined","callback","headings","reduce","_temp","visibleHeadings","Object","keys","forEach","key","headingElement_0","headingElement","isIntersecting","push","lastKey","pop","length","observer","IntersectionObserver","item","path","node","get","element","api","toDOMNode","observe","disconnect","t4","useEffect","t5","map","target","id","React","KEYS","useEditorRef","UseContentController","heightToTop","useContentObserver","useContentController","containerRef","isObserve","rootMargin","topOffset","editor","editorContentRef","setEditorContentRef","useState","isScrollRef","useRef","isScroll","current","scrollHeight","clientHeight","scrollContainer","useMemo","window","status","setStatus","activeId","activeContentId","setActiveContentId","onContentScroll","id","behavior","el","HTMLElement","ScrollBehavior","scrollTo","top","getApi","key","blockSelection","addSelectedRow","useEffect","scroll","Date","now","addEventListener","removeEventListener","React","UseTocObserver","activeId","isObserve","tocRef","RefObject","HTMLElement","useTocObserver","t0","$","_c","visible","setVisible","useState","offset","setOffset","t1","root","current","updateOffset","entries","entry","boundingClientRect","intersectionRatio","rootBounds","halfHeight","getBoundingClientRect","height","isAbove","top","isBelow","bottom","isVisible","offset_0","observer","IntersectionObserver","element","querySelectorAll","observe","disconnect","t2","useEffect","t3","React","useTocObserver","UseTocController","activeId","isObserve","tocRef","RefObject","HTMLElement","useTocController","t0","$","_c","activeTocId","setActiveTocId","useState","t1","offset","visible","t2","t3","tocItemWrapper","current","querySelector","top","scrollTop","scrollTo","behavior","useEffect","t4","t5","React","KEYS","NodeApi","useEditorPlugin","useEditorSelector","useScrollRef","Heading","getHeadingList","TocPlugin","heightToTop","useTocElementState","editor","getOptions","isScroll","topOffset","headingList","containerRef","onContentScroll","useCallback","el","HTMLElement","id","behavior","ScrollBehavior","current","scrollTo","top","window","setTimeout","getApi","key","blockSelection","addSelectedRow","useTocElement","ReturnType","props","onClick","e","MouseEvent","globalThis","item","preventDefault","path","node","get","api","toDOMNode","React","NodeApi","useEditorRef","useEditorSelector","useScrollRef","Heading","TocSideBarProps","useContentController","useTocController","getHeadingList","checkIn","useTocSideBarState","t0","$","_c","open","t1","rootMargin","t2","topOffset","t3","undefined","editor","t4","Symbol","for","headingList","containerRef","tocRef","useRef","mouseInToc","setMouseInToc","useState","isObserve","setIsObserve","t5","activeContentId","onContentScroll","t6","activeId","t7","useTocSideBar","ReturnType","useEffect","onContentClick","useCallback","e","MouseEvent","HTMLElement","globalThis","item","behavior","ScrollBehavior","preventDefault","id","path","node","get","el","api","toDOMNode","navProps","ref","onMouseEnter","onMouseLeave","isIn"],"sources":["../../src/react/TocPlugin.tsx","../../src/react/utils/checkIn.ts","../../src/react/utils/heightToTop.ts","../../src/internal/getHeadingList.ts","../../src/react/hooks/useContentObserver.ts","../../src/react/hooks/useContentController.ts","../../src/react/hooks/useTocObserver.ts","../../src/react/hooks/useTocController.ts","../../src/react/hooks/useTocElement.ts","../../src/react/hooks/useTocSideBar.ts"],"sourcesContent":["import { toPlatePlugin } from 'platejs/react';\n\nimport { BaseTocPlugin } from '../lib';\n\nexport const TocPlugin = toPlatePlugin(BaseTocPlugin);\n","export function checkIn(\n e: React.MouseEvent<HTMLElement, globalThis.MouseEvent>\n) {\n const event = window.event as unknown as React.MouseEvent<\n HTMLElement,\n globalThis.MouseEvent\n >;\n const x = Number(event.clientX); // 鼠标相对屏幕横坐标\n const y = Number(event.clientY); // 鼠标相对屏幕纵坐标\n\n const ele = e.target as HTMLElement;\n const div_x = Number(ele.getBoundingClientRect().left); // 相对屏幕的横坐标\n const div_x_width = Number(\n ele.getBoundingClientRect().left + ele.clientWidth\n ); // 相对屏幕的横坐标+width\n\n const div_y = Number(ele.getBoundingClientRect().top); // 相对屏幕的纵坐标\n const div_y_height = Number(\n ele.getBoundingClientRect().top + ele.clientHeight\n ); // 相对屏幕的纵坐标+height\n\n if (x > div_x && x < div_x_width && y > div_y && y < div_y_height) {\n return true;\n }\n\n return false;\n}\n","import type React from 'react';\n\nexport const heightToTop = (\n ele: HTMLElement,\n editorContentRef?: React.RefObject<HTMLDivElement | null>\n) => {\n const root = editorContentRef ? editorContentRef.current : document.body;\n\n if (!root || !ele) return 0;\n\n const containerRect = root.getBoundingClientRect();\n const elementRect = ele.getBoundingClientRect();\n\n const scrollY = root.scrollTop;\n const absoluteElementTop = elementRect.top + scrollY - containerRect.top;\n\n return absoluteElementTop;\n};\n","import { type SlateEditor, type TElement, NodeApi } from 'platejs';\n\nimport type { Heading } from '../lib/types';\n\nimport { BaseTocPlugin } from '../lib';\nimport { isHeading } from '../lib/utils/isHeading';\n\nconst headingDepth: Record<string, number> = {\n h1: 1,\n h2: 2,\n h3: 3,\n h4: 4,\n h5: 5,\n h6: 6,\n};\n\nexport const getHeadingList = (editor: SlateEditor) => {\n const options = editor.getOptions(BaseTocPlugin);\n\n if (options.queryHeading) {\n return options.queryHeading(editor);\n }\n\n const headingList: Heading[] = [];\n\n const values = editor.api.nodes<TElement>({\n at: [],\n match: (n) => isHeading(n),\n });\n\n if (!values) return [];\n\n for (const [node, path] of values) {\n const { type } = node;\n const title = NodeApi.string(node);\n const depth = headingDepth[type];\n const id = node.id as string;\n\n if (title) {\n headingList.push({ id, depth, path, title, type });\n }\n }\n\n return headingList;\n};\n","import React from 'react';\n\nimport { NodeApi } from 'platejs';\nimport { useEditorRef, useEditorSelector } from 'platejs/react';\n\nimport { getHeadingList } from '../../internal/getHeadingList';\n\ntype UseContentObserver = {\n editorContentRef: React.RefObject<HTMLElement | null>;\n isObserve: boolean;\n isScroll: boolean;\n rootMargin: string;\n status: number;\n};\n\nexport const useContentObserver = ({\n editorContentRef,\n isObserve,\n isScroll,\n rootMargin,\n status,\n}: UseContentObserver) => {\n const headingElementsRef = React.useRef<\n Record<string, IntersectionObserverEntry>\n >({});\n\n const editor = useEditorRef();\n const headingList = useEditorSelector(getHeadingList, []);\n\n const [activeId, setActiveId] = React.useState('');\n\n React.useEffect(() => {\n // ✅ Access ref inside effect, not during render\n const root = isScroll ? editorContentRef.current : undefined;\n\n const callback = (headings: IntersectionObserverEntry[]) => {\n if (!isObserve) return;\n\n headingElementsRef.current = headings.reduce((map, headingElement) => {\n map[headingElement.target.id] = headingElement;\n\n return map;\n }, headingElementsRef.current);\n\n const visibleHeadings: string[] = [];\n\n Object.keys(headingElementsRef.current).forEach((key) => {\n const headingElement = headingElementsRef.current[key];\n\n if (headingElement.isIntersecting) visibleHeadings.push(key);\n });\n const lastKey = Object.keys(headingElementsRef.current).pop()!;\n\n if (visibleHeadings.length > 0) {\n setActiveId(visibleHeadings[0] || lastKey);\n }\n headingElementsRef.current = {};\n };\n const observer = new IntersectionObserver(callback, {\n root,\n rootMargin,\n });\n\n headingList.forEach((item) => {\n const { path } = item;\n\n const node = NodeApi.get(editor, path);\n\n if (!node) return;\n\n const element = editor.api.toDOMNode(node);\n\n if (element) {\n observer.observe(element);\n }\n });\n\n return () => {\n observer.disconnect();\n };\n }, [\n headingList,\n isObserve,\n editor,\n editorContentRef,\n isScroll,\n rootMargin,\n status,\n ]);\n\n return { activeId };\n};\n","'use client';\n\nimport React from 'react';\n\nimport { KEYS } from 'platejs';\nimport { useEditorRef } from 'platejs/react';\n\nimport type { UseContentController } from '../types';\n\nimport { heightToTop } from '../utils';\nimport { useContentObserver } from './useContentObserver';\n\nexport const useContentController = ({\n containerRef,\n isObserve,\n rootMargin,\n topOffset,\n}: UseContentController) => {\n const editor = useEditorRef();\n const [editorContentRef, setEditorContentRef] = React.useState(containerRef);\n\n const isScrollRef = React.useRef(false);\n\n const isScroll =\n (editorContentRef.current?.scrollHeight || 0) >\n (editorContentRef.current?.clientHeight || 0);\n\n isScrollRef.current = isScroll;\n\n const scrollContainer = React.useMemo(() => {\n if (typeof window !== 'object') return;\n\n return isScroll ? editorContentRef.current : window;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isScroll]);\n\n const [status, setStatus] = React.useState(0);\n\n const { activeId } = useContentObserver({\n editorContentRef,\n isObserve,\n isScroll,\n rootMargin,\n status,\n });\n\n const [activeContentId, setActiveContentId] = React.useState(activeId);\n\n const onContentScroll = ({\n id,\n behavior = 'instant',\n el,\n }: {\n id: string;\n el: HTMLElement;\n behavior?: ScrollBehavior;\n }) => {\n setActiveContentId(id);\n\n if (isScrollRef.current) {\n editorContentRef.current?.scrollTo({\n behavior,\n top: heightToTop(el, editorContentRef) - topOffset,\n });\n } else {\n const top = heightToTop(el) - topOffset;\n // Note: if behavior === smooth,scrolling the toc then click the title immediately will scroll to the wrong position.It should be a chrome bug.\n window.scrollTo({ behavior, top });\n }\n\n editor\n .getApi({ key: KEYS.blockSelection })\n .blockSelection?.addSelectedRow?.(id);\n };\n\n React.useEffect(() => {\n setEditorContentRef(containerRef);\n }, [containerRef]);\n\n React.useEffect(() => {\n setActiveContentId(activeId);\n }, [activeId]);\n\n React.useEffect(() => {\n if (!scrollContainer) return;\n\n const scroll = () => {\n if (isObserve) {\n setStatus(Date.now());\n }\n };\n\n scrollContainer.addEventListener('scroll', scroll);\n\n return () => {\n scrollContainer.removeEventListener('scroll', scroll);\n };\n }, [isObserve, scrollContainer]);\n\n return { activeContentId, onContentScroll };\n};\n","import React from 'react';\n\ntype UseTocObserver = {\n activeId: string;\n isObserve: boolean;\n tocRef: React.RefObject<HTMLElement | null>;\n};\n\nexport const useTocObserver = ({\n activeId,\n isObserve,\n tocRef,\n}: UseTocObserver) => {\n const [visible, setVisible] = React.useState<boolean>(true);\n const [offset, setOffset] = React.useState<number>(0);\n\n React.useEffect(() => {\n // ✅ Access ref inside effect, not during render\n const root = tocRef.current;\n\n const updateOffset = (entries: IntersectionObserverEntry[]) => {\n if (!isObserve) return;\n\n const [entry] = entries;\n const { boundingClientRect, intersectionRatio, rootBounds } = entry;\n\n if (!rootBounds) return;\n\n const halfHeight = (root?.getBoundingClientRect().height || 0) / 2;\n const isAbove = boundingClientRect.top < rootBounds.top;\n const isBelow = boundingClientRect.bottom > rootBounds.bottom;\n const isVisible = intersectionRatio === 1;\n\n setVisible(isVisible);\n\n if (!isVisible) {\n const offset = isAbove\n ? boundingClientRect.top - rootBounds!.top! - halfHeight\n : isBelow\n ? boundingClientRect.bottom - rootBounds!.bottom! + halfHeight\n : 0;\n\n setOffset(offset);\n }\n };\n\n const observer = new IntersectionObserver(updateOffset, {\n root,\n });\n\n const element = root?.querySelectorAll('#toc_item_active')[0];\n\n if (element) observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [tocRef, activeId, isObserve]);\n\n return { offset, visible };\n};\n","import React from 'react';\n\nimport { useTocObserver } from './useTocObserver';\n\ntype UseTocController = {\n activeId: string;\n isObserve: boolean;\n tocRef: React.RefObject<HTMLElement | null>;\n};\n\nexport const useTocController = ({\n activeId,\n isObserve,\n tocRef,\n}: UseTocController) => {\n const [activeTocId, setActiveTocId] = React.useState('');\n const { offset, visible } = useTocObserver({\n activeId: activeTocId,\n isObserve,\n tocRef,\n });\n\n React.useEffect(() => {\n if (!visible) {\n const tocItemWrapper = tocRef.current?.querySelector('#toc_wrap');\n const top = (tocItemWrapper?.scrollTop as any) + offset;\n\n tocItemWrapper?.scrollTo({ behavior: 'instant', top });\n }\n }, [visible, offset, tocRef]);\n\n React.useEffect(() => {\n setActiveTocId(activeId);\n }, [activeId]);\n};\n","import React from 'react';\n\nimport { KEYS, NodeApi } from 'platejs';\nimport {\n useEditorPlugin,\n useEditorSelector,\n useScrollRef,\n} from 'platejs/react';\n\nimport type { Heading } from '../../lib/types';\n\nimport { getHeadingList } from '../../internal/getHeadingList';\nimport { TocPlugin } from '../TocPlugin';\nimport { heightToTop } from '../utils';\n\nexport const useTocElementState = () => {\n const { editor, getOptions } = useEditorPlugin(TocPlugin);\n const { isScroll, topOffset } = getOptions();\n\n const headingList = useEditorSelector(getHeadingList, []);\n\n const containerRef = useScrollRef();\n\n const onContentScroll = React.useCallback(\n (el: HTMLElement, id: string, behavior: ScrollBehavior = 'instant') => {\n if (!containerRef.current) return;\n if (isScroll) {\n containerRef.current?.scrollTo({\n behavior,\n top: heightToTop(el, containerRef as any) - topOffset,\n });\n } else {\n const top = heightToTop(el) - topOffset;\n window.scrollTo({ behavior, top });\n }\n\n setTimeout(() => {\n editor\n .getApi({ key: KEYS.blockSelection })\n .blockSelection?.addSelectedRow?.(id);\n }, 0);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isScroll, topOffset]\n );\n\n return { editor, headingList, onContentScroll };\n};\n\nexport const useTocElement = ({\n editor,\n onContentScroll,\n}: ReturnType<typeof useTocElementState>) => ({\n props: {\n onClick: (\n e: React.MouseEvent<HTMLElement, globalThis.MouseEvent>,\n item: Heading,\n behavior: ScrollBehavior\n ) => {\n e.preventDefault();\n const { id, path } = item;\n const node = NodeApi.get(editor, path);\n\n if (!node) return;\n\n const el = editor.api.toDOMNode(node);\n\n if (!el) return;\n\n onContentScroll(el, id, behavior);\n },\n },\n});\n","import React from 'react';\n\nimport { NodeApi } from 'platejs';\nimport { useEditorRef, useEditorSelector, useScrollRef } from 'platejs/react';\n\nimport type { Heading } from '../../lib/types';\nimport type { TocSideBarProps } from '../types';\n\nimport { useContentController, useTocController } from '.';\nimport { getHeadingList } from '../../internal/getHeadingList';\nimport { checkIn } from '../utils';\n\nexport const useTocSideBarState = ({\n open = true,\n rootMargin = '0px 0px 0px 0px',\n topOffset = 0,\n}: TocSideBarProps): any => {\n const editor = useEditorRef();\n const headingList = useEditorSelector(getHeadingList, []);\n const containerRef = useScrollRef();\n\n const tocRef = React.useRef<HTMLElement>(null);\n\n const [mouseInToc, setMouseInToc] = React.useState(false);\n\n const [isObserve, setIsObserve] = React.useState(open);\n\n const { activeContentId, onContentScroll } = useContentController({\n containerRef,\n isObserve,\n rootMargin,\n topOffset,\n });\n\n useTocController({\n activeId: activeContentId,\n isObserve,\n tocRef,\n });\n\n return {\n activeContentId,\n editor,\n headingList,\n mouseInToc,\n open,\n setIsObserve,\n setMouseInToc,\n tocRef,\n onContentScroll,\n };\n};\n\nexport const useTocSideBar = ({\n editor,\n mouseInToc,\n open,\n setIsObserve,\n setMouseInToc,\n tocRef,\n onContentScroll,\n}: ReturnType<typeof useTocSideBarState>) => {\n React.useEffect(() => {\n if (mouseInToc) {\n setIsObserve(false);\n } else {\n setIsObserve(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mouseInToc]);\n\n const onContentClick = React.useCallback(\n (\n e: React.MouseEvent<HTMLElement, globalThis.MouseEvent>,\n item: Heading,\n behavior?: ScrollBehavior\n ) => {\n e.preventDefault();\n const { id, path } = item;\n const node = NodeApi.get(editor, path);\n\n if (!node) return;\n\n const el = editor.api.toDOMNode(node);\n\n if (!el) return;\n\n onContentScroll({ id, behavior, el });\n },\n [editor, onContentScroll]\n );\n\n return {\n navProps: {\n ref: tocRef,\n onMouseEnter: () => {\n if (!mouseInToc && open) {\n setMouseInToc(true);\n }\n },\n onMouseLeave: (\n e: React.MouseEvent<HTMLElement, globalThis.MouseEvent>\n ) => {\n if (open) {\n const isIn = checkIn(e);\n\n if (isIn !== mouseInToc) {\n setMouseInToc(isIn);\n }\n }\n },\n },\n onContentClick,\n };\n};\n"],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { Path } from "platejs";
2
-
3
- //#region src/lib/types.d.ts
4
- type Heading = {
5
- id: string;
6
- depth: number;
7
- path: Path;
8
- title: string;
9
- type: string;
10
- };
11
- //#endregion
12
- export { Heading as t };
13
- //# sourceMappingURL=types-CqaZEV-V.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-CqaZEV-V.d.ts","names":[],"sources":["../src/lib/types.ts"],"sourcesContent":[],"mappings":";;;KAEY,OAAA;;EAAA,KAAA,EAAA,MAAO;QAGX"}