@worktile/theia 1.2.11 → 1.2.12
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/bundles/worktile-theia.umd.js +57 -49
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/column-resize/column-resize.directive.d.ts +3 -3
- package/components/inline-toolbar/inline-toolbar.component.scss +6 -5
- package/components/toolbar/toolbar.component.d.ts +2 -1
- package/custom-types.d.ts +2 -0
- package/editor.component.d.ts +1 -0
- package/esm2015/components/column-resize/column-resize.directive.js +1 -1
- package/esm2015/components/inline-toolbar/inline-toolbar.component.js +1 -1
- package/esm2015/components/toolbar/toolbar.component.js +7 -6
- package/esm2015/components/toolbar-group/toolbar-group.component.js +1 -1
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +11 -8
- package/esm2015/plugins/deserializers/deserialize-html.plugin.js +6 -4
- package/esm2015/plugins/deserializers/deserialize-md.plugin.js +2 -2
- package/esm2015/plugins/placeholder/placeholder.component.js +8 -7
- package/esm2015/plugins/quick-insert/quick-insert.plugint.js +3 -2
- package/esm2015/plugins/table/table.types.js +1 -1
- package/esm2015/queries/is-container-type.js +2 -2
- package/esm2015/transforms/index.js +2 -3
- package/esm2015/utils/fragment.js +20 -1
- package/fesm2015/worktile-theia.js +50 -44
- package/fesm2015/worktile-theia.js.map +1 -1
- package/package.json +1 -1
- package/plugins/table/table.types.d.ts +7 -0
- package/transforms/index.d.ts +1 -2
- package/utils/fragment.d.ts +5 -0
- package/esm2015/transforms/insert-elements.js +0 -22
- package/transforms/insert-elements.d.ts +0 -2
|
@@ -38,4 +38,23 @@ export function deleteElementKey(nodes, key) {
|
|
|
38
38
|
});
|
|
39
39
|
return nodes;
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
/**
|
|
42
|
+
* 删除 text 节点的 颜色/背景色
|
|
43
|
+
* @param node
|
|
44
|
+
*/
|
|
45
|
+
export function deleteColorAndBackgroundColorOfText(node) {
|
|
46
|
+
node.children.forEach((child) => {
|
|
47
|
+
if (Text.isText(child)) {
|
|
48
|
+
if (child['color']) {
|
|
49
|
+
delete child['color'];
|
|
50
|
+
}
|
|
51
|
+
if (child['background-color']) {
|
|
52
|
+
delete child['background-color'];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
deleteColorAndBackgroundColorOfText(child);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvZnJhZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFRLE1BQU0sT0FBTyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWMsRUFBRSxRQUFpQixFQUFFLEVBQUU7SUFDL0QsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELElBQUksVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDakgsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0tBQzVDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBYyxFQUFFLFFBQWlCLEVBQUUsRUFBRTtJQUM3RCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkYsSUFBSSxTQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUM3RyxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDekM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFrQixFQUFFLFNBQVMsR0FBRyxpQkFBaUIsRUFBRSxFQUFFO0lBQ2pGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDckUsSUFBSSxRQUFRLEVBQUU7UUFDVixNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQWMsQ0FBQztRQUMvQyxxQ0FBcUM7UUFDckMsSUFBSSxTQUFTLEVBQUU7WUFDWCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDdEM7UUFDRCxPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQTtBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsR0FBVztJQUN2RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQjtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsbUNBQW1DLENBQUMsSUFBYTtJQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzVCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDaEIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekI7WUFDRCxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO2dCQUMzQixPQUFPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0o7YUFBTTtZQUNILG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBUZXh0LCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQ0xJUEJPQVJEX0ZPUk1BVF9LRVksIEVMRU1FTlRfVU5JUVVFX0lEIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuXG5leHBvcnQgY29uc3QgZ2V0U3RhcnRCbG9jayA9IChlZGl0b3I6IEVkaXRvciwgZnJhZ21lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBmaXJzdENoaWxkID0gZnJhZ21lbnQuY2hpbGRyZW4gJiYgZnJhZ21lbnQuY2hpbGRyZW5bMF07XG4gICAgaWYgKGZpcnN0Q2hpbGQgJiYgIUVkaXRvci5pc0lubGluZShlZGl0b3IsIGZpcnN0Q2hpbGQpICYmICFUZXh0LmlzVGV4dChmaXJzdENoaWxkKSAmJiBFbGVtZW50LmlzRWxlbWVudChmaXJzdENoaWxkKSkge1xuICAgICAgICByZXR1cm4gZ2V0U3RhcnRCbG9jayhlZGl0b3IsIGZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICByZXR1cm4gZnJhZ21lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RW5kQmxvY2sgPSAoZWRpdG9yOiBFZGl0b3IsIGZyYWdtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgbGFzdENoaWxkID0gZnJhZ21lbnQuY2hpbGRyZW4gJiYgZnJhZ21lbnQuY2hpbGRyZW5bZnJhZ21lbnQuY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG4gICAgaWYgKGxhc3RDaGlsZCAmJiAhRWRpdG9yLmlzSW5saW5lKGVkaXRvciwgbGFzdENoaWxkKSAmJiAhVGV4dC5pc1RleHQobGFzdENoaWxkKSAmJiBFbGVtZW50LmlzRWxlbWVudChsYXN0Q2hpbGQpKSB7XG4gICAgICAgIHJldHVybiBnZXRFbmRCbG9jayhlZGl0b3IsIGxhc3RDaGlsZCk7XG4gICAgfVxuICAgIHJldHVybiBmcmFnbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0RnJhZ21lbnQgPSAoZGF0YTogRGF0YVRyYW5zZmVyLCBkZWxldGVLZXkgPSBFTEVNRU5UX1VOSVFVRV9JRCkgPT4ge1xuICAgIGNvbnN0IGZyYWdtZW50ID0gZGF0YS5nZXREYXRhKGBhcHBsaWNhdGlvbi8ke0NMSVBCT0FSRF9GT1JNQVRfS0VZfWApO1xuICAgIGlmIChmcmFnbWVudCkge1xuICAgICAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5hdG9iKGZyYWdtZW50KSk7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gSlNPTi5wYXJzZShkZWNvZGVkKSBhcyBFbGVtZW50W107XG4gICAgICAgIC8vIGRlbGV0ZSBrZXkgdG8gYXZvaWQgZHVwbGljYXRlIGtleXNcbiAgICAgICAgaWYgKGRlbGV0ZUtleSkge1xuICAgICAgICAgICAgZGVsZXRlRWxlbWVudEtleShub2RlcywgZGVsZXRlS2V5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZXM7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlRWxlbWVudEtleShub2RlczogTm9kZVtdLCBrZXk6IHN0cmluZykge1xuICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKG5vZGVba2V5XSkge1xuICAgICAgICAgICAgZGVsZXRlIG5vZGVba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiYgbm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgZGVsZXRlRWxlbWVudEtleShub2RlLmNoaWxkcmVuLCBrZXkpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGVzO1xufVxuXG4vKipcbiAqIOWIoOmZpCB0ZXh0IOiKgueCueeahCDpopzoibIv6IOM5pmv6ImyXG4gKiBAcGFyYW0gbm9kZSBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUNvbG9yQW5kQmFja2dyb3VuZENvbG9yT2ZUZXh0KG5vZGU6IEVsZW1lbnQpIHtcbiAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChUZXh0LmlzVGV4dChjaGlsZCkpIHtcbiAgICAgICAgICAgIGlmIChjaGlsZFsnY29sb3InXSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBjaGlsZFsnY29sb3InXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGlsZFsnYmFja2dyb3VuZC1jb2xvciddKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGNoaWxkWydiYWNrZ3JvdW5kLWNvbG9yJ107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGVDb2xvckFuZEJhY2tncm91bmRDb2xvck9mVGV4dChjaGlsZCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
|
|
@@ -1060,6 +1060,25 @@ function deleteElementKey(nodes, key) {
|
|
|
1060
1060
|
});
|
|
1061
1061
|
return nodes;
|
|
1062
1062
|
}
|
|
1063
|
+
/**
|
|
1064
|
+
* 删除 text 节点的 颜色/背景色
|
|
1065
|
+
* @param node
|
|
1066
|
+
*/
|
|
1067
|
+
function deleteColorAndBackgroundColorOfText(node) {
|
|
1068
|
+
node.children.forEach((child) => {
|
|
1069
|
+
if (Text.isText(child)) {
|
|
1070
|
+
if (child['color']) {
|
|
1071
|
+
delete child['color'];
|
|
1072
|
+
}
|
|
1073
|
+
if (child['background-color']) {
|
|
1074
|
+
delete child['background-color'];
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
else {
|
|
1078
|
+
deleteColorAndBackgroundColorOfText(child);
|
|
1079
|
+
}
|
|
1080
|
+
});
|
|
1081
|
+
}
|
|
1063
1082
|
|
|
1064
1083
|
const isAcrossBlocks = (editor, fragment) => {
|
|
1065
1084
|
const startBlock = getStartBlock(editor, fragment[0]);
|
|
@@ -1172,7 +1191,7 @@ const getSelectionMarks = (editor) => {
|
|
|
1172
1191
|
return marks;
|
|
1173
1192
|
};
|
|
1174
1193
|
|
|
1175
|
-
const isContainer = (editor, value) => Element$1.isElement(value) && editor.isContainer(value);
|
|
1194
|
+
const isContainer = (editor, value) => Element$1.isElement(value) && editor.isContainer && editor.isContainer(value);
|
|
1176
1195
|
|
|
1177
1196
|
const getContainerBlocks = (editor) => {
|
|
1178
1197
|
const containerNode = Editor.above(editor, {
|
|
@@ -1441,26 +1460,6 @@ const setEndSelection = (editor) => {
|
|
|
1441
1460
|
AngularEditor.focus(editor);
|
|
1442
1461
|
};
|
|
1443
1462
|
|
|
1444
|
-
const insertTheElements = (editor, nodes) => {
|
|
1445
|
-
if (Range.isExpanded(editor.selection)) {
|
|
1446
|
-
Editor.deleteFragment(editor);
|
|
1447
|
-
}
|
|
1448
|
-
const isEmptyParagraph$1 = isEmptyParagraph(editor, editor.selection.anchor);
|
|
1449
|
-
const parentPath = Path.parent(editor.selection.anchor.path);
|
|
1450
|
-
Editor.withoutNormalizing(editor, () => {
|
|
1451
|
-
Transforms.insertNodes(editor, nodes);
|
|
1452
|
-
if (parentPath.length && isEmptyParagraph$1) {
|
|
1453
|
-
Transforms.delete(editor, { at: parentPath });
|
|
1454
|
-
const lastPath = parentPath.pop();
|
|
1455
|
-
Transforms.select(editor, Editor.end(editor, [...parentPath, lastPath + nodes.length - 1]));
|
|
1456
|
-
}
|
|
1457
|
-
else {
|
|
1458
|
-
const lastPath = parentPath.pop();
|
|
1459
|
-
Transforms.select(editor, Editor.end(editor, [...parentPath, lastPath + nodes.length]));
|
|
1460
|
-
}
|
|
1461
|
-
});
|
|
1462
|
-
};
|
|
1463
|
-
|
|
1464
1463
|
const THE_EDITOR_UUID = new WeakMap();
|
|
1465
1464
|
const THE_EDITOR_CONVERSION_HINT_REF = new WeakMap();
|
|
1466
1465
|
const THE_EDITOR_QUICK_TOOLBAR_REF = new WeakMap();
|
|
@@ -1525,7 +1524,6 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
1525
1524
|
splitNode: splitNode,
|
|
1526
1525
|
deleteElement: deleteElement,
|
|
1527
1526
|
setEndSelection: setEndSelection,
|
|
1528
|
-
insertTheElements: insertTheElements,
|
|
1529
1527
|
closeConversionHint: closeConversionHint,
|
|
1530
1528
|
handleContinualDeleteBackward: handleContinualDeleteBackward,
|
|
1531
1529
|
handleContinualInsertBreak: handleContinualInsertBreak
|
|
@@ -1991,7 +1989,7 @@ const withDeserializeMd = (options) => (editor) => {
|
|
|
1991
1989
|
editor.undo();
|
|
1992
1990
|
setTimeout(() => {
|
|
1993
1991
|
Transforms.select(editor, oldRange);
|
|
1994
|
-
|
|
1992
|
+
Transforms.insertFragment(editor, fragment);
|
|
1995
1993
|
AngularEditor.focus(editor);
|
|
1996
1994
|
});
|
|
1997
1995
|
return;
|
|
@@ -10164,7 +10162,9 @@ const withDeserializeHMTL = (editor) => {
|
|
|
10164
10162
|
insertData(data);
|
|
10165
10163
|
return;
|
|
10166
10164
|
}
|
|
10167
|
-
|
|
10165
|
+
// 过滤 text 节点的 color/background-color 属性
|
|
10166
|
+
fragment.forEach((node) => deleteColorAndBackgroundColorOfText(node));
|
|
10167
|
+
Transforms.insertFragment(editor, fragment);
|
|
10168
10168
|
return;
|
|
10169
10169
|
}
|
|
10170
10170
|
insertData(data);
|
|
@@ -10677,10 +10677,11 @@ const withQuickInsert = (editor) => {
|
|
|
10677
10677
|
deleteBackward(unit);
|
|
10678
10678
|
};
|
|
10679
10679
|
editor.onChange = () => {
|
|
10680
|
+
var _a;
|
|
10680
10681
|
onChange();
|
|
10681
10682
|
if (editor.selection) {
|
|
10682
10683
|
const editorComponent = editor.injector.get(TheEditorComponent);
|
|
10683
|
-
editorComponent.quickInsertInstance.checkStatus();
|
|
10684
|
+
(_a = editorComponent.quickInsertInstance) === null || _a === void 0 ? void 0 : _a.checkStatus();
|
|
10684
10685
|
const block = Node.ancestor(editor, [editor.selection.anchor.path[0]]);
|
|
10685
10686
|
if (!isCleanEmptyParagraph(editor) && Node.string(block) !== QUICK_TOOLBAR_HOTKEY) {
|
|
10686
10687
|
QuickInsertEditor.closeQuickToolbar(editor);
|
|
@@ -10863,6 +10864,7 @@ class TheToolbarComponent {
|
|
|
10863
10864
|
this.ngZone = ngZone;
|
|
10864
10865
|
this.toolbarGroupComponent = toolbarGroupComponent;
|
|
10865
10866
|
this.toolbarItems = [];
|
|
10867
|
+
this.containerClass = [];
|
|
10866
10868
|
this.isMore = true;
|
|
10867
10869
|
this.components = new Map();
|
|
10868
10870
|
this.moreGroupMenu = ToolbarMoreGroup;
|
|
@@ -10888,9 +10890,8 @@ class TheToolbarComponent {
|
|
|
10888
10890
|
}
|
|
10889
10891
|
}
|
|
10890
10892
|
setToolbarClass() {
|
|
10891
|
-
if (this.editor) {
|
|
10892
|
-
|
|
10893
|
-
this.elementRef.nativeElement.classList.add(toolbarClass);
|
|
10893
|
+
if (this.editor && !!this.containerClass.length) {
|
|
10894
|
+
this.elementRef.nativeElement.classList.add(...this.containerClass);
|
|
10894
10895
|
}
|
|
10895
10896
|
}
|
|
10896
10897
|
resizeElement() {
|
|
@@ -11060,7 +11061,7 @@ class TheToolbarComponent {
|
|
|
11060
11061
|
}
|
|
11061
11062
|
}
|
|
11062
11063
|
TheToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheToolbarComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: TheToolbarGroupToken }], target: i0.ɵɵFactoryTarget.Component });
|
|
11063
|
-
TheToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: TheToolbarComponent, selector: "the-toolbar", inputs: { editor: "editor", toolbarItems: "toolbarItems", align: "align", isMore: "isMore", afterTemplate: "afterTemplate" }, host: { classAttribute: "the-toolbar-container" }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<thy-icon-nav [style.justifyContent]=\"align\">\n <ng-container #toolbarContainer></ng-container>\n <ng-content></ng-content>\n <ng-template *ngIf=\"afterTemplate\" [ngTemplateOutlet]=\"afterTemplate\"></ng-template>\n</thy-icon-nav>\n", components: [{ type: i2.ThyIconNavComponent, selector: "thy-icon-nav", inputs: ["thyType"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
11064
|
+
TheToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: TheToolbarComponent, selector: "the-toolbar", inputs: { editor: "editor", toolbarItems: "toolbarItems", align: "align", containerClass: "containerClass", isMore: "isMore", afterTemplate: "afterTemplate" }, host: { classAttribute: "the-toolbar-container" }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<thy-icon-nav [style.justifyContent]=\"align\">\n <ng-container #toolbarContainer></ng-container>\n <ng-content></ng-content>\n <ng-template *ngIf=\"afterTemplate\" [ngTemplateOutlet]=\"afterTemplate\"></ng-template>\n</thy-icon-nav>\n", components: [{ type: i2.ThyIconNavComponent, selector: "thy-icon-nav", inputs: ["thyType"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
11064
11065
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheToolbarComponent, decorators: [{
|
|
11065
11066
|
type: Component,
|
|
11066
11067
|
args: [{
|
|
@@ -11079,6 +11080,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
11079
11080
|
type: Input
|
|
11080
11081
|
}], align: [{
|
|
11081
11082
|
type: Input
|
|
11083
|
+
}], containerClass: [{
|
|
11084
|
+
type: Input
|
|
11082
11085
|
}], isMore: [{
|
|
11083
11086
|
type: Input
|
|
11084
11087
|
}], afterTemplate: [{
|
|
@@ -11188,7 +11191,7 @@ TheInlineToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
11188
11191
|
[editor]="editor"
|
|
11189
11192
|
[toolbarItems]="toolbarItems"
|
|
11190
11193
|
[isMore]="false"
|
|
11191
|
-
></the-toolbar> `, isInline: true, components: [{ type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "isMore", "afterTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11194
|
+
></the-toolbar> `, isInline: true, components: [{ type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11192
11195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheInlineToolbarComponent, decorators: [{
|
|
11193
11196
|
type: Component,
|
|
11194
11197
|
args: [{
|
|
@@ -11301,20 +11304,21 @@ class ThePlaceholderComponent {
|
|
|
11301
11304
|
}
|
|
11302
11305
|
}
|
|
11303
11306
|
checkStatus() {
|
|
11304
|
-
var _a, _b
|
|
11307
|
+
var _a, _b;
|
|
11305
11308
|
const { editor } = this;
|
|
11306
11309
|
// empty content and no selection processing
|
|
11307
|
-
if (
|
|
11310
|
+
if (!(editor === null || editor === void 0 ? void 0 : editor.selection) && isEmptyContent(editor.children)) {
|
|
11308
11311
|
// normal top is 28, but margin-top: -41px is set when maxHeight is set, so top is 69
|
|
11309
|
-
const firstTop = ((
|
|
11312
|
+
const firstTop = ((_a = this.options) === null || _a === void 0 ? void 0 : _a.maxHeight) ? 69 : 28;
|
|
11310
11313
|
this.updatePosition(30, firstTop);
|
|
11311
11314
|
return;
|
|
11312
11315
|
}
|
|
11313
11316
|
if (isCleanEmptyParagraph(editor)) {
|
|
11314
|
-
const block = Node.ancestor(editor, [(
|
|
11317
|
+
const block = Node.ancestor(editor, [(_b = editor === null || editor === void 0 ? void 0 : editor.selection) === null || _b === void 0 ? void 0 : _b.anchor.path[0]]);
|
|
11315
11318
|
const rootNode = AngularEditor.toDOMNode(editor, block);
|
|
11316
|
-
|
|
11317
|
-
|
|
11319
|
+
setTimeout(() => {
|
|
11320
|
+
this.updatePosition(rootNode.offsetLeft, rootNode.offsetTop);
|
|
11321
|
+
});
|
|
11318
11322
|
return;
|
|
11319
11323
|
}
|
|
11320
11324
|
this.isHide = true;
|
|
@@ -11583,10 +11587,12 @@ class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
|
|
|
11583
11587
|
const toolbar = (_a = this === null || this === void 0 ? void 0 : this.theOptions) === null || _a === void 0 ? void 0 : _a.toolbar;
|
|
11584
11588
|
const toolbarItems = toolbarCompose(toolbar === null || toolbar === void 0 ? void 0 : toolbar.toolbarItems);
|
|
11585
11589
|
const toolbarOption = this.toolbarService.initialize(toolbarItems, toolbar === null || toolbar === void 0 ? void 0 : toolbar.global, toolbar === null || toolbar === void 0 ? void 0 : toolbar.inline, toolbar === null || toolbar === void 0 ? void 0 : toolbar.quick);
|
|
11590
|
+
this.globalToolbarClass = ['the-global-toolbar', getToolbarClass(this.editor)];
|
|
11586
11591
|
this.toolbarEntity = toolbarOption.toolbarEntity;
|
|
11587
11592
|
if (this.theGlobalToolbar) {
|
|
11588
11593
|
this.theGlobalToolbarInstance.editor = this.editor;
|
|
11589
11594
|
this.theGlobalToolbarInstance.toolbarItems = toolbarOption.toolbarEntity.global;
|
|
11595
|
+
this.theGlobalToolbarInstance.containerClass = this.globalToolbarClass;
|
|
11590
11596
|
this.theGlobalToolbarInstance.align = toolbar === null || toolbar === void 0 ? void 0 : toolbar.align;
|
|
11591
11597
|
this.theGlobalToolbarInstance.setToolbarClass();
|
|
11592
11598
|
this.theGlobalToolbarInstance.renderToolbarView();
|
|
@@ -11605,14 +11611,14 @@ class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
|
|
|
11605
11611
|
this.onTouchedCallback = fn;
|
|
11606
11612
|
}
|
|
11607
11613
|
valueChange(value) {
|
|
11608
|
-
var _a, _b, _c, _d;
|
|
11614
|
+
var _a, _b, _c, _d, _e;
|
|
11609
11615
|
(_a = this.theGlobalToolbarInstance) === null || _a === void 0 ? void 0 : _a.statusChange(this.editor);
|
|
11610
|
-
this.quickInsertInstance.checkStatus();
|
|
11616
|
+
(_b = this.quickInsertInstance) === null || _b === void 0 ? void 0 : _b.checkStatus();
|
|
11611
11617
|
this.placeholderInstance.checkStatus();
|
|
11612
11618
|
// auto scroll view
|
|
11613
|
-
const scrollContainer = (
|
|
11614
|
-
const maxHeight = (
|
|
11615
|
-
if (!((
|
|
11619
|
+
const scrollContainer = (_c = this.theOptions) === null || _c === void 0 ? void 0 : _c.scrollContainer;
|
|
11620
|
+
const maxHeight = (_d = this.theOptions) === null || _d === void 0 ? void 0 : _d.maxHeight;
|
|
11621
|
+
if (!((_e = this.theOptions) === null || _e === void 0 ? void 0 : _e.readonly) && (scrollContainer || maxHeight)) {
|
|
11616
11622
|
const container = maxHeight ? DEFAULT_SCROLL_CONTAINER : scrollContainer;
|
|
11617
11623
|
this.autoScrollView(this.editor, container);
|
|
11618
11624
|
}
|
|
@@ -11737,7 +11743,7 @@ TheEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
11737
11743
|
useExisting: forwardRef(() => TheEditorComponent),
|
|
11738
11744
|
multi: true
|
|
11739
11745
|
}
|
|
11740
|
-
], viewQueries: [{ propertyName: "templateInstance", first: true, predicate: ["templateInstance"], descendants: true, static: true }, { propertyName: "globalToolbarInstance", first: true, predicate: ["globalToolbar"], descendants: true }, { propertyName: "quickInsertInstance", first: true, predicate: ["quickInsert"], descendants: true }, { propertyName: "placeholderInstance", first: true, predicate: ["placeholder"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<the-toolbar\n *ngIf=\"!theOptions?.readonly && !theGlobalToolbar\"\n
|
|
11746
|
+
], viewQueries: [{ propertyName: "templateInstance", first: true, predicate: ["templateInstance"], descendants: true, static: true }, { propertyName: "globalToolbarInstance", first: true, predicate: ["globalToolbar"], descendants: true }, { propertyName: "quickInsertInstance", first: true, predicate: ["quickInsert"], descendants: true, static: true }, { propertyName: "placeholderInstance", first: true, predicate: ["placeholder"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<the-toolbar\n *ngIf=\"!theOptions?.readonly && !theGlobalToolbar\"\n [ngClass]=\"{\n 'the-toolbar-disabled': theOptions?.disabled\n }\"\n #globalToolbar\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.global\"\n [containerClass]=\"globalToolbarClass\"\n [align]=\"theOptions?.toolbar?.align\"\n></the-toolbar>\n\n<div\n class=\"the-editable-container\"\n [ngClass]=\"{\n 'the-editor-disabled': theOptions?.disabled,\n 'max-height': maxHeight\n }\"\n [ngStyle]=\"{ 'max-height': maxHeight }\"\n>\n <slate-editable\n class=\"the-editor-typo\"\n [editor]=\"editor\"\n [ngModel]=\"editorValue\"\n (ngModelChange)=\"valueChange($event)\"\n [decorate]=\"decorate\"\n [renderElement]=\"renderElement\"\n [renderText]=\"renderText\"\n [renderLeaf]=\"renderLeaf\"\n [readonly]=\"theOptions?.readonly || theOptions?.disabled\"\n [keydown]=\"onKeyDown\"\n [click]=\"onClick\"\n [paste]=\"onSlaPaste\"\n [beforeInput]=\"onSlaBeforeInput\"\n [blur]=\"onSlaBlur\"\n [focus]=\"onSlaFocus\"\n [copy]=\"onSlaCopy\"\n [cut]=\"onSlaCut\"\n [isStrictDecorate]=\"false\"\n [compositionStart]=\"onSlaCompositionStart\"\n [compositionEnd]=\"onSlaCompositionEnd\"\n [dragStart]=\"onSlaDragStart\"\n [dragOver]=\"onSlaDragOver\"\n (mousedown)=\"mousedown($event)\"\n ></slate-editable>\n <the-inline-toolbar *ngIf=\"!theOptions?.readonly\" [editor]=\"editor\" [toolbarItems]=\"toolbarEntity.inline\"></the-inline-toolbar>\n <div #quickInsert theQuickInsert [editor]=\"editor\" [quickToolbarItems]=\"quickToolbarItems\"></div>\n <div #placeholder thePlaceholder [editor]=\"editor\" [options]=\"theOptions\"></div>\n <the-template #templateInstance></the-template>\n</div>\n", components: [{ type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }, { type: i1.SlateEditableComponent, selector: "slate-editable", inputs: ["editor", "renderElement", "renderLeaf", "renderText", "decorate", "isStrictDecorate", "trackBy", "readonly", "beforeInput", "blur", "click", "compositionEnd", "compositionStart", "copy", "cut", "dragOver", "dragStart", "dragEnd", "drop", "focus", "keydown", "paste", "spellCheck", "autoCorrect", "autoCapitalize"] }, { type: TheInlineToolbarComponent, selector: "the-inline-toolbar", inputs: ["editor", "toolbarItems"] }, { type: TheQuickInsertComponent, selector: "[theQuickInsert]", inputs: ["editor", "quickToolbarItems"] }, { type: ThePlaceholderComponent, selector: "div[thePlaceholder]", inputs: ["editor", "options"] }, { type: TheTemplateComponent, selector: "the-template,[theTemplate]" }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
11741
11747
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheEditorComponent, decorators: [{
|
|
11742
11748
|
type: Component,
|
|
11743
11749
|
args: [{
|
|
@@ -11782,7 +11788,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
11782
11788
|
args: ['globalToolbar']
|
|
11783
11789
|
}], quickInsertInstance: [{
|
|
11784
11790
|
type: ViewChild,
|
|
11785
|
-
args: ['quickInsert']
|
|
11791
|
+
args: ['quickInsert', { static: true }]
|
|
11786
11792
|
}], placeholderInstance: [{
|
|
11787
11793
|
type: ViewChild,
|
|
11788
11794
|
args: ['placeholder']
|
|
@@ -11901,7 +11907,7 @@ class TheToolbarGroupComponent {
|
|
|
11901
11907
|
}
|
|
11902
11908
|
}
|
|
11903
11909
|
TheToolbarGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheToolbarGroupComponent, deps: [{ token: i0.ElementRef }, { token: i1$3.ThyPopover }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
11904
|
-
TheToolbarGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: TheToolbarGroupComponent, selector: "the-toolbar-group", inputs: { menus: "menus", item: "item" }, host: { listeners: { "mousedown": "mousedownHandler($event)", "click": "clickHandle($event)" }, classAttribute: "the-toolbar-group" }, viewQueries: [{ propertyName: "groupTemplate", first: true, predicate: ["groupTemplate"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<a thyIconNavLink [thyIconNavLinkIcon]=\"item.icon\" [thyTooltip]=\"item?.name\" thyTooltipPlacement=\"top\" [thyIconNavLinkActive]=\"active\"></a>\n\n<ng-template #groupTemplate>\n <the-toolbar class=\"group\" [editor]=\"editor\" [toolbarItems]=\"menus\" [isMore]=\"false\"></the-toolbar>\n</ng-template>\n", components: [{ type: i2.ThyIconNavLinkComponent, selector: "[thyIconNavLink]", inputs: ["thyIconNavLinkIcon", "thyIconNavLinkActive"] }, { type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "isMore", "afterTemplate"] }], directives: [{ type: i7.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }] });
|
|
11910
|
+
TheToolbarGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: TheToolbarGroupComponent, selector: "the-toolbar-group", inputs: { menus: "menus", item: "item" }, host: { listeners: { "mousedown": "mousedownHandler($event)", "click": "clickHandle($event)" }, classAttribute: "the-toolbar-group" }, viewQueries: [{ propertyName: "groupTemplate", first: true, predicate: ["groupTemplate"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<a thyIconNavLink [thyIconNavLinkIcon]=\"item.icon\" [thyTooltip]=\"item?.name\" thyTooltipPlacement=\"top\" [thyIconNavLinkActive]=\"active\"></a>\n\n<ng-template #groupTemplate>\n <the-toolbar class=\"group\" [editor]=\"editor\" [toolbarItems]=\"menus\" [isMore]=\"false\"></the-toolbar>\n</ng-template>\n", components: [{ type: i2.ThyIconNavLinkComponent, selector: "[thyIconNavLink]", inputs: ["thyIconNavLinkIcon", "thyIconNavLinkActive"] }, { type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }], directives: [{ type: i7.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }] });
|
|
11905
11911
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheToolbarGroupComponent, decorators: [{
|
|
11906
11912
|
type: Component,
|
|
11907
11913
|
args: [{
|