@worktile/gantt 12.2.0-next.1 → 12.2.2
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-gantt.umd.js +581 -508
- package/bundles/worktile-gantt.umd.js.map +1 -1
- package/class/event.d.ts +2 -0
- package/class/index.d.ts +1 -0
- package/class/item.d.ts +1 -1
- package/class/link.d.ts +12 -7
- package/components/bar/bar-drag.d.ts +4 -2
- package/components/bar/bar.component.d.ts +4 -4
- package/components/calendar/calendar.component.d.ts +3 -5
- package/components/drag-backdrop/drag-backdrop.component.d.ts +1 -5
- package/components/icon/icon.component.d.ts +2 -4
- package/components/links/{paths → lines}/curve.d.ts +2 -3
- package/components/links/lines/factory.d.ts +5 -0
- package/components/links/{paths/path.d.ts → lines/line.d.ts} +1 -4
- package/components/links/{paths/line.d.ts → lines/straight.d.ts} +2 -2
- package/components/links/links.component.d.ts +2 -2
- package/components/main/gantt-main.component.d.ts +2 -3
- package/components/range/range.component.d.ts +2 -5
- package/components/table/gantt-table.component.d.ts +2 -3
- package/esm2015/class/event.js +1 -1
- package/esm2015/class/index.js +2 -1
- package/esm2015/class/item.js +4 -3
- package/esm2015/class/link.js +6 -6
- package/esm2015/components/bar/bar-drag.js +56 -26
- package/esm2015/components/bar/bar.component.js +22 -15
- package/esm2015/components/calendar/calendar.component.js +18 -13
- package/esm2015/components/drag-backdrop/drag-backdrop.component.js +10 -14
- package/esm2015/components/icon/icon.component.js +4 -6
- package/esm2015/components/links/lines/curve.js +96 -0
- package/esm2015/components/links/lines/factory.js +14 -0
- package/esm2015/components/links/lines/line.js +24 -0
- package/esm2015/components/links/lines/straight.js +58 -0
- package/esm2015/components/links/links.component.js +31 -17
- package/esm2015/components/main/gantt-main.component.js +4 -5
- package/esm2015/components/range/range.component.js +4 -13
- package/esm2015/components/table/gantt-table.component.js +10 -6
- package/esm2015/gantt-dom.service.js +41 -27
- package/esm2015/gantt-drag-container.js +57 -40
- package/esm2015/gantt-item-upper.js +7 -7
- package/esm2015/gantt-print.service.js +53 -50
- package/esm2015/gantt-upper.js +37 -20
- package/esm2015/gantt.component.js +25 -28
- package/esm2015/gantt.config.js +3 -3
- package/esm2015/gantt.module.js +4 -4
- package/esm2015/gantt.pipe.js +9 -9
- package/esm2015/root.component.js +43 -31
- package/esm2015/table/gantt-column.component.js +4 -5
- package/esm2015/table/gantt-table.component.js +5 -6
- package/esm2015/utils/passive-listeners.js +30 -0
- package/esm2015/utils/set-style-with-vendor-prefix.js +15 -0
- package/esm2015/views/day.js +1 -1
- package/fesm2015/worktile-gantt.js +492 -386
- package/fesm2015/worktile-gantt.js.map +1 -1
- package/gantt-dom.service.d.ts +11 -4
- package/gantt-drag-container.d.ts +20 -8
- package/gantt-item-upper.d.ts +5 -5
- package/gantt-print.service.d.ts +1 -1
- package/gantt-upper.d.ts +10 -8
- package/gantt.component.d.ts +3 -7
- package/gantt.config.d.ts +2 -2
- package/main.bundle.scss +34 -3
- package/package.json +1 -1
- package/root.component.d.ts +5 -3
- package/table/gantt-column.component.d.ts +2 -3
- package/table/gantt-table.component.d.ts +2 -4
- package/utils/passive-listeners.d.ts +13 -0
- package/utils/set-style-with-vendor-prefix.d.ts +12 -0
- package/README.md +0 -24
- package/components/links/paths/factory.d.ts +0 -5
- package/esm2015/components/links/paths/curve.js +0 -118
- package/esm2015/components/links/paths/factory.js +0 -14
- package/esm2015/components/links/paths/line.js +0 -59
- package/esm2015/components/links/paths/path.js +0 -31
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { GanttLinkPath } from './path';
|
|
2
|
-
import { GanttLinkType } from '../../../class/link';
|
|
3
|
-
export class GanttLinkPathLine extends GanttLinkPath {
|
|
4
|
-
constructor() {
|
|
5
|
-
super();
|
|
6
|
-
this.pathControl = 20;
|
|
7
|
-
}
|
|
8
|
-
generateSSPath(source, target) {
|
|
9
|
-
const x1 = source.before.x;
|
|
10
|
-
const y1 = source.before.y;
|
|
11
|
-
const x4 = target.before.x;
|
|
12
|
-
const y4 = target.before.y;
|
|
13
|
-
const control = this.pathControl;
|
|
14
|
-
const centerY = (y1 + y4) / 2;
|
|
15
|
-
return `M ${x1} ${y1}
|
|
16
|
-
L ${x4 > x1 ? x1 - control : x4 - control} ${y1}
|
|
17
|
-
L ${x4 > x1 ? x1 - control : x4 - control} ${y4}
|
|
18
|
-
L ${x4} ${y4}`;
|
|
19
|
-
}
|
|
20
|
-
generateFFPath(source, target) {
|
|
21
|
-
const x1 = source.after.x;
|
|
22
|
-
const y1 = source.after.y;
|
|
23
|
-
const x4 = target.after.x;
|
|
24
|
-
const y4 = target.after.y;
|
|
25
|
-
const control = this.pathControl;
|
|
26
|
-
return `M ${x1} ${y1}
|
|
27
|
-
L ${x4 > x1 ? x4 + control : x1 + control} ${y1}
|
|
28
|
-
L ${x4 > x1 ? x4 + control : x1 + control} ${y4}
|
|
29
|
-
L ${x4} ${y4}`;
|
|
30
|
-
}
|
|
31
|
-
generateFSAndSFPath(source, target, type) {
|
|
32
|
-
let x1 = source.after.x;
|
|
33
|
-
let y1 = source.after.y;
|
|
34
|
-
let x4 = target.before.x;
|
|
35
|
-
let y4 = target.before.y;
|
|
36
|
-
const control = this.pathControl;
|
|
37
|
-
if (type === GanttLinkType.sf) {
|
|
38
|
-
x1 = target.after.x;
|
|
39
|
-
y1 = target.after.y;
|
|
40
|
-
x4 = source.before.x;
|
|
41
|
-
y4 = source.before.y;
|
|
42
|
-
}
|
|
43
|
-
if (x4 - x1 >= 40) {
|
|
44
|
-
return `M ${x1} ${y1}
|
|
45
|
-
L ${x1 + control} ${y1}
|
|
46
|
-
L ${x1 + control} ${y4}
|
|
47
|
-
L ${x4} ${y4}`;
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
return `M ${x1} ${y1}
|
|
51
|
-
L ${x1 + control} ${y1}
|
|
52
|
-
L ${x1 + control} ${y4 > y1 ? y1 + control : y1 - control}
|
|
53
|
-
L ${x4 - control} ${y4 > y1 ? y1 + control : y1 - control}
|
|
54
|
-
L ${x4 - control} ${y4}
|
|
55
|
-
L ${x4} ${y4}`;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9jb21wb25lbnRzL2xpbmtzL3BhdGhzL2xpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQWlCLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5FLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBR2hEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFISixnQkFBVyxHQUFHLEVBQUUsQ0FBQztJQUl6QixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQXFCLEVBQUUsTUFBcUI7UUFDdkQsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFOUIsT0FBTyxLQUFLLEVBQUUsSUFBSSxFQUFFOzRCQUNBLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRTs0QkFDM0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFOzRCQUMzQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFxQixFQUFFLE1BQXFCO1FBQ3ZELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFakMsT0FBTyxLQUFLLEVBQUUsSUFBSSxFQUFFOzRCQUNBLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRTs0QkFDM0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFOzRCQUMzQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQXFCLEVBQUUsTUFBcUIsRUFBRSxJQUFvQjtRQUNsRixJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4QixJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4QixJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6QixJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRWpDLElBQUksSUFBSSxLQUFLLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNwQixFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDckIsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNmLE9BQU8sS0FBSyxFQUFFLElBQUksRUFBRTs0QkFDSixFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUU7NEJBQ2xCLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRTs0QkFDbEIsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1NBQzlCO2FBQU07WUFDSCxPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUU7NEJBQ0osRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFOzRCQUNsQixFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPOzRCQUNyRCxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPOzRCQUNyRCxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUU7NEJBQ2xCLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztTQUM5QjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgR2FudHRMaW5rUGF0aCB9IGZyb20gJy4vcGF0aCc7XG5pbXBvcnQgeyBHYW50dExpbmtJdGVtLCBHYW50dExpbmtUeXBlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3MvbGluayc7XG5cbmV4cG9ydCBjbGFzcyBHYW50dExpbmtQYXRoTGluZSBleHRlbmRzIEdhbnR0TGlua1BhdGgge1xuICAgIHByaXZhdGUgcGF0aENvbnRyb2wgPSAyMDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdlbmVyYXRlU1NQYXRoKHNvdXJjZTogR2FudHRMaW5rSXRlbSwgdGFyZ2V0OiBHYW50dExpbmtJdGVtKSB7XG4gICAgICAgIGNvbnN0IHgxID0gc291cmNlLmJlZm9yZS54O1xuICAgICAgICBjb25zdCB5MSA9IHNvdXJjZS5iZWZvcmUueTtcbiAgICAgICAgY29uc3QgeDQgPSB0YXJnZXQuYmVmb3JlLng7XG4gICAgICAgIGNvbnN0IHk0ID0gdGFyZ2V0LmJlZm9yZS55O1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5wYXRoQ29udHJvbDtcbiAgICAgICAgY29uc3QgY2VudGVyWSA9ICh5MSArIHk0KSAvIDI7XG5cbiAgICAgICAgcmV0dXJuIGBNICR7eDF9ICR7eTF9XG4gICAgICAgICAgICAgICAgICAgICAgICBMICR7eDQgPiB4MSA/IHgxIC0gY29udHJvbCA6IHg0IC0gY29udHJvbH0gJHt5MX1cbiAgICAgICAgICAgICAgICAgICAgICAgIEwgJHt4NCA+IHgxID8geDEgLSBjb250cm9sIDogeDQgLSBjb250cm9sfSAke3k0fVxuICAgICAgICAgICAgICAgICAgICAgICAgTCAke3g0fSAke3k0fWA7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVGRlBhdGgoc291cmNlOiBHYW50dExpbmtJdGVtLCB0YXJnZXQ6IEdhbnR0TGlua0l0ZW0pIHtcbiAgICAgICAgY29uc3QgeDEgPSBzb3VyY2UuYWZ0ZXIueDtcbiAgICAgICAgY29uc3QgeTEgPSBzb3VyY2UuYWZ0ZXIueTtcbiAgICAgICAgY29uc3QgeDQgPSB0YXJnZXQuYWZ0ZXIueDtcbiAgICAgICAgY29uc3QgeTQgPSB0YXJnZXQuYWZ0ZXIueTtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMucGF0aENvbnRyb2w7XG5cbiAgICAgICAgcmV0dXJuIGBNICR7eDF9ICR7eTF9XG4gICAgICAgICAgICAgICAgICAgICAgICBMICR7eDQgPiB4MSA/IHg0ICsgY29udHJvbCA6IHgxICsgY29udHJvbH0gJHt5MX1cbiAgICAgICAgICAgICAgICAgICAgICAgIEwgJHt4NCA+IHgxID8geDQgKyBjb250cm9sIDogeDEgKyBjb250cm9sfSAke3k0fVxuICAgICAgICAgICAgICAgICAgICAgICAgTCAke3g0fSAke3k0fWA7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVGU0FuZFNGUGF0aChzb3VyY2U6IEdhbnR0TGlua0l0ZW0sIHRhcmdldDogR2FudHRMaW5rSXRlbSwgdHlwZT86IEdhbnR0TGlua1R5cGUpIHtcbiAgICAgICAgbGV0IHgxID0gc291cmNlLmFmdGVyLng7XG4gICAgICAgIGxldCB5MSA9IHNvdXJjZS5hZnRlci55O1xuICAgICAgICBsZXQgeDQgPSB0YXJnZXQuYmVmb3JlLng7XG4gICAgICAgIGxldCB5NCA9IHRhcmdldC5iZWZvcmUueTtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMucGF0aENvbnRyb2w7XG5cbiAgICAgICAgaWYgKHR5cGUgPT09IEdhbnR0TGlua1R5cGUuc2YpIHtcbiAgICAgICAgICAgIHgxID0gdGFyZ2V0LmFmdGVyLng7XG4gICAgICAgICAgICB5MSA9IHRhcmdldC5hZnRlci55O1xuICAgICAgICAgICAgeDQgPSBzb3VyY2UuYmVmb3JlLng7XG4gICAgICAgICAgICB5NCA9IHNvdXJjZS5iZWZvcmUueTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh4NCAtIHgxID49IDQwKSB7XG4gICAgICAgICAgICByZXR1cm4gYE0gJHt4MX0gJHt5MX1cbiAgICAgICAgICAgICAgICAgICAgICAgIEwgJHt4MSArIGNvbnRyb2x9ICR7eTF9XG4gICAgICAgICAgICAgICAgICAgICAgICBMICR7eDEgKyBjb250cm9sfSAke3k0fVxuICAgICAgICAgICAgICAgICAgICAgICAgTCAke3g0fSAke3k0fWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYE0gJHt4MX0gJHt5MX1cbiAgICAgICAgICAgICAgICAgICAgICAgIEwgJHt4MSArIGNvbnRyb2x9ICR7eTF9XG4gICAgICAgICAgICAgICAgICAgICAgICBMICR7eDEgKyBjb250cm9sfSAke3k0ID4geTEgPyB5MSArIGNvbnRyb2wgOiB5MSAtIGNvbnRyb2x9XG4gICAgICAgICAgICAgICAgICAgICAgICBMICR7eDQgLSBjb250cm9sfSAke3k0ID4geTEgPyB5MSArIGNvbnRyb2wgOiB5MSAtIGNvbnRyb2x9XG4gICAgICAgICAgICAgICAgICAgICAgICBMICR7eDQgLSBjb250cm9sfSAke3k0fVxuICAgICAgICAgICAgICAgICAgICAgICAgTCAke3g0fSAke3k0fWA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { GanttLinkType } from '../../../class/link';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class GanttLinkPath {
|
|
5
|
-
constructor() { }
|
|
6
|
-
generatePath(source, target, type) {
|
|
7
|
-
if (source.before && source.after && target.before && target.after) {
|
|
8
|
-
let path = '';
|
|
9
|
-
switch (type) {
|
|
10
|
-
case GanttLinkType.ss:
|
|
11
|
-
path = this.generateSSPath(source, target);
|
|
12
|
-
break;
|
|
13
|
-
case GanttLinkType.ff:
|
|
14
|
-
path = this.generateFFPath(source, target);
|
|
15
|
-
break;
|
|
16
|
-
case GanttLinkType.sf:
|
|
17
|
-
path = this.generateFSAndSFPath(source, target, type);
|
|
18
|
-
break;
|
|
19
|
-
default:
|
|
20
|
-
path = this.generateFSAndSFPath(source, target);
|
|
21
|
-
}
|
|
22
|
-
return path;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
GanttLinkPath.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: GanttLinkPath, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
27
|
-
GanttLinkPath.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: GanttLinkPath });
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: GanttLinkPath, decorators: [{
|
|
29
|
-
type: Injectable
|
|
30
|
-
}], ctorParameters: function () { return []; } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9jb21wb25lbnRzL2xpbmtzL3BhdGhzL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUduRSxNQUFNLE9BQWdCLGFBQWE7SUFDL0IsZ0JBQWUsQ0FBQztJQVFoQixZQUFZLENBQUMsTUFBcUIsRUFBRSxNQUFxQixFQUFFLElBQW1CO1FBQzFFLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNoRSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7WUFFZCxRQUFRLElBQUksRUFBRTtnQkFDVixLQUFLLGFBQWEsQ0FBQyxFQUFFO29CQUNqQixJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQzNDLE1BQU07Z0JBQ1YsS0FBSyxhQUFhLENBQUMsRUFBRTtvQkFDakIsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUMzQyxNQUFNO2dCQUVWLEtBQUssYUFBYSxDQUFDLEVBQUU7b0JBQ2pCLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDdEQsTUFBTTtnQkFDVjtvQkFDSSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN2RDtZQUVELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDOzswR0E5QmlCLGFBQWE7OEdBQWIsYUFBYTsyRkFBYixhQUFhO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2FudHRMaW5rSXRlbSwgR2FudHRMaW5rVHlwZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzL2xpbmsnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2FudHRMaW5rUGF0aCB7XG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgYWJzdHJhY3QgZ2VuZXJhdGVTU1BhdGgoc291cmNlOiBHYW50dExpbmtJdGVtLCB0YXJnZXQ6IEdhbnR0TGlua0l0ZW0pOiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCBnZW5lcmF0ZUZGUGF0aChzb3VyY2U6IEdhbnR0TGlua0l0ZW0sIHRhcmdldDogR2FudHRMaW5rSXRlbSk6IHN0cmluZztcblxuICAgIGFic3RyYWN0IGdlbmVyYXRlRlNBbmRTRlBhdGgoc291cmNlOiBHYW50dExpbmtJdGVtLCB0YXJnZXQ6IEdhbnR0TGlua0l0ZW0sIHR5cGU/OiBHYW50dExpbmtUeXBlKTogc3RyaW5nO1xuXG4gICAgZ2VuZXJhdGVQYXRoKHNvdXJjZTogR2FudHRMaW5rSXRlbSwgdGFyZ2V0OiBHYW50dExpbmtJdGVtLCB0eXBlOiBHYW50dExpbmtUeXBlKSB7XG4gICAgICAgIGlmIChzb3VyY2UuYmVmb3JlICYmIHNvdXJjZS5hZnRlciAmJiB0YXJnZXQuYmVmb3JlICYmIHRhcmdldC5hZnRlcikge1xuICAgICAgICAgICAgbGV0IHBhdGggPSAnJztcblxuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBHYW50dExpbmtUeXBlLnNzOlxuICAgICAgICAgICAgICAgICAgICBwYXRoID0gdGhpcy5nZW5lcmF0ZVNTUGF0aChzb3VyY2UsIHRhcmdldCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgR2FudHRMaW5rVHlwZS5mZjpcbiAgICAgICAgICAgICAgICAgICAgcGF0aCA9IHRoaXMuZ2VuZXJhdGVGRlBhdGgoc291cmNlLCB0YXJnZXQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgR2FudHRMaW5rVHlwZS5zZjpcbiAgICAgICAgICAgICAgICAgICAgcGF0aCA9IHRoaXMuZ2VuZXJhdGVGU0FuZFNGUGF0aChzb3VyY2UsIHRhcmdldCwgdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHBhdGggPSB0aGlzLmdlbmVyYXRlRlNBbmRTRlBhdGgoc291cmNlLCB0YXJnZXQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|