@worktile/gantt 18.1.0-next.2 → 19.0.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 (74) hide show
  1. package/components/main/gantt-main.component.d.ts +3 -2
  2. package/fesm2022/worktile-gantt.mjs +124 -127
  3. package/fesm2022/worktile-gantt.mjs.map +1 -1
  4. package/gantt-item-upper.d.ts +1 -1
  5. package/gantt-upper.d.ts +1 -1
  6. package/gantt.module.d.ts +1 -1
  7. package/gantt.pipe.d.ts +5 -5
  8. package/package.json +4 -6
  9. package/esm2022/class/baseline.mjs +0 -18
  10. package/esm2022/class/date-point.mjs +0 -11
  11. package/esm2022/class/event.mjs +0 -27
  12. package/esm2022/class/group.mjs +0 -17
  13. package/esm2022/class/index.mjs +0 -9
  14. package/esm2022/class/item.mjs +0 -85
  15. package/esm2022/class/link.mjs +0 -19
  16. package/esm2022/class/toolbar.mjs +0 -2
  17. package/esm2022/class/view-type.mjs +0 -10
  18. package/esm2022/components/bar/bar-drag.mjs +0 -560
  19. package/esm2022/components/bar/bar.component.mjs +0 -132
  20. package/esm2022/components/baseline/baseline.component.mjs +0 -43
  21. package/esm2022/components/calendar/grid/calendar-grid.component.mjs +0 -66
  22. package/esm2022/components/calendar/header/calendar-header.component.mjs +0 -70
  23. package/esm2022/components/drag-backdrop/drag-backdrop.component.mjs +0 -21
  24. package/esm2022/components/icon/icon.component.mjs +0 -37
  25. package/esm2022/components/icon/icons.mjs +0 -93
  26. package/esm2022/components/links/lines/curve.mjs +0 -95
  27. package/esm2022/components/links/lines/factory.mjs +0 -14
  28. package/esm2022/components/links/lines/line.mjs +0 -24
  29. package/esm2022/components/links/lines/straight.mjs +0 -58
  30. package/esm2022/components/links/links.component.mjs +0 -196
  31. package/esm2022/components/loader/loader.component.mjs +0 -30
  32. package/esm2022/components/main/gantt-main.component.mjs +0 -94
  33. package/esm2022/components/range/range.component.mjs +0 -25
  34. package/esm2022/components/scrollbar/scrollbar.component.mjs +0 -27
  35. package/esm2022/components/table/body/gantt-table-body.component.mjs +0 -329
  36. package/esm2022/components/table/header/gantt-table-header.component.mjs +0 -152
  37. package/esm2022/components/toolbar/toolbar.component.mjs +0 -37
  38. package/esm2022/gantt-abstract.mjs +0 -3
  39. package/esm2022/gantt-dom.service.mjs +0 -156
  40. package/esm2022/gantt-drag-container.mjs +0 -78
  41. package/esm2022/gantt-item-upper.mjs +0 -67
  42. package/esm2022/gantt-print.service.mjs +0 -94
  43. package/esm2022/gantt-upper.mjs +0 -402
  44. package/esm2022/gantt.component.mjs +0 -361
  45. package/esm2022/gantt.config.mjs +0 -69
  46. package/esm2022/gantt.module.mjs +0 -141
  47. package/esm2022/gantt.pipe.mjs +0 -61
  48. package/esm2022/gantt.styles.mjs +0 -10
  49. package/esm2022/i18n/i18n.mjs +0 -12
  50. package/esm2022/i18n/index.mjs +0 -18
  51. package/esm2022/i18n/locales/de-de.mjs +0 -51
  52. package/esm2022/i18n/locales/en-us.mjs +0 -49
  53. package/esm2022/i18n/locales/ja-jp.mjs +0 -49
  54. package/esm2022/i18n/locales/ru-ru.mjs +0 -51
  55. package/esm2022/i18n/locales/zh-hans.mjs +0 -49
  56. package/esm2022/i18n/locales/zh-hant.mjs +0 -49
  57. package/esm2022/public-api.mjs +0 -28
  58. package/esm2022/root.component.mjs +0 -174
  59. package/esm2022/table/gantt-column.component.mjs +0 -46
  60. package/esm2022/table/gantt-table.component.mjs +0 -49
  61. package/esm2022/utils/date.mjs +0 -180
  62. package/esm2022/utils/drag-scroll.mjs +0 -54
  63. package/esm2022/utils/helpers.mjs +0 -73
  64. package/esm2022/utils/passive-listeners.mjs +0 -30
  65. package/esm2022/utils/set-style-with-vendor-prefix.mjs +0 -15
  66. package/esm2022/views/day.mjs +0 -58
  67. package/esm2022/views/factory.mjs +0 -22
  68. package/esm2022/views/hour.mjs +0 -89
  69. package/esm2022/views/month.mjs +0 -52
  70. package/esm2022/views/quarter.mjs +0 -55
  71. package/esm2022/views/view.mjs +0 -177
  72. package/esm2022/views/week.mjs +0 -53
  73. package/esm2022/views/year.mjs +0 -54
  74. package/esm2022/worktile-gantt.mjs +0 -5
@@ -1,177 +0,0 @@
1
- import { differenceInCalendarDays, differenceInHours, differenceInMinutes } from 'date-fns';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { GanttDate, differenceInDays } from '../utils/date';
4
- export const primaryDatePointTop = '40%';
5
- export const secondaryDatePointTop = '80%';
6
- const viewOptions = {
7
- min: new GanttDate().addYears(-1).startOfYear(),
8
- max: new GanttDate().addYears(1).endOfYear(),
9
- datePrecisionUnit: 'day',
10
- dragPreviewDateFormat: 'MM-dd'
11
- };
12
- export class GanttView {
13
- get start() {
14
- return this.start$.getValue();
15
- }
16
- get end() {
17
- return this.end$.getValue();
18
- }
19
- constructor(start, end, options) {
20
- this.showTimeline = true;
21
- this.dateFormats = {};
22
- this.options = Object.assign({}, viewOptions, options);
23
- const startDate = start.isCustom
24
- ? this.viewStartOf(start.date)
25
- : this.viewStartOf(start.date.value < this.options.start.value ? start.date : this.options.start);
26
- const endDate = end.isCustom
27
- ? this.viewEndOf(end.date)
28
- : this.viewEndOf(end.date.value > this.options.end.value ? end.date : this.options.end);
29
- this.start$ = new BehaviorSubject(startDate);
30
- this.end$ = new BehaviorSubject(endDate);
31
- this.initialize();
32
- }
33
- /**
34
- * deprecated, please use viewStartOf()
35
- * @deprecated
36
- */
37
- startOf(date) {
38
- return this.viewStartOf(date);
39
- }
40
- /**
41
- * deprecated, please use viewEndOf()
42
- * @deprecated
43
- */
44
- endOf(date) {
45
- return this.viewEndOf(date);
46
- }
47
- startOfPrecision(date) {
48
- switch (this.options.datePrecisionUnit) {
49
- case 'minute':
50
- return date.startOfMinute();
51
- case 'hour':
52
- return date.startOfHour();
53
- default:
54
- return date.startOfDay();
55
- }
56
- }
57
- endOfPrecision(date) {
58
- switch (this.options.datePrecisionUnit) {
59
- case 'minute':
60
- return date.endOfMinute();
61
- case 'hour':
62
- return date.endOfHour();
63
- default:
64
- return date.endOfDay();
65
- }
66
- }
67
- differenceByPrecisionUnit(dateLeft, dateRight) {
68
- switch (this.options.datePrecisionUnit) {
69
- case 'minute':
70
- return differenceInMinutes(dateLeft.value, dateRight.value);
71
- case 'hour':
72
- return differenceInHours(dateLeft.value, dateRight.value);
73
- default:
74
- return differenceInCalendarDays(dateLeft.value, dateRight.value);
75
- }
76
- }
77
- getDateIntervalWidth(start, end) {
78
- let result = 0;
79
- const days = differenceInDays(end.value, start.value);
80
- for (let i = 0; i < Math.abs(days); i++) {
81
- result += this.getDayOccupancyWidth(start.addDays(i));
82
- }
83
- result = days >= 0 ? result : -result;
84
- return Number(result.toFixed(3));
85
- }
86
- initialize() {
87
- this.primaryDatePoints = this.getPrimaryDatePoints();
88
- this.secondaryDatePoints = this.getSecondaryDatePoints();
89
- this.width = this.getWidth();
90
- this.cellWidth = this.getCellWidth();
91
- this.primaryWidth = this.getPrimaryWidth();
92
- }
93
- addStartDate() {
94
- const start = this.viewStartOf(this.start.add(this.options.addAmount * -1, this.options.addUnit));
95
- if (start.value >= this.options.min.value) {
96
- const origin = this.start;
97
- this.start$.next(start);
98
- this.initialize();
99
- return { start: this.start, end: origin };
100
- }
101
- return null;
102
- }
103
- addEndDate() {
104
- const end = this.viewEndOf(this.end.add(this.options.addAmount, this.options.addUnit));
105
- if (end.value <= this.options.max.value) {
106
- const origin = this.end;
107
- this.end$.next(end);
108
- this.initialize();
109
- return { start: origin, end: this.end };
110
- }
111
- return null;
112
- }
113
- updateDate(start, end) {
114
- start = this.viewStartOf(start);
115
- end = this.viewEndOf(end);
116
- if (start.value < this.start.value) {
117
- this.start$.next(start);
118
- }
119
- if (end.value > this.end.value) {
120
- this.end$.next(end);
121
- }
122
- this.initialize();
123
- }
124
- // 获取View的宽度
125
- getWidth() {
126
- return this.getCellWidth() * this.secondaryDatePoints.length;
127
- }
128
- // 获取单个网格的宽度
129
- getCellWidth() {
130
- return this.options.cellWidth;
131
- }
132
- // 获取当前时间的X坐标
133
- getTodayXPoint() {
134
- const toady = new GanttDate().startOfDay();
135
- if (toady.value > this.start.value && toady.value < this.end.value) {
136
- const x = this.getXPointByDate(toady) + this.getDayOccupancyWidth(toady) / 2;
137
- return x;
138
- }
139
- else {
140
- return null;
141
- }
142
- }
143
- // 获取指定时间的X坐标
144
- getXPointByDate(date) {
145
- return this.getDateIntervalWidth(this.start, date);
146
- }
147
- // 根据X坐标获取对应时间
148
- getDateByXPoint(x) {
149
- const indexOfSecondaryDate = Math.max(Math.floor(x / this.getCellWidth()), 0);
150
- const matchDate = this.secondaryDatePoints[Math.min(this.secondaryDatePoints.length - 1, indexOfSecondaryDate)];
151
- const dayWidth = this.getDayOccupancyWidth(matchDate?.start);
152
- if (dayWidth === this.getCellWidth()) {
153
- return matchDate?.start;
154
- }
155
- else {
156
- const day = Math.floor((x % this.getCellWidth()) / dayWidth);
157
- return matchDate?.start.addDays(day);
158
- }
159
- }
160
- // 获取指定时间范围的宽度
161
- getDateRangeWidth(start, end) {
162
- // addSeconds(1) 是因为计算相差天会以一个整天来计算 end时间一般是59分59秒不是一个整天,所以需要加1
163
- return this.getDateIntervalWidth(this.startOfPrecision(start), this.endOfPrecision(end).addSeconds(1));
164
- }
165
- // 根据日期精度获取最小时间范围的宽度
166
- getMinRangeWidthByPrecisionUnit(date) {
167
- switch (this.options.datePrecisionUnit) {
168
- case 'minute':
169
- return this.getDayOccupancyWidth(date) / 24 / 60;
170
- case 'hour':
171
- return this.getDayOccupancyWidth(date) / 24;
172
- default:
173
- return this.getDayOccupancyWidth(date);
174
- }
175
- }
176
- }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy92aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXZDLE9BQU8sRUFBRSxTQUFTLEVBQWlCLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLENBQUM7QUF3QjNDLE1BQU0sV0FBVyxHQUFxQjtJQUNsQyxHQUFHLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7SUFDL0MsR0FBRyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRTtJQUM1QyxpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLHFCQUFxQixFQUFFLE9BQU87Q0FDakMsQ0FBQztBQUVGLE1BQU0sT0FBZ0IsU0FBUztJQU8zQixJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBdUJELFlBQVksS0FBb0IsRUFBRSxHQUFrQixFQUFFLE9BQXlCO1FBWC9FLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBTXBCLGdCQUFXLEdBR1AsRUFBRSxDQUFDO1FBR0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdkQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVE7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEcsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVE7WUFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBWSxTQUFTLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZUFBZSxDQUFZLE9BQU8sQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBTUQ7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLElBQWU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsSUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQWNELGdCQUFnQixDQUFDLElBQWU7UUFDNUIsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckMsS0FBSyxRQUFRO2dCQUNULE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLEtBQUssTUFBTTtnQkFDUCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QjtnQkFDSSxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFlO1FBQzFCLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLEtBQUssUUFBUTtnQkFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixLQUFLLE1BQU07Z0JBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUI7Z0JBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxRQUFtQixFQUFFLFNBQW9CO1FBQy9ELFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLEtBQUssUUFBUTtnQkFDVCxPQUFPLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLEtBQUssTUFBTTtnQkFDUCxPQUFPLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlEO2dCQUNJLE9BQU8sd0JBQXdCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFnQixFQUFFLEdBQWM7UUFDakQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVU7UUFDTixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2RixJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQixFQUFFLEdBQWM7UUFDdkMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7SUFDWixRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUNqRSxDQUFDO0lBRUQsWUFBWTtJQUNaLFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhO0lBQ2IsY0FBYztRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0MsSUFBSSxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0UsT0FBTyxDQUFDLENBQUM7UUFDYixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtJQUNiLGVBQWUsQ0FBQyxJQUFlO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWM7SUFDZCxlQUFlLENBQUMsQ0FBUztRQUNyQixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQ2hILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDbkMsT0FBTyxTQUFTLEVBQUUsS0FBSyxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztZQUM3RCxPQUFPLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLGlCQUFpQixDQUFDLEtBQWdCLEVBQUUsR0FBYztRQUM5Qyw4REFBOEQ7UUFDOUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVELG9CQUFvQjtJQUNwQiwrQkFBK0IsQ0FBQyxJQUFlO1FBQzNDLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLEtBQUssUUFBUTtnQkFDVCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3JELEtBQUssTUFBTTtnQkFDUCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDaEQ7Z0JBQ0ksT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cywgZGlmZmVyZW5jZUluSG91cnMsIGRpZmZlcmVuY2VJbk1pbnV0ZXMgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdhbnR0Vmlld1R5cGUgfSBmcm9tICcuLi9jbGFzcyc7XG5pbXBvcnQgeyBHYW50dERhdGVQb2ludCB9IGZyb20gJy4uL2NsYXNzL2RhdGUtcG9pbnQnO1xuaW1wb3J0IHsgR2FudHREYXRlRm9ybWF0IH0gZnJvbSAnLi4vZ2FudHQuY29uZmlnJztcbmltcG9ydCB7IEdhbnR0RGF0ZSwgR2FudHREYXRlVXRpbCwgZGlmZmVyZW5jZUluRGF5cyB9IGZyb20gJy4uL3V0aWxzL2RhdGUnO1xuaW1wb3J0IHsgemhIYW5zTG9jYWxlIH0gZnJvbSAnLi4vaTE4bic7XG5cbmV4cG9ydCBjb25zdCBwcmltYXJ5RGF0ZVBvaW50VG9wID0gJzQwJSc7XG5cbmV4cG9ydCBjb25zdCBzZWNvbmRhcnlEYXRlUG9pbnRUb3AgPSAnODAlJztcblxuZXhwb3J0IGludGVyZmFjZSBHYW50dFZpZXdEYXRlIHtcbiAgICBkYXRlOiBHYW50dERhdGU7XG4gICAgaXNDdXN0b20/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdhbnR0Vmlld09wdGlvbnMge1xuICAgIHN0YXJ0PzogR2FudHREYXRlO1xuICAgIGVuZD86IEdhbnR0RGF0ZTtcbiAgICBtaW4/OiBHYW50dERhdGU7XG4gICAgbWF4PzogR2FudHREYXRlO1xuICAgIGNlbGxXaWR0aD86IG51bWJlcjtcbiAgICBhZGRBbW91bnQ/OiBudW1iZXI7XG4gICAgYWRkVW5pdD86IEdhbnR0RGF0ZVV0aWw7XG4gICAgLyoqIEBkZXByZWNhdGVkIGRhdGVGb3JtYXQgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBkYXRlRGlzcGxheUZvcm1hdHMgb3Igc2V0dGluZyBpMThuIGxvY2FsZSAqL1xuICAgIGRhdGVGb3JtYXQ/OiBHYW50dERhdGVGb3JtYXQ7XG4gICAgZGF0ZURpc3BsYXlGb3JtYXRzPzogeyBwcmltYXJ5Pzogc3RyaW5nOyBzZWNvbmRhcnk/OiBzdHJpbmcgfTtcbiAgICBkYXRlUHJlY2lzaW9uVW5pdD86ICdkYXknIHwgJ2hvdXInIHwgJ21pbnV0ZSc7XG4gICAgZHJhZ1ByZXZpZXdEYXRlRm9ybWF0Pzogc3RyaW5nO1xuICAgIC8vIGN1c3RvbSBrZXkgYW5kIHZhbHVlXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5jb25zdCB2aWV3T3B0aW9uczogR2FudHRWaWV3T3B0aW9ucyA9IHtcbiAgICBtaW46IG5ldyBHYW50dERhdGUoKS5hZGRZZWFycygtMSkuc3RhcnRPZlllYXIoKSxcbiAgICBtYXg6IG5ldyBHYW50dERhdGUoKS5hZGRZZWFycygxKS5lbmRPZlllYXIoKSxcbiAgICBkYXRlUHJlY2lzaW9uVW5pdDogJ2RheScsXG4gICAgZHJhZ1ByZXZpZXdEYXRlRm9ybWF0OiAnTU0tZGQnXG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2FudHRWaWV3IHtcbiAgICB2aWV3VHlwZTogR2FudHRWaWV3VHlwZTtcblxuICAgIHN0YXJ0JDogQmVoYXZpb3JTdWJqZWN0PEdhbnR0RGF0ZT47XG5cbiAgICBlbmQkOiBCZWhhdmlvclN1YmplY3Q8R2FudHREYXRlPjtcblxuICAgIGdldCBzdGFydCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGVuZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW5kJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaW1hcnlEYXRlUG9pbnRzOiBHYW50dERhdGVQb2ludFtdO1xuXG4gICAgc2Vjb25kYXJ5RGF0ZVBvaW50czogR2FudHREYXRlUG9pbnRbXTtcblxuICAgIHdpZHRoOiBudW1iZXI7XG5cbiAgICBjZWxsV2lkdGg6IG51bWJlcjtcblxuICAgIHByaW1hcnlXaWR0aDogbnVtYmVyO1xuXG4gICAgc2hvd1RpbWVsaW5lID0gdHJ1ZTtcblxuICAgIHNob3dXZWVrQmFja2Ryb3A6IGJvb2xlYW47XG5cbiAgICBvcHRpb25zOiBHYW50dFZpZXdPcHRpb25zO1xuXG4gICAgZGF0ZUZvcm1hdHM6IHtcbiAgICAgICAgcHJpbWFyeT86IHN0cmluZztcbiAgICAgICAgc2Vjb25kYXJ5Pzogc3RyaW5nO1xuICAgIH0gPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKHN0YXJ0OiBHYW50dFZpZXdEYXRlLCBlbmQ6IEdhbnR0Vmlld0RhdGUsIG9wdGlvbnM6IEdhbnR0Vmlld09wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdmlld09wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0LmlzQ3VzdG9tXG4gICAgICAgICAgICA/IHRoaXMudmlld1N0YXJ0T2Yoc3RhcnQuZGF0ZSlcbiAgICAgICAgICAgIDogdGhpcy52aWV3U3RhcnRPZihzdGFydC5kYXRlLnZhbHVlIDwgdGhpcy5vcHRpb25zLnN0YXJ0LnZhbHVlID8gc3RhcnQuZGF0ZSA6IHRoaXMub3B0aW9ucy5zdGFydCk7XG4gICAgICAgIGNvbnN0IGVuZERhdGUgPSBlbmQuaXNDdXN0b21cbiAgICAgICAgICAgID8gdGhpcy52aWV3RW5kT2YoZW5kLmRhdGUpXG4gICAgICAgICAgICA6IHRoaXMudmlld0VuZE9mKGVuZC5kYXRlLnZhbHVlID4gdGhpcy5vcHRpb25zLmVuZC52YWx1ZSA/IGVuZC5kYXRlIDogdGhpcy5vcHRpb25zLmVuZCk7XG4gICAgICAgIHRoaXMuc3RhcnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxHYW50dERhdGU+KHN0YXJ0RGF0ZSk7XG4gICAgICAgIHRoaXMuZW5kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8R2FudHREYXRlPihlbmREYXRlKTtcblxuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCB2aWV3U3RhcnRPZihkYXRlOiBHYW50dERhdGUpOiBHYW50dERhdGU7XG5cbiAgICBhYnN0cmFjdCB2aWV3RW5kT2YoZGF0ZTogR2FudHREYXRlKTogR2FudHREYXRlO1xuXG4gICAgLyoqXG4gICAgICogZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSB2aWV3U3RhcnRPZigpXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBzdGFydE9mKGRhdGU6IEdhbnR0RGF0ZSk6IEdhbnR0RGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdTdGFydE9mKGRhdGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2Ugdmlld0VuZE9mKClcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIGVuZE9mKGRhdGU6IEdhbnR0RGF0ZSk6IEdhbnR0RGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdFbmRPZihkYXRlKTtcbiAgICB9XG5cbiAgICAvLyDojrflj5bkuIDnuqfml7bpl7TnvZHmoLzlkIjlubblkI7nmoTlrr3luqZcbiAgICBhYnN0cmFjdCBnZXRQcmltYXJ5V2lkdGgoKTogbnVtYmVyO1xuXG4gICAgLy8g6I635Y+W5b2T5YmN6KeG5Zu+5LiL5q+P5LiA5aSp5Y2g55So55qE5a695bqmXG4gICAgYWJzdHJhY3QgZ2V0RGF5T2NjdXBhbmN5V2lkdGgoZGF0ZTogR2FudHREYXRlKTogbnVtYmVyO1xuXG4gICAgLy8g6I635Y+W5LiA57qn5pe26Ze054K577yI5Z2Q5qCH77yM5pi+56S65ZCN56ew77yJXG4gICAgYWJzdHJhY3QgZ2V0UHJpbWFyeURhdGVQb2ludHMoKTogR2FudHREYXRlUG9pbnRbXTtcblxuICAgIC8vIOiOt+WPluS6jOe6p+aXtumXtOeCue+8iOWdkOagh++8jOaYvuekuuWQjeensO+8iVxuICAgIGFic3RyYWN0IGdldFNlY29uZGFyeURhdGVQb2ludHMoKTogR2FudHREYXRlUG9pbnRbXTtcblxuICAgIHN0YXJ0T2ZQcmVjaXNpb24oZGF0ZTogR2FudHREYXRlKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmRhdGVQcmVjaXNpb25Vbml0KSB7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLnN0YXJ0T2ZNaW51dGUoKTtcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLnN0YXJ0T2ZIb3VyKCk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLnN0YXJ0T2ZEYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVuZE9mUHJlY2lzaW9uKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5kYXRlUHJlY2lzaW9uVW5pdCkge1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS5lbmRPZk1pbnV0ZSgpO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUuZW5kT2ZIb3VyKCk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLmVuZE9mRGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaWZmZXJlbmNlQnlQcmVjaXNpb25Vbml0KGRhdGVMZWZ0OiBHYW50dERhdGUsIGRhdGVSaWdodDogR2FudHREYXRlKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmRhdGVQcmVjaXNpb25Vbml0KSB7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBkaWZmZXJlbmNlSW5NaW51dGVzKGRhdGVMZWZ0LnZhbHVlLCBkYXRlUmlnaHQudmFsdWUpO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpZmZlcmVuY2VJbkhvdXJzKGRhdGVMZWZ0LnZhbHVlLCBkYXRlUmlnaHQudmFsdWUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGRhdGVMZWZ0LnZhbHVlLCBkYXRlUmlnaHQudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGF0ZUludGVydmFsV2lkdGgoc3RhcnQ6IEdhbnR0RGF0ZSwgZW5kOiBHYW50dERhdGUpIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGNvbnN0IGRheXMgPSBkaWZmZXJlbmNlSW5EYXlzKGVuZC52YWx1ZSwgc3RhcnQudmFsdWUpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGguYWJzKGRheXMpOyBpKyspIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLmdldERheU9jY3VwYW5jeVdpZHRoKHN0YXJ0LmFkZERheXMoaSkpO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IGRheXMgPj0gMCA/IHJlc3VsdCA6IC1yZXN1bHQ7XG4gICAgICAgIHJldHVybiBOdW1iZXIocmVzdWx0LnRvRml4ZWQoMykpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplKCkge1xuICAgICAgICB0aGlzLnByaW1hcnlEYXRlUG9pbnRzID0gdGhpcy5nZXRQcmltYXJ5RGF0ZVBvaW50cygpO1xuICAgICAgICB0aGlzLnNlY29uZGFyeURhdGVQb2ludHMgPSB0aGlzLmdldFNlY29uZGFyeURhdGVQb2ludHMoKTtcbiAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMuZ2V0V2lkdGgoKTtcbiAgICAgICAgdGhpcy5jZWxsV2lkdGggPSB0aGlzLmdldENlbGxXaWR0aCgpO1xuICAgICAgICB0aGlzLnByaW1hcnlXaWR0aCA9IHRoaXMuZ2V0UHJpbWFyeVdpZHRoKCk7XG4gICAgfVxuXG4gICAgYWRkU3RhcnREYXRlKCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMudmlld1N0YXJ0T2YodGhpcy5zdGFydC5hZGQodGhpcy5vcHRpb25zLmFkZEFtb3VudCAqIC0xLCB0aGlzLm9wdGlvbnMuYWRkVW5pdCkpO1xuICAgICAgICBpZiAoc3RhcnQudmFsdWUgPj0gdGhpcy5vcHRpb25zLm1pbi52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5zdGFydDtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQkLm5leHQoc3RhcnQpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgICAgICAgICByZXR1cm4geyBzdGFydDogdGhpcy5zdGFydCwgZW5kOiBvcmlnaW4gfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBhZGRFbmREYXRlKCkge1xuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnZpZXdFbmRPZih0aGlzLmVuZC5hZGQodGhpcy5vcHRpb25zLmFkZEFtb3VudCwgdGhpcy5vcHRpb25zLmFkZFVuaXQpKTtcbiAgICAgICAgaWYgKGVuZC52YWx1ZSA8PSB0aGlzLm9wdGlvbnMubWF4LnZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmVuZDtcbiAgICAgICAgICAgIHRoaXMuZW5kJC5uZXh0KGVuZCk7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0OiBvcmlnaW4sIGVuZDogdGhpcy5lbmQgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB1cGRhdGVEYXRlKHN0YXJ0OiBHYW50dERhdGUsIGVuZDogR2FudHREYXRlKSB7XG4gICAgICAgIHN0YXJ0ID0gdGhpcy52aWV3U3RhcnRPZihzdGFydCk7XG4gICAgICAgIGVuZCA9IHRoaXMudmlld0VuZE9mKGVuZCk7XG4gICAgICAgIGlmIChzdGFydC52YWx1ZSA8IHRoaXMuc3RhcnQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQkLm5leHQoc3RhcnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmQudmFsdWUgPiB0aGlzLmVuZC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5lbmQkLm5leHQoZW5kKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB9XG5cbiAgICAvLyDojrflj5ZWaWV355qE5a695bqmXG4gICAgZ2V0V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxXaWR0aCgpICogdGhpcy5zZWNvbmRhcnlEYXRlUG9pbnRzLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyDojrflj5bljZXkuKrnvZHmoLznmoTlrr3luqZcbiAgICBnZXRDZWxsV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY2VsbFdpZHRoO1xuICAgIH1cblxuICAgIC8vIOiOt+WPluW9k+WJjeaXtumXtOeahFjlnZDmoIdcbiAgICBnZXRUb2RheVhQb2ludCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB0b2FkeSA9IG5ldyBHYW50dERhdGUoKS5zdGFydE9mRGF5KCk7XG4gICAgICAgIGlmICh0b2FkeS52YWx1ZSA+IHRoaXMuc3RhcnQudmFsdWUgJiYgdG9hZHkudmFsdWUgPCB0aGlzLmVuZC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgeCA9IHRoaXMuZ2V0WFBvaW50QnlEYXRlKHRvYWR5KSArIHRoaXMuZ2V0RGF5T2NjdXBhbmN5V2lkdGgodG9hZHkpIC8gMjtcbiAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDojrflj5bmjIflrprml7bpl7TnmoRY5Z2Q5qCHXG4gICAgZ2V0WFBvaW50QnlEYXRlKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlSW50ZXJ2YWxXaWR0aCh0aGlzLnN0YXJ0LCBkYXRlKTtcbiAgICB9XG5cbiAgICAvLyDmoLnmja5Y5Z2Q5qCH6I635Y+W5a+55bqU5pe26Ze0XG4gICAgZ2V0RGF0ZUJ5WFBvaW50KHg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBpbmRleE9mU2Vjb25kYXJ5RGF0ZSA9IE1hdGgubWF4KE1hdGguZmxvb3IoeCAvIHRoaXMuZ2V0Q2VsbFdpZHRoKCkpLCAwKTtcbiAgICAgICAgY29uc3QgbWF0Y2hEYXRlID0gdGhpcy5zZWNvbmRhcnlEYXRlUG9pbnRzW01hdGgubWluKHRoaXMuc2Vjb25kYXJ5RGF0ZVBvaW50cy5sZW5ndGggLSAxLCBpbmRleE9mU2Vjb25kYXJ5RGF0ZSldO1xuICAgICAgICBjb25zdCBkYXlXaWR0aCA9IHRoaXMuZ2V0RGF5T2NjdXBhbmN5V2lkdGgobWF0Y2hEYXRlPy5zdGFydCk7XG4gICAgICAgIGlmIChkYXlXaWR0aCA9PT0gdGhpcy5nZXRDZWxsV2lkdGgoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoRGF0ZT8uc3RhcnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkYXkgPSBNYXRoLmZsb29yKCh4ICUgdGhpcy5nZXRDZWxsV2lkdGgoKSkgLyBkYXlXaWR0aCk7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hEYXRlPy5zdGFydC5hZGREYXlzKGRheSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDojrflj5bmjIflrprml7bpl7TojIPlm7TnmoTlrr3luqZcbiAgICBnZXREYXRlUmFuZ2VXaWR0aChzdGFydDogR2FudHREYXRlLCBlbmQ6IEdhbnR0RGF0ZSkge1xuICAgICAgICAvLyBhZGRTZWNvbmRzKDEpIOaYr+WboOS4uuiuoeeul+ebuOW3ruWkqeS8muS7peS4gOS4quaVtOWkqeadpeiuoeeulyBlbmTml7bpl7TkuIDoiKzmmK81OeWIhjU556eS5LiN5piv5LiA5Liq5pW05aSp77yM5omA5Lul6ZyA6KaB5YqgMVxuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlSW50ZXJ2YWxXaWR0aCh0aGlzLnN0YXJ0T2ZQcmVjaXNpb24oc3RhcnQpLCB0aGlzLmVuZE9mUHJlY2lzaW9uKGVuZCkuYWRkU2Vjb25kcygxKSk7XG4gICAgfVxuXG4gICAgLy8g5qC55o2u5pel5pyf57K+5bqm6I635Y+W5pyA5bCP5pe26Ze06IyD5Zu055qE5a695bqmXG4gICAgZ2V0TWluUmFuZ2VXaWR0aEJ5UHJlY2lzaW9uVW5pdChkYXRlOiBHYW50dERhdGUpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLm9wdGlvbnMuZGF0ZVByZWNpc2lvblVuaXQpIHtcbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF5T2NjdXBhbmN5V2lkdGgoZGF0ZSkgLyAyNCAvIDYwO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF5T2NjdXBhbmN5V2lkdGgoZGF0ZSkgLyAyNDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF5T2NjdXBhbmN5V2lkdGgoZGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,53 +0,0 @@
1
- import { GanttViewType } from '../class';
2
- import { GanttDatePoint } from '../class/date-point';
3
- import { eachWeekOfInterval, GanttDate } from '../utils/date';
4
- import { GanttView, primaryDatePointTop, secondaryDatePointTop } from './view';
5
- import { zhHantLocale } from '../i18n';
6
- const viewOptions = {
7
- cellWidth: 280,
8
- start: new GanttDate().startOfYear().startOfWeek(),
9
- end: new GanttDate().endOfYear().endOfWeek(),
10
- addAmount: 1,
11
- addUnit: 'month',
12
- dateDisplayFormats: zhHantLocale.views.week.dateFormats
13
- };
14
- export class GanttViewWeek extends GanttView {
15
- constructor(start, end, options) {
16
- super(start, end, Object.assign({}, viewOptions, options));
17
- this.viewType = GanttViewType.week;
18
- }
19
- viewStartOf(date) {
20
- return date.startOfWeek();
21
- }
22
- viewEndOf(date) {
23
- return date.endOfWeek();
24
- }
25
- getPrimaryWidth() {
26
- return this.getCellWidth();
27
- }
28
- getDayOccupancyWidth() {
29
- return this.cellWidth / 7;
30
- }
31
- getPrimaryDatePoints() {
32
- const weeks = eachWeekOfInterval({ start: this.start.value, end: this.end.addSeconds(1).value });
33
- const points = [];
34
- for (let i = 0; i < weeks.length; i++) {
35
- const weekStart = new GanttDate(weeks[i]);
36
- const increaseWeek = weekStart.getDaysInMonth() - weekStart.getDate() >= 3 ? 0 : 1;
37
- const point = new GanttDatePoint(weekStart, weekStart.addWeeks(increaseWeek).format(this.options.dateFormat?.year || this.options.dateDisplayFormats.primary), this.getCellWidth() / 2 + i * this.getCellWidth(), primaryDatePointTop);
38
- points.push(point);
39
- }
40
- return points;
41
- }
42
- getSecondaryDatePoints() {
43
- const weeks = eachWeekOfInterval({ start: this.start.value, end: this.end.addSeconds(1).value });
44
- const points = [];
45
- for (let i = 0; i < weeks.length; i++) {
46
- const start = new GanttDate(weeks[i]);
47
- const point = new GanttDatePoint(start, `${start.format(this.options.dateFormat?.week || this.options.dateDisplayFormats.secondary)}`, i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop);
48
- points.push(point);
49
- }
50
- return points;
51
- }
52
- }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vlay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy93ZWVrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBbUMsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV2QyxNQUFNLFdBQVcsR0FBcUI7SUFDbEMsU0FBUyxFQUFFLEdBQUc7SUFDZCxLQUFLLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUU7SUFDbEQsR0FBRyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFO0lBQzVDLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLE9BQU87SUFDaEIsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVztDQUMxRCxDQUFDO0FBRUYsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUFTO0lBR3hDLFlBQVksS0FBb0IsRUFBRSxHQUFrQixFQUFFLE9BQTBCO1FBQzVFLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBSHRELGFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBSXZDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBZTtRQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRyxNQUFNLE1BQU0sR0FBcUIsRUFBRSxDQUFDO1FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLGNBQWMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25GLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUM1QixTQUFTLEVBQ1QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQ2pILElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFDakQsbUJBQW1CLENBQ3RCLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FDNUIsS0FBSyxFQUNMLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUM3RixDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQ2pELHFCQUFxQixDQUN4QixDQUFDO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FudHRWaWV3VHlwZSB9IGZyb20gJy4uL2NsYXNzJztcbmltcG9ydCB7IEdhbnR0RGF0ZVBvaW50IH0gZnJvbSAnLi4vY2xhc3MvZGF0ZS1wb2ludCc7XG5pbXBvcnQgeyBlYWNoV2Vla09mSW50ZXJ2YWwsIEdhbnR0RGF0ZSB9IGZyb20gJy4uL3V0aWxzL2RhdGUnO1xuaW1wb3J0IHsgR2FudHRWaWV3LCBHYW50dFZpZXdEYXRlLCBHYW50dFZpZXdPcHRpb25zLCBwcmltYXJ5RGF0ZVBvaW50VG9wLCBzZWNvbmRhcnlEYXRlUG9pbnRUb3AgfSBmcm9tICcuL3ZpZXcnO1xuaW1wb3J0IHsgemhIYW50TG9jYWxlIH0gZnJvbSAnLi4vaTE4bic7XG5cbmNvbnN0IHZpZXdPcHRpb25zOiBHYW50dFZpZXdPcHRpb25zID0ge1xuICAgIGNlbGxXaWR0aDogMjgwLFxuICAgIHN0YXJ0OiBuZXcgR2FudHREYXRlKCkuc3RhcnRPZlllYXIoKS5zdGFydE9mV2VlaygpLFxuICAgIGVuZDogbmV3IEdhbnR0RGF0ZSgpLmVuZE9mWWVhcigpLmVuZE9mV2VlaygpLFxuICAgIGFkZEFtb3VudDogMSxcbiAgICBhZGRVbml0OiAnbW9udGgnLFxuICAgIGRhdGVEaXNwbGF5Rm9ybWF0czogemhIYW50TG9jYWxlLnZpZXdzLndlZWsuZGF0ZUZvcm1hdHNcbn07XG5cbmV4cG9ydCBjbGFzcyBHYW50dFZpZXdXZWVrIGV4dGVuZHMgR2FudHRWaWV3IHtcbiAgICBvdmVycmlkZSB2aWV3VHlwZSA9IEdhbnR0Vmlld1R5cGUud2VlaztcblxuICAgIGNvbnN0cnVjdG9yKHN0YXJ0OiBHYW50dFZpZXdEYXRlLCBlbmQ6IEdhbnR0Vmlld0RhdGUsIG9wdGlvbnM/OiBHYW50dFZpZXdPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHN0YXJ0LCBlbmQsIE9iamVjdC5hc3NpZ24oe30sIHZpZXdPcHRpb25zLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgdmlld1N0YXJ0T2YoZGF0ZTogR2FudHREYXRlKSB7XG4gICAgICAgIHJldHVybiBkYXRlLnN0YXJ0T2ZXZWVrKCk7XG4gICAgfVxuXG4gICAgdmlld0VuZE9mKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZS5lbmRPZldlZWsoKTtcbiAgICB9XG5cbiAgICBnZXRQcmltYXJ5V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxXaWR0aCgpO1xuICAgIH1cblxuICAgIGdldERheU9jY3VwYW5jeVdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGxXaWR0aCAvIDc7XG4gICAgfVxuXG4gICAgZ2V0UHJpbWFyeURhdGVQb2ludHMoKTogR2FudHREYXRlUG9pbnRbXSB7XG4gICAgICAgIGNvbnN0IHdlZWtzID0gZWFjaFdlZWtPZkludGVydmFsKHsgc3RhcnQ6IHRoaXMuc3RhcnQudmFsdWUsIGVuZDogdGhpcy5lbmQuYWRkU2Vjb25kcygxKS52YWx1ZSB9KTtcbiAgICAgICAgY29uc3QgcG9pbnRzOiBHYW50dERhdGVQb2ludFtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2Vla3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHdlZWtTdGFydCA9IG5ldyBHYW50dERhdGUod2Vla3NbaV0pO1xuICAgICAgICAgICAgY29uc3QgaW5jcmVhc2VXZWVrID0gd2Vla1N0YXJ0LmdldERheXNJbk1vbnRoKCkgLSB3ZWVrU3RhcnQuZ2V0RGF0ZSgpID49IDMgPyAwIDogMTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEdhbnR0RGF0ZVBvaW50KFxuICAgICAgICAgICAgICAgIHdlZWtTdGFydCxcbiAgICAgICAgICAgICAgICB3ZWVrU3RhcnQuYWRkV2Vla3MoaW5jcmVhc2VXZWVrKS5mb3JtYXQodGhpcy5vcHRpb25zLmRhdGVGb3JtYXQ/LnllYXIgfHwgdGhpcy5vcHRpb25zLmRhdGVEaXNwbGF5Rm9ybWF0cy5wcmltYXJ5KSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldENlbGxXaWR0aCgpIC8gMiArIGkgKiB0aGlzLmdldENlbGxXaWR0aCgpLFxuICAgICAgICAgICAgICAgIHByaW1hcnlEYXRlUG9pbnRUb3BcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCB3ZWVrcyA9IGVhY2hXZWVrT2ZJbnRlcnZhbCh7IHN0YXJ0OiB0aGlzLnN0YXJ0LnZhbHVlLCBlbmQ6IHRoaXMuZW5kLmFkZFNlY29uZHMoMSkudmFsdWUgfSk7XG4gICAgICAgIGNvbnN0IHBvaW50czogR2FudHREYXRlUG9pbnRbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdlZWtzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IG5ldyBHYW50dERhdGUod2Vla3NbaV0pO1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBuZXcgR2FudHREYXRlUG9pbnQoXG4gICAgICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICAgICAgYCR7c3RhcnQuZm9ybWF0KHRoaXMub3B0aW9ucy5kYXRlRm9ybWF0Py53ZWVrIHx8IHRoaXMub3B0aW9ucy5kYXRlRGlzcGxheUZvcm1hdHMuc2Vjb25kYXJ5KX1gLFxuICAgICAgICAgICAgICAgIGkgKiB0aGlzLmdldENlbGxXaWR0aCgpICsgdGhpcy5nZXRDZWxsV2lkdGgoKSAvIDIsXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5RGF0ZVBvaW50VG9wXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb2ludHM7XG4gICAgfVxufVxuIl19
@@ -1,54 +0,0 @@
1
- import { GanttView, primaryDatePointTop } from './view';
2
- import { GanttDate } from '../utils/date';
3
- import { GanttDatePoint } from '../class/date-point';
4
- import { eachYearOfInterval, differenceInCalendarYears } from 'date-fns';
5
- import { GanttViewType } from '../class';
6
- import { zhHantLocale } from '../i18n';
7
- const viewOptions = {
8
- cellWidth: 480,
9
- start: new GanttDate().addYears(-2).startOfYear(),
10
- end: new GanttDate().addYears(2).endOfYear(),
11
- addAmount: 1,
12
- addUnit: 'year',
13
- dateDisplayFormats: zhHantLocale.views.year.dateFormats
14
- };
15
- export class GanttViewYear extends GanttView {
16
- constructor(start, end, options) {
17
- super(start, end, Object.assign({}, viewOptions, options));
18
- this.viewType = GanttViewType.year;
19
- }
20
- viewStartOf(date) {
21
- return date.startOfYear();
22
- }
23
- viewEndOf(date) {
24
- return date.endOfYear();
25
- }
26
- getPrimaryWidth() {
27
- return this.getCellWidth();
28
- }
29
- getDayOccupancyWidth(date) {
30
- return this.cellWidth / date.getDaysInYear();
31
- }
32
- getPrimaryDatePoints() {
33
- const years = eachYearOfInterval({ start: this.start.value, end: this.end.value });
34
- const points = [];
35
- for (let i = 0; i < years.length; i++) {
36
- const start = new GanttDate(years[i]);
37
- const point = new GanttDatePoint(start, ``, this.getCellWidth() / 2 + i * this.getCellWidth(), primaryDatePointTop);
38
- points.push(point);
39
- }
40
- return points;
41
- }
42
- getSecondaryDatePoints() {
43
- const years = differenceInCalendarYears(this.end.value, this.start.value);
44
- const points = [];
45
- const pointTop = '60%';
46
- for (let i = 0; i <= years; i++) {
47
- const start = this.start.addYears(i);
48
- const point = new GanttDatePoint(start, `${start.format(this.options.dateFormat?.year || this.options.dateDisplayFormats.secondary || this.options.dateDisplayFormats.primary)}`, i * this.getCellWidth() + this.getCellWidth() / 2, pointTop);
49
- points.push(point);
50
- }
51
- return points;
52
- }
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy92aWV3cy95ZWFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW1DLG1CQUFtQixFQUF5QixNQUFNLFFBQVEsQ0FBQztBQUNoSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXZDLE1BQU0sV0FBVyxHQUFxQjtJQUNsQyxTQUFTLEVBQUUsR0FBRztJQUNkLEtBQUssRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtJQUNqRCxHQUFHLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO0lBQzVDLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLE1BQU07SUFDZixrQkFBa0IsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXO0NBQzFELENBQUM7QUFFRixNQUFNLE9BQU8sYUFBYyxTQUFRLFNBQVM7SUFHeEMsWUFBWSxLQUFvQixFQUFFLEdBQWtCLEVBQUUsT0FBMEI7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFIdEQsYUFBUSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFJdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFlO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFlO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3BILE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsTUFBTSxLQUFLLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBcUIsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxjQUFjLENBQzVCLEtBQUssRUFDTCxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUN4SCxFQUFFLEVBQ0gsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxFQUNqRCxRQUFRLENBQ1gsQ0FBQztZQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbnR0VmlldywgR2FudHRWaWV3T3B0aW9ucywgR2FudHRWaWV3RGF0ZSwgcHJpbWFyeURhdGVQb2ludFRvcCwgc2Vjb25kYXJ5RGF0ZVBvaW50VG9wIH0gZnJvbSAnLi92aWV3JztcbmltcG9ydCB7IEdhbnR0RGF0ZSB9IGZyb20gJy4uL3V0aWxzL2RhdGUnO1xuaW1wb3J0IHsgR2FudHREYXRlUG9pbnQgfSBmcm9tICcuLi9jbGFzcy9kYXRlLXBvaW50JztcbmltcG9ydCB7IGVhY2hZZWFyT2ZJbnRlcnZhbCwgZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IEdhbnR0Vmlld1R5cGUgfSBmcm9tICcuLi9jbGFzcyc7XG5pbXBvcnQgeyB6aEhhbnRMb2NhbGUgfSBmcm9tICcuLi9pMThuJztcblxuY29uc3Qgdmlld09wdGlvbnM6IEdhbnR0Vmlld09wdGlvbnMgPSB7XG4gICAgY2VsbFdpZHRoOiA0ODAsXG4gICAgc3RhcnQ6IG5ldyBHYW50dERhdGUoKS5hZGRZZWFycygtMikuc3RhcnRPZlllYXIoKSxcbiAgICBlbmQ6IG5ldyBHYW50dERhdGUoKS5hZGRZZWFycygyKS5lbmRPZlllYXIoKSxcbiAgICBhZGRBbW91bnQ6IDEsXG4gICAgYWRkVW5pdDogJ3llYXInLFxuICAgIGRhdGVEaXNwbGF5Rm9ybWF0czogemhIYW50TG9jYWxlLnZpZXdzLnllYXIuZGF0ZUZvcm1hdHNcbn07XG5cbmV4cG9ydCBjbGFzcyBHYW50dFZpZXdZZWFyIGV4dGVuZHMgR2FudHRWaWV3IHtcbiAgICBvdmVycmlkZSB2aWV3VHlwZSA9IEdhbnR0Vmlld1R5cGUueWVhcjtcblxuICAgIGNvbnN0cnVjdG9yKHN0YXJ0OiBHYW50dFZpZXdEYXRlLCBlbmQ6IEdhbnR0Vmlld0RhdGUsIG9wdGlvbnM/OiBHYW50dFZpZXdPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHN0YXJ0LCBlbmQsIE9iamVjdC5hc3NpZ24oe30sIHZpZXdPcHRpb25zLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgdmlld1N0YXJ0T2YoZGF0ZTogR2FudHREYXRlKSB7XG4gICAgICAgIHJldHVybiBkYXRlLnN0YXJ0T2ZZZWFyKCk7XG4gICAgfVxuXG4gICAgdmlld0VuZE9mKGRhdGU6IEdhbnR0RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZS5lbmRPZlllYXIoKTtcbiAgICB9XG5cbiAgICBnZXRQcmltYXJ5V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxXaWR0aCgpO1xuICAgIH1cblxuICAgIGdldERheU9jY3VwYW5jeVdpZHRoKGRhdGU6IEdhbnR0RGF0ZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGxXaWR0aCAvIGRhdGUuZ2V0RGF5c0luWWVhcigpO1xuICAgIH1cblxuICAgIGdldFByaW1hcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCB5ZWFycyA9IGVhY2hZZWFyT2ZJbnRlcnZhbCh7IHN0YXJ0OiB0aGlzLnN0YXJ0LnZhbHVlLCBlbmQ6IHRoaXMuZW5kLnZhbHVlIH0pO1xuICAgICAgICBjb25zdCBwb2ludHM6IEdhbnR0RGF0ZVBvaW50W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB5ZWFycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgR2FudHREYXRlKHllYXJzW2ldKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEdhbnR0RGF0ZVBvaW50KHN0YXJ0LCBgYCwgdGhpcy5nZXRDZWxsV2lkdGgoKSAvIDIgKyBpICogdGhpcy5nZXRDZWxsV2lkdGgoKSwgcHJpbWFyeURhdGVQb2ludFRvcCk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRhcnlEYXRlUG9pbnRzKCk6IEdhbnR0RGF0ZVBvaW50W10ge1xuICAgICAgICBjb25zdCB5ZWFycyA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnModGhpcy5lbmQudmFsdWUsIHRoaXMuc3RhcnQudmFsdWUpO1xuICAgICAgICBjb25zdCBwb2ludHM6IEdhbnR0RGF0ZVBvaW50W10gPSBbXTtcbiAgICAgICAgY29uc3QgcG9pbnRUb3AgPSAnNjAlJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0geWVhcnM7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnN0YXJ0LmFkZFllYXJzKGkpO1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBuZXcgR2FudHREYXRlUG9pbnQoXG4gICAgICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICAgICAgYCR7c3RhcnQuZm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuZGF0ZUZvcm1hdD8ueWVhciB8fCB0aGlzLm9wdGlvbnMuZGF0ZURpc3BsYXlGb3JtYXRzLnNlY29uZGFyeSB8fCB0aGlzLm9wdGlvbnMuZGF0ZURpc3BsYXlGb3JtYXRzLnByaW1hcnlcbiAgICAgICAgICAgICAgICApfWAsXG4gICAgICAgICAgICAgICAgaSAqIHRoaXMuZ2V0Q2VsbFdpZHRoKCkgKyB0aGlzLmdldENlbGxXaWR0aCgpIC8gMixcbiAgICAgICAgICAgICAgICBwb2ludFRvcFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9pbnRzO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3RpbGUtZ2FudHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvd29ya3RpbGUtZ2FudHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==