@one2x/medeo-rte 0.4.1 → 0.4.3
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 +66 -56
- package/dist/index.js +2106 -2059
- package/dist/index.js.map +1 -1
- package/dist/style.css +59 -5
- package/dist/types/editor.d.ts +107 -32
- package/dist/types/editor.d.ts.map +1 -1
- package/dist/types/edits/editResult.d.ts +1 -1
- package/dist/types/edits/editResult.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/layout/engine.d.ts +2 -1
- package/dist/types/layout/engine.d.ts.map +1 -1
- package/dist/types/layout/style.d.ts.map +1 -1
- package/dist/types/layout/types.d.ts +16 -0
- package/dist/types/layout/types.d.ts.map +1 -1
- package/dist/types/layout/wrap.d.ts +30 -0
- package/dist/types/layout/wrap.d.ts.map +1 -1
- package/dist/types/model/document.d.ts +1 -4
- package/dist/types/model/document.d.ts.map +1 -1
- package/dist/types/model/types.d.ts +6 -8
- package/dist/types/model/types.d.ts.map +1 -1
- package/dist/types/model/virtualBlock.d.ts +4 -0
- package/dist/types/model/virtualBlock.d.ts.map +1 -1
- package/dist/types/operations/harness.d.ts +5 -6
- package/dist/types/operations/harness.d.ts.map +1 -1
- package/dist/types/operations/index.d.ts +3 -3
- package/dist/types/operations/index.d.ts.map +1 -1
- package/dist/types/operations/slice.d.ts +4 -3
- package/dist/types/operations/slice.d.ts.map +1 -1
- package/dist/types/operations/text.d.ts +13 -2
- package/dist/types/operations/text.d.ts.map +1 -1
- package/dist/types/operations/virtualBlock.d.ts +9 -17
- package/dist/types/operations/virtualBlock.d.ts.map +1 -1
- package/dist/types/paint/canvasPainter.d.ts +5 -0
- package/dist/types/paint/canvasPainter.d.ts.map +1 -1
- package/dist/types/paint/htmlPainter.d.ts +2 -0
- package/dist/types/paint/htmlPainter.d.ts.map +1 -1
- package/dist/types/paint/types.d.ts +4 -0
- package/dist/types/paint/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -90,13 +90,11 @@ export type ImageEntity = EmbedEntity;
|
|
|
90
90
|
/** 视频默认宽高比 */
|
|
91
91
|
export declare const VIDEO_ASPECT: number;
|
|
92
92
|
/**
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* - `mark`:纯样式区间,只给文本流加背景/边框/文字缺省,交互与普通文本完全一致。
|
|
97
|
-
* 不参与区间树(parentId 恒为 null)、不进选中/编辑状态机,可与其它块任意叠放。
|
|
93
|
+
* 虚拟块只有 mark:纯样式区间,交互与普通文本完全一致。
|
|
94
|
+
* 不参与区间树(parentId 恒为 null),可与其它 mark 任意叠放。
|
|
95
|
+
* 空态灰字、点击和生成中的中间态都挂在它上面。
|
|
98
96
|
*/
|
|
99
|
-
export type VirtualBlockKind = '
|
|
97
|
+
export type VirtualBlockKind = 'mark';
|
|
100
98
|
/**
|
|
101
99
|
* 虚拟块的皮和文字缺省。块皮(底、边、圆角、内边距)只能放这里;
|
|
102
100
|
* 文字字段与 {@link TextProps} 对齐,作排版期 fallback,不是 applyStyle 轨道。
|
|
@@ -108,7 +106,7 @@ export interface VirtualBlockChrome {
|
|
|
108
106
|
borderColor?: string;
|
|
109
107
|
borderWidth?: number;
|
|
110
108
|
radius?: number;
|
|
111
|
-
/**
|
|
109
|
+
/** 水平内边距。不传按 4px,传 0 表示不留。在区间真正的首尾占排版宽度,折行处只外扩底色。编辑器 padding.x 小于它时,折行贴边处会被裁 */
|
|
112
110
|
paddingX?: number;
|
|
113
111
|
color?: string;
|
|
114
112
|
fontSize?: number;
|
|
@@ -116,7 +114,7 @@ export interface VirtualBlockChrome {
|
|
|
116
114
|
fontWeight?: number;
|
|
117
115
|
bold?: boolean;
|
|
118
116
|
italic?: boolean;
|
|
119
|
-
/**
|
|
117
|
+
/** mark 的 placeholder 灰字。不传时用 #98a2b3 */
|
|
120
118
|
placeholderColor?: string;
|
|
121
119
|
}
|
|
122
120
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/model/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/model/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
* 闭开区间算术,以及 Slice 裁切时的平移。
|
|
6
6
|
*/
|
|
7
7
|
import { VirtualBlock } from './types';
|
|
8
|
+
/** mark 未配 `chrome.paddingX` 时的水平内边距;没有它内外侧光标会画在同一处,看不出光标在块里还是块外 */
|
|
9
|
+
export declare const MARK_DEFAULT_PADDING_X = 4;
|
|
10
|
+
/** 块实际生效的水平内边距:显式配置优先,mark 缺省 4px,其余缺省 0 */
|
|
11
|
+
export declare function paddingXOf(block: Pick<VirtualBlock, 'kind' | 'chrome'>): number;
|
|
8
12
|
export declare function shiftVirtualBlocksOnInsert(blocks: Iterable<VirtualBlock>, index: number, len: number): VirtualBlock[];
|
|
9
13
|
export declare function shiftVirtualBlocksOnDelete(blocks: Iterable<VirtualBlock>, start: number, end: number): VirtualBlock[];
|
|
10
14
|
/** 半开区间是否相交(相邻不算)。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualBlock.d.ts","sourceRoot":"","sources":["../../../src/model/virtualBlock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAqB,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,YAAY,EAAE,CAOhB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"virtualBlock.d.ts","sourceRoot":"","sources":["../../../src/model/virtualBlock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAqB,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,MAAM,CAE/E;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,YAAY,EAAE,CAOhB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,YAAY,EAAE,CAqBhB;AAED,sBAAsB;AACtB,wBAAgB,aAAa,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE3G;AAED,sBAAsB;AACtB,wBAAgB,WAAW,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAEzG;AAED,wBAAwB;AACxB,wBAAgB,aAAa,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE3G;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,CAYpF;AAED,4BAA4B;AAC5B,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,YAAY,EAAE,CAQzG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,YAAY,EAAE,CAUlG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,YAAY,EAAE,CAwBhB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAGlG"}
|
|
@@ -13,7 +13,7 @@ import { DocumentModel } from '../model/document';
|
|
|
13
13
|
import { ImageEntity, ParagraphProps, Slice, TextProps, VirtualBlockChrome } from '../model/types';
|
|
14
14
|
import * as ops from './index';
|
|
15
15
|
type Writes = {
|
|
16
|
-
insertText(index: number, text: string, inherit?: TextProps): number;
|
|
16
|
+
insertText(index: number, text: string, inherit?: TextProps, affinity?: ops.CaretAffinity): number;
|
|
17
17
|
insertParagraph(index: number): number;
|
|
18
18
|
deleteRange(start: number, end: number): Slice;
|
|
19
19
|
backspace(index: number): ops.DeleteHit;
|
|
@@ -31,9 +31,9 @@ type Writes = {
|
|
|
31
31
|
deleteTableRow(index: number): boolean;
|
|
32
32
|
deleteTableCol(index: number): boolean;
|
|
33
33
|
setTableColWidths(index: number, widths: number[]): void;
|
|
34
|
-
insertSlice(index: number, slice: Slice, asCopy?: boolean): number;
|
|
35
|
-
insertMarkdown(index: number, raw: string): number;
|
|
36
|
-
pasteText(index: number, raw: string, inherit?: TextProps): number;
|
|
34
|
+
insertSlice(index: number, slice: Slice, asCopy?: boolean, affinity?: ops.CaretAffinity): number;
|
|
35
|
+
insertMarkdown(index: number, raw: string, affinity?: ops.CaretAffinity): number;
|
|
36
|
+
pasteText(index: number, raw: string, inherit?: TextProps, affinity?: ops.CaretAffinity): number;
|
|
37
37
|
promoteRange(start: number, end: number): {
|
|
38
38
|
fragmentId: string;
|
|
39
39
|
index: number;
|
|
@@ -42,9 +42,8 @@ type Writes = {
|
|
|
42
42
|
unlinkRef(index: number): number | null;
|
|
43
43
|
insertVirtualBlock(spec: ops.VirtualBlockSpec): string | null;
|
|
44
44
|
removeVirtualBlock(id: string): boolean;
|
|
45
|
-
clearSlot(id: string): boolean;
|
|
46
|
-
fillSlot(id: string, text: string, inherit?: TextProps): number | null;
|
|
47
45
|
updateVirtualBlockChrome(id: string, chrome: VirtualBlockChrome): boolean;
|
|
46
|
+
replaceMarkText(id: string, text: string): number | null;
|
|
48
47
|
};
|
|
49
48
|
export type EditableDoc = DocumentModel & Writes;
|
|
50
49
|
export declare function editable(doc: DocumentModel): EditableDoc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../src/operations/harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAgB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEnG,OAAO,KAAK,GAAG,MAAM,SAAS,CAAC;AAE/B,KAAK,MAAM,GAAG;IACZ,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../src/operations/harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,11 @@ export { contentRuns, expectedParagraphSpans, rangeIsOnlyMarkers, resolveParagra
|
|
|
10
10
|
export { emitDelete, emitInsert, emitStyle, emitTextStyle, ensureParagraphAfter, normalizeParagraphs } from './primitives';
|
|
11
11
|
export { applyLink, applyParagraphStyle, applyTextStyle, removeLink } from './style';
|
|
12
12
|
export type { DeleteHit } from './text';
|
|
13
|
-
export { applyMarkdownShortcut, backspace, deleteForward, deleteRange, insertParagraph, insertText } from './text';
|
|
13
|
+
export { applyMarkdownShortcut, backspace, deleteForward, deleteRange, insertParagraph, insertText, replaceMarkText } from './text';
|
|
14
14
|
export type { ImagePatch, NewEntity } from './entity';
|
|
15
15
|
export { insertImage, updateImage } from './entity';
|
|
16
16
|
export { deleteTableCol, deleteTableRow, insertTable, insertTableCol, insertTableRow, setTableColWidths } from './table';
|
|
17
17
|
export { insertMarkdown, insertRef, insertSlice, pasteText, promoteRange, unlinkRef } from './slice';
|
|
18
|
-
export type { VirtualBlockSpec } from './virtualBlock';
|
|
19
|
-
export {
|
|
18
|
+
export type { CaretAffinity, VirtualBlockSpec } from './virtualBlock';
|
|
19
|
+
export { coverAncestorsOf, coverVirtualBlocks, insertVirtualBlock, removeVirtualBlock, updateVirtualBlockChrome, validateInsert } from './virtualBlock';
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/operations/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACb,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErF,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/operations/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACb,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErF,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EAChB,MAAM,QAAQ,CAAC;AAEhB,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACV,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACf,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Slice, TextProps } from '../model/types';
|
|
2
2
|
import { Operation } from './context';
|
|
3
|
+
import { CaretAffinity } from './virtualBlock';
|
|
3
4
|
/**
|
|
4
5
|
* 把一个切片插到 index 处。
|
|
5
6
|
*
|
|
6
7
|
* asCopy 为真时先把切片里的同步块引用摊平成实际内容 —— 跨文档粘贴不该带走
|
|
7
8
|
* 一个指向源文档的悬空引用。
|
|
8
9
|
*/
|
|
9
|
-
export declare function insertSlice(index: number, slice: Slice, asCopy?: boolean): Operation<number>;
|
|
10
|
+
export declare function insertSlice(index: number, slice: Slice, asCopy?: boolean, affinity?: CaretAffinity): Operation<number>;
|
|
10
11
|
/** 把一段 Markdown 原文导入到 index 处。段落中间导入时先把段切开。 */
|
|
11
|
-
export declare function insertMarkdown(index: number, raw: string): Operation<number>;
|
|
12
|
+
export declare function insertMarkdown(index: number, raw: string, affinity?: CaretAffinity): Operation<number>;
|
|
12
13
|
/** 粘贴纯文本。看起来像 Markdown 就走导入,否则当普通文字插入。 */
|
|
13
|
-
export declare function pasteText(index: number, raw: string, inherit?: TextProps): Operation<number>;
|
|
14
|
+
export declare function pasteText(index: number, raw: string, inherit?: TextProps, affinity?: CaretAffinity): Operation<number>;
|
|
14
15
|
/**
|
|
15
16
|
* 把一段内容提取成同步块,原地换成一个引用。
|
|
16
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../../src/operations/slice.ts"],"names":[],"mappings":"AAOA,OAAO,EAAsC,KAAK,EAAa,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAWjG,OAAO,EAAE,SAAS,EAAgB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../../src/operations/slice.ts"],"names":[],"mappings":"AAOA,OAAO,EAAsC,KAAK,EAAa,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAWjG,OAAO,EAAE,SAAS,EAAgB,MAAM,WAAW,CAAC;AAIpD,OAAO,EAAE,aAAa,EAAiE,MAAM,gBAAgB,CAAC;AA8B9G;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,EACZ,MAAM,UAAO,EACb,QAAQ,GAAE,aAA0B,GACnC,SAAS,CAAC,MAAM,CAAC,CA6CnB;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,aAA0B,GAAG,SAAS,CAAC,MAAM,CAAC,CAuBlH;AAED,0CAA0C;AAC1C,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,SAAS,EACnB,QAAQ,GAAE,aAA0B,GACnC,SAAS,CAAC,MAAM,CAAC,CAKnB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAgBhH;AAED,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAW9E;AAED,sCAAsC;AACtC,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAYjE"}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import { Slice, TextProps } from '../model/types';
|
|
2
2
|
import { Operation } from './context';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { CaretAffinity } from './virtualBlock';
|
|
4
|
+
/**
|
|
5
|
+
* 在 index 处插入文本,继承左侧文字样式(或调用方指定的样式)。返回新光标位置。
|
|
6
|
+
*
|
|
7
|
+
* `affinity` 决定 index 恰好是 mark 边界时新字进不进块,见 {@link CaretAffinity}。
|
|
8
|
+
*/
|
|
9
|
+
export declare function insertText(index: number, text: string, inherit?: TextProps, affinity?: CaretAffinity): Operation<number>;
|
|
10
|
+
/**
|
|
11
|
+
* 替换 mark 里的文字,块本身留下,整步一次撤销。
|
|
12
|
+
* 换成空串时:有 placeholder 就收成零宽,没有就拆掉这块。
|
|
13
|
+
* 返回新文字之后的下标;id 不是 mark 时返回 null。
|
|
14
|
+
*/
|
|
15
|
+
export declare function replaceMarkText(id: string, text: string): Operation<number | null>;
|
|
5
16
|
/** 回车。空列表项上先降缩进再退出列表;否则切段,两段各自继承合适的属性。 */
|
|
6
17
|
export declare function insertParagraph(index: number): Operation<number>;
|
|
7
18
|
/** 删掉一段区间,边界会向外扩到不切断表格等结构。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/operations/text.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmD,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGnG,OAAO,EAAE,SAAS,EAAoB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/operations/text.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmD,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGnG,OAAO,EAAE,SAAS,EAAoB,MAAM,WAAW,CAAC;AAKxD,OAAO,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AA2C9D;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,SAAS,EACnB,QAAQ,GAAE,aAA0B,GACnC,SAAS,CAAC,MAAM,CAAC,CAgBnB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAkClF;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CA6ChE;AAED,8BAA8B;AAC9B,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAYxE;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG,IAAI,CAAC;AAE5E,gDAAgD;AAChD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAkC7D;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAoBjE;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAwDtE"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* 嵌套合法性在这里判断,通过才发 mutation。插删字符对区间的机械挪动在
|
|
5
5
|
* applier 里,但清槽会把覆盖整段删掉(块被表里摘掉),所以这里要按快照补回。
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { VirtualBlock, VirtualBlockChrome, VirtualBlockKind } from '../model/types';
|
|
8
8
|
import { Operation } from './context';
|
|
9
9
|
export interface VirtualBlockSpec {
|
|
10
10
|
id?: string;
|
|
@@ -16,7 +16,7 @@ export interface VirtualBlockSpec {
|
|
|
16
16
|
placeholder?: string;
|
|
17
17
|
empty?: boolean;
|
|
18
18
|
}
|
|
19
|
-
export declare function validateInsert(
|
|
19
|
+
export declare function validateInsert(_doc: {
|
|
20
20
|
virtualBlocks: Map<string, VirtualBlock>;
|
|
21
21
|
}, block: VirtualBlock): string | null;
|
|
22
22
|
/**
|
|
@@ -24,27 +24,19 @@ export declare function validateInsert(doc: {
|
|
|
24
24
|
* 完全落在新区间里的已有块会改挂到这一层下面。
|
|
25
25
|
*/
|
|
26
26
|
export declare function insertVirtualBlock(spec: VirtualBlockSpec): Operation<string | null>;
|
|
27
|
-
/**
|
|
27
|
+
/** 拆掉皮,字留下。 */
|
|
28
28
|
export declare function removeVirtualBlock(id: string): Operation<boolean>;
|
|
29
29
|
export declare function updateVirtualBlockChrome(id: string, chrome: VirtualBlockChrome): Operation<boolean>;
|
|
30
|
-
/**
|
|
31
|
-
export declare function clearSlot(id: string): Operation<boolean>;
|
|
32
|
-
/** 槽是行内区间:去掉尾部换行,中间的段分隔折成空格。 */
|
|
33
|
-
export declare function slotInlineText(text: string): string;
|
|
34
|
-
/**
|
|
35
|
-
* empty 时覆盖 placeholder;已填则整段替换。一次事务。
|
|
36
|
-
* 返回新光标(槽尾)。槽内不进段分隔符。
|
|
37
|
-
*/
|
|
38
|
-
export declare function fillSlot(id: string, text: string, inherit?: TextProps): Operation<number | null>;
|
|
39
|
-
/** 按 id 找到槽/块,连祖先一起撑开盖住 [start, end)。 */
|
|
30
|
+
/** 按 id 找到块,连祖先一起撑开盖住 [start, end)。 */
|
|
40
31
|
export declare function coverAncestorsOf(id: string, start: number, end: number): Operation<void>;
|
|
41
32
|
/** 插入后把指定块(及仍在的祖先)撑开盖住 [start, end)。 */
|
|
42
33
|
export declare function coverVirtualBlocks(ids: string[], start: number, end: number): Operation<void>;
|
|
43
34
|
export declare function remapIncomingVirtualBlocks(blocks: VirtualBlock[], offset: number, occupied: Set<string>): VirtualBlock[];
|
|
44
35
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* 插入本身已由调用方 emit,这里只补区间。
|
|
36
|
+
* 光标亲和:mark 边界上同一个下标有两个光标位置。
|
|
37
|
+
* `backward` 贴前一个字(默认):右边界算块内、左边界算块外;`forward` 贴后一个字,正好相反。
|
|
48
38
|
*/
|
|
49
|
-
export
|
|
39
|
+
export type CaretAffinity = 'backward' | 'forward';
|
|
40
|
+
/** 在 index 处插入了 text 之后,按光标亲和把边界上的 mark 撑开。插入本身已由调用方 emit。 */
|
|
41
|
+
export declare function extendMarksAt(index: number, text: string, affinity: CaretAffinity): Operation<void>;
|
|
50
42
|
//# sourceMappingURL=virtualBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualBlock.d.ts","sourceRoot":"","sources":["../../../src/operations/virtualBlock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"virtualBlock.d.ts","sourceRoot":"","sources":["../../../src/operations/virtualBlock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIpF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAAE,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAMrH;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BnF;AAED,eAAe;AACf,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAMjE;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAC,CAOnG;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAcxF;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAkB7F;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EAAE,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,YAAY,EAAE,CAoBhB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnD,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAOnG"}
|
|
@@ -18,6 +18,7 @@ export declare class CanvasPainter implements PaintBackend {
|
|
|
18
18
|
private caret;
|
|
19
19
|
private caretVisible;
|
|
20
20
|
private caretTrails;
|
|
21
|
+
private focusMark;
|
|
21
22
|
private imageCache;
|
|
22
23
|
private embeds;
|
|
23
24
|
private embedCache;
|
|
@@ -42,6 +43,8 @@ export declare class CanvasPainter implements PaintBackend {
|
|
|
42
43
|
setHoverBlock(id: string | null): void;
|
|
43
44
|
paintSelection(rects: SelRect[]): void;
|
|
44
45
|
paintCaret(caret: CaretPos | null, visible: boolean, trails?: CaretPos[]): void;
|
|
46
|
+
paintMarkEffects(): void;
|
|
47
|
+
paintFocusMark(mark: CaretPos | null): void;
|
|
45
48
|
destroy(): void;
|
|
46
49
|
/** 可视区在文档坐标里的 [top, bottom]。找不到容器时就当整篇可见。 */
|
|
47
50
|
private visibleRange;
|
|
@@ -55,6 +58,8 @@ export declare class CanvasPainter implements PaintBackend {
|
|
|
55
58
|
private fillSelectionRect;
|
|
56
59
|
private paintVBlock;
|
|
57
60
|
private strokeVBlockOutline;
|
|
61
|
+
/** 与 `.mini-focus-mark` 同形:2px 竖线 + 贴着行顶、整颗落在行内的 6px 圆点 */
|
|
62
|
+
private drawFocusMark;
|
|
58
63
|
private drawCaret;
|
|
59
64
|
private paintGlyph;
|
|
60
65
|
private paintLineDeco;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasPainter.d.ts","sourceRoot":"","sources":["../../../src/paint/canvasPainter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAY,OAAO,
|
|
1
|
+
{"version":3,"file":"canvasPainter.d.ts","sourceRoot":"","sources":["../../../src/paint/canvasPainter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAY,OAAO,EAAkB,MAAM,iBAAiB,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAc/B,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,GAAG,CAAyC;IACpD,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAuB;IACtC,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,oCAAoC;IACpC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,yCAAyC;IACzC,OAAO,CAAC,gBAAgB,CAYtB;IAEF,KAAK,CAAC,IAAI,EAAE,WAAW;IAuBvB,8BAA8B;IAC9B,OAAO,CAAC,UAAU;IAMlB,UAAU,IAAI,WAAW;IAKzB,QAAQ,CAAC,MAAM,EAAE,SAAS;IAc1B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAqB/B,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;IAK/B,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,QAAQ,EAAO;IAO5E,gBAAgB;IAOhB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAOpC,OAAO;IAuBP,6CAA6C;IAC7C,OAAO,CAAC,YAAY;IAcpB,+BAA+B;IAC/B,OAAO,CAAC,WAAW;IAuBnB,mCAAmC;IACnC,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,MAAM;IAgCd,OAAO,CAAC,aAAa;IAgErB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,WAAW;IAqDnB,OAAO,CAAC,mBAAmB;IAY3B,2DAA2D;IAC3D,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,SAAS;IAmCjB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,OAAO;CAYhB"}
|
|
@@ -6,6 +6,7 @@ export declare class HtmlPainter implements PaintBackend {
|
|
|
6
6
|
private content;
|
|
7
7
|
private selection;
|
|
8
8
|
private caret;
|
|
9
|
+
private focusMark;
|
|
9
10
|
private trails;
|
|
10
11
|
private embeds;
|
|
11
12
|
private embedCache;
|
|
@@ -17,6 +18,7 @@ export declare class HtmlPainter implements PaintBackend {
|
|
|
17
18
|
private applyHover;
|
|
18
19
|
paintSelection(rects: SelRect[]): void;
|
|
19
20
|
paintCaret(caret: CaretPos | null, visible: boolean, trails?: CaretPos[]): void;
|
|
21
|
+
paintFocusMark(mark: CaretPos | null): void;
|
|
20
22
|
destroy(): void;
|
|
21
23
|
}
|
|
22
24
|
//# sourceMappingURL=htmlPainter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlPainter.d.ts","sourceRoot":"","sources":["../../../src/paint/htmlPainter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAW,OAAO,EAA+B,MAAM,iBAAiB,CAAC;AAErG,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAWvC,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,OAAO,CAAuB;IAEtC,KAAK,CAAC,IAAI,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"htmlPainter.d.ts","sourceRoot":"","sources":["../../../src/paint/htmlPainter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAW,OAAO,EAA+B,MAAM,iBAAiB,CAAC;AAErG,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAWvC,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,OAAO,CAAuB;IAEtC,KAAK,CAAC,IAAI,EAAE,WAAW;IA0BvB,UAAU,IAAI,WAAW;IAKzB,QAAQ,CAAC,MAAM,EAAE,SAAS;IAkC1B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAM/B,OAAO,CAAC,UAAU;IAQlB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;IAY/B,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,QAAQ,EAAO;IAM5E,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAWpC,OAAO;CAYR"}
|
|
@@ -24,8 +24,12 @@ export interface PaintBackend {
|
|
|
24
24
|
paintDoc(layout: DocLayout): void;
|
|
25
25
|
paintSelection(rects: SelRect[]): void;
|
|
26
26
|
paintCaret(caret: CaretPos | null, visible: boolean, trails?: CaretPos[]): void;
|
|
27
|
+
/** 有文字选区时焦点那端的标记(竖线 + 顶部圆点,不闪烁);null 隐藏 */
|
|
28
|
+
paintFocusMark(mark: CaretPos | null): void;
|
|
27
29
|
/** 悬停中的 mark 块 id(null 取消);只重画受影响的块。可选实现。 */
|
|
28
30
|
setHoverBlock?(id: string | null): void;
|
|
31
|
+
/** 重画中间态的彩虹字和边框动效。HTML 模式用 CSS,不必实现。 */
|
|
32
|
+
paintMarkEffects?(): void;
|
|
29
33
|
getSurface(): HTMLElement;
|
|
30
34
|
destroy(): void;
|
|
31
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/paint/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAChF,6CAA6C;IAC7C,aAAa,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACxC,UAAU,IAAI,WAAW,CAAC;IAC1B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;CACpB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/paint/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAChF,2CAA2C;IAC3C,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5C,6CAA6C;IAC7C,aAAa,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACxC,wCAAwC;IACxC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAC1B,UAAU,IAAI,WAAW,CAAC;IAC1B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;CACpB"}
|