@moda-editor/core 0.1.5 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/collab.d.ts +7 -0
- package/dist/collab.d.ts.map +1 -1
- package/dist/collab.js +11 -2
- package/dist/collab.js.map +1 -1
- package/dist/commands.d.ts +32 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +101 -23
- package/dist/commands.js.map +1 -1
- package/dist/conformance/editor-base.d.ts.map +1 -1
- package/dist/conformance/editor-base.js +24 -0
- package/dist/conformance/editor-base.js.map +1 -1
- package/dist/conformance/editor-nodeview.d.ts.map +1 -1
- package/dist/conformance/editor-nodeview.js +49 -0
- package/dist/conformance/editor-nodeview.js.map +1 -1
- package/dist/conformance/editor-overlay.d.ts.map +1 -1
- package/dist/conformance/editor-overlay.js +23 -1
- package/dist/conformance/editor-overlay.js.map +1 -1
- package/dist/editor/editor.d.ts +6 -0
- package/dist/editor/editor.d.ts.map +1 -1
- package/dist/editor/editor.js +32 -5
- package/dist/editor/editor.js.map +1 -1
- package/dist/features/ace.d.ts.map +1 -1
- package/dist/features/ace.js +31 -7
- package/dist/features/ace.js.map +1 -1
- package/dist/features/alignment.d.ts.map +1 -1
- package/dist/features/alignment.js +6 -0
- package/dist/features/alignment.js.map +1 -1
- package/dist/features/block-dnd.d.ts.map +1 -1
- package/dist/features/block-dnd.js +6 -1
- package/dist/features/block-dnd.js.map +1 -1
- package/dist/features/blockquote.d.ts.map +1 -1
- package/dist/features/blockquote.js +40 -11
- package/dist/features/blockquote.js.map +1 -1
- package/dist/features/code-block.d.ts.map +1 -1
- package/dist/features/code-block.js +61 -14
- package/dist/features/code-block.js.map +1 -1
- package/dist/features/code-edit.d.ts.map +1 -1
- package/dist/features/code-edit.js +25 -4
- package/dist/features/code-edit.js.map +1 -1
- package/dist/features/code-format.d.ts.map +1 -1
- package/dist/features/code-format.js +80 -24
- package/dist/features/code-format.js.map +1 -1
- package/dist/features/doc.d.ts +16 -0
- package/dist/features/doc.d.ts.map +1 -1
- package/dist/features/doc.js +166 -3
- package/dist/features/doc.js.map +1 -1
- package/dist/features/heading.d.ts.map +1 -1
- package/dist/features/heading.js +3 -2
- package/dist/features/heading.js.map +1 -1
- package/dist/features/horizontal-rule.d.ts.map +1 -1
- package/dist/features/horizontal-rule.js +13 -5
- package/dist/features/horizontal-rule.js.map +1 -1
- package/dist/features/image.d.ts +3 -1
- package/dist/features/image.d.ts.map +1 -1
- package/dist/features/image.js +34 -9
- package/dist/features/image.js.map +1 -1
- package/dist/features/inline-style.d.ts.map +1 -1
- package/dist/features/inline-style.js +20 -6
- package/dist/features/inline-style.js.map +1 -1
- package/dist/features/link.d.ts.map +1 -1
- package/dist/features/link.js +23 -6
- package/dist/features/link.js.map +1 -1
- package/dist/features/lists.d.ts.map +1 -1
- package/dist/features/lists.js +16 -7
- package/dist/features/lists.js.map +1 -1
- package/dist/features/markdown.d.ts.map +1 -1
- package/dist/features/markdown.js +7 -1
- package/dist/features/markdown.js.map +1 -1
- package/dist/features/marks.d.ts.map +1 -1
- package/dist/features/marks.js +23 -11
- package/dist/features/marks.js.map +1 -1
- package/dist/features/script.d.ts.map +1 -1
- package/dist/features/script.js +5 -2
- package/dist/features/script.js.map +1 -1
- package/dist/features/search.d.ts +5 -2
- package/dist/features/search.d.ts.map +1 -1
- package/dist/features/search.js +55 -13
- package/dist/features/search.js.map +1 -1
- package/dist/features/table.d.ts.map +1 -1
- package/dist/features/table.js +24 -4
- package/dist/features/table.js.map +1 -1
- package/dist/features/task-list.d.ts.map +1 -1
- package/dist/features/task-list.js +23 -3
- package/dist/features/task-list.js.map +1 -1
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +45 -6
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/parse/html.d.ts.map +1 -1
- package/dist/parse/html.js +22 -9
- package/dist/parse/html.js.map +1 -1
- package/dist/parse/sanitize.d.ts +6 -0
- package/dist/parse/sanitize.d.ts.map +1 -1
- package/dist/parse/sanitize.js +39 -3
- package/dist/parse/sanitize.js.map +1 -1
- package/dist/presets/markdown-parse.d.ts.map +1 -1
- package/dist/presets/markdown-parse.js +29 -8
- package/dist/presets/markdown-parse.js.map +1 -1
- package/dist/presets/markdown.d.ts +2 -1
- package/dist/presets/markdown.d.ts.map +1 -1
- package/dist/presets/markdown.js +23 -7
- package/dist/presets/markdown.js.map +1 -1
- package/dist/state/apply.d.ts +1 -1
- package/dist/state/apply.d.ts.map +1 -1
- package/dist/state/apply.js +34 -8
- package/dist/state/apply.js.map +1 -1
- package/dist/state/delete-ops.js +12 -0
- package/dist/state/delete-ops.js.map +1 -1
- package/dist/state/insert-ops.d.ts +5 -2
- package/dist/state/insert-ops.d.ts.map +1 -1
- package/dist/state/insert-ops.js +7 -5
- package/dist/state/insert-ops.js.map +1 -1
- package/dist/state/list-ops.d.ts.map +1 -1
- package/dist/state/list-ops.js +13 -6
- package/dist/state/list-ops.js.map +1 -1
- package/dist/state/resolve-insert.d.ts.map +1 -1
- package/dist/state/resolve-insert.js +9 -2
- package/dist/state/resolve-insert.js.map +1 -1
- package/dist/state/slice-ops.js +11 -1
- package/dist/state/slice-ops.js.map +1 -1
- package/dist/state/state.d.ts.map +1 -1
- package/dist/state/state.js +23 -8
- package/dist/state/state.js.map +1 -1
- package/dist/state/transaction.d.ts +6 -3
- package/dist/state/transaction.d.ts.map +1 -1
- package/dist/state/transaction.js +6 -1
- package/dist/state/transaction.js.map +1 -1
- package/dist/styles.css +253 -196
- package/dist/theme.d.ts +29 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +347 -0
- package/dist/theme.js.map +1 -0
- package/dist/view/decoration.d.ts.map +1 -1
- package/dist/view/decoration.js +58 -35
- package/dist/view/decoration.js.map +1 -1
- package/dist/view/hook-ctx.d.ts.map +1 -1
- package/dist/view/hook-ctx.js +30 -9
- package/dist/view/hook-ctx.js.map +1 -1
- package/dist/view/ime.d.ts.map +1 -1
- package/dist/view/ime.js +6 -3
- package/dist/view/ime.js.map +1 -1
- package/dist/view/input.d.ts.map +1 -1
- package/dist/view/input.js +113 -11
- package/dist/view/input.js.map +1 -1
- package/dist/view/render.d.ts.map +1 -1
- package/dist/view/render.js +40 -3
- package/dist/view/render.js.map +1 -1
- package/package.json +1 -1
package/dist/view/hook-ctx.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { nodeAt } from "../model/traverse.js";
|
|
2
|
-
import {
|
|
2
|
+
import { leafPoint } from "../state/apply.js";
|
|
3
|
+
import { blockText, blockTextOffset, blockTextPoint, pointBlockPath, samePath, } from "../commands.js";
|
|
3
4
|
/**
|
|
4
5
|
* 입력 훅(InputHooks) 컨텍스트 팩토리 + 훅 순회 유틸 —
|
|
5
6
|
* input.ts에서 분리. 브라우저 이벤트를 기능 훅이 받는 컨텍스트
|
|
@@ -10,14 +11,21 @@ import { blockText, blockTextOffset, blockTextPoint } from "../commands.js";
|
|
|
10
11
|
* 걸치는 범위는 훅이 받지 않는다 (BlockTextCtx 계약).
|
|
11
12
|
*/
|
|
12
13
|
export function blockCtx(editor, r, tr) {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const doc = editor.state.doc;
|
|
15
|
+
// 경계 포인트(빈 블록의 {path:블록,offset:0}, doc/li 경계 등)도
|
|
16
|
+
// 안쪽 블록으로 내려 해석한다 — path.slice(0,-1)로 리프 전제를 두면
|
|
17
|
+
// 경계 포인트의 블록이 doc/컨테이너로 오인돼 훅 전체가 죽는다
|
|
18
|
+
const blockPath = pointBlockPath(doc, editor.state.schema, r.anchor);
|
|
19
|
+
const fBlock = pointBlockPath(doc, editor.state.schema, r.focus);
|
|
20
|
+
if (!blockPath || !fBlock || !samePath(blockPath, fBlock))
|
|
16
21
|
return null;
|
|
17
|
-
|
|
18
|
-
const block = nodeAt(editor.state.doc, blockPath);
|
|
22
|
+
const block = nodeAt(doc, blockPath);
|
|
19
23
|
if (!block)
|
|
20
24
|
return null;
|
|
25
|
+
// 훅에 넘기는 끝점은 리프 좌표로 정규화 — offsetOf/tr 스텝 양쪽이
|
|
26
|
+
// 같은 위치를 가리킨다 ({블록,k} 경계는 자식 k 앞과 같다)
|
|
27
|
+
const anchor = leafPoint(doc, r.anchor);
|
|
28
|
+
const focus = leafPoint(doc, r.focus);
|
|
21
29
|
return {
|
|
22
30
|
state: editor.state,
|
|
23
31
|
tr,
|
|
@@ -25,10 +33,23 @@ export function blockCtx(editor, r, tr) {
|
|
|
25
33
|
block,
|
|
26
34
|
blockPath,
|
|
27
35
|
text: blockText(block),
|
|
28
|
-
anchor
|
|
29
|
-
focus
|
|
36
|
+
anchor,
|
|
37
|
+
focus,
|
|
30
38
|
charPoint: (off) => blockTextPoint(block, blockPath, off),
|
|
31
|
-
offsetOf: (p) =>
|
|
39
|
+
offsetOf: (p) => {
|
|
40
|
+
// {blockPath,k} 경계는 자식 k 앞 — blockTextOffset은 p.path의
|
|
41
|
+
// 마지막 요소를 자식 인덱스로 읽으므로 경계 포인트를 따로 잡는다
|
|
42
|
+
const q = leafPoint(doc, p);
|
|
43
|
+
if (samePath(q.path, blockPath)) {
|
|
44
|
+
const kids = block.content ?? [];
|
|
45
|
+
let off = 0;
|
|
46
|
+
for (let i = 0; i < Math.min(q.offset, kids.length); i++) {
|
|
47
|
+
off += kids[i].text?.length ?? 0;
|
|
48
|
+
}
|
|
49
|
+
return off;
|
|
50
|
+
}
|
|
51
|
+
return blockTextOffset(block, q);
|
|
52
|
+
},
|
|
32
53
|
};
|
|
33
54
|
}
|
|
34
55
|
/** 붙여넣기 훅용 범위 컨텍스트 — tr의 디스패치를 훅에 넘긴다 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-ctx.js","sourceRoot":"","sources":["../../src/view/hook-ctx.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"hook-ctx.js","sourceRoot":"","sources":["../../src/view/hook-ctx.ts"],"names":[],"mappings":"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"}
|
package/dist/view/ime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ime.d.ts","sourceRoot":"","sources":["../../src/view/ime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,yCAAyC;AACzC,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,4CAA4C;IAC5C,UAAU,IAAI;QAAE,MAAM,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAC;CACtD;AAED;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAExD,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,KAAK,IAAI,IAAI,CAAC;IACd,+CAA+C;IAC/C,GAAG,IAAI,IAAI,CAAC;IACZ,iDAAiD;IACjD,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,GAAG,OAAO,CAAC;IAC7E;;;OAGG;IACH,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,GAC7C,OAAO,CAAC;IACX,gCAAgC;IAChC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"ime.d.ts","sourceRoot":"","sources":["../../src/view/ime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,yCAAyC;AACzC,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,4CAA4C;IAC5C,UAAU,IAAI;QAAE,MAAM,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAC;CACtD;AAED;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAExD,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,KAAK,IAAI,IAAI,CAAC;IACd,+CAA+C;IAC/C,GAAG,IAAI,IAAI,CAAC;IACZ,iDAAiD;IACjD,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,GAAG,OAAO,CAAC;IAC7E;;;OAGG;IACH,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,GAC7C,OAAO,CAAC;IACX,gCAAgC;IAChC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAyL1D"}
|
package/dist/view/ime.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { nodeAt } from "../model/traverse.js";
|
|
2
2
|
import { pathEq } from "../state/apply.js";
|
|
3
|
-
import { point, textSelection } from "../state/selection.js";
|
|
3
|
+
import { normalizeRange, point, textSelection } from "../state/selection.js";
|
|
4
4
|
import { domEndsWith, topBlockKey } from "./caret.js";
|
|
5
5
|
import { PATH_ATTR } from "./dom.js";
|
|
6
6
|
/**
|
|
@@ -117,10 +117,13 @@ export function createImeSession(host) {
|
|
|
117
117
|
// DOM도 같은 범위를 지워 두 문서가 어긋나지 않게 한다 — 지우지
|
|
118
118
|
// 않으면 조합 첫 글자가 stale DOM 위에 네이티브 삭제를 일으킨다
|
|
119
119
|
el.ownerDocument.getSelection()?.deleteFromDocument?.();
|
|
120
|
+
// 역방향 선택(anchor>focus)이면 raw anchor는 삭제 후 무효 좌표다 —
|
|
121
|
+
// 범위 앞점이 붕괴 지점이다
|
|
122
|
+
const head = normalizeRange(sel).anchor;
|
|
120
123
|
editor.dispatch(editor.state
|
|
121
124
|
.tr()
|
|
122
125
|
.delete({ anchor: sel.anchor, focus: sel.focus })
|
|
123
|
-
.setSelection(textSelection(
|
|
126
|
+
.setSelection(textSelection(head))
|
|
124
127
|
.setMeta("history.group", "type")
|
|
125
128
|
.setMeta("ime", true));
|
|
126
129
|
// 양쪽 블록 DOM이 브라우저에 직접 바뀌었다 — 리렌더 시 리컨실이
|
|
@@ -129,7 +132,7 @@ export function createImeSession(host) {
|
|
|
129
132
|
if (k != null)
|
|
130
133
|
dirtyPaths.add(k);
|
|
131
134
|
}
|
|
132
|
-
compStart =
|
|
135
|
+
compStart = head;
|
|
133
136
|
}
|
|
134
137
|
},
|
|
135
138
|
end() {
|
package/dist/view/ime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ime.js","sourceRoot":"","sources":["../../src/view/ime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ime.js","sourceRoot":"","sources":["../../src/view/ime.ts"],"names":[],"mappings":"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"}
|
package/dist/view/input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/view/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/view/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA6BlD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,IAAI,IAAI,CAAC;IACf,yCAAyC;IACzC,gBAAgB,IAAI,IAAI,CAAC;IACzB,4BAA4B;IAC5B,gBAAgB,IAAI,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,WAAW,GACd,kBAAkB,CAysBpB;AAGD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/view/input.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { nodeAt } from "../model/traverse.js";
|
|
2
2
|
import { parseHTML } from "../parse/html.js";
|
|
3
3
|
import { pointBefore, pointAfter } from "../state/navigate.js";
|
|
4
|
-
import { normalizeRange, pointEq, textSelection } from "../state/selection.js";
|
|
4
|
+
import { normalizeRange, point, pointEq, textSelection, } from "../state/selection.js";
|
|
5
5
|
import { caretPointFromXY, isLeafPoint } from "./caret.js";
|
|
6
6
|
import { applyDomSelection, domSelection, domToPoint, PATH_ATTR, } from "./dom.js";
|
|
7
7
|
import { blockCtx, dispatchFiles, rangeCtx } from "./hook-ctx.js";
|
|
8
8
|
import { createImeSession } from "./ime.js";
|
|
9
9
|
import { lineNav } from "./line-nav.js";
|
|
10
10
|
import { nodeSelectionBeforeInput, nodeSelectionKeydown, trySelectAtom, } from "./node-selection.js";
|
|
11
|
+
import { blockHasContent, pointBlockPath } from "../commands.js";
|
|
11
12
|
import { dispatchFormatInput, LINE_NAV_KEYS, normalizeKey } from "./keys.js";
|
|
12
13
|
export function bindEditorInput(editor, el) {
|
|
13
14
|
const dirtyPaths = new Set();
|
|
@@ -31,7 +32,10 @@ export function bindEditorInput(editor, el) {
|
|
|
31
32
|
el.querySelectorAll(".is-selected").forEach((n) => n.classList.remove("is-selected"));
|
|
32
33
|
const sel = editor.state.selection;
|
|
33
34
|
if (sel.type === "node") {
|
|
34
|
-
|
|
35
|
+
// data-me-path가 안쪽 아울렛(.me-node-content)에 달린 노드 뷰는
|
|
36
|
+
// 래퍼(.me-node-view)까지 올라가 컴포넌트 전체에 링을 둘러야 한다
|
|
37
|
+
const hit = el.querySelector(`[${PATH_ATTR}="${sel.path.join(",")}"]`);
|
|
38
|
+
(hit?.closest(".me-node-view") ?? hit)?.classList.add("is-selected");
|
|
35
39
|
}
|
|
36
40
|
};
|
|
37
41
|
/**
|
|
@@ -45,10 +49,42 @@ export function bindEditorInput(editor, el) {
|
|
|
45
49
|
applyDomSelection(el, anchor, focus);
|
|
46
50
|
lastApplied = { anchor, focus };
|
|
47
51
|
};
|
|
52
|
+
// 포커스가 에디터 밖에 있는 동안 건너뛴 DOM 셀렉션 반영 —
|
|
53
|
+
// focusin에서 한 번에 동기화한다
|
|
54
|
+
let pendingSel = false;
|
|
48
55
|
const restoreSelection = () => {
|
|
49
56
|
const sel = editor.state.selection;
|
|
50
|
-
//
|
|
57
|
+
// 포커스가 에디터 밖의 다른 요소(찾기 바·팝오버 입력)에 잡혀
|
|
58
|
+
// 있으면 DOM 셀렉션을 건드리지 않는다 — Blink는 contenteditable
|
|
59
|
+
// 안에 셀렉션을 쓰면 그 요소를 focus하므로, 매 커밋마다 입력
|
|
60
|
+
// 포커스를 빼앗긴다 (PM의 hasFocus 관례). 아무것도 포커스하지
|
|
61
|
+
// 않은 상태(body)는 기존처럼 반영한다 — 어차피 뺏을 포커스가
|
|
62
|
+
// 없고, DOM 셀렉션을 읽는 오버레이(ace 활성 라인)가 동작해야 한다
|
|
63
|
+
const ae = el.ownerDocument.activeElement;
|
|
64
|
+
if (ae && ae !== el.ownerDocument.body && !el.contains(ae)) {
|
|
65
|
+
pendingSel = true;
|
|
66
|
+
paintOverlays();
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
pendingSel = false;
|
|
51
70
|
if (sel.type !== "text") {
|
|
71
|
+
// 노드 셀렉션 — DOM 캐럿을 노드 요소의 경계로 고정한다 (PM 관례).
|
|
72
|
+
// 고정하지 않으면 팝 닫힘·포커스 복귀 등으로 브라우저가 캐럿을
|
|
73
|
+
// 옮길 때 selectionchange가 그 위치를 읽어 노드 셀렉션을
|
|
74
|
+
// 되감는다 — 경계에 고정하면 이후 이벤트는 같은 위치를 읽는다
|
|
75
|
+
const hit = el.querySelector(`[${PATH_ATTR}="${sel.path.join(",")}"]`);
|
|
76
|
+
const host = hit?.closest(".me-node-view") ?? hit;
|
|
77
|
+
const pi = sel.path[sel.path.length - 1];
|
|
78
|
+
if (host?.parentNode && pi != null) {
|
|
79
|
+
const idx = Array.prototype.indexOf.call(host.parentNode.childNodes, host);
|
|
80
|
+
const ds = el.ownerDocument.getSelection();
|
|
81
|
+
ds?.setBaseAndExtent(host.parentNode, idx, host.parentNode, idx);
|
|
82
|
+
// 실제로 읽히는 Point를 기록 — childNodes 인덱스와 domToPoint의
|
|
83
|
+
// 요소 인덱스가 어긋나도 이후 selectionchange는 같은 값을 읽는다
|
|
84
|
+
const back = readDomSel();
|
|
85
|
+
const bp = point(sel.path.slice(0, -1), pi);
|
|
86
|
+
lastApplied = back ?? { anchor: bp, focus: bp };
|
|
87
|
+
}
|
|
52
88
|
paintOverlays();
|
|
53
89
|
return;
|
|
54
90
|
}
|
|
@@ -88,6 +124,10 @@ export function bindEditorInput(editor, el) {
|
|
|
88
124
|
const s = readDomSel();
|
|
89
125
|
if (!s)
|
|
90
126
|
return;
|
|
127
|
+
// 흡수한 DOM 위치를 확인된 값으로 기록 — 이 위치에 대한 지연
|
|
128
|
+
// selectionchange(클릭 직후 키 입력 등)가 도착해도 "사용자가
|
|
129
|
+
// 새로 움직인 셀렉션"으로 오인하지 않게 한다 (노드 셀렉션 붕괴 방지)
|
|
130
|
+
lastApplied = s;
|
|
91
131
|
const cur = editor.state.selection;
|
|
92
132
|
if (cur.type === "text" &&
|
|
93
133
|
pointEq(cur.anchor, s.anchor) &&
|
|
@@ -168,10 +208,12 @@ export function bindEditorInput(editor, el) {
|
|
|
168
208
|
case "insertLineBreak": {
|
|
169
209
|
e.preventDefault();
|
|
170
210
|
const r = normalizeRange(sel);
|
|
171
|
-
// 분기 판단은 삭제 전 문서의 캐럿 블록 기준
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const
|
|
211
|
+
// 분기 판단은 삭제 전 문서의 캐럿 블록 기준 — 경계 포인트
|
|
212
|
+
// (빈 블록의 {path:블록,offset:0} 관례)도 안쪽 블록으로 내려
|
|
213
|
+
// 해석해야 빈 리스트 아이템의 Enter가 lift로 잡힌다
|
|
214
|
+
const blockPath = pointBlockPath(editor.state.doc, editor.state.schema, r.anchor);
|
|
215
|
+
const parentPath = blockPath?.slice(0, -1);
|
|
216
|
+
const parent = parentPath?.length
|
|
175
217
|
? nodeAt(editor.state.doc, parentPath)
|
|
176
218
|
: undefined;
|
|
177
219
|
const pspec = parent
|
|
@@ -199,11 +241,12 @@ export function bindEditorInput(editor, el) {
|
|
|
199
241
|
}
|
|
200
242
|
}
|
|
201
243
|
if (!consumed) {
|
|
202
|
-
if (pspec?.listItem) {
|
|
203
|
-
// 리스트 아이템 — 빈 아이템이면 리스트 탈출, 아니면 아이템
|
|
244
|
+
if (parentPath && pspec?.listItem) {
|
|
245
|
+
// 리스트 아이템 — 빈 아이템이면 리스트 탈출, 아니면 아이템 분할.
|
|
246
|
+
// 텍스트 길이만 보면 멘션·hardBreak만 담은 아이템이
|
|
247
|
+
// "비었다"로 오판돼 Enter에 내용이 통째로 리프트된다
|
|
204
248
|
const kids = parent.content ?? [];
|
|
205
|
-
const empty = kids.length === 1 &&
|
|
206
|
-
!(kids[0].content ?? []).some((c) => c.text?.length);
|
|
249
|
+
const empty = kids.length === 1 && !blockHasContent(kids[0]);
|
|
207
250
|
if (empty) {
|
|
208
251
|
tr.liftItem(parentPath);
|
|
209
252
|
}
|
|
@@ -427,6 +470,12 @@ export function bindEditorInput(editor, el) {
|
|
|
427
470
|
.setSelection(textSelection({ path: [], offset: 0 }, { path: [], offset: editor.state.doc.content?.length ?? 0 })));
|
|
428
471
|
return;
|
|
429
472
|
}
|
|
473
|
+
// 클릭 직후 키 입력처럼 selectionchange가 아직 도착하지 않은 창에는
|
|
474
|
+
// doc 셀렉션이 stale하다 — PM domObserver.flush 관례로 키 처리 전에
|
|
475
|
+
// DOM 셀렉션을 먼저 흡수한다. 노드 셀렉션 중엔 DOM 캐럿이 무의미한
|
|
476
|
+
// stale 위치라 덮어쓰지 않는다
|
|
477
|
+
if (editor.state.selection.type !== "node")
|
|
478
|
+
syncDocSelection();
|
|
430
479
|
// 노드 셀렉션(이미지 클릭 등) — DOM 캐럿이 없으므로 네이티브
|
|
431
480
|
// 키 동작은 모두 무시하고 모델에서 처리한다. Backspace/Delete는
|
|
432
481
|
// 노드 삭제, Enter는 노드 뒤에 새 블록, 화살표/Escape는 텍스트
|
|
@@ -506,6 +555,13 @@ export function bindEditorInput(editor, el) {
|
|
|
506
555
|
const onPaste = (e) => {
|
|
507
556
|
if (ime.active || !editor.editable)
|
|
508
557
|
return;
|
|
558
|
+
// paste 이벤트는 sanitizer·훅 소비 전 원본 페이로드로 발행한다 —
|
|
559
|
+
// 리스너(로깅·커스텀 변환)가 실제 입력을 관측할 수 있는 유일한 지점
|
|
560
|
+
editor.emit("paste", {
|
|
561
|
+
html: e.clipboardData?.getData("text/html") ?? "",
|
|
562
|
+
text: e.clipboardData?.getData("text/plain") ?? "",
|
|
563
|
+
event: e,
|
|
564
|
+
});
|
|
509
565
|
// preventDefault하면 beforeinput이 오지 않는다
|
|
510
566
|
if (dispatchFiles(editor, e.clipboardData, "paste", null)) {
|
|
511
567
|
e.preventDefault();
|
|
@@ -536,6 +592,25 @@ export function bindEditorInput(editor, el) {
|
|
|
536
592
|
const sel = readDomSel();
|
|
537
593
|
if (!sel)
|
|
538
594
|
return;
|
|
595
|
+
// 노드 셀렉션 중 도착한 selectionchange — DOM 캐럿은 우리가 노드
|
|
596
|
+
// 경계에 고정한 앵커이거나 선택 전 stale 위치다. 노드 자체의
|
|
597
|
+
// 경계 포인트(앞/뒤)나 마지막 확인 위치와 같으면 사용자가 실제로
|
|
598
|
+
// 움직인 게 아니므로 노드 셀렉션을 유지한다.
|
|
599
|
+
// (DOM 위치가 바뀌었다면 진짜 클릭/이동 — 텍스트 셀렉션으로 붕괴)
|
|
600
|
+
if (editor.state.selection.type === "node") {
|
|
601
|
+
const np = editor.state.selection.path;
|
|
602
|
+
const ni = np[np.length - 1] ?? 0;
|
|
603
|
+
const nparent = np.slice(0, -1);
|
|
604
|
+
const atNodeBoundary = pointEq(sel.anchor, point(nparent, ni)) ||
|
|
605
|
+
pointEq(sel.anchor, point(nparent, ni + 1));
|
|
606
|
+
const unchanged = lastApplied &&
|
|
607
|
+
pointEq(lastApplied.anchor, sel.anchor) &&
|
|
608
|
+
pointEq(lastApplied.focus, sel.focus);
|
|
609
|
+
if (atNodeBoundary || unchanged) {
|
|
610
|
+
paintOverlays();
|
|
611
|
+
return;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
539
614
|
// 확인한 DOM 위치를 기록 — 이후 변경분만 "사용자 이동"으로 본다
|
|
540
615
|
lastApplied = sel;
|
|
541
616
|
paintOverlays();
|
|
@@ -549,6 +624,29 @@ export function bindEditorInput(editor, el) {
|
|
|
549
624
|
// 대기 서식(storedMarks)은 커서 이동에도 유지한다 — GDocs/Word 관례
|
|
550
625
|
editor.dispatch(editor.state.tr().setSelection(next));
|
|
551
626
|
};
|
|
627
|
+
// 포커스가 에디터로 돌아오면 건너뛴 DOM 셀렉션을 동기화한다 —
|
|
628
|
+
// 찾기 바에서 내비게이션한 뒤 닫히면 마지막 매치에 캐럿이 선다
|
|
629
|
+
const onFocusIn = (e) => {
|
|
630
|
+
if (pendingSel)
|
|
631
|
+
restoreSelection();
|
|
632
|
+
// focus는 "밖→안" 진입에서만 한 번 — 자식 간 이동(노드 뷰 내부
|
|
633
|
+
// 입력 등)은 focusin이 다시 떠도 focus 이벤트를 중복 발행하지 않는다
|
|
634
|
+
if (!focused) {
|
|
635
|
+
focused = true;
|
|
636
|
+
editor.emit("focus", { event: e });
|
|
637
|
+
}
|
|
638
|
+
};
|
|
639
|
+
// 포커스가 에디터 밖으로 나갈 때 blur — relatedTarget이 안쪽이면
|
|
640
|
+
// 자식 간 이동이라 무시한다. 협업 캐럿 표시 같은 외부 리스너가
|
|
641
|
+
// 이 이벤트로 리모트 커서를 지운다
|
|
642
|
+
const onFocusOut = (e) => {
|
|
643
|
+
const next = e.relatedTarget;
|
|
644
|
+
if (next && el.contains(next))
|
|
645
|
+
return;
|
|
646
|
+
focused = false;
|
|
647
|
+
editor.emit("blur", { event: e });
|
|
648
|
+
};
|
|
649
|
+
let focused = false;
|
|
552
650
|
el.addEventListener("beforeinput", onBeforeInput);
|
|
553
651
|
el.addEventListener("keydown", onKeydown);
|
|
554
652
|
el.addEventListener("mousedown", onMouseDown);
|
|
@@ -557,6 +655,8 @@ export function bindEditorInput(editor, el) {
|
|
|
557
655
|
el.addEventListener("drop", onDrop);
|
|
558
656
|
el.addEventListener("compositionstart", ime.start);
|
|
559
657
|
el.addEventListener("compositionend", ime.end);
|
|
658
|
+
el.addEventListener("focusin", onFocusIn);
|
|
659
|
+
el.addEventListener("focusout", onFocusOut);
|
|
560
660
|
el.ownerDocument.addEventListener("selectionchange", onSelectionChange);
|
|
561
661
|
// 오버레이 초기 페인트 — React/Vue2처럼 마운트 layoutEffect가
|
|
562
662
|
// 바인딩보다 먼저 도는 렌더러에서도 첫 커밋 전에 오버레이가
|
|
@@ -577,6 +677,8 @@ export function bindEditorInput(editor, el) {
|
|
|
577
677
|
el.removeEventListener("drop", onDrop);
|
|
578
678
|
el.removeEventListener("compositionstart", ime.start);
|
|
579
679
|
el.removeEventListener("compositionend", ime.end);
|
|
680
|
+
el.removeEventListener("focusin", onFocusIn);
|
|
681
|
+
el.removeEventListener("focusout", onFocusOut);
|
|
580
682
|
el.ownerDocument.removeEventListener("selectionchange", onSelectionChange);
|
|
581
683
|
},
|
|
582
684
|
restoreSelection,
|
package/dist/view/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/view/input.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/view/input.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/view/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/view/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI1D;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,6CAA6C;IAC7C,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf;qDACiD;IACjD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,oDAAoD;AACpD,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC9C,IAAI,EAAE,MAAM,GACX,OAAO,GAAG,SAAS,CAErB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtE;AA+OD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,GAC5B,UAAU,EAAE,CAGd"}
|
package/dist/view/render.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { CODE_CHIP } from "../commands.js";
|
|
2
|
+
import { isSafeUrl } from "../parse/sanitize.js";
|
|
1
3
|
import { applyDecorations } from "./decoration.js";
|
|
2
4
|
/** 노드 타입에 등록된 nodeView가 있으면 그 팩토리, 아니면 undefined */
|
|
3
5
|
export function nodeViewFor(nodeViews, type) {
|
|
@@ -21,13 +23,40 @@ const DEFAULT_MARK_TAGS = {
|
|
|
21
23
|
underline: "u",
|
|
22
24
|
strike: "s",
|
|
23
25
|
};
|
|
26
|
+
/** 실행 가능 URL이 들어갈 수 있는 속성 — 렌더 경로의 마지막 방어선 */
|
|
27
|
+
const URL_ATTRS = new Set(["href", "src", "action", "formaction"]);
|
|
28
|
+
/**
|
|
29
|
+
* DOMSpec의 URL 속성을 검증한다 — 커스텀 toDOM이 attrs를 그대로
|
|
30
|
+
* 내보내도 javascript: 같은 위험 스킴이 DOM까지 도달하지 않게 한다.
|
|
31
|
+
* 커맨드 경로(setLink의 isSafeUrl)는 입력 시점 방어고, 여기는 doc에
|
|
32
|
+
* 이미 들어온 값(초기 doc·협업 수신·임포트 AST)에 대한 출력 방어다.
|
|
33
|
+
*/
|
|
34
|
+
function sanitizeDOMSpec(dom) {
|
|
35
|
+
if (!dom.attrs)
|
|
36
|
+
return dom;
|
|
37
|
+
let attrs;
|
|
38
|
+
for (const [k, v] of Object.entries(dom.attrs)) {
|
|
39
|
+
if (!URL_ATTRS.has(k))
|
|
40
|
+
continue;
|
|
41
|
+
// <img src="data:image/…">는 스크립트를 실행하지 않는다 —
|
|
42
|
+
// 붙여넣기 이미지(fileToDataUrl)의 정상 경로이므로 src에만 허용
|
|
43
|
+
const ok = isSafeUrl(v) ||
|
|
44
|
+
(k === "src" && v.trim().toLowerCase().startsWith("data:image/"));
|
|
45
|
+
if (!ok)
|
|
46
|
+
(attrs ?? (attrs = { ...dom.attrs }))[k] = "";
|
|
47
|
+
}
|
|
48
|
+
return attrs ? { ...dom, attrs } : dom;
|
|
49
|
+
}
|
|
24
50
|
function markDOM(mark, schema) {
|
|
25
51
|
const spec = schema.markSpec(mark.type);
|
|
26
52
|
const custom = spec?.toDOM?.(mark);
|
|
27
53
|
if (custom)
|
|
28
|
-
return custom;
|
|
54
|
+
return sanitizeDOMSpec(custom);
|
|
29
55
|
if (mark.type === "link") {
|
|
30
|
-
return {
|
|
56
|
+
return sanitizeDOMSpec({
|
|
57
|
+
tag: "a",
|
|
58
|
+
attrs: { href: String(mark.attrs?.["href"] ?? "") },
|
|
59
|
+
});
|
|
31
60
|
}
|
|
32
61
|
const tag = DEFAULT_MARK_TAGS[mark.type];
|
|
33
62
|
return tag ? { tag } : { tag: "span", attrs: { "data-mark": mark.type } };
|
|
@@ -36,7 +65,7 @@ function nodeDOM(node, schema) {
|
|
|
36
65
|
const spec = schema.nodeSpec(node.type);
|
|
37
66
|
const custom = spec?.toDOM?.(node);
|
|
38
67
|
if (custom)
|
|
39
|
-
return custom;
|
|
68
|
+
return sanitizeDOMSpec(custom);
|
|
40
69
|
switch (node.type) {
|
|
41
70
|
case "paragraph":
|
|
42
71
|
return { tag: "p" };
|
|
@@ -94,6 +123,14 @@ function renderText(node, path, schema) {
|
|
|
94
123
|
source: node,
|
|
95
124
|
};
|
|
96
125
|
}
|
|
126
|
+
// 빈 코드 칩(CODE_CHIP = zwsp)은 내용이 보이지 않으니 최외곽에
|
|
127
|
+
// 클래스를 달아 CSS 자리표시자를 띄운다 — 타이핑이 zwsp를 대체하면
|
|
128
|
+
// 클래스도 사라진다
|
|
129
|
+
if (text === CODE_CHIP &&
|
|
130
|
+
marks.some((m) => m.type === "code") &&
|
|
131
|
+
out.attrs) {
|
|
132
|
+
out.attrs = { ...out.attrs, class: "me-codechip" };
|
|
133
|
+
}
|
|
97
134
|
return out;
|
|
98
135
|
}
|
|
99
136
|
function renderNode(node, path, schema) {
|
package/dist/view/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/view/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/view/render.ts"],"names":[],"mappings":"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"}
|