@syncfusion/ej2-schedule 24.2.8 → 25.1.37
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 +17 -0
- 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 +145 -39
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +146 -36
- 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 +16 -16
- package/src/recurrence-editor/recurrence-editor.js +1 -2
- package/src/schedule/actions/crud.js +9 -0
- package/src/schedule/actions/keyboard.d.ts +1 -0
- package/src/schedule/actions/keyboard.js +11 -4
- package/src/schedule/base/css-constant.d.ts +2 -0
- package/src/schedule/base/css-constant.js +2 -0
- package/src/schedule/base/interface.d.ts +1 -0
- package/src/schedule/base/schedule.d.ts +4 -1
- package/src/schedule/base/schedule.js +16 -1
- package/src/schedule/base/type.d.ts +1 -0
- package/src/schedule/event-renderer/agenda-base.d.ts +1 -1
- package/src/schedule/event-renderer/agenda-base.js +36 -14
- package/src/schedule/event-renderer/event-base.js +4 -2
- package/src/schedule/event-renderer/vertical-view.js +7 -1
- package/src/schedule/popups/quick-popups.js +11 -0
- package/src/schedule/renderer/agenda.d.ts +1 -0
- package/src/schedule/renderer/agenda.js +38 -9
- package/src/schedule/renderer/renderer.js +11 -3
- package/styles/bootstrap-dark.css +12 -2
- package/styles/bootstrap.css +12 -2
- package/styles/bootstrap4.css +9 -3
- package/styles/bootstrap5-dark.css +9 -3
- package/styles/bootstrap5.css +9 -3
- package/styles/fabric-dark.css +8 -2
- package/styles/fabric.css +8 -2
- package/styles/fluent-dark.css +13 -2
- package/styles/fluent.css +13 -2
- package/styles/highcontrast-light.css +8 -2
- package/styles/highcontrast.css +8 -2
- package/styles/material-dark.css +17 -2
- package/styles/material.css +17 -2
- package/styles/material3-dark.css +9 -3
- package/styles/material3.css +9 -3
- package/styles/recurrence-editor/_bds-definition.scss +15 -0
- package/styles/schedule/_bds-definition.scss +287 -0
- package/styles/schedule/_bootstrap4-definition.scss +1 -1
- package/styles/schedule/_bootstrap5-definition.scss +1 -1
- package/styles/schedule/_fusionnew-definition.scss +1 -1
- package/styles/schedule/_layout.scss +6 -1
- package/styles/schedule/_material3-definition.scss +1 -1
- package/styles/schedule/_tailwind-definition.scss +1 -1
- package/styles/schedule/bootstrap-dark.css +12 -2
- package/styles/schedule/bootstrap.css +12 -2
- package/styles/schedule/bootstrap4.css +9 -3
- package/styles/schedule/bootstrap5-dark.css +9 -3
- package/styles/schedule/bootstrap5.css +9 -3
- package/styles/schedule/fabric-dark.css +8 -2
- package/styles/schedule/fabric.css +8 -2
- package/styles/schedule/fluent-dark.css +13 -2
- package/styles/schedule/fluent.css +13 -2
- package/styles/schedule/highcontrast-light.css +8 -2
- package/styles/schedule/highcontrast.css +8 -2
- package/styles/schedule/icons/_bds.scss +235 -0
- package/styles/schedule/material-dark.css +17 -2
- package/styles/schedule/material.css +17 -2
- package/styles/schedule/material3-dark.css +9 -3
- package/styles/schedule/material3.css +9 -3
- package/styles/schedule/tailwind-dark.css +9 -3
- package/styles/schedule/tailwind.css +9 -3
- package/styles/tailwind-dark.css +9 -3
- package/styles/tailwind.css +9 -3
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version :
|
|
3
|
+
* version : 25.1.37
|
|
4
4
|
* Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
|
|
5
5
|
* Use of this code is subject to the terms of our license.
|
|
6
6
|
* A copy of the current license can be obtained at any time by e-mailing
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_from": "@syncfusion/ej2-schedule@*",
|
|
3
|
-
"_id": "@syncfusion/ej2-schedule@
|
|
3
|
+
"_id": "@syncfusion/ej2-schedule@25.1.35",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
5
|
+
"_integrity": "sha512-C5bGDJaFwqPz1Wq+Z8zpeJVuVORM+lbciSAfEMADI0Y4RxFMazNh7QeO+TmJob7HNwweDSMqndt8PekrkE+/iw==",
|
|
6
6
|
"_location": "/@syncfusion/ej2-schedule",
|
|
7
7
|
"_phantomChildren": {},
|
|
8
8
|
"_requested": {
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"/@syncfusion/ej2-react-schedule",
|
|
24
24
|
"/@syncfusion/ej2-vue-schedule"
|
|
25
25
|
],
|
|
26
|
-
"_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-
|
|
27
|
-
"_shasum": "
|
|
26
|
+
"_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-25.1.35.tgz",
|
|
27
|
+
"_shasum": "dcc2a86f99921e8b4a2578498d701159a470ecec",
|
|
28
28
|
"_spec": "@syncfusion/ej2-schedule@*",
|
|
29
|
-
"_where": "/jenkins/workspace/elease-
|
|
29
|
+
"_where": "/jenkins/workspace/elease-automation_release_25.1.1/packages/included",
|
|
30
30
|
"author": {
|
|
31
31
|
"name": "Syncfusion Inc."
|
|
32
32
|
},
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
},
|
|
36
36
|
"bundleDependencies": false,
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@syncfusion/ej2-base": "~
|
|
39
|
-
"@syncfusion/ej2-buttons": "~
|
|
40
|
-
"@syncfusion/ej2-calendars": "~
|
|
41
|
-
"@syncfusion/ej2-data": "~
|
|
42
|
-
"@syncfusion/ej2-dropdowns": "~
|
|
43
|
-
"@syncfusion/ej2-excel-export": "~
|
|
44
|
-
"@syncfusion/ej2-inputs": "~
|
|
45
|
-
"@syncfusion/ej2-lists": "~
|
|
46
|
-
"@syncfusion/ej2-navigations": "~
|
|
47
|
-
"@syncfusion/ej2-popups": "~
|
|
38
|
+
"@syncfusion/ej2-base": "~25.1.35",
|
|
39
|
+
"@syncfusion/ej2-buttons": "~25.1.35",
|
|
40
|
+
"@syncfusion/ej2-calendars": "~25.1.37",
|
|
41
|
+
"@syncfusion/ej2-data": "~25.1.35",
|
|
42
|
+
"@syncfusion/ej2-dropdowns": "~25.1.37",
|
|
43
|
+
"@syncfusion/ej2-excel-export": "~25.1.35",
|
|
44
|
+
"@syncfusion/ej2-inputs": "~25.1.37",
|
|
45
|
+
"@syncfusion/ej2-lists": "~25.1.35",
|
|
46
|
+
"@syncfusion/ej2-navigations": "~25.1.37",
|
|
47
|
+
"@syncfusion/ej2-popups": "~25.1.35"
|
|
48
48
|
},
|
|
49
49
|
"deprecated": false,
|
|
50
50
|
"description": "Flexible scheduling library with more built-in features and enhanced customization options similar to outlook and google calendar, allowing the users to plan and manage their appointments with efficient data-binding support.",
|
|
@@ -73,6 +73,6 @@
|
|
|
73
73
|
"url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
|
|
74
74
|
},
|
|
75
75
|
"typings": "index.d.ts",
|
|
76
|
-
"version": "
|
|
76
|
+
"version": "25.1.37",
|
|
77
77
|
"sideEffects": false
|
|
78
78
|
}
|
|
@@ -716,7 +716,6 @@ var RecurrenceEditor = /** @class */ (function (_super) {
|
|
|
716
716
|
RecurrenceEditor.prototype.setTemplate = function () {
|
|
717
717
|
var dayData = this.getDayData('narrow');
|
|
718
718
|
var fullDay = this.getDayData('wide');
|
|
719
|
-
var labelId = this.element.id + '_' + 'end_label';
|
|
720
719
|
this.element.innerHTML = '<div class="' + HEADER + '">' +
|
|
721
720
|
'<div class="' + INPUTWARAPPER + ' ' + FORMLEFT + '">' +
|
|
722
721
|
'<input type="text" tabindex="0" class="' + REPEATELEMENT +
|
|
@@ -763,7 +762,7 @@ var RecurrenceEditor = /** @class */ (function (_super) {
|
|
|
763
762
|
'</div></div>' +
|
|
764
763
|
'<div class="' + INPUTWARAPPERSIDE + ' ' + ENDON + ' ' + FORMRIGHT + '">' +
|
|
765
764
|
'<div class="' + INPUTWARAPPER + ' ' + ENDONLEFT + '">' +
|
|
766
|
-
'<input type="text" tabindex="0" class="' + ENDONELEMENT + '"
|
|
765
|
+
'<input type="text" tabindex="0" class="' + ENDONELEMENT + '"title="' + this.localeObj.getConstant(END) + '" />' +
|
|
767
766
|
'</div>' +
|
|
768
767
|
'<div class="' + INPUTWARAPPER + ' ' + ENDONDATE + '" >' +
|
|
769
768
|
'<input type="text" tabindex="0" class="' + UNTILDATE + '"title="' + this.localeObj.getConstant(UNTIL) + '" />' +
|
|
@@ -29,6 +29,12 @@ var Crud = /** @class */ (function () {
|
|
|
29
29
|
if (!this.parent.activeView) {
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
|
+
if (this.parent.uiStateValues && this.parent.uiStateValues.isPreventEventRefresh) {
|
|
33
|
+
this.parent.uiStateValues.isPreventEventRefresh = false;
|
|
34
|
+
this.parent.refreshEvents(false);
|
|
35
|
+
this.parent.hideSpinner();
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
32
38
|
var start = this.parent.activeView.startDate();
|
|
33
39
|
var end = this.parent.activeView.endDate();
|
|
34
40
|
var dataManager = this.parent.dataModule.getData(this.parent.dataModule.generateQuery(start, end));
|
|
@@ -40,6 +46,9 @@ var Crud = /** @class */ (function () {
|
|
|
40
46
|
return;
|
|
41
47
|
}
|
|
42
48
|
this.parent.trigger(events.dataBinding, e, function (args) {
|
|
49
|
+
if (args.cancel) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
43
52
|
var resultData = extend([], args.result, null, true);
|
|
44
53
|
_this.parent.eventsData = resultData.filter(function (data) { return !data[_this.parent.eventFields.isBlock]; });
|
|
45
54
|
_this.parent.blockData = resultData.filter(function (data) { return data[_this.parent.eventFields.isBlock]; });
|
|
@@ -42,6 +42,7 @@ export declare class KeyboardInteraction {
|
|
|
42
42
|
private getUniqueAppointmentElements;
|
|
43
43
|
private getWorkCellFromAppointmentElement;
|
|
44
44
|
private processViewNavigation;
|
|
45
|
+
private isCalendarTarget;
|
|
45
46
|
private cancelUpDownAction;
|
|
46
47
|
private processUp;
|
|
47
48
|
private processDown;
|
|
@@ -558,6 +558,13 @@ var KeyboardInteraction = /** @class */ (function () {
|
|
|
558
558
|
}
|
|
559
559
|
}
|
|
560
560
|
};
|
|
561
|
+
KeyboardInteraction.prototype.isCalendarTarget = function (e) {
|
|
562
|
+
var keyTarget = e.currentTarget || e.target;
|
|
563
|
+
if (keyTarget && !isNullOrUndefined(keyTarget.querySelector('.e-header-popup.e-popup-open'))) {
|
|
564
|
+
return true;
|
|
565
|
+
}
|
|
566
|
+
return false;
|
|
567
|
+
};
|
|
561
568
|
KeyboardInteraction.prototype.cancelUpDownAction = function (isTimelineYear) {
|
|
562
569
|
var isVerticalYear = isTimelineYear && this.parent.activeViewOptions.orientation === 'Vertical';
|
|
563
570
|
var isGroup = this.parent.activeViewOptions.group.resources.length > 0;
|
|
@@ -571,7 +578,7 @@ var KeyboardInteraction = /** @class */ (function () {
|
|
|
571
578
|
};
|
|
572
579
|
KeyboardInteraction.prototype.processUp = function (e, isMultiple) {
|
|
573
580
|
var isTimelineYear = this.parent.currentView === 'TimelineYear';
|
|
574
|
-
if (isMultiple && this.cancelUpDownAction(isTimelineYear)) {
|
|
581
|
+
if (isMultiple && this.cancelUpDownAction(isTimelineYear) || (this.isCalendarTarget(e))) {
|
|
575
582
|
return;
|
|
576
583
|
}
|
|
577
584
|
var target = (e.target);
|
|
@@ -619,7 +626,7 @@ var KeyboardInteraction = /** @class */ (function () {
|
|
|
619
626
|
};
|
|
620
627
|
KeyboardInteraction.prototype.processDown = function (e, isMultiple) {
|
|
621
628
|
var isTimelineYear = this.parent.currentView === 'TimelineYear';
|
|
622
|
-
if (isMultiple && this.cancelUpDownAction(isTimelineYear)) {
|
|
629
|
+
if (isMultiple && this.cancelUpDownAction(isTimelineYear) || (this.isCalendarTarget(e))) {
|
|
623
630
|
return;
|
|
624
631
|
}
|
|
625
632
|
var target = (e.target);
|
|
@@ -729,7 +736,7 @@ var KeyboardInteraction = /** @class */ (function () {
|
|
|
729
736
|
};
|
|
730
737
|
KeyboardInteraction.prototype.processRight = function (e, isMultiple) {
|
|
731
738
|
var isTimelineYear = this.parent.currentView === 'TimelineYear';
|
|
732
|
-
if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear)) {
|
|
739
|
+
if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear) || (this.isCalendarTarget(e))) {
|
|
733
740
|
return;
|
|
734
741
|
}
|
|
735
742
|
var selectedCells = this.parent.getSelectedCells();
|
|
@@ -800,7 +807,7 @@ var KeyboardInteraction = /** @class */ (function () {
|
|
|
800
807
|
};
|
|
801
808
|
KeyboardInteraction.prototype.processLeft = function (e, isMultiple) {
|
|
802
809
|
var isTimelineYear = this.parent.currentView === 'TimelineYear';
|
|
803
|
-
if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear)) {
|
|
810
|
+
if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear) || (this.isCalendarTarget(e))) {
|
|
804
811
|
return;
|
|
805
812
|
}
|
|
806
813
|
var target = (e.target);
|
|
@@ -122,6 +122,8 @@ export declare const TIMELINE_WRAPPER_CLASS: string;
|
|
|
122
122
|
/** @private */
|
|
123
123
|
export declare const APPOINTMENT_WRAPPER_CLASS: string;
|
|
124
124
|
/** @private */
|
|
125
|
+
export declare const APPOINTMENT_WRAPPER_HIDDEN_CLASS: string;
|
|
126
|
+
/** @private */
|
|
125
127
|
export declare const DAY_WRAPPER_CLASS: string;
|
|
126
128
|
/** @private */
|
|
127
129
|
export declare const TOOLBAR_CONTAINER: string;
|
|
@@ -122,6 +122,8 @@ export var TIMELINE_WRAPPER_CLASS = 'e-timeline-wrapper';
|
|
|
122
122
|
/** @private */
|
|
123
123
|
export var APPOINTMENT_WRAPPER_CLASS = 'e-appointment-wrapper';
|
|
124
124
|
/** @private */
|
|
125
|
+
export var APPOINTMENT_WRAPPER_HIDDEN_CLASS = 'e-appointment-wrapper-hidden';
|
|
126
|
+
/** @private */
|
|
125
127
|
export var DAY_WRAPPER_CLASS = 'e-day-wrapper';
|
|
126
128
|
/** @private */
|
|
127
129
|
export var TOOLBAR_CONTAINER = 'e-schedule-toolbar-container';
|
|
@@ -1457,9 +1457,10 @@ export declare class Schedule extends Component<HTMLElement> implements INotifyP
|
|
|
1457
1457
|
*
|
|
1458
1458
|
* @function setResourceCollections
|
|
1459
1459
|
* @param {ResourcesModel[]} resourceCol Accepts the resource collections in ResourcesModel type
|
|
1460
|
+
* @param {boolean} isEventDataRefresh Accepts the boolean to refresh the appointment data source from remote or local
|
|
1460
1461
|
* @returns {void}
|
|
1461
1462
|
*/
|
|
1462
|
-
setResourceCollections(resourceCol: ResourcesModel[]): void;
|
|
1463
|
+
setResourceCollections(resourceCol: ResourcesModel[], isEventDataRefresh?: boolean): void;
|
|
1463
1464
|
/**
|
|
1464
1465
|
* Current View could be change based on the provided parameters.
|
|
1465
1466
|
*
|
|
@@ -1708,6 +1709,8 @@ export declare class Schedule extends Component<HTMLElement> implements INotifyP
|
|
|
1708
1709
|
getEventDetails(element: Element): Record<string, any>;
|
|
1709
1710
|
/**
|
|
1710
1711
|
* To check whether the given time range slots are available for event creation or already occupied by other events.
|
|
1712
|
+
* This method currently focuses on validating appointments within the current view date range.
|
|
1713
|
+
* However, it does not extend this availability check to recurrence occurrences outside of the current date range.
|
|
1711
1714
|
*
|
|
1712
1715
|
* @function isSlotAvailable
|
|
1713
1716
|
* @param {Date | Object} startTime Denotes the start time of the slot.
|
|
@@ -1992,9 +1992,14 @@ var Schedule = /** @class */ (function (_super) {
|
|
|
1992
1992
|
*
|
|
1993
1993
|
* @function setResourceCollections
|
|
1994
1994
|
* @param {ResourcesModel[]} resourceCol Accepts the resource collections in ResourcesModel type
|
|
1995
|
+
* @param {boolean} isEventDataRefresh Accepts the boolean to refresh the appointment data source from remote or local
|
|
1995
1996
|
* @returns {void}
|
|
1996
1997
|
*/
|
|
1997
|
-
Schedule.prototype.setResourceCollections = function (resourceCol) {
|
|
1998
|
+
Schedule.prototype.setResourceCollections = function (resourceCol, isEventDataRefresh) {
|
|
1999
|
+
if (isEventDataRefresh === void 0) { isEventDataRefresh = true; }
|
|
2000
|
+
if (!isEventDataRefresh && this.uiStateValues) {
|
|
2001
|
+
this.uiStateValues.isPreventEventRefresh = true;
|
|
2002
|
+
}
|
|
1998
2003
|
this.setProperties({ resources: resourceCol }, false);
|
|
1999
2004
|
};
|
|
2000
2005
|
/**
|
|
@@ -2114,6 +2119,8 @@ var Schedule = /** @class */ (function (_super) {
|
|
|
2114
2119
|
this.iCalendarExportModule.initializeCalendarExport(fileName, customData);
|
|
2115
2120
|
}
|
|
2116
2121
|
else {
|
|
2122
|
+
console.warn('[WARNING] :: Module "ICalendarExport" is not available in Schedule component!' +
|
|
2123
|
+
' You either misspelled the module name or forgot to load it.');
|
|
2117
2124
|
throw Error('Inject ICalendarExport module');
|
|
2118
2125
|
}
|
|
2119
2126
|
};
|
|
@@ -2130,6 +2137,8 @@ var Schedule = /** @class */ (function (_super) {
|
|
|
2130
2137
|
this.iCalendarImportModule.initializeCalendarImport(fileContent);
|
|
2131
2138
|
}
|
|
2132
2139
|
else {
|
|
2140
|
+
console.warn('[WARNING] :: Module "ICalendarImport" is not available in Schedule component!' +
|
|
2141
|
+
' You either misspelled the module name or forgot to load it.');
|
|
2133
2142
|
throw Error('Inject ICalendarImport module');
|
|
2134
2143
|
}
|
|
2135
2144
|
};
|
|
@@ -2175,6 +2184,8 @@ var Schedule = /** @class */ (function (_super) {
|
|
|
2175
2184
|
this.excelExportModule.initializeExcelExport(excelExportOptions);
|
|
2176
2185
|
}
|
|
2177
2186
|
else {
|
|
2187
|
+
console.warn('[WARNING] :: Module "ExcelExport" is not available in Schedule component!' +
|
|
2188
|
+
' You either misspelled the module name or forgot to load it.');
|
|
2178
2189
|
throw Error('Inject ExcelExport module');
|
|
2179
2190
|
}
|
|
2180
2191
|
};
|
|
@@ -2191,6 +2202,8 @@ var Schedule = /** @class */ (function (_super) {
|
|
|
2191
2202
|
this.printModule.print(printOptions);
|
|
2192
2203
|
}
|
|
2193
2204
|
else {
|
|
2205
|
+
console.warn('[WARNING] :: Module "Print" is not available in Schedule component!' +
|
|
2206
|
+
' You either misspelled the module name or forgot to load it.');
|
|
2194
2207
|
throw Error('Inject Print module');
|
|
2195
2208
|
}
|
|
2196
2209
|
};
|
|
@@ -2474,6 +2487,8 @@ var Schedule = /** @class */ (function (_super) {
|
|
|
2474
2487
|
};
|
|
2475
2488
|
/**
|
|
2476
2489
|
* To check whether the given time range slots are available for event creation or already occupied by other events.
|
|
2490
|
+
* This method currently focuses on validating appointments within the current view date range.
|
|
2491
|
+
* However, it does not extend this availability check to recurrence occurrences outside of the current date range.
|
|
2477
2492
|
*
|
|
2478
2493
|
* @function isSlotAvailable
|
|
2479
2494
|
* @param {Date | Object} startTime Denotes the start time of the slot.
|
|
@@ -6,7 +6,7 @@ export declare class AgendaBase extends ViewBase {
|
|
|
6
6
|
createAppointment(event: Record<string, any>): HTMLElement[];
|
|
7
7
|
processAgendaEvents(events: Record<string, any>[]): Record<string, any>[];
|
|
8
8
|
wireEventActions(): void;
|
|
9
|
-
calculateResourceTableElement(tBody: Element, noOfDays: number, agendaDate: Date): void;
|
|
9
|
+
calculateResourceTableElement(tBody: Element, noOfDays: number, agendaDate: Date, agendaEnd?: Date): void;
|
|
10
10
|
private createResourceTableRow;
|
|
11
11
|
createDateHeaderElement(date: Date): Element;
|
|
12
12
|
renderEmptyContent(tBody: Element, agendaDate: Date): void;
|
|
@@ -163,7 +163,8 @@ var AgendaBase = /** @class */ (function (_super) {
|
|
|
163
163
|
EventHandler.add(element, 'click', this.parent.agendaModule.dayNavigationClick, this);
|
|
164
164
|
}
|
|
165
165
|
};
|
|
166
|
-
AgendaBase.prototype.calculateResourceTableElement = function (tBody, noOfDays, agendaDate) {
|
|
166
|
+
AgendaBase.prototype.calculateResourceTableElement = function (tBody, noOfDays, agendaDate, agendaEnd) {
|
|
167
|
+
if (agendaEnd === void 0) { agendaEnd = null; }
|
|
167
168
|
if (isNullOrUndefined(this.parent.resourceBase.lastResourceLevel)) {
|
|
168
169
|
var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);
|
|
169
170
|
this.parent.resourceBase.generateResourceLevels(level);
|
|
@@ -172,7 +173,9 @@ var AgendaBase = /** @class */ (function (_super) {
|
|
|
172
173
|
var days = (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') ? noOfDays : 1;
|
|
173
174
|
var resColl = this.parent.resourceBase.resourceCollection;
|
|
174
175
|
var resData = this.parent.resourceBase.lastResourceLevel;
|
|
176
|
+
var agendaStart = agendaDate;
|
|
175
177
|
var initialDate = agendaDate;
|
|
178
|
+
var showWeekend = this.parent.activeViewOptions.showWeekend;
|
|
176
179
|
for (var i = 0; i < days; i++) {
|
|
177
180
|
var lastLevelInfo = [];
|
|
178
181
|
var tempLastLevelInfo = [];
|
|
@@ -180,6 +183,21 @@ var AgendaBase = /** @class */ (function (_super) {
|
|
|
180
183
|
var eventObj = void 0;
|
|
181
184
|
var dateObj = void 0;
|
|
182
185
|
var firstDate = util.addDays(initialDate, i);
|
|
186
|
+
if (this.parent.currentView === 'Agenda' && this.parent.activeViewOptions.group.byDate &&
|
|
187
|
+
this.parent.activeViewOptions.allowVirtualScrolling && !showWeekend && !this.isWorkDay(firstDate)) {
|
|
188
|
+
do {
|
|
189
|
+
firstDate = util.addDays(firstDate, 1);
|
|
190
|
+
if (firstDate >= agendaEnd) {
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
} while (!this.isWorkDay(firstDate) ||
|
|
194
|
+
this.parent.eventBase.filterEvents(firstDate, util.addDays(firstDate, 1)).length < 1);
|
|
195
|
+
if (firstDate >= agendaEnd) {
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
initialDate = util.addDays(firstDate, -i);
|
|
199
|
+
agendaLastDate = util.addDays(firstDate, 1);
|
|
200
|
+
}
|
|
183
201
|
var finalDate = (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda')
|
|
184
202
|
? util.addDays(firstDate, 1) : agendaLastDate;
|
|
185
203
|
var agendaCollection = this.parent.eventBase.filterEvents(firstDate, finalDate);
|
|
@@ -194,7 +212,9 @@ var AgendaBase = /** @class */ (function (_super) {
|
|
|
194
212
|
for (var r = 0; r < noOfDays; r++) {
|
|
195
213
|
// eslint-disable-next-line max-len
|
|
196
214
|
var resDayCollection = this.parent.eventBase.filterEvents(agendaDate, util.addDays(agendaDate, 1), resDataCollection, undefined);
|
|
197
|
-
if (
|
|
215
|
+
if (((showWeekend || !showWeekend && (this.parent.group.byDate ? this.isWorkDay(agendaDate) :
|
|
216
|
+
this.isWorkDay(agendaDate, resData[parseInt(res.toString(), 10)].workDays)))
|
|
217
|
+
&& (resDayCollection.length > 0 || !this.parent.hideEmptyAgendaDays)) ||
|
|
198
218
|
this.parent.currentView === 'MonthAgenda') {
|
|
199
219
|
data.push(resDayCollection[0]);
|
|
200
220
|
eventObj = {
|
|
@@ -220,16 +240,18 @@ var AgendaBase = /** @class */ (function (_super) {
|
|
|
220
240
|
agendaDate = util.addDays(agendaDate, 1);
|
|
221
241
|
if (agendaDate.getTime() >= agendaLastDate.getTime() || this.parent.activeViewOptions.group.byDate
|
|
222
242
|
|| this.parent.currentView === 'MonthAgenda') {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
243
|
+
if (data.length > 0) {
|
|
244
|
+
lastLevelInfo[lastLevelInfo.length - 1][1].cssClass = cls.AGENDA_DAY_BORDER_CLASS;
|
|
245
|
+
var tempObj = {
|
|
246
|
+
rowSpan: data.length, type: 'resourceColumn', resource: resColl[parseInt((resColl.length - 1).toString(), 10)],
|
|
247
|
+
groupOrder: resData[parseInt(res.toString(), 10)].groupOrder.slice(0, -1),
|
|
248
|
+
resourceData: resData[parseInt(res.toString(), 10)].resourceData,
|
|
249
|
+
groupIndex: (lastLevelInfo.length - data.length), className: [cls.RESOURCE_NAME],
|
|
250
|
+
date: agendaDate
|
|
251
|
+
};
|
|
252
|
+
lastLevelInfo[parseInt((lastLevelInfo.length - data.length).toString(), 10)].push(tempObj);
|
|
253
|
+
tempLastLevelInfo.push(extend({}, tempObj, null, true));
|
|
254
|
+
}
|
|
233
255
|
break;
|
|
234
256
|
}
|
|
235
257
|
}
|
|
@@ -264,9 +286,9 @@ var AgendaBase = /** @class */ (function (_super) {
|
|
|
264
286
|
this.createResourceTableRow(lastLevelInfo, tBody);
|
|
265
287
|
}
|
|
266
288
|
}
|
|
267
|
-
var totalCollection = this.parent.eventBase.filterEvents(
|
|
289
|
+
var totalCollection = this.parent.eventBase.filterEvents(agendaStart, agendaLastDate);
|
|
268
290
|
if (totalCollection.length === 0 && !this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) {
|
|
269
|
-
this.renderEmptyContent(tBody,
|
|
291
|
+
this.renderEmptyContent(tBody, agendaStart);
|
|
270
292
|
}
|
|
271
293
|
};
|
|
272
294
|
AgendaBase.prototype.createResourceTableRow = function (tContent, tBody) {
|
|
@@ -1281,11 +1281,13 @@ var EventBase = /** @class */ (function () {
|
|
|
1281
1281
|
if (index === void 0) { index = 0; }
|
|
1282
1282
|
var tr = createElement('tr');
|
|
1283
1283
|
var levels = this.parent.activeView.colLevels.slice(-1)[0];
|
|
1284
|
+
var className = this.parent.isReact && this.parent.activeViewOptions.eventTemplate ?
|
|
1285
|
+
' ' + cls.APPOINTMENT_WRAPPER_HIDDEN_CLASS : '';
|
|
1284
1286
|
for (var i = 0, len = levels.length; i < len; i++) {
|
|
1285
1287
|
var col = levels[parseInt(i.toString(), 10)];
|
|
1286
1288
|
var appointmentWrap = createElement('td', {
|
|
1287
|
-
className: (type === 'allDay') ? cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS : (type === 'timeIndicator') ?
|
|
1288
|
-
cls.TIMELINE_WRAPPER_CLASS : cls.DAY_WRAPPER_CLASS, attrs: { 'data-date': col.date.getTime().toString() }
|
|
1289
|
+
className: (type === 'allDay') ? cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS + className : (type === 'timeIndicator') ?
|
|
1290
|
+
cls.TIMELINE_WRAPPER_CLASS : cls.DAY_WRAPPER_CLASS + className, attrs: { 'data-date': col.date.getTime().toString() }
|
|
1289
1291
|
});
|
|
1290
1292
|
if (!isNullOrUndefined(col.groupIndex)) {
|
|
1291
1293
|
appointmentWrap.setAttribute('data-group-index', col.groupIndex.toString());
|
|
@@ -44,6 +44,7 @@ var VerticalEvent = /** @class */ (function (_super) {
|
|
|
44
44
|
return _this;
|
|
45
45
|
}
|
|
46
46
|
VerticalEvent.prototype.renderAppointments = function () {
|
|
47
|
+
var _this = this;
|
|
47
48
|
if (isNullOrUndefined(this.parent)) {
|
|
48
49
|
return;
|
|
49
50
|
}
|
|
@@ -103,7 +104,12 @@ var VerticalEvent = /** @class */ (function (_super) {
|
|
|
103
104
|
if (isDragging) {
|
|
104
105
|
this.parent.crudModule.crudObj.isCrudAction = false;
|
|
105
106
|
}
|
|
106
|
-
this.parent.renderTemplates()
|
|
107
|
+
this.parent.renderTemplates(function () {
|
|
108
|
+
if (_this.parent.isReact && _this.parent.activeViewOptions.eventTemplate) {
|
|
109
|
+
var wraps = [].slice.call(_this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_WRAPPER_HIDDEN_CLASS));
|
|
110
|
+
removeClass(wraps, cls.APPOINTMENT_WRAPPER_HIDDEN_CLASS);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
107
113
|
};
|
|
108
114
|
VerticalEvent.prototype.initializeValues = function () {
|
|
109
115
|
this.resources = (this.parent.activeViewOptions.group.resources.length > 0) ? this.parent.uiStateValues.isGroupAdaptive ?
|
|
@@ -1357,6 +1357,17 @@ var QuickPopups = /** @class */ (function () {
|
|
|
1357
1357
|
instance.destroy();
|
|
1358
1358
|
}
|
|
1359
1359
|
}
|
|
1360
|
+
if (popupName === 'quickPopup') {
|
|
1361
|
+
var input = popup.element.querySelector('input.' + cls.SUBJECT_CLASS);
|
|
1362
|
+
if (input) {
|
|
1363
|
+
input.remove();
|
|
1364
|
+
}
|
|
1365
|
+
var form = this.quickPopup.element.querySelector('form.' + cls.FORM_CLASS);
|
|
1366
|
+
if (form) {
|
|
1367
|
+
util.removeChildren(form);
|
|
1368
|
+
form.remove();
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1360
1371
|
};
|
|
1361
1372
|
QuickPopups.prototype.refreshQuickDialog = function () {
|
|
1362
1373
|
this.destroyQuickDialog();
|
|
@@ -20,6 +20,7 @@ export declare class Agenda extends AgendaBase implements IRenderer {
|
|
|
20
20
|
refreshHeader(): void;
|
|
21
21
|
private renderInitialContent;
|
|
22
22
|
renderContent(tBody: Element, agendaDate: Date, lastDate: Date): void;
|
|
23
|
+
private isAgendaWorkDay;
|
|
23
24
|
private agendaScrolling;
|
|
24
25
|
private virtualScrolling;
|
|
25
26
|
private getElementFromScrollerPosition;
|
|
@@ -150,9 +150,20 @@ var Agenda = /** @class */ (function (_super) {
|
|
|
150
150
|
var firstDate = new Date(agendaDate.getTime());
|
|
151
151
|
var isObject = this.appointmentFiltering(firstDate, lastDate);
|
|
152
152
|
if (isObject.length > 0 && this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
if (!this.parent.activeViewOptions.showWeekend && !this.isAgendaWorkDay(isObject[0][fieldMapping.startTime])) {
|
|
154
|
+
for (var _i = 0, isObject_1 = isObject; _i < isObject_1.length; _i++) {
|
|
155
|
+
var event_2 = isObject_1[_i];
|
|
156
|
+
if (this.isAgendaWorkDay(event_2[fieldMapping.startTime])) {
|
|
157
|
+
agendaDate = new Date(new Date(event_2[fieldMapping.startTime].getTime()).setHours(0, 0, 0, 0));
|
|
158
|
+
this.updateHeaderText(event_2[fieldMapping.startTime]);
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
agendaDate = new Date(new Date(isObject[0][fieldMapping.startTime].getTime()).setHours(0, 0, 0, 0));
|
|
165
|
+
this.updateHeaderText(isObject[0][fieldMapping.startTime]);
|
|
166
|
+
}
|
|
156
167
|
}
|
|
157
168
|
var endDate;
|
|
158
169
|
if (!this.parent.hideEmptyAgendaDays || (this.parent.agendaDaysCount > 0 && isObject.length > 0)) {
|
|
@@ -166,18 +177,25 @@ var Agenda = /** @class */ (function (_super) {
|
|
|
166
177
|
this.parent.headerModule.updateHeaderItems('remove');
|
|
167
178
|
}
|
|
168
179
|
}
|
|
169
|
-
this.calculateResourceTableElement(tBody, this.parent.agendaDaysCount, date);
|
|
180
|
+
this.calculateResourceTableElement(tBody, this.parent.agendaDaysCount, date, lastDate);
|
|
170
181
|
}
|
|
171
182
|
else {
|
|
172
183
|
for (var day = 0; day < this.parent.agendaDaysCount; day++) {
|
|
173
|
-
var filterData = this.appointmentFiltering(agendaDate);
|
|
174
184
|
var nTr = this.createTableRowElement(agendaDate, 'data');
|
|
175
|
-
|
|
185
|
+
var virtualContent = this.element.querySelector('tr[data-row-index="' + (+(nTr.dataset.rowIndex)) + '"]');
|
|
186
|
+
if (virtualContent || !this.parent.activeViewOptions.showWeekend && !this.isAgendaWorkDay(agendaDate)) {
|
|
176
187
|
agendaDate = util.addDays(agendaDate, 1);
|
|
188
|
+
if (!virtualContent && this.parent.activeViewOptions.allowVirtualScrolling) {
|
|
189
|
+
day--;
|
|
190
|
+
}
|
|
191
|
+
if (agendaDate.getTime() > lastDate.getTime()) {
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
177
194
|
continue;
|
|
178
195
|
}
|
|
179
196
|
var dTd = nTr.children[0];
|
|
180
197
|
var aTd = nTr.children[1];
|
|
198
|
+
var filterData = this.appointmentFiltering(agendaDate);
|
|
181
199
|
if (filterData.length > 0 || (!this.parent.hideEmptyAgendaDays && filterData.length === 0)) {
|
|
182
200
|
var elementType = (!this.parent.hideEmptyAgendaDays && filterData.length === 0) ? 'noEvents' : 'data';
|
|
183
201
|
dTd.appendChild(this.createDateHeaderElement(agendaDate));
|
|
@@ -204,6 +222,14 @@ var Agenda = /** @class */ (function (_super) {
|
|
|
204
222
|
}
|
|
205
223
|
this.agendaDates = { start: firstDate, end: endDate };
|
|
206
224
|
};
|
|
225
|
+
Agenda.prototype.isAgendaWorkDay = function (date) {
|
|
226
|
+
if (this.parent.uiStateValues.isGroupAdaptive && !this.parent.group.byDate) {
|
|
227
|
+
return this.isWorkDay(date, this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex].workDays);
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
return this.isWorkDay(date);
|
|
231
|
+
}
|
|
232
|
+
};
|
|
207
233
|
Agenda.prototype.agendaScrolling = function (event) {
|
|
208
234
|
if (this.parent.quickPopup) {
|
|
209
235
|
this.parent.quickPopup.quickPopupHide();
|
|
@@ -308,9 +334,12 @@ var Agenda = /** @class */ (function (_super) {
|
|
|
308
334
|
var lastDate = this.getEndDateFromStartDate(date);
|
|
309
335
|
var daysCount = 0;
|
|
310
336
|
do {
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
337
|
+
if (this.parent.activeViewOptions.showWeekend || !this.parent.activeViewOptions.showWeekend &&
|
|
338
|
+
this.isAgendaWorkDay(currentDate)) {
|
|
339
|
+
var filterData = this.appointmentFiltering(currentDate);
|
|
340
|
+
if (filterData.length > 0 || !this.parent.hideEmptyAgendaDays) {
|
|
341
|
+
daysCount++;
|
|
342
|
+
}
|
|
314
343
|
}
|
|
315
344
|
currentDate = util.addDays(currentDate, (type === 'next') ? 1 : -1);
|
|
316
345
|
if (currentDate < firstDate || currentDate > lastDate) {
|
|
@@ -51,15 +51,21 @@ var Render = /** @class */ (function () {
|
|
|
51
51
|
break;
|
|
52
52
|
case 'TimelineDay':
|
|
53
53
|
this.parent.activeView = this.parent.timelineViewsModule;
|
|
54
|
-
this.parent.activeView
|
|
54
|
+
if (!isNullOrUndefined(this.parent.activeView)) {
|
|
55
|
+
this.parent.activeView.viewClass = 'e-timeline-day-view';
|
|
56
|
+
}
|
|
55
57
|
break;
|
|
56
58
|
case 'TimelineWorkWeek':
|
|
57
59
|
this.parent.activeView = this.parent.timelineViewsModule;
|
|
58
|
-
this.parent.activeView
|
|
60
|
+
if (!isNullOrUndefined(this.parent.activeView)) {
|
|
61
|
+
this.parent.activeView.viewClass = 'e-timeline-work-week-view';
|
|
62
|
+
}
|
|
59
63
|
break;
|
|
60
64
|
case 'TimelineWeek':
|
|
61
65
|
this.parent.activeView = this.parent.timelineViewsModule;
|
|
62
|
-
this.parent.activeView
|
|
66
|
+
if (!isNullOrUndefined(this.parent.activeView)) {
|
|
67
|
+
this.parent.activeView.viewClass = 'e-timeline-week-view';
|
|
68
|
+
}
|
|
63
69
|
break;
|
|
64
70
|
case 'TimelineMonth':
|
|
65
71
|
this.parent.activeView = this.parent.timelineMonthModule;
|
|
@@ -76,6 +82,8 @@ var Render = /** @class */ (function () {
|
|
|
76
82
|
this.parent.headerModule.updateActiveView();
|
|
77
83
|
this.parent.headerModule.setCalendarView();
|
|
78
84
|
}
|
|
85
|
+
console.warn('[WARNING] :: Module "' + viewName + '" is not available in Schedule component!' +
|
|
86
|
+
' You either misspelled the module name or forgot to load it.');
|
|
79
87
|
return this.initializeLayout(firstView);
|
|
80
88
|
}
|
|
81
89
|
throw Error('Inject required modules');
|
|
@@ -138,6 +138,10 @@
|
|
|
138
138
|
color: #fff;
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
+
.e-bigger.e-multiselect.e-control-container .e-multi-select-wrapper .e-clear-icon {
|
|
142
|
+
margin-top: -3.2em;
|
|
143
|
+
}
|
|
144
|
+
|
|
141
145
|
/*! recurrence editor theme wise definitions*/ /*! Schedule component's bootstrap theme definitions and variables */
|
|
142
146
|
.e-schedule .e-schedule-toolbar .e-icon-prev::before {
|
|
143
147
|
content: "\e990";
|
|
@@ -323,6 +327,9 @@
|
|
|
323
327
|
font-size: 14px;
|
|
324
328
|
text-transform: initial;
|
|
325
329
|
}
|
|
330
|
+
.e-schedule .e-schedule-toolbar .e-toolbar-items {
|
|
331
|
+
height: 43px;
|
|
332
|
+
}
|
|
326
333
|
.e-schedule .e-schedule-toolbar .e-toolbar-items.e-tbar-pos {
|
|
327
334
|
height: 43px;
|
|
328
335
|
min-height: 43px;
|
|
@@ -1031,6 +1038,9 @@
|
|
|
1031
1038
|
padding: 0;
|
|
1032
1039
|
position: relative;
|
|
1033
1040
|
}
|
|
1041
|
+
.e-schedule .e-vertical-view .e-appointment-wrapper-hidden {
|
|
1042
|
+
visibility: hidden;
|
|
1043
|
+
}
|
|
1034
1044
|
.e-schedule .e-vertical-view .e-all-day-appointment-wrapper .e-appointment:not(.e-schedule-event-clone) {
|
|
1035
1045
|
cursor: default;
|
|
1036
1046
|
}
|
|
@@ -2485,8 +2495,8 @@
|
|
|
2485
2495
|
.e-bigger.e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item {
|
|
2486
2496
|
min-height: 56px;
|
|
2487
2497
|
}
|
|
2488
|
-
.e-bigger .e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item:not(.e-separator),
|
|
2489
|
-
.e-bigger.e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item:not(.e-separator) {
|
|
2498
|
+
.e-bigger .e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item:not(.e-separator):not(.e-spacer),
|
|
2499
|
+
.e-bigger.e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item:not(.e-separator):not(.e-spacer) {
|
|
2490
2500
|
min-width: 34px;
|
|
2491
2501
|
}
|
|
2492
2502
|
.e-bigger .e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item.e-separator,
|