@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,233 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { print as basePrint, createElement, isNullOrUndefined, Browser } from '@syncfusion/ej2-base';
|
|
3
|
-
import { Schedule } from '../base/schedule';
|
|
4
|
-
import { TimelineYear } from '../renderer/timeline-year';
|
|
5
|
-
import { Year } from '../renderer/year';
|
|
6
|
-
import { TimelineMonth } from '../renderer/timeline-month';
|
|
7
|
-
import { TimelineViews } from '../renderer/timeline-view';
|
|
8
|
-
import { MonthAgenda } from '../renderer/month-agenda';
|
|
9
|
-
import { Agenda } from '../renderer/agenda';
|
|
10
|
-
import { Month } from '../renderer/month';
|
|
11
|
-
import { WorkWeek } from '../renderer/work-week';
|
|
12
|
-
import { Week } from '../renderer/week';
|
|
13
|
-
import { Day } from '../renderer/day';
|
|
14
|
-
import { EventSettingsModel, GroupModel, TimeScaleModel, ViewsModel } from '../models/models';
|
|
15
|
-
import { ScheduleModel } from '../base/schedule-model';
|
|
16
|
-
import * as events from '../base/constant';
|
|
17
|
-
import { View } from '../base/type';
|
|
18
|
-
import { BeforePrintEventArgs } from '../base/interface';
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Print Module
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
export class Print {
|
|
25
|
-
private parent: Schedule;
|
|
26
|
-
private printInstance: Schedule;
|
|
27
|
-
private printWindow: Window;
|
|
28
|
-
|
|
29
|
-
constructor(parent: Schedule) {
|
|
30
|
-
this.parent = parent;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public print(printOptions?: ScheduleModel): void {
|
|
34
|
-
if (isNullOrUndefined(printOptions)) {
|
|
35
|
-
this.printScheduler();
|
|
36
|
-
} else {
|
|
37
|
-
this.printSchedulerWithModel(printOptions);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
private printScheduler(): void {
|
|
42
|
-
const clone: HTMLElement = this.parent.element.cloneNode(true) as HTMLElement;
|
|
43
|
-
clone.id = this.parent.element.id + '_print';
|
|
44
|
-
const args: BeforePrintEventArgs = { cancel: false, printElement: clone };
|
|
45
|
-
this.parent.trigger(events.beforePrint, args, (printElement: BeforePrintEventArgs) => {
|
|
46
|
-
if (printElement.cancel) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
document.body.appendChild(clone);
|
|
50
|
-
const className: string = this.parent.currentView === 'MonthAgenda' ? '.e-appointment-wrap' : '.e-content-wrap';
|
|
51
|
-
const scrollableEle: Element = this.parent.element.querySelector(className);
|
|
52
|
-
const links: Element[] = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('link, style'));
|
|
53
|
-
let reference: string = '';
|
|
54
|
-
for (const link of links) {
|
|
55
|
-
reference += link.outerHTML;
|
|
56
|
-
}
|
|
57
|
-
const div: Element = createElement('div');
|
|
58
|
-
clone.style.width = this.parent.element.offsetWidth + 'px';
|
|
59
|
-
const elementWidth: number = Math.round((parseInt(clone.style.width, 10)) / 100) * 100;
|
|
60
|
-
div.appendChild(clone);
|
|
61
|
-
const printWindow: Window = window.open('', 'print', 'height=550,width=' + elementWidth + ',tabbar=no');
|
|
62
|
-
printWindow.document.write('<!DOCTYPE html><html><head>' + reference + '</head><body>' + div.innerHTML +
|
|
63
|
-
'<script>(function() { window.ready = true; })();</script></body></html>');
|
|
64
|
-
printWindow.document.close();
|
|
65
|
-
printWindow.focus();
|
|
66
|
-
setTimeout(() => {
|
|
67
|
-
if ((printWindow as any).ready && scrollableEle) {
|
|
68
|
-
// eslint-disable-next-line no-self-assign
|
|
69
|
-
scrollableEle.scrollLeft = scrollableEle.scrollLeft;
|
|
70
|
-
// eslint-disable-next-line no-self-assign
|
|
71
|
-
scrollableEle.scrollTop = scrollableEle.scrollTop;
|
|
72
|
-
const headerTimeCellsScroll: HTMLElement = printWindow.document.querySelector('.e-date-header-wrap');
|
|
73
|
-
if (headerTimeCellsScroll) {
|
|
74
|
-
headerTimeCellsScroll.scrollLeft = scrollableEle.scrollLeft;
|
|
75
|
-
}
|
|
76
|
-
const timeCellsScroll: HTMLElement = printWindow.document.querySelector('.e-time-cells-wrap');
|
|
77
|
-
if (timeCellsScroll) {
|
|
78
|
-
timeCellsScroll.scrollTop = scrollableEle.scrollTop;
|
|
79
|
-
}
|
|
80
|
-
const contentCellScroll: HTMLElement = printWindow.document.querySelector(className);
|
|
81
|
-
if (contentCellScroll) {
|
|
82
|
-
contentCellScroll.scrollLeft = scrollableEle.scrollLeft;
|
|
83
|
-
contentCellScroll.scrollTop = scrollableEle.scrollTop;
|
|
84
|
-
}
|
|
85
|
-
printWindow.print();
|
|
86
|
-
printWindow.close();
|
|
87
|
-
}
|
|
88
|
-
}, 500);
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
private printSchedulerWithModel(printOptions: ScheduleModel): void {
|
|
93
|
-
const element: HTMLElement = createElement('div', { id: this.parent.element.id + '_print', className: 'e-print-schedule' });
|
|
94
|
-
document.body.appendChild(element);
|
|
95
|
-
Schedule.Inject(Day, Week, WorkWeek, Month, Agenda, MonthAgenda, TimelineViews, TimelineMonth, Year, TimelineYear);
|
|
96
|
-
this.printInstance = new Schedule(this.getPrintScheduleModel(printOptions));
|
|
97
|
-
this.printInstance.isPrinting = true;
|
|
98
|
-
this.printInstance.registeredTemplate = this.parent.registeredTemplate;
|
|
99
|
-
this.printInstance.root = this.parent.root ? this.parent.root : this.parent;
|
|
100
|
-
this.printInstance.appendTo(element);
|
|
101
|
-
const args: BeforePrintEventArgs = { cancel: false, printElement: element };
|
|
102
|
-
this.parent.trigger(events.beforePrint, args, (printElement: BeforePrintEventArgs) => {
|
|
103
|
-
if (printElement.cancel) {
|
|
104
|
-
this.printCleanup();
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
this.printInstance.on(events.print, this.contentReady, this);
|
|
108
|
-
this.printWindow = window.open('', 'print', 'height=' + window.outerHeight + ',width=' + window.outerWidth + ',tabbar=no');
|
|
109
|
-
this.printWindow.moveTo(0, 0);
|
|
110
|
-
this.printWindow.resizeTo(screen.availWidth, screen.availHeight);
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
private getPrintScheduleModel(printOptions: ScheduleModel): ScheduleModel {
|
|
115
|
-
const printModel: ScheduleModel = {};
|
|
116
|
-
const scheduleProps: string[] = ['agendaDaysCount', 'calendarMode', 'cssClass', 'currentView',
|
|
117
|
-
'dateFormat', 'enableRtl', 'endHour', 'eventSettings', 'firstDayOfWeek',
|
|
118
|
-
'firstMonthOfYear', 'group', 'height', 'locale', 'maxDate', 'minDate', 'readonly',
|
|
119
|
-
'resources', 'rowAutoHeight', 'selectedDate', 'showHeaderBar', 'showTimeIndicator', 'showWeekNumber',
|
|
120
|
-
'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'timezone', 'views', 'width', 'workDays', 'workHours',
|
|
121
|
-
'dateHeaderTemplate', 'dateRangeTemplate', 'cellHeaderTemplate', 'dayHeaderTemplate', 'monthHeaderTemplate',
|
|
122
|
-
'cellTemplate', 'resourceHeaderTemplate', 'headerIndentTemplate', 'actionBegin', 'actionComplete', 'actionFailure',
|
|
123
|
-
'created', 'dataBinding', 'dataBound', 'destroyed', 'eventRendered', 'moreEventsClick', 'navigating', 'popupOpen', 'popupClose', 'renderCell'
|
|
124
|
-
];
|
|
125
|
-
const scheduleTemplates: string[] = ['cellHeaderTemplate', 'dayHeaderTemplate', 'monthHeaderTemplate', 'cellTemplate',
|
|
126
|
-
'dateHeaderTemplate', 'dateRangeTemplate', 'eventTemplate', 'resourceHeaderTemplate', 'headerIndentTemplate'];
|
|
127
|
-
const scheduleEvents: string[] = ['actionBegin', 'actionComplete', 'actionFailure', 'created', 'dataBinding', 'dataBound',
|
|
128
|
-
'destroyed', 'eventRendered', 'moreEventsClick', 'navigating', 'popupOpen', 'popupClose', 'renderCell'];
|
|
129
|
-
let eventSettings: EventSettingsModel;
|
|
130
|
-
let group: GroupModel;
|
|
131
|
-
let timeScale: TimeScaleModel;
|
|
132
|
-
let views: View[] | ViewsModel[];
|
|
133
|
-
for (const key of scheduleProps) {
|
|
134
|
-
switch (key) {
|
|
135
|
-
case 'eventSettings': {
|
|
136
|
-
eventSettings = Object.assign({}, (this.parent.eventSettings as Record<string, any>).properties);
|
|
137
|
-
eventSettings.dataSource = this.parent.eventsData;
|
|
138
|
-
const eventTemplate: string | Function = !isNullOrUndefined(printOptions.eventSettings) &&
|
|
139
|
-
!isNullOrUndefined(printOptions.eventSettings.template) ? printOptions.eventSettings.template : eventSettings.template;
|
|
140
|
-
eventSettings.template = !this.parent.isAngular && typeof (eventTemplate) === 'function' ? null : eventTemplate;
|
|
141
|
-
printModel.eventSettings = eventSettings;
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
144
|
-
case 'group':
|
|
145
|
-
group = isNullOrUndefined(printOptions.group) ? this.parent.group : printOptions.group;
|
|
146
|
-
group.headerTooltipTemplate = null;
|
|
147
|
-
printModel.group = group;
|
|
148
|
-
break;
|
|
149
|
-
case 'timeScale':
|
|
150
|
-
timeScale = isNullOrUndefined(printOptions.timeScale) ? this.parent.timeScale : printOptions.timeScale;
|
|
151
|
-
if (!this.parent.isAngular) {
|
|
152
|
-
timeScale.majorSlotTemplate = typeof (timeScale.majorSlotTemplate) === 'function' ? null : timeScale.majorSlotTemplate;
|
|
153
|
-
timeScale.minorSlotTemplate = typeof (timeScale.minorSlotTemplate) === 'function' ? null : timeScale.minorSlotTemplate;
|
|
154
|
-
}
|
|
155
|
-
printModel.timeScale = timeScale;
|
|
156
|
-
break;
|
|
157
|
-
case 'views':
|
|
158
|
-
views = isNullOrUndefined(printOptions.views) ? this.parent.views : printOptions.views;
|
|
159
|
-
if (!this.parent.isAngular && views && views.length > 0 && typeof (views[0]) === 'object') {
|
|
160
|
-
for (const view of views) {
|
|
161
|
-
scheduleTemplates.forEach((x: string) => {
|
|
162
|
-
if (!isNullOrUndefined((view as Record<string, any>)[`${x}`])) {
|
|
163
|
-
(view as Record<string, any>)[`${x}`] = typeof ((view as Record<string, any>)[`${x}`]) === 'function' ? null : (view as Record<string, any>)[`${x}`];
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
printModel.views = views;
|
|
169
|
-
break;
|
|
170
|
-
default:
|
|
171
|
-
if (scheduleTemplates.indexOf(key) > -1) {
|
|
172
|
-
(printModel as Record<string, any>)[`${key}`] = isNullOrUndefined((printOptions as Record<string, any>)[`${key}`]) ?
|
|
173
|
-
(!this.parent.isAngular && typeof((this.parent as Record<string, any>)[`${key}`]) === 'function' ? null : (this.parent as Record<string, any>)[`${key}`]) :
|
|
174
|
-
(!this.parent.isAngular && typeof((printOptions as Record<string, any>)[`${key}`]) === 'function' ? null : (printOptions as Record<string, any>)[`${key}`]);
|
|
175
|
-
break;
|
|
176
|
-
}
|
|
177
|
-
if (scheduleEvents.indexOf(key) > -1) {
|
|
178
|
-
(printModel as Record<string, any>)[`${key}`] = (printOptions as Record<string, any>)[`${key}`];
|
|
179
|
-
break;
|
|
180
|
-
}
|
|
181
|
-
(printModel as Record<string, any>)[`${key}`] = isNullOrUndefined((printOptions as Record<string, any>)[`${key}`]) ?
|
|
182
|
-
(this.parent as Record<string, any>)[`${key}`] : (printOptions as Record<string, any>)[`${key}`];
|
|
183
|
-
break;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return printModel;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
private contentReady(): void {
|
|
190
|
-
this.printWindow = basePrint(this.printInstance.element, this.printWindow);
|
|
191
|
-
this.closePrintWindow(this.printWindow, true);
|
|
192
|
-
this.printWindow.onbeforeunload = () => {
|
|
193
|
-
this.printCleanup();
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
private closePrintWindow(printWindow: Window, cleanupRequired?: boolean): void {
|
|
198
|
-
if (Browser.isIos) {
|
|
199
|
-
const printInterval: ReturnType<typeof setInterval> = setInterval(() => {
|
|
200
|
-
if (printWindow.opener) {
|
|
201
|
-
printWindow.close();
|
|
202
|
-
} else if (isNullOrUndefined(printWindow.opener)) {
|
|
203
|
-
if (cleanupRequired) {
|
|
204
|
-
this.printCleanup();
|
|
205
|
-
}
|
|
206
|
-
clearInterval(printInterval);
|
|
207
|
-
}
|
|
208
|
-
}, 500);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
private printCleanup(): void {
|
|
213
|
-
if (this.printInstance) {
|
|
214
|
-
this.printInstance.off(events.print, this.contentReady);
|
|
215
|
-
this.printInstance.element.remove();
|
|
216
|
-
this.printInstance.destroy();
|
|
217
|
-
this.printInstance = null;
|
|
218
|
-
}
|
|
219
|
-
if (this.printWindow) {
|
|
220
|
-
this.printWindow.onbeforeunload = null;
|
|
221
|
-
this.printWindow = null;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
protected getModuleName(): string {
|
|
226
|
-
return 'print';
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
public destroy(): void {
|
|
230
|
-
this.parent = null;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schedule component exported items
|
|
3
|
-
*/
|
|
4
|
-
export * from './base/schedule';
|
|
5
|
-
export * from './base/schedule-model';
|
|
6
|
-
export * from './base/constant';
|
|
7
|
-
export * from './base/interface';
|
|
8
|
-
export * from './base/type';
|
|
9
|
-
export * from './base/util';
|
|
10
|
-
export * from './models/models';
|
|
11
|
-
export * from './actions/resize';
|
|
12
|
-
export * from './actions/drag';
|
|
13
|
-
export * from './renderer/header-renderer';
|
|
14
|
-
export * from './renderer/view-base';
|
|
15
|
-
export * from './renderer/day';
|
|
16
|
-
export * from './renderer/week';
|
|
17
|
-
export * from './renderer/work-week';
|
|
18
|
-
export * from './renderer/month';
|
|
19
|
-
export * from './renderer/year';
|
|
20
|
-
export * from './renderer/agenda';
|
|
21
|
-
export * from './renderer/month-agenda';
|
|
22
|
-
export * from './renderer/timeline-view';
|
|
23
|
-
export * from './renderer/timeline-month';
|
|
24
|
-
export * from './renderer/timeline-year';
|
|
25
|
-
export * from './timezone/timezone';
|
|
26
|
-
export * from './exports/index';
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schedule component exported items
|
|
3
|
-
*/
|
|
4
|
-
export * from './base/schedule';
|
|
5
|
-
export * from './base/schedule-model';
|
|
6
|
-
export * from './base/constant';
|
|
7
|
-
export * from './base/interface';
|
|
8
|
-
export * from './base/type';
|
|
9
|
-
export * from './base/util';
|
|
10
|
-
export * from './models/models';
|
|
11
|
-
export * from './actions/resize';
|
|
12
|
-
export * from './actions/drag';
|
|
13
|
-
export * from './renderer/header-renderer';
|
|
14
|
-
export * from './renderer/view-base';
|
|
15
|
-
export * from './renderer/day';
|
|
16
|
-
export * from './renderer/week';
|
|
17
|
-
export * from './renderer/work-week';
|
|
18
|
-
export * from './renderer/month';
|
|
19
|
-
export * from './renderer/year';
|
|
20
|
-
export * from './renderer/agenda';
|
|
21
|
-
export * from './renderer/month-agenda';
|
|
22
|
-
export * from './renderer/timeline-view';
|
|
23
|
-
export * from './renderer/timeline-month';
|
|
24
|
-
export * from './renderer/timeline-year';
|
|
25
|
-
export * from './timezone/timezone';
|
|
26
|
-
export * from './exports/index';
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';import { Query, DataManager } from '@syncfusion/ej2-data';import { SortComparerFunction } from '../base/interface';import { SpannedEventPlacement } from '../base/type';import { Field } from './fields';import { FieldModel } from './fields-model';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Interface for a class EventSettings
|
|
5
|
-
*/
|
|
6
|
-
export interface EventSettingsModel {
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* It accepts either the string or HTMLElement as template design content and parse it appropriately before displaying
|
|
10
|
-
* it onto the event background. All the event fields mapped to Schedule from dataSource can be accessed within this template code.
|
|
11
|
-
* {% codeBlock src="schedule/event-template-api/index.ts" %}{% endcodeBlock %}
|
|
12
|
-
*
|
|
13
|
-
* @default null
|
|
14
|
-
* @angularType string | object
|
|
15
|
-
* @reactType string | function | JSX.Element
|
|
16
|
-
* @vueType string | function
|
|
17
|
-
* @aspType string
|
|
18
|
-
*/
|
|
19
|
-
template?: string | Function;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* With this property, the event data will be bound to Schedule.
|
|
23
|
-
* The event data can be passed either as an array of JavaScript objects,
|
|
24
|
-
* or else can create an instance of [`DataManager`](http://ej2.syncfusion.com/documentation/data/api-dataManager.html)
|
|
25
|
-
* in case of processing remote data and can be assigned to the `dataSource` property.
|
|
26
|
-
* With the remote data assigned to dataSource, check the available
|
|
27
|
-
* [adaptors](http://ej2.syncfusion.com/documentation/data/adaptors.html) to customize the data processing.
|
|
28
|
-
*
|
|
29
|
-
* @default []
|
|
30
|
-
*/
|
|
31
|
-
dataSource?: Record<string, any>[] | DataManager;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Defines the external [`query`](http://ej2.syncfusion.com/documentation/data/api-query.html)
|
|
35
|
-
* that will be executed along with the data processing.
|
|
36
|
-
*
|
|
37
|
-
* @default null
|
|
38
|
-
*/
|
|
39
|
-
query?: Query;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Defines the collection of default event fields to be bind to the Schedule.
|
|
43
|
-
*
|
|
44
|
-
* @default null
|
|
45
|
-
*/
|
|
46
|
-
fields?: FieldModel;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* When set to `true` will display the normal tooltip over the events with its subject, location, start and end time.
|
|
50
|
-
*
|
|
51
|
-
* @default false
|
|
52
|
-
*/
|
|
53
|
-
enableTooltip?: boolean;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Defines the option to render the spanned events (more than 24 hours) in either `AllDayRow` or `TimeSlot`. By default it renders in `AllDayRow`.
|
|
57
|
-
* This property is applicable for `Day`, `Week` and `WorkWeek` views only. The possible values for this property as follows
|
|
58
|
-
* * `AllDayRow`: Denotes the rendering of spanned events in an all-day row.
|
|
59
|
-
* * `TimeSlot`: Denotes the rendering of spanned events in an time slot row.
|
|
60
|
-
* {% codeBlock src='schedule/spannedEventPlacement/index.md' %}{% endcodeBlock %}
|
|
61
|
-
*
|
|
62
|
-
* @default 'AllDayRow'
|
|
63
|
-
*/
|
|
64
|
-
spannedEventPlacement?: SpannedEventPlacement;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Sets a minimum duration for an event where the events are rendered for this minimum duration when the duration of the event is lesser than this value.
|
|
68
|
-
* It accepts duration value in minutes. This property is only applicable when the event duration is lesser than this property duration.
|
|
69
|
-
*
|
|
70
|
-
* @default 1
|
|
71
|
-
*/
|
|
72
|
-
minimumEventDuration?: number;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* It accepts either the string or HTMLElement as template design content and parse it appropriately before displaying it onto tooltip.
|
|
76
|
-
* All the event fields mapped with Schedule dataSource can be accessed within this template code.
|
|
77
|
-
* {% codeBlock src="schedule/tooltip-template-api/index.ts" %}{% endcodeBlock %}
|
|
78
|
-
*
|
|
79
|
-
* @default null
|
|
80
|
-
* @angularType string | object
|
|
81
|
-
* @reactType string | function | JSX.Element
|
|
82
|
-
* @vueType string | function
|
|
83
|
-
* @aspType string
|
|
84
|
-
*/
|
|
85
|
-
tooltipTemplate?: string | Function;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Defines the resource name, to decides the color of which particular resource level is to be applied on appointments, when
|
|
89
|
-
* grouping is enabled on scheduler.
|
|
90
|
-
* {% codeBlock src="schedule/resource-color-field-api/index.ts" %}{% endcodeBlock %}
|
|
91
|
-
*
|
|
92
|
-
* @default null
|
|
93
|
-
*/
|
|
94
|
-
resourceColorField?: string;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* When set to `true` will edit the future events only instead of editing entire series.
|
|
98
|
-
*
|
|
99
|
-
* @default false
|
|
100
|
-
*/
|
|
101
|
-
editFollowingEvents?: boolean;
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* When set to `false` the add action will be restricted.
|
|
105
|
-
*
|
|
106
|
-
* @default true
|
|
107
|
-
*/
|
|
108
|
-
allowAdding?: boolean;
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* When set to `false` the edit action will be restricted.
|
|
112
|
-
*
|
|
113
|
-
* @default true
|
|
114
|
-
*/
|
|
115
|
-
allowEditing?: boolean;
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* When set to `false` the delete action will be restricted.
|
|
119
|
-
*
|
|
120
|
-
* @default true
|
|
121
|
-
*/
|
|
122
|
-
allowDeleting?: boolean;
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* It enables the event to occupy the full height in timeline views and
|
|
126
|
-
* full width in vertical views, excluding the header of the cell.
|
|
127
|
-
*
|
|
128
|
-
* @default false
|
|
129
|
-
*/
|
|
130
|
-
enableMaxHeight?: boolean;
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* This property enables the event to occupy the full height that remaining from the header and more indicator.
|
|
134
|
-
* More than one appointment are available on the cell the more indicator is created.
|
|
135
|
-
*
|
|
136
|
-
* @default false
|
|
137
|
-
*/
|
|
138
|
-
enableIndicator?: boolean;
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* This property ignores or include the Events element bottom white space.
|
|
142
|
-
*
|
|
143
|
-
* @default false
|
|
144
|
-
*/
|
|
145
|
-
ignoreWhitespace?: boolean;
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Defines the custom sort comparer function.
|
|
149
|
-
* The sort comparer function has the same functionality like
|
|
150
|
-
* [`Array.sort`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) sort comparer.
|
|
151
|
-
*
|
|
152
|
-
* @default null
|
|
153
|
-
*/
|
|
154
|
-
sortComparer?: SortComparerFunction;
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Gets or sets a value that determines whether the start date and end date filter conditions should be included in the query itself when requesting data from the server, or passed as query parameters in the API call.
|
|
158
|
-
* When set to <c>true</c> the filter conditions will be part of the query itself, potentially reducing the size of the request and minimizing the time needed to parse the response.
|
|
159
|
-
* However, it can also lead to longer query strings, which could result in issues with maximum URL length or server limitations on query string length.
|
|
160
|
-
*
|
|
161
|
-
* @default false
|
|
162
|
-
*/
|
|
163
|
-
includeFiltersInQuery?: boolean;
|
|
164
|
-
|
|
165
|
-
}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { ChildProperty } from '@syncfusion/ej2-base';
|
|
2
|
-
import { Query, DataManager } from '@syncfusion/ej2-data';
|
|
3
|
-
import { SortComparerFunction } from '../base/interface';
|
|
4
|
-
import { SpannedEventPlacement } from '../base/type';
|
|
5
|
-
import { FieldModel } from './fields-model';
|
|
6
|
-
/**
|
|
7
|
-
* Holds the configuration of event related options and dataSource binding to Schedule.
|
|
8
|
-
*/
|
|
9
|
-
export declare class EventSettings extends ChildProperty<EventSettings> {
|
|
10
|
-
/**
|
|
11
|
-
* It accepts either the string or HTMLElement as template design content and parse it appropriately before displaying
|
|
12
|
-
* it onto the event background. All the event fields mapped to Schedule from dataSource can be accessed within this template code.
|
|
13
|
-
* {% codeBlock src="schedule/event-template-api/index.ts" %}{% endcodeBlock %}
|
|
14
|
-
*
|
|
15
|
-
* @default null
|
|
16
|
-
* @angularType string | object
|
|
17
|
-
* @reactType string | function | JSX.Element
|
|
18
|
-
* @vueType string | function
|
|
19
|
-
* @aspType string
|
|
20
|
-
*/
|
|
21
|
-
template: string | Function;
|
|
22
|
-
/**
|
|
23
|
-
* With this property, the event data will be bound to Schedule.
|
|
24
|
-
* The event data can be passed either as an array of JavaScript objects,
|
|
25
|
-
* or else can create an instance of [`DataManager`](http://ej2.syncfusion.com/documentation/data/api-dataManager.html)
|
|
26
|
-
* in case of processing remote data and can be assigned to the `dataSource` property.
|
|
27
|
-
* With the remote data assigned to dataSource, check the available
|
|
28
|
-
* [adaptors](http://ej2.syncfusion.com/documentation/data/adaptors.html) to customize the data processing.
|
|
29
|
-
*
|
|
30
|
-
* @default []
|
|
31
|
-
*/
|
|
32
|
-
dataSource: Record<string, any>[] | DataManager;
|
|
33
|
-
/**
|
|
34
|
-
* Defines the external [`query`](http://ej2.syncfusion.com/documentation/data/api-query.html)
|
|
35
|
-
* that will be executed along with the data processing.
|
|
36
|
-
*
|
|
37
|
-
* @default null
|
|
38
|
-
*/
|
|
39
|
-
query: Query;
|
|
40
|
-
/**
|
|
41
|
-
* Defines the collection of default event fields to be bind to the Schedule.
|
|
42
|
-
*
|
|
43
|
-
* @default null
|
|
44
|
-
*/
|
|
45
|
-
fields: FieldModel;
|
|
46
|
-
/**
|
|
47
|
-
* When set to `true` will display the normal tooltip over the events with its subject, location, start and end time.
|
|
48
|
-
*
|
|
49
|
-
* @default false
|
|
50
|
-
*/
|
|
51
|
-
enableTooltip: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Defines the option to render the spanned events (more than 24 hours) in either `AllDayRow` or `TimeSlot`. By default it renders in `AllDayRow`.
|
|
54
|
-
* This property is applicable for `Day`, `Week` and `WorkWeek` views only. The possible values for this property as follows
|
|
55
|
-
* * `AllDayRow`: Denotes the rendering of spanned events in an all-day row.
|
|
56
|
-
* * `TimeSlot`: Denotes the rendering of spanned events in an time slot row.
|
|
57
|
-
* {% codeBlock src='schedule/spannedEventPlacement/index.md' %}{% endcodeBlock %}
|
|
58
|
-
*
|
|
59
|
-
* @default 'AllDayRow'
|
|
60
|
-
*/
|
|
61
|
-
spannedEventPlacement: SpannedEventPlacement;
|
|
62
|
-
/**
|
|
63
|
-
* Sets a minimum duration for an event where the events are rendered for this minimum duration when the duration of the event is lesser than this value.
|
|
64
|
-
* It accepts duration value in minutes. This property is only applicable when the event duration is lesser than this property duration.
|
|
65
|
-
*
|
|
66
|
-
* @default 1
|
|
67
|
-
*/
|
|
68
|
-
minimumEventDuration: number;
|
|
69
|
-
/**
|
|
70
|
-
* It accepts either the string or HTMLElement as template design content and parse it appropriately before displaying it onto tooltip.
|
|
71
|
-
* All the event fields mapped with Schedule dataSource can be accessed within this template code.
|
|
72
|
-
* {% codeBlock src="schedule/tooltip-template-api/index.ts" %}{% endcodeBlock %}
|
|
73
|
-
*
|
|
74
|
-
* @default null
|
|
75
|
-
* @angularType string | object
|
|
76
|
-
* @reactType string | function | JSX.Element
|
|
77
|
-
* @vueType string | function
|
|
78
|
-
* @aspType string
|
|
79
|
-
*/
|
|
80
|
-
tooltipTemplate: string | Function;
|
|
81
|
-
/**
|
|
82
|
-
* Defines the resource name, to decides the color of which particular resource level is to be applied on appointments, when
|
|
83
|
-
* grouping is enabled on scheduler.
|
|
84
|
-
* {% codeBlock src="schedule/resource-color-field-api/index.ts" %}{% endcodeBlock %}
|
|
85
|
-
*
|
|
86
|
-
* @default null
|
|
87
|
-
*/
|
|
88
|
-
resourceColorField: string;
|
|
89
|
-
/**
|
|
90
|
-
* When set to `true` will edit the future events only instead of editing entire series.
|
|
91
|
-
*
|
|
92
|
-
* @default false
|
|
93
|
-
*/
|
|
94
|
-
editFollowingEvents: boolean;
|
|
95
|
-
/**
|
|
96
|
-
* When set to `false` the add action will be restricted.
|
|
97
|
-
*
|
|
98
|
-
* @default true
|
|
99
|
-
*/
|
|
100
|
-
allowAdding: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* When set to `false` the edit action will be restricted.
|
|
103
|
-
*
|
|
104
|
-
* @default true
|
|
105
|
-
*/
|
|
106
|
-
allowEditing: boolean;
|
|
107
|
-
/**
|
|
108
|
-
* When set to `false` the delete action will be restricted.
|
|
109
|
-
*
|
|
110
|
-
* @default true
|
|
111
|
-
*/
|
|
112
|
-
allowDeleting: boolean;
|
|
113
|
-
/**
|
|
114
|
-
* It enables the event to occupy the full height in timeline views and
|
|
115
|
-
* full width in vertical views, excluding the header of the cell.
|
|
116
|
-
*
|
|
117
|
-
* @default false
|
|
118
|
-
*/
|
|
119
|
-
enableMaxHeight: boolean;
|
|
120
|
-
/**
|
|
121
|
-
* This property enables the event to occupy the full height that remaining from the header and more indicator.
|
|
122
|
-
* More than one appointment are available on the cell the more indicator is created.
|
|
123
|
-
*
|
|
124
|
-
* @default false
|
|
125
|
-
*/
|
|
126
|
-
enableIndicator: boolean;
|
|
127
|
-
/**
|
|
128
|
-
* This property ignores or include the Events element bottom white space.
|
|
129
|
-
*
|
|
130
|
-
* @default false
|
|
131
|
-
*/
|
|
132
|
-
ignoreWhitespace: boolean;
|
|
133
|
-
/**
|
|
134
|
-
* Defines the custom sort comparer function.
|
|
135
|
-
* The sort comparer function has the same functionality like
|
|
136
|
-
* [`Array.sort`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) sort comparer.
|
|
137
|
-
*
|
|
138
|
-
* @default null
|
|
139
|
-
*/
|
|
140
|
-
sortComparer: SortComparerFunction;
|
|
141
|
-
/**
|
|
142
|
-
* Gets or sets a value that determines whether the start date and end date filter conditions should be included in the query itself when requesting data from the server, or passed as query parameters in the API call.
|
|
143
|
-
* When set to <c>true</c> the filter conditions will be part of the query itself, potentially reducing the size of the request and minimizing the time needed to parse the response.
|
|
144
|
-
* However, it can also lead to longer query strings, which could result in issues with maximum URL length or server limitations on query string length.
|
|
145
|
-
*
|
|
146
|
-
* @default false
|
|
147
|
-
*/
|
|
148
|
-
includeFiltersInQuery: boolean;
|
|
149
|
-
}
|