@syncfusion/ej2-schedule 31.1.17 → 31.1.21

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 (168) hide show
  1. package/dist/ej2-schedule.min.js +2 -2
  2. package/dist/ej2-schedule.umd.min.js +2 -2
  3. package/dist/ej2-schedule.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-schedule.es2015.js +7 -3
  5. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es5.js +6 -2
  7. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  8. package/dist/global/ej2-schedule.min.js +2 -2
  9. package/dist/global/ej2-schedule.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +18 -53
  12. package/src/schedule/actions/virtual-scroll.js +5 -1
  13. package/src/schedule/event-renderer/event-base.js +1 -1
  14. package/styles/bootstrap4-lite.css +8 -0
  15. package/styles/bootstrap4.css +8 -0
  16. package/styles/recurrence-editor/bootstrap4.css +8 -0
  17. package/styles/schedule/bootstrap4.css +8 -0
  18. package/dist/ts/common/calendar-util.d.ts +0 -92
  19. package/dist/ts/common/calendar-util.ts +0 -261
  20. package/dist/ts/common/index.d.ts +0 -4
  21. package/dist/ts/common/index.ts +0 -4
  22. package/dist/ts/components.d.ts +0 -5
  23. package/dist/ts/components.ts +0 -5
  24. package/dist/ts/index.d.ts +0 -6
  25. package/dist/ts/index.ts +0 -7
  26. package/dist/ts/recurrence-editor/date-generator.d.ts +0 -76
  27. package/dist/ts/recurrence-editor/date-generator.ts +0 -1699
  28. package/dist/ts/recurrence-editor/index.d.ts +0 -6
  29. package/dist/ts/recurrence-editor/index.ts +0 -6
  30. package/dist/ts/recurrence-editor/recurrence-editor-model.d.ts +0 -112
  31. package/dist/ts/recurrence-editor/recurrence-editor.d.ts +0 -245
  32. package/dist/ts/recurrence-editor/recurrence-editor.ts +0 -1257
  33. package/dist/ts/schedule/actions/action-base.d.ts +0 -44
  34. package/dist/ts/schedule/actions/action-base.ts +0 -493
  35. package/dist/ts/schedule/actions/crud.d.ts +0 -41
  36. package/dist/ts/schedule/actions/crud.ts +0 -784
  37. package/dist/ts/schedule/actions/data.d.ts +0 -63
  38. package/dist/ts/schedule/actions/data.ts +0 -128
  39. package/dist/ts/schedule/actions/drag.d.ts +0 -75
  40. package/dist/ts/schedule/actions/drag.ts +0 -1401
  41. package/dist/ts/schedule/actions/keyboard.d.ts +0 -100
  42. package/dist/ts/schedule/actions/keyboard.ts +0 -1435
  43. package/dist/ts/schedule/actions/resize.d.ts +0 -27
  44. package/dist/ts/schedule/actions/resize.ts +0 -602
  45. package/dist/ts/schedule/actions/scroll.d.ts +0 -69
  46. package/dist/ts/schedule/actions/scroll.ts +0 -105
  47. package/dist/ts/schedule/actions/touch.d.ts +0 -32
  48. package/dist/ts/schedule/actions/touch.ts +0 -314
  49. package/dist/ts/schedule/actions/virtual-scroll.d.ts +0 -55
  50. package/dist/ts/schedule/actions/virtual-scroll.ts +0 -596
  51. package/dist/ts/schedule/actions/work-cells.d.ts +0 -14
  52. package/dist/ts/schedule/actions/work-cells.ts +0 -151
  53. package/dist/ts/schedule/base/constant.d.ts +0 -102
  54. package/dist/ts/schedule/base/constant.ts +0 -103
  55. package/dist/ts/schedule/base/css-constant.d.ts +0 -475
  56. package/dist/ts/schedule/base/css-constant.ts +0 -475
  57. package/dist/ts/schedule/base/interface.d.ts +0 -673
  58. package/dist/ts/schedule/base/interface.ts +0 -738
  59. package/dist/ts/schedule/base/resource.d.ts +0 -59
  60. package/dist/ts/schedule/base/resource.ts +0 -1091
  61. package/dist/ts/schedule/base/schedule-model.d.ts +0 -930
  62. package/dist/ts/schedule/base/schedule.d.ts +0 -1967
  63. package/dist/ts/schedule/base/schedule.ts +0 -4221
  64. package/dist/ts/schedule/base/type.d.ts +0 -134
  65. package/dist/ts/schedule/base/type.ts +0 -142
  66. package/dist/ts/schedule/base/util.d.ts +0 -266
  67. package/dist/ts/schedule/base/util.ts +0 -492
  68. package/dist/ts/schedule/event-renderer/agenda-base.d.ts +0 -15
  69. package/dist/ts/schedule/event-renderer/agenda-base.ts +0 -423
  70. package/dist/ts/schedule/event-renderer/event-base.d.ts +0 -101
  71. package/dist/ts/schedule/event-renderer/event-base.ts +0 -1501
  72. package/dist/ts/schedule/event-renderer/inline-edit.d.ts +0 -23
  73. package/dist/ts/schedule/event-renderer/inline-edit.ts +0 -287
  74. package/dist/ts/schedule/event-renderer/month.d.ts +0 -60
  75. package/dist/ts/schedule/event-renderer/month.ts +0 -760
  76. package/dist/ts/schedule/event-renderer/timeline-view.d.ts +0 -51
  77. package/dist/ts/schedule/event-renderer/timeline-view.ts +0 -606
  78. package/dist/ts/schedule/event-renderer/vertical-view.d.ts +0 -57
  79. package/dist/ts/schedule/event-renderer/vertical-view.ts +0 -898
  80. package/dist/ts/schedule/event-renderer/year.d.ts +0 -27
  81. package/dist/ts/schedule/event-renderer/year.ts +0 -623
  82. package/dist/ts/schedule/exports/calendar-export.d.ts +0 -16
  83. package/dist/ts/schedule/exports/calendar-export.ts +0 -160
  84. package/dist/ts/schedule/exports/calendar-import.d.ts +0 -18
  85. package/dist/ts/schedule/exports/calendar-import.ts +0 -277
  86. package/dist/ts/schedule/exports/excel-export.d.ts +0 -14
  87. package/dist/ts/schedule/exports/excel-export.ts +0 -89
  88. package/dist/ts/schedule/exports/index.d.ts +0 -7
  89. package/dist/ts/schedule/exports/index.ts +0 -7
  90. package/dist/ts/schedule/exports/print.d.ts +0 -20
  91. package/dist/ts/schedule/exports/print.ts +0 -233
  92. package/dist/ts/schedule/index.d.ts +0 -26
  93. package/dist/ts/schedule/index.ts +0 -26
  94. package/dist/ts/schedule/models/event-settings-model.d.ts +0 -165
  95. package/dist/ts/schedule/models/event-settings.d.ts +0 -149
  96. package/dist/ts/schedule/models/event-settings.ts +0 -187
  97. package/dist/ts/schedule/models/field-options-model.d.ts +0 -37
  98. package/dist/ts/schedule/models/field-options.d.ts +0 -31
  99. package/dist/ts/schedule/models/field-options.ts +0 -41
  100. package/dist/ts/schedule/models/fields-model.d.ts +0 -129
  101. package/dist/ts/schedule/models/fields.d.ts +0 -117
  102. package/dist/ts/schedule/models/fields.ts +0 -149
  103. package/dist/ts/schedule/models/group-model.d.ts +0 -69
  104. package/dist/ts/schedule/models/group.d.ts +0 -60
  105. package/dist/ts/schedule/models/group.ts +0 -75
  106. package/dist/ts/schedule/models/header-rows-model.d.ts +0 -33
  107. package/dist/ts/schedule/models/header-rows.d.ts +0 -30
  108. package/dist/ts/schedule/models/header-rows.ts +0 -35
  109. package/dist/ts/schedule/models/models.d.ts +0 -14
  110. package/dist/ts/schedule/models/models.ts +0 -15
  111. package/dist/ts/schedule/models/quick-info-templates-model.d.ts +0 -52
  112. package/dist/ts/schedule/models/quick-info-templates.d.ts +0 -47
  113. package/dist/ts/schedule/models/quick-info-templates.ts +0 -56
  114. package/dist/ts/schedule/models/resources-model.d.ts +0 -122
  115. package/dist/ts/schedule/models/resources.d.ts +0 -106
  116. package/dist/ts/schedule/models/resources.ts +0 -138
  117. package/dist/ts/schedule/models/time-scale-model.d.ts +0 -57
  118. package/dist/ts/schedule/models/time-scale.d.ts +0 -50
  119. package/dist/ts/schedule/models/time-scale.ts +0 -61
  120. package/dist/ts/schedule/models/toolbar-model.d.ts +0 -196
  121. package/dist/ts/schedule/models/toolbar.d.ts +0 -176
  122. package/dist/ts/schedule/models/toolbar.ts +0 -196
  123. package/dist/ts/schedule/models/views-model.d.ts +0 -370
  124. package/dist/ts/schedule/models/views.d.ts +0 -335
  125. package/dist/ts/schedule/models/views.ts +0 -408
  126. package/dist/ts/schedule/models/work-hours-model.d.ts +0 -29
  127. package/dist/ts/schedule/models/work-hours.d.ts +0 -24
  128. package/dist/ts/schedule/models/work-hours.ts +0 -31
  129. package/dist/ts/schedule/popups/event-tooltip.d.ts +0 -16
  130. package/dist/ts/schedule/popups/event-tooltip.ts +0 -203
  131. package/dist/ts/schedule/popups/event-window.d.ts +0 -118
  132. package/dist/ts/schedule/popups/event-window.ts +0 -2055
  133. package/dist/ts/schedule/popups/form-validator.d.ts +0 -16
  134. package/dist/ts/schedule/popups/form-validator.ts +0 -110
  135. package/dist/ts/schedule/popups/quick-popups.d.ts +0 -78
  136. package/dist/ts/schedule/popups/quick-popups.ts +0 -1470
  137. package/dist/ts/schedule/renderer/agenda.d.ts +0 -45
  138. package/dist/ts/schedule/renderer/agenda.ts +0 -497
  139. package/dist/ts/schedule/renderer/day.d.ts +0 -20
  140. package/dist/ts/schedule/renderer/day.ts +0 -28
  141. package/dist/ts/schedule/renderer/header-renderer.d.ts +0 -48
  142. package/dist/ts/schedule/renderer/header-renderer.ts +0 -736
  143. package/dist/ts/schedule/renderer/month-agenda.d.ts +0 -29
  144. package/dist/ts/schedule/renderer/month-agenda.ts +0 -184
  145. package/dist/ts/schedule/renderer/month.d.ts +0 -61
  146. package/dist/ts/schedule/renderer/month.ts +0 -766
  147. package/dist/ts/schedule/renderer/renderer.d.ts +0 -13
  148. package/dist/ts/schedule/renderer/renderer.ts +0 -165
  149. package/dist/ts/schedule/renderer/timeline-header-row.d.ts +0 -15
  150. package/dist/ts/schedule/renderer/timeline-header-row.ts +0 -132
  151. package/dist/ts/schedule/renderer/timeline-month.d.ts +0 -29
  152. package/dist/ts/schedule/renderer/timeline-month.ts +0 -184
  153. package/dist/ts/schedule/renderer/timeline-view.d.ts +0 -31
  154. package/dist/ts/schedule/renderer/timeline-view.ts +0 -308
  155. package/dist/ts/schedule/renderer/timeline-year.d.ts +0 -22
  156. package/dist/ts/schedule/renderer/timeline-year.ts +0 -450
  157. package/dist/ts/schedule/renderer/vertical-view.d.ts +0 -63
  158. package/dist/ts/schedule/renderer/vertical-view.ts +0 -911
  159. package/dist/ts/schedule/renderer/view-base.d.ts +0 -83
  160. package/dist/ts/schedule/renderer/view-base.ts +0 -709
  161. package/dist/ts/schedule/renderer/week.d.ts +0 -22
  162. package/dist/ts/schedule/renderer/week.ts +0 -35
  163. package/dist/ts/schedule/renderer/work-week.d.ts +0 -22
  164. package/dist/ts/schedule/renderer/work-week.ts +0 -36
  165. package/dist/ts/schedule/renderer/year.d.ts +0 -46
  166. package/dist/ts/schedule/renderer/year.ts +0 -470
  167. package/dist/ts/schedule/timezone/timezone.d.ts +0 -16
  168. package/dist/ts/schedule/timezone/timezone.ts +0 -313
@@ -1,13 +0,0 @@
1
- import { Schedule } from '../base/schedule';
2
- import { View } from '../base/type';
3
- /**
4
- * Schedule DOM rendering
5
- */
6
- export declare class Render {
7
- parent: Schedule;
8
- constructor(parent: Schedule);
9
- render(viewName: View, isDataRefresh?: boolean): void;
10
- private initializeLayout;
11
- updateHeader(): void;
12
- updateLabelText(view: string): void;
13
- }
@@ -1,165 +0,0 @@
1
- import { isNullOrUndefined, addClass, removeClass } from '@syncfusion/ej2-base';
2
- import { Schedule } from '../base/schedule';
3
- import { View } from '../base/type';
4
- import { VirtualScroll } from '../actions/virtual-scroll';
5
- import { EventTooltip } from '../popups/event-tooltip';
6
- import * as cls from '../base/css-constant';
7
-
8
- /**
9
- * Schedule DOM rendering
10
- */
11
- export class Render {
12
- public parent: Schedule;
13
-
14
- constructor(parent: Schedule) {
15
- this.parent = parent;
16
- }
17
-
18
- public render(viewName: View, isDataRefresh: boolean = true): void {
19
- this.initializeLayout(viewName);
20
- if (this.parent.activeView && isDataRefresh) {
21
- this.parent.crudModule.refreshDataManager();
22
- }
23
- }
24
-
25
- private initializeLayout(viewName: View): void {
26
- if (this.parent.activeView) {
27
- let templates: string[] = [
28
- 'cellTemplate', 'tooltipTemplate', 'majorSlotTemplate', 'minorSlotTemplate',
29
- 'headerTooltipTemplate', 'dateHeaderTemplate', 'dayHeaderTemplate', 'monthHeaderTemplate',
30
- 'headerIndentTemplate', 'resourceHeaderTemplate', 'cellHeaderTemplate', 'dateRangeTemplate'
31
- ];
32
- if (this.parent.activeEventTemplates.length > 0) {
33
- templates = templates.concat(this.parent.activeEventTemplates);
34
- this.parent.activeEventTemplates = [];
35
- } else {
36
- templates.push('eventTemplate');
37
- }
38
- this.parent.resetTemplates(templates);
39
- this.parent.activeView.removeEventListener();
40
- this.parent.activeView.destroy();
41
- }
42
- switch (viewName) {
43
- case 'Day':
44
- this.parent.activeView = this.parent.dayModule;
45
- break;
46
- case 'Week':
47
- this.parent.activeView = this.parent.weekModule;
48
- break;
49
- case 'WorkWeek':
50
- this.parent.activeView = this.parent.workWeekModule;
51
- break;
52
- case 'Month':
53
- this.parent.activeView = this.parent.monthModule;
54
- break;
55
- case 'Year':
56
- this.parent.activeView = this.parent.yearModule;
57
- break;
58
- case 'Agenda':
59
- this.parent.activeView = this.parent.agendaModule;
60
- break;
61
- case 'MonthAgenda':
62
- this.parent.activeView = this.parent.monthAgendaModule;
63
- break;
64
- case 'TimelineDay':
65
- this.parent.activeView = this.parent.timelineViewsModule;
66
- if (!isNullOrUndefined(this.parent.activeView)) {
67
- this.parent.activeView.viewClass = 'e-timeline-day-view';
68
- }
69
- break;
70
- case 'TimelineWorkWeek':
71
- this.parent.activeView = this.parent.timelineViewsModule;
72
- if (!isNullOrUndefined(this.parent.activeView)) {
73
- this.parent.activeView.viewClass = 'e-timeline-work-week-view';
74
- }
75
- break;
76
- case 'TimelineWeek':
77
- this.parent.activeView = this.parent.timelineViewsModule;
78
- if (!isNullOrUndefined(this.parent.activeView)) {
79
- this.parent.activeView.viewClass = 'e-timeline-week-view';
80
- }
81
- break;
82
- case 'TimelineMonth':
83
- this.parent.activeView = this.parent.timelineMonthModule;
84
- break;
85
- case 'TimelineYear':
86
- this.parent.activeView = this.parent.timelineYearModule;
87
- break;
88
- }
89
- if (isNullOrUndefined(this.parent.activeView)) {
90
- const firstView: View = this.parent.viewCollections[0].option;
91
- if (firstView) {
92
- this.parent.setProperties({ currentView: firstView }, true);
93
- if (this.parent.headerModule) {
94
- this.parent.headerModule.updateActiveView();
95
- this.parent.headerModule.setCalendarView();
96
- }
97
- console.warn('[WARNING] :: Module "' + viewName + '" is not available in Schedule component!' +
98
- ' You either misspelled the module name or forgot to load it.');
99
- return this.initializeLayout(firstView);
100
- }
101
- throw Error('Inject required modules');
102
- }
103
- this.parent.uiStateValues.scheduleHeight = this.parent.element.offsetHeight;
104
- this.parent.activeView.viewIndex = this.parent.viewIndex;
105
- this.updateLabelText(viewName);
106
- this.parent.activeView.addEventListener();
107
- this.parent.activeView.getRenderDates();
108
- this.parent.uiStateValues.isGroupAdaptive = this.parent.activeViewOptions.group.resources.length > 0 &&
109
- (this.parent.enableAdaptiveUI && !this.parent.isAdaptive ||
110
- this.parent.isAdaptive && this.parent.activeViewOptions.group.enableCompactView);
111
- if (this.parent.virtualScrollModule) {
112
- this.parent.virtualScrollModule.destroy();
113
- this.parent.virtualScrollModule = null;
114
- }
115
- if ((['Agenda', 'MonthAgenda', 'Year', 'TimelineYear'].indexOf(this.parent.currentView) === -1 ||
116
- (this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.orientation === 'Vertical'))
117
- && this.parent.activeViewOptions.allowVirtualScrolling
118
- && this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
119
- this.parent.virtualScrollModule = new VirtualScroll(this.parent);
120
- if (this.parent.activeView.isTimelineView()) {
121
- this.parent.uiStateValues.top = 0;
122
- } else {
123
- this.parent.virtualScrollModule.isHorizontalScroll = true;
124
- this.parent.uiStateValues.left = 0;
125
- }
126
- }
127
- this.updateHeader();
128
- this.parent.currentTimezoneDate = this.parent.getCurrentTime();
129
- this.parent.activeView.renderLayout(cls.CURRENT_PANEL_CLASS);
130
- this.parent.renderTemplates();
131
- if (this.parent.eventTooltip) {
132
- this.parent.eventTooltip.destroy();
133
- this.parent.eventTooltip = null;
134
- }
135
- if (this.parent.eventSettings.enableTooltip || (this.parent.activeViewOptions.group.resources.length > 0
136
- && this.parent.activeViewOptions.group.headerTooltipTemplate)) {
137
- this.parent.eventTooltip = new EventTooltip(this.parent);
138
- }
139
- }
140
-
141
- public updateHeader(): void {
142
- if (this.parent.headerModule) {
143
- this.parent.headerModule.setDayOfWeek(this.parent.activeViewOptions.firstDayOfWeek);
144
- if (this.parent.activeViewOptions.readonly) {
145
- addClass([this.parent.element], cls.READ_ONLY);
146
- } else if (this.parent.element.classList.contains(cls.READ_ONLY)) {
147
- removeClass([this.parent.element], cls.READ_ONLY);
148
- }
149
- this.parent.headerModule.updateDateRange();
150
- this.parent.headerModule.updateHeaderItems('remove');
151
- }
152
- }
153
-
154
- public updateLabelText(view: string): void {
155
- this.parent.element.setAttribute('role', 'application');
156
- this.parent.element.removeAttribute('aria-labelledby');
157
- this.parent.element.removeAttribute('aria-label');
158
- if (view === 'Year') {
159
- this.parent.element.setAttribute('aria-label', this.parent.activeView.getLabelText(view));
160
- } else {
161
- this.parent.element.setAttribute('aria-labelledby', this.parent.element.id + '_table' );
162
- }
163
- }
164
-
165
- }
@@ -1,15 +0,0 @@
1
- import { Schedule } from '../base/schedule';
2
- import { TdData } from '../base/interface';
3
- /**
4
- * timeline header rows
5
- */
6
- export declare class TimelineHeaderRow {
7
- parent: Schedule;
8
- renderDates: Date[];
9
- constructor(parent: Schedule, renderDates: Date[]);
10
- private groupByYear;
11
- private groupByMonth;
12
- private groupByWeek;
13
- private generateSlots;
14
- generateColumnLevels(dateSlots: TdData[], hourSlots: TdData[]): TdData[][];
15
- }
@@ -1,132 +0,0 @@
1
- import { createElement } from '@syncfusion/ej2-base';
2
- import { Schedule } from '../base/schedule';
3
- import { MS_PER_DAY, capitalizeFirstWord } from '../base/util';
4
- import { TdData, CellTemplateArgs, CallbackFunction } from '../base/interface';
5
- import { HeaderRowsModel } from '../models/header-rows-model';
6
-
7
- /**
8
- * timeline header rows
9
- */
10
- export class TimelineHeaderRow {
11
- public parent: Schedule;
12
- public renderDates: Date[];
13
-
14
- constructor(parent: Schedule, renderDates: Date[]) {
15
- this.parent = parent;
16
- this.renderDates = renderDates;
17
- }
18
-
19
- private groupByYear(dates: Date[]): { [key: number]: Date[] } {
20
- const result: { [key: number]: Date[] } = {};
21
- for (const d of dates) {
22
- const key: number = d.getFullYear();
23
- result[parseInt(key.toString(), 10)] = result[parseInt(key.toString(), 10)] || [];
24
- result[parseInt(key.toString(), 10)].push(d);
25
- }
26
- return result;
27
- }
28
-
29
- private groupByMonth(dates: Date[]): { [key: number]: Date[] } {
30
- const result: { [key: number]: Date[] } = {};
31
- for (const d of dates) {
32
- const key: number = (d.getFullYear() - 1970) * 12 + d.getMonth();
33
- result[parseInt(key.toString(), 10)] = result[parseInt(key.toString(), 10)] || [];
34
- result[parseInt(key.toString(), 10)].push(d);
35
- }
36
- return result;
37
- }
38
-
39
- private groupByWeek(dates: Date[]): { [key: number]: Date[] } {
40
- const result: { [key: number]: Date[] } = {};
41
- for (const d of dates) {
42
- const jsDate: number = +new Date(1970, 0, 1);
43
- const tzOffsetDiff: number = d.getTimezoneOffset() - new Date(1970, 0, 1).getTimezoneOffset();
44
- let key: number = Math.ceil(((((+d - jsDate) - (tzOffsetDiff * 60 * 1000)) / MS_PER_DAY) + new Date(jsDate).getDay() + 1) / 7);
45
- if (this.parent.activeViewOptions.firstDayOfWeek && this.parent.activeViewOptions.firstDayOfWeek > new Date(+d).getDay()) {
46
- key = key - 1;
47
- }
48
- result[parseInt(key.toString(), 10)] = result[parseInt(key.toString(), 10)] || [];
49
- result[parseInt(key.toString(), 10)].push(d);
50
- }
51
- return result;
52
- }
53
-
54
- private generateSlots(data: { [key: string]: Date[] }, colspan: number, row: HeaderRowsModel, cls: string, type: string): TdData[] {
55
- const dateParser: CallbackFunction = (date: Date, format: string): string =>
56
- this.parent.globalize.formatDate(date, { format: format, calendar: this.parent.getCalendarMode() });
57
- const tdDatas: TdData[] = [];
58
- const keys: string[] = Object.keys(data);
59
- for (let i: number = 0; i < keys.length; i++) {
60
- const dates: Date[] = data[keys[parseInt(i.toString(), 10)]];
61
- let htmlCol: HTMLElement[];
62
- if (row.template) {
63
- const args: CellTemplateArgs = { date: dates[0], type: type };
64
- const templateId: string = this.parent.element.id + '_headerRowTemplate';
65
- htmlCol = [].slice.call(this.parent.templateParser(row.template)(args, this.parent, 'template', templateId, false));
66
- } else {
67
- let viewTemplate: string;
68
- switch (row.option) {
69
- case 'Year':
70
- viewTemplate = `<span class="e-header-year">${dateParser(dates[0], 'y')}</span>`;
71
- break;
72
- case 'Month':
73
- viewTemplate = `<span class="e-header-month">${capitalizeFirstWord(dateParser(dates[0], 'MMMM'), 'single')}</span>`;
74
- break;
75
- case 'Week':
76
- viewTemplate = `<span class="e-header-week">${this.parent.getWeekNumberContent(dates)}</span>`;
77
- }
78
- const headerWrapper: HTMLElement = createElement('div', { innerHTML: viewTemplate });
79
- htmlCol = [].slice.call(headerWrapper.childNodes);
80
- }
81
- tdDatas.push({ date: dates[0], type: type, className: [cls], colSpan: dates.length * colspan, template: htmlCol });
82
- }
83
- return tdDatas;
84
- }
85
-
86
- public generateColumnLevels(dateSlots: TdData[], hourSlots: TdData[]): TdData[][] {
87
- const levels: TdData[][] = [];
88
- const rows: HeaderRowsModel[] = this.parent.activeViewOptions.headerRows;
89
- let lastLevelColspan: number = 1;
90
- if (rows[rows.length - 1].option === 'Hour' && hourSlots.length > 0) {
91
- lastLevelColspan = hourSlots.length / dateSlots.length;
92
- }
93
- let tdDatas: TdData[] = [];
94
- let byYear: Record<number, Date[]>;
95
- let byMonth: Record<number, Date[]>;
96
- let byWeek: Record<number, Date[]>;
97
- for (const row of rows) {
98
- switch (row.option) {
99
- case 'Year':
100
- byYear = this.groupByYear(this.renderDates);
101
- tdDatas = this.generateSlots(byYear, lastLevelColspan, row, 'e-header-year-cell', 'yearHeader');
102
- levels.push(tdDatas);
103
- break;
104
- case 'Month':
105
- byMonth = this.groupByMonth(this.renderDates);
106
- tdDatas = this.generateSlots(byMonth, lastLevelColspan, row, 'e-header-month-cell', 'monthHeader');
107
- levels.push(tdDatas);
108
- break;
109
- case 'Week':
110
- byWeek = this.groupByWeek(this.renderDates);
111
- tdDatas = this.generateSlots(byWeek, lastLevelColspan, row, 'e-header-week-cell', 'weekHeader');
112
- levels.push(tdDatas);
113
- break;
114
- case 'Date':
115
- tdDatas = dateSlots;
116
- tdDatas = tdDatas.map((value: TdData) => {
117
- value.colSpan = lastLevelColspan;
118
- return value;
119
- });
120
- levels.push(tdDatas);
121
- break;
122
- case 'Hour':
123
- if (hourSlots.length > 0) {
124
- levels.push(hourSlots);
125
- }
126
- break;
127
- }
128
- }
129
- return levels;
130
- }
131
-
132
- }
@@ -1,29 +0,0 @@
1
- import { TdData } from '../base/interface';
2
- import { Schedule } from '../base/schedule';
3
- import { Month } from './month';
4
- /**
5
- * timeline month view
6
- */
7
- export declare class TimelineMonth extends Month {
8
- viewClass: string;
9
- isInverseTableSelect: boolean;
10
- private appointment;
11
- constructor(parent: Schedule);
12
- protected getModuleName(): string;
13
- onDataReady(): void;
14
- getLeftPanelElement(): HTMLElement;
15
- scrollTopPanel(target: HTMLElement): void;
16
- setContentHeight(content: HTMLElement, leftPanelElement: HTMLElement, height: number): void;
17
- getDateSlots(renderDates: Date[], workDays: number[]): TdData[];
18
- renderLeftIndent(tr: Element): void;
19
- renderContent(): void;
20
- private getRowCount;
21
- getContentSlots(): TdData[][];
22
- updateClassList(data: TdData): void;
23
- unWireEvents(): void;
24
- getMonthStart(currentDate: Date): Date;
25
- getMonthEnd(currentDate: Date): Date;
26
- generateColumnLevels(): TdData[][];
27
- getAdjustedDate(startTime: Date): Date;
28
- destroy(): void;
29
- }
@@ -1,184 +0,0 @@
1
- import { EventHandler, createElement, formatUnit } from '@syncfusion/ej2-base';
2
- import { TdData } from '../base/interface';
3
- import { Schedule } from '../base/schedule';
4
- import { Month } from './month';
5
- import { TimelineEvent } from '../event-renderer/timeline-view';
6
- import { TimelineHeaderRow } from './timeline-header-row';
7
- import * as util from '../base/util';
8
- import * as event from '../base/constant';
9
- import * as cls from '../base/css-constant';
10
-
11
- /**
12
- * timeline month view
13
- */
14
- export class TimelineMonth extends Month {
15
- public viewClass: string = 'e-timeline-month-view';
16
- public isInverseTableSelect: boolean = true;
17
- private appointment: TimelineEvent = null;
18
-
19
- constructor(parent: Schedule) {
20
- super(parent);
21
- }
22
-
23
- protected getModuleName(): string {
24
- return 'timelineMonth';
25
- }
26
-
27
- public onDataReady(): void {
28
- this.appointment = new TimelineEvent(this.parent, 'day');
29
- this.appointment.renderAppointments();
30
- this.parent.notify(event.eventsLoaded, {});
31
- }
32
-
33
- public getLeftPanelElement(): HTMLElement {
34
- return this.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS) as HTMLElement;
35
- }
36
-
37
- public scrollTopPanel(target: HTMLElement): void {
38
- super.scrollTopPanel(target);
39
- this.scrollHeaderLabels(target);
40
- }
41
-
42
- public setContentHeight(content: HTMLElement, leftPanelElement: HTMLElement, height: number): void {
43
- if (leftPanelElement) {
44
- leftPanelElement.style.height = formatUnit(height - this.getScrollXIndent(content));
45
- }
46
- content.style.height = formatUnit(height);
47
- }
48
-
49
- public getDateSlots(renderDates: Date[], workDays: number[]): TdData[] {
50
- const dateSlots: TdData[] = [];
51
- for (const col of renderDates) {
52
- const classList: string[] = [cls.HEADER_CELLS_CLASS];
53
- if (this.isCurrentDate(col)) {
54
- classList.push(cls.CURRENT_DAY_CLASS);
55
- }
56
- dateSlots.push({ date: col, type: 'dateHeader', className: classList, colSpan: 1, workDays: workDays });
57
- }
58
- return dateSlots;
59
- }
60
-
61
- public renderLeftIndent(tr: Element): void {
62
- if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
63
- this.parent.resourceBase.renderResourceHeaderIndent(tr);
64
- }
65
- }
66
-
67
- public renderContent(): void {
68
- const contentTr: Element = createElement('tr');
69
- if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
70
- const resTd: Element = createElement('td');
71
- resTd.appendChild(this.parent.resourceBase.createResourceColumn());
72
- contentTr.appendChild(resTd);
73
- }
74
- const contentTd: Element = createElement('td');
75
- this.element.querySelector('tbody').appendChild(contentTr);
76
- const wrap: HTMLElement = createElement('div', { className: cls.CONTENT_WRAP_CLASS });
77
- wrap.appendChild(this.renderContentArea());
78
- wrap.appendChild(this.createEventTable(this.getRowCount()));
79
- this.collapseRows(wrap);
80
- EventHandler.add(wrap, 'scroll', this.onContentScroll, this);
81
- contentTd.appendChild(wrap);
82
- if (this.parent.virtualScrollModule) {
83
- this.parent.virtualScrollModule.renderVirtualTrack(wrap);
84
- }
85
- contentTr.appendChild(contentTd);
86
- }
87
-
88
- private getRowCount(): number {
89
- if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
90
- return this.parent.resourceBase.renderedResources.length;
91
- }
92
- return 1;
93
- }
94
-
95
- public getContentSlots(): TdData[][] {
96
- const slotDatas: TdData[][] = [];
97
- for (let row: number = 0; row < this.getRowCount(); row++) {
98
- for (const data of this.colLevels[this.colLevels.length - 1]) {
99
- data.className = [cls.WORK_CELLS_CLASS];
100
- if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
101
- const resLevel: TdData = this.parent.resourceBase.renderedResources[parseInt(row.toString(), 10)];
102
- data.workDays = (resLevel.resourceData[resLevel.resource.workDaysField] as number[]) || this.parent.workDays;
103
- data.className = data.className.concat(resLevel.className);
104
- data.groupIndex = resLevel.groupIndex;
105
- data.groupOrder = resLevel.groupOrder;
106
- }
107
- const slotData: TdData = {
108
- date: new Date(+data.date), colSpan: data.colSpan, groupIndex: data.groupIndex, workDays: data.workDays,
109
- type: 'monthCells', className: data.className
110
- };
111
- if (!slotDatas[parseInt(row.toString(), 10)]) {
112
- slotDatas[parseInt(row.toString(), 10)] = [];
113
- }
114
- slotDatas[parseInt(row.toString(), 10)].push(slotData);
115
- }
116
- }
117
- return slotDatas;
118
- }
119
-
120
- public updateClassList(data: TdData): void {
121
- if (!this.parent.isMinMaxDate(data.date)) {
122
- data.className.push(cls.DISABLE_DATES);
123
- }
124
- }
125
-
126
- public unWireEvents(): void {
127
- EventHandler.remove(this.getContentAreaElement(), 'scroll', this.onContentScroll);
128
- }
129
-
130
- public getMonthStart(currentDate: Date): Date {
131
- const monthStart: Date = this.parent.calendarUtil.firstDateOfMonth(util.resetTime(currentDate));
132
- return new Date(monthStart.getFullYear(), monthStart.getMonth(), monthStart.getDate());
133
- }
134
-
135
- public getMonthEnd(currentDate: Date): Date {
136
- const monthStart: Date = this.parent.calendarUtil.firstDateOfMonth(util.resetTime(currentDate));
137
- return this.parent.calendarUtil.lastDateOfMonth(util.addMonths(new Date(+monthStart), this.parent.activeViewOptions.interval - 1));
138
- }
139
-
140
- public generateColumnLevels(): TdData[][] {
141
- let colLevels: TdData[][] = [];
142
- const level: TdData[] = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);
143
- colLevels.push(level);
144
- if (this.parent.activeViewOptions.group.resources.length > 0) {
145
- this.parent.resourceBase.generateResourceLevels(level, !this.parent.uiStateValues.isGroupAdaptive);
146
- }
147
- const hourSlots: TdData[] = [];
148
- if (this.parent.activeViewOptions.headerRows.length > 0) {
149
- const renderGn: TimelineHeaderRow = new TimelineHeaderRow(this.parent, this.renderDates);
150
- colLevels = renderGn.generateColumnLevels(level, hourSlots);
151
- }
152
- this.colLevels = colLevels;
153
- return colLevels;
154
- }
155
-
156
- public getAdjustedDate(startTime: Date): Date {
157
- const timeSlots: TdData[] = this.colLevels[this.colLevels.length - 1];
158
- for (let i: number = 0; i < timeSlots.length; i++) {
159
- if (timeSlots[parseInt(i.toString(), 10)].date.getTime() > startTime.getTime()) {
160
- return timeSlots[i - 1].date;
161
- }
162
- }
163
- return null;
164
- }
165
-
166
- public destroy(): void {
167
- if (!this.parent || this.parent && this.parent.isDestroyed) {
168
- this.parent = null;
169
- return;
170
- }
171
- if (this.element) {
172
- const contentScrollableEle: Element = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);
173
- if (contentScrollableEle) {
174
- EventHandler.remove(contentScrollableEle, 'scroll', this.onContentScroll);
175
- }
176
- }
177
- if (this.appointment) {
178
- this.appointment.destroy();
179
- this.appointment = null;
180
- }
181
- super.destroy();
182
- }
183
-
184
- }
@@ -1,31 +0,0 @@
1
- import { Schedule } from '../base/schedule';
2
- import { VerticalView } from './vertical-view';
3
- import { TdData, TimeSlotData } from '../base/interface';
4
- /**
5
- * timeline views
6
- */
7
- export declare class TimelineViews extends VerticalView {
8
- private timelineAppointment;
9
- constructor(parent: Schedule);
10
- protected getModuleName(): string;
11
- getLeftPanelElement(): HTMLElement;
12
- scrollTopPanel(target: HTMLElement): void;
13
- scrollToWorkHour(): void;
14
- scrollToHour(hour: string, scrollDate: Date): void;
15
- generateColumnLevels(): TdData[][];
16
- private generateTimeSlots;
17
- changeCurrentTimePosition(): void;
18
- private getLeftFromDateTime;
19
- renderHeader(): void;
20
- createAllDayRow(table: Element, tdData: TdData[]): void;
21
- getCurrentTimeIndicatorIndex(): number[];
22
- renderContent(): void;
23
- private getRowCount;
24
- private getResourceTdData;
25
- renderContentTable(table: Element): void;
26
- getContentRows(): Element[];
27
- getContentTdClass(r: TimeSlotData): string[];
28
- renderEvents(): void;
29
- getAdjustedDate(date: Date): Date;
30
- destroy(): void;
31
- }