@plait/angular-text 0.72.0 → 0.74.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/esm2022/plugins/with-inline-move.mjs +58 -0
- package/esm2022/plugins/with-text.mjs +2 -3
- package/esm2022/text/text.component.mjs +3 -3
- package/fesm2022/plait-angular-text.mjs +3 -4
- package/fesm2022/plait-angular-text.mjs.map +1 -1
- package/package.json +1 -1
- package/plugins/{with-selection.d.ts → with-inline-move.d.ts} +1 -1
- package/plugins/with-text.d.ts +1 -2
- package/esm2022/plugins/with-selection.mjs +0 -58
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Editor, Element, Transforms, Range } from 'slate';
|
|
2
|
+
import { hotkeys } from 'slate-angular';
|
|
3
|
+
export const withInlineMove = (editor) => {
|
|
4
|
+
const { onKeydown } = editor;
|
|
5
|
+
editor.onKeydown = (event) => {
|
|
6
|
+
const { selection } = editor;
|
|
7
|
+
if (!selection || !selection.anchor || !selection.focus) {
|
|
8
|
+
onKeydown(event);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const isMoveBackward = hotkeys.isMoveBackward(event);
|
|
12
|
+
const isMoveForward = hotkeys.isMoveForward(event);
|
|
13
|
+
const isCollapsed = selection && Range.isCollapsed(selection);
|
|
14
|
+
const isInlineNode = isInline(editor);
|
|
15
|
+
if (isCollapsed && isMoveForward) {
|
|
16
|
+
let isInlineCodeBefore = false;
|
|
17
|
+
if (!isInlineNode) {
|
|
18
|
+
try {
|
|
19
|
+
const { path } = Editor.after(editor, selection);
|
|
20
|
+
if (path) {
|
|
21
|
+
isInlineCodeBefore = isInline(editor, path);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch (error) { }
|
|
25
|
+
}
|
|
26
|
+
if (isInlineNode || isInlineCodeBefore) {
|
|
27
|
+
event.preventDefault();
|
|
28
|
+
Transforms.move(editor, { unit: 'offset' });
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (isCollapsed && isMoveBackward) {
|
|
33
|
+
let isInlineCodeAfter = false;
|
|
34
|
+
if (!isInlineNode) {
|
|
35
|
+
try {
|
|
36
|
+
const { path } = Editor.before(editor, selection);
|
|
37
|
+
isInlineCodeAfter = isInline(editor, path);
|
|
38
|
+
}
|
|
39
|
+
catch (error) { }
|
|
40
|
+
}
|
|
41
|
+
if (isInlineNode || isInlineCodeAfter) {
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
Transforms.move(editor, { unit: 'offset', reverse: true });
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
onKeydown(event);
|
|
48
|
+
};
|
|
49
|
+
return editor;
|
|
50
|
+
};
|
|
51
|
+
export const isInline = (editor, path) => {
|
|
52
|
+
const [inlineNode] = Editor.nodes(editor, {
|
|
53
|
+
at: path ? path : editor.selection?.anchor.path,
|
|
54
|
+
match: n => Element.isElement(n) && Editor.isInline(editor, n) && !Editor.isVoid(editor, n)
|
|
55
|
+
});
|
|
56
|
+
return !!inlineNode;
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1pbmxpbmUtbW92ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItdGV4dC9zcmMvcGx1Z2lucy93aXRoLWlubGluZS1tb3ZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVEsTUFBTSxPQUFPLENBQUM7QUFDakUsT0FBTyxFQUFpQixPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQTBCLE1BQVMsRUFBSyxFQUFFO0lBQ3BFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFN0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtRQUN4QyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQixPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLFdBQVcsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxXQUFXLElBQUksYUFBYSxFQUFFLENBQUM7WUFDL0IsSUFBSSxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUM7b0JBQ0QsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBRSxDQUFDO29CQUNsRCxJQUFJLElBQUksRUFBRSxDQUFDO3dCQUNQLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ2hELENBQUM7Z0JBQ0wsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUEsQ0FBQztZQUN0QixDQUFDO1lBQ0QsSUFBSSxZQUFZLElBQUksa0JBQWtCLEVBQUUsQ0FBQztnQkFDckMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPO1lBQ1gsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLFdBQVcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNoQyxJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUM5QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQztvQkFDRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFFLENBQUM7b0JBQ25ELGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQy9DLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFBLENBQUM7WUFDdEIsQ0FBQztZQUNELElBQUksWUFBWSxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxPQUFPO1lBQ1gsQ0FBQztRQUNMLENBQUM7UUFDRCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBYyxFQUFFLElBQVcsRUFBVyxFQUFFO0lBQzdELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUN0QyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDL0MsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUM5RixDQUFDLENBQUM7SUFDSCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBUcmFuc2Zvcm1zLCBSYW5nZSwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IsIGhvdGtleXMgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcblxuZXhwb3J0IGNvbnN0IHdpdGhJbmxpbmVNb3ZlID0gPFQgZXh0ZW5kcyBBbmd1bGFyRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCB7IG9uS2V5ZG93biB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLm9uS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbiB8fCAhc2VsZWN0aW9uLmFuY2hvciB8fCAhc2VsZWN0aW9uLmZvY3VzKSB7XG4gICAgICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzTW92ZUJhY2t3YXJkID0gaG90a2V5cy5pc01vdmVCYWNrd2FyZChldmVudCk7XG4gICAgICAgIGNvbnN0IGlzTW92ZUZvcndhcmQgPSBob3RrZXlzLmlzTW92ZUZvcndhcmQoZXZlbnQpO1xuICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9IHNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBpc0lubGluZU5vZGUgPSBpc0lubGluZShlZGl0b3IpO1xuICAgICAgICBpZiAoaXNDb2xsYXBzZWQgJiYgaXNNb3ZlRm9yd2FyZCkge1xuICAgICAgICAgICAgbGV0IGlzSW5saW5lQ29kZUJlZm9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFpc0lubGluZU5vZGUpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGggfSA9IEVkaXRvci5hZnRlcihlZGl0b3IsIHNlbGVjdGlvbikhO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJbmxpbmVDb2RlQmVmb3JlID0gaXNJbmxpbmUoZWRpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSW5saW5lTm9kZSB8fCBpc0lubGluZUNvZGVCZWZvcmUpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZShlZGl0b3IsIHsgdW5pdDogJ29mZnNldCcgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpc0NvbGxhcHNlZCAmJiBpc01vdmVCYWNrd2FyZCkge1xuICAgICAgICAgICAgbGV0IGlzSW5saW5lQ29kZUFmdGVyID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIWlzSW5saW5lTm9kZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aCB9ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIHNlbGVjdGlvbikhO1xuICAgICAgICAgICAgICAgICAgICBpc0lubGluZUNvZGVBZnRlciA9IGlzSW5saW5lKGVkaXRvciwgcGF0aCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbmxpbmVOb2RlIHx8IGlzSW5saW5lQ29kZUFmdGVyKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmUoZWRpdG9yLCB7IHVuaXQ6ICdvZmZzZXQnLCByZXZlcnNlOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSW5saW5lID0gKGVkaXRvcjogRWRpdG9yLCBwYXRoPzogUGF0aCk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IFtpbmxpbmVOb2RlXSA9IEVkaXRvci5ub2RlcyhlZGl0b3IsIHtcbiAgICAgICAgYXQ6IHBhdGggPyBwYXRoIDogZWRpdG9yLnNlbGVjdGlvbj8uYW5jaG9yLnBhdGgsXG4gICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIEVkaXRvci5pc0lubGluZShlZGl0b3IsIG4pICYmICFFZGl0b3IuaXNWb2lkKGVkaXRvciwgbilcbiAgICB9KTtcbiAgICByZXR1cm4gISFpbmxpbmVOb2RlO1xufTtcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CLIPBOARD_FORMAT_KEY } from '@plait/text-plugins';
|
|
2
|
-
export const withText = (editor
|
|
2
|
+
export const withText = (editor) => {
|
|
3
3
|
const e = editor;
|
|
4
4
|
const { insertData } = e;
|
|
5
5
|
e.insertBreak = () => {
|
|
@@ -18,7 +18,6 @@ export const withText = (editor, board) => {
|
|
|
18
18
|
}
|
|
19
19
|
insertData(data);
|
|
20
20
|
};
|
|
21
|
-
e.board = board;
|
|
22
21
|
return e;
|
|
23
22
|
};
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10ZXh0L3NyYy9wbHVnaW5zL3dpdGgtdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUkzRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBMEIsTUFBUyxFQUFFLEVBQUU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsTUFBNkIsQ0FBQztJQUN4QyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXpCLENBQUMsQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDO0lBRUYsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQWtCLEVBQUUsRUFBRTtRQUNsQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQztZQUNELElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25CLE9BQU87UUFDWCxDQUFDO1FBQ0QsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0xJUEJPQVJEX0ZPUk1BVF9LRVkgfSBmcm9tICdAcGxhaXQvdGV4dC1wbHVnaW5zJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IFBsYWl0VGV4dEVkaXRvciB9IGZyb20gJy4vdGV4dC5lZGl0b3InO1xuXG5leHBvcnQgY29uc3Qgd2l0aFRleHQgPSA8VCBleHRlbmRzIEFuZ3VsYXJFZGl0b3I+KGVkaXRvcjogVCkgPT4ge1xuICAgIGNvbnN0IGUgPSBlZGl0b3IgYXMgVCAmIFBsYWl0VGV4dEVkaXRvcjtcbiAgICBjb25zdCB7IGluc2VydERhdGEgfSA9IGU7XG5cbiAgICBlLmluc2VydEJyZWFrID0gKCkgPT4ge1xuICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dCgnXFxuJyk7XG4gICAgfTtcblxuICAgIGUuaW5zZXJ0RGF0YSA9IChkYXRhOiBEYXRhVHJhbnNmZXIpID0+IHtcbiAgICAgICAgbGV0IHRleHQgPSBkYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcbiAgICAgICAgbGV0IHBsYWl0RGF0YSA9IGRhdGEuZ2V0RGF0YShgYXBwbGljYXRpb24vJHtDTElQQk9BUkRfRk9STUFUX0tFWX1gKTtcbiAgICAgICAgaWYgKCFwbGFpdERhdGEgJiYgdGV4dCkge1xuICAgICAgICAgICAgaWYgKHRleHQuZW5kc1dpdGgoJ1xcbicpKSB7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZXh0ID0gdGV4dC50cmltKCkucmVwbGFjZSgvXFx0Ky9nLCAnICcpO1xuICAgICAgICAgICAgZS5pbnNlcnRUZXh0KHRleHQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGluc2VydERhdGEoZGF0YSk7XG4gICAgfTtcblxuICAgIHJldHVybiBlO1xufTtcbiJdfQ==
|
|
@@ -6,7 +6,7 @@ import { withHistory } from 'slate-history';
|
|
|
6
6
|
import { PlaitLinkNodeComponent } from '../plugins/link/link.component';
|
|
7
7
|
import { withMarkHotkey } from '../plugins/mark-hotkey/with-mark-hotkey';
|
|
8
8
|
import { ParagraphElementComponent } from '../plugins/paragraph/paragraph.component';
|
|
9
|
-
import {
|
|
9
|
+
import { withInlineMove } from '../plugins/with-inline-move';
|
|
10
10
|
import { withText } from '../plugins/with-text';
|
|
11
11
|
import { PlaitTextNodeComponent } from '../text-node/text.component';
|
|
12
12
|
import { FormsModule } from '@angular/forms';
|
|
@@ -31,7 +31,7 @@ export class PlaitTextComponent {
|
|
|
31
31
|
this.hostClass = 'plait-text-container';
|
|
32
32
|
this.children = [];
|
|
33
33
|
this.readonly = true;
|
|
34
|
-
this.editor =
|
|
34
|
+
this.editor = withInlineMove(withPasteLink(withMarkHotkey(withText(withHistory(withAngular(createEditor(), CLIPBOARD_FORMAT_KEY))))));
|
|
35
35
|
this.renderElement = (element) => {
|
|
36
36
|
const render = this.editor.renderElement;
|
|
37
37
|
if (render && render(element)) {
|
|
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
112
112
|
}], board: [{
|
|
113
113
|
type: Input
|
|
114
114
|
}] } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRleHQvc3JjL3RleHQvdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRleHQvc3JjL3RleHQvdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBS0wsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUF5QixVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVks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dGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNLZXlIb3RrZXkgfSBmcm9tICdpcy1ob3RrZXknO1xuaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBUZXh0LCBUcmFuc2Zvcm1zLCBjcmVhdGVFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBTbGF0ZUVkaXRhYmxlLCB3aXRoQW5ndWxhciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgd2l0aEhpc3RvcnkgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcbmltcG9ydCB7IFBsYWl0TGlua05vZGVDb21wb25lbnQgfSBmcm9tICcuLi9wbHVnaW5zL2xpbmsvbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgd2l0aE1hcmtIb3RrZXkgfSBmcm9tICcuLi9wbHVnaW5zL21hcmstaG90a2V5L3dpdGgtbWFyay1ob3RrZXknO1xuaW1wb3J0IHsgUGFyYWdyYXBoRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uL3BsdWdpbnMvcGFyYWdyYXBoL3BhcmFncmFwaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgd2l0aFNlbGVjdGlvbiB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgd2l0aFRleHQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtdGV4dCc7XG5pbXBvcnQgeyBQbGFpdFRleHROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dC1ub2RlL3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGlua0VsZW1lbnQsIFRleHRDaGFuZ2VEYXRhLCBUZXh0UGx1Z2luIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBDTElQQk9BUkRfRk9STUFUX0tFWSwgTWFya1R5cGVzIH0gZnJvbSAnQHBsYWl0L3RleHQtcGx1Z2lucyc7XG5pbXBvcnQgeyB3aXRoUGFzdGVMaW5rIH0gZnJvbSAnLi4vcGx1Z2lucy9saW5rL3dpdGgtbGluay1pbnNlcnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtdGV4dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RleHQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1NsYXRlRWRpdGFibGUsIEZvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYWl0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgaG9zdENsYXNzID0gJ3BsYWl0LXRleHQtY29udGFpbmVyJztcblxuICAgIGNoaWxkcmVuOiBFbGVtZW50W10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHRleHRQbHVnaW5zPzogVGV4dFBsdWdpbltdO1xuXG4gICAgQElucHV0KCkgc2V0IHRleHQodGV4dDogRWxlbWVudCkge1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gW3RleHRdO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSByZWFkb25seSA9IHRydWU7XG5cbiAgICBAVmlld0NoaWxkKCdzbGF0ZUVkaXRhYmxlJylcbiAgICBzbGF0ZUVkaXRhYmxlITogU2xhdGVFZGl0YWJsZTtcblxuICAgIEBJbnB1dCgpXG4gICAgb25DaGFuZ2UhOiAoZGF0YTogVGV4dENoYW5nZURhdGEpID0+IHZvaWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGFmdGVySW5pdD86IChlZGl0b3I6IEVkaXRvcikgPT4gdm9pZDtcblxuICAgIEBJbnB1dCgpXG4gICAgb25Db21wb3NpdGlvbiE6IChldmVudDogQ29tcG9zaXRpb25FdmVudCkgPT4gdm9pZDtcblxuICAgIEBJbnB1dCgpXG4gICAgYm9hcmQhOiBQbGFpdEJvYXJkO1xuXG4gICAgZWRpdG9yID0gd2l0aFNlbGVjdGlvbihcbiAgICAgICAgd2l0aFBhc3RlTGluayh3aXRoTWFya0hvdGtleSh3aXRoVGV4dCh3aXRoSGlzdG9yeSh3aXRoQW5ndWxhcihjcmVhdGVFZGl0b3IoKSwgQ0xJUEJPQVJEX0ZPUk1BVF9LRVkpKSwgdGhpcy5ib2FyZCkpKVxuICAgICk7XG5cbiAgICBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlbmRlcmVyMjogUmVuZGVyZXIyLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICAgIHZhbHVlQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHsgbmV3VGV4dDogdGhpcy5lZGl0b3IuY2hpbGRyZW5bMF0gYXMgRWxlbWVudCwgb3BlcmF0aW9uczogdGhpcy5lZGl0b3Iub3BlcmF0aW9ucyB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRleHRQbHVnaW5zKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRQbHVnaW5zLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgICAgICAgICAgICBwbHVnaW4odGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lZGl0b3IuYm9hcmQgPSB0aGlzLmJvYXJkO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZnRlckluaXQgJiYgdGhpcy5hZnRlckluaXQodGhpcy5lZGl0b3IpO1xuICAgIH1cblxuICAgIHJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCByZW5kZXIgPSB0aGlzLmVkaXRvci5yZW5kZXJFbGVtZW50O1xuICAgICAgICBpZiAocmVuZGVyICYmIHJlbmRlcihlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlbmRlcihlbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoZWxlbWVudCBhcyBMaW5rRWxlbWVudCkudHlwZSA9PT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICByZXR1cm4gUGxhaXRMaW5rTm9kZUNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQYXJhZ3JhcGhFbGVtZW50Q29tcG9uZW50O1xuICAgIH07XG5cbiAgICByZW5kZXJUZXh0OiBhbnkgPSAodGV4dDogVGV4dCk6IFBsYWl0VGV4dE5vZGVDb21wb25lbnQgfCBudWxsID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gTWFya1R5cGVzKSB7XG4gICAgICAgICAgICBpZiAoKHRleHQgYXMgYW55KVsoTWFya1R5cGVzIGFzIGFueSlba2V5XV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUGxhaXRUZXh0Tm9kZUNvbXBvbmVudCBhcyBhbnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGNvbXBvc2l0aW9uU3RhcnQgPSAoZXZlbnQ6IENvbXBvc2l0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5vbkNvbXBvc2l0aW9uKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgY29tcG9zaXRpb25VcGRhdGUgPSAoZXZlbnQ6IENvbXBvc2l0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5vbkNvbXBvc2l0aW9uKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgY29tcG9zaXRpb25FbmQgPSAoZXZlbnQ6IENvbXBvc2l0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5vbkNvbXBvc2l0aW9uKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgb25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK2EnLCBldmVudCkpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBbMF0pO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvci5vbktleWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBzY3JvbGxTZWxlY3Rpb25JbnRvVmlldyA9ICgpID0+IHtcbiAgICAgICAgLy8gcHJldmVudCBhdXRvIHNjcm9sbFxuICAgIH1cbn1cbiIsIjxzbGF0ZS1lZGl0YWJsZVxuICAgICNzbGF0ZUVkaXRhYmxlXG4gICAgW2VkaXRvcl09XCJlZGl0b3JcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgWyhuZ01vZGVsKV09XCJjaGlsZHJlblwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVDaGFuZ2UoKVwiXG4gICAgW2tleWRvd25dPVwib25LZXlkb3duXCJcbiAgICBbcmVuZGVyRWxlbWVudF09XCJyZW5kZXJFbGVtZW50XCJcbiAgICBbY29tcG9zaXRpb25TdGFydF09XCJjb21wb3NpdGlvblN0YXJ0XCJcbiAgICBbY29tcG9zaXRpb25VcGRhdGVdPVwiY29tcG9zaXRpb25VcGRhdGVcIlxuICAgIFtjb21wb3NpdGlvbkVuZF09XCJjb21wb3NpdGlvbkVuZFwiXG4gICAgW3JlbmRlclRleHRdPVwicmVuZGVyVGV4dFwiXG4gICAgW25nQ2xhc3NdPVwieydlZGl0aW5nJzogIXJlYWRvbmx5fVwiXG4gICAgW3Njcm9sbFNlbGVjdGlvbkludG9WaWV3XT1cInNjcm9sbFNlbGVjdGlvbkludG9WaWV3XCJcbj48L3NsYXRlLWVkaXRhYmxlPlxuIl19
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRleHQvc3JjL3RleHQvdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRleHQvc3JjL3RleHQvdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBS0wsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUF5QixVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBUy9DLE1BQU0sT0FBTyxrQkFBa0I7SUFPM0IsSUFBYSxJQUFJLENBQUMsSUFBYTtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBcUJELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFtQixTQUFvQixFQUFVLEdBQXNCLEVBQVMsVUFBbUM7UUFBaEcsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFsQzdGLGNBQVMsR0FBRyxzQkFBc0IsQ0FBQztRQUV6RCxhQUFRLEdBQWMsRUFBRSxDQUFDO1FBU2hCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFpQnpCLFdBQU0sR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQTJCakksa0JBQWEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUN6QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsQ0FBQztZQUVELElBQUssT0FBdUIsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQzNDLE9BQU8sc0JBQXNCLENBQUM7WUFDbEMsQ0FBQztZQUVELE9BQU8seUJBQXlCLENBQUM7UUFDckMsQ0FBQyxDQUFDO1FBRUYsZUFBVSxHQUFRLENBQUMsSUFBVSxFQUFpQyxFQUFFO1lBQzVELEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzFCLElBQUssSUFBWSxDQUFFLFNBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN6QyxPQUFPLHNCQUE2QixDQUFDO2dCQUN6QyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQztRQUVGLHFCQUFnQixHQUFHLENBQUMsS0FBdUIsRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBRUYsc0JBQWlCLEdBQUcsQ0FBQyxLQUF1QixFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUM7UUFFRixtQkFBYyxHQUFHLENBQUMsS0FBdUIsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBRUYsY0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQ2pDLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM5QixVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQztRQUVGLDRCQUF1QixHQUFHLEdBQUcsRUFBRTtZQUMzQixzQkFBc0I7UUFDMUIsQ0FBQyxDQUFDO0lBakVvSCxDQUFDO0lBRXZILFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQixJQUFTLENBQUM7SUFFNUMsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBdERRLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDBhQ3BDL0IscWdCQWVBLDRDRG1CYyxhQUFhLHFkQUFFLFdBQVcsOFZBQUUsWUFBWTs7MkZBRXpDLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDSSxZQUFZLGNBRVYsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUM7dUlBRzdCLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTztnQkFJWCxXQUFXO3NCQUFuQixLQUFLO2dCQUVPLElBQUk7c0JBQWhCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFHTixhQUFhO3NCQURaLFNBQVM7dUJBQUMsZUFBZTtnQkFJMUIsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNLZXlIb3RrZXkgfSBmcm9tICdpcy1ob3RrZXknO1xuaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBUZXh0LCBUcmFuc2Zvcm1zLCBjcmVhdGVFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBTbGF0ZUVkaXRhYmxlLCB3aXRoQW5ndWxhciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgd2l0aEhpc3RvcnkgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcbmltcG9ydCB7IFBsYWl0TGlua05vZGVDb21wb25lbnQgfSBmcm9tICcuLi9wbHVnaW5zL2xpbmsvbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgd2l0aE1hcmtIb3RrZXkgfSBmcm9tICcuLi9wbHVnaW5zL21hcmstaG90a2V5L3dpdGgtbWFyay1ob3RrZXknO1xuaW1wb3J0IHsgUGFyYWdyYXBoRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uL3BsdWdpbnMvcGFyYWdyYXBoL3BhcmFncmFwaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgd2l0aElubGluZU1vdmUgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtaW5saW5lLW1vdmUnO1xuaW1wb3J0IHsgd2l0aFRleHQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtdGV4dCc7XG5pbXBvcnQgeyBQbGFpdFRleHROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dC1ub2RlL3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGlua0VsZW1lbnQsIFRleHRDaGFuZ2VEYXRhLCBUZXh0UGx1Z2luIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBDTElQQk9BUkRfRk9STUFUX0tFWSwgTWFya1R5cGVzIH0gZnJvbSAnQHBsYWl0L3RleHQtcGx1Z2lucyc7XG5pbXBvcnQgeyB3aXRoUGFzdGVMaW5rIH0gZnJvbSAnLi4vcGx1Z2lucy9saW5rL3dpdGgtbGluay1pbnNlcnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtdGV4dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RleHQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1NsYXRlRWRpdGFibGUsIEZvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYWl0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgaG9zdENsYXNzID0gJ3BsYWl0LXRleHQtY29udGFpbmVyJztcblxuICAgIGNoaWxkcmVuOiBFbGVtZW50W10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHRleHRQbHVnaW5zPzogVGV4dFBsdWdpbltdO1xuXG4gICAgQElucHV0KCkgc2V0IHRleHQodGV4dDogRWxlbWVudCkge1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gW3RleHRdO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSByZWFkb25seSA9IHRydWU7XG5cbiAgICBAVmlld0NoaWxkKCdzbGF0ZUVkaXRhYmxlJylcbiAgICBzbGF0ZUVkaXRhYmxlITogU2xhdGVFZGl0YWJsZTtcblxuICAgIEBJbnB1dCgpXG4gICAgb25DaGFuZ2UhOiAoZGF0YTogVGV4dENoYW5nZURhdGEpID0+IHZvaWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGFmdGVySW5pdD86IChlZGl0b3I6IEVkaXRvcikgPT4gdm9pZDtcblxuICAgIEBJbnB1dCgpXG4gICAgb25Db21wb3NpdGlvbiE6IChldmVudDogQ29tcG9zaXRpb25FdmVudCkgPT4gdm9pZDtcblxuICAgIEBJbnB1dCgpXG4gICAgYm9hcmQhOiBQbGFpdEJvYXJkO1xuXG4gICAgZWRpdG9yID0gd2l0aElubGluZU1vdmUod2l0aFBhc3RlTGluayh3aXRoTWFya0hvdGtleSh3aXRoVGV4dCh3aXRoSGlzdG9yeSh3aXRoQW5ndWxhcihjcmVhdGVFZGl0b3IoKSwgQ0xJUEJPQVJEX0ZPUk1BVF9LRVkpKSkpKSk7XG5cbiAgICBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlbmRlcmVyMjogUmVuZGVyZXIyLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICAgIHZhbHVlQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHsgbmV3VGV4dDogdGhpcy5lZGl0b3IuY2hpbGRyZW5bMF0gYXMgRWxlbWVudCwgb3BlcmF0aW9uczogdGhpcy5lZGl0b3Iub3BlcmF0aW9ucyB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRleHRQbHVnaW5zKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRQbHVnaW5zLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgICAgICAgICAgICBwbHVnaW4odGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lZGl0b3IuYm9hcmQgPSB0aGlzLmJvYXJkO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZnRlckluaXQgJiYgdGhpcy5hZnRlckluaXQodGhpcy5lZGl0b3IpO1xuICAgIH1cblxuICAgIHJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCByZW5kZXIgPSB0aGlzLmVkaXRvci5yZW5kZXJFbGVtZW50O1xuICAgICAgICBpZiAocmVuZGVyICYmIHJlbmRlcihlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlbmRlcihlbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoZWxlbWVudCBhcyBMaW5rRWxlbWVudCkudHlwZSA9PT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICByZXR1cm4gUGxhaXRMaW5rTm9kZUNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQYXJhZ3JhcGhFbGVtZW50Q29tcG9uZW50O1xuICAgIH07XG5cbiAgICByZW5kZXJUZXh0OiBhbnkgPSAodGV4dDogVGV4dCk6IFBsYWl0VGV4dE5vZGVDb21wb25lbnQgfCBudWxsID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gTWFya1R5cGVzKSB7XG4gICAgICAgICAgICBpZiAoKHRleHQgYXMgYW55KVsoTWFya1R5cGVzIGFzIGFueSlba2V5XV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUGxhaXRUZXh0Tm9kZUNvbXBvbmVudCBhcyBhbnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGNvbXBvc2l0aW9uU3RhcnQgPSAoZXZlbnQ6IENvbXBvc2l0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5vbkNvbXBvc2l0aW9uKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgY29tcG9zaXRpb25VcGRhdGUgPSAoZXZlbnQ6IENvbXBvc2l0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5vbkNvbXBvc2l0aW9uKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgY29tcG9zaXRpb25FbmQgPSAoZXZlbnQ6IENvbXBvc2l0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5vbkNvbXBvc2l0aW9uKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgb25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK2EnLCBldmVudCkpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBbMF0pO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvci5vbktleWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBzY3JvbGxTZWxlY3Rpb25JbnRvVmlldyA9ICgpID0+IHtcbiAgICAgICAgLy8gcHJldmVudCBhdXRvIHNjcm9sbFxuICAgIH07XG59XG4iLCI8c2xhdGUtZWRpdGFibGVcbiAgICAjc2xhdGVFZGl0YWJsZVxuICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFsobmdNb2RlbCldPVwiY2hpbGRyZW5cIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlQ2hhbmdlKClcIlxuICAgIFtrZXlkb3duXT1cIm9uS2V5ZG93blwiXG4gICAgW3JlbmRlckVsZW1lbnRdPVwicmVuZGVyRWxlbWVudFwiXG4gICAgW2NvbXBvc2l0aW9uU3RhcnRdPVwiY29tcG9zaXRpb25TdGFydFwiXG4gICAgW2NvbXBvc2l0aW9uVXBkYXRlXT1cImNvbXBvc2l0aW9uVXBkYXRlXCJcbiAgICBbY29tcG9zaXRpb25FbmRdPVwiY29tcG9zaXRpb25FbmRcIlxuICAgIFtyZW5kZXJUZXh0XT1cInJlbmRlclRleHRcIlxuICAgIFtuZ0NsYXNzXT1cInsnZWRpdGluZyc6ICFyZWFkb25seX1cIlxuICAgIFtzY3JvbGxTZWxlY3Rpb25JbnRvVmlld109XCJzY3JvbGxTZWxlY3Rpb25JbnRvVmlld1wiXG4+PC9zbGF0ZS1lZGl0YWJsZT5cbiJdfQ==
|
|
@@ -101,7 +101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
101
101
|
}]
|
|
102
102
|
}] });
|
|
103
103
|
|
|
104
|
-
const
|
|
104
|
+
const withInlineMove = (editor) => {
|
|
105
105
|
const { onKeydown } = editor;
|
|
106
106
|
editor.onKeydown = (event) => {
|
|
107
107
|
const { selection } = editor;
|
|
@@ -157,7 +157,7 @@ const isInline = (editor, path) => {
|
|
|
157
157
|
return !!inlineNode;
|
|
158
158
|
};
|
|
159
159
|
|
|
160
|
-
const withText = (editor
|
|
160
|
+
const withText = (editor) => {
|
|
161
161
|
const e = editor;
|
|
162
162
|
const { insertData } = e;
|
|
163
163
|
e.insertBreak = () => {
|
|
@@ -176,7 +176,6 @@ const withText = (editor, board) => {
|
|
|
176
176
|
}
|
|
177
177
|
insertData(data);
|
|
178
178
|
};
|
|
179
|
-
e.board = board;
|
|
180
179
|
return e;
|
|
181
180
|
};
|
|
182
181
|
|
|
@@ -262,7 +261,7 @@ class PlaitTextComponent {
|
|
|
262
261
|
this.hostClass = 'plait-text-container';
|
|
263
262
|
this.children = [];
|
|
264
263
|
this.readonly = true;
|
|
265
|
-
this.editor =
|
|
264
|
+
this.editor = withInlineMove(withPasteLink(withMarkHotkey(withText(withHistory(withAngular(createEditor(), CLIPBOARD_FORMAT_KEY))))));
|
|
266
265
|
this.renderElement = (element) => {
|
|
267
266
|
const render = this.editor.renderElement;
|
|
268
267
|
if (render && render(element)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plait-angular-text.mjs","sources":["../../../packages/angular-text/src/plugins/link/link.component.ts","../../../packages/angular-text/src/plugins/mark-hotkey/with-mark-hotkey.ts","../../../packages/angular-text/src/plugins/paragraph/paragraph.component.ts","../../../packages/angular-text/src/plugins/with-selection.ts","../../../packages/angular-text/src/plugins/with-text.ts","../../../packages/angular-text/src/text-node/text.component.ts","../../../packages/angular-text/src/plugins/link/with-link-insert.ts","../../../packages/angular-text/src/text/text.component.ts","../../../packages/angular-text/src/text/text.component.html","../../../packages/angular-text/src/public-api.ts","../../../packages/angular-text/src/plait-angular-text.ts"],"sourcesContent":["import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { LinkElement } from '@plait/common';\nimport { BaseElementComponent } from 'slate-angular';\n\n@Component({\n selector: 'a[plaitLink]',\n template: `\n <span contenteditable=\"false\" class=\"link-break-char\">{{ inlineChromiumBugfix }}</span>\n <span #outletParent></span>\n <span contenteditable=\"false\" class=\"link-break-char\">{{ inlineChromiumBugfix }}</span>\n `,\n host: {\n '[attr.href]': 'element.url',\n target: '_blank',\n class: 'plait-link-node'\n },\n standalone: true\n})\nexport class PlaitLinkNodeComponent extends BaseElementComponent<LinkElement> implements OnInit {\n // Put this at the start and end of an inline component to work around this Chromium bug:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1249405\n inlineChromiumBugfix = String.fromCodePoint(160);\n\n @ViewChild('outletParent', { read: ElementRef, static: true })\n outletParent!: ElementRef;\n\n getOutletParent = () => {\n return this.outletParent.nativeElement;\n };\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { AngularEditor } from 'slate-angular';\nimport { MarkEditor, markShortcuts, withMark } from '@plait/text-plugins';\n\nexport const withMarkHotkey = <T extends AngularEditor & MarkEditor>(editor: T): T => {\n const e = editor;\n\n const { onKeydown } = e;\n\n e.onKeydown = (event: KeyboardEvent) => {\n markShortcuts(editor, event);\n onKeydown(event);\n };\n\n return withMark(e);\n};\n","import { Component, ChangeDetectionStrategy, OnInit } from '@angular/core';\nimport { ParagraphElement } from '@plait/common';\nimport { BaseElementComponent } from 'slate-angular';\n\n@Component({\n selector: 'div[plaitTextParagraphElement]',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'plait-text-paragraph'\n }\n})\nexport class ParagraphElementComponent extends BaseElementComponent<ParagraphElement> implements OnInit {\n ngOnInit(): void {\n super.ngOnInit();\n this.applyAlign();\n }\n\n onContextChange(): void {\n super.onContextChange();\n if (this.initialized) {\n this.applyAlign();\n }\n }\n\n applyAlign() {\n if (this.element.align) {\n if (this.nativeElement.style.textAlign !== this.element.align) {\n this.nativeElement.style.textAlign = this.element.align;\n }\n } else if (this.nativeElement.style.textAlign) {\n this.nativeElement.style.removeProperty('text-align');\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Editor, Element, Transforms, Range, Path } from 'slate';\nimport { AngularEditor, hotkeys } from 'slate-angular';\n\nexport const withSelection = <T extends AngularEditor>(editor: T): T => {\n const { onKeydown } = editor;\n\n editor.onKeydown = (event: KeyboardEvent) => {\n const { selection } = editor;\n if (!selection || !selection.anchor || !selection.focus) {\n onKeydown(event);\n return;\n }\n const isMoveBackward = hotkeys.isMoveBackward(event);\n const isMoveForward = hotkeys.isMoveForward(event);\n const isCollapsed = selection && Range.isCollapsed(selection);\n const isInlineNode = isInline(editor);\n if (isCollapsed && isMoveForward) {\n let isInlineCodeBefore = false;\n if (!isInlineNode) {\n try {\n const { path } = Editor.after(editor, selection)!;\n if (path) {\n isInlineCodeBefore = isInline(editor, path);\n }\n } catch (error) {}\n }\n if (isInlineNode || isInlineCodeBefore) {\n event.preventDefault();\n Transforms.move(editor, { unit: 'offset' });\n return;\n }\n }\n if (isCollapsed && isMoveBackward) {\n let isInlineCodeAfter = false;\n if (!isInlineNode) {\n try {\n const { path } = Editor.before(editor, selection)!;\n isInlineCodeAfter = isInline(editor, path);\n } catch (error) {}\n }\n if (isInlineNode || isInlineCodeAfter) {\n event.preventDefault();\n Transforms.move(editor, { unit: 'offset', reverse: true });\n return;\n }\n }\n onKeydown(event);\n };\n\n return editor;\n};\n\nexport const isInline = (editor: Editor, path?: Path): boolean => {\n const [inlineNode] = Editor.nodes(editor, {\n at: path ? path : editor.selection?.anchor.path,\n match: n => Element.isElement(n) && Editor.isInline(editor, n) && !Editor.isVoid(editor, n)\n });\n return !!inlineNode;\n};\n","import { PlaitBoard } from '@plait/core';\nimport { CLIPBOARD_FORMAT_KEY } from '@plait/text-plugins';\nimport { AngularEditor } from 'slate-angular';\nimport { PlaitTextEditor } from './text.editor';\n\nexport const withText = <T extends AngularEditor>(editor: T, board: PlaitBoard) => {\n const e = editor as T & PlaitTextEditor;\n const { insertData } = e;\n\n e.insertBreak = () => {\n editor.insertText('\\n');\n };\n\n e.insertData = (data: DataTransfer) => {\n let text = data.getData('text/plain');\n let plaitData = data.getData(`application/${CLIPBOARD_FORMAT_KEY}`);\n if (!plaitData && text) {\n if (text.endsWith('\\n')) {\n text = text.substring(0, text.length - 1);\n }\n text = text.trim().replace(/\\t+/g, ' ');\n e.insertText(text);\n return;\n }\n insertData(data);\n };\n\n e.board = board;\n\n return e;\n};\n","import { ChangeDetectorRef, Component, ElementRef, Renderer2 } from '@angular/core';\nimport { CustomText } from '@plait/common';\nimport { MarkTypes } from '@plait/text-plugins';\nimport { BaseTextComponent } from 'slate-angular';\n\n@Component({\n selector: 'span[plaitText]',\n template: ``,\n host: {\n 'data-slate-node': 'text'\n },\n standalone: true\n})\nexport class PlaitTextNodeComponent extends BaseTextComponent<CustomText> {\n constructor(public renderer2: Renderer2) {\n super();\n }\n\n excludes = ['color', 'font-size', 'text'];\n attributes: string[] = [];\n\n applyTextMark() {\n this.attributes.forEach(attr => {\n this.renderer2.removeAttribute(this.elementRef.nativeElement, attr);\n });\n this.attributes = [];\n for (const key in this.text) {\n if (Object.prototype.hasOwnProperty.call(this.text, key) && !this.excludes.includes(key)) {\n const attr = `the-${key}`;\n this.renderer2.setAttribute(this.elementRef.nativeElement, attr, 'true');\n this.attributes.push(attr);\n }\n }\n\n const fontSize = this.text[MarkTypes.fontSize];\n if (fontSize) {\n this.renderer2.setAttribute(this.elementRef.nativeElement, `plait-${MarkTypes.fontSize}`, fontSize);\n } else {\n this.renderer2.removeAttribute(this.elementRef.nativeElement, `plait-${MarkTypes.fontSize}`);\n }\n\n if (this.text[MarkTypes.color]) {\n this.renderer2.setStyle(this.elementRef.nativeElement, 'color', this.text[MarkTypes.color]);\n } else {\n this.renderer2.removeStyle(this.elementRef.nativeElement, 'color');\n }\n }\n\n onContextChange() {\n super.onContextChange();\n this.applyTextMark();\n }\n}\n","import { Transforms } from 'slate';\nimport { AngularEditor } from 'slate-angular';\nimport { LinkEditor, getTextFromClipboard, isUrl, withLink } from '@plait/text-plugins';\n\nexport const withPasteLink = <T extends AngularEditor>(editor: T): T => {\n const { insertData } = editor;\n editor.insertData = data => {\n const text = getTextFromClipboard(data);\n if (typeof text === 'string' && text && isUrl(text)) {\n LinkEditor.wrapLink(editor, text, text);\n Transforms.move(editor, { distance: 1, unit: 'offset' });\n } else {\n insertData(data);\n }\n };\n\n return withLink(editor);\n};\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { isKeyHotkey } from 'is-hotkey';\nimport { Editor, Element, Text, Transforms, createEditor } from 'slate';\nimport { SlateEditable, withAngular } from 'slate-angular';\nimport { withHistory } from 'slate-history';\nimport { PlaitLinkNodeComponent } from '../plugins/link/link.component';\nimport { withMarkHotkey } from '../plugins/mark-hotkey/with-mark-hotkey';\nimport { ParagraphElementComponent } from '../plugins/paragraph/paragraph.component';\nimport { withSelection } from '../plugins/with-selection';\nimport { withText } from '../plugins/with-text';\nimport { PlaitTextNodeComponent } from '../text-node/text.component';\nimport { FormsModule } from '@angular/forms';\nimport { LinkElement, TextChangeData, TextPlugin } from '@plait/common';\nimport { CLIPBOARD_FORMAT_KEY, MarkTypes } from '@plait/text-plugins';\nimport { withPasteLink } from '../plugins/link/with-link-insert';\nimport { CommonModule } from '@angular/common';\nimport { PlaitBoard } from '@plait/core';\n\n@Component({\n selector: 'plait-text',\n templateUrl: './text.component.html',\n standalone: true,\n imports: [SlateEditable, FormsModule, CommonModule]\n})\nexport class PlaitTextComponent implements OnInit, AfterViewInit, OnChanges {\n @HostBinding('class') hostClass = 'plait-text-container';\n\n children: Element[] = [];\n\n @Input() textPlugins?: TextPlugin[];\n\n @Input() set text(text: Element) {\n this.children = [text];\n this.cdr.markForCheck();\n }\n\n @Input() readonly = true;\n\n @ViewChild('slateEditable')\n slateEditable!: SlateEditable;\n\n @Input()\n onChange!: (data: TextChangeData) => void;\n\n @Input()\n afterInit?: (editor: Editor) => void;\n\n @Input()\n onComposition!: (event: CompositionEvent) => void;\n\n @Input()\n board!: PlaitBoard;\n\n editor = withSelection(\n withPasteLink(withMarkHotkey(withText(withHistory(withAngular(createEditor(), CLIPBOARD_FORMAT_KEY)), this.board)))\n );\n\n nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n constructor(public renderer2: Renderer2, private cdr: ChangeDetectorRef, public elementRef: ElementRef<HTMLElement>) {}\n\n valueChange() {\n this.onChange({ newText: this.editor.children[0] as Element, operations: this.editor.operations });\n }\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnInit(): void {\n if (this.textPlugins) {\n this.textPlugins.forEach(plugin => {\n plugin(this.editor);\n });\n }\n this.editor.board = this.board;\n }\n\n ngAfterViewInit(): void {\n this.afterInit && this.afterInit(this.editor);\n }\n\n renderElement = (element: Element) => {\n const render = this.editor.renderElement;\n if (render && render(element)) {\n return render(element);\n }\n\n if ((element as LinkElement).type === 'link') {\n return PlaitLinkNodeComponent;\n }\n\n return ParagraphElementComponent;\n };\n\n renderText: any = (text: Text): PlaitTextNodeComponent | null => {\n for (const key in MarkTypes) {\n if ((text as any)[(MarkTypes as any)[key]]) {\n return PlaitTextNodeComponent as any;\n }\n }\n return null;\n };\n\n compositionStart = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n compositionUpdate = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n compositionEnd = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n onKeydown = (event: KeyboardEvent) => {\n if (isKeyHotkey('mod+a', event)) {\n Transforms.select(this.editor, [0]);\n event.preventDefault();\n }\n this.editor.onKeydown(event);\n };\n\n scrollSelectionIntoView = () => {\n // prevent auto scroll\n }\n}\n","<slate-editable\n #slateEditable\n [editor]=\"editor\"\n [readonly]=\"readonly\"\n [(ngModel)]=\"children\"\n (ngModelChange)=\"valueChange()\"\n [keydown]=\"onKeydown\"\n [renderElement]=\"renderElement\"\n [compositionStart]=\"compositionStart\"\n [compositionUpdate]=\"compositionUpdate\"\n [compositionEnd]=\"compositionEnd\"\n [renderText]=\"renderText\"\n [ngClass]=\"{'editing': !readonly}\"\n [scrollSelectionIntoView]=\"scrollSelectionIntoView\"\n></slate-editable>\n","/*\n * Public API Surface of richtext\n */\nexport * from './text/text.component';\nexport * from './plugins/text.editor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plait-angular-text.mjs","sources":["../../../packages/angular-text/src/plugins/link/link.component.ts","../../../packages/angular-text/src/plugins/mark-hotkey/with-mark-hotkey.ts","../../../packages/angular-text/src/plugins/paragraph/paragraph.component.ts","../../../packages/angular-text/src/plugins/with-inline-move.ts","../../../packages/angular-text/src/plugins/with-text.ts","../../../packages/angular-text/src/text-node/text.component.ts","../../../packages/angular-text/src/plugins/link/with-link-insert.ts","../../../packages/angular-text/src/text/text.component.ts","../../../packages/angular-text/src/text/text.component.html","../../../packages/angular-text/src/public-api.ts","../../../packages/angular-text/src/plait-angular-text.ts"],"sourcesContent":["import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { LinkElement } from '@plait/common';\nimport { BaseElementComponent } from 'slate-angular';\n\n@Component({\n selector: 'a[plaitLink]',\n template: `\n <span contenteditable=\"false\" class=\"link-break-char\">{{ inlineChromiumBugfix }}</span>\n <span #outletParent></span>\n <span contenteditable=\"false\" class=\"link-break-char\">{{ inlineChromiumBugfix }}</span>\n `,\n host: {\n '[attr.href]': 'element.url',\n target: '_blank',\n class: 'plait-link-node'\n },\n standalone: true\n})\nexport class PlaitLinkNodeComponent extends BaseElementComponent<LinkElement> implements OnInit {\n // Put this at the start and end of an inline component to work around this Chromium bug:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1249405\n inlineChromiumBugfix = String.fromCodePoint(160);\n\n @ViewChild('outletParent', { read: ElementRef, static: true })\n outletParent!: ElementRef;\n\n getOutletParent = () => {\n return this.outletParent.nativeElement;\n };\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { AngularEditor } from 'slate-angular';\nimport { MarkEditor, markShortcuts, withMark } from '@plait/text-plugins';\n\nexport const withMarkHotkey = <T extends AngularEditor & MarkEditor>(editor: T): T => {\n const e = editor;\n\n const { onKeydown } = e;\n\n e.onKeydown = (event: KeyboardEvent) => {\n markShortcuts(editor, event);\n onKeydown(event);\n };\n\n return withMark(e);\n};\n","import { Component, ChangeDetectionStrategy, OnInit } from '@angular/core';\nimport { ParagraphElement } from '@plait/common';\nimport { BaseElementComponent } from 'slate-angular';\n\n@Component({\n selector: 'div[plaitTextParagraphElement]',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'plait-text-paragraph'\n }\n})\nexport class ParagraphElementComponent extends BaseElementComponent<ParagraphElement> implements OnInit {\n ngOnInit(): void {\n super.ngOnInit();\n this.applyAlign();\n }\n\n onContextChange(): void {\n super.onContextChange();\n if (this.initialized) {\n this.applyAlign();\n }\n }\n\n applyAlign() {\n if (this.element.align) {\n if (this.nativeElement.style.textAlign !== this.element.align) {\n this.nativeElement.style.textAlign = this.element.align;\n }\n } else if (this.nativeElement.style.textAlign) {\n this.nativeElement.style.removeProperty('text-align');\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Editor, Element, Transforms, Range, Path } from 'slate';\nimport { AngularEditor, hotkeys } from 'slate-angular';\n\nexport const withInlineMove = <T extends AngularEditor>(editor: T): T => {\n const { onKeydown } = editor;\n\n editor.onKeydown = (event: KeyboardEvent) => {\n const { selection } = editor;\n if (!selection || !selection.anchor || !selection.focus) {\n onKeydown(event);\n return;\n }\n const isMoveBackward = hotkeys.isMoveBackward(event);\n const isMoveForward = hotkeys.isMoveForward(event);\n const isCollapsed = selection && Range.isCollapsed(selection);\n const isInlineNode = isInline(editor);\n if (isCollapsed && isMoveForward) {\n let isInlineCodeBefore = false;\n if (!isInlineNode) {\n try {\n const { path } = Editor.after(editor, selection)!;\n if (path) {\n isInlineCodeBefore = isInline(editor, path);\n }\n } catch (error) {}\n }\n if (isInlineNode || isInlineCodeBefore) {\n event.preventDefault();\n Transforms.move(editor, { unit: 'offset' });\n return;\n }\n }\n if (isCollapsed && isMoveBackward) {\n let isInlineCodeAfter = false;\n if (!isInlineNode) {\n try {\n const { path } = Editor.before(editor, selection)!;\n isInlineCodeAfter = isInline(editor, path);\n } catch (error) {}\n }\n if (isInlineNode || isInlineCodeAfter) {\n event.preventDefault();\n Transforms.move(editor, { unit: 'offset', reverse: true });\n return;\n }\n }\n onKeydown(event);\n };\n\n return editor;\n};\n\nexport const isInline = (editor: Editor, path?: Path): boolean => {\n const [inlineNode] = Editor.nodes(editor, {\n at: path ? path : editor.selection?.anchor.path,\n match: n => Element.isElement(n) && Editor.isInline(editor, n) && !Editor.isVoid(editor, n)\n });\n return !!inlineNode;\n};\n","import { CLIPBOARD_FORMAT_KEY } from '@plait/text-plugins';\nimport { AngularEditor } from 'slate-angular';\nimport { PlaitTextEditor } from './text.editor';\n\nexport const withText = <T extends AngularEditor>(editor: T) => {\n const e = editor as T & PlaitTextEditor;\n const { insertData } = e;\n\n e.insertBreak = () => {\n editor.insertText('\\n');\n };\n\n e.insertData = (data: DataTransfer) => {\n let text = data.getData('text/plain');\n let plaitData = data.getData(`application/${CLIPBOARD_FORMAT_KEY}`);\n if (!plaitData && text) {\n if (text.endsWith('\\n')) {\n text = text.substring(0, text.length - 1);\n }\n text = text.trim().replace(/\\t+/g, ' ');\n e.insertText(text);\n return;\n }\n insertData(data);\n };\n\n return e;\n};\n","import { ChangeDetectorRef, Component, ElementRef, Renderer2 } from '@angular/core';\nimport { CustomText } from '@plait/common';\nimport { MarkTypes } from '@plait/text-plugins';\nimport { BaseTextComponent } from 'slate-angular';\n\n@Component({\n selector: 'span[plaitText]',\n template: ``,\n host: {\n 'data-slate-node': 'text'\n },\n standalone: true\n})\nexport class PlaitTextNodeComponent extends BaseTextComponent<CustomText> {\n constructor(public renderer2: Renderer2) {\n super();\n }\n\n excludes = ['color', 'font-size', 'text'];\n attributes: string[] = [];\n\n applyTextMark() {\n this.attributes.forEach(attr => {\n this.renderer2.removeAttribute(this.elementRef.nativeElement, attr);\n });\n this.attributes = [];\n for (const key in this.text) {\n if (Object.prototype.hasOwnProperty.call(this.text, key) && !this.excludes.includes(key)) {\n const attr = `the-${key}`;\n this.renderer2.setAttribute(this.elementRef.nativeElement, attr, 'true');\n this.attributes.push(attr);\n }\n }\n\n const fontSize = this.text[MarkTypes.fontSize];\n if (fontSize) {\n this.renderer2.setAttribute(this.elementRef.nativeElement, `plait-${MarkTypes.fontSize}`, fontSize);\n } else {\n this.renderer2.removeAttribute(this.elementRef.nativeElement, `plait-${MarkTypes.fontSize}`);\n }\n\n if (this.text[MarkTypes.color]) {\n this.renderer2.setStyle(this.elementRef.nativeElement, 'color', this.text[MarkTypes.color]);\n } else {\n this.renderer2.removeStyle(this.elementRef.nativeElement, 'color');\n }\n }\n\n onContextChange() {\n super.onContextChange();\n this.applyTextMark();\n }\n}\n","import { Transforms } from 'slate';\nimport { AngularEditor } from 'slate-angular';\nimport { LinkEditor, getTextFromClipboard, isUrl, withLink } from '@plait/text-plugins';\n\nexport const withPasteLink = <T extends AngularEditor>(editor: T): T => {\n const { insertData } = editor;\n editor.insertData = data => {\n const text = getTextFromClipboard(data);\n if (typeof text === 'string' && text && isUrl(text)) {\n LinkEditor.wrapLink(editor, text, text);\n Transforms.move(editor, { distance: 1, unit: 'offset' });\n } else {\n insertData(data);\n }\n };\n\n return withLink(editor);\n};\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { isKeyHotkey } from 'is-hotkey';\nimport { Editor, Element, Text, Transforms, createEditor } from 'slate';\nimport { SlateEditable, withAngular } from 'slate-angular';\nimport { withHistory } from 'slate-history';\nimport { PlaitLinkNodeComponent } from '../plugins/link/link.component';\nimport { withMarkHotkey } from '../plugins/mark-hotkey/with-mark-hotkey';\nimport { ParagraphElementComponent } from '../plugins/paragraph/paragraph.component';\nimport { withInlineMove } from '../plugins/with-inline-move';\nimport { withText } from '../plugins/with-text';\nimport { PlaitTextNodeComponent } from '../text-node/text.component';\nimport { FormsModule } from '@angular/forms';\nimport { LinkElement, TextChangeData, TextPlugin } from '@plait/common';\nimport { CLIPBOARD_FORMAT_KEY, MarkTypes } from '@plait/text-plugins';\nimport { withPasteLink } from '../plugins/link/with-link-insert';\nimport { CommonModule } from '@angular/common';\nimport { PlaitBoard } from '@plait/core';\n\n@Component({\n selector: 'plait-text',\n templateUrl: './text.component.html',\n standalone: true,\n imports: [SlateEditable, FormsModule, CommonModule]\n})\nexport class PlaitTextComponent implements OnInit, AfterViewInit, OnChanges {\n @HostBinding('class') hostClass = 'plait-text-container';\n\n children: Element[] = [];\n\n @Input() textPlugins?: TextPlugin[];\n\n @Input() set text(text: Element) {\n this.children = [text];\n this.cdr.markForCheck();\n }\n\n @Input() readonly = true;\n\n @ViewChild('slateEditable')\n slateEditable!: SlateEditable;\n\n @Input()\n onChange!: (data: TextChangeData) => void;\n\n @Input()\n afterInit?: (editor: Editor) => void;\n\n @Input()\n onComposition!: (event: CompositionEvent) => void;\n\n @Input()\n board!: PlaitBoard;\n\n editor = withInlineMove(withPasteLink(withMarkHotkey(withText(withHistory(withAngular(createEditor(), CLIPBOARD_FORMAT_KEY))))));\n\n nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n constructor(public renderer2: Renderer2, private cdr: ChangeDetectorRef, public elementRef: ElementRef<HTMLElement>) {}\n\n valueChange() {\n this.onChange({ newText: this.editor.children[0] as Element, operations: this.editor.operations });\n }\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnInit(): void {\n if (this.textPlugins) {\n this.textPlugins.forEach(plugin => {\n plugin(this.editor);\n });\n }\n this.editor.board = this.board;\n }\n\n ngAfterViewInit(): void {\n this.afterInit && this.afterInit(this.editor);\n }\n\n renderElement = (element: Element) => {\n const render = this.editor.renderElement;\n if (render && render(element)) {\n return render(element);\n }\n\n if ((element as LinkElement).type === 'link') {\n return PlaitLinkNodeComponent;\n }\n\n return ParagraphElementComponent;\n };\n\n renderText: any = (text: Text): PlaitTextNodeComponent | null => {\n for (const key in MarkTypes) {\n if ((text as any)[(MarkTypes as any)[key]]) {\n return PlaitTextNodeComponent as any;\n }\n }\n return null;\n };\n\n compositionStart = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n compositionUpdate = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n compositionEnd = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n onKeydown = (event: KeyboardEvent) => {\n if (isKeyHotkey('mod+a', event)) {\n Transforms.select(this.editor, [0]);\n event.preventDefault();\n }\n this.editor.onKeydown(event);\n };\n\n scrollSelectionIntoView = () => {\n // prevent auto scroll\n };\n}\n","<slate-editable\n #slateEditable\n [editor]=\"editor\"\n [readonly]=\"readonly\"\n [(ngModel)]=\"children\"\n (ngModelChange)=\"valueChange()\"\n [keydown]=\"onKeydown\"\n [renderElement]=\"renderElement\"\n [compositionStart]=\"compositionStart\"\n [compositionUpdate]=\"compositionUpdate\"\n [compositionEnd]=\"compositionEnd\"\n [renderText]=\"renderText\"\n [ngClass]=\"{'editing': !readonly}\"\n [scrollSelectionIntoView]=\"scrollSelectionIntoView\"\n></slate-editable>\n","/*\n * Public API Surface of richtext\n */\nexport * from './text/text.component';\nexport * from './plugins/text.editor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Editor, Path } from 'slate';
|
|
2
2
|
import { AngularEditor } from 'slate-angular';
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const withInlineMove: <T extends AngularEditor>(editor: T) => T;
|
|
4
4
|
export declare const isInline: (editor: Editor, path?: Path) => boolean;
|
package/plugins/with-text.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { PlaitBoard } from '@plait/core';
|
|
2
1
|
import { AngularEditor } from 'slate-angular';
|
|
3
2
|
import { PlaitTextEditor } from './text.editor';
|
|
4
|
-
export declare const withText: <T extends AngularEditor>(editor: T
|
|
3
|
+
export declare const withText: <T extends AngularEditor>(editor: T) => T & PlaitTextEditor;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { Editor, Element, Transforms, Range } from 'slate';
|
|
2
|
-
import { hotkeys } from 'slate-angular';
|
|
3
|
-
export const withSelection = (editor) => {
|
|
4
|
-
const { onKeydown } = editor;
|
|
5
|
-
editor.onKeydown = (event) => {
|
|
6
|
-
const { selection } = editor;
|
|
7
|
-
if (!selection || !selection.anchor || !selection.focus) {
|
|
8
|
-
onKeydown(event);
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
const isMoveBackward = hotkeys.isMoveBackward(event);
|
|
12
|
-
const isMoveForward = hotkeys.isMoveForward(event);
|
|
13
|
-
const isCollapsed = selection && Range.isCollapsed(selection);
|
|
14
|
-
const isInlineNode = isInline(editor);
|
|
15
|
-
if (isCollapsed && isMoveForward) {
|
|
16
|
-
let isInlineCodeBefore = false;
|
|
17
|
-
if (!isInlineNode) {
|
|
18
|
-
try {
|
|
19
|
-
const { path } = Editor.after(editor, selection);
|
|
20
|
-
if (path) {
|
|
21
|
-
isInlineCodeBefore = isInline(editor, path);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
catch (error) { }
|
|
25
|
-
}
|
|
26
|
-
if (isInlineNode || isInlineCodeBefore) {
|
|
27
|
-
event.preventDefault();
|
|
28
|
-
Transforms.move(editor, { unit: 'offset' });
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (isCollapsed && isMoveBackward) {
|
|
33
|
-
let isInlineCodeAfter = false;
|
|
34
|
-
if (!isInlineNode) {
|
|
35
|
-
try {
|
|
36
|
-
const { path } = Editor.before(editor, selection);
|
|
37
|
-
isInlineCodeAfter = isInline(editor, path);
|
|
38
|
-
}
|
|
39
|
-
catch (error) { }
|
|
40
|
-
}
|
|
41
|
-
if (isInlineNode || isInlineCodeAfter) {
|
|
42
|
-
event.preventDefault();
|
|
43
|
-
Transforms.move(editor, { unit: 'offset', reverse: true });
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
onKeydown(event);
|
|
48
|
-
};
|
|
49
|
-
return editor;
|
|
50
|
-
};
|
|
51
|
-
export const isInline = (editor, path) => {
|
|
52
|
-
const [inlineNode] = Editor.nodes(editor, {
|
|
53
|
-
at: path ? path : editor.selection?.anchor.path,
|
|
54
|
-
match: n => Element.isElement(n) && Editor.isInline(editor, n) && !Editor.isVoid(editor, n)
|
|
55
|
-
});
|
|
56
|
-
return !!inlineNode;
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zZWxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRleHQvc3JjL3BsdWdpbnMvd2l0aC1zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUNqRSxPQUFPLEVBQWlCLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBMEIsTUFBUyxFQUFLLEVBQUU7SUFDbkUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUU3QixNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxJQUFJLFdBQVcsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUMvQixJQUFJLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQztvQkFDRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFFLENBQUM7b0JBQ2xELElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ1Asa0JBQWtCLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDaEQsQ0FBQztnQkFDTCxDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQSxDQUFDO1lBQ3RCLENBQUM7WUFDRCxJQUFJLFlBQVksSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUNyQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLE9BQU87WUFDWCxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksV0FBVyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2hDLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDO29CQUNELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUUsQ0FBQztvQkFDbkQsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUEsQ0FBQztZQUN0QixDQUFDO1lBQ0QsSUFBSSxZQUFZLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzNELE9BQU87WUFDWCxDQUFDO1FBQ0wsQ0FBQztRQUNELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFjLEVBQUUsSUFBVyxFQUFXLEVBQUU7SUFDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ3RDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSTtRQUMvQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQzlGLENBQUMsQ0FBQztJQUNILE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQztBQUN4QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIFRyYW5zZm9ybXMsIFJhbmdlLCBQYXRoIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciwgaG90a2V5cyB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuXG5leHBvcnQgY29uc3Qgd2l0aFNlbGVjdGlvbiA9IDxUIGV4dGVuZHMgQW5ndWxhckVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBvbktleWRvd24gfSA9IGVkaXRvcjtcblxuICAgIGVkaXRvci5vbktleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb24gfHwgIXNlbGVjdGlvbi5hbmNob3IgfHwgIXNlbGVjdGlvbi5mb2N1cykge1xuICAgICAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc01vdmVCYWNrd2FyZCA9IGhvdGtleXMuaXNNb3ZlQmFja3dhcmQoZXZlbnQpO1xuICAgICAgICBjb25zdCBpc01vdmVGb3J3YXJkID0gaG90a2V5cy5pc01vdmVGb3J3YXJkKGV2ZW50KTtcbiAgICAgICAgY29uc3QgaXNDb2xsYXBzZWQgPSBzZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoc2VsZWN0aW9uKTtcbiAgICAgICAgY29uc3QgaXNJbmxpbmVOb2RlID0gaXNJbmxpbmUoZWRpdG9yKTtcbiAgICAgICAgaWYgKGlzQ29sbGFwc2VkICYmIGlzTW92ZUZvcndhcmQpIHtcbiAgICAgICAgICAgIGxldCBpc0lubGluZUNvZGVCZWZvcmUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICghaXNJbmxpbmVOb2RlKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBwYXRoIH0gPSBFZGl0b3IuYWZ0ZXIoZWRpdG9yLCBzZWxlY3Rpb24pITtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSW5saW5lQ29kZUJlZm9yZSA9IGlzSW5saW5lKGVkaXRvciwgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0lubGluZU5vZGUgfHwgaXNJbmxpbmVDb2RlQmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmUoZWRpdG9yLCB7IHVuaXQ6ICdvZmZzZXQnIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNDb2xsYXBzZWQgJiYgaXNNb3ZlQmFja3dhcmQpIHtcbiAgICAgICAgICAgIGxldCBpc0lubGluZUNvZGVBZnRlciA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFpc0lubGluZU5vZGUpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGggfSA9IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBzZWxlY3Rpb24pITtcbiAgICAgICAgICAgICAgICAgICAgaXNJbmxpbmVDb2RlQWZ0ZXIgPSBpc0lubGluZShlZGl0b3IsIHBhdGgpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSW5saW5lTm9kZSB8fCBpc0lubGluZUNvZGVBZnRlcikge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlKGVkaXRvciwgeyB1bml0OiAnb2Zmc2V0JywgcmV2ZXJzZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0lubGluZSA9IChlZGl0b3I6IEVkaXRvciwgcGF0aD86IFBhdGgpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBbaW5saW5lTm9kZV0gPSBFZGl0b3Iubm9kZXMoZWRpdG9yLCB7XG4gICAgICAgIGF0OiBwYXRoID8gcGF0aCA6IGVkaXRvci5zZWxlY3Rpb24/LmFuY2hvci5wYXRoLFxuICAgICAgICBtYXRjaDogbiA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBFZGl0b3IuaXNJbmxpbmUoZWRpdG9yLCBuKSAmJiAhRWRpdG9yLmlzVm9pZChlZGl0b3IsIG4pXG4gICAgfSk7XG4gICAgcmV0dXJuICEhaW5saW5lTm9kZTtcbn07XG4iXX0=
|