myrtex-widget-site-header 1.0.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.
@@ -0,0 +1,243 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Input, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import { createCustomElement } from '@angular/elements';
6
+
7
+ var SharedMenuOptionsTypeEnum;
8
+ (function (SharedMenuOptionsTypeEnum) {
9
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["PersonalInfo"] = 1] = "PersonalInfo";
10
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Application"] = 2] = "Application";
11
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Setting"] = 3] = "Setting";
12
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["AdminPanel"] = 4] = "AdminPanel";
13
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Tenant"] = 5] = "Tenant";
14
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Organization"] = 6] = "Organization";
15
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Assistants"] = 7] = "Assistants";
16
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["ExpertProfile"] = 8] = "ExpertProfile";
17
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["ExpertQuality"] = 9] = "ExpertQuality";
18
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Expertise"] = 10] = "Expertise";
19
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["DocumentsActs"] = 11] = "DocumentsActs";
20
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["ExpertReady"] = 13] = "ExpertReady";
21
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["ProblemReportToBank"] = 14] = "ProblemReportToBank";
22
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Dialogs"] = 15] = "Dialogs";
23
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["MySites"] = 16] = "MySites";
24
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["CoFinance"] = 17] = "CoFinance";
25
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Chat"] = 18] = "Chat";
26
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["AgreementDocuments"] = 19] = "AgreementDocuments";
27
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["AutomaticCheck"] = 20] = "AutomaticCheck";
28
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Tours"] = 21] = "Tours";
29
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["OrganizationBCP"] = 22] = "OrganizationBCP";
30
+ SharedMenuOptionsTypeEnum[SharedMenuOptionsTypeEnum["Programs"] = 23] = "Programs";
31
+ })(SharedMenuOptionsTypeEnum || (SharedMenuOptionsTypeEnum = {}));
32
+ var SocialLinkTypeEnum;
33
+ (function (SocialLinkTypeEnum) {
34
+ SocialLinkTypeEnum[SocialLinkTypeEnum["VK"] = 0] = "VK";
35
+ SocialLinkTypeEnum[SocialLinkTypeEnum["FB"] = 1] = "FB";
36
+ SocialLinkTypeEnum[SocialLinkTypeEnum["YT"] = 2] = "YT";
37
+ SocialLinkTypeEnum[SocialLinkTypeEnum["OK"] = 3] = "OK";
38
+ SocialLinkTypeEnum[SocialLinkTypeEnum["INST"] = 4] = "INST";
39
+ SocialLinkTypeEnum[SocialLinkTypeEnum["TW"] = 5] = "TW";
40
+ SocialLinkTypeEnum[SocialLinkTypeEnum["TG"] = 6] = "TG";
41
+ SocialLinkTypeEnum[SocialLinkTypeEnum["RT"] = 7] = "RT";
42
+ SocialLinkTypeEnum[SocialLinkTypeEnum["MAX"] = 8] = "MAX";
43
+ })(SocialLinkTypeEnum || (SocialLinkTypeEnum = {}));
44
+
45
+ class MyrtexWidgetSiteHeaderComponent {
46
+ constructor() {
47
+ this.headerModel = { publicPages: [] };
48
+ }
49
+ set dataHeader(value) {
50
+ this.applyData(value);
51
+ }
52
+ get publicPages() {
53
+ var _a;
54
+ return (_a = this.headerModel.publicPages) !== null && _a !== void 0 ? _a : [];
55
+ }
56
+ get platforms() {
57
+ var _a, _b;
58
+ return (_b = (_a = this.headerModel.platformsJson) === null || _a === void 0 ? void 0 : _a.platforms) !== null && _b !== void 0 ? _b : [];
59
+ }
60
+ get userMenuItems() {
61
+ return this.buildUserMenuItems();
62
+ }
63
+ get userRole() {
64
+ var _a;
65
+ return (_a = this.headerModel.headerViewRole) !== null && _a !== void 0 ? _a : '';
66
+ }
67
+ get userName() {
68
+ var _a, _b;
69
+ return (_b = (_a = this.headerModel.userIdentity) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';
70
+ }
71
+ get socialLinks() {
72
+ var _a;
73
+ return (_a = this.headerModel.socialLinks) !== null && _a !== void 0 ? _a : [];
74
+ }
75
+ get headerPosition() {
76
+ var _a;
77
+ return (_a = this.headerModel.headerPosition) !== null && _a !== void 0 ? _a : '';
78
+ }
79
+ getSocialLinkSvgName(type) {
80
+ const svgNameMap = {
81
+ [SocialLinkTypeEnum.VK]: 'vk',
82
+ [SocialLinkTypeEnum.FB]: 'fb',
83
+ [SocialLinkTypeEnum.YT]: 'yt',
84
+ [SocialLinkTypeEnum.OK]: 'ok',
85
+ [SocialLinkTypeEnum.INST]: 'inst',
86
+ [SocialLinkTypeEnum.TW]: 'twitter',
87
+ [SocialLinkTypeEnum.TG]: 'telegram',
88
+ [SocialLinkTypeEnum.RT]: 'rutube',
89
+ [SocialLinkTypeEnum.MAX]: 'max-icon'
90
+ };
91
+ return svgNameMap[type] || '';
92
+ }
93
+ applyData(value) {
94
+ if (value === null || value === undefined) {
95
+ this.headerModel = { publicPages: [] };
96
+ return;
97
+ }
98
+ try {
99
+ const parsed = typeof value === 'string' ? JSON.parse(value) : value;
100
+ if (parsed && typeof parsed === 'object') {
101
+ const publicPages = Array.isArray(parsed.publicPages)
102
+ ? parsed.publicPages
103
+ : [];
104
+ this.headerModel = Object.assign(Object.assign({}, parsed), { publicPages });
105
+ }
106
+ else {
107
+ this.headerModel = { publicPages: [] };
108
+ }
109
+ }
110
+ catch (error) {
111
+ this.headerModel = { publicPages: [] };
112
+ }
113
+ }
114
+ buildUserMenuItems() {
115
+ var _a, _b, _c, _d;
116
+ const items = [];
117
+ const sharedMenu = (_a = this.headerModel.sharedMenu) !== null && _a !== void 0 ? _a : [];
118
+ const sharedExtensionMenu = (_b = this.headerModel.sharedExtensionMenu) !== null && _b !== void 0 ? _b : [];
119
+ //Логика за исключением проверок политик скопирована с AuthNavMenuMenu.cshtml из Rosgrant.Webshared
120
+ const adminPanel = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.AdminPanel);
121
+ if (adminPanel && this.headerModel.showWorkPanel) {
122
+ items.push({
123
+ name: adminPanel.name,
124
+ url: this.headerModel.userAdminUrl || '/user/admin'
125
+ });
126
+ }
127
+ const expertProfile = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.ExpertProfile);
128
+ const expertise = (_c = expertProfile === null || expertProfile === void 0 ? void 0 : expertProfile.subItems) === null || _c === void 0 ? void 0 : _c.find(x => x.type === SharedMenuOptionsTypeEnum.Expertise);
129
+ if (expertise && this.headerModel.showExpertises) {
130
+ items.push({
131
+ name: expertise.name,
132
+ url: this.headerModel.userExpertisesUrl || '/user/expertises'
133
+ });
134
+ }
135
+ const documentsActs = (_d = expertProfile === null || expertProfile === void 0 ? void 0 : expertProfile.subItems) === null || _d === void 0 ? void 0 : _d.find(x => x.type === SharedMenuOptionsTypeEnum.DocumentsActs);
136
+ if (this.headerModel.canSeeDocs && documentsActs) {
137
+ items.push({
138
+ name: 'Договоры',
139
+ url: this.headerModel.agreementAdminDocumentsUrl || '/agreement/admin/documents'
140
+ });
141
+ }
142
+ else if (this.headerModel.showGrantValidationsInAuthMenu) {
143
+ const validationUrl = this.headerModel.isPg
144
+ ? (this.headerModel.grantValidationsPgUrl || '/grant/validations-pg')
145
+ : (this.headerModel.applicationValidationAdminUrl || '/application/validation-admin');
146
+ items.push({
147
+ name: 'Перечень заявок',
148
+ url: validationUrl
149
+ });
150
+ }
151
+ const personalInfo = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.PersonalInfo);
152
+ if (personalInfo) {
153
+ items.push({
154
+ name: personalInfo.name,
155
+ url: this.headerModel.userProfileUrl || '/user/profile'
156
+ });
157
+ }
158
+ const dialogs = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.Dialogs);
159
+ if (dialogs) {
160
+ items.push({
161
+ name: dialogs.name || 'Сообщения',
162
+ url: '#',
163
+ isSpecial: true,
164
+ specialId: 'user-chat-auth-info'
165
+ });
166
+ }
167
+ const application = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.Application);
168
+ if (application) {
169
+ items.push({
170
+ name: application.name,
171
+ url: this.headerModel.userApplicationsUrl || '/application/list'
172
+ });
173
+ }
174
+ sharedExtensionMenu.forEach(itemExtMenu => {
175
+ if (itemExtMenu.isActive) {
176
+ // Примечание: проверка ExtPolicy должна быть на бэкенде
177
+ // Здесь мы показываем элемент, если он активен
178
+ items.push({
179
+ name: itemExtMenu.extMenuName,
180
+ url: itemExtMenu.extUrl
181
+ });
182
+ }
183
+ });
184
+ const setting = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.Setting);
185
+ if (setting) {
186
+ items.push({
187
+ name: setting.name,
188
+ url: this.headerModel.identityUserSettingsUrl || '/identity/user/settings'
189
+ });
190
+ }
191
+ items.push({
192
+ name: this.headerModel.topMenuLogoutText || 'Выйти',
193
+ url: this.headerModel.logoutPath || '/identity/account/logout'
194
+ });
195
+ return items;
196
+ }
197
+ }
198
+ MyrtexWidgetSiteHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
199
+ MyrtexWidgetSiteHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: MyrtexWidgetSiteHeaderComponent, selector: "lib-myrtex-widget-site-header", inputs: { dataHeader: ["data-header", "dataHeader"] }, ngImport: i0, template: "<header class=\"universal-header\"> \r\n <div class=\"universal-header__top\"> \r\n <div class=\"container\"> \r\n <a href=\"/\" class=\"universal-header__top-logo\">\r\n <svg class=\"top-logo__logo\">\r\n <use xlink:href=\"#FPG_logo_black\"></use>\r\n </svg>\r\n </a>\r\n <div class=\"universal-header__top-right\">\r\n <div class=\"universal-header__buttons\">\r\n <button class=\"universal-header__buttons-item\">\r\n <svg class=\"buttons-item__icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#glasses-icon\"></use>\r\n </svg>\r\n \u0412\u0435\u0440\u0441\u0438\u044F \u0434\u043B\u044F \u0441\u043B\u0430\u0431\u043E\u0432\u0438\u0434\u044F\u0449\u0438\u0445\r\n </button>\r\n <button class=\"universal-header__buttons-item\"> \r\n <svg class=\"buttons-item__icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#all-services\"></use>\r\n </svg>\r\n \u0412\u0441\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044B\r\n </button>\r\n <div>\r\n <!-- <award-user-menu-injection></award-user-menu-injection> -->\r\n </div>\r\n </div>\r\n <div class=\"universal-header__login\" *ngIf=\"!headerModel.isLoggedIn\">\r\n <a href=\"/identity/account/login\" class=\"universal-header__login-btn\">\u0412\u043E\u0439\u0442\u0438</a> \r\n </div>\r\n <div class=\"universal-header__user\" *ngIf=\"headerModel.isLoggedIn\">\r\n <div class=\"universal-header__user-profile\">\r\n <div class=\"user-profile__avatar\">\r\n <span class=\"mrx-icon icon-user icon-font-40\"></span> \r\n <!-- <img src=\"/\" alt=\"\"> -->\r\n </div>\r\n \r\n <div class=\"user-profile__info\">\r\n <span class=\"user-profile__info-role\">{{ userRole }}</span>\r\n <span class=\"user-profile__info-name\">{{ userName }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"universal-header__user-menu\" id=\"dropdown\">\r\n <ul class=\"user-menu__list\">\r\n <li *ngFor=\"let item of userMenuItems\">\r\n <a *ngIf=\"!item.isSpecial\" [href]=\"item.url\">{{ item.name }}</a>\r\n <div *ngIf=\"item.isSpecial\" [attr.id]=\"item.specialId\" style=\"display:none;\"></div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div> \r\n </div> \r\n </div>\r\n <div class=\"universal-header__services\">\r\n <div class=\"container\"> \r\n <div class=\"universal-header__services-list\">\r\n <a *ngFor=\"let platform of platforms\" [href]=\"platform.link || '#'\" [attr.target]=\"platform.link ? '_blank' : null\">\r\n <svg class=\"services-list__link-icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"'#' + platform.svg\"></use>\r\n </svg>\r\n <div class=\"services-list__link\">\r\n <div class=\"services-list__link-name\">{{ platform.name }}</div>\r\n </div> \r\n </a>\r\n </div>\r\n <div class=\"universal-header__social\">\r\n <a *ngFor=\"let socialLink of socialLinks\" \r\n class=\"universal-header__social-link\" \r\n [href]=\"socialLink.url || '#'\" \r\n target=\"_blank\">\r\n <svg class=\"universal-header__social-icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"'#' + getSocialLinkSvgName(socialLink.type)\"></use>\r\n </svg>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"container\">\r\n <nav class=\"universal-header__nav\" [ngClass]=\"headerPosition\">\r\n <ul class=\"universal-header__nav-list\" *ngIf=\"publicPages?.length\">\r\n <li *ngFor=\"let page of publicPages\">\r\n <a [href]=\"page.url || '#'\">{{ page.name }}</a>\r\n </li>\r\n </ul>\r\n </nav> \r\n </div> \r\n</header>\r\n", styles: [".universal-header{background:var(--brand-bg-tertiary-default, #fff);font-size:16px;font-weight:600;line-height:18px;padding:24px 0 32px;z-index:10}.universal-header__top{position:relative;z-index:10}.universal-header__top>.container{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--fpg-grey, #f4f2f1)}.universal-header__top-logo{height:44px;max-width:200px;display:flex;align-items:center;overflow:hidden}.universal-header__top-logo svg.top-logo__logo{max-height:44px;max-width:196px}.universal-header__top-right{display:flex;gap:20px}.universal-header__buttons{display:flex;gap:12px}.universal-header__buttons-item{background:var(--fpg-grey, #f4f2f1);border:none;border-radius:8px;display:flex;padding:12px 20px 12px 16px;justify-content:center;align-items:center;gap:8px;cursor:pointer;font-size:16px;font-weight:600;line-height:18px}.universal-header__buttons-item:hover{background:var(--fpg-gold_secondary, #e6d4b6)}.universal-header__buttons-item .buttons-item__icon{max-width:20px;max-height:20px;fill:var(--fpg-black, #282828);transition:all .2s ease-in-out}.universal-header__login-btn{display:flex;height:44px;padding:12px 20px;justify-content:center;align-items:center;gap:8px;color:#fff;border-radius:8px;background:var(--fpg-black, #282828);font-size:16px;font-weight:600;line-height:18px}.universal-header__user{position:relative}.universal-header__user-profile{background:none;border:none;display:flex;align-items:center;gap:12px;cursor:pointer;border-radius:0 0 40px 40px}.universal-header__user-profile .user-profile__avatar{width:40px;height:40px;border-radius:50%}.universal-header__user-profile .user-profile__avatar>*{width:40px;height:40px;border-radius:50%;object-fit:cover}.universal-header__user-profile .user-profile__info{display:flex;flex-direction:column;align-items:start}.universal-header__user-profile .user-profile__info-role{font-size:12px;font-weight:600;line-height:14px;color:var(--fpg-grey_dark, #c3c3c3)}.universal-header__user-profile .user-profile__info-name{font-size:16px;font-weight:600;line-height:18px}.universal-header__user-menu{position:absolute;top:52px;right:0;display:flex;width:221px;flex-direction:column;align-items:flex-start;border-radius:16px;background:#fff;box-shadow:0 4px 40px #181e4c1a;opacity:0;visibility:hidden;transition:all .2s ease;z-index:1000}.universal-header__user-menu .user-menu__list{list-style:none;padding:0;margin:0;width:100%}.universal-header__user-menu .user-menu__list li a{display:block;padding:12px 16px;color:var(--fpg-black, #282828);text-decoration:none;font-size:16px;font-style:normal;font-weight:600;line-height:18px}.universal-header__user-menu .user-menu__list li a .badge{color:#fff;border-radius:50%;padding:0 6px 2px;font-size:12px;font-weight:600;line-height:12px;float:left;margin-left:8px;background:var(--fpg-black, #282828)}.universal-header__user-menu .user-menu__list li:hover{background:var(--fpg-gold_secondary, #e6d4b6)}.universal-header__user-menu .user-menu__list li:first-child{border-radius:16px 16px 0 0}.universal-header__user-menu .user-menu__list li:last-child{border-radius:0 0 16px 16px}.universal-header__user:hover .user-profile__info-name,.universal-header__user:active .user-profile__info-name{color:var(--fpg-gold, #d5ae75)}.universal-header__user:hover .universal-header__user-menu,.universal-header__user:active .universal-header__user-menu{opacity:1;visibility:visible}.universal-header__nav{padding-top:16px;z-index:9}.universal-header__nav-list{display:flex;list-style:none;margin:0;padding:0;gap:32px}.universal-header__nav-list li{position:relative}.universal-header__nav-list li a{color:var(--fpg-black, #282828);text-decoration:none;font-size:16px;font-weight:600;line-height:18px}.universal-header__nav.center .universal-header__nav-list{justify-content:center}.universal-header__nav.right .universal-header__nav-list{justify-content:flex-end}.universal-header__nav.justifybetween .universal-header__nav-list{justify-content:space-between}.universal-header__services{background:var(--brand-bg-tertiary-default, #fff);padding:16px 0 24px;position:absolute;top:100%;left:0;right:0;width:100%;border-radius:0 0 40px 40px;z-index:10}.universal-header__services>.container{display:flex;flex-direction:column;gap:24px;width:100%}.universal-header__services-list{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px 12px;gap:8px 12px;list-style:none;padding:0;margin:0}.universal-header__services-list a{border-radius:16px 0;background:var(--brand-bg-tertiary-default, #fff);color:var(--fpg-black, #282828);text-decoration:none;display:flex;padding:12px 44px 12px 12px;align-items:center;gap:8px;align-self:stretch;position:relative;transition:all .2s ease-in-out}.universal-header__services-list a:hover{background-color:var(--fpg-grey, #f4f2f1)}.universal-header__services-list a:hover:after{content:\"\";position:absolute;top:12px;right:12px;width:24px;height:24px;background-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M17.4801%206.51993C17.1872%206.22704%2016.7123%206.22704%2016.4194%206.51993L6.51992%2016.4194C6.22703%2016.7123%206.22703%2017.1872%206.51992%2017.4801C6.81281%2017.773%207.28769%2017.773%207.58058%2017.4801L17.4801%207.58059C17.773%207.2877%2017.773%206.81283%2017.4801%206.51993Z%22%20fill%3D%22%2333373C%22/%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M17.6997%207.05026C17.6997%206.63605%2017.364%206.30026%2016.9497%206.30026L7.05025%206.30026C6.63604%206.30026%206.30025%206.63605%206.30025%207.05026C6.30025%207.46448%206.63604%207.80026%207.05025%207.80026L16.1997%207.80026L16.1997%2016.9498C16.1997%2017.364%2016.5355%2017.6998%2016.9497%2017.6998C17.364%2017.6998%2017.6997%2017.364%2017.6997%2016.9498L17.6997%207.05026Z%22%20fill%3D%22%2333373C%22/%3E%0A%3C/svg%3E%0A);background-repeat:no-repeat;background-position:center center;background-size:contain}.universal-header__services-list .services-list__link-name{font-size:16px;font-weight:600;line-height:18px}.universal-header__services-list .services-list__link-subname{font-size:14px;font-weight:600;line-height:14px;color:var(--fpg-gold, #d5ae75)}.universal-header__services-list .services-list__link-icon{max-width:24px;max-height:24px}.universal-header__social{display:flex;gap:6px;margin-left:12px}.universal-header__social-link{display:flex;padding:8px;align-items:center;border-radius:100px;background:var(--fpg-grey, #f4f2f1)}.universal-header__social-icon{max-width:24px;max-height:24px;fill:var(--fpg-black, #282828);transition:all .2s ease-in-out}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderComponent, decorators: [{
201
+ type: Component,
202
+ args: [{ selector: 'lib-myrtex-widget-site-header', template: "<header class=\"universal-header\"> \r\n <div class=\"universal-header__top\"> \r\n <div class=\"container\"> \r\n <a href=\"/\" class=\"universal-header__top-logo\">\r\n <svg class=\"top-logo__logo\">\r\n <use xlink:href=\"#FPG_logo_black\"></use>\r\n </svg>\r\n </a>\r\n <div class=\"universal-header__top-right\">\r\n <div class=\"universal-header__buttons\">\r\n <button class=\"universal-header__buttons-item\">\r\n <svg class=\"buttons-item__icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#glasses-icon\"></use>\r\n </svg>\r\n \u0412\u0435\u0440\u0441\u0438\u044F \u0434\u043B\u044F \u0441\u043B\u0430\u0431\u043E\u0432\u0438\u0434\u044F\u0449\u0438\u0445\r\n </button>\r\n <button class=\"universal-header__buttons-item\"> \r\n <svg class=\"buttons-item__icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#all-services\"></use>\r\n </svg>\r\n \u0412\u0441\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044B\r\n </button>\r\n <div>\r\n <!-- <award-user-menu-injection></award-user-menu-injection> -->\r\n </div>\r\n </div>\r\n <div class=\"universal-header__login\" *ngIf=\"!headerModel.isLoggedIn\">\r\n <a href=\"/identity/account/login\" class=\"universal-header__login-btn\">\u0412\u043E\u0439\u0442\u0438</a> \r\n </div>\r\n <div class=\"universal-header__user\" *ngIf=\"headerModel.isLoggedIn\">\r\n <div class=\"universal-header__user-profile\">\r\n <div class=\"user-profile__avatar\">\r\n <span class=\"mrx-icon icon-user icon-font-40\"></span> \r\n <!-- <img src=\"/\" alt=\"\"> -->\r\n </div>\r\n \r\n <div class=\"user-profile__info\">\r\n <span class=\"user-profile__info-role\">{{ userRole }}</span>\r\n <span class=\"user-profile__info-name\">{{ userName }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"universal-header__user-menu\" id=\"dropdown\">\r\n <ul class=\"user-menu__list\">\r\n <li *ngFor=\"let item of userMenuItems\">\r\n <a *ngIf=\"!item.isSpecial\" [href]=\"item.url\">{{ item.name }}</a>\r\n <div *ngIf=\"item.isSpecial\" [attr.id]=\"item.specialId\" style=\"display:none;\"></div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div> \r\n </div> \r\n </div>\r\n <div class=\"universal-header__services\">\r\n <div class=\"container\"> \r\n <div class=\"universal-header__services-list\">\r\n <a *ngFor=\"let platform of platforms\" [href]=\"platform.link || '#'\" [attr.target]=\"platform.link ? '_blank' : null\">\r\n <svg class=\"services-list__link-icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"'#' + platform.svg\"></use>\r\n </svg>\r\n <div class=\"services-list__link\">\r\n <div class=\"services-list__link-name\">{{ platform.name }}</div>\r\n </div> \r\n </a>\r\n </div>\r\n <div class=\"universal-header__social\">\r\n <a *ngFor=\"let socialLink of socialLinks\" \r\n class=\"universal-header__social-link\" \r\n [href]=\"socialLink.url || '#'\" \r\n target=\"_blank\">\r\n <svg class=\"universal-header__social-icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"'#' + getSocialLinkSvgName(socialLink.type)\"></use>\r\n </svg>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"container\">\r\n <nav class=\"universal-header__nav\" [ngClass]=\"headerPosition\">\r\n <ul class=\"universal-header__nav-list\" *ngIf=\"publicPages?.length\">\r\n <li *ngFor=\"let page of publicPages\">\r\n <a [href]=\"page.url || '#'\">{{ page.name }}</a>\r\n </li>\r\n </ul>\r\n </nav> \r\n </div> \r\n</header>\r\n", styles: [".universal-header{background:var(--brand-bg-tertiary-default, #fff);font-size:16px;font-weight:600;line-height:18px;padding:24px 0 32px;z-index:10}.universal-header__top{position:relative;z-index:10}.universal-header__top>.container{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--fpg-grey, #f4f2f1)}.universal-header__top-logo{height:44px;max-width:200px;display:flex;align-items:center;overflow:hidden}.universal-header__top-logo svg.top-logo__logo{max-height:44px;max-width:196px}.universal-header__top-right{display:flex;gap:20px}.universal-header__buttons{display:flex;gap:12px}.universal-header__buttons-item{background:var(--fpg-grey, #f4f2f1);border:none;border-radius:8px;display:flex;padding:12px 20px 12px 16px;justify-content:center;align-items:center;gap:8px;cursor:pointer;font-size:16px;font-weight:600;line-height:18px}.universal-header__buttons-item:hover{background:var(--fpg-gold_secondary, #e6d4b6)}.universal-header__buttons-item .buttons-item__icon{max-width:20px;max-height:20px;fill:var(--fpg-black, #282828);transition:all .2s ease-in-out}.universal-header__login-btn{display:flex;height:44px;padding:12px 20px;justify-content:center;align-items:center;gap:8px;color:#fff;border-radius:8px;background:var(--fpg-black, #282828);font-size:16px;font-weight:600;line-height:18px}.universal-header__user{position:relative}.universal-header__user-profile{background:none;border:none;display:flex;align-items:center;gap:12px;cursor:pointer;border-radius:0 0 40px 40px}.universal-header__user-profile .user-profile__avatar{width:40px;height:40px;border-radius:50%}.universal-header__user-profile .user-profile__avatar>*{width:40px;height:40px;border-radius:50%;object-fit:cover}.universal-header__user-profile .user-profile__info{display:flex;flex-direction:column;align-items:start}.universal-header__user-profile .user-profile__info-role{font-size:12px;font-weight:600;line-height:14px;color:var(--fpg-grey_dark, #c3c3c3)}.universal-header__user-profile .user-profile__info-name{font-size:16px;font-weight:600;line-height:18px}.universal-header__user-menu{position:absolute;top:52px;right:0;display:flex;width:221px;flex-direction:column;align-items:flex-start;border-radius:16px;background:#fff;box-shadow:0 4px 40px #181e4c1a;opacity:0;visibility:hidden;transition:all .2s ease;z-index:1000}.universal-header__user-menu .user-menu__list{list-style:none;padding:0;margin:0;width:100%}.universal-header__user-menu .user-menu__list li a{display:block;padding:12px 16px;color:var(--fpg-black, #282828);text-decoration:none;font-size:16px;font-style:normal;font-weight:600;line-height:18px}.universal-header__user-menu .user-menu__list li a .badge{color:#fff;border-radius:50%;padding:0 6px 2px;font-size:12px;font-weight:600;line-height:12px;float:left;margin-left:8px;background:var(--fpg-black, #282828)}.universal-header__user-menu .user-menu__list li:hover{background:var(--fpg-gold_secondary, #e6d4b6)}.universal-header__user-menu .user-menu__list li:first-child{border-radius:16px 16px 0 0}.universal-header__user-menu .user-menu__list li:last-child{border-radius:0 0 16px 16px}.universal-header__user:hover .user-profile__info-name,.universal-header__user:active .user-profile__info-name{color:var(--fpg-gold, #d5ae75)}.universal-header__user:hover .universal-header__user-menu,.universal-header__user:active .universal-header__user-menu{opacity:1;visibility:visible}.universal-header__nav{padding-top:16px;z-index:9}.universal-header__nav-list{display:flex;list-style:none;margin:0;padding:0;gap:32px}.universal-header__nav-list li{position:relative}.universal-header__nav-list li a{color:var(--fpg-black, #282828);text-decoration:none;font-size:16px;font-weight:600;line-height:18px}.universal-header__nav.center .universal-header__nav-list{justify-content:center}.universal-header__nav.right .universal-header__nav-list{justify-content:flex-end}.universal-header__nav.justifybetween .universal-header__nav-list{justify-content:space-between}.universal-header__services{background:var(--brand-bg-tertiary-default, #fff);padding:16px 0 24px;position:absolute;top:100%;left:0;right:0;width:100%;border-radius:0 0 40px 40px;z-index:10}.universal-header__services>.container{display:flex;flex-direction:column;gap:24px;width:100%}.universal-header__services-list{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px 12px;gap:8px 12px;list-style:none;padding:0;margin:0}.universal-header__services-list a{border-radius:16px 0;background:var(--brand-bg-tertiary-default, #fff);color:var(--fpg-black, #282828);text-decoration:none;display:flex;padding:12px 44px 12px 12px;align-items:center;gap:8px;align-self:stretch;position:relative;transition:all .2s ease-in-out}.universal-header__services-list a:hover{background-color:var(--fpg-grey, #f4f2f1)}.universal-header__services-list a:hover:after{content:\"\";position:absolute;top:12px;right:12px;width:24px;height:24px;background-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M17.4801%206.51993C17.1872%206.22704%2016.7123%206.22704%2016.4194%206.51993L6.51992%2016.4194C6.22703%2016.7123%206.22703%2017.1872%206.51992%2017.4801C6.81281%2017.773%207.28769%2017.773%207.58058%2017.4801L17.4801%207.58059C17.773%207.2877%2017.773%206.81283%2017.4801%206.51993Z%22%20fill%3D%22%2333373C%22/%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M17.6997%207.05026C17.6997%206.63605%2017.364%206.30026%2016.9497%206.30026L7.05025%206.30026C6.63604%206.30026%206.30025%206.63605%206.30025%207.05026C6.30025%207.46448%206.63604%207.80026%207.05025%207.80026L16.1997%207.80026L16.1997%2016.9498C16.1997%2017.364%2016.5355%2017.6998%2016.9497%2017.6998C17.364%2017.6998%2017.6997%2017.364%2017.6997%2016.9498L17.6997%207.05026Z%22%20fill%3D%22%2333373C%22/%3E%0A%3C/svg%3E%0A);background-repeat:no-repeat;background-position:center center;background-size:contain}.universal-header__services-list .services-list__link-name{font-size:16px;font-weight:600;line-height:18px}.universal-header__services-list .services-list__link-subname{font-size:14px;font-weight:600;line-height:14px;color:var(--fpg-gold, #d5ae75)}.universal-header__services-list .services-list__link-icon{max-width:24px;max-height:24px}.universal-header__social{display:flex;gap:6px;margin-left:12px}.universal-header__social-link{display:flex;padding:8px;align-items:center;border-radius:100px;background:var(--fpg-grey, #f4f2f1)}.universal-header__social-icon{max-width:24px;max-height:24px;fill:var(--fpg-black, #282828);transition:all .2s ease-in-out}\n"] }]
203
+ }], propDecorators: { dataHeader: [{
204
+ type: Input,
205
+ args: ['data-header']
206
+ }] } });
207
+
208
+ class MyrtexWidgetSiteHeaderModule {
209
+ static registerCustomComponents(injector) {
210
+ const element = createCustomElement(MyrtexWidgetSiteHeaderComponent, { injector: injector });
211
+ customElements.define("mrx-myrtex-widget-site-header", element);
212
+ }
213
+ }
214
+ MyrtexWidgetSiteHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
215
+ MyrtexWidgetSiteHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderModule, declarations: [MyrtexWidgetSiteHeaderComponent], imports: [CommonModule], exports: [MyrtexWidgetSiteHeaderComponent] });
216
+ MyrtexWidgetSiteHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderModule, imports: [[
217
+ CommonModule
218
+ ]] });
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderModule, decorators: [{
220
+ type: NgModule,
221
+ args: [{
222
+ declarations: [
223
+ MyrtexWidgetSiteHeaderComponent
224
+ ],
225
+ imports: [
226
+ CommonModule
227
+ ],
228
+ exports: [
229
+ MyrtexWidgetSiteHeaderComponent
230
+ ]
231
+ }]
232
+ }] });
233
+
234
+ /*
235
+ * Public API Surface of myrtex-widget-site-header
236
+ */
237
+
238
+ /**
239
+ * Generated bundle index. Do not edit.
240
+ */
241
+
242
+ export { MyrtexWidgetSiteHeaderComponent, MyrtexWidgetSiteHeaderModule };
243
+ //# sourceMappingURL=myrtex-widget-site-header.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"myrtex-widget-site-header.mjs","sources":["../../../projects/myrtex-widget-site-header/src/lib/models/header-widget.model.ts","../../../projects/myrtex-widget-site-header/src/lib/myrtex-widget-site-header.component.ts","../../../projects/myrtex-widget-site-header/src/lib/myrtex-widget-site-header.component.html","../../../projects/myrtex-widget-site-header/src/lib/myrtex-widget-site-header.module.ts","../../../projects/myrtex-widget-site-header/src/public-api.ts","../../../projects/myrtex-widget-site-header/src/myrtex-widget-site-header.ts"],"sourcesContent":["export interface HeaderWidgetPublicPage {\r\n name: string;\r\n url: string;\r\n children?: HeaderWidgetPublicPage[];\r\n}\r\n\r\nexport interface HeaderWidgetPlatform {\r\n name: string;\r\n link: string;\r\n svg: string;\r\n}\r\n\r\nexport interface HeaderWidgetPlatformsJson {\r\n headerPlatformsListHead?: string;\r\n footerPlatformsListHead?: string;\r\n platforms?: HeaderWidgetPlatform[];\r\n vseHeaderPlatformsListHead?: string;\r\n vseFooterPlatformsListHead?: string;\r\n isShowVsePlatforms?: boolean;\r\n vsePlatforms?: HeaderWidgetPlatform[];\r\n useFooterWithPlatforms?: boolean;\r\n}\r\n\r\nexport enum SharedMenuOptionsTypeEnum {\r\n PersonalInfo = 1,\r\n Application = 2,\r\n Setting = 3,\r\n AdminPanel = 4,\r\n Tenant = 5,\r\n Organization = 6,\r\n Assistants = 7,\r\n ExpertProfile = 8,\r\n ExpertQuality = 9,\r\n Expertise = 10,\r\n DocumentsActs = 11,\r\n ExpertReady = 13,\r\n ProblemReportToBank = 14,\r\n Dialogs = 15,\r\n MySites = 16,\r\n CoFinance = 17,\r\n Chat = 18,\r\n AgreementDocuments = 19,\r\n AutomaticCheck = 20,\r\n Tours = 21,\r\n OrganizationBCP = 22,\r\n Programs = 23\r\n}\r\n\r\nexport interface HeaderWidgetSharedMenuSubItem {\r\n type: SharedMenuOptionsTypeEnum;\r\n name: string;\r\n url?: string;\r\n cssClassName?: string;\r\n additionalTxt?: string;\r\n}\r\n\r\nexport interface HeaderWidgetSharedMenuItem {\r\n type: SharedMenuOptionsTypeEnum;\r\n name: string;\r\n url?: string;\r\n subItems?: HeaderWidgetSharedMenuSubItem[];\r\n cssClassName?: string;\r\n additionalTxt?: string;\r\n}\r\n\r\nexport interface HeaderWidgetExtensionMenuItem {\r\n extMenuName: string;\r\n extOrder: number;\r\n extPolicy?: string;\r\n extUrl: string;\r\n isActive: boolean;\r\n}\r\n\r\nexport interface HeaderWidgetSystemRole {\r\n role: number; // SystemRolesEnum as number\r\n}\r\n\r\nexport interface HeaderWidgetRole {\r\n name?: string;\r\n sysName?: string;\r\n visible?: boolean;\r\n order?: number;\r\n}\r\n\r\nexport interface HeaderWidgetUserIdentity {\r\n name?: string;\r\n systemRoles?: HeaderWidgetSystemRole[];\r\n roles?: HeaderWidgetRole[];\r\n ppp?: string;\r\n tenantId?: string;\r\n}\r\n\r\nexport enum SocialLinkTypeEnum {\r\n VK = 0,\r\n FB = 1,\r\n YT = 2,\r\n OK = 3,\r\n INST = 4,\r\n TW = 5,\r\n TG = 6,\r\n RT = 7,\r\n MAX = 8\r\n}\r\n\r\nexport interface HeaderWidgetSocialLink {\r\n isLightHeader?: boolean;\r\n type: SocialLinkTypeEnum;\r\n url: string;\r\n}\r\n\r\nexport interface HeaderWidgetModel {\r\n publicPages: HeaderWidgetPublicPage[];\r\n isPg?: boolean;\r\n showVseLink?: boolean;\r\n vseLink?: string;\r\n isHmao?: boolean;\r\n isPortal?: boolean;\r\n userIdentity?: HeaderWidgetUserIdentity;\r\n isLoggedIn?: boolean;\r\n userHasAvatar?: boolean;\r\n isWide?: boolean;\r\n headerPosition?: string;\r\n isLight?: boolean;\r\n topMenuLogoutText?: string;\r\n isShowPlatforms?: boolean;\r\n platformsJson?: HeaderWidgetPlatformsJson;\r\n awardUserMenuEnabled?: boolean;\r\n sharedMenu?: HeaderWidgetSharedMenuItem[];\r\n sharedExtensionMenu?: HeaderWidgetExtensionMenuItem[];\r\n logoutPath?: string;\r\n userAdminUrl?: string;\r\n userExpertisesUrl?: string;\r\n agreementAdminDocumentsUrl?: string;\r\n grantValidationsPgUrl?: string;\r\n applicationValidationAdminUrl?: string;\r\n userProfileUrl?: string;\r\n userApplicationsUrl?: string;\r\n identityUserSettingsUrl?: string;\r\n showGrantValidationsInAuthMenu?: boolean;\r\n showWorkPanel?: boolean;\r\n showExpertises?: boolean;\r\n canSeeDocs?: boolean;\r\n headerViewRole?: string;\r\n socialLinks?: HeaderWidgetSocialLink[];\r\n}\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { \r\n HeaderWidgetModel, \r\n HeaderWidgetPublicPage, \r\n HeaderWidgetPlatform,\r\n HeaderWidgetSocialLink,\r\n SocialLinkTypeEnum,\r\n SharedMenuOptionsTypeEnum\r\n} from './models/header-widget.model';\r\n\r\nexport interface UserMenuItem {\r\n name: string;\r\n url: string;\r\n isSpecial?: boolean; // для элементов типа Dialogs с id=\"user-chat-auth-info\"\r\n specialId?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-myrtex-widget-site-header',\r\n templateUrl: 'myrtex-widget-site-header.component.html',\r\n styleUrls: ['./myrtex-widget-site-header.component.less']\r\n})\r\nexport class MyrtexWidgetSiteHeaderComponent {\r\n \r\n @Input('data-header')\r\n set dataHeader(value: string | HeaderWidgetModel | null | undefined) {\r\n this.applyData(value);\r\n }\r\n\r\n public headerModel: HeaderWidgetModel = { publicPages: [] };\r\n\r\n public get publicPages(): HeaderWidgetPublicPage[] {\r\n return this.headerModel.publicPages ?? [];\r\n }\r\n\r\n public get platforms(): HeaderWidgetPlatform[] {\r\n return this.headerModel.platformsJson?.platforms ?? [];\r\n }\r\n\r\n public get userMenuItems(): UserMenuItem[] {\r\n return this.buildUserMenuItems();\r\n }\r\n\r\n public get userRole(): string {\r\n return this.headerModel.headerViewRole ?? '';\r\n }\r\n\r\n public get userName(): string {\r\n return this.headerModel.userIdentity?.name ?? '';\r\n }\r\n\r\n public get socialLinks(): HeaderWidgetSocialLink[] {\r\n return this.headerModel.socialLinks ?? [];\r\n }\r\n\r\n public get headerPosition(): string {\r\n return this.headerModel.headerPosition ?? '';\r\n }\r\n\r\n public getSocialLinkSvgName(type: SocialLinkTypeEnum): string {\r\n const svgNameMap: Record<SocialLinkTypeEnum, string> = {\r\n [SocialLinkTypeEnum.VK]: 'vk',\r\n [SocialLinkTypeEnum.FB]: 'fb',\r\n [SocialLinkTypeEnum.YT]: 'yt',\r\n [SocialLinkTypeEnum.OK]: 'ok',\r\n [SocialLinkTypeEnum.INST]: 'inst',\r\n [SocialLinkTypeEnum.TW]: 'twitter',\r\n [SocialLinkTypeEnum.TG]: 'telegram',\r\n [SocialLinkTypeEnum.RT]: 'rutube',\r\n [SocialLinkTypeEnum.MAX]: 'max-icon'\r\n };\r\n return svgNameMap[type] || '';\r\n }\r\n\r\n private applyData(value: string | HeaderWidgetModel | null | undefined): void {\r\n if (value === null || value === undefined) {\r\n this.headerModel = { publicPages: [] };\r\n return;\r\n }\r\n\r\n try {\r\n const parsed = typeof value === 'string' ? JSON.parse(value) : value;\r\n if (parsed && typeof parsed === 'object') {\r\n const publicPages = Array.isArray((parsed as HeaderWidgetModel).publicPages)\r\n ? (parsed as HeaderWidgetModel).publicPages\r\n : [];\r\n\r\n this.headerModel = {\r\n ...parsed,\r\n publicPages,\r\n } as HeaderWidgetModel;\r\n } else {\r\n this.headerModel = { publicPages: [] };\r\n }\r\n } catch (error) {\r\n this.headerModel = { publicPages: [] };\r\n }\r\n }\r\n\r\n private buildUserMenuItems(): UserMenuItem[] {\r\n const items: UserMenuItem[] = [];\r\n const sharedMenu = this.headerModel.sharedMenu ?? [];\r\n const sharedExtensionMenu = this.headerModel.sharedExtensionMenu ?? [];\r\n\r\n //Логика за исключением проверок политик скопирована с AuthNavMenuMenu.cshtml из Rosgrant.Webshared\r\n\r\n const adminPanel = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.AdminPanel);\r\n if (adminPanel && this.headerModel.showWorkPanel) {\r\n items.push({\r\n name: adminPanel.name,\r\n url: this.headerModel.userAdminUrl || '/user/admin'\r\n });\r\n }\r\n\r\n const expertProfile = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.ExpertProfile);\r\n const expertise = expertProfile?.subItems?.find(x => x.type === SharedMenuOptionsTypeEnum.Expertise);\r\n if (expertise && this.headerModel.showExpertises) {\r\n items.push({\r\n name: expertise.name,\r\n url: this.headerModel.userExpertisesUrl || '/user/expertises'\r\n });\r\n }\r\n\r\n const documentsActs = expertProfile?.subItems?.find(x => x.type === SharedMenuOptionsTypeEnum.DocumentsActs);\r\n \r\n if (this.headerModel.canSeeDocs && documentsActs) {\r\n items.push({\r\n name: 'Договоры',\r\n url: this.headerModel.agreementAdminDocumentsUrl || '/agreement/admin/documents'\r\n });\r\n } else if(this.headerModel.showGrantValidationsInAuthMenu) {\r\n const validationUrl = this.headerModel.isPg \r\n ? (this.headerModel.grantValidationsPgUrl || '/grant/validations-pg')\r\n : (this.headerModel.applicationValidationAdminUrl || '/application/validation-admin');\r\n items.push({\r\n name: 'Перечень заявок',\r\n url: validationUrl\r\n });\r\n }\r\n\r\n const personalInfo = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.PersonalInfo);\r\n if (personalInfo) {\r\n items.push({\r\n name: personalInfo.name,\r\n url: this.headerModel.userProfileUrl || '/user/profile'\r\n });\r\n }\r\n\r\n const dialogs = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.Dialogs);\r\n if (dialogs) {\r\n items.push({\r\n name: dialogs.name || 'Сообщения',\r\n url: '#',\r\n isSpecial: true,\r\n specialId: 'user-chat-auth-info'\r\n });\r\n }\r\n\r\n const application = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.Application);\r\n if (application) {\r\n items.push({\r\n name: application.name,\r\n url: this.headerModel.userApplicationsUrl || '/application/list'\r\n });\r\n }\r\n\r\n sharedExtensionMenu.forEach(itemExtMenu => {\r\n if (itemExtMenu.isActive) {\r\n // Примечание: проверка ExtPolicy должна быть на бэкенде\r\n // Здесь мы показываем элемент, если он активен\r\n items.push({\r\n name: itemExtMenu.extMenuName,\r\n url: itemExtMenu.extUrl\r\n });\r\n }\r\n });\r\n\r\n const setting = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.Setting);\r\n if (setting) {\r\n items.push({\r\n name: setting.name,\r\n url: this.headerModel.identityUserSettingsUrl || '/identity/user/settings'\r\n });\r\n }\r\n\r\n items.push({\r\n name: this.headerModel.topMenuLogoutText || 'Выйти',\r\n url: this.headerModel.logoutPath || '/identity/account/logout'\r\n });\r\n\r\n return items;\r\n }\r\n}\r\n\r\n","<header class=\"universal-header\"> \r\n <div class=\"universal-header__top\"> \r\n <div class=\"container\"> \r\n <a href=\"/\" class=\"universal-header__top-logo\">\r\n <svg class=\"top-logo__logo\">\r\n <use xlink:href=\"#FPG_logo_black\"></use>\r\n </svg>\r\n </a>\r\n <div class=\"universal-header__top-right\">\r\n <div class=\"universal-header__buttons\">\r\n <button class=\"universal-header__buttons-item\">\r\n <svg class=\"buttons-item__icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#glasses-icon\"></use>\r\n </svg>\r\n Версия для слабовидящих\r\n </button>\r\n <button class=\"universal-header__buttons-item\"> \r\n <svg class=\"buttons-item__icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#all-services\"></use>\r\n </svg>\r\n Все сервисы\r\n </button>\r\n <div>\r\n <!-- <award-user-menu-injection></award-user-menu-injection> -->\r\n </div>\r\n </div>\r\n <div class=\"universal-header__login\" *ngIf=\"!headerModel.isLoggedIn\">\r\n <a href=\"/identity/account/login\" class=\"universal-header__login-btn\">Войти</a> \r\n </div>\r\n <div class=\"universal-header__user\" *ngIf=\"headerModel.isLoggedIn\">\r\n <div class=\"universal-header__user-profile\">\r\n <div class=\"user-profile__avatar\">\r\n <span class=\"mrx-icon icon-user icon-font-40\"></span> \r\n <!-- <img src=\"/\" alt=\"\"> -->\r\n </div>\r\n \r\n <div class=\"user-profile__info\">\r\n <span class=\"user-profile__info-role\">{{ userRole }}</span>\r\n <span class=\"user-profile__info-name\">{{ userName }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"universal-header__user-menu\" id=\"dropdown\">\r\n <ul class=\"user-menu__list\">\r\n <li *ngFor=\"let item of userMenuItems\">\r\n <a *ngIf=\"!item.isSpecial\" [href]=\"item.url\">{{ item.name }}</a>\r\n <div *ngIf=\"item.isSpecial\" [attr.id]=\"item.specialId\" style=\"display:none;\"></div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div> \r\n </div> \r\n </div>\r\n <div class=\"universal-header__services\">\r\n <div class=\"container\"> \r\n <div class=\"universal-header__services-list\">\r\n <a *ngFor=\"let platform of platforms\" [href]=\"platform.link || '#'\" [attr.target]=\"platform.link ? '_blank' : null\">\r\n <svg class=\"services-list__link-icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"'#' + platform.svg\"></use>\r\n </svg>\r\n <div class=\"services-list__link\">\r\n <div class=\"services-list__link-name\">{{ platform.name }}</div>\r\n </div> \r\n </a>\r\n </div>\r\n <div class=\"universal-header__social\">\r\n <a *ngFor=\"let socialLink of socialLinks\" \r\n class=\"universal-header__social-link\" \r\n [href]=\"socialLink.url || '#'\" \r\n target=\"_blank\">\r\n <svg class=\"universal-header__social-icon\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"'#' + getSocialLinkSvgName(socialLink.type)\"></use>\r\n </svg>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"container\">\r\n <nav class=\"universal-header__nav\" [ngClass]=\"headerPosition\">\r\n <ul class=\"universal-header__nav-list\" *ngIf=\"publicPages?.length\">\r\n <li *ngFor=\"let page of publicPages\">\r\n <a [href]=\"page.url || '#'\">{{ page.name }}</a>\r\n </li>\r\n </ul>\r\n </nav> \r\n </div> \r\n</header>\r\n","import { Injector, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MyrtexWidgetSiteHeaderComponent } from './myrtex-widget-site-header.component';\r\nimport { createCustomElement } from '@angular/elements';\r\n\r\n@NgModule({\r\n declarations: [\r\n MyrtexWidgetSiteHeaderComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n MyrtexWidgetSiteHeaderComponent\r\n ]\r\n})\r\nexport class MyrtexWidgetSiteHeaderModule {\r\n public static registerCustomComponents(injector: Injector): void {\r\n const element = createCustomElement(MyrtexWidgetSiteHeaderComponent, { injector: injector });\r\n customElements.define(\"mrx-myrtex-widget-site-header\", element);\r\n }\r\n}\r\n\r\n\r\n","/*\r\n * Public API Surface of myrtex-widget-site-header\r\n */\r\n\r\nexport * from './lib/myrtex-widget-site-header.module';\r\nexport * from './lib/myrtex-widget-site-header.component';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}