@talrace/ngx-noder 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +7 -1
- package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +2 -2
- package/esm2022/lib/editor/content/helpers/link.helper.mjs +6 -0
- package/esm2022/lib/editor/display/layers/text.layer.mjs +7 -8
- package/esm2022/lib/editor/execution/edit.session.mjs +18 -5
- package/esm2022/lib/editor/execution/editor.mjs +4 -3
- package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +42 -1
- package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +38 -20
- package/esm2022/lib/editor/operations/operations-helper.helper.mjs +16 -8
- package/esm2022/lib/models/generated/link.model.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/talrace-ngx-noder.mjs +139 -51
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/editor/content/helpers/link.helper.d.ts +4 -0
- package/lib/editor/display/layers/text.layer.d.ts +1 -1
- package/lib/editor/execution/edit.session.d.ts +1 -0
- package/lib/editor/execution/helpers/format-style.helper.d.ts +2 -0
- package/lib/editor/operations/helpers/link-operations.helper.d.ts +2 -1
- package/lib/models/generated/link.model.d.ts +3 -1
- package/package.json +8 -8
- package/public-api.d.ts +1 -0
- package/src/styles.scss +0 -1
- package/src/scss/_fonts.scss +0 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ContentStyleHelper } from '../../content/helpers/content-style.helper';
|
|
2
|
+
import { FormatModel } from '../../../models/generated/format.model';
|
|
2
3
|
export class FormatStyleHelper {
|
|
3
4
|
static getFormatsAtRange(formats, startIndex, endIndex) {
|
|
4
5
|
const firstIndex = formats.findIndex(x => x.endIndex >= startIndex);
|
|
@@ -28,5 +29,45 @@ export class FormatStyleHelper {
|
|
|
28
29
|
const firstIndex = formats.findIndex(x => x.endIndex >= index);
|
|
29
30
|
return firstIndex > 0 ? formats[firstIndex - 1] : null;
|
|
30
31
|
}
|
|
32
|
+
static combineSection(formats, links, startIndex, endIndex) {
|
|
33
|
+
const result = this.getFormatsAtRange(formats, startIndex, endIndex).map(x => new FormatModel({
|
|
34
|
+
...x,
|
|
35
|
+
startIndex: x.startIndex < startIndex ? startIndex : x.startIndex,
|
|
36
|
+
endIndex: x.endIndex > endIndex ? endIndex : x.endIndex
|
|
37
|
+
}));
|
|
38
|
+
const filteredLinks = links.filter(x => x.startIndex <= endIndex && x.endIndex >= startIndex);
|
|
39
|
+
for (let i = result.length - 1; i >= 0; i--) {
|
|
40
|
+
const linksInFormat = filteredLinks.filter(x => x.startIndex <= result[i].endIndex && x.endIndex >= result[i].startIndex);
|
|
41
|
+
if (!linksInFormat.length) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
for (let j = linksInFormat.length - 1; j >= 0; j--) {
|
|
45
|
+
if (linksInFormat[j].startIndex <= result[i].startIndex && linksInFormat[j].endIndex >= result[i].endIndex) {
|
|
46
|
+
result.splice(i, 1);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (linksInFormat[j].endIndex > result[i].endIndex && linksInFormat[j].startIndex > result[i].startIndex) {
|
|
50
|
+
result[i].endIndex = linksInFormat[j].startIndex - 1;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (linksInFormat[j].startIndex < result[i].startIndex && linksInFormat[j].endIndex < result[i].endIndex) {
|
|
54
|
+
result[i].startIndex = linksInFormat[j].endIndex + 1;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (linksInFormat[j].startIndex >= result[i].startIndex && linksInFormat[j].endIndex <= result[i].endIndex) {
|
|
58
|
+
result.push(new FormatModel({ ...result[i], startIndex: linksInFormat[j].endIndex + 1 }));
|
|
59
|
+
result[i].endIndex = linksInFormat[j].startIndex - 1;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
filteredLinks.forEach(x => {
|
|
64
|
+
const formatsStyles = x.formats
|
|
65
|
+
.filter(y => x.startIndex + y.startIndex <= endIndex)
|
|
66
|
+
.map(y => new FormatModel({ ...y, startIndex: x.startIndex + y.startIndex, endIndex: x.startIndex + y.endIndex }));
|
|
67
|
+
result.push(...formatsStyles);
|
|
68
|
+
});
|
|
69
|
+
result.sort((a, b) => a.startIndex - b.startIndex);
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
31
72
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXN0eWxlLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9leGVjdXRpb24vaGVscGVycy9mb3JtYXQtc3R5bGUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR2hGLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQXNCLEVBQUUsVUFBa0IsRUFBRSxRQUFnQjtRQUNqRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFDM0IsT0FBTyxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxRQUFRLEVBQUU7WUFDOUUsU0FBUyxFQUFFLENBQUM7U0FDZjtRQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBc0IsRUFBRSxLQUFhO1FBQ3pELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBc0IsRUFBRSxVQUFrQixFQUFFLFFBQWdCO1FBQzVFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUMzQixPQUFPLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsRUFBRTtZQUM3RSxTQUFTLEVBQUUsQ0FBQztTQUNmO1FBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxJQUFJLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdEYsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDOUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDeEI7U0FDSjtJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBc0IsRUFBRSxLQUFhO1FBQzdELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQy9ELE9BQU8sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRTdHlsZUhlbHBlciB9IGZyb20gJy4uLy4uL2NvbnRlbnQvaGVscGVycy9jb250ZW50LXN0eWxlLmhlbHBlcic7XG5pbXBvcnQgeyBGb3JtYXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZm9ybWF0Lm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEZvcm1hdFN0eWxlSGVscGVyIHtcbiAgICBzdGF0aWMgZ2V0Rm9ybWF0c0F0UmFuZ2UoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyKTogRm9ybWF0TW9kZWxbXSB7XG4gICAgICAgIGNvbnN0IGZpcnN0SW5kZXggPSBmb3JtYXRzLmZpbmRJbmRleCh4ID0+IHguZW5kSW5kZXggPj0gc3RhcnRJbmRleCk7XG4gICAgICAgIGxldCBsYXN0SW5kZXggPSBmaXJzdEluZGV4O1xuICAgICAgICB3aGlsZSAobGFzdEluZGV4IDwgZm9ybWF0cy5sZW5ndGggLSAxICYmIGZvcm1hdHNbbGFzdEluZGV4XT8uZW5kSW5kZXggPCBlbmRJbmRleCkge1xuICAgICAgICAgICAgbGFzdEluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0cy5zbGljZShmaXJzdEluZGV4LCBsYXN0SW5kZXggKyAxKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0Rm9ybWF0QXRJbmRleChmb3JtYXRzOiBGb3JtYXRNb2RlbFtdLCBpbmRleDogbnVtYmVyKTogRm9ybWF0TW9kZWwge1xuICAgICAgICByZXR1cm4gZm9ybWF0cy5maW5kKHggPT4geC5lbmRJbmRleCA+PSBpbmRleCk7XG4gICAgfVxuXG4gICAgc3RhdGljIG1lcmdlRm9ybWF0cyhmb3JtYXRzOiBGb3JtYXRNb2RlbFtdLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlyc3RJbmRleCA9IGZvcm1hdHMuZmluZEluZGV4KHggPT4geC5lbmRJbmRleCA+PSBzdGFydEluZGV4KTtcbiAgICAgICAgbGV0IGxhc3RJbmRleCA9IGZpcnN0SW5kZXg7XG4gICAgICAgIHdoaWxlIChsYXN0SW5kZXggPCBmb3JtYXRzLmxlbmd0aCAtIDEgJiYgZm9ybWF0c1tsYXN0SW5kZXhdLmVuZEluZGV4IDwgZW5kSW5kZXgpIHtcbiAgICAgICAgICAgIGxhc3RJbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSBsYXN0SW5kZXg7IGkgPiBmaXJzdEluZGV4OyBpLS0pIHtcbiAgICAgICAgICAgIGlmIChDb250ZW50U3R5bGVIZWxwZXIuYXJlU2FtZVRleHRTdHlsZXMoZm9ybWF0c1tpXS50ZXh0U3R5bGUsIGZvcm1hdHNbaSAtIDFdLnRleHRTdHlsZSkpIHtcbiAgICAgICAgICAgICAgICBmb3JtYXRzW2kgLSAxXS5lbmRJbmRleCA9IGZvcm1hdHNbaV0uZW5kSW5kZXg7XG4gICAgICAgICAgICAgICAgZm9ybWF0cy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0UHJldkZvcm1hdEF0SW5kZXgoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgaW5kZXg6IG51bWJlcik6IEZvcm1hdE1vZGVsIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGZpcnN0SW5kZXggPSBmb3JtYXRzLmZpbmRJbmRleCh4ID0+IHguZW5kSW5kZXggPj0gaW5kZXgpO1xuICAgICAgICByZXR1cm4gZmlyc3RJbmRleCA+IDAgPyBmb3JtYXRzW2ZpcnN0SW5kZXggLSAxXSA6IG51bGw7XG4gICAgfVxufVxuIl19
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXN0eWxlLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9leGVjdXRpb24vaGVscGVycy9mb3JtYXQtc3R5bGUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUdyRSxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFzQixFQUFFLFVBQWtCLEVBQUUsUUFBZ0I7UUFDakYsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLENBQUM7UUFDcEUsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDO1FBQzNCLE9BQU8sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEdBQUcsUUFBUSxFQUFFO1lBQzlFLFNBQVMsRUFBRSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQXNCLEVBQUUsS0FBYTtRQUN6RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQXNCLEVBQUUsVUFBa0IsRUFBRSxRQUFnQjtRQUM1RSxNQUFNLFVBQVUsR0FBRyxP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TUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDMUYsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztpQkFDeEQ7YUFDSjtTQUNKO1FBRUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0QixNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsT0FBTztpQkFDMUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQztpQkFDcEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkgsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRTdHlsZUhlbHBlciB9IGZyb20gJy4uLy4uL2NvbnRlbnQvaGVscGVycy9jb250ZW50LXN0eWxlLmhlbHBlcic7XG5pbXBvcnQgeyBGb3JtYXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZm9ybWF0Lm1vZGVsJztcbmltcG9ydCB7IExpbmtNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvbGluay5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBGb3JtYXRTdHlsZUhlbHBlciB7XG4gICAgc3RhdGljIGdldEZvcm1hdHNBdFJhbmdlKGZvcm1hdHM6IEZvcm1hdE1vZGVsW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlcik6IEZvcm1hdE1vZGVsW10ge1xuICAgICAgICBjb25zdCBmaXJzdEluZGV4ID0gZm9ybWF0cy5maW5kSW5kZXgoeCA9PiB4LmVuZEluZGV4ID49IHN0YXJ0SW5kZXgpO1xuICAgICAgICBsZXQgbGFzdEluZGV4ID0gZmlyc3RJbmRleDtcbiAgICAgICAgd2hpbGUgKGxhc3RJbmRleCA8IGZvcm1hdHMubGVuZ3RoIC0gMSAmJiBmb3JtYXRzW2xhc3RJbmRleF0/LmVuZEluZGV4IDwgZW5kSW5kZXgpIHtcbiAgICAgICAgICAgIGxhc3RJbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdHMuc2xpY2UoZmlyc3RJbmRleCwgbGFzdEluZGV4ICsgMSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEZvcm1hdEF0SW5kZXgoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgaW5kZXg6IG51bWJlcik6IEZvcm1hdE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdHMuZmluZCh4ID0+IHguZW5kSW5kZXggPj0gaW5kZXgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBtZXJnZUZvcm1hdHMoZm9ybWF0czogRm9ybWF0TW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpcnN0SW5kZXggPSBmb3JtYXRzLmZpbmRJbmRleCh4ID0+IHguZW5kSW5kZXggPj0gc3RhcnRJbmRleCk7XG4gICAgICAgIGxldCBsYXN0SW5kZXggPSBmaXJzdEluZGV4O1xuICAgICAgICB3aGlsZSAobGFzdEluZGV4IDwgZm9ybWF0cy5sZW5ndGggLSAxICYmIGZvcm1hdHNbbGFzdEluZGV4XS5lbmRJbmRleCA8IGVuZEluZGV4KSB7XG4gICAgICAgICAgICBsYXN0SW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gbGFzdEluZGV4OyBpID4gZmlyc3RJbmRleDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAoQ29udGVudFN0eWxlSGVscGVyLmFyZVNhbWVUZXh0U3R5bGVzKGZvcm1hdHNbaV0udGV4dFN0eWxlLCBmb3JtYXRzW2kgLSAxXS50ZXh0U3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgZm9ybWF0c1tpIC0gMV0uZW5kSW5kZXggPSBmb3JtYXRzW2ldLmVuZEluZGV4O1xuICAgICAgICAgICAgICAgIGZvcm1hdHMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGdldFByZXZGb3JtYXRBdEluZGV4KGZvcm1hdHM6IEZvcm1hdE1vZGVsW10sIGluZGV4OiBudW1iZXIpOiBGb3JtYXRNb2RlbCB8IG51bGwge1xuICAgICAgICBjb25zdCBmaXJzdEluZGV4ID0gZm9ybWF0cy5maW5kSW5kZXgoeCA9PiB4LmVuZEluZGV4ID49IGluZGV4KTtcbiAgICAgICAgcmV0dXJuIGZpcnN0SW5kZXggPiAwID8gZm9ybWF0c1tmaXJzdEluZGV4IC0gMV0gOiBudWxsO1xuICAgIH1cblxuICAgIHN0YXRpYyBjb21iaW5lU2VjdGlvbihmb3JtYXRzOiBGb3JtYXRNb2RlbFtdLCBsaW5rczogTGlua01vZGVsW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlcik6IEZvcm1hdE1vZGVsW10ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldEZvcm1hdHNBdFJhbmdlKGZvcm1hdHMsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KS5tYXAoXG4gICAgICAgICAgICB4ID0+XG4gICAgICAgICAgICAgICAgbmV3IEZvcm1hdE1vZGVsKHtcbiAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleDogeC5zdGFydEluZGV4IDwgc3RhcnRJbmRleCA/IHN0YXJ0SW5kZXggOiB4LnN0YXJ0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGVuZEluZGV4OiB4LmVuZEluZGV4ID4gZW5kSW5kZXggPyBlbmRJbmRleCA6IHguZW5kSW5kZXhcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZExpbmtzID0gbGlua3MuZmlsdGVyKHggPT4geC5zdGFydEluZGV4IDw9IGVuZEluZGV4ICYmIHguZW5kSW5kZXggPj0gc3RhcnRJbmRleCk7XG4gICAgICAgIGZvciAobGV0IGkgPSByZXN1bHQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmtzSW5Gb3JtYXQgPSBmaWx0ZXJlZExpbmtzLmZpbHRlcih4ID0+IHguc3RhcnRJbmRleCA8PSByZXN1bHRbaV0uZW5kSW5kZXggJiYgeC5lbmRJbmRleCA+PSByZXN1bHRbaV0uc3RhcnRJbmRleCk7XG4gICAgICAgICAgICBpZiAoIWxpbmtzSW5Gb3JtYXQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAobGV0IGogPSBsaW5rc0luRm9ybWF0Lmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxpbmtzSW5Gb3JtYXRbal0uc3RhcnRJbmRleCA8PSByZXN1bHRbaV0uc3RhcnRJbmRleCAmJiBsaW5rc0luRm9ybWF0W2pdLmVuZEluZGV4ID49IHJlc3VsdFtpXS5lbmRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobGlua3NJbkZvcm1hdFtqXS5lbmRJbmRleCA+IHJlc3VsdFtpXS5lbmRJbmRleCAmJiBsaW5rc0luRm9ybWF0W2pdLnN0YXJ0SW5kZXggPiByZXN1bHRbaV0uc3RhcnRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbaV0uZW5kSW5kZXggPSBsaW5rc0luRm9ybWF0W2pdLnN0YXJ0SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobGlua3NJbkZvcm1hdFtqXS5zdGFydEluZGV4IDwgcmVzdWx0W2ldLnN0YXJ0SW5kZXggJiYgbGlua3NJbkZvcm1hdFtqXS5lbmRJbmRleCA8IHJlc3VsdFtpXS5lbmRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbaV0uc3RhcnRJbmRleCA9IGxpbmtzSW5Gb3JtYXRbal0uZW5kSW5kZXggKyAxO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobGlua3NJbkZvcm1hdFtqXS5zdGFydEluZGV4ID49IHJlc3VsdFtpXS5zdGFydEluZGV4ICYmIGxpbmtzSW5Gb3JtYXRbal0uZW5kSW5kZXggPD0gcmVzdWx0W2ldLmVuZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBGb3JtYXRNb2RlbCh7IC4uLnJlc3VsdFtpXSwgc3RhcnRJbmRleDogbGlua3NJbkZvcm1hdFtqXS5lbmRJbmRleCArIDEgfSkpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbaV0uZW5kSW5kZXggPSBsaW5rc0luRm9ybWF0W2pdLnN0YXJ0SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZpbHRlcmVkTGlua3MuZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHNTdHlsZXMgPSB4LmZvcm1hdHNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHkgPT4geC5zdGFydEluZGV4ICsgeS5zdGFydEluZGV4IDw9IGVuZEluZGV4KVxuICAgICAgICAgICAgICAgIC5tYXAoeSA9PiBuZXcgRm9ybWF0TW9kZWwoeyAuLi55LCBzdGFydEluZGV4OiB4LnN0YXJ0SW5kZXggKyB5LnN0YXJ0SW5kZXgsIGVuZEluZGV4OiB4LnN0YXJ0SW5kZXggKyB5LmVuZEluZGV4IH0pKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLmZvcm1hdHNTdHlsZXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnNvcnQoKGEsIGIpID0+IGEuc3RhcnRJbmRleCAtIGIuc3RhcnRJbmRleCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIl19
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
import { FormatModel } from '../../../models/generated/format.model';
|
|
2
|
+
import { FormatOperationsHelper } from './format-operations.helper';
|
|
1
3
|
import { LinkModel } from '../../../models/generated/link.model';
|
|
2
4
|
export class LinkOperationsHelper {
|
|
3
|
-
static insert(links, link,
|
|
4
|
-
LinkOperationsHelper.insertContent(links,
|
|
5
|
-
const linkModel = new LinkModel({
|
|
6
|
-
|
|
5
|
+
static insert(links, link, startIndex, endIndex, textStyle) {
|
|
6
|
+
LinkOperationsHelper.insertContent(links, startIndex, endIndex - startIndex + 1);
|
|
7
|
+
const linkModel = new LinkModel({
|
|
8
|
+
startIndex: startIndex,
|
|
9
|
+
link,
|
|
10
|
+
endIndex,
|
|
11
|
+
formats: [new FormatModel({ startIndex: 0, endIndex: endIndex - startIndex, textStyle })]
|
|
12
|
+
});
|
|
13
|
+
const index = links.findIndex(x => x.startIndex > linkModel.startIndex);
|
|
7
14
|
if (index < 0) {
|
|
8
15
|
links.push(linkModel);
|
|
9
16
|
}
|
|
@@ -13,12 +20,15 @@ export class LinkOperationsHelper {
|
|
|
13
20
|
}
|
|
14
21
|
static insertContent(links, insertIndex, textLength) {
|
|
15
22
|
for (let link of links) {
|
|
16
|
-
if (link.
|
|
23
|
+
if (link.startIndex < insertIndex && link.endIndex >= insertIndex) {
|
|
17
24
|
link.endIndex += textLength;
|
|
25
|
+
const indexInLink = insertIndex - link.startIndex;
|
|
26
|
+
const format = link.formats.find(x => x.startIndex <= indexInLink && x.endIndex >= indexInLink);
|
|
27
|
+
format.endIndex += textLength;
|
|
18
28
|
continue;
|
|
19
29
|
}
|
|
20
|
-
if (link.
|
|
21
|
-
link.
|
|
30
|
+
if (link.startIndex >= insertIndex) {
|
|
31
|
+
link.startIndex += textLength;
|
|
22
32
|
link.endIndex += textLength;
|
|
23
33
|
}
|
|
24
34
|
}
|
|
@@ -26,32 +36,40 @@ export class LinkOperationsHelper {
|
|
|
26
36
|
static removeContent(links, startIndex, endIndex) {
|
|
27
37
|
const length = endIndex - startIndex + 1;
|
|
28
38
|
for (let i = links.length - 1; i >= 0; i--) {
|
|
29
|
-
if (links[i].
|
|
30
|
-
links[i].insertIndex -= length;
|
|
31
|
-
links[i].endIndex -= length;
|
|
32
|
-
continue;
|
|
33
|
-
}
|
|
34
|
-
if (links[i].insertIndex >= startIndex && links[i].endIndex <= endIndex) {
|
|
39
|
+
if (links[i].startIndex >= startIndex && links[i].endIndex <= endIndex) {
|
|
35
40
|
links.splice(i, 1);
|
|
36
41
|
continue;
|
|
37
42
|
}
|
|
38
|
-
if (
|
|
43
|
+
if (endIndex < links[i].startIndex) {
|
|
44
|
+
links[i].startIndex -= length;
|
|
39
45
|
links[i].endIndex -= length;
|
|
40
46
|
continue;
|
|
41
47
|
}
|
|
42
|
-
if (links[i].
|
|
43
|
-
|
|
48
|
+
if (links[i].startIndex <= startIndex && links[i].endIndex >= endIndex) {
|
|
49
|
+
const startInLink = startIndex - links[i].startIndex;
|
|
50
|
+
const endInLink = startInLink + length - 1;
|
|
51
|
+
links[i].endIndex -= length;
|
|
52
|
+
FormatOperationsHelper.removeContent(links[i].formats, startInLink, endInLink);
|
|
44
53
|
continue;
|
|
45
54
|
}
|
|
46
|
-
if (links[i].
|
|
47
|
-
links[i].
|
|
55
|
+
if (links[i].startIndex >= startIndex && links[i].startIndex <= endIndex) {
|
|
56
|
+
const endInLink = links[i].startIndex - startIndex - 1;
|
|
57
|
+
links[i].startIndex = startIndex;
|
|
48
58
|
links[i].endIndex -= length;
|
|
59
|
+
FormatOperationsHelper.removeContent(links[i].formats, 0, endInLink);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (links[i].endIndex >= startIndex && links[i].endIndex <= endIndex) {
|
|
63
|
+
const startInLink = startIndex - links[i].startIndex;
|
|
64
|
+
const endInLink = links[i].formats[links[i].formats.length - 1].endIndex;
|
|
65
|
+
links[i].endIndex = startIndex - 1;
|
|
66
|
+
FormatOperationsHelper.removeContent(links[i].formats, startInLink, endInLink);
|
|
49
67
|
}
|
|
50
68
|
}
|
|
51
69
|
}
|
|
52
70
|
static restore(links, startIndex, contentLength, newlinks) {
|
|
53
71
|
this.insertContent(links, startIndex, contentLength);
|
|
54
|
-
let indexInElements = links.findIndex(x => x.
|
|
72
|
+
let indexInElements = links.findIndex(x => x.startIndex >= startIndex);
|
|
55
73
|
indexInElements = indexInElements === -1 ? links.length : indexInElements;
|
|
56
74
|
links.splice(indexInElements, 0, ...newlinks);
|
|
57
75
|
}
|
|
@@ -60,4 +78,4 @@ export class LinkOperationsHelper {
|
|
|
60
78
|
this.insertContent(links, startIndex, length);
|
|
61
79
|
}
|
|
62
80
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1vcGVyYXRpb25zLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9vcGVyYXRpb25zL2hlbHBlcnMvbGluay1vcGVyYXRpb25zLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFakUsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWtCLEVBQUUsSUFBWSxFQUFFLFdBQW1CLEVBQUUsUUFBZ0I7UUFDakYsb0JBQW9CLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDWCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pCO2FBQU07WUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFrQixFQUFFLFdBQW1CLEVBQUUsVUFBa0I7UUFDNUUsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLFdB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Q0FBQyxjQUFjLENBQUMsS0FBa0IsRUFBRSxVQUFrQixFQUFFLFFBQWdCLEVBQUUsTUFBYztRQUMxRixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpbmtNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvbGluay5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBMaW5rT3BlcmF0aW9uc0hlbHBlciB7XG4gICAgc3RhdGljIGluc2VydChsaW5rczogTGlua01vZGVsW10sIGxpbms6IHN0cmluZywgaW5zZXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBMaW5rT3BlcmF0aW9uc0hlbHBlci5pbnNlcnRDb250ZW50KGxpbmtzLCBpbnNlcnRJbmRleCwgbGluay5sZW5ndGgpO1xuICAgICAgICBjb25zdCBsaW5rTW9kZWwgPSBuZXcgTGlua01vZGVsKHsgaW5zZXJ0SW5kZXgsIGxpbmssIGVuZEluZGV4IH0pO1xuICAgICAgICBjb25zdCBpbmRleCA9IGxpbmtzLmZpbmRJbmRleCh4ID0+IHguaW5zZXJ0SW5kZXggPiBsaW5rTW9kZWwuaW5zZXJ0SW5kZXgpO1xuICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICBsaW5rcy5wdXNoKGxpbmtNb2RlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaW5rcy5zcGxpY2UoaW5kZXgsIDAsIGxpbmtNb2RlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgaW5zZXJ0Q29udGVudChsaW5rczogTGlua01vZGVsW10sIGluc2VydEluZGV4OiBudW1iZXIsIHRleHRMZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBmb3IgKGxldCBsaW5rIG9mIGxpbmtzKSB7XG4gICAgICAgICAgICBpZiAobGluay5pbnNlcnRJbmRleCA8IGluc2VydEluZGV4ICYmIGxpbmsuZW5kSW5kZXggPiBpbnNlcnRJbmRleCkge1xuICAgICAgICAgICAgICAgIGxpbmsuZW5kSW5kZXggKz0gdGV4dExlbmd0aDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5rLmluc2VydEluZGV4ID49IGluc2VydEluZGV4KSB7XG4gICAgICAgICAgICAgICAgbGluay5pbnNlcnRJbmRleCArPSB0ZXh0TGVuZ3RoO1xuICAgICAgICAgICAgICAgIGxpbmsuZW5kSW5kZXggKz0gdGV4dExlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyByZW1vdmVDb250ZW50KGxpbmtzOiBMaW5rTW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGVuZEluZGV4IC0gc3RhcnRJbmRleCArIDE7XG4gICAgICAgIGZvciAobGV0IGkgPSBsaW5rcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKGxpbmtzW2ldLmluc2VydEluZGV4ID4gZW5kSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBsaW5rc1tpXS5pbnNlcnRJbmRleCAtPSBsZW5ndGg7XG4gICAgICAgICAgICAgICAgbGlua3NbaV0uZW5kSW5kZXggLT0gbGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmtzW2ldLmluc2VydEluZGV4ID49IHN0YXJ0SW5kZXggJiYgbGlua3NbaV0uZW5kSW5kZXggPD0gZW5kSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBsaW5rcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGlua3NbaV0uaW5zZXJ0SW5kZXggPD0gc3RhcnRJbmRleCAmJiBsaW5rc1tpXS5lbmRJbmRleCA+PSBlbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIGxpbmtzW2ldLmVuZEluZGV4IC09IGxlbmd0aDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5rc1tpXS5pbnNlcnRJbmRleCA8IHN0YXJ0SW5kZXggJiYgbGlua3NbaV0uZW5kSW5kZXggPj0gc3RhcnRJbmRleCAmJiBsaW5rc1tpXS5lbmRJbmRleCA8PSBlbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIGxpbmtzW2ldLmVuZEluZGV4ID0gc3RhcnRJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGlua3NbaV0uaW5zZXJ0SW5kZXggPj0gc3RhcnRJbmRleCAmJiBsaW5rc1tpXS5pbnNlcnRJbmRleCA8PSBlbmRJbmRleCAmJiBsaW5rc1tpXS5lbmRJbmRleCA+IGVuZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgbGlua3NbaV0uaW5zZXJ0SW5kZXggPSBzdGFydEluZGV4O1xuICAgICAgICAgICAgICAgIGxpbmtzW2ldLmVuZEluZGV4IC09IGxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyByZXN0b3JlKGxpbmtzOiBMaW5rTW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb250ZW50TGVuZ3RoOiBudW1iZXIsIG5ld2xpbmtzOiBMaW5rTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmluc2VydENvbnRlbnQobGlua3MsIHN0YXJ0SW5kZXgsIGNvbnRlbnRMZW5ndGgpO1xuICAgICAgICBsZXQgaW5kZXhJbkVsZW1lbnRzID0gbGlua3MuZmluZEluZGV4KHggPT4geC5pbnNlcnRJbmRleCA+PSBzdGFydEluZGV4KTtcbiAgICAgICAgaW5kZXhJbkVsZW1lbnRzID0gaW5kZXhJbkVsZW1lbnRzID09PSAtMSA/IGxpbmtzLmxlbmd0aCA6IGluZGV4SW5FbGVtZW50cztcbiAgICAgICAgbGlua3Muc3BsaWNlKGluZGV4SW5FbGVtZW50cywgMCwgLi4ubmV3bGlua3MpO1xuICAgIH1cblxuICAgIHN0YXRpYyByZXBsYWNlQ29udGVudChsaW5rczogTGlua01vZGVsW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVDb250ZW50KGxpbmtzLCBzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gICAgICAgIHRoaXMuaW5zZXJ0Q29udGVudChsaW5rcywgc3RhcnRJbmRleCwgbGVuZ3RoKTtcbiAgICB9XG59XG4iXX0=
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1vcGVyYXRpb25zLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9vcGVyYXRpb25zL2hlbHBlcnMvbGluay1vcGVyYXRpb25zLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR2pFLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFrQixFQUFFLElBQVksRUFBRSxVQUFrQixFQUFFLFFBQWdCLEVBQUUsU0FBeUI7UUFDM0csb0JBQW9CLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRixNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUM1QixVQUFVLEVBQUUsVUFBVTtZQUN0QixJQUFJO1lBQ0osUUFBUTtZQUNSLE9BQU8sRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxHQUFHLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQzVGLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDWCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pCO2FB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SyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBQzFFLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWtCLEVBQUUsVUFBa0IsRUFBRSxRQUFnQixFQUFFLE1BQWM7UUFDMUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtYXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZm9ybWF0Lm1vZGVsJztcbmltcG9ydCB7IEZvcm1hdE9wZXJhdGlvbnNIZWxwZXIgfSBmcm9tICcuL2Zvcm1hdC1vcGVyYXRpb25zLmhlbHBlcic7XG5pbXBvcnQgeyBMaW5rTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2xpbmsubW9kZWwnO1xuaW1wb3J0IHsgVGV4dFN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RleHQtc3R5bGUubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTGlua09wZXJhdGlvbnNIZWxwZXIge1xuICAgIHN0YXRpYyBpbnNlcnQobGlua3M6IExpbmtNb2RlbFtdLCBsaW5rOiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgdGV4dFN0eWxlOiBUZXh0U3R5bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBMaW5rT3BlcmF0aW9uc0hlbHBlci5pbnNlcnRDb250ZW50KGxpbmtzLCBzdGFydEluZGV4LCBlbmRJbmRleCAtIHN0YXJ0SW5kZXggKyAxKTtcbiAgICAgICAgY29uc3QgbGlua01vZGVsID0gbmV3IExpbmtNb2RlbCh7XG4gICAgICAgICAgICBzdGFydEluZGV4OiBzdGFydEluZGV4LFxuICAgICAgICAgICAgbGluayxcbiAgICAgICAgICAgIGVuZEluZGV4LFxuICAgICAgICAgICAgZm9ybWF0czogW25ldyBGb3JtYXRNb2RlbCh7IHN0YXJ0SW5kZXg6IDAsIGVuZEluZGV4OiBlbmRJbmRleCAtIHN0YXJ0SW5kZXgsIHRleHRTdHlsZSB9KV1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gbGlua3MuZmluZEluZGV4KHggPT4geC5zdGFydEluZGV4ID4gbGlua01vZGVsLnN0YXJ0SW5kZXgpO1xuICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICBsaW5rcy5wdXNoKGxpbmtNb2RlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaW5rcy5zcGxpY2UoaW5kZXgsIDAsIGxpbmtNb2RlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgaW5zZXJ0Q29udGVudChsaW5rczogTGlua01vZGVsW10sIGluc2VydEluZGV4OiBudW1iZXIsIHRleHRMZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBmb3IgKGxldCBsaW5rIG9mIGxpbmtzKSB7XG4gICAgICAgICAgICBpZiAobGluay5zdGFydEluZGV4IDwgaW5zZXJ0SW5kZXggJiYgbGluay5lbmRJbmRleCA+PSBpbnNlcnRJbmRleCkge1xuICAgICAgICAgICAgICAgIGxpbmsuZW5kSW5kZXggKz0gdGV4dExlbmd0aDtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleEluTGluayA9IGluc2VydEluZGV4IC0gbGluay5zdGFydEluZGV4O1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGxpbmsuZm9ybWF0cy5maW5kKHggPT4geC5zdGFydEluZGV4IDw9IGluZGV4SW5MaW5rICYmIHguZW5kSW5kZXggPj0gaW5kZXhJbkxpbmspO1xuICAgICAgICAgICAgICAgIGZvcm1hdC5lbmRJbmRleCArPSB0ZXh0TGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmsuc3RhcnRJbmRleCA+PSBpbnNlcnRJbmRleCkge1xuICAgICAgICAgICAgICAgIGxpbmsuc3RhcnRJbmRleCArPSB0ZXh0TGVuZ3RoO1xuICAgICAgICAgICAgICAgIGxpbmsuZW5kSW5kZXggKz0gdGV4dExlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyByZW1vdmVDb250ZW50KGxpbmtzOiBMaW5rTW9kZWxbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGVuZEluZGV4IC0gc3RhcnRJbmRleCArIDE7XG4gICAgICAgIGZvciAobGV0IGkgPSBsaW5rcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKGxpbmtzW2ldLnN0YXJ0SW5kZXggPj0gc3RhcnRJbmRleCAmJiBsaW5rc1tpXS5lbmRJbmRleCA8PSBlbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIGxpbmtzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmRJbmRleCA8IGxpbmtzW2ldLnN0YXJ0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBsaW5rc1tpXS5zdGFydEluZGV4IC09IGxlbmd0aDtcbiAgICAgICAgICAgICAgICBsaW5rc1tpXS5lbmRJbmRleCAtPSBsZW5ndGg7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGlua3NbaV0uc3RhcnRJbmRleCA8PSBzdGFydEluZGV4ICYmIGxpbmtzW2ldLmVuZEluZGV4ID49IGVuZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJbkxpbmsgPSBzdGFydEluZGV4IC0gbGlua3NbaV0uc3RhcnRJbmRleDtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJbkxpbmsgPSBzdGFydEluTGluayArIGxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgbGlua3NbaV0uZW5kSW5kZXggLT0gbGVuZ3RoO1xuICAgICAgICAgICAgICAgIEZvcm1hdE9wZXJhdGlvbnNIZWxwZXIucmVtb3ZlQ29udGVudChsaW5rc1tpXS5mb3JtYXRzLCBzdGFydEluTGluaywgZW5kSW5MaW5rKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5rc1tpXS5zdGFydEluZGV4ID49IHN0YXJ0SW5kZXggJiYgbGlua3NbaV0uc3RhcnRJbmRleCA8PSBlbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZEluTGluayA9IGxpbmtzW2ldLnN0YXJ0SW5kZXggLSBzdGFydEluZGV4IC0gMTtcbiAgICAgICAgICAgICAgICBsaW5rc1tpXS5zdGFydEluZGV4ID0gc3RhcnRJbmRleDtcbiAgICAgICAgICAgICAgICBsaW5rc1tpXS5lbmRJbmRleCAtPSBsZW5ndGg7XG4gICAgICAgICAgICAgICAgRm9ybWF0T3BlcmF0aW9uc0hlbHBlci5yZW1vdmVDb250ZW50KGxpbmtzW2ldLmZvcm1hdHMsIDAsIGVuZEluTGluayk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGlua3NbaV0uZW5kSW5kZXggPj0gc3RhcnRJbmRleCAmJiBsaW5rc1tpXS5lbmRJbmRleCA8PSBlbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5MaW5rID0gc3RhcnRJbmRleCAtIGxpbmtzW2ldLnN0YXJ0SW5kZXg7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kSW5MaW5rID0gbGlua3NbaV0uZm9ybWF0c1tsaW5rc1tpXS5mb3JtYXRzLmxlbmd0aCAtIDFdLmVuZEluZGV4O1xuICAgICAgICAgICAgICAgIGxpbmtzW2ldLmVuZEluZGV4ID0gc3RhcnRJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgRm9ybWF0T3BlcmF0aW9uc0hlbHBlci5yZW1vdmVDb250ZW50KGxpbmtzW2ldLmZvcm1hdHMsIHN0YXJ0SW5MaW5rLCBlbmRJbkxpbmspO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIHJlc3RvcmUobGlua3M6IExpbmtNb2RlbFtdLCBzdGFydEluZGV4OiBudW1iZXIsIGNvbnRlbnRMZW5ndGg6IG51bWJlciwgbmV3bGlua3M6IExpbmtNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5zZXJ0Q29udGVudChsaW5rcywgc3RhcnRJbmRleCwgY29udGVudExlbmd0aCk7XG4gICAgICAgIGxldCBpbmRleEluRWxlbWVudHMgPSBsaW5rcy5maW5kSW5kZXgoeCA9PiB4LnN0YXJ0SW5kZXggPj0gc3RhcnRJbmRleCk7XG4gICAgICAgIGluZGV4SW5FbGVtZW50cyA9IGluZGV4SW5FbGVtZW50cyA9PT0gLTEgPyBsaW5rcy5sZW5ndGggOiBpbmRleEluRWxlbWVudHM7XG4gICAgICAgIGxpbmtzLnNwbGljZShpbmRleEluRWxlbWVudHMsIDAsIC4uLm5ld2xpbmtzKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgcmVwbGFjZUNvbnRlbnQobGlua3M6IExpbmtNb2RlbFtdLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlQ29udGVudChsaW5rcywgc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuICAgICAgICB0aGlzLmluc2VydENvbnRlbnQobGlua3MsIHN0YXJ0SW5kZXgsIGxlbmd0aCk7XG4gICAgfVxufVxuIl19
|