@syncfusion/ej2-schedule 19.4.55 → 20.1.47
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 -9
- 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 +156 -46
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +156 -46
- 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 +15 -15
- package/src/recurrence-editor/date-generator.js +4 -0
- package/src/schedule/base/schedule.js +4 -0
- package/src/schedule/event-renderer/agenda-base.js +1 -1
- package/src/schedule/event-renderer/month.d.ts +3 -0
- package/src/schedule/event-renderer/month.js +38 -24
- package/src/schedule/event-renderer/timeline-view.js +2 -1
- package/src/schedule/event-renderer/year.js +3 -1
- package/src/schedule/popups/event-window.js +4 -2
- package/src/schedule/renderer/month.d.ts +1 -0
- package/src/schedule/renderer/month.js +29 -12
- package/src/schedule/renderer/renderer.js +2 -1
- package/src/schedule/renderer/timeline-year.d.ts +2 -1
- package/src/schedule/renderer/timeline-year.js +49 -4
- package/src/schedule/renderer/year.js +20 -0
- package/styles/bootstrap-dark.css +10 -7
- package/styles/bootstrap.css +10 -7
- package/styles/bootstrap4.css +11 -8
- package/styles/bootstrap5-dark.css +20 -19
- package/styles/bootstrap5.css +20 -19
- package/styles/fabric-dark.css +10 -7
- package/styles/fabric.css +10 -7
- package/styles/fluent-dark.css +5102 -0
- package/styles/fluent-dark.scss +2 -0
- package/styles/fluent.css +5103 -0
- package/styles/fluent.scss +2 -0
- package/styles/highcontrast-light.css +10 -7
- package/styles/highcontrast.css +11 -8
- package/styles/material-dark.css +10 -7
- package/styles/material.css +10 -7
- package/styles/recurrence-editor/_fluent-dark-definition.scss +1 -0
- package/styles/recurrence-editor/fluent-dark.css +495 -0
- package/styles/recurrence-editor/fluent-dark.scss +3 -0
- package/styles/recurrence-editor/fluent.css +495 -0
- package/styles/recurrence-editor/fluent.scss +3 -0
- package/styles/schedule/_bootstrap4-definition.scss +1 -1
- package/styles/schedule/_bootstrap5-definition.scss +4 -4
- package/styles/schedule/_fluent-dark-definition.scss +1 -0
- package/styles/schedule/_fluent-definition.scss +10 -8
- package/styles/schedule/_highcontrast-definition.scss +1 -1
- package/styles/schedule/_layout.scss +55 -14
- package/styles/schedule/_tailwind-definition.scss +1 -0
- package/styles/schedule/_theme.scss +6 -9
- package/styles/schedule/bootstrap-dark.css +10 -7
- package/styles/schedule/bootstrap.css +10 -7
- package/styles/schedule/bootstrap4.css +11 -8
- package/styles/schedule/bootstrap5-dark.css +20 -19
- package/styles/schedule/bootstrap5.css +20 -19
- package/styles/schedule/fabric-dark.css +10 -7
- package/styles/schedule/fabric.css +10 -7
- package/styles/schedule/fluent-dark.css +4606 -0
- package/styles/schedule/fluent-dark.scss +4 -0
- package/styles/schedule/fluent.css +4607 -0
- package/styles/schedule/fluent.scss +5 -0
- package/styles/schedule/highcontrast-light.css +10 -7
- package/styles/schedule/highcontrast.css +11 -8
- package/styles/schedule/icons/_fluent-dark.scss +1 -0
- package/styles/schedule/icons/_fluent.scss +51 -50
- package/styles/schedule/icons/_tailwind.scss +51 -50
- package/styles/schedule/material-dark.css +10 -7
- package/styles/schedule/material.css +10 -7
- package/styles/schedule/tailwind-dark.css +65 -60
- package/styles/schedule/tailwind.css +65 -60
- package/styles/tailwind-dark.css +65 -60
- package/styles/tailwind.css +65 -60
|
@@ -3631,6 +3631,10 @@ function generate(startDate, rule, excludeDate, startDayOfWeek, maximumCount = M
|
|
|
3631
3631
|
}
|
|
3632
3632
|
maxOccurrence = maximumCount;
|
|
3633
3633
|
setFirstDayOfWeek(DAYINDEX[startDayOfWeek]);
|
|
3634
|
+
if (ruleObject.until) {
|
|
3635
|
+
const end = resetTime(ruleObject.until);
|
|
3636
|
+
ruleObject.until = new Date(end.getFullYear(), end.getMonth(), end.getDate(), 23, 59, 59);
|
|
3637
|
+
}
|
|
3634
3638
|
switch (ruleObject.freq) {
|
|
3635
3639
|
case 'DAILY':
|
|
3636
3640
|
dailyType(modifiedDate, ruleObject.until, data, ruleObject);
|
|
@@ -7078,6 +7082,7 @@ class MonthEvent extends EventBase {
|
|
|
7078
7082
|
constructor(parent) {
|
|
7079
7083
|
super(parent);
|
|
7080
7084
|
this.renderedEvents = [];
|
|
7085
|
+
this.eventsRendered = [];
|
|
7081
7086
|
this.monthHeaderHeight = 0;
|
|
7082
7087
|
this.moreIndicatorHeight = 19;
|
|
7083
7088
|
this.renderType = 'day';
|
|
@@ -7096,7 +7101,7 @@ class MonthEvent extends EventBase {
|
|
|
7096
7101
|
if (appElement.length > 0) {
|
|
7097
7102
|
appElement = (this.parent.currentView === 'Month') ? appElement : [appElement[0]];
|
|
7098
7103
|
for (const wrap of appElement) {
|
|
7099
|
-
if (
|
|
7104
|
+
if (wrap.parentElement && wrap.parentElement.parentNode) {
|
|
7100
7105
|
remove(wrap.parentElement);
|
|
7101
7106
|
}
|
|
7102
7107
|
}
|
|
@@ -7191,6 +7196,7 @@ class MonthEvent extends EventBase {
|
|
|
7191
7196
|
}
|
|
7192
7197
|
renderEventsHandler(dateRender, workDays, resData) {
|
|
7193
7198
|
this.renderedEvents = [];
|
|
7199
|
+
this.eventsRendered = [];
|
|
7194
7200
|
let eventsList;
|
|
7195
7201
|
let blockList;
|
|
7196
7202
|
let resIndex = 0;
|
|
@@ -7534,16 +7540,16 @@ class MonthEvent extends EventBase {
|
|
|
7534
7540
|
}
|
|
7535
7541
|
const overlapCount = this.getIndex(startTime);
|
|
7536
7542
|
event.Index = overlapCount;
|
|
7537
|
-
let appHeight = this.eventHeight;
|
|
7538
7543
|
this.renderedEvents.push(extend({}, event, null, true));
|
|
7539
7544
|
const diffInDays = event.data.count;
|
|
7540
7545
|
if (startTime.getTime() <= endTime.getTime()) {
|
|
7541
7546
|
const appWidth = (diffInDays * this.cellWidth) - 5;
|
|
7542
7547
|
const cellTd = this.workCells[day];
|
|
7543
|
-
const appTop = (overlapCount * (
|
|
7544
|
-
const height = this.monthHeaderHeight + ((overlapCount + 1) * (
|
|
7548
|
+
const appTop = (overlapCount * (this.eventHeight + EVENT_GAP));
|
|
7549
|
+
const height = this.monthHeaderHeight + ((overlapCount + 1) * (this.eventHeight + EVENT_GAP)) + this.moreIndicatorHeight;
|
|
7545
7550
|
const enableAppRender = this.maxOrIndicator ? overlapCount < 1 ? true : false : this.cellHeight > height;
|
|
7546
7551
|
if (this.parent.rowAutoHeight || enableAppRender) {
|
|
7552
|
+
this.eventsRendered.push(extend({}, event, null, true));
|
|
7547
7553
|
let appointmentElement;
|
|
7548
7554
|
if (this.inlineValue) {
|
|
7549
7555
|
appointmentElement = this.parent.inlineModule.createInlineAppointmentElement();
|
|
@@ -7559,28 +7565,37 @@ class MonthEvent extends EventBase {
|
|
|
7559
7565
|
const firstChild = cellTd.parentElement.firstElementChild;
|
|
7560
7566
|
this.updateCellHeight(firstChild, height);
|
|
7561
7567
|
}
|
|
7568
|
+
else if (cellTd.querySelector('.' + MORE_INDICATOR_CLASS)) {
|
|
7569
|
+
this.renderMoreIndicators(diffInDays, day);
|
|
7570
|
+
}
|
|
7562
7571
|
}
|
|
7563
7572
|
else {
|
|
7564
|
-
|
|
7565
|
-
|
|
7566
|
-
|
|
7567
|
-
|
|
7568
|
-
|
|
7569
|
-
|
|
7570
|
-
|
|
7571
|
-
|
|
7572
|
-
|
|
7573
|
-
|
|
7574
|
-
|
|
7575
|
-
|
|
7576
|
-
|
|
7577
|
-
|
|
7578
|
-
|
|
7579
|
-
|
|
7580
|
-
|
|
7581
|
-
|
|
7582
|
-
|
|
7573
|
+
this.renderMoreIndicators(diffInDays, day);
|
|
7574
|
+
}
|
|
7575
|
+
}
|
|
7576
|
+
}
|
|
7577
|
+
renderMoreIndicators(diffInDays, day) {
|
|
7578
|
+
for (let i = 0; i < diffInDays; i++) {
|
|
7579
|
+
if (this.workCells[day + i]) {
|
|
7580
|
+
const startDate = new Date(this.dateRender[day + i].getTime());
|
|
7581
|
+
const endDate = addDays(this.dateRender[day + i], 1);
|
|
7582
|
+
const groupIndex = this.workCells[day + i].getAttribute('data-group-index');
|
|
7583
|
+
const filterEvents = this.getFilteredEvents(startDate, endDate, groupIndex);
|
|
7584
|
+
const renderedAppCount = this.getOverlapEvents(startDate, this.eventsRendered).length;
|
|
7585
|
+
const count = (filterEvents.length - renderedAppCount) <= 0 ? 1 : (filterEvents.length - renderedAppCount);
|
|
7586
|
+
const indicator = this.workCells[day + i].querySelector('.' + MORE_INDICATOR_CLASS);
|
|
7587
|
+
if (indicator) {
|
|
7588
|
+
indicator.innerHTML = this.getMoreIndicatorText(count);
|
|
7589
|
+
}
|
|
7590
|
+
else {
|
|
7591
|
+
const moreIndicatorElement = this.getMoreIndicatorElement(count, startDate, endDate);
|
|
7592
|
+
if (!isNullOrUndefined(groupIndex)) {
|
|
7593
|
+
moreIndicatorElement.setAttribute('data-group-index', groupIndex);
|
|
7583
7594
|
}
|
|
7595
|
+
moreIndicatorElement.style.top = (this.cellHeight - this.monthHeaderHeight - this.moreIndicatorHeight) + 'px';
|
|
7596
|
+
moreIndicatorElement.style.width = this.cellWidth - 2 + 'px';
|
|
7597
|
+
this.renderElement(this.workCells[day + i], moreIndicatorElement);
|
|
7598
|
+
EventHandler.add(moreIndicatorElement, 'click', this.moreIndicatorClick, this);
|
|
7584
7599
|
}
|
|
7585
7600
|
}
|
|
7586
7601
|
}
|
|
@@ -7697,7 +7712,7 @@ class MonthEvent extends EventBase {
|
|
|
7697
7712
|
getMoreIndicatorElement(count, startDate, endDate) {
|
|
7698
7713
|
const moreIndicatorElement = createElement('div', {
|
|
7699
7714
|
className: MORE_INDICATOR_CLASS,
|
|
7700
|
-
innerHTML:
|
|
7715
|
+
innerHTML: this.getMoreIndicatorText(count),
|
|
7701
7716
|
attrs: {
|
|
7702
7717
|
'tabindex': '0',
|
|
7703
7718
|
'data-start-date': startDate.getTime().toString(),
|
|
@@ -7707,6 +7722,9 @@ class MonthEvent extends EventBase {
|
|
|
7707
7722
|
});
|
|
7708
7723
|
return moreIndicatorElement;
|
|
7709
7724
|
}
|
|
7725
|
+
getMoreIndicatorText(count) {
|
|
7726
|
+
return '+' + this.parent.globalize.formatNumber(count) + ' ' + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more'));
|
|
7727
|
+
}
|
|
7710
7728
|
removeHeightProperty(selector) {
|
|
7711
7729
|
const rows = [].slice.call(this.element.querySelectorAll('.' + selector + ' tbody tr'));
|
|
7712
7730
|
for (const row of rows) {
|
|
@@ -7986,7 +8004,8 @@ class TimelineEvent extends MonthEvent {
|
|
|
7986
8004
|
}
|
|
7987
8005
|
}
|
|
7988
8006
|
updateCellHeight(cell, height) {
|
|
7989
|
-
|
|
8007
|
+
const cellHeight = cell.style.height === '' ? this.cellHeight : parseInt(cell.style.height, 10);
|
|
8008
|
+
if (height > cellHeight) {
|
|
7990
8009
|
setStyleAttribute(cell, { 'height': height + 'px' });
|
|
7991
8010
|
if (this.parent.activeViewOptions.group.resources.length > 0) {
|
|
7992
8011
|
const resourceCell = this.parent.element.querySelector('.' + RESOURCE_COLUMN_TABLE_CLASS + ' ' + 'tbody td[data-group-index="' +
|
|
@@ -11730,7 +11749,8 @@ class EventWindow {
|
|
|
11730
11749
|
return labelText;
|
|
11731
11750
|
}
|
|
11732
11751
|
onChange(args) {
|
|
11733
|
-
const
|
|
11752
|
+
const targetSelector = `.${EVENT_WINDOW_ALL_DAY_CLASS},.${TIME_ZONE_CLASS},.${EVENT_WINDOW_REPEAT_CLASS}`;
|
|
11753
|
+
const target = closest(args.event.target, targetSelector);
|
|
11734
11754
|
if (target.classList.contains(EVENT_WINDOW_ALL_DAY_CLASS)) {
|
|
11735
11755
|
this.onAllDayChange(args.checked);
|
|
11736
11756
|
}
|
|
@@ -11894,7 +11914,8 @@ class EventWindow {
|
|
|
11894
11914
|
}
|
|
11895
11915
|
showDetails(eventData) {
|
|
11896
11916
|
const eventObj = extend({}, eventData, null, true);
|
|
11897
|
-
if (
|
|
11917
|
+
if ((!this.cellClickAction || this.cellClickAction && !isNullOrUndefined(this.parent.editorTemplate)) &&
|
|
11918
|
+
eventObj[this.fields.endTime].getHours() === 0 && eventObj[this.fields.endTime].getMinutes() === 0) {
|
|
11898
11919
|
this.trimAllDay(eventObj);
|
|
11899
11920
|
}
|
|
11900
11921
|
this.eventData = eventObj;
|
|
@@ -13182,7 +13203,8 @@ class Render {
|
|
|
13182
13203
|
this.parent.virtualScrollModule.destroy();
|
|
13183
13204
|
this.parent.virtualScrollModule = null;
|
|
13184
13205
|
}
|
|
13185
|
-
if (this.parent.currentView.indexOf('Timeline') !== -1 && this.parent.currentView.indexOf('Year') === -1
|
|
13206
|
+
if (this.parent.currentView.indexOf('Timeline') !== -1 && (this.parent.currentView.indexOf('Year') === -1 ||
|
|
13207
|
+
(this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.orientation === 'Vertical'))
|
|
13186
13208
|
&& this.parent.activeViewOptions.allowVirtualScrolling
|
|
13187
13209
|
&& this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
13188
13210
|
this.parent.virtualScrollModule = new VirtualScroll(this.parent);
|
|
@@ -15728,6 +15750,7 @@ let Schedule = class Schedule extends Component {
|
|
|
15728
15750
|
};
|
|
15729
15751
|
this.trigger(navigating, navArgs, (navigationArgs) => {
|
|
15730
15752
|
if (!navigationArgs.cancel) {
|
|
15753
|
+
this.uiStateValues.isInitial = ['TimelineMonth', 'TimelineYear', 'Year'].indexOf(view) > -1 ? true : this.uiStateValues.isInitial;
|
|
15731
15754
|
this.viewIndex = navigationArgs.viewIndex;
|
|
15732
15755
|
this.setProperties({ currentView: view }, true);
|
|
15733
15756
|
if (this.headerModule) {
|
|
@@ -16346,6 +16369,9 @@ let Schedule = class Schedule extends Component {
|
|
|
16346
16369
|
if (document.querySelectorAll(template).length) {
|
|
16347
16370
|
return compile(document.querySelector(template).innerHTML.trim());
|
|
16348
16371
|
}
|
|
16372
|
+
else {
|
|
16373
|
+
return compile(template);
|
|
16374
|
+
}
|
|
16349
16375
|
}
|
|
16350
16376
|
catch (error) {
|
|
16351
16377
|
return compile(template);
|
|
@@ -19151,7 +19177,9 @@ class YearEvent extends TimelineEvent {
|
|
|
19151
19177
|
this.eventHeight = getElementHeightFromClass(eventTable, APPOINTMENT_CLASS);
|
|
19152
19178
|
const wrapperCollection = [].slice.call(this.parent.element.querySelectorAll('.' + APPOINTMENT_CONTAINER_CLASS));
|
|
19153
19179
|
const resources = this.parent.uiStateValues.isGroupAdaptive ?
|
|
19154
|
-
[this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :
|
|
19180
|
+
[this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :
|
|
19181
|
+
this.parent.activeViewOptions.allowVirtualScrolling ? this.parent.resourceBase.renderedResources :
|
|
19182
|
+
this.parent.resourceBase.lastResourceLevel;
|
|
19155
19183
|
const months = this.getMonths();
|
|
19156
19184
|
if (this.parent.activeViewOptions.orientation === 'Horizontal') {
|
|
19157
19185
|
for (let month = 0; month < months.length; month++) {
|
|
@@ -22106,6 +22134,8 @@ class Month extends ViewBase {
|
|
|
22106
22134
|
this.parent.notify(virtualScroll, e);
|
|
22107
22135
|
this.scrollTopPanel(e.target);
|
|
22108
22136
|
this.scrollLeftPanel(e.target);
|
|
22137
|
+
this.parent.uiStateValues.top = e.target.scrollTop;
|
|
22138
|
+
this.parent.uiStateValues.left = e.target.scrollLeft;
|
|
22109
22139
|
this.setPersistence();
|
|
22110
22140
|
}
|
|
22111
22141
|
scrollLeftPanel(target) {
|
|
@@ -22138,26 +22168,41 @@ class Month extends ViewBase {
|
|
|
22138
22168
|
header.style[args.cssProperties.padding] = '';
|
|
22139
22169
|
}
|
|
22140
22170
|
this.setColWidth(content);
|
|
22141
|
-
if (args.scrollPosition) {
|
|
22171
|
+
if (args.scrollPosition || !args.isPreventScrollUpdate && this.parent.currentView === 'TimelineMonth') {
|
|
22172
|
+
const top = this.parent.currentView === 'TimelineMonth' ? this.parent.uiStateValues.top : args.scrollPosition.top;
|
|
22142
22173
|
if (leftPanel) {
|
|
22143
|
-
leftPanel.scrollTop =
|
|
22174
|
+
leftPanel.scrollTop = top;
|
|
22144
22175
|
}
|
|
22145
|
-
content.scrollTop =
|
|
22146
|
-
|
|
22147
|
-
|
|
22148
|
-
|
|
22149
|
-
const headerCell = this.element.querySelector('.' + HEADER_CELLS_CLASS + '[data-date="'
|
|
22150
|
-
+ this.parent.selectedDate.getTime().toString() + '"]');
|
|
22151
|
-
if (!isNullOrUndefined(headerCell)) {
|
|
22152
|
-
content.scrollLeft = !this.parent.enableRtl ?
|
|
22153
|
-
headerCell.offsetLeft : -(this.parent.getContentTable().offsetWidth - headerCell.offsetLeft - headerCell.offsetWidth);
|
|
22176
|
+
content.scrollTop = top;
|
|
22177
|
+
if (this.parent.uiStateValues.isInitial) {
|
|
22178
|
+
this.scrollToSelectedDate();
|
|
22179
|
+
this.parent.uiStateValues.isInitial = false;
|
|
22154
22180
|
}
|
|
22155
22181
|
else {
|
|
22156
|
-
content.scrollLeft =
|
|
22182
|
+
content.scrollLeft = this.parent.currentView === 'TimelineMonth' ? this.parent.uiStateValues.left :
|
|
22183
|
+
args.scrollPosition.left;
|
|
22157
22184
|
}
|
|
22158
22185
|
}
|
|
22186
|
+
else {
|
|
22187
|
+
this.scrollToSelectedDate();
|
|
22188
|
+
}
|
|
22159
22189
|
this.retainScrollPosition();
|
|
22160
22190
|
}
|
|
22191
|
+
scrollToSelectedDate() {
|
|
22192
|
+
const headerCell = this.element.querySelector('.' + HEADER_CELLS_CLASS + '[data-date="'
|
|
22193
|
+
+ this.parent.selectedDate.getTime().toString() + '"]');
|
|
22194
|
+
const content = this.getContentAreaElement();
|
|
22195
|
+
if (!isNullOrUndefined(headerCell)) {
|
|
22196
|
+
content.scrollLeft = !this.parent.enableRtl ?
|
|
22197
|
+
headerCell.offsetLeft : -(this.parent.getContentTable().offsetWidth - headerCell.offsetLeft - headerCell.offsetWidth);
|
|
22198
|
+
}
|
|
22199
|
+
else {
|
|
22200
|
+
content.scrollLeft = 0;
|
|
22201
|
+
}
|
|
22202
|
+
if (content.scrollLeft === 0 && this.parent.uiStateValues.isInitial) {
|
|
22203
|
+
this.parent.uiStateValues.left = 0;
|
|
22204
|
+
}
|
|
22205
|
+
}
|
|
22161
22206
|
setContentHeight(content, leftPanelElement, height) {
|
|
22162
22207
|
content.style.height = 'auto';
|
|
22163
22208
|
if (this.parent.currentView === 'Month') {
|
|
@@ -22712,6 +22757,9 @@ class Year extends ViewBase {
|
|
|
22712
22757
|
const viewTypeClass = this.parent.activeViewOptions.orientation === 'Horizontal' ? 'e-horizontal' : 'e-vertical';
|
|
22713
22758
|
addClass([this.element], [this.viewClass, viewTypeClass, className]);
|
|
22714
22759
|
this.renderPanel(className);
|
|
22760
|
+
if (this.parent.activeViewOptions.allowVirtualScrolling) {
|
|
22761
|
+
addClass([this.element], [VIRTUAL_SCROLL_CLASS]);
|
|
22762
|
+
}
|
|
22715
22763
|
const calendarTable = this.createTableLayout(OUTER_TABLE_CLASS);
|
|
22716
22764
|
this.element.appendChild(calendarTable);
|
|
22717
22765
|
this.element.querySelector('table').setAttribute('role', 'presentation');
|
|
@@ -22924,6 +22972,7 @@ class Year extends ViewBase {
|
|
|
22924
22972
|
onContentScroll(e) {
|
|
22925
22973
|
const target = e.target;
|
|
22926
22974
|
const headerWrapper = this.getDatesHeaderElement();
|
|
22975
|
+
this.parent.notify(virtualScroll, e);
|
|
22927
22976
|
if (headerWrapper) {
|
|
22928
22977
|
headerWrapper.firstElementChild.scrollLeft = target.scrollLeft;
|
|
22929
22978
|
}
|
|
@@ -22932,6 +22981,10 @@ class Year extends ViewBase {
|
|
|
22932
22981
|
if (scrollTopElement) {
|
|
22933
22982
|
scrollTopElement.scrollTop = target.scrollTop;
|
|
22934
22983
|
}
|
|
22984
|
+
if (!this.parent.isAdaptive) {
|
|
22985
|
+
this.parent.uiStateValues.top = e.target.scrollTop;
|
|
22986
|
+
}
|
|
22987
|
+
this.parent.uiStateValues.left = e.target.scrollLeft;
|
|
22935
22988
|
this.setPersistence();
|
|
22936
22989
|
}
|
|
22937
22990
|
onScrollUiUpdate(args) {
|
|
@@ -22962,6 +23015,18 @@ class Year extends ViewBase {
|
|
|
22962
23015
|
const isYScroll = contentWrapper.scrollWidth > contentWrapper.clientWidth;
|
|
22963
23016
|
leftPanelElement.style.height = formatUnit(height - (isYScroll ? 17 : 0));
|
|
22964
23017
|
}
|
|
23018
|
+
if (!args.isPreventScrollUpdate) {
|
|
23019
|
+
if (this.parent.uiStateValues.isInitial) {
|
|
23020
|
+
this.parent.uiStateValues.isInitial = false;
|
|
23021
|
+
}
|
|
23022
|
+
else {
|
|
23023
|
+
if (leftPanelElement) {
|
|
23024
|
+
leftPanelElement.scrollTop = this.parent.uiStateValues.top;
|
|
23025
|
+
}
|
|
23026
|
+
contentWrapper.scrollTop = this.parent.uiStateValues.top;
|
|
23027
|
+
contentWrapper.scrollLeft = this.parent.uiStateValues.left;
|
|
23028
|
+
}
|
|
23029
|
+
}
|
|
22965
23030
|
this.retainScrollPosition();
|
|
22966
23031
|
}
|
|
22967
23032
|
getStartDate() {
|
|
@@ -23064,7 +23129,7 @@ class AgendaBase extends ViewBase {
|
|
|
23064
23129
|
moduleName: 'agenda',
|
|
23065
23130
|
listClass: this.parent.activeView.viewClass,
|
|
23066
23131
|
itemClass: this.parent.activeView.viewClass,
|
|
23067
|
-
template:
|
|
23132
|
+
template: `<div class="${AGENDA_NO_EVENT_CLASS}">${this.parent.localeObj.getConstant('noEvents')}</div>`
|
|
23068
23133
|
});
|
|
23069
23134
|
}
|
|
23070
23135
|
else {
|
|
@@ -24608,7 +24673,7 @@ class TimelineYear extends Year {
|
|
|
24608
24673
|
!this.parent.uiStateValues.isGroupAdaptive) {
|
|
24609
24674
|
tdCollection.push(firstTd);
|
|
24610
24675
|
firstTd.appendChild(this.parent.resourceBase.createResourceColumn());
|
|
24611
|
-
this.rowCount = this.parent.resourceBase.
|
|
24676
|
+
this.rowCount = this.parent.resourceBase.renderedResources.length;
|
|
24612
24677
|
}
|
|
24613
24678
|
else {
|
|
24614
24679
|
tdCollection.push(firstTd);
|
|
@@ -24625,6 +24690,9 @@ class TimelineYear extends Year {
|
|
|
24625
24690
|
content.appendChild(contentTable);
|
|
24626
24691
|
const eventWrapper = createElement('div', { className: EVENT_TABLE_CLASS });
|
|
24627
24692
|
content.appendChild(eventWrapper);
|
|
24693
|
+
if (this.parent.virtualScrollModule) {
|
|
24694
|
+
this.parent.virtualScrollModule.renderVirtualTrack(content);
|
|
24695
|
+
}
|
|
24628
24696
|
const contentTBody = contentTable.querySelector('tbody');
|
|
24629
24697
|
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
24630
24698
|
if (this.parent.rowAutoHeight) {
|
|
@@ -24742,6 +24810,47 @@ class TimelineYear extends Year {
|
|
|
24742
24810
|
}
|
|
24743
24811
|
}
|
|
24744
24812
|
}
|
|
24813
|
+
getContentRows() {
|
|
24814
|
+
const tRow = [];
|
|
24815
|
+
const monthCells = this.getMonths();
|
|
24816
|
+
for (let row = 0; row < this.parent.resourceBase.renderedResources.length; row++) {
|
|
24817
|
+
const tr = createElement('tr', { attrs: { 'role': 'row' } });
|
|
24818
|
+
tRow.push(tr);
|
|
24819
|
+
let resData;
|
|
24820
|
+
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
24821
|
+
resData = this.parent.resourceBase.renderedResources[row];
|
|
24822
|
+
}
|
|
24823
|
+
let monthDate = new Date(this.parent.selectedDate.getFullYear(), monthCells[row], 1);
|
|
24824
|
+
let date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
|
|
24825
|
+
for (let month = 0; month < this.columnCount; month++) {
|
|
24826
|
+
let classList$$1 = [];
|
|
24827
|
+
const groupIndex = resData.groupIndex;
|
|
24828
|
+
classList$$1 = classList$$1.concat(resData.className);
|
|
24829
|
+
if (classList$$1.indexOf(RESOURCE_PARENT_CLASS) > -1) {
|
|
24830
|
+
classList$$1.push(RESOURCE_GROUP_CELLS_CLASS);
|
|
24831
|
+
}
|
|
24832
|
+
else {
|
|
24833
|
+
classList$$1.push(WORKDAY_CLASS);
|
|
24834
|
+
}
|
|
24835
|
+
monthDate = new Date(this.parent.selectedDate.getFullYear(), monthCells[month], 1);
|
|
24836
|
+
date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
|
|
24837
|
+
const tdELe = createElement('td', {
|
|
24838
|
+
className: WORK_CELLS_CLASS,
|
|
24839
|
+
attrs: {
|
|
24840
|
+
'role': 'gridcell', 'aria-selected': 'false',
|
|
24841
|
+
'data-date': date.getTime().toString()
|
|
24842
|
+
}
|
|
24843
|
+
});
|
|
24844
|
+
addClass([tdELe], classList$$1);
|
|
24845
|
+
tdELe.setAttribute('data-group-index', groupIndex.toString());
|
|
24846
|
+
this.renderCellTemplate({ date: date, type: 'resourceGroupCells', groupIndex: groupIndex }, tdELe);
|
|
24847
|
+
this.wireEvents(tdELe, 'cell');
|
|
24848
|
+
this.parent.trigger(renderCell, { elementType: 'resourceGroupCells', element: tdELe, date: date });
|
|
24849
|
+
tr.appendChild(tdELe);
|
|
24850
|
+
}
|
|
24851
|
+
}
|
|
24852
|
+
return tRow;
|
|
24853
|
+
}
|
|
24745
24854
|
renderResourceContent(wrapper, monthBody, contentBody) {
|
|
24746
24855
|
const months = this.getMonths();
|
|
24747
24856
|
for (let row = 0; row < this.rowCount; row++) {
|
|
@@ -24749,8 +24858,8 @@ class TimelineYear extends Year {
|
|
|
24749
24858
|
const tr = createElement('tr', { attrs: { 'role': 'row' } });
|
|
24750
24859
|
contentBody.appendChild(tr);
|
|
24751
24860
|
let resData;
|
|
24752
|
-
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
24753
|
-
resData = this.parent.resourceBase.
|
|
24861
|
+
if (this.parent.activeViewOptions.orientation === 'Vertical' && this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
24862
|
+
resData = this.parent.resourceBase.renderedResources[row];
|
|
24754
24863
|
}
|
|
24755
24864
|
let monthDate = new Date(this.parent.selectedDate.getFullYear(), months[row], 1);
|
|
24756
24865
|
let date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
|
|
@@ -24771,8 +24880,9 @@ class TimelineYear extends Year {
|
|
|
24771
24880
|
}
|
|
24772
24881
|
for (let month = 0; month < this.columnCount; month++) {
|
|
24773
24882
|
let classList$$1 = [];
|
|
24774
|
-
let groupIndex
|
|
24883
|
+
let groupIndex;
|
|
24775
24884
|
if (this.parent.activeViewOptions.orientation === 'Vertical') {
|
|
24885
|
+
groupIndex = resData.groupIndex;
|
|
24776
24886
|
classList$$1 = classList$$1.concat(resData.className);
|
|
24777
24887
|
if (classList$$1.indexOf(RESOURCE_PARENT_CLASS) > -1) {
|
|
24778
24888
|
classList$$1.push(RESOURCE_GROUP_CELLS_CLASS);
|