@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,69 +0,0 @@
1
- import { Schedule } from '../base/schedule';
2
- /**
3
- * `Scroll` module
4
- */
5
- export declare class Scroll {
6
- private parent;
7
- /**
8
- * Constructor for the scrolling.
9
- *
10
- * @param {Schedule} parent Accepts the Schedule instance
11
- */
12
- constructor(parent?: Schedule);
13
- /**
14
- * For internal use only - Get the module name.
15
- *
16
- * @returns {string} Returns the module name.
17
- * @private
18
- */
19
- protected getModuleName(): string;
20
- /**
21
- * Internal method to set the element width
22
- *
23
- * @returns {void}
24
- * @private
25
- */
26
- setWidth(): void;
27
- /**
28
- * Internal method to set the element height
29
- *
30
- * @returns {void}
31
- * @private
32
- */
33
- setHeight(): void;
34
- /**
35
- * Internal method to bind events
36
- *
37
- * @returns {void}
38
- * @private
39
- */
40
- addEventListener(): void;
41
- /**
42
- * Internal method to unbind events
43
- *
44
- * @returns {void}
45
- * @private
46
- */
47
- removeEventListener(): void;
48
- /**
49
- * Internal method to set the dimensions
50
- *
51
- * @returns {void}
52
- * @private
53
- */
54
- private setDimensions;
55
- /**
56
- * Internal method to set the dimensions dynamically
57
- *
58
- * @returns {void}
59
- * @private
60
- */
61
- private onPropertyChanged;
62
- /**
63
- * Destroy the scroll module
64
- *
65
- * @returns {void}
66
- * @private
67
- */
68
- destroy(): void;
69
- }
@@ -1,105 +0,0 @@
1
- import { formatUnit } from '@syncfusion/ej2-base';
2
- import { contentReady, uiUpdate, scrollUiUpdate } from '../base/constant';
3
- import { NotifyEventArgs } from '../base/interface';
4
- import { Schedule } from '../base/schedule';
5
- /**
6
- * `Scroll` module
7
- */
8
- export class Scroll {
9
- private parent: Schedule;
10
- /**
11
- * Constructor for the scrolling.
12
- *
13
- * @param {Schedule} parent Accepts the Schedule instance
14
- */
15
- constructor(parent?: Schedule) {
16
- this.parent = parent;
17
- this.addEventListener();
18
- }
19
-
20
- /**
21
- * For internal use only - Get the module name.
22
- *
23
- * @returns {string} Returns the module name.
24
- * @private
25
- */
26
- protected getModuleName(): string {
27
- return 'scroll';
28
- }
29
-
30
- /**
31
- * Internal method to set the element width
32
- *
33
- * @returns {void}
34
- * @private
35
- */
36
- public setWidth(): void {
37
- this.parent.element.style.width = formatUnit(this.parent.width);
38
- }
39
-
40
- /**
41
- * Internal method to set the element height
42
- *
43
- * @returns {void}
44
- * @private
45
- */
46
- public setHeight(): void {
47
- this.parent.element.style.height = formatUnit(this.parent.height);
48
- }
49
-
50
- /**
51
- * Internal method to bind events
52
- *
53
- * @returns {void}
54
- * @private
55
- */
56
- public addEventListener(): void {
57
- this.parent.on(contentReady, this.setDimensions, this);
58
- this.parent.on(uiUpdate, this.onPropertyChanged, this);
59
- }
60
-
61
- /**
62
- * Internal method to unbind events
63
- *
64
- * @returns {void}
65
- * @private
66
- */
67
- public removeEventListener(): void {
68
- this.parent.off(contentReady, this.setDimensions);
69
- this.parent.off(uiUpdate, this.onPropertyChanged);
70
- }
71
-
72
- /**
73
- * Internal method to set the dimensions
74
- *
75
- * @returns {void}
76
- * @private
77
- */
78
- private setDimensions(): void {
79
- this.setWidth();
80
- this.setHeight();
81
- const data: NotifyEventArgs = { cssProperties: this.parent.getCssProperties(), module: this.getModuleName() };
82
- this.parent.notify(scrollUiUpdate, data);
83
- }
84
-
85
- /**
86
- * Internal method to set the dimensions dynamically
87
- *
88
- * @returns {void}
89
- * @private
90
- */
91
- private onPropertyChanged(): void {
92
- this.setDimensions();
93
- }
94
-
95
- /**
96
- * Destroy the scroll module
97
- *
98
- * @returns {void}
99
- * @private
100
- */
101
- public destroy(): void {
102
- this.removeEventListener();
103
- }
104
-
105
- }
@@ -1,32 +0,0 @@
1
- import { Schedule } from '../base/schedule';
2
- /**
3
- * `touch` module is used to handle touch interactions.
4
- */
5
- export declare class ScheduleTouch {
6
- private element;
7
- private currentPanel;
8
- private previousPanel;
9
- private nextPanel;
10
- private parent;
11
- private touchObj;
12
- private timeStampStart;
13
- private isScrollTriggered;
14
- private touchLeftDirection;
15
- private touchRightDirection;
16
- constructor(parent: Schedule);
17
- private scrollHandler;
18
- private swipeHandler;
19
- private tapHoldHandler;
20
- private triggerResizeStart;
21
- private preventEventClick;
22
- private renderPanel;
23
- private swapPanels;
24
- private confirmSwipe;
25
- private cancelSwipe;
26
- private calculateResourceSpecificDates;
27
- private onTransitionEnd;
28
- private getTranslateX;
29
- private setDimensions;
30
- resetValues(): void;
31
- destroy(): void;
32
- }
@@ -1,314 +0,0 @@
1
- import { addClass, removeClass, Touch, remove, EventHandler, TapEventArgs, Browser } from '@syncfusion/ej2-base';
2
- import { closest, isNullOrUndefined, ScrollEventArgs, SwipeEventArgs } from '@syncfusion/ej2-base';
3
- import { Schedule } from '../base/schedule';
4
- import { ActionEventArgs, NavigatingEventArgs, LayoutData, TdData } from '../base/interface';
5
- import * as events from '../base/constant';
6
- import * as cls from '../base/css-constant';
7
- import * as util from '../base/util';
8
- import { NavigationDirection } from '../base/type';
9
-
10
- /**
11
- * `touch` module is used to handle touch interactions.
12
- */
13
- export class ScheduleTouch {
14
- private element: HTMLElement;
15
- private currentPanel: LayoutData;
16
- private previousPanel: LayoutData;
17
- private nextPanel: LayoutData;
18
- private parent: Schedule;
19
- private touchObj: Touch;
20
- private timeStampStart: number;
21
- private isScrollTriggered: boolean;
22
- private touchLeftDirection: string;
23
- private touchRightDirection: string;
24
- constructor(parent: Schedule) {
25
- this.parent = parent;
26
- this.element = this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS) as HTMLElement;
27
- this.touchObj = new Touch(this.element, {
28
- scroll: this.scrollHandler.bind(this),
29
- swipe: this.swipeHandler.bind(this),
30
- tapHold: this.tapHoldHandler.bind(this),
31
- swipeSettings: { swipeThresholdDistance: 1 }
32
- });
33
- EventHandler.add(this.element, 'transitionend', this.onTransitionEnd, this);
34
- this.touchLeftDirection = this.parent.enableRtl ? 'Right' : 'Left';
35
- this.touchRightDirection = this.parent.enableRtl ? 'Left' : 'Right';
36
- }
37
-
38
- private scrollHandler(e: ScrollEventArgs): void {
39
- if (!isNullOrUndefined(this.parent.eventTooltip)) {
40
- this.parent.eventTooltip.close();
41
- }
42
- const blockSwipe: boolean = !this.parent.isAdaptive && e.originalEvent && e.originalEvent.target &&
43
- !isNullOrUndefined(closest(e.originalEvent.target as HTMLElement, '.' + cls.APPOINTMENT_CLASS));
44
- this.parent.uiStateValues.isTouchScroll = blockSwipe && e.originalEvent.type === 'touchmove' && !this.parent.uiStateValues.action;
45
- if (blockSwipe || this.parent.currentView === 'Agenda' || this.parent.uiStateValues.action || !this.parent.allowSwiping ||
46
- this.parent.uiStateValues.isTapHold) {
47
- return;
48
- }
49
- this.parent.uiStateValues.isSwipeScroll = true;
50
- if (!this.timeStampStart) {
51
- this.timeStampStart = Date.now();
52
- }
53
- if (this.element.classList.contains(cls.TRANSLATE_CLASS)) {
54
- this.onTransitionEnd();
55
- }
56
- if (e.scrollDirection === 'Left' || e.scrollDirection === 'Right') {
57
- const args: ActionEventArgs = { requestType: 'dateNavigate', cancel: false, event: e.originalEvent };
58
- this.parent.trigger(events.actionBegin, args);
59
- if (args.cancel) {
60
- return;
61
- }
62
- const scrollDiv: HTMLElement = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS) as HTMLElement;
63
- if (scrollDiv && scrollDiv.scrollWidth > scrollDiv.clientWidth) {
64
- return;
65
- } else {
66
- this.isScrollTriggered = true;
67
- e.originalEvent.preventDefault();
68
- e.originalEvent.stopPropagation();
69
- }
70
- }
71
- if (e.scrollDirection === this.touchLeftDirection) {
72
- if (!this.nextPanel) {
73
- this.renderPanel(cls.NEXT_PANEL_CLASS, 'Next');
74
- this.nextPanel = {
75
- element: this.parent.activeView.getPanel(),
76
- selectedDate: new Date(this.parent.selectedDate.getTime()),
77
- renderDates: this.parent.activeView.renderDates,
78
- colLevels: this.parent.activeView.colLevels
79
- };
80
- this.setDimensions(this.nextPanel.element);
81
- }
82
- const x: number = this.parent.enableRtl ? e.distanceX : - e.distanceX;
83
- this.element.style.transform = 'translatex(' + (this.getTranslateX(this.element) + x) + 'px)';
84
- } else if (e.scrollDirection === this.touchRightDirection) {
85
- let prevWidth: number = 0;
86
- if (!this.previousPanel) {
87
- this.renderPanel(cls.PREVIOUS_PANEL_CLASS, 'Previous');
88
- this.previousPanel = {
89
- element: this.parent.activeView.getPanel(),
90
- selectedDate: new Date(this.parent.selectedDate.getTime()),
91
- renderDates: this.parent.activeView.renderDates,
92
- colLevels: this.parent.activeView.colLevels
93
- };
94
- this.setDimensions(this.previousPanel.element);
95
- prevWidth = this.previousPanel.element.offsetWidth;
96
- }
97
- const x: number = this.parent.enableRtl ? prevWidth - e.distanceX : - prevWidth + e.distanceX;
98
- this.element.style.transform = 'translatex(' + (this.getTranslateX(this.element) + x) + 'px)';
99
- }
100
- }
101
-
102
- private swipeHandler(e: SwipeEventArgs): void {
103
- if (!this.isScrollTriggered || this.parent.uiStateValues.action || !this.parent.allowSwiping ||
104
- this.parent.uiStateValues.isTapHold) { return; }
105
- this.isScrollTriggered = false;
106
- const swipeDate: Date = e.swipeDirection === 'Left' ?
107
- this.parent.activeView.renderDates[0] : this.parent.activeView.renderDates.slice(-1)[0];
108
- if ((e.swipeDirection === 'Left' && swipeDate < this.parent.maxDate) ||
109
- (e.swipeDirection === 'Right' && swipeDate >= this.parent.minDate)) {
110
- const time: number = Date.now() - this.timeStampStart;
111
- const offsetDist: number = (e.distanceX * (Browser.isDevice ? 6 : 1.66));
112
- if (offsetDist > time || (e.distanceX > (this.parent.element.offsetWidth / 2))) {
113
- this.swapPanels(e.swipeDirection);
114
- if (offsetDist > time && (e.distanceX > (this.parent.element.offsetWidth / 2))) {
115
- this.element.style.transitionDuration = (((Browser.isDevice ? e.distanceX : offsetDist) / time) / 10) + 's';
116
- }
117
- this.confirmSwipe(e.swipeDirection);
118
- } else {
119
- this.cancelSwipe();
120
- }
121
- const args: ActionEventArgs = { requestType: 'dateNavigate', cancel: false, event: e.originalEvent };
122
- this.parent.trigger(events.actionComplete, args);
123
- } else {
124
- this.cancelSwipe();
125
- }
126
- this.timeStampStart = null;
127
- }
128
-
129
- private tapHoldHandler(e: TapEventArgs): void {
130
- const target: Element = closest((e.originalEvent.target as Element), '.' + cls.APPOINTMENT_CLASS);
131
- if (!isNullOrUndefined(target)) {
132
- this.parent.uiStateValues.isTapHold = true;
133
- if (this.parent.isAdaptive) {
134
- if (Browser.isIos) {
135
- EventHandler.add(this.element, 'touchend', this.preventEventClick, this);
136
- }
137
- this.parent.quickPopup.tapHoldEventPopup(e.originalEvent);
138
- this.triggerResizeStart(e.originalEvent);
139
- } else if (['Agenda', 'MonthAgenda', 'Year'].indexOf(this.parent.currentView) < 0) {
140
- this.parent.selectedElements = [];
141
- this.parent.eventBase.getSelectedEventElements(target);
142
- this.triggerResizeStart(e.originalEvent);
143
- }
144
- }
145
- }
146
-
147
- private triggerResizeStart(e: Event): void {
148
- if (this.parent.resizeModule && closest(e.target as Element, '.' + cls.EVENT_RESIZE_CLASS)) {
149
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
150
- this.parent.resizeModule.resizeStart(e as any);
151
- }
152
- }
153
-
154
- private preventEventClick(e: Event): void {
155
- e.preventDefault();
156
- EventHandler.remove(this.element, 'touchend', this.preventEventClick);
157
- }
158
-
159
- private renderPanel(clsName: string, nextPrevType: NavigationDirection): void {
160
- if (!this.currentPanel) {
161
- this.currentPanel = {
162
- element: this.parent.activeView.getPanel(),
163
- selectedDate: new Date(this.parent.selectedDate.getTime()),
164
- renderDates: this.parent.activeView.renderDates,
165
- colLevels: this.parent.activeView.colLevels
166
- };
167
- this.setDimensions(this.currentPanel.element);
168
- } else {
169
- this.parent.setProperties({ selectedDate: this.currentPanel.selectedDate }, true);
170
- }
171
- this.parent.setProperties({ selectedDate: this.parent.activeView.getNextPreviousDate(nextPrevType) }, true);
172
- if (this.parent.headerModule) {
173
- this.parent.headerModule.setCalendarDate(this.parent.selectedDate);
174
- }
175
- this.parent.activeView.getRenderDates();
176
- this.parent.activeView.renderLayout(clsName);
177
- }
178
-
179
- private swapPanels(direction: string): void {
180
- if (direction === this.touchLeftDirection) {
181
- const temp: LayoutData = this.nextPanel;
182
- this.nextPanel = this.currentPanel;
183
- this.currentPanel = temp;
184
- } else {
185
- const temp: LayoutData = this.previousPanel;
186
- this.previousPanel = this.currentPanel;
187
- this.currentPanel = temp;
188
- }
189
- }
190
-
191
- private confirmSwipe(swipeDirection: string): void {
192
- const previousDate: Date = swipeDirection === this.touchLeftDirection ?
193
- this.nextPanel.selectedDate : this.previousPanel.selectedDate;
194
- const args: NavigatingEventArgs = {
195
- action: 'date', cancel: false, previousDate: previousDate, currentDate: this.currentPanel.selectedDate
196
- };
197
- this.parent.trigger(events.navigating, args, (navArgs: NavigatingEventArgs) => {
198
- if (navArgs.cancel) {
199
- this.swapPanels(swipeDirection);
200
- this.cancelSwipe();
201
- } else {
202
- this.parent.activeView.setPanel(this.currentPanel.element);
203
- this.parent.setProperties({ selectedDate: this.currentPanel.selectedDate }, true);
204
- let translateX: number;
205
- if (this.parent.enableRtl) {
206
- translateX = swipeDirection === this.touchLeftDirection ?
207
- (this.previousPanel ? this.previousPanel.element.offsetLeft : this.currentPanel.element.offsetWidth) : 0;
208
- } else {
209
- translateX = swipeDirection === this.touchLeftDirection ? -this.currentPanel.element.offsetLeft : 0;
210
- }
211
- this.parent.activeView.renderDates = this.currentPanel.renderDates;
212
- this.parent.activeView.colLevels = this.currentPanel.colLevels;
213
- addClass([this.element], cls.TRANSLATE_CLASS);
214
- this.element.style.transform = 'translatex(' + translateX + 'px)';
215
- if (this.parent.headerModule) {
216
- this.parent.headerModule.updateDateRange();
217
- }
218
- this.parent.renderTemplates();
219
- this.parent.crudModule.refreshDataManager();
220
- }
221
- });
222
- }
223
-
224
- private cancelSwipe(): void {
225
- this.parent.activeView.setPanel(this.currentPanel.element);
226
- this.parent.setProperties({ selectedDate: this.currentPanel.selectedDate }, true);
227
- this.parent.activeView.renderDates = this.currentPanel.renderDates;
228
- if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.resourceBase.lastResourceLevel.length > 0) {
229
- const workDaysField: string = this.parent.resourceBase.resourceCollection[0].workDaysField;
230
- this.parent.resourceBase.lastResourceLevel.forEach((resource: TdData) => {
231
- if (workDaysField) {
232
- const resourceWorkDays: number[] = resource[workDaysField as keyof TdData] as number[];
233
- const hasCustomWorkDays: boolean = Array.isArray(resourceWorkDays) &&
234
- (!this.parent.showWeekend || this.parent.currentView === 'WorkWeek');
235
-
236
- resource.renderDates = hasCustomWorkDays
237
- ? this.calculateResourceSpecificDates(resource, workDaysField)
238
- : this.currentPanel.renderDates;
239
- } else {
240
- resource.renderDates = this.currentPanel.renderDates;
241
- }
242
- });
243
- }
244
- this.parent.activeView.colLevels = this.currentPanel.colLevels;
245
- addClass([this.element], cls.TRANSLATE_CLASS);
246
- const prevWidth: number = this.previousPanel ? this.previousPanel.element.offsetWidth : 0;
247
- this.element.style.transform = 'translatex(' + (this.parent.enableRtl ? prevWidth : -this.currentPanel.element.offsetLeft) + 'px)';
248
- }
249
-
250
- private calculateResourceSpecificDates(resource: TdData, workDaysField: string): Date[] {
251
- const resourceDates: Date[] = [];
252
- const resourceWorkDays: number[] = resource[workDaysField as keyof TdData] as number[];
253
- this.currentPanel.renderDates.forEach((date: Date) => {
254
- if (Array.isArray(resourceWorkDays) && resourceWorkDays.indexOf(date.getDay()) !== -1) {
255
- resourceDates.push(date);
256
- }
257
- });
258
- return resourceDates;
259
- }
260
-
261
- private onTransitionEnd(): void {
262
- if (!isNullOrUndefined(this.element) && !this.element.classList.contains(cls.TRANSLATE_CLASS)) {
263
- return;
264
- }
265
- this.parent.uiStateValues.isSwipeScroll = false;
266
- removeClass([this.element], cls.TRANSLATE_CLASS);
267
- this.element.style.transitionDuration = '';
268
- this.element.style.transform = '';
269
- if (this.previousPanel) {
270
- remove(this.previousPanel.element);
271
- this.previousPanel = null;
272
- removeClass([this.currentPanel.element], cls.PREVIOUS_PANEL_CLASS);
273
- addClass([this.currentPanel.element], cls.CURRENT_PANEL_CLASS);
274
- }
275
- if (this.nextPanel) {
276
- remove(this.nextPanel.element);
277
- this.nextPanel = null;
278
- removeClass([this.currentPanel.element], cls.NEXT_PANEL_CLASS);
279
- addClass([this.currentPanel.element], cls.CURRENT_PANEL_CLASS);
280
- }
281
- this.currentPanel = null;
282
- this.parent.activeView.getPanel().style.width = '';
283
- }
284
-
285
- private getTranslateX(element: HTMLElement): number {
286
- const style: CSSStyleDeclaration = window.getComputedStyle(element);
287
- return new WebKitCSSMatrix(style.webkitTransform).m41;
288
- }
289
-
290
- private setDimensions(element: HTMLElement): void {
291
- element.style.width = (this.parent.element.clientWidth) + 'px';
292
- }
293
-
294
- public resetValues(): void {
295
- this.currentPanel = null;
296
- this.previousPanel = null;
297
- this.nextPanel = null;
298
- this.timeStampStart = null;
299
- this.element.style.transform = '';
300
- this.element.style.transitionDuration = '';
301
- util.removeChildren(this.element);
302
- removeClass([this.element], cls.TRANSLATE_CLASS);
303
- }
304
-
305
- public destroy(): void {
306
- if (this.touchObj) {
307
- this.touchObj.destroy();
308
- this.touchObj = null;
309
- }
310
- EventHandler.remove(this.element, 'transitionend', this.onTransitionEnd);
311
- this.resetValues();
312
- }
313
-
314
- }
@@ -1,55 +0,0 @@
1
- import { TdData } from '../base/interface';
2
- import { Schedule } from '../base/schedule';
3
- /**
4
- * Virtual Scroll
5
- */
6
- export declare class VirtualScroll {
7
- private parent;
8
- private translateY;
9
- private itemSize;
10
- bufferCount: number;
11
- private renderedLength;
12
- private averageRowHeight;
13
- private timeValue;
14
- private focusedEle;
15
- private isResourceCell;
16
- isHorizontalScroll: boolean;
17
- isRemoteRefresh: boolean;
18
- private startIndex;
19
- existingDataCollection: TdData[];
20
- enableTransition: boolean;
21
- constructor(parent: Schedule);
22
- private addEventListener;
23
- private removeEventListener;
24
- getRenderedCount(): number;
25
- renderVirtualTrack(contentWrap: Element): void;
26
- updateVirtualScrollHeight(): void;
27
- updateVirtualTrackHeight(wrap: HTMLElement): void;
28
- setItemSize(): void;
29
- refreshLayout(): void;
30
- private renderEvents;
31
- virtualScrolling(): void;
32
- private horizontalScrolling;
33
- private triggerScrollEvent;
34
- private upScroll;
35
- private downScroll;
36
- private leftScroll;
37
- private rightScroll;
38
- private getCollection;
39
- private getResCollection;
40
- private getByDateCollection;
41
- private getByIdCollection;
42
- private setStartEndIndex;
43
- updateContent(resWrap: HTMLElement, conWrap: HTMLElement, eventWrap: HTMLElement, resCollection: TdData[]): void;
44
- private removeObsoleteRows;
45
- private updateHorizontalContent;
46
- private updateMonthViewContent;
47
- private updateOtherViewContent;
48
- private mergeNewTdData;
49
- private getBufferCollection;
50
- private setTranslate;
51
- updateFocusedWorkCell(): void;
52
- setRenderedDates(resCollection: TdData[]): void;
53
- private setTabIndex;
54
- destroy(): void;
55
- }