@one2x/medeo-rte 0.0.0-stage → 0.1.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/README.md +209 -2
- package/dist/chunks/types-I0yc5X7i.js +18 -0
- package/dist/chunks/types-I0yc5X7i.js.map +1 -0
- package/dist/formula.js +186 -0
- package/dist/formula.js.map +1 -0
- package/dist/index.js +5503 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +718 -0
- package/dist/types/commands/index.d.ts +4 -0
- package/dist/types/commands/index.d.ts.map +1 -0
- package/dist/types/commands/selfcheck.d.ts +2 -0
- package/dist/types/commands/selfcheck.d.ts.map +1 -0
- package/dist/types/commands/shortcuts.d.ts +48 -0
- package/dist/types/commands/shortcuts.d.ts.map +1 -0
- package/dist/types/commands/types.d.ts +69 -0
- package/dist/types/commands/types.d.ts.map +1 -0
- package/dist/types/convert/clipboard.d.ts +7 -0
- package/dist/types/convert/clipboard.d.ts.map +1 -0
- package/dist/types/convert/markdown.d.ts +30 -0
- package/dist/types/convert/markdown.d.ts.map +1 -0
- package/dist/types/convert/mdPaste.d.ts +8 -0
- package/dist/types/convert/mdPaste.d.ts.map +1 -0
- package/dist/types/editor.d.ts +469 -0
- package/dist/types/editor.d.ts.map +1 -0
- package/dist/types/edits/editResult.d.ts +62 -0
- package/dist/types/edits/editResult.d.ts.map +1 -0
- package/dist/types/edits/index.d.ts +12 -0
- package/dist/types/edits/index.d.ts.map +1 -0
- package/dist/types/edits/selfcheck.d.ts +2 -0
- package/dist/types/edits/selfcheck.d.ts.map +1 -0
- package/dist/types/edits/transaction.d.ts +35 -0
- package/dist/types/edits/transaction.d.ts.map +1 -0
- package/dist/types/edits/undoStack.d.ts +50 -0
- package/dist/types/edits/undoStack.d.ts.map +1 -0
- package/dist/types/embed/code.d.ts +9 -0
- package/dist/types/embed/code.d.ts.map +1 -0
- package/dist/types/embed/formula-katex.d.ts +4 -0
- package/dist/types/embed/formula-katex.d.ts.map +1 -0
- package/dist/types/embed/formula-mathlive.d.ts +6 -0
- package/dist/types/embed/formula-mathlive.d.ts.map +1 -0
- package/dist/types/embed/formula.d.ts +8 -0
- package/dist/types/embed/formula.d.ts.map +1 -0
- package/dist/types/embed/host.d.ts +70 -0
- package/dist/types/embed/host.d.ts.map +1 -0
- package/dist/types/embed/image.d.ts +3 -0
- package/dist/types/embed/image.d.ts.map +1 -0
- package/dist/types/embed/index.d.ts +20 -0
- package/dist/types/embed/index.d.ts.map +1 -0
- package/dist/types/embed/ref.d.ts +25 -0
- package/dist/types/embed/ref.d.ts.map +1 -0
- package/dist/types/embed/registry.d.ts +6 -0
- package/dist/types/embed/registry.d.ts.map +1 -0
- package/dist/types/embed/slot.d.ts +15 -0
- package/dist/types/embed/slot.d.ts.map +1 -0
- package/dist/types/embed/types.d.ts +53 -0
- package/dist/types/embed/types.d.ts.map +1 -0
- package/dist/types/embed/video.d.ts +3 -0
- package/dist/types/embed/video.d.ts.map +1 -0
- package/dist/types/formula.d.ts +15 -0
- package/dist/types/formula.d.ts.map +1 -0
- package/dist/types/index.d.ts +39 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/input/ime.d.ts +27 -0
- package/dist/types/input/ime.d.ts.map +1 -0
- package/dist/types/input/keyboard.d.ts +21 -0
- package/dist/types/input/keyboard.d.ts.map +1 -0
- package/dist/types/layout/engine.d.ts +55 -0
- package/dist/types/layout/engine.d.ts.map +1 -0
- package/dist/types/layout/harness.d.ts +3 -0
- package/dist/types/layout/harness.d.ts.map +1 -0
- package/dist/types/layout/measure.d.ts +37 -0
- package/dist/types/layout/measure.d.ts.map +1 -0
- package/dist/types/layout/refMetrics.d.ts +5 -0
- package/dist/types/layout/refMetrics.d.ts.map +1 -0
- package/dist/types/layout/selfcheck.d.ts +2 -0
- package/dist/types/layout/selfcheck.d.ts.map +1 -0
- package/dist/types/layout/style.d.ts +4 -0
- package/dist/types/layout/style.d.ts.map +1 -0
- package/dist/types/layout/types.d.ts +133 -0
- package/dist/types/layout/types.d.ts.map +1 -0
- package/dist/types/layout/wrap.d.ts +65 -0
- package/dist/types/layout/wrap.d.ts.map +1 -0
- package/dist/types/model/blocks.d.ts +66 -0
- package/dist/types/model/blocks.d.ts.map +1 -0
- package/dist/types/model/document.d.ts +102 -0
- package/dist/types/model/document.d.ts.map +1 -0
- package/dist/types/model/fragment.d.ts +7 -0
- package/dist/types/model/fragment.d.ts.map +1 -0
- package/dist/types/model/markers.d.ts +14 -0
- package/dist/types/model/markers.d.ts.map +1 -0
- package/dist/types/model/types.d.ts +155 -0
- package/dist/types/model/types.d.ts.map +1 -0
- package/dist/types/model/virtualBlock.d.ts +44 -0
- package/dist/types/model/virtualBlock.d.ts.map +1 -0
- package/dist/types/mutations/apply.d.ts +14 -0
- package/dist/types/mutations/apply.d.ts.map +1 -0
- package/dist/types/mutations/index.d.ts +15 -0
- package/dist/types/mutations/index.d.ts.map +1 -0
- package/dist/types/mutations/invert.d.ts +21 -0
- package/dist/types/mutations/invert.d.ts.map +1 -0
- package/dist/types/mutations/ranges.d.ts +39 -0
- package/dist/types/mutations/ranges.d.ts.map +1 -0
- package/dist/types/mutations/registry.d.ts +27 -0
- package/dist/types/mutations/registry.d.ts.map +1 -0
- package/dist/types/mutations/selection.d.ts +12 -0
- package/dist/types/mutations/selection.d.ts.map +1 -0
- package/dist/types/mutations/selfcheck.d.ts +2 -0
- package/dist/types/mutations/selfcheck.d.ts.map +1 -0
- package/dist/types/mutations/transform.d.ts +33 -0
- package/dist/types/mutations/transform.d.ts.map +1 -0
- package/dist/types/mutations/types.d.ts +128 -0
- package/dist/types/mutations/types.d.ts.map +1 -0
- package/dist/types/operations/context.d.ts +47 -0
- package/dist/types/operations/context.d.ts.map +1 -0
- package/dist/types/operations/entity.d.ts +18 -0
- package/dist/types/operations/entity.d.ts.map +1 -0
- package/dist/types/operations/harness.d.ts +54 -0
- package/dist/types/operations/harness.d.ts.map +1 -0
- package/dist/types/operations/index.d.ts +20 -0
- package/dist/types/operations/index.d.ts.map +1 -0
- package/dist/types/operations/primitives.d.ts +35 -0
- package/dist/types/operations/primitives.d.ts.map +1 -0
- package/dist/types/operations/resolve.d.ts +31 -0
- package/dist/types/operations/resolve.d.ts.map +1 -0
- package/dist/types/operations/selfcheck.d.ts +2 -0
- package/dist/types/operations/selfcheck.d.ts.map +1 -0
- package/dist/types/operations/slice.d.ts +28 -0
- package/dist/types/operations/slice.d.ts.map +1 -0
- package/dist/types/operations/style.d.ts +20 -0
- package/dist/types/operations/style.d.ts.map +1 -0
- package/dist/types/operations/table.d.ts +14 -0
- package/dist/types/operations/table.d.ts.map +1 -0
- package/dist/types/operations/text.d.ts +20 -0
- package/dist/types/operations/text.d.ts.map +1 -0
- package/dist/types/operations/virtualBlock.d.ts +44 -0
- package/dist/types/operations/virtualBlock.d.ts.map +1 -0
- package/dist/types/paint/canvasPainter.d.ts +37 -0
- package/dist/types/paint/canvasPainter.d.ts.map +1 -0
- package/dist/types/paint/decorations.d.ts +19 -0
- package/dist/types/paint/decorations.d.ts.map +1 -0
- package/dist/types/paint/htmlPainter.d.ts +19 -0
- package/dist/types/paint/htmlPainter.d.ts.map +1 -0
- package/dist/types/paint/types.d.ts +36 -0
- package/dist/types/paint/types.d.ts.map +1 -0
- package/package.json +64 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EditResult —— 一次用户操作的完整记录。
|
|
3
|
+
*
|
|
4
|
+
* 同时存**正向**和**逆向**两串 mutation:逆向是在应用正向的当时算出来的,
|
|
5
|
+
* 因为很多逆操作(比如删除的逆)必须读到删之前的文档才能算。等到要撤销时
|
|
6
|
+
* 再算就晚了。
|
|
7
|
+
*/
|
|
8
|
+
import { Selection } from '../model/types';
|
|
9
|
+
import { Mutation } from '../mutations';
|
|
10
|
+
/**
|
|
11
|
+
* 编辑种类。新增一种编辑必须先在这里登记 —— 因为撤销的合并规则是按 kind 查的,
|
|
12
|
+
* 漏登记会让新编辑落到默认的「不合并」上,症状很隐蔽。
|
|
13
|
+
*/
|
|
14
|
+
export type EditKind = 'insert.text' | 'insert.paragraph' | 'insert.paste' | 'delete.backward' | 'delete.forward' | 'delete.selection' | 'style.text' | 'style.paragraph' | 'style.link' | 'embed.insert' | 'embed.update' | 'embed.resize' | 'embed.delete' | 'table.insert' | 'table.structure' | 'table.colWidth' | 'table.clearCells' | 'ref.promote' | 'ref.insert' | 'ref.unlink' | 'vblock.insert' | 'vblock.update' | 'vblock.remove';
|
|
15
|
+
/** 某个种类的默认合并键。同键才合并,null 表示永不合并。 */
|
|
16
|
+
export declare function mergeKeyFor(kind: EditKind, scope: string | null): string | null;
|
|
17
|
+
export interface EditMeta {
|
|
18
|
+
kind: EditKind;
|
|
19
|
+
/** 相同且非 null 才允许与相邻一步合并成同一步撤销;null 表示永不合并。 */
|
|
20
|
+
mergeKey: string | null;
|
|
21
|
+
/** 本地产生的还是远端同步过来的。只有本地的才能被撤销。 */
|
|
22
|
+
local: boolean;
|
|
23
|
+
/** 是否占一步撤销。某些操作(如纯元数据变更)不占。 */
|
|
24
|
+
undoable: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* 这次编辑发生在哪个片段的坐标空间里,null 表示主文档。
|
|
27
|
+
* 选区字段属于这个空间,撤销时要照它决定把选区还给谁。
|
|
28
|
+
*/
|
|
29
|
+
scope: string | null;
|
|
30
|
+
}
|
|
31
|
+
export interface EditResult {
|
|
32
|
+
/** 正向操作 */
|
|
33
|
+
mutations: Mutation[];
|
|
34
|
+
/** 逆向操作,已按相反顺序排好,可直接依次执行 */
|
|
35
|
+
inverse: Mutation[];
|
|
36
|
+
selectionBefore: Selection;
|
|
37
|
+
selectionAfter: Selection;
|
|
38
|
+
meta: EditMeta;
|
|
39
|
+
}
|
|
40
|
+
export declare function editMeta(init: Partial<EditMeta> & {
|
|
41
|
+
kind: EditKind;
|
|
42
|
+
}): EditMeta;
|
|
43
|
+
export declare function editResult(init: {
|
|
44
|
+
mutations: Mutation | Mutation[];
|
|
45
|
+
inverse: Mutation | Mutation[];
|
|
46
|
+
selectionBefore: Selection;
|
|
47
|
+
selectionAfter: Selection;
|
|
48
|
+
meta: Partial<EditMeta> & {
|
|
49
|
+
kind: EditKind;
|
|
50
|
+
};
|
|
51
|
+
}): EditResult;
|
|
52
|
+
export declare function isEmptyEdit(e: EditResult): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* 合并相邻两步(连续输入合成一步撤销)。
|
|
55
|
+
*
|
|
56
|
+
* 正向按时间顺序拼接;逆向要**倒过来**拼 —— 撤销一组操作得从最后一条开始退。
|
|
57
|
+
* 选区取首尾:撤销后回到第一步之前的位置。
|
|
58
|
+
*/
|
|
59
|
+
export declare function mergeEdits(first: EditResult, second: EditResult): EditResult;
|
|
60
|
+
/** 交换正逆两串,得到「撤销这一步」本身作为一步操作。 */
|
|
61
|
+
export declare function invertEdit(e: EditResult): EditResult;
|
|
62
|
+
//# sourceMappingURL=editResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editResult.d.ts","sourceRoot":"","sources":["../../../src/edits/editResult.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAmB,MAAM,cAAc,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAChB,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,GAClB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,eAAe,GACf,eAAe,CAAC;AAepB,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAI/E;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iCAAiC;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,4BAA4B;IAC5B,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,eAAe,EAAE,SAAS,CAAC;IAC3B,cAAc,EAAE,SAAS,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,QAAQ,CAS/E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IACjC,OAAO,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC;IAC3B,cAAc,EAAE,SAAS,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;CAC9C,GAAG,UAAU,CAUb;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAY5E;AAED,gCAAgC;AAChC,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,CAQpD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edit 层出口。
|
|
3
|
+
*
|
|
4
|
+
* 一次用户操作 = 一个事务,产出 EditResult。撤销栈消费 EditResult。
|
|
5
|
+
* 事务入口(EditKind / runEdit)在阶段 2 补齐。
|
|
6
|
+
*/
|
|
7
|
+
export type { EditKind, EditMeta, EditResult } from './editResult';
|
|
8
|
+
export { editMeta, editResult, invertEdit, isEmptyEdit, mergeEdits, mergeKeyFor } from './editResult';
|
|
9
|
+
export type { EditOutcome } from './transaction';
|
|
10
|
+
export { runEdit, runScoped } from './transaction';
|
|
11
|
+
export { UNDO_BATCH_MS, UndoRedoStack } from './undoStack';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/edits/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtG,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfcheck.d.ts","sourceRoot":"","sources":["../../../src/edits/selfcheck.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 编辑事务 —— 一次用户操作的边界。
|
|
3
|
+
*
|
|
4
|
+
* 事务干的事:起一个 Operation 上下文、把里面产生的操作串收起来、包成一条
|
|
5
|
+
* `EditResult` 交给撤销栈。它不碰 UI,也不决定要做什么编辑,所以宿主和自检
|
|
6
|
+
* 能走同一条路径。
|
|
7
|
+
*
|
|
8
|
+
* 选区在事务期间归上下文管:Operation 用 `ctx.select` 落点,事务结束时一并交回。
|
|
9
|
+
* 这样撤销栈拿到的「操作前/操作后选区」和操作串是同一份数据里配套的。
|
|
10
|
+
*/
|
|
11
|
+
import { DocumentModel } from '../model/document';
|
|
12
|
+
import { Selection } from '../model/types';
|
|
13
|
+
import { Operation, OperationContext, OperationRun } from '../operations';
|
|
14
|
+
import { EditKind, EditMeta, EditResult } from './editResult';
|
|
15
|
+
export interface EditOutcome {
|
|
16
|
+
/** 这次编辑的记录。没有产生任何变更时是 null,不该进撤销栈。 */
|
|
17
|
+
edit: EditResult | null;
|
|
18
|
+
/** 事务结束时的选区,属于 `meta.scope` 指定的坐标空间。 */
|
|
19
|
+
selectionAfter: Selection;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 在指定坐标空间里跑一段 Operation,不包装成编辑记录。
|
|
23
|
+
*
|
|
24
|
+
* `scope` 非空时上下文先切到该片段的坐标空间 —— Operation 原样复用,发出的
|
|
25
|
+
* mutation 自动包上 `scoped`。拖拽预览这类不进撤销栈的改动直接用它。
|
|
26
|
+
*/
|
|
27
|
+
export declare function runScoped<R>(doc: DocumentModel, selection: Selection, scope: string | null, op: Operation<R>): {
|
|
28
|
+
run: OperationRun;
|
|
29
|
+
result: R;
|
|
30
|
+
};
|
|
31
|
+
/** 跑一次编辑事务,产出一条能进撤销栈的记录。 */
|
|
32
|
+
export declare function runEdit(doc: DocumentModel, selection: Selection, meta: Partial<EditMeta> & {
|
|
33
|
+
kind: EditKind;
|
|
34
|
+
}, run: (ctx: OperationContext) => void): EditOutcome;
|
|
35
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/edits/transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAA8B,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAc,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,wCAAwC;IACxC,cAAc,EAAE,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GACf;IAAE,GAAG,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAElC;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CACrB,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,EAC5C,GAAG,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,GACnC,WAAW,CAgBb"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 撤销栈。
|
|
3
|
+
*
|
|
4
|
+
* 与「存整篇快照」的做法相比,这里存的是操作对,所以两件事成为可能:
|
|
5
|
+
* 一是连续输入能在时间窗口内合并成一步;二是撤销时能把逆操作变换到
|
|
6
|
+
* 「协作者的改动已经落地」之后的坐标系里,撤销自己的编辑不会误伤别人的。
|
|
7
|
+
*
|
|
8
|
+
* 栈顶是下标 0(最近一步),与遍历「比它更新的操作」的写法配合更自然。
|
|
9
|
+
*/
|
|
10
|
+
import { Selection } from '../model/types';
|
|
11
|
+
import { EditResult } from './editResult';
|
|
12
|
+
/** 连续输入的合并窗口。超过这个间隔就另起一步。 */
|
|
13
|
+
export declare const UNDO_BATCH_MS = 2000;
|
|
14
|
+
export declare class UndoRedoStack {
|
|
15
|
+
private undos;
|
|
16
|
+
private redos;
|
|
17
|
+
private lastPushAt;
|
|
18
|
+
private batchOpen;
|
|
19
|
+
private now;
|
|
20
|
+
constructor(now?: () => number);
|
|
21
|
+
get canUndo(): boolean;
|
|
22
|
+
get canRedo(): boolean;
|
|
23
|
+
clear(): void;
|
|
24
|
+
/** 选区被用户主动移动时调用,打断合并窗口。 */
|
|
25
|
+
resetBatching(): void;
|
|
26
|
+
push(edit: EditResult): void;
|
|
27
|
+
/**
|
|
28
|
+
* 取出下一步要撤销的操作,已变换到当前坐标系。
|
|
29
|
+
*
|
|
30
|
+
* 栈里可能夹着协作者的操作,所以不能直接弹栈顶:要找到最近一条本地可撤销的,
|
|
31
|
+
* 把它的逆操作依次穿过它上面那些更新的操作,同时把那些操作也反向变换一遍
|
|
32
|
+
* (它们的坐标系因为这次撤销也变了,留在栈里下次还要用)。
|
|
33
|
+
*/
|
|
34
|
+
popForUndo(): EditResult | null;
|
|
35
|
+
popForRedo(): EditResult | null;
|
|
36
|
+
/**
|
|
37
|
+
* 把 target 变换到「栈中第 i 条(更新的那条)已应用」之后,
|
|
38
|
+
* 同时把第 i 条变换到「target 被撤销」之后。
|
|
39
|
+
*/
|
|
40
|
+
private rebase;
|
|
41
|
+
/** 远端操作落地后,把栈里所有本地操作变换到新坐标系。 */
|
|
42
|
+
rebaseAgainstRemote(remote: EditResult): void;
|
|
43
|
+
/** 调试用:当前撤销栈里各步的操作条数。 */
|
|
44
|
+
describe(): {
|
|
45
|
+
undos: number[];
|
|
46
|
+
redos: number[];
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export type { EditResult, Selection };
|
|
50
|
+
//# sourceMappingURL=undoStack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"undoStack.d.ts","sourceRoot":"","sources":["../../../src/edits/undoStack.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAuC,MAAM,cAAc,CAAC;AAG/E,6BAA6B;AAC7B,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,GAAG,CAAe;gBAEd,GAAG,GAAE,MAAM,MAAyB;IAIhD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,KAAK;IAML,2BAA2B;IAC3B,aAAa;IAIb,IAAI,CAAC,IAAI,EAAE,UAAU;IA0BrB;;;;;;OAMG;IACH,UAAU,IAAI,UAAU,GAAG,IAAI;IAgB/B,UAAU,IAAI,UAAU,GAAG,IAAI;IAQ/B;;;OAGG;IACH,OAAO,CAAC,MAAM;IAqBd,gCAAgC;IAChC,mBAAmB,CAAC,MAAM,EAAE,UAAU;IAqBtC,yBAAyB;IACzB,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE;CAMjD;AAED,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EmbedEntity } from '../model/types';
|
|
2
|
+
import { EmbedPlugin } from './types';
|
|
3
|
+
export declare const CODE_LANGUAGES: readonly ["plain", "javascript", "typescript", "python", "json", "html", "css"];
|
|
4
|
+
export declare function measureCode(entity: EmbedEntity, contentWidth: number): {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const codePlugin: EmbedPlugin;
|
|
9
|
+
//# sourceMappingURL=code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../../src/embed/code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAY,WAAW,EAAmB,MAAM,SAAS,CAAC;AAEjE,eAAO,MAAM,cAAc,iFAAkF,CAAC;AAK9G,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAIxG;AAED,eAAO,MAAM,UAAU,EAAE,WAgDxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-katex.d.ts","sourceRoot":"","sources":["../../../src/embed/formula-katex.ts"],"names":[],"mappings":"AACA,OAAO,0BAA0B,CAAC;AAuBlC,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQpE;AAyDD,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,QAajF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { MathfieldElement } from 'mathlive';
|
|
2
|
+
import 'mathlive/fonts.css';
|
|
3
|
+
export type FormulaMathfield = MathfieldElement;
|
|
4
|
+
export declare function createFormulaMathfield(): FormulaMathfield;
|
|
5
|
+
export declare function mathfieldLatex(field: FormulaMathfield): string;
|
|
6
|
+
//# sourceMappingURL=formula-mathlive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-mathlive.d.ts","sourceRoot":"","sources":["../../../src/embed/formula-mathlive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,oBAAoB,CAAC;AAK5B,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,wBAAgB,sBAAsB,IAAI,gBAAgB,CAKzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAE9D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EmbedEntity } from '../model/types';
|
|
2
|
+
import { EmbedPlugin } from './types';
|
|
3
|
+
export declare function measureFormula(entity: EmbedEntity, contentWidth: number): {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const formulaPlugin: EmbedPlugin;
|
|
8
|
+
//# sourceMappingURL=formula.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../../src/embed/formula.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAA6B,WAAW,EAAmB,MAAM,SAAS,CAAC;AAElF,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAe3G;AAMD,eAAO,MAAM,aAAa,EAAE,WAwI3B,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { EmbedEntity } from '../model/types';
|
|
2
|
+
import { EmbedPlugin } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* 宿主渲染型嵌入对象。
|
|
5
|
+
*
|
|
6
|
+
* 与内置的自绘型嵌入对象(image/slot/ref 等由 SDK 自己建 DOM、自己画)不同,
|
|
7
|
+
* host 型把节点内部 DOM 的渲染权交给宿主:SDK 只负责在文本流里占一个字符位、
|
|
8
|
+
* 用 measure 得到的尺寸给它绝对定位、并管理它的挂载/更新/卸载生命周期;节点里
|
|
9
|
+
* 具体画什么由宿主提供的 {@link HostEmbedRenderer} 决定。宿主据此把自己框架
|
|
10
|
+
* (axii / React 等)的业务组件 render 进 SDK 交出的容器里。
|
|
11
|
+
*
|
|
12
|
+
* 数据是引用式的:实体 {@link EmbedEntity.data} 里通常只存业务对象的引用 id,
|
|
13
|
+
* 完整数据与状态由宿主自己的 store 维护、自行 resolve。数据变化经宿主回调写回
|
|
14
|
+
* 实体(复用 EMBED_CHANGE / EMBED_COMMIT 事件回路),尺寸变化经 requestResize
|
|
15
|
+
* 通知 SDK 重排。
|
|
16
|
+
*/
|
|
17
|
+
/** SDK 交给宿主渲染器的上下文,随实体/选中态变化。 */
|
|
18
|
+
export interface HostEmbedContext {
|
|
19
|
+
/** 当前实体(含 hostType / data 等业务字段)。 */
|
|
20
|
+
entity: EmbedEntity;
|
|
21
|
+
/** 该嵌入对象当前是否被选中(外层光标选区覆盖它)。 */
|
|
22
|
+
selected: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* 写回实体数据。commit=false 为预览(不进撤销栈),commit=true 落定(进撤销栈)。
|
|
25
|
+
* patch 可含 data / width / height 等实体字段。
|
|
26
|
+
*/
|
|
27
|
+
emitChange(patch: Partial<EmbedEntity>, commit?: boolean): void;
|
|
28
|
+
/** 宿主渲染后尺寸确定/变化时调用,通知 SDK 用新尺寸重排。 */
|
|
29
|
+
requestResize(width: number, height: number): void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 选中 host 后按键激活。引擎不解释业务 UI(下拉等),只问宿主要不要吞掉这次按键。
|
|
33
|
+
* 返回 true:已处理,不再插段;false / 未实现:按默认换行。
|
|
34
|
+
*/
|
|
35
|
+
export interface HostActivateRequest {
|
|
36
|
+
key: 'Enter';
|
|
37
|
+
shift: boolean;
|
|
38
|
+
}
|
|
39
|
+
/** 一次 mount 返回的句柄,供 SDK 在实体/选中态变化和卸载时调用。 */
|
|
40
|
+
export interface HostEmbedHandle {
|
|
41
|
+
/** 实体或选中态变化时,SDK 调它同步宿主渲染。 */
|
|
42
|
+
update(ctx: HostEmbedContext): void;
|
|
43
|
+
/** 节点从文档移除时,SDK 调它清理宿主侧资源(卸载组件、解绑等)。 */
|
|
44
|
+
destroy(): void;
|
|
45
|
+
/**
|
|
46
|
+
* 整颗选中时的激活(对齐公式 Enter 进编辑)。省略则选中回车仍插段。
|
|
47
|
+
*/
|
|
48
|
+
activate?(req: HostActivateRequest): boolean;
|
|
49
|
+
}
|
|
50
|
+
/** 宿主渲染器:把业务组件挂进 SDK 交出的容器。由构造 Editor 时通过 options 注入。 */
|
|
51
|
+
export interface HostEmbedRenderer {
|
|
52
|
+
/**
|
|
53
|
+
* 把业务组件渲染进 container。container 是 SDK 建好的空节点,已做好占位与定位。
|
|
54
|
+
* 返回句柄供后续 update / destroy。
|
|
55
|
+
*/
|
|
56
|
+
mount(container: HTMLElement, ctx: HostEmbedContext): HostEmbedHandle;
|
|
57
|
+
}
|
|
58
|
+
export declare function setHostEmbedRenderer(r: HostEmbedRenderer | null): void;
|
|
59
|
+
/**
|
|
60
|
+
* 光标选中变化时打标并通知宿主。排版层不会每次重排,所以不能只靠 plugin.update。
|
|
61
|
+
* 按实体 id 找句柄,并把 selected 直接写进 ctx,不依赖 data-entity 对得上。
|
|
62
|
+
*/
|
|
63
|
+
export declare function decorateHostEl(el: HTMLElement, selected: boolean): void;
|
|
64
|
+
export declare function syncHostSelected(selectedId: string | null): void;
|
|
65
|
+
export declare const hostEmbedPlugin: EmbedPlugin;
|
|
66
|
+
/** 选中 host 按 Enter:转给该实体的 {@link HostEmbedHandle.activate}。 */
|
|
67
|
+
export declare function activateHostEmbed(id: string, req: HostActivateRequest): boolean;
|
|
68
|
+
/** host 块从文档移除时清理:停掉自动测尺、卸载宿主组件、释放记录。 */
|
|
69
|
+
export declare function destroyHostEmbed(el: HTMLElement): void;
|
|
70
|
+
//# sourceMappingURL=host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/embed/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAA8F,WAAW,EAAE,MAAM,SAAS,CAAC;AAElI;;;;;;;;;;;;;GAaG;AAEH,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChE,qCAAqC;IACrC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,wCAAwC;IACxC,OAAO,IAAI,IAAI,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC;CAC9C;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,gBAAgB,GAAG,eAAe,CAAC;CACvE;AAKD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,iBAAiB,GAAG,IAAI,QAE/D;AAqDD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,QAOhE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,QAIzD;AAwCD,eAAO,MAAM,eAAe,EAAE,WAgD7B,CAAC;AAEF,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAE/E;AAED,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,WAAW,QAQ/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/embed/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,WAAW,EAAE,WAoCzB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { codePlugin } from './code';
|
|
2
|
+
import { imagePlugin } from './image';
|
|
3
|
+
import { refPlugin } from './ref';
|
|
4
|
+
import { slotPlugin } from './slot';
|
|
5
|
+
import { EmbedPlugin } from './types';
|
|
6
|
+
import { videoPlugin } from './video';
|
|
7
|
+
/**
|
|
8
|
+
* 默认内置插件。不含公式 —— 公式依赖 KaTeX / MathLive,体积很大,
|
|
9
|
+
* 需要时从 `medeo-rte/formula` 单独引入再传给 Editor。
|
|
10
|
+
*/
|
|
11
|
+
export declare const builtinEmbedPlugins: EmbedPlugin[];
|
|
12
|
+
export { codePlugin, imagePlugin, refPlugin, slotPlugin, videoPlugin };
|
|
13
|
+
export { hostEmbedPlugin, setHostEmbedRenderer, destroyHostEmbed, activateHostEmbed, decorateHostEl, syncHostSelected } from './host';
|
|
14
|
+
export type { HostEmbedRenderer, HostEmbedContext, HostEmbedHandle, HostActivateRequest } from './host';
|
|
15
|
+
export { embedPlugin, registerEmbed, syncEmbedLayer } from './registry';
|
|
16
|
+
export { measureCode } from './code';
|
|
17
|
+
export { decorateRefEl, measureRef, REF_HEAD, REF_HIT, REF_JUMP, REF_PAD, refInnerWidth } from './ref';
|
|
18
|
+
export { defaultSlotLabel, measureSlot } from './slot';
|
|
19
|
+
export { EMBED_CHANGE, EMBED_COMMIT, EMBED_EXIT_EDIT, EMBED_MEASURE, type EmbedBox, type EmbedChangeDetail, type EmbedExitDetail, type EmbedMeasureDetail, type EmbedPlugin } from './types';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/embed/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAM5C,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACtI,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DocumentModel } from '../model/document';
|
|
2
|
+
import { EmbedPlugin } from './types';
|
|
3
|
+
export { REF_HEAD, REF_PAD, refInnerWidth } from '../layout/refMetrics';
|
|
4
|
+
export declare const REF_JUMP = "mini-ref-jump";
|
|
5
|
+
export declare const REF_HIT = "mini-ref-hit";
|
|
6
|
+
export interface RefJumpDetail {
|
|
7
|
+
id: string;
|
|
8
|
+
fragmentId: string;
|
|
9
|
+
}
|
|
10
|
+
export interface RefHitDetail {
|
|
11
|
+
id: string;
|
|
12
|
+
fragmentId: string;
|
|
13
|
+
localX: number;
|
|
14
|
+
localY: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function measureRef(entity: {
|
|
17
|
+
fragmentId?: string;
|
|
18
|
+
width?: number;
|
|
19
|
+
}, contentWidth: number, host?: DocumentModel): {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
};
|
|
23
|
+
export declare const refPlugin: EmbedPlugin;
|
|
24
|
+
export declare function decorateRefEl(el: HTMLElement, count: number, title: string, editing: boolean, selected?: boolean): void;
|
|
25
|
+
//# sourceMappingURL=ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../src/embed/ref.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAY,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AACxC,eAAO,MAAM,OAAO,iBAAiB,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAgBD,wBAAgB,UAAU,CACxB,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/C,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,aAAa,GACnB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CASnC;AAgGD,eAAO,MAAM,SAAS,EAAE,WA0DvB,CAAC;AAeF,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,UAAQ,QAO9G"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EmbedKind } from '../model/types';
|
|
2
|
+
import { EmbedBox, EmbedPlugin } from './types';
|
|
3
|
+
export declare function registerEmbed(plugin: EmbedPlugin): void;
|
|
4
|
+
export declare function embedPlugin(kind: EmbedKind | undefined): EmbedPlugin;
|
|
5
|
+
export declare function syncEmbedLayer(host: HTMLElement, cache: Map<string, HTMLElement>, boxes: EmbedBox[], canvas: boolean): void;
|
|
6
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/embed/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAc,MAAM,SAAS,CAAC;AAI5D,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,QAEhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAUpE;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAC/B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,OAAO,QAwBhB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EmbedEntity, SlotKind } from '../model/types';
|
|
2
|
+
import { EmbedPlugin } from './types';
|
|
3
|
+
export declare const DEFAULT_SELECT_OPTIONS: readonly ["小美", "阿力"];
|
|
4
|
+
export declare function defaultSlotLabel(kind: SlotKind): string;
|
|
5
|
+
export declare function slotKindOf(entity: EmbedEntity): SlotKind;
|
|
6
|
+
export declare function slotOptionsOf(entity: EmbedEntity): string[];
|
|
7
|
+
export declare function slotPlaceholder(entity: EmbedEntity): string;
|
|
8
|
+
export declare function slotCaption(entity: EmbedEntity): string;
|
|
9
|
+
export declare function slotFilled(entity: EmbedEntity): boolean;
|
|
10
|
+
export declare function measureSlot(entity: EmbedEntity): {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
};
|
|
14
|
+
export declare const slotPlugin: EmbedPlugin;
|
|
15
|
+
//# sourceMappingURL=slot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../../../src/embed/slot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAmB,WAAW,EAAmB,MAAM,SAAS,CAAC;AAExE,eAAO,MAAM,sBAAsB,uBAAwB,CAAC;AAY5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAIvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAGxD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAE3D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE3D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAGvD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAMlF;AA2ED,eAAO,MAAM,UAAU,EAAE,WAyKxB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { DocumentModel } from '../model/document';
|
|
2
|
+
import { EmbedEntity, EmbedKind } from '../model/types';
|
|
3
|
+
import type { DocLayout } from '../layout/types';
|
|
4
|
+
export interface EmbedBox {
|
|
5
|
+
index: number;
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
w: number;
|
|
9
|
+
h: number;
|
|
10
|
+
entity: EmbedEntity;
|
|
11
|
+
inner?: DocLayout;
|
|
12
|
+
}
|
|
13
|
+
export declare const EMBED_CHANGE = "mini-embed-change";
|
|
14
|
+
export declare const EMBED_COMMIT = "mini-embed-commit";
|
|
15
|
+
export declare const EMBED_EXIT_EDIT = "mini-embed-exit-edit";
|
|
16
|
+
/**
|
|
17
|
+
* 宿主渲染块回报自身布局尺寸。这是渲染副产物、不是用户意图,编辑器只据此重排,
|
|
18
|
+
* 既不进撤销栈、也不开启编辑事务(区别于表示用户改动的 CHANGE / COMMIT)。
|
|
19
|
+
*/
|
|
20
|
+
export declare const EMBED_MEASURE = "mini-embed-measure";
|
|
21
|
+
export interface EmbedMeasureDetail {
|
|
22
|
+
id: string;
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
}
|
|
26
|
+
export interface EmbedExitDetail {
|
|
27
|
+
id: string;
|
|
28
|
+
side: 'before' | 'after';
|
|
29
|
+
}
|
|
30
|
+
export interface EmbedChangeDetail {
|
|
31
|
+
id: string;
|
|
32
|
+
patch: Partial<EmbedEntity>;
|
|
33
|
+
before?: Partial<EmbedEntity>;
|
|
34
|
+
}
|
|
35
|
+
export interface EmbedPlugin {
|
|
36
|
+
kind: EmbedKind;
|
|
37
|
+
keepAspectRatio: boolean;
|
|
38
|
+
interactive: boolean;
|
|
39
|
+
/** Canvas 上是否叠 DOM(视频/代码/公式);图片只画到 canvas */
|
|
40
|
+
overlayOnCanvas: boolean;
|
|
41
|
+
measure(entity: EmbedEntity, contentWidth: number, host?: DocumentModel): {
|
|
42
|
+
width: number;
|
|
43
|
+
height: number;
|
|
44
|
+
};
|
|
45
|
+
create(box: EmbedBox): HTMLElement;
|
|
46
|
+
update(el: HTMLElement, box: EmbedBox): void;
|
|
47
|
+
/** 节点从文档移除前调用,供插件清理副作用(观察器、外部组件等)。可选。 */
|
|
48
|
+
destroy?(el: HTMLElement): void;
|
|
49
|
+
paintCanvasBackdrop(ctx: CanvasRenderingContext2D, box: EmbedBox, imageOf: (src: string) => HTMLImageElement): void;
|
|
50
|
+
}
|
|
51
|
+
export declare function placeEmbed(el: HTMLElement, box: EmbedBox): void;
|
|
52
|
+
export declare function emitEmbedChange(el: HTMLElement, detail: EmbedChangeDetail, commit?: boolean): void;
|
|
53
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/embed/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAChD,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAChD,eAAO,MAAM,eAAe,yBAAyB,CAAC;AACtD;;;GAGG;AACH,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5G,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC;IACnC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7C,yCAAyC;IACzC,OAAO,CAAC,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,mBAAmB,CAAC,GAAG,EAAE,wBAAwB,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAC;CACrH;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,QAaxD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAAQ,QAIzF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../../src/embed/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,SAAS,CAAC;AAMhD,eAAO,MAAM,WAAW,EAAE,WAyBzB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 公式支持(可选入口)。
|
|
3
|
+
*
|
|
4
|
+
* 依赖 KaTeX + MathLive,是包体积的大头,因此不进默认插件集。
|
|
5
|
+
* 需要公式的产品这样用:
|
|
6
|
+
*
|
|
7
|
+
* import { Editor, builtinEmbedPlugins } from 'medeo-rte';
|
|
8
|
+
* import { formulaPlugin } from 'medeo-rte/formula';
|
|
9
|
+
*
|
|
10
|
+
* new Editor(el, { plugins: [...builtinEmbedPlugins, formulaPlugin] });
|
|
11
|
+
*/
|
|
12
|
+
export { formulaPlugin, measureFormula } from './embed/formula';
|
|
13
|
+
export { renderKatex } from './embed/formula-katex';
|
|
14
|
+
export { createFormulaMathfield, mathfieldLatex, type FormulaMathfield } from './embed/formula-mathlive';
|
|
15
|
+
//# sourceMappingURL=formula.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../src/formula.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* medeo-rte —— 自绘文档渲染引擎 SDK。
|
|
3
|
+
*
|
|
4
|
+
* import { Editor } from 'medeo-rte';
|
|
5
|
+
* import 'medeo-rte/style.css';
|
|
6
|
+
*
|
|
7
|
+
* const editor = new Editor(document.getElementById('app')!);
|
|
8
|
+
* editor.commands.toggleBold();
|
|
9
|
+
* editor.on('statechange', () => syncMyToolbar(editor.getState()));
|
|
10
|
+
*
|
|
11
|
+
* 公式需要额外引入(依赖 KaTeX / MathLive,体积较大):
|
|
12
|
+
*
|
|
13
|
+
* import { builtinEmbedPlugins } from 'medeo-rte';
|
|
14
|
+
* import { formulaPlugin } from 'medeo-rte/formula';
|
|
15
|
+
* new Editor(el, { plugins: [...builtinEmbedPlugins, formulaPlugin] });
|
|
16
|
+
*/
|
|
17
|
+
export { Editor } from './editor';
|
|
18
|
+
export type { EditorChrome, EditorEvent, EditorOptions, EditorState, EmbedInsertAt } from './editor';
|
|
19
|
+
export { INPUT_SHORTCUTS, inputShortcuts, SHORTCUTS } from './commands';
|
|
20
|
+
export type { EditorCommands, KeyStroke, Shortcut } from './commands';
|
|
21
|
+
export { DocumentModel, collapsedSel, documentFromSlice, nextEntityId, nextFragmentId, nextVirtualBlockId, sliceFromDocument } from './model/document';
|
|
22
|
+
export { isCollapsed, selEnd, selStart, underlineKind } from './model/types';
|
|
23
|
+
export { MARKERS } from './model/markers';
|
|
24
|
+
export type { Align, EmbedEntity, EmbedKind, Fragment, HeadingLevel, ListKind, ParagraphProps, Selection, Slice, SlotKind, StyleSpan, StyleType, TextFill, TextProps, UnderlineStyle, VirtualBlock, VirtualBlockChrome, VirtualBlockKind } from './model/types';
|
|
25
|
+
export * as operations from './operations';
|
|
26
|
+
export { runOperation } from './operations';
|
|
27
|
+
export type { ImagePatch, Operation, OperationContext, OperationRun, VirtualBlockSpec } from './operations';
|
|
28
|
+
export { SLICE_MIME, serializeSlice, sliceFromClipboard } from './convert/clipboard';
|
|
29
|
+
export { layoutDocument, caretFromIndex, hitTestIndex, selectionRects } from './layout/engine';
|
|
30
|
+
export { FONT_FAMILY, fontFamilyOf } from './layout/measure';
|
|
31
|
+
export type { CaretPos, DocLayout, GlyphBox, LineBox, ParagraphLayout, SelRect, TableLayout } from './layout/types';
|
|
32
|
+
export { HtmlPainter } from './paint/htmlPainter';
|
|
33
|
+
export { CanvasPainter } from './paint/canvasPainter';
|
|
34
|
+
export type { PaintBackend } from './paint/types';
|
|
35
|
+
export { builtinEmbedPlugins, codePlugin, embedPlugin, imagePlugin, refPlugin, registerEmbed, slotPlugin, videoPlugin } from './embed';
|
|
36
|
+
export type { EmbedBox, EmbedPlugin } from './embed/types';
|
|
37
|
+
export { hostEmbedPlugin, setHostEmbedRenderer, destroyHostEmbed, activateHostEmbed } from './embed';
|
|
38
|
+
export type { HostEmbedRenderer, HostEmbedContext, HostEmbedHandle, HostActivateRequest } from './embed';
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGrG,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvJ,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EACV,KAAK,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,SAAS,EACT,KAAK,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAG5G,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGpH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACvI,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACrG,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface ImeHandler {
|
|
2
|
+
onInsertText(text: string): void;
|
|
3
|
+
onInsertParagraph(): void;
|
|
4
|
+
onBackspace(): void;
|
|
5
|
+
onDeleteForward(): void;
|
|
6
|
+
onPaste(data: DataTransfer | null): void;
|
|
7
|
+
onCompositionChange(active: boolean, text: string): void;
|
|
8
|
+
}
|
|
9
|
+
export declare class ImeSurface {
|
|
10
|
+
readonly el: HTMLDivElement;
|
|
11
|
+
composing: boolean;
|
|
12
|
+
private handler;
|
|
13
|
+
private keyConsumed;
|
|
14
|
+
constructor(handler: ImeHandler);
|
|
15
|
+
focus(): void;
|
|
16
|
+
markKeyConsumed(): void;
|
|
17
|
+
moveTo(x: number, y: number, h: number): void;
|
|
18
|
+
clear(): void;
|
|
19
|
+
destroy(): void;
|
|
20
|
+
private onCompStart;
|
|
21
|
+
private onCompUpdate;
|
|
22
|
+
private onCompEnd;
|
|
23
|
+
private onBeforeInput;
|
|
24
|
+
private onPaste;
|
|
25
|
+
private onKeydownGuard;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ime.d.ts","sourceRoot":"","sources":["../../../src/input/ime.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,WAAW,IAAI,IAAI,CAAC;IACpB,eAAe,IAAI,IAAI,CAAC;IACxB,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1D;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,SAAS,UAAS;IAClB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,UAAU;IAgB/B,KAAK;IAIL,eAAe;IAIf,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAMtC,KAAK;IAIL,OAAO;IAUP,OAAO,CAAC,WAAW,CAIjB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,SAAS,CAOf;IAEF,OAAO,CAAC,aAAa,CA0CnB;IAEF,OAAO,CAAC,OAAO,CAGb;IAEF,OAAO,CAAC,cAAc,CAEpB;CACH"}
|