@syncfusion/ej2-schedule 25.1.37 → 25.1.39
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 +10 -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 +92 -13
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +101 -17
- 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/actions/virtual-scroll.d.ts +2 -0
- package/src/schedule/actions/virtual-scroll.js +24 -1
- 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/resource.js +1 -0
- package/src/schedule/base/schedule.d.ts +1 -0
- package/src/schedule/base/schedule.js +20 -4
- package/src/schedule/event-renderer/month.js +1 -2
- package/src/schedule/event-renderer/timeline-view.js +17 -5
- package/src/schedule/event-renderer/vertical-view.js +11 -1
- package/src/schedule/popups/quick-popups.js +3 -1
- package/src/schedule/renderer/header-renderer.js +3 -2
- package/src/schedule/renderer/renderer.js +1 -0
- package/src/schedule/renderer/timeline-year.js +4 -1
- package/src/schedule/renderer/vertical-view.js +14 -0
- package/src/schedule/renderer/view-base.js +1 -1
- package/styles/bootstrap-dark.css +8 -1
- package/styles/bootstrap.css +8 -1
- package/styles/bootstrap4.css +8 -1
- package/styles/bootstrap5-dark.css +8 -1
- package/styles/bootstrap5.css +8 -1
- package/styles/fabric-dark.css +8 -1
- package/styles/fabric.css +8 -1
- package/styles/fluent-dark.css +8 -1
- package/styles/fluent.css +8 -1
- package/styles/highcontrast-light.css +8 -1
- package/styles/highcontrast.css +8 -1
- package/styles/material-dark.css +8 -1
- package/styles/material.css +8 -1
- package/styles/material3-dark.css +8 -1
- package/styles/material3.css +8 -1
- package/styles/schedule/_layout.scss +18 -1
- package/styles/schedule/bootstrap-dark.css +8 -1
- package/styles/schedule/bootstrap.css +8 -1
- package/styles/schedule/bootstrap4.css +8 -1
- package/styles/schedule/bootstrap5-dark.css +8 -1
- package/styles/schedule/bootstrap5.css +8 -1
- package/styles/schedule/fabric-dark.css +8 -1
- package/styles/schedule/fabric.css +8 -1
- package/styles/schedule/fluent-dark.css +8 -1
- package/styles/schedule/fluent.css +8 -1
- package/styles/schedule/highcontrast-light.css +8 -1
- package/styles/schedule/highcontrast.css +8 -1
- package/styles/schedule/material-dark.css +8 -1
- package/styles/schedule/material.css +8 -1
- package/styles/schedule/material3-dark.css +8 -1
- package/styles/schedule/material3.css +8 -1
- package/styles/schedule/tailwind-dark.css +8 -1
- package/styles/schedule/tailwind.css +8 -1
- package/styles/tailwind-dark.css +8 -1
- package/styles/tailwind.css +8 -1
|
@@ -557,6 +557,8 @@ const RTL = 'e-rtl';
|
|
|
557
557
|
/** @private */
|
|
558
558
|
const DEVICE_CLASS = 'e-device';
|
|
559
559
|
/** @private */
|
|
560
|
+
const ADAPTIVE_CLASS = 'e-adaptive';
|
|
561
|
+
/** @private */
|
|
560
562
|
const MULTI_DRAG = 'e-multi-drag';
|
|
561
563
|
/** @private */
|
|
562
564
|
const ICON = 'e-icons';
|
|
@@ -1084,6 +1086,7 @@ class HeaderRenderer {
|
|
|
1084
1086
|
});
|
|
1085
1087
|
this.toolbarObj.root = this.parent.root ? this.parent.root : this.parent;
|
|
1086
1088
|
this.toolbarObj.appendTo(this.parent.element.querySelector('.' + HEADER_TOOLBAR));
|
|
1089
|
+
this.toolbarObj.element.setAttribute('aria-label', 'Scheduler');
|
|
1087
1090
|
const prevNavEle = this.toolbarObj.element.querySelector('.e-prev');
|
|
1088
1091
|
if (prevNavEle) {
|
|
1089
1092
|
prevNavEle.firstElementChild.setAttribute('title', this.l10n.getConstant('previous'));
|
|
@@ -1269,7 +1272,7 @@ class HeaderRenderer {
|
|
|
1269
1272
|
switch (item.name) {
|
|
1270
1273
|
case 'Today':
|
|
1271
1274
|
tbItem = {
|
|
1272
|
-
showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-
|
|
1275
|
+
showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-today',
|
|
1273
1276
|
text: this.l10n.getConstant('today'), cssClass: 'e-today', overflow: 'Show'
|
|
1274
1277
|
};
|
|
1275
1278
|
tbItem.align = propItem.align ? propItem.align : item.align;
|
|
@@ -1355,7 +1358,7 @@ class HeaderRenderer {
|
|
|
1355
1358
|
}
|
|
1356
1359
|
else {
|
|
1357
1360
|
items.push({
|
|
1358
|
-
align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-
|
|
1361
|
+
align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-today',
|
|
1359
1362
|
text: this.l10n.getConstant('today'), cssClass: 'e-today', overflow: 'Show'
|
|
1360
1363
|
});
|
|
1361
1364
|
if (this.parent.views.length > 1) {
|
|
@@ -6751,6 +6754,14 @@ class VerticalEvent extends EventBase {
|
|
|
6751
6754
|
const wrapperElements = [].slice.call(this.parent.element.querySelectorAll('.' + BLOCK_APPOINTMENT_CLASS +
|
|
6752
6755
|
',.' + APPOINTMENT_CLASS + ',.' + ROW_COUNT_WRAPPER_CLASS));
|
|
6753
6756
|
const isDragging = (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) ? true : false;
|
|
6757
|
+
const hideWrapper = (wrapper) => {
|
|
6758
|
+
if (this.parent.isReact && !isNullOrUndefined(this.parent.activeViewOptions.eventTemplate)) {
|
|
6759
|
+
const appWrapper = closest(wrapper, '.' + DAY_WRAPPER_CLASS + ',.' + ALLDAY_APPOINTMENT_WRAPPER_CLASS);
|
|
6760
|
+
if (appWrapper && !appWrapper.classList.contains(APPOINTMENT_WRAPPER_HIDDEN_CLASS)) {
|
|
6761
|
+
addClass([appWrapper], APPOINTMENT_WRAPPER_HIDDEN_CLASS);
|
|
6762
|
+
}
|
|
6763
|
+
}
|
|
6764
|
+
};
|
|
6754
6765
|
for (const wrapper of wrapperElements) {
|
|
6755
6766
|
if (isDragging && !(wrapper.classList.contains(ALLDAY_APPOINTMENT_CLASS) ||
|
|
6756
6767
|
wrapper.classList.contains(ROW_COUNT_WRAPPER_CLASS))) {
|
|
@@ -6758,11 +6769,13 @@ class VerticalEvent extends EventBase {
|
|
|
6758
6769
|
for (let j = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; j < len; j++) {
|
|
6759
6770
|
if (groupIndex === this.parent.crudModule.crudObj.sourceEvent[parseInt(j.toString(), 10)].groupIndex ||
|
|
6760
6771
|
groupIndex === this.parent.crudModule.crudObj.targetEvent[parseInt(j.toString(), 10)].groupIndex) {
|
|
6772
|
+
hideWrapper(wrapper);
|
|
6761
6773
|
remove(wrapper);
|
|
6762
6774
|
}
|
|
6763
6775
|
}
|
|
6764
6776
|
}
|
|
6765
6777
|
else {
|
|
6778
|
+
hideWrapper(wrapper);
|
|
6766
6779
|
remove(wrapper);
|
|
6767
6780
|
}
|
|
6768
6781
|
}
|
|
@@ -8174,8 +8187,7 @@ class MonthEvent extends EventBase {
|
|
|
8174
8187
|
attrs: {
|
|
8175
8188
|
'role': 'button',
|
|
8176
8189
|
'tabindex': '0',
|
|
8177
|
-
'aria-label': this.parent.globalize.formatNumber(count) + '
|
|
8178
|
-
+ (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more')),
|
|
8190
|
+
'aria-label': this.parent.globalize.formatNumber(count) + ' ' + this.parent.localeObj.getConstant('moreEvents'),
|
|
8179
8191
|
'data-count': count.toString(),
|
|
8180
8192
|
'data-start-date': startDate.getTime().toString(),
|
|
8181
8193
|
'data-end-date': endDate.getTime().toString()
|
|
@@ -8282,8 +8294,16 @@ class TimelineEvent extends MonthEvent {
|
|
|
8282
8294
|
const appointments = [];
|
|
8283
8295
|
for (const app of appointmentsCollection) {
|
|
8284
8296
|
if (this.renderType === 'day') {
|
|
8285
|
-
|
|
8286
|
-
|
|
8297
|
+
const start = resetTime(startDate).getTime();
|
|
8298
|
+
const end = resetTime(endDate).getTime();
|
|
8299
|
+
const appStart = resetTime(app[this.fields.startTime]).getTime();
|
|
8300
|
+
const appEnd = resetTime(app[this.fields.endTime]).getTime();
|
|
8301
|
+
const isEndOverlap = () => {
|
|
8302
|
+
let endTime = (end - (getDateInMs(endDate) <= 0 ? MS_PER_DAY : 0));
|
|
8303
|
+
endTime = start > endTime ? start : endTime;
|
|
8304
|
+
return appEnd >= endTime && appStart <= endTime;
|
|
8305
|
+
};
|
|
8306
|
+
if (appStart <= start && appEnd >= start || isEndOverlap() || appStart > start && appEnd < end) {
|
|
8287
8307
|
appointments.push(app);
|
|
8288
8308
|
}
|
|
8289
8309
|
}
|
|
@@ -9156,7 +9176,7 @@ class QuickPopups {
|
|
|
9156
9176
|
renderMorePopup() {
|
|
9157
9177
|
const moreEventPopup = `<div class="${MORE_EVENT_POPUP_CLASS}"><div class="${MORE_EVENT_HEADER_CLASS}">` +
|
|
9158
9178
|
`<div class="${MORE_EVENT_CLOSE_CLASS}" title="${this.l10n.getConstant('close')}" tabindex="0" role="button"></div>` +
|
|
9159
|
-
`<div class="${MORE_EVENT_DATE_HEADER_CLASS}"><div class="${MORE_EVENT_HEADER_DAY_CLASS}"></div>` +
|
|
9179
|
+
`<div class="${MORE_EVENT_DATE_HEADER_CLASS}"><div class="${MORE_EVENT_HEADER_DAY_CLASS}" id="${this.parent.element.id}_more_popup"></div>` +
|
|
9160
9180
|
`<div class="${MORE_EVENT_HEADER_DATE_CLASS} ${NAVIGATE_CLASS}" tabindex="0" role="link"></div></div></div></div>`;
|
|
9161
9181
|
const moreEventWrapper = createElement('div', {
|
|
9162
9182
|
className: MORE_POPUP_WRAPPER_CLASS + ' e-popup-close',
|
|
@@ -9181,6 +9201,8 @@ class QuickPopups {
|
|
|
9181
9201
|
viewPortElement: (this.parent.isAdaptive ? document.body : this.parent.element),
|
|
9182
9202
|
zIndex: (this.parent.isAdaptive ? 1002 : 2)
|
|
9183
9203
|
});
|
|
9204
|
+
this.morePopup.element.setAttribute('role', 'dialog');
|
|
9205
|
+
this.morePopup.element.setAttribute('aria-labelledby', this.parent.element.id + '_more_popup');
|
|
9184
9206
|
const closeButton = this.morePopup.element.querySelector('.' + MORE_EVENT_CLOSE_CLASS);
|
|
9185
9207
|
this.renderButton('e-round', ICON + ' ' + CLOSE_ICON_CLASS, false, closeButton, this.closeClick);
|
|
9186
9208
|
EventHandler.add(this.morePopup.element.querySelector('.' + MORE_EVENT_HEADER_DATE_CLASS), 'click', this.navigationClick, this);
|
|
@@ -13798,6 +13820,27 @@ class VirtualScroll {
|
|
|
13798
13820
|
this.itemSize = getElementHeightFromClass(this.parent.activeView.element, WORK_CELLS_CLASS) || this.itemSize;
|
|
13799
13821
|
}
|
|
13800
13822
|
}
|
|
13823
|
+
refreshLayout() {
|
|
13824
|
+
const initialHeight = this.parent.uiStateValues.scheduleHeight;
|
|
13825
|
+
this.parent.uiStateValues.scheduleHeight = this.parent.element.offsetHeight;
|
|
13826
|
+
const preRenderedLength = this.renderedLength;
|
|
13827
|
+
if (this.parent.uiStateValues.scheduleHeight !== initialHeight) {
|
|
13828
|
+
if (preRenderedLength < this.getRenderedCount()) {
|
|
13829
|
+
this.isRemoteRefresh = true;
|
|
13830
|
+
}
|
|
13831
|
+
const resWrap = this.parent.element.querySelector('.' + RESOURCE_COLUMN_WRAP_CLASS);
|
|
13832
|
+
const conWrap = this.parent.element.querySelector('.' + CONTENT_WRAP_CLASS);
|
|
13833
|
+
const eventWrap = this.parent.element.querySelector('.' + EVENT_TABLE_CLASS);
|
|
13834
|
+
let firstTDIndex = parseInt(resWrap.querySelector('tbody td').getAttribute('data-group-index'), 10);
|
|
13835
|
+
const endIndex = (firstTDIndex + this.renderedLength);
|
|
13836
|
+
firstTDIndex = (endIndex > this.parent.resourceBase.expandedResources.length) ?
|
|
13837
|
+
(this.parent.resourceBase.expandedResources.length - this.renderedLength) : firstTDIndex;
|
|
13838
|
+
this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources.slice(firstTDIndex, endIndex);
|
|
13839
|
+
if (this.parent.resourceBase.renderedResources.length > 0) {
|
|
13840
|
+
this.updateContent(resWrap, conWrap, eventWrap, this.parent.resourceBase.renderedResources);
|
|
13841
|
+
}
|
|
13842
|
+
}
|
|
13843
|
+
}
|
|
13801
13844
|
renderEvents() {
|
|
13802
13845
|
this.setTabIndex();
|
|
13803
13846
|
const dynamicData = this.triggerScrollEvent(virtualScrollStop);
|
|
@@ -13832,7 +13875,9 @@ class VirtualScroll {
|
|
|
13832
13875
|
const eventWrap = this.parent.element.querySelector('.' + EVENT_TABLE_CLASS);
|
|
13833
13876
|
const timeIndicator = this.parent.element.querySelector('.' + CURRENT_TIMELINE_CLASS);
|
|
13834
13877
|
const conTable = this.parent.element.querySelector('.' + CONTENT_TABLE_CLASS);
|
|
13835
|
-
|
|
13878
|
+
if (!this.parent.rowAutoHeight) {
|
|
13879
|
+
addClass([conWrap, resWrap], 'e-transition');
|
|
13880
|
+
}
|
|
13836
13881
|
this.renderedLength = resWrap.querySelector('tbody').children.length;
|
|
13837
13882
|
const firstTDIndex = parseInt(resWrap.querySelector('tbody td').getAttribute('data-group-index'), 10);
|
|
13838
13883
|
const scrollHeight = this.parent.rowAutoHeight ?
|
|
@@ -14226,6 +14271,7 @@ class Render {
|
|
|
14226
14271
|
}
|
|
14227
14272
|
throw Error('Inject required modules');
|
|
14228
14273
|
}
|
|
14274
|
+
this.parent.uiStateValues.scheduleHeight = this.parent.element.offsetHeight;
|
|
14229
14275
|
this.parent.activeView.viewIndex = this.parent.viewIndex;
|
|
14230
14276
|
this.updateLabelText(viewName);
|
|
14231
14277
|
this.parent.activeView.addEventListener();
|
|
@@ -15914,6 +15960,7 @@ class ResourceBase {
|
|
|
15914
15960
|
args = {
|
|
15915
15961
|
cancel: false, event: (event) ? event.event : null, groupIndex: this.parent.uiStateValues.groupIndex, requestType: 'resourceChanged'
|
|
15916
15962
|
};
|
|
15963
|
+
this.parent.adaptiveGroupIndex = this.parent.uiStateValues.groupIndex;
|
|
15917
15964
|
this.parent.trigger(actionComplete, args);
|
|
15918
15965
|
}
|
|
15919
15966
|
});
|
|
@@ -16570,6 +16617,7 @@ let Schedule = class Schedule extends Component {
|
|
|
16570
16617
|
*/
|
|
16571
16618
|
constructor(options, element) {
|
|
16572
16619
|
super(options, element);
|
|
16620
|
+
this.adaptiveGroupIndex = 0;
|
|
16573
16621
|
}
|
|
16574
16622
|
/**
|
|
16575
16623
|
* Core method that initializes the control rendering.
|
|
@@ -16593,6 +16641,12 @@ let Schedule = class Schedule extends Component {
|
|
|
16593
16641
|
else {
|
|
16594
16642
|
removeClasses.push(DEVICE_CLASS);
|
|
16595
16643
|
}
|
|
16644
|
+
if (this.enableAdaptiveUI) {
|
|
16645
|
+
addClasses.push(ADAPTIVE_CLASS);
|
|
16646
|
+
}
|
|
16647
|
+
else {
|
|
16648
|
+
removeClasses.push(ADAPTIVE_CLASS);
|
|
16649
|
+
}
|
|
16596
16650
|
if (this.allowMultiDrag) {
|
|
16597
16651
|
addClasses.push(MULTI_DRAG);
|
|
16598
16652
|
}
|
|
@@ -17194,7 +17248,7 @@ let Schedule = class Schedule extends Component {
|
|
|
17194
17248
|
if (this && isNullOrUndefined(this.uiStateValues) || !(this.enablePersistence)) {
|
|
17195
17249
|
this.uiStateValues = {
|
|
17196
17250
|
expand: false, isInitial: true, left: 0, top: 0, isGroupAdaptive: false,
|
|
17197
|
-
isIgnoreOccurrence: false, groupIndex:
|
|
17251
|
+
isIgnoreOccurrence: false, groupIndex: this.adaptiveGroupIndex, action: false, isBlock: false, isCustomMonth: true, isPreventTimezone: false
|
|
17198
17252
|
};
|
|
17199
17253
|
}
|
|
17200
17254
|
this.currentTimezoneDate = this.getCurrentTime();
|
|
@@ -17686,6 +17740,9 @@ let Schedule = class Schedule extends Component {
|
|
|
17686
17740
|
&& document.activeElement.classList.contains(SUBJECT_CLASS))) {
|
|
17687
17741
|
return;
|
|
17688
17742
|
}
|
|
17743
|
+
if (this.virtualScrollModule && this.activeView.isTimelineView()) {
|
|
17744
|
+
this.virtualScrollModule.refreshLayout();
|
|
17745
|
+
}
|
|
17689
17746
|
if (this.activeViewOptions.timeScale.enable && this.activeView) {
|
|
17690
17747
|
this.activeView.highlightCurrentTime();
|
|
17691
17748
|
}
|
|
@@ -17697,7 +17754,12 @@ let Schedule = class Schedule extends Component {
|
|
|
17697
17754
|
&& !this.activeViewOptions.timeScale.enable) || this.activeView.isTimelineView()) {
|
|
17698
17755
|
this.activeView.resetColWidth();
|
|
17699
17756
|
this.notify(scrollUiUpdate, { cssProperties: this.getCssProperties(), isPreventScrollUpdate: true });
|
|
17700
|
-
|
|
17757
|
+
let isRemoteRefresh = false;
|
|
17758
|
+
if (this.activeViewOptions.enableLazyLoading && this.virtualScrollModule && this.virtualScrollModule.isRemoteRefresh) {
|
|
17759
|
+
isRemoteRefresh = this.virtualScrollModule.isRemoteRefresh;
|
|
17760
|
+
this.virtualScrollModule.isRemoteRefresh = false;
|
|
17761
|
+
}
|
|
17762
|
+
this.refreshEvents(isRemoteRefresh);
|
|
17701
17763
|
}
|
|
17702
17764
|
else {
|
|
17703
17765
|
this.notify(contentReady, {});
|
|
@@ -17880,7 +17942,7 @@ let Schedule = class Schedule extends Component {
|
|
|
17880
17942
|
* @private
|
|
17881
17943
|
*/
|
|
17882
17944
|
getPersistData() {
|
|
17883
|
-
return this.addOnPersist(['currentView', 'selectedDate', 'scrollTop', 'scrollLeft']);
|
|
17945
|
+
return this.addOnPersist(['currentView', 'selectedDate', 'scrollTop', 'scrollLeft', 'adaptiveGroupIndex']);
|
|
17884
17946
|
}
|
|
17885
17947
|
/**
|
|
17886
17948
|
* Called internally, if any of the property value changed.
|
|
@@ -22881,7 +22943,7 @@ class ViewBase {
|
|
|
22881
22943
|
const colWidth = (getElementWidth(contentBody) / (colElements.length / 2));
|
|
22882
22944
|
if (content.offsetHeight !== content.clientHeight) {
|
|
22883
22945
|
const resourceColumn = this.parent.element.querySelector('.' + RESOURCE_COLUMN_WRAP_CLASS);
|
|
22884
|
-
if (!isNullOrUndefined(resourceColumn)) {
|
|
22946
|
+
if (!isNullOrUndefined(resourceColumn) && resourceColumn.offsetHeight !== content.clientHeight) {
|
|
22885
22947
|
setStyleAttribute(resourceColumn, { 'height': formatUnit(content.clientHeight) });
|
|
22886
22948
|
}
|
|
22887
22949
|
}
|
|
@@ -23698,6 +23760,20 @@ class VerticalView extends ViewBase {
|
|
|
23698
23760
|
append(tooltipTemplate, ntd);
|
|
23699
23761
|
}
|
|
23700
23762
|
ntd.setAttribute('data-date', cellDate.getTime().toString());
|
|
23763
|
+
const skeleton = 'full';
|
|
23764
|
+
if (!this.parent.activeViewOptions.timeScale.enable) {
|
|
23765
|
+
const announcementText = this.parent.globalize.formatDate(tdData.date, { skeleton: skeleton, calendar: this.parent.getCalendarMode() });
|
|
23766
|
+
ntd.setAttribute('aria-label', announcementText);
|
|
23767
|
+
}
|
|
23768
|
+
else {
|
|
23769
|
+
const startDateText = this.parent.globalize.formatDate(cellDate, {
|
|
23770
|
+
type: 'dateTime', skeleton: skeleton, calendar: this.parent.getCalendarMode()
|
|
23771
|
+
});
|
|
23772
|
+
const endDateText = this.parent.globalize.formatDate(this.getEndDateFromStartDate(cellDate), {
|
|
23773
|
+
type: 'dateTime', skeleton: skeleton, calendar: this.parent.getCalendarMode()
|
|
23774
|
+
});
|
|
23775
|
+
ntd.setAttribute('aria-label', startDateText + ' ' + this.parent.localeObj.getConstant('endAt') + ' ' + endDateText);
|
|
23776
|
+
}
|
|
23701
23777
|
if (!isNullOrUndefined(tdData.groupIndex) || this.parent.uiStateValues.isGroupAdaptive) {
|
|
23702
23778
|
const groupIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex :
|
|
23703
23779
|
tdData.groupIndex;
|
|
@@ -26924,11 +27000,14 @@ class TimelineYear extends Year {
|
|
|
26924
27000
|
groupIndex = this.colLevels.slice(-1)[0][parseInt(month.toString(), 10)].groupIndex;
|
|
26925
27001
|
classList$$1.push(WORKDAY_CLASS);
|
|
26926
27002
|
}
|
|
27003
|
+
const startDateText = this.parent.globalize.formatDate(date, { type: 'dateTime', skeleton: 'full', calendar: this.parent.getCalendarMode() });
|
|
27004
|
+
const endDateText = this.parent.globalize.formatDate(this.parent.calendarUtil.getMonthEndDate(new Date(monthDate.getTime())), { type: 'dateTime', skeleton: 'full', calendar: this.parent.getCalendarMode() });
|
|
26927
27005
|
const td = createElement('td', {
|
|
26928
27006
|
className: WORK_CELLS_CLASS,
|
|
26929
27007
|
attrs: {
|
|
26930
27008
|
'aria-selected': 'false',
|
|
26931
|
-
'data-date': date.getTime().toString()
|
|
27009
|
+
'data-date': date.getTime().toString(),
|
|
27010
|
+
'aria-label': startDateText + ' ' + this.parent.localeObj.getConstant('endAt') + ' ' + endDateText
|
|
26932
27011
|
}
|
|
26933
27012
|
});
|
|
26934
27013
|
addClass([td], classList$$1);
|