@progress/kendo-angular-gantt 24.2.2-develop.1 → 24.2.2-develop.10
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.
|
@@ -44,8 +44,8 @@ const packageMetadata = {
|
|
|
44
44
|
productName: 'Kendo UI for Angular',
|
|
45
45
|
productCode: 'KENDOUIANGULAR',
|
|
46
46
|
productCodes: ['KENDOUIANGULAR'],
|
|
47
|
-
publishDate:
|
|
48
|
-
version: '24.2.2-develop.
|
|
47
|
+
publishDate: 1783423506,
|
|
48
|
+
version: '24.2.2-develop.10',
|
|
49
49
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
50
50
|
};
|
|
51
51
|
|
|
@@ -1075,6 +1075,7 @@ class NavigationService {
|
|
|
1075
1075
|
*/
|
|
1076
1076
|
timelineLastActive = false;
|
|
1077
1077
|
metadata;
|
|
1078
|
+
bar;
|
|
1078
1079
|
_enabled = false;
|
|
1079
1080
|
_activeTimelineIndex = 0;
|
|
1080
1081
|
_activeTreeListCell = { rowIndex: 0, colIndex: 0 };
|
|
@@ -1088,19 +1089,23 @@ class NavigationService {
|
|
|
1088
1089
|
// no private property setters in TypeScript, so use a getter and a poorly named private prop for this value
|
|
1089
1090
|
this._enabled = true;
|
|
1090
1091
|
this.metadata = metadata;
|
|
1091
|
-
|
|
1092
|
-
//
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1092
|
+
this.bar = this.metadata.host.querySelector('.k-splitbar');
|
|
1093
|
+
// Demote first TreeList cell so bar is the natural tab target
|
|
1094
|
+
// Cell will get tabindex="0" when it's actually focused
|
|
1095
|
+
const firstCell = this.metadata.treeListElement.querySelector('[tabindex="0"]');
|
|
1096
|
+
if (isPresent(firstCell)) {
|
|
1097
|
+
this.renderer.setAttribute(firstCell, 'tabindex', '-1');
|
|
1096
1098
|
}
|
|
1097
1099
|
this.zone.runOutsideAngular(() => {
|
|
1098
1100
|
this.eventListenerDisposers = [
|
|
1099
1101
|
this.renderer.listen(this.metadata.treeListElement, 'mousedown', this.focusTreeList.bind(this)),
|
|
1100
1102
|
this.renderer.listen(this.metadata.treeListElement, 'focusin', this.handleTreeListFocusIn.bind(this)),
|
|
1103
|
+
this.renderer.listen(this.metadata.treeListElement, 'focusout', this.handleTreeListFocusOut.bind(this)),
|
|
1101
1104
|
this.renderer.listen(this.metadata.timelineElement, 'mousedown', this.handleTimelineMousedown.bind(this)),
|
|
1102
1105
|
this.renderer.listen(this.metadata.timelineElement, 'focusin', this.handleTimelineFocusIn.bind(this)),
|
|
1103
|
-
this.renderer.listen(this.metadata.timelineElement, 'focusout', this.handleTimelineFocusOut.bind(this))
|
|
1106
|
+
this.renderer.listen(this.metadata.timelineElement, 'focusout', this.handleTimelineFocusOut.bind(this)),
|
|
1107
|
+
// Intercept Tab from splitter bar to manually focus TreeList
|
|
1108
|
+
this.renderer.listen(this.bar, 'keydown', this.handleSplitterBarKeydown.bind(this))
|
|
1104
1109
|
];
|
|
1105
1110
|
});
|
|
1106
1111
|
}
|
|
@@ -1162,9 +1167,17 @@ class NavigationService {
|
|
|
1162
1167
|
}
|
|
1163
1168
|
/**
|
|
1164
1169
|
* Updates the timeline focus state flag and notifies the active task to update its focused state.
|
|
1170
|
+
* Restore bar to tab order when focus leaves Timeline.
|
|
1165
1171
|
*/
|
|
1166
1172
|
handleTimelineFocusOut({ relatedTarget }) {
|
|
1167
1173
|
this.isTimelineFocused = this.metadata.timelineElement.contains(relatedTarget);
|
|
1174
|
+
// Restore bar to tab order when focus leaves Timeline to areas outside the Gantt
|
|
1175
|
+
if (!this.metadata.timelineElement.contains(relatedTarget) &&
|
|
1176
|
+
!this.metadata.treeListElement.contains(relatedTarget)) {
|
|
1177
|
+
if (this.bar) {
|
|
1178
|
+
this.renderer.setAttribute(this.bar, 'tabindex', '0');
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1168
1181
|
// update the task element only if the new focus target is not in the Timeline - focus change between tasks is handled in the focusin handler
|
|
1169
1182
|
if (!isTask(relatedTarget, this.metadata.timelineElement)) {
|
|
1170
1183
|
this.notifyTaskStatusChange();
|
|
@@ -1179,6 +1192,10 @@ class NavigationService {
|
|
|
1179
1192
|
handleTreeListFocusIn(event) {
|
|
1180
1193
|
this.treeListLastActive = true;
|
|
1181
1194
|
this.timelineLastActive = false;
|
|
1195
|
+
// Hide bar from tab order while TreeList is focused, so Tab goes to Timeline
|
|
1196
|
+
if (this.bar) {
|
|
1197
|
+
this.renderer.setAttribute(this.bar, 'tabindex', '-1');
|
|
1198
|
+
}
|
|
1182
1199
|
// if the previous focus target was in the TreeList, rely on its component navigation and just record the focused item index
|
|
1183
1200
|
if (this.metadata.treeListElement.contains(event.relatedTarget)) {
|
|
1184
1201
|
const { colIndex, rowIndex } = this.metadata.treeList.activeCell;
|
|
@@ -1196,6 +1213,24 @@ class NavigationService {
|
|
|
1196
1213
|
this.scrollSyncService.syncScrollTop('treelist', 'timeline');
|
|
1197
1214
|
}
|
|
1198
1215
|
}
|
|
1216
|
+
/**
|
|
1217
|
+
* Handle focus leaving TreeList.
|
|
1218
|
+
* Restore bar to tab order and demote the cell when focus leaves TreeList.
|
|
1219
|
+
*/
|
|
1220
|
+
handleTreeListFocusOut(event) {
|
|
1221
|
+
// Demote the active TreeList cell when focus leaves
|
|
1222
|
+
const activeCell = this.metadata.treeListElement.querySelector('[tabindex="0"]');
|
|
1223
|
+
if (activeCell) {
|
|
1224
|
+
this.renderer.setAttribute(activeCell, 'tabindex', '-1');
|
|
1225
|
+
}
|
|
1226
|
+
// Restore bar to tab order when focus leaves TreeList to areas outside (not to Timeline)
|
|
1227
|
+
if (!this.metadata.timelineElement.contains(event.relatedTarget) &&
|
|
1228
|
+
!this.metadata.treeListElement.contains(event.relatedTarget)) {
|
|
1229
|
+
if (this.bar) {
|
|
1230
|
+
this.renderer.setAttribute(this.bar, 'tabindex', '0');
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
}
|
|
1199
1234
|
updateActiveTimeLineIndex(index) {
|
|
1200
1235
|
this.activeTimelineIndex = index;
|
|
1201
1236
|
}
|
|
@@ -1246,6 +1281,19 @@ class NavigationService {
|
|
|
1246
1281
|
focusTreeList() {
|
|
1247
1282
|
this.metadata.treeList.focus();
|
|
1248
1283
|
}
|
|
1284
|
+
/**
|
|
1285
|
+
* Intercept Tab key on splitter bar to focus the TreeList.
|
|
1286
|
+
* Since TreeList first cell has tabindex="-1", Tab from bar won't naturally focus it.
|
|
1287
|
+
* This handler manually focuses the cell and prevents default Tab to avoid jumping to Timeline.
|
|
1288
|
+
*/
|
|
1289
|
+
handleSplitterBarKeydown(event) {
|
|
1290
|
+
if (event.key === 'Tab' && !event.shiftKey) {
|
|
1291
|
+
event.preventDefault();
|
|
1292
|
+
// Call focusCell to update tracking and focus the DOM
|
|
1293
|
+
// The TreeList handles setting proper tabindex on the focused cell
|
|
1294
|
+
this.focusCell(this.activeTreeListCell.rowIndex, this.activeTreeListCell.colIndex);
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1249
1297
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: ScrollSyncService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1250
1298
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: NavigationService });
|
|
1251
1299
|
}
|
|
@@ -67,6 +67,7 @@ export declare class NavigationService implements OnDestroy {
|
|
|
67
67
|
*/
|
|
68
68
|
private timelineLastActive;
|
|
69
69
|
private metadata;
|
|
70
|
+
private bar;
|
|
70
71
|
private _enabled;
|
|
71
72
|
private _activeTimelineIndex;
|
|
72
73
|
private _activeTreeListCell;
|
|
@@ -95,6 +96,7 @@ export declare class NavigationService implements OnDestroy {
|
|
|
95
96
|
handleTimelineFocusIn({ target }: FocusEvent): void;
|
|
96
97
|
/**
|
|
97
98
|
* Updates the timeline focus state flag and notifies the active task to update its focused state.
|
|
99
|
+
* Restore bar to tab order when focus leaves Timeline.
|
|
98
100
|
*/
|
|
99
101
|
handleTimelineFocusOut({ relatedTarget }: FocusEvent): void;
|
|
100
102
|
/**
|
|
@@ -104,6 +106,11 @@ export declare class NavigationService implements OnDestroy {
|
|
|
104
106
|
* when navigating in the Timeline has updated the expected TreeList focus target.
|
|
105
107
|
*/
|
|
106
108
|
handleTreeListFocusIn(event: FocusEvent): void;
|
|
109
|
+
/**
|
|
110
|
+
* Handle focus leaving TreeList.
|
|
111
|
+
* Restore bar to tab order and demote the cell when focus leaves TreeList.
|
|
112
|
+
*/
|
|
113
|
+
handleTreeListFocusOut(event: FocusEvent): void;
|
|
107
114
|
updateActiveTimeLineIndex(index: number): void;
|
|
108
115
|
updateActiveTreeListCell(): void;
|
|
109
116
|
/**
|
|
@@ -125,6 +132,12 @@ export declare class NavigationService implements OnDestroy {
|
|
|
125
132
|
* Otherwise cell clicks are wrongly overwritten in `handleTreeListFocusIn` and the click focus target is not respected.
|
|
126
133
|
*/
|
|
127
134
|
private focusTreeList;
|
|
135
|
+
/**
|
|
136
|
+
* Intercept Tab key on splitter bar to focus the TreeList.
|
|
137
|
+
* Since TreeList first cell has tabindex="-1", Tab from bar won't naturally focus it.
|
|
138
|
+
* This handler manually focuses the cell and prevents default Tab to avoid jumping to Timeline.
|
|
139
|
+
*/
|
|
140
|
+
private handleSplitterBarKeydown;
|
|
128
141
|
static ɵfac: i0.ɵɵFactoryDeclaration<NavigationService, never>;
|
|
129
142
|
static ɵprov: i0.ɵɵInjectableDeclaration<NavigationService>;
|
|
130
143
|
}
|
package/package-metadata.mjs
CHANGED
|
@@ -7,7 +7,7 @@ export const packageMetadata = {
|
|
|
7
7
|
"productCodes": [
|
|
8
8
|
"KENDOUIANGULAR"
|
|
9
9
|
],
|
|
10
|
-
"publishDate":
|
|
11
|
-
"version": "24.2.2-develop.
|
|
10
|
+
"publishDate": 1783423506,
|
|
11
|
+
"version": "24.2.2-develop.10",
|
|
12
12
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"
|
|
13
13
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-gantt",
|
|
3
|
-
"version": "24.2.2-develop.
|
|
3
|
+
"version": "24.2.2-develop.10",
|
|
4
4
|
"description": "Kendo UI Angular Gantt",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"package": {
|
|
42
42
|
"productName": "Kendo UI for Angular",
|
|
43
43
|
"productCode": "KENDOUIANGULAR",
|
|
44
|
-
"publishDate":
|
|
44
|
+
"publishDate": 1783423506,
|
|
45
45
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"
|
|
46
46
|
}
|
|
47
47
|
},
|
|
@@ -53,25 +53,25 @@
|
|
|
53
53
|
"@angular/platform-browser": "19 - 22",
|
|
54
54
|
"@progress/kendo-data-query": "^1.7.3",
|
|
55
55
|
"@progress/kendo-licensing": "^1.11.0",
|
|
56
|
-
"@progress/kendo-angular-buttons": "24.2.2-develop.
|
|
57
|
-
"@progress/kendo-angular-common": "24.2.2-develop.
|
|
58
|
-
"@progress/kendo-angular-dialog": "24.2.2-develop.
|
|
59
|
-
"@progress/kendo-angular-dropdowns": "24.2.2-develop.
|
|
60
|
-
"@progress/kendo-angular-grid": "24.2.2-develop.
|
|
61
|
-
"@progress/kendo-angular-icons": "24.2.2-develop.
|
|
62
|
-
"@progress/kendo-angular-inputs": "24.2.2-develop.
|
|
63
|
-
"@progress/kendo-angular-intl": "24.2.2-develop.
|
|
64
|
-
"@progress/kendo-angular-l10n": "24.2.2-develop.
|
|
65
|
-
"@progress/kendo-angular-label": "24.2.2-develop.
|
|
66
|
-
"@progress/kendo-angular-layout": "24.2.2-develop.
|
|
67
|
-
"@progress/kendo-angular-popup": "24.2.2-develop.
|
|
68
|
-
"@progress/kendo-angular-tooltip": "24.2.2-develop.
|
|
69
|
-
"@progress/kendo-angular-treelist": "24.2.2-develop.
|
|
56
|
+
"@progress/kendo-angular-buttons": "24.2.2-develop.10",
|
|
57
|
+
"@progress/kendo-angular-common": "24.2.2-develop.10",
|
|
58
|
+
"@progress/kendo-angular-dialog": "24.2.2-develop.10",
|
|
59
|
+
"@progress/kendo-angular-dropdowns": "24.2.2-develop.10",
|
|
60
|
+
"@progress/kendo-angular-grid": "24.2.2-develop.10",
|
|
61
|
+
"@progress/kendo-angular-icons": "24.2.2-develop.10",
|
|
62
|
+
"@progress/kendo-angular-inputs": "24.2.2-develop.10",
|
|
63
|
+
"@progress/kendo-angular-intl": "24.2.2-develop.10",
|
|
64
|
+
"@progress/kendo-angular-l10n": "24.2.2-develop.10",
|
|
65
|
+
"@progress/kendo-angular-label": "24.2.2-develop.10",
|
|
66
|
+
"@progress/kendo-angular-layout": "24.2.2-develop.10",
|
|
67
|
+
"@progress/kendo-angular-popup": "24.2.2-develop.10",
|
|
68
|
+
"@progress/kendo-angular-tooltip": "24.2.2-develop.10",
|
|
69
|
+
"@progress/kendo-angular-treelist": "24.2.2-develop.10",
|
|
70
70
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"tslib": "^2.3.1",
|
|
74
|
-
"@progress/kendo-angular-schematics": "24.2.2-develop.
|
|
74
|
+
"@progress/kendo-angular-schematics": "24.2.2-develop.10",
|
|
75
75
|
"@progress/kendo-common": "^1.0.1",
|
|
76
76
|
"@progress/kendo-date-math": "^1.5.2",
|
|
77
77
|
"@progress/kendo-draggable": "^3.0.0"
|
|
@@ -12,16 +12,16 @@ function default_1(options) {
|
|
|
12
12
|
// See https://github.com/telerik/kendo-schematics/issues/28
|
|
13
13
|
peerDependencies: {
|
|
14
14
|
// peer deps of the treelist
|
|
15
|
-
'@progress/kendo-angular-dateinputs': '24.2.2-develop.
|
|
16
|
-
'@progress/kendo-angular-excel-export': '24.2.2-develop.
|
|
17
|
-
'@progress/kendo-angular-pdf-export': '24.2.2-develop.
|
|
18
|
-
'@progress/kendo-angular-utils': '24.2.2-develop.
|
|
15
|
+
'@progress/kendo-angular-dateinputs': '24.2.2-develop.10',
|
|
16
|
+
'@progress/kendo-angular-excel-export': '24.2.2-develop.10',
|
|
17
|
+
'@progress/kendo-angular-pdf-export': '24.2.2-develop.10',
|
|
18
|
+
'@progress/kendo-angular-utils': '24.2.2-develop.10',
|
|
19
19
|
'@progress/kendo-drawing': '^1.0.0',
|
|
20
20
|
// peer deps of the dropdowns
|
|
21
|
-
'@progress/kendo-angular-treeview': '24.2.2-develop.
|
|
22
|
-
'@progress/kendo-angular-navigation': '24.2.2-develop.
|
|
21
|
+
'@progress/kendo-angular-treeview': '24.2.2-develop.10',
|
|
22
|
+
'@progress/kendo-angular-navigation': '24.2.2-develop.10',
|
|
23
23
|
// peer dep of the layout
|
|
24
|
-
'@progress/kendo-angular-progressbar': '24.2.2-develop.
|
|
24
|
+
'@progress/kendo-angular-progressbar': '24.2.2-develop.10',
|
|
25
25
|
// peer dep of the icons
|
|
26
26
|
'@progress/kendo-svg-icons': '^4.0.0'
|
|
27
27
|
} });
|