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,239 @@
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
+ return this.headerModel.publicPages ?? [];
54
+ }
55
+ get platforms() {
56
+ return this.headerModel.platformsJson?.platforms ?? [];
57
+ }
58
+ get userMenuItems() {
59
+ return this.buildUserMenuItems();
60
+ }
61
+ get userRole() {
62
+ return this.headerModel.headerViewRole ?? '';
63
+ }
64
+ get userName() {
65
+ return this.headerModel.userIdentity?.name ?? '';
66
+ }
67
+ get socialLinks() {
68
+ return this.headerModel.socialLinks ?? [];
69
+ }
70
+ get headerPosition() {
71
+ return this.headerModel.headerPosition ?? '';
72
+ }
73
+ getSocialLinkSvgName(type) {
74
+ const svgNameMap = {
75
+ [SocialLinkTypeEnum.VK]: 'vk',
76
+ [SocialLinkTypeEnum.FB]: 'fb',
77
+ [SocialLinkTypeEnum.YT]: 'yt',
78
+ [SocialLinkTypeEnum.OK]: 'ok',
79
+ [SocialLinkTypeEnum.INST]: 'inst',
80
+ [SocialLinkTypeEnum.TW]: 'twitter',
81
+ [SocialLinkTypeEnum.TG]: 'telegram',
82
+ [SocialLinkTypeEnum.RT]: 'rutube',
83
+ [SocialLinkTypeEnum.MAX]: 'max-icon'
84
+ };
85
+ return svgNameMap[type] || '';
86
+ }
87
+ applyData(value) {
88
+ if (value === null || value === undefined) {
89
+ this.headerModel = { publicPages: [] };
90
+ return;
91
+ }
92
+ try {
93
+ const parsed = typeof value === 'string' ? JSON.parse(value) : value;
94
+ if (parsed && typeof parsed === 'object') {
95
+ const publicPages = Array.isArray(parsed.publicPages)
96
+ ? parsed.publicPages
97
+ : [];
98
+ this.headerModel = {
99
+ ...parsed,
100
+ publicPages,
101
+ };
102
+ }
103
+ else {
104
+ this.headerModel = { publicPages: [] };
105
+ }
106
+ }
107
+ catch (error) {
108
+ this.headerModel = { publicPages: [] };
109
+ }
110
+ }
111
+ buildUserMenuItems() {
112
+ const items = [];
113
+ const sharedMenu = this.headerModel.sharedMenu ?? [];
114
+ const sharedExtensionMenu = this.headerModel.sharedExtensionMenu ?? [];
115
+ //Логика за исключением проверок политик скопирована с AuthNavMenuMenu.cshtml из Rosgrant.Webshared
116
+ const adminPanel = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.AdminPanel);
117
+ if (adminPanel && this.headerModel.showWorkPanel) {
118
+ items.push({
119
+ name: adminPanel.name,
120
+ url: this.headerModel.userAdminUrl || '/user/admin'
121
+ });
122
+ }
123
+ const expertProfile = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.ExpertProfile);
124
+ const expertise = expertProfile?.subItems?.find(x => x.type === SharedMenuOptionsTypeEnum.Expertise);
125
+ if (expertise && this.headerModel.showExpertises) {
126
+ items.push({
127
+ name: expertise.name,
128
+ url: this.headerModel.userExpertisesUrl || '/user/expertises'
129
+ });
130
+ }
131
+ const documentsActs = expertProfile?.subItems?.find(x => x.type === SharedMenuOptionsTypeEnum.DocumentsActs);
132
+ if (this.headerModel.canSeeDocs && documentsActs) {
133
+ items.push({
134
+ name: 'Договоры',
135
+ url: this.headerModel.agreementAdminDocumentsUrl || '/agreement/admin/documents'
136
+ });
137
+ }
138
+ else if (this.headerModel.showGrantValidationsInAuthMenu) {
139
+ const validationUrl = this.headerModel.isPg
140
+ ? (this.headerModel.grantValidationsPgUrl || '/grant/validations-pg')
141
+ : (this.headerModel.applicationValidationAdminUrl || '/application/validation-admin');
142
+ items.push({
143
+ name: 'Перечень заявок',
144
+ url: validationUrl
145
+ });
146
+ }
147
+ const personalInfo = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.PersonalInfo);
148
+ if (personalInfo) {
149
+ items.push({
150
+ name: personalInfo.name,
151
+ url: this.headerModel.userProfileUrl || '/user/profile'
152
+ });
153
+ }
154
+ const dialogs = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.Dialogs);
155
+ if (dialogs) {
156
+ items.push({
157
+ name: dialogs.name || 'Сообщения',
158
+ url: '#',
159
+ isSpecial: true,
160
+ specialId: 'user-chat-auth-info'
161
+ });
162
+ }
163
+ const application = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.Application);
164
+ if (application) {
165
+ items.push({
166
+ name: application.name,
167
+ url: this.headerModel.userApplicationsUrl || '/application/list'
168
+ });
169
+ }
170
+ sharedExtensionMenu.forEach(itemExtMenu => {
171
+ if (itemExtMenu.isActive) {
172
+ // Примечание: проверка ExtPolicy должна быть на бэкенде
173
+ // Здесь мы показываем элемент, если он активен
174
+ items.push({
175
+ name: itemExtMenu.extMenuName,
176
+ url: itemExtMenu.extUrl
177
+ });
178
+ }
179
+ });
180
+ const setting = sharedMenu.find(x => x.type === SharedMenuOptionsTypeEnum.Setting);
181
+ if (setting) {
182
+ items.push({
183
+ name: setting.name,
184
+ url: this.headerModel.identityUserSettingsUrl || '/identity/user/settings'
185
+ });
186
+ }
187
+ items.push({
188
+ name: this.headerModel.topMenuLogoutText || 'Выйти',
189
+ url: this.headerModel.logoutPath || '/identity/account/logout'
190
+ });
191
+ return items;
192
+ }
193
+ }
194
+ MyrtexWidgetSiteHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
195
+ 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"] }] });
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderComponent, decorators: [{
197
+ type: Component,
198
+ 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"] }]
199
+ }], propDecorators: { dataHeader: [{
200
+ type: Input,
201
+ args: ['data-header']
202
+ }] } });
203
+
204
+ class MyrtexWidgetSiteHeaderModule {
205
+ static registerCustomComponents(injector) {
206
+ const element = createCustomElement(MyrtexWidgetSiteHeaderComponent, { injector: injector });
207
+ customElements.define("mrx-myrtex-widget-site-header", element);
208
+ }
209
+ }
210
+ MyrtexWidgetSiteHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
211
+ MyrtexWidgetSiteHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderModule, declarations: [MyrtexWidgetSiteHeaderComponent], imports: [CommonModule], exports: [MyrtexWidgetSiteHeaderComponent] });
212
+ MyrtexWidgetSiteHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderModule, imports: [[
213
+ CommonModule
214
+ ]] });
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MyrtexWidgetSiteHeaderModule, decorators: [{
216
+ type: NgModule,
217
+ args: [{
218
+ declarations: [
219
+ MyrtexWidgetSiteHeaderComponent
220
+ ],
221
+ imports: [
222
+ CommonModule
223
+ ],
224
+ exports: [
225
+ MyrtexWidgetSiteHeaderComponent
226
+ ]
227
+ }]
228
+ }] });
229
+
230
+ /*
231
+ * Public API Surface of myrtex-widget-site-header
232
+ */
233
+
234
+ /**
235
+ * Generated bundle index. Do not edit.
236
+ */
237
+
238
+ export { MyrtexWidgetSiteHeaderComponent, MyrtexWidgetSiteHeaderModule };
239
+ //# 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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"}
@@ -0,0 +1,133 @@
1
+ export interface HeaderWidgetPublicPage {
2
+ name: string;
3
+ url: string;
4
+ children?: HeaderWidgetPublicPage[];
5
+ }
6
+ export interface HeaderWidgetPlatform {
7
+ name: string;
8
+ link: string;
9
+ svg: string;
10
+ }
11
+ export interface HeaderWidgetPlatformsJson {
12
+ headerPlatformsListHead?: string;
13
+ footerPlatformsListHead?: string;
14
+ platforms?: HeaderWidgetPlatform[];
15
+ vseHeaderPlatformsListHead?: string;
16
+ vseFooterPlatformsListHead?: string;
17
+ isShowVsePlatforms?: boolean;
18
+ vsePlatforms?: HeaderWidgetPlatform[];
19
+ useFooterWithPlatforms?: boolean;
20
+ }
21
+ export declare enum SharedMenuOptionsTypeEnum {
22
+ PersonalInfo = 1,
23
+ Application = 2,
24
+ Setting = 3,
25
+ AdminPanel = 4,
26
+ Tenant = 5,
27
+ Organization = 6,
28
+ Assistants = 7,
29
+ ExpertProfile = 8,
30
+ ExpertQuality = 9,
31
+ Expertise = 10,
32
+ DocumentsActs = 11,
33
+ ExpertReady = 13,
34
+ ProblemReportToBank = 14,
35
+ Dialogs = 15,
36
+ MySites = 16,
37
+ CoFinance = 17,
38
+ Chat = 18,
39
+ AgreementDocuments = 19,
40
+ AutomaticCheck = 20,
41
+ Tours = 21,
42
+ OrganizationBCP = 22,
43
+ Programs = 23
44
+ }
45
+ export interface HeaderWidgetSharedMenuSubItem {
46
+ type: SharedMenuOptionsTypeEnum;
47
+ name: string;
48
+ url?: string;
49
+ cssClassName?: string;
50
+ additionalTxt?: string;
51
+ }
52
+ export interface HeaderWidgetSharedMenuItem {
53
+ type: SharedMenuOptionsTypeEnum;
54
+ name: string;
55
+ url?: string;
56
+ subItems?: HeaderWidgetSharedMenuSubItem[];
57
+ cssClassName?: string;
58
+ additionalTxt?: string;
59
+ }
60
+ export interface HeaderWidgetExtensionMenuItem {
61
+ extMenuName: string;
62
+ extOrder: number;
63
+ extPolicy?: string;
64
+ extUrl: string;
65
+ isActive: boolean;
66
+ }
67
+ export interface HeaderWidgetSystemRole {
68
+ role: number;
69
+ }
70
+ export interface HeaderWidgetRole {
71
+ name?: string;
72
+ sysName?: string;
73
+ visible?: boolean;
74
+ order?: number;
75
+ }
76
+ export interface HeaderWidgetUserIdentity {
77
+ name?: string;
78
+ systemRoles?: HeaderWidgetSystemRole[];
79
+ roles?: HeaderWidgetRole[];
80
+ ppp?: string;
81
+ tenantId?: string;
82
+ }
83
+ export declare enum SocialLinkTypeEnum {
84
+ VK = 0,
85
+ FB = 1,
86
+ YT = 2,
87
+ OK = 3,
88
+ INST = 4,
89
+ TW = 5,
90
+ TG = 6,
91
+ RT = 7,
92
+ MAX = 8
93
+ }
94
+ export interface HeaderWidgetSocialLink {
95
+ isLightHeader?: boolean;
96
+ type: SocialLinkTypeEnum;
97
+ url: string;
98
+ }
99
+ export interface HeaderWidgetModel {
100
+ publicPages: HeaderWidgetPublicPage[];
101
+ isPg?: boolean;
102
+ showVseLink?: boolean;
103
+ vseLink?: string;
104
+ isHmao?: boolean;
105
+ isPortal?: boolean;
106
+ userIdentity?: HeaderWidgetUserIdentity;
107
+ isLoggedIn?: boolean;
108
+ userHasAvatar?: boolean;
109
+ isWide?: boolean;
110
+ headerPosition?: string;
111
+ isLight?: boolean;
112
+ topMenuLogoutText?: string;
113
+ isShowPlatforms?: boolean;
114
+ platformsJson?: HeaderWidgetPlatformsJson;
115
+ awardUserMenuEnabled?: boolean;
116
+ sharedMenu?: HeaderWidgetSharedMenuItem[];
117
+ sharedExtensionMenu?: HeaderWidgetExtensionMenuItem[];
118
+ logoutPath?: string;
119
+ userAdminUrl?: string;
120
+ userExpertisesUrl?: string;
121
+ agreementAdminDocumentsUrl?: string;
122
+ grantValidationsPgUrl?: string;
123
+ applicationValidationAdminUrl?: string;
124
+ userProfileUrl?: string;
125
+ userApplicationsUrl?: string;
126
+ identityUserSettingsUrl?: string;
127
+ showGrantValidationsInAuthMenu?: boolean;
128
+ showWorkPanel?: boolean;
129
+ showExpertises?: boolean;
130
+ canSeeDocs?: boolean;
131
+ headerViewRole?: string;
132
+ socialLinks?: HeaderWidgetSocialLink[];
133
+ }
@@ -0,0 +1,24 @@
1
+ import { HeaderWidgetModel, HeaderWidgetPublicPage, HeaderWidgetPlatform, HeaderWidgetSocialLink, SocialLinkTypeEnum } from './models/header-widget.model';
2
+ import * as i0 from "@angular/core";
3
+ export interface UserMenuItem {
4
+ name: string;
5
+ url: string;
6
+ isSpecial?: boolean;
7
+ specialId?: string;
8
+ }
9
+ export declare class MyrtexWidgetSiteHeaderComponent {
10
+ set dataHeader(value: string | HeaderWidgetModel | null | undefined);
11
+ headerModel: HeaderWidgetModel;
12
+ get publicPages(): HeaderWidgetPublicPage[];
13
+ get platforms(): HeaderWidgetPlatform[];
14
+ get userMenuItems(): UserMenuItem[];
15
+ get userRole(): string;
16
+ get userName(): string;
17
+ get socialLinks(): HeaderWidgetSocialLink[];
18
+ get headerPosition(): string;
19
+ getSocialLinkSvgName(type: SocialLinkTypeEnum): string;
20
+ private applyData;
21
+ private buildUserMenuItems;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<MyrtexWidgetSiteHeaderComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<MyrtexWidgetSiteHeaderComponent, "lib-myrtex-widget-site-header", never, { "dataHeader": "data-header"; }, {}, never, never>;
24
+ }
@@ -0,0 +1,10 @@
1
+ import { Injector } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./myrtex-widget-site-header.component";
4
+ import * as i2 from "@angular/common";
5
+ export declare class MyrtexWidgetSiteHeaderModule {
6
+ static registerCustomComponents(injector: Injector): void;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<MyrtexWidgetSiteHeaderModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MyrtexWidgetSiteHeaderModule, [typeof i1.MyrtexWidgetSiteHeaderComponent], [typeof i2.CommonModule], [typeof i1.MyrtexWidgetSiteHeaderComponent]>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<MyrtexWidgetSiteHeaderModule>;
10
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="myrtex-widget-site-header" />
5
+ export * from './public-api';
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "myrtex-widget-site-header",
3
+ "version": "1.0.0",
4
+ "peerDependencies": {
5
+ "@angular/common": "^13.3.11",
6
+ "@angular/core": "^13.3.11"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.2.0"
10
+ },
11
+ "module": "fesm2015/myrtex-widget-site-header.mjs",
12
+ "es2020": "fesm2020/myrtex-widget-site-header.mjs",
13
+ "esm2020": "esm2020/myrtex-widget-site-header.mjs",
14
+ "fesm2020": "fesm2020/myrtex-widget-site-header.mjs",
15
+ "fesm2015": "fesm2015/myrtex-widget-site-header.mjs",
16
+ "typings": "myrtex-widget-site-header.d.ts",
17
+ "exports": {
18
+ "./package.json": {
19
+ "default": "./package.json"
20
+ },
21
+ ".": {
22
+ "types": "./myrtex-widget-site-header.d.ts",
23
+ "esm2020": "./esm2020/myrtex-widget-site-header.mjs",
24
+ "es2020": "./fesm2020/myrtex-widget-site-header.mjs",
25
+ "es2015": "./fesm2015/myrtex-widget-site-header.mjs",
26
+ "node": "./fesm2015/myrtex-widget-site-header.mjs",
27
+ "default": "./fesm2020/myrtex-widget-site-header.mjs"
28
+ }
29
+ },
30
+ "sideEffects": false
31
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/myrtex-widget-site-header.module';
2
+ export * from './lib/myrtex-widget-site-header.component';