@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,23 +0,0 @@
1
- import { Schedule } from '../base/schedule';
2
- /**
3
- * Inline Edit interactions
4
- */
5
- export declare class InlineEdit {
6
- private parent;
7
- private inlineInputEle;
8
- constructor(parent: Schedule);
9
- private inlineEdit;
10
- private cellEdit;
11
- private eventEdit;
12
- private createVerticalViewInline;
13
- private createMonthViewInline;
14
- private createTimelineViewInline;
15
- private getEventDaysCount;
16
- private generateEventData;
17
- documentClick(target: HTMLInputElement): void;
18
- inlineCrudActions(target: HTMLTableCellElement): void;
19
- createInlineAppointmentElement(inlineData?: Record<string, any>): HTMLElement;
20
- removeInlineAppointmentElement(): void;
21
- getInlineElement(): HTMLInputElement | null;
22
- destroy(): void;
23
- }
@@ -1,287 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { addClass, createElement, closest, remove, removeClass, isNullOrUndefined } from '@syncfusion/ej2-base';
3
- import { Schedule } from '../base/schedule';
4
- import { CurrentAction } from '../base/type';
5
- import { InlineClickArgs, TdData } from '../base/interface';
6
- import { VerticalEvent } from '../event-renderer/vertical-view';
7
- import { MonthEvent } from '../event-renderer/month';
8
- import { TimelineEvent } from '../event-renderer/timeline-view';
9
- import * as cls from '../base/css-constant';
10
- import * as events from '../base/constant';
11
- import * as util from '../base/util';
12
-
13
- /**
14
- * Inline Edit interactions
15
- */
16
- export class InlineEdit {
17
- private parent: Schedule;
18
- private inlineInputEle: HTMLInputElement | null;
19
-
20
- constructor(parent: Schedule) {
21
- this.parent = parent;
22
- this.parent.on(events.inlineClick, this.inlineEdit, this);
23
- }
24
-
25
- private inlineEdit(args: InlineClickArgs): void {
26
- if (this.parent.quickPopup) {
27
- this.parent.quickPopup.quickPopupHide();
28
- }
29
- if (args.type === 'Cell') {
30
- const moreWrapper: Element = this.parent.element.querySelector('.' + cls.MORE_POPUP_WRAPPER_CLASS);
31
- if (moreWrapper && moreWrapper.classList.contains(cls.POPUP_OPEN)) {
32
- this.parent.quickPopup.morePopup.hide();
33
- }
34
- this.removeInlineAppointmentElement();
35
- this.cellEdit(args);
36
- } else {
37
- if (this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS) !==
38
- args.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS)) {
39
- this.removeInlineAppointmentElement();
40
- }
41
- this.eventEdit(args);
42
- }
43
- }
44
-
45
- private cellEdit(args: InlineClickArgs): void {
46
- const saveObj: Record<string, any> = this.generateEventData();
47
- let cellIndex: number = (args.element as HTMLTableCellElement).cellIndex;
48
- let count: number = this.getEventDaysCount(saveObj);
49
- if (count > 1) {
50
- count = Math.round(count);
51
- count--;
52
- cellIndex = cellIndex - count;
53
- }
54
- const start: number = util.resetTime(new Date('' + saveObj[this.parent.eventFields.startTime])).getTime();
55
- const end: number = util.resetTime(new Date('' + saveObj[this.parent.eventFields.endTime])).getTime();
56
- const resIndex: number = args.groupIndex || 0;
57
- const isVertical: boolean = this.parent.currentView === 'Day' || this.parent.currentView === 'Week' || this.parent.currentView === 'WorkWeek';
58
- if (this.parent.activeViewOptions.timeScale.enable && isVertical) {
59
- const dayIndex: number = (saveObj[this.parent.eventFields.startTime] as Date).getDay();
60
- this.createVerticalViewInline(saveObj, dayIndex, resIndex, cellIndex);
61
- } else if (this.parent.currentView === 'Month' || (!this.parent.activeViewOptions.timeScale.enable && isVertical)) {
62
- this.createMonthViewInline(saveObj, resIndex, start, end);
63
- } else {
64
- this.createTimelineViewInline(saveObj, start, end, resIndex);
65
- }
66
- const inlineSubject: Element = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);
67
- if (inlineSubject) {
68
- (inlineSubject as HTMLElement).focus();
69
- }
70
- }
71
-
72
- private eventEdit(args: InlineClickArgs): void {
73
- let inlineSubject: HTMLInputElement = args.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS) as HTMLInputElement;
74
- let subject: string;
75
- addClass([args.element], cls.INLINE_EDIT_CLASS);
76
- if (inlineSubject) {
77
- subject = inlineSubject.value;
78
- } else {
79
- const subEle: HTMLElement = args.element.querySelector('.' + cls.SUBJECT_CLASS);
80
- if (!isNullOrUndefined(subEle)) {
81
- addClass([subEle], cls.DISABLE_CLASS);
82
- }
83
- subject = !isNullOrUndefined(args.data) && args.data[this.parent.eventFields.subject] ||
84
- this.parent.eventSettings.fields.subject.default || this.parent.localeObj.getConstant('addTitle');
85
- inlineSubject = this.inlineInputEle =
86
- createElement('input', { className: cls.INLINE_SUBJECT_CLASS, attrs: { value: subject } }) as HTMLInputElement;
87
- if (closest(args.element, '.' + cls.MORE_POPUP_WRAPPER_CLASS)) {
88
- args.element.insertBefore(inlineSubject, subEle);
89
- } else if (['Agenda', 'MonthAgenda'].indexOf(this.parent.currentView) > -1) {
90
- let subjectWrap: Element = args.element.querySelector('.' + cls.SUBJECT_WRAP);
91
- if (isNullOrUndefined(subjectWrap)) {
92
- subjectWrap = createElement('div', { className: cls.SUBJECT_WRAP });
93
- args.element.prepend(subjectWrap);
94
- }
95
- subjectWrap.insertBefore(inlineSubject, subjectWrap.firstChild);
96
- } else {
97
- const elementSelector: string = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek', 'TimelineMonth'].indexOf(this.parent.currentView) > -1 ?
98
- '.e-inner-wrap' : '.e-appointment-details';
99
- const innerWrapElement: Element = args.element.querySelector(elementSelector);
100
- if (isNullOrUndefined(innerWrapElement)) {
101
- args.element.querySelector('.e-appointment-details').prepend(inlineSubject);
102
- }
103
- else {
104
- if (subEle && this.parent.activeViewOptions && !this.parent.activeViewOptions.eventTemplate) {
105
- innerWrapElement.insertBefore(inlineSubject, subEle);
106
- } else {
107
- innerWrapElement.prepend(inlineSubject);
108
- }
109
- }
110
- }
111
- inlineSubject.focus();
112
- }
113
- inlineSubject.setSelectionRange(subject.length, subject.length);
114
- }
115
-
116
- private createVerticalViewInline(saveObj: Record<string, any>, dayIndex: number, resIndex: number, daysCount: number): void {
117
- const count: number = this.getEventDaysCount(saveObj);
118
- const verticalEvent: VerticalEvent = new VerticalEvent(this.parent);
119
- verticalEvent.initializeValues();
120
- const index: number =
121
- verticalEvent.dateRender[parseInt(resIndex.toString(), 10)].map((date: Date) => date.getDay()).indexOf(dayIndex);
122
- if (count >= 1) {
123
- verticalEvent.allDayElement = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS));
124
- verticalEvent.slots.push(...this.parent.activeView.renderDates.map((date: Date) => +date));
125
- const allDayElements: HTMLElement[] = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_APPOINTMENT_CLASS));
126
- let allDayLevel: number = 0;
127
- if (allDayElements.length > 0) {
128
- allDayLevel = Math.floor(this.parent.getElementHeight(this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS)) /
129
- allDayElements[0].offsetHeight) - 1;
130
- }
131
- verticalEvent.allDayLevel = allDayLevel;
132
- const appHeight: number = this.parent.getElementHeightFromClass(
133
- this.parent.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS), cls.APPOINTMENT_CLASS);
134
- const cellTop: number = verticalEvent.allDayElement.length > 0 ? verticalEvent.allDayElement[0].offsetTop : 0;
135
- verticalEvent.renderAllDayEvents(saveObj, index, resIndex, daysCount, this.parent.allowInline, cellTop, appHeight);
136
- } else {
137
- verticalEvent.renderNormalEvents(saveObj, index, resIndex, daysCount, this.parent.allowInline);
138
- }
139
- }
140
-
141
- private createMonthViewInline(saveObj: Record<string, any>, index: number, start: number, end: number): void {
142
- const count: number = this.getEventDaysCount(saveObj);
143
- const saveObject: Record<string, any> = this.parent.eventBase.cloneEventObject(saveObj, start, end, count, false, false);
144
- const monthEvent: MonthEvent = new MonthEvent(this.parent);
145
- monthEvent.dateRender = this.parent.activeView.renderDates;
146
- monthEvent.inlineValue = this.parent.allowInline;
147
- let renderDates: Date[] = this.parent.activeView.renderDates;
148
- let workDays: number[] = this.parent.activeViewOptions.workDays;
149
- let monthCellSelector: string = '.' + cls.WORK_CELLS_CLASS;
150
- if (this.parent.activeViewOptions.group.resources.length > 0) {
151
- monthCellSelector += '[data-group-index="' + index + '"]';
152
- const resourceData: TdData = this.parent.resourceBase.lastResourceLevel[parseInt(index.toString(), 10)];
153
- renderDates = resourceData.renderDates;
154
- workDays = resourceData.workDays;
155
- }
156
- monthEvent.dateRender = renderDates;
157
- monthEvent.workCells = [].slice.call(this.parent.element.querySelectorAll(monthCellSelector));
158
- monthEvent.cellWidth = monthEvent.workCells[0].offsetWidth;
159
- monthEvent.cellHeight = monthEvent.workCells[0].offsetHeight;
160
- monthEvent.eventHeight =
161
- this.parent.getElementHeightFromClass(this.parent.monthModule.element || monthEvent.element, cls.APPOINTMENT_CLASS);
162
- monthEvent.getSlotDates(workDays);
163
- const filteredDates: Date[] = monthEvent.getRenderedDates(renderDates);
164
- const spannedEvents: Record<string, any>[] = monthEvent.splitEvent(saveObject, filteredDates || renderDates);
165
- for (const eventData of spannedEvents) {
166
- monthEvent.renderEvents(eventData, index);
167
- }
168
- const inlineSubject: HTMLInputElement = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS) as HTMLInputElement;
169
- inlineSubject.focus();
170
- }
171
-
172
- private createTimelineViewInline(saveObj: Record<string, any>, start: number, end: number, resIndex: number): void {
173
- const count: number = this.getEventDaysCount(saveObj);
174
- const saveObject: Record<string, any> = this.parent.eventBase.cloneEventObject(saveObj, start, end, count, false, false);
175
- const timelineView: TimelineEvent = new TimelineEvent(this.parent, this.parent.activeViewOptions.timeScale.enable ? 'hour' : 'day');
176
- timelineView.dateRender = this.parent.activeView.renderDates;
177
- timelineView.eventContainers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));
178
- const workCell: HTMLElement = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS) as HTMLElement;
179
- timelineView.inlineValue = this.parent.allowInline;
180
- timelineView.cellWidth = workCell.offsetWidth;
181
- timelineView.cellHeight = workCell.offsetHeight;
182
- const dayLength: number = this.parent.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr').length === 0 ?
183
- 0 : this.parent.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr')[0].children.length;
184
- timelineView.slotsPerDay = dayLength / timelineView.dateRender.length;
185
- timelineView.eventHeight = this.parent.getElementHeightFromClass(timelineView.element, cls.APPOINTMENT_CLASS);
186
- timelineView.renderEvents(saveObject, resIndex);
187
- }
188
-
189
- private getEventDaysCount(saveObj: Record<string, any>): number {
190
- const startDate: Date = saveObj[this.parent.eventFields.startTime] as Date;
191
- const endDate: Date = saveObj[this.parent.eventFields.endTime] as Date;
192
- const daysCount: number = Math.abs(endDate.getTime() - startDate.getTime()) / util.MS_PER_DAY;
193
- return daysCount;
194
- }
195
-
196
- private generateEventData(target?: HTMLTableCellElement): Record<string, any> {
197
- const inlineElement: HTMLInputElement = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS) as HTMLInputElement;
198
- const subject: string = inlineElement ? inlineElement.value : target ? target.innerHTML : '';
199
- const saveObj: Record<string, any> = {};
200
- saveObj[this.parent.eventFields.id] = this.parent.eventBase.getEventMaxID();
201
- saveObj[this.parent.eventFields.subject] = subject;
202
- saveObj[this.parent.eventFields.startTime] = this.parent.activeCellsData.startTime;
203
- saveObj[this.parent.eventFields.endTime] = this.parent.activeCellsData.endTime;
204
- saveObj[this.parent.eventFields.isAllDay] = this.parent.activeCellsData.isAllDay;
205
- this.parent.eventWindow.setDefaultValueToObject(saveObj);
206
- if (this.parent.resourceBase) {
207
- this.parent.resourceBase.setResourceValues(saveObj, this.parent.activeCellsData.groupIndex);
208
- }
209
- return saveObj;
210
- }
211
-
212
- public documentClick(target: HTMLInputElement): void {
213
- if (target && target.value !== '') {
214
- this.inlineCrudActions(target as HTMLTableCellElement & HTMLInputElement);
215
- }
216
- else {
217
- this.removeInlineAppointmentElement();
218
- }
219
- }
220
-
221
- public inlineCrudActions(target: HTMLTableCellElement): void {
222
- if (closest(target, '.' + cls.INLINE_APPOINTMENT_CLASS)) {
223
- const saveObj: Record<string, any> = this.generateEventData(target);
224
- this.parent.addEvent(saveObj);
225
- } else {
226
- const eventTarget: Element = closest(target, '.' + cls.APPOINTMENT_CLASS);
227
- const eventDetails: Record<string, any> = this.parent.getEventDetails(eventTarget) as Record<string, any>;
228
- eventDetails[this.parent.eventFields.subject] = (target as HTMLTableCellElement & HTMLInputElement).value;
229
- let currentAction: CurrentAction;
230
- if (eventDetails[this.parent.eventFields.id] === eventDetails[this.parent.eventFields.recurrenceID]) {
231
- currentAction = 'EditOccurrence';
232
- eventDetails[this.parent.eventFields.id] = this.parent.eventBase.getEventMaxID();
233
- }
234
- this.parent.saveEvent(eventDetails, currentAction);
235
- }
236
- this.removeInlineAppointmentElement();
237
- }
238
-
239
- public createInlineAppointmentElement(inlineData?: Record<string, any>): HTMLElement {
240
- const inlineAppointmentElement: HTMLElement = createElement('div', {
241
- className: cls.APPOINTMENT_CLASS + ' ' + cls.INLINE_APPOINTMENT_CLASS + ' ' + cls.INLINE_EDIT_CLASS
242
- });
243
- const inlineDetails: HTMLElement = createElement('div', { className: cls.APPOINTMENT_DETAILS });
244
- inlineAppointmentElement.appendChild(inlineDetails);
245
- const inline: HTMLInputElement = this.inlineInputEle =
246
- createElement('input', { className: cls.INLINE_SUBJECT_CLASS }) as HTMLInputElement;
247
- inlineDetails.appendChild(inline);
248
- if (inlineData) {
249
- this.parent.eventBase.applyResourceColor(inlineAppointmentElement, inlineData, 'backgroundColor');
250
- }
251
- return inlineAppointmentElement;
252
- }
253
-
254
- public removeInlineAppointmentElement(): void {
255
- const inlineAppointment: Element[] = [].slice.call(this.parent.element.querySelectorAll('.' + cls.INLINE_APPOINTMENT_CLASS));
256
- if (inlineAppointment.length > 0) {
257
- inlineAppointment.forEach((node: Element) => {
258
- const inlineSubject: HTMLElement = node.querySelector('.' + cls.INLINE_SUBJECT_CLASS);
259
- if (!isNullOrUndefined(inlineSubject)) {
260
- inlineSubject.blur();
261
- }
262
- remove(node);
263
- });
264
- }
265
- const inlineSubject: HTMLInputElement | null = this.getInlineElement();
266
- if (inlineSubject) {
267
- const appointmentSubject: Element = closest(inlineSubject, '.' + cls.APPOINTMENT_CLASS);
268
- removeClass([appointmentSubject], cls.INLINE_EDIT_CLASS);
269
- const subject: Element = appointmentSubject.querySelector('.' + cls.SUBJECT_CLASS);
270
- if (!isNullOrUndefined(subject)) {
271
- removeClass([subject], cls.DISABLE_CLASS);
272
- }
273
- remove(inlineSubject);
274
- }
275
- this.inlineInputEle = null;
276
- }
277
-
278
- public getInlineElement(): HTMLInputElement | null {
279
- return this.inlineInputEle;
280
- }
281
-
282
- public destroy(): void {
283
- this.inlineInputEle = null;
284
- this.parent.off(events.inlineClick, this.inlineEdit);
285
- }
286
-
287
- }
@@ -1,60 +0,0 @@
1
- import { EventFieldsMapping, TdData } from '../base/interface';
2
- import { Schedule } from '../base/schedule';
3
- import { EventBase } from './event-base';
4
- /**
5
- * Month view events render
6
- */
7
- export declare class MonthEvent extends EventBase {
8
- element: HTMLElement;
9
- fields: EventFieldsMapping;
10
- dateRender: Date[];
11
- renderedEvents: Record<string, any>[];
12
- eventHeight: number;
13
- private monthHeaderHeight;
14
- workCells: HTMLElement[];
15
- cellWidth: number;
16
- cellHeight: number;
17
- moreIndicatorHeight: number;
18
- renderType: string;
19
- maxHeight: boolean;
20
- withIndicator: boolean;
21
- maxOrIndicator: boolean;
22
- inlineValue: boolean;
23
- private isResourceEventTemplate;
24
- constructor(parent: Schedule);
25
- private removeEventWrapper;
26
- renderAppointments(): void;
27
- renderEventsHandler(dateRender: Date[], workDays: number[], resData?: TdData): void;
28
- private processBlockEvents;
29
- private isSameDate;
30
- renderBlockEvents(event: Record<string, any>, resIndex: number, isIcon: boolean): void;
31
- renderBlockIndicator(cellTd: HTMLElement, position: number, resIndex: number): void;
32
- getStartTime(event: Record<string, any>, eventData: Record<string, any>): Date;
33
- getEndTime(event: Record<string, any>, eventData: Record<string, any>): Date;
34
- getCellTd(day: number): HTMLElement;
35
- getEventWidth(startDate: Date, endDate: Date, isAllDay: boolean, count: number): number;
36
- getPosition(startTime: Date, endTime: Date, isAllDay: boolean, day: number): number;
37
- getRowTop(resIndex: number): number;
38
- updateIndicatorIcon(event: Record<string, any>): void;
39
- renderResourceEvents(): void;
40
- getSlotDates(workDays?: number[]): void;
41
- createAppointmentElement(record: Record<string, any>, resIndex: number, isCloneElement?: boolean): HTMLElement;
42
- private appendEventIcons;
43
- renderEvents(event: Record<string, any>, resIndex: number, eventsList?: Record<string, any>[]): void;
44
- adjustAppointments(conWidth: number): void;
45
- updateCellHeight(cell: HTMLElement, height: number): void;
46
- updateBlockElements(): void;
47
- getFilteredEvents(startDate: Date, endDate: Date, groupIndex: string, eventsList?: Record<string, any>[]): Record<string, any>[];
48
- getOverlapEvents(date: Date, appointments: Record<string, any>[]): Record<string, any>[];
49
- getIndex(date: Date): number;
50
- moreIndicatorClick(event: Event): void;
51
- renderEventElement(event: Record<string, any>, appointmentElement: HTMLElement, cellTd: Element): void;
52
- private getSpannedTime;
53
- getEventData(event: Record<string, any>): Record<string, any>;
54
- renderElement(cellTd: HTMLElement | Element, element: HTMLElement, isAppointment?: boolean): void;
55
- getMoreIndicatorElement(count: number, startDate: Date, endDate: Date): HTMLElement;
56
- private getMoreIndicatorText;
57
- removeHeightProperty(selector: string): void;
58
- setMaxEventHeight(event: HTMLElement, cell: HTMLElement): void;
59
- destroy(): void;
60
- }