@worktile/theia 2.4.1 → 2.4.4
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 +1117 -1034
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/constants/auto-format-rules.d.ts +1 -1
- package/editor.module.d.ts +2 -1
- package/esm2015/constants/auto-format-rules.js +3 -2
- package/esm2015/editor.component.js +5 -2
- package/esm2015/interfaces/auto-format.js +1 -1
- package/esm2015/interfaces/editor.js +1 -1
- package/esm2015/plugins/autoformat/autoformat.plugin.js +23 -6
- package/esm2015/plugins/indent/indent.editor.js +11 -13
- package/esm2015/plugins/indent/indent.plugin.js +15 -2
- package/esm2015/plugins/indent/on-keydown-indent.js +3 -5
- package/esm2015/plugins/index.js +2 -3
- package/esm2015/plugins/quick-insert/components/quick-insert.component.js +6 -2
- package/esm2015/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.js +14 -15
- package/esm2015/plugins/quick-insert/quick-insert.editor.js +18 -27
- package/esm2015/plugins/quick-insert/quick-insert.plugin.js +33 -15
- package/esm2015/plugins/table/components/insert-mark/insert-mark.component.js +4 -4
- package/esm2015/plugins/table/components/table.component.js +2 -2
- package/esm2015/plugins/table/components/td/td.component.js +5 -7
- package/esm2015/plugins/table/table.service.js +6 -6
- package/esm2015/plugins/todo-item/todo-item.component.js +15 -7
- package/esm2015/transforms/index.js +3 -2
- package/esm2015/transforms/insert-element-next.js +1 -1
- package/esm2015/transforms/insert-element-node.js +36 -0
- package/esm2015/utils/is-clean-empty-paragraph.js +4 -1
- package/fesm2015/worktile-theia.js +1054 -969
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/auto-format.d.ts +1 -0
- package/interfaces/editor.d.ts +14 -1
- package/package.json +1 -1
- package/plugins/autoformat/autoformat.plugin.d.ts +1 -2
- package/plugins/indent/indent.plugin.d.ts +1 -0
- package/plugins/indent/on-keydown-indent.d.ts +1 -1
- package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +3 -4
- package/plugins/quick-insert/quick-insert.editor.d.ts +3 -4
- package/plugins/quick-insert/quick-insert.plugin.d.ts +2 -0
- package/plugins/table/components/table.component.scss +43 -42
- package/plugins/todo-item/todo-item.component.d.ts +3 -1
- package/transforms/index.d.ts +2 -1
- package/transforms/insert-element-node.d.ts +2 -0
- package/utils/is-clean-empty-paragraph.d.ts +2 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Editor, Range, Path, Transforms } from 'slate';
|
|
2
|
+
import * as TheQueries from '../queries';
|
|
3
|
+
export const insertElementNode = (editor, node) => {
|
|
4
|
+
if (Range.isExpanded(editor.selection)) {
|
|
5
|
+
Editor.deleteFragment(editor);
|
|
6
|
+
}
|
|
7
|
+
const isBlockCardCursor = TheQueries.isBlockCardCursor(editor);
|
|
8
|
+
const containerBlocks = TheQueries.getContainerBlocks(editor);
|
|
9
|
+
const isContainer = TheQueries.isNodeTypeIn(editor, containerBlocks, { at: editor.selection });
|
|
10
|
+
const [anchorBlock, anchorBlockPath] = TheQueries.anchorBlockEntry(editor);
|
|
11
|
+
const isEmpty = Editor.isEmpty(editor, anchorBlock);
|
|
12
|
+
if (isContainer && !isBlockCardCursor) {
|
|
13
|
+
const [, containerPath] = Editor.above(editor, {
|
|
14
|
+
match: n => Editor.isBlock(editor, n) && containerBlocks.includes(n.type),
|
|
15
|
+
at: editor.selection
|
|
16
|
+
});
|
|
17
|
+
Editor.withoutNormalizing(editor, () => {
|
|
18
|
+
const containerPathFirstPath = anchorBlockPath.slice(0, containerPath.length + 1);
|
|
19
|
+
Transforms.insertNodes(editor, node, { at: Path.next(containerPathFirstPath), select: true });
|
|
20
|
+
if (isEmpty) {
|
|
21
|
+
Transforms.removeNodes(editor, { at: anchorBlockPath });
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const nextPath = Path.next([anchorBlockPath[0]]);
|
|
27
|
+
Transforms.insertNodes(editor, node, { at: nextPath });
|
|
28
|
+
if (isEmpty && anchorBlockPath.length === 1) {
|
|
29
|
+
Transforms.delete(editor, { at: anchorBlockPath });
|
|
30
|
+
Transforms.select(editor, Editor.start(editor, anchorBlockPath));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
Transforms.select(editor, Editor.start(editor, nextPath));
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWVsZW1lbnQtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy90cmFuc2Zvcm1zL2luc2VydC1lbGVtZW50LW5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBVyxNQUFNLE9BQU8sQ0FBQztBQUNqRSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxJQUFhLEVBQUUsRUFBRTtJQUMvRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3BDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDakM7SUFFRCxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvRCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUQsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLE1BQU0sQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXBELElBQUksV0FBVyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7UUFDbkMsTUFBTSxDQUFDLEVBQUUsYUFBYSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDM0MsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3pFLEVBQUUsRUFBRSxNQUFNLENBQUMsU0FBUztTQUN2QixDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNuQyxNQUFNLHNCQUFzQixHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEYsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5RixJQUFJLE9BQU8sRUFBRTtnQkFDVCxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2FBQzNEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO0tBQ1Y7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUV2RCxJQUFJLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN6QyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7S0FDcEU7U0FBTTtRQUNILFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7S0FDN0Q7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFJhbmdlLCBQYXRoLCBUcmFuc2Zvcm1zLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi9xdWVyaWVzJztcblxuZXhwb3J0IGNvbnN0IGluc2VydEVsZW1lbnROb2RlID0gKGVkaXRvcjogRWRpdG9yLCBub2RlOiBFbGVtZW50KSA9PiB7XG4gICAgaWYgKFJhbmdlLmlzRXhwYW5kZWQoZWRpdG9yLnNlbGVjdGlvbikpIHtcbiAgICAgICAgRWRpdG9yLmRlbGV0ZUZyYWdtZW50KGVkaXRvcik7XG4gICAgfVxuXG4gICAgY29uc3QgaXNCbG9ja0NhcmRDdXJzb3IgPSBUaGVRdWVyaWVzLmlzQmxvY2tDYXJkQ3Vyc29yKGVkaXRvcik7XG4gICAgY29uc3QgY29udGFpbmVyQmxvY2tzID0gVGhlUXVlcmllcy5nZXRDb250YWluZXJCbG9ja3MoZWRpdG9yKTtcbiAgICBjb25zdCBpc0NvbnRhaW5lciA9IFRoZVF1ZXJpZXMuaXNOb2RlVHlwZUluKGVkaXRvciwgY29udGFpbmVyQmxvY2tzLCB7IGF0OiBlZGl0b3Iuc2VsZWN0aW9uIH0pO1xuICAgIGNvbnN0IFthbmNob3JCbG9jaywgYW5jaG9yQmxvY2tQYXRoXSA9IFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2tFbnRyeShlZGl0b3IpO1xuICAgIGNvbnN0IGlzRW1wdHkgPSBFZGl0b3IuaXNFbXB0eShlZGl0b3IsIGFuY2hvckJsb2NrKTtcblxuICAgIGlmIChpc0NvbnRhaW5lciAmJiAhaXNCbG9ja0NhcmRDdXJzb3IpIHtcbiAgICAgICAgY29uc3QgWywgY29udGFpbmVyUGF0aF0gPSBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7XG4gICAgICAgICAgICBtYXRjaDogbiA9PiBFZGl0b3IuaXNCbG9jayhlZGl0b3IsIG4pICYmIGNvbnRhaW5lckJsb2Nrcy5pbmNsdWRlcyhuLnR5cGUpLFxuICAgICAgICAgICAgYXQ6IGVkaXRvci5zZWxlY3Rpb25cbiAgICAgICAgfSk7XG4gICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJQYXRoRmlyc3RQYXRoID0gYW5jaG9yQmxvY2tQYXRoLnNsaWNlKDAsIGNvbnRhaW5lclBhdGgubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgbm9kZSwgeyBhdDogUGF0aC5uZXh0KGNvbnRhaW5lclBhdGhGaXJzdFBhdGgpLCBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZXMoZWRpdG9yLCB7IGF0OiBhbmNob3JCbG9ja1BhdGggfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFBhdGggPSBQYXRoLm5leHQoW2FuY2hvckJsb2NrUGF0aFswXV0pO1xuICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBub2RlLCB7IGF0OiBuZXh0UGF0aCB9KTtcblxuICAgIGlmIChpc0VtcHR5ICYmIGFuY2hvckJsb2NrUGF0aC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBhbmNob3JCbG9ja1BhdGggfSk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgRWRpdG9yLnN0YXJ0KGVkaXRvciwgYW5jaG9yQmxvY2tQYXRoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBuZXh0UGF0aCkpO1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -13,6 +13,9 @@ export const isCleanEmptyParagraph = (editor) => {
|
|
|
13
13
|
return false;
|
|
14
14
|
}
|
|
15
15
|
const block = Node.ancestor(editor, [editor.selection.anchor.path[0]]);
|
|
16
|
+
return isPureEmptyParagraph(editor, block);
|
|
17
|
+
};
|
|
18
|
+
export const isPureEmptyParagraph = (editor, block) => {
|
|
16
19
|
const textIndent = 'textIndent';
|
|
17
20
|
const align = 'align';
|
|
18
21
|
const hasTextIndent = block[textIndent];
|
|
@@ -31,4 +34,4 @@ export const isCleanEmptyParagraph = (editor) => {
|
|
|
31
34
|
}
|
|
32
35
|
return false;
|
|
33
36
|
};
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY2xlYW4tZW1wdHktcGFyYWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2lzLWNsZWFuLWVtcHR5LXBhcmFncmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEU7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO0lBQ3BELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWpILElBQUksQ0FBQyxpQkFBaUIsRUFBRTtRQUNwQixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVksQ0FBQztJQUVsRixPQUFPLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQWMsRUFBRSxLQUFXLEVBQUUsRUFBRTtJQUNoRSxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7SUFDaEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ3RCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU3QyxJQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtRQUN6QixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN4QixLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTO1FBQ3JDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO1FBQzdCLENBQUMsU0FBUztRQUNWLENBQUMsYUFBYTtRQUNkLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDaEQ7UUFDRSxPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBUZXh0LCBFbGVtZW50LCBSYW5nZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBFbGVtZW50S2luZHMgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5cbi8qKlxuICogd2hldGhlciB0aGUgY3VycmVudCBub2RlIGlzIGEgY2xlYW4gcGFyYWdyYXBoXG4gKiBAcGFyYW0gZWRpdG9yXG4gKiBAcGFyYW0gdGV4dFxuICogQHJldHVybnMgYm9vbGVhblxuICovXG5leHBvcnQgY29uc3QgaXNDbGVhbkVtcHR5UGFyYWdyYXBoID0gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgY29uc3QgaXNDb2xsYXBzZWRDdXJzb3IgPSBUaGVFZGl0b3IuaXNGb2N1c2VkKGVkaXRvcikgJiYgZWRpdG9yLnNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKTtcblxuICAgIGlmICghaXNDb2xsYXBzZWRDdXJzb3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGJsb2NrID0gTm9kZS5hbmNlc3RvcihlZGl0b3IsIFtlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoWzBdXSkgYXMgRWxlbWVudDtcbiAgICBcbiAgICByZXR1cm4gaXNQdXJlRW1wdHlQYXJhZ3JhcGgoZWRpdG9yLCBibG9jayk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQdXJlRW1wdHlQYXJhZ3JhcGggPSAoZWRpdG9yOiBFZGl0b3IsIGJsb2NrOiBOb2RlKSA9PiB7XG4gICAgY29uc3QgdGV4dEluZGVudCA9ICd0ZXh0SW5kZW50JztcbiAgICBjb25zdCBhbGlnbiA9ICdhbGlnbic7XG4gICAgY29uc3QgaGFzVGV4dEluZGVudCA9IGJsb2NrW3RleHRJbmRlbnRdO1xuICAgIGNvbnN0IGFsaWduVmFsdWUgPSBibG9ja1thbGlnbl07XG4gICAgY29uc3QgaGFzSW5kZW50ID0gYmxvY2tbRWxlbWVudEtpbmRzLmluZGVudF07XG5cbiAgICBpZiAoXG4gICAgICAgIE5vZGUuc3RyaW5nKGJsb2NrKSA9PT0gJycgJiZcbiAgICAgICAgRWxlbWVudC5pc0VsZW1lbnQoYmxvY2spICYmXG4gICAgICAgIGJsb2NrLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGggJiZcbiAgICAgICAgYmxvY2suY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmXG4gICAgICAgIFRleHQuaXNUZXh0KGJsb2NrLmNoaWxkcmVuWzBdKSAmJlxuICAgICAgICAhRWRpdG9yLmlzVm9pZChlZGl0b3IsIGJsb2NrKSAmJlxuICAgICAgICAhaGFzSW5kZW50ICYmXG4gICAgICAgICFoYXNUZXh0SW5kZW50ICYmXG4gICAgICAgICghYWxpZ25WYWx1ZSB8fCBhbGlnblZhbHVlID09PSBBbGlnbm1lbnQubGVmdClcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufTtcbiJdfQ==
|