@syncfusion/ej2-schedule 21.1.38 → 21.1.41
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 +19 -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 +59 -51
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +66 -58
- 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 +12 -12
- package/src/schedule/base/resource.js +1 -1
- package/src/schedule/base/schedule.d.ts +5 -3
- package/src/schedule/base/schedule.js +11 -7
- package/src/schedule/event-renderer/agenda-base.js +2 -2
- package/src/schedule/event-renderer/event-base.js +1 -1
- package/src/schedule/event-renderer/month.js +2 -2
- package/src/schedule/event-renderer/timeline-view.js +4 -11
- package/src/schedule/event-renderer/vertical-view.js +5 -11
- package/src/schedule/exports/print.js +11 -2
- package/src/schedule/popups/event-window.js +11 -3
- package/src/schedule/popups/quick-popups.js +5 -5
- package/src/schedule/renderer/month.js +2 -2
- package/src/schedule/renderer/renderer.js +1 -0
- package/src/schedule/renderer/timeline-year.js +4 -6
- package/src/schedule/renderer/vertical-view.js +5 -4
- package/src/schedule/renderer/view-base.js +2 -2
- package/styles/bootstrap-dark.css +6 -2
- package/styles/bootstrap.css +6 -2
- package/styles/bootstrap4.css +6 -2
- package/styles/bootstrap5-dark.css +6 -2
- package/styles/bootstrap5.css +6 -2
- package/styles/fabric-dark.css +6 -2
- package/styles/fabric.css +6 -2
- package/styles/fluent-dark.css +6 -2
- package/styles/fluent.css +6 -2
- package/styles/highcontrast-light.css +6 -2
- package/styles/highcontrast.css +6 -2
- package/styles/material-dark.css +6 -2
- package/styles/material.css +6 -2
- package/styles/schedule/_layout.scss +6 -2
- package/styles/schedule/bootstrap-dark.css +6 -2
- package/styles/schedule/bootstrap.css +6 -2
- package/styles/schedule/bootstrap4.css +6 -2
- package/styles/schedule/bootstrap5-dark.css +6 -2
- package/styles/schedule/bootstrap5.css +6 -2
- package/styles/schedule/fabric-dark.css +6 -2
- package/styles/schedule/fabric.css +6 -2
- package/styles/schedule/fluent-dark.css +6 -2
- package/styles/schedule/fluent.css +6 -2
- package/styles/schedule/highcontrast-light.css +6 -2
- package/styles/schedule/highcontrast.css +6 -2
- package/styles/schedule/material-dark.css +6 -2
- package/styles/schedule/material.css +6 -2
- package/styles/schedule/tailwind-dark.css +6 -2
- package/styles/schedule/tailwind.css +6 -2
- package/styles/tailwind-dark.css +6 -2
- package/styles/tailwind.css +6 -2
|
@@ -6260,7 +6260,7 @@ class EventBase {
|
|
|
6260
6260
|
}
|
|
6261
6261
|
else {
|
|
6262
6262
|
const appointmentSubject = createElement('div', { className: SUBJECT_CLASS });
|
|
6263
|
-
|
|
6263
|
+
this.parent.sanitize(eventSubject, appointmentSubject);
|
|
6264
6264
|
templateElement = [appointmentSubject];
|
|
6265
6265
|
}
|
|
6266
6266
|
append(templateElement, appointmentWrapper);
|
|
@@ -6786,7 +6786,7 @@ class VerticalEvent extends EventBase {
|
|
|
6786
6786
|
}
|
|
6787
6787
|
else {
|
|
6788
6788
|
const appointmentSubject = createElement('div', { className: SUBJECT_CLASS });
|
|
6789
|
-
|
|
6789
|
+
this.parent.sanitize(recordSubject, appointmentSubject);
|
|
6790
6790
|
if (isAllDay) {
|
|
6791
6791
|
if (record[fieldMapping.isAllDay]) {
|
|
6792
6792
|
templateElement = [appointmentSubject];
|
|
@@ -6819,7 +6819,7 @@ class VerticalEvent extends EventBase {
|
|
|
6819
6819
|
innerHTML: timeStr
|
|
6820
6820
|
});
|
|
6821
6821
|
const appointmentLocation = createElement('div', { className: LOCATION_CLASS });
|
|
6822
|
-
|
|
6822
|
+
this.parent.sanitize((record[fieldMapping.location] || this.parent.eventSettings.fields.location.default || ''), appointmentLocation);
|
|
6823
6823
|
templateElement = [appointmentSubject, appointmentTime, appointmentLocation];
|
|
6824
6824
|
}
|
|
6825
6825
|
}
|
|
@@ -7045,12 +7045,6 @@ class VerticalEvent extends EventBase {
|
|
|
7045
7045
|
record.data = eventData;
|
|
7046
7046
|
this.appendEvent(record, appointmentElement, index, tempData.appLeft);
|
|
7047
7047
|
this.wireAppointmentEvents(appointmentElement, eventObj);
|
|
7048
|
-
if (appHeight < this.cellHeight) {
|
|
7049
|
-
const resizeHandlers = [].slice.call(appointmentElement.querySelectorAll('.' + EVENT_RESIZE_CLASS));
|
|
7050
|
-
resizeHandlers.forEach((resizeHandler) => {
|
|
7051
|
-
resizeHandler.style.height = Math.ceil(appHeight / resizeHandler.offsetHeight) + 'px';
|
|
7052
|
-
});
|
|
7053
|
-
}
|
|
7054
7048
|
}
|
|
7055
7049
|
}
|
|
7056
7050
|
getEventWidth() {
|
|
@@ -7670,7 +7664,7 @@ class MonthEvent extends EventBase {
|
|
|
7670
7664
|
else {
|
|
7671
7665
|
const eventLocation = (record[this.fields.location] || this.parent.eventSettings.fields.location.default || '');
|
|
7672
7666
|
const appointmentSubject = createElement('div', { className: SUBJECT_CLASS });
|
|
7673
|
-
|
|
7667
|
+
this.parent.sanitize((eventSubject + (eventLocation ? '; ' + eventLocation : '')), appointmentSubject);
|
|
7674
7668
|
const appointmentStartTime = createElement('div', {
|
|
7675
7669
|
className: APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + DISABLE_CLASS : ''),
|
|
7676
7670
|
innerHTML: this.parent.getTimeString(eventData[this.fields.startTime])
|
|
@@ -7714,7 +7708,7 @@ class MonthEvent extends EventBase {
|
|
|
7714
7708
|
className: APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + DISABLE_CLASS : ''), innerHTML: timeString
|
|
7715
7709
|
});
|
|
7716
7710
|
const appLocation = createElement('div', { className: LOCATION_CLASS });
|
|
7717
|
-
|
|
7711
|
+
this.parent.sanitize(eventLocation, appLocation);
|
|
7718
7712
|
innerElement = [appointmentSubject, appTime, appLocation];
|
|
7719
7713
|
}
|
|
7720
7714
|
const wrap = createElement('div', { className: 'e-inner-wrap' });
|
|
@@ -8141,13 +8135,6 @@ class TimelineEvent extends MonthEvent {
|
|
|
8141
8135
|
const firstChild = this.getFirstChild(resIndex);
|
|
8142
8136
|
this.updateCellHeight(firstChild, height);
|
|
8143
8137
|
}
|
|
8144
|
-
if (this.parent.activeViewOptions.option !== 'TimelineMonth' && this.parent.activeViewOptions.timeScale.enable
|
|
8145
|
-
&& appWidth < this.cellWidth) {
|
|
8146
|
-
const resizeHandlers = [].slice.call(appointmentElement.querySelectorAll('.' + EVENT_RESIZE_CLASS));
|
|
8147
|
-
resizeHandlers.forEach((resizeHandler) => {
|
|
8148
|
-
resizeHandler.style.width = Math.ceil(appWidth / resizeHandler.getBoundingClientRect().width) + 'px';
|
|
8149
|
-
});
|
|
8150
|
-
}
|
|
8151
8138
|
}
|
|
8152
8139
|
else {
|
|
8153
8140
|
for (let i = 0; i < diffInDays; i++) {
|
|
@@ -9137,7 +9124,7 @@ class QuickPopups {
|
|
|
9137
9124
|
}
|
|
9138
9125
|
else {
|
|
9139
9126
|
appointmentElement.appendChild(createElement('div', { className: SUBJECT_CLASS }));
|
|
9140
|
-
|
|
9127
|
+
this.parent.sanitize(eventText, appointmentElement.firstElementChild);
|
|
9141
9128
|
}
|
|
9142
9129
|
if (!isNullOrUndefined(groupIndex)) {
|
|
9143
9130
|
appointmentElement.setAttribute('data-group-index', groupIndex);
|
|
@@ -9392,7 +9379,7 @@ class QuickPopups {
|
|
|
9392
9379
|
const templateWrapper = createElement('div', { innerHTML: header });
|
|
9393
9380
|
if (headerType === 'Event') {
|
|
9394
9381
|
const subjectText = templateWrapper.querySelector('.' + SUBJECT_CLASS);
|
|
9395
|
-
|
|
9382
|
+
this.parent.sanitize(args.eventSubject, subjectText);
|
|
9396
9383
|
}
|
|
9397
9384
|
append([].slice.call(templateWrapper.childNodes), headerTemplate);
|
|
9398
9385
|
}
|
|
@@ -9456,19 +9443,19 @@ class QuickPopups {
|
|
|
9456
9443
|
if (data[this.parent.eventFields.location]) {
|
|
9457
9444
|
const locationDetails = templateWrapper.querySelector('.' + LOCATION_DETAILS_CLASS);
|
|
9458
9445
|
if (!isNullOrUndefined(locationDetails)) {
|
|
9459
|
-
|
|
9446
|
+
this.parent.sanitize(data[this.parent.eventFields.location], locationDetails);
|
|
9460
9447
|
}
|
|
9461
9448
|
}
|
|
9462
9449
|
if (data[this.parent.eventFields.description]) {
|
|
9463
9450
|
const descriptionDetails = templateWrapper.querySelector('.' + DESCRIPTION_DETAILS_CLASS);
|
|
9464
9451
|
if (!isNullOrUndefined(descriptionDetails)) {
|
|
9465
|
-
|
|
9452
|
+
this.parent.sanitize(data[this.parent.eventFields.description], descriptionDetails);
|
|
9466
9453
|
}
|
|
9467
9454
|
}
|
|
9468
9455
|
if (resourceText) {
|
|
9469
9456
|
const resourceDetails = templateWrapper.querySelector('.' + RESOURCE_DETAILS_CLASS);
|
|
9470
9457
|
if (!isNullOrUndefined(resourceDetails)) {
|
|
9471
|
-
|
|
9458
|
+
this.parent.sanitize(resourceText, resourceDetails);
|
|
9472
9459
|
}
|
|
9473
9460
|
}
|
|
9474
9461
|
append([].slice.call(templateWrapper.childNodes), contentTemplate);
|
|
@@ -11700,6 +11687,7 @@ class EventWindow {
|
|
|
11700
11687
|
for (const element of formElements) {
|
|
11701
11688
|
remove(element);
|
|
11702
11689
|
}
|
|
11690
|
+
this.parent.resetTemplates(['editorTemplate']);
|
|
11703
11691
|
}
|
|
11704
11692
|
const templateId = this.parent.element.id + '_editorTemplate';
|
|
11705
11693
|
const tempEle = [].slice.call(this.parent.getEditorTemplate()(args || {}, this.parent, 'editorTemplate', templateId, false));
|
|
@@ -12263,8 +12251,11 @@ class EventWindow {
|
|
|
12263
12251
|
}
|
|
12264
12252
|
}
|
|
12265
12253
|
applyFormValidation() {
|
|
12266
|
-
const getValidationRule = (rules) => (rules && Object.keys(rules).length > 0) ? rules : undefined;
|
|
12267
12254
|
const form = this.element.querySelector('.' + FORM_CLASS);
|
|
12255
|
+
if (!form) {
|
|
12256
|
+
return;
|
|
12257
|
+
}
|
|
12258
|
+
const getValidationRule = (rules) => (rules && Object.keys(rules).length > 0) ? rules : undefined;
|
|
12268
12259
|
const rules = {};
|
|
12269
12260
|
const subjectRule = getValidationRule(this.parent.eventSettings.fields.subject.validation);
|
|
12270
12261
|
if (!isNullOrUndefined(subjectRule)) {
|
|
@@ -13075,7 +13066,8 @@ class EventWindow {
|
|
|
13075
13066
|
value = element.checked;
|
|
13076
13067
|
}
|
|
13077
13068
|
else {
|
|
13078
|
-
value = this.parent.
|
|
13069
|
+
value = this.parent.enableHtmlSanitizer ?
|
|
13070
|
+
SanitizeHtmlHelper.sanitize(element.value) : element.value;
|
|
13079
13071
|
}
|
|
13080
13072
|
}
|
|
13081
13073
|
return value;
|
|
@@ -13219,6 +13211,9 @@ class EventWindow {
|
|
|
13219
13211
|
else if (element.classList.contains('e-multiselect')) {
|
|
13220
13212
|
instance = element.ej2_instances;
|
|
13221
13213
|
}
|
|
13214
|
+
else if (element.classList.contains('e-numerictextbox')) {
|
|
13215
|
+
instance = element.ej2_instances;
|
|
13216
|
+
}
|
|
13222
13217
|
if (instance && instance[0]) {
|
|
13223
13218
|
instance[0].destroy();
|
|
13224
13219
|
}
|
|
@@ -13775,6 +13770,7 @@ class Render {
|
|
|
13775
13770
|
}
|
|
13776
13771
|
}
|
|
13777
13772
|
this.updateHeader();
|
|
13773
|
+
this.parent.currentTimezoneDate = this.parent.getCurrentTime();
|
|
13778
13774
|
this.parent.activeView.renderLayout(CURRENT_PANEL_CLASS);
|
|
13779
13775
|
this.parent.renderTemplates();
|
|
13780
13776
|
if (this.parent.eventTooltip) {
|
|
@@ -15360,7 +15356,7 @@ class ResourceBase {
|
|
|
15360
15356
|
const resourceLevel = this.resourceCollection[parseInt(i.toString(), 10)];
|
|
15361
15357
|
const resourceText = resourceLevel.dataSource.filter((resData) => resData[resourceLevel.idField] === resource.groupOrder[parseInt(i.toString(), 10)]);
|
|
15362
15358
|
const resourceName = createElement('div', { className: RESOURCE_NAME });
|
|
15363
|
-
|
|
15359
|
+
this.parent.sanitize(resourceText[0][resourceLevel.textField], resourceName);
|
|
15364
15360
|
headerCollection.push(resourceName);
|
|
15365
15361
|
const levelIcon = createElement('div', { className: 'e-icons e-icon-next' });
|
|
15366
15362
|
headerCollection.push(levelIcon);
|
|
@@ -16091,17 +16087,20 @@ let Schedule = class Schedule extends Component {
|
|
|
16091
16087
|
}
|
|
16092
16088
|
}
|
|
16093
16089
|
/**
|
|
16094
|
-
*
|
|
16090
|
+
* This method renders untrusted strings and scripts securely by sanitizing them first.
|
|
16095
16091
|
*
|
|
16096
16092
|
* @param {string} value - A string value representing the HTML string value to be sanitized.
|
|
16097
|
-
* @
|
|
16093
|
+
* @param {HTMLElement} element - An HTML element to which the sanitized or unsanitized HTML string will be assigned.
|
|
16094
|
+
* @returns {void}
|
|
16098
16095
|
* @private
|
|
16099
16096
|
*/
|
|
16100
|
-
sanitize(value) {
|
|
16097
|
+
sanitize(value, element) {
|
|
16101
16098
|
if (this.enableHtmlSanitizer) {
|
|
16102
|
-
|
|
16099
|
+
element.innerText = SanitizeHtmlHelper.sanitize(value);
|
|
16100
|
+
}
|
|
16101
|
+
else {
|
|
16102
|
+
element.innerHTML = value;
|
|
16103
16103
|
}
|
|
16104
|
-
return value;
|
|
16105
16104
|
}
|
|
16106
16105
|
initializeResources(isSetModel = false) {
|
|
16107
16106
|
if (this.resources.length > 0) {
|
|
@@ -16613,7 +16612,8 @@ let Schedule = class Schedule extends Component {
|
|
|
16613
16612
|
isIgnoreOccurrence: false, groupIndex: 0, action: false, isBlock: false, isCustomMonth: true, isPreventTimezone: false
|
|
16614
16613
|
};
|
|
16615
16614
|
}
|
|
16616
|
-
this.
|
|
16615
|
+
this.currentTimezoneDate = this.getCurrentTime();
|
|
16616
|
+
this.activeCellsData = { startTime: new Date(this.currentTimezoneDate), endTime: new Date(this.currentTimezoneDate), isAllDay: false };
|
|
16617
16617
|
this.activeEventData = { event: undefined, element: undefined };
|
|
16618
16618
|
this.getDefaultLocale();
|
|
16619
16619
|
this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);
|
|
@@ -17061,7 +17061,7 @@ let Schedule = class Schedule extends Component {
|
|
|
17061
17061
|
*/
|
|
17062
17062
|
getStartEndTime(startEndTime) {
|
|
17063
17063
|
if (!isNullOrUndefined(startEndTime) && startEndTime !== '') {
|
|
17064
|
-
const startEndDate = resetTime(this.getCurrentTime());
|
|
17064
|
+
const startEndDate = resetTime(new Date(this.currentTimezoneDate) || this.getCurrentTime());
|
|
17065
17065
|
const timeString = startEndTime.split(':');
|
|
17066
17066
|
if (timeString.length === 2) {
|
|
17067
17067
|
startEndDate.setHours(parseInt(timeString[0], 10), parseInt(timeString[1], 10), 0);
|
|
@@ -21922,7 +21922,7 @@ class ViewBase {
|
|
|
21922
21922
|
return endHour;
|
|
21923
21923
|
}
|
|
21924
21924
|
isCurrentDate(date) {
|
|
21925
|
-
return date.setHours(0, 0, 0, 0) === this.parent.
|
|
21925
|
+
return date.setHours(0, 0, 0, 0) === new Date(this.parent.currentTimezoneDate).setHours(0, 0, 0, 0);
|
|
21926
21926
|
}
|
|
21927
21927
|
isCurrentMonth(date) {
|
|
21928
21928
|
if (this.parent.activeViewOptions.displayDate || this.parent.activeViewOptions.numberOfWeeks > 0) {
|
|
@@ -22128,7 +22128,7 @@ class ViewBase {
|
|
|
22128
22128
|
}
|
|
22129
22129
|
else {
|
|
22130
22130
|
const resourceText = createElement('div', { className: className });
|
|
22131
|
-
|
|
22131
|
+
this.parent.sanitize(tdData.resourceData[tdData.resource.textField], resourceText);
|
|
22132
22132
|
tdElement.appendChild(resourceText);
|
|
22133
22133
|
}
|
|
22134
22134
|
}
|
|
@@ -22506,7 +22506,8 @@ class VerticalView extends ViewBase {
|
|
|
22506
22506
|
this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {
|
|
22507
22507
|
return;
|
|
22508
22508
|
}
|
|
22509
|
-
|
|
22509
|
+
const currentDate = this.parent.getCurrentTime();
|
|
22510
|
+
if (this.parent.showTimeIndicator && this.isWorkHourRange(currentDate)) {
|
|
22510
22511
|
const currentDateIndex = this.getCurrentTimeIndicatorIndex();
|
|
22511
22512
|
if (currentDateIndex.length > 0) {
|
|
22512
22513
|
const workCells = [].slice.call(this.element.querySelectorAll('.' + WORK_CELLS_CLASS));
|
|
@@ -22514,7 +22515,6 @@ class VerticalView extends ViewBase {
|
|
|
22514
22515
|
this.changeCurrentTimePosition();
|
|
22515
22516
|
}
|
|
22516
22517
|
if (isNullOrUndefined(this.currentTimeIndicatorTimer)) {
|
|
22517
|
-
const currentDate = this.parent.getCurrentTime();
|
|
22518
22518
|
const interval = MS_PER_MINUTE - ((currentDate.getSeconds() * 1000) + currentDate.getMilliseconds());
|
|
22519
22519
|
if (interval <= (MS_PER_MINUTE - 1000)) {
|
|
22520
22520
|
window.setTimeout(() => {
|
|
@@ -22541,10 +22541,11 @@ class VerticalView extends ViewBase {
|
|
|
22541
22541
|
if (!isNullOrUndefined(this.parent.resourceBase) && (this.parent.activeViewOptions.group.resources.length > 0) &&
|
|
22542
22542
|
!this.parent.uiStateValues.isGroupAdaptive) {
|
|
22543
22543
|
let count = 0;
|
|
22544
|
+
const currentDate = resetTime(this.parent.getCurrentTime());
|
|
22544
22545
|
if (this.parent.virtualScrollModule && this.parent.activeViewOptions.allowVirtualScrolling &&
|
|
22545
22546
|
this.parent.activeViewOptions.group.byDate) {
|
|
22546
22547
|
for (const resource of this.parent.resourceBase.expandedResources) {
|
|
22547
|
-
if (resetTime(resource.date).getTime() ===
|
|
22548
|
+
if (resetTime(resource.date).getTime() === currentDate.getTime()) {
|
|
22548
22549
|
currentDateIndex.push(count);
|
|
22549
22550
|
}
|
|
22550
22551
|
count += 1;
|
|
@@ -22552,7 +22553,7 @@ class VerticalView extends ViewBase {
|
|
|
22552
22553
|
}
|
|
22553
22554
|
else {
|
|
22554
22555
|
for (const resource of this.parent.resourceBase.renderedResources) {
|
|
22555
|
-
const index = this.parent.getIndexOfDate(resource.renderDates,
|
|
22556
|
+
const index = this.parent.getIndexOfDate(resource.renderDates, currentDate);
|
|
22556
22557
|
if (index >= 0) {
|
|
22557
22558
|
const resIndex = this.parent.activeViewOptions.group.byDate ?
|
|
22558
22559
|
(this.parent.resourceBase.lastResourceLevel.length * index) + count : count + index;
|
|
@@ -23328,7 +23329,7 @@ class Month extends ViewBase {
|
|
|
23328
23329
|
for (let col = 0; col < count; col++) {
|
|
23329
23330
|
const classList$$1 = [HEADER_CELLS_CLASS];
|
|
23330
23331
|
const currentDateIndex = renderDates.slice(0, count).map((date) => date.getDay());
|
|
23331
|
-
if (isCurrentMonth && currentDateIndex.indexOf(this.parent.
|
|
23332
|
+
if (isCurrentMonth && currentDateIndex.indexOf(this.parent.currentTimezoneDate.getDay()) === col) {
|
|
23332
23333
|
classList$$1.push(CURRENT_DAY_CLASS);
|
|
23333
23334
|
}
|
|
23334
23335
|
dateSlots.push({ date: renderDates[parseInt(col.toString(), 10)], type: 'monthDay', className: classList$$1, colSpan: 1, workDays: workDays });
|
|
@@ -23692,7 +23693,7 @@ class Month extends ViewBase {
|
|
|
23692
23693
|
addClass([dateHeader], NAVIGATE_CLASS);
|
|
23693
23694
|
const skeleton = 'full';
|
|
23694
23695
|
const announcementText = this.parent.globalize.formatDate(data.date, { skeleton: skeleton, calendar: this.parent.getCalendarMode() });
|
|
23695
|
-
|
|
23696
|
+
ntd.setAttribute('aria-label', announcementText);
|
|
23696
23697
|
}
|
|
23697
23698
|
}
|
|
23698
23699
|
getMonthStart(currentDate) {
|
|
@@ -24365,11 +24366,11 @@ class AgendaBase extends ViewBase {
|
|
|
24365
24366
|
eventSubject += ',';
|
|
24366
24367
|
}
|
|
24367
24368
|
const appSubjectText = createElement('div', { className: SUBJECT_CLASS });
|
|
24368
|
-
|
|
24369
|
+
this.parent.sanitize(eventSubject, appSubjectText);
|
|
24369
24370
|
appSubjectWrap.appendChild(appSubjectText);
|
|
24370
24371
|
if (!isNullOrUndefined(eventLocation) && eventLocation !== '') {
|
|
24371
24372
|
const appLocation = createElement('div', { className: LOCATION_CLASS });
|
|
24372
|
-
|
|
24373
|
+
this.parent.sanitize(eventLocation, appLocation);
|
|
24373
24374
|
appSubjectWrap.appendChild(appLocation);
|
|
24374
24375
|
}
|
|
24375
24376
|
if (!isNullOrUndefined(event[fieldMapping.recurrenceRule])) {
|
|
@@ -25987,8 +25988,11 @@ class TimelineYear extends Year {
|
|
|
25987
25988
|
else {
|
|
25988
25989
|
isDateAvail = column >= monthStart.getDay() && date.getTime() < monthEnd.getTime();
|
|
25989
25990
|
}
|
|
25991
|
+
const announcementText = this.parent.globalize.formatDate(date, {
|
|
25992
|
+
skeleton: 'full', calendar: this.parent.getCalendarMode()
|
|
25993
|
+
});
|
|
25990
25994
|
const td = createElement('td', {
|
|
25991
|
-
className: WORK_CELLS_CLASS, attrs: { 'aria-selected': 'false' }
|
|
25995
|
+
className: WORK_CELLS_CLASS, attrs: { 'aria-selected': 'false', 'aria-label': announcementText }
|
|
25992
25996
|
});
|
|
25993
25997
|
contentTr.appendChild(td);
|
|
25994
25998
|
const dateHeader = createElement('div', {
|
|
@@ -25996,11 +26000,6 @@ class TimelineYear extends Year {
|
|
|
25996
26000
|
innerHTML: (isDateAvail) ?
|
|
25997
26001
|
this.parent.globalize.formatDate(date, { skeleton: 'd', calendar: this.parent.getCalendarMode() }) : ''
|
|
25998
26002
|
});
|
|
25999
|
-
const skeleton = 'full';
|
|
26000
|
-
const announcementText = this.parent.globalize.formatDate(date, {
|
|
26001
|
-
skeleton: skeleton, calendar: this.parent.getCalendarMode()
|
|
26002
|
-
});
|
|
26003
|
-
dateHeader.setAttribute('aria-label', announcementText);
|
|
26004
26003
|
if (isDateAvail) {
|
|
26005
26004
|
const tds = [td];
|
|
26006
26005
|
const classList$$1 = [];
|
|
@@ -26732,18 +26731,23 @@ class Print {
|
|
|
26732
26731
|
];
|
|
26733
26732
|
const scheduleTemplates = ['cellHeaderTemplate', 'dayHeaderTemplate', 'monthHeaderTemplate', 'cellTemplate',
|
|
26734
26733
|
'dateHeaderTemplate', 'dateRangeTemplate', 'eventTemplate', 'resourceHeaderTemplate', 'headerIndentTemplate'];
|
|
26734
|
+
const scheduleEvents = ['actionBegin', 'actionComplete', 'actionFailure', 'created', 'dataBinding', 'dataBound',
|
|
26735
|
+
'destroyed', 'eventRendered', 'moreEventsClick', 'navigating', 'popupOpen', 'popupClose', 'renderCell'];
|
|
26735
26736
|
let eventSettings;
|
|
26736
26737
|
let group;
|
|
26737
26738
|
let timeScale;
|
|
26738
26739
|
let views;
|
|
26739
26740
|
for (const key of scheduleProps) {
|
|
26740
26741
|
switch (key) {
|
|
26741
|
-
case 'eventSettings':
|
|
26742
|
+
case 'eventSettings': {
|
|
26742
26743
|
eventSettings = Object.assign({}, this.parent.eventSettings.properties);
|
|
26743
26744
|
eventSettings.dataSource = this.parent.eventsData;
|
|
26744
|
-
|
|
26745
|
+
const eventTemplate = !isNullOrUndefined(printOptions.eventSettings) &&
|
|
26746
|
+
!isNullOrUndefined(printOptions.eventSettings.template) ? printOptions.eventSettings.template : eventSettings.template;
|
|
26747
|
+
eventSettings.template = typeof (eventTemplate) === 'function' ? null : eventTemplate;
|
|
26745
26748
|
printModel.eventSettings = eventSettings;
|
|
26746
26749
|
break;
|
|
26750
|
+
}
|
|
26747
26751
|
case 'group':
|
|
26748
26752
|
group = isNullOrUndefined(printOptions.group) ? this.parent.group : printOptions.group;
|
|
26749
26753
|
group.headerTooltipTemplate = null;
|
|
@@ -26775,6 +26779,10 @@ class Print {
|
|
|
26775
26779
|
(typeof (printOptions[`${key}`]) === 'function' ? null : printOptions[`${key}`]);
|
|
26776
26780
|
break;
|
|
26777
26781
|
}
|
|
26782
|
+
if (scheduleEvents.indexOf(key) > -1) {
|
|
26783
|
+
printModel[`${key}`] = printOptions[`${key}`];
|
|
26784
|
+
break;
|
|
26785
|
+
}
|
|
26778
26786
|
printModel[`${key}`] = isNullOrUndefined(printOptions[`${key}`]) ?
|
|
26779
26787
|
this.parent[`${key}`] : printOptions[`${key}`];
|
|
26780
26788
|
break;
|