@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.
- 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 +7 -3
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +6 -2
- 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 +18 -53
- package/src/schedule/actions/virtual-scroll.js +5 -1
- 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,22 +0,0 @@
|
|
|
1
|
-
import { Schedule } from '../base/schedule';
|
|
2
|
-
import { VerticalView } from './vertical-view';
|
|
3
|
-
/**
|
|
4
|
-
* week view
|
|
5
|
-
*/
|
|
6
|
-
export declare class Week extends VerticalView {
|
|
7
|
-
viewClass: string;
|
|
8
|
-
/**
|
|
9
|
-
* Constructor for week view
|
|
10
|
-
*
|
|
11
|
-
* @param {Schedule} parent Accepts the schedule instance
|
|
12
|
-
*/
|
|
13
|
-
constructor(parent: Schedule);
|
|
14
|
-
startDate(): Date;
|
|
15
|
-
endDate(): Date;
|
|
16
|
-
/**
|
|
17
|
-
* Get module name.
|
|
18
|
-
*
|
|
19
|
-
* @returns {string} Returns the module name.
|
|
20
|
-
*/
|
|
21
|
-
protected getModuleName(): string;
|
|
22
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Schedule } from '../base/schedule';
|
|
2
|
-
import { VerticalView } from './vertical-view';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* week view
|
|
6
|
-
*/
|
|
7
|
-
export class Week extends VerticalView {
|
|
8
|
-
public viewClass: string = 'e-week-view';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Constructor for week view
|
|
12
|
-
*
|
|
13
|
-
* @param {Schedule} parent Accepts the schedule instance
|
|
14
|
-
*/
|
|
15
|
-
constructor(parent: Schedule) {
|
|
16
|
-
super(parent);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public startDate(): Date {
|
|
20
|
-
return this.getViewStartDate();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public endDate(): Date {
|
|
24
|
-
return this.getViewEndDate();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Get module name.
|
|
29
|
-
*
|
|
30
|
-
* @returns {string} Returns the module name.
|
|
31
|
-
*/
|
|
32
|
-
protected getModuleName(): string {
|
|
33
|
-
return 'week';
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Schedule } from '../base/schedule';
|
|
2
|
-
import { VerticalView } from './vertical-view';
|
|
3
|
-
/**
|
|
4
|
-
* work week view
|
|
5
|
-
*/
|
|
6
|
-
export declare class WorkWeek extends VerticalView {
|
|
7
|
-
viewClass: string;
|
|
8
|
-
/**
|
|
9
|
-
* Constructor for work week view
|
|
10
|
-
*
|
|
11
|
-
* @param {Schedule} parent Accepts the schedule instance
|
|
12
|
-
*/
|
|
13
|
-
constructor(parent: Schedule);
|
|
14
|
-
startDate(): Date;
|
|
15
|
-
endDate(): Date;
|
|
16
|
-
/**
|
|
17
|
-
* Get module name.
|
|
18
|
-
*
|
|
19
|
-
* @returns {string} Returns the module name.
|
|
20
|
-
*/
|
|
21
|
-
protected getModuleName(): string;
|
|
22
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Schedule } from '../base/schedule';
|
|
2
|
-
import { VerticalView } from './vertical-view';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* work week view
|
|
6
|
-
*/
|
|
7
|
-
export class WorkWeek extends VerticalView {
|
|
8
|
-
public viewClass: string = 'e-work-week-view';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Constructor for work week view
|
|
12
|
-
*
|
|
13
|
-
* @param {Schedule} parent Accepts the schedule instance
|
|
14
|
-
*/
|
|
15
|
-
constructor(parent: Schedule) {
|
|
16
|
-
super(parent);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public startDate(): Date {
|
|
20
|
-
return this.getViewStartDate();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public endDate(): Date {
|
|
24
|
-
return this.getViewEndDate();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Get module name.
|
|
29
|
-
*
|
|
30
|
-
* @returns {string} Returns the module name.
|
|
31
|
-
*/
|
|
32
|
-
protected getModuleName(): string {
|
|
33
|
-
return 'workWeek';
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Schedule } from '../base/schedule';
|
|
2
|
-
import { ViewBase } from './view-base';
|
|
3
|
-
import { IRenderer, TdData, NotifyEventArgs } from '../base/interface';
|
|
4
|
-
import { NavigationDirection } from '../base/type';
|
|
5
|
-
/**
|
|
6
|
-
* year view
|
|
7
|
-
*/
|
|
8
|
-
export declare class Year extends ViewBase implements IRenderer {
|
|
9
|
-
viewClass: string;
|
|
10
|
-
isInverseTableSelect: boolean;
|
|
11
|
-
colLevels: TdData[][];
|
|
12
|
-
rowCount: number;
|
|
13
|
-
columnCount: number;
|
|
14
|
-
private yearEventModule;
|
|
15
|
-
constructor(parent: Schedule);
|
|
16
|
-
protected getModuleName(): string;
|
|
17
|
-
renderLayout(className: string): void;
|
|
18
|
-
renderHeader(headerWrapper: HTMLElement): void;
|
|
19
|
-
renderContent(content: HTMLElement): void;
|
|
20
|
-
renderCalendarHeader(currentDate: Date): HTMLElement;
|
|
21
|
-
renderCalendarContent(currentDate: Date): HTMLElement;
|
|
22
|
-
createTableColGroup(count: number): HTMLElement;
|
|
23
|
-
getMonthName(date: Date): string;
|
|
24
|
-
generateColumnLevels(): TdData[][];
|
|
25
|
-
getDateSlots(renderDates: Date[], workDays: number[], startHour?: string, endHour?: string): TdData[];
|
|
26
|
-
getMonthDates(date: Date): Date[];
|
|
27
|
-
getRowColumnCount(type: string): number;
|
|
28
|
-
isCurrentDate(date: Date): boolean;
|
|
29
|
-
getMonths(): number[];
|
|
30
|
-
private renderTemplates;
|
|
31
|
-
private onCellClick;
|
|
32
|
-
onContentScroll(e: Event): void;
|
|
33
|
-
onScrollUiUpdate(args: NotifyEventArgs): void;
|
|
34
|
-
getStartDate(): Date;
|
|
35
|
-
getEndDate(): Date;
|
|
36
|
-
startDate(): Date;
|
|
37
|
-
endDate(): Date;
|
|
38
|
-
getEndDateFromStartDate(start: Date): Date;
|
|
39
|
-
getNextPreviousDate(type: NavigationDirection): Date;
|
|
40
|
-
getDateRangeText(date?: Date, dateCollection?: Date[]): string;
|
|
41
|
-
addEventListener(): void;
|
|
42
|
-
removeEventListener(): void;
|
|
43
|
-
onDataReady(args: NotifyEventArgs): void;
|
|
44
|
-
scrollToDate(scrollDate: Date): void;
|
|
45
|
-
destroy(): void;
|
|
46
|
-
}
|
|
@@ -1,470 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { EventHandler, formatUnit, createElement, addClass, closest, prepend, append, extend, isNullOrUndefined } from '@syncfusion/ej2-base';
|
|
3
|
-
import { Schedule } from '../base/schedule';
|
|
4
|
-
import { ViewBase } from './view-base';
|
|
5
|
-
import { IRenderer, EventClickArgs, TdData, NotifyEventArgs, CellTemplateArgs, CallbackFunction, CellClickEventArgs } from '../base/interface';
|
|
6
|
-
import { YearEvent } from '../event-renderer/year';
|
|
7
|
-
import * as util from '../base/util';
|
|
8
|
-
import * as event from '../base/constant';
|
|
9
|
-
import * as cls from '../base/css-constant';
|
|
10
|
-
import { NavigationDirection } from '../base/type';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* year view
|
|
14
|
-
*/
|
|
15
|
-
export class Year extends ViewBase implements IRenderer {
|
|
16
|
-
public viewClass: string = 'e-year-view';
|
|
17
|
-
public isInverseTableSelect: boolean = false;
|
|
18
|
-
public colLevels: TdData[][];
|
|
19
|
-
public rowCount: number;
|
|
20
|
-
public columnCount: number;
|
|
21
|
-
private yearEventModule: YearEvent = null;
|
|
22
|
-
|
|
23
|
-
constructor(parent: Schedule) {
|
|
24
|
-
super(parent);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
protected getModuleName(): string {
|
|
28
|
-
return 'year';
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
public renderLayout(className: string): void {
|
|
32
|
-
if (this.parent.resourceBase) {
|
|
33
|
-
this.parent.resourceBase.generateResourceLevels([(<TdData>{ renderDates: this.parent.activeView.renderDates })]);
|
|
34
|
-
}
|
|
35
|
-
this.setPanel(createElement('div', { className: cls.TABLE_WRAP_CLASS }));
|
|
36
|
-
const viewTypeClass: string = this.parent.activeViewOptions.orientation === 'Horizontal' ? 'e-horizontal' : 'e-vertical';
|
|
37
|
-
addClass([this.element], [this.viewClass, viewTypeClass, className]);
|
|
38
|
-
this.renderPanel(className);
|
|
39
|
-
if (this.parent.activeViewOptions.allowVirtualScrolling) {
|
|
40
|
-
addClass([this.element], [cls.VIRTUAL_SCROLL_CLASS]);
|
|
41
|
-
}
|
|
42
|
-
const calendarTable: HTMLElement = this.createTableLayout(cls.OUTER_TABLE_CLASS) as HTMLElement;
|
|
43
|
-
this.element.appendChild(calendarTable);
|
|
44
|
-
this.element.querySelector('table').setAttribute('role', 'presentation');
|
|
45
|
-
const calendarTBody: HTMLElement = calendarTable.querySelector('tbody');
|
|
46
|
-
this.rowCount = this.getRowColumnCount('row');
|
|
47
|
-
this.columnCount = this.getRowColumnCount('column');
|
|
48
|
-
this.renderHeader(calendarTBody);
|
|
49
|
-
this.renderContent(calendarTBody);
|
|
50
|
-
if (this.parent.currentView !== 'Year' && this.parent.uiStateValues.isGroupAdaptive) {
|
|
51
|
-
this.generateColumnLevels();
|
|
52
|
-
this.renderResourceMobileLayout();
|
|
53
|
-
}
|
|
54
|
-
EventHandler.add(this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS), 'scroll', this.onContentScroll, this);
|
|
55
|
-
this.parent.notify(event.contentReady, {});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
59
|
-
public renderHeader(headerWrapper: HTMLElement): void { /** */ }
|
|
60
|
-
|
|
61
|
-
public renderContent(content: HTMLElement): void {
|
|
62
|
-
const tr: HTMLElement = createElement('tr');
|
|
63
|
-
content.appendChild(tr);
|
|
64
|
-
const td: HTMLElement = createElement('td');
|
|
65
|
-
tr.appendChild(td);
|
|
66
|
-
this.element.querySelector('tbody').appendChild(tr);
|
|
67
|
-
const contentWrapper: HTMLElement = createElement('div', { className: cls.CONTENT_WRAP_CLASS });
|
|
68
|
-
td.appendChild(contentWrapper);
|
|
69
|
-
const calendarTable: HTMLElement = this.createTableLayout('e-calendar-table') as HTMLElement;
|
|
70
|
-
contentWrapper.appendChild(calendarTable);
|
|
71
|
-
const cTr: HTMLElement = createElement('tr');
|
|
72
|
-
calendarTable.querySelector('tbody').appendChild(cTr);
|
|
73
|
-
const cTd: HTMLElement = createElement('td');
|
|
74
|
-
cTr.appendChild(cTd);
|
|
75
|
-
const calendarWrapper: HTMLElement = createElement('div', { className: 'e-calendar-wrapper' });
|
|
76
|
-
cTd.appendChild(calendarWrapper);
|
|
77
|
-
const months: number[] = this.getMonths();
|
|
78
|
-
for (const month of months) {
|
|
79
|
-
const currentMonth: Date = new Date(this.parent.selectedDate.getFullYear(), month, 1);
|
|
80
|
-
const calendarElement: HTMLElement = createElement('div', {
|
|
81
|
-
className: 'e-month-calendar e-calendar',
|
|
82
|
-
attrs: { 'data-role': 'calendar' }
|
|
83
|
-
});
|
|
84
|
-
calendarElement.appendChild(this.renderCalendarHeader(currentMonth));
|
|
85
|
-
calendarElement.appendChild(this.renderCalendarContent(currentMonth));
|
|
86
|
-
calendarWrapper.appendChild(calendarElement);
|
|
87
|
-
}
|
|
88
|
-
this.renderDates.splice(0, 1);
|
|
89
|
-
}
|
|
90
|
-
public renderCalendarHeader(currentDate: Date): HTMLElement {
|
|
91
|
-
const headerWrapper: HTMLElement = createElement('div', { className: 'e-header e-month' });
|
|
92
|
-
const headerContent: HTMLElement = createElement('div', { className: 'e-day e-title' });
|
|
93
|
-
if (this.parent.activeViewOptions.monthHeaderTemplate) {
|
|
94
|
-
const args: CellTemplateArgs = { date: currentDate, type: 'monthHeader' };
|
|
95
|
-
this.renderTemplates(this.parent.getMonthHeaderTemplate(), args, 'monthHeaderTemplate',
|
|
96
|
-
this.parent.activeViewOptions.monthHeaderTemplateName, headerContent);
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
headerContent.innerHTML = this.getMonthName(currentDate);
|
|
100
|
-
}
|
|
101
|
-
headerWrapper.appendChild(headerContent);
|
|
102
|
-
this.parent.trigger(event.renderCell, { elementType: 'headerCells', element: headerContent, date: currentDate });
|
|
103
|
-
return headerWrapper;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
public renderCalendarContent(currentDate: Date): HTMLElement {
|
|
107
|
-
const dateCollection: Date[] = this.getMonthDates(currentDate);
|
|
108
|
-
const contentWrapper: HTMLElement = createElement('div', { className: 'e-content e-month' });
|
|
109
|
-
const contentTable: HTMLElement = this.createTableLayout('e-calendar-table ' + cls.CONTENT_TABLE_CLASS) as HTMLElement;
|
|
110
|
-
contentWrapper.appendChild(contentTable);
|
|
111
|
-
this.setAriaAttributes(contentTable);
|
|
112
|
-
const thead: HTMLElement = createElement('thead', { className: 'e-week-header' });
|
|
113
|
-
const tr: HTMLElement = createElement('tr');
|
|
114
|
-
let currentWeek: Date = util.getWeekFirstDate(util.firstDateOfMonth(currentDate), this.parent.activeViewOptions.firstDayOfWeek);
|
|
115
|
-
if (this.parent.activeViewOptions.showWeekNumber) {
|
|
116
|
-
tr.appendChild(createElement('th'));
|
|
117
|
-
}
|
|
118
|
-
for (let i: number = 0; i < util.WEEK_LENGTH; i++) {
|
|
119
|
-
if (this.parent.activeViewOptions.dayHeaderTemplate) {
|
|
120
|
-
const th: HTMLElement = createElement('th');
|
|
121
|
-
const args: CellTemplateArgs = { date: currentWeek, type: 'dayHeader' };
|
|
122
|
-
this.renderTemplates(this.parent.getDayHeaderTemplate(), args, 'dayHeaderTemplate',
|
|
123
|
-
this.parent.activeViewOptions.dayHeaderTemplateName, th);
|
|
124
|
-
tr.appendChild(th);
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
tr.appendChild(createElement('th', { innerHTML: this.parent.getDayNames('narrow')[currentWeek.getDay()] }));
|
|
128
|
-
}
|
|
129
|
-
const nextDay: Date = new Date(currentWeek.getTime() + util.MS_PER_DAY);
|
|
130
|
-
currentWeek = nextDay.getDate() === currentWeek.getDate() ? util.addDays(nextDay, 1) : nextDay;
|
|
131
|
-
}
|
|
132
|
-
thead.appendChild(tr);
|
|
133
|
-
prepend([thead], contentTable);
|
|
134
|
-
const tbody: HTMLTableSectionElement = contentTable.querySelector('tbody');
|
|
135
|
-
while (dateCollection.length > 0) {
|
|
136
|
-
const weekDates: Date[] = dateCollection.splice(0, util.WEEK_LENGTH);
|
|
137
|
-
const tr: HTMLElement = createElement('tr');
|
|
138
|
-
if (this.parent.activeViewOptions.showWeekNumber) {
|
|
139
|
-
const weekNumber: string = this.parent.getWeekNumberContent(weekDates);
|
|
140
|
-
const td: HTMLElement = createElement('td', {
|
|
141
|
-
className: 'e-week-number',
|
|
142
|
-
attrs: { 'title': this.parent.localeObj.getConstant('week') + ' ' + weekNumber },
|
|
143
|
-
innerHTML: weekNumber
|
|
144
|
-
});
|
|
145
|
-
tr.appendChild(td);
|
|
146
|
-
this.parent.trigger(event.renderCell, { elementType: 'weekNumberCells', element: td });
|
|
147
|
-
}
|
|
148
|
-
for (const date of weekDates) {
|
|
149
|
-
const td: HTMLElement = createElement('td', {
|
|
150
|
-
className: 'e-cell ' + cls.WORK_CELLS_CLASS,
|
|
151
|
-
attrs: { 'data-date': date.getTime().toString() }
|
|
152
|
-
});
|
|
153
|
-
if (this.parent.activeViewOptions.cellHeaderTemplate) {
|
|
154
|
-
const args: CellTemplateArgs = { date: date, type: 'monthCells' };
|
|
155
|
-
this.renderTemplates(this.parent.getCellHeaderTemplate(), args, 'cellHeaderTemplate',
|
|
156
|
-
this.parent.activeViewOptions.cellHeaderTemplateName, td);
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
const span: HTMLElement = createElement('span', {
|
|
160
|
-
className: 'e-day', innerHTML: this.parent.globalize.formatDate(date, { skeleton: 'd', calendar: this.parent.getCalendarMode() }),
|
|
161
|
-
attrs: { title: this.parent.globalize.formatDate(date, { type: 'date', skeleton: 'full' }) }
|
|
162
|
-
});
|
|
163
|
-
td.appendChild(span);
|
|
164
|
-
}
|
|
165
|
-
if (this.parent.activeViewOptions.cellTemplate) {
|
|
166
|
-
const args: CellTemplateArgs = { date: date, type: 'monthCells' };
|
|
167
|
-
this.renderTemplates(this.parent.getCellTemplate(), args, 'cellTemplate',
|
|
168
|
-
this.parent.activeViewOptions.cellTemplateName, td);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
let classList: string[] = [];
|
|
172
|
-
if (currentDate.getMonth() !== date.getMonth()) {
|
|
173
|
-
classList.push(cls.OTHERMONTH_CLASS);
|
|
174
|
-
if (td.firstElementChild && !this.parent.activeViewOptions.cellTemplate) {
|
|
175
|
-
td.firstElementChild.setAttribute('aria-disabled', 'true');
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
if (this.isCurrentDate(date) && currentDate.getMonth() === date.getMonth()) {
|
|
179
|
-
classList = classList.concat(['e-today', 'e-selected']);
|
|
180
|
-
}
|
|
181
|
-
if (classList.length > 0) {
|
|
182
|
-
addClass([td], classList);
|
|
183
|
-
}
|
|
184
|
-
tr.appendChild(td);
|
|
185
|
-
if (currentDate.getMonth() === date.getMonth()) {
|
|
186
|
-
this.renderDates.push(new Date(date));
|
|
187
|
-
}
|
|
188
|
-
if (!this.parent.isMinMaxDate(date)) {
|
|
189
|
-
addClass([td], cls.DISABLE_DATES);
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
EventHandler.add(td, 'click', this.onCellClick, this);
|
|
193
|
-
if (!this.parent.isAdaptive) {
|
|
194
|
-
EventHandler.add(td, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
this.parent.trigger(event.renderCell, { elementType: 'workCells', element: td, date: date });
|
|
198
|
-
}
|
|
199
|
-
tbody.appendChild(tr);
|
|
200
|
-
}
|
|
201
|
-
return contentWrapper;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
public createTableColGroup(count: number): HTMLElement {
|
|
205
|
-
const colGroupEle: HTMLElement = createElement('colgroup');
|
|
206
|
-
for (let i: number = 0; i < count; i++) {
|
|
207
|
-
colGroupEle.appendChild(createElement('col'));
|
|
208
|
-
}
|
|
209
|
-
return colGroupEle;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
public getMonthName(date: Date): string {
|
|
213
|
-
const month: string = this.parent.globalize.formatDate(date, {
|
|
214
|
-
format: this.parent.activeViewOptions.dateFormat || 'MMMM y',
|
|
215
|
-
calendar: this.parent.getCalendarMode()
|
|
216
|
-
});
|
|
217
|
-
return util.capitalizeFirstWord(month, 'multiple');
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
public generateColumnLevels(): TdData[][] {
|
|
221
|
-
let colLevels: TdData[][] = [];
|
|
222
|
-
const level: TdData[] = this.getDateSlots([this.parent.selectedDate], this.parent.activeViewOptions.workDays);
|
|
223
|
-
if (this.parent.activeViewOptions.group.resources.length > 0) {
|
|
224
|
-
colLevels = this.parent.resourceBase.generateResourceLevels(level);
|
|
225
|
-
if (this.parent.uiStateValues.isGroupAdaptive) {
|
|
226
|
-
const resourceLevel: TdData = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];
|
|
227
|
-
colLevels = [this.getDateSlots([this.parent.selectedDate], resourceLevel.workDays)];
|
|
228
|
-
}
|
|
229
|
-
} else {
|
|
230
|
-
colLevels.push(level);
|
|
231
|
-
}
|
|
232
|
-
colLevels.pop();
|
|
233
|
-
this.colLevels = colLevels;
|
|
234
|
-
return colLevels;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
// eslint-disable-next-line max-len
|
|
238
|
-
public getDateSlots(renderDates: Date[], workDays: number[], startHour: string = this.parent.workHours.start, endHour: string = this.parent.workHours.end): TdData[] {
|
|
239
|
-
const dateCol: TdData[] = [{
|
|
240
|
-
date: renderDates[0], type: 'dateHeader', className: [cls.HEADER_CELLS_CLASS], colSpan: 1, workDays: workDays,
|
|
241
|
-
startHour: new Date(+this.parent.globalize.parseDate(startHour, { skeleton: 'Hm' })),
|
|
242
|
-
endHour: new Date(+this.parent.globalize.parseDate(endHour, { skeleton: 'Hm' }))
|
|
243
|
-
}];
|
|
244
|
-
return dateCol;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
public getMonthDates(date: Date): Date[] {
|
|
248
|
-
const startDate: Date = util.getWeekFirstDate(util.firstDateOfMonth(date), this.parent.activeViewOptions.firstDayOfWeek);
|
|
249
|
-
const endDate: Date = util.addDays(new Date(+startDate), (6 * util.WEEK_LENGTH));
|
|
250
|
-
const dateCollection: Date[] = [];
|
|
251
|
-
for (let start: Date = startDate; start.getTime() < endDate.getTime(); start = util.addDays(start, 1)) {
|
|
252
|
-
dateCollection.push(util.resetTime(new Date(start)));
|
|
253
|
-
}
|
|
254
|
-
return dateCollection;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
public getRowColumnCount(type: string): number {
|
|
258
|
-
const months: number[] = this.getMonths();
|
|
259
|
-
const year: number = this.parent.selectedDate.getFullYear();
|
|
260
|
-
const monthDaysCount: number[] = [];
|
|
261
|
-
for (const month of months) {
|
|
262
|
-
monthDaysCount.push(new Date(year, month, 1).getDay() + new Date(year, month + 1, 0).getDate());
|
|
263
|
-
}
|
|
264
|
-
const maxCount: number = Math.max(...monthDaysCount);
|
|
265
|
-
let count: number;
|
|
266
|
-
if (type === 'row') {
|
|
267
|
-
count = this.parent.activeViewOptions.orientation === 'Horizontal' ? months.length : maxCount;
|
|
268
|
-
} else {
|
|
269
|
-
count = this.parent.activeViewOptions.orientation === 'Horizontal' ? maxCount : months.length;
|
|
270
|
-
}
|
|
271
|
-
return count;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
public isCurrentDate(date: Date): boolean {
|
|
275
|
-
return util.resetTime(new Date()).getTime() === util.resetTime(new Date(date.getTime())).getTime();
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
public getMonths(): number[] {
|
|
279
|
-
// eslint-disable-next-line prefer-spread
|
|
280
|
-
return Array.apply(null, { length: this.parent.activeViewOptions.monthsCount }).map((value: number, index: number) =>
|
|
281
|
-
this.parent.firstMonthOfYear + index);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
private renderTemplates(fn: CallbackFunction, args: CellTemplateArgs, tName: string, vName: string, ele: HTMLElement): void {
|
|
285
|
-
const templateId: string = this.parent.element.id + '_' + vName + tName;
|
|
286
|
-
const template: HTMLElement[] =
|
|
287
|
-
[].slice.call(fn(args, this.parent, tName, templateId, false, undefined, undefined, this.parent.root));
|
|
288
|
-
append(template, ele);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
private onCellClick(e: Event): void {
|
|
292
|
-
let target: Element = closest((e.target as Element), '.' + cls.WORK_CELLS_CLASS);
|
|
293
|
-
const startDate: Date = this.parent.getDateFromElement(target);
|
|
294
|
-
this.parent.activeCellsData = this.parent.getCellDetails(target);
|
|
295
|
-
const isPrevious: boolean = startDate.getTime() < this.getStartDate().getTime();
|
|
296
|
-
if (isPrevious || startDate.getTime() > this.getEndDate().getTime()) {
|
|
297
|
-
this.parent.changeDate(this.parent.activeView.getNextPreviousDate(isPrevious ? 'Previous' : 'Next'), e);
|
|
298
|
-
const activeDate: number = this.parent.activeCellsData.startTime.getTime();
|
|
299
|
-
const inRange: boolean = activeDate >= this.getStartDate().getTime() && activeDate <= this.getEndDate().getTime();
|
|
300
|
-
const dateAttr: number = inRange ? activeDate : (isPrevious ? this.getEndDate() : this.getStartDate()).getTime();
|
|
301
|
-
const selectedCell: HTMLTableCellElement = this.parent.element.querySelector(':not(.' + cls.OTHERMONTH_CLASS + ')[data-date="' + dateAttr + '"]');
|
|
302
|
-
this.parent.selectCell(selectedCell);
|
|
303
|
-
this.parent.activeCellsData = this.parent.getCellDetails(selectedCell);
|
|
304
|
-
} else {
|
|
305
|
-
const endDate: Date = util.addDays(new Date(startDate.getTime()), 1);
|
|
306
|
-
const filteredEvents: Record<string, any>[] = this.parent.eventBase.filterEvents(startDate, endDate);
|
|
307
|
-
const moreEventArgs: EventClickArgs = { date: startDate, event: filteredEvents, element: e.target } as EventClickArgs;
|
|
308
|
-
if (target.classList.contains(cls.OTHERMONTH_CLASS)) {
|
|
309
|
-
target = this.parent.element.querySelector(':not(.' + cls.OTHERMONTH_CLASS + ')[data-date="' + target.getAttribute('data-date') + '"]') as HTMLTableCellElement;
|
|
310
|
-
}
|
|
311
|
-
this.parent.activeCellsData = this.parent.getCellDetails(target);
|
|
312
|
-
const args: CellClickEventArgs =
|
|
313
|
-
<CellClickEventArgs>extend(this.parent.activeCellsData, { cancel: false, event: e, name: 'cellClick' });
|
|
314
|
-
this.parent.trigger(event.cellClick, args);
|
|
315
|
-
this.parent.quickPopup.moreEventClick(moreEventArgs, endDate);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
public onContentScroll(e: Event): void {
|
|
320
|
-
const target: HTMLElement = e.target as HTMLElement;
|
|
321
|
-
const headerWrapper: HTMLElement = this.getDatesHeaderElement();
|
|
322
|
-
this.parent.notify(event.virtualScroll, e);
|
|
323
|
-
if (headerWrapper) {
|
|
324
|
-
(<HTMLElement>headerWrapper.firstElementChild).scrollLeft = target.scrollLeft;
|
|
325
|
-
}
|
|
326
|
-
const scrollTopSelector: string = `.${cls.MONTH_HEADER_WRAPPER},.${cls.RESOURCE_COLUMN_WRAP_CLASS}`;
|
|
327
|
-
const scrollTopElement: HTMLElement = this.element.querySelector(scrollTopSelector) as HTMLElement;
|
|
328
|
-
if (scrollTopElement) {
|
|
329
|
-
scrollTopElement.scrollTop = target.scrollTop;
|
|
330
|
-
}
|
|
331
|
-
if (!this.parent.isAdaptive) {
|
|
332
|
-
this.parent.uiStateValues.top = (e.target as HTMLElement).scrollTop;
|
|
333
|
-
}
|
|
334
|
-
this.parent.uiStateValues.left = (e.target as HTMLElement).scrollLeft;
|
|
335
|
-
this.setPersistence();
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
public onScrollUiUpdate(args: NotifyEventArgs): void {
|
|
339
|
-
let height: number = this.parent.element.offsetHeight - this.getHeaderBarHeight();
|
|
340
|
-
const headerWrapper: HTMLElement = this.element.querySelector('.' + cls.DATE_HEADER_CONTAINER_CLASS) as HTMLElement;
|
|
341
|
-
if (headerWrapper) {
|
|
342
|
-
height -= headerWrapper.offsetHeight;
|
|
343
|
-
}
|
|
344
|
-
const contentWrapper: HTMLElement = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS) as HTMLElement;
|
|
345
|
-
if (contentWrapper) {
|
|
346
|
-
contentWrapper.style.height = formatUnit(height);
|
|
347
|
-
}
|
|
348
|
-
if (!this.parent.isAdaptive && headerWrapper) {
|
|
349
|
-
const scrollBarWidth: number = util.getScrollBarWidth();
|
|
350
|
-
if (contentWrapper.offsetWidth - contentWrapper.clientWidth > 0) {
|
|
351
|
-
(headerWrapper.firstElementChild as HTMLElement).style[<any>args.cssProperties.border] = scrollBarWidth > 0 ? '1px' : '0px';
|
|
352
|
-
headerWrapper.style[<any>args.cssProperties.padding] = scrollBarWidth > 0 ? scrollBarWidth - 1 + 'px' : '0px';
|
|
353
|
-
} else {
|
|
354
|
-
(headerWrapper.firstElementChild as HTMLElement).style[<any>args.cssProperties.border] = '';
|
|
355
|
-
headerWrapper.style[<any>args.cssProperties.padding] = '';
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
this.setColWidth(this.getContentAreaElement());
|
|
359
|
-
const leftPanelSelector: string = `.${cls.MONTH_HEADER_WRAPPER},.${cls.RESOURCE_COLUMN_WRAP_CLASS}`;
|
|
360
|
-
const leftPanelElement: HTMLElement = this.element.querySelector(leftPanelSelector) as HTMLElement;
|
|
361
|
-
if (leftPanelElement) {
|
|
362
|
-
const isYScroll: boolean = contentWrapper.scrollWidth > contentWrapper.clientWidth;
|
|
363
|
-
leftPanelElement.style.height = formatUnit(height - (isYScroll ? 17 : 0));
|
|
364
|
-
}
|
|
365
|
-
if (!args.isPreventScrollUpdate) {
|
|
366
|
-
if (this.parent.uiStateValues.isInitial) {
|
|
367
|
-
this.parent.uiStateValues.isInitial = false;
|
|
368
|
-
this.parent.uiStateValues.top = this.parent.uiStateValues.left = 0;
|
|
369
|
-
} else {
|
|
370
|
-
if (leftPanelElement) {
|
|
371
|
-
leftPanelElement.scrollTop = this.parent.uiStateValues.top;
|
|
372
|
-
}
|
|
373
|
-
contentWrapper.scrollTop = this.parent.uiStateValues.top;
|
|
374
|
-
contentWrapper.scrollLeft = this.parent.uiStateValues.left;
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
this.retainScrollPosition();
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
public getStartDate(): Date {
|
|
381
|
-
return new Date(this.parent.selectedDate.getFullYear(), this.parent.firstMonthOfYear % 12, 1);
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
public getEndDate(): Date {
|
|
385
|
-
return util.addDays(util.addMonths(this.getStartDate(), this.parent.monthsCount), -1);
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
public startDate(): Date {
|
|
389
|
-
return this.parent.currentView === 'Year' ? util.getWeekFirstDate(this.getStartDate(), this.parent.activeViewOptions.firstDayOfWeek) : this.getStartDate();
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
public endDate(): Date {
|
|
393
|
-
return this.parent.currentView === 'Year' ? util.addDays(util.getWeekLastDate(this.getEndDate(), this.parent.activeViewOptions.firstDayOfWeek), 1) :
|
|
394
|
-
util.addDays(this.getEndDate(), 1);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
public getEndDateFromStartDate(start: Date): Date {
|
|
398
|
-
let date: Date = new Date(start.getTime());
|
|
399
|
-
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
400
|
-
date = util.lastDateOfMonth(date);
|
|
401
|
-
}
|
|
402
|
-
return util.addDays(new Date(date.getTime()), 1);
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
public getNextPreviousDate(type: NavigationDirection): Date {
|
|
406
|
-
return util.addYears(this.parent.selectedDate, ((type === 'Next') ? 1 : -1));
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
public getDateRangeText(date: Date = this.parent.selectedDate, dateCollection: Date[] = null): string {
|
|
410
|
-
const isDateColAvail: boolean = !isNullOrUndefined(dateCollection) && dateCollection.length > 0;
|
|
411
|
-
const startDate: Date = isDateColAvail ? dateCollection[0] : this.getStartDate();
|
|
412
|
-
const endDate: Date = isDateColAvail ? dateCollection[dateCollection.length - 1] : this.getEndDate();
|
|
413
|
-
if (startDate.getFullYear() !== endDate.getFullYear()) {
|
|
414
|
-
return this.parent.globalize.formatDate(startDate, { format: 'MMM y', calendar: this.parent.getCalendarMode() })
|
|
415
|
-
+ ' - ' + this.parent.globalize.formatDate(endDate, { format: 'MMM y', calendar: this.parent.getCalendarMode() });
|
|
416
|
-
}
|
|
417
|
-
else {
|
|
418
|
-
return this.parent.globalize.formatDate(isDateColAvail ? dateCollection[0] : date, { skeleton: 'y', calendar: this.parent.getCalendarMode() });
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
public addEventListener(): void {
|
|
423
|
-
this.parent.on(event.scrollUiUpdate, this.onScrollUiUpdate, this);
|
|
424
|
-
this.parent.on(event.dataReady, this.onDataReady, this);
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
public removeEventListener(): void {
|
|
428
|
-
if (this.parent) {
|
|
429
|
-
this.parent.off(event.scrollUiUpdate, this.onScrollUiUpdate);
|
|
430
|
-
this.parent.off(event.dataReady, this.onDataReady);
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
public onDataReady(args: NotifyEventArgs): void {
|
|
435
|
-
this.yearEventModule = new YearEvent(this.parent);
|
|
436
|
-
this.yearEventModule.renderAppointments();
|
|
437
|
-
this.parent.notify(event.eventsLoaded, args);
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
public scrollToDate(scrollDate: Date): void {
|
|
441
|
-
const date: number = +new Date(util.resetTime(scrollDate));
|
|
442
|
-
let element: HTMLElement = this.element.querySelector('.' + cls.WORK_CELLS_CLASS + ':not(.' + cls.OTHERMONTH_CLASS + ')[data-date="' + date + '"]');
|
|
443
|
-
if (element) {
|
|
444
|
-
element = closest(element, '.e-month-calendar') as HTMLElement;
|
|
445
|
-
this.getContentAreaElement().scrollTop = element.offsetTop;
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
public destroy(): void {
|
|
450
|
-
if (!this.parent || this.parent && this.parent.isDestroyed) {
|
|
451
|
-
this.parent = null;
|
|
452
|
-
return;
|
|
453
|
-
}
|
|
454
|
-
if (this.element) {
|
|
455
|
-
const contentScroll: Element = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);
|
|
456
|
-
if (contentScroll) {
|
|
457
|
-
EventHandler.remove(contentScroll, 'scroll', this.onContentScroll);
|
|
458
|
-
}
|
|
459
|
-
if (this.yearEventModule) {
|
|
460
|
-
this.yearEventModule.destroy();
|
|
461
|
-
this.yearEventModule = null;
|
|
462
|
-
}
|
|
463
|
-
if (this.parent.resourceBase) {
|
|
464
|
-
this.parent.resourceBase.destroy();
|
|
465
|
-
}
|
|
466
|
-
super.destroy();
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { TimezoneFields } from '../base/interface';
|
|
2
|
-
/**
|
|
3
|
-
* Time zone
|
|
4
|
-
*/
|
|
5
|
-
export declare class Timezone {
|
|
6
|
-
timezoneData: TimezoneFields[];
|
|
7
|
-
constructor();
|
|
8
|
-
offset(date: Date, timezone: string): number;
|
|
9
|
-
convert(date: Date, fromOffset: number | string, toOffset: number | string): Date;
|
|
10
|
-
add(date: Date, timezone: string): Date;
|
|
11
|
-
remove(date: Date, timezone: string): Date;
|
|
12
|
-
removeLocalOffset(date: Date): Date;
|
|
13
|
-
getLocalTimezoneName(): string;
|
|
14
|
-
private getTimezoneData;
|
|
15
|
-
}
|
|
16
|
-
export declare const timezoneData: TimezoneFields[];
|