@worktile/theia 1.2.10 → 1.2.14
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 +208 -134
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/column-resize/column-resize.directive.d.ts +3 -3
- package/components/inline-toolbar/inline-toolbar.component.d.ts +4 -2
- package/components/inline-toolbar/inline-toolbar.component.scss +6 -5
- package/components/toolbar/toolbar.component.d.ts +2 -1
- package/custom-types.d.ts +2 -0
- package/editor.component.d.ts +2 -0
- package/esm2015/components/column-resize/column-resize.directive.js +1 -1
- package/esm2015/components/inline-toolbar/inline-toolbar.component.js +27 -11
- package/esm2015/components/toolbar/toolbar.component.js +7 -6
- package/esm2015/components/toolbar-group/toolbar-group.component.js +1 -1
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +28 -14
- package/esm2015/interfaces/editor.js +1 -1
- package/esm2015/plugins/deserializers/deserialize-html.plugin.js +12 -4
- package/esm2015/plugins/deserializers/deserialize-md.plugin.js +2 -2
- package/esm2015/plugins/index.js +2 -2
- package/esm2015/plugins/placeholder/placeholder.component.js +21 -14
- package/esm2015/plugins/quick-insert/components/quick-insert.component.js +7 -6
- package/esm2015/plugins/quick-insert/quick-insert.plugint.js +3 -2
- package/esm2015/plugins/table/table.plugin.js +34 -55
- package/esm2015/plugins/table/table.types.js +1 -1
- package/esm2015/plugins/table/utils/normalize-table.js +31 -0
- package/esm2015/queries/is-container-type.js +2 -2
- package/esm2015/services/context.service.js +10 -2
- package/esm2015/transforms/index.js +2 -3
- package/esm2015/utils/auto-focus.js +2 -2
- package/esm2015/utils/fragment.js +24 -2
- package/fesm2015/worktile-theia.js +188 -125
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/editor.d.ts +2 -0
- package/package.json +1 -1
- package/plugins/placeholder/placeholder.component.d.ts +4 -2
- package/plugins/table/table.types.d.ts +7 -0
- package/plugins/table/utils/normalize-table.d.ts +2 -0
- package/services/context.service.d.ts +2 -0
- package/styles/editor.scss +3 -3
- package/transforms/index.d.ts +1 -2
- package/utils/fragment.d.ts +5 -0
- package/esm2015/transforms/insert-elements.js +0 -22
- package/transforms/insert-elements.d.ts +0 -2
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { calcOriginSpan } from "./calc-span";
|
|
2
|
+
export const normalizeTable = (table) => {
|
|
3
|
+
const normalizedNodes = [];
|
|
4
|
+
const rowHeight = table.children.length;
|
|
5
|
+
const columnWidth = table.children[0].children.length;
|
|
6
|
+
table.children.forEach((row, rowIndex) => {
|
|
7
|
+
row.children.forEach((cell, columnIndex) => {
|
|
8
|
+
// case 1
|
|
9
|
+
if (cell.colspan || cell.rowspan) {
|
|
10
|
+
const rowspan = cell.rowspan || 1;
|
|
11
|
+
const colspan = cell.colspan || 1;
|
|
12
|
+
if (rowspan > rowHeight - rowIndex) {
|
|
13
|
+
cell.rowspan = rowHeight - rowIndex;
|
|
14
|
+
}
|
|
15
|
+
if (colspan > columnWidth - columnIndex) {
|
|
16
|
+
cell.colspan = columnWidth - columnIndex;
|
|
17
|
+
}
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// case 2
|
|
21
|
+
if (cell.hidden && !normalizedNodes.includes(cell)) {
|
|
22
|
+
const origin = calcOriginSpan(table, rowIndex, columnIndex);
|
|
23
|
+
if (!origin) {
|
|
24
|
+
delete table.children[rowIndex].children[columnIndex].hidden;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
return table;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvdGFibGUvdXRpbHMvbm9ybWFsaXplLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO0lBQ2xELE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUMzQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUN4QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDdEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFvQixFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ3RELEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBc0IsRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUN6RCxTQUFTO1lBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxPQUFPLEdBQUcsU0FBUyxHQUFHLFFBQVEsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLEdBQUcsUUFBUSxDQUFDO2lCQUN2QztnQkFDRCxJQUFJLE9BQU8sR0FBRyxXQUFXLEdBQUcsV0FBVyxFQUFFO29CQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsR0FBRyxXQUFXLENBQUM7aUJBQzVDO2dCQUNELE9BQU87YUFDVjtZQUNELFNBQVM7WUFDVCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNoRCxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDVCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztpQkFDaEU7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNlbGxFbGVtZW50LCBUYWJsZUVsZW1lbnQsIFRhYmxlUm93RWxlbWVudCB9IGZyb20gXCIuLi8uLi8uLi9jdXN0b20tdHlwZXNcIjtcbmltcG9ydCB7IGNhbGNPcmlnaW5TcGFuIH0gZnJvbSBcIi4vY2FsYy1zcGFuXCI7XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVUYWJsZSA9ICh0YWJsZTogVGFibGVFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZE5vZGVzID0gW107XG4gICAgY29uc3Qgcm93SGVpZ2h0ID0gdGFibGUuY2hpbGRyZW4ubGVuZ3RoO1xuICAgIGNvbnN0IGNvbHVtbldpZHRoID0gdGFibGUuY2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoO1xuICAgIHRhYmxlLmNoaWxkcmVuLmZvckVhY2goKHJvdzogVGFibGVSb3dFbGVtZW50LCByb3dJbmRleCkgPT4ge1xuICAgICAgICByb3cuY2hpbGRyZW4uZm9yRWFjaCgoY2VsbDogVGFibGVDZWxsRWxlbWVudCwgY29sdW1uSW5kZXgpID0+IHtcbiAgICAgICAgICAgIC8vIGNhc2UgMVxuICAgICAgICAgICAgaWYgKGNlbGwuY29sc3BhbiB8fCBjZWxsLnJvd3NwYW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dzcGFuID0gY2VsbC5yb3dzcGFuIHx8IDE7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sc3BhbiA9IGNlbGwuY29sc3BhbiB8fCAxO1xuICAgICAgICAgICAgICAgIGlmIChyb3dzcGFuID4gcm93SGVpZ2h0IC0gcm93SW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgY2VsbC5yb3dzcGFuID0gcm93SGVpZ2h0IC0gcm93SW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjb2xzcGFuID4gY29sdW1uV2lkdGggLSBjb2x1bW5JbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBjZWxsLmNvbHNwYW4gPSBjb2x1bW5XaWR0aCAtIGNvbHVtbkluZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjYXNlIDJcbiAgICAgICAgICAgIGlmIChjZWxsLmhpZGRlbiAmJiAhbm9ybWFsaXplZE5vZGVzLmluY2x1ZGVzKGNlbGwpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gY2FsY09yaWdpblNwYW4odGFibGUsIHJvd0luZGV4LCBjb2x1bW5JbmRleCk7XG4gICAgICAgICAgICAgICAgaWYgKCFvcmlnaW4pIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRhYmxlLmNoaWxkcmVuW3Jvd0luZGV4XS5jaGlsZHJlbltjb2x1bW5JbmRleF0uaGlkZGVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRhYmxlO1xufSJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Element } from 'slate';
|
|
2
|
-
export const isContainer = (editor, value) => Element.isElement(value) && editor.isContainer(value);
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const isContainer = (editor, value) => Element.isElement(value) && editor.isContainer && editor.isContainer(value);
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29udGFpbmVyLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pcy1jb250YWluZXItdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFVLE1BQU0sT0FBTyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQWMsRUFBRSxLQUFjLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudCwgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuXG5leHBvcnQgY29uc3QgaXNDb250YWluZXIgPSAoZWRpdG9yOiBFZGl0b3IsIHZhbHVlOiBFbGVtZW50KSA9PiBFbGVtZW50LmlzRWxlbWVudCh2YWx1ZSkgJiYgZWRpdG9yLmlzQ29udGFpbmVyICYmIGVkaXRvci5pc0NvbnRhaW5lcih2YWx1ZSk7XG4iXX0=
|
|
@@ -20,10 +20,18 @@ export class TheContextService {
|
|
|
20
20
|
}
|
|
21
21
|
getOptions() {
|
|
22
22
|
if (!this.options.width) {
|
|
23
|
-
|
|
23
|
+
const firstElementChild = this.getFirstElementChild();
|
|
24
|
+
this.options.width = firstElementChild.offsetWidth;
|
|
24
25
|
}
|
|
25
26
|
return this.options;
|
|
26
27
|
}
|
|
28
|
+
getEditableElement() {
|
|
29
|
+
return this.options.nativeElement.querySelector('.the-editor-typo');
|
|
30
|
+
}
|
|
31
|
+
getFirstElementChild() {
|
|
32
|
+
const editableElement = this.getEditableElement();
|
|
33
|
+
return editableElement === null || editableElement === void 0 ? void 0 : editableElement.firstElementChild;
|
|
34
|
+
}
|
|
27
35
|
setUploadFileList(file) {
|
|
28
36
|
this.fileList.push(file);
|
|
29
37
|
}
|
|
@@ -36,4 +44,4 @@ TheContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
|
|
|
36
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheContextService, decorators: [{
|
|
37
45
|
type: Injectable
|
|
38
46
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQWU3QyxNQUFNLE9BQU8saUJBQWlCO0lBZ0IxQixZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWJsQyxhQUFRLEdBQWtDLEVBQUUsQ0FBQztRQUV0QyxzQkFBaUIsR0FBc0I7WUFDMUMsUUFBUSxFQUFFLEtBQUs7WUFDZixLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFTRSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBYSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQWEsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFhLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBMEI7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDckIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7U0FDdEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTSxvQkFBb0I7UUFDdkIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbEQsT0FBTyxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsaUJBQWdDLENBQUM7SUFDN0QsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQWlDO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFVO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQ25ELENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQzs7OEdBdERRLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWFya1R5cGVzIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZUNvbnRleHRPcHRpb25zIHtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xufVxuXG5pbnRlcmZhY2UgUGFpbnRGb3JtYXRTdGF0dXMge1xuICAgIGlzQWN0aXZlOiBib29sZWFuO1xuICAgIG1hcmtzOiB7IFtrZXkgaW4gTWFya1R5cGVzXT86IGFueSB9O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGhlQ29udGV4dFNlcnZpY2Uge1xuICAgIHByaXZhdGUgb3B0aW9uczogVGhlQ29udGV4dE9wdGlvbnM7XG5cbiAgICBmaWxlTGlzdDogeyB1cmw6IHN0cmluZzsgZmlsZTogRmlsZSB9W10gPSBbXTtcblxuICAgIHB1YmxpYyBwYWludEZvcm1hdFN0YXR1czogUGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgbWFya3M6IHt9XG4gICAgfTtcblxuICAgIHB1YmxpYyBvbk1vdXNlVXAkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXG4gICAgcHVibGljIG9uTW91c2VNb3ZlJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcblxuICAgIHB1YmxpYyBvbk1vdXNlRG93biQ6IE9ic2VydmFibGU8TW91c2VFdmVudD47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZVVwJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csIGBtb3VzZXVwYCk7XG4gICAgICAgICAgICB0aGlzLm9uTW91c2VNb3ZlJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csIGBtb3VzZW1vdmVgKTtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZURvd24kID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgYG1vdXNlZG93bmApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShvcHRpb25zOiBUaGVDb250ZXh0T3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPcHRpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy53aWR0aCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RFbGVtZW50Q2hpbGQgPSB0aGlzLmdldEZpcnN0RWxlbWVudENoaWxkKCk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMud2lkdGggPSBmaXJzdEVsZW1lbnRDaGlsZC5vZmZzZXRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFZGl0YWJsZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudGhlLWVkaXRvci10eXBvJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpcnN0RWxlbWVudENoaWxkKCkge1xuICAgICAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSB0aGlzLmdldEVkaXRhYmxlRWxlbWVudCgpO1xuICAgICAgICByZXR1cm4gZWRpdGFibGVFbGVtZW50Py5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBzZXRVcGxvYWRGaWxlTGlzdChmaWxlOiB7IHVybDogc3RyaW5nOyBmaWxlOiBGaWxlIH0pIHtcbiAgICAgICAgdGhpcy5maWxlTGlzdC5wdXNoKGZpbGUpO1xuICAgIH1cblxuICAgIHJlbW92ZVVwbG9hZEltYWdlKGZpbGU6IEZpbGUpIHtcbiAgICAgICAgdGhpcy5maWxlTGlzdC5zcGxpY2UoXG4gICAgICAgICAgICB0aGlzLmZpbGVMaXN0LmZpbmRJbmRleChpdGVtID0+IGl0ZW0uZmlsZSA9PT0gZmlsZSksXG4gICAgICAgICAgICAxXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
@@ -13,9 +13,8 @@ import { unWrap } from './un-wrap';
|
|
|
13
13
|
import { splitNode } from './split-node';
|
|
14
14
|
import { deleteElement } from './delete-element';
|
|
15
15
|
import { setEndSelection } from './set-end-selection';
|
|
16
|
-
import { insertTheElements } from './insert-elements';
|
|
17
16
|
import { closeConversionHint } from './close-conversion-hint';
|
|
18
17
|
import { handleContinualDeleteBackward } from './handle-continual-delete-backward';
|
|
19
18
|
import { handleContinualInsertBreak } from './handle-continual-insert-break';
|
|
20
|
-
export { setMarks, clearMarks, insertElement, insertElementNext, insertParagraph, setNode, unwrapNodesByType, onKeyDownResetBlockType, moveChildren, applyDeepToNodes, mergeDeepToNodes, unWrap, splitNode, deleteElement, setEndSelection,
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
export { setMarks, clearMarks, insertElement, insertElementNext, insertParagraph, setNode, unwrapNodesByType, onKeyDownResetBlockType, moveChildren, applyDeepToNodes, mergeDeepToNodes, unWrap, splitNode, deleteElement, setEndSelection, closeConversionHint, handleContinualDeleteBackward, handleContinualInsertBreak };
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdHJhbnNmb3Jtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQ0gsUUFBUSxFQUNSLFVBQVUsRUFDVixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULGFBQWEsRUFDYixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldE1hcmtzIH0gZnJvbSAnLi9zZXQtbWFya3MnO1xuaW1wb3J0IHsgY2xlYXJNYXJrcyB9IGZyb20gJy4vY2xlYXItbWFya3MnO1xuaW1wb3J0IHsgaW5zZXJ0RWxlbWVudCB9IGZyb20gJy4vaW5zZXJ0LWVsZW1lbnQnO1xuaW1wb3J0IHsgaW5zZXJ0RWxlbWVudE5leHQgfSBmcm9tICcuL2luc2VydC1lbGVtZW50LW5leHQnO1xuaW1wb3J0IHsgc2V0Tm9kZSB9IGZyb20gJy4vc2V0LW5vZGUnO1xuaW1wb3J0IHsgdW53cmFwTm9kZXNCeVR5cGUgfSBmcm9tICcuL3Vud3JhcC1ub2Rlcy1ieS10eXBlJztcbmltcG9ydCB7IG9uS2V5RG93blJlc2V0QmxvY2tUeXBlIH0gZnJvbSAnLi9vbi1rZXlkb3duLXJlc2V0LWJsb2NrLXR5cGUnO1xuaW1wb3J0IHsgbW92ZUNoaWxkcmVuIH0gZnJvbSAnLi9tb3ZlLWNoaWxkcmVuJztcbmltcG9ydCB7IGluc2VydFBhcmFncmFwaCB9IGZyb20gJy4vaW5zZXJ0LXBhcmFncmFwaCc7XG5pbXBvcnQgeyBhcHBseURlZXBUb05vZGVzIH0gZnJvbSAnLi9hcHBseS1kZWVwLXRvLW5vZGVzJztcbmltcG9ydCB7IG1lcmdlRGVlcFRvTm9kZXMgfSBmcm9tICcuL21lcmdlLWRlZXAtdG8tbm9kZXMnO1xuaW1wb3J0IHsgdW5XcmFwIH0gZnJvbSAnLi91bi13cmFwJztcbmltcG9ydCB7IHNwbGl0Tm9kZSB9IGZyb20gJy4vc3BsaXQtbm9kZSc7XG5pbXBvcnQgeyBkZWxldGVFbGVtZW50IH0gZnJvbSAnLi9kZWxldGUtZWxlbWVudCc7XG5pbXBvcnQgeyBzZXRFbmRTZWxlY3Rpb24gfSBmcm9tICcuL3NldC1lbmQtc2VsZWN0aW9uJztcbmltcG9ydCB7IGNsb3NlQ29udmVyc2lvbkhpbnQgfSBmcm9tICcuL2Nsb3NlLWNvbnZlcnNpb24taGludCc7XG5pbXBvcnQgeyBoYW5kbGVDb250aW51YWxEZWxldGVCYWNrd2FyZCB9IGZyb20gJy4vaGFuZGxlLWNvbnRpbnVhbC1kZWxldGUtYmFja3dhcmQnO1xuaW1wb3J0IHsgaGFuZGxlQ29udGludWFsSW5zZXJ0QnJlYWsgfSBmcm9tICcuL2hhbmRsZS1jb250aW51YWwtaW5zZXJ0LWJyZWFrJztcblxuZXhwb3J0IHtcbiAgICBzZXRNYXJrcyxcbiAgICBjbGVhck1hcmtzLFxuICAgIGluc2VydEVsZW1lbnQsXG4gICAgaW5zZXJ0RWxlbWVudE5leHQsXG4gICAgaW5zZXJ0UGFyYWdyYXBoLFxuICAgIHNldE5vZGUsXG4gICAgdW53cmFwTm9kZXNCeVR5cGUsXG4gICAgb25LZXlEb3duUmVzZXRCbG9ja1R5cGUsXG4gICAgbW92ZUNoaWxkcmVuLFxuICAgIGFwcGx5RGVlcFRvTm9kZXMsXG4gICAgbWVyZ2VEZWVwVG9Ob2RlcyxcbiAgICB1bldyYXAsXG4gICAgc3BsaXROb2RlLFxuICAgIGRlbGV0ZUVsZW1lbnQsXG4gICAgc2V0RW5kU2VsZWN0aW9uLFxuICAgIGNsb3NlQ29udmVyc2lvbkhpbnQsXG4gICAgaGFuZGxlQ29udGludWFsRGVsZXRlQmFja3dhcmQsXG4gICAgaGFuZGxlQ29udGludWFsSW5zZXJ0QnJlYWtcbn07XG4iXX0=
|
|
@@ -5,10 +5,10 @@ export const autoFocus = (editor, isFocus) => {
|
|
|
5
5
|
setTimeout(() => {
|
|
6
6
|
if (editor && editor.children.length > 0 && isFocus) {
|
|
7
7
|
HistoryEditor.withoutMerging(editor, () => {
|
|
8
|
-
AngularEditor.focus(editor);
|
|
9
8
|
Transforms.select(editor, Editor.start(editor, [0]));
|
|
9
|
+
AngularEditor.focus(editor);
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1mb2N1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy91dGlscy9hdXRvLWZvY3VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO0lBQzFELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDWixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksT0FBTyxFQUFFO1lBQ2pELGFBQWEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDdEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgSGlzdG9yeUVkaXRvciB9IGZyb20gJ3NsYXRlLWhpc3RvcnknO1xuXG5leHBvcnQgY29uc3QgYXV0b0ZvY3VzID0gKGVkaXRvcjogRWRpdG9yLCBpc0ZvY3VzOiBib29sZWFuKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChlZGl0b3IgJiYgZWRpdG9yLmNoaWxkcmVuLmxlbmd0aCA+IDAgJiYgaXNGb2N1cykge1xuICAgICAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0TWVyZ2luZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIEVkaXRvci5zdGFydChlZGl0b3IsIFswXSkpO1xuICAgICAgICAgICAgICAgIEFuZ3VsYXJFZGl0b3IuZm9jdXMoZWRpdG9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuIl19
|
|
@@ -18,7 +18,10 @@ export const extractFragment = (data, deleteKey = ELEMENT_UNIQUE_ID) => {
|
|
|
18
18
|
const fragment = data.getData(`application/${CLIPBOARD_FORMAT_KEY}`);
|
|
19
19
|
if (fragment) {
|
|
20
20
|
const decoded = decodeURIComponent(window.atob(fragment));
|
|
21
|
-
|
|
21
|
+
let nodes = JSON.parse(decoded);
|
|
22
|
+
if (!Array.isArray(nodes)) {
|
|
23
|
+
nodes = [nodes];
|
|
24
|
+
}
|
|
22
25
|
// delete key to avoid duplicate keys
|
|
23
26
|
if (deleteKey) {
|
|
24
27
|
deleteElementKey(nodes, deleteKey);
|
|
@@ -38,4 +41,23 @@ export function deleteElementKey(nodes, key) {
|
|
|
38
41
|
});
|
|
39
42
|
return nodes;
|
|
40
43
|
}
|
|
41
|
-
|
|
44
|
+
/**
|
|
45
|
+
* 删除 text 节点的 颜色/背景色
|
|
46
|
+
* @param node
|
|
47
|
+
*/
|
|
48
|
+
export function deleteColorAndBackgroundColorOfText(node) {
|
|
49
|
+
node.children.forEach((child) => {
|
|
50
|
+
if (Text.isText(child)) {
|
|
51
|
+
if (child['color']) {
|
|
52
|
+
delete child['color'];
|
|
53
|
+
}
|
|
54
|
+
if (child['background-color']) {
|
|
55
|
+
delete child['background-color'];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
deleteColorAndBackgroundColorOfText(child);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvZnJhZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFRLE1BQU0sT0FBTyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWMsRUFBRSxRQUFpQixFQUFFLEVBQUU7SUFDL0QsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELElBQUksVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDakgsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0tBQzVDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBYyxFQUFFLFFBQWlCLEVBQUUsRUFBRTtJQUM3RCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkYsSUFBSSxTQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUM3RyxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDekM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFrQixFQUFFLFNBQVMsR0FBRyxpQkFBaUIsRUFBRSxFQUFFO0lBQ2pGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDckUsSUFBSSxRQUFRLEVBQUU7UUFDVixNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQjtRQUNELHFDQUFxQztRQUNyQyxJQUFJLFNBQVMsRUFBRTtZQUNYLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN0QztRQUNELE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxHQUFXO0lBQ3ZELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNuQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDMUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN4QztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQ0FBbUMsQ0FBQyxJQUFhO0lBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDNUIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNoQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN6QjtZQUNELElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDcEM7U0FDSjthQUFNO1lBQ0gsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIFRleHQsIE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBDTElQQk9BUkRfRk9STUFUX0tFWSwgRUxFTUVOVF9VTklRVUVfSUQgfSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdCc7XG5cbmV4cG9ydCBjb25zdCBnZXRTdGFydEJsb2NrID0gKGVkaXRvcjogRWRpdG9yLCBmcmFnbWVudDogRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGZpcnN0Q2hpbGQgPSBmcmFnbWVudC5jaGlsZHJlbiAmJiBmcmFnbWVudC5jaGlsZHJlblswXTtcbiAgICBpZiAoZmlyc3RDaGlsZCAmJiAhRWRpdG9yLmlzSW5saW5lKGVkaXRvciwgZmlyc3RDaGlsZCkgJiYgIVRleHQuaXNUZXh0KGZpcnN0Q2hpbGQpICYmIEVsZW1lbnQuaXNFbGVtZW50KGZpcnN0Q2hpbGQpKSB7XG4gICAgICAgIHJldHVybiBnZXRTdGFydEJsb2NrKGVkaXRvciwgZmlyc3RDaGlsZCk7XG4gICAgfVxuICAgIHJldHVybiBmcmFnbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbmRCbG9jayA9IChlZGl0b3I6IEVkaXRvciwgZnJhZ21lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBsYXN0Q2hpbGQgPSBmcmFnbWVudC5jaGlsZHJlbiAmJiBmcmFnbWVudC5jaGlsZHJlbltmcmFnbWVudC5jaGlsZHJlbi5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdENoaWxkICYmICFFZGl0b3IuaXNJbmxpbmUoZWRpdG9yLCBsYXN0Q2hpbGQpICYmICFUZXh0LmlzVGV4dChsYXN0Q2hpbGQpICYmIEVsZW1lbnQuaXNFbGVtZW50KGxhc3RDaGlsZCkpIHtcbiAgICAgICAgcmV0dXJuIGdldEVuZEJsb2NrKGVkaXRvciwgbGFzdENoaWxkKTtcbiAgICB9XG4gICAgcmV0dXJuIGZyYWdtZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RGcmFnbWVudCA9IChkYXRhOiBEYXRhVHJhbnNmZXIsIGRlbGV0ZUtleSA9IEVMRU1FTlRfVU5JUVVFX0lEKSA9PiB7XG4gICAgY29uc3QgZnJhZ21lbnQgPSBkYXRhLmdldERhdGEoYGFwcGxpY2F0aW9uLyR7Q0xJUEJPQVJEX0ZPUk1BVF9LRVl9YCk7XG4gICAgaWYgKGZyYWdtZW50KSB7XG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmF0b2IoZnJhZ21lbnQpKTtcbiAgICAgICAgbGV0IG5vZGVzID0gSlNPTi5wYXJzZShkZWNvZGVkKSBhcyBFbGVtZW50W107XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShub2RlcykpIHtcbiAgICAgICAgICAgIG5vZGVzID0gW25vZGVzXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBkZWxldGUga2V5IHRvIGF2b2lkIGR1cGxpY2F0ZSBrZXlzXG4gICAgICAgIGlmIChkZWxldGVLZXkpIHtcbiAgICAgICAgICAgIGRlbGV0ZUVsZW1lbnRLZXkobm9kZXMsIGRlbGV0ZUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGVzO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUVsZW1lbnRLZXkobm9kZXM6IE5vZGVbXSwga2V5OiBzdHJpbmcpIHtcbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIGlmIChub2RlW2tleV0pIHtcbiAgICAgICAgICAgIGRlbGV0ZSBub2RlW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGRlbGV0ZUVsZW1lbnRLZXkobm9kZS5jaGlsZHJlbiwga2V5KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBub2Rlcztcbn1cblxuLyoqXG4gKiDliKDpmaQgdGV4dCDoioLngrnnmoQg6aKc6ImyL+iDjOaZr+iJslxuICogQHBhcmFtIG5vZGUgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWxldGVDb2xvckFuZEJhY2tncm91bmRDb2xvck9mVGV4dChub2RlOiBFbGVtZW50KSB7XG4gICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICBpZiAoVGV4dC5pc1RleHQoY2hpbGQpKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGRbJ2NvbG9yJ10pIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgY2hpbGRbJ2NvbG9yJ107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2hpbGRbJ2JhY2tncm91bmQtY29sb3InXSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBjaGlsZFsnYmFja2dyb3VuZC1jb2xvciddO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlQ29sb3JBbmRCYWNrZ3JvdW5kQ29sb3JPZlRleHQoY2hpbGQpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|