@worktile/theia 2.1.1 → 2.1.5
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 +505 -210
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/toolbar/toolbar.component.d.ts +1 -0
- package/components/toolbar/toolbar.component.scss +2 -0
- package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +7 -5
- package/components/toolbar-dropdown/toolbar-dropdown.component.scss +2 -0
- package/components/toolbar-item/toolbar-item.component.d.ts +3 -0
- package/constants/default.d.ts +1 -1
- package/constants/node-types.d.ts +19 -3
- package/custom-types.d.ts +4 -1
- package/editor.module.d.ts +22 -23
- package/esm2015/components/toolbar/toolbar.component.js +18 -5
- package/esm2015/components/toolbar-dropdown/toolbar-dropdown.component.js +14 -5
- package/esm2015/components/toolbar-item/toolbar-item.component.js +20 -6
- package/esm2015/constants/auto-format-rules.js +8 -3
- package/esm2015/constants/default.js +2 -2
- package/esm2015/constants/node-types.js +33 -4
- package/esm2015/constants/toolbar.js +5 -5
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +12 -7
- package/esm2015/editor.module.js +8 -8
- package/esm2015/interfaces/auto-format.js +1 -1
- package/esm2015/interfaces/editor.js +1 -1
- package/esm2015/interfaces/element.js +1 -1
- package/esm2015/interfaces/toolbar.js +1 -1
- package/esm2015/plugins/align/options.js +2 -1
- package/esm2015/plugins/autoformat/autoformat.plugin.js +2 -1
- package/esm2015/plugins/autoformat/transforms/auto-format-inline.js +27 -14
- package/esm2015/plugins/code/code.component.js +26 -10
- package/esm2015/plugins/deserializers/deserialize-md.plugin.js +2 -2
- package/esm2015/plugins/font-size/font-size.editor.js +81 -0
- package/esm2015/plugins/font-size/options.js +20 -6
- package/esm2015/plugins/heading/heading.editor.js +13 -2
- package/esm2015/plugins/heading/options.js +2 -1
- package/esm2015/plugins/index.js +7 -3
- package/esm2015/plugins/inline-code/inline-code.component.js +27 -0
- package/esm2015/plugins/inline-code/inline-code.editor.js +45 -0
- package/esm2015/plugins/inline-code/inline-code.plugin.js +46 -0
- package/esm2015/plugins/inline-code/options.js +14 -0
- package/esm2015/plugins/link/link.component.js +4 -2
- package/esm2015/plugins/list/components/list-item.component.js +69 -1
- package/esm2015/plugins/mark/mark.plugin.js +15 -10
- package/esm2015/plugins/mark/options.js +1 -9
- package/esm2015/plugins/table/table.editor.js +1 -1
- package/esm2015/services/context.service.js +9 -1
- package/esm2015/services/toolbar.service.js +2 -2
- package/esm2015/shortcuts/mark.js +10 -4
- package/fesm2015/worktile-theia.js +465 -184
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/auto-format.d.ts +1 -1
- package/interfaces/editor.d.ts +3 -1
- package/interfaces/element.d.ts +1 -1
- package/interfaces/toolbar.d.ts +2 -1
- package/package.json +1 -1
- package/plugins/autoformat/transforms/auto-format-inline.d.ts +3 -1
- package/plugins/code/code.component.d.ts +6 -3
- package/plugins/code/code.component.scss +17 -1
- package/plugins/font-size/font-size.editor.d.ts +10 -0
- package/plugins/font-size/options.d.ts +0 -1
- package/plugins/font-size/toolbar-item.component.scss +1 -11
- package/plugins/heading/heading.editor.d.ts +1 -1
- package/plugins/inline-code/inline-code.component.d.ts +14 -0
- package/plugins/inline-code/inline-code.component.scss +13 -0
- package/plugins/inline-code/inline-code.editor.d.ts +7 -0
- package/plugins/inline-code/inline-code.plugin.d.ts +2 -0
- package/plugins/inline-code/options.d.ts +2 -0
- package/plugins/list/components/list-item.component.d.ts +7 -0
- package/plugins/table/table.editor.d.ts +1 -1
- package/queries/get-container-blocks.d.ts +1 -1
- package/queries/get-selection-marks.d.ts +1 -1
- package/services/context.service.d.ts +5 -1
- package/styles/editor.scss +32 -1
- package/styles/index.scss +1 -0
- package/styles/typo.scss +2 -1
- package/transforms/set-marks.d.ts +1 -1
- package/esm2015/plugins/font-size/toolbar-item.component.js +0 -129
- package/plugins/font-size/toolbar-item.component.d.ts +0 -35
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Transforms } from 'slate';
|
|
2
2
|
import * as TheQueries from '../../../queries';
|
|
3
|
-
export const autoFormatInline = (editor, { type, between, markup, ignoreTrim }) => {
|
|
3
|
+
export const autoFormatInline = (editor, { type, between, markup, ignoreTrim, format }) => {
|
|
4
4
|
const selection = editor.selection;
|
|
5
5
|
const startMarkup = between ? between[0] : markup;
|
|
6
6
|
const endMarkup = between ? between[1] : '';
|
|
@@ -44,22 +44,35 @@ export const autoFormatInline = (editor, { type, between, markup, ignoreTrim })
|
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
|
-
// add mark to the text between the markups
|
|
48
|
-
Transforms.select(editor, markupRange);
|
|
49
|
-
editor.addMark(type, true);
|
|
50
|
-
Transforms.collapse(editor, { edge: 'end' });
|
|
51
|
-
editor.removeMark(type, false);
|
|
52
|
-
// delete start markup
|
|
53
47
|
const startMarkupPointBefore = TheQueries.getPointBefore(editor, selection, {
|
|
54
48
|
matchString: startMarkup,
|
|
55
49
|
skipInvalid: true
|
|
56
50
|
});
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
51
|
+
if (format) {
|
|
52
|
+
const markupText = TheQueries.getText(editor, markupRange);
|
|
53
|
+
format(editor, markupText);
|
|
54
|
+
// delete start to end selection
|
|
55
|
+
Transforms.delete(editor, {
|
|
56
|
+
at: {
|
|
57
|
+
anchor: startMarkupPointBefore,
|
|
58
|
+
focus: selection.anchor
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// add mark to the text between the markups
|
|
64
|
+
Transforms.select(editor, markupRange);
|
|
65
|
+
editor.addMark(type, true);
|
|
66
|
+
Transforms.collapse(editor, { edge: 'end' });
|
|
67
|
+
editor.removeMark(type, false);
|
|
68
|
+
// delete start markup
|
|
69
|
+
Transforms.delete(editor, {
|
|
70
|
+
at: {
|
|
71
|
+
anchor: startMarkupPointBefore,
|
|
72
|
+
focus: startMarkupPointAfter
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
63
76
|
return true;
|
|
64
77
|
};
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1mb3JtYXQtaW5saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvYXV0b2Zvcm1hdC90cmFuc2Zvcm1zL2F1dG8tZm9ybWF0LWlubGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNsRCxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQzVCLE1BQWtCLEVBQ2xCLEVBQ0ksSUFBSSxFQUNKLE9BQU8sRUFDUCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFPVCxFQUNILEVBQUU7SUFDQSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBa0IsQ0FBQztJQUU1QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFNUMsSUFBSSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQzVDLElBQUksU0FBUyxFQUFFO1FBQ1gsb0JBQW9CLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFO1lBQ2hFLFdBQVcsRUFBRSxTQUFTO1NBQ3pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN2QixPQUFPLEtBQUssQ0FBQztTQUNoQjtLQUNKO0lBRUQsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsRUFBRTtRQUNsRixXQUFXLEVBQUUsV0FBVztRQUN4QixXQUFXLEVBQUUsSUFBSTtRQUNqQixVQUFVLEVBQUUsSUFBSTtLQUNuQixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMscUJBQXFCLEVBQUU7UUFDeEIsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxRQUFRO0lBRVIsTUFBTSxXQUFXLEdBQVU7UUFDdkIsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixLQUFLLEVBQUUsb0JBQW9CO0tBQzlCLENBQUM7SUFFRixJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ2IsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDM0QsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssVUFBVSxFQUFFO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0tBQ0o7SUFFRCxvQkFBb0I7SUFDcEIsSUFBSSxTQUFTLEVBQUU7UUFDWCxvQkFBb0IsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7WUFDaEUsV0FBVyxFQUFFLFNBQVM7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDdEIsRUFBRSxFQUFFO2dCQUNBLE1BQU0sRUFBRSxvQkFBb0I7Z0JBQzVCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTthQUMxQjtTQUNKLENBQUMsQ0FBQztLQUNOO0lBQ0QsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7UUFDeEUsV0FBVyxFQUFFLFdBQVc7UUFDeEIsV0FBVyxFQUFFLElBQUk7S0FDcEIsQ0FBQyxDQUFDO0lBRUgsSUFBSSxNQUFNLEVBQUU7UUFDUixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTNCLGdDQUFnQztRQUNoQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUN0QixFQUFFLEVBQUU7Z0JBQ0EsTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQzFCO1NBQ0osQ0FBQyxDQUFDO0tBQ047U0FBTTtRQUNILDJDQUEyQztRQUMzQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzQixVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRS9CLHNCQUFzQjtRQUN0QixVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUN0QixFQUFFLEVBQUU7Z0JBQ0EsTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsS0FBSyxFQUFFLHFCQUFxQjthQUMvQjtTQUNKLENBQUMsQ0FBQztLQUNOO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBNYXJrRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vcGx1Z2lucy9tYXJrL21hcmsuZWRpdG9yJztcblxuZXhwb3J0IGNvbnN0IGF1dG9Gb3JtYXRJbmxpbmUgPSAoXG4gICAgZWRpdG9yOiBNYXJrRWRpdG9yLFxuICAgIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgYmV0d2VlbixcbiAgICAgICAgbWFya3VwLFxuICAgICAgICBpZ25vcmVUcmltLFxuICAgICAgICBmb3JtYXRcbiAgICB9OiB7XG4gICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgYmV0d2Vlbj86IHN0cmluZ1tdO1xuICAgICAgICBtYXJrdXA/OiBzdHJpbmc7XG4gICAgICAgIGlnbm9yZVRyaW0/OiBib29sZWFuO1xuICAgICAgICBmb3JtYXQ/OiAoZWRpdG9yOiBFZGl0b3IsIG1hcmt1cD86IHN0cmluZykgPT4gdm9pZDtcbiAgICB9XG4pID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBlZGl0b3Iuc2VsZWN0aW9uIGFzIFJhbmdlO1xuXG4gICAgY29uc3Qgc3RhcnRNYXJrdXAgPSBiZXR3ZWVuID8gYmV0d2VlblswXSA6IG1hcmt1cDtcbiAgICBjb25zdCBlbmRNYXJrdXAgPSBiZXR3ZWVuID8gYmV0d2VlblsxXSA6ICcnO1xuXG4gICAgbGV0IGVuZE1hcmt1cFBvaW50QmVmb3JlID0gc2VsZWN0aW9uLmFuY2hvcjtcbiAgICBpZiAoZW5kTWFya3VwKSB7XG4gICAgICAgIGVuZE1hcmt1cFBvaW50QmVmb3JlID0gVGhlUXVlcmllcy5nZXRQb2ludEJlZm9yZShlZGl0b3IsIHNlbGVjdGlvbiwge1xuICAgICAgICAgICAgbWF0Y2hTdHJpbmc6IGVuZE1hcmt1cFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFlbmRNYXJrdXBQb2ludEJlZm9yZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRNYXJrdXBQb2ludEFmdGVyID0gVGhlUXVlcmllcy5nZXRQb2ludEJlZm9yZShlZGl0b3IsIGVuZE1hcmt1cFBvaW50QmVmb3JlLCB7XG4gICAgICAgIG1hdGNoU3RyaW5nOiBzdGFydE1hcmt1cCxcbiAgICAgICAgc2tpcEludmFsaWQ6IHRydWUsXG4gICAgICAgIGFmdGVyTWF0Y2g6IHRydWVcbiAgICB9KTtcblxuICAgIGlmICghc3RhcnRNYXJrdXBQb2ludEFmdGVyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBmb3VuZFxuXG4gICAgY29uc3QgbWFya3VwUmFuZ2U6IFJhbmdlID0ge1xuICAgICAgICBhbmNob3I6IHN0YXJ0TWFya3VwUG9pbnRBZnRlcixcbiAgICAgICAgZm9jdXM6IGVuZE1hcmt1cFBvaW50QmVmb3JlXG4gICAgfTtcblxuICAgIGlmICghaWdub3JlVHJpbSkge1xuICAgICAgICBjb25zdCBtYXJrdXBUZXh0ID0gVGhlUXVlcmllcy5nZXRUZXh0KGVkaXRvciwgbWFya3VwUmFuZ2UpO1xuICAgICAgICBpZiAobWFya3VwVGV4dC50cmltKCkgIT09IG1hcmt1cFRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRlbGV0ZSBlbmQgbWFya3VwXG4gICAgaWYgKGVuZE1hcmt1cCkge1xuICAgICAgICBlbmRNYXJrdXBQb2ludEJlZm9yZSA9IFRoZVF1ZXJpZXMuZ2V0UG9pbnRCZWZvcmUoZWRpdG9yLCBzZWxlY3Rpb24sIHtcbiAgICAgICAgICAgIG1hdGNoU3RyaW5nOiBlbmRNYXJrdXBcbiAgICAgICAgfSk7XG4gICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwge1xuICAgICAgICAgICAgYXQ6IHtcbiAgICAgICAgICAgICAgICBhbmNob3I6IGVuZE1hcmt1cFBvaW50QmVmb3JlLFxuICAgICAgICAgICAgICAgIGZvY3VzOiBzZWxlY3Rpb24uYW5jaG9yXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBzdGFydE1hcmt1cFBvaW50QmVmb3JlID0gVGhlUXVlcmllcy5nZXRQb2ludEJlZm9yZShlZGl0b3IsIHNlbGVjdGlvbiwge1xuICAgICAgICBtYXRjaFN0cmluZzogc3RhcnRNYXJrdXAsXG4gICAgICAgIHNraXBJbnZhbGlkOiB0cnVlXG4gICAgfSk7XG5cbiAgICBpZiAoZm9ybWF0KSB7XG4gICAgICAgIGNvbnN0IG1hcmt1cFRleHQgPSBUaGVRdWVyaWVzLmdldFRleHQoZWRpdG9yLCBtYXJrdXBSYW5nZSk7XG4gICAgICAgIGZvcm1hdChlZGl0b3IsIG1hcmt1cFRleHQpO1xuXG4gICAgICAgIC8vIGRlbGV0ZSBzdGFydCB0byBlbmQgc2VsZWN0aW9uXG4gICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwge1xuICAgICAgICAgICAgYXQ6IHtcbiAgICAgICAgICAgICAgICBhbmNob3I6IHN0YXJ0TWFya3VwUG9pbnRCZWZvcmUsXG4gICAgICAgICAgICAgICAgZm9jdXM6IHNlbGVjdGlvbi5hbmNob3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gYWRkIG1hcmsgdG8gdGhlIHRleHQgYmV0d2VlbiB0aGUgbWFya3Vwc1xuICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIG1hcmt1cFJhbmdlKTtcbiAgICAgICAgZWRpdG9yLmFkZE1hcmsodHlwZSwgdHJ1ZSk7XG4gICAgICAgIFRyYW5zZm9ybXMuY29sbGFwc2UoZWRpdG9yLCB7IGVkZ2U6ICdlbmQnIH0pO1xuICAgICAgICBlZGl0b3IucmVtb3ZlTWFyayh0eXBlLCBmYWxzZSk7XG5cbiAgICAgICAgLy8gZGVsZXRlIHN0YXJ0IG1hcmt1cFxuICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHtcbiAgICAgICAgICAgIGF0OiB7XG4gICAgICAgICAgICAgICAgYW5jaG9yOiBzdGFydE1hcmt1cFBvaW50QmVmb3JlLFxuICAgICAgICAgICAgICAgIGZvY3VzOiBzdGFydE1hcmt1cFBvaW50QWZ0ZXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59O1xuIl19
|
|
@@ -6,7 +6,8 @@ import { CODEMIRROR_PADDING_TOP, CODE_MODES, DropdownMode, CodeMode, THE_CODE_MO
|
|
|
6
6
|
import { TheBaseElementComponent } from '../../interfaces';
|
|
7
7
|
import { CodeEditor } from './code.editor';
|
|
8
8
|
import * as TheTransforms from '../../transforms';
|
|
9
|
-
import { delay, take } from 'rxjs/operators';
|
|
9
|
+
import { delay, take, takeUntil } from 'rxjs/operators';
|
|
10
|
+
import { fromEvent, Subject } from 'rxjs';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "ngx-tethys/notify";
|
|
12
13
|
import * as i2 from "../../services/context.service";
|
|
@@ -36,8 +37,9 @@ export class TheCodeComponent extends TheBaseElementComponent {
|
|
|
36
37
|
this.menus = CODE_MODES.map(item => {
|
|
37
38
|
return { key: item.value, name: item.showName };
|
|
38
39
|
});
|
|
40
|
+
this.destroy$ = new Subject();
|
|
39
41
|
this.ToolbarItemMode = ToolbarItemMode;
|
|
40
|
-
this.
|
|
42
|
+
this.isHightLight = false;
|
|
41
43
|
this.resizeHeight = null;
|
|
42
44
|
this.options = {
|
|
43
45
|
mode: this.menus[0].key,
|
|
@@ -74,13 +76,21 @@ export class TheCodeComponent extends TheBaseElementComponent {
|
|
|
74
76
|
if (this.resizeHeight !== this.element.height) {
|
|
75
77
|
this.useHeight();
|
|
76
78
|
}
|
|
77
|
-
if (!this.isCollapsed) {
|
|
78
|
-
this.isFocusCode = false;
|
|
79
|
-
}
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
81
|
ngOnInit() {
|
|
83
82
|
super.ngOnInit();
|
|
83
|
+
this.ngZone.runOutsideAngular(() => {
|
|
84
|
+
fromEvent(this.nativeElement, 'mousedown')
|
|
85
|
+
.pipe(takeUntil(this.destroy$))
|
|
86
|
+
.subscribe(event => {
|
|
87
|
+
event.stopPropagation();
|
|
88
|
+
const isBlockOperation = this.isCollapsed &&
|
|
89
|
+
this.nativeElement.querySelector('.the-code-block-operation').contains(event.target);
|
|
90
|
+
const isCodemirror = this.nativeElement.querySelector('.ng-codemirror').contains(event.target);
|
|
91
|
+
this.isHightLight = !isCodemirror && !isBlockOperation;
|
|
92
|
+
});
|
|
93
|
+
});
|
|
84
94
|
this.elementRef.nativeElement.classList.add('the-code-container');
|
|
85
95
|
}
|
|
86
96
|
ngAfterViewInit() {
|
|
@@ -122,11 +132,11 @@ export class TheCodeComponent extends TheBaseElementComponent {
|
|
|
122
132
|
}
|
|
123
133
|
}
|
|
124
134
|
codeChange($event) {
|
|
135
|
+
this.isHightLight = false;
|
|
125
136
|
CodeEditor.setCodeAttribute(this.editor, this.element, { content: $event });
|
|
126
137
|
}
|
|
127
138
|
onDelete(event) {
|
|
128
139
|
event.preventDefault();
|
|
129
|
-
this.isFocusCode = false;
|
|
130
140
|
TheTransforms.deleteElement(this.editor, this.element);
|
|
131
141
|
}
|
|
132
142
|
onCopy(event) {
|
|
@@ -144,8 +154,9 @@ export class TheCodeComponent extends TheBaseElementComponent {
|
|
|
144
154
|
AngularEditor.deselect(this.editor);
|
|
145
155
|
}
|
|
146
156
|
focusChange(codeMirrorFocused) {
|
|
147
|
-
if (codeMirrorFocused)
|
|
148
|
-
this.
|
|
157
|
+
if (codeMirrorFocused) {
|
|
158
|
+
this.isHightLight = false;
|
|
159
|
+
}
|
|
149
160
|
}
|
|
150
161
|
useMode() {
|
|
151
162
|
this.options = Object.assign(Object.assign({}, this.options), { mode: this.element.language });
|
|
@@ -172,12 +183,17 @@ export class TheCodeComponent extends TheBaseElementComponent {
|
|
|
172
183
|
CodeEditor.setCodeAttribute(this.editor, this.element, { height: this.resizeHeight });
|
|
173
184
|
}
|
|
174
185
|
onChangeWrap(value) {
|
|
186
|
+
this.isHightLight = false;
|
|
175
187
|
this.options = Object.assign(Object.assign({}, this.options), { lineWrapping: value || false });
|
|
176
188
|
CodeEditor.setCodeAttribute(this.editor, this.element, { autoWrap: value ? value : null });
|
|
177
189
|
}
|
|
190
|
+
ngOnDestroy() {
|
|
191
|
+
this.destroy$.next();
|
|
192
|
+
this.destroy$.complete();
|
|
193
|
+
}
|
|
178
194
|
}
|
|
179
195
|
TheCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheCodeComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ThyNotifyService }, { token: i2.TheContextService }, { token: i0.NgZone }, { token: THE_CODE_MODE_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
-
TheCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: TheCodeComponent, selector: "div[theCode]", viewQueries: [{ propertyName: "codemirror", first: true, predicate: ["codemirror"], descendants: true, read: CodeMirrorComponent }], usesInheritance: true, ngImport: i0, template: "<div contenteditable=\"false\" class=\"the-code-block-operation\" *ngIf=\"
|
|
196
|
+
TheCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: TheCodeComponent, selector: "div[theCode]", viewQueries: [{ propertyName: "codemirror", first: true, predicate: ["codemirror"], descendants: true, read: CodeMirrorComponent }], usesInheritance: true, ngImport: i0, template: "<div contenteditable=\"false\" class=\"the-code-block-operation\" *ngIf=\"isCollapsed && codemirror && !options.readOnly\">\n <thy-icon-nav>\n <the-toolbar-dropdown [menus]=\"menus\" [item]=\"actives\" [itemMousedownHandle]=\"onChangeLangulage\"> </the-toolbar-dropdown>\n <a\n href=\"javascript:;\"\n thyIconNavLink\n thyIconNavLinkIcon=\"copy\"\n thyTooltip=\"\u590D\u5236\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"onCopy($event)\"\n ></a>\n <a\n href=\"javascript:;\"\n thyIconNavLink\n thyIconNavLinkIcon=\"trash\"\n thyTooltip=\"\u5220\u9664\"\n class=\"remove-link\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"onDelete($event)\"\n ></a>\n <nav-split-line [mode]=\"ToolbarItemMode.vertical\"></nav-split-line>\n <span class=\"auto-wrap d-flex align-items-center\">\n <span>\u81EA\u52A8\u6362\u884C</span>\n <thy-switch\n class=\"auto-wrap-btn d-flex\"\n [(ngModel)]=\"options.lineWrapping\"\n (ngModelChange)=\"onChangeWrap($event)\"\n thySize=\"sm\"\n ></thy-switch>\n </span>\n </thy-icon-nav>\n</div>\n\n<slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n\n<!-- \u53EA\u8BFB\u6A21\u5F0F\u4E0BCodeMirror-sizer\u9AD8\u5EA6\u6BD4\u7F16\u8F91\u6A21\u5F0F\u4E0B\u591A2px\uFF0C\u8BBE\u7F6EthyMinHeight\u4E3A46px\u9632\u6B62\u62D6\u62FD\u5230\u6700\u5C0F\u9AD8\u5EA6\u65F6\u53EA\u8BFB\u6A21\u5F0F\u4E0B\u51FA\u73B0\u6EDA\u52A8\u6761 -->\n<div\n thyResizable\n [thyMinHeight]=\"46\"\n [thyBounds]=\"resizeBounds\"\n [style.height.px]=\"resizeHeight\"\n (thyResize)=\"onResize($event)\"\n (thyResizeEnd)=\"onEndResize()\"\n class=\"resize-code-container\"\n [ngClass]=\"{ focus: isCollapsed, readonly: options.readOnly, active: isHightLight && isCollapsed }\"\n>\n <ng-codemirror\n *ngIf=\"startRenderCodemirror\"\n #codemirror\n contenteditable=\"false\"\n class=\"ng-codemirror-wrapper\"\n [ngStyle]=\"{ maxHeight: maxHeight > 0 ? maxHeight + 'px' : 'auto' }\"\n [options]=\"options\"\n [ngModel]=\"code\"\n [delayRefreshTime]=\"300\"\n (ngModelChange)=\"codeChange($event)\"\n (focusChange)=\"focusChange($event)\"\n [autoMaxHeight]=\"maxHeight\"\n >\n </ng-codemirror>\n <thy-resize-handle thyDirection=\"bottom\" class=\"code-resize-icon\" *ngIf=\"isCollapsed && !options.readOnly\"></thy-resize-handle>\n</div>\n", components: [{ type: i3.ThyIconNavComponent, selector: "thy-icon-nav", inputs: ["thyType"] }, { type: i4.TheToolbarDropdownComponent, selector: "the-toolbar-dropdown", inputs: ["toolbarItem", "menus", "mode", "item", "itemMousedownHandle"] }, { type: i3.ThyIconNavLinkComponent, selector: "[thyIconNavLink]", inputs: ["thyIconNavLinkIcon", "thyIconNavLinkActive"] }, { type: i5.NavSplitLineComponent, selector: "nav-split-line", inputs: ["mode"] }, { type: i6.ThySwitchComponent, selector: "thy-switch", inputs: ["thyType", "thySize", "thyDisabled"], outputs: ["thyChange"] }, { type: i7.SlateChildrenComponent, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { type: i8.CodeMirrorComponent, selector: "ng-codemirror, [ngCodeMirror]", inputs: ["autoMaxHeight", "delayRefreshTime", "options"], outputs: ["focusChange"] }, { type: i9.ThyResizeHandleComponent, selector: "thy-resize-handle, [thy-resize-handle]", inputs: ["thyDirection"], outputs: ["thyMouseDown"], exportAs: ["thyResizeHandle"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.ThyResizableDirective, selector: "[thyResizable]", inputs: ["thyBounds", "thyMaxHeight", "thyMaxWidth", "thyMinHeight", "thyMinWidth", "thyGridColumnCount", "thyMaxColumn", "thyMinColumn", "thyLockAspectRatio", "thyPreview", "thyDisabled"], outputs: ["thyResize", "thyResizeEnd", "thyResizeStart"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
181
197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheCodeComponent, decorators: [{
|
|
182
198
|
type: Component,
|
|
183
199
|
args: [{
|
|
@@ -192,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
192
208
|
type: ViewChild,
|
|
193
209
|
args: ['codemirror', { read: CodeMirrorComponent, static: false }]
|
|
194
210
|
}] } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvY29kZS9jb2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBR1QsdUJBQXVCLEVBRXZCLFNBQVMsRUFHVCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUNSLG1CQUFtQixFQUVuQixlQUFlLEVBRWxCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFzQix1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFVN0MsTUFBTSxPQUFPLGdCQUFpQixTQUFRLHVCQUE0QztJQXFEOUUsWUFDVyxVQUFzQixFQUN0QixHQUFzQixFQUNyQixnQkFBa0MsRUFDbEMsY0FBaUMsRUFDakMsTUFBYyxFQUVkLE1BQXFCO1FBRTdCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFSaEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgs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QUFDO0lBQy9GLENBQUM7OzZHQWxMUSxnQkFBZ0Isb0tBMkRiLG1CQUFtQjtpR0EzRHRCLGdCQUFnQix5SUE2QlEsbUJBQW1CLG9EQ3BFeEQsc3dFQTJEQTsyRkRwQmEsZ0JBQWdCO2tCQUw1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixXQUFXLEVBQUUsdUJBQXVCO29CQUNwQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OzBCQTREUSxNQUFNOzJCQUFDLG1CQUFtQjs0Q0E3Qi9CLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE5nWm9uZSxcbiAgICBJbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlOb3RpZnlTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9ub3RpZnknO1xuaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ29kZU1pcnJvckNvbXBvbmVudCB9IGZyb20gJ25nLWNvZGVtaXJyb3InO1xuaW1wb3J0IHtcbiAgICBDT0RFTUlSUk9SX1BBRERJTkdfVE9QLFxuICAgIENPREVfTU9ERVMsXG4gICAgRHJvcGRvd25Nb2RlLFxuICAgIENvZGVNb2RlLFxuICAgIFRIRV9DT0RFX01PREVfVE9LRU4sXG4gICAgVGhlQ29kZUNvbmZpZyxcbiAgICBUb29sYmFySXRlbU1vZGUsXG4gICAgRWxlbWVudEtpbmRzXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEZWZhdWx0VG9vbGJhckl0ZW0sIFRoZUJhc2VFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb2RlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBDb2RlRWRpdG9yIH0gZnJvbSAnLi9jb2RlLmVkaXRvcic7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgZGVsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaHlSZXNpemVFdmVudCB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZGl2W3RoZUNvZGVdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29kZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVGhlQ29kZUNvbXBvbmVudCBleHRlbmRzIFRoZUJhc2VFbGVtZW50Q29tcG9uZW50PENvZGVFbGVtZW50LCBFZGl0b3I+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBzdGFydFJlbmRlckNvZGVtaXJyb3IgPSBmYWxzZTtcbiAgICBkcm9wZG93bk1vZGUgPSBEcm9wZG93bk1vZGU7XG4gICAgbWF4SGVpZ2h0ID0gdGhpcy5jb25maWcubW9kZSA9PT0gQ29kZU1vZGUuZGVmYXVsdCA/IDM1MCAtIENPREVNSVJST1JfUEFERElOR19UT1AgKiAyIDogMDtcbiAgICBtZW51cyA9IENPREVfTU9ERVMubWFwKGl0ZW0gPT4ge1xuICAgICAgICByZXR1cm4geyBrZXk6IGl0ZW0udmFsdWUsIG5hbWU6IGl0ZW0uc2hvd05hbWUgfTtcbiAgICB9KTtcbiAgICBUb29sYmFySXRlbU1vZGUgPSBUb29sYmFySXRlbU1vZGU7XG4gICAgaXNGb2N1c0NvZGUgPSBmYWxzZTtcbiAgICByZXNpemVIZWlnaHQ6IG51bWJlciA9IG51bGw7XG5cbiAgICBvcHRpb25zID0ge1xuICAgICAgICBtb2RlOiB0aGlzLm1lbnVzWzBdLmtleSxcbiAgICAgICAgbGluZU51bWJlcnM6IGZhbHNlLFxuICAgICAgICByZWFkT25seTogZmFsc2UsXG4gICAgICAgIGF1dG9mb2N1czogZmFsc2UsXG4gICAgICAgIGxpbmVXaXNlQ29weUN1dDogdHJ1ZSxcbiAgICAgICAgbGluZVdyYXBwaW5nOiB0aGlzLmNvbmZpZy5tb2RlID09PSBDb2RlTW9kZS5kZWZhdWx0ID8gZmFsc2UgOiB0cnVlLFxuICAgICAgICBjdXJzb3JCbGlua1JhdGU6IDUwMFxuICAgIH07XG5cbiAgICBhY3RpdmVzOiBEZWZhdWx0VG9vbGJhckl0ZW0gPSB0aGlzLm1lbnVzWzBdO1xuXG4gICAgcmVzaXplQm91bmRzID0gbnVsbDtcblxuICAgIGdldCBjb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LmNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQFZpZXdDaGlsZCgnY29kZW1pcnJvcicsIHsgcmVhZDogQ29kZU1pcnJvckNvbXBvbmVudCwgc3RhdGljOiBmYWxzZSB9KVxuICAgIGNvZGVtaXJyb3I6IENvZGVNaXJyb3JDb21wb25lbnQ7XG5cbiAgICBvbkNvbnRleHRDaGFuZ2UoKSB7XG4gICAgICAgIHN1cGVyLm9uQ29udGV4dENoYW5nZSgpO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yZWFkT25seSAhPT0gdGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlUmVhZG9ubHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubW9kZSAhPT0gdGhpcy5lbGVtZW50Lmxhbmd1YWdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VNb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxpbmVXcmFwcGluZyAhPT0gdGhpcy5lbGVtZW50LmF1dG9XcmFwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VBdXRvV3JhcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucmVzaXplSGVpZ2h0ICE9PSB0aGlzLmVsZW1lbnQuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VIZWlnaHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5pc0NvbGxhcHNlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGb2N1c0NvZGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdGh5Tm90aWZ5U2VydmljZTogVGh5Tm90aWZ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogVGhlQ29udGV4dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoVEhFX0NPREVfTU9ERV9UT0tFTilcbiAgICAgICAgcHJpdmF0ZSBjb25maWc6IFRoZUNvZGVDb25maWdcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndGhlLWNvZGUtY29udGFpbmVyJyk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgLy8gZGVsYXkgMjBtc1xuICAgICAgICAgICAgLy8gY2NvZGVtaXJyb3IgaXMgdG9vIHNsb3dcbiAgICAgICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSwgZGVsYXkoMjApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29kZW1pcnJvcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBlZGl0IG1vZGUgY2FuIG5vdCBkZWxheVxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29kZW1pcnJvcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvZGVtaXJyb3JGb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQm91bmRzID0ge1xuICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldEVkaXRhYmxlRWxlbWVudCgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyQ29kZW1pcnJvcigpIHtcbiAgICAgICAgdGhpcy5zdGFydFJlbmRlckNvZGVtaXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLnVzZVJlYWRvbmx5KCk7XG4gICAgICAgIHRoaXMudXNlTW9kZSgpO1xuICAgICAgICB0aGlzLnVzZUF1dG9XcmFwKCk7XG4gICAgICAgIHRoaXMudXNlSGVpZ2h0KCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplQ29kZW1pcnJvckZvY3VzKCkge1xuICAgICAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQgJiYgdGhpcy5jb2RlbWlycm9yICYmIHRoaXMuY29kZW1pcnJvci5lZGl0b3IgJiYgIXRoaXMuY29kZW1pcnJvci5lZGl0b3IuaGFzRm9jdXMoKSkge1xuICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLmJsdXIodGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvZGVtaXJyb3IuZWRpdG9yLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29kZW1pcnJvci5lZGl0b3IucmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb2RlQ2hhbmdlKCRldmVudCkge1xuICAgICAgICBDb2RlRWRpdG9yLnNldENvZGVBdHRyaWJ1dGUodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCwgeyBjb250ZW50OiAkZXZlbnQgfSk7XG4gICAgfVxuXG4gICAgb25EZWxldGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pc0ZvY3VzQ29kZSA9IGZhbHNlO1xuICAgICAgICBUaGVUcmFuc2Zvcm1zLmRlbGV0ZUVsZW1lbnQodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25Db3B5KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAvLyByZW1vdmUgY29kZW1vcnJpciBzZWxlY3Rpb25cbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XG4gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgQW5ndWxhckVkaXRvci5mb2N1cyh0aGlzLmVkaXRvcik7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQpKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgICAgdGhpcy50aHlOb3RpZnlTZXJ2aWNlLnN1Y2Nlc3MoJ+WkjeWItuaIkOWKnycpO1xuICAgICAgICBBbmd1bGFyRWRpdG9yLmRlc2VsZWN0KHRoaXMuZWRpdG9yKTtcbiAgICB9XG5cbiAgICBmb2N1c0NoYW5nZShjb2RlTWlycm9yRm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAoY29kZU1pcnJvckZvY3VzZWQpIHRoaXMuaXNGb2N1c0NvZGUgPSBjb2RlTWlycm9yRm9jdXNlZDtcbiAgICB9XG5cbiAgICBvbkNoYW5nZUxhbmd1bGFnZSA9IGl0ZW0gPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgbW9kZTogaXRlbS5rZXkgfTtcbiAgICAgICAgdGhpcy5hY3RpdmVzID0gaXRlbTtcbiAgICAgICAgQ29kZUVkaXRvci5zZXRDb2RlQXR0cmlidXRlKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQsIHsgbGFuZ3VhZ2U6IGl0ZW0ua2V5IH0pO1xuICAgIH07XG5cbiAgICB1c2VNb2RlKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgbW9kZTogdGhpcy5lbGVtZW50Lmxhbmd1YWdlIH07XG4gICAgICAgIHRoaXMuYWN0aXZlcyA9IHRoaXMubWVudXMuZmluZChpID0+IGkua2V5ID09PSB0aGlzLmVsZW1lbnQubGFuZ3VhZ2UpO1xuICAgIH1cblxuICAgIHVzZUF1dG9XcmFwKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgbGluZVdyYXBwaW5nOiB0aGlzLmVsZW1lbnQuYXV0b1dyYXAgfHwgZmFsc2UgfTtcbiAgICB9XG5cbiAgICB1c2VIZWlnaHQoKSB7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnQuaGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IHRoaXMuZWxlbWVudC5oZWlnaHQ7XG4gICAgICAgICAgICB0aGlzLm1heEhlaWdodCA9IHRoaXMuZWxlbWVudC5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1c2VSZWFkb25seSgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIHJlYWRPbmx5OiB0aGlzLnJlYWRvbmx5LCBjdXJzb3JCbGlua1JhdGU6IHRoaXMucmVhZG9ubHkgPyAtMSA6IDUwMCB9O1xuICAgIH1cblxuICAgIG9uUmVzaXplKHsgaGVpZ2h0IH06IFRoeVJlc2l6ZUV2ZW50KSB7XG4gICAgICAgIHRoaXMucmVzaXplSGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICB0aGlzLm1heEhlaWdodCA9IGhlaWdodDtcbiAgICB9XG5cbiAgICBvbkVuZFJlc2l6ZSgpIHtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCkpO1xuICAgICAgICBDb2RlRWRpdG9yLnNldENvZGVBdHRyaWJ1dGUodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCwgeyBoZWlnaHQ6IHRoaXMucmVzaXplSGVpZ2h0IH0pO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlV3JhcCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgbGluZVdyYXBwaW5nOiB2YWx1ZSB8fCBmYWxzZSB9O1xuICAgICAgICBDb2RlRWRpdG9yLnNldENvZGVBdHRyaWJ1dGUodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCwgeyBhdXRvV3JhcDogdmFsdWUgPyB2YWx1ZSA6IG51bGwgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiIGNsYXNzPVwidGhlLWNvZGUtYmxvY2stb3BlcmF0aW9uXCIgKm5nSWY9XCJpc0ZvY3VzQ29kZSAmJiAhb3B0aW9ucy5yZWFkT25seVwiPlxuICAgIDx0aHktaWNvbi1uYXY+XG4gICAgICAgIDx0aGUtdG9vbGJhci1kcm9wZG93biBbbWVudXNdPVwibWVudXNcIiBbaXRlbV09XCJhY3RpdmVzXCIgW2l0ZW1Nb3VzZWRvd25IYW5kbGVdPVwib25DaGFuZ2VMYW5ndWxhZ2VcIj4gPC90aGUtdG9vbGJhci1kcm9wZG93bj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICAgICAgICAgdGh5SWNvbk5hdkxpbmtcbiAgICAgICAgICAgIHRoeUljb25OYXZMaW5rSWNvbj1cImNvcHlcIlxuICAgICAgICAgICAgdGh5VG9vbHRpcD1cIuWkjeWItlwiXG4gICAgICAgICAgICB0aHlUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25Db3B5KCRldmVudClcIlxuICAgICAgICA+PC9hPlxuICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAgICAgICB0aHlJY29uTmF2TGlua1xuICAgICAgICAgICAgdGh5SWNvbk5hdkxpbmtJY29uPVwidHJhc2hcIlxuICAgICAgICAgICAgdGh5VG9vbHRpcD1cIuWIoOmZpFwiXG4gICAgICAgICAgICBjbGFzcz1cInJlbW92ZS1saW5rXCJcbiAgICAgICAgICAgIHRoeVRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbkRlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvYT5cbiAgICAgICAgPG5hdi1zcGxpdC1saW5lIFttb2RlXT1cIlRvb2xiYXJJdGVtTW9kZS52ZXJ0aWNhbFwiPjwvbmF2LXNwbGl0LWxpbmU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXV0by13cmFwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuPuiHquWKqOaNouihjDwvc3Bhbj5cbiAgICAgICAgICAgIDx0aHktc3dpdGNoXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvLXdyYXAtYnRuIGQtZmxleFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb25zLmxpbmVXcmFwcGluZ1wiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2VXcmFwKCRldmVudClcIlxuICAgICAgICAgICAgICAgIHRoeVNpemU9XCJzbVwiXG4gICAgICAgICAgICA+PC90aHktc3dpdGNoPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC90aHktaWNvbi1uYXY+XG48L2Rpdj5cblxuPHNsYXRlLWNoaWxkcmVuIFtjaGlsZHJlbl09XCJjaGlsZHJlblwiIFtjb250ZXh0XT1cImNoaWxkcmVuQ29udGV4dFwiIFt2aWV3Q29udGV4dF09XCJ2aWV3Q29udGV4dFwiPjwvc2xhdGUtY2hpbGRyZW4+XG48ZGl2XG4gICAgdGh5UmVzaXphYmxlXG4gICAgW3RoeU1pbkhlaWdodF09XCI0MlwiXG4gICAgW3RoeUJvdW5kc109XCJyZXNpemVCb3VuZHNcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicmVzaXplSGVpZ2h0XCJcbiAgICAodGh5UmVzaXplKT1cIm9uUmVzaXplKCRldmVudClcIlxuICAgICh0aHlSZXNpemVFbmQpPVwib25FbmRSZXNpemUoKVwiXG4gICAgY2xhc3M9XCJyZXNpemUtY29kZS1jb250YWluZXJcIlxuPlxuICAgIDxuZy1jb2RlbWlycm9yXG4gICAgICAgICpuZ0lmPVwic3RhcnRSZW5kZXJDb2RlbWlycm9yXCJcbiAgICAgICAgI2NvZGVtaXJyb3JcbiAgICAgICAgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIlxuICAgICAgICBjbGFzcz1cIm5nLWNvZGVtaXJyb3Itd3JhcHBlclwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgbWF4SGVpZ2h0OiBtYXhIZWlnaHQgPiAwID8gbWF4SGVpZ2h0ICsgJ3B4JyA6ICdhdXRvJyB9XCJcbiAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cImNvZGVcIlxuICAgICAgICBbZGVsYXlSZWZyZXNoVGltZV09XCIzMDBcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjb2RlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZm9jdXNDaGFuZ2UpPVwiZm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFthdXRvTWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiXG4gICAgPlxuICAgIDwvbmctY29kZW1pcnJvcj5cbiAgICA8dGh5LXJlc2l6ZS1oYW5kbGUgdGh5RGlyZWN0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJjb2RlLXJlc2l6ZS1pY29uXCIgKm5nSWY9XCJpc0ZvY3VzQ29kZSAmJiAhb3B0aW9ucy5yZWFkT25seVwiPjwvdGh5LXJlc2l6ZS1oYW5kbGU+XG48L2Rpdj5cbiJdfQ==
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvY29kZS9jb2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBR1QsdUJBQXVCLEVBRXZCLFNBQVMsRUFHVCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUNSLG1CQUFtQixFQUVuQixlQUFlLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFzQix1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSx1QkFBNEM7SUFtRDlFLFlBQ1csVUFBc0IsRUFDdEIsR0FBc0IsRUFDckIsZ0JBQWtDLEVBQ2xDLGNBQWlDLEVBQ2pDLE1BQWMsRUFFZCxNQUFxQjtRQUU3QixLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBUmhCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUVkLFdBQU0sR0FBTixNQUFNLENBQWU7UUF6RGpDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixpQkFBWSxHQUFHLFlBQVksQ0FBQztRQUM1QixjQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLFVBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBQ0gsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0Isb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFDbEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFFNUIsWUFBTyxHQUFHO1lBQ04sSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztZQUN2QixXQUFXLEVBQUUsS0FBSztZQUNsQixRQUFRLEVBQUUsS0FBSztZQUNmLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbEUsZUFBZSxFQUFFLEdBQUc7U0FDdkIsQ0FBQztRQUVGLFlBQU8sR0FBdUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1QyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQStIcEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sbUNBQVEsSUFBSSxDQUFDLE9BQU8sS0FBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDO0lBOUZGLENBQUM7SUFuQ0QsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0lBS0QsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDdEI7WUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDbEI7WUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDdEI7WUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNwQjtTQUNKO0lBQ0wsQ0FBQztJQWNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDO2lCQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDOUIsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNmLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxnQkFBZ0IsR0FDbEIsSUFBSSxDQUFDLFdBQVc7b0JBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLDJCQUEyQixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDLENBQUM7Z0JBQ3hHLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDLENBQUM7Z0JBQzlHLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsYUFBYTtZQUNiLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILDBCQUEwQjtZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHO29CQUNoQixhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRTtpQkFDMUQsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCx5QkFBeUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDckcsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDcEM7WUFDTCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDWDtJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBTTtRQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWlCO1FBQ3RCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBaUI7UUFDcEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4Qiw4QkFBOEI7UUFDOUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hDLElBQUksU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDMUIsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRixRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxpQkFBMEI7UUFDbEMsSUFBSSxpQkFBaUIsRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNMLENBQUM7SUFRRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLE9BQU8sbUNBQVEsSUFBSSxDQUFDLE9BQU8sS0FBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE9BQU8sbUNBQVEsSUFBSSxDQUFDLE9BQU8sS0FBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxHQUFFLENBQUM7SUFDckYsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUN4QztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE9BQU8sbUNBQVEsSUFBSSxDQUFDLE9BQU8sS0FBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRSxDQUFDO0lBQzNHLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQWtCO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1AsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRixVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxtQ0FBUSxJQUFJLENBQUMsT0FBTyxLQUFFLFlBQVksRUFBRSxLQUFLLElBQUksS0FBSyxHQUFFLENBQUM7UUFDakUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs2R0FwTVEsZ0JBQWdCLG9LQXlEYixtQkFBbUI7aUdBekR0QixnQkFBZ0IseUlBOEJRLG1CQUFtQixvRENyRXhELG9wRkE4REE7MkZEdkJhLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLHVCQUF1QjtvQkFDcEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzswQkEwRFEsTUFBTTsyQkFBQyxtQkFBbUI7NENBMUIvQixVQUFVO3NCQURULFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBOZ1pvbmUsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeU5vdGlmeVNlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL25vdGlmeSc7XG5pbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBDb2RlTWlycm9yQ29tcG9uZW50IH0gZnJvbSAnbmctY29kZW1pcnJvcic7XG5pbXBvcnQge1xuICAgIENPREVNSVJST1JfUEFERElOR19UT1AsXG4gICAgQ09ERV9NT0RFUyxcbiAgICBEcm9wZG93bk1vZGUsXG4gICAgQ29kZU1vZGUsXG4gICAgVEhFX0NPREVfTU9ERV9UT0tFTixcbiAgICBUaGVDb2RlQ29uZmlnLFxuICAgIFRvb2xiYXJJdGVtTW9kZVxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGVmYXVsdFRvb2xiYXJJdGVtLCBUaGVCYXNlRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgQ29kZUVkaXRvciB9IGZyb20gJy4vY29kZS5lZGl0b3InO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaHlSZXNpemVFdmVudCB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Rpdlt0aGVDb2RlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRoZUNvZGVDb21wb25lbnQgZXh0ZW5kcyBUaGVCYXNlRWxlbWVudENvbXBvbmVudDxDb2RlRWxlbWVudCwgRWRpdG9yPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBzdGFydFJlbmRlckNvZGVtaXJyb3IgPSBmYWxzZTtcbiAgICBkcm9wZG93bk1vZGUgPSBEcm9wZG93bk1vZGU7XG4gICAgbWF4SGVpZ2h0ID0gdGhpcy5jb25maWcubW9kZSA9PT0gQ29kZU1vZGUuZGVmYXVsdCA/IDM1MCAtIENPREVNSVJST1JfUEFERElOR19UT1AgKiAyIDogMDtcbiAgICBtZW51cyA9IENPREVfTU9ERVMubWFwKGl0ZW0gPT4ge1xuICAgICAgICByZXR1cm4geyBrZXk6IGl0ZW0udmFsdWUsIG5hbWU6IGl0ZW0uc2hvd05hbWUgfTtcbiAgICB9KTtcbiAgICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgVG9vbGJhckl0ZW1Nb2RlID0gVG9vbGJhckl0ZW1Nb2RlO1xuICAgIGlzSGlnaHRMaWdodCA9IGZhbHNlO1xuICAgIHJlc2l6ZUhlaWdodDogbnVtYmVyID0gbnVsbDtcblxuICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIG1vZGU6IHRoaXMubWVudXNbMF0ua2V5LFxuICAgICAgICBsaW5lTnVtYmVyczogZmFsc2UsXG4gICAgICAgIHJlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgYXV0b2ZvY3VzOiBmYWxzZSxcbiAgICAgICAgbGluZVdpc2VDb3B5Q3V0OiB0cnVlLFxuICAgICAgICBsaW5lV3JhcHBpbmc6IHRoaXMuY29uZmlnLm1vZGUgPT09IENvZGVNb2RlLmRlZmF1bHQgPyBmYWxzZSA6IHRydWUsXG4gICAgICAgIGN1cnNvckJsaW5rUmF0ZTogNTAwXG4gICAgfTtcblxuICAgIGFjdGl2ZXM6IERlZmF1bHRUb29sYmFySXRlbSA9IHRoaXMubWVudXNbMF07XG5cbiAgICByZXNpemVCb3VuZHMgPSBudWxsO1xuXG4gICAgZ2V0IGNvZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY29udGVudDtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdjb2RlbWlycm9yJywgeyByZWFkOiBDb2RlTWlycm9yQ29tcG9uZW50LCBzdGF0aWM6IGZhbHNlIH0pXG4gICAgY29kZW1pcnJvcjogQ29kZU1pcnJvckNvbXBvbmVudDtcblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgc3VwZXIub25Db250ZXh0Q2hhbmdlKCk7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJlYWRPbmx5ICE9PSB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VSZWFkb25seSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5tb2RlICE9PSB0aGlzLmVsZW1lbnQubGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZU1vZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubGluZVdyYXBwaW5nICE9PSB0aGlzLmVsZW1lbnQuYXV0b1dyYXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZUF1dG9XcmFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemVIZWlnaHQgIT09IHRoaXMuZWxlbWVudC5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZUhlaWdodCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSB0aHlOb3RpZnlTZXJ2aWNlOiBUaHlOb3RpZnlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBUaGVDb250ZXh0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChUSEVfQ09ERV9NT0RFX1RPS0VOKVxuICAgICAgICBwcml2YXRlIGNvbmZpZzogVGhlQ29kZUNvbmZpZ1xuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0Jsb2NrT3BlcmF0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb2xsYXBzZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudGhlLWNvZGUtYmxvY2stb3BlcmF0aW9uJykuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDb2RlbWlycm9yID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uZy1jb2RlbWlycm9yJykuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0hpZ2h0TGlnaHQgPSAhaXNDb2RlbWlycm9yICYmICFpc0Jsb2NrT3BlcmF0aW9uO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndGhlLWNvZGUtY29udGFpbmVyJyk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgLy8gZGVsYXkgMjBtc1xuICAgICAgICAgICAgLy8gY2NvZGVtaXJyb3IgaXMgdG9vIHNsb3dcbiAgICAgICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSwgZGVsYXkoMjApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29kZW1pcnJvcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBlZGl0IG1vZGUgY2FuIG5vdCBkZWxheVxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29kZW1pcnJvcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvZGVtaXJyb3JGb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQm91bmRzID0ge1xuICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldEVkaXRhYmxlRWxlbWVudCgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyQ29kZW1pcnJvcigpIHtcbiAgICAgICAgdGhpcy5zdGFydFJlbmRlckNvZGVtaXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLnVzZVJlYWRvbmx5KCk7XG4gICAgICAgIHRoaXMudXNlTW9kZSgpO1xuICAgICAgICB0aGlzLnVzZUF1dG9XcmFwKCk7XG4gICAgICAgIHRoaXMudXNlSGVpZ2h0KCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplQ29kZW1pcnJvckZvY3VzKCkge1xuICAgICAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQgJiYgdGhpcy5jb2RlbWlycm9yICYmIHRoaXMuY29kZW1pcnJvci5lZGl0b3IgJiYgIXRoaXMuY29kZW1pcnJvci5lZGl0b3IuaGFzRm9jdXMoKSkge1xuICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLmJsdXIodGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvZGVtaXJyb3IuZWRpdG9yLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29kZW1pcnJvci5lZGl0b3IucmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb2RlQ2hhbmdlKCRldmVudCkge1xuICAgICAgICB0aGlzLmlzSGlnaHRMaWdodCA9IGZhbHNlO1xuICAgICAgICBDb2RlRWRpdG9yLnNldENvZGVBdHRyaWJ1dGUodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCwgeyBjb250ZW50OiAkZXZlbnQgfSk7XG4gICAgfVxuXG4gICAgb25EZWxldGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgVGhlVHJhbnNmb3Jtcy5kZWxldGVFbGVtZW50KHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIG9uQ29weShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy8gcmVtb3ZlIGNvZGVtb3JyaXIgc2VsZWN0aW9uXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIEFuZ3VsYXJFZGl0b3IuZm9jdXModGhpcy5lZGl0b3IpO1xuICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdCh0aGlzLmVkaXRvciwgQW5ndWxhckVkaXRvci5maW5kUGF0aCh0aGlzLmVkaXRvciwgdGhpcy5lbGVtZW50KSk7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICAgIHRoaXMudGh5Tm90aWZ5U2VydmljZS5zdWNjZXNzKCflpI3liLbmiJDlip8nKTtcbiAgICAgICAgQW5ndWxhckVkaXRvci5kZXNlbGVjdCh0aGlzLmVkaXRvcik7XG4gICAgfVxuXG4gICAgZm9jdXNDaGFuZ2UoY29kZU1pcnJvckZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGNvZGVNaXJyb3JGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmlzSGlnaHRMaWdodCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaGFuZ2VMYW5ndWxhZ2UgPSBpdGVtID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIG1vZGU6IGl0ZW0ua2V5IH07XG4gICAgICAgIHRoaXMuYWN0aXZlcyA9IGl0ZW07XG4gICAgICAgIENvZGVFZGl0b3Iuc2V0Q29kZUF0dHJpYnV0ZSh0aGlzLmVkaXRvciwgdGhpcy5lbGVtZW50LCB7IGxhbmd1YWdlOiBpdGVtLmtleSB9KTtcbiAgICB9O1xuXG4gICAgdXNlTW9kZSgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIG1vZGU6IHRoaXMuZWxlbWVudC5sYW5ndWFnZSB9O1xuICAgICAgICB0aGlzLmFjdGl2ZXMgPSB0aGlzLm1lbnVzLmZpbmQoaSA9PiBpLmtleSA9PT0gdGhpcy5lbGVtZW50Lmxhbmd1YWdlKTtcbiAgICB9XG5cbiAgICB1c2VBdXRvV3JhcCgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIGxpbmVXcmFwcGluZzogdGhpcy5lbGVtZW50LmF1dG9XcmFwIHx8IGZhbHNlIH07XG4gICAgfVxuXG4gICAgdXNlSGVpZ2h0KCkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50LmhlaWdodCkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXNlUmVhZG9ubHkoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCByZWFkT25seTogdGhpcy5yZWFkb25seSwgY3Vyc29yQmxpbmtSYXRlOiB0aGlzLnJlYWRvbmx5ID8gLTEgOiA1MDAgfTtcbiAgICB9XG5cbiAgICBvblJlc2l6ZSh7IGhlaWdodCB9OiBUaHlSZXNpemVFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSBoZWlnaHQ7XG4gICAgfVxuXG4gICAgb25FbmRSZXNpemUoKSB7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQpKTtcbiAgICAgICAgQ29kZUVkaXRvci5zZXRDb2RlQXR0cmlidXRlKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQsIHsgaGVpZ2h0OiB0aGlzLnJlc2l6ZUhlaWdodCB9KTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZVdyYXAodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0hpZ2h0TGlnaHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIGxpbmVXcmFwcGluZzogdmFsdWUgfHwgZmFsc2UgfTtcbiAgICAgICAgQ29kZUVkaXRvci5zZXRDb2RlQXR0cmlidXRlKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQsIHsgYXV0b1dyYXA6IHZhbHVlID8gdmFsdWUgOiBudWxsIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIiBjbGFzcz1cInRoZS1jb2RlLWJsb2NrLW9wZXJhdGlvblwiICpuZ0lmPVwiaXNDb2xsYXBzZWQgJiYgY29kZW1pcnJvciAmJiAhb3B0aW9ucy5yZWFkT25seVwiPlxuICAgIDx0aHktaWNvbi1uYXY+XG4gICAgICAgIDx0aGUtdG9vbGJhci1kcm9wZG93biBbbWVudXNdPVwibWVudXNcIiBbaXRlbV09XCJhY3RpdmVzXCIgW2l0ZW1Nb3VzZWRvd25IYW5kbGVdPVwib25DaGFuZ2VMYW5ndWxhZ2VcIj4gPC90aGUtdG9vbGJhci1kcm9wZG93bj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICAgICAgICAgdGh5SWNvbk5hdkxpbmtcbiAgICAgICAgICAgIHRoeUljb25OYXZMaW5rSWNvbj1cImNvcHlcIlxuICAgICAgICAgICAgdGh5VG9vbHRpcD1cIuWkjeWItlwiXG4gICAgICAgICAgICB0aHlUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25Db3B5KCRldmVudClcIlxuICAgICAgICA+PC9hPlxuICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAgICAgICB0aHlJY29uTmF2TGlua1xuICAgICAgICAgICAgdGh5SWNvbk5hdkxpbmtJY29uPVwidHJhc2hcIlxuICAgICAgICAgICAgdGh5VG9vbHRpcD1cIuWIoOmZpFwiXG4gICAgICAgICAgICBjbGFzcz1cInJlbW92ZS1saW5rXCJcbiAgICAgICAgICAgIHRoeVRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbkRlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvYT5cbiAgICAgICAgPG5hdi1zcGxpdC1saW5lIFttb2RlXT1cIlRvb2xiYXJJdGVtTW9kZS52ZXJ0aWNhbFwiPjwvbmF2LXNwbGl0LWxpbmU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXV0by13cmFwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuPuiHquWKqOaNouihjDwvc3Bhbj5cbiAgICAgICAgICAgIDx0aHktc3dpdGNoXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvLXdyYXAtYnRuIGQtZmxleFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb25zLmxpbmVXcmFwcGluZ1wiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2VXcmFwKCRldmVudClcIlxuICAgICAgICAgICAgICAgIHRoeVNpemU9XCJzbVwiXG4gICAgICAgICAgICA+PC90aHktc3dpdGNoPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC90aHktaWNvbi1uYXY+XG48L2Rpdj5cblxuPHNsYXRlLWNoaWxkcmVuIFtjaGlsZHJlbl09XCJjaGlsZHJlblwiIFtjb250ZXh0XT1cImNoaWxkcmVuQ29udGV4dFwiIFt2aWV3Q29udGV4dF09XCJ2aWV3Q29udGV4dFwiPjwvc2xhdGUtY2hpbGRyZW4+XG5cbjwhLS0g5Y+q6K+75qih5byP5LiLQ29kZU1pcnJvci1zaXplcumrmOW6puavlOe8lui+keaooeW8j+S4i+WkmjJweO+8jOiuvue9rnRoeU1pbkhlaWdodOS4ujQ2cHjpmLLmraLmi5bmi73liLDmnIDlsI/pq5jluqbml7blj6ror7vmqKHlvI/kuIvlh7rnjrDmu5rliqjmnaEgIC0tPlxuPGRpdlxuICAgIHRoeVJlc2l6YWJsZVxuICAgIFt0aHlNaW5IZWlnaHRdPVwiNDZcIlxuICAgIFt0aHlCb3VuZHNdPVwicmVzaXplQm91bmRzXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInJlc2l6ZUhlaWdodFwiXG4gICAgKHRoeVJlc2l6ZSk9XCJvblJlc2l6ZSgkZXZlbnQpXCJcbiAgICAodGh5UmVzaXplRW5kKT1cIm9uRW5kUmVzaXplKClcIlxuICAgIGNsYXNzPVwicmVzaXplLWNvZGUtY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7IGZvY3VzOiBpc0NvbGxhcHNlZCwgcmVhZG9ubHk6IG9wdGlvbnMucmVhZE9ubHksIGFjdGl2ZTogaXNIaWdodExpZ2h0ICYmIGlzQ29sbGFwc2VkIH1cIlxuPlxuICAgIDxuZy1jb2RlbWlycm9yXG4gICAgICAgICpuZ0lmPVwic3RhcnRSZW5kZXJDb2RlbWlycm9yXCJcbiAgICAgICAgI2NvZGVtaXJyb3JcbiAgICAgICAgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIlxuICAgICAgICBjbGFzcz1cIm5nLWNvZGVtaXJyb3Itd3JhcHBlclwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgbWF4SGVpZ2h0OiBtYXhIZWlnaHQgPiAwID8gbWF4SGVpZ2h0ICsgJ3B4JyA6ICdhdXRvJyB9XCJcbiAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cImNvZGVcIlxuICAgICAgICBbZGVsYXlSZWZyZXNoVGltZV09XCIzMDBcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjb2RlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZm9jdXNDaGFuZ2UpPVwiZm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFthdXRvTWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiXG4gICAgPlxuICAgIDwvbmctY29kZW1pcnJvcj5cbiAgICA8dGh5LXJlc2l6ZS1oYW5kbGUgdGh5RGlyZWN0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJjb2RlLXJlc2l6ZS1pY29uXCIgKm5nSWY9XCJpc0NvbGxhcHNlZCAmJiAhb3B0aW9ucy5yZWFkT25seVwiPjwvdGh5LXJlc2l6ZS1oYW5kbGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -36,7 +36,7 @@ export const withDeserializeMd = (options) => (editor) => {
|
|
|
36
36
|
editor,
|
|
37
37
|
conversion: () => {
|
|
38
38
|
try {
|
|
39
|
-
const html = marked(plainFragment, { gfm: true });
|
|
39
|
+
const html = marked(plainFragment.replace(/\n```/g, "\n\n```"), { gfm: true });
|
|
40
40
|
const htmlDom = new DOMParser().parseFromString(html, 'text/html');
|
|
41
41
|
const fragment = TheiaConverter.convertToTheia(Array.from(htmlDom.body.children));
|
|
42
42
|
if (!isUnformatted(fragment)) {
|
|
@@ -112,4 +112,4 @@ const isMarkdownStynx = content => {
|
|
|
112
112
|
];
|
|
113
113
|
return regexps.some(regexp => regexp.test(content));
|
|
114
114
|
};
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemUtbWQucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvZGVzZXJpYWxpemVycy9kZXNlcmlhbGl6ZS1tZC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBeUIsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE9BQTZCLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7SUFDbkYsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFekMsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtRQUN4QyxhQUFhLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsU0FB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QyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUM7SUFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztJQUM3QyxNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDO0lBQzVDLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDO0lBQzNDLE1BQU0sbUJBQW1CLEdBQUcsdUJBQXVCLENBQUM7SUFDcEQsTUFBTSxrQkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUNsRCxNQUFNLGdCQUFnQixHQUFHLHlCQUF5QixDQUFDO0lBQ25ELE1BQU0sY0FBYyxHQUFHLG1FQUFtRSxDQUFDO0lBQzNGLGNBQWM7SUFDZCxNQUFNLEtBQUssR0FDUCwrSUFBK0ksQ0FBQztJQUNwSixNQUFNLE9BQU8sR0FBRztRQUNaLGVBQWU7UUFDZixVQUFVO1FBQ1YsU0FBUztRQUNULFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLGdCQUFnQjtRQUNoQixLQUFLO0tBQ1IsQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBOb2RlLCBUZXh0LCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IG1hcmtlZCBmcm9tICdtYXJrZWQnO1xuaW1wb3J0IHsgVGhlaWFDb252ZXJ0ZXIgfSBmcm9tICdAYXRpbmMvc2VsZW5lJztcbmltcG9ydCB7IFRoeVBvcG92ZXIgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgQ0xJUEJPQVJEX0ZPUk1BVF9LRVksIEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRoZUNvbnZlcnNpb25IaW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb252ZXJzaW9uLWhpbnQvY29udmVyc2lvbi1oaW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUSEVfRURJVE9SX0NPTlZFUlNJT05fSElOVF9SRUYsIGdldFRvb2xiYXJDbGFzcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IHdpdGhEZXNlcmlhbGl6ZU1kID0gKG9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiAoZWRpdG9yOiBFZGl0b3IpID0+IHtcbiAgICBjb25zdCB7IGluc2VydERhdGEsIG9uS2V5ZG93biB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLm9uS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBUaGVUcmFuc2Zvcm1zLmNsb3NlQ29udmVyc2lvbkhpbnQoZWRpdG9yKTtcbiAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmluc2VydERhdGEgPSAoZGF0YTogRGF0YVRyYW5zZmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHBvcG92ZXIgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoeVBvcG92ZXIpO1xuICAgICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gZWRpdG9yLmluamVjdG9yLmdldChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgY29uc3QgY2RyID0gZWRpdG9yLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgY29uc3QgcGxhaW5GcmFnbWVudCA9IGRhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xuICAgICAgICBjb25zdCBzbGF0ZUZyYWdtZW50ID0gZGF0YS5nZXREYXRhKGBhcHBsaWNhdGlvbi8ke0NMSVBCT0FSRF9GT1JNQVRfS0VZfWApO1xuICAgICAgICBjb25zdCBvbGRSYW5nZSA9IGVkaXRvci5zZWxlY3Rpb247XG4gICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuXG4gICAgICAgIGlmIChwbGFpbkZyYWdtZW50ICYmIGlzTWFya2Rvd25TdHlueChwbGFpbkZyYWdtZW50KSAmJiAhc2xhdGVGcmFnbWVudCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3ZlcmxheSA9IGVkaXRvci5pbmplY3Rvci5nZXQoT3ZlcmxheSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYm9keUVsZW1lbnQgPSBkb2N1bWVudC5ib2R5O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb2xiYXJDbGFzcyA9IGdldFRvb2xiYXJDbGFzcyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb2xiYXJFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7dG9vbGJhckNsYXNzfWApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IHRvb2xiYXJFbGVtZW50ID8gdG9vbGJhckVsZW1lbnQgOiBib2R5RWxlbWVudDtcbiAgICAgICAgICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSB0b29sYmFyRWxlbWVudCA/ICd0b3AnIDogJ3RvcFJpZ2h0JztcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhpbnRQb3B2ZXJSZWYgPSBwb3BvdmVyLm9wZW4oVGhlQ29udmVyc2lvbkhpbnRDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJzaW9uOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaHRtbCA9IG1hcmtlZChwbGFpbkZyYWdtZW50LCB7IGdmbTogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaHRtbERvbSA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoaHRtbCwgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IFRoZWlhQ29udmVydGVyLmNvbnZlcnRUb1RoZWlhKEFycmF5LmZyb20oaHRtbERvbS5ib2R5LmNoaWxkcmVuKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1VuZm9ybWF0dGVkKGZyYWdtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5jbG9zZUNvbnZlcnNpb25IaW50KGVkaXRvcik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvci51bmRvKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgb2xkUmFuZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0RnJhZ21lbnQoZWRpdG9yLCBmcmFnbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5ndWxhckVkaXRvci5mb2N1cyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLmNsb3NlQ29udmVyc2lvbkhpbnQoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogLTEwMCxcbiAgICAgICAgICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZHJvcENsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VPbk5hdmlnYXRpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIFRIRV9FRElUT1JfQ09OVkVSU0lPTl9ISU5UX1JFRi5zZXQoZWRpdG9yLCBoaW50UG9wdmVyUmVmKTtcbiAgICAgICAgICAgICAgICBjZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGluc2VydERhdGEoZGF0YSk7XG4gICAgfTtcbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuY29uc3QgaXNVbmZvcm1hdHRlZCA9IChlbGVtZW50czogRWxlbWVudFtdKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRzLmV2ZXJ5KFxuICAgICAgICBlbGVtZW50ID0+XG4gICAgICAgICAgICBlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5kZWZhdWx0ICYmXG4gICAgICAgICAgICBlbGVtZW50LmNoaWxkcmVuLmV2ZXJ5KChub2RlOiBOb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRleHQuaXNUZXh0KG5vZGUpICYmIE9iamVjdC5rZXlzKG5vZGUpLmxlbmd0aCA9PT0gMTtcbiAgICAgICAgICAgIH0pXG4gICAgKTtcbn07XG5cbmNvbnN0IGlzTWFya2Rvd25TdHlueCA9IGNvbnRlbnQgPT4ge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9DaGFsYXJhbmdlbG8vcGFyc2UtbWQtanMvYmxvYi9tYXN0ZXIvcGFyc2VtZC5qc1xuICAgIGNvbnN0IGNvZGVCbG9ja1JlZ2V4ID0gLygoXFxuXFx0KSguKikpKy9nO1xuICAgIGNvbnN0IGlubGluZUNvZGVSZWdleCA9IC8oYCkoLio/KVxcMS9nO1xuICAgIGNvbnN0IGltYWdlUmVnZXggPSAvIVxcWyhbXlxcW10rKVxcXVxcKChbXlxcKV0rKVxcKS9nO1xuICAgIGNvbnN0IGxpbmtSZWdleCA9IC9cXFsoW15cXFtdKylcXF1cXCgoW15cXCldKylcXCkvZztcbiAgICBjb25zdCBoZWFkaW5nUmVnZXggPSAvKCMrXFxzKikoLiopL2c7XG4gICAgY29uc3QgYm9sZEl0YWxpY3NSZWdleCA9IC8oXFwqezEsMn0pKFxcUyspXFwxL2c7XG4gICAgY29uc3Qgc3RyaWtldGhyb3VnaFJlZ2V4ID0gLyhcXH5cXH4pKC4qPylcXDEvZztcbiAgICBjb25zdCBibG9ja3F1b3RlUmVnZXggPSAvXFxuKCZndDt8XFw+KSguKikvZztcbiAgICBjb25zdCBob3Jpem9udGFsUnVsZVJlZ2V4ID0gL1xcbigoXFwtezMsfSl8KD17Myx9KSkvZztcbiAgICBjb25zdCB1bm9yZGVyZWRMaXN0UmVnZXggPSAvKFxcblxccyooXFwtfFxcKylcXHMuKikrL2c7XG4gICAgY29uc3Qgb3JkZXJlZExpc3RSZWdleCA9IC8oXFxuXFxzKihbMC05XStcXC4pXFxzLiopKy9nO1xuICAgIGNvbnN0IHBhcmFncmFwaFJlZ2V4ID0gL1xcbisoPyE8cHJlPikoPyE8aCkoPyE8dWw+KSg/ITxibG9ja3F1b3RlKSg/ITxocikoPyFcXHQpKFteXFxuXSspXFxuL2c7XG4gICAgLy8gZnJvbSBtYXJrZWRcbiAgICBjb25zdCB0YWJsZSA9XG4gICAgICAgIC9eXFxzKihbXlxcc10uKlxcfC4qKVxcc3swLDN9KD86XFx8XFxzKik/KDo/LSs6P1xccyooPzpcXHxcXHMqOj8tKzo/XFxzKikqKVxcfD8oPzpcXHMqKCg/Oig/IXxocnxoZWFkaW5nfGJsb2NrcXVvdGV8Y29kZXxmZW5jZXN8bGlzdHxodG1sKS4qKD86fCQpKSopKnwkKS9nO1xuICAgIGNvbnN0IHJlZ2V4cHMgPSBbXG4gICAgICAgIGlubGluZUNvZGVSZWdleCxcbiAgICAgICAgaW1hZ2VSZWdleCxcbiAgICAgICAgbGlua1JlZ2V4LFxuICAgICAgICBoZWFkaW5nUmVnZXgsXG4gICAgICAgIGJvbGRJdGFsaWNzUmVnZXgsXG4gICAgICAgIHN0cmlrZXRocm91Z2hSZWdleCxcbiAgICAgICAgYmxvY2txdW90ZVJlZ2V4LFxuICAgICAgICBob3Jpem9udGFsUnVsZVJlZ2V4LFxuICAgICAgICB1bm9yZGVyZWRMaXN0UmVnZXgsXG4gICAgICAgIG9yZGVyZWRMaXN0UmVnZXgsXG4gICAgICAgIHRhYmxlXG4gICAgXTtcbiAgICByZXR1cm4gcmVnZXhwcy5zb21lKHJlZ2V4cCA9PiByZWdleHAudGVzdChjb250ZW50KSk7XG59O1xuIl19
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemUtbWQucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvZGVzZXJpYWxpemVycy9kZXNlcmlhbGl6ZS1tZC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBeUIsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE9BQTZCLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7SUFDbkYsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFekMsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtRQUN4QyxhQUFhLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsU0FB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Q2hELE1BQU0sU0FBUyxHQUFHLDJCQUEyQixDQUFDO0lBQzlDLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQztJQUNwQyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDO0lBQzdDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7SUFDNUMsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUM7SUFDM0MsTUFBTSxtQkFBbUIsR0FBRyx1QkFBdUIsQ0FBQztJQUNwRCxNQUFNLGtCQUFrQixHQUFHLHNCQUFzQixDQUFDO0lBQ2xELE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQUM7SUFDbkQsTUFBTSxjQUFjLEdBQUcsbUVBQW1FLENBQUM7SUFDM0YsY0FBYztJQUNkLE1BQU0sS0FBSyxHQUNQLCtJQUErSSxDQUFDO0lBQ3BKLE1BQU0sT0FBTyxHQUFHO1FBQ1osZUFBZTtRQUNmLFVBQVU7UUFDVixTQUFTO1FBQ1QsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLEtBQUs7S0FDUixDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIE5vZGUsIFRleHQsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgbWFya2VkIGZyb20gJ21hcmtlZCc7XG5pbXBvcnQgeyBUaGVpYUNvbnZlcnRlciB9IGZyb20gJ0BhdGluYy9zZWxlbmUnO1xuaW1wb3J0IHsgVGh5UG9wb3ZlciB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBDTElQQk9BUkRfRk9STUFUX0tFWSwgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGhlQ29udmVyc2lvbkhpbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2NvbnZlcnNpb24taGludC9jb252ZXJzaW9uLWhpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRIRV9FRElUT1JfQ09OVkVSU0lPTl9ISU5UX1JFRiwgZ2V0VG9vbGJhckNsYXNzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3Qgd2l0aERlc2VyaWFsaXplTWQgPSAob3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgIGNvbnN0IHsgaW5zZXJ0RGF0YSwgb25LZXlkb3duIH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0RGF0YSA9IChkYXRhOiBEYXRhVHJhbnNmZXIpID0+IHtcbiAgICAgICAgY29uc3QgcG9wb3ZlciA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGh5UG9wb3Zlcik7XG4gICAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICBjb25zdCBjZHIgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgICAgICBjb25zdCBwbGFpbkZyYWdtZW50ID0gZGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgICAgIGNvbnN0IHNsYXRlRnJhZ21lbnQgPSBkYXRhLmdldERhdGEoYGFwcGxpY2F0aW9uLyR7Q0xJUEJPQVJEX0ZPUk1BVF9LRVl9YCk7XG4gICAgICAgIGNvbnN0IG9sZFJhbmdlID0gZWRpdG9yLnNlbGVjdGlvbjtcbiAgICAgICAgVGhlVHJhbnNmb3Jtcy5jbG9zZUNvbnZlcnNpb25IaW50KGVkaXRvcik7XG5cbiAgICAgICAgaWYgKHBsYWluRnJhZ21lbnQgJiYgaXNNYXJrZG93blN0eW54KHBsYWluRnJhZ21lbnQpICYmICFzbGF0ZUZyYWdtZW50KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvdmVybGF5ID0gZWRpdG9yLmluamVjdG9yLmdldChPdmVybGF5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IGRvY3VtZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbGJhckNsYXNzID0gZ2V0VG9vbGJhckNsYXNzKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbGJhckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHt0b29sYmFyQ2xhc3N9YCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gdG9vbGJhckVsZW1lbnQgPyB0b29sYmFyRWxlbWVudCA6IGJvZHlFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlbWVudCA9IHRvb2xiYXJFbGVtZW50ID8gJ3RvcCcgOiAndG9wUmlnaHQnO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGludFBvcHZlclJlZiA9IHBvcG92ZXIub3BlbihUaGVDb252ZXJzaW9uSGludENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnNpb246ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sID0gbWFya2VkKHBsYWluRnJhZ21lbnQucmVwbGFjZSgvXFxuYGBgL2csIFwiXFxuXFxuYGBgXCIpLCB7IGdmbTogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaHRtbERvbSA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoaHRtbCwgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IFRoZWlhQ29udmVydGVyLmNvbnZlcnRUb1RoZWlhKEFycmF5LmZyb20oaHRtbERvbS5ib2R5LmNoaWxkcmVuKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1VuZm9ybWF0dGVkKGZyYWdtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5jbG9zZUNvbnZlcnNpb25IaW50KGVkaXRvcik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvci51bmRvKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgb2xkUmFuZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0RnJhZ21lbnQoZWRpdG9yLCBmcmFnbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5ndWxhckVkaXRvci5mb2N1cyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLmNsb3NlQ29udmVyc2lvbkhpbnQoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuY2xvc2VDb252ZXJzaW9uSGludChlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogLTEwMCxcbiAgICAgICAgICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZHJvcENsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VPbk5hdmlnYXRpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIFRIRV9FRElUT1JfQ09OVkVSU0lPTl9ISU5UX1JFRi5zZXQoZWRpdG9yLCBoaW50UG9wdmVyUmVmKTtcbiAgICAgICAgICAgICAgICBjZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGluc2VydERhdGEoZGF0YSk7XG4gICAgfTtcbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuY29uc3QgaXNVbmZvcm1hdHRlZCA9IChlbGVtZW50czogRWxlbWVudFtdKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRzLmV2ZXJ5KFxuICAgICAgICBlbGVtZW50ID0+XG4gICAgICAgICAgICBlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5kZWZhdWx0ICYmXG4gICAgICAgICAgICBlbGVtZW50LmNoaWxkcmVuLmV2ZXJ5KChub2RlOiBOb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRleHQuaXNUZXh0KG5vZGUpICYmIE9iamVjdC5rZXlzKG5vZGUpLmxlbmd0aCA9PT0gMTtcbiAgICAgICAgICAgIH0pXG4gICAgKTtcbn07XG5cbmNvbnN0IGlzTWFya2Rvd25TdHlueCA9IGNvbnRlbnQgPT4ge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9DaGFsYXJhbmdlbG8vcGFyc2UtbWQtanMvYmxvYi9tYXN0ZXIvcGFyc2VtZC5qc1xuICAgIGNvbnN0IGNvZGVCbG9ja1JlZ2V4ID0gLygoXFxuXFx0KSguKikpKy9nO1xuICAgIGNvbnN0IGlubGluZUNvZGVSZWdleCA9IC8oYCkoLio/KVxcMS9nO1xuICAgIGNvbnN0IGltYWdlUmVnZXggPSAvIVxcWyhbXlxcW10rKVxcXVxcKChbXlxcKV0rKVxcKS9nO1xuICAgIGNvbnN0IGxpbmtSZWdleCA9IC9cXFsoW15cXFtdKylcXF1cXCgoW15cXCldKylcXCkvZztcbiAgICBjb25zdCBoZWFkaW5nUmVnZXggPSAvKCMrXFxzKikoLiopL2c7XG4gICAgY29uc3QgYm9sZEl0YWxpY3NSZWdleCA9IC8oXFwqezEsMn0pKFxcUyspXFwxL2c7XG4gICAgY29uc3Qgc3RyaWtldGhyb3VnaFJlZ2V4ID0gLyhcXH5cXH4pKC4qPylcXDEvZztcbiAgICBjb25zdCBibG9ja3F1b3RlUmVnZXggPSAvXFxuKCZndDt8XFw+KSguKikvZztcbiAgICBjb25zdCBob3Jpem9udGFsUnVsZVJlZ2V4ID0gL1xcbigoXFwtezMsfSl8KD17Myx9KSkvZztcbiAgICBjb25zdCB1bm9yZGVyZWRMaXN0UmVnZXggPSAvKFxcblxccyooXFwtfFxcKylcXHMuKikrL2c7XG4gICAgY29uc3Qgb3JkZXJlZExpc3RSZWdleCA9IC8oXFxuXFxzKihbMC05XStcXC4pXFxzLiopKy9nO1xuICAgIGNvbnN0IHBhcmFncmFwaFJlZ2V4ID0gL1xcbisoPyE8cHJlPikoPyE8aCkoPyE8dWw+KSg/ITxibG9ja3F1b3RlKSg/ITxocikoPyFcXHQpKFteXFxuXSspXFxuL2c7XG4gICAgLy8gZnJvbSBtYXJrZWRcbiAgICBjb25zdCB0YWJsZSA9XG4gICAgICAgIC9eXFxzKihbXlxcc10uKlxcfC4qKVxcc3swLDN9KD86XFx8XFxzKik/KDo/LSs6P1xccyooPzpcXHxcXHMqOj8tKzo/XFxzKikqKVxcfD8oPzpcXHMqKCg/Oig/IXxocnxoZWFkaW5nfGJsb2NrcXVvdGV8Y29kZXxmZW5jZXN8bGlzdHxodG1sKS4qKD86fCQpKSopKnwkKS9nO1xuICAgIGNvbnN0IHJlZ2V4cHMgPSBbXG4gICAgICAgIGlubGluZUNvZGVSZWdleCxcbiAgICAgICAgaW1hZ2VSZWdleCxcbiAgICAgICAgbGlua1JlZ2V4LFxuICAgICAgICBoZWFkaW5nUmVnZXgsXG4gICAgICAgIGJvbGRJdGFsaWNzUmVnZXgsXG4gICAgICAgIHN0cmlrZXRocm91Z2hSZWdleCxcbiAgICAgICAgYmxvY2txdW90ZVJlZ2V4LFxuICAgICAgICBob3Jpem9udGFsUnVsZVJlZ2V4LFxuICAgICAgICB1bm9yZGVyZWRMaXN0UmVnZXgsXG4gICAgICAgIG9yZGVyZWRMaXN0UmVnZXgsXG4gICAgICAgIHRhYmxlXG4gICAgXTtcbiAgICByZXR1cm4gcmVnZXhwcy5zb21lKHJlZ2V4cCA9PiByZWdleHAudGVzdChjb250ZW50KSk7XG59O1xuIl19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Editor } from 'slate';
|
|
2
|
+
import { ElementKinds, FontSizes, MarkTypes, HEADING_TYPES } from '../../constants/node-types';
|
|
3
|
+
import { TheContextService } from '../../services/context.service';
|
|
4
|
+
import * as TheQueries from '../../queries';
|
|
5
|
+
import * as TheTransforms from '../../transforms';
|
|
6
|
+
import { TableEditor } from '../table/table.editor';
|
|
7
|
+
export const FontSizeEditor = {
|
|
8
|
+
setFontSize(editor, size) {
|
|
9
|
+
const contextService = editor.injector.get(TheContextService);
|
|
10
|
+
const defaultFontSize = contextService.getDefaultFontSize();
|
|
11
|
+
const marks = TheQueries.getSelectionMarks(editor);
|
|
12
|
+
const fontSizeMark = marks[MarkTypes.fontSize];
|
|
13
|
+
const isDefaultFontSize = size === defaultFontSize;
|
|
14
|
+
if (!fontSizeMark && isDefaultFontSize) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
// unset fontSize
|
|
18
|
+
if (FontSizeEditor.unsetFontSize(editor, size, fontSizeMark, isDefaultFontSize)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
FontSizeEditor.setFontSizeMark(editor, size);
|
|
22
|
+
},
|
|
23
|
+
setFontSizeMark(editor, size) {
|
|
24
|
+
// set Table selectedCells fontSize
|
|
25
|
+
if (TableEditor.toggleMark(editor, false, MarkTypes.fontSize, Number(size))) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// set paragraph text fontSize
|
|
29
|
+
Editor.addMark(editor, MarkTypes.fontSize, Number(size));
|
|
30
|
+
},
|
|
31
|
+
unsetFontSize(editor, size, fontSizeMark, isDefaultFontSize) {
|
|
32
|
+
const isTable = TableEditor.isActive(editor);
|
|
33
|
+
if (fontSizeMark && isDefaultFontSize) {
|
|
34
|
+
// unset Table selectedCells fontSize
|
|
35
|
+
if (isTable && TableEditor.toggleMark(editor, true, MarkTypes.fontSize, Number(size))) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
// unset paragraph text fontSize
|
|
39
|
+
TheTransforms.setMarks(editor, {
|
|
40
|
+
[MarkTypes.fontSize]: null
|
|
41
|
+
}, editor.selection);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
return false;
|
|
45
|
+
},
|
|
46
|
+
isFontSizeActive(editor, size) {
|
|
47
|
+
if (editor.selection) {
|
|
48
|
+
const anchorBlock = TheQueries.anchorBlock(editor);
|
|
49
|
+
switch (anchorBlock === null || anchorBlock === void 0 ? void 0 : anchorBlock.type) {
|
|
50
|
+
case ElementKinds.heading_1:
|
|
51
|
+
return size === FontSizes.fontSize28;
|
|
52
|
+
case ElementKinds.heading_2:
|
|
53
|
+
return size === FontSizes.fontSize24;
|
|
54
|
+
case ElementKinds.heading_3:
|
|
55
|
+
return size === FontSizes.fontSize20;
|
|
56
|
+
case ElementKinds.heading_4:
|
|
57
|
+
return size === FontSizes.fontSize18;
|
|
58
|
+
case ElementKinds.heading_5:
|
|
59
|
+
return size === FontSizes.fontSize16;
|
|
60
|
+
case ElementKinds.heading_6:
|
|
61
|
+
return size === FontSizes.fontSize14;
|
|
62
|
+
case ElementKinds.paragraph:
|
|
63
|
+
const marks = TheQueries.getSelectionMarks(editor);
|
|
64
|
+
const fontSizeMark = marks[MarkTypes.fontSize];
|
|
65
|
+
return Number(size) === fontSizeMark;
|
|
66
|
+
default:
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return false;
|
|
71
|
+
},
|
|
72
|
+
isDisabled(editor) {
|
|
73
|
+
if (editor.selection) {
|
|
74
|
+
const disableGroup = HEADING_TYPES;
|
|
75
|
+
const anchorBlock = TheQueries.anchorBlock(editor);
|
|
76
|
+
return anchorBlock && disableGroup.includes(anchorBlock === null || anchorBlock === void 0 ? void 0 : anchorBlock.type);
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udC1zaXplLmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2ZvbnQtc2l6ZS9mb250LXNpemUuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixXQUFXLENBQUMsTUFBaUIsRUFBRSxJQUFlO1FBQzFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUQsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFXLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEtBQUssZUFBZSxDQUFDO1FBRW5ELElBQUksQ0FBQyxZQUFZLElBQUksaUJBQWlCLEVBQUU7WUFDcEMsT0FBTztTQUNWO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxp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VyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25ELE9BQU8sV0FBVyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VkaXRvcic7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMsIEZvbnRTaXplcywgTWFya1R5cGVzLCBIRUFESU5HX1RZUEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBUYWJsZUVkaXRvciB9IGZyb20gJy4uL3RhYmxlL3RhYmxlLmVkaXRvcic7XG5cbmV4cG9ydCBjb25zdCBGb250U2l6ZUVkaXRvciA9IHtcbiAgICBzZXRGb250U2l6ZShlZGl0b3I6IFRoZUVkaXRvciwgc2l6ZTogRm9udFNpemVzKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IGNvbnRleHRTZXJ2aWNlLmdldERlZmF1bHRGb250U2l6ZSgpO1xuICAgICAgICBjb25zdCBtYXJrcyA9IFRoZVF1ZXJpZXMuZ2V0U2VsZWN0aW9uTWFya3MoZWRpdG9yKTtcbiAgICAgICAgY29uc3QgZm9udFNpemVNYXJrOiBudW1iZXIgPSBtYXJrc1tNYXJrVHlwZXMuZm9udFNpemVdO1xuICAgICAgICBjb25zdCBpc0RlZmF1bHRGb250U2l6ZSA9IHNpemUgPT09IGRlZmF1bHRGb250U2l6ZTtcblxuICAgICAgICBpZiAoIWZvbnRTaXplTWFyayAmJiBpc0RlZmF1bHRGb250U2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdW5zZXQgZm9udFNpemVcbiAgICAgICAgaWYgKEZvbnRTaXplRWRpdG9yLnVuc2V0Rm9udFNpemUoZWRpdG9yLCBzaXplLCBmb250U2l6ZU1hcmssIGlzRGVmYXVsdEZvbnRTaXplKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRm9udFNpemVFZGl0b3Iuc2V0Rm9udFNpemVNYXJrKGVkaXRvciwgc2l6ZSk7XG4gICAgfSxcbiAgICBzZXRGb250U2l6ZU1hcmsoZWRpdG9yOiBFZGl0b3IsIHNpemU6IEZvbnRTaXplcykge1xuICAgICAgICAvLyBzZXQgVGFibGUgc2VsZWN0ZWRDZWxscyBmb250U2l6ZVxuICAgICAgICBpZiAoVGFibGVFZGl0b3IudG9nZ2xlTWFyayhlZGl0b3IsIGZhbHNlLCBNYXJrVHlwZXMuZm9udFNpemUsIE51bWJlcihzaXplKSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBzZXQgcGFyYWdyYXBoIHRleHQgZm9udFNpemVcbiAgICAgICAgRWRpdG9yLmFkZE1hcmsoZWRpdG9yLCBNYXJrVHlwZXMuZm9udFNpemUsIE51bWJlcihzaXplKSk7XG4gICAgfSxcbiAgICB1bnNldEZvbnRTaXplKGVkaXRvcjogRWRpdG9yLCBzaXplOiBGb250U2l6ZXMsIGZvbnRTaXplTWFyazogbnVtYmVyLCBpc0RlZmF1bHRGb250U2l6ZTogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBpc1RhYmxlID0gVGFibGVFZGl0b3IuaXNBY3RpdmUoZWRpdG9yKTtcblxuICAgICAgICBpZiAoZm9udFNpemVNYXJrICYmIGlzRGVmYXVsdEZvbnRTaXplKSB7XG4gICAgICAgICAgICAvLyB1bnNldCBUYWJsZSBzZWxlY3RlZENlbGxzIGZvbnRTaXplXG4gICAgICAgICAgICBpZiAoaXNUYWJsZSAmJiBUYWJsZUVkaXRvci50b2dnbGVNYXJrKGVkaXRvciwgdHJ1ZSwgTWFya1R5cGVzLmZvbnRTaXplLCBOdW1iZXIoc2l6ZSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB1bnNldCBwYXJhZ3JhcGggdGV4dCBmb250U2l6ZVxuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRNYXJrcyhcbiAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBbTWFya1R5cGVzLmZvbnRTaXplXTogbnVsbFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZWRpdG9yLnNlbGVjdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIGlzRm9udFNpemVBY3RpdmUoZWRpdG9yOiBFZGl0b3IsIHNpemU6IEZvbnRTaXplcykge1xuICAgICAgICBpZiAoZWRpdG9yLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgYW5jaG9yQmxvY2sgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG4gICAgICAgICAgICBzd2l0Y2ggKGFuY2hvckJsb2NrPy50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBFbGVtZW50S2luZHMuaGVhZGluZ18xOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PT0gRm9udFNpemVzLmZvbnRTaXplMjg7XG4gICAgICAgICAgICAgICAgY2FzZSBFbGVtZW50S2luZHMuaGVhZGluZ18yOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PT0gRm9udFNpemVzLmZvbnRTaXplMjQ7XG4gICAgICAgICAgICAgICAgY2FzZSBFbGVtZW50S2luZHMuaGVhZGluZ18zOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PT0gRm9udFNpemVzLmZvbnRTaXplMjA7XG4gICAgICAgICAgICAgICAgY2FzZSBFbGVtZW50S2luZHMuaGVhZGluZ180OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PT0gRm9udFNpemVzLmZvbnRTaXplMTg7XG4gICAgICAgICAgICAgICAgY2FzZSBFbGVtZW50S2luZHMuaGVhZGluZ181OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PT0gRm9udFNpemVzLmZvbnRTaXplMTY7XG4gICAgICAgICAgICAgICAgY2FzZSBFbGVtZW50S2luZHMuaGVhZGluZ182OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PT0gRm9udFNpemVzLmZvbnRTaXplMTQ7XG4gICAgICAgICAgICAgICAgY2FzZSBFbGVtZW50S2luZHMucGFyYWdyYXBoOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXJrcyA9IFRoZVF1ZXJpZXMuZ2V0U2VsZWN0aW9uTWFya3MoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9udFNpemVNYXJrID0gbWFya3NbTWFya1R5cGVzLmZvbnRTaXplXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlcihzaXplKSA9PT0gZm9udFNpemVNYXJrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcbiAgICBpc0Rpc2FibGVkKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGlmIChlZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNhYmxlR3JvdXAgPSBIRUFESU5HX1RZUEVTO1xuICAgICAgICAgICAgY29uc3QgYW5jaG9yQmxvY2sgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG4gICAgICAgICAgICByZXR1cm4gYW5jaG9yQmxvY2sgJiYgZGlzYWJsZUdyb3VwLmluY2x1ZGVzKGFuY2hvckJsb2NrPy50eXBlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,11 +1,25 @@
|
|
|
1
|
-
import { MarkTypes } from '../../constants/node-types';
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { FontSizes, FontSizeTypes, MarkTypes } from '../../constants/node-types';
|
|
2
|
+
import { ToolbarItemType } from '../../interfaces/toolbar';
|
|
3
|
+
import { FontSizeEditor } from './font-size.editor';
|
|
4
|
+
const sizeOptions = () => {
|
|
5
|
+
return FontSizeTypes.map(fontSize => {
|
|
6
|
+
return {
|
|
7
|
+
key: fontSize,
|
|
8
|
+
name: fontSize,
|
|
9
|
+
execute: editor => FontSizeEditor.setFontSize(editor, fontSize),
|
|
10
|
+
active: editor => FontSizeEditor.isFontSizeActive(editor, fontSize)
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
};
|
|
4
14
|
export const FontSizeOptions = [
|
|
5
15
|
{
|
|
6
16
|
key: MarkTypes.fontSize,
|
|
7
17
|
name: '字号',
|
|
8
|
-
|
|
9
|
-
|
|
18
|
+
type: ToolbarItemType.toolDropdown,
|
|
19
|
+
dropdownItemKey: FontSizes.fontSize14,
|
|
20
|
+
includes: FontSizeTypes,
|
|
21
|
+
disable: editor => FontSizeEditor.isDisabled(editor)
|
|
22
|
+
},
|
|
23
|
+
...sizeOptions()
|
|
10
24
|
];
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2ZvbnQtc2l6ZS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pGLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsTUFBTSxXQUFXLEdBQUcsR0FBa0IsRUFBRTtJQUNwQyxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDaEMsT0FBTztZQUNILEdBQUcsRUFBRSxRQUFRO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7WUFDL0QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7U0FDdEUsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFrQjtJQUMxQztRQUNJLEdBQUcsRUFBRSxTQUFTLENBQUMsUUFBUTtRQUN2QixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxlQUFlLENBQUMsWUFBWTtRQUNsQyxlQUFlLEVBQUUsU0FBUyxDQUFDLFVBQVU7UUFDckMsUUFBUSxFQUFFLGFBQWE7UUFDdkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7S0FDdkQ7SUFDRCxHQUFHLFdBQVcsRUFBRTtDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9udFNpemVzLCBGb250U2l6ZVR5cGVzLCBNYXJrVHlwZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5pbXBvcnQgeyBUb29sYmFySXRlbSwgVG9vbGJhckl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90b29sYmFyJztcbmltcG9ydCB7IEZvbnRTaXplRWRpdG9yIH0gZnJvbSAnLi9mb250LXNpemUuZWRpdG9yJztcblxuY29uc3Qgc2l6ZU9wdGlvbnMgPSAoKTogVG9vbGJhckl0ZW1bXSA9PiB7XG4gICAgcmV0dXJuIEZvbnRTaXplVHlwZXMubWFwKGZvbnRTaXplID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleTogZm9udFNpemUsXG4gICAgICAgICAgICBuYW1lOiBmb250U2l6ZSxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBGb250U2l6ZUVkaXRvci5zZXRGb250U2l6ZShlZGl0b3IsIGZvbnRTaXplKSxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IEZvbnRTaXplRWRpdG9yLmlzRm9udFNpemVBY3RpdmUoZWRpdG9yLCBmb250U2l6ZSlcbiAgICAgICAgfTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBGb250U2l6ZU9wdGlvbnM6IFRvb2xiYXJJdGVtW10gPSBbXG4gICAge1xuICAgICAgICBrZXk6IE1hcmtUeXBlcy5mb250U2l6ZSxcbiAgICAgICAgbmFtZTogJ+Wtl+WPtycsXG4gICAgICAgIHR5cGU6IFRvb2xiYXJJdGVtVHlwZS50b29sRHJvcGRvd24sXG4gICAgICAgIGRyb3Bkb3duSXRlbUtleTogRm9udFNpemVzLmZvbnRTaXplMTQsXG4gICAgICAgIGluY2x1ZGVzOiBGb250U2l6ZVR5cGVzLFxuICAgICAgICBkaXNhYmxlOiBlZGl0b3IgPT4gRm9udFNpemVFZGl0b3IuaXNEaXNhYmxlZChlZGl0b3IpXG4gICAgfSxcbiAgICAuLi5zaXplT3B0aW9ucygpXG5dO1xuIl19
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Editor, Transforms, Element } from 'slate';
|
|
2
|
-
import { ElementKinds } from '../../constants/node-types';
|
|
2
|
+
import { ElementKinds, MarkTypes } from '../../constants/node-types';
|
|
3
|
+
import * as TheQueries from '../../queries';
|
|
4
|
+
import * as TheTransforms from '../../transforms';
|
|
3
5
|
export const HeadingEditor = {
|
|
4
6
|
setHeading(editor, heading) {
|
|
5
7
|
Editor.withoutNormalizing(editor, () => {
|
|
@@ -11,6 +13,15 @@ export const HeadingEditor = {
|
|
|
11
13
|
split: true
|
|
12
14
|
});
|
|
13
15
|
Transforms.setNodes(editor, { type: heading });
|
|
16
|
+
const entry = TheQueries.anchorBlockEntry(editor);
|
|
17
|
+
const unMarks = {
|
|
18
|
+
[MarkTypes.fontSize]: null
|
|
19
|
+
};
|
|
20
|
+
if (entry) {
|
|
21
|
+
TheTransforms.setMarks(editor, unMarks, entry[1]);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
TheTransforms.setMarks(editor, unMarks, editor.selection);
|
|
14
25
|
});
|
|
15
26
|
},
|
|
16
27
|
isHeadingActive(editor, heading) {
|
|
@@ -21,4 +32,4 @@ export const HeadingEditor = {
|
|
|
21
32
|
return !!match;
|
|
22
33
|
}
|
|
23
34
|
};
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGluZy5lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9oZWFkaW5nL2hlYWRpbmcuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQ3pCLFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBNEI7UUFDbkQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDbkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVGLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO2dCQUMzQixFQUFFLEVBQUUsTUFBTSxDQUFDLFNBQVM7Z0JBQ3BCLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBVyxDQUFDO2dCQUNqRSxJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsSUFBSTthQUNkLENBQUMsQ0FBQztZQUNILFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDL0MsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELE1BQU0sT0FBTyxHQUFHO2dCQUNaLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUk7YUFDN0IsQ0FBQztZQUNGLElBQUksS0FBSyxFQUFFO2dCQUNQLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEQsT0FBTzthQUNWO1lBQ0QsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxlQUFlLENBQUMsTUFBYyxFQUFFLE9BQTRCO1FBQ3hELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTztZQUN0RCxTQUFTLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBIZWFkaW5nRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcywgTWFya1R5cGVzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBIZWFkaW5nRWRpdG9yID0ge1xuICAgIHNldEhlYWRpbmcoZWRpdG9yOiBFZGl0b3IsIGhlYWRpbmc6IEhlYWRpbmdFbGVtZW50S2luZHMpIHtcbiAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVzID0gW0VsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QsIEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QsIEVsZW1lbnRLaW5kcy5saXN0SXRlbV07XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnVud3JhcE5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIGF0OiBlZGl0b3Iuc2VsZWN0aW9uLFxuICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIHR5cGVzLmluY2x1ZGVzKG4udHlwZSBhcyBhbnkpLFxuICAgICAgICAgICAgICAgIG1vZGU6ICdhbGwnLFxuICAgICAgICAgICAgICAgIHNwbGl0OiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7IHR5cGU6IGhlYWRpbmcgfSk7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2tFbnRyeShlZGl0b3IpO1xuICAgICAgICAgICAgY29uc3QgdW5NYXJrcyA9IHtcbiAgICAgICAgICAgICAgICBbTWFya1R5cGVzLmZvbnRTaXplXTogbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0TWFya3MoZWRpdG9yLCB1bk1hcmtzLCBlbnRyeVsxXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRNYXJrcyhlZGl0b3IsIHVuTWFya3MsIGVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGlzSGVhZGluZ0FjdGl2ZShlZGl0b3I6IEVkaXRvciwgaGVhZGluZzogSGVhZGluZ0VsZW1lbnRLaW5kcykge1xuICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBoZWFkaW5nLFxuICAgICAgICAgICAgdW5pdmVyc2FsOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gISFtYXRjaDtcbiAgICB9XG59O1xuIl19
|
|
@@ -8,6 +8,7 @@ export const HeadingOptions = [
|
|
|
8
8
|
name: '正文',
|
|
9
9
|
key: ElementKinds.headingList,
|
|
10
10
|
type: ToolbarItemType.toolDropdown,
|
|
11
|
+
dropdownItemKey: ElementKinds.paragraph,
|
|
11
12
|
includes: [ElementKinds.paragraph, ...STANDARD_HEADING_TYPES]
|
|
12
13
|
},
|
|
13
14
|
{
|
|
@@ -50,4 +51,4 @@ export const HeadingOptions = [
|
|
|
50
51
|
active: editor => HeadingEditor.isHeadingActive(editor, ElementKinds.heading_4)
|
|
51
52
|
}
|
|
52
53
|
];
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2hlYWRpbmcvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBa0I7SUFDekM7UUFDSSxJQUFJLEVBQUUsSUFBSTtRQUNWLEdBQUcsRUFBRSxZQUFZLENBQUMsV0FBVztRQUM3QixJQUFJLEVBQUUsZUFBZSxDQUFDLFlBQVk7UUFDbEMsZUFBZSxFQUFFLFlBQVksQ0FBQyxTQUFTO1FBQ3ZDLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQztLQUNoRTtJQUNEO1FBQ0ksR0FBRyxFQUFFLFlBQVksQ0FBQyxTQUFTO1FBQzNCLElBQUksRUFBRSxJQUFJO1FBQ1YsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtRQUMxQixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7S0FDbkQ7SUFDRDtRQUNJLEdBQUcsRUFBRSxZQUFZLENBQUMsU0FBUztRQUMzQixJQUFJLEVBQUUsS0FBSztRQUNYLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUM1QyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzNFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUM7S0FDbEY7SUFDRDtRQUNJLEdBQUcsRUFBRSxZQUFZLENBQUMsU0FBUztRQUMzQixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsS0FBSztRQUNYLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUM1QyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzNFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUM7S0FDbEY7SUFDRDtRQUNJLEdBQUcsRUFBRSxZQUFZLENBQUMsU0FBUztRQUMzQixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsS0FBSztRQUNYLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUM1QyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzNFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUM7S0FDbEY7SUFDRDtRQUNJLEdBQUcsRUFBRSxZQUFZLENBQUMsU0FBUztRQUMzQixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsS0FBSztRQUNYLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUM1QyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzNFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUM7S0FDbEY7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcywgU1RBTkRBUkRfSEVBRElOR19UWVBFUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCB7IFRvb2xiYXJJdGVtLCBUb29sYmFySXRlbVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBIZWFkaW5nRWRpdG9yIH0gZnJvbSAnLi9oZWFkaW5nLmVkaXRvcic7XG5cbmV4cG9ydCBjb25zdCBIZWFkaW5nT3B0aW9uczogVG9vbGJhckl0ZW1bXSA9IFtcbiAgICB7XG4gICAgICAgIG5hbWU6ICfmraPmlocnLFxuICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5oZWFkaW5nTGlzdCxcbiAgICAgICAgdHlwZTogVG9vbGJhckl0ZW1UeXBlLnRvb2xEcm9wZG93bixcbiAgICAgICAgZHJvcGRvd25JdGVtS2V5OiBFbGVtZW50S2luZHMucGFyYWdyYXBoLFxuICAgICAgICBpbmNsdWRlczogW0VsZW1lbnRLaW5kcy5wYXJhZ3JhcGgsIC4uLlNUQU5EQVJEX0hFQURJTkdfVFlQRVNdXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGtleTogRWxlbWVudEtpbmRzLnBhcmFncmFwaCxcbiAgICAgICAgbmFtZTogJ+ato+aWhycsXG4gICAgICAgIHN0eWxlczogeyBoZWlnaHQ6ICc0MHB4JyB9LFxuICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHsgdHlwZTogRWxlbWVudEtpbmRzLnBhcmFncmFwaCB9KSxcbiAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gVGhlUXVlcmllcy5pc1BhcmFncmFwaChlZGl0b3IpXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGtleTogRWxlbWVudEtpbmRzLmhlYWRpbmdfMSxcbiAgICAgICAgbmFtZTogJ+agh+mimDEnLFxuICAgICAgICBpY29uOiAnaGVhZGVyLTEnLFxuICAgICAgICBzdHlsZXM6IHsgaGVpZ2h0OiAnNDBweCcsIGZvbnRTaXplOiAnMjhweCcgfSxcbiAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEhlYWRpbmdFZGl0b3Iuc2V0SGVhZGluZyhlZGl0b3IsIEVsZW1lbnRLaW5kcy5oZWFkaW5nXzEpLFxuICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBIZWFkaW5nRWRpdG9yLmlzSGVhZGluZ0FjdGl2ZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5oZWFkaW5nXzEpXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGtleTogRWxlbWVudEtpbmRzLmhlYWRpbmdfMixcbiAgICAgICAgaWNvbjogJ2hlYWRlci0yJyxcbiAgICAgICAgbmFtZTogJ+agh+mimDInLFxuICAgICAgICBzdHlsZXM6IHsgaGVpZ2h0OiAnMzhweCcsIGZvbnRTaXplOiAnMjRweCcgfSxcbiAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEhlYWRpbmdFZGl0b3Iuc2V0SGVhZGluZyhlZGl0b3IsIEVsZW1lbnRLaW5kcy5oZWFkaW5nXzIpLFxuICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBIZWFkaW5nRWRpdG9yLmlzSGVhZGluZ0FjdGl2ZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5oZWFkaW5nXzIpXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGtleTogRWxlbWVudEtpbmRzLmhlYWRpbmdfMyxcbiAgICAgICAgaWNvbjogJ2hlYWRlci0zJyxcbiAgICAgICAgbmFtZTogJ+agh+mimDMnLFxuICAgICAgICBzdHlsZXM6IHsgaGVpZ2h0OiAnMzRweCcsIGZvbnRTaXplOiAnMjBweCcgfSxcbiAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEhlYWRpbmdFZGl0b3Iuc2V0SGVhZGluZyhlZGl0b3IsIEVsZW1lbnRLaW5kcy5oZWFkaW5nXzMpLFxuICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBIZWFkaW5nRWRpdG9yLmlzSGVhZGluZ0FjdGl2ZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5oZWFkaW5nXzMpXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGtleTogRWxlbWVudEtpbmRzLmhlYWRpbmdfNCxcbiAgICAgICAgaWNvbjogJ2hlYWRlci00JyxcbiAgICAgICAgbmFtZTogJ+agh+mimDQnLFxuICAgICAgICBzdHlsZXM6IHsgaGVpZ2h0OiAnMzBweCcsIGZvbnRTaXplOiAnMTZweCcgfSxcbiAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEhlYWRpbmdFZGl0b3Iuc2V0SGVhZGluZyhlZGl0b3IsIEVsZW1lbnRLaW5kcy5oZWFkaW5nXzQpLFxuICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBIZWFkaW5nRWRpdG9yLmlzSGVhZGluZ0FjdGl2ZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5oZWFkaW5nXzQpXG4gICAgfVxuXTtcbiJdfQ==
|