@rtif-sdk/web 1.1.0 → 1.4.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/dist/block-drag-handler.js +4 -1
- package/dist/block-drag-handler.js.map +1 -1
- package/dist/content-handler-html.d.ts +28 -0
- package/dist/content-handler-html.d.ts.map +1 -0
- package/dist/content-handler-html.js +49 -0
- package/dist/content-handler-html.js.map +1 -0
- package/dist/content-handlers.d.ts +20 -19
- package/dist/content-handlers.d.ts.map +1 -1
- package/dist/content-handlers.js +4 -43
- package/dist/content-handlers.js.map +1 -1
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +119 -5
- package/dist/editor.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -3
- package/dist/index.js.map +1 -1
- package/dist/preset-basic.d.ts +20 -0
- package/dist/preset-basic.d.ts.map +1 -0
- package/dist/preset-basic.js +28 -0
- package/dist/preset-basic.js.map +1 -0
- package/dist/preset-full.d.ts +22 -0
- package/dist/preset-full.d.ts.map +1 -0
- package/dist/preset-full.js +66 -0
- package/dist/preset-full.js.map +1 -0
- package/dist/preset-plaintext.d.ts +20 -0
- package/dist/preset-plaintext.d.ts.map +1 -0
- package/dist/preset-plaintext.js +19 -0
- package/dist/preset-plaintext.js.map +1 -0
- package/dist/preset-standard.d.ts +22 -0
- package/dist/preset-standard.d.ts.map +1 -0
- package/dist/preset-standard.js +47 -0
- package/dist/preset-standard.js.map +1 -0
- package/dist/presets.d.ts +7 -88
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +7 -152
- package/dist/presets.js.map +1 -1
- package/dist/renderer.d.ts +29 -0
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +107 -77
- package/dist/renderer.js.map +1 -1
- package/dist/spatial-index.d.ts +203 -0
- package/dist/spatial-index.d.ts.map +1 -0
- package/dist/spatial-index.js +211 -0
- package/dist/spatial-index.js.map +1 -0
- package/dist/types.d.ts +82 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/virtual-viewport.d.ts +241 -0
- package/dist/virtual-viewport.d.ts.map +1 -0
- package/dist/virtual-viewport.js +584 -0
- package/dist/virtual-viewport.js.map +1 -0
- package/package.json +1 -1
package/dist/presets.d.ts
CHANGED
|
@@ -1,95 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Plugin presets for the RTIF web editor.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Re-exports from individual preset modules for backward compatibility.
|
|
5
|
+
* Each preset lives in its own file so that importing one preset does not
|
|
6
|
+
* pull in the plugin imports of other presets (tree-shaking friendly).
|
|
7
7
|
*
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* Use this for editors that need only unformatted text input with no
|
|
15
|
-
* inline marks, block types, or other extensions.
|
|
16
|
-
*
|
|
17
|
-
* @returns An empty plugin array
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```ts
|
|
21
|
-
* import { PRESET_PLAINTEXT } from '@rtif-sdk/web';
|
|
22
|
-
* import { createEngine } from '@rtif-sdk/engine';
|
|
23
|
-
*
|
|
24
|
-
* const engine = createEngine(initialDoc);
|
|
25
|
-
* for (const plugin of PRESET_PLAINTEXT) {
|
|
26
|
-
* engine.use(plugin);
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export declare const PRESET_PLAINTEXT: ReadonlyArray<Plugin>;
|
|
31
|
-
/**
|
|
32
|
-
* Basic preset — essential inline formatting.
|
|
33
|
-
*
|
|
34
|
-
* Includes bold, italic, underline, and link plugins. Suitable for
|
|
35
|
-
* simple rich text fields (comments, chat messages, short-form content).
|
|
36
|
-
*
|
|
37
|
-
* @returns An array of basic formatting plugins
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```ts
|
|
41
|
-
* import { PRESET_BASIC } from '@rtif-sdk/web';
|
|
42
|
-
* import { createEngine } from '@rtif-sdk/engine';
|
|
43
|
-
*
|
|
44
|
-
* const engine = createEngine(initialDoc);
|
|
45
|
-
* for (const plugin of PRESET_BASIC) {
|
|
46
|
-
* engine.use(plugin);
|
|
47
|
-
* }
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
export declare const PRESET_BASIC: ReadonlyArray<Plugin>;
|
|
51
|
-
/**
|
|
52
|
-
* Standard preset — common rich text editing features.
|
|
53
|
-
*
|
|
54
|
-
* Includes everything in {@link PRESET_BASIC}, plus strikethrough,
|
|
55
|
-
* inline code, headings, lists, blockquotes, code blocks, and
|
|
56
|
-
* horizontal rules. Suitable for blog posts, documentation, and
|
|
57
|
-
* general-purpose content editing.
|
|
58
|
-
*
|
|
59
|
-
* @returns An array of standard editing plugins
|
|
60
|
-
*
|
|
61
|
-
* @example
|
|
62
|
-
* ```ts
|
|
63
|
-
* import { PRESET_STANDARD } from '@rtif-sdk/web';
|
|
64
|
-
* import { createEngine } from '@rtif-sdk/engine';
|
|
65
|
-
*
|
|
66
|
-
* const engine = createEngine(initialDoc);
|
|
67
|
-
* for (const plugin of PRESET_STANDARD) {
|
|
68
|
-
* engine.use(plugin);
|
|
69
|
-
* }
|
|
70
|
-
* ```
|
|
71
|
-
*/
|
|
72
|
-
export declare const PRESET_STANDARD: ReadonlyArray<Plugin>;
|
|
73
|
-
/**
|
|
74
|
-
* Full preset — all available plugins.
|
|
75
|
-
*
|
|
76
|
-
* Includes everything in {@link PRESET_STANDARD}, plus text color,
|
|
77
|
-
* font size, font family, alignment, indentation, callouts, images,
|
|
78
|
-
* and embeds. Suitable for full-featured document editors and CMS
|
|
79
|
-
* authoring tools.
|
|
80
|
-
*
|
|
81
|
-
* @returns An array of all available plugins
|
|
82
|
-
*
|
|
83
|
-
* @example
|
|
84
|
-
* ```ts
|
|
85
|
-
* import { PRESET_FULL } from '@rtif-sdk/web';
|
|
86
|
-
* import { createEngine } from '@rtif-sdk/engine';
|
|
87
|
-
*
|
|
88
|
-
* const engine = createEngine(initialDoc);
|
|
89
|
-
* for (const plugin of PRESET_FULL) {
|
|
90
|
-
* engine.use(plugin);
|
|
91
|
-
* }
|
|
92
|
-
* ```
|
|
93
|
-
*/
|
|
94
|
-
export declare const PRESET_FULL: ReadonlyArray<Plugin>;
|
|
10
|
+
export { PRESET_PLAINTEXT } from './preset-plaintext.js';
|
|
11
|
+
export { PRESET_BASIC } from './preset-basic.js';
|
|
12
|
+
export { PRESET_STANDARD } from './preset-standard.js';
|
|
13
|
+
export { PRESET_FULL } from './preset-full.js';
|
|
95
14
|
//# sourceMappingURL=presets.d.ts.map
|
package/dist/presets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/presets.js
CHANGED
|
@@ -1,159 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Plugin presets for the RTIF web editor.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Re-exports from individual preset modules for backward compatibility.
|
|
5
|
+
* Each preset lives in its own file so that importing one preset does not
|
|
6
|
+
* pull in the plugin imports of other presets (tree-shaking friendly).
|
|
7
7
|
*
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import { strikethroughPlugin } from './plugins/strikethrough-plugin.js';
|
|
15
|
-
import { codePlugin } from './plugins/code-plugin.js';
|
|
16
|
-
import { headingPlugin } from './plugins/heading-plugin.js';
|
|
17
|
-
import { listPlugin } from './plugins/list-plugin.js';
|
|
18
|
-
import { blockquotePlugin } from './plugins/blockquote-plugin.js';
|
|
19
|
-
import { codeBlockPlugin } from './plugins/code-block-plugin.js';
|
|
20
|
-
import { hrPlugin } from './plugins/hr-plugin.js';
|
|
21
|
-
import { textColorPlugin } from './plugins/text-color-plugin.js';
|
|
22
|
-
import { fontSizePlugin } from './plugins/font-size-plugin.js';
|
|
23
|
-
import { fontFamilyPlugin } from './plugins/font-family-plugin.js';
|
|
24
|
-
import { alignmentPlugin } from './plugins/alignment-plugin.js';
|
|
25
|
-
import { indentPlugin } from './plugins/indent-plugin.js';
|
|
26
|
-
import { calloutPlugin } from './plugins/callout-plugin.js';
|
|
27
|
-
import { imagePlugin } from './plugins/image-plugin.js';
|
|
28
|
-
import { embedPlugin } from './plugins/embed-plugin.js';
|
|
29
|
-
/**
|
|
30
|
-
* Plain text preset — no plugins.
|
|
31
|
-
*
|
|
32
|
-
* Use this for editors that need only unformatted text input with no
|
|
33
|
-
* inline marks, block types, or other extensions.
|
|
34
|
-
*
|
|
35
|
-
* @returns An empty plugin array
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```ts
|
|
39
|
-
* import { PRESET_PLAINTEXT } from '@rtif-sdk/web';
|
|
40
|
-
* import { createEngine } from '@rtif-sdk/engine';
|
|
41
|
-
*
|
|
42
|
-
* const engine = createEngine(initialDoc);
|
|
43
|
-
* for (const plugin of PRESET_PLAINTEXT) {
|
|
44
|
-
* engine.use(plugin);
|
|
45
|
-
* }
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
export const PRESET_PLAINTEXT = [];
|
|
49
|
-
/**
|
|
50
|
-
* Basic preset — essential inline formatting.
|
|
51
|
-
*
|
|
52
|
-
* Includes bold, italic, underline, and link plugins. Suitable for
|
|
53
|
-
* simple rich text fields (comments, chat messages, short-form content).
|
|
54
|
-
*
|
|
55
|
-
* @returns An array of basic formatting plugins
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
* ```ts
|
|
59
|
-
* import { PRESET_BASIC } from '@rtif-sdk/web';
|
|
60
|
-
* import { createEngine } from '@rtif-sdk/engine';
|
|
61
|
-
*
|
|
62
|
-
* const engine = createEngine(initialDoc);
|
|
63
|
-
* for (const plugin of PRESET_BASIC) {
|
|
64
|
-
* engine.use(plugin);
|
|
65
|
-
* }
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
export const PRESET_BASIC = [
|
|
69
|
-
boldPlugin(),
|
|
70
|
-
italicPlugin(),
|
|
71
|
-
underlinePlugin(),
|
|
72
|
-
linkPlugin(),
|
|
73
|
-
];
|
|
74
|
-
/**
|
|
75
|
-
* Standard preset — common rich text editing features.
|
|
76
|
-
*
|
|
77
|
-
* Includes everything in {@link PRESET_BASIC}, plus strikethrough,
|
|
78
|
-
* inline code, headings, lists, blockquotes, code blocks, and
|
|
79
|
-
* horizontal rules. Suitable for blog posts, documentation, and
|
|
80
|
-
* general-purpose content editing.
|
|
81
|
-
*
|
|
82
|
-
* @returns An array of standard editing plugins
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```ts
|
|
86
|
-
* import { PRESET_STANDARD } from '@rtif-sdk/web';
|
|
87
|
-
* import { createEngine } from '@rtif-sdk/engine';
|
|
88
|
-
*
|
|
89
|
-
* const engine = createEngine(initialDoc);
|
|
90
|
-
* for (const plugin of PRESET_STANDARD) {
|
|
91
|
-
* engine.use(plugin);
|
|
92
|
-
* }
|
|
93
|
-
* ```
|
|
94
|
-
*/
|
|
95
|
-
export const PRESET_STANDARD = [
|
|
96
|
-
// Inline marks (from BASIC)
|
|
97
|
-
boldPlugin(),
|
|
98
|
-
italicPlugin(),
|
|
99
|
-
underlinePlugin(),
|
|
100
|
-
linkPlugin(),
|
|
101
|
-
// Additional inline marks
|
|
102
|
-
strikethroughPlugin(),
|
|
103
|
-
codePlugin(),
|
|
104
|
-
// Block types
|
|
105
|
-
headingPlugin(),
|
|
106
|
-
listPlugin(),
|
|
107
|
-
blockquotePlugin(),
|
|
108
|
-
codeBlockPlugin(),
|
|
109
|
-
hrPlugin(),
|
|
110
|
-
];
|
|
111
|
-
/**
|
|
112
|
-
* Full preset — all available plugins.
|
|
113
|
-
*
|
|
114
|
-
* Includes everything in {@link PRESET_STANDARD}, plus text color,
|
|
115
|
-
* font size, font family, alignment, indentation, callouts, images,
|
|
116
|
-
* and embeds. Suitable for full-featured document editors and CMS
|
|
117
|
-
* authoring tools.
|
|
118
|
-
*
|
|
119
|
-
* @returns An array of all available plugins
|
|
120
|
-
*
|
|
121
|
-
* @example
|
|
122
|
-
* ```ts
|
|
123
|
-
* import { PRESET_FULL } from '@rtif-sdk/web';
|
|
124
|
-
* import { createEngine } from '@rtif-sdk/engine';
|
|
125
|
-
*
|
|
126
|
-
* const engine = createEngine(initialDoc);
|
|
127
|
-
* for (const plugin of PRESET_FULL) {
|
|
128
|
-
* engine.use(plugin);
|
|
129
|
-
* }
|
|
130
|
-
* ```
|
|
131
|
-
*/
|
|
132
|
-
export const PRESET_FULL = [
|
|
133
|
-
// Inline marks (from BASIC)
|
|
134
|
-
boldPlugin(),
|
|
135
|
-
italicPlugin(),
|
|
136
|
-
underlinePlugin(),
|
|
137
|
-
linkPlugin(),
|
|
138
|
-
// Additional inline marks (from STANDARD)
|
|
139
|
-
strikethroughPlugin(),
|
|
140
|
-
codePlugin(),
|
|
141
|
-
// Block types (from STANDARD)
|
|
142
|
-
headingPlugin(),
|
|
143
|
-
listPlugin(),
|
|
144
|
-
blockquotePlugin(),
|
|
145
|
-
codeBlockPlugin(),
|
|
146
|
-
hrPlugin(),
|
|
147
|
-
// Parameterized text styling
|
|
148
|
-
textColorPlugin(),
|
|
149
|
-
fontSizePlugin(),
|
|
150
|
-
fontFamilyPlugin(),
|
|
151
|
-
// Paragraph formatting
|
|
152
|
-
alignmentPlugin(),
|
|
153
|
-
indentPlugin(),
|
|
154
|
-
// Advanced block types
|
|
155
|
-
calloutPlugin(),
|
|
156
|
-
imagePlugin(),
|
|
157
|
-
embedPlugin(),
|
|
158
|
-
];
|
|
10
|
+
export { PRESET_PLAINTEXT } from './preset-plaintext.js';
|
|
11
|
+
export { PRESET_BASIC } from './preset-basic.js';
|
|
12
|
+
export { PRESET_STANDARD } from './preset-standard.js';
|
|
13
|
+
export { PRESET_FULL } from './preset-full.js';
|
|
159
14
|
//# sourceMappingURL=presets.js.map
|
package/dist/presets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/renderer.d.ts
CHANGED
|
@@ -122,4 +122,33 @@ export declare function renderInitial(root: HTMLElement, doc: Document, markRend
|
|
|
122
122
|
* ```
|
|
123
123
|
*/
|
|
124
124
|
export declare function reconcile(root: HTMLElement, prevDoc: Document, nextDoc: Document, composingBlockId: string | null, markRenderers?: MarkRendererRegistry, blockRenderers?: BlockRendererRegistry, blockElementMap?: Map<string, HTMLElement>): void;
|
|
125
|
+
/**
|
|
126
|
+
* Reconcile a single block element to match a new RTIF block state.
|
|
127
|
+
*
|
|
128
|
+
* Extracted from {@link reconcile} for use by the virtual viewport, which
|
|
129
|
+
* needs to reconcile individual blocks without running the full document
|
|
130
|
+
* reconciliation loop.
|
|
131
|
+
*
|
|
132
|
+
* Returns the (possibly replaced) block element. When the block type or attrs
|
|
133
|
+
* change and in-place update fails, a new element is created and the caller
|
|
134
|
+
* must update its own references (e.g., blockElementMap).
|
|
135
|
+
*
|
|
136
|
+
* @param root - The root DOM element (used for block renderer context)
|
|
137
|
+
* @param blockEl - The existing block DOM element
|
|
138
|
+
* @param prevBlock - The previous RTIF block state, or undefined if new
|
|
139
|
+
* @param nextBlock - The new RTIF block state
|
|
140
|
+
* @param composingBlockId - Block ID currently under IME composition, or null
|
|
141
|
+
* @param markRenderers - Optional registry of mark renderers
|
|
142
|
+
* @param blockRenderers - Optional registry of block renderers
|
|
143
|
+
* @returns The reconciled block element (same reference or a new replacement)
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```ts
|
|
147
|
+
* const el = reconcileBlock(root, blockEl, prevBlock, nextBlock, null, marks, blocks);
|
|
148
|
+
* if (el !== blockEl) {
|
|
149
|
+
* blockElementMap.set(nextBlock.id, el);
|
|
150
|
+
* }
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
export declare function reconcileBlock(root: HTMLElement, blockEl: HTMLElement, prevBlock: Block | undefined, nextBlock: Block, composingBlockId: string | null, markRenderers?: MarkRendererRegistry, blockRenderers?: BlockRendererRegistry): HTMLElement;
|
|
125
154
|
//# sourceMappingURL=renderer.d.ts.map
|
package/dist/renderer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAoCjE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,aAAa,CAAC,EAAE,oBAAoB,GACnC,WAAW,CA6Bb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,GACrC,cAAc,CAgBhB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GACd,WAAW,GAAG,IAAI,CAEpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,QAAQ,EACb,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,EACtC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACzC,IAAI,CAiBN;AA4HD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,QAAQ,EACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,EACtC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACzC,IAAI,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAoCjE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,aAAa,CAAC,EAAE,oBAAoB,GACnC,WAAW,CA6Bb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,GACrC,cAAc,CAgBhB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GACd,WAAW,GAAG,IAAI,CAEpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,QAAQ,EACb,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,EACtC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACzC,IAAI,CAiBN;AA4HD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,QAAQ,EACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,EACtC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACzC,IAAI,CAuFN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,KAAK,GAAG,SAAS,EAC5B,SAAS,EAAE,KAAK,EAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,qBAAqB,GACrC,WAAW,CAmEb"}
|
package/dist/renderer.js
CHANGED
|
@@ -344,90 +344,28 @@ export function reconcile(root, prevDoc, nextDoc, composingBlockId, markRenderer
|
|
|
344
344
|
const nextBlockIds = new Set();
|
|
345
345
|
// Walk next blocks in order, using a reference node cursor to minimize moves
|
|
346
346
|
let referenceNode = root.firstChild;
|
|
347
|
+
// Skip spacer nodes (from virtual viewport) so reconcile doesn't treat them as blocks
|
|
348
|
+
while (referenceNode instanceof HTMLElement &&
|
|
349
|
+
referenceNode.hasAttribute('data-rtif-spacer')) {
|
|
350
|
+
referenceNode = referenceNode.nextSibling;
|
|
351
|
+
}
|
|
347
352
|
for (const nextBlock of nextDoc.blocks) {
|
|
348
353
|
nextBlockIds.add(nextBlock.id);
|
|
349
354
|
let blockEl = existingElements.get(nextBlock.id) ?? null;
|
|
350
355
|
if (blockEl) {
|
|
351
|
-
// Block element already exists in the DOM
|
|
352
356
|
const prevBlock = prevBlockMap.get(nextBlock.id);
|
|
353
|
-
//
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
357
|
+
// Delegate content reconciliation to reconcileBlock (single source of truth).
|
|
358
|
+
// reconcileBlock handles composing skip, type/attr changes, span updates.
|
|
359
|
+
// It may return a new element if the block was fully replaced.
|
|
360
|
+
const result = reconcileBlock(root, blockEl, prevBlock, nextBlock, composingBlockId, markRenderers, blockRenderers);
|
|
361
|
+
if (result !== blockEl) {
|
|
362
|
+
existingElements.set(nextBlock.id, result);
|
|
363
|
+
blockEl = result;
|
|
364
|
+
// replaceChild already placed the new element in the old position;
|
|
365
|
+
// advance referenceNode past it.
|
|
366
|
+
referenceNode = result.nextSibling;
|
|
362
367
|
continue;
|
|
363
368
|
}
|
|
364
|
-
// Check if block changed by reference
|
|
365
|
-
if (prevBlock !== nextBlock) {
|
|
366
|
-
// If block type or attrs changed, try in-place update first
|
|
367
|
-
if (prevBlock && (prevBlock.type !== nextBlock.type || prevBlock.attrs !== nextBlock.attrs)) {
|
|
368
|
-
let didUpdate = false;
|
|
369
|
-
// If same type, try updateElement() for efficient in-place attr updates
|
|
370
|
-
if (prevBlock.type === nextBlock.type && blockRenderers) {
|
|
371
|
-
const renderer = blockRenderers.get(nextBlock.type);
|
|
372
|
-
if (renderer?.updateElement) {
|
|
373
|
-
didUpdate = renderer.updateElement(blockEl, nextBlock);
|
|
374
|
-
if (didUpdate) {
|
|
375
|
-
// Re-apply attr renderers (alignment, indent, etc.)
|
|
376
|
-
if (nextBlock.attrs) {
|
|
377
|
-
for (const [key, value] of Object.entries(nextBlock.attrs)) {
|
|
378
|
-
if (value == null)
|
|
379
|
-
continue;
|
|
380
|
-
const attrRenderer = blockRenderers.getAttrRenderer(key);
|
|
381
|
-
if (attrRenderer) {
|
|
382
|
-
attrRenderer.apply(blockEl, value);
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
// Reconcile spans separately since updateElement only handles attrs
|
|
387
|
-
const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
|
|
388
|
-
reconcileBlockSpans(container, prevBlock, nextBlock, markRenderers);
|
|
389
|
-
// Ensure correct position
|
|
390
|
-
if (blockEl !== referenceNode) {
|
|
391
|
-
root.insertBefore(blockEl, referenceNode);
|
|
392
|
-
}
|
|
393
|
-
else {
|
|
394
|
-
referenceNode = referenceNode.nextSibling;
|
|
395
|
-
}
|
|
396
|
-
continue;
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
// Fall back to full replacement if updateElement doesn't exist,
|
|
401
|
-
// returned false, or types differ
|
|
402
|
-
const newBlockEl = createBlockElement(nextBlock, markRenderers, blockRenderers);
|
|
403
|
-
root.replaceChild(newBlockEl, blockEl);
|
|
404
|
-
// Update our reference so position tracking remains correct
|
|
405
|
-
existingElements.set(nextBlock.id, newBlockEl);
|
|
406
|
-
blockEl = newBlockEl;
|
|
407
|
-
// replaceChild keeps position; advance referenceNode past replaced element
|
|
408
|
-
referenceNode = newBlockEl.nextSibling;
|
|
409
|
-
continue;
|
|
410
|
-
}
|
|
411
|
-
// Update block-type attribute if changed
|
|
412
|
-
if (blockEl.getAttribute('data-block-type') !== nextBlock.type) {
|
|
413
|
-
blockEl.setAttribute('data-block-type', nextBlock.type);
|
|
414
|
-
}
|
|
415
|
-
// Reconcile spans within this block (skip if spans are identical by reference)
|
|
416
|
-
if (prevBlock && prevBlock.spans !== nextBlock.spans) {
|
|
417
|
-
const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
|
|
418
|
-
reconcileBlockSpans(container, prevBlock, nextBlock, markRenderers);
|
|
419
|
-
}
|
|
420
|
-
else if (!prevBlock) {
|
|
421
|
-
// No previous block data — full re-render of span content
|
|
422
|
-
const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
|
|
423
|
-
while (container.firstChild) {
|
|
424
|
-
container.removeChild(container.firstChild);
|
|
425
|
-
}
|
|
426
|
-
for (const span of nextBlock.spans) {
|
|
427
|
-
container.appendChild(createSpanElement(span, markRenderers));
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
369
|
// Ensure correct position
|
|
432
370
|
if (blockEl !== referenceNode) {
|
|
433
371
|
root.insertBefore(blockEl, referenceNode);
|
|
@@ -458,4 +396,96 @@ export function reconcile(root, prevDoc, nextDoc, composingBlockId, markRenderer
|
|
|
458
396
|
}
|
|
459
397
|
}
|
|
460
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* Reconcile a single block element to match a new RTIF block state.
|
|
401
|
+
*
|
|
402
|
+
* Extracted from {@link reconcile} for use by the virtual viewport, which
|
|
403
|
+
* needs to reconcile individual blocks without running the full document
|
|
404
|
+
* reconciliation loop.
|
|
405
|
+
*
|
|
406
|
+
* Returns the (possibly replaced) block element. When the block type or attrs
|
|
407
|
+
* change and in-place update fails, a new element is created and the caller
|
|
408
|
+
* must update its own references (e.g., blockElementMap).
|
|
409
|
+
*
|
|
410
|
+
* @param root - The root DOM element (used for block renderer context)
|
|
411
|
+
* @param blockEl - The existing block DOM element
|
|
412
|
+
* @param prevBlock - The previous RTIF block state, or undefined if new
|
|
413
|
+
* @param nextBlock - The new RTIF block state
|
|
414
|
+
* @param composingBlockId - Block ID currently under IME composition, or null
|
|
415
|
+
* @param markRenderers - Optional registry of mark renderers
|
|
416
|
+
* @param blockRenderers - Optional registry of block renderers
|
|
417
|
+
* @returns The reconciled block element (same reference or a new replacement)
|
|
418
|
+
*
|
|
419
|
+
* @example
|
|
420
|
+
* ```ts
|
|
421
|
+
* const el = reconcileBlock(root, blockEl, prevBlock, nextBlock, null, marks, blocks);
|
|
422
|
+
* if (el !== blockEl) {
|
|
423
|
+
* blockElementMap.set(nextBlock.id, el);
|
|
424
|
+
* }
|
|
425
|
+
* ```
|
|
426
|
+
*/
|
|
427
|
+
export function reconcileBlock(root, blockEl, prevBlock, nextBlock, composingBlockId, markRenderers, blockRenderers) {
|
|
428
|
+
// Skip composing block entirely
|
|
429
|
+
if (nextBlock.id === composingBlockId) {
|
|
430
|
+
return blockEl;
|
|
431
|
+
}
|
|
432
|
+
// Check if block changed by reference
|
|
433
|
+
if (prevBlock === nextBlock) {
|
|
434
|
+
return blockEl;
|
|
435
|
+
}
|
|
436
|
+
// If block type or attrs changed, try in-place update first
|
|
437
|
+
if (prevBlock && (prevBlock.type !== nextBlock.type || prevBlock.attrs !== nextBlock.attrs)) {
|
|
438
|
+
// If same type, try updateElement() for efficient in-place attr updates
|
|
439
|
+
if (prevBlock.type === nextBlock.type && blockRenderers) {
|
|
440
|
+
const renderer = blockRenderers.get(nextBlock.type);
|
|
441
|
+
if (renderer?.updateElement) {
|
|
442
|
+
const didUpdate = renderer.updateElement(blockEl, nextBlock);
|
|
443
|
+
if (didUpdate) {
|
|
444
|
+
// Re-apply attr renderers (alignment, indent, etc.)
|
|
445
|
+
if (nextBlock.attrs) {
|
|
446
|
+
for (const [key, value] of Object.entries(nextBlock.attrs)) {
|
|
447
|
+
if (value == null)
|
|
448
|
+
continue;
|
|
449
|
+
const attrRenderer = blockRenderers.getAttrRenderer(key);
|
|
450
|
+
if (attrRenderer) {
|
|
451
|
+
attrRenderer.apply(blockEl, value);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
// Reconcile spans separately since updateElement only handles attrs
|
|
456
|
+
const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
|
|
457
|
+
reconcileBlockSpans(container, prevBlock, nextBlock, markRenderers);
|
|
458
|
+
return blockEl;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
// Fall back to full replacement if updateElement doesn't exist,
|
|
463
|
+
// returned false, or types differ
|
|
464
|
+
const newBlockEl = createBlockElement(nextBlock, markRenderers, blockRenderers);
|
|
465
|
+
if (blockEl.parentNode) {
|
|
466
|
+
blockEl.parentNode.replaceChild(newBlockEl, blockEl);
|
|
467
|
+
}
|
|
468
|
+
return newBlockEl;
|
|
469
|
+
}
|
|
470
|
+
// Update block-type attribute if changed
|
|
471
|
+
if (blockEl.getAttribute('data-block-type') !== nextBlock.type) {
|
|
472
|
+
blockEl.setAttribute('data-block-type', nextBlock.type);
|
|
473
|
+
}
|
|
474
|
+
// Reconcile spans within this block (skip if spans are identical by reference)
|
|
475
|
+
if (prevBlock && prevBlock.spans !== nextBlock.spans) {
|
|
476
|
+
const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
|
|
477
|
+
reconcileBlockSpans(container, prevBlock, nextBlock, markRenderers);
|
|
478
|
+
}
|
|
479
|
+
else if (!prevBlock) {
|
|
480
|
+
// No previous block data — full re-render of span content
|
|
481
|
+
const container = getSpanContainer(blockEl, nextBlock.type, blockRenderers);
|
|
482
|
+
while (container.firstChild) {
|
|
483
|
+
container.removeChild(container.firstChild);
|
|
484
|
+
}
|
|
485
|
+
for (const span of nextBlock.spans) {
|
|
486
|
+
container.appendChild(createSpanElement(span, markRenderers));
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
return blockEl;
|
|
490
|
+
}
|
|
461
491
|
//# sourceMappingURL=renderer.js.map
|
package/dist/renderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
|