@syncfusion/ej2-schedule 20.2.50 → 20.3.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 +14 -0
- package/dist/ej2-schedule.min.js +10 -0
- 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 +600 -215
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +618 -227
- 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-model.d.ts +1 -1
- package/src/recurrence-editor/recurrence-editor.d.ts +1 -0
- package/src/recurrence-editor/recurrence-editor.js +37 -10
- package/src/schedule/actions/action-base.js +5 -3
- package/src/schedule/actions/crud.js +1 -2
- package/src/schedule/actions/drag.js +17 -14
- package/src/schedule/actions/resize.js +1 -3
- package/src/schedule/actions/touch.js +2 -2
- package/src/schedule/actions/virtual-scroll.d.ts +12 -3
- package/src/schedule/actions/virtual-scroll.js +206 -54
- package/src/schedule/base/interface.d.ts +2 -1
- package/src/schedule/base/schedule-model.d.ts +7 -0
- package/src/schedule/base/schedule.d.ts +13 -0
- package/src/schedule/base/schedule.js +13 -4
- package/src/schedule/base/util.d.ts +15 -0
- package/src/schedule/base/util.js +29 -3
- package/src/schedule/event-renderer/agenda-base.js +3 -5
- package/src/schedule/event-renderer/event-base.d.ts +2 -1
- package/src/schedule/event-renderer/event-base.js +30 -3
- package/src/schedule/event-renderer/month.d.ts +1 -0
- package/src/schedule/event-renderer/month.js +8 -6
- package/src/schedule/event-renderer/vertical-view.d.ts +3 -0
- package/src/schedule/event-renderer/vertical-view.js +32 -12
- package/src/schedule/event-renderer/year.js +1 -1
- package/src/schedule/popups/event-window.d.ts +1 -0
- package/src/schedule/popups/event-window.js +35 -7
- package/src/schedule/popups/quick-popups.js +18 -5
- package/src/schedule/renderer/agenda.js +1 -0
- package/src/schedule/renderer/month.js +25 -6
- package/src/schedule/renderer/renderer.js +8 -2
- package/src/schedule/renderer/timeline-view.js +2 -2
- package/src/schedule/renderer/timeline-year.d.ts +1 -0
- package/src/schedule/renderer/timeline-year.js +20 -12
- package/src/schedule/renderer/vertical-view.d.ts +1 -1
- package/src/schedule/renderer/vertical-view.js +48 -44
- package/src/schedule/renderer/view-base.d.ts +2 -0
- package/src/schedule/renderer/view-base.js +31 -1
- package/src/schedule/renderer/year.d.ts +1 -1
- package/src/schedule/renderer/year.js +49 -30
- package/styles/bootstrap-dark.css +50 -33
- package/styles/bootstrap.css +50 -33
- package/styles/bootstrap4.css +50 -33
- package/styles/bootstrap5-dark.css +51 -38
- package/styles/bootstrap5.css +51 -38
- package/styles/fabric-dark.css +50 -33
- package/styles/fabric.css +50 -33
- package/styles/fluent-dark.css +52 -39
- package/styles/fluent.css +52 -39
- package/styles/highcontrast-light.css +50 -33
- package/styles/highcontrast.css +50 -33
- package/styles/material-dark.css +50 -33
- package/styles/material.css +50 -33
- package/styles/recurrence-editor/_all.scss +1 -1
- package/styles/recurrence-editor/_bootstrap-dark-definition.scss +1 -3
- package/styles/recurrence-editor/_bootstrap-definition.scss +1 -3
- package/styles/recurrence-editor/_bootstrap4-definition.scss +1 -3
- package/styles/recurrence-editor/_bootstrap5-definition.scss +1 -3
- package/styles/recurrence-editor/_fabric-dark-definition.scss +1 -4
- package/styles/recurrence-editor/_fabric-definition.scss +1 -3
- package/styles/recurrence-editor/_fluent-definition.scss +1 -3
- package/styles/recurrence-editor/_fusionnew-definition.scss +1 -3
- package/styles/recurrence-editor/_highcontrast-definition.scss +1 -3
- package/styles/recurrence-editor/_highcontrast-light-definition.scss +1 -3
- package/styles/recurrence-editor/_layout.scss +28 -38
- package/styles/recurrence-editor/_material-dark-definition.scss +1 -3
- package/styles/recurrence-editor/_material-definition.scss +1 -3
- package/styles/recurrence-editor/_material3-definition.scss +1 -3
- package/styles/recurrence-editor/_tailwind-definition.scss +1 -3
- package/styles/recurrence-editor/bootstrap-dark.css +21 -27
- package/styles/recurrence-editor/bootstrap.css +21 -27
- package/styles/recurrence-editor/bootstrap4.css +21 -27
- package/styles/recurrence-editor/bootstrap5-dark.css +21 -27
- package/styles/recurrence-editor/bootstrap5.css +21 -27
- package/styles/recurrence-editor/fabric-dark.css +21 -27
- package/styles/recurrence-editor/fabric.css +21 -27
- package/styles/recurrence-editor/fluent-dark.css +21 -27
- package/styles/recurrence-editor/fluent.css +21 -27
- package/styles/recurrence-editor/highcontrast-light.css +21 -27
- package/styles/recurrence-editor/highcontrast.css +21 -27
- package/styles/recurrence-editor/material-dark.css +21 -27
- package/styles/recurrence-editor/material.css +21 -27
- package/styles/recurrence-editor/tailwind-dark.css +21 -27
- package/styles/recurrence-editor/tailwind.css +21 -27
- package/styles/schedule/_all.scss +1 -1
- package/styles/schedule/_bootstrap4-definition.scss +0 -1
- package/styles/schedule/_bootstrap5-definition.scss +1 -1
- package/styles/schedule/_fusionnew-definition.scss +1 -1
- package/styles/schedule/_layout.scss +57 -32
- package/styles/schedule/_material3-definition.scss +1 -1
- package/styles/schedule/_theme.scss +12 -10
- package/styles/schedule/bootstrap-dark.css +29 -6
- package/styles/schedule/bootstrap.css +29 -6
- package/styles/schedule/bootstrap4.css +29 -6
- package/styles/schedule/bootstrap5-dark.css +30 -11
- package/styles/schedule/bootstrap5.css +30 -11
- package/styles/schedule/fabric-dark.css +29 -6
- package/styles/schedule/fabric.css +29 -6
- package/styles/schedule/fluent-dark.css +31 -12
- package/styles/schedule/fluent.css +31 -12
- package/styles/schedule/highcontrast-light.css +29 -6
- package/styles/schedule/highcontrast.css +29 -6
- package/styles/schedule/icons/_bootstrap5.scss +0 -1
- package/styles/schedule/icons/_fluent.scss +0 -1
- package/styles/schedule/icons/_fusionnew.scss +0 -1
- package/styles/schedule/icons/_material3.scss +0 -1
- package/styles/schedule/icons/_tailwind.scss +0 -1
- package/styles/schedule/material-dark.css +29 -6
- package/styles/schedule/material.css +29 -6
- package/styles/schedule/tailwind-dark.css +29 -6
- package/styles/schedule/tailwind.css +29 -6
- package/styles/tailwind-dark.css +50 -33
- package/styles/tailwind.css +50 -33
|
@@ -12,7 +12,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
12
12
|
};
|
|
13
13
|
})();
|
|
14
14
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
15
|
-
import { append, addClass, createElement } from '@syncfusion/ej2-base';
|
|
15
|
+
import { append, addClass, createElement, EventHandler } from '@syncfusion/ej2-base';
|
|
16
16
|
import { Year } from './year';
|
|
17
17
|
import * as event from '../base/constant';
|
|
18
18
|
import * as cls from '../base/css-constant';
|
|
@@ -163,6 +163,7 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
163
163
|
var content = createElement('div', { className: cls.CONTENT_WRAP_CLASS });
|
|
164
164
|
lastTd.appendChild(content);
|
|
165
165
|
var contentTable = this.createTableLayout(cls.CONTENT_TABLE_CLASS);
|
|
166
|
+
this.setAriaAttributes(contentTable);
|
|
166
167
|
content.appendChild(contentTable);
|
|
167
168
|
var eventWrapper = createElement('div', { className: cls.EVENT_TABLE_CLASS });
|
|
168
169
|
content.appendChild(eventWrapper);
|
|
@@ -196,12 +197,12 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
196
197
|
var monthDate = new Date(this.parent.selectedDate.getFullYear(), months[month], 1);
|
|
197
198
|
var monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
|
|
198
199
|
var monthEnd = this.parent.calendarUtil.getMonthEndDate(new Date(monthDate.getTime()));
|
|
199
|
-
var tr = createElement('tr'
|
|
200
|
+
var tr = createElement('tr');
|
|
200
201
|
var monthTr = tr.cloneNode();
|
|
201
202
|
monthBody.appendChild(monthTr);
|
|
202
203
|
var contentTr = tr.cloneNode();
|
|
203
204
|
contentBody.appendChild(contentTr);
|
|
204
|
-
var monthTd = createElement('td', { className: cls.MONTH_HEADER_CLASS
|
|
205
|
+
var monthTd = createElement('td', { className: cls.MONTH_HEADER_CLASS });
|
|
205
206
|
if (this.parent.activeViewOptions.orientation === 'Horizontal') {
|
|
206
207
|
if (this.parent.monthHeaderTemplate) {
|
|
207
208
|
append(this.renderDayMonthHeaderTemplate(monthStart, month, 'monthHeaderTemplate'), monthTd);
|
|
@@ -236,7 +237,7 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
236
237
|
isDateAvail = column >= monthStart.getDay() && date.getTime() < monthEnd.getTime();
|
|
237
238
|
}
|
|
238
239
|
var td = createElement('td', {
|
|
239
|
-
className: cls.WORK_CELLS_CLASS, attrs: { '
|
|
240
|
+
className: cls.WORK_CELLS_CLASS, attrs: { 'aria-selected': 'false' }
|
|
240
241
|
});
|
|
241
242
|
contentTr.appendChild(td);
|
|
242
243
|
var dateHeader = createElement('div', {
|
|
@@ -277,7 +278,7 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
277
278
|
td.appendChild(dateHeader);
|
|
278
279
|
if (isDateAvail) {
|
|
279
280
|
td.setAttribute('data-date', date.getTime().toString());
|
|
280
|
-
this.wireEvents(td
|
|
281
|
+
this.wireEvents(td);
|
|
281
282
|
}
|
|
282
283
|
this.renderCellTemplate({ date: date, type: 'workCells' }, td);
|
|
283
284
|
this.parent.trigger(event.renderCell, { elementType: 'workCells', element: td, date: date });
|
|
@@ -293,7 +294,7 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
293
294
|
var tRow = [];
|
|
294
295
|
var monthCells = this.getMonths();
|
|
295
296
|
for (var row = 0; row < this.parent.resourceBase.renderedResources.length; row++) {
|
|
296
|
-
var tr = createElement('tr'
|
|
297
|
+
var tr = createElement('tr');
|
|
297
298
|
tRow.push(tr);
|
|
298
299
|
var resData = void 0;
|
|
299
300
|
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
@@ -316,14 +317,14 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
316
317
|
var tdELe = createElement('td', {
|
|
317
318
|
className: cls.WORK_CELLS_CLASS,
|
|
318
319
|
attrs: {
|
|
319
|
-
'
|
|
320
|
+
'aria-selected': 'false',
|
|
320
321
|
'data-date': date.getTime().toString()
|
|
321
322
|
}
|
|
322
323
|
});
|
|
323
324
|
addClass([tdELe], classList);
|
|
324
325
|
tdELe.setAttribute('data-group-index', groupIndex.toString());
|
|
325
326
|
this.renderCellTemplate({ date: date, type: 'resourceGroupCells', groupIndex: groupIndex }, tdELe);
|
|
326
|
-
this.wireEvents(tdELe
|
|
327
|
+
this.wireEvents(tdELe);
|
|
327
328
|
this.parent.trigger(event.renderCell, { elementType: 'resourceGroupCells', element: tdELe, date: date });
|
|
328
329
|
tr.appendChild(tdELe);
|
|
329
330
|
}
|
|
@@ -334,7 +335,7 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
334
335
|
var months = this.getMonths();
|
|
335
336
|
for (var row = 0; row < this.rowCount; row++) {
|
|
336
337
|
wrapper.appendChild(createElement('div', { className: cls.APPOINTMENT_CONTAINER_CLASS }));
|
|
337
|
-
var tr = createElement('tr'
|
|
338
|
+
var tr = createElement('tr');
|
|
338
339
|
contentBody.appendChild(tr);
|
|
339
340
|
var resData = void 0;
|
|
340
341
|
if (this.parent.activeViewOptions.orientation === 'Vertical' && this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
@@ -347,7 +348,7 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
347
348
|
monthBody.appendChild(monthTr);
|
|
348
349
|
var monthTd = createElement('td', {
|
|
349
350
|
className: cls.MONTH_HEADER_CLASS,
|
|
350
|
-
attrs: { '
|
|
351
|
+
attrs: { 'data-date': date.getTime().toString() }
|
|
351
352
|
});
|
|
352
353
|
if (this.parent.monthHeaderTemplate) {
|
|
353
354
|
append(this.renderDayMonthHeaderTemplate(monthDate, row, 'monthHeaderTemplate'), monthTd);
|
|
@@ -379,14 +380,14 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
379
380
|
var td = createElement('td', {
|
|
380
381
|
className: cls.WORK_CELLS_CLASS,
|
|
381
382
|
attrs: {
|
|
382
|
-
'
|
|
383
|
+
'aria-selected': 'false',
|
|
383
384
|
'data-date': date.getTime().toString()
|
|
384
385
|
}
|
|
385
386
|
});
|
|
386
387
|
addClass([td], classList);
|
|
387
388
|
td.setAttribute('data-group-index', groupIndex.toString());
|
|
388
389
|
this.renderCellTemplate({ date: date, type: 'resourceGroupCells', groupIndex: groupIndex }, td);
|
|
389
|
-
this.wireEvents(td
|
|
390
|
+
this.wireEvents(td);
|
|
390
391
|
tr.appendChild(td);
|
|
391
392
|
this.parent.trigger(event.renderCell, { elementType: 'resourceGroupCells', element: td, date: date });
|
|
392
393
|
}
|
|
@@ -451,6 +452,13 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
451
452
|
return this.getContentAreaElement();
|
|
452
453
|
}
|
|
453
454
|
};
|
|
455
|
+
TimelineYear.prototype.wireEvents = function (element) {
|
|
456
|
+
EventHandler.add(element, 'mousedown', this.parent.workCellAction.cellMouseDown, this.parent.workCellAction);
|
|
457
|
+
EventHandler.add(element, 'click', this.parent.workCellAction.cellClick, this.parent.workCellAction);
|
|
458
|
+
if (!this.parent.isAdaptive) {
|
|
459
|
+
EventHandler.add(element, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);
|
|
460
|
+
}
|
|
461
|
+
};
|
|
454
462
|
return TimelineYear;
|
|
455
463
|
}(Year));
|
|
456
464
|
export { TimelineYear };
|
|
@@ -49,10 +49,10 @@ export declare class VerticalView extends ViewBase implements IRenderer {
|
|
|
49
49
|
private renderTimeCells;
|
|
50
50
|
renderContentArea(): Element;
|
|
51
51
|
renderContentTable(table: Element): void;
|
|
52
|
+
getContentRows(): Element[];
|
|
52
53
|
createContentTd(tdData: TdData, r: TimeSlotData, td: Element): Element;
|
|
53
54
|
getContentTdClass(r: TimeSlotData): string[];
|
|
54
55
|
private renderContentTableHeader;
|
|
55
|
-
private createEventWrapper;
|
|
56
56
|
getScrollableElement(): Element;
|
|
57
57
|
getLeftPanelElement(): HTMLElement;
|
|
58
58
|
getEndDateFromStartDate(start: Date): Date;
|
|
@@ -259,15 +259,27 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
259
259
|
if (!isNullOrUndefined(this.parent.resourceBase) && (this.parent.activeViewOptions.group.resources.length > 0) &&
|
|
260
260
|
!this.parent.uiStateValues.isGroupAdaptive) {
|
|
261
261
|
var count = 0;
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
var
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
(
|
|
268
|
-
|
|
262
|
+
if (this.parent.virtualScrollModule && this.parent.activeViewOptions.allowVirtualScrolling &&
|
|
263
|
+
this.parent.activeViewOptions.group.byDate) {
|
|
264
|
+
for (var _i = 0, _a = this.parent.resourceBase.expandedResources; _i < _a.length; _i++) {
|
|
265
|
+
var resource = _a[_i];
|
|
266
|
+
if (util.resetTime(resource.date).getTime() === util.resetTime(this.parent.getCurrentTime()).getTime()) {
|
|
267
|
+
currentDateIndex.push(count);
|
|
268
|
+
}
|
|
269
|
+
count += 1;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
for (var _b = 0, _c = this.parent.resourceBase.renderedResources; _b < _c.length; _b++) {
|
|
274
|
+
var resource = _c[_b];
|
|
275
|
+
var index = this.parent.getIndexOfDate(resource.renderDates, util.resetTime(this.parent.getCurrentTime()));
|
|
276
|
+
if (index >= 0) {
|
|
277
|
+
var resIndex = this.parent.activeViewOptions.group.byDate ?
|
|
278
|
+
(this.parent.resourceBase.lastResourceLevel.length * index) + count : count + index;
|
|
279
|
+
currentDateIndex.push(resIndex);
|
|
280
|
+
}
|
|
281
|
+
count += this.parent.activeViewOptions.group.byDate ? 1 : resource.renderDates.length;
|
|
269
282
|
}
|
|
270
|
-
count += this.parent.activeViewOptions.group.byDate ? 1 : resource.renderDates.length;
|
|
271
283
|
}
|
|
272
284
|
}
|
|
273
285
|
else {
|
|
@@ -413,7 +425,7 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
413
425
|
if (!this.parent.activeViewOptions.timeScale.enable) {
|
|
414
426
|
addClass([this.element], [cls.TIMESCALE_DISABLE, this.viewClass]);
|
|
415
427
|
}
|
|
416
|
-
if (this.parent.activeViewOptions.allowVirtualScrolling) {
|
|
428
|
+
if (this.parent.activeViewOptions.allowVirtualScrolling && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
417
429
|
clsList.push(cls.VIRTUAL_SCROLL_CLASS);
|
|
418
430
|
}
|
|
419
431
|
if (this.parent.rowAutoHeight && this.parent.eventSettings.ignoreWhitespace) {
|
|
@@ -444,6 +456,9 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
444
456
|
prepend([tr], this.element.querySelector('tbody'));
|
|
445
457
|
};
|
|
446
458
|
VerticalView.prototype.renderContent = function () {
|
|
459
|
+
if (this.parent.activeViewOptions.group.resources.length > 0) {
|
|
460
|
+
this.parent.resourceBase.renderedResources = extend([], this.parent.resourceBase.lastResourceLevel, null, true);
|
|
461
|
+
}
|
|
447
462
|
var tr = createElement('tr');
|
|
448
463
|
var workTd = createElement('td');
|
|
449
464
|
if (this.parent.isAdaptive) {
|
|
@@ -459,13 +474,22 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
459
474
|
tr.appendChild(workTd);
|
|
460
475
|
}
|
|
461
476
|
else {
|
|
462
|
-
|
|
477
|
+
var levels = this.colLevels.slice(0);
|
|
478
|
+
if (this.parent.virtualScrollModule) {
|
|
479
|
+
this.resetColLevels();
|
|
480
|
+
}
|
|
481
|
+
var wrap = this.renderContentArea();
|
|
482
|
+
workTd.appendChild(wrap);
|
|
463
483
|
if (this.parent.activeViewOptions.timeScale.enable) {
|
|
464
484
|
var timesTd = createElement('td');
|
|
465
485
|
timesTd.appendChild(this.renderTimeCells());
|
|
466
486
|
tr.appendChild(timesTd);
|
|
467
487
|
}
|
|
468
488
|
tr.appendChild(workTd);
|
|
489
|
+
if (this.parent.virtualScrollModule) {
|
|
490
|
+
this.colLevels = levels;
|
|
491
|
+
this.parent.virtualScrollModule.renderVirtualTrack(wrap);
|
|
492
|
+
}
|
|
469
493
|
}
|
|
470
494
|
this.element.querySelector('tbody').appendChild(tr);
|
|
471
495
|
};
|
|
@@ -537,7 +561,6 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
537
561
|
td.className = [cls.ALLDAY_CELLS_CLASS];
|
|
538
562
|
td.type = 'alldayCells';
|
|
539
563
|
var ntd = this.createTd(td);
|
|
540
|
-
ntd.setAttribute('role', 'gridcell');
|
|
541
564
|
ntd.setAttribute('data-date', td.date.getTime().toString());
|
|
542
565
|
if (!isNullOrUndefined(td.groupIndex)) {
|
|
543
566
|
ntd.setAttribute('data-group-index', '' + td.groupIndex);
|
|
@@ -550,7 +573,7 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
550
573
|
}
|
|
551
574
|
table.querySelector('tbody').appendChild(ntr);
|
|
552
575
|
var thead = createElement('thead');
|
|
553
|
-
thead.appendChild(this.createEventWrapper('allDay'));
|
|
576
|
+
thead.appendChild(this.parent.eventBase.createEventWrapper('allDay'));
|
|
554
577
|
prepend([thead], table);
|
|
555
578
|
};
|
|
556
579
|
VerticalView.prototype.createTd = function (td) {
|
|
@@ -570,7 +593,6 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
570
593
|
}
|
|
571
594
|
if (td.type === 'dateHeader' && td.className.indexOf(cls.HEADER_CELLS_CLASS) >= 0) {
|
|
572
595
|
tdEle.setAttribute('data-date', td.date.getTime().toString());
|
|
573
|
-
tdEle.setAttribute('role', 'gridcell');
|
|
574
596
|
if (!isNullOrUndefined(td.groupIndex)) {
|
|
575
597
|
tdEle.setAttribute('data-group-index', '' + td.groupIndex);
|
|
576
598
|
}
|
|
@@ -611,6 +633,7 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
611
633
|
VerticalView.prototype.renderContentArea = function () {
|
|
612
634
|
var wrap = createElement('div', { className: cls.CONTENT_WRAP_CLASS });
|
|
613
635
|
var tbl = this.createTableLayout(cls.CONTENT_TABLE_CLASS);
|
|
636
|
+
this.setAriaAttributes(tbl);
|
|
614
637
|
this.addAutoHeightClass(tbl);
|
|
615
638
|
this.renderContentTable(tbl);
|
|
616
639
|
this.createColGroup(tbl, this.colLevels.slice(-1)[0]);
|
|
@@ -621,10 +644,15 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
621
644
|
return wrap;
|
|
622
645
|
};
|
|
623
646
|
VerticalView.prototype.renderContentTable = function (table) {
|
|
647
|
+
var tBody = table.querySelector('tbody');
|
|
648
|
+
append(this.getContentRows(), tBody);
|
|
649
|
+
this.renderContentTableHeader(table);
|
|
650
|
+
};
|
|
651
|
+
VerticalView.prototype.getContentRows = function () {
|
|
624
652
|
var _this = this;
|
|
625
|
-
var
|
|
626
|
-
var
|
|
627
|
-
var
|
|
653
|
+
var rows = [];
|
|
654
|
+
var tr = createElement('tr');
|
|
655
|
+
var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
|
|
628
656
|
var handler = function (r) {
|
|
629
657
|
var ntr = tr.cloneNode();
|
|
630
658
|
for (var _i = 0, _a = _this.colLevels[_this.colLevels.length - 1]; _i < _a.length; _i++) {
|
|
@@ -632,11 +660,11 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
632
660
|
var ntd = _this.createContentTd(tdData, r, td);
|
|
633
661
|
ntr.appendChild(ntd);
|
|
634
662
|
}
|
|
635
|
-
|
|
663
|
+
rows.push(ntr);
|
|
636
664
|
return r;
|
|
637
665
|
};
|
|
638
666
|
this.getTimeSlotRows(handler);
|
|
639
|
-
|
|
667
|
+
return rows;
|
|
640
668
|
};
|
|
641
669
|
VerticalView.prototype.createContentTd = function (tdData, r, td) {
|
|
642
670
|
var ntd = td.cloneNode();
|
|
@@ -683,36 +711,12 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
683
711
|
};
|
|
684
712
|
VerticalView.prototype.renderContentTableHeader = function (table) {
|
|
685
713
|
var thead = createElement('thead');
|
|
686
|
-
thead.appendChild(this.createEventWrapper());
|
|
714
|
+
thead.appendChild(this.parent.eventBase.createEventWrapper());
|
|
687
715
|
if (this.parent.activeViewOptions.timeScale.enable) {
|
|
688
|
-
thead.appendChild(this.createEventWrapper('timeIndicator'));
|
|
716
|
+
thead.appendChild(this.parent.eventBase.createEventWrapper('timeIndicator'));
|
|
689
717
|
}
|
|
690
718
|
prepend([thead], table);
|
|
691
719
|
};
|
|
692
|
-
VerticalView.prototype.createEventWrapper = function (type) {
|
|
693
|
-
if (type === void 0) { type = ''; }
|
|
694
|
-
var tr = createElement('tr');
|
|
695
|
-
var levels = this.colLevels.slice(-1)[0];
|
|
696
|
-
for (var i = 0, len = levels.length; i < len; i++) {
|
|
697
|
-
var col = levels[i];
|
|
698
|
-
var appointmentWrap = createElement('td', {
|
|
699
|
-
className: (type === 'allDay') ? cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS : (type === 'timeIndicator') ?
|
|
700
|
-
cls.TIMELINE_WRAPPER_CLASS : cls.DAY_WRAPPER_CLASS, attrs: { 'data-date': col.date.getTime().toString() }
|
|
701
|
-
});
|
|
702
|
-
if (!isNullOrUndefined(col.groupIndex)) {
|
|
703
|
-
appointmentWrap.setAttribute('data-group-index', col.groupIndex.toString());
|
|
704
|
-
}
|
|
705
|
-
if (type === '') {
|
|
706
|
-
var innerWrapper = createElement('div', {
|
|
707
|
-
id: cls.APPOINTMENT_WRAPPER_CLASS + '-' + i.toString(),
|
|
708
|
-
className: cls.APPOINTMENT_WRAPPER_CLASS
|
|
709
|
-
});
|
|
710
|
-
appointmentWrap.appendChild(innerWrapper);
|
|
711
|
-
}
|
|
712
|
-
tr.appendChild(appointmentWrap);
|
|
713
|
-
}
|
|
714
|
-
return tr;
|
|
715
|
-
};
|
|
716
720
|
VerticalView.prototype.getScrollableElement = function () {
|
|
717
721
|
if (this.parent.isAdaptive && !this.isTimelineView()) {
|
|
718
722
|
return this.element.querySelector('.' + cls.SCROLL_CONTAINER_CLASS);
|
|
@@ -27,6 +27,7 @@ export declare class ViewBase {
|
|
|
27
27
|
getEventRows(trCount: number): Element[];
|
|
28
28
|
collapseRows(wrap: Element): void;
|
|
29
29
|
createTableLayout(className?: string): Element;
|
|
30
|
+
setAriaAttributes(table: Element): void;
|
|
30
31
|
createColGroup(table: Element, lastRow: TdData[]): void;
|
|
31
32
|
getScrollXIndent(content: HTMLElement): number;
|
|
32
33
|
scrollTopPanel(target: HTMLElement): void;
|
|
@@ -69,5 +70,6 @@ export declare class ViewBase {
|
|
|
69
70
|
getViewStartDate(): Date;
|
|
70
71
|
getViewEndDate(): Date;
|
|
71
72
|
getAdjustedDate(startTime: Date): Date;
|
|
73
|
+
resetColLevels(): void;
|
|
72
74
|
destroy(): void;
|
|
73
75
|
}
|
|
@@ -75,11 +75,15 @@ var ViewBase = /** @class */ (function () {
|
|
|
75
75
|
};
|
|
76
76
|
ViewBase.prototype.createTableLayout = function (className) {
|
|
77
77
|
var clsName = className || '';
|
|
78
|
-
var table = createElement('table', { className: cls.SCHEDULE_TABLE_CLASS + ' ' + clsName
|
|
78
|
+
var table = createElement('table', { className: cls.SCHEDULE_TABLE_CLASS + ' ' + clsName });
|
|
79
79
|
var tbody = createElement('tbody');
|
|
80
80
|
table.appendChild(tbody);
|
|
81
81
|
return table;
|
|
82
82
|
};
|
|
83
|
+
ViewBase.prototype.setAriaAttributes = function (table) {
|
|
84
|
+
table.setAttribute('role', 'grid');
|
|
85
|
+
table.setAttribute('aria-label', this.getLabelText(this.parent.currentView));
|
|
86
|
+
};
|
|
83
87
|
ViewBase.prototype.createColGroup = function (table, lastRow) {
|
|
84
88
|
var length = lastRow.length;
|
|
85
89
|
if (lastRow[0] && lastRow[0].colSpan) {
|
|
@@ -544,6 +548,32 @@ var ViewBase = /** @class */ (function () {
|
|
|
544
548
|
}
|
|
545
549
|
return null;
|
|
546
550
|
};
|
|
551
|
+
ViewBase.prototype.resetColLevels = function () {
|
|
552
|
+
this.parent.resourceBase.expandedResources = [];
|
|
553
|
+
var renderedCount = this.parent.virtualScrollModule.getRenderedCount();
|
|
554
|
+
var lastLevel = this.parent.activeViewOptions.group.byDate ? this.colLevels[0] :
|
|
555
|
+
this.parent.resourceBase.renderedResources;
|
|
556
|
+
var index = 0;
|
|
557
|
+
for (var i = 0; i < lastLevel.length; i++) {
|
|
558
|
+
if (index >= renderedCount) {
|
|
559
|
+
break;
|
|
560
|
+
}
|
|
561
|
+
index += lastLevel[i].colSpan;
|
|
562
|
+
this.parent.resourceBase.expandedResources.push(lastLevel[i]);
|
|
563
|
+
}
|
|
564
|
+
if (this.parent.activeViewOptions.group.byDate) {
|
|
565
|
+
this.colLevels[0] = this.parent.resourceBase.expandedResources;
|
|
566
|
+
this.parent.virtualScrollModule.setRenderedDates(this.parent.resourceBase.expandedResources);
|
|
567
|
+
}
|
|
568
|
+
else {
|
|
569
|
+
this.colLevels[this.colLevels.length - 2] = this.parent.resourceBase.expandedResources;
|
|
570
|
+
this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources;
|
|
571
|
+
}
|
|
572
|
+
if (this.parent.currentView !== 'Month') {
|
|
573
|
+
this.colLevels[this.colLevels.length - 1] = this.colLevels[this.colLevels.length - 1].slice(0, index);
|
|
574
|
+
this.parent.resourceBase.expandedResources = this.colLevels[this.colLevels.length - 1];
|
|
575
|
+
}
|
|
576
|
+
};
|
|
547
577
|
ViewBase.prototype.destroy = function () {
|
|
548
578
|
if (this.element && this.element.parentNode) {
|
|
549
579
|
remove(this.element);
|
|
@@ -26,6 +26,7 @@ export declare class Year extends ViewBase implements IRenderer {
|
|
|
26
26
|
getRowColumnCount(type: string): number;
|
|
27
27
|
isCurrentDate(date: Date): boolean;
|
|
28
28
|
getMonths(): number[];
|
|
29
|
+
private renderTemplates;
|
|
29
30
|
private onCellClick;
|
|
30
31
|
onContentScroll(e: Event): void;
|
|
31
32
|
onScrollUiUpdate(args: NotifyEventArgs): void;
|
|
@@ -39,7 +40,6 @@ export declare class Year extends ViewBase implements IRenderer {
|
|
|
39
40
|
addEventListener(): void;
|
|
40
41
|
removeEventListener(): void;
|
|
41
42
|
onDataReady(args: NotifyEventArgs): void;
|
|
42
|
-
wireEvents(element: HTMLElement, type: string): void;
|
|
43
43
|
scrollToDate(scrollDate: Date): void;
|
|
44
44
|
destroy(): void;
|
|
45
45
|
}
|
|
@@ -12,7 +12,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
12
12
|
};
|
|
13
13
|
})();
|
|
14
14
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
15
|
-
import { EventHandler, formatUnit, createElement, addClass, closest, prepend } from '@syncfusion/ej2-base';
|
|
15
|
+
import { EventHandler, formatUnit, createElement, addClass, closest, prepend, append, extend } from '@syncfusion/ej2-base';
|
|
16
16
|
import { ViewBase } from './view-base';
|
|
17
17
|
import { YearEvent } from '../event-renderer/year';
|
|
18
18
|
import * as util from '../base/util';
|
|
@@ -56,7 +56,7 @@ var Year = /** @class */ (function (_super) {
|
|
|
56
56
|
this.generateColumnLevels();
|
|
57
57
|
this.renderResourceMobileLayout();
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
EventHandler.add(this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS), 'scroll', this.onContentScroll, this);
|
|
60
60
|
this.parent.notify(event.contentReady, {});
|
|
61
61
|
};
|
|
62
62
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -92,7 +92,14 @@ var Year = /** @class */ (function (_super) {
|
|
|
92
92
|
};
|
|
93
93
|
Year.prototype.renderCalendarHeader = function (currentDate) {
|
|
94
94
|
var headerWrapper = createElement('div', { className: 'e-header e-month' });
|
|
95
|
-
var headerContent = createElement('div', { className: 'e-day e-title'
|
|
95
|
+
var headerContent = createElement('div', { className: 'e-day e-title' });
|
|
96
|
+
if (this.parent.monthHeaderTemplate) {
|
|
97
|
+
var args = { date: currentDate, type: 'monthHeader' };
|
|
98
|
+
this.renderTemplates(this.parent.getMonthHeaderTemplate(), args, 'monthHeaderTemplate', this.parent.activeViewOptions.monthHeaderTemplateName, headerContent);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
headerContent.innerHTML = this.getMonthName(currentDate);
|
|
102
|
+
}
|
|
96
103
|
headerWrapper.appendChild(headerContent);
|
|
97
104
|
this.parent.trigger(event.renderCell, { elementType: 'headerCells', element: headerContent, date: currentDate });
|
|
98
105
|
return headerWrapper;
|
|
@@ -102,6 +109,7 @@ var Year = /** @class */ (function (_super) {
|
|
|
102
109
|
var contentWrapper = createElement('div', { className: 'e-content e-month' });
|
|
103
110
|
var contentTable = this.createTableLayout('e-calendar-table ' + cls.CONTENT_TABLE_CLASS);
|
|
104
111
|
contentWrapper.appendChild(contentTable);
|
|
112
|
+
this.setAriaAttributes(contentTable);
|
|
105
113
|
var thead = createElement('thead', { className: 'e-week-header' });
|
|
106
114
|
var tr = createElement('tr');
|
|
107
115
|
var currentWeek = util.getWeekFirstDate(util.firstDateOfMonth(currentDate), this.parent.firstDayOfWeek);
|
|
@@ -109,7 +117,15 @@ var Year = /** @class */ (function (_super) {
|
|
|
109
117
|
tr.appendChild(createElement('th'));
|
|
110
118
|
}
|
|
111
119
|
for (var i = 0; i < util.WEEK_LENGTH; i++) {
|
|
112
|
-
|
|
120
|
+
if (this.parent.dayHeaderTemplate) {
|
|
121
|
+
var th = createElement('th');
|
|
122
|
+
var args = { date: currentWeek, type: 'dayHeader' };
|
|
123
|
+
this.renderTemplates(this.parent.getDayHeaderTemplate(), args, 'dayHeaderTemplate', this.parent.activeViewOptions.dayHeaderTemplateName, th);
|
|
124
|
+
tr.appendChild(th);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
tr.appendChild(createElement('th', { innerHTML: this.parent.getDayNames('narrow')[currentWeek.getDay()] }));
|
|
128
|
+
}
|
|
113
129
|
currentWeek = new Date(currentWeek.getTime() + util.MS_PER_DAY);
|
|
114
130
|
}
|
|
115
131
|
thead.appendChild(tr);
|
|
@@ -117,12 +133,12 @@ var Year = /** @class */ (function (_super) {
|
|
|
117
133
|
var tbody = contentTable.querySelector('tbody');
|
|
118
134
|
while (dateCollection.length > 0) {
|
|
119
135
|
var weekDates = dateCollection.splice(0, util.WEEK_LENGTH);
|
|
120
|
-
var tr_1 = createElement('tr'
|
|
136
|
+
var tr_1 = createElement('tr');
|
|
121
137
|
if (this.parent.activeViewOptions.showWeekNumber) {
|
|
122
138
|
var weekNumber = this.parent.getWeekNumberContent(weekDates);
|
|
123
139
|
var td = createElement('td', {
|
|
124
140
|
className: 'e-week-number',
|
|
125
|
-
attrs: { '
|
|
141
|
+
attrs: { 'title': this.parent.localeObj.getConstant('week') + ' ' + weekNumber },
|
|
126
142
|
innerHTML: weekNumber
|
|
127
143
|
});
|
|
128
144
|
tr_1.appendChild(td);
|
|
@@ -132,13 +148,23 @@ var Year = /** @class */ (function (_super) {
|
|
|
132
148
|
var date = weekDates_1[_i];
|
|
133
149
|
var td = createElement('td', {
|
|
134
150
|
className: 'e-cell ' + cls.WORK_CELLS_CLASS,
|
|
135
|
-
attrs: { '
|
|
151
|
+
attrs: { 'aria-selected': 'false', 'data-date': date.getTime().toString() }
|
|
136
152
|
});
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
|
|
153
|
+
if (this.parent.activeViewOptions.cellHeaderTemplate) {
|
|
154
|
+
var args = { date: date, type: 'monthCells' };
|
|
155
|
+
this.renderTemplates(this.parent.getCellHeaderTemplate(), args, 'cellHeaderTemplate', this.parent.activeViewOptions.cellHeaderTemplateName, td);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
var span = createElement('span', {
|
|
159
|
+
className: 'e-day', innerHTML: this.parent.globalize.formatDate(date, { skeleton: 'd', calendar: this.parent.getCalendarMode() }),
|
|
160
|
+
attrs: { title: this.parent.globalize.formatDate(date, { type: 'date', skeleton: 'full' }) }
|
|
161
|
+
});
|
|
162
|
+
td.appendChild(span);
|
|
163
|
+
}
|
|
164
|
+
if (this.parent.activeViewOptions.cellTemplate) {
|
|
165
|
+
var args = { date: date, type: 'monthCells' };
|
|
166
|
+
this.renderTemplates(this.parent.getCellTemplate(), args, 'cellTemplate', this.parent.activeViewOptions.cellTemplateName, td);
|
|
167
|
+
}
|
|
142
168
|
var classList = [];
|
|
143
169
|
if (currentDate.getMonth() !== date.getMonth()) {
|
|
144
170
|
classList.push(cls.OTHERMONTH_CLASS);
|
|
@@ -150,7 +176,10 @@ var Year = /** @class */ (function (_super) {
|
|
|
150
176
|
addClass([td], classList);
|
|
151
177
|
}
|
|
152
178
|
tr_1.appendChild(td);
|
|
153
|
-
|
|
179
|
+
EventHandler.add(td, 'click', this.onCellClick, this);
|
|
180
|
+
if (!this.parent.isAdaptive) {
|
|
181
|
+
EventHandler.add(td, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);
|
|
182
|
+
}
|
|
154
183
|
this.parent.trigger(event.renderCell, { elementType: 'workCells', element: td, date: date });
|
|
155
184
|
}
|
|
156
185
|
tbody.appendChild(tr_1);
|
|
@@ -236,6 +265,11 @@ var Year = /** @class */ (function (_super) {
|
|
|
236
265
|
return _this.parent.firstMonthOfYear + index;
|
|
237
266
|
});
|
|
238
267
|
};
|
|
268
|
+
Year.prototype.renderTemplates = function (fn, args, tName, vName, ele) {
|
|
269
|
+
var templateId = this.parent.element.id + '_' + vName + tName;
|
|
270
|
+
var template = [].slice.call(fn(args, this.parent, tName, templateId, false));
|
|
271
|
+
append(template, ele);
|
|
272
|
+
};
|
|
239
273
|
Year.prototype.onCellClick = function (e) {
|
|
240
274
|
var target = closest(e.target, '.' + cls.WORK_CELLS_CLASS);
|
|
241
275
|
var startDate = this.parent.getDateFromElement(target);
|
|
@@ -258,6 +292,8 @@ var Year = /** @class */ (function (_super) {
|
|
|
258
292
|
target = this.parent.element.querySelector(':not(.' + cls.OTHERMONTH_CLASS + ')[data-date="' + target.getAttribute('data-date') + '"]');
|
|
259
293
|
}
|
|
260
294
|
this.parent.activeCellsData = this.parent.getCellDetails(target);
|
|
295
|
+
var args = extend(this.parent.activeCellsData, { cancel: false, event: e, name: 'cellClick' });
|
|
296
|
+
this.parent.trigger(event.cellClick, args);
|
|
261
297
|
this.parent.quickPopup.moreEventClick(moreEventArgs, endDate);
|
|
262
298
|
}
|
|
263
299
|
};
|
|
@@ -369,23 +405,6 @@ var Year = /** @class */ (function (_super) {
|
|
|
369
405
|
this.yearEventModule.renderAppointments();
|
|
370
406
|
this.parent.notify(event.eventsLoaded, args);
|
|
371
407
|
};
|
|
372
|
-
Year.prototype.wireEvents = function (element, type) {
|
|
373
|
-
if (type === 'cell') {
|
|
374
|
-
if (this.parent.currentView !== 'TimelineYear') {
|
|
375
|
-
EventHandler.add(element, 'click', this.onCellClick, this);
|
|
376
|
-
}
|
|
377
|
-
else {
|
|
378
|
-
EventHandler.add(element, 'mousedown', this.parent.workCellAction.cellMouseDown, this.parent.workCellAction);
|
|
379
|
-
EventHandler.add(element, 'click', this.parent.workCellAction.cellClick, this.parent.workCellAction);
|
|
380
|
-
if (!this.parent.isAdaptive) {
|
|
381
|
-
EventHandler.add(element, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
else {
|
|
386
|
-
EventHandler.add(element, 'scroll', this.onContentScroll, this);
|
|
387
|
-
}
|
|
388
|
-
};
|
|
389
408
|
Year.prototype.scrollToDate = function (scrollDate) {
|
|
390
409
|
var date = +new Date(util.resetTime(scrollDate));
|
|
391
410
|
var element = this.element.querySelector('.' + cls.WORK_CELLS_CLASS + ':not(.' + cls.OTHERMONTH_CLASS + ')[data-date="' + date + '"]');
|