@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.
- package/dist/ej2-schedule.min.js +2 -2
- package/dist/ej2-schedule.umd.min.js +2 -2
- package/dist/ej2-schedule.umd.min.js.map +1 -1
- package/dist/es6/ej2-schedule.es2015.js +1 -1
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +1 -1
- package/dist/es6/ej2-schedule.es5.js.map +1 -1
- package/dist/global/ej2-schedule.min.js +2 -2
- package/dist/global/ej2-schedule.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +17 -52
- package/src/schedule/event-renderer/event-base.js +1 -1
- package/styles/bootstrap4-lite.css +8 -0
- package/styles/bootstrap4.css +8 -0
- package/styles/recurrence-editor/bootstrap4.css +8 -0
- package/styles/schedule/bootstrap4.css +8 -0
- package/dist/ts/common/calendar-util.d.ts +0 -92
- package/dist/ts/common/calendar-util.ts +0 -261
- package/dist/ts/common/index.d.ts +0 -4
- package/dist/ts/common/index.ts +0 -4
- package/dist/ts/components.d.ts +0 -5
- package/dist/ts/components.ts +0 -5
- package/dist/ts/index.d.ts +0 -6
- package/dist/ts/index.ts +0 -7
- package/dist/ts/recurrence-editor/date-generator.d.ts +0 -76
- package/dist/ts/recurrence-editor/date-generator.ts +0 -1699
- package/dist/ts/recurrence-editor/index.d.ts +0 -6
- package/dist/ts/recurrence-editor/index.ts +0 -6
- package/dist/ts/recurrence-editor/recurrence-editor-model.d.ts +0 -112
- package/dist/ts/recurrence-editor/recurrence-editor.d.ts +0 -245
- package/dist/ts/recurrence-editor/recurrence-editor.ts +0 -1257
- package/dist/ts/schedule/actions/action-base.d.ts +0 -44
- package/dist/ts/schedule/actions/action-base.ts +0 -493
- package/dist/ts/schedule/actions/crud.d.ts +0 -41
- package/dist/ts/schedule/actions/crud.ts +0 -784
- package/dist/ts/schedule/actions/data.d.ts +0 -63
- package/dist/ts/schedule/actions/data.ts +0 -128
- package/dist/ts/schedule/actions/drag.d.ts +0 -75
- package/dist/ts/schedule/actions/drag.ts +0 -1401
- package/dist/ts/schedule/actions/keyboard.d.ts +0 -100
- package/dist/ts/schedule/actions/keyboard.ts +0 -1435
- package/dist/ts/schedule/actions/resize.d.ts +0 -27
- package/dist/ts/schedule/actions/resize.ts +0 -602
- package/dist/ts/schedule/actions/scroll.d.ts +0 -69
- package/dist/ts/schedule/actions/scroll.ts +0 -105
- package/dist/ts/schedule/actions/touch.d.ts +0 -32
- package/dist/ts/schedule/actions/touch.ts +0 -314
- package/dist/ts/schedule/actions/virtual-scroll.d.ts +0 -55
- package/dist/ts/schedule/actions/virtual-scroll.ts +0 -596
- package/dist/ts/schedule/actions/work-cells.d.ts +0 -14
- package/dist/ts/schedule/actions/work-cells.ts +0 -151
- package/dist/ts/schedule/base/constant.d.ts +0 -102
- package/dist/ts/schedule/base/constant.ts +0 -103
- package/dist/ts/schedule/base/css-constant.d.ts +0 -475
- package/dist/ts/schedule/base/css-constant.ts +0 -475
- package/dist/ts/schedule/base/interface.d.ts +0 -673
- package/dist/ts/schedule/base/interface.ts +0 -738
- package/dist/ts/schedule/base/resource.d.ts +0 -59
- package/dist/ts/schedule/base/resource.ts +0 -1091
- package/dist/ts/schedule/base/schedule-model.d.ts +0 -930
- package/dist/ts/schedule/base/schedule.d.ts +0 -1967
- package/dist/ts/schedule/base/schedule.ts +0 -4221
- package/dist/ts/schedule/base/type.d.ts +0 -134
- package/dist/ts/schedule/base/type.ts +0 -142
- package/dist/ts/schedule/base/util.d.ts +0 -266
- package/dist/ts/schedule/base/util.ts +0 -492
- package/dist/ts/schedule/event-renderer/agenda-base.d.ts +0 -15
- package/dist/ts/schedule/event-renderer/agenda-base.ts +0 -423
- package/dist/ts/schedule/event-renderer/event-base.d.ts +0 -101
- package/dist/ts/schedule/event-renderer/event-base.ts +0 -1501
- package/dist/ts/schedule/event-renderer/inline-edit.d.ts +0 -23
- package/dist/ts/schedule/event-renderer/inline-edit.ts +0 -287
- package/dist/ts/schedule/event-renderer/month.d.ts +0 -60
- package/dist/ts/schedule/event-renderer/month.ts +0 -760
- package/dist/ts/schedule/event-renderer/timeline-view.d.ts +0 -51
- package/dist/ts/schedule/event-renderer/timeline-view.ts +0 -606
- package/dist/ts/schedule/event-renderer/vertical-view.d.ts +0 -57
- package/dist/ts/schedule/event-renderer/vertical-view.ts +0 -898
- package/dist/ts/schedule/event-renderer/year.d.ts +0 -27
- package/dist/ts/schedule/event-renderer/year.ts +0 -623
- package/dist/ts/schedule/exports/calendar-export.d.ts +0 -16
- package/dist/ts/schedule/exports/calendar-export.ts +0 -160
- package/dist/ts/schedule/exports/calendar-import.d.ts +0 -18
- package/dist/ts/schedule/exports/calendar-import.ts +0 -277
- package/dist/ts/schedule/exports/excel-export.d.ts +0 -14
- package/dist/ts/schedule/exports/excel-export.ts +0 -89
- package/dist/ts/schedule/exports/index.d.ts +0 -7
- package/dist/ts/schedule/exports/index.ts +0 -7
- package/dist/ts/schedule/exports/print.d.ts +0 -20
- package/dist/ts/schedule/exports/print.ts +0 -233
- package/dist/ts/schedule/index.d.ts +0 -26
- package/dist/ts/schedule/index.ts +0 -26
- package/dist/ts/schedule/models/event-settings-model.d.ts +0 -165
- package/dist/ts/schedule/models/event-settings.d.ts +0 -149
- package/dist/ts/schedule/models/event-settings.ts +0 -187
- package/dist/ts/schedule/models/field-options-model.d.ts +0 -37
- package/dist/ts/schedule/models/field-options.d.ts +0 -31
- package/dist/ts/schedule/models/field-options.ts +0 -41
- package/dist/ts/schedule/models/fields-model.d.ts +0 -129
- package/dist/ts/schedule/models/fields.d.ts +0 -117
- package/dist/ts/schedule/models/fields.ts +0 -149
- package/dist/ts/schedule/models/group-model.d.ts +0 -69
- package/dist/ts/schedule/models/group.d.ts +0 -60
- package/dist/ts/schedule/models/group.ts +0 -75
- package/dist/ts/schedule/models/header-rows-model.d.ts +0 -33
- package/dist/ts/schedule/models/header-rows.d.ts +0 -30
- package/dist/ts/schedule/models/header-rows.ts +0 -35
- package/dist/ts/schedule/models/models.d.ts +0 -14
- package/dist/ts/schedule/models/models.ts +0 -15
- package/dist/ts/schedule/models/quick-info-templates-model.d.ts +0 -52
- package/dist/ts/schedule/models/quick-info-templates.d.ts +0 -47
- package/dist/ts/schedule/models/quick-info-templates.ts +0 -56
- package/dist/ts/schedule/models/resources-model.d.ts +0 -122
- package/dist/ts/schedule/models/resources.d.ts +0 -106
- package/dist/ts/schedule/models/resources.ts +0 -138
- package/dist/ts/schedule/models/time-scale-model.d.ts +0 -57
- package/dist/ts/schedule/models/time-scale.d.ts +0 -50
- package/dist/ts/schedule/models/time-scale.ts +0 -61
- package/dist/ts/schedule/models/toolbar-model.d.ts +0 -196
- package/dist/ts/schedule/models/toolbar.d.ts +0 -176
- package/dist/ts/schedule/models/toolbar.ts +0 -196
- package/dist/ts/schedule/models/views-model.d.ts +0 -370
- package/dist/ts/schedule/models/views.d.ts +0 -335
- package/dist/ts/schedule/models/views.ts +0 -408
- package/dist/ts/schedule/models/work-hours-model.d.ts +0 -29
- package/dist/ts/schedule/models/work-hours.d.ts +0 -24
- package/dist/ts/schedule/models/work-hours.ts +0 -31
- package/dist/ts/schedule/popups/event-tooltip.d.ts +0 -16
- package/dist/ts/schedule/popups/event-tooltip.ts +0 -203
- package/dist/ts/schedule/popups/event-window.d.ts +0 -118
- package/dist/ts/schedule/popups/event-window.ts +0 -2055
- package/dist/ts/schedule/popups/form-validator.d.ts +0 -16
- package/dist/ts/schedule/popups/form-validator.ts +0 -110
- package/dist/ts/schedule/popups/quick-popups.d.ts +0 -78
- package/dist/ts/schedule/popups/quick-popups.ts +0 -1470
- package/dist/ts/schedule/renderer/agenda.d.ts +0 -45
- package/dist/ts/schedule/renderer/agenda.ts +0 -497
- package/dist/ts/schedule/renderer/day.d.ts +0 -20
- package/dist/ts/schedule/renderer/day.ts +0 -28
- package/dist/ts/schedule/renderer/header-renderer.d.ts +0 -48
- package/dist/ts/schedule/renderer/header-renderer.ts +0 -736
- package/dist/ts/schedule/renderer/month-agenda.d.ts +0 -29
- package/dist/ts/schedule/renderer/month-agenda.ts +0 -184
- package/dist/ts/schedule/renderer/month.d.ts +0 -61
- package/dist/ts/schedule/renderer/month.ts +0 -766
- package/dist/ts/schedule/renderer/renderer.d.ts +0 -13
- package/dist/ts/schedule/renderer/renderer.ts +0 -165
- package/dist/ts/schedule/renderer/timeline-header-row.d.ts +0 -15
- package/dist/ts/schedule/renderer/timeline-header-row.ts +0 -132
- package/dist/ts/schedule/renderer/timeline-month.d.ts +0 -29
- package/dist/ts/schedule/renderer/timeline-month.ts +0 -184
- package/dist/ts/schedule/renderer/timeline-view.d.ts +0 -31
- package/dist/ts/schedule/renderer/timeline-view.ts +0 -308
- package/dist/ts/schedule/renderer/timeline-year.d.ts +0 -22
- package/dist/ts/schedule/renderer/timeline-year.ts +0 -450
- package/dist/ts/schedule/renderer/vertical-view.d.ts +0 -63
- package/dist/ts/schedule/renderer/vertical-view.ts +0 -911
- package/dist/ts/schedule/renderer/view-base.d.ts +0 -83
- package/dist/ts/schedule/renderer/view-base.ts +0 -709
- package/dist/ts/schedule/renderer/week.d.ts +0 -22
- package/dist/ts/schedule/renderer/week.ts +0 -35
- package/dist/ts/schedule/renderer/work-week.d.ts +0 -22
- package/dist/ts/schedule/renderer/work-week.ts +0 -36
- package/dist/ts/schedule/renderer/year.d.ts +0 -46
- package/dist/ts/schedule/renderer/year.ts +0 -470
- package/dist/ts/schedule/timezone/timezone.d.ts +0 -16
- 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
|
-
}
|