@progress/kendo-angular-menu 23.3.0-develop.16 → 23.3.0-develop.18
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.
|
@@ -22,8 +22,8 @@ const packageMetadata = {
|
|
|
22
22
|
productName: 'Kendo UI for Angular',
|
|
23
23
|
productCode: 'KENDOUIANGULAR',
|
|
24
24
|
productCodes: ['KENDOUIANGULAR'],
|
|
25
|
-
publishDate:
|
|
26
|
-
version: '23.3.0-develop.
|
|
25
|
+
publishDate: 1774603374,
|
|
26
|
+
version: '23.3.0-develop.18',
|
|
27
27
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
28
28
|
};
|
|
29
29
|
|
|
@@ -1133,6 +1133,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
1133
1133
|
args: [MenuItemComponent]
|
|
1134
1134
|
}] } });
|
|
1135
1135
|
|
|
1136
|
+
/**
|
|
1137
|
+
* @hidden
|
|
1138
|
+
*/
|
|
1139
|
+
const defined = (value) => typeof value !== 'undefined';
|
|
1140
|
+
/**
|
|
1141
|
+
* @hidden
|
|
1142
|
+
*/
|
|
1143
|
+
const bodyFactory = () => {
|
|
1144
|
+
if (isDocumentAvailable()) {
|
|
1145
|
+
return new ElementRef(document.body);
|
|
1146
|
+
}
|
|
1147
|
+
};
|
|
1148
|
+
/**
|
|
1149
|
+
* @hidden
|
|
1150
|
+
*/
|
|
1151
|
+
const getSizeClass = (size) => {
|
|
1152
|
+
const SIZE_CLASSES = {
|
|
1153
|
+
'small': 'k-menu-group-sm',
|
|
1154
|
+
'medium': 'k-menu-group-md',
|
|
1155
|
+
'large': 'k-menu-group-lg'
|
|
1156
|
+
};
|
|
1157
|
+
return SIZE_CLASSES[size];
|
|
1158
|
+
};
|
|
1159
|
+
/**
|
|
1160
|
+
* @hidden
|
|
1161
|
+
*/
|
|
1162
|
+
const getFontIcon = (horizontal, rtl) => {
|
|
1163
|
+
const icon = horizontal ?
|
|
1164
|
+
rtl ?
|
|
1165
|
+
'caret-alt-left' :
|
|
1166
|
+
'caret-alt-right' :
|
|
1167
|
+
'caret-alt-down';
|
|
1168
|
+
return icon;
|
|
1169
|
+
};
|
|
1170
|
+
/**
|
|
1171
|
+
* @hidden
|
|
1172
|
+
*/
|
|
1173
|
+
const getSVGIcon = (horizontal, rtl) => {
|
|
1174
|
+
const icon = horizontal ?
|
|
1175
|
+
rtl ?
|
|
1176
|
+
caretAltLeftIcon :
|
|
1177
|
+
caretAltRightIcon :
|
|
1178
|
+
caretAltDownIcon;
|
|
1179
|
+
return icon;
|
|
1180
|
+
};
|
|
1181
|
+
/**
|
|
1182
|
+
* @hidden
|
|
1183
|
+
*/
|
|
1184
|
+
function defaultTrackBy(index) {
|
|
1185
|
+
return index;
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1136
1188
|
/**
|
|
1137
1189
|
* @hidden
|
|
1138
1190
|
*/
|
|
@@ -1175,6 +1227,11 @@ class MenuBase {
|
|
|
1175
1227
|
* Allows customization of the popup class and margin.
|
|
1176
1228
|
*/
|
|
1177
1229
|
popupSettings;
|
|
1230
|
+
/**
|
|
1231
|
+
* Defines a function that determines how to track changes for the menu items.
|
|
1232
|
+
* By default, the component tracks changes by index.
|
|
1233
|
+
*/
|
|
1234
|
+
trackBy = defaultTrackBy;
|
|
1178
1235
|
/**
|
|
1179
1236
|
* @hidden
|
|
1180
1237
|
*/
|
|
@@ -1194,7 +1251,7 @@ class MenuBase {
|
|
|
1194
1251
|
return this.items || (this.children ? this.children.toArray() : []);
|
|
1195
1252
|
}
|
|
1196
1253
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MenuBase, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1197
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: MenuBase, isStandalone: true, selector: "kendo-menu-base", inputs: { items: "items", vertical: "vertical", openOnClick: "openOnClick", hoverDelay: "hoverDelay", animate: "animate", size: "size", popupSettings: "popupSettings" }, queries: [{ propertyName: "itemTemplate", predicate: ItemTemplateDirective }, { propertyName: "itemLinkTemplate", predicate: ItemLinkTemplateDirective }, { propertyName: "children", predicate: MenuItemComponent }], ngImport: i0, template: ``, isInline: true });
|
|
1254
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: MenuBase, isStandalone: true, selector: "kendo-menu-base", inputs: { items: "items", vertical: "vertical", openOnClick: "openOnClick", hoverDelay: "hoverDelay", animate: "animate", size: "size", popupSettings: "popupSettings", trackBy: "trackBy" }, queries: [{ propertyName: "itemTemplate", predicate: ItemTemplateDirective }, { propertyName: "itemLinkTemplate", predicate: ItemLinkTemplateDirective }, { propertyName: "children", predicate: MenuItemComponent }], ngImport: i0, template: ``, isInline: true });
|
|
1198
1255
|
}
|
|
1199
1256
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MenuBase, decorators: [{
|
|
1200
1257
|
type: Component,
|
|
@@ -1216,6 +1273,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
1216
1273
|
type: Input
|
|
1217
1274
|
}], popupSettings: [{
|
|
1218
1275
|
type: Input
|
|
1276
|
+
}], trackBy: [{
|
|
1277
|
+
type: Input
|
|
1219
1278
|
}], itemTemplate: [{
|
|
1220
1279
|
type: ContentChildren,
|
|
1221
1280
|
args: [ItemTemplateDirective]
|
|
@@ -1227,52 +1286,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
1227
1286
|
args: [MenuItemComponent]
|
|
1228
1287
|
}] } });
|
|
1229
1288
|
|
|
1230
|
-
/**
|
|
1231
|
-
* @hidden
|
|
1232
|
-
*/
|
|
1233
|
-
const defined = (value) => typeof value !== 'undefined';
|
|
1234
|
-
/**
|
|
1235
|
-
* @hidden
|
|
1236
|
-
*/
|
|
1237
|
-
const bodyFactory = () => {
|
|
1238
|
-
if (isDocumentAvailable()) {
|
|
1239
|
-
return new ElementRef(document.body);
|
|
1240
|
-
}
|
|
1241
|
-
};
|
|
1242
|
-
/**
|
|
1243
|
-
* @hidden
|
|
1244
|
-
*/
|
|
1245
|
-
const getSizeClass = (size) => {
|
|
1246
|
-
const SIZE_CLASSES = {
|
|
1247
|
-
'small': 'k-menu-group-sm',
|
|
1248
|
-
'medium': 'k-menu-group-md',
|
|
1249
|
-
'large': 'k-menu-group-lg'
|
|
1250
|
-
};
|
|
1251
|
-
return SIZE_CLASSES[size];
|
|
1252
|
-
};
|
|
1253
|
-
/**
|
|
1254
|
-
* @hidden
|
|
1255
|
-
*/
|
|
1256
|
-
const getFontIcon = (horizontal, rtl) => {
|
|
1257
|
-
const icon = horizontal ?
|
|
1258
|
-
rtl ?
|
|
1259
|
-
'caret-alt-left' :
|
|
1260
|
-
'caret-alt-right' :
|
|
1261
|
-
'caret-alt-down';
|
|
1262
|
-
return icon;
|
|
1263
|
-
};
|
|
1264
|
-
/**
|
|
1265
|
-
* @hidden
|
|
1266
|
-
*/
|
|
1267
|
-
const getSVGIcon = (horizontal, rtl) => {
|
|
1268
|
-
const icon = horizontal ?
|
|
1269
|
-
rtl ?
|
|
1270
|
-
caretAltLeftIcon :
|
|
1271
|
-
caretAltRightIcon :
|
|
1272
|
-
caretAltDownIcon;
|
|
1273
|
-
return icon;
|
|
1274
|
-
};
|
|
1275
|
-
|
|
1276
1289
|
const POPUP_ALIGN = {
|
|
1277
1290
|
vertical: 'top',
|
|
1278
1291
|
horizontal: 'left'
|
|
@@ -1367,6 +1380,7 @@ class ListComponent {
|
|
|
1367
1380
|
itemTemplate;
|
|
1368
1381
|
itemLinkTemplate;
|
|
1369
1382
|
popupSettings;
|
|
1383
|
+
trackBy;
|
|
1370
1384
|
domSubscriptions;
|
|
1371
1385
|
constructor(itemsService, hover, actions, navigation, renderer, ngZone, element) {
|
|
1372
1386
|
this.itemsService = itemsService;
|
|
@@ -1377,6 +1391,9 @@ class ListComponent {
|
|
|
1377
1391
|
this.ngZone = ngZone;
|
|
1378
1392
|
this.element = element;
|
|
1379
1393
|
}
|
|
1394
|
+
trackByWrapper(index, item) {
|
|
1395
|
+
return this.trackBy ? this.trackBy(index, item) : index;
|
|
1396
|
+
}
|
|
1380
1397
|
hierarchyIndex(index) {
|
|
1381
1398
|
return this.itemsService.itemIndex(this.index, index);
|
|
1382
1399
|
}
|
|
@@ -1516,14 +1533,14 @@ class ListComponent {
|
|
|
1516
1533
|
this.actions.execute();
|
|
1517
1534
|
}
|
|
1518
1535
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ListComponent, deps: [{ token: ItemsService }, { token: HoverService }, { token: ActionsService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1519
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ListComponent, isStandalone: true, selector: "[kendoMenuList]", inputs: { appendTo: "appendTo", items: "items", level: "level", index: "index", animate: "animate", size: "size", vertical: "vertical", rtl: "rtl", openOnClick: "openOnClick", itemTemplate: "itemTemplate", itemLinkTemplate: "itemLinkTemplate", popupSettings: "popupSettings" }, ngImport: i0, template: "\n @for (item of items; track item; let idx = $index) {\n @if (!item.separator) {\n <li\n kendoMenuItem\n [appendTo]=\"appendTo\"\n [item]=\"item\"\n [level]=\"level\"\n [size]=\"size\"\n [vertical]=\"vertical\"\n [animate]=\"animate\"\n [rtl]=\"rtl\"\n [itemTemplate]=\"itemTemplate\"\n [itemLinkTemplate]=\"itemLinkTemplate\"\n [popupSettings]=\"popupSettings\"\n [openOnClick]=\"openOnClick\"\n [index]=\"hierarchyIndex(idx)\"\n [siblingIndex]=\"idx\"\n [attr.data-kendo-menu-index]=\"hierarchyIndex(idx)\"\n [ngClass]=\"item.cssClass\"\n [ngStyle]=\"item.cssStyle\"\n role=\"menuitem\"\n class=\"k-item k-menu-item\"\n [class.k-first]=\"idx === 0\"\n [class.k-last]=\"idx === items.length - 1\"\n [class.k-disabled]=\"item.disabled\"></li>\n }\n @if (item.separator) {\n <li\n class=\"k-separator k-item\"\n [ngClass]=\"item.cssClass\"\n aria-hidden=\"true\"\n [ngStyle]=\"item.cssStyle\">\n \n </li>\n }\n }\n ", isInline: true, dependencies: [{ kind: "component", type: i0.forwardRef(() => ItemComponent), selector: "[kendoMenuItem]", inputs: ["appendTo", "item", "level", "index", "siblingIndex", "animate", "size", "vertical", "rtl", "openOnClick", "itemTemplate", "itemLinkTemplate", "popupSettings"] }, { kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
1536
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ListComponent, isStandalone: true, selector: "[kendoMenuList]", inputs: { appendTo: "appendTo", items: "items", level: "level", index: "index", animate: "animate", size: "size", vertical: "vertical", rtl: "rtl", openOnClick: "openOnClick", itemTemplate: "itemTemplate", itemLinkTemplate: "itemLinkTemplate", popupSettings: "popupSettings", trackBy: "trackBy" }, ngImport: i0, template: "\n @for (item of items; track trackByWrapper($index, item); let idx = $index) {\n @if (!item.separator) {\n <li\n kendoMenuItem\n [appendTo]=\"appendTo\"\n [item]=\"item\"\n [level]=\"level\"\n [size]=\"size\"\n [vertical]=\"vertical\"\n [animate]=\"animate\"\n [rtl]=\"rtl\"\n [itemTemplate]=\"itemTemplate\"\n [itemLinkTemplate]=\"itemLinkTemplate\"\n [popupSettings]=\"popupSettings\"\n [trackBy]=\"trackBy\"\n [openOnClick]=\"openOnClick\"\n [index]=\"hierarchyIndex(idx)\"\n [siblingIndex]=\"idx\"\n [attr.data-kendo-menu-index]=\"hierarchyIndex(idx)\"\n [ngClass]=\"item.cssClass\"\n [ngStyle]=\"item.cssStyle\"\n role=\"menuitem\"\n class=\"k-item k-menu-item\"\n [class.k-first]=\"idx === 0\"\n [class.k-last]=\"idx === items.length - 1\"\n [class.k-disabled]=\"item.disabled\"></li>\n }\n @if (item.separator) {\n <li\n class=\"k-separator k-item\"\n [ngClass]=\"item.cssClass\"\n aria-hidden=\"true\"\n [ngStyle]=\"item.cssStyle\">\n \n </li>\n }\n }\n ", isInline: true, dependencies: [{ kind: "component", type: i0.forwardRef(() => ItemComponent), selector: "[kendoMenuItem]", inputs: ["appendTo", "item", "level", "index", "siblingIndex", "animate", "size", "vertical", "rtl", "openOnClick", "itemTemplate", "itemLinkTemplate", "popupSettings", "trackBy"] }, { kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
1520
1537
|
}
|
|
1521
1538
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ListComponent, decorators: [{
|
|
1522
1539
|
type: Component,
|
|
1523
1540
|
args: [{
|
|
1524
1541
|
selector: '[kendoMenuList]',
|
|
1525
1542
|
template: `
|
|
1526
|
-
@for (item of items; track item; let idx = $index) {
|
|
1543
|
+
@for (item of items; track trackByWrapper($index, item); let idx = $index) {
|
|
1527
1544
|
@if (!item.separator) {
|
|
1528
1545
|
<li
|
|
1529
1546
|
kendoMenuItem
|
|
@@ -1537,6 +1554,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
1537
1554
|
[itemTemplate]="itemTemplate"
|
|
1538
1555
|
[itemLinkTemplate]="itemLinkTemplate"
|
|
1539
1556
|
[popupSettings]="popupSettings"
|
|
1557
|
+
[trackBy]="trackBy"
|
|
1540
1558
|
[openOnClick]="openOnClick"
|
|
1541
1559
|
[index]="hierarchyIndex(idx)"
|
|
1542
1560
|
[siblingIndex]="idx"
|
|
@@ -1587,6 +1605,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
1587
1605
|
type: Input
|
|
1588
1606
|
}], popupSettings: [{
|
|
1589
1607
|
type: Input
|
|
1608
|
+
}], trackBy: [{
|
|
1609
|
+
type: Input
|
|
1590
1610
|
}] } });
|
|
1591
1611
|
/**
|
|
1592
1612
|
* @hidden
|
|
@@ -1625,6 +1645,7 @@ class ItemComponent {
|
|
|
1625
1645
|
itemTemplate;
|
|
1626
1646
|
itemLinkTemplate;
|
|
1627
1647
|
popupSettings;
|
|
1648
|
+
trackBy;
|
|
1628
1649
|
link;
|
|
1629
1650
|
popupTemplate;
|
|
1630
1651
|
get disabled() {
|
|
@@ -1715,6 +1736,11 @@ class ItemComponent {
|
|
|
1715
1736
|
ngOnInit() {
|
|
1716
1737
|
this.itemsService.add(this);
|
|
1717
1738
|
}
|
|
1739
|
+
ngOnChanges(changes) {
|
|
1740
|
+
if (changes['item'] && !changes['item'].firstChange && this.opened) {
|
|
1741
|
+
this.close();
|
|
1742
|
+
}
|
|
1743
|
+
}
|
|
1718
1744
|
ngAfterViewInit() {
|
|
1719
1745
|
if (this.hasContent) {
|
|
1720
1746
|
this.setAttribute('aria-expanded', this.opened.toString());
|
|
@@ -1809,10 +1835,10 @@ class ItemComponent {
|
|
|
1809
1835
|
};
|
|
1810
1836
|
}
|
|
1811
1837
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ItemComponent, deps: [{ token: ItemsService }, { token: NavigationService }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i5.PopupService }, { token: i0.ElementRef }, { token: ContextMenuService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1812
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ItemComponent, isStandalone: true, selector: "[kendoMenuItem]", inputs: { appendTo: "appendTo", item: "item", level: "level", index: "index", siblingIndex: "siblingIndex", animate: "animate", size: "size", vertical: "vertical", rtl: "rtl", openOnClick: "openOnClick", itemTemplate: "itemTemplate", itemLinkTemplate: "itemLinkTemplate", popupSettings: "popupSettings" }, host: { properties: { "attr.aria-disabled": "this.disabled", "attr.aria-haspopup": "this.hasPopup", "attr.aria-label": "this.label" } }, providers: [PopupService, {
|
|
1838
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ItemComponent, isStandalone: true, selector: "[kendoMenuItem]", inputs: { appendTo: "appendTo", item: "item", level: "level", index: "index", siblingIndex: "siblingIndex", animate: "animate", size: "size", vertical: "vertical", rtl: "rtl", openOnClick: "openOnClick", itemTemplate: "itemTemplate", itemLinkTemplate: "itemLinkTemplate", popupSettings: "popupSettings", trackBy: "trackBy" }, host: { properties: { "attr.aria-disabled": "this.disabled", "attr.aria-haspopup": "this.hasPopup", "attr.aria-label": "this.label" } }, providers: [PopupService, {
|
|
1813
1839
|
provide: POPUP_CONTAINER,
|
|
1814
1840
|
useFactory: bodyFactory
|
|
1815
|
-
}], viewQueries: [{ propertyName: "link", first: true, predicate: ["link"], descendants: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }], ngImport: i0, template: `
|
|
1841
|
+
}], viewQueries: [{ propertyName: "link", first: true, predicate: ["link"], descendants: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
1816
1842
|
@if (!hasLink && !item.content && !linkTemplate) {
|
|
1817
1843
|
<span class="k-link k-menu-link" #link
|
|
1818
1844
|
[class.k-active]="opened" role="presentation">
|
|
@@ -1855,6 +1881,7 @@ class ItemComponent {
|
|
|
1855
1881
|
[itemTemplate]="itemTemplate"
|
|
1856
1882
|
[itemLinkTemplate]="itemLinkTemplate"
|
|
1857
1883
|
[popupSettings]="popupSettings"
|
|
1884
|
+
[trackBy]="trackBy"
|
|
1858
1885
|
[ngClass]="menuListClasses"
|
|
1859
1886
|
role="menu">
|
|
1860
1887
|
</ul>
|
|
@@ -1875,7 +1902,7 @@ class ItemComponent {
|
|
|
1875
1902
|
<kendo-icon-wrapper [name]="fontIcon(horizontal, rtl)" [svgIcon]="SVGIcon(horizontal, rtl)" class="k-menu-expand-arrow" aria-hidden="true"></kendo-icon-wrapper>
|
|
1876
1903
|
}
|
|
1877
1904
|
</ng-template>
|
|
1878
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ListComponent, selector: "[kendoMenuList]", inputs: ["appendTo", "items", "level", "index", "animate", "size", "vertical", "rtl", "openOnClick", "itemTemplate", "itemLinkTemplate", "popupSettings"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
1905
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ListComponent, selector: "[kendoMenuList]", inputs: ["appendTo", "items", "level", "index", "animate", "size", "vertical", "rtl", "openOnClick", "itemTemplate", "itemLinkTemplate", "popupSettings", "trackBy"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
1879
1906
|
}
|
|
1880
1907
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ItemComponent, decorators: [{
|
|
1881
1908
|
type: Component,
|
|
@@ -1928,6 +1955,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
1928
1955
|
[itemTemplate]="itemTemplate"
|
|
1929
1956
|
[itemLinkTemplate]="itemLinkTemplate"
|
|
1930
1957
|
[popupSettings]="popupSettings"
|
|
1958
|
+
[trackBy]="trackBy"
|
|
1931
1959
|
[ngClass]="menuListClasses"
|
|
1932
1960
|
role="menu">
|
|
1933
1961
|
</ul>
|
|
@@ -1980,6 +2008,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
1980
2008
|
type: Input
|
|
1981
2009
|
}], popupSettings: [{
|
|
1982
2010
|
type: Input
|
|
2011
|
+
}], trackBy: [{
|
|
2012
|
+
type: Input
|
|
1983
2013
|
}], link: [{
|
|
1984
2014
|
type: ViewChild,
|
|
1985
2015
|
args: ['link', { static: false }]
|
|
@@ -2215,9 +2245,10 @@ class MenuComponent extends MenuBase {
|
|
|
2215
2245
|
[itemTemplate]="itemTemplate.first?.templateRef || menuItemTemplate"
|
|
2216
2246
|
[itemLinkTemplate]="itemLinkTemplate.first?.templateRef || menuItemLinkTemplate"
|
|
2217
2247
|
[popupSettings]="popupSettings"
|
|
2248
|
+
[trackBy]="trackBy"
|
|
2218
2249
|
[ngClass]="menuClasses">
|
|
2219
2250
|
</ul>
|
|
2220
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ListComponent, selector: "[kendoMenuList]", inputs: ["appendTo", "items", "level", "index", "animate", "size", "vertical", "rtl", "openOnClick", "itemTemplate", "itemLinkTemplate", "popupSettings"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
2251
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ListComponent, selector: "[kendoMenuList]", inputs: ["appendTo", "items", "level", "index", "animate", "size", "vertical", "rtl", "openOnClick", "itemTemplate", "itemLinkTemplate", "popupSettings", "trackBy"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
2221
2252
|
}
|
|
2222
2253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MenuComponent, decorators: [{
|
|
2223
2254
|
type: Component,
|
|
@@ -2248,6 +2279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
2248
2279
|
[itemTemplate]="itemTemplate.first?.templateRef || menuItemTemplate"
|
|
2249
2280
|
[itemLinkTemplate]="itemLinkTemplate.first?.templateRef || menuItemLinkTemplate"
|
|
2250
2281
|
[popupSettings]="popupSettings"
|
|
2282
|
+
[trackBy]="trackBy"
|
|
2251
2283
|
[ngClass]="menuClasses">
|
|
2252
2284
|
</ul>
|
|
2253
2285
|
`,
|
|
@@ -3382,6 +3414,7 @@ class ContextMenuComponent extends MenuBase {
|
|
|
3382
3414
|
[hoverDelay]="hoverDelay"
|
|
3383
3415
|
[animate]="animate"
|
|
3384
3416
|
[popupSettings]="popupSettings"
|
|
3417
|
+
[trackBy]="trackBy"
|
|
3385
3418
|
[menuItemTemplate]="itemTemplate.first?.templateRef"
|
|
3386
3419
|
[menuItemLinkTemplate]="itemLinkTemplate.first?.templateRef"
|
|
3387
3420
|
></kendo-menu>
|
|
@@ -3425,6 +3458,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
3425
3458
|
[hoverDelay]="hoverDelay"
|
|
3426
3459
|
[animate]="animate"
|
|
3427
3460
|
[popupSettings]="popupSettings"
|
|
3461
|
+
[trackBy]="trackBy"
|
|
3428
3462
|
[menuItemTemplate]="itemTemplate.first?.templateRef"
|
|
3429
3463
|
[menuItemLinkTemplate]="itemLinkTemplate.first?.templateRef"
|
|
3430
3464
|
></kendo-menu>
|
package/menu-base.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { QueryList } from '@angular/core';
|
|
5
|
+
import { QueryList, TrackByFunction } from '@angular/core';
|
|
6
6
|
import { MenuItemComponent } from './menu-item.component';
|
|
7
7
|
import { MenuAnimation } from './menu-animation.interface';
|
|
8
8
|
import { OpenOnClickSettings } from './open-on-click-settings';
|
|
@@ -53,6 +53,11 @@ export declare class MenuBase {
|
|
|
53
53
|
* Allows customization of the popup class and margin.
|
|
54
54
|
*/
|
|
55
55
|
popupSettings: PopupSettings;
|
|
56
|
+
/**
|
|
57
|
+
* Defines a function that determines how to track changes for the menu items.
|
|
58
|
+
* By default, the component tracks changes by index.
|
|
59
|
+
*/
|
|
60
|
+
trackBy: TrackByFunction<any>;
|
|
56
61
|
/**
|
|
57
62
|
* @hidden
|
|
58
63
|
*/
|
|
@@ -70,5 +75,5 @@ export declare class MenuBase {
|
|
|
70
75
|
*/
|
|
71
76
|
get rootItems(): any[];
|
|
72
77
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuBase, never>;
|
|
73
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MenuBase, "kendo-menu-base", never, { "items": { "alias": "items"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "openOnClick": { "alias": "openOnClick"; "required": false; }; "hoverDelay": { "alias": "hoverDelay"; "required": false; }; "animate": { "alias": "animate"; "required": false; }; "size": { "alias": "size"; "required": false; }; "popupSettings": { "alias": "popupSettings"; "required": false; }; }, {}, ["itemTemplate", "itemLinkTemplate", "children"], never, true, never>;
|
|
78
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MenuBase, "kendo-menu-base", never, { "items": { "alias": "items"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "openOnClick": { "alias": "openOnClick"; "required": false; }; "hoverDelay": { "alias": "hoverDelay"; "required": false; }; "animate": { "alias": "animate"; "required": false; }; "size": { "alias": "size"; "required": false; }; "popupSettings": { "alias": "popupSettings"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; }, {}, ["itemTemplate", "itemLinkTemplate", "children"], never, true, never>;
|
|
74
79
|
}
|
package/package-metadata.mjs
CHANGED
|
@@ -7,7 +7,7 @@ export const packageMetadata = {
|
|
|
7
7
|
"productCodes": [
|
|
8
8
|
"KENDOUIANGULAR"
|
|
9
9
|
],
|
|
10
|
-
"publishDate":
|
|
11
|
-
"version": "23.3.0-develop.
|
|
10
|
+
"publishDate": 1774603374,
|
|
11
|
+
"version": "23.3.0-develop.18",
|
|
12
12
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
13
13
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-menu",
|
|
3
|
-
"version": "23.3.0-develop.
|
|
3
|
+
"version": "23.3.0-develop.18",
|
|
4
4
|
"description": "Kendo UI Angular Menu component",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"package": {
|
|
20
20
|
"productName": "Kendo UI for Angular",
|
|
21
21
|
"productCode": "KENDOUIANGULAR",
|
|
22
|
-
"publishDate":
|
|
22
|
+
"publishDate": 1774603374,
|
|
23
23
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
24
24
|
}
|
|
25
25
|
},
|
|
@@ -29,15 +29,15 @@
|
|
|
29
29
|
"@angular/core": "19 - 21",
|
|
30
30
|
"@angular/platform-browser": "19 - 21",
|
|
31
31
|
"@progress/kendo-licensing": "^1.10.0",
|
|
32
|
-
"@progress/kendo-angular-common": "23.3.0-develop.
|
|
33
|
-
"@progress/kendo-angular-l10n": "23.3.0-develop.
|
|
34
|
-
"@progress/kendo-angular-icons": "23.3.0-develop.
|
|
35
|
-
"@progress/kendo-angular-popup": "23.3.0-develop.
|
|
32
|
+
"@progress/kendo-angular-common": "23.3.0-develop.18",
|
|
33
|
+
"@progress/kendo-angular-l10n": "23.3.0-develop.18",
|
|
34
|
+
"@progress/kendo-angular-icons": "23.3.0-develop.18",
|
|
35
|
+
"@progress/kendo-angular-popup": "23.3.0-develop.18",
|
|
36
36
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"tslib": "^2.3.1",
|
|
40
|
-
"@progress/kendo-angular-schematics": "23.3.0-develop.
|
|
40
|
+
"@progress/kendo-angular-schematics": "23.3.0-develop.18"
|
|
41
41
|
},
|
|
42
42
|
"schematics": "./schematics/collection.json",
|
|
43
43
|
"module": "fesm2022/progress-kendo-angular-menu.mjs",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { AfterViewInit, ElementRef, NgZone, OnDestroy, OnInit, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
5
|
+
import { AfterViewInit, ElementRef, NgZone, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, TemplateRef, TrackByFunction, ViewContainerRef } from '@angular/core';
|
|
6
6
|
import { ChangeDetectorRef } from '@angular/core';
|
|
7
7
|
import { PopupService } from '@progress/kendo-angular-popup';
|
|
8
8
|
import { ContextMenuService } from '../context-menu/context-menu.service';
|
|
@@ -37,8 +37,10 @@ export declare class ListComponent implements OnInit, OnDestroy {
|
|
|
37
37
|
itemTemplate: TemplateRef<any>;
|
|
38
38
|
itemLinkTemplate: TemplateRef<any>;
|
|
39
39
|
popupSettings: PopupSettings;
|
|
40
|
+
trackBy: TrackByFunction<any>;
|
|
40
41
|
private domSubscriptions;
|
|
41
42
|
constructor(itemsService: ItemsService, hover: HoverService, actions: ActionsService, navigation: NavigationService, renderer: Renderer2, ngZone: NgZone, element: ElementRef);
|
|
43
|
+
trackByWrapper(index: number, item: any): any;
|
|
42
44
|
hierarchyIndex(index: number): string;
|
|
43
45
|
ngOnInit(): void;
|
|
44
46
|
ngOnDestroy(): void;
|
|
@@ -48,12 +50,12 @@ export declare class ListComponent implements OnInit, OnDestroy {
|
|
|
48
50
|
private nodeItem;
|
|
49
51
|
private clickHandler;
|
|
50
52
|
static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
|
|
51
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "[kendoMenuList]", never, { "appendTo": { "alias": "appendTo"; "required": false; }; "items": { "alias": "items"; "required": false; }; "level": { "alias": "level"; "required": false; }; "index": { "alias": "index"; "required": false; }; "animate": { "alias": "animate"; "required": false; }; "size": { "alias": "size"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "openOnClick": { "alias": "openOnClick"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "itemLinkTemplate": { "alias": "itemLinkTemplate"; "required": false; }; "popupSettings": { "alias": "popupSettings"; "required": false; }; }, {}, never, never, true, never>;
|
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "[kendoMenuList]", never, { "appendTo": { "alias": "appendTo"; "required": false; }; "items": { "alias": "items"; "required": false; }; "level": { "alias": "level"; "required": false; }; "index": { "alias": "index"; "required": false; }; "animate": { "alias": "animate"; "required": false; }; "size": { "alias": "size"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "openOnClick": { "alias": "openOnClick"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "itemLinkTemplate": { "alias": "itemLinkTemplate"; "required": false; }; "popupSettings": { "alias": "popupSettings"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; }, {}, never, never, true, never>;
|
|
52
54
|
}
|
|
53
55
|
/**
|
|
54
56
|
* @hidden
|
|
55
57
|
*/
|
|
56
|
-
export declare class ItemComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
58
|
+
export declare class ItemComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {
|
|
57
59
|
private itemsService;
|
|
58
60
|
private navigation;
|
|
59
61
|
private changeDetector;
|
|
@@ -75,6 +77,7 @@ export declare class ItemComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
75
77
|
itemTemplate: TemplateRef<any>;
|
|
76
78
|
itemLinkTemplate: TemplateRef<any>;
|
|
77
79
|
popupSettings: PopupSettings;
|
|
80
|
+
trackBy: TrackByFunction<any>;
|
|
78
81
|
link: ElementRef;
|
|
79
82
|
popupTemplate: TemplateRef<any>;
|
|
80
83
|
get disabled(): boolean;
|
|
@@ -109,6 +112,7 @@ export declare class ItemComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
109
112
|
constructor(itemsService: ItemsService, navigation: NavigationService, changeDetector: ChangeDetectorRef, renderer: Renderer2, popupService: PopupService, element: ElementRef, contextService?: ContextMenuService);
|
|
110
113
|
hasContentTemplates(): boolean;
|
|
111
114
|
ngOnInit(): void;
|
|
115
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
112
116
|
ngAfterViewInit(): void;
|
|
113
117
|
ngOnDestroy(): void;
|
|
114
118
|
focus(): void;
|
|
@@ -120,5 +124,5 @@ export declare class ItemComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
120
124
|
private setAttribute;
|
|
121
125
|
private getMergedPopupSettings;
|
|
122
126
|
static ɵfac: i0.ɵɵFactoryDeclaration<ItemComponent, [null, null, null, null, null, null, { optional: true; }]>;
|
|
123
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ItemComponent, "[kendoMenuItem]", never, { "appendTo": { "alias": "appendTo"; "required": false; }; "item": { "alias": "item"; "required": false; }; "level": { "alias": "level"; "required": false; }; "index": { "alias": "index"; "required": false; }; "siblingIndex": { "alias": "siblingIndex"; "required": false; }; "animate": { "alias": "animate"; "required": false; }; "size": { "alias": "size"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "openOnClick": { "alias": "openOnClick"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "itemLinkTemplate": { "alias": "itemLinkTemplate"; "required": false; }; "popupSettings": { "alias": "popupSettings"; "required": false; }; }, {}, never, never, true, never>;
|
|
127
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ItemComponent, "[kendoMenuItem]", never, { "appendTo": { "alias": "appendTo"; "required": false; }; "item": { "alias": "item"; "required": false; }; "level": { "alias": "level"; "required": false; }; "index": { "alias": "index"; "required": false; }; "siblingIndex": { "alias": "siblingIndex"; "required": false; }; "animate": { "alias": "animate"; "required": false; }; "size": { "alias": "size"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "openOnClick": { "alias": "openOnClick"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "itemLinkTemplate": { "alias": "itemLinkTemplate"; "required": false; }; "popupSettings": { "alias": "popupSettings"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; }, {}, never, never, true, never>;
|
|
124
128
|
}
|
package/utils.d.ts
CHANGED
|
@@ -25,3 +25,7 @@ export declare const getFontIcon: (horizontal: boolean, rtl: boolean) => string;
|
|
|
25
25
|
* @hidden
|
|
26
26
|
*/
|
|
27
27
|
export declare const getSVGIcon: (horizontal: boolean, rtl: boolean) => SVGIcon;
|
|
28
|
+
/**
|
|
29
|
+
* @hidden
|
|
30
|
+
*/
|
|
31
|
+
export declare function defaultTrackBy(index: number): number;
|