@worktile/gantt 16.1.0-next.1 → 17.0.0-next.0

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.
Files changed (85) hide show
  1. package/class/event.d.ts +1 -0
  2. package/class/item.d.ts +7 -8
  3. package/class/view-type.d.ts +2 -1
  4. package/components/bar/bar-drag.d.ts +4 -3
  5. package/components/bar/bar.component.d.ts +1 -1
  6. package/components/baseline/baseline.component.d.ts +1 -1
  7. package/components/calendar/grid/calendar-grid.component.d.ts +1 -1
  8. package/components/calendar/header/calendar-header.component.d.ts +1 -1
  9. package/components/drag-backdrop/drag-backdrop.component.d.ts +1 -1
  10. package/components/icon/icon.component.d.ts +1 -1
  11. package/components/links/links.component.d.ts +1 -1
  12. package/components/loader/loader.component.d.ts +1 -1
  13. package/components/main/gantt-main.component.d.ts +1 -1
  14. package/components/range/range.component.d.ts +1 -1
  15. package/components/table/body/gantt-table-body.component.d.ts +1 -1
  16. package/components/table/gantt-table.scss +4 -0
  17. package/components/table/header/gantt-table-header.component.d.ts +1 -1
  18. package/components/toolbar/toolbar.component.d.ts +1 -1
  19. package/esm2022/class/event.mjs +1 -1
  20. package/esm2022/class/item.mjs +13 -15
  21. package/esm2022/class/view-type.mjs +2 -1
  22. package/esm2022/components/bar/bar-drag.mjs +49 -48
  23. package/esm2022/components/bar/bar.component.mjs +9 -9
  24. package/esm2022/components/baseline/baseline.component.mjs +9 -9
  25. package/esm2022/components/calendar/grid/calendar-grid.component.mjs +9 -9
  26. package/esm2022/components/calendar/header/calendar-header.component.mjs +9 -9
  27. package/esm2022/components/drag-backdrop/drag-backdrop.component.mjs +5 -5
  28. package/esm2022/components/icon/icon.component.mjs +7 -6
  29. package/esm2022/components/links/lines/curve.mjs +1 -1
  30. package/esm2022/components/links/lines/factory.mjs +1 -1
  31. package/esm2022/components/links/lines/line.mjs +1 -1
  32. package/esm2022/components/links/lines/straight.mjs +1 -1
  33. package/esm2022/components/links/links.component.mjs +9 -9
  34. package/esm2022/components/loader/loader.component.mjs +6 -5
  35. package/esm2022/components/main/gantt-main.component.mjs +26 -14
  36. package/esm2022/components/range/range.component.mjs +9 -9
  37. package/esm2022/components/table/body/gantt-table-body.component.mjs +13 -15
  38. package/esm2022/components/table/header/gantt-table-header.component.mjs +9 -9
  39. package/esm2022/components/toolbar/toolbar.component.mjs +9 -9
  40. package/esm2022/gantt-dom.service.mjs +6 -6
  41. package/esm2022/gantt-drag-container.mjs +6 -6
  42. package/esm2022/gantt-item-upper.mjs +6 -6
  43. package/esm2022/gantt-print.service.mjs +5 -5
  44. package/esm2022/gantt-upper.mjs +9 -12
  45. package/esm2022/gantt.component.mjs +39 -24
  46. package/esm2022/gantt.config.mjs +4 -2
  47. package/esm2022/gantt.module.mjs +60 -40
  48. package/esm2022/gantt.pipe.mjs +16 -13
  49. package/esm2022/root.component.mjs +21 -14
  50. package/esm2022/table/gantt-column.component.mjs +8 -7
  51. package/esm2022/table/gantt-table.component.mjs +6 -5
  52. package/esm2022/utils/date.mjs +16 -4
  53. package/esm2022/utils/drag-scroll.mjs +1 -1
  54. package/esm2022/utils/helpers.mjs +1 -1
  55. package/esm2022/utils/passive-listeners.mjs +1 -1
  56. package/esm2022/utils/set-style-with-vendor-prefix.mjs +1 -1
  57. package/esm2022/views/day.mjs +12 -13
  58. package/esm2022/views/factory.mjs +3 -1
  59. package/esm2022/views/hour.mjs +77 -0
  60. package/esm2022/views/month.mjs +4 -5
  61. package/esm2022/views/quarter.mjs +4 -5
  62. package/esm2022/views/view.mjs +75 -35
  63. package/esm2022/views/week.mjs +10 -11
  64. package/esm2022/views/year.mjs +4 -5
  65. package/fesm2022/worktile-gantt.mjs +2418 -2239
  66. package/fesm2022/worktile-gantt.mjs.map +1 -1
  67. package/gantt-upper.d.ts +1 -2
  68. package/gantt.component.d.ts +6 -6
  69. package/gantt.config.d.ts +10 -16
  70. package/gantt.module.d.ts +25 -23
  71. package/gantt.pipe.d.ts +3 -3
  72. package/package.json +6 -4
  73. package/root.component.d.ts +1 -1
  74. package/styles/index.scss +0 -2
  75. package/table/gantt-column.component.d.ts +1 -1
  76. package/table/gantt-table.component.d.ts +1 -1
  77. package/utils/date.d.ts +6 -1
  78. package/views/day.d.ts +5 -5
  79. package/views/factory.d.ts +2 -1
  80. package/views/hour.d.ts +19 -0
  81. package/views/month.d.ts +2 -2
  82. package/views/quarter.d.ts +2 -2
  83. package/views/view.d.ts +22 -7
  84. package/views/week.d.ts +2 -2
  85. package/views/year.d.ts +2 -2
@@ -1,14 +1,13 @@
1
- import { GanttView, primaryDatePointTop, secondaryDatePointTop } from './view';
2
- import { GanttDate, eachWeekOfInterval, eachDayOfInterval } from '../utils/date';
3
- import { GanttDatePoint } from '../class/date-point';
4
1
  import { GanttViewType } from '../class';
2
+ import { GanttDatePoint } from '../class/date-point';
3
+ import { GanttDate, eachDayOfInterval, eachWeekOfInterval } from '../utils/date';
4
+ import { GanttView, primaryDatePointTop, secondaryDatePointTop } from './view';
5
5
  const viewOptions = {
6
6
  cellWidth: 35,
7
- start: new GanttDate().startOfYear().startOfWeek({ weekStartsOn: 1 }),
8
- end: new GanttDate().endOfYear().endOfWeek({ weekStartsOn: 1 }),
7
+ start: new GanttDate().startOfYear().startOfWeek(),
8
+ end: new GanttDate().endOfYear().endOfWeek(),
9
9
  addAmount: 1,
10
- addUnit: 'month',
11
- fillDays: 1
10
+ addUnit: 'month'
12
11
  };
13
12
  export class GanttViewDay extends GanttView {
14
13
  constructor(start, end, options) {
@@ -17,11 +16,11 @@ export class GanttViewDay extends GanttView {
17
16
  this.showTimeline = false;
18
17
  this.viewType = GanttViewType.day;
19
18
  }
20
- startOf(date) {
21
- return date.startOfWeek({ weekStartsOn: 1 });
19
+ viewStartOf(date) {
20
+ return date.startOfWeek();
22
21
  }
23
- endOf(date) {
24
- return date.endOfWeek({ weekStartsOn: 1 });
22
+ viewEndOf(date) {
23
+ return date.endOfWeek();
25
24
  }
26
25
  getPrimaryWidth() {
27
26
  return this.getCellWidth() * 7;
@@ -30,7 +29,7 @@ export class GanttViewDay extends GanttView {
30
29
  return this.cellWidth;
31
30
  }
32
31
  getPrimaryDatePoints() {
33
- const weeks = eachWeekOfInterval({ start: this.start.value, end: this.end.addSeconds(1).value }, { weekStartsOn: 1 });
32
+ const weeks = eachWeekOfInterval({ start: this.start.value, end: this.end.addSeconds(1).value });
34
33
  const points = [];
35
34
  for (let i = 0; i < weeks.length; i++) {
36
35
  const weekStart = new GanttDate(weeks[i]);
@@ -54,4 +53,4 @@ export class GanttViewDay extends GanttView {
54
53
  return points;
55
54
  }
56
55
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL3ZpZXdzL2RheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixtQkFBbUIsRUFBRSxxQkFBcUIsRUFBaUIsTUFBTSxRQUFRLENBQUM7QUFDaEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV6QyxNQUFNLFdBQVcsR0FBcUI7SUFDbEMsU0FBUyxFQUFFLEVBQUU7SUFDYixLQUFLLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDckUsR0FBRyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQy9ELFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLE9BQU87SUFDaEIsUUFBUSxFQUFFLENBQUM7Q0FDZCxDQUFDO0FBRUYsTUFBTSxPQUFPLFlBQWEsU0FBUSxTQUFTO0lBT3ZDLFlBQVksS0FBb0IsRUFBRSxHQUFrQixFQUFFLE9BQTBCO1FBQzVFLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBUHRELHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixhQUFRLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQztJQUl0QyxD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QUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FudHRWaWV3LCBHYW50dFZpZXdPcHRpb25zLCBwcmltYXJ5RGF0ZVBvaW50VG9wLCBzZWNvbmRhcnlEYXRlUG9pbnRUb3AsIEdhbnR0Vmlld0RhdGUgfSBmcm9tICcuL3ZpZXcnO1xuaW1wb3J0IHsgR2FudHREYXRlLCBlYWNoV2Vla09mSW50ZXJ2YWwsIGVhY2hEYXlPZkludGVydmFsIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZSc7XG5pbXBvcnQgeyBHYW50dERhdGVQb2ludCB9IGZyb20gJy4uL2NsYXNzL2RhdGUtcG9pbnQnO1xuaW1wb3J0IHsgR2FudHRWaWV3VHlwZSB9IGZyb20gJy4uL2NsYXNzJztcblxuY29uc3Qgdmlld09wdGlvbnM6IEdhbnR0Vmlld09wdGlvbnMgPSB7XG4gICAgY2VsbFdpZHRoOiAzNSxcbiAgICBzdGFydDogbmV3IEdhbnR0RGF0ZSgpLnN0YXJ0T2ZZZWFyKCkuc3RhcnRPZldlZWsoeyB3ZWVrU3RhcnRzT246IDEgfSksXG4gICAgZW5kOiBuZXcgR2FudHREYXRlKCkuZW5kT2ZZZWFyKCkuZW5kT2ZXZWVrKHsgd2Vla1N0YXJ0c09uOiAxIH0pLFxuICAgIGFkZEFtb3VudDogMSxcbiAgICBhZGRVbml0OiAnbW9udGgnLFxuICAgIGZpbGxEYXlzOiAxXG59O1xuXG5leHBvcnQgY2xhc3MgR2FudHRWaWV3RGF5IGV4dGVuZHMgR2FudHRWaWV3IHtcbiAgICBvdmVycmlkZSBzaG93V2Vla0JhY2tkcm9wID0gdHJ1ZTtcblxuICAgIG92ZXJyaWRlIHNob3dUaW1lbGluZSA9IGZhbHNlO1xuXG4gICAgb3ZlcnJpZGUgdmlld1R5cGUgPSBHYW50dFZpZXdUeXBlLmRheTtcblxuICAgIGNvbnN0cnVjdG9yKHN0YXJ0OiBHYW50dFZpZXdEYXRlLCBlbmQ6IEdhbnR0Vmlld0RhdGUsIG9wdGlvbnM/OiBHYW50dFZpZXdPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHN0YXJ0LCBlbmQsIE9iamVjdC5hc3NpZ24oe30sIHZpZXdPcHRpb25zLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3RhcnRPZihkYXRlOiBHYW50dERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuc3RhcnRPZldlZWsoeyB3ZWVrU3RhcnRzT246IDEgfSk7XG4gICAgfVxuXG4gICAgZW5kT2YoZGF0ZTogR2FudHREYXRlKSB7XG4gICAgICAgIHJldHVybiBkYXRlLmVuZE9mV2Vlayh7IHdlZWtTdGFydHNPbjogMSB9KTtcbiAgICB9XG5cbiAgICBnZXRQcmltYXJ5V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxXaWR0aCgpICogNztcbiAgICB9XG5cbiAgICBnZXREYXlPY2N1cGFuY3lXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsV2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0UHJpbWFyeURhdGVQb2ludHMoKTogR2FudHREYXRlUG9pbnRbXSB7XG4gICAgICAgIGNvbnN0IHdlZWtzID0gZWFjaFdlZWtPZkludGVydmFsKHsgc3RhcnQ6IHRoaXMuc3RhcnQudmFsdWUsIGVuZDogdGhpcy5lbmQuYWRkU2Vjb25kcygxKS52YWx1ZSB9LCB7IHdlZWtTdGFydHNPbjogMSB9KTtcbiAgICAgICAgY29uc3QgcG9pbnRzOiBHYW50dERhdGVQb2ludFtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2Vla3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHdlZWtTdGFydCA9IG5ldyBHYW50dERhdGUod2Vla3NbaV0pO1xuICAgICAgICAgICAgY29uc3QgaW5jcmVhc2VXZWVrID0gd2Vla1N0YXJ0LmdldERheXNJbk1vbnRoKCkgLSB3ZWVrU3RhcnQuZ2V0RGF0ZSgpID49IDMgPyAwIDogMTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEdhbnR0RGF0ZVBvaW50KFxuICAgICAgICAgICAgICAgIHdlZWtTdGFydCxcbiAgICAgICAgICAgICAgICB3ZWVrU3RhcnQuYWRkV2Vla3MoaW5jcmVhc2VXZWVrKS5mb3JtYXQodGhpcy5vcHRpb25zLmRhdGVGb3JtYXQueWVhck1vbnRoKSxcbiAgICAgICAgICAgICAgICAodGhpcy5nZXRDZWxsV2lkdGgoKSAqIDcpIC8gMiArIGkgKiAodGhpcy5nZXRDZWxsV2lkdGgoKSAqIDcpLFxuICAgICAgICAgICAgICAgIHByaW1hcnlEYXRlUG9pbnRUb3BcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCBkYXlzID0gZWFjaERheU9mSW50ZXJ2YWwoeyBzdGFydDogdGhpcy5zdGFydC52YWx1ZSwgZW5kOiB0aGlzLmVuZC52YWx1ZSB9KTtcbiAgICAgICAgY29uc3QgcG9pbnRzOiBHYW50dERhdGVQb2ludFtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgR2FudHREYXRlKGRheXNbaV0pO1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBuZXcgR2FudHREYXRlUG9pbnQoXG4gICAgICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICAgICAgc3RhcnQuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgaSAqIHRoaXMuZ2V0Q2VsbFdpZHRoKCkgKyB0aGlzLmdldENlbGxXaWR0aCgpIC8gMixcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlEYXRlUG9pbnRUb3AsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpc1dlZWtlbmQ6IHN0YXJ0LmlzV2Vla2VuZCgpLFxuICAgICAgICAgICAgICAgICAgICBpc1RvZGF5OiBzdGFydC5pc1RvZGF5KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb2ludHM7XG4gICAgfVxufVxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL3ZpZXdzL2RheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQW1DLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWhILE1BQU0sV0FBVyxHQUFxQjtJQUNsQyxTQUFTLEVBQUUsRUFBRTtJQUNiLEtBQUssRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRTtJQUNsRCxHQUFHLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUU7SUFDNUMsU0FBUyxFQUFFLENBQUM7SUFDWixPQUFPLEVBQUUsT0FBTztDQUNuQixDQUFDO0FBRUYsTUFBTSxPQUFPLFlBQWEsU0FBUSxTQUFTO0lBT3ZDLFlBQVksS0FBb0IsRUFBRSxHQUFrQixFQUFFLE9BQTBCO1FBQzVFLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBUHRELHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixhQUFRLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQztJQUl0QyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDakcsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRixNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FDNUIsU0FBUyxFQUNULFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUMxRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUM3RCxtQkFBbUIsQ0FDdEIsQ0FBQztZQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRixNQUFNLE1BQU0sR0FBcUIsRUFBRSxDQUFDO1FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxjQUFjLENBQzVCLEtBQUssRUFDTCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQzFCLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsRUFDakQscUJBQXFCLEVBQ3JCO2dCQUNJLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUM1QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTthQUMzQixDQUNKLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW50dFZpZXdUeXBlIH0gZnJvbSAnLi4vY2xhc3MnO1xuaW1wb3J0IHsgR2FudHREYXRlUG9pbnQgfSBmcm9tICcuLi9jbGFzcy9kYXRlLXBvaW50JztcbmltcG9ydCB7IEdhbnR0RGF0ZSwgZWFjaERheU9mSW50ZXJ2YWwsIGVhY2hXZWVrT2ZJbnRlcnZhbCB9IGZyb20gJy4uL3V0aWxzL2RhdGUnO1xuaW1wb3J0IHsgR2FudHRWaWV3LCBHYW50dFZpZXdEYXRlLCBHYW50dFZpZXdPcHRpb25zLCBwcmltYXJ5RGF0ZVBvaW50VG9wLCBzZWNvbmRhcnlEYXRlUG9pbnRUb3AgfSBmcm9tICcuL3ZpZXcnO1xuXG5jb25zdCB2aWV3T3B0aW9uczogR2FudHRWaWV3T3B0aW9ucyA9IHtcbiAgICBjZWxsV2lkdGg6IDM1LFxuICAgIHN0YXJ0OiBuZXcgR2FudHREYXRlKCkuc3RhcnRPZlllYXIoKS5zdGFydE9mV2VlaygpLFxuICAgIGVuZDogbmV3IEdhbnR0RGF0ZSgpLmVuZE9mWWVhcigpLmVuZE9mV2VlaygpLFxuICAgIGFkZEFtb3VudDogMSxcbiAgICBhZGRVbml0OiAnbW9udGgnXG59O1xuXG5leHBvcnQgY2xhc3MgR2FudHRWaWV3RGF5IGV4dGVuZHMgR2FudHRWaWV3IHtcbiAgICBvdmVycmlkZSBzaG93V2Vla0JhY2tkcm9wID0gdHJ1ZTtcblxuICAgIG92ZXJyaWRlIHNob3dUaW1lbGluZSA9IGZhbHNlO1xuXG4gICAgb3ZlcnJpZGUgdmlld1R5cGUgPSBHYW50dFZpZXdUeXBlLmRheTtcblxuICAgIGNvbnN0cnVjdG9yKHN0YXJ0OiBHYW50dFZpZXdEYXRlLCBlbmQ6IEdhbnR0Vmlld0RhdGUsIG9wdGlvbnM/OiBHYW50dFZpZXdPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHN0YXJ0LCBlbmQsIE9iamVjdC5hc3NpZ24oe30sIHZpZXdPcHRpb25zLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgdmlld1N0YXJ0T2YoZGF0ZTogR2FudHREYXRlKSB7XG4gICAgICAgIHJldHVybiBkYXRlLnN0YXJ0T2ZXZWVrKCk7XG4gICAgfVxuXG4gICAgdmlld0VuZE9mKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZS5lbmRPZldlZWsoKTtcbiAgICB9XG5cbiAgICBnZXRQcmltYXJ5V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxXaWR0aCgpICogNztcbiAgICB9XG5cbiAgICBnZXREYXlPY2N1cGFuY3lXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsV2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0UHJpbWFyeURhdGVQb2ludHMoKTogR2FudHREYXRlUG9pbnRbXSB7XG4gICAgICAgIGNvbnN0IHdlZWtzID0gZWFjaFdlZWtPZkludGVydmFsKHsgc3RhcnQ6IHRoaXMuc3RhcnQudmFsdWUsIGVuZDogdGhpcy5lbmQuYWRkU2Vjb25kcygxKS52YWx1ZSB9KTtcbiAgICAgICAgY29uc3QgcG9pbnRzOiBHYW50dERhdGVQb2ludFtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2Vla3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHdlZWtTdGFydCA9IG5ldyBHYW50dERhdGUod2Vla3NbaV0pO1xuICAgICAgICAgICAgY29uc3QgaW5jcmVhc2VXZWVrID0gd2Vla1N0YXJ0LmdldERheXNJbk1vbnRoKCkgLSB3ZWVrU3RhcnQuZ2V0RGF0ZSgpID49IDMgPyAwIDogMTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEdhbnR0RGF0ZVBvaW50KFxuICAgICAgICAgICAgICAgIHdlZWtTdGFydCxcbiAgICAgICAgICAgICAgICB3ZWVrU3RhcnQuYWRkV2Vla3MoaW5jcmVhc2VXZWVrKS5mb3JtYXQodGhpcy5vcHRpb25zLmRhdGVGb3JtYXQueWVhck1vbnRoKSxcbiAgICAgICAgICAgICAgICAodGhpcy5nZXRDZWxsV2lkdGgoKSAqIDcpIC8gMiArIGkgKiAodGhpcy5nZXRDZWxsV2lkdGgoKSAqIDcpLFxuICAgICAgICAgICAgICAgIHByaW1hcnlEYXRlUG9pbnRUb3BcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCBkYXlzID0gZWFjaERheU9mSW50ZXJ2YWwoeyBzdGFydDogdGhpcy5zdGFydC52YWx1ZSwgZW5kOiB0aGlzLmVuZC52YWx1ZSB9KTtcbiAgICAgICAgY29uc3QgcG9pbnRzOiBHYW50dERhdGVQb2ludFtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgR2FudHREYXRlKGRheXNbaV0pO1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBuZXcgR2FudHREYXRlUG9pbnQoXG4gICAgICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICAgICAgc3RhcnQuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgaSAqIHRoaXMuZ2V0Q2VsbFdpZHRoKCkgKyB0aGlzLmdldENlbGxXaWR0aCgpIC8gMixcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlEYXRlUG9pbnRUb3AsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpc1dlZWtlbmQ6IHN0YXJ0LmlzV2Vla2VuZCgpLFxuICAgICAgICAgICAgICAgICAgICBpc1RvZGF5OiBzdGFydC5pc1RvZGF5KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb2ludHM7XG4gICAgfVxufVxuIl19
@@ -4,7 +4,9 @@ import { GanttViewQuarter } from './quarter';
4
4
  import { GanttViewDay } from './day';
5
5
  import { GanttViewWeek } from './week';
6
6
  import { GanttViewYear } from './year';
7
+ import { GanttViewHour } from './hour';
7
8
  const ganttViewsMap = {
9
+ [GanttViewType.hour]: GanttViewHour,
8
10
  [GanttViewType.day]: GanttViewDay,
9
11
  [GanttViewType.week]: GanttViewWeek,
10
12
  [GanttViewType.month]: GanttViewMonth,
@@ -17,4 +19,4 @@ export function registerView(type, view) {
17
19
  export function createViewFactory(type, start, end, options) {
18
20
  return new ganttViewsMap[type](start, end, options);
19
21
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV2QyxNQUFNLGFBQWEsR0FBRztJQUNsQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZO0lBQ2pDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWE7SUFDbkMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsY0FBYztJQUNyQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxnQkFBZ0I7SUFDekMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYTtDQUN0QyxDQUFDO0FBRUYsTUFBTSxVQUFVLFlBQVksQ0FBNkIsSUFBWSxFQUFFLElBQU87SUFDMUUsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQW1CLEVBQUUsS0FBb0IsRUFBRSxHQUFrQixFQUFFLE9BQTBCO0lBQ3ZILE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FudHRWaWV3T3B0aW9ucywgR2FudHRWaWV3RGF0ZSwgR2FudHRWaWV3IH0gZnJvbSAnLi92aWV3JztcbmltcG9ydCB7IEdhbnR0Vmlld01vbnRoIH0gZnJvbSAnLi9tb250aCc7XG5pbXBvcnQgeyBHYW50dFZpZXdUeXBlIH0gZnJvbSAnLi4vY2xhc3Mvdmlldy10eXBlJztcbmltcG9ydCB7IEdhbnR0Vmlld1F1YXJ0ZXIgfSBmcm9tICcuL3F1YXJ0ZXInO1xuaW1wb3J0IHsgR2FudHRWaWV3RGF5IH0gZnJvbSAnLi9kYXknO1xuaW1wb3J0IHsgR2FudHRWaWV3V2VlayB9IGZyb20gJy4vd2Vlayc7XG5pbXBvcnQgeyBHYW50dFZpZXdZZWFyIH0gZnJvbSAnLi95ZWFyJztcblxuY29uc3QgZ2FudHRWaWV3c01hcCA9IHtcbiAgICBbR2FudHRWaWV3VHlwZS5kYXldOiBHYW50dFZpZXdEYXksXG4gICAgW0dhbnR0Vmlld1R5cGUud2Vla106IEdhbnR0Vmlld1dlZWssXG4gICAgW0dhbnR0Vmlld1R5cGUubW9udGhdOiBHYW50dFZpZXdNb250aCxcbiAgICBbR2FudHRWaWV3VHlwZS5xdWFydGVyXTogR2FudHRWaWV3UXVhcnRlcixcbiAgICBbR2FudHRWaWV3VHlwZS55ZWFyXTogR2FudHRWaWV3WWVhclxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyVmlldzxUIGV4dGVuZHMgdHlwZW9mIEdhbnR0Vmlldz4odHlwZTogc3RyaW5nLCB2aWV3OiBUKSB7XG4gICAgZ2FudHRWaWV3c01hcFt0eXBlXSA9IHZpZXc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWaWV3RmFjdG9yeSh0eXBlOiBHYW50dFZpZXdUeXBlLCBzdGFydDogR2FudHRWaWV3RGF0ZSwgZW5kOiBHYW50dFZpZXdEYXRlLCBvcHRpb25zPzogR2FudHRWaWV3T3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgZ2FudHRWaWV3c01hcFt0eXBlXShzdGFydCwgZW5kLCBvcHRpb25zKTtcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXZDLE1BQU0sYUFBYSxHQUFHO0lBQ2xCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWE7SUFDbkMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWTtJQUNqQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhO0lBQ25DLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLGNBQWM7SUFDckMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsZ0JBQWdCO0lBQ3pDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWE7Q0FDdEMsQ0FBQztBQUVGLE1BQU0sVUFBVSxZQUFZLENBQTZCLElBQVksRUFBRSxJQUFPO0lBQzFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFtQixFQUFFLEtBQW9CLEVBQUUsR0FBa0IsRUFBRSxPQUEwQjtJQUN2SCxPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbnR0Vmlld09wdGlvbnMsIEdhbnR0Vmlld0RhdGUsIEdhbnR0VmlldyB9IGZyb20gJy4vdmlldyc7XG5pbXBvcnQgeyBHYW50dFZpZXdNb250aCB9IGZyb20gJy4vbW9udGgnO1xuaW1wb3J0IHsgR2FudHRWaWV3VHlwZSB9IGZyb20gJy4uL2NsYXNzL3ZpZXctdHlwZSc7XG5pbXBvcnQgeyBHYW50dFZpZXdRdWFydGVyIH0gZnJvbSAnLi9xdWFydGVyJztcbmltcG9ydCB7IEdhbnR0Vmlld0RheSB9IGZyb20gJy4vZGF5JztcbmltcG9ydCB7IEdhbnR0Vmlld1dlZWsgfSBmcm9tICcuL3dlZWsnO1xuaW1wb3J0IHsgR2FudHRWaWV3WWVhciB9IGZyb20gJy4veWVhcic7XG5pbXBvcnQgeyBHYW50dFZpZXdIb3VyIH0gZnJvbSAnLi9ob3VyJztcblxuY29uc3QgZ2FudHRWaWV3c01hcCA9IHtcbiAgICBbR2FudHRWaWV3VHlwZS5ob3VyXTogR2FudHRWaWV3SG91cixcbiAgICBbR2FudHRWaWV3VHlwZS5kYXldOiBHYW50dFZpZXdEYXksXG4gICAgW0dhbnR0Vmlld1R5cGUud2Vla106IEdhbnR0Vmlld1dlZWssXG4gICAgW0dhbnR0Vmlld1R5cGUubW9udGhdOiBHYW50dFZpZXdNb250aCxcbiAgICBbR2FudHRWaWV3VHlwZS5xdWFydGVyXTogR2FudHRWaWV3UXVhcnRlcixcbiAgICBbR2FudHRWaWV3VHlwZS55ZWFyXTogR2FudHRWaWV3WWVhclxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyVmlldzxUIGV4dGVuZHMgdHlwZW9mIEdhbnR0Vmlldz4odHlwZTogc3RyaW5nLCB2aWV3OiBUKSB7XG4gICAgZ2FudHRWaWV3c01hcFt0eXBlXSA9IHZpZXc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWaWV3RmFjdG9yeSh0eXBlOiBHYW50dFZpZXdUeXBlLCBzdGFydDogR2FudHRWaWV3RGF0ZSwgZW5kOiBHYW50dFZpZXdEYXRlLCBvcHRpb25zPzogR2FudHRWaWV3T3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgZ2FudHRWaWV3c01hcFt0eXBlXShzdGFydCwgZW5kLCBvcHRpb25zKTtcbn1cbiJdfQ==
@@ -0,0 +1,77 @@
1
+ import { GanttViewType } from '../class';
2
+ import { GanttDatePoint } from '../class/date-point';
3
+ import { GanttDate, differenceInMinutes, eachDayOfInterval, eachHourOfInterval } from '../utils/date';
4
+ import { GanttView, primaryDatePointTop, secondaryDatePointTop } from './view';
5
+ const viewOptions = {
6
+ cellWidth: 80,
7
+ start: new GanttDate().startOfMonth(),
8
+ end: new GanttDate().endOfMonth(),
9
+ datePrecisionUnit: 'minute',
10
+ addAmount: 1,
11
+ addUnit: 'week',
12
+ dragPreviewDateFormat: 'HH:mm'
13
+ };
14
+ export class GanttViewHour extends GanttView {
15
+ constructor(start, end, options) {
16
+ super(start, end, Object.assign({}, viewOptions, options));
17
+ this.showWeekBackdrop = true;
18
+ this.showTimeline = true;
19
+ this.viewType = GanttViewType.hour;
20
+ }
21
+ viewStartOf(date) {
22
+ return date.startOfWeek();
23
+ }
24
+ viewEndOf(date) {
25
+ return date.endOfWeek();
26
+ }
27
+ getPrimaryWidth() {
28
+ return this.getCellWidth() * 24;
29
+ }
30
+ getDayOccupancyWidth() {
31
+ return this.cellWidth * 60;
32
+ }
33
+ getHourOccupancyWidth() {
34
+ return this.getDayOccupancyWidth() / 60;
35
+ }
36
+ getPrimaryDatePoints() {
37
+ const days = eachDayOfInterval({ start: this.start.value, end: this.end.value });
38
+ const points = [];
39
+ for (let i = 0; i < days.length; i++) {
40
+ const start = this.start.addDays(i);
41
+ const point = new GanttDatePoint(start, start.format(this.options.dateFormat.day), (this.getCellWidth() * 24) / 2 + i * (this.getCellWidth() * 24), primaryDatePointTop);
42
+ points.push(point);
43
+ }
44
+ return points;
45
+ }
46
+ getSecondaryDatePoints() {
47
+ const hours = eachHourOfInterval({ start: this.start.value, end: this.end.value });
48
+ const points = [];
49
+ for (let i = 0; i < hours.length; i++) {
50
+ const start = new GanttDate(hours[i]);
51
+ const point = new GanttDatePoint(start, start.format(this.options.dateFormat.hour), i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop, {
52
+ isWeekend: start.isWeekend(),
53
+ isToday: start.isToday()
54
+ });
55
+ points.push(point);
56
+ }
57
+ return points;
58
+ }
59
+ getDateIntervalWidth(start, end) {
60
+ let result = 0;
61
+ const minutes = differenceInMinutes(end.value, start.value);
62
+ for (let i = 0; i < minutes; i++) {
63
+ result += this.getHourOccupancyWidth() / 60;
64
+ }
65
+ result = minutes >= 0 ? result : -result;
66
+ return Number(result.toFixed(3));
67
+ }
68
+ getDateByXPoint(x) {
69
+ const hourWidth = this.getHourOccupancyWidth();
70
+ const indexOfSecondaryDate = Math.max(Math.floor(x / hourWidth), 0);
71
+ const matchDate = this.secondaryDatePoints[Math.min(this.secondaryDatePoints.length - 1, indexOfSecondaryDate)];
72
+ const minuteWidth = hourWidth / 60;
73
+ const underOneHourMinutes = Math.floor((x % hourWidth) / minuteWidth);
74
+ return matchDate?.start.addMinutes(underOneHourMinutes);
75
+ }
76
+ }
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91ci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy9ob3VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBbUMsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFaEgsTUFBTSxXQUFXLEdBQXFCO0lBQ2xDLFNBQVMsRUFBRSxFQUFFO0lBQ2IsS0FBSyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsWUFBWSxFQUFFO0lBQ3JDLEdBQUcsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRTtJQUNqQyxpQkFBaUIsRUFBRSxRQUFRO0lBQzNCLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLE1BQU07SUFDZixxQkFBcUIsRUFBRSxPQUFPO0NBQ2pDLENBQUM7QUFFRixNQUFNLE9BQU8sYUFBYyxTQUFRLFNBQVM7SUFPeEMsWUFBWSxLQUFvQixFQUFFLEdBQWtCLEVBQUUsT0FBMEI7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFQdEQscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBRXhCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXBCLGFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBSXZDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBZTtRQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXLEVB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QUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2hELENBQUM7UUFDRCxNQUFNLEdBQUcsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN6QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVRLGVBQWUsQ0FBQyxDQUFTO1FBQzlCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9DLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDaEgsTUFBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDdEUsT0FBTyxTQUFTLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbnR0Vmlld1R5cGUgfSBmcm9tICcuLi9jbGFzcyc7XG5pbXBvcnQgeyBHYW50dERhdGVQb2ludCB9IGZyb20gJy4uL2NsYXNzL2RhdGUtcG9pbnQnO1xuaW1wb3J0IHsgR2FudHREYXRlLCBkaWZmZXJlbmNlSW5NaW51dGVzLCBlYWNoRGF5T2ZJbnRlcnZhbCwgZWFjaEhvdXJPZkludGVydmFsIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZSc7XG5pbXBvcnQgeyBHYW50dFZpZXcsIEdhbnR0Vmlld0RhdGUsIEdhbnR0Vmlld09wdGlvbnMsIHByaW1hcnlEYXRlUG9pbnRUb3AsIHNlY29uZGFyeURhdGVQb2ludFRvcCB9IGZyb20gJy4vdmlldyc7XG5cbmNvbnN0IHZpZXdPcHRpb25zOiBHYW50dFZpZXdPcHRpb25zID0ge1xuICAgIGNlbGxXaWR0aDogODAsXG4gICAgc3RhcnQ6IG5ldyBHYW50dERhdGUoKS5zdGFydE9mTW9udGgoKSxcbiAgICBlbmQ6IG5ldyBHYW50dERhdGUoKS5lbmRPZk1vbnRoKCksXG4gICAgZGF0ZVByZWNpc2lvblVuaXQ6ICdtaW51dGUnLFxuICAgIGFkZEFtb3VudDogMSxcbiAgICBhZGRVbml0OiAnd2VlaycsXG4gICAgZHJhZ1ByZXZpZXdEYXRlRm9ybWF0OiAnSEg6bW0nXG59O1xuXG5leHBvcnQgY2xhc3MgR2FudHRWaWV3SG91ciBleHRlbmRzIEdhbnR0VmlldyB7XG4gICAgb3ZlcnJpZGUgc2hvd1dlZWtCYWNrZHJvcCA9IHRydWU7XG5cbiAgICBvdmVycmlkZSBzaG93VGltZWxpbmUgPSB0cnVlO1xuXG4gICAgb3ZlcnJpZGUgdmlld1R5cGUgPSBHYW50dFZpZXdUeXBlLmhvdXI7XG5cbiAgICBjb25zdHJ1Y3RvcihzdGFydDogR2FudHRWaWV3RGF0ZSwgZW5kOiBHYW50dFZpZXdEYXRlLCBvcHRpb25zPzogR2FudHRWaWV3T3B0aW9ucykge1xuICAgICAgICBzdXBlcihzdGFydCwgZW5kLCBPYmplY3QuYXNzaWduKHt9LCB2aWV3T3B0aW9ucywgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHZpZXdTdGFydE9mKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZS5zdGFydE9mV2VlaygpO1xuICAgIH1cblxuICAgIHZpZXdFbmRPZihkYXRlOiBHYW50dERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZW5kT2ZXZWVrKCk7XG4gICAgfVxuXG4gICAgZ2V0UHJpbWFyeVdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDZWxsV2lkdGgoKSAqIDI0O1xuICAgIH1cblxuICAgIGdldERheU9jY3VwYW5jeVdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGxXaWR0aCAqIDYwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG91ck9jY3VwYW5jeVdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXlPY2N1cGFuY3lXaWR0aCgpIC8gNjA7XG4gICAgfVxuXG4gICAgZ2V0UHJpbWFyeURhdGVQb2ludHMoKTogR2FudHREYXRlUG9pbnRbXSB7XG4gICAgICAgIGNvbnN0IGRheXMgPSBlYWNoRGF5T2ZJbnRlcnZhbCh7IHN0YXJ0OiB0aGlzLnN0YXJ0LnZhbHVlLCBlbmQ6IHRoaXMuZW5kLnZhbHVlIH0pO1xuICAgICAgICBjb25zdCBwb2ludHM6IEdhbnR0RGF0ZVBvaW50W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuc3RhcnQuYWRkRGF5cyhpKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEdhbnR0RGF0ZVBvaW50KFxuICAgICAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgICAgIHN0YXJ0LmZvcm1hdCh0aGlzLm9wdGlvbnMuZGF0ZUZvcm1hdC5kYXkpLFxuICAgICAgICAgICAgICAgICh0aGlzLmdldENlbGxXaWR0aCgpICogMjQpIC8gMiArIGkgKiAodGhpcy5nZXRDZWxsV2lkdGgoKSAqIDI0KSxcbiAgICAgICAgICAgICAgICBwcmltYXJ5RGF0ZVBvaW50VG9wXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCBob3VycyA9IGVhY2hIb3VyT2ZJbnRlcnZhbCh7IHN0YXJ0OiB0aGlzLnN0YXJ0LnZhbHVlLCBlbmQ6IHRoaXMuZW5kLnZhbHVlIH0pO1xuICAgICAgICBjb25zdCBwb2ludHM6IEdhbnR0RGF0ZVBvaW50W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBob3Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgR2FudHREYXRlKGhvdXJzW2ldKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEdhbnR0RGF0ZVBvaW50KFxuICAgICAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgICAgIHN0YXJ0LmZvcm1hdCh0aGlzLm9wdGlvbnMuZGF0ZUZvcm1hdC5ob3VyKSxcbiAgICAgICAgICAgICAgICBpICogdGhpcy5nZXRDZWxsV2lkdGgoKSArIHRoaXMuZ2V0Q2VsbFdpZHRoKCkgLyAyLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeURhdGVQb2ludFRvcCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlzV2Vla2VuZDogc3RhcnQuaXNXZWVrZW5kKCksXG4gICAgICAgICAgICAgICAgICAgIGlzVG9kYXk6IHN0YXJ0LmlzVG9kYXkoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG5cbiAgICBvdmVycmlkZSBnZXREYXRlSW50ZXJ2YWxXaWR0aChzdGFydDogR2FudHREYXRlLCBlbmQ6IEdhbnR0RGF0ZSkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IGRpZmZlcmVuY2VJbk1pbnV0ZXMoZW5kLnZhbHVlLCBzdGFydC52YWx1ZSk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWludXRlczsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5nZXRIb3VyT2NjdXBhbmN5V2lkdGgoKSAvIDYwO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IG1pbnV0ZXMgPj0gMCA/IHJlc3VsdCA6IC1yZXN1bHQ7XG4gICAgICAgIHJldHVybiBOdW1iZXIocmVzdWx0LnRvRml4ZWQoMykpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGdldERhdGVCeVhQb2ludCh4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaG91cldpZHRoID0gdGhpcy5nZXRIb3VyT2NjdXBhbmN5V2lkdGgoKTtcbiAgICAgICAgY29uc3QgaW5kZXhPZlNlY29uZGFyeURhdGUgPSBNYXRoLm1heChNYXRoLmZsb29yKHggLyBob3VyV2lkdGgpLCAwKTtcbiAgICAgICAgY29uc3QgbWF0Y2hEYXRlID0gdGhpcy5zZWNvbmRhcnlEYXRlUG9pbnRzW01hdGgubWluKHRoaXMuc2Vjb25kYXJ5RGF0ZVBvaW50cy5sZW5ndGggLSAxLCBpbmRleE9mU2Vjb25kYXJ5RGF0ZSldO1xuICAgICAgICBjb25zdCBtaW51dGVXaWR0aCA9IGhvdXJXaWR0aCAvIDYwO1xuICAgICAgICBjb25zdCB1bmRlck9uZUhvdXJNaW51dGVzID0gTWF0aC5mbG9vcigoeCAlIGhvdXJXaWR0aCkgLyBtaW51dGVXaWR0aCk7XG4gICAgICAgIHJldHVybiBtYXRjaERhdGU/LnN0YXJ0LmFkZE1pbnV0ZXModW5kZXJPbmVIb3VyTWludXRlcyk7XG4gICAgfVxufVxuIl19
@@ -7,18 +7,17 @@ const viewOptions = {
7
7
  end: new GanttDate().endOfQuarter().addQuarters(2),
8
8
  cellWidth: 280,
9
9
  addAmount: 1,
10
- addUnit: 'quarter',
11
- fillDays: 30
10
+ addUnit: 'quarter'
12
11
  };
13
12
  export class GanttViewMonth extends GanttView {
14
13
  constructor(start, end, options) {
15
14
  super(start, end, Object.assign({}, viewOptions, options));
16
15
  this.viewType = GanttViewType.month;
17
16
  }
18
- startOf(date) {
17
+ viewStartOf(date) {
19
18
  return date.startOfQuarter();
20
19
  }
21
- endOf(date) {
20
+ viewEndOf(date) {
22
21
  return date.endOfQuarter();
23
22
  }
24
23
  getPrimaryWidth() {
@@ -48,4 +47,4 @@ export class GanttViewMonth extends GanttView {
48
47
  return points;
49
48
  }
50
49
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvdmlld3MvbW9udGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsbUJBQW1CLEVBQUUscUJBQXFCLEVBQWlCLE1BQU0sUUFBUSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxTQUFTLEVBQUUsNEJBQTRCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekMsTUFBTSxXQUFXLEdBQXFCO0lBQ2xDLEtBQUssRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxHQUFHLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2xELFNBQVMsRUFBRSxHQUFHO0lBQ2QsU0FBUyxFQUFFLENBQUM7SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsRUFBRTtDQUNmLENBQUM7QUFFRixNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFHekMsWUFBWSxLQUFvQixFQUFFLEdBQWtCLEVBQUUsT0FBMEI7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFIdEQsYUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFJeEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFlO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBZTtRQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUYsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUM1QixLQUFLLEVBQ0wsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFDakQsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDN0QsbUJBQW1CLENBQ3RCLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxjQUFjLENBQzVCLEtBQUssRUFDTCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUMzQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQ2pELHFCQUFxQixDQUN4QixDQUFDO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbnR0VmlldywgR2FudHRWaWV3T3B0aW9ucywgcHJpbWFyeURhdGVQb2ludFRvcCwgc2Vjb25kYXJ5RGF0ZVBvaW50VG9wLCBHYW50dFZpZXdEYXRlIH0gZnJvbSAnLi92aWV3JztcbmltcG9ydCB7IEdhbnR0RGF0ZSwgZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycywgZWFjaE1vbnRoT2ZJbnRlcnZhbCB9IGZyb20gJy4uL3V0aWxzL2RhdGUnO1xuaW1wb3J0IHsgR2FudHREYXRlUG9pbnQgfSBmcm9tICcuLi9jbGFzcy9kYXRlLXBvaW50JztcbmltcG9ydCB7IEdhbnR0Vmlld1R5cGUgfSBmcm9tICcuLi9jbGFzcyc7XG5cbmNvbnN0IHZpZXdPcHRpb25zOiBHYW50dFZpZXdPcHRpb25zID0ge1xuICAgIHN0YXJ0OiBuZXcgR2FudHREYXRlKCkuc3RhcnRPZlF1YXJ0ZXIoKS5hZGRRdWFydGVycygtMSksXG4gICAgZW5kOiBuZXcgR2FudHREYXRlKCkuZW5kT2ZRdWFydGVyKCkuYWRkUXVhcnRlcnMoMiksXG4gICAgY2VsbFdpZHRoOiAyODAsXG4gICAgYWRkQW1vdW50OiAxLFxuICAgIGFkZFVuaXQ6ICdxdWFydGVyJyxcbiAgICBmaWxsRGF5czogMzBcbn07XG5cbmV4cG9ydCBjbGFzcyBHYW50dFZpZXdNb250aCBleHRlbmRzIEdhbnR0VmlldyB7XG4gICAgb3ZlcnJpZGUgdmlld1R5cGUgPSBHYW50dFZpZXdUeXBlLm1vbnRoO1xuXG4gICAgY29uc3RydWN0b3Ioc3RhcnQ6IEdhbnR0Vmlld0RhdGUsIGVuZDogR2FudHRWaWV3RGF0ZSwgb3B0aW9ucz86IEdhbnR0Vmlld09wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoc3RhcnQsIGVuZCwgT2JqZWN0LmFzc2lnbih7fSwgdmlld09wdGlvbnMsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdGFydE9mKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZS5zdGFydE9mUXVhcnRlcigpO1xuICAgIH1cblxuICAgIGVuZE9mKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZS5lbmRPZlF1YXJ0ZXIoKTtcbiAgICB9XG5cbiAgICBnZXRQcmltYXJ5V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxXaWR0aCgpICogMztcbiAgICB9XG5cbiAgICBnZXREYXlPY2N1cGFuY3lXaWR0aChkYXRlOiBHYW50dERhdGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsV2lkdGggLyBkYXRlLmdldERheXNJbk1vbnRoKCk7XG4gICAgfVxuXG4gICAgZ2V0UHJpbWFyeURhdGVQb2ludHMoKTogR2FudHREYXRlUG9pbnRbXSB7XG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJzID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyh0aGlzLmVuZC5hZGRTZWNvbmRzKDEpLnZhbHVlLCB0aGlzLnN0YXJ0LnZhbHVlKTtcbiAgICAgICAgY29uc3QgcG9pbnRzOiBHYW50dERhdGVQb2ludFtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVhcnRlcnM7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnN0YXJ0LmFkZFF1YXJ0ZXJzKGkpO1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBuZXcgR2FudHREYXRlUG9pbnQoXG4gICAgICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICAgICAgc3RhcnQuZm9ybWF0KHRoaXMub3B0aW9ucy5kYXRlRm9ybWF0LnllYXJRdWFydGVyKSxcbiAgICAgICAgICAgICAgICAodGhpcy5nZXRDZWxsV2lkdGgoKSAqIDMpIC8gMiArIGkgKiAodGhpcy5nZXRDZWxsV2lkdGgoKSAqIDMpLFxuICAgICAgICAgICAgICAgIHByaW1hcnlEYXRlUG9pbnRUb3BcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcG9pbnRzO1xuICAgIH1cblxuICAgIGdldFNlY29uZGFyeURhdGVQb2ludHMoKTogR2FudHREYXRlUG9pbnRbXSB7XG4gICAgICAgIGNvbnN0IG1vbnRocyA9IGVhY2hNb250aE9mSW50ZXJ2YWwoeyBzdGFydDogdGhpcy5zdGFydC52YWx1ZSwgZW5kOiB0aGlzLmVuZC52YWx1ZSB9KTtcbiAgICAgICAgY29uc3QgcG9pbnRzOiBHYW50dERhdGVQb2ludFtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9udGhzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IG5ldyBHYW50dERhdGUobW9udGhzW2ldKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEdhbnR0RGF0ZVBvaW50KFxuICAgICAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgICAgIHN0YXJ0LmZvcm1hdCh0aGlzLm9wdGlvbnMuZGF0ZUZvcm1hdC5tb250aCksXG4gICAgICAgICAgICAgICAgaSAqIHRoaXMuZ2V0Q2VsbFdpZHRoKCkgKyB0aGlzLmdldENlbGxXaWR0aCgpIC8gMixcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlEYXRlUG9pbnRUb3BcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvdmlld3MvbW9udGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsbUJBQW1CLEVBQUUscUJBQXFCLEVBQWlCLE1BQU0sUUFBUSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxTQUFTLEVBQUUsNEJBQTRCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekMsTUFBTSxXQUFXLEdBQXFCO0lBQ2xDLEtBQUssRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxHQUFHLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2xELFNBQVMsRUFBRSxHQUFHO0lBQ2QsU0FBUyxFQUFFLENBQUM7SUFDWixPQUFPLEVBQUUsU0FBUztDQUNyQixDQUFDO0FBRUYsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBR3pDLFlBQVksS0FBb0IsRUFBRSxHQUFrQixFQUFFLE9BQTBCO1FBQzVFLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBSHRELGFBQVEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBSXhDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBZTtRQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQWU7UUFDaEMsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlGLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUM1QixLQUFLLEVBQ0wsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFDakQsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDN0QsbUJBQW1CLENBQ3RCLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckYsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUM1QixLQUFLLEVBQ0wsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFDM0MsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxFQUNqRCxxQkFBcUIsQ0FDeEIsQ0FBQztZQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbnR0VmlldywgR2FudHRWaWV3T3B0aW9ucywgcHJpbWFyeURhdGVQb2ludFRvcCwgc2Vjb25kYXJ5RGF0ZVBvaW50VG9wLCBHYW50dFZpZXdEYXRlIH0gZnJvbSAnLi92aWV3JztcbmltcG9ydCB7IEdhbnR0RGF0ZSwgZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycywgZWFjaE1vbnRoT2ZJbnRlcnZhbCB9IGZyb20gJy4uL3V0aWxzL2RhdGUnO1xuaW1wb3J0IHsgR2FudHREYXRlUG9pbnQgfSBmcm9tICcuLi9jbGFzcy9kYXRlLXBvaW50JztcbmltcG9ydCB7IEdhbnR0Vmlld1R5cGUgfSBmcm9tICcuLi9jbGFzcyc7XG5cbmNvbnN0IHZpZXdPcHRpb25zOiBHYW50dFZpZXdPcHRpb25zID0ge1xuICAgIHN0YXJ0OiBuZXcgR2FudHREYXRlKCkuc3RhcnRPZlF1YXJ0ZXIoKS5hZGRRdWFydGVycygtMSksXG4gICAgZW5kOiBuZXcgR2FudHREYXRlKCkuZW5kT2ZRdWFydGVyKCkuYWRkUXVhcnRlcnMoMiksXG4gICAgY2VsbFdpZHRoOiAyODAsXG4gICAgYWRkQW1vdW50OiAxLFxuICAgIGFkZFVuaXQ6ICdxdWFydGVyJ1xufTtcblxuZXhwb3J0IGNsYXNzIEdhbnR0Vmlld01vbnRoIGV4dGVuZHMgR2FudHRWaWV3IHtcbiAgICBvdmVycmlkZSB2aWV3VHlwZSA9IEdhbnR0Vmlld1R5cGUubW9udGg7XG5cbiAgICBjb25zdHJ1Y3RvcihzdGFydDogR2FudHRWaWV3RGF0ZSwgZW5kOiBHYW50dFZpZXdEYXRlLCBvcHRpb25zPzogR2FudHRWaWV3T3B0aW9ucykge1xuICAgICAgICBzdXBlcihzdGFydCwgZW5kLCBPYmplY3QuYXNzaWduKHt9LCB2aWV3T3B0aW9ucywgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHZpZXdTdGFydE9mKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZS5zdGFydE9mUXVhcnRlcigpO1xuICAgIH1cblxuICAgIHZpZXdFbmRPZihkYXRlOiBHYW50dERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZW5kT2ZRdWFydGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0UHJpbWFyeVdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDZWxsV2lkdGgoKSAqIDM7XG4gICAgfVxuXG4gICAgZ2V0RGF5T2NjdXBhbmN5V2lkdGgoZGF0ZTogR2FudHREYXRlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2VsbFdpZHRoIC8gZGF0ZS5nZXREYXlzSW5Nb250aCgpO1xuICAgIH1cblxuICAgIGdldFByaW1hcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCBxdWFydGVycyA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnModGhpcy5lbmQuYWRkU2Vjb25kcygxKS52YWx1ZSwgdGhpcy5zdGFydC52YWx1ZSk7XG4gICAgICAgIGNvbnN0IHBvaW50czogR2FudHREYXRlUG9pbnRbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1YXJ0ZXJzOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGFydC5hZGRRdWFydGVycyhpKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEdhbnR0RGF0ZVBvaW50KFxuICAgICAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgICAgIHN0YXJ0LmZvcm1hdCh0aGlzLm9wdGlvbnMuZGF0ZUZvcm1hdC55ZWFyUXVhcnRlciksXG4gICAgICAgICAgICAgICAgKHRoaXMuZ2V0Q2VsbFdpZHRoKCkgKiAzKSAvIDIgKyBpICogKHRoaXMuZ2V0Q2VsbFdpZHRoKCkgKiAzKSxcbiAgICAgICAgICAgICAgICBwcmltYXJ5RGF0ZVBvaW50VG9wXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCBtb250aHMgPSBlYWNoTW9udGhPZkludGVydmFsKHsgc3RhcnQ6IHRoaXMuc3RhcnQudmFsdWUsIGVuZDogdGhpcy5lbmQudmFsdWUgfSk7XG4gICAgICAgIGNvbnN0IHBvaW50czogR2FudHREYXRlUG9pbnRbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbnRocy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgR2FudHREYXRlKG1vbnRoc1tpXSk7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IG5ldyBHYW50dERhdGVQb2ludChcbiAgICAgICAgICAgICAgICBzdGFydCxcbiAgICAgICAgICAgICAgICBzdGFydC5mb3JtYXQodGhpcy5vcHRpb25zLmRhdGVGb3JtYXQubW9udGgpLFxuICAgICAgICAgICAgICAgIGkgKiB0aGlzLmdldENlbGxXaWR0aCgpICsgdGhpcy5nZXRDZWxsV2lkdGgoKSAvIDIsXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5RGF0ZVBvaW50VG9wXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb2ludHM7XG4gICAgfVxufVxuIl19
@@ -10,18 +10,17 @@ const viewOptions = {
10
10
  max: new GanttDate().addYears(2).endOfYear(),
11
11
  cellWidth: 500,
12
12
  addAmount: 1,
13
- addUnit: 'year',
14
- fillDays: 30
13
+ addUnit: 'year'
15
14
  };
16
15
  export class GanttViewQuarter extends GanttView {
17
16
  constructor(start, end, options) {
18
17
  super(start, end, Object.assign({}, viewOptions, options));
19
18
  this.viewType = GanttViewType.quarter;
20
19
  }
21
- startOf(date) {
20
+ viewStartOf(date) {
22
21
  return date.startOfYear();
23
22
  }
24
- endOf(date) {
23
+ viewEndOf(date) {
25
24
  return date.endOfYear();
26
25
  }
27
26
  getPrimaryWidth() {
@@ -51,4 +50,4 @@ export class GanttViewQuarter extends GanttView {
51
50
  return points;
52
51
  }
53
52
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy9xdWFydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLG1CQUFtQixFQUFFLHFCQUFxQixFQUFpQixNQUFNLFFBQVEsQ0FBQztBQUNoSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV6QyxNQUFNLFdBQVcsR0FBcUI7SUFDbEMsS0FBSyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO0lBQ2pELEdBQUcsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7SUFDNUMsR0FBRyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO0lBQy9DLEdBQUcsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7SUFDNUMsU0FBUyxFQUFFLEdBQUc7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNaLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLEVBQUU7Q0FDZixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFHM0MsWUFBWSxLQUFvQixFQUFFLEdBQWtCLEVBQUUsT0FBMEI7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFIdEQsYUFBUSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFJMUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFlO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBZTtRQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxjQUFjLENBQzVCLEtBQUssRUFDTCxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFDL0MsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDN0QsbUJBQW1CLENBQ3RCLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixNQUFNLFFBQVEsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FDNUIsS0FBSyxFQUNMLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQzdDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsRUFDakQscUJBQXFCLENBQ3hCLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FudHRWaWV3LCBHYW50dFZpZXdPcHRpb25zLCBwcmltYXJ5RGF0ZVBvaW50VG9wLCBzZWNvbmRhcnlEYXRlUG9pbnRUb3AsIEdhbnR0Vmlld0RhdGUgfSBmcm9tICcuL3ZpZXcnO1xuaW1wb3J0IHsgR2FudHREYXRlIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZSc7XG5pbXBvcnQgeyBHYW50dERhdGVQb2ludCB9IGZyb20gJy4uL2NsYXNzL2RhdGUtcG9pbnQnO1xuaW1wb3J0IHsgZWFjaFllYXJPZkludGVydmFsLCBkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgR2FudHRWaWV3VHlwZSB9IGZyb20gJy4uL2NsYXNzJztcblxuY29uc3Qgdmlld09wdGlvbnM6IEdhbnR0Vmlld09wdGlvbnMgPSB7XG4gICAgc3RhcnQ6IG5ldyBHYW50dERhdGUoKS5hZGRZZWFycygtMSkuc3RhcnRPZlllYXIoKSxcbiAgICBlbmQ6IG5ldyBHYW50dERhdGUoKS5hZGRZZWFycygxKS5lbmRPZlllYXIoKSxcbiAgICBtaW46IG5ldyBHYW50dERhdGUoKS5hZGRZZWFycygtMikuc3RhcnRPZlllYXIoKSxcbiAgICBtYXg6IG5ldyBHYW50dERhdGUoKS5hZGRZZWFycygyKS5lbmRPZlllYXIoKSxcbiAgICBjZWxsV2lkdGg6IDUwMCxcbiAgICBhZGRBbW91bnQ6IDEsXG4gICAgYWRkVW5pdDogJ3llYXInLFxuICAgIGZpbGxEYXlzOiAzMFxufTtcblxuZXhwb3J0IGNsYXNzIEdhbnR0Vmlld1F1YXJ0ZXIgZXh0ZW5kcyBHYW50dFZpZXcge1xuICAgIG92ZXJyaWRlIHZpZXdUeXBlID0gR2FudHRWaWV3VHlwZS5xdWFydGVyO1xuXG4gICAgY29uc3RydWN0b3Ioc3RhcnQ6IEdhbnR0Vmlld0RhdGUsIGVuZDogR2FudHRWaWV3RGF0ZSwgb3B0aW9ucz86IEdhbnR0Vmlld09wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoc3RhcnQsIGVuZCwgT2JqZWN0LmFzc2lnbih7fSwgdmlld09wdGlvbnMsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdGFydE9mKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZS5zdGFydE9mWWVhcigpO1xuICAgIH1cblxuICAgIGVuZE9mKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZS5lbmRPZlllYXIoKTtcbiAgICB9XG5cbiAgICBnZXRQcmltYXJ5V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxXaWR0aCgpICogNDtcbiAgICB9XG5cbiAgICBnZXREYXlPY2N1cGFuY3lXaWR0aChkYXRlOiBHYW50dERhdGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsV2lkdGggLyBkYXRlLmdldERheXNJblF1YXJ0ZXIoKTtcbiAgICB9XG5cbiAgICBnZXRQcmltYXJ5RGF0ZVBvaW50cygpOiBHYW50dERhdGVQb2ludFtdIHtcbiAgICAgICAgY29uc3QgeWVhcnMgPSBlYWNoWWVhck9mSW50ZXJ2YWwoeyBzdGFydDogdGhpcy5zdGFydC52YWx1ZSwgZW5kOiB0aGlzLmVuZC52YWx1ZSB9KTtcbiAgICAgICAgY29uc3QgcG9pbnRzOiBHYW50dERhdGVQb2ludFtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeWVhcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IEdhbnR0RGF0ZSh5ZWFyc1tpXSk7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IG5ldyBHYW50dERhdGVQb2ludChcbiAgICAgICAgICAgICAgICBzdGFydCxcbiAgICAgICAgICAgICAgICBgJHtzdGFydC5mb3JtYXQodGhpcy5vcHRpb25zLmRhdGVGb3JtYXQueWVhcil9YCxcbiAgICAgICAgICAgICAgICAodGhpcy5nZXRDZWxsV2lkdGgoKSAqIDQpIC8gMiArIGkgKiAodGhpcy5nZXRDZWxsV2lkdGgoKSAqIDQpLFxuICAgICAgICAgICAgICAgIHByaW1hcnlEYXRlUG9pbnRUb3BcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCBxdWFydGVycyA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnModGhpcy5lbmQudmFsdWUsIHRoaXMuc3RhcnQudmFsdWUpO1xuICAgICAgICBjb25zdCBwb2ludHM6IEdhbnR0RGF0ZVBvaW50W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gcXVhcnRlcnM7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnN0YXJ0LmFkZFF1YXJ0ZXJzKGkpO1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBuZXcgR2FudHREYXRlUG9pbnQoXG4gICAgICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICAgICAgc3RhcnQuZm9ybWF0KHRoaXMub3B0aW9ucy5kYXRlRm9ybWF0LnF1YXJ0ZXIpLFxuICAgICAgICAgICAgICAgIGkgKiB0aGlzLmdldENlbGxXaWR0aCgpICsgdGhpcy5nZXRDZWxsV2lkdGgoKSAvIDIsXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5RGF0ZVBvaW50VG9wXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb2ludHM7XG4gICAgfVxufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy9xdWFydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLG1CQUFtQixFQUFFLHFCQUFxQixFQUFpQixNQUFNLFFBQVEsQ0FBQztBQUNoSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV6QyxNQUFNLFdBQVcsR0FBcUI7SUFDbEMsS0FBSyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO0lBQ2pELEdBQUcsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7SUFDNUMsR0FBRyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO0lBQy9DLEdBQUcsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7SUFDNUMsU0FBUyxFQUFFLEdBQUc7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNaLE9BQU8sRUFBRSxNQUFNO0NBQ2xCLENBQUM7QUFFRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQUczQyxZQUFZLEtBQW9CLEVBQUUsR0FBa0IsRUFBRSxPQUEwQjtRQUM1RSxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUh0RCxhQUFRLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUkxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFlO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbkYsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUM1QixLQUFLLEVBQ0wsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQy9DLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQzdELG1CQUFtQixDQUN0QixDQUFDO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixNQUFNLFFBQVEsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUM1QixLQUFLLEVBQ0wsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFDN0MsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxFQUNqRCxxQkFBcUIsQ0FDeEIsQ0FBQztZQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbnR0VmlldywgR2FudHRWaWV3T3B0aW9ucywgcHJpbWFyeURhdGVQb2ludFRvcCwgc2Vjb25kYXJ5RGF0ZVBvaW50VG9wLCBHYW50dFZpZXdEYXRlIH0gZnJvbSAnLi92aWV3JztcbmltcG9ydCB7IEdhbnR0RGF0ZSB9IGZyb20gJy4uL3V0aWxzL2RhdGUnO1xuaW1wb3J0IHsgR2FudHREYXRlUG9pbnQgfSBmcm9tICcuLi9jbGFzcy9kYXRlLXBvaW50JztcbmltcG9ydCB7IGVhY2hZZWFyT2ZJbnRlcnZhbCwgZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IEdhbnR0Vmlld1R5cGUgfSBmcm9tICcuLi9jbGFzcyc7XG5cbmNvbnN0IHZpZXdPcHRpb25zOiBHYW50dFZpZXdPcHRpb25zID0ge1xuICAgIHN0YXJ0OiBuZXcgR2FudHREYXRlKCkuYWRkWWVhcnMoLTEpLnN0YXJ0T2ZZZWFyKCksXG4gICAgZW5kOiBuZXcgR2FudHREYXRlKCkuYWRkWWVhcnMoMSkuZW5kT2ZZZWFyKCksXG4gICAgbWluOiBuZXcgR2FudHREYXRlKCkuYWRkWWVhcnMoLTIpLnN0YXJ0T2ZZZWFyKCksXG4gICAgbWF4OiBuZXcgR2FudHREYXRlKCkuYWRkWWVhcnMoMikuZW5kT2ZZZWFyKCksXG4gICAgY2VsbFdpZHRoOiA1MDAsXG4gICAgYWRkQW1vdW50OiAxLFxuICAgIGFkZFVuaXQ6ICd5ZWFyJ1xufTtcblxuZXhwb3J0IGNsYXNzIEdhbnR0Vmlld1F1YXJ0ZXIgZXh0ZW5kcyBHYW50dFZpZXcge1xuICAgIG92ZXJyaWRlIHZpZXdUeXBlID0gR2FudHRWaWV3VHlwZS5xdWFydGVyO1xuXG4gICAgY29uc3RydWN0b3Ioc3RhcnQ6IEdhbnR0Vmlld0RhdGUsIGVuZDogR2FudHRWaWV3RGF0ZSwgb3B0aW9ucz86IEdhbnR0Vmlld09wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoc3RhcnQsIGVuZCwgT2JqZWN0LmFzc2lnbih7fSwgdmlld09wdGlvbnMsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICB2aWV3U3RhcnRPZihkYXRlOiBHYW50dERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuc3RhcnRPZlllYXIoKTtcbiAgICB9XG5cbiAgICB2aWV3RW5kT2YoZGF0ZTogR2FudHREYXRlKSB7XG4gICAgICAgIHJldHVybiBkYXRlLmVuZE9mWWVhcigpO1xuICAgIH1cblxuICAgIGdldFByaW1hcnlXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2VsbFdpZHRoKCkgKiA0O1xuICAgIH1cblxuICAgIGdldERheU9jY3VwYW5jeVdpZHRoKGRhdGU6IEdhbnR0RGF0ZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGxXaWR0aCAvIGRhdGUuZ2V0RGF5c0luUXVhcnRlcigpO1xuICAgIH1cblxuICAgIGdldFByaW1hcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCB5ZWFycyA9IGVhY2hZZWFyT2ZJbnRlcnZhbCh7IHN0YXJ0OiB0aGlzLnN0YXJ0LnZhbHVlLCBlbmQ6IHRoaXMuZW5kLnZhbHVlIH0pO1xuICAgICAgICBjb25zdCBwb2ludHM6IEdhbnR0RGF0ZVBvaW50W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB5ZWFycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgR2FudHREYXRlKHllYXJzW2ldKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEdhbnR0RGF0ZVBvaW50KFxuICAgICAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgICAgIGAke3N0YXJ0LmZvcm1hdCh0aGlzLm9wdGlvbnMuZGF0ZUZvcm1hdC55ZWFyKX1gLFxuICAgICAgICAgICAgICAgICh0aGlzLmdldENlbGxXaWR0aCgpICogNCkgLyAyICsgaSAqICh0aGlzLmdldENlbGxXaWR0aCgpICogNCksXG4gICAgICAgICAgICAgICAgcHJpbWFyeURhdGVQb2ludFRvcFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9pbnRzO1xuICAgIH1cblxuICAgIGdldFNlY29uZGFyeURhdGVQb2ludHMoKTogR2FudHREYXRlUG9pbnRbXSB7XG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJzID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyh0aGlzLmVuZC52YWx1ZSwgdGhpcy5zdGFydC52YWx1ZSk7XG4gICAgICAgIGNvbnN0IHBvaW50czogR2FudHREYXRlUG9pbnRbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBxdWFydGVyczsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuc3RhcnQuYWRkUXVhcnRlcnMoaSk7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IG5ldyBHYW50dERhdGVQb2ludChcbiAgICAgICAgICAgICAgICBzdGFydCxcbiAgICAgICAgICAgICAgICBzdGFydC5mb3JtYXQodGhpcy5vcHRpb25zLmRhdGVGb3JtYXQucXVhcnRlciksXG4gICAgICAgICAgICAgICAgaSAqIHRoaXMuZ2V0Q2VsbFdpZHRoKCkgKyB0aGlzLmdldENlbGxXaWR0aCgpIC8gMixcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlEYXRlUG9pbnRUb3BcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG59XG4iXX0=
@@ -1,12 +1,15 @@
1
- import { GanttDate, differenceInDays } from '../utils/date';
1
+ import { differenceInCalendarDays, differenceInHours, differenceInMinutes } from 'date-fns';
2
2
  import { BehaviorSubject } from 'rxjs';
3
3
  import { defaultConfig } from '../gantt.config';
4
+ import { GanttDate, differenceInDays } from '../utils/date';
4
5
  export const primaryDatePointTop = 18;
5
6
  export const secondaryDatePointTop = 36;
6
7
  const viewOptions = {
7
8
  min: new GanttDate().addYears(-1).startOfYear(),
8
9
  max: new GanttDate().addYears(1).endOfYear(),
9
- dateFormat: defaultConfig.dateFormat
10
+ dateFormat: defaultConfig.dateFormat,
11
+ datePrecisionUnit: 'day',
12
+ dragPreviewDateFormat: 'MM-dd'
10
13
  };
11
14
  export class GanttView {
12
15
  get start() {
@@ -19,15 +22,59 @@ export class GanttView {
19
22
  this.showTimeline = true;
20
23
  this.options = Object.assign({}, viewOptions, options);
21
24
  const startDate = start.isCustom
22
- ? this.startOf(start.date)
23
- : this.startOf(start.date.value < this.options.start.value ? start.date : this.options.start);
25
+ ? this.viewStartOf(start.date)
26
+ : this.viewStartOf(start.date.value < this.options.start.value ? start.date : this.options.start);
24
27
  const endDate = end.isCustom
25
- ? this.endOf(end.date)
26
- : this.endOf(end.date.value > this.options.end.value ? end.date : this.options.end);
28
+ ? this.viewEndOf(end.date)
29
+ : this.viewEndOf(end.date.value > this.options.end.value ? end.date : this.options.end);
27
30
  this.start$ = new BehaviorSubject(startDate);
28
31
  this.end$ = new BehaviorSubject(endDate);
29
32
  this.initialize();
30
33
  }
34
+ /**
35
+ * deprecated, please use viewStartOf()
36
+ * @deprecated
37
+ */
38
+ startOf(date) {
39
+ return this.viewStartOf(date);
40
+ }
41
+ /**
42
+ * deprecated, please use viewEndOf()
43
+ * @deprecated
44
+ */
45
+ endOf(date) {
46
+ return this.viewEndOf(date);
47
+ }
48
+ startOfPrecision(date) {
49
+ switch (this.options.datePrecisionUnit) {
50
+ case 'minute':
51
+ return date.startOfMinute();
52
+ case 'hour':
53
+ return date.startOfHour();
54
+ default:
55
+ return date.startOfDay();
56
+ }
57
+ }
58
+ endOfPrecision(date) {
59
+ switch (this.options.datePrecisionUnit) {
60
+ case 'minute':
61
+ return date.endOfMinute();
62
+ case 'hour':
63
+ return date.endOfHour();
64
+ default:
65
+ return date.endOfDay();
66
+ }
67
+ }
68
+ differenceByPrecisionUnit(dateLeft, dateRight) {
69
+ switch (this.options.datePrecisionUnit) {
70
+ case 'minute':
71
+ return differenceInMinutes(dateLeft.value, dateRight.value);
72
+ case 'hour':
73
+ return differenceInHours(dateLeft.value, dateRight.value);
74
+ default:
75
+ return differenceInCalendarDays(dateLeft.value, dateRight.value);
76
+ }
77
+ }
31
78
  getDateIntervalWidth(start, end) {
32
79
  let result = 0;
33
80
  const days = differenceInDays(end.value, start.value);
@@ -45,7 +92,7 @@ export class GanttView {
45
92
  this.primaryWidth = this.getPrimaryWidth();
46
93
  }
47
94
  addStartDate() {
48
- const start = this.startOf(this.start.add(this.options.addAmount * -1, this.options.addUnit));
95
+ const start = this.viewStartOf(this.start.add(this.options.addAmount * -1, this.options.addUnit));
49
96
  if (start.value >= this.options.min.value) {
50
97
  const origin = this.start;
51
98
  this.start$.next(start);
@@ -55,7 +102,7 @@ export class GanttView {
55
102
  return null;
56
103
  }
57
104
  addEndDate() {
58
- const end = this.endOf(this.end.add(this.options.addAmount, this.options.addUnit));
105
+ const end = this.viewEndOf(this.end.add(this.options.addAmount, this.options.addUnit));
59
106
  if (end.value <= this.options.max.value) {
60
107
  const origin = this.end;
61
108
  this.end$.next(end);
@@ -65,8 +112,8 @@ export class GanttView {
65
112
  return null;
66
113
  }
67
114
  updateDate(start, end) {
68
- start = this.startOf(start);
69
- end = this.endOf(end);
115
+ start = this.viewStartOf(start);
116
+ end = this.viewEndOf(end);
70
117
  if (start.value < this.start.value) {
71
118
  this.start$.next(start);
72
119
  }
@@ -100,39 +147,32 @@ export class GanttView {
100
147
  }
101
148
  // 根据X坐标获取对应时间
102
149
  getDateByXPoint(x) {
103
- let indexOfSecondaryDate;
104
- let matchDate;
105
- let dayWidth;
106
- let day;
107
- if (x >= 0) {
108
- indexOfSecondaryDate = Math.floor(x / this.getCellWidth());
109
- matchDate = this.secondaryDatePoints[Math.min(this.secondaryDatePoints.length - 1, indexOfSecondaryDate)];
110
- dayWidth = this.getDayOccupancyWidth(matchDate?.start);
111
- }
112
- else {
113
- const datePointTemp = this.secondaryDatePoints[0];
114
- dayWidth = this.getDayOccupancyWidth(datePointTemp?.start);
115
- day = Math.floor(x / dayWidth);
116
- return datePointTemp?.start.addDays(day);
117
- }
150
+ const indexOfSecondaryDate = Math.max(Math.floor(x / this.getCellWidth()), 0);
151
+ const matchDate = this.secondaryDatePoints[Math.min(this.secondaryDatePoints.length - 1, indexOfSecondaryDate)];
152
+ const dayWidth = this.getDayOccupancyWidth(matchDate?.start);
118
153
  if (dayWidth === this.getCellWidth()) {
119
154
  return matchDate?.start;
120
155
  }
121
156
  else {
122
- day = Math.floor((x % this.getCellWidth()) / dayWidth) + 1;
123
- if (indexOfSecondaryDate > this.secondaryDatePoints.length - 1) {
124
- day += (indexOfSecondaryDate - (this.secondaryDatePoints.length - 1)) * 30;
125
- }
126
- if (this.getCellWidth() / dayWidth === 7) {
127
- return matchDate?.start.addDays(day);
128
- }
129
- return matchDate?.start.setDate(day);
157
+ const day = Math.floor((x % this.getCellWidth()) / dayWidth);
158
+ return matchDate?.start.addDays(day);
130
159
  }
131
160
  }
132
161
  // 获取指定时间范围的宽度
133
162
  getDateRangeWidth(start, end) {
134
163
  // addSeconds(1) 是因为计算相差天会以一个整天来计算 end时间一般是59分59秒不是一个整天,所以需要加1
135
- return this.getDateIntervalWidth(start, end.addSeconds(1));
164
+ return this.getDateIntervalWidth(this.startOfPrecision(start), this.endOfPrecision(end).addSeconds(1));
165
+ }
166
+ // 根据日期精度获取最小时间范围的宽度
167
+ getMinRangeWidthByPrecisionUnit(date) {
168
+ switch (this.options.datePrecisionUnit) {
169
+ case 'minute':
170
+ return this.getDayOccupancyWidth(date) / 24 / 60;
171
+ case 'hour':
172
+ return this.getDayOccupancyWidth(date) / 24;
173
+ default:
174
+ return this.getDayOccupancyWidth(date);
175
+ }
136
176
  }
137
177
  }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy92aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQztBQUdqRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBc0J4QyxNQUFNLFdBQVcsR0FBcUI7SUFDbEMsR0FBRyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO0lBQy9DLEdBQUcsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7SUFDNUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVO0NBQ3ZDLENBQUM7QUFFRixNQUFNLE9BQWdCLFNBQVM7SUFPM0IsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQWtCRCxZQUFZLEtBQW9CLEVBQUUsR0FBa0IsRUFBRSxPQUF5QjtRQU4vRSxpQkFBWSxHQUFHLElBQUksQ0FBQztRQU9oQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUTtZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsUUFBUTtZQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFZLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxlQUFlLENBQVksT0FBTyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFrQlMsb0JBQW9CLENBQUMsS0FBZ0IsRUFBRSxHQUFjO1FBQzNELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5RixJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUM7U0FDN0M7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ25GLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUMzQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0IsRUFBRSxHQUFjO1FBQ3ZDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtRQUNELElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWTtJQUNaLFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxZQUFZO0lBQ1osWUFBWTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVELGFBQWE7SUFDYixjQUFjO1FBQ1YsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtZQUNoRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0UsT0FBTyxDQUFDLENBQUM7U0FDWjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFRCxhQUFhO0lBQ2IsZUFBZSxDQUFDLElBQWU7UUFDM0IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYztJQUNkLGVBQWUsQ0FBQyxDQUFTO1FBQ3JCLElBQUksb0JBQTRCLENBQUM7UUFDakMsSUFBSSxTQUF5QixDQUFDO1FBQzlCLElBQUksUUFBZ0IsQ0FBQztRQUNyQixJQUFJLEdBQVcsQ0FBQztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDUixvQkFBb0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUMzRCxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1lBQzFHLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzFEO2FBQU07WUFDSCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEQsUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0QsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDbEMsT0FBTyxTQUFTLEVBQUUsS0FBSyxDQUFDO1NBQzNCO2FBQU07WUFDSCxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0QsSUFBSSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDNUQsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQzlFO1lBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsUUFBUSxLQUFLLENBQUMsRUFBRTtnQkFDdEMsT0FBTyxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4QztZQUNELE9BQU8sU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLGlCQUFpQixDQUFDLEtBQWdCLEVBQUUsR0FBYztRQUM5Qyw4REFBOEQ7UUFDOUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW50dERhdGUsIGRpZmZlcmVuY2VJbkRheXMsIEdhbnR0RGF0ZVV0aWwgfSBmcm9tICcuLi91dGlscy9kYXRlJztcbmltcG9ydCB7IEdhbnR0RGF0ZVBvaW50IH0gZnJvbSAnLi4vY2xhc3MvZGF0ZS1wb2ludCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlZmF1bHRDb25maWcsIEdhbnR0RGF0ZUZvcm1hdCB9IGZyb20gJy4uL2dhbnR0LmNvbmZpZyc7XG5pbXBvcnQgeyBHYW50dFZpZXdUeXBlIH0gZnJvbSAnLi4vY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgcHJpbWFyeURhdGVQb2ludFRvcCA9IDE4O1xuXG5leHBvcnQgY29uc3Qgc2Vjb25kYXJ5RGF0ZVBvaW50VG9wID0gMzY7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2FudHRWaWV3RGF0ZSB7XG4gICAgZGF0ZTogR2FudHREYXRlO1xuICAgIGlzQ3VzdG9tPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHYW50dFZpZXdPcHRpb25zIHtcbiAgICBzdGFydD86IEdhbnR0RGF0ZTtcbiAgICBlbmQ/OiBHYW50dERhdGU7XG4gICAgbWluPzogR2FudHREYXRlO1xuICAgIG1heD86IEdhbnR0RGF0ZTtcbiAgICBjZWxsV2lkdGg/OiBudW1iZXI7XG4gICAgYWRkQW1vdW50PzogbnVtYmVyO1xuICAgIGFkZFVuaXQ/OiBHYW50dERhdGVVdGlsO1xuICAgIGRhdGVGb3JtYXQ/OiBHYW50dERhdGVGb3JtYXQ7XG4gICAgLy8gZmlsbCBkYXlzIHdoZW4gc3RhcnQgb3IgZW5kIGlzIG51bGxcbiAgICBmaWxsRGF5cz86IG51bWJlcjtcbiAgICAvLyBjdXN0b20ga2V5IGFuZCB2YWx1ZVxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuY29uc3Qgdmlld09wdGlvbnM6IEdhbnR0Vmlld09wdGlvbnMgPSB7XG4gICAgbWluOiBuZXcgR2FudHREYXRlKCkuYWRkWWVhcnMoLTEpLnN0YXJ0T2ZZZWFyKCksXG4gICAgbWF4OiBuZXcgR2FudHREYXRlKCkuYWRkWWVhcnMoMSkuZW5kT2ZZZWFyKCksXG4gICAgZGF0ZUZvcm1hdDogZGVmYXVsdENvbmZpZy5kYXRlRm9ybWF0XG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2FudHRWaWV3IHtcbiAgICB2aWV3VHlwZTogR2FudHRWaWV3VHlwZTtcblxuICAgIHN0YXJ0JDogQmVoYXZpb3JTdWJqZWN0PEdhbnR0RGF0ZT47XG5cbiAgICBlbmQkOiBCZWhhdmlvclN1YmplY3Q8R2FudHREYXRlPjtcblxuICAgIGdldCBzdGFydCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGVuZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW5kJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaW1hcnlEYXRlUG9pbnRzOiBHYW50dERhdGVQb2ludFtdO1xuXG4gICAgc2Vjb25kYXJ5RGF0ZVBvaW50czogR2FudHREYXRlUG9pbnRbXTtcblxuICAgIHdpZHRoOiBudW1iZXI7XG5cbiAgICBjZWxsV2lkdGg6IG51bWJlcjtcblxuICAgIHByaW1hcnlXaWR0aDogbnVtYmVyO1xuXG4gICAgc2hvd1RpbWVsaW5lID0gdHJ1ZTtcblxuICAgIHNob3dXZWVrQmFja2Ryb3A6IGJvb2xlYW47XG5cbiAgICBvcHRpb25zOiBHYW50dFZpZXdPcHRpb25zO1xuXG4gICAgY29uc3RydWN0b3Ioc3RhcnQ6IEdhbnR0Vmlld0RhdGUsIGVuZDogR2FudHRWaWV3RGF0ZSwgb3B0aW9uczogR2FudHRWaWV3T3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB2aWV3T3B0aW9ucywgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0LmlzQ3VzdG9tXG4gICAgICAgICAgICA/IHRoaXMuc3RhcnRPZihzdGFydC5kYXRlKVxuICAgICAgICAgICAgOiB0aGlzLnN0YXJ0T2Yoc3RhcnQuZGF0ZS52YWx1ZSA8IHRoaXMub3B0aW9ucy5zdGFydC52YWx1ZSA/IHN0YXJ0LmRhdGUgOiB0aGlzLm9wdGlvbnMuc3RhcnQpO1xuICAgICAgICBjb25zdCBlbmREYXRlID0gZW5kLmlzQ3VzdG9tXG4gICAgICAgICAgICA/IHRoaXMuZW5kT2YoZW5kLmRhdGUpXG4gICAgICAgICAgICA6IHRoaXMuZW5kT2YoZW5kLmRhdGUudmFsdWUgPiB0aGlzLm9wdGlvbnMuZW5kLnZhbHVlID8gZW5kLmRhdGUgOiB0aGlzLm9wdGlvbnMuZW5kKTtcbiAgICAgICAgdGhpcy5zdGFydCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEdhbnR0RGF0ZT4oc3RhcnREYXRlKTtcbiAgICAgICAgdGhpcy5lbmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxHYW50dERhdGU+KGVuZERhdGUpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBzdGFydE9mKGRhdGU6IEdhbnR0RGF0ZSk6IEdhbnR0RGF0ZTtcblxuICAgIGFic3RyYWN0IGVuZE9mKGRhdGU6IEdhbnR0RGF0ZSk6IEdhbnR0RGF0ZTtcblxuICAgIC8vIOiOt+WPluS4gOe6p+aXtumXtOe9keagvOWQiOW5tuWQjueahOWuveW6plxuICAgIGFic3RyYWN0IGdldFByaW1hcnlXaWR0aCgpOiBudW1iZXI7XG5cbiAgICAvLyDojrflj5blvZPliY3op4blm77kuIvmr4/kuIDlpKnljaDnlKjnmoTlrr3luqZcbiAgICBhYnN0cmFjdCBnZXREYXlPY2N1cGFuY3lXaWR0aChkYXRlOiBHYW50dERhdGUpOiBudW1iZXI7XG5cbiAgICAvLyDojrflj5bkuIDnuqfml7bpl7TngrnvvIjlnZDmoIfvvIzmmL7npLrlkI3np7DvvIlcbiAgICBhYnN0cmFjdCBnZXRQcmltYXJ5RGF0ZVBvaW50cygpOiBHYW50dERhdGVQb2ludFtdO1xuXG4gICAgLy8g6I635Y+W5LqM57qn5pe26Ze054K577yI5Z2Q5qCH77yM5pi+56S65ZCN56ew77yJXG4gICAgYWJzdHJhY3QgZ2V0U2Vjb25kYXJ5RGF0ZVBvaW50cygpOiBHYW50dERhdGVQb2ludFtdO1xuXG4gICAgcHJvdGVjdGVkIGdldERhdGVJbnRlcnZhbFdpZHRoKHN0YXJ0OiBHYW50dERhdGUsIGVuZDogR2FudHREYXRlKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICBjb25zdCBkYXlzID0gZGlmZmVyZW5jZUluRGF5cyhlbmQudmFsdWUsIHN0YXJ0LnZhbHVlKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLmFicyhkYXlzKTsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5nZXREYXlPY2N1cGFuY3lXaWR0aChzdGFydC5hZGREYXlzKGkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgPSBkYXlzID49IDAgPyByZXN1bHQgOiAtcmVzdWx0O1xuICAgICAgICByZXR1cm4gTnVtYmVyKHJlc3VsdC50b0ZpeGVkKDMpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgdGhpcy5wcmltYXJ5RGF0ZVBvaW50cyA9IHRoaXMuZ2V0UHJpbWFyeURhdGVQb2ludHMoKTtcbiAgICAgICAgdGhpcy5zZWNvbmRhcnlEYXRlUG9pbnRzID0gdGhpcy5nZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk7XG4gICAgICAgIHRoaXMud2lkdGggPSB0aGlzLmdldFdpZHRoKCk7XG4gICAgICAgIHRoaXMuY2VsbFdpZHRoID0gdGhpcy5nZXRDZWxsV2lkdGgoKTtcbiAgICAgICAgdGhpcy5wcmltYXJ5V2lkdGggPSB0aGlzLmdldFByaW1hcnlXaWR0aCgpO1xuICAgIH1cblxuICAgIGFkZFN0YXJ0RGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnN0YXJ0T2YodGhpcy5zdGFydC5hZGQodGhpcy5vcHRpb25zLmFkZEFtb3VudCAqIC0xLCB0aGlzLm9wdGlvbnMuYWRkVW5pdCkpO1xuICAgICAgICBpZiAoc3RhcnQudmFsdWUgPj0gdGhpcy5vcHRpb25zLm1pbi52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5zdGFydDtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQkLm5leHQoc3RhcnQpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgICAgICAgICByZXR1cm4geyBzdGFydDogdGhpcy5zdGFydCwgZW5kOiBvcmlnaW4gfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBhZGRFbmREYXRlKCkge1xuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLmVuZE9mKHRoaXMuZW5kLmFkZCh0aGlzLm9wdGlvbnMuYWRkQW1vdW50LCB0aGlzLm9wdGlvbnMuYWRkVW5pdCkpO1xuICAgICAgICBpZiAoZW5kLnZhbHVlIDw9IHRoaXMub3B0aW9ucy5tYXgudmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuZW5kO1xuICAgICAgICAgICAgdGhpcy5lbmQkLm5leHQoZW5kKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhcnQ6IG9yaWdpbiwgZW5kOiB0aGlzLmVuZCB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHVwZGF0ZURhdGUoc3RhcnQ6IEdhbnR0RGF0ZSwgZW5kOiBHYW50dERhdGUpIHtcbiAgICAgICAgc3RhcnQgPSB0aGlzLnN0YXJ0T2Yoc3RhcnQpO1xuICAgICAgICBlbmQgPSB0aGlzLmVuZE9mKGVuZCk7XG4gICAgICAgIGlmIChzdGFydC52YWx1ZSA8IHRoaXMuc3RhcnQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQkLm5leHQoc3RhcnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmQudmFsdWUgPiB0aGlzLmVuZC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5lbmQkLm5leHQoZW5kKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB9XG5cbiAgICAvLyDojrflj5ZWaWV355qE5a695bqmXG4gICAgZ2V0V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxXaWR0aCgpICogdGhpcy5zZWNvbmRhcnlEYXRlUG9pbnRzLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyDojrflj5bljZXkuKrnvZHmoLznmoTlrr3luqZcbiAgICBnZXRDZWxsV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY2VsbFdpZHRoO1xuICAgIH1cblxuICAgIC8vIOiOt+WPluW9k+WJjeaXtumXtOeahFjlnZDmoIdcbiAgICBnZXRUb2RheVhQb2ludCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB0b2FkeSA9IG5ldyBHYW50dERhdGUoKS5zdGFydE9mRGF5KCk7XG4gICAgICAgIGlmICh0b2FkeS52YWx1ZSA+IHRoaXMuc3RhcnQudmFsdWUgJiYgdG9hZHkudmFsdWUgPCB0aGlzLmVuZC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgeCA9IHRoaXMuZ2V0WFBvaW50QnlEYXRlKHRvYWR5KSArIHRoaXMuZ2V0RGF5T2NjdXBhbmN5V2lkdGgodG9hZHkpIC8gMjtcbiAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDojrflj5bmjIflrprml7bpl7TnmoRY5Z2Q5qCHXG4gICAgZ2V0WFBvaW50QnlEYXRlKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlSW50ZXJ2YWxXaWR0aCh0aGlzLnN0YXJ0LCBkYXRlKTtcbiAgICB9XG5cbiAgICAvLyDmoLnmja5Y5Z2Q5qCH6I635Y+W5a+55bqU5pe26Ze0XG4gICAgZ2V0RGF0ZUJ5WFBvaW50KHg6IG51bWJlcik6IEdhbnR0RGF0ZSB7XG4gICAgICAgIGxldCBpbmRleE9mU2Vjb25kYXJ5RGF0ZTogbnVtYmVyO1xuICAgICAgICBsZXQgbWF0Y2hEYXRlOiBHYW50dERhdGVQb2ludDtcbiAgICAgICAgbGV0IGRheVdpZHRoOiBudW1iZXI7XG4gICAgICAgIGxldCBkYXk6IG51bWJlcjtcbiAgICAgICAgaWYgKHggPj0gMCkge1xuICAgICAgICAgICAgaW5kZXhPZlNlY29uZGFyeURhdGUgPSBNYXRoLmZsb29yKHggLyB0aGlzLmdldENlbGxXaWR0aCgpKTtcbiAgICAgICAgICAgIG1hdGNoRGF0ZSA9IHRoaXMuc2Vjb25kYXJ5RGF0ZVBvaW50c1tNYXRoLm1pbih0aGlzLnNlY29uZGFyeURhdGVQb2ludHMubGVuZ3RoIC0gMSwgaW5kZXhPZlNlY29uZGFyeURhdGUpXTtcbiAgICAgICAgICAgIGRheVdpZHRoID0gdGhpcy5nZXREYXlPY2N1cGFuY3lXaWR0aChtYXRjaERhdGU/LnN0YXJ0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVQb2ludFRlbXAgPSB0aGlzLnNlY29uZGFyeURhdGVQb2ludHNbMF07XG4gICAgICAgICAgICBkYXlXaWR0aCA9IHRoaXMuZ2V0RGF5T2NjdXBhbmN5V2lkdGgoZGF0ZVBvaW50VGVtcD8uc3RhcnQpO1xuICAgICAgICAgICAgZGF5ID0gTWF0aC5mbG9vcih4IC8gZGF5V2lkdGgpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGVQb2ludFRlbXA/LnN0YXJ0LmFkZERheXMoZGF5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF5V2lkdGggPT09IHRoaXMuZ2V0Q2VsbFdpZHRoKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaERhdGU/LnN0YXJ0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF5ID0gTWF0aC5mbG9vcigoeCAlIHRoaXMuZ2V0Q2VsbFdpZHRoKCkpIC8gZGF5V2lkdGgpICsgMTtcbiAgICAgICAgICAgIGlmIChpbmRleE9mU2Vjb25kYXJ5RGF0ZSA+IHRoaXMuc2Vjb25kYXJ5RGF0ZVBvaW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgZGF5ICs9IChpbmRleE9mU2Vjb25kYXJ5RGF0ZSAtICh0aGlzLnNlY29uZGFyeURhdGVQb2ludHMubGVuZ3RoIC0gMSkpICogMzA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5nZXRDZWxsV2lkdGgoKSAvIGRheVdpZHRoID09PSA3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoRGF0ZT8uc3RhcnQuYWRkRGF5cyhkYXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG1hdGNoRGF0ZT8uc3RhcnQuc2V0RGF0ZShkYXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8g6I635Y+W5oyH5a6a5pe26Ze06IyD5Zu055qE5a695bqmXG4gICAgZ2V0RGF0ZVJhbmdlV2lkdGgoc3RhcnQ6IEdhbnR0RGF0ZSwgZW5kOiBHYW50dERhdGUpIHtcbiAgICAgICAgLy8gYWRkU2Vjb25kcygxKSDmmK/lm6DkuLrorqHnrpfnm7jlt67lpKnkvJrku6XkuIDkuKrmlbTlpKnmnaXorqHnrpcgZW5k5pe26Ze05LiA6Iis5pivNTnliIY1OeenkuS4jeaYr+S4gOS4quaVtOWkqe+8jOaJgOS7pemcgOimgeWKoDFcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZUludGVydmFsV2lkdGgoc3RhcnQsIGVuZC5hZGRTZWNvbmRzKDEpKTtcbiAgICB9XG59XG4iXX0=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy92aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFBbUIsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBaUIsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQXNCeEMsTUFBTSxXQUFXLEdBQXFCO0lBQ2xDLEdBQUcsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtJQUMvQyxHQUFHLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO0lBQzVDLFVBQVUsRUFBRSxhQUFhLENBQUMsVUFBVTtJQUNwQyxpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLHFCQUFxQixFQUFFLE9BQU87Q0FDakMsQ0FBQztBQUVGLE1BQU0sT0FBZ0IsU0FBUztJQU8zQixJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBa0JELFlBQVksS0FBb0IsRUFBRSxHQUFrQixFQUFFLE9BQXlCO1FBTi9FLGlCQUFZLEdBQUcsSUFB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RCxvQkFBb0I7SUFDcEIsK0JBQStCLENBQUMsSUFBZTtRQUMzQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNyRCxLQUFLLE1BQU07Z0JBQ1AsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2hEO2dCQUNJLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMsIGRpZmZlcmVuY2VJbkhvdXJzLCBkaWZmZXJlbmNlSW5NaW51dGVzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHYW50dFZpZXdUeXBlIH0gZnJvbSAnLi4vY2xhc3MnO1xuaW1wb3J0IHsgR2FudHREYXRlUG9pbnQgfSBmcm9tICcuLi9jbGFzcy9kYXRlLXBvaW50JztcbmltcG9ydCB7IEdhbnR0RGF0ZUZvcm1hdCwgZGVmYXVsdENvbmZpZyB9IGZyb20gJy4uL2dhbnR0LmNvbmZpZyc7XG5pbXBvcnQgeyBHYW50dERhdGUsIEdhbnR0RGF0ZVV0aWwsIGRpZmZlcmVuY2VJbkRheXMgfSBmcm9tICcuLi91dGlscy9kYXRlJztcblxuZXhwb3J0IGNvbnN0IHByaW1hcnlEYXRlUG9pbnRUb3AgPSAxODtcblxuZXhwb3J0IGNvbnN0IHNlY29uZGFyeURhdGVQb2ludFRvcCA9IDM2O1xuXG5leHBvcnQgaW50ZXJmYWNlIEdhbnR0Vmlld0RhdGUge1xuICAgIGRhdGU6IEdhbnR0RGF0ZTtcbiAgICBpc0N1c3RvbT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2FudHRWaWV3T3B0aW9ucyB7XG4gICAgc3RhcnQ/OiBHYW50dERhdGU7XG4gICAgZW5kPzogR2FudHREYXRlO1xuICAgIG1pbj86IEdhbnR0RGF0ZTtcbiAgICBtYXg/OiBHYW50dERhdGU7XG4gICAgY2VsbFdpZHRoPzogbnVtYmVyO1xuICAgIGFkZEFtb3VudD86IG51bWJlcjtcbiAgICBhZGRVbml0PzogR2FudHREYXRlVXRpbDtcbiAgICBkYXRlRm9ybWF0PzogR2FudHREYXRlRm9ybWF0O1xuICAgIGRhdGVQcmVjaXNpb25Vbml0PzogJ2RheScgfCAnaG91cicgfCAnbWludXRlJztcbiAgICBkcmFnUHJldmlld0RhdGVGb3JtYXQ/OiBzdHJpbmc7XG4gICAgLy8gY3VzdG9tIGtleSBhbmQgdmFsdWVcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmNvbnN0IHZpZXdPcHRpb25zOiBHYW50dFZpZXdPcHRpb25zID0ge1xuICAgIG1pbjogbmV3IEdhbnR0RGF0ZSgpLmFkZFllYXJzKC0xKS5zdGFydE9mWWVhcigpLFxuICAgIG1heDogbmV3IEdhbnR0RGF0ZSgpLmFkZFllYXJzKDEpLmVuZE9mWWVhcigpLFxuICAgIGRhdGVGb3JtYXQ6IGRlZmF1bHRDb25maWcuZGF0ZUZvcm1hdCxcbiAgICBkYXRlUHJlY2lzaW9uVW5pdDogJ2RheScsXG4gICAgZHJhZ1ByZXZpZXdEYXRlRm9ybWF0OiAnTU0tZGQnXG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2FudHRWaWV3IHtcbiAgICB2aWV3VHlwZTogR2FudHRWaWV3VHlwZTtcblxuICAgIHN0YXJ0JDogQmVoYXZpb3JTdWJqZWN0PEdhbnR0RGF0ZT47XG5cbiAgICBlbmQkOiBCZWhhdmlvclN1YmplY3Q8R2FudHREYXRlPjtcblxuICAgIGdldCBzdGFydCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGVuZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW5kJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaW1hcnlEYXRlUG9pbnRzOiBHYW50dERhdGVQb2ludFtdO1xuXG4gICAgc2Vjb25kYXJ5RGF0ZVBvaW50czogR2FudHREYXRlUG9pbnRbXTtcblxuICAgIHdpZHRoOiBudW1iZXI7XG5cbiAgICBjZWxsV2lkdGg6IG51bWJlcjtcblxuICAgIHByaW1hcnlXaWR0aDogbnVtYmVyO1xuXG4gICAgc2hvd1RpbWVsaW5lID0gdHJ1ZTtcblxuICAgIHNob3dXZWVrQmFja2Ryb3A6IGJvb2xlYW47XG5cbiAgICBvcHRpb25zOiBHYW50dFZpZXdPcHRpb25zO1xuXG4gICAgY29uc3RydWN0b3Ioc3RhcnQ6IEdhbnR0Vmlld0RhdGUsIGVuZDogR2FudHRWaWV3RGF0ZSwgb3B0aW9uczogR2FudHRWaWV3T3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB2aWV3T3B0aW9ucywgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0LmlzQ3VzdG9tXG4gICAgICAgICAgICA/IHRoaXMudmlld1N0YXJ0T2Yoc3RhcnQuZGF0ZSlcbiAgICAgICAgICAgIDogdGhpcy52aWV3U3RhcnRPZihzdGFydC5kYXRlLnZhbHVlIDwgdGhpcy5vcHRpb25zLnN0YXJ0LnZhbHVlID8gc3RhcnQuZGF0ZSA6IHRoaXMub3B0aW9ucy5zdGFydCk7XG4gICAgICAgIGNvbnN0IGVuZERhdGUgPSBlbmQuaXNDdXN0b21cbiAgICAgICAgICAgID8gdGhpcy52aWV3RW5kT2YoZW5kLmRhdGUpXG4gICAgICAgICAgICA6IHRoaXMudmlld0VuZE9mKGVuZC5kYXRlLnZhbHVlID4gdGhpcy5vcHRpb25zLmVuZC52YWx1ZSA/IGVuZC5kYXRlIDogdGhpcy5vcHRpb25zLmVuZCk7XG4gICAgICAgIHRoaXMuc3RhcnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxHYW50dERhdGU+KHN0YXJ0RGF0ZSk7XG4gICAgICAgIHRoaXMuZW5kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8R2FudHREYXRlPihlbmREYXRlKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgYWJzdHJhY3Qgdmlld1N0YXJ0T2YoZGF0ZTogR2FudHREYXRlKTogR2FudHREYXRlO1xuXG4gICAgYWJzdHJhY3Qgdmlld0VuZE9mKGRhdGU6IEdhbnR0RGF0ZSk6IEdhbnR0RGF0ZTtcblxuICAgIC8qKlxuICAgICAqIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2Ugdmlld1N0YXJ0T2YoKVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgc3RhcnRPZihkYXRlOiBHYW50dERhdGUpOiBHYW50dERhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3U3RhcnRPZihkYXRlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIHZpZXdFbmRPZigpXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBlbmRPZihkYXRlOiBHYW50dERhdGUpOiBHYW50dERhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3RW5kT2YoZGF0ZSk7XG4gICAgfVxuXG4gICAgLy8g6I635Y+W5LiA57qn5pe26Ze0572R5qC85ZCI5bm25ZCO55qE5a695bqmXG4gICAgYWJzdHJhY3QgZ2V0UHJpbWFyeVdpZHRoKCk6IG51bWJlcjtcblxuICAgIC8vIOiOt+WPluW9k+WJjeinhuWbvuS4i+avj+S4gOWkqeWNoOeUqOeahOWuveW6plxuICAgIGFic3RyYWN0IGdldERheU9jY3VwYW5jeVdpZHRoKGRhdGU6IEdhbnR0RGF0ZSk6IG51bWJlcjtcblxuICAgIC8vIOiOt+WPluS4gOe6p+aXtumXtOeCue+8iOWdkOagh++8jOaYvuekuuWQjeensO+8iVxuICAgIGFic3RyYWN0IGdldFByaW1hcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W107XG5cbiAgICAvLyDojrflj5bkuoznuqfml7bpl7TngrnvvIjlnZDmoIfvvIzmmL7npLrlkI3np7DvvIlcbiAgICBhYnN0cmFjdCBnZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W107XG5cbiAgICBzdGFydE9mUHJlY2lzaW9uKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5kYXRlUHJlY2lzaW9uVW5pdCkge1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS5zdGFydE9mTWludXRlKCk7XG4gICAgICAgICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS5zdGFydE9mSG91cigpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS5zdGFydE9mRGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbmRPZlByZWNpc2lvbihkYXRlOiBHYW50dERhdGUpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLm9wdGlvbnMuZGF0ZVByZWNpc2lvblVuaXQpIHtcbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUuZW5kT2ZNaW51dGUoKTtcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLmVuZE9mSG91cigpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS5lbmRPZkRheSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlmZmVyZW5jZUJ5UHJlY2lzaW9uVW5pdChkYXRlTGVmdDogR2FudHREYXRlLCBkYXRlUmlnaHQ6IEdhbnR0RGF0ZSkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5kYXRlUHJlY2lzaW9uVW5pdCkge1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluTWludXRlcyhkYXRlTGVmdC52YWx1ZSwgZGF0ZVJpZ2h0LnZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBkaWZmZXJlbmNlSW5Ib3VycyhkYXRlTGVmdC52YWx1ZSwgZGF0ZVJpZ2h0LnZhbHVlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhkYXRlTGVmdC52YWx1ZSwgZGF0ZVJpZ2h0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldERhdGVJbnRlcnZhbFdpZHRoKHN0YXJ0OiBHYW50dERhdGUsIGVuZDogR2FudHREYXRlKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICBjb25zdCBkYXlzID0gZGlmZmVyZW5jZUluRGF5cyhlbmQudmFsdWUsIHN0YXJ0LnZhbHVlKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLmFicyhkYXlzKTsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5nZXREYXlPY2N1cGFuY3lXaWR0aChzdGFydC5hZGREYXlzKGkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgPSBkYXlzID49IDAgPyByZXN1bHQgOiAtcmVzdWx0O1xuICAgICAgICByZXR1cm4gTnVtYmVyKHJlc3VsdC50b0ZpeGVkKDMpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgdGhpcy5wcmltYXJ5RGF0ZVBvaW50cyA9IHRoaXMuZ2V0UHJpbWFyeURhdGVQb2ludHMoKTtcbiAgICAgICAgdGhpcy5zZWNvbmRhcnlEYXRlUG9pbnRzID0gdGhpcy5nZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk7XG4gICAgICAgIHRoaXMud2lkdGggPSB0aGlzLmdldFdpZHRoKCk7XG4gICAgICAgIHRoaXMuY2VsbFdpZHRoID0gdGhpcy5nZXRDZWxsV2lkdGgoKTtcbiAgICAgICAgdGhpcy5wcmltYXJ5V2lkdGggPSB0aGlzLmdldFByaW1hcnlXaWR0aCgpO1xuICAgIH1cblxuICAgIGFkZFN0YXJ0RGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnZpZXdTdGFydE9mKHRoaXMuc3RhcnQuYWRkKHRoaXMub3B0aW9ucy5hZGRBbW91bnQgKiAtMSwgdGhpcy5vcHRpb25zLmFkZFVuaXQpKTtcbiAgICAgICAgaWYgKHN0YXJ0LnZhbHVlID49IHRoaXMub3B0aW9ucy5taW4udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuc3RhcnQ7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0JC5uZXh0KHN0YXJ0KTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhcnQ6IHRoaXMuc3RhcnQsIGVuZDogb3JpZ2luIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgYWRkRW5kRGF0ZSgpIHtcbiAgICAgICAgY29uc3QgZW5kID0gdGhpcy52aWV3RW5kT2YodGhpcy5lbmQuYWRkKHRoaXMub3B0aW9ucy5hZGRBbW91bnQsIHRoaXMub3B0aW9ucy5hZGRVbml0KSk7XG4gICAgICAgIGlmIChlbmQudmFsdWUgPD0gdGhpcy5vcHRpb25zLm1heC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5lbmQ7XG4gICAgICAgICAgICB0aGlzLmVuZCQubmV4dChlbmQpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgICAgICAgICByZXR1cm4geyBzdGFydDogb3JpZ2luLCBlbmQ6IHRoaXMuZW5kIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdXBkYXRlRGF0ZShzdGFydDogR2FudHREYXRlLCBlbmQ6IEdhbnR0RGF0ZSkge1xuICAgICAgICBzdGFydCA9IHRoaXMudmlld1N0YXJ0T2Yoc3RhcnQpO1xuICAgICAgICBlbmQgPSB0aGlzLnZpZXdFbmRPZihlbmQpO1xuICAgICAgICBpZiAoc3RhcnQudmFsdWUgPCB0aGlzLnN0YXJ0LnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0JC5uZXh0KHN0YXJ0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5kLnZhbHVlID4gdGhpcy5lbmQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kJC5uZXh0KGVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgLy8g6I635Y+WVmlld+eahOWuveW6plxuICAgIGdldFdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDZWxsV2lkdGgoKSAqIHRoaXMuc2Vjb25kYXJ5RGF0ZVBvaW50cy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLy8g6I635Y+W5Y2V5Liq572R5qC855qE5a695bqmXG4gICAgZ2V0Q2VsbFdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmNlbGxXaWR0aDtcbiAgICB9XG5cbiAgICAvLyDojrflj5blvZPliY3ml7bpl7TnmoRY5Z2Q5qCHXG4gICAgZ2V0VG9kYXlYUG9pbnQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdG9hZHkgPSBuZXcgR2FudHREYXRlKCkuc3RhcnRPZkRheSgpO1xuICAgICAgICBpZiAodG9hZHkudmFsdWUgPiB0aGlzLnN0YXJ0LnZhbHVlICYmIHRvYWR5LnZhbHVlIDwgdGhpcy5lbmQudmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHggPSB0aGlzLmdldFhQb2ludEJ5RGF0ZSh0b2FkeSkgKyB0aGlzLmdldERheU9jY3VwYW5jeVdpZHRoKHRvYWR5KSAvIDI7XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8g6I635Y+W5oyH5a6a5pe26Ze055qEWOWdkOagh1xuICAgIGdldFhQb2ludEJ5RGF0ZShkYXRlOiBHYW50dERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZUludGVydmFsV2lkdGgodGhpcy5zdGFydCwgZGF0ZSk7XG4gICAgfVxuXG4gICAgLy8g5qC55o2uWOWdkOagh+iOt+WPluWvueW6lOaXtumXtFxuICAgIGdldERhdGVCeVhQb2ludCh4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaW5kZXhPZlNlY29uZGFyeURhdGUgPSBNYXRoLm1heChNYXRoLmZsb29yKHggLyB0aGlzLmdldENlbGxXaWR0aCgpKSwgMCk7XG4gICAgICAgIGNvbnN0IG1hdGNoRGF0ZSA9IHRoaXMuc2Vjb25kYXJ5RGF0ZVBvaW50c1tNYXRoLm1pbih0aGlzLnNlY29uZGFyeURhdGVQb2ludHMubGVuZ3RoIC0gMSwgaW5kZXhPZlNlY29uZGFyeURhdGUpXTtcbiAgICAgICAgY29uc3QgZGF5V2lkdGggPSB0aGlzLmdldERheU9jY3VwYW5jeVdpZHRoKG1hdGNoRGF0ZT8uc3RhcnQpO1xuICAgICAgICBpZiAoZGF5V2lkdGggPT09IHRoaXMuZ2V0Q2VsbFdpZHRoKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaERhdGU/LnN0YXJ0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF5ID0gTWF0aC5mbG9vcigoeCAlIHRoaXMuZ2V0Q2VsbFdpZHRoKCkpIC8gZGF5V2lkdGgpO1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoRGF0ZT8uc3RhcnQuYWRkRGF5cyhkYXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8g6I635Y+W5oyH5a6a5pe26Ze06IyD5Zu055qE5a695bqmXG4gICAgZ2V0RGF0ZVJhbmdlV2lkdGgoc3RhcnQ6IEdhbnR0RGF0ZSwgZW5kOiBHYW50dERhdGUpIHtcbiAgICAgICAgLy8gYWRkU2Vjb25kcygxKSDmmK/lm6DkuLrorqHnrpfnm7jlt67lpKnkvJrku6XkuIDkuKrmlbTlpKnmnaXorqHnrpcgZW5k5pe26Ze05LiA6Iis5pivNTnliIY1OeenkuS4jeaYr+S4gOS4quaVtOWkqe+8jOaJgOS7pemcgOimgeWKoDFcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZUludGVydmFsV2lkdGgodGhpcy5zdGFydE9mUHJlY2lzaW9uKHN0YXJ0KSwgdGhpcy5lbmRPZlByZWNpc2lvbihlbmQpLmFkZFNlY29uZHMoMSkpO1xuICAgIH1cblxuICAgIC8vIOagueaNruaXpeacn+eyvuW6puiOt+WPluacgOWwj+aXtumXtOiMg+WbtOeahOWuveW6plxuICAgIGdldE1pblJhbmdlV2lkdGhCeVByZWNpc2lvblVuaXQoZGF0ZTogR2FudHREYXRlKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmRhdGVQcmVjaXNpb25Vbml0KSB7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERheU9jY3VwYW5jeVdpZHRoKGRhdGUpIC8gMjQgLyA2MDtcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERheU9jY3VwYW5jeVdpZHRoKGRhdGUpIC8gMjQ7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERheU9jY3VwYW5jeVdpZHRoKGRhdGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19