@syncfusion/ej2-schedule 22.2.12 → 23.1.38
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/CHANGELOG.md +23 -0
- package/dist/ej2-schedule.min.js +3 -3
- package/dist/ej2-schedule.umd.min.js +3 -3
- package/dist/ej2-schedule.umd.min.js.map +1 -1
- package/dist/es6/ej2-schedule.es2015.js +309 -67
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +311 -67
- package/dist/es6/ej2-schedule.es5.js.map +1 -1
- package/dist/global/ej2-schedule.min.js +3 -3
- package/dist/global/ej2-schedule.min.js.map +1 -1
- package/dist/global/index.d.ts +2 -2
- package/package.json +16 -16
- package/src/schedule/actions/crud.d.ts +1 -1
- package/src/schedule/actions/crud.js +13 -5
- package/src/schedule/actions/data.js +29 -8
- package/src/schedule/actions/keyboard.js +1 -2
- package/src/schedule/actions/virtual-scroll.d.ts +1 -0
- package/src/schedule/actions/virtual-scroll.js +37 -2
- package/src/schedule/base/constant.d.ts +6 -0
- package/src/schedule/base/constant.js +6 -0
- package/src/schedule/base/interface.d.ts +15 -0
- package/src/schedule/base/resource.js +1 -0
- package/src/schedule/base/schedule-model.d.ts +48 -35
- package/src/schedule/base/schedule.d.ts +60 -35
- package/src/schedule/base/schedule.js +74 -6
- package/src/schedule/event-renderer/event-base.js +17 -11
- package/src/schedule/models/views-model.d.ts +10 -1
- package/src/schedule/models/views.d.ts +9 -1
- package/src/schedule/models/views.js +3 -0
- package/src/schedule/popups/event-tooltip.js +7 -3
- package/src/schedule/popups/event-window.d.ts +7 -0
- package/src/schedule/popups/event-window.js +123 -29
- package/src/schedule/popups/quick-popups.js +3 -0
- package/styles/bootstrap-dark.css +15 -0
- package/styles/bootstrap.css +15 -0
- package/styles/bootstrap4.css +15 -0
- package/styles/bootstrap5-dark.css +15 -0
- package/styles/bootstrap5.css +15 -0
- package/styles/fabric-dark.css +15 -0
- package/styles/fabric.css +15 -0
- package/styles/fluent-dark.css +15 -0
- package/styles/fluent.css +15 -0
- package/styles/highcontrast-light.css +15 -0
- package/styles/highcontrast.css +15 -0
- package/styles/material-dark.css +15 -1
- package/styles/material.css +15 -1
- package/styles/material3-dark.css +16 -2
- package/styles/material3-dark.scss +1 -1
- package/styles/material3.css +16 -2
- package/styles/material3.scss +1 -1
- package/styles/recurrence-editor/bootstrap-dark.scss +1 -1
- package/styles/recurrence-editor/bootstrap.scss +1 -1
- package/styles/recurrence-editor/bootstrap4.scss +1 -1
- package/styles/recurrence-editor/bootstrap5-dark.scss +1 -1
- package/styles/recurrence-editor/bootstrap5.scss +1 -1
- package/styles/recurrence-editor/fabric-dark.scss +1 -1
- package/styles/recurrence-editor/fabric.scss +1 -1
- package/styles/recurrence-editor/fluent-dark.scss +1 -1
- package/styles/recurrence-editor/fluent.scss +1 -1
- package/styles/recurrence-editor/highcontrast-light.scss +1 -1
- package/styles/recurrence-editor/highcontrast.scss +1 -1
- package/styles/recurrence-editor/material-dark.css +0 -1
- package/styles/recurrence-editor/material-dark.scss +1 -1
- package/styles/recurrence-editor/material.css +0 -1
- package/styles/recurrence-editor/material.scss +1 -1
- package/styles/recurrence-editor/material3-dark.css +0 -1
- package/styles/recurrence-editor/material3-dark.scss +1 -1
- package/styles/recurrence-editor/material3.css +0 -1
- package/styles/recurrence-editor/material3.scss +1 -1
- package/styles/recurrence-editor/tailwind-dark.css +0 -1
- package/styles/recurrence-editor/tailwind-dark.scss +1 -1
- package/styles/recurrence-editor/tailwind.css +0 -1
- package/styles/recurrence-editor/tailwind.scss +1 -1
- package/styles/schedule/_layout.scss +15 -0
- package/styles/schedule/_material3-definition.scss +1 -1
- package/styles/schedule/bootstrap-dark.css +15 -0
- package/styles/schedule/bootstrap-dark.scss +1 -1
- package/styles/schedule/bootstrap.css +15 -0
- package/styles/schedule/bootstrap.scss +1 -1
- package/styles/schedule/bootstrap4.css +15 -0
- package/styles/schedule/bootstrap4.scss +1 -1
- package/styles/schedule/bootstrap5-dark.css +15 -0
- package/styles/schedule/bootstrap5-dark.scss +1 -1
- package/styles/schedule/bootstrap5.css +15 -0
- package/styles/schedule/bootstrap5.scss +1 -1
- package/styles/schedule/fabric-dark.css +15 -0
- package/styles/schedule/fabric-dark.scss +1 -1
- package/styles/schedule/fabric.css +15 -0
- package/styles/schedule/fabric.scss +1 -1
- package/styles/schedule/fluent-dark.css +15 -0
- package/styles/schedule/fluent-dark.scss +1 -1
- package/styles/schedule/fluent.css +15 -0
- package/styles/schedule/fluent.scss +1 -1
- package/styles/schedule/highcontrast-light.css +15 -0
- package/styles/schedule/highcontrast-light.scss +1 -1
- package/styles/schedule/highcontrast.css +15 -0
- package/styles/schedule/highcontrast.scss +1 -1
- package/styles/schedule/material-dark.css +15 -1
- package/styles/schedule/material-dark.scss +1 -1
- package/styles/schedule/material.css +15 -1
- package/styles/schedule/material.scss +1 -1
- package/styles/schedule/material3-dark.css +16 -2
- package/styles/schedule/material3-dark.scss +1 -1
- package/styles/schedule/material3.css +16 -2
- package/styles/schedule/material3.scss +1 -1
- package/styles/schedule/tailwind-dark.css +15 -1
- package/styles/schedule/tailwind-dark.scss +1 -1
- package/styles/schedule/tailwind.css +15 -1
- package/styles/schedule/tailwind.scss +1 -1
- package/styles/tailwind-dark.css +15 -2
- package/styles/tailwind.css +15 -2
|
@@ -35,6 +35,8 @@ const renderCell = 'renderCell';
|
|
|
35
35
|
/** @private */
|
|
36
36
|
const eventClick = 'eventClick';
|
|
37
37
|
/** @private */
|
|
38
|
+
const eventDoubleClick = 'eventDoubleClick';
|
|
39
|
+
/** @private */
|
|
38
40
|
const eventRendered = 'eventRendered';
|
|
39
41
|
/** @private */
|
|
40
42
|
const dataBinding = 'dataBinding';
|
|
@@ -60,6 +62,10 @@ const resizeStop = 'resizeStop';
|
|
|
60
62
|
const inlineClick = 'inlineClick';
|
|
61
63
|
/** @private */
|
|
62
64
|
const cellSelect = 'cellSelect';
|
|
65
|
+
/** @private */
|
|
66
|
+
const virtualScrollStart = 'virtualScrollStart';
|
|
67
|
+
/** @private */
|
|
68
|
+
const virtualScrollStop = 'virtualScrollStop';
|
|
63
69
|
/**
|
|
64
70
|
* Specifies schedule internal events
|
|
65
71
|
*/
|
|
@@ -552,7 +558,7 @@ const WORK_HOURS_CLASS = 'e-work-hours';
|
|
|
552
558
|
/** @private */
|
|
553
559
|
const POPUP_OPEN = 'e-popup-open';
|
|
554
560
|
/** @private */
|
|
555
|
-
|
|
561
|
+
const POPUP_CLOSE = 'e-popup-close';
|
|
556
562
|
/** @private */
|
|
557
563
|
const DATE_HEADER_WRAP_CLASS = 'e-date-header-wrap';
|
|
558
564
|
/** @private */
|
|
@@ -2066,8 +2072,7 @@ class KeyboardInteraction {
|
|
|
2066
2072
|
const queryStr = '.' + WORK_CELLS_CLASS + ',.' + ALLDAY_CELLS_CLASS + ',.' + HEADER_CELLS_CLASS;
|
|
2067
2073
|
let target = closest(e.target, queryStr);
|
|
2068
2074
|
const selectedCells = this.parent.getSelectedCells();
|
|
2069
|
-
if (
|
|
2070
|
-
selectedCells[0].getAttribute('data-group-index') !== target.getAttribute('data-group-index')) {
|
|
2075
|
+
if (selectedCells.length > 0 && selectedCells.indexOf(target) === -1) {
|
|
2071
2076
|
target = selectedCells[selectedCells.length - 1];
|
|
2072
2077
|
}
|
|
2073
2078
|
if (this.parent.currentView === 'TimelineYear' && target.classList.contains(OTHERMONTH_CLASS)) {
|
|
@@ -3044,15 +3049,35 @@ class Data {
|
|
|
3044
3049
|
*/
|
|
3045
3050
|
generateQuery(startDate, endDate) {
|
|
3046
3051
|
const query = this.query.clone();
|
|
3047
|
-
if (this.parent &&
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3052
|
+
if (this.parent && startDate && endDate) {
|
|
3053
|
+
if (this.parent.activeViewOptions && this.parent.activeViewOptions.enableLazyLoading &&
|
|
3054
|
+
!isNullOrUndefined(this.parent.activeViewOptions.group.resources) &&
|
|
3055
|
+
this.parent.activeViewOptions.group.resources.length > 0 && this.parent.resourceBase &&
|
|
3056
|
+
this.parent.resourceBase.resourceCollection.length > 0 && this.parent.resourceBase.renderedResources.length > 0) {
|
|
3057
|
+
const resIdCollection = [];
|
|
3058
|
+
this.parent.resourceBase.resourceCollection.forEach(() => resIdCollection.push([]));
|
|
3059
|
+
this.parent.resourceBase.renderedResources.forEach((resource) => {
|
|
3060
|
+
resIdCollection.forEach((resId, index) => {
|
|
3061
|
+
const groupId = resource.groupOrder[parseInt(index.toString(), 10)];
|
|
3062
|
+
if (groupId && resId.indexOf(groupId) < 0) {
|
|
3063
|
+
resId.push(groupId);
|
|
3064
|
+
}
|
|
3065
|
+
});
|
|
3066
|
+
});
|
|
3067
|
+
this.parent.resourceBase.resourceCollection.forEach((resource, index) => {
|
|
3068
|
+
query.addParams(resource.field, resIdCollection[parseInt(index.toString(), 10)].toString());
|
|
3069
|
+
});
|
|
3070
|
+
}
|
|
3071
|
+
if (this.parent.timezone) {
|
|
3072
|
+
startDate = this.parent.tzModule.remove(new Date(+startDate.getTime()), this.parent.timezone);
|
|
3073
|
+
endDate = this.parent.tzModule.remove(new Date(+endDate.getTime()), this.parent.timezone);
|
|
3074
|
+
}
|
|
3075
|
+
if (this.parent.eventSettings.includeFiltersInQuery) {
|
|
3076
|
+
const dateQuery = this.getStartEndQuery(startDate, endDate);
|
|
3077
|
+
const recurrenceQuery = new Predicate(this.parent.eventFields.recurrenceRule, 'notequal', null).and(new Predicate(this.parent.eventFields.recurrenceRule, 'notequal', ''));
|
|
3078
|
+
return query.where(dateQuery.or(recurrenceQuery));
|
|
3079
|
+
}
|
|
3053
3080
|
query.addParams('StartDate', startDate.toISOString());
|
|
3054
|
-
}
|
|
3055
|
-
if (endDate) {
|
|
3056
3081
|
query.addParams('EndDate', endDate.toISOString());
|
|
3057
3082
|
}
|
|
3058
3083
|
return query;
|
|
@@ -5996,12 +6021,12 @@ class EventBase {
|
|
|
5996
6021
|
});
|
|
5997
6022
|
}
|
|
5998
6023
|
}
|
|
5999
|
-
eventDoubleClick(
|
|
6024
|
+
eventDoubleClick(eventData) {
|
|
6000
6025
|
if (this.parent.quickPopup) {
|
|
6001
6026
|
this.parent.quickPopup.quickPopupHide(true);
|
|
6002
6027
|
}
|
|
6003
|
-
if (
|
|
6004
|
-
this.activeEventData(
|
|
6028
|
+
if (eventData.type === 'touchstart') {
|
|
6029
|
+
this.activeEventData(eventData, true);
|
|
6005
6030
|
}
|
|
6006
6031
|
this.removeSelectedAppointmentClass();
|
|
6007
6032
|
this.parent.selectedElements = [];
|
|
@@ -6009,14 +6034,19 @@ class EventBase {
|
|
|
6009
6034
|
this.parent.activeEventData.element.querySelector('.' + INLINE_SUBJECT_CLASS)) {
|
|
6010
6035
|
return;
|
|
6011
6036
|
}
|
|
6012
|
-
|
|
6013
|
-
|
|
6014
|
-
|
|
6015
|
-
|
|
6016
|
-
|
|
6017
|
-
|
|
6018
|
-
|
|
6019
|
-
|
|
6037
|
+
const args = extend(this.parent.activeEventData, { cancel: false, originalEvent: eventData });
|
|
6038
|
+
this.parent.trigger(eventDoubleClick, args, (eventDoubleClickArgs) => {
|
|
6039
|
+
if (!eventDoubleClickArgs.cancel) {
|
|
6040
|
+
if (!isNullOrUndefined(this.parent.activeEventData.event) &&
|
|
6041
|
+
isNullOrUndefined(this.parent.activeEventData.event[this.parent.eventFields.recurrenceID])) {
|
|
6042
|
+
this.parent.eventWindow.openEditor(this.parent.activeEventData.event, 'Save');
|
|
6043
|
+
}
|
|
6044
|
+
else {
|
|
6045
|
+
this.parent.currentAction = 'EditOccurrence';
|
|
6046
|
+
this.parent.quickPopup.openRecurrenceAlert();
|
|
6047
|
+
}
|
|
6048
|
+
}
|
|
6049
|
+
});
|
|
6020
6050
|
}
|
|
6021
6051
|
getEventByGuid(guid) {
|
|
6022
6052
|
return this.parent.eventsProcessed.filter((data) => data.Guid === guid)[0];
|
|
@@ -9167,6 +9197,9 @@ class QuickPopups {
|
|
|
9167
9197
|
'aria-label': this.parent.getAnnouncementString(eventData)
|
|
9168
9198
|
}
|
|
9169
9199
|
});
|
|
9200
|
+
if (eventData[fields.isReadonly]) {
|
|
9201
|
+
addClass([appointmentElement], 'e-read-only');
|
|
9202
|
+
}
|
|
9170
9203
|
let templateElement;
|
|
9171
9204
|
if (!isNullOrUndefined(this.parent.activeViewOptions.eventTemplate)) {
|
|
9172
9205
|
const tempId = this.parent.element.id + '_' + this.parent.activeViewOptions.eventTemplateName + 'eventTemplate';
|
|
@@ -10258,7 +10291,7 @@ class EventTooltip {
|
|
|
10258
10291
|
cssClass: this.parent.cssClass + ' ' + EVENT_TOOLTIP_ROOT_CLASS,
|
|
10259
10292
|
target: this.getTargets(),
|
|
10260
10293
|
beforeRender: this.onBeforeRender.bind(this),
|
|
10261
|
-
|
|
10294
|
+
beforeClose: this.onTooltipClose.bind(this),
|
|
10262
10295
|
enableRtl: this.parent.enableRtl,
|
|
10263
10296
|
enableHtmlSanitizer: this.parent.enableHtmlSanitizer
|
|
10264
10297
|
});
|
|
@@ -10366,7 +10399,11 @@ class EventTooltip {
|
|
|
10366
10399
|
}
|
|
10367
10400
|
this.parent.renderTemplates();
|
|
10368
10401
|
}
|
|
10369
|
-
onTooltipClose() {
|
|
10402
|
+
onTooltipClose(args) {
|
|
10403
|
+
if (args.element) {
|
|
10404
|
+
removeClass([args.element], POPUP_OPEN);
|
|
10405
|
+
addClass([args.element], POPUP_CLOSE);
|
|
10406
|
+
}
|
|
10370
10407
|
this.parent.resetTemplates(['tooltipTemplate', 'headerTooltipTemplate']);
|
|
10371
10408
|
}
|
|
10372
10409
|
setContent(content) {
|
|
@@ -11538,40 +11575,54 @@ class EventWindow {
|
|
|
11538
11575
|
};
|
|
11539
11576
|
if (this.parent.isAdaptive) {
|
|
11540
11577
|
dialogModel.cssClass = EVENT_WINDOW_DIALOG_CLASS + ' ' + DEVICE_CLASS;
|
|
11541
|
-
|
|
11542
|
-
|
|
11578
|
+
if (!this.parent.editorHeaderTemplate) {
|
|
11579
|
+
dialogModel.header = '<div class="e-title-header"><div class="e-back-icon e-icons"></div><div class="e-title-text">' +
|
|
11580
|
+
this.l10n.getConstant('newEvent') + '</div><div class="e-save-icon e-icons"></div></div>';
|
|
11581
|
+
}
|
|
11543
11582
|
}
|
|
11544
11583
|
else {
|
|
11545
|
-
|
|
11546
|
-
|
|
11547
|
-
|
|
11548
|
-
|
|
11549
|
-
|
|
11550
|
-
|
|
11551
|
-
}, {
|
|
11552
|
-
buttonModel: {
|
|
11553
|
-
content: this.l10n.getConstant('saveButton'), cssClass: 'e-primary ' + EVENT_WINDOW_SAVE_BUTTON_CLASS,
|
|
11554
|
-
isPrimary: true, disabled: !this.parent.eventSettings.allowAdding || this.parent.readonly
|
|
11555
|
-
},
|
|
11556
|
-
click: this.eventSave.bind(this)
|
|
11557
|
-
}, {
|
|
11558
|
-
buttonModel: { cssClass: EVENT_WINDOW_CANCEL_BUTTON_CLASS, content: this.l10n.getConstant('cancelButton') },
|
|
11559
|
-
click: this.dialogClose.bind(this)
|
|
11560
|
-
}];
|
|
11561
|
-
dialogModel.header = '<div class="e-title-text">' + this.l10n.getConstant('newEvent') + '</div>';
|
|
11584
|
+
if (!this.parent.editorFooterTemplate) {
|
|
11585
|
+
this.renderDialogButtons(dialogModel);
|
|
11586
|
+
}
|
|
11587
|
+
if (!this.parent.editorHeaderTemplate) {
|
|
11588
|
+
dialogModel.header = '<div class="e-title-text">' + this.l10n.getConstant('newEvent') + '</div>';
|
|
11589
|
+
}
|
|
11562
11590
|
}
|
|
11563
11591
|
this.dialogObject = new Dialog(dialogModel, this.element);
|
|
11564
11592
|
if (this.dialogObject.element.querySelector('.e-dlg-closeicon-btn')) {
|
|
11565
11593
|
this.dialogObject.element.querySelector('.e-dlg-closeicon-btn').setAttribute('title', this.l10n.getConstant('close'));
|
|
11566
11594
|
}
|
|
11595
|
+
this.addEventHandlers();
|
|
11567
11596
|
addClass([this.element.parentElement], EVENT_WINDOW_DIALOG_CLASS + '-container');
|
|
11568
|
-
if (this.parent.isAdaptive) {
|
|
11569
|
-
EventHandler.add(this.element.querySelector('.' + EVENT_WINDOW_BACK_ICON_CLASS), 'click', this.dialogClose, this);
|
|
11570
|
-
EventHandler.add(this.element.querySelector('.' + EVENT_WINDOW_SAVE_ICON_CLASS), 'click', this.eventSave, this);
|
|
11571
|
-
}
|
|
11572
11597
|
EventHandler.add(this.dialogObject.element, 'keydown', this.preventEventSave, this);
|
|
11573
11598
|
this.applyFormValidation();
|
|
11574
11599
|
}
|
|
11600
|
+
renderDialogButtons(dialogButton) {
|
|
11601
|
+
dialogButton.buttons = [{
|
|
11602
|
+
buttonModel: {
|
|
11603
|
+
content: this.l10n.getConstant('deleteButton'), cssClass: DELETE_EVENT_CLASS,
|
|
11604
|
+
disabled: !this.parent.eventSettings.allowDeleting || this.parent.readonly
|
|
11605
|
+
},
|
|
11606
|
+
click: this.eventDelete.bind(this)
|
|
11607
|
+
}, {
|
|
11608
|
+
buttonModel: {
|
|
11609
|
+
content: this.l10n.getConstant('saveButton'), cssClass: 'e-primary ' + EVENT_WINDOW_SAVE_BUTTON_CLASS,
|
|
11610
|
+
isPrimary: true, disabled: !this.parent.eventSettings.allowAdding || this.parent.readonly
|
|
11611
|
+
},
|
|
11612
|
+
click: this.eventSave.bind(this)
|
|
11613
|
+
}, {
|
|
11614
|
+
buttonModel: { cssClass: EVENT_WINDOW_CANCEL_BUTTON_CLASS, content: this.l10n.getConstant('cancelButton') },
|
|
11615
|
+
click: this.dialogClose.bind(this)
|
|
11616
|
+
}];
|
|
11617
|
+
}
|
|
11618
|
+
addEventHandlers() {
|
|
11619
|
+
const backIcon = this.element.querySelector('.' + EVENT_WINDOW_BACK_ICON_CLASS);
|
|
11620
|
+
const saveIcon = this.element.querySelector('.' + EVENT_WINDOW_SAVE_ICON_CLASS);
|
|
11621
|
+
if (this.parent.isAdaptive && !isNullOrUndefined(backIcon) && !isNullOrUndefined(saveIcon)) {
|
|
11622
|
+
EventHandler.add(backIcon, 'click', this.dialogClose, this);
|
|
11623
|
+
EventHandler.add(saveIcon, 'click', this.eventSave, this);
|
|
11624
|
+
}
|
|
11625
|
+
}
|
|
11575
11626
|
refresh() {
|
|
11576
11627
|
this.destroy(true);
|
|
11577
11628
|
this.renderEventWindow();
|
|
@@ -11615,6 +11666,23 @@ class EventWindow {
|
|
|
11615
11666
|
}
|
|
11616
11667
|
data = eventObj;
|
|
11617
11668
|
}
|
|
11669
|
+
if (!isNullOrUndefined(this.parent.editorHeaderTemplate)) {
|
|
11670
|
+
this.parent.resetTemplates(['editorHeaderTemplate']);
|
|
11671
|
+
if (this.parent.isAdaptive && !this.parent.editorFooterTemplate) {
|
|
11672
|
+
this.dialogObject.header = this.createAdaptiveHeaderElement(data);
|
|
11673
|
+
}
|
|
11674
|
+
else {
|
|
11675
|
+
this.dialogObject.header = this.getDialogHeader(data);
|
|
11676
|
+
}
|
|
11677
|
+
}
|
|
11678
|
+
if (!isNullOrUndefined(this.parent.editorFooterTemplate)) {
|
|
11679
|
+
this.parent.resetTemplates(['editorFooterTemplate']);
|
|
11680
|
+
this.dialogObject.footerTemplate = this.getDialogFooter(data);
|
|
11681
|
+
}
|
|
11682
|
+
if (!isNullOrUndefined(this.parent.editorHeaderTemplate) || !isNullOrUndefined(this.parent.editorFooterTemplate)) {
|
|
11683
|
+
this.dialogObject.dataBind();
|
|
11684
|
+
this.addEventHandlers();
|
|
11685
|
+
}
|
|
11618
11686
|
if (!isNullOrUndefined(this.parent.editorTemplate)) {
|
|
11619
11687
|
this.renderFormElements(this.element.querySelector('.e-schedule-form'), data);
|
|
11620
11688
|
}
|
|
@@ -11645,6 +11713,65 @@ class EventWindow {
|
|
|
11645
11713
|
this.dialogObject.dataBind();
|
|
11646
11714
|
this.applyFormValidation();
|
|
11647
11715
|
}
|
|
11716
|
+
setDialogHeader() {
|
|
11717
|
+
if (!isNullOrUndefined(this.parent.editorHeaderTemplate)) {
|
|
11718
|
+
this.parent.resetTemplates(['editorHeaderTemplate']);
|
|
11719
|
+
if (this.parent.isAdaptive && !this.parent.editorFooterTemplate) {
|
|
11720
|
+
this.dialogObject.header = this.createAdaptiveHeaderElement();
|
|
11721
|
+
}
|
|
11722
|
+
else {
|
|
11723
|
+
this.dialogObject.header = this.getDialogHeader();
|
|
11724
|
+
}
|
|
11725
|
+
}
|
|
11726
|
+
else if (this.parent.isAdaptive) {
|
|
11727
|
+
this.dialogObject.header = '<div class="e-title-header"><div class="e-back-icon e-icons"></div><div class="e-title-text">' +
|
|
11728
|
+
this.l10n.getConstant('newEvent') + '</div><div class="e-save-icon e-icons"></div></div>';
|
|
11729
|
+
}
|
|
11730
|
+
else {
|
|
11731
|
+
this.dialogObject.header = '<div class="e-title-text">' + this.l10n.getConstant('newEvent') + '</div>';
|
|
11732
|
+
}
|
|
11733
|
+
this.dialogObject.dataBind();
|
|
11734
|
+
this.addEventHandlers();
|
|
11735
|
+
}
|
|
11736
|
+
setDialogFooter() {
|
|
11737
|
+
if (!isNullOrUndefined(this.parent.editorFooterTemplate)) {
|
|
11738
|
+
this.parent.resetTemplates(['editorFooterTemplate']);
|
|
11739
|
+
this.dialogObject.footerTemplate = this.getDialogFooter();
|
|
11740
|
+
}
|
|
11741
|
+
else if (!this.parent.isAdaptive && isNullOrUndefined(this.parent.editorFooterTemplate)) {
|
|
11742
|
+
this.renderDialogButtons(this.dialogObject);
|
|
11743
|
+
}
|
|
11744
|
+
else if (this.parent.isAdaptive && isNullOrUndefined(this.parent.editorFooterTemplate)) {
|
|
11745
|
+
this.dialogObject.footerTemplate = null;
|
|
11746
|
+
}
|
|
11747
|
+
this.dialogObject.dataBind();
|
|
11748
|
+
}
|
|
11749
|
+
createAdaptiveHeaderElement(data) {
|
|
11750
|
+
const header = createElement('div', { className: 'e-title-header' });
|
|
11751
|
+
const headerBackIcon = createElement('div', { className: 'e-back-icon e-icons' });
|
|
11752
|
+
header.appendChild(headerBackIcon);
|
|
11753
|
+
const headerTemplate = this.getDialogHeader(data);
|
|
11754
|
+
header.appendChild(headerTemplate);
|
|
11755
|
+
const headerSaveIcon = createElement('div', { className: 'e-save-icon e-icons' });
|
|
11756
|
+
header.appendChild(headerSaveIcon);
|
|
11757
|
+
return header;
|
|
11758
|
+
}
|
|
11759
|
+
getDialogHeader(args) {
|
|
11760
|
+
let headerTemplate = [];
|
|
11761
|
+
const headerTemplateId = this.parent.element.id + '_editorHeaderTemplate';
|
|
11762
|
+
const temHeaderDiv = document.createElement('div');
|
|
11763
|
+
headerTemplate = [].slice.call(this.parent.getEditorHeaderTemplate()(args || {}, this.parent, 'editorHeaderTemplate', headerTemplateId, false));
|
|
11764
|
+
append(headerTemplate, temHeaderDiv);
|
|
11765
|
+
return temHeaderDiv;
|
|
11766
|
+
}
|
|
11767
|
+
getDialogFooter(args) {
|
|
11768
|
+
let footerTemplate = [];
|
|
11769
|
+
const footerTemplateId = this.parent.element.id + '_editorFooterTemplate';
|
|
11770
|
+
const temFooterDiv = document.createElement('div');
|
|
11771
|
+
footerTemplate = [].slice.call(this.parent.getEditorFooterTemplate()(args || {}, this.parent, 'editorFooterTemplate', footerTemplateId, false));
|
|
11772
|
+
append(footerTemplate, temFooterDiv);
|
|
11773
|
+
return temFooterDiv;
|
|
11774
|
+
}
|
|
11648
11775
|
preventEventSave(e) {
|
|
11649
11776
|
if (this.parent && !this.parent.allowKeyboardInteraction && e.code === 'Enter') {
|
|
11650
11777
|
this.isEnterKey = true;
|
|
@@ -11912,9 +12039,9 @@ class EventWindow {
|
|
|
11912
12039
|
const resourceDiv = this.createDivElement(value + '-container' + ' ' + 'e-resources');
|
|
11913
12040
|
const resourceInput = this.createInputElement(value + ' ' + EVENT_FIELD$1, fieldName);
|
|
11914
12041
|
resourceDiv.appendChild(resourceInput);
|
|
11915
|
-
function
|
|
12042
|
+
const resourceTemplate = function (data) {
|
|
11916
12043
|
return `<div class="e-resource-template"><div class="e-resource-color" style="background-color:${data[resourceData.colorField]}"></div><div class="e-resource-text">${data[resourceData.textField]}</div></div>`;
|
|
11917
|
-
}
|
|
12044
|
+
};
|
|
11918
12045
|
initializeCSPTemplate(resourceTemplate, resourceData);
|
|
11919
12046
|
if (resourceData.allowMultiple) {
|
|
11920
12047
|
const listObj = new MultiSelect({
|
|
@@ -12258,7 +12385,9 @@ class EventWindow {
|
|
|
12258
12385
|
this.renderRepeatDialog();
|
|
12259
12386
|
}
|
|
12260
12387
|
this.element.querySelector('.' + FORM_CLASS).removeAttribute('data-id');
|
|
12261
|
-
this.
|
|
12388
|
+
if (isNullOrUndefined(this.parent.editorHeaderTemplate)) {
|
|
12389
|
+
this.element.querySelector('.' + EVENT_WINDOW_TITLE_TEXT_CLASS).innerHTML = this.l10n.getConstant('newEvent');
|
|
12390
|
+
}
|
|
12262
12391
|
eventObj.Timezone = false;
|
|
12263
12392
|
this.repeatStartDate = eventObj[this.fields.startTime];
|
|
12264
12393
|
this.repeatRule = '';
|
|
@@ -12495,10 +12624,12 @@ class EventWindow {
|
|
|
12495
12624
|
if (!this.parent.eventSettings.allowEditing) {
|
|
12496
12625
|
return;
|
|
12497
12626
|
}
|
|
12498
|
-
if (!this.parent.isAdaptive) {
|
|
12627
|
+
if (!this.parent.isAdaptive && isNullOrUndefined(this.parent.editorFooterTemplate)) {
|
|
12499
12628
|
removeClass([this.element.querySelector('.' + DELETE_EVENT_CLASS)], DISABLE_CLASS);
|
|
12500
12629
|
}
|
|
12501
|
-
this.
|
|
12630
|
+
if (isNullOrUndefined(this.parent.editorHeaderTemplate)) {
|
|
12631
|
+
this.element.querySelector('.' + EVENT_WINDOW_TITLE_TEXT_CLASS).innerHTML = this.l10n.getConstant('editEvent');
|
|
12632
|
+
}
|
|
12502
12633
|
this.element.querySelector('.' + FORM_CLASS).setAttribute('data-id', eventObj[this.fields.id].toString());
|
|
12503
12634
|
if (isNullOrUndefined(this.parent.editorTemplate)) {
|
|
12504
12635
|
eventObj = extend({}, eventObj, null, true);
|
|
@@ -13300,7 +13431,7 @@ class EventWindow {
|
|
|
13300
13431
|
}
|
|
13301
13432
|
destroy(isIgnore) {
|
|
13302
13433
|
if (this.parent && !this.parent.isDestroyed) {
|
|
13303
|
-
this.parent.resetTemplates(['editorTemplate']);
|
|
13434
|
+
this.parent.resetTemplates(['editorTemplate', 'editorHeaderTemplate', 'editorFooterTemplate']);
|
|
13304
13435
|
}
|
|
13305
13436
|
this.destroyComponents();
|
|
13306
13437
|
if (this.recurrenceEditor) {
|
|
@@ -13343,6 +13474,7 @@ class EventWindow {
|
|
|
13343
13474
|
}
|
|
13344
13475
|
}
|
|
13345
13476
|
|
|
13477
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
13346
13478
|
/**
|
|
13347
13479
|
* Virtual Scroll
|
|
13348
13480
|
*/
|
|
@@ -13430,6 +13562,16 @@ class VirtualScroll {
|
|
|
13430
13562
|
}
|
|
13431
13563
|
renderEvents() {
|
|
13432
13564
|
this.setTabIndex();
|
|
13565
|
+
const dynamicData = this.triggerScrollEvent(virtualScrollStop);
|
|
13566
|
+
if (this.parent.activeViewOptions && this.parent.activeViewOptions.enableLazyLoading && this.parent.crudModule) {
|
|
13567
|
+
if (dynamicData.length > 0) {
|
|
13568
|
+
this.parent.crudModule.refreshProcessedData(true, dynamicData);
|
|
13569
|
+
this.parent.hideSpinner();
|
|
13570
|
+
return;
|
|
13571
|
+
}
|
|
13572
|
+
this.parent.crudModule.refreshDataManager();
|
|
13573
|
+
return;
|
|
13574
|
+
}
|
|
13433
13575
|
if (this.parent.crudModule) {
|
|
13434
13576
|
this.parent.crudModule.refreshProcessedData(true);
|
|
13435
13577
|
}
|
|
@@ -13465,7 +13607,7 @@ class VirtualScroll {
|
|
|
13465
13607
|
resCollection = this.downScroll(conWrap, firstTDIndex);
|
|
13466
13608
|
}
|
|
13467
13609
|
if (!isNullOrUndefined(resCollection) && resCollection.length > 0) {
|
|
13468
|
-
this.
|
|
13610
|
+
this.triggerScrollEvent(virtualScrollStart);
|
|
13469
13611
|
const selectedEle = this.parent.getSelectedCells();
|
|
13470
13612
|
this.focusedEle = selectedEle[selectedEle.length - 1] || this.focusedEle;
|
|
13471
13613
|
this.updateContent(resWrap, conWrap, eventWrap, resCollection);
|
|
@@ -13492,7 +13634,7 @@ class VirtualScroll {
|
|
|
13492
13634
|
this.parent.resourceBase.expandedResources[0] !== resCollection[0] ||
|
|
13493
13635
|
this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1] !==
|
|
13494
13636
|
resCollection[resCollection.length - 1]) {
|
|
13495
|
-
this.
|
|
13637
|
+
this.triggerScrollEvent(virtualScrollStart);
|
|
13496
13638
|
const colLevels = this.parent.activeView.colLevels.slice(0);
|
|
13497
13639
|
this.updateHorizontalContent(conWrap, resCollection);
|
|
13498
13640
|
setStyleAttribute(conWrap.querySelector('table'), { transform: `translateX(${this.translateY}px)` });
|
|
@@ -13505,6 +13647,29 @@ class VirtualScroll {
|
|
|
13505
13647
|
this.timeValue = window.setTimeout(() => { this.renderEvents(); }, 250);
|
|
13506
13648
|
}
|
|
13507
13649
|
}
|
|
13650
|
+
triggerScrollEvent(action) {
|
|
13651
|
+
let dynamicData = [];
|
|
13652
|
+
if (!this.parent.activeView) {
|
|
13653
|
+
return dynamicData;
|
|
13654
|
+
}
|
|
13655
|
+
const eventArgs = {
|
|
13656
|
+
startDate: this.parent.activeView.startDate(),
|
|
13657
|
+
endDate: this.parent.activeView.endDate(),
|
|
13658
|
+
startIndex: this.parent.resourceBase.renderedResources[0].groupIndex,
|
|
13659
|
+
endIndex: this.parent.resourceBase.renderedResources[this.parent.resourceBase.renderedResources.length - 1].groupIndex,
|
|
13660
|
+
resourceData: this.parent.resourceBase.renderedResources.map((x) => x.resourceData),
|
|
13661
|
+
name: action
|
|
13662
|
+
};
|
|
13663
|
+
this.parent.trigger(action, eventArgs, (args) => {
|
|
13664
|
+
if (action === virtualScrollStart) {
|
|
13665
|
+
this.parent.showSpinner();
|
|
13666
|
+
}
|
|
13667
|
+
else if (action === virtualScrollStop && !isNullOrUndefined(args.eventData) && args.eventData.length > 0) {
|
|
13668
|
+
dynamicData = args.eventData;
|
|
13669
|
+
}
|
|
13670
|
+
});
|
|
13671
|
+
return dynamicData;
|
|
13672
|
+
}
|
|
13508
13673
|
upScroll(conWrap, firstTDIndex) {
|
|
13509
13674
|
let index = 0;
|
|
13510
13675
|
index = (~~(conWrap.scrollTop / this.itemSize) + Math.ceil(conWrap.clientHeight / this.itemSize)) - this.renderedLength;
|
|
@@ -14019,7 +14184,7 @@ class Crud {
|
|
|
14019
14184
|
}
|
|
14020
14185
|
this.parent.trigger(actionFailure, { error: e }, () => this.parent.hideSpinner());
|
|
14021
14186
|
}
|
|
14022
|
-
refreshProcessedData(isVirtualScrollAction = false) {
|
|
14187
|
+
refreshProcessedData(isVirtualScrollAction = false, dynamicEvents) {
|
|
14023
14188
|
if (this.parent.dragAndDropModule) {
|
|
14024
14189
|
this.parent.dragAndDropModule.actionObj.action = '';
|
|
14025
14190
|
removeClass([this.parent.element], 'e-event-action');
|
|
@@ -14042,7 +14207,7 @@ class Crud {
|
|
|
14042
14207
|
}
|
|
14043
14208
|
}
|
|
14044
14209
|
if (isVirtualScrollAction) {
|
|
14045
|
-
this.parent.notify(dataReady, { processedData: this.parent.eventsProcessed });
|
|
14210
|
+
this.parent.notify(dataReady, { processedData: dynamicEvents ? this.parent.eventBase.processData(dynamicEvents) : this.parent.eventsProcessed });
|
|
14046
14211
|
return;
|
|
14047
14212
|
}
|
|
14048
14213
|
const eventsData = this.parent.eventsData || [];
|
|
@@ -14198,6 +14363,8 @@ class Crud {
|
|
|
14198
14363
|
editParams.changedRecords.push(event);
|
|
14199
14364
|
promise = this.parent.dataModule.dataManager.update(fields.id, event, this.getTable(), this.getQuery());
|
|
14200
14365
|
}
|
|
14366
|
+
const cloneEvent = extend({}, saveArgs.changedRecords[saveArgs.changedRecords.length - 1], null, true);
|
|
14367
|
+
this.parent.eventBase.selectWorkCellByTime([this.parent.eventBase.processTimezone(cloneEvent)]);
|
|
14201
14368
|
const crudArgs = {
|
|
14202
14369
|
requestType: 'eventChanged', cancel: false,
|
|
14203
14370
|
data: saveArgs.changedRecords, promise: promise, editParams: editParams
|
|
@@ -14325,7 +14492,8 @@ class Crud {
|
|
|
14325
14492
|
}
|
|
14326
14493
|
}
|
|
14327
14494
|
const promise = this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, this.getTable(), this.getQuery());
|
|
14328
|
-
|
|
14495
|
+
const cloneEvent = extend({}, occurrenceArgs.changedRecords[occurrenceArgs.changedRecords.length - 1], null, true);
|
|
14496
|
+
this.parent.eventBase.selectWorkCellByTime(action === 'EditOccurrence' ? [this.parent.eventBase.processTimezone(cloneEvent)] : [cloneEvent]);
|
|
14329
14497
|
const crudArgs = {
|
|
14330
14498
|
requestType: action === 'EditOccurrence' ? 'eventChanged' : 'eventRemoved',
|
|
14331
14499
|
cancel: false, data: isDeletedRecords ? occurrenceArgs.deletedRecords : occurrenceArgs.changedRecords,
|
|
@@ -14395,7 +14563,8 @@ class Crud {
|
|
|
14395
14563
|
}
|
|
14396
14564
|
}
|
|
14397
14565
|
const promise = this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, this.getTable(), this.getQuery());
|
|
14398
|
-
|
|
14566
|
+
const cloneEvent = extend({}, followArgs.changedRecords[followArgs.changedRecords.length - 1], null, true);
|
|
14567
|
+
this.parent.eventBase.selectWorkCellByTime(action === 'EditFollowingEvents' ? [this.parent.eventBase.processTimezone(cloneEvent)] : [cloneEvent]);
|
|
14399
14568
|
const crudArgs = {
|
|
14400
14569
|
requestType: action === 'EditFollowingEvents' ? 'eventChanged' : 'eventRemoved',
|
|
14401
14570
|
cancel: false, data: followArgs.changedRecords, promise: promise, editParams: editParams
|
|
@@ -14456,7 +14625,8 @@ class Crud {
|
|
|
14456
14625
|
}
|
|
14457
14626
|
}
|
|
14458
14627
|
const promise = this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, this.getTable(), this.getQuery());
|
|
14459
|
-
|
|
14628
|
+
const cloneEvent = extend({}, seriesArgs.changedRecords[seriesArgs.changedRecords.length - 1], null, true);
|
|
14629
|
+
this.parent.eventBase.selectWorkCellByTime(action === 'EditSeries' ? [this.parent.eventBase.processTimezone(cloneEvent)] : [cloneEvent]);
|
|
14460
14630
|
const crudArgs = {
|
|
14461
14631
|
requestType: action === 'EditSeries' ? 'eventChanged' : 'eventRemoved',
|
|
14462
14632
|
cancel: false, data: isDeletedRecords ? seriesArgs.deletedRecords : seriesArgs.changedRecords,
|
|
@@ -14510,6 +14680,7 @@ class Crud {
|
|
|
14510
14680
|
}
|
|
14511
14681
|
}
|
|
14512
14682
|
const promise = this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, this.getTable(), this.getQuery());
|
|
14683
|
+
this.parent.eventBase.selectWorkCellByTime(deleteArgs.deletedRecords);
|
|
14513
14684
|
const crudArgs = {
|
|
14514
14685
|
requestType: 'eventRemoved', cancel: false, data: deleteArgs.deletedRecords, promise: promise, editParams: editParams
|
|
14515
14686
|
};
|
|
@@ -14550,6 +14721,8 @@ class Crud {
|
|
|
14550
14721
|
}
|
|
14551
14722
|
}
|
|
14552
14723
|
const promise = this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, this.getTable(), this.getQuery());
|
|
14724
|
+
const cloneEvent = extend({}, editArgs.changedRecords[editArgs.changedRecords.length - 1], null, true);
|
|
14725
|
+
this.parent.eventBase.selectWorkCellByTime([this.parent.eventBase.processTimezone(cloneEvent)]);
|
|
14553
14726
|
const crudArgs = { requestType: 'eventChanged', cancel: false, data: editArgs.changedRecords, promise: promise, editParams: editParams };
|
|
14554
14727
|
this.refreshData(crudArgs);
|
|
14555
14728
|
}
|
|
@@ -15344,6 +15517,7 @@ class ResourceBase {
|
|
|
15344
15517
|
nodeClicked: this.resourceClick.bind(this),
|
|
15345
15518
|
created: this.resourceTreeCreated.bind(this)
|
|
15346
15519
|
});
|
|
15520
|
+
this.treeViewObj.root = this.parent.root ? this.parent.root : this.parent;
|
|
15347
15521
|
this.treeViewObj.appendTo(resourceTree);
|
|
15348
15522
|
this.treeViewObj.expandAll();
|
|
15349
15523
|
this.treePopup = new Popup(treeWrapper, {
|
|
@@ -16188,6 +16362,13 @@ let Schedule = class Schedule extends Component {
|
|
|
16188
16362
|
this.renderElements(isSetModel);
|
|
16189
16363
|
}
|
|
16190
16364
|
}
|
|
16365
|
+
destroyEditorWindow() {
|
|
16366
|
+
if (this.eventWindow) {
|
|
16367
|
+
this.eventWindow.destroy();
|
|
16368
|
+
this.eventWindow = null;
|
|
16369
|
+
}
|
|
16370
|
+
this.eventWindow = new EventWindow(this);
|
|
16371
|
+
}
|
|
16191
16372
|
/**
|
|
16192
16373
|
* Method to render the layout elements
|
|
16193
16374
|
*
|
|
@@ -16354,7 +16535,8 @@ let Schedule = class Schedule extends Component {
|
|
|
16354
16535
|
headerRows: this.headerRows,
|
|
16355
16536
|
orientation: 'Horizontal',
|
|
16356
16537
|
numberOfWeeks: 0,
|
|
16357
|
-
displayDate: null
|
|
16538
|
+
displayDate: null,
|
|
16539
|
+
enableLazyLoading: false
|
|
16358
16540
|
};
|
|
16359
16541
|
const viewOptions = this.viewCollections[this.viewIndex];
|
|
16360
16542
|
const viewsData = extend(scheduleOptions, viewOptions, undefined, true);
|
|
@@ -16365,6 +16547,11 @@ let Schedule = class Schedule extends Component {
|
|
|
16365
16547
|
viewsData.displayDate = viewsData.displayDate instanceof Date ? new Date(viewsData.displayDate.getTime()) :
|
|
16366
16548
|
new Date(viewsData.displayDate);
|
|
16367
16549
|
}
|
|
16550
|
+
if (viewsData.enableLazyLoading && !isNullOrUndefined(viewsData.group.resources) && viewsData.group.resources.length > 0 &&
|
|
16551
|
+
(['Agenda', 'MonthAgenda', 'Year', 'TimelineYear'].indexOf(viewsData.option) === -1 ||
|
|
16552
|
+
(viewsData.option === 'TimelineYear' && viewsData.orientation === 'Vertical'))) {
|
|
16553
|
+
viewsData.allowVirtualScrolling = true;
|
|
16554
|
+
}
|
|
16368
16555
|
return viewsData;
|
|
16369
16556
|
}
|
|
16370
16557
|
initializeDataModule() {
|
|
@@ -16426,6 +16613,8 @@ let Schedule = class Schedule extends Component {
|
|
|
16426
16613
|
this.headerTooltipTemplateFn = this.templateParser(this.activeViewOptions.group.headerTooltipTemplate);
|
|
16427
16614
|
this.eventTooltipTemplateFn = this.templateParser(this.eventSettings.tooltipTemplate);
|
|
16428
16615
|
this.editorTemplateFn = this.templateParser(this.editorTemplate);
|
|
16616
|
+
this.editorHeaderTemplateFn = this.templateParser(this.editorHeaderTemplate);
|
|
16617
|
+
this.editorFooterTemplateFn = this.templateParser(this.editorFooterTemplate);
|
|
16429
16618
|
this.quickInfoTemplatesHeaderFn = this.templateParser(this.quickInfoTemplates.header);
|
|
16430
16619
|
this.quickInfoTemplatesContentFn = this.templateParser(this.quickInfoTemplates.content);
|
|
16431
16620
|
this.quickInfoTemplatesFooterFn = this.templateParser(this.quickInfoTemplates.footer);
|
|
@@ -17059,6 +17248,24 @@ let Schedule = class Schedule extends Component {
|
|
|
17059
17248
|
getEditorTemplate() {
|
|
17060
17249
|
return this.editorTemplateFn;
|
|
17061
17250
|
}
|
|
17251
|
+
/**
|
|
17252
|
+
* Method to process editor header template
|
|
17253
|
+
*
|
|
17254
|
+
* @returns {CallbackFunction} Returns the callback function
|
|
17255
|
+
* @private
|
|
17256
|
+
*/
|
|
17257
|
+
getEditorHeaderTemplate() {
|
|
17258
|
+
return this.editorHeaderTemplateFn;
|
|
17259
|
+
}
|
|
17260
|
+
/**
|
|
17261
|
+
* Method to process editor footer template
|
|
17262
|
+
*
|
|
17263
|
+
* @returns {CallbackFunction} Returns the callback function
|
|
17264
|
+
* @private
|
|
17265
|
+
*/
|
|
17266
|
+
getEditorFooterTemplate() {
|
|
17267
|
+
return this.editorFooterTemplateFn;
|
|
17268
|
+
}
|
|
17062
17269
|
/**
|
|
17063
17270
|
* Method to process quick info header template
|
|
17064
17271
|
*
|
|
@@ -17575,6 +17782,22 @@ let Schedule = class Schedule extends Component {
|
|
|
17575
17782
|
this.eventWindow.setDialogContent();
|
|
17576
17783
|
}
|
|
17577
17784
|
break;
|
|
17785
|
+
case 'editorHeaderTemplate':
|
|
17786
|
+
if (!isNullOrUndefined(this.editorHeaderTemplate)) {
|
|
17787
|
+
this.editorHeaderTemplateFn = this.templateParser(this.editorHeaderTemplate);
|
|
17788
|
+
}
|
|
17789
|
+
if (this.eventWindow) {
|
|
17790
|
+
this.eventWindow.setDialogHeader();
|
|
17791
|
+
}
|
|
17792
|
+
break;
|
|
17793
|
+
case 'editorFooterTemplate':
|
|
17794
|
+
if (!isNullOrUndefined(this.editorFooterTemplate)) {
|
|
17795
|
+
this.editorFooterTemplateFn = this.templateParser(this.editorFooterTemplate);
|
|
17796
|
+
}
|
|
17797
|
+
if (this.eventWindow) {
|
|
17798
|
+
this.eventWindow.setDialogFooter();
|
|
17799
|
+
}
|
|
17800
|
+
break;
|
|
17578
17801
|
case 'quickInfoTemplates':
|
|
17579
17802
|
if (this.quickInfoTemplates.header) {
|
|
17580
17803
|
this.quickInfoTemplatesHeaderFn = this.templateParser(this.quickInfoTemplates.header);
|
|
@@ -18340,13 +18563,17 @@ let Schedule = class Schedule extends Component {
|
|
|
18340
18563
|
this.quickInfoTemplatesFooterFn = this.templateParser(this.quickInfoTemplates.footer);
|
|
18341
18564
|
break;
|
|
18342
18565
|
case 'editorTemplate':
|
|
18343
|
-
|
|
18344
|
-
this.eventWindow.destroy();
|
|
18345
|
-
this.eventWindow = null;
|
|
18346
|
-
}
|
|
18347
|
-
this.eventWindow = new EventWindow(this);
|
|
18566
|
+
this.destroyEditorWindow();
|
|
18348
18567
|
this.editorTemplateFn = this.templateParser(this.editorTemplate);
|
|
18349
18568
|
break;
|
|
18569
|
+
case 'editorHeaderTemplate':
|
|
18570
|
+
this.destroyEditorWindow();
|
|
18571
|
+
this.editorHeaderTemplateFn = this.templateParser(this.editorHeaderTemplate);
|
|
18572
|
+
break;
|
|
18573
|
+
case 'editorFooterTemplate':
|
|
18574
|
+
this.destroyEditorWindow();
|
|
18575
|
+
this.editorFooterTemplateFn = this.templateParser(this.editorFooterTemplate);
|
|
18576
|
+
break;
|
|
18350
18577
|
case 'tooltipTemplate':
|
|
18351
18578
|
case 'headerTooltipTemplate':
|
|
18352
18579
|
if (this.eventTooltip) {
|
|
@@ -18820,6 +19047,12 @@ __decorate([
|
|
|
18820
19047
|
__decorate([
|
|
18821
19048
|
Property()
|
|
18822
19049
|
], Schedule.prototype, "editorTemplate", void 0);
|
|
19050
|
+
__decorate([
|
|
19051
|
+
Property()
|
|
19052
|
+
], Schedule.prototype, "editorHeaderTemplate", void 0);
|
|
19053
|
+
__decorate([
|
|
19054
|
+
Property()
|
|
19055
|
+
], Schedule.prototype, "editorFooterTemplate", void 0);
|
|
18823
19056
|
__decorate([
|
|
18824
19057
|
Complex({}, QuickInfoTemplates)
|
|
18825
19058
|
], Schedule.prototype, "quickInfoTemplates", void 0);
|
|
@@ -18901,6 +19134,9 @@ __decorate([
|
|
|
18901
19134
|
__decorate([
|
|
18902
19135
|
Event()
|
|
18903
19136
|
], Schedule.prototype, "eventClick", void 0);
|
|
19137
|
+
__decorate([
|
|
19138
|
+
Event()
|
|
19139
|
+
], Schedule.prototype, "eventDoubleClick", void 0);
|
|
18904
19140
|
__decorate([
|
|
18905
19141
|
Event()
|
|
18906
19142
|
], Schedule.prototype, "eventRendered", void 0);
|
|
@@ -18931,6 +19167,12 @@ __decorate([
|
|
|
18931
19167
|
__decorate([
|
|
18932
19168
|
Event()
|
|
18933
19169
|
], Schedule.prototype, "resizeStop", void 0);
|
|
19170
|
+
__decorate([
|
|
19171
|
+
Event()
|
|
19172
|
+
], Schedule.prototype, "virtualScrollStart", void 0);
|
|
19173
|
+
__decorate([
|
|
19174
|
+
Event()
|
|
19175
|
+
], Schedule.prototype, "virtualScrollStop", void 0);
|
|
18934
19176
|
__decorate([
|
|
18935
19177
|
Event()
|
|
18936
19178
|
], Schedule.prototype, "dataBound", void 0);
|
|
@@ -26982,5 +27224,5 @@ class Print {
|
|
|
26982
27224
|
* Export Schedule components
|
|
26983
27225
|
*/
|
|
26984
27226
|
|
|
26985
|
-
export { Schedule, cellClick, cellDoubleClick, moreEventsClick, select, hover, actionBegin, actionComplete, actionFailure, navigating, renderCell, eventClick, eventRendered, dataBinding, dataBound, popupOpen, popupClose, dragStart, drag, dragStop, resizeStart, resizing, resizeStop, inlineClick, cellSelect, initialLoad, initialEnd, print$1 as print, dataReady, eventsLoaded, contentReady, scroll, virtualScroll, scrollUiUpdate, uiUpdate, documentClick, cellMouseDown, WEEK_LENGTH, DEFAULT_WEEKS, MS_PER_DAY, MS_PER_MINUTE, getElementHeightFromClass, getElementWidthFromClass, getTranslateY, getTranslateX, getWeekFirstDate, getWeekLastDate, firstDateOfMonth, lastDateOfMonth, getWeekNumber, getWeekMiddleDate, setTime, resetTime, getDateInMs, getDateCount, addDays, addMonths, addYears, getStartEndHours, getMaxDays, getDaysCount, getDateFromString, getScrollBarWidth, resetScrollbarWidth, findIndexInData, getOuterHeight, removeChildren, isDaylightSavingTime, getUniversalTime, isMobile, isIPadDevice, capitalizeFirstWord, Resize, DragAndDrop, HeaderRenderer, ViewBase, Day, Week, WorkWeek, Month, Year, Agenda, MonthAgenda, TimelineViews, TimelineMonth, TimelineYear, Timezone, timezoneData, ICalendarExport, ICalendarImport, ExcelExport, Print, RecurrenceEditor, generateSummary, generate, getDateFromRecurrenceDateString, extractObjectFromRule, getCalendarUtil, getRecurrenceStringFromDate, Gregorian, Islamic };
|
|
27227
|
+
export { Schedule, cellClick, cellDoubleClick, moreEventsClick, select, hover, actionBegin, actionComplete, actionFailure, navigating, renderCell, eventClick, eventDoubleClick, eventRendered, dataBinding, dataBound, popupOpen, popupClose, dragStart, drag, dragStop, resizeStart, resizing, resizeStop, inlineClick, cellSelect, virtualScrollStart, virtualScrollStop, initialLoad, initialEnd, print$1 as print, dataReady, eventsLoaded, contentReady, scroll, virtualScroll, scrollUiUpdate, uiUpdate, documentClick, cellMouseDown, WEEK_LENGTH, DEFAULT_WEEKS, MS_PER_DAY, MS_PER_MINUTE, getElementHeightFromClass, getElementWidthFromClass, getTranslateY, getTranslateX, getWeekFirstDate, getWeekLastDate, firstDateOfMonth, lastDateOfMonth, getWeekNumber, getWeekMiddleDate, setTime, resetTime, getDateInMs, getDateCount, addDays, addMonths, addYears, getStartEndHours, getMaxDays, getDaysCount, getDateFromString, getScrollBarWidth, resetScrollbarWidth, findIndexInData, getOuterHeight, removeChildren, isDaylightSavingTime, getUniversalTime, isMobile, isIPadDevice, capitalizeFirstWord, Resize, DragAndDrop, HeaderRenderer, ViewBase, Day, Week, WorkWeek, Month, Year, Agenda, MonthAgenda, TimelineViews, TimelineMonth, TimelineYear, Timezone, timezoneData, ICalendarExport, ICalendarImport, ExcelExport, Print, RecurrenceEditor, generateSummary, generate, getDateFromRecurrenceDateString, extractObjectFromRule, getCalendarUtil, getRecurrenceStringFromDate, Gregorian, Islamic };
|
|
26986
27228
|
//# sourceMappingURL=ej2-schedule.es2015.js.map
|