@syncfusion/ej2-schedule 31.1.17 → 31.1.20

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 (167) 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 +1 -1
  5. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es5.js +1 -1
  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 +17 -52
  12. package/src/schedule/event-renderer/event-base.js +1 -1
  13. package/styles/bootstrap4-lite.css +8 -0
  14. package/styles/bootstrap4.css +8 -0
  15. package/styles/recurrence-editor/bootstrap4.css +8 -0
  16. package/styles/schedule/bootstrap4.css +8 -0
  17. package/dist/ts/common/calendar-util.d.ts +0 -92
  18. package/dist/ts/common/calendar-util.ts +0 -261
  19. package/dist/ts/common/index.d.ts +0 -4
  20. package/dist/ts/common/index.ts +0 -4
  21. package/dist/ts/components.d.ts +0 -5
  22. package/dist/ts/components.ts +0 -5
  23. package/dist/ts/index.d.ts +0 -6
  24. package/dist/ts/index.ts +0 -7
  25. package/dist/ts/recurrence-editor/date-generator.d.ts +0 -76
  26. package/dist/ts/recurrence-editor/date-generator.ts +0 -1699
  27. package/dist/ts/recurrence-editor/index.d.ts +0 -6
  28. package/dist/ts/recurrence-editor/index.ts +0 -6
  29. package/dist/ts/recurrence-editor/recurrence-editor-model.d.ts +0 -112
  30. package/dist/ts/recurrence-editor/recurrence-editor.d.ts +0 -245
  31. package/dist/ts/recurrence-editor/recurrence-editor.ts +0 -1257
  32. package/dist/ts/schedule/actions/action-base.d.ts +0 -44
  33. package/dist/ts/schedule/actions/action-base.ts +0 -493
  34. package/dist/ts/schedule/actions/crud.d.ts +0 -41
  35. package/dist/ts/schedule/actions/crud.ts +0 -784
  36. package/dist/ts/schedule/actions/data.d.ts +0 -63
  37. package/dist/ts/schedule/actions/data.ts +0 -128
  38. package/dist/ts/schedule/actions/drag.d.ts +0 -75
  39. package/dist/ts/schedule/actions/drag.ts +0 -1401
  40. package/dist/ts/schedule/actions/keyboard.d.ts +0 -100
  41. package/dist/ts/schedule/actions/keyboard.ts +0 -1435
  42. package/dist/ts/schedule/actions/resize.d.ts +0 -27
  43. package/dist/ts/schedule/actions/resize.ts +0 -602
  44. package/dist/ts/schedule/actions/scroll.d.ts +0 -69
  45. package/dist/ts/schedule/actions/scroll.ts +0 -105
  46. package/dist/ts/schedule/actions/touch.d.ts +0 -32
  47. package/dist/ts/schedule/actions/touch.ts +0 -314
  48. package/dist/ts/schedule/actions/virtual-scroll.d.ts +0 -55
  49. package/dist/ts/schedule/actions/virtual-scroll.ts +0 -596
  50. package/dist/ts/schedule/actions/work-cells.d.ts +0 -14
  51. package/dist/ts/schedule/actions/work-cells.ts +0 -151
  52. package/dist/ts/schedule/base/constant.d.ts +0 -102
  53. package/dist/ts/schedule/base/constant.ts +0 -103
  54. package/dist/ts/schedule/base/css-constant.d.ts +0 -475
  55. package/dist/ts/schedule/base/css-constant.ts +0 -475
  56. package/dist/ts/schedule/base/interface.d.ts +0 -673
  57. package/dist/ts/schedule/base/interface.ts +0 -738
  58. package/dist/ts/schedule/base/resource.d.ts +0 -59
  59. package/dist/ts/schedule/base/resource.ts +0 -1091
  60. package/dist/ts/schedule/base/schedule-model.d.ts +0 -930
  61. package/dist/ts/schedule/base/schedule.d.ts +0 -1967
  62. package/dist/ts/schedule/base/schedule.ts +0 -4221
  63. package/dist/ts/schedule/base/type.d.ts +0 -134
  64. package/dist/ts/schedule/base/type.ts +0 -142
  65. package/dist/ts/schedule/base/util.d.ts +0 -266
  66. package/dist/ts/schedule/base/util.ts +0 -492
  67. package/dist/ts/schedule/event-renderer/agenda-base.d.ts +0 -15
  68. package/dist/ts/schedule/event-renderer/agenda-base.ts +0 -423
  69. package/dist/ts/schedule/event-renderer/event-base.d.ts +0 -101
  70. package/dist/ts/schedule/event-renderer/event-base.ts +0 -1501
  71. package/dist/ts/schedule/event-renderer/inline-edit.d.ts +0 -23
  72. package/dist/ts/schedule/event-renderer/inline-edit.ts +0 -287
  73. package/dist/ts/schedule/event-renderer/month.d.ts +0 -60
  74. package/dist/ts/schedule/event-renderer/month.ts +0 -760
  75. package/dist/ts/schedule/event-renderer/timeline-view.d.ts +0 -51
  76. package/dist/ts/schedule/event-renderer/timeline-view.ts +0 -606
  77. package/dist/ts/schedule/event-renderer/vertical-view.d.ts +0 -57
  78. package/dist/ts/schedule/event-renderer/vertical-view.ts +0 -898
  79. package/dist/ts/schedule/event-renderer/year.d.ts +0 -27
  80. package/dist/ts/schedule/event-renderer/year.ts +0 -623
  81. package/dist/ts/schedule/exports/calendar-export.d.ts +0 -16
  82. package/dist/ts/schedule/exports/calendar-export.ts +0 -160
  83. package/dist/ts/schedule/exports/calendar-import.d.ts +0 -18
  84. package/dist/ts/schedule/exports/calendar-import.ts +0 -277
  85. package/dist/ts/schedule/exports/excel-export.d.ts +0 -14
  86. package/dist/ts/schedule/exports/excel-export.ts +0 -89
  87. package/dist/ts/schedule/exports/index.d.ts +0 -7
  88. package/dist/ts/schedule/exports/index.ts +0 -7
  89. package/dist/ts/schedule/exports/print.d.ts +0 -20
  90. package/dist/ts/schedule/exports/print.ts +0 -233
  91. package/dist/ts/schedule/index.d.ts +0 -26
  92. package/dist/ts/schedule/index.ts +0 -26
  93. package/dist/ts/schedule/models/event-settings-model.d.ts +0 -165
  94. package/dist/ts/schedule/models/event-settings.d.ts +0 -149
  95. package/dist/ts/schedule/models/event-settings.ts +0 -187
  96. package/dist/ts/schedule/models/field-options-model.d.ts +0 -37
  97. package/dist/ts/schedule/models/field-options.d.ts +0 -31
  98. package/dist/ts/schedule/models/field-options.ts +0 -41
  99. package/dist/ts/schedule/models/fields-model.d.ts +0 -129
  100. package/dist/ts/schedule/models/fields.d.ts +0 -117
  101. package/dist/ts/schedule/models/fields.ts +0 -149
  102. package/dist/ts/schedule/models/group-model.d.ts +0 -69
  103. package/dist/ts/schedule/models/group.d.ts +0 -60
  104. package/dist/ts/schedule/models/group.ts +0 -75
  105. package/dist/ts/schedule/models/header-rows-model.d.ts +0 -33
  106. package/dist/ts/schedule/models/header-rows.d.ts +0 -30
  107. package/dist/ts/schedule/models/header-rows.ts +0 -35
  108. package/dist/ts/schedule/models/models.d.ts +0 -14
  109. package/dist/ts/schedule/models/models.ts +0 -15
  110. package/dist/ts/schedule/models/quick-info-templates-model.d.ts +0 -52
  111. package/dist/ts/schedule/models/quick-info-templates.d.ts +0 -47
  112. package/dist/ts/schedule/models/quick-info-templates.ts +0 -56
  113. package/dist/ts/schedule/models/resources-model.d.ts +0 -122
  114. package/dist/ts/schedule/models/resources.d.ts +0 -106
  115. package/dist/ts/schedule/models/resources.ts +0 -138
  116. package/dist/ts/schedule/models/time-scale-model.d.ts +0 -57
  117. package/dist/ts/schedule/models/time-scale.d.ts +0 -50
  118. package/dist/ts/schedule/models/time-scale.ts +0 -61
  119. package/dist/ts/schedule/models/toolbar-model.d.ts +0 -196
  120. package/dist/ts/schedule/models/toolbar.d.ts +0 -176
  121. package/dist/ts/schedule/models/toolbar.ts +0 -196
  122. package/dist/ts/schedule/models/views-model.d.ts +0 -370
  123. package/dist/ts/schedule/models/views.d.ts +0 -335
  124. package/dist/ts/schedule/models/views.ts +0 -408
  125. package/dist/ts/schedule/models/work-hours-model.d.ts +0 -29
  126. package/dist/ts/schedule/models/work-hours.d.ts +0 -24
  127. package/dist/ts/schedule/models/work-hours.ts +0 -31
  128. package/dist/ts/schedule/popups/event-tooltip.d.ts +0 -16
  129. package/dist/ts/schedule/popups/event-tooltip.ts +0 -203
  130. package/dist/ts/schedule/popups/event-window.d.ts +0 -118
  131. package/dist/ts/schedule/popups/event-window.ts +0 -2055
  132. package/dist/ts/schedule/popups/form-validator.d.ts +0 -16
  133. package/dist/ts/schedule/popups/form-validator.ts +0 -110
  134. package/dist/ts/schedule/popups/quick-popups.d.ts +0 -78
  135. package/dist/ts/schedule/popups/quick-popups.ts +0 -1470
  136. package/dist/ts/schedule/renderer/agenda.d.ts +0 -45
  137. package/dist/ts/schedule/renderer/agenda.ts +0 -497
  138. package/dist/ts/schedule/renderer/day.d.ts +0 -20
  139. package/dist/ts/schedule/renderer/day.ts +0 -28
  140. package/dist/ts/schedule/renderer/header-renderer.d.ts +0 -48
  141. package/dist/ts/schedule/renderer/header-renderer.ts +0 -736
  142. package/dist/ts/schedule/renderer/month-agenda.d.ts +0 -29
  143. package/dist/ts/schedule/renderer/month-agenda.ts +0 -184
  144. package/dist/ts/schedule/renderer/month.d.ts +0 -61
  145. package/dist/ts/schedule/renderer/month.ts +0 -766
  146. package/dist/ts/schedule/renderer/renderer.d.ts +0 -13
  147. package/dist/ts/schedule/renderer/renderer.ts +0 -165
  148. package/dist/ts/schedule/renderer/timeline-header-row.d.ts +0 -15
  149. package/dist/ts/schedule/renderer/timeline-header-row.ts +0 -132
  150. package/dist/ts/schedule/renderer/timeline-month.d.ts +0 -29
  151. package/dist/ts/schedule/renderer/timeline-month.ts +0 -184
  152. package/dist/ts/schedule/renderer/timeline-view.d.ts +0 -31
  153. package/dist/ts/schedule/renderer/timeline-view.ts +0 -308
  154. package/dist/ts/schedule/renderer/timeline-year.d.ts +0 -22
  155. package/dist/ts/schedule/renderer/timeline-year.ts +0 -450
  156. package/dist/ts/schedule/renderer/vertical-view.d.ts +0 -63
  157. package/dist/ts/schedule/renderer/vertical-view.ts +0 -911
  158. package/dist/ts/schedule/renderer/view-base.d.ts +0 -83
  159. package/dist/ts/schedule/renderer/view-base.ts +0 -709
  160. package/dist/ts/schedule/renderer/week.d.ts +0 -22
  161. package/dist/ts/schedule/renderer/week.ts +0 -35
  162. package/dist/ts/schedule/renderer/work-week.d.ts +0 -22
  163. package/dist/ts/schedule/renderer/work-week.ts +0 -36
  164. package/dist/ts/schedule/renderer/year.d.ts +0 -46
  165. package/dist/ts/schedule/renderer/year.ts +0 -470
  166. package/dist/ts/schedule/timezone/timezone.d.ts +0 -16
  167. 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
- }