@rt-tools/ui-kit 0.8.0 → 0.9.0
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/fesm2022/rt-tools-ui-kit.mjs +22 -4
- package/fesm2022/rt-tools-ui-kit.mjs.map +1 -1
- package/package.json +1 -1
- package/rt-tools-ui-kit-0.9.0.tgz +0 -0
- package/src/lib/ui-kit/side-menu/favorites/rtui-side-menu-favorites.component.scss +2 -3
- package/src/lib/ui-kit/side-menu/menu-sub-item/rtui-side-menu-sub-item.component.scss +15 -0
- package/types/rt-tools-ui-kit.d.ts +14 -1
- package/rt-tools-ui-kit-0.8.0.tgz +0 -0
|
@@ -1124,6 +1124,10 @@ const DEFAULT_LABELS = {
|
|
|
1124
1124
|
remove: 'Remove from favourites',
|
|
1125
1125
|
drag: 'Hold button to drag',
|
|
1126
1126
|
};
|
|
1127
|
+
const DEFAULT_ICONS = {
|
|
1128
|
+
remove: { glyph: 'delete', rotate: 0 },
|
|
1129
|
+
drag: { glyph: 'arrows_outward', rotate: 90 },
|
|
1130
|
+
};
|
|
1127
1131
|
const RTUI_SIDE_MENU_SETTINGS_CONFIG = new InjectionToken('RTUI_SIDE_MENU_SETTINGS_CONFIG');
|
|
1128
1132
|
/** Один сигнал на номер меню: меню и приложение читают одно и то же, не плодя вычислений. */
|
|
1129
1133
|
function cached(cache, menuId, read) {
|
|
@@ -1187,6 +1191,11 @@ class RtuiSideMenuSettingsService {
|
|
|
1187
1191
|
this.menuIds = computed(() => Object.keys(this.#settings()), /* @ts-ignore */
|
|
1188
1192
|
...(ngDevMode ? [{ debugName: "menuIds" }] : /* istanbul ignore next */ []));
|
|
1189
1193
|
this.labels = { ...DEFAULT_LABELS, ...this.#definedLabels() };
|
|
1194
|
+
/** Заданный приложением значок заменяет свой целиком, незаданный остаётся по умолчанию. */
|
|
1195
|
+
this.icons = {
|
|
1196
|
+
remove: this.#icon(this.#config.icons?.remove, DEFAULT_ICONS.remove),
|
|
1197
|
+
drag: this.#icon(this.#config.icons?.drag, DEFAULT_ICONS.drag),
|
|
1198
|
+
};
|
|
1190
1199
|
if (!inject(PlatformService).isPlatformBrowser) {
|
|
1191
1200
|
return;
|
|
1192
1201
|
}
|
|
@@ -1303,6 +1312,15 @@ class RtuiSideMenuSettingsService {
|
|
|
1303
1312
|
#definedLabels() {
|
|
1304
1313
|
return Object.fromEntries(Object.entries(this.#config.labels ?? {}).filter(([, value]) => Boolean(value?.trim())));
|
|
1305
1314
|
}
|
|
1315
|
+
/** Пустой глиф равен отсутствию, как пустая подпись: иначе кнопка осталась бы без значка. */
|
|
1316
|
+
#icon(icon, fallback) {
|
|
1317
|
+
const glyph = icon?.glyph?.trim() ?? '';
|
|
1318
|
+
if (!glyph) {
|
|
1319
|
+
return fallback;
|
|
1320
|
+
}
|
|
1321
|
+
const rotate = icon?.rotate;
|
|
1322
|
+
return { glyph, rotate: rotate !== undefined && Number.isFinite(rotate) ? rotate : 0 };
|
|
1323
|
+
}
|
|
1306
1324
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtuiSideMenuSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1307
1325
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtuiSideMenuSettingsService }); }
|
|
1308
1326
|
}
|
|
@@ -1457,7 +1475,7 @@ class RtuiSideMenuSubItemComponent {
|
|
|
1457
1475
|
disableTooltipInteractivity: true,
|
|
1458
1476
|
},
|
|
1459
1477
|
},
|
|
1460
|
-
], ngImport: i0, template: "@if (item()) {\n <ng-container *ngTemplateOutlet=\"listElemTpl; context: { $implicit: item() }\" />\n}\n\n<ng-template #listElemTpl let-item>\n @if (item?.link) {\n <mat-list-item\n rtBlock=\"rtui-side-menu-sub-item\"\n [rtMod]=\"{ fixed: isSubMenuXScrollEnabled(), highlighted: !inFavorites() && menuRef.highlightedMenuId() === item.id }\"\n [id]=\"inFavorites() ? null : item.id\"\n [activated]=\"menuRef.activeMenuIds().includes(item.id)\"\n (click)=\"onClickSubMenu(item, $event)\">\n @if (item?.icon) {\n <mat-icon matListItemIcon rtElem=\"icon\" [rtIconOutlined]=\"isSubMenuIconsOutlined()\">{{ item.icon }}</mat-icon>\n }\n\n @if (item?.name) {\n <div rtBlock=\"rtui-side-menu-sub-item-title\" [rtMod]=\"{ favorites: favoritesOn() || inFavorites() }\">\n <div\n #titleTpl\n rtElem=\"text\"\n matTooltipPosition=\"above\"\n [matTooltip]=\"item.name\"\n [matTooltipDisabled]=\"!isSubMenuTooltipsShown() || narrow()\"\n [rtHideTooltipDirective]=\"titleTpl\"\n [isTooltipShown]=\"isSubMenuTooltipsShown() && !narrow()\">\n <!--\n \u041F\u043E\u0434\u043F\u0438\u0441\u044C \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043A\u0443\u0441\u043A\u0430\u043C\u0438: \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u043E \u0440\u043E\u0432\u043D\u043E \u0442\u043E, \u0447\u0435\u043C \u043E\u043D\u0430 \u0441\u043E\u0432\u043F\u0430\u043B\u0430 \u0441\n \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u043C. \u041E\u0442\u043C\u0435\u0447\u0435\u043D\u043D\u043E\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043E \u0441\u0432\u043E\u0438\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u043C, \u0430 \u043D\u0435 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u043E\u0439\n \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u2014 \u0442\u0430 \u043A\u0440\u0430\u0441\u0438\u0442 \u043C\u0438\u043C\u043E \u043D\u0430\u0431\u043E\u0440\u0430 \u0442\u043E\u043A\u0435\u043D\u043E\u0432.\n -->\n @for (part of item.name | rtuiSubMenuTitleParts: menuRef.subMenuQuery(); track $index) {\n @if (part.matched) {\n <span rtElem=\"match\">{{ part.text }}</span>\n } @else {\n <!--\n \u041A\u0443\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u0442\u043A\u0438 \u0442\u043E\u0436\u0435 \u0443\u0437\u0435\u043B: \u0438\u043D\u0442\u0435\u0440\u043F\u043E\u043B\u044F\u0446\u0438\u044F, \u0441\u0442\u043E\u044F\u0449\u0430\u044F \u0432 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0435\n \u0441\u0430\u043C\u0430 \u043F\u043E \u0441\u0435\u0431\u0435, \u043F\u0440\u0438\u0435\u0437\u0436\u0430\u0435\u0442 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A \u0432\u043E\u043A\u0440\u0443\u0433 \u043D\u0435\u0451\n \u0438 \u0440\u0430\u0437\u0440\u044B\u0432\u0430\u0435\u0442 \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u0430\u043C\u0438.\n -->\n <span>{{ part.text }}</span>\n }\n }\n </div>\n\n <!--\n \u0421\u0442\u0440\u043E\u043A\u0430 \u0431\u043B\u043E\u043A\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 \u043A\u043D\u043E\u043F\u043A\u0443 \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB, \u0430 \u043D\u0435 \u0437\u0432\u0435\u0437\u0434\u0443: \u0432\u0441\u0451 \u0432 \u0431\u043B\u043E\u043A\u0435 \u0443\u0436\u0435\n \u0432 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u043C, \u0438 \u0437\u0432\u0435\u0437\u0434\u0430 \u0442\u0430\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u043B\u0430 \u0431\u044B.\n -->\n @if (inFavorites() && favorites) {\n <button\n mat-icon-button\n type=\"button\"\n rtElem=\"favorite\"\n qa-dataid=\"side-menu-favorite-remove\"\n matTooltipPosition=\"above\"\n [rtMod]=\"{ always: narrow() }\"\n [matTooltip]=\"favorites.labels.remove\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"favorites.labels.remove\"\n (click)=\"onRemoveFavorite(item, $event)\"\n (focusin)=\"onFavoriteFocus($event)\">\n <mat-icon rtElem=\"favorite-icon\" [rtIconOutlined]=\"true\">remove</mat-icon>\n </button>\n } @else if (favoritesOn() && favorites && item.link?.trim()) {\n <!--\n \u0417\u0432\u0435\u0437\u0434\u0430 \u2014 \u0443 \u043F\u0443\u043D\u043A\u0442\u0430 \u0441\u043E \u0441\u0432\u043E\u0438\u043C \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435, \u0433\u0434\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u043A\u043B\u044E\u0447\u0438\u043B\u043E\n \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0435. \u041F\u043E\u043B\u0430\u044F \u2014 \u043D\u0435 \u0432 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u043C, \u0437\u0430\u043A\u0440\u0430\u0448\u0435\u043D\u043D\u0430\u044F \u0446\u0432\u0435\u0442\u043E\u043C \u0442\u0435\u043C\u044B \u2014 \u0432 \u043D\u0451\u043C.\n \u0417\u0430\u043B\u0438\u0432\u043A\u0443 \u0434\u0430\u044E\u0442 \u0438 \u0433\u043B\u0438\u0444, \u0438 \u043E\u0441\u044C \u0437\u0430\u043B\u0438\u0432\u043A\u0438: \u0441\u0442\u0430\u0442\u0438\u0447\u043D\u044B\u0439 \u043D\u0430\u0431\u043E\u0440 \u0437\u043D\u0430\u0447\u043A\u043E\u0432 \u043E\u0441\u0438 \u043D\u0435 \u0437\u043D\u0430\u0435\u0442,\n \u0430 \u0443 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E `star` \u0431\u0435\u0437 \u043E\u0441\u0438 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043F\u043E\u043B\u044B\u043C.\n\n \u0418\u043C\u044F \u043A\u043D\u043E\u043F\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043D\u0430\u0436\u0430\u0442\u0438\u0435, \u0438 `aria-pressed` \u0443 \u043D\u0435\u0451 \u043D\u0435\u0442:\n \u043D\u0430\u0436\u0430\u0442\u0430\u044F \u043A\u043D\u043E\u043F\u043A\u0430 \u0441 \u0438\u043C\u0435\u043D\u0435\u043C \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB \u0447\u0438\u0442\u0430\u043B\u0430\u0441\u044C \u0431\u044B \u0432\u0434\u0432\u043E\u0435.\n -->\n @let isFavorite = favoriteIds().includes(item.id);\n <button\n mat-icon-button\n type=\"button\"\n rtElem=\"favorite\"\n qa-dataid=\"side-menu-favorite-star\"\n matTooltipPosition=\"above\"\n [rtMod]=\"{ on: isFavorite, always: narrow() }\"\n [matTooltip]=\"isFavorite ? favorites.labels.remove : favorites.labels.add\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"isFavorite ? favorites.labels.remove : favorites.labels.add\"\n (click)=\"onToggleFavorite(item, $event)\"\n (focusin)=\"onFavoriteFocus($event)\">\n <mat-icon rtElem=\"favorite-icon\" [rtIconOutlined]=\"!isFavorite\">\n {{ isFavorite ? 'star' : 'star_border' }}\n </mat-icon>\n </button>\n }\n\n <!--\n \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0432\u043B\u0430\u0434\u0435\u043B\u0435\u0446: \u0431\u043B\u043E\u043A \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043A\u043B\u0430\u0434\u0451\u0442 \u0441\u044E\u0434\u0430 \u0440\u0443\u0447\u043A\u0443\n \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F. \u0421\u043B\u043E\u0442 \u043E\u0434\u0438\u043D \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D \u2014 \u043F\u043E\u0434\u043F\u0443\u043D\u043A\u0442 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043E\u0434\u0438\u043D \u0440\u0430\u0437.\n -->\n <ng-content select=\"[rtuiSideMenuSubItemAction]\" />\n\n <!--\n \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u044F \u0432\u0438\u0434\u043D\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438 \u043F\u043E\u0442\u043E\u043C\u0443 \u0441\u0442\u043E\u0438\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439, \u0443 \u043F\u0440\u0430\u0432\u043E\u0433\u043E \u043A\u0440\u0430\u044F:\n \u043A\u043D\u043E\u043F\u043A\u0438 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E, \u043F\u043E\u044F\u0432\u043B\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u043F\u043E\u0434 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C, \u0432\u0441\u0442\u0430\u044E\u0442 \u043F\u0435\u0440\u0435\u0434 \u043D\u0435\u0439 \u0438 \u043D\u0435\n \u0441\u0434\u0432\u0438\u0433\u0430\u044E\u0442 \u0435\u0451.\n -->\n @if (item?.iconButton?.icon) {\n <div rtBlock=\"rtui-side-menu-sub-item-title-button\">\n <mat-icon\n rtElem=\"icon\"\n [rtIconOutlined]=\"isSubMenuButtonIconsOutlined()\"\n (click)=\"onClickSubMenuAdditional(item.iconButton?.data, $event); $event.stopPropagation()\">\n {{ item.iconButton.icon }}\n </mat-icon>\n </div>\n }\n </div>\n }\n </mat-list-item>\n } @else if (item?.submenu) {\n <!--\n \u041F\u0430\u043F\u043A\u0430 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u0438 \u0441 \u043F\u0443\u0441\u0442\u044B\u043C \u0441\u043E\u0441\u0442\u0430\u0432\u043E\u043C: \u043E\u0442\u0431\u043E\u0440 \u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0430\u043A \u0442\u0443, \u0447\u0442\u043E \u0441\u043E\u0432\u043F\u0430\u043B\u0430 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E, \u0430\n \u0432\u043D\u0443\u0442\u0440\u0438 \u043D\u0435 \u043D\u0430\u0448\u043B\u043E\u0441\u044C \u043D\u0438\u043A\u043E\u0433\u043E \u2014 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0438\u0441\u043A\u0430\u043B \u0435\u0451 \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438 \u0434\u043E\u043B\u0436\u0435\u043D \u0435\u0451 \u043D\u0430\u0439\u0442\u0438. \u0428\u0435\u0432\u0440\u043E\u043D \u0443 \u0442\u0430\u043A\u043E\u0439\n \u043F\u0430\u043F\u043A\u0438 \u0443\u0431\u0440\u0430\u043D: \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E, \u0438 \u0441\u0442\u0440\u0435\u043B\u043A\u0430 \u043E\u0431\u0435\u0449\u0430\u043B\u0430 \u0431\u044B \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435.\n -->\n <mat-expansion-panel\n #panel\n rtBlock=\"rtui-side-menu-expand-sub-item\"\n [rtMod]=\"{ fixed: isSubMenuXScrollEnabled() }\"\n [hideToggle]=\"!item.submenu.length\"\n [expanded]=\"menuRef.expandedMenuIds().includes(item.id)\">\n <mat-expansion-panel-header\n rtBlock=\"rtui-side-menu-expand-sub-item-header\"\n [rtMod]=\"{\n activated: menuRef.activeMenuIds().includes(item.id),\n highlighted: menuRef.highlightedMenuId() === item.id,\n favorites: favoritesOn(),\n }\">\n @if (item?.icon) {\n <mat-icon matListItemIcon rtElem=\"icon\" [rtIconOutlined]=\"isSubMenuIconsOutlined()\">{{ item.icon }}</mat-icon>\n }\n\n @if (item?.name) {\n <div\n #headerTitleTpl\n matListItemTitle\n rtElem=\"title\"\n matTooltipPosition=\"above\"\n [matTooltip]=\"item.name\"\n [matTooltipDisabled]=\"!isSubMenuTooltipsShown() || narrow()\"\n [rtHideTooltipDirective]=\"headerTitleTpl\"\n [isTooltipShown]=\"isSubMenuTooltipsShown() && !narrow()\">\n @for (part of item.name | rtuiSubMenuTitleParts: menuRef.subMenuQuery(); track $index) {\n @if (part.matched) {\n <span rtElem=\"match\">{{ part.text }}</span>\n } @else {\n <span>{{ part.text }}</span>\n }\n }\n </div>\n }\n </mat-expansion-panel-header>\n\n @if (panel?.expanded && item?.submenu?.length) {\n <mat-nav-list>\n @for (item of item?.submenu; track i; let i = $index) {\n <ng-container *ngTemplateOutlet=\"listElemTpl; context: { $implicit: item }\" />\n }\n </mat-nav-list>\n }\n </mat-expansion-panel>\n }\n</ng-template>\n", styles: [":host{display:block;max-width:100%}:host::ng-deep .mat-expansion-indicator{padding:0 var(--rt-spacing-24)}:host::ng-deep .mat-expansion-panel-body{padding:0 0 0 var(--rt-spacing-16)}:host::ng-deep{--mat-expansion-container-background-color: transparent;--mat-expansion-header-expanded-state-height: var(--mat-expansion-header-collapsed-state-height)}:host .rtui-side-menu-sub-item{max-width:100%}:host .rtui-side-menu-sub-item--fixed{min-width:min(var(--rt-side-menu-sub-menu-item-width),100%)}:host .rtui-side-menu-sub-item--highlighted{border-radius:var(--rt-radius-xl);outline:2px solid var(--rt-border-focus);outline-offset:-2px}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title{display:flex;align-items:center;justify-content:space-between}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__text{overflow:hidden;min-width:0;flex:1 1 auto;font-size:var(--rt-side-menu-sub-menu-item-title-font-size);text-overflow:ellipsis;white-space:nowrap}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__match{border-radius:var(--rt-radius-xs);background-color:var(--rt-bg-accent-highlight);color:var(--rt-text-accent-highlight);font-weight:var(--rt-font-weight-semibold)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button{display:flex;align-items:center;justify-content:center;padding:var(--rt-spacing-2);border:1.5px solid transparent;border-radius:var(--rt-radius-full);margin-left:var(--rt-spacing-8);cursor:pointer}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button__icon{width:1.25rem;height:1.25rem;font-size:var(--rt-font-size-lg)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button:hover{border-color:var(--rt-border-neutral-emphasis)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title--favorites .rtui-side-menu-sub-item-title-button{--rt-side-menu-sub-item-favorite-column: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));margin-right:calc((var(--rt-side-menu-sub-item-favorite-column) - var(--rt-spacing-24) - var(--rt-spacing-2)) / 2)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{--mat-icon-button-state-layer-size: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));--mat-icon-button-icon-size: var(--rt-side-menu-favorite-action-icon-size, var(--rt-font-size-lg));--mat-icon-button-icon-color: var(--rt-side-menu-favorite-action-color, var(--rt-text-base-secondary));flex:0 0 auto;margin-left:var(--rt-spacing-4);opacity:0}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--on,:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--always{opacity:1}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--on{--mat-icon-button-icon-color: var( --rt-side-menu-favorite-color, var(--mat-sys-primary, var(--mat-button-filled-container-color, var(--rt-icon-accent-primary))) )}@media(hover:none){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{opacity:1}}@media(pointer:fine){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{--mat-icon-button-touch-target-display: none}}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite-icon{width:var(--mat-icon-button-icon-size);height:var(--mat-icon-button-icon-size);font-size:var(--mat-icon-button-icon-size);line-height:1}:host .rtui-side-menu-sub-item:hover .rtui-side-menu-sub-item-title__favorite,:host .rtui-side-menu-sub-item:has(:focus-visible) .rtui-side-menu-sub-item-title__favorite{opacity:1}:host .rtui-side-menu-expand-sub-item{padding:0;border-radius:var(--rt-radius-xl);box-shadow:none}:host .rtui-side-menu-expand-sub-item--fixed{min-width:min(var(--rt-side-menu-sub-menu-item-width),100%)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header{max-width:100%;padding:0}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--favorites ::ng-deep .mat-expansion-indicator{margin-right:calc(var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2)) / 2 - var(--rt-spacing-12))}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--activated{background-color:var(--mat-list-active-indicator-color)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--highlighted{border-radius:var(--rt-radius-xl);outline:2px solid var(--rt-border-focus);outline-offset:-2px}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__icon{color:var(--mdc-list-list-item-leading-icon-color);margin-inline:var(--mat-list-list-item-leading-icon-start-space) var(--mat-list-list-item-leading-icon-end-space)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__title{font-size:var(--rt-side-menu-sub-menu-item-title-font-size)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__match{border-radius:var(--rt-radius-xs);background-color:var(--rt-bg-accent-highlight);color:var(--rt-text-accent-highlight);font-weight:var(--rt-font-weight-semibold)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header:hover .rtui-side-menu-expand-sub-item-header__icon{color:var(--mdc-list-list-item-hover-leading-icon-color)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "directive", type: MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i1$3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i1$3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type:
|
|
1478
|
+
], ngImport: i0, template: "@if (item()) {\n <ng-container *ngTemplateOutlet=\"listElemTpl; context: { $implicit: item() }\" />\n}\n\n<ng-template #listElemTpl let-item>\n @if (item?.link) {\n <mat-list-item\n rtBlock=\"rtui-side-menu-sub-item\"\n [rtMod]=\"{ fixed: isSubMenuXScrollEnabled(), highlighted: !inFavorites() && menuRef.highlightedMenuId() === item.id }\"\n [id]=\"inFavorites() ? null : item.id\"\n [activated]=\"menuRef.activeMenuIds().includes(item.id)\"\n (click)=\"onClickSubMenu(item, $event)\">\n @if (item?.icon) {\n <mat-icon matListItemIcon rtElem=\"icon\" [rtIconOutlined]=\"isSubMenuIconsOutlined()\">{{ item.icon }}</mat-icon>\n }\n\n @if (item?.name) {\n <div rtBlock=\"rtui-side-menu-sub-item-title\" [rtMod]=\"{ favorites: favoritesOn() || inFavorites() }\">\n <div\n #titleTpl\n rtElem=\"text\"\n matTooltipPosition=\"above\"\n [matTooltip]=\"item.name\"\n [matTooltipDisabled]=\"!isSubMenuTooltipsShown() || narrow()\"\n [rtHideTooltipDirective]=\"titleTpl\"\n [isTooltipShown]=\"isSubMenuTooltipsShown() && !narrow()\">\n <!--\n \u041F\u043E\u0434\u043F\u0438\u0441\u044C \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043A\u0443\u0441\u043A\u0430\u043C\u0438: \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u043E \u0440\u043E\u0432\u043D\u043E \u0442\u043E, \u0447\u0435\u043C \u043E\u043D\u0430 \u0441\u043E\u0432\u043F\u0430\u043B\u0430 \u0441\n \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u043C. \u041E\u0442\u043C\u0435\u0447\u0435\u043D\u043D\u043E\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043E \u0441\u0432\u043E\u0438\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u043C, \u0430 \u043D\u0435 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u043E\u0439\n \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u2014 \u0442\u0430 \u043A\u0440\u0430\u0441\u0438\u0442 \u043C\u0438\u043C\u043E \u043D\u0430\u0431\u043E\u0440\u0430 \u0442\u043E\u043A\u0435\u043D\u043E\u0432.\n -->\n @for (part of item.name | rtuiSubMenuTitleParts: menuRef.subMenuQuery(); track $index) {\n @if (part.matched) {\n <span rtElem=\"match\">{{ part.text }}</span>\n } @else {\n <!--\n \u041A\u0443\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u0442\u043A\u0438 \u0442\u043E\u0436\u0435 \u0443\u0437\u0435\u043B: \u0438\u043D\u0442\u0435\u0440\u043F\u043E\u043B\u044F\u0446\u0438\u044F, \u0441\u0442\u043E\u044F\u0449\u0430\u044F \u0432 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0435\n \u0441\u0430\u043C\u0430 \u043F\u043E \u0441\u0435\u0431\u0435, \u043F\u0440\u0438\u0435\u0437\u0436\u0430\u0435\u0442 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A \u0432\u043E\u043A\u0440\u0443\u0433 \u043D\u0435\u0451\n \u0438 \u0440\u0430\u0437\u0440\u044B\u0432\u0430\u0435\u0442 \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u0430\u043C\u0438.\n -->\n <span>{{ part.text }}</span>\n }\n }\n </div>\n\n <!--\n \u0421\u0442\u0440\u043E\u043A\u0430 \u0431\u043B\u043E\u043A\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 \u043A\u043D\u043E\u043F\u043A\u0443 \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB, \u0430 \u043D\u0435 \u0437\u0432\u0435\u0437\u0434\u0443: \u0432\u0441\u0451 \u0432 \u0431\u043B\u043E\u043A\u0435 \u0443\u0436\u0435\n \u0432 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u043C, \u0438 \u0437\u0432\u0435\u0437\u0434\u0430 \u0442\u0430\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u043B\u0430 \u0431\u044B.\n -->\n @if (inFavorites() && favorites) {\n <button\n mat-icon-button\n type=\"button\"\n rtElem=\"favorite\"\n qa-dataid=\"side-menu-favorite-remove\"\n matTooltipPosition=\"above\"\n [rtMod]=\"{ always: narrow(), remove: true }\"\n [matTooltip]=\"favorites.labels.remove\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"favorites.labels.remove\"\n (click)=\"onRemoveFavorite(item, $event)\"\n (focusin)=\"onFavoriteFocus($event)\">\n <mat-icon rtElem=\"favorite-icon\" [rtIconOutlined]=\"true\" [style.rotate.deg]=\"favorites.icons.remove.rotate\">\n {{ favorites.icons.remove.glyph }}\n </mat-icon>\n </button>\n } @else if (favoritesOn() && favorites && item.link?.trim()) {\n <!--\n \u0417\u0432\u0435\u0437\u0434\u0430 \u2014 \u0443 \u043F\u0443\u043D\u043A\u0442\u0430 \u0441\u043E \u0441\u0432\u043E\u0438\u043C \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435, \u0433\u0434\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u043A\u043B\u044E\u0447\u0438\u043B\u043E\n \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0435. \u041F\u043E\u043B\u0430\u044F \u2014 \u043D\u0435 \u0432 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u043C, \u0437\u0430\u043A\u0440\u0430\u0448\u0435\u043D\u043D\u0430\u044F \u0446\u0432\u0435\u0442\u043E\u043C \u0442\u0435\u043C\u044B \u2014 \u0432 \u043D\u0451\u043C.\n \u0417\u0430\u043B\u0438\u0432\u043A\u0443 \u0434\u0430\u044E\u0442 \u0438 \u0433\u043B\u0438\u0444, \u0438 \u043E\u0441\u044C \u0437\u0430\u043B\u0438\u0432\u043A\u0438: \u0441\u0442\u0430\u0442\u0438\u0447\u043D\u044B\u0439 \u043D\u0430\u0431\u043E\u0440 \u0437\u043D\u0430\u0447\u043A\u043E\u0432 \u043E\u0441\u0438 \u043D\u0435 \u0437\u043D\u0430\u0435\u0442,\n \u0430 \u0443 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E `star` \u0431\u0435\u0437 \u043E\u0441\u0438 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043F\u043E\u043B\u044B\u043C.\n\n \u0418\u043C\u044F \u043A\u043D\u043E\u043F\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043D\u0430\u0436\u0430\u0442\u0438\u0435, \u0438 `aria-pressed` \u0443 \u043D\u0435\u0451 \u043D\u0435\u0442:\n \u043D\u0430\u0436\u0430\u0442\u0430\u044F \u043A\u043D\u043E\u043F\u043A\u0430 \u0441 \u0438\u043C\u0435\u043D\u0435\u043C \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB \u0447\u0438\u0442\u0430\u043B\u0430\u0441\u044C \u0431\u044B \u0432\u0434\u0432\u043E\u0435.\n -->\n @let isFavorite = favoriteIds().includes(item.id);\n <button\n mat-icon-button\n type=\"button\"\n rtElem=\"favorite\"\n qa-dataid=\"side-menu-favorite-star\"\n matTooltipPosition=\"above\"\n [rtMod]=\"{ on: isFavorite, always: narrow() }\"\n [matTooltip]=\"isFavorite ? favorites.labels.remove : favorites.labels.add\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"isFavorite ? favorites.labels.remove : favorites.labels.add\"\n (click)=\"onToggleFavorite(item, $event)\"\n (focusin)=\"onFavoriteFocus($event)\">\n <mat-icon rtElem=\"favorite-icon\" [rtIconOutlined]=\"!isFavorite\">\n {{ isFavorite ? 'star' : 'star_border' }}\n </mat-icon>\n </button>\n }\n\n <!--\n \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0432\u043B\u0430\u0434\u0435\u043B\u0435\u0446: \u0431\u043B\u043E\u043A \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043A\u043B\u0430\u0434\u0451\u0442 \u0441\u044E\u0434\u0430 \u0440\u0443\u0447\u043A\u0443\n \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F. \u0421\u043B\u043E\u0442 \u043E\u0434\u0438\u043D \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D \u2014 \u043F\u043E\u0434\u043F\u0443\u043D\u043A\u0442 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043E\u0434\u0438\u043D \u0440\u0430\u0437.\n -->\n <ng-content select=\"[rtuiSideMenuSubItemAction]\" />\n\n <!--\n \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u044F \u0432\u0438\u0434\u043D\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438 \u043F\u043E\u0442\u043E\u043C\u0443 \u0441\u0442\u043E\u0438\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439, \u0443 \u043F\u0440\u0430\u0432\u043E\u0433\u043E \u043A\u0440\u0430\u044F:\n \u043A\u043D\u043E\u043F\u043A\u0438 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E, \u043F\u043E\u044F\u0432\u043B\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u043F\u043E\u0434 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C, \u0432\u0441\u0442\u0430\u044E\u0442 \u043F\u0435\u0440\u0435\u0434 \u043D\u0435\u0439 \u0438 \u043D\u0435\n \u0441\u0434\u0432\u0438\u0433\u0430\u044E\u0442 \u0435\u0451.\n -->\n @if (item?.iconButton?.icon) {\n <div rtBlock=\"rtui-side-menu-sub-item-title-button\">\n <mat-icon\n rtElem=\"icon\"\n [rtIconOutlined]=\"isSubMenuButtonIconsOutlined()\"\n (click)=\"onClickSubMenuAdditional(item.iconButton?.data, $event); $event.stopPropagation()\">\n {{ item.iconButton.icon }}\n </mat-icon>\n </div>\n }\n </div>\n }\n </mat-list-item>\n } @else if (item?.submenu) {\n <!--\n \u041F\u0430\u043F\u043A\u0430 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u0438 \u0441 \u043F\u0443\u0441\u0442\u044B\u043C \u0441\u043E\u0441\u0442\u0430\u0432\u043E\u043C: \u043E\u0442\u0431\u043E\u0440 \u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0430\u043A \u0442\u0443, \u0447\u0442\u043E \u0441\u043E\u0432\u043F\u0430\u043B\u0430 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E, \u0430\n \u0432\u043D\u0443\u0442\u0440\u0438 \u043D\u0435 \u043D\u0430\u0448\u043B\u043E\u0441\u044C \u043D\u0438\u043A\u043E\u0433\u043E \u2014 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0438\u0441\u043A\u0430\u043B \u0435\u0451 \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438 \u0434\u043E\u043B\u0436\u0435\u043D \u0435\u0451 \u043D\u0430\u0439\u0442\u0438. \u0428\u0435\u0432\u0440\u043E\u043D \u0443 \u0442\u0430\u043A\u043E\u0439\n \u043F\u0430\u043F\u043A\u0438 \u0443\u0431\u0440\u0430\u043D: \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E, \u0438 \u0441\u0442\u0440\u0435\u043B\u043A\u0430 \u043E\u0431\u0435\u0449\u0430\u043B\u0430 \u0431\u044B \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435.\n -->\n <mat-expansion-panel\n #panel\n rtBlock=\"rtui-side-menu-expand-sub-item\"\n [rtMod]=\"{ fixed: isSubMenuXScrollEnabled() }\"\n [hideToggle]=\"!item.submenu.length\"\n [expanded]=\"menuRef.expandedMenuIds().includes(item.id)\">\n <mat-expansion-panel-header\n rtBlock=\"rtui-side-menu-expand-sub-item-header\"\n [rtMod]=\"{\n activated: menuRef.activeMenuIds().includes(item.id),\n highlighted: menuRef.highlightedMenuId() === item.id,\n favorites: favoritesOn(),\n }\">\n @if (item?.icon) {\n <mat-icon matListItemIcon rtElem=\"icon\" [rtIconOutlined]=\"isSubMenuIconsOutlined()\">{{ item.icon }}</mat-icon>\n }\n\n @if (item?.name) {\n <div\n #headerTitleTpl\n matListItemTitle\n rtElem=\"title\"\n matTooltipPosition=\"above\"\n [matTooltip]=\"item.name\"\n [matTooltipDisabled]=\"!isSubMenuTooltipsShown() || narrow()\"\n [rtHideTooltipDirective]=\"headerTitleTpl\"\n [isTooltipShown]=\"isSubMenuTooltipsShown() && !narrow()\">\n @for (part of item.name | rtuiSubMenuTitleParts: menuRef.subMenuQuery(); track $index) {\n @if (part.matched) {\n <span rtElem=\"match\">{{ part.text }}</span>\n } @else {\n <span>{{ part.text }}</span>\n }\n }\n </div>\n }\n </mat-expansion-panel-header>\n\n @if (panel?.expanded && item?.submenu?.length) {\n <mat-nav-list>\n @for (item of item?.submenu; track i; let i = $index) {\n <ng-container *ngTemplateOutlet=\"listElemTpl; context: { $implicit: item }\" />\n }\n </mat-nav-list>\n }\n </mat-expansion-panel>\n }\n</ng-template>\n", styles: [":host{display:block;max-width:100%}:host::ng-deep .mat-expansion-indicator{padding:0 var(--rt-spacing-24)}:host::ng-deep .mat-expansion-panel-body{padding:0 0 0 var(--rt-spacing-16)}:host::ng-deep{--mat-expansion-container-background-color: transparent;--mat-expansion-header-expanded-state-height: var(--mat-expansion-header-collapsed-state-height)}:host .rtui-side-menu-sub-item{max-width:100%}:host .rtui-side-menu-sub-item--fixed{min-width:min(var(--rt-side-menu-sub-menu-item-width),100%)}:host .rtui-side-menu-sub-item--highlighted{border-radius:var(--rt-radius-xl);outline:2px solid var(--rt-border-focus);outline-offset:-2px}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title{display:flex;align-items:center;justify-content:space-between}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__text{overflow:hidden;min-width:0;flex:1 1 auto;font-size:var(--rt-side-menu-sub-menu-item-title-font-size);text-overflow:ellipsis;white-space:nowrap}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__match{border-radius:var(--rt-radius-xs);background-color:var(--rt-bg-accent-highlight);color:var(--rt-text-accent-highlight);font-weight:var(--rt-font-weight-semibold)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button{display:flex;align-items:center;justify-content:center;padding:var(--rt-spacing-2);border:1.5px solid transparent;border-radius:var(--rt-radius-full);margin-left:var(--rt-spacing-8);cursor:pointer}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button__icon{width:1.25rem;height:1.25rem;font-size:var(--rt-font-size-lg)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button:hover{border-color:var(--rt-border-neutral-emphasis)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title--favorites .rtui-side-menu-sub-item-title-button{--rt-side-menu-sub-item-favorite-column: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));margin-right:calc((var(--rt-side-menu-sub-item-favorite-column) - var(--rt-spacing-24) - var(--rt-spacing-2)) / 2)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{--mat-icon-button-state-layer-size: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));--mat-icon-button-icon-size: var(--rt-side-menu-favorite-action-icon-size, var(--rt-font-size-lg));--mat-icon-button-icon-color: var(--rt-side-menu-favorite-action-color, var(--rt-text-base-secondary));flex:0 0 auto;margin-left:var(--rt-spacing-4);opacity:0}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--on,:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--always{opacity:1}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--on{--mat-icon-button-icon-color: var( --rt-side-menu-favorite-color, var(--mat-sys-primary, var(--mat-button-filled-container-color, var(--rt-icon-accent-primary))) )}@media(hover:hover){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--remove:hover{--mat-icon-button-icon-color: var(--rt-side-menu-favorite-remove-hover-color, var(--rt-icon-accent-danger))}}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--remove:focus-visible{--mat-icon-button-icon-color: var(--rt-side-menu-favorite-remove-hover-color, var(--rt-icon-accent-danger))}@media(hover:none){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{opacity:1}}@media(pointer:fine){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{--mat-icon-button-touch-target-display: none}}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite-icon{width:var(--mat-icon-button-icon-size);height:var(--mat-icon-button-icon-size);font-size:var(--mat-icon-button-icon-size);line-height:1}:host .rtui-side-menu-sub-item:hover .rtui-side-menu-sub-item-title__favorite,:host .rtui-side-menu-sub-item:has(:focus-visible) .rtui-side-menu-sub-item-title__favorite{opacity:1}:host .rtui-side-menu-expand-sub-item{padding:0;border-radius:var(--rt-radius-xl);box-shadow:none}:host .rtui-side-menu-expand-sub-item--fixed{min-width:min(var(--rt-side-menu-sub-menu-item-width),100%)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header{max-width:100%;padding:0}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--favorites ::ng-deep .mat-expansion-indicator{margin-right:calc(var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2)) / 2 - var(--rt-spacing-12))}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--activated{background-color:var(--mat-list-active-indicator-color)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--highlighted{border-radius:var(--rt-radius-xl);outline:2px solid var(--rt-border-focus);outline-offset:-2px}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__icon{color:var(--mdc-list-list-item-leading-icon-color);margin-inline:var(--mat-list-list-item-leading-icon-start-space) var(--mat-list-list-item-leading-icon-end-space)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__title{font-size:var(--rt-side-menu-sub-menu-item-title-font-size)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__match{border-radius:var(--rt-radius-xs);background-color:var(--rt-bg-accent-highlight);color:var(--rt-text-accent-highlight);font-weight:var(--rt-font-weight-semibold)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header:hover .rtui-side-menu-expand-sub-item-header__icon{color:var(--mdc-list-list-item-hover-leading-icon-color)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "directive", type: MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i1$3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i1$3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type:
|
|
1461
1479
|
// directives
|
|
1462
1480
|
BlockDirective, selector: "[rtBlock]", inputs: ["rtMod"] }, { kind: "directive", type: ElemDirective, selector: "[rtElem]", inputs: ["rtMod"] }, { kind: "directive", type: ModDirective, selector: "[rtMod]" }, { kind: "directive", type: RtIconOutlinedDirective, selector: "mat-icon[rtIconOutlined]", inputs: ["rtIconOutlined"] }, { kind: "directive", type: RtHideTooltipDirective, selector: "[rtHideTooltipDirective]", inputs: ["rtHideTooltipDirective", "isTooltipShown"] }, { kind: "pipe", type:
|
|
1463
1481
|
// pipes
|
|
@@ -1491,7 +1509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
1491
1509
|
disableTooltipInteractivity: true,
|
|
1492
1510
|
},
|
|
1493
1511
|
},
|
|
1494
|
-
], template: "@if (item()) {\n <ng-container *ngTemplateOutlet=\"listElemTpl; context: { $implicit: item() }\" />\n}\n\n<ng-template #listElemTpl let-item>\n @if (item?.link) {\n <mat-list-item\n rtBlock=\"rtui-side-menu-sub-item\"\n [rtMod]=\"{ fixed: isSubMenuXScrollEnabled(), highlighted: !inFavorites() && menuRef.highlightedMenuId() === item.id }\"\n [id]=\"inFavorites() ? null : item.id\"\n [activated]=\"menuRef.activeMenuIds().includes(item.id)\"\n (click)=\"onClickSubMenu(item, $event)\">\n @if (item?.icon) {\n <mat-icon matListItemIcon rtElem=\"icon\" [rtIconOutlined]=\"isSubMenuIconsOutlined()\">{{ item.icon }}</mat-icon>\n }\n\n @if (item?.name) {\n <div rtBlock=\"rtui-side-menu-sub-item-title\" [rtMod]=\"{ favorites: favoritesOn() || inFavorites() }\">\n <div\n #titleTpl\n rtElem=\"text\"\n matTooltipPosition=\"above\"\n [matTooltip]=\"item.name\"\n [matTooltipDisabled]=\"!isSubMenuTooltipsShown() || narrow()\"\n [rtHideTooltipDirective]=\"titleTpl\"\n [isTooltipShown]=\"isSubMenuTooltipsShown() && !narrow()\">\n <!--\n \u041F\u043E\u0434\u043F\u0438\u0441\u044C \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043A\u0443\u0441\u043A\u0430\u043C\u0438: \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u043E \u0440\u043E\u0432\u043D\u043E \u0442\u043E, \u0447\u0435\u043C \u043E\u043D\u0430 \u0441\u043E\u0432\u043F\u0430\u043B\u0430 \u0441\n \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u043C. \u041E\u0442\u043C\u0435\u0447\u0435\u043D\u043D\u043E\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043E \u0441\u0432\u043E\u0438\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u043C, \u0430 \u043D\u0435 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u043E\u0439\n \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u2014 \u0442\u0430 \u043A\u0440\u0430\u0441\u0438\u0442 \u043C\u0438\u043C\u043E \u043D\u0430\u0431\u043E\u0440\u0430 \u0442\u043E\u043A\u0435\u043D\u043E\u0432.\n -->\n @for (part of item.name | rtuiSubMenuTitleParts: menuRef.subMenuQuery(); track $index) {\n @if (part.matched) {\n <span rtElem=\"match\">{{ part.text }}</span>\n } @else {\n <!--\n \u041A\u0443\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u0442\u043A\u0438 \u0442\u043E\u0436\u0435 \u0443\u0437\u0435\u043B: \u0438\u043D\u0442\u0435\u0440\u043F\u043E\u043B\u044F\u0446\u0438\u044F, \u0441\u0442\u043E\u044F\u0449\u0430\u044F \u0432 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0435\n \u0441\u0430\u043C\u0430 \u043F\u043E \u0441\u0435\u0431\u0435, \u043F\u0440\u0438\u0435\u0437\u0436\u0430\u0435\u0442 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A \u0432\u043E\u043A\u0440\u0443\u0433 \u043D\u0435\u0451\n \u0438 \u0440\u0430\u0437\u0440\u044B\u0432\u0430\u0435\u0442 \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u0430\u043C\u0438.\n -->\n <span>{{ part.text }}</span>\n }\n }\n </div>\n\n <!--\n \u0421\u0442\u0440\u043E\u043A\u0430 \u0431\u043B\u043E\u043A\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 \u043A\u043D\u043E\u043F\u043A\u0443 \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB, \u0430 \u043D\u0435 \u0437\u0432\u0435\u0437\u0434\u0443: \u0432\u0441\u0451 \u0432 \u0431\u043B\u043E\u043A\u0435 \u0443\u0436\u0435\n \u0432 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u043C, \u0438 \u0437\u0432\u0435\u0437\u0434\u0430 \u0442\u0430\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u043B\u0430 \u0431\u044B.\n -->\n @if (inFavorites() && favorites) {\n <button\n mat-icon-button\n type=\"button\"\n rtElem=\"favorite\"\n qa-dataid=\"side-menu-favorite-remove\"\n matTooltipPosition=\"above\"\n [rtMod]=\"{ always: narrow() }\"\n [matTooltip]=\"favorites.labels.remove\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"favorites.labels.remove\"\n (click)=\"onRemoveFavorite(item, $event)\"\n (focusin)=\"onFavoriteFocus($event)\">\n <mat-icon rtElem=\"favorite-icon\" [rtIconOutlined]=\"true\">remove</mat-icon>\n </button>\n } @else if (favoritesOn() && favorites && item.link?.trim()) {\n <!--\n \u0417\u0432\u0435\u0437\u0434\u0430 \u2014 \u0443 \u043F\u0443\u043D\u043A\u0442\u0430 \u0441\u043E \u0441\u0432\u043E\u0438\u043C \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435, \u0433\u0434\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u043A\u043B\u044E\u0447\u0438\u043B\u043E\n \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0435. \u041F\u043E\u043B\u0430\u044F \u2014 \u043D\u0435 \u0432 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u043C, \u0437\u0430\u043A\u0440\u0430\u0448\u0435\u043D\u043D\u0430\u044F \u0446\u0432\u0435\u0442\u043E\u043C \u0442\u0435\u043C\u044B \u2014 \u0432 \u043D\u0451\u043C.\n \u0417\u0430\u043B\u0438\u0432\u043A\u0443 \u0434\u0430\u044E\u0442 \u0438 \u0433\u043B\u0438\u0444, \u0438 \u043E\u0441\u044C \u0437\u0430\u043B\u0438\u0432\u043A\u0438: \u0441\u0442\u0430\u0442\u0438\u0447\u043D\u044B\u0439 \u043D\u0430\u0431\u043E\u0440 \u0437\u043D\u0430\u0447\u043A\u043E\u0432 \u043E\u0441\u0438 \u043D\u0435 \u0437\u043D\u0430\u0435\u0442,\n \u0430 \u0443 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E `star` \u0431\u0435\u0437 \u043E\u0441\u0438 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043F\u043E\u043B\u044B\u043C.\n\n \u0418\u043C\u044F \u043A\u043D\u043E\u043F\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043D\u0430\u0436\u0430\u0442\u0438\u0435, \u0438 `aria-pressed` \u0443 \u043D\u0435\u0451 \u043D\u0435\u0442:\n \u043D\u0430\u0436\u0430\u0442\u0430\u044F \u043A\u043D\u043E\u043F\u043A\u0430 \u0441 \u0438\u043C\u0435\u043D\u0435\u043C \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB \u0447\u0438\u0442\u0430\u043B\u0430\u0441\u044C \u0431\u044B \u0432\u0434\u0432\u043E\u0435.\n -->\n @let isFavorite = favoriteIds().includes(item.id);\n <button\n mat-icon-button\n type=\"button\"\n rtElem=\"favorite\"\n qa-dataid=\"side-menu-favorite-star\"\n matTooltipPosition=\"above\"\n [rtMod]=\"{ on: isFavorite, always: narrow() }\"\n [matTooltip]=\"isFavorite ? favorites.labels.remove : favorites.labels.add\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"isFavorite ? favorites.labels.remove : favorites.labels.add\"\n (click)=\"onToggleFavorite(item, $event)\"\n (focusin)=\"onFavoriteFocus($event)\">\n <mat-icon rtElem=\"favorite-icon\" [rtIconOutlined]=\"!isFavorite\">\n {{ isFavorite ? 'star' : 'star_border' }}\n </mat-icon>\n </button>\n }\n\n <!--\n \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0432\u043B\u0430\u0434\u0435\u043B\u0435\u0446: \u0431\u043B\u043E\u043A \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043A\u043B\u0430\u0434\u0451\u0442 \u0441\u044E\u0434\u0430 \u0440\u0443\u0447\u043A\u0443\n \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F. \u0421\u043B\u043E\u0442 \u043E\u0434\u0438\u043D \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D \u2014 \u043F\u043E\u0434\u043F\u0443\u043D\u043A\u0442 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043E\u0434\u0438\u043D \u0440\u0430\u0437.\n -->\n <ng-content select=\"[rtuiSideMenuSubItemAction]\" />\n\n <!--\n \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u044F \u0432\u0438\u0434\u043D\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438 \u043F\u043E\u0442\u043E\u043C\u0443 \u0441\u0442\u043E\u0438\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439, \u0443 \u043F\u0440\u0430\u0432\u043E\u0433\u043E \u043A\u0440\u0430\u044F:\n \u043A\u043D\u043E\u043F\u043A\u0438 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E, \u043F\u043E\u044F\u0432\u043B\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u043F\u043E\u0434 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C, \u0432\u0441\u0442\u0430\u044E\u0442 \u043F\u0435\u0440\u0435\u0434 \u043D\u0435\u0439 \u0438 \u043D\u0435\n \u0441\u0434\u0432\u0438\u0433\u0430\u044E\u0442 \u0435\u0451.\n -->\n @if (item?.iconButton?.icon) {\n <div rtBlock=\"rtui-side-menu-sub-item-title-button\">\n <mat-icon\n rtElem=\"icon\"\n [rtIconOutlined]=\"isSubMenuButtonIconsOutlined()\"\n (click)=\"onClickSubMenuAdditional(item.iconButton?.data, $event); $event.stopPropagation()\">\n {{ item.iconButton.icon }}\n </mat-icon>\n </div>\n }\n </div>\n }\n </mat-list-item>\n } @else if (item?.submenu) {\n <!--\n \u041F\u0430\u043F\u043A\u0430 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u0438 \u0441 \u043F\u0443\u0441\u0442\u044B\u043C \u0441\u043E\u0441\u0442\u0430\u0432\u043E\u043C: \u043E\u0442\u0431\u043E\u0440 \u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0430\u043A \u0442\u0443, \u0447\u0442\u043E \u0441\u043E\u0432\u043F\u0430\u043B\u0430 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E, \u0430\n \u0432\u043D\u0443\u0442\u0440\u0438 \u043D\u0435 \u043D\u0430\u0448\u043B\u043E\u0441\u044C \u043D\u0438\u043A\u043E\u0433\u043E \u2014 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0438\u0441\u043A\u0430\u043B \u0435\u0451 \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438 \u0434\u043E\u043B\u0436\u0435\u043D \u0435\u0451 \u043D\u0430\u0439\u0442\u0438. \u0428\u0435\u0432\u0440\u043E\u043D \u0443 \u0442\u0430\u043A\u043E\u0439\n \u043F\u0430\u043F\u043A\u0438 \u0443\u0431\u0440\u0430\u043D: \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E, \u0438 \u0441\u0442\u0440\u0435\u043B\u043A\u0430 \u043E\u0431\u0435\u0449\u0430\u043B\u0430 \u0431\u044B \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435.\n -->\n <mat-expansion-panel\n #panel\n rtBlock=\"rtui-side-menu-expand-sub-item\"\n [rtMod]=\"{ fixed: isSubMenuXScrollEnabled() }\"\n [hideToggle]=\"!item.submenu.length\"\n [expanded]=\"menuRef.expandedMenuIds().includes(item.id)\">\n <mat-expansion-panel-header\n rtBlock=\"rtui-side-menu-expand-sub-item-header\"\n [rtMod]=\"{\n activated: menuRef.activeMenuIds().includes(item.id),\n highlighted: menuRef.highlightedMenuId() === item.id,\n favorites: favoritesOn(),\n }\">\n @if (item?.icon) {\n <mat-icon matListItemIcon rtElem=\"icon\" [rtIconOutlined]=\"isSubMenuIconsOutlined()\">{{ item.icon }}</mat-icon>\n }\n\n @if (item?.name) {\n <div\n #headerTitleTpl\n matListItemTitle\n rtElem=\"title\"\n matTooltipPosition=\"above\"\n [matTooltip]=\"item.name\"\n [matTooltipDisabled]=\"!isSubMenuTooltipsShown() || narrow()\"\n [rtHideTooltipDirective]=\"headerTitleTpl\"\n [isTooltipShown]=\"isSubMenuTooltipsShown() && !narrow()\">\n @for (part of item.name | rtuiSubMenuTitleParts: menuRef.subMenuQuery(); track $index) {\n @if (part.matched) {\n <span rtElem=\"match\">{{ part.text }}</span>\n } @else {\n <span>{{ part.text }}</span>\n }\n }\n </div>\n }\n </mat-expansion-panel-header>\n\n @if (panel?.expanded && item?.submenu?.length) {\n <mat-nav-list>\n @for (item of item?.submenu; track i; let i = $index) {\n <ng-container *ngTemplateOutlet=\"listElemTpl; context: { $implicit: item }\" />\n }\n </mat-nav-list>\n }\n </mat-expansion-panel>\n }\n</ng-template>\n", styles: [":host{display:block;max-width:100%}:host::ng-deep .mat-expansion-indicator{padding:0 var(--rt-spacing-24)}:host::ng-deep .mat-expansion-panel-body{padding:0 0 0 var(--rt-spacing-16)}:host::ng-deep{--mat-expansion-container-background-color: transparent;--mat-expansion-header-expanded-state-height: var(--mat-expansion-header-collapsed-state-height)}:host .rtui-side-menu-sub-item{max-width:100%}:host .rtui-side-menu-sub-item--fixed{min-width:min(var(--rt-side-menu-sub-menu-item-width),100%)}:host .rtui-side-menu-sub-item--highlighted{border-radius:var(--rt-radius-xl);outline:2px solid var(--rt-border-focus);outline-offset:-2px}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title{display:flex;align-items:center;justify-content:space-between}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__text{overflow:hidden;min-width:0;flex:1 1 auto;font-size:var(--rt-side-menu-sub-menu-item-title-font-size);text-overflow:ellipsis;white-space:nowrap}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__match{border-radius:var(--rt-radius-xs);background-color:var(--rt-bg-accent-highlight);color:var(--rt-text-accent-highlight);font-weight:var(--rt-font-weight-semibold)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button{display:flex;align-items:center;justify-content:center;padding:var(--rt-spacing-2);border:1.5px solid transparent;border-radius:var(--rt-radius-full);margin-left:var(--rt-spacing-8);cursor:pointer}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button__icon{width:1.25rem;height:1.25rem;font-size:var(--rt-font-size-lg)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button:hover{border-color:var(--rt-border-neutral-emphasis)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title--favorites .rtui-side-menu-sub-item-title-button{--rt-side-menu-sub-item-favorite-column: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));margin-right:calc((var(--rt-side-menu-sub-item-favorite-column) - var(--rt-spacing-24) - var(--rt-spacing-2)) / 2)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{--mat-icon-button-state-layer-size: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));--mat-icon-button-icon-size: var(--rt-side-menu-favorite-action-icon-size, var(--rt-font-size-lg));--mat-icon-button-icon-color: var(--rt-side-menu-favorite-action-color, var(--rt-text-base-secondary));flex:0 0 auto;margin-left:var(--rt-spacing-4);opacity:0}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--on,:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--always{opacity:1}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--on{--mat-icon-button-icon-color: var( --rt-side-menu-favorite-color, var(--mat-sys-primary, var(--mat-button-filled-container-color, var(--rt-icon-accent-primary))) )}@media(hover:none){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{opacity:1}}@media(pointer:fine){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{--mat-icon-button-touch-target-display: none}}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite-icon{width:var(--mat-icon-button-icon-size);height:var(--mat-icon-button-icon-size);font-size:var(--mat-icon-button-icon-size);line-height:1}:host .rtui-side-menu-sub-item:hover .rtui-side-menu-sub-item-title__favorite,:host .rtui-side-menu-sub-item:has(:focus-visible) .rtui-side-menu-sub-item-title__favorite{opacity:1}:host .rtui-side-menu-expand-sub-item{padding:0;border-radius:var(--rt-radius-xl);box-shadow:none}:host .rtui-side-menu-expand-sub-item--fixed{min-width:min(var(--rt-side-menu-sub-menu-item-width),100%)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header{max-width:100%;padding:0}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--favorites ::ng-deep .mat-expansion-indicator{margin-right:calc(var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2)) / 2 - var(--rt-spacing-12))}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--activated{background-color:var(--mat-list-active-indicator-color)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--highlighted{border-radius:var(--rt-radius-xl);outline:2px solid var(--rt-border-focus);outline-offset:-2px}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__icon{color:var(--mdc-list-list-item-leading-icon-color);margin-inline:var(--mat-list-list-item-leading-icon-start-space) var(--mat-list-list-item-leading-icon-end-space)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__title{font-size:var(--rt-side-menu-sub-menu-item-title-font-size)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__match{border-radius:var(--rt-radius-xs);background-color:var(--rt-bg-accent-highlight);color:var(--rt-text-accent-highlight);font-weight:var(--rt-font-weight-semibold)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header:hover .rtui-side-menu-expand-sub-item-header__icon{color:var(--mdc-list-list-item-hover-leading-icon-color)}\n"] }]
|
|
1512
|
+
], template: "@if (item()) {\n <ng-container *ngTemplateOutlet=\"listElemTpl; context: { $implicit: item() }\" />\n}\n\n<ng-template #listElemTpl let-item>\n @if (item?.link) {\n <mat-list-item\n rtBlock=\"rtui-side-menu-sub-item\"\n [rtMod]=\"{ fixed: isSubMenuXScrollEnabled(), highlighted: !inFavorites() && menuRef.highlightedMenuId() === item.id }\"\n [id]=\"inFavorites() ? null : item.id\"\n [activated]=\"menuRef.activeMenuIds().includes(item.id)\"\n (click)=\"onClickSubMenu(item, $event)\">\n @if (item?.icon) {\n <mat-icon matListItemIcon rtElem=\"icon\" [rtIconOutlined]=\"isSubMenuIconsOutlined()\">{{ item.icon }}</mat-icon>\n }\n\n @if (item?.name) {\n <div rtBlock=\"rtui-side-menu-sub-item-title\" [rtMod]=\"{ favorites: favoritesOn() || inFavorites() }\">\n <div\n #titleTpl\n rtElem=\"text\"\n matTooltipPosition=\"above\"\n [matTooltip]=\"item.name\"\n [matTooltipDisabled]=\"!isSubMenuTooltipsShown() || narrow()\"\n [rtHideTooltipDirective]=\"titleTpl\"\n [isTooltipShown]=\"isSubMenuTooltipsShown() && !narrow()\">\n <!--\n \u041F\u043E\u0434\u043F\u0438\u0441\u044C \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043A\u0443\u0441\u043A\u0430\u043C\u0438: \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u043E \u0440\u043E\u0432\u043D\u043E \u0442\u043E, \u0447\u0435\u043C \u043E\u043D\u0430 \u0441\u043E\u0432\u043F\u0430\u043B\u0430 \u0441\n \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u043C. \u041E\u0442\u043C\u0435\u0447\u0435\u043D\u043D\u043E\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043E \u0441\u0432\u043E\u0438\u043C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u043C, \u0430 \u043D\u0435 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u043E\u0439\n \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u2014 \u0442\u0430 \u043A\u0440\u0430\u0441\u0438\u0442 \u043C\u0438\u043C\u043E \u043D\u0430\u0431\u043E\u0440\u0430 \u0442\u043E\u043A\u0435\u043D\u043E\u0432.\n -->\n @for (part of item.name | rtuiSubMenuTitleParts: menuRef.subMenuQuery(); track $index) {\n @if (part.matched) {\n <span rtElem=\"match\">{{ part.text }}</span>\n } @else {\n <!--\n \u041A\u0443\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u0442\u043A\u0438 \u0442\u043E\u0436\u0435 \u0443\u0437\u0435\u043B: \u0438\u043D\u0442\u0435\u0440\u043F\u043E\u043B\u044F\u0446\u0438\u044F, \u0441\u0442\u043E\u044F\u0449\u0430\u044F \u0432 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0435\n \u0441\u0430\u043C\u0430 \u043F\u043E \u0441\u0435\u0431\u0435, \u043F\u0440\u0438\u0435\u0437\u0436\u0430\u0435\u0442 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A \u0432\u043E\u043A\u0440\u0443\u0433 \u043D\u0435\u0451\n \u0438 \u0440\u0430\u0437\u0440\u044B\u0432\u0430\u0435\u0442 \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u0430\u043C\u0438.\n -->\n <span>{{ part.text }}</span>\n }\n }\n </div>\n\n <!--\n \u0421\u0442\u0440\u043E\u043A\u0430 \u0431\u043B\u043E\u043A\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 \u043A\u043D\u043E\u043F\u043A\u0443 \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB, \u0430 \u043D\u0435 \u0437\u0432\u0435\u0437\u0434\u0443: \u0432\u0441\u0451 \u0432 \u0431\u043B\u043E\u043A\u0435 \u0443\u0436\u0435\n \u0432 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u043C, \u0438 \u0437\u0432\u0435\u0437\u0434\u0430 \u0442\u0430\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u043B\u0430 \u0431\u044B.\n -->\n @if (inFavorites() && favorites) {\n <button\n mat-icon-button\n type=\"button\"\n rtElem=\"favorite\"\n qa-dataid=\"side-menu-favorite-remove\"\n matTooltipPosition=\"above\"\n [rtMod]=\"{ always: narrow(), remove: true }\"\n [matTooltip]=\"favorites.labels.remove\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"favorites.labels.remove\"\n (click)=\"onRemoveFavorite(item, $event)\"\n (focusin)=\"onFavoriteFocus($event)\">\n <mat-icon rtElem=\"favorite-icon\" [rtIconOutlined]=\"true\" [style.rotate.deg]=\"favorites.icons.remove.rotate\">\n {{ favorites.icons.remove.glyph }}\n </mat-icon>\n </button>\n } @else if (favoritesOn() && favorites && item.link?.trim()) {\n <!--\n \u0417\u0432\u0435\u0437\u0434\u0430 \u2014 \u0443 \u043F\u0443\u043D\u043A\u0442\u0430 \u0441\u043E \u0441\u0432\u043E\u0438\u043C \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435, \u0433\u0434\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u043A\u043B\u044E\u0447\u0438\u043B\u043E\n \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0435. \u041F\u043E\u043B\u0430\u044F \u2014 \u043D\u0435 \u0432 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u043C, \u0437\u0430\u043A\u0440\u0430\u0448\u0435\u043D\u043D\u0430\u044F \u0446\u0432\u0435\u0442\u043E\u043C \u0442\u0435\u043C\u044B \u2014 \u0432 \u043D\u0451\u043C.\n \u0417\u0430\u043B\u0438\u0432\u043A\u0443 \u0434\u0430\u044E\u0442 \u0438 \u0433\u043B\u0438\u0444, \u0438 \u043E\u0441\u044C \u0437\u0430\u043B\u0438\u0432\u043A\u0438: \u0441\u0442\u0430\u0442\u0438\u0447\u043D\u044B\u0439 \u043D\u0430\u0431\u043E\u0440 \u0437\u043D\u0430\u0447\u043A\u043E\u0432 \u043E\u0441\u0438 \u043D\u0435 \u0437\u043D\u0430\u0435\u0442,\n \u0430 \u0443 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E `star` \u0431\u0435\u0437 \u043E\u0441\u0438 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043F\u043E\u043B\u044B\u043C.\n\n \u0418\u043C\u044F \u043A\u043D\u043E\u043F\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043D\u0430\u0436\u0430\u0442\u0438\u0435, \u0438 `aria-pressed` \u0443 \u043D\u0435\u0451 \u043D\u0435\u0442:\n \u043D\u0430\u0436\u0430\u0442\u0430\u044F \u043A\u043D\u043E\u043F\u043A\u0430 \u0441 \u0438\u043C\u0435\u043D\u0435\u043C \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB \u0447\u0438\u0442\u0430\u043B\u0430\u0441\u044C \u0431\u044B \u0432\u0434\u0432\u043E\u0435.\n -->\n @let isFavorite = favoriteIds().includes(item.id);\n <button\n mat-icon-button\n type=\"button\"\n rtElem=\"favorite\"\n qa-dataid=\"side-menu-favorite-star\"\n matTooltipPosition=\"above\"\n [rtMod]=\"{ on: isFavorite, always: narrow() }\"\n [matTooltip]=\"isFavorite ? favorites.labels.remove : favorites.labels.add\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"isFavorite ? favorites.labels.remove : favorites.labels.add\"\n (click)=\"onToggleFavorite(item, $event)\"\n (focusin)=\"onFavoriteFocus($event)\">\n <mat-icon rtElem=\"favorite-icon\" [rtIconOutlined]=\"!isFavorite\">\n {{ isFavorite ? 'star' : 'star_border' }}\n </mat-icon>\n </button>\n }\n\n <!--\n \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0432\u043B\u0430\u0434\u0435\u043B\u0435\u0446: \u0431\u043B\u043E\u043A \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u043A\u043B\u0430\u0434\u0451\u0442 \u0441\u044E\u0434\u0430 \u0440\u0443\u0447\u043A\u0443\n \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F. \u0421\u043B\u043E\u0442 \u043E\u0434\u0438\u043D \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D \u2014 \u043F\u043E\u0434\u043F\u0443\u043D\u043A\u0442 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u043E\u0434\u0438\u043D \u0440\u0430\u0437.\n -->\n <ng-content select=\"[rtuiSideMenuSubItemAction]\" />\n\n <!--\n \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u044F \u0432\u0438\u0434\u043D\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438 \u043F\u043E\u0442\u043E\u043C\u0443 \u0441\u0442\u043E\u0438\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439, \u0443 \u043F\u0440\u0430\u0432\u043E\u0433\u043E \u043A\u0440\u0430\u044F:\n \u043A\u043D\u043E\u043F\u043A\u0438 \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E, \u043F\u043E\u044F\u0432\u043B\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u043F\u043E\u0434 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043C, \u0432\u0441\u0442\u0430\u044E\u0442 \u043F\u0435\u0440\u0435\u0434 \u043D\u0435\u0439 \u0438 \u043D\u0435\n \u0441\u0434\u0432\u0438\u0433\u0430\u044E\u0442 \u0435\u0451.\n -->\n @if (item?.iconButton?.icon) {\n <div rtBlock=\"rtui-side-menu-sub-item-title-button\">\n <mat-icon\n rtElem=\"icon\"\n [rtIconOutlined]=\"isSubMenuButtonIconsOutlined()\"\n (click)=\"onClickSubMenuAdditional(item.iconButton?.data, $event); $event.stopPropagation()\">\n {{ item.iconButton.icon }}\n </mat-icon>\n </div>\n }\n </div>\n }\n </mat-list-item>\n } @else if (item?.submenu) {\n <!--\n \u041F\u0430\u043F\u043A\u0430 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044F \u0438 \u0441 \u043F\u0443\u0441\u0442\u044B\u043C \u0441\u043E\u0441\u0442\u0430\u0432\u043E\u043C: \u043E\u0442\u0431\u043E\u0440 \u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u0430\u043A \u0442\u0443, \u0447\u0442\u043E \u0441\u043E\u0432\u043F\u0430\u043B\u0430 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E, \u0430\n \u0432\u043D\u0443\u0442\u0440\u0438 \u043D\u0435 \u043D\u0430\u0448\u043B\u043E\u0441\u044C \u043D\u0438\u043A\u043E\u0433\u043E \u2014 \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u0438\u0441\u043A\u0430\u043B \u0435\u0451 \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438 \u0434\u043E\u043B\u0436\u0435\u043D \u0435\u0451 \u043D\u0430\u0439\u0442\u0438. \u0428\u0435\u0432\u0440\u043E\u043D \u0443 \u0442\u0430\u043A\u043E\u0439\n \u043F\u0430\u043F\u043A\u0438 \u0443\u0431\u0440\u0430\u043D: \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E, \u0438 \u0441\u0442\u0440\u0435\u043B\u043A\u0430 \u043E\u0431\u0435\u0449\u0430\u043B\u0430 \u0431\u044B \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435.\n -->\n <mat-expansion-panel\n #panel\n rtBlock=\"rtui-side-menu-expand-sub-item\"\n [rtMod]=\"{ fixed: isSubMenuXScrollEnabled() }\"\n [hideToggle]=\"!item.submenu.length\"\n [expanded]=\"menuRef.expandedMenuIds().includes(item.id)\">\n <mat-expansion-panel-header\n rtBlock=\"rtui-side-menu-expand-sub-item-header\"\n [rtMod]=\"{\n activated: menuRef.activeMenuIds().includes(item.id),\n highlighted: menuRef.highlightedMenuId() === item.id,\n favorites: favoritesOn(),\n }\">\n @if (item?.icon) {\n <mat-icon matListItemIcon rtElem=\"icon\" [rtIconOutlined]=\"isSubMenuIconsOutlined()\">{{ item.icon }}</mat-icon>\n }\n\n @if (item?.name) {\n <div\n #headerTitleTpl\n matListItemTitle\n rtElem=\"title\"\n matTooltipPosition=\"above\"\n [matTooltip]=\"item.name\"\n [matTooltipDisabled]=\"!isSubMenuTooltipsShown() || narrow()\"\n [rtHideTooltipDirective]=\"headerTitleTpl\"\n [isTooltipShown]=\"isSubMenuTooltipsShown() && !narrow()\">\n @for (part of item.name | rtuiSubMenuTitleParts: menuRef.subMenuQuery(); track $index) {\n @if (part.matched) {\n <span rtElem=\"match\">{{ part.text }}</span>\n } @else {\n <span>{{ part.text }}</span>\n }\n }\n </div>\n }\n </mat-expansion-panel-header>\n\n @if (panel?.expanded && item?.submenu?.length) {\n <mat-nav-list>\n @for (item of item?.submenu; track i; let i = $index) {\n <ng-container *ngTemplateOutlet=\"listElemTpl; context: { $implicit: item }\" />\n }\n </mat-nav-list>\n }\n </mat-expansion-panel>\n }\n</ng-template>\n", styles: [":host{display:block;max-width:100%}:host::ng-deep .mat-expansion-indicator{padding:0 var(--rt-spacing-24)}:host::ng-deep .mat-expansion-panel-body{padding:0 0 0 var(--rt-spacing-16)}:host::ng-deep{--mat-expansion-container-background-color: transparent;--mat-expansion-header-expanded-state-height: var(--mat-expansion-header-collapsed-state-height)}:host .rtui-side-menu-sub-item{max-width:100%}:host .rtui-side-menu-sub-item--fixed{min-width:min(var(--rt-side-menu-sub-menu-item-width),100%)}:host .rtui-side-menu-sub-item--highlighted{border-radius:var(--rt-radius-xl);outline:2px solid var(--rt-border-focus);outline-offset:-2px}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title{display:flex;align-items:center;justify-content:space-between}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__text{overflow:hidden;min-width:0;flex:1 1 auto;font-size:var(--rt-side-menu-sub-menu-item-title-font-size);text-overflow:ellipsis;white-space:nowrap}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__match{border-radius:var(--rt-radius-xs);background-color:var(--rt-bg-accent-highlight);color:var(--rt-text-accent-highlight);font-weight:var(--rt-font-weight-semibold)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button{display:flex;align-items:center;justify-content:center;padding:var(--rt-spacing-2);border:1.5px solid transparent;border-radius:var(--rt-radius-full);margin-left:var(--rt-spacing-8);cursor:pointer}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button__icon{width:1.25rem;height:1.25rem;font-size:var(--rt-font-size-lg)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title .rtui-side-menu-sub-item-title-button:hover{border-color:var(--rt-border-neutral-emphasis)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title--favorites .rtui-side-menu-sub-item-title-button{--rt-side-menu-sub-item-favorite-column: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));margin-right:calc((var(--rt-side-menu-sub-item-favorite-column) - var(--rt-spacing-24) - var(--rt-spacing-2)) / 2)}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{--mat-icon-button-state-layer-size: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));--mat-icon-button-icon-size: var(--rt-side-menu-favorite-action-icon-size, var(--rt-font-size-lg));--mat-icon-button-icon-color: var(--rt-side-menu-favorite-action-color, var(--rt-text-base-secondary));flex:0 0 auto;margin-left:var(--rt-spacing-4);opacity:0}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--on,:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--always{opacity:1}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--on{--mat-icon-button-icon-color: var( --rt-side-menu-favorite-color, var(--mat-sys-primary, var(--mat-button-filled-container-color, var(--rt-icon-accent-primary))) )}@media(hover:hover){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--remove:hover{--mat-icon-button-icon-color: var(--rt-side-menu-favorite-remove-hover-color, var(--rt-icon-accent-danger))}}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite--remove:focus-visible{--mat-icon-button-icon-color: var(--rt-side-menu-favorite-remove-hover-color, var(--rt-icon-accent-danger))}@media(hover:none){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{opacity:1}}@media(pointer:fine){:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite{--mat-icon-button-touch-target-display: none}}:host .rtui-side-menu-sub-item .rtui-side-menu-sub-item-title__favorite-icon{width:var(--mat-icon-button-icon-size);height:var(--mat-icon-button-icon-size);font-size:var(--mat-icon-button-icon-size);line-height:1}:host .rtui-side-menu-sub-item:hover .rtui-side-menu-sub-item-title__favorite,:host .rtui-side-menu-sub-item:has(:focus-visible) .rtui-side-menu-sub-item-title__favorite{opacity:1}:host .rtui-side-menu-expand-sub-item{padding:0;border-radius:var(--rt-radius-xl);box-shadow:none}:host .rtui-side-menu-expand-sub-item--fixed{min-width:min(var(--rt-side-menu-sub-menu-item-width),100%)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header{max-width:100%;padding:0}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--favorites ::ng-deep .mat-expansion-indicator{margin-right:calc(var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2)) / 2 - var(--rt-spacing-12))}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--activated{background-color:var(--mat-list-active-indicator-color)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header--highlighted{border-radius:var(--rt-radius-xl);outline:2px solid var(--rt-border-focus);outline-offset:-2px}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__icon{color:var(--mdc-list-list-item-leading-icon-color);margin-inline:var(--mat-list-list-item-leading-icon-start-space) var(--mat-list-list-item-leading-icon-end-space)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__title{font-size:var(--rt-side-menu-sub-menu-item-title-font-size)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header__match{border-radius:var(--rt-radius-xs);background-color:var(--rt-bg-accent-highlight);color:var(--rt-text-accent-highlight);font-weight:var(--rt-font-weight-semibold)}:host .rtui-side-menu-expand-sub-item .rtui-side-menu-expand-sub-item-header:hover .rtui-side-menu-expand-sub-item-header__icon{color:var(--mdc-list-list-item-hover-leading-icon-color)}\n"] }]
|
|
1495
1513
|
}], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: true }] }], isSubMenuXScrollEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubMenuXScrollEnabled", required: false }] }], isSubMenuIconsOutlined: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubMenuIconsOutlined", required: false }] }], isSubMenuButtonIconsOutlined: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubMenuButtonIconsOutlined", required: false }] }], isSubMenuTooltipsShown: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubMenuTooltipsShown", required: false }] }], inFavorites: [{ type: i0.Input, args: [{ isSignal: true, alias: "inFavorites", required: false }] }], clickSubMenuAction: [{ type: i0.Output, args: ["clickSubMenuAction"] }], clickSubMenuAdditionalAction: [{ type: i0.Output, args: ["clickSubMenuAdditionalAction"] }] } });
|
|
1496
1514
|
|
|
1497
1515
|
/**
|
|
@@ -1714,7 +1732,7 @@ class RtuiSideMenuFavoritesComponent {
|
|
|
1714
1732
|
this.favorites.moveVisible(this.#menu.menuId(), visible, from, to);
|
|
1715
1733
|
}
|
|
1716
1734
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtuiSideMenuFavoritesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1717
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtuiSideMenuFavoritesComponent, isStandalone: true, selector: "rtui-side-menu-favorites", inputs: { isSubMenuIconsOutlined: { classPropertyName: "isSubMenuIconsOutlined", publicName: "isSubMenuIconsOutlined", isSignal: true, isRequired: false, transformFunction: null }, isSubMenuButtonIconsOutlined: { classPropertyName: "isSubMenuButtonIconsOutlined", publicName: "isSubMenuButtonIconsOutlined", isSignal: true, isRequired: false, transformFunction: null }, isSubMenuTooltipsShown: { classPropertyName: "isSubMenuTooltipsShown", publicName: "isSubMenuTooltipsShown", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickSubMenuAction: "clickSubMenuAction", clickSubMenuAdditionalAction: "clickSubMenuAdditionalAction" }, host: { classAttribute: "rtui-side-menu-favorites" }, viewQueries: [{ propertyName: "handles", predicate: ["handle"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-container rtBlock=\"rtui-side-menu-favorites\">\n @if (favorites && rows().length) {\n <div rtElem=\"title\" qa-dataid=\"side-menu-favorites-title\">\n <mat-icon rtElem=\"title-icon\" aria-hidden=\"true\" [rtIconOutlined]=\"false\">star</mat-icon>\n <span rtElem=\"title-text\">{{ favorites.labels.title }}</span>\n </div>\n\n <mat-nav-list\n rtElem=\"list\"\n qa-dataid=\"side-menu-favorites\"\n cdkDropList\n cdkDropListLockAxis=\"y\"\n [cdkDropListData]=\"rows()\"\n [attr.aria-label]=\"favorites.labels.title\"\n (cdkDropListDropped)=\"onDrop($event)\">\n @for (item of rows(); track item.id) {\n <div\n rtElem=\"row\"\n qa-dataid=\"side-menu-favorite-row\"\n cdkDrag\n [attr.data-id]=\"item.id\"\n (cdkDragStarted)=\"onDragStart(item.id)\"\n (cdkDragEnded)=\"onDragEnd($event)\">\n <!--\n \u0420\u0443\u0447\u043A\u0430 \u0441\u0442\u043E\u0438\u0442 \u0432\u043D\u0443\u0442\u0440\u0438 \u043F\u0443\u043D\u043A\u0442\u0430, \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB: \u043F\u043E\u0434\u0441\u0432\u0435\u0442\u043A\u0430 \u043F\u0443\u043D\u043A\u0442\u0430\n \u043D\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0438 \u0435\u0451. \u0421\u0442\u0440\u043E\u043A\u0443 \u0442\u044F\u043D\u0443\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430 \u0440\u0443\u0447\u043A\u0443: \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u2014 \u0441\u0441\u044B\u043B\u043A\u0430, \u0438\n \u0441\u0442\u0440\u043E\u043A\u0443, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0442\u044F\u043D\u0443\u0442 \u0432\u0441\u0435\u043C \u0442\u0435\u043B\u043E\u043C, \u043D\u0435 \u043D\u0430\u0436\u0430\u0442\u044C \u0431\u0435\u0437 \u0434\u0440\u043E\u0436\u0438. \u0417\u043D\u0430\u0447\u043E\u043A \u2014 \u0434\u0432\u0435 \u0441\u0442\u0440\u0435\u043B\u043A\u0438\n \u043D\u0430\u0440\u0443\u0436\u0443, \u043F\u043E\u0432\u0451\u0440\u043D\u0443\u0442\u044B\u0435 \u0441\u0442\u0438\u043B\u044F\u043C\u0438 \u043D\u0430 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044C \u043E\u0431\u043E\u0440\u043E\u0442\u0430. \u0421 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0441\u0442\u0440\u043E\u043A\u0443\n \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442 \u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u043D\u0430 \u0440\u0443\u0447\u043A\u0435: \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0435 CDK \u043A\u043B\u0430\u0432\u0438\u0448 \u043D\u0435 \u0437\u043D\u0430\u0435\u0442.\n -->\n <rtui-side-menu-sub-item\n rtElem=\"item\"\n [item]=\"item\"\n [inFavorites]=\"true\"\n [isSubMenuIconsOutlined]=\"isSubMenuIconsOutlined()\"\n [isSubMenuButtonIconsOutlined]=\"isSubMenuButtonIconsOutlined()\"\n [isSubMenuTooltipsShown]=\"isSubMenuTooltipsShown()\"\n (clickSubMenuAction)=\"clickSubMenuAction.emit($event)\"\n (clickSubMenuAdditionalAction)=\"clickSubMenuAdditionalAction.emit($event)\">\n <button\n #handle\n rtuiSideMenuSubItemAction\n cdkDragHandle\n mat-icon-button\n type=\"button\"\n rtElem=\"handle\"\n qa-dataid=\"side-menu-favorite-handle\"\n matTooltipPosition=\"above\"\n aria-keyshortcuts=\"ArrowUp ArrowDown\"\n [rtMod]=\"{ always: narrow() }\"\n [matTooltip]=\"favorites.labels.drag\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"favorites.labels.drag\"\n (click)=\"$event.stopPropagation()\"\n (keydown.arrowup)=\"onHandleKey($event, $index, -1)\"\n (keydown.arrowdown)=\"onHandleKey($event, $index, 1)\">\n <mat-icon rtElem=\"handle-icon\" [rtIconOutlined]=\"true\">arrows_outward</mat-icon>\n </button>\n </rtui-side-menu-sub-item>\n </div>\n }\n </mat-nav-list>\n }\n</ng-container>\n", styles: [":host{display:block}:host:has(.rtui-side-menu-favorites__list){padding-bottom:var(--rt-side-menu-favorites-divider-gap, var(--rt-spacing-8));border-bottom:1px solid var(--rt-side-menu-favorites-divider-color, var(--rt-border-neutral-subtle))}:host .rtui-side-menu-favorites__title{display:flex;align-items:center;padding:var(--rt-spacing-8) var(--rt-spacing-16) var(--rt-spacing-4);color:var(--rt-side-menu-favorites-title-color, var(--rt-text-base-secondary));font-size:var(--rt-side-menu-favorites-title-font-size, var(--rt-font-size-sm));font-weight:var(--rt-font-weight-semibold);gap:var(--rt-spacing-6)}:host .rtui-side-menu-favorites__title-icon{width:var(--rt-side-menu-favorites-title-icon-size, var(--rt-icon-size-sm));height:var(--rt-side-menu-favorites-title-icon-size, var(--rt-icon-size-sm));color:var(--rt-side-menu-favorite-color, var(--mat-sys-primary, var(--mat-button-filled-container-color, var(--rt-icon-accent-primary))));font-size:var(--rt-side-menu-favorites-title-icon-size, var(--rt-icon-size-sm))}:host .rtui-side-menu-favorites__title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .rtui-side-menu-favorites__list{padding:0}.rtui-side-menu-favorites__row{display:flex;align-items:center}.rtui-side-menu-favorites__handle{--mat-icon-button-state-layer-size: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));--mat-icon-button-icon-size: var(--rt-side-menu-favorite-action-icon-size, var(--rt-font-size-lg));--mat-icon-button-icon-color: var(--rt-side-menu-favorite-action-color, var(--rt-text-base-secondary));flex:0 0 auto;cursor:grab;opacity:0}.rtui-side-menu-favorites__handle:active{cursor:grabbing}.rtui-side-menu-favorites__handle--always{opacity:1}@media(hover:none){.rtui-side-menu-favorites__handle{opacity:1}}.rtui-side-menu-favorites__row:hover .rtui-side-menu-favorites__handle,.rtui-side-menu-favorites__row:has(:focus-visible) .rtui-side-menu-favorites__handle,.rtui-side-menu-favorites__row.cdk-drag-preview .rtui-side-menu-favorites__handle{opacity:1}.rtui-side-menu-favorites__handle-icon{width:var(--mat-icon-button-icon-size);height:var(--mat-icon-button-icon-size);font-size:var(--mat-icon-button-icon-size);line-height:1;transform:rotate(90deg)}.rtui-side-menu-favorites__item{min-width:0;flex:1 1 auto}:host-context(.rtui-mobile-side-menu-list__sub):has(.rtui-side-menu-favorites__list){margin-bottom:var(--rt-spacing-8)}.rtui-side-menu-favorites__row.cdk-drag-preview{display:flex;align-items:center;border-radius:var(--rt-radius-xl);background-color:var(--rt-side-menu-favorites-drag-background, var(--rt-bg-base-base));box-shadow:var(--rt-side-menu-favorites-drag-shadow, 0 .5rem 1rem 0 var(--rt-shadow-color))}.rtui-side-menu-favorites__row.cdk-drag-placeholder{opacity:0}\n"], dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type:
|
|
1735
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtuiSideMenuFavoritesComponent, isStandalone: true, selector: "rtui-side-menu-favorites", inputs: { isSubMenuIconsOutlined: { classPropertyName: "isSubMenuIconsOutlined", publicName: "isSubMenuIconsOutlined", isSignal: true, isRequired: false, transformFunction: null }, isSubMenuButtonIconsOutlined: { classPropertyName: "isSubMenuButtonIconsOutlined", publicName: "isSubMenuButtonIconsOutlined", isSignal: true, isRequired: false, transformFunction: null }, isSubMenuTooltipsShown: { classPropertyName: "isSubMenuTooltipsShown", publicName: "isSubMenuTooltipsShown", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickSubMenuAction: "clickSubMenuAction", clickSubMenuAdditionalAction: "clickSubMenuAdditionalAction" }, host: { classAttribute: "rtui-side-menu-favorites" }, viewQueries: [{ propertyName: "handles", predicate: ["handle"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-container rtBlock=\"rtui-side-menu-favorites\">\n @if (favorites && rows().length) {\n <div rtElem=\"title\" qa-dataid=\"side-menu-favorites-title\">\n <mat-icon rtElem=\"title-icon\" aria-hidden=\"true\" [rtIconOutlined]=\"false\">star</mat-icon>\n <span rtElem=\"title-text\">{{ favorites.labels.title }}</span>\n </div>\n\n <mat-nav-list\n rtElem=\"list\"\n qa-dataid=\"side-menu-favorites\"\n cdkDropList\n cdkDropListLockAxis=\"y\"\n [cdkDropListData]=\"rows()\"\n [attr.aria-label]=\"favorites.labels.title\"\n (cdkDropListDropped)=\"onDrop($event)\">\n @for (item of rows(); track item.id) {\n <div\n rtElem=\"row\"\n qa-dataid=\"side-menu-favorite-row\"\n cdkDrag\n [attr.data-id]=\"item.id\"\n (cdkDragStarted)=\"onDragStart(item.id)\"\n (cdkDragEnded)=\"onDragEnd($event)\">\n <!--\n \u0420\u0443\u0447\u043A\u0430 \u0441\u0442\u043E\u0438\u0442 \u0432\u043D\u0443\u0442\u0440\u0438 \u043F\u0443\u043D\u043A\u0442\u0430, \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB: \u043F\u043E\u0434\u0441\u0432\u0435\u0442\u043A\u0430 \u043F\u0443\u043D\u043A\u0442\u0430\n \u043D\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0438 \u0435\u0451. \u0421\u0442\u0440\u043E\u043A\u0443 \u0442\u044F\u043D\u0443\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430 \u0440\u0443\u0447\u043A\u0443: \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u2014 \u0441\u0441\u044B\u043B\u043A\u0430, \u0438\n \u0441\u0442\u0440\u043E\u043A\u0443, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0442\u044F\u043D\u0443\u0442 \u0432\u0441\u0435\u043C \u0442\u0435\u043B\u043E\u043C, \u043D\u0435 \u043D\u0430\u0436\u0430\u0442\u044C \u0431\u0435\u0437 \u0434\u0440\u043E\u0436\u0438. \u0417\u043D\u0430\u0447\u043E\u043A \u2014 \u0434\u0432\u0435 \u0441\u0442\u0440\u0435\u043B\u043A\u0438\n \u043D\u0430\u0440\u0443\u0436\u0443, \u043F\u043E\u0432\u0451\u0440\u043D\u0443\u0442\u044B\u0435 \u0441\u0442\u0438\u043B\u044F\u043C\u0438 \u043D\u0430 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044C \u043E\u0431\u043E\u0440\u043E\u0442\u0430. \u0421 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0441\u0442\u0440\u043E\u043A\u0443\n \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442 \u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u043D\u0430 \u0440\u0443\u0447\u043A\u0435: \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0435 CDK \u043A\u043B\u0430\u0432\u0438\u0448 \u043D\u0435 \u0437\u043D\u0430\u0435\u0442.\n -->\n <rtui-side-menu-sub-item\n rtElem=\"item\"\n [item]=\"item\"\n [inFavorites]=\"true\"\n [isSubMenuIconsOutlined]=\"isSubMenuIconsOutlined()\"\n [isSubMenuButtonIconsOutlined]=\"isSubMenuButtonIconsOutlined()\"\n [isSubMenuTooltipsShown]=\"isSubMenuTooltipsShown()\"\n (clickSubMenuAction)=\"clickSubMenuAction.emit($event)\"\n (clickSubMenuAdditionalAction)=\"clickSubMenuAdditionalAction.emit($event)\">\n <button\n #handle\n rtuiSideMenuSubItemAction\n cdkDragHandle\n mat-icon-button\n type=\"button\"\n rtElem=\"handle\"\n qa-dataid=\"side-menu-favorite-handle\"\n matTooltipPosition=\"above\"\n aria-keyshortcuts=\"ArrowUp ArrowDown\"\n [rtMod]=\"{ always: narrow() }\"\n [matTooltip]=\"favorites.labels.drag\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"favorites.labels.drag\"\n (click)=\"$event.stopPropagation()\"\n (keydown.arrowup)=\"onHandleKey($event, $index, -1)\"\n (keydown.arrowdown)=\"onHandleKey($event, $index, 1)\">\n <mat-icon rtElem=\"handle-icon\" [rtIconOutlined]=\"true\" [style.rotate.deg]=\"favorites.icons.drag.rotate\">\n {{ favorites.icons.drag.glyph }}\n </mat-icon>\n </button>\n </rtui-side-menu-sub-item>\n </div>\n }\n </mat-nav-list>\n }\n</ng-container>\n", styles: [":host{display:block}:host:has(.rtui-side-menu-favorites__list){padding-bottom:var(--rt-side-menu-favorites-divider-gap, var(--rt-spacing-8));border-bottom:1px solid var(--rt-side-menu-favorites-divider-color, var(--rt-border-neutral-subtle))}:host .rtui-side-menu-favorites__title{display:flex;align-items:center;padding:var(--rt-spacing-8) var(--rt-spacing-16) var(--rt-spacing-4);color:var(--rt-side-menu-favorites-title-color, var(--rt-text-base-secondary));font-size:var(--rt-side-menu-favorites-title-font-size, var(--rt-font-size-sm));font-weight:var(--rt-font-weight-semibold);gap:var(--rt-spacing-6)}:host .rtui-side-menu-favorites__title-icon{width:var(--rt-side-menu-favorites-title-icon-size, var(--rt-icon-size-sm));height:var(--rt-side-menu-favorites-title-icon-size, var(--rt-icon-size-sm));color:var(--rt-side-menu-favorite-color, var(--mat-sys-primary, var(--mat-button-filled-container-color, var(--rt-icon-accent-primary))));font-size:var(--rt-side-menu-favorites-title-icon-size, var(--rt-icon-size-sm))}:host .rtui-side-menu-favorites__title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .rtui-side-menu-favorites__list{padding:0}.rtui-side-menu-favorites__row{display:flex;align-items:center}.rtui-side-menu-favorites__handle{--mat-icon-button-state-layer-size: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));--mat-icon-button-icon-size: var(--rt-side-menu-favorite-action-icon-size, var(--rt-font-size-lg));--mat-icon-button-icon-color: var(--rt-side-menu-favorite-action-color, var(--rt-text-base-secondary));flex:0 0 auto;cursor:grab;opacity:0}.rtui-side-menu-favorites__handle:active{cursor:grabbing}.rtui-side-menu-favorites__handle--always{opacity:1}@media(hover:none){.rtui-side-menu-favorites__handle{opacity:1}}.rtui-side-menu-favorites__row:hover .rtui-side-menu-favorites__handle,.rtui-side-menu-favorites__row:has(:focus-visible) .rtui-side-menu-favorites__handle,.rtui-side-menu-favorites__row.cdk-drag-preview .rtui-side-menu-favorites__handle{opacity:1}.rtui-side-menu-favorites__handle-icon{width:var(--mat-icon-button-icon-size);height:var(--mat-icon-button-icon-size);font-size:var(--mat-icon-button-icon-size);line-height:1}.rtui-side-menu-favorites__item{min-width:0;flex:1 1 auto}:host-context(.rtui-mobile-side-menu-list__sub):has(.rtui-side-menu-favorites__list){margin-bottom:var(--rt-spacing-8)}.rtui-side-menu-favorites__row.cdk-drag-preview{display:flex;align-items:center;border-radius:var(--rt-radius-xl);background-color:var(--rt-side-menu-favorites-drag-background, var(--rt-bg-base-base));box-shadow:var(--rt-side-menu-favorites-drag-shadow, 0 .5rem 1rem 0 var(--rt-shadow-color))}.rtui-side-menu-favorites__row.cdk-drag-placeholder{opacity:0}\n"], dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type:
|
|
1718
1736
|
// directives
|
|
1719
1737
|
BlockDirective, selector: "[rtBlock]", inputs: ["rtMod"] }, { kind: "directive", type: ElemDirective, selector: "[rtElem]", inputs: ["rtMod"] }, { kind: "directive", type: ModDirective, selector: "[rtMod]" }, { kind: "directive", type: RtIconOutlinedDirective, selector: "mat-icon[rtIconOutlined]", inputs: ["rtIconOutlined"] }, { kind: "component", type:
|
|
1720
1738
|
// components
|
|
@@ -1737,7 +1755,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
1737
1755
|
RtIconOutlinedDirective,
|
|
1738
1756
|
// components
|
|
1739
1757
|
RtuiSideMenuSubItemComponent,
|
|
1740
|
-
], template: "<ng-container rtBlock=\"rtui-side-menu-favorites\">\n @if (favorites && rows().length) {\n <div rtElem=\"title\" qa-dataid=\"side-menu-favorites-title\">\n <mat-icon rtElem=\"title-icon\" aria-hidden=\"true\" [rtIconOutlined]=\"false\">star</mat-icon>\n <span rtElem=\"title-text\">{{ favorites.labels.title }}</span>\n </div>\n\n <mat-nav-list\n rtElem=\"list\"\n qa-dataid=\"side-menu-favorites\"\n cdkDropList\n cdkDropListLockAxis=\"y\"\n [cdkDropListData]=\"rows()\"\n [attr.aria-label]=\"favorites.labels.title\"\n (cdkDropListDropped)=\"onDrop($event)\">\n @for (item of rows(); track item.id) {\n <div\n rtElem=\"row\"\n qa-dataid=\"side-menu-favorite-row\"\n cdkDrag\n [attr.data-id]=\"item.id\"\n (cdkDragStarted)=\"onDragStart(item.id)\"\n (cdkDragEnded)=\"onDragEnd($event)\">\n <!--\n \u0420\u0443\u0447\u043A\u0430 \u0441\u0442\u043E\u0438\u0442 \u0432\u043D\u0443\u0442\u0440\u0438 \u043F\u0443\u043D\u043A\u0442\u0430, \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB: \u043F\u043E\u0434\u0441\u0432\u0435\u0442\u043A\u0430 \u043F\u0443\u043D\u043A\u0442\u0430\n \u043D\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0438 \u0435\u0451. \u0421\u0442\u0440\u043E\u043A\u0443 \u0442\u044F\u043D\u0443\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430 \u0440\u0443\u0447\u043A\u0443: \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u2014 \u0441\u0441\u044B\u043B\u043A\u0430, \u0438\n \u0441\u0442\u0440\u043E\u043A\u0443, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0442\u044F\u043D\u0443\u0442 \u0432\u0441\u0435\u043C \u0442\u0435\u043B\u043E\u043C, \u043D\u0435 \u043D\u0430\u0436\u0430\u0442\u044C \u0431\u0435\u0437 \u0434\u0440\u043E\u0436\u0438. \u0417\u043D\u0430\u0447\u043E\u043A \u2014 \u0434\u0432\u0435 \u0441\u0442\u0440\u0435\u043B\u043A\u0438\n \u043D\u0430\u0440\u0443\u0436\u0443, \u043F\u043E\u0432\u0451\u0440\u043D\u0443\u0442\u044B\u0435 \u0441\u0442\u0438\u043B\u044F\u043C\u0438 \u043D\u0430 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044C \u043E\u0431\u043E\u0440\u043E\u0442\u0430. \u0421 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0441\u0442\u0440\u043E\u043A\u0443\n \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442 \u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u043D\u0430 \u0440\u0443\u0447\u043A\u0435: \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0435 CDK \u043A\u043B\u0430\u0432\u0438\u0448 \u043D\u0435 \u0437\u043D\u0430\u0435\u0442.\n -->\n <rtui-side-menu-sub-item\n rtElem=\"item\"\n [item]=\"item\"\n [inFavorites]=\"true\"\n [isSubMenuIconsOutlined]=\"isSubMenuIconsOutlined()\"\n [isSubMenuButtonIconsOutlined]=\"isSubMenuButtonIconsOutlined()\"\n [isSubMenuTooltipsShown]=\"isSubMenuTooltipsShown()\"\n (clickSubMenuAction)=\"clickSubMenuAction.emit($event)\"\n (clickSubMenuAdditionalAction)=\"clickSubMenuAdditionalAction.emit($event)\">\n <button\n #handle\n rtuiSideMenuSubItemAction\n cdkDragHandle\n mat-icon-button\n type=\"button\"\n rtElem=\"handle\"\n qa-dataid=\"side-menu-favorite-handle\"\n matTooltipPosition=\"above\"\n aria-keyshortcuts=\"ArrowUp ArrowDown\"\n [rtMod]=\"{ always: narrow() }\"\n [matTooltip]=\"favorites.labels.drag\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"favorites.labels.drag\"\n (click)=\"$event.stopPropagation()\"\n (keydown.arrowup)=\"onHandleKey($event, $index, -1)\"\n (keydown.arrowdown)=\"onHandleKey($event, $index, 1)\">\n <mat-icon rtElem=\"handle-icon\" [rtIconOutlined]=\"true\"
|
|
1758
|
+
], template: "<ng-container rtBlock=\"rtui-side-menu-favorites\">\n @if (favorites && rows().length) {\n <div rtElem=\"title\" qa-dataid=\"side-menu-favorites-title\">\n <mat-icon rtElem=\"title-icon\" aria-hidden=\"true\" [rtIconOutlined]=\"false\">star</mat-icon>\n <span rtElem=\"title-text\">{{ favorites.labels.title }}</span>\n </div>\n\n <mat-nav-list\n rtElem=\"list\"\n qa-dataid=\"side-menu-favorites\"\n cdkDropList\n cdkDropListLockAxis=\"y\"\n [cdkDropListData]=\"rows()\"\n [attr.aria-label]=\"favorites.labels.title\"\n (cdkDropListDropped)=\"onDrop($event)\">\n @for (item of rows(); track item.id) {\n <div\n rtElem=\"row\"\n qa-dataid=\"side-menu-favorite-row\"\n cdkDrag\n [attr.data-id]=\"item.id\"\n (cdkDragStarted)=\"onDragStart(item.id)\"\n (cdkDragEnded)=\"onDragEnd($event)\">\n <!--\n \u0420\u0443\u0447\u043A\u0430 \u0441\u0442\u043E\u0438\u0442 \u0432\u043D\u0443\u0442\u0440\u0438 \u043F\u0443\u043D\u043A\u0442\u0430, \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \u00AB\u0443\u0431\u0440\u0430\u0442\u044C\u00BB: \u043F\u043E\u0434\u0441\u0432\u0435\u0442\u043A\u0430 \u043F\u0443\u043D\u043A\u0442\u0430\n \u043D\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0438 \u0435\u0451. \u0421\u0442\u0440\u043E\u043A\u0443 \u0442\u044F\u043D\u0443\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430 \u0440\u0443\u0447\u043A\u0443: \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u2014 \u0441\u0441\u044B\u043B\u043A\u0430, \u0438\n \u0441\u0442\u0440\u043E\u043A\u0443, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0442\u044F\u043D\u0443\u0442 \u0432\u0441\u0435\u043C \u0442\u0435\u043B\u043E\u043C, \u043D\u0435 \u043D\u0430\u0436\u0430\u0442\u044C \u0431\u0435\u0437 \u0434\u0440\u043E\u0436\u0438. \u0417\u043D\u0430\u0447\u043E\u043A \u2014 \u0434\u0432\u0435 \u0441\u0442\u0440\u0435\u043B\u043A\u0438\n \u043D\u0430\u0440\u0443\u0436\u0443, \u043F\u043E\u0432\u0451\u0440\u043D\u0443\u0442\u044B\u0435 \u0441\u0442\u0438\u043B\u044F\u043C\u0438 \u043D\u0430 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044C \u043E\u0431\u043E\u0440\u043E\u0442\u0430. \u0421 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u0441\u0442\u0440\u043E\u043A\u0443\n \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442 \u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u043D\u0430 \u0440\u0443\u0447\u043A\u0435: \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0435 CDK \u043A\u043B\u0430\u0432\u0438\u0448 \u043D\u0435 \u0437\u043D\u0430\u0435\u0442.\n -->\n <rtui-side-menu-sub-item\n rtElem=\"item\"\n [item]=\"item\"\n [inFavorites]=\"true\"\n [isSubMenuIconsOutlined]=\"isSubMenuIconsOutlined()\"\n [isSubMenuButtonIconsOutlined]=\"isSubMenuButtonIconsOutlined()\"\n [isSubMenuTooltipsShown]=\"isSubMenuTooltipsShown()\"\n (clickSubMenuAction)=\"clickSubMenuAction.emit($event)\"\n (clickSubMenuAdditionalAction)=\"clickSubMenuAdditionalAction.emit($event)\">\n <button\n #handle\n rtuiSideMenuSubItemAction\n cdkDragHandle\n mat-icon-button\n type=\"button\"\n rtElem=\"handle\"\n qa-dataid=\"side-menu-favorite-handle\"\n matTooltipPosition=\"above\"\n aria-keyshortcuts=\"ArrowUp ArrowDown\"\n [rtMod]=\"{ always: narrow() }\"\n [matTooltip]=\"favorites.labels.drag\"\n [matTooltipDisabled]=\"narrow()\"\n [attr.aria-label]=\"favorites.labels.drag\"\n (click)=\"$event.stopPropagation()\"\n (keydown.arrowup)=\"onHandleKey($event, $index, -1)\"\n (keydown.arrowdown)=\"onHandleKey($event, $index, 1)\">\n <mat-icon rtElem=\"handle-icon\" [rtIconOutlined]=\"true\" [style.rotate.deg]=\"favorites.icons.drag.rotate\">\n {{ favorites.icons.drag.glyph }}\n </mat-icon>\n </button>\n </rtui-side-menu-sub-item>\n </div>\n }\n </mat-nav-list>\n }\n</ng-container>\n", styles: [":host{display:block}:host:has(.rtui-side-menu-favorites__list){padding-bottom:var(--rt-side-menu-favorites-divider-gap, var(--rt-spacing-8));border-bottom:1px solid var(--rt-side-menu-favorites-divider-color, var(--rt-border-neutral-subtle))}:host .rtui-side-menu-favorites__title{display:flex;align-items:center;padding:var(--rt-spacing-8) var(--rt-spacing-16) var(--rt-spacing-4);color:var(--rt-side-menu-favorites-title-color, var(--rt-text-base-secondary));font-size:var(--rt-side-menu-favorites-title-font-size, var(--rt-font-size-sm));font-weight:var(--rt-font-weight-semibold);gap:var(--rt-spacing-6)}:host .rtui-side-menu-favorites__title-icon{width:var(--rt-side-menu-favorites-title-icon-size, var(--rt-icon-size-sm));height:var(--rt-side-menu-favorites-title-icon-size, var(--rt-icon-size-sm));color:var(--rt-side-menu-favorite-color, var(--mat-sys-primary, var(--mat-button-filled-container-color, var(--rt-icon-accent-primary))));font-size:var(--rt-side-menu-favorites-title-icon-size, var(--rt-icon-size-sm))}:host .rtui-side-menu-favorites__title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .rtui-side-menu-favorites__list{padding:0}.rtui-side-menu-favorites__row{display:flex;align-items:center}.rtui-side-menu-favorites__handle{--mat-icon-button-state-layer-size: var(--rt-side-menu-favorite-action-size, calc(var(--rt-spacing-16) * 2));--mat-icon-button-icon-size: var(--rt-side-menu-favorite-action-icon-size, var(--rt-font-size-lg));--mat-icon-button-icon-color: var(--rt-side-menu-favorite-action-color, var(--rt-text-base-secondary));flex:0 0 auto;cursor:grab;opacity:0}.rtui-side-menu-favorites__handle:active{cursor:grabbing}.rtui-side-menu-favorites__handle--always{opacity:1}@media(hover:none){.rtui-side-menu-favorites__handle{opacity:1}}.rtui-side-menu-favorites__row:hover .rtui-side-menu-favorites__handle,.rtui-side-menu-favorites__row:has(:focus-visible) .rtui-side-menu-favorites__handle,.rtui-side-menu-favorites__row.cdk-drag-preview .rtui-side-menu-favorites__handle{opacity:1}.rtui-side-menu-favorites__handle-icon{width:var(--mat-icon-button-icon-size);height:var(--mat-icon-button-icon-size);font-size:var(--mat-icon-button-icon-size);line-height:1}.rtui-side-menu-favorites__item{min-width:0;flex:1 1 auto}:host-context(.rtui-mobile-side-menu-list__sub):has(.rtui-side-menu-favorites__list){margin-bottom:var(--rt-spacing-8)}.rtui-side-menu-favorites__row.cdk-drag-preview{display:flex;align-items:center;border-radius:var(--rt-radius-xl);background-color:var(--rt-side-menu-favorites-drag-background, var(--rt-bg-base-base));box-shadow:var(--rt-side-menu-favorites-drag-shadow, 0 .5rem 1rem 0 var(--rt-shadow-color))}.rtui-side-menu-favorites__row.cdk-drag-placeholder{opacity:0}\n"] }]
|
|
1741
1759
|
}], ctorParameters: () => [], propDecorators: { handles: [{ type: i0.ViewChildren, args: ['handle', { ...{
|
|
1742
1760
|
read: ElementRef,
|
|
1743
1761
|
}, isSignal: true }] }], isSubMenuIconsOutlined: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubMenuIconsOutlined", required: false }] }], isSubMenuButtonIconsOutlined: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubMenuButtonIconsOutlined", required: false }] }], isSubMenuTooltipsShown: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubMenuTooltipsShown", required: false }] }], clickSubMenuAction: [{ type: i0.Output, args: ["clickSubMenuAction"] }], clickSubMenuAdditionalAction: [{ type: i0.Output, args: ["clickSubMenuAdditionalAction"] }] } });
|