aril 1.0.39 → 1.0.41

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.
Files changed (59) hide show
  1. package/esm2022/http/src/serviceStateMethods.mjs +6 -2
  2. package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +211 -0
  3. package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +55 -0
  4. package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +129 -0
  5. package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +128 -0
  6. package/esm2022/theme/layout/app/history/history.service.mjs +146 -0
  7. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +9 -3
  8. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +100 -8
  9. package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +142 -0
  10. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +123 -0
  11. package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +42 -0
  12. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +161 -0
  13. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +23 -5
  14. package/esm2022/theme/layout/service/app.layout.service.mjs +13 -1
  15. package/fesm2022/aril-http.mjs +5 -1
  16. package/fesm2022/aril-http.mjs.map +1 -1
  17. package/fesm2022/aril-theme-layout.mjs +1197 -75
  18. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  19. package/package.json +84 -83
  20. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +42 -0
  21. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.html +106 -0
  22. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.scss +181 -0
  23. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.ts +253 -0
  24. package/theme/layout/app/favorite-pages/favorite-pages.service.d.ts +54 -0
  25. package/theme/layout/app/favorite-pages/favorite-pages.service.ts +87 -0
  26. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.d.ts +36 -0
  27. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.html +27 -0
  28. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.ts +165 -0
  29. package/theme/layout/app/history/history-sidebar.component.d.ts +30 -0
  30. package/theme/layout/app/history/history-sidebar.component.html +88 -0
  31. package/theme/layout/app/history/history-sidebar.component.scss +191 -0
  32. package/theme/layout/app/history/history-sidebar.component.ts +139 -0
  33. package/theme/layout/app/history/history.service.d.ts +36 -0
  34. package/theme/layout/app/history/history.service.ts +182 -0
  35. package/theme/layout/app/layout/app.layout.component.html +3 -0
  36. package/theme/layout/app/layout/app.layout.component.ts +7 -1
  37. package/theme/layout/app/profileSidebar/app.profilesidebar.component.d.ts +17 -2
  38. package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +107 -135
  39. package/theme/layout/app/profileSidebar/app.profilesidebar.component.scss +152 -0
  40. package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +114 -7
  41. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.d.ts +30 -0
  42. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.html +46 -0
  43. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.scss +28 -0
  44. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.ts +178 -0
  45. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.d.ts +27 -0
  46. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.html +76 -0
  47. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.ts +141 -0
  48. package/theme/layout/app/profileSidebar/profile.service.d.ts +67 -0
  49. package/theme/layout/app/profileSidebar/profile.service.ts +89 -0
  50. package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +37 -0
  51. package/theme/layout/app/site-map/site-map-sidebar.component.html +118 -0
  52. package/theme/layout/app/site-map/site-map-sidebar.component.scss +189 -0
  53. package/theme/layout/app/site-map/site-map-sidebar.component.ts +189 -0
  54. package/theme/layout/app/topbar/app.topbar.component.d.ts +7 -1
  55. package/theme/layout/app/topbar/app.topbar.component.html +37 -17
  56. package/theme/layout/app/topbar/app.topbar.component.scss +188 -12
  57. package/theme/layout/app/topbar/app.topbar.component.ts +29 -7
  58. package/theme/layout/service/app.layout.service.d.ts +6 -0
  59. package/theme/layout/service/app.layout.service.ts +19 -1
@@ -0,0 +1,161 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, signal } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { RouterModule } from '@angular/router';
5
+ import { ScrollPanelModule } from 'primeng/scrollpanel';
6
+ import { SidebarModule } from 'primeng/sidebar';
7
+ import { TooltipModule } from 'primeng/tooltip';
8
+ import { TranslocoModule } from '@ngneat/transloco';
9
+ import { ButtonComponent } from 'aril/ui/button';
10
+ import { TextComponent } from 'aril/ui/text';
11
+ import { TranslateJsonPipe } from 'aril/util/pipes';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "../../service/app.layout.service";
14
+ import * as i2 from "@ngneat/transloco";
15
+ import * as i3 from "@angular/common";
16
+ import * as i4 from "@angular/forms";
17
+ import * as i5 from "@angular/router";
18
+ import * as i6 from "primeng/sidebar";
19
+ import * as i7 from "primeng/api";
20
+ import * as i8 from "primeng/scrollpanel";
21
+ import * as i9 from "primeng/tooltip";
22
+ export class SiteMapSidebarComponent {
23
+ constructor(layoutService, translocoService) {
24
+ this.layoutService = layoutService;
25
+ this.translocoService = translocoService;
26
+ this.siteMapNodes = signal([]);
27
+ this.filteredNodes = signal([]);
28
+ this.searchTerm = signal('');
29
+ this.totalPages = signal(0);
30
+ }
31
+ ngOnInit() {
32
+ this.loadSiteMap();
33
+ }
34
+ get visible() {
35
+ return this.layoutService.state.siteMapSidebarVisible;
36
+ }
37
+ set visible(value) {
38
+ this.layoutService.state.siteMapSidebarVisible = value;
39
+ }
40
+ loadSiteMap() {
41
+ const menuItems = globalThis.hostMenuItems?.() || [];
42
+ const nodes = this.buildSiteMapNodes(menuItems);
43
+ const totalCount = this.countTotalPages(nodes);
44
+ this.siteMapNodes.set(nodes);
45
+ this.filteredNodes.set(nodes);
46
+ this.totalPages.set(totalCount);
47
+ }
48
+ buildSiteMapNodes(items, parentKey = '') {
49
+ return items
50
+ .filter((item) => {
51
+ // Keep the home page route ("/") and any non-empty routes
52
+ return !item.routerLink || item.routerLink === '/' || item.routerLink.trim() !== '';
53
+ })
54
+ .map((item, index) => {
55
+ const key = parentKey ? `${parentKey}-${index}` : `${index}`;
56
+ let label;
57
+ if (item.routerLink === '/') {
58
+ label = { tr: 'Anasayfa', en: 'Home' };
59
+ }
60
+ else {
61
+ label = item.label || { tr: 'Bilinmeyen', en: 'Unknown' };
62
+ }
63
+ const node = {
64
+ key,
65
+ label,
66
+ icon: item.icon,
67
+ routerLink: item.routerLink,
68
+ expanded: false
69
+ };
70
+ if (item.items && item.items.length > 0) {
71
+ node.children = this.buildSiteMapNodes(item.items, key);
72
+ }
73
+ return node;
74
+ });
75
+ }
76
+ countTotalPages(nodes) {
77
+ let count = 0;
78
+ for (const node of nodes) {
79
+ if (node.routerLink) {
80
+ count++;
81
+ }
82
+ if (node.children) {
83
+ count += this.countTotalPages(node.children);
84
+ }
85
+ }
86
+ return count;
87
+ }
88
+ onSearchChange() {
89
+ const searchTerm = this.searchTerm().toLowerCase().trim();
90
+ if (!searchTerm) {
91
+ this.filteredNodes.set(this.siteMapNodes());
92
+ }
93
+ else {
94
+ const filtered = this.filterNodes(this.siteMapNodes(), searchTerm);
95
+ this.filteredNodes.set(filtered);
96
+ }
97
+ }
98
+ filterNodes(nodes, searchTerm) {
99
+ const filtered = [];
100
+ const currentLang = this.translocoService.getActiveLang();
101
+ for (const node of nodes) {
102
+ // Convert label to string for search based on active language
103
+ const labelText = typeof node.label === 'string' ?
104
+ node.label
105
+ : node.label?.[currentLang] || node.label?.tr || node.label?.en || '';
106
+ const matches = labelText.toLowerCase().includes(searchTerm);
107
+ let filteredChildren = [];
108
+ if (node.children) {
109
+ filteredChildren = this.filterNodes(node.children, searchTerm);
110
+ }
111
+ if (matches || filteredChildren.length > 0) {
112
+ filtered.push({
113
+ ...node,
114
+ children: filteredChildren.length > 0 ? filteredChildren : node.children,
115
+ expanded: filteredChildren.length > 0
116
+ });
117
+ }
118
+ }
119
+ return filtered;
120
+ }
121
+ expandAll() {
122
+ const expanded = this.expandNodes(this.filteredNodes(), true);
123
+ this.filteredNodes.set([...expanded]);
124
+ }
125
+ collapseAll() {
126
+ const collapsed = this.expandNodes(this.filteredNodes(), false);
127
+ this.filteredNodes.set([...collapsed]);
128
+ }
129
+ expandNodes(nodes, expanded) {
130
+ return nodes.map((node) => ({
131
+ ...node,
132
+ expanded,
133
+ children: node.children ? this.expandNodes(node.children, expanded) : undefined
134
+ }));
135
+ }
136
+ toggleNode(node) {
137
+ node.expanded = !node.expanded;
138
+ this.filteredNodes.set([...this.filteredNodes()]);
139
+ }
140
+ trackByKey(index, node) {
141
+ return node.key || `${index}`;
142
+ }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SiteMapSidebarComponent, deps: [{ token: i1.LayoutService }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: SiteMapSidebarComponent, isStandalone: true, selector: "app-site-map-sidebar", ngImport: i0, template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-sitemap-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'siteMap'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between gap-2 w-full\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i class=\"pi pi-sitemap text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('siteMap') }}</span>\r\n\t\t\t\t<span class=\"total-pages\">{{ totalPages() }} {{ t('pages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"sitemap-content\">\r\n\t\t<div class=\"search-section\">\r\n\t\t\t<aril-text [placeholder]=\"t('searchPages')\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"onSearchChange()\">\r\n\t\t\t</aril-text>\r\n\t\t</div>\r\n\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"quick-actions\">\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\ticon=\"PLUS\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t[raised]=\"true\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t(clickEvent)=\"expandAll()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\ticon=\"MINUS\"\r\n\t\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t\t[raised]=\"false\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t(clickEvent)=\"collapseAll()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Site Map Tree -->\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"sitemap-tree\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-sitemap empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noPages') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : '' }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Recursive Tree Node Template -->\r\n\t\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t\t<div class=\"tree-node\" [style.margin-left.px]=\"level * 20\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t(click)=\"!node.routerLink ? toggleNode(node) : (visible = false)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ node.label | translateJson }}</span>\r\n\r\n\t\t\t\t\t\t@if (node.routerLink) {\r\n\t\t\t\t\t\t\t<i class=\"external-icon pi pi-external-link\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- Recursive Children -->\r\n\t\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</div>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);border-bottom:1px solid var(--primary-600);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:90vh;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.quick-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i6.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i8.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "pipe", type: TranslateJsonPipe, name: "translateJson" }] }); }
145
+ }
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SiteMapSidebarComponent, decorators: [{
147
+ type: Component,
148
+ args: [{ standalone: true, selector: 'app-site-map-sidebar', imports: [
149
+ CommonModule,
150
+ FormsModule,
151
+ RouterModule,
152
+ SidebarModule,
153
+ ScrollPanelModule,
154
+ TooltipModule,
155
+ ButtonComponent,
156
+ TextComponent,
157
+ TranslocoModule,
158
+ TranslateJsonPipe
159
+ ], template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-sitemap-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'siteMap'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between gap-2 w-full\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i class=\"pi pi-sitemap text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('siteMap') }}</span>\r\n\t\t\t\t<span class=\"total-pages\">{{ totalPages() }} {{ t('pages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"sitemap-content\">\r\n\t\t<div class=\"search-section\">\r\n\t\t\t<aril-text [placeholder]=\"t('searchPages')\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"onSearchChange()\">\r\n\t\t\t</aril-text>\r\n\t\t</div>\r\n\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"quick-actions\">\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\ticon=\"PLUS\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t[raised]=\"true\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t(clickEvent)=\"expandAll()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\ticon=\"MINUS\"\r\n\t\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t\t[raised]=\"false\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t(clickEvent)=\"collapseAll()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Site Map Tree -->\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"sitemap-tree\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-sitemap empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noPages') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : '' }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Recursive Tree Node Template -->\r\n\t\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t\t<div class=\"tree-node\" [style.margin-left.px]=\"level * 20\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t(click)=\"!node.routerLink ? toggleNode(node) : (visible = false)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ node.label | translateJson }}</span>\r\n\r\n\t\t\t\t\t\t@if (node.routerLink) {\r\n\t\t\t\t\t\t\t<i class=\"external-icon pi pi-external-link\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- Recursive Children -->\r\n\t\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</div>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);border-bottom:1px solid var(--primary-600);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:90vh;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.quick-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"] }]
160
+ }], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.TranslocoService }] });
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvc2l0ZS1tYXAvc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvc2l0ZS1tYXAvc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBK0JwRCxNQUFNLE9BQU8sdUJBQXVCO0lBTW5DLFlBQ1EsYUFBNEIsRUFDM0IsZ0JBQWtDO1FBRG5DLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFQM0MsaUJB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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBTY3JvbGxQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2Nyb2xscGFuZWwnO1xyXG5pbXBvcnQgeyBTaWRlYmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zaWRlYmFyJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL3RleHQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVKc29uUGlwZSB9IGZyb20gJ2FyaWwvdXRpbC9waXBlcyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5cclxuaW50ZXJmYWNlIE1lbnVOb2RlIHtcclxuXHRrZXk6IHN0cmluZztcclxuXHRsYWJlbDogc3RyaW5nIHwgb2JqZWN0O1xyXG5cdGljb24/OiBzdHJpbmc7XHJcblx0cm91dGVyTGluaz86IHN0cmluZztcclxuXHRjaGlsZHJlbj86IE1lbnVOb2RlW107XHJcblx0ZXhwYW5kZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLXNpdGUtbWFwLXNpZGViYXInLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdENvbW1vbk1vZHVsZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0Um91dGVyTW9kdWxlLFxyXG5cdFx0U2lkZWJhck1vZHVsZSxcclxuXHRcdFNjcm9sbFBhbmVsTW9kdWxlLFxyXG5cdFx0VG9vbHRpcE1vZHVsZSxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFRleHRDb21wb25lbnQsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRUcmFuc2xhdGVKc29uUGlwZVxyXG5cdF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL3NpdGUtbWFwLXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3NpdGUtbWFwLXNpZGViYXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2l0ZU1hcFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdHNpdGVNYXBOb2RlcyA9IHNpZ25hbDxNZW51Tm9kZVtdPihbXSk7XHJcblx0ZmlsdGVyZWROb2RlcyA9IHNpZ25hbDxNZW51Tm9kZVtdPihbXSk7XHJcblx0c2VhcmNoVGVybSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuXHR0b3RhbFBhZ2VzID0gc2lnbmFsPG51bWJlcj4oMCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2VcclxuXHQpIHt9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sb2FkU2l0ZU1hcCgpO1xyXG5cdH1cclxuXHJcblx0Z2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnNpdGVNYXBTaWRlYmFyVmlzaWJsZTtcclxuXHR9XHJcblxyXG5cdHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc2l0ZU1hcFNpZGViYXJWaXNpYmxlID0gdmFsdWU7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGxvYWRTaXRlTWFwKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgbWVudUl0ZW1zID0gKDxhbnk+Z2xvYmFsVGhpcykuaG9zdE1lbnVJdGVtcz8uKCkgfHwgW107XHJcblx0XHRjb25zdCBub2RlcyA9IHRoaXMuYnVpbGRTaXRlTWFwTm9kZXMobWVudUl0ZW1zKTtcclxuXHRcdGNvbnN0IHRvdGFsQ291bnQgPSB0aGlzLmNvdW50VG90YWxQYWdlcyhub2Rlcyk7XHJcblxyXG5cdFx0dGhpcy5zaXRlTWFwTm9kZXMuc2V0KG5vZGVzKTtcclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQobm9kZXMpO1xyXG5cdFx0dGhpcy50b3RhbFBhZ2VzLnNldCh0b3RhbENvdW50KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYnVpbGRTaXRlTWFwTm9kZXMoaXRlbXM6IGFueVtdLCBwYXJlbnRLZXkgPSAnJyk6IE1lbnVOb2RlW10ge1xyXG5cdFx0cmV0dXJuIGl0ZW1zXHJcblx0XHRcdC5maWx0ZXIoKGl0ZW0pID0+IHtcclxuXHRcdFx0XHQvLyBLZWVwIHRoZSBob21lIHBhZ2Ugcm91dGUgKFwiL1wiKSBhbmQgYW55IG5vbi1lbXB0eSByb3V0ZXNcclxuXHRcdFx0XHRyZXR1cm4gIWl0ZW0ucm91dGVyTGluayB8fCBpdGVtLnJvdXRlckxpbmsgPT09ICcvJyB8fCBpdGVtLnJvdXRlckxpbmsudHJpbSgpICE9PSAnJztcclxuXHRcdFx0fSlcclxuXHRcdFx0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRjb25zdCBrZXkgPSBwYXJlbnRLZXkgPyBgJHtwYXJlbnRLZXl9LSR7aW5kZXh9YCA6IGAke2luZGV4fWA7XHJcblxyXG5cdFx0XHRcdGxldCBsYWJlbDogc3RyaW5nIHwgb2JqZWN0O1xyXG5cdFx0XHRcdGlmIChpdGVtLnJvdXRlckxpbmsgPT09ICcvJykge1xyXG5cdFx0XHRcdFx0bGFiZWwgPSB7IHRyOiAnQW5hc2F5ZmEnLCBlbjogJ0hvbWUnIH07XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGxhYmVsID0gaXRlbS5sYWJlbCB8fCB7IHRyOiAnQmlsaW5tZXllbicsIGVuOiAnVW5rbm93bicgfTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGNvbnN0IG5vZGU6IE1lbnVOb2RlID0ge1xyXG5cdFx0XHRcdFx0a2V5LFxyXG5cdFx0XHRcdFx0bGFiZWwsXHJcblx0XHRcdFx0XHRpY29uOiBpdGVtLmljb24sXHJcblx0XHRcdFx0XHRyb3V0ZXJMaW5rOiBpdGVtLnJvdXRlckxpbmssXHJcblx0XHRcdFx0XHRleHBhbmRlZDogZmFsc2VcclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRpZiAoaXRlbS5pdGVtcyAmJiBpdGVtLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdG5vZGUuY2hpbGRyZW4gPSB0aGlzLmJ1aWxkU2l0ZU1hcE5vZGVzKGl0ZW0uaXRlbXMsIGtleSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRyZXR1cm4gbm9kZTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNvdW50VG90YWxQYWdlcyhub2RlczogTWVudU5vZGVbXSk6IG51bWJlciB7XHJcblx0XHRsZXQgY291bnQgPSAwO1xyXG5cdFx0Zm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcblx0XHRcdGlmIChub2RlLnJvdXRlckxpbmspIHtcclxuXHRcdFx0XHRjb3VudCsrO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuKSB7XHJcblx0XHRcdFx0Y291bnQgKz0gdGhpcy5jb3VudFRvdGFsUGFnZXMobm9kZS5jaGlsZHJlbik7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBjb3VudDtcclxuXHR9XHJcblxyXG5cdG9uU2VhcmNoQ2hhbmdlKCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgc2VhcmNoVGVybSA9IHRoaXMuc2VhcmNoVGVybSgpLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xyXG5cdFx0aWYgKCFzZWFyY2hUZXJtKSB7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQodGhpcy5zaXRlTWFwTm9kZXMoKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCBmaWx0ZXJlZCA9IHRoaXMuZmlsdGVyTm9kZXModGhpcy5zaXRlTWFwTm9kZXMoKSwgc2VhcmNoVGVybSk7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoZmlsdGVyZWQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBmaWx0ZXJOb2Rlcyhub2RlczogTWVudU5vZGVbXSwgc2VhcmNoVGVybTogc3RyaW5nKTogTWVudU5vZGVbXSB7XHJcblx0XHRjb25zdCBmaWx0ZXJlZDogTWVudU5vZGVbXSA9IFtdO1xyXG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xyXG5cclxuXHRcdGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG5cdFx0XHQvLyBDb252ZXJ0IGxhYmVsIHRvIHN0cmluZyBmb3Igc2VhcmNoIGJhc2VkIG9uIGFjdGl2ZSBsYW5ndWFnZVxyXG5cdFx0XHRjb25zdCBsYWJlbFRleHQgPVxyXG5cdFx0XHRcdHR5cGVvZiBub2RlLmxhYmVsID09PSAnc3RyaW5nJyA/XHJcblx0XHRcdFx0XHRub2RlLmxhYmVsXHJcblx0XHRcdFx0Olx0KG5vZGUubGFiZWwgYXMgYW55KT8uW2N1cnJlbnRMYW5nXSB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy50ciB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy5lbiB8fCAnJztcclxuXHJcblx0XHRcdGNvbnN0IG1hdGNoZXMgPSBsYWJlbFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKTtcclxuXHRcdFx0bGV0IGZpbHRlcmVkQ2hpbGRyZW46IE1lbnVOb2RlW10gPSBbXTtcclxuXHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuKSB7XHJcblx0XHRcdFx0ZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyTm9kZXMobm9kZS5jaGlsZHJlbiwgc2VhcmNoVGVybSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChtYXRjaGVzIHx8IGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGZpbHRlcmVkLnB1c2goe1xyXG5cdFx0XHRcdFx0Li4ubm9kZSxcclxuXHRcdFx0XHRcdGNoaWxkcmVuOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZENoaWxkcmVuIDogbm9kZS5jaGlsZHJlbixcclxuXHRcdFx0XHRcdGV4cGFuZGVkOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDBcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmaWx0ZXJlZDtcclxuXHR9XHJcblxyXG5cdGV4cGFuZEFsbCgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGV4cGFuZGVkID0gdGhpcy5leHBhbmROb2Rlcyh0aGlzLmZpbHRlcmVkTm9kZXMoKSwgdHJ1ZSk7XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KFsuLi5leHBhbmRlZF0pO1xyXG5cdH1cclxuXHJcblx0Y29sbGFwc2VBbGwoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjb2xsYXBzZWQgPSB0aGlzLmV4cGFuZE5vZGVzKHRoaXMuZmlsdGVyZWROb2RlcygpLCBmYWxzZSk7XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KFsuLi5jb2xsYXBzZWRdKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZXhwYW5kTm9kZXMobm9kZXM6IE1lbnVOb2RlW10sIGV4cGFuZGVkOiBib29sZWFuKTogTWVudU5vZGVbXSB7XHJcblx0XHRyZXR1cm4gbm9kZXMubWFwKChub2RlKSA9PiAoe1xyXG5cdFx0XHQuLi5ub2RlLFxyXG5cdFx0XHRleHBhbmRlZCxcclxuXHRcdFx0Y2hpbGRyZW46IG5vZGUuY2hpbGRyZW4gPyB0aGlzLmV4cGFuZE5vZGVzKG5vZGUuY2hpbGRyZW4sIGV4cGFuZGVkKSA6IHVuZGVmaW5lZFxyXG5cdFx0fSkpO1xyXG5cdH1cclxuXHJcblx0dG9nZ2xlTm9kZShub2RlOiBNZW51Tm9kZSk6IHZvaWQge1xyXG5cdFx0bm9kZS5leHBhbmRlZCA9ICFub2RlLmV4cGFuZGVkO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4udGhpcy5maWx0ZXJlZE5vZGVzKCldKTtcclxuXHR9XHJcblxyXG5cdHRyYWNrQnlLZXkoaW5kZXg6IG51bWJlciwgbm9kZTogTWVudU5vZGUpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIG5vZGUua2V5IHx8IGAke2luZGV4fWA7XHJcblx0fVxyXG59XHJcbiIsIjxwLXNpZGViYXJcclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxyXG5cdHBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFt0cmFuc2l0aW9uT3B0aW9uc109XCInLjNzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJ1wiXHJcblx0c3R5bGVDbGFzcz1cImxheW91dC1zaXRlbWFwLXNpZGViYXIgdy1mdWxsIHNtOnctMzByZW1cIlxyXG5cdCp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJ3NpdGVNYXAnXCI+XHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yIHctZnVsbFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXNpdGVtYXAgdGV4dC1wcmltYXJ5IHRleHQteGxcIj48L2k+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPnt7IHQoJ3NpdGVNYXAnKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRvdGFsLXBhZ2VzXCI+e3sgdG90YWxQYWdlcygpIH19IHt7IHQoJ3BhZ2VzJykgfX08L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PGRpdiBjbGFzcz1cInNpdGVtYXAtY29udGVudFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1zZWN0aW9uXCI+XHJcblx0XHRcdDxhcmlsLXRleHQgW3BsYWNlaG9sZGVyXT1cInQoJ3NlYXJjaFBhZ2VzJylcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIiAobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaENoYW5nZSgpXCI+XHJcblx0XHRcdDwvYXJpbC10ZXh0PlxyXG5cdFx0PC9kaXY+XHJcblxyXG5cdFx0QGlmIChmaWx0ZXJlZE5vZGVzKCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwicXVpY2stYWN0aW9uc1wiPlxyXG5cdFx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdFx0aWNvbj1cIlBMVVNcIlxyXG5cdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFtyYWlzZWRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0W3BUb29sdGlwXT1cInQoJ2V4cGFuZEFsbCcpXCJcclxuXHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleHBhbmRBbGwoKVwiPlxyXG5cdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRpY29uPVwiTUlOVVNcIlxyXG5cdFx0XHRcdFx0Y29sb3I9XCJkYW5nZXJcIlxyXG5cdFx0XHRcdFx0W3JhaXNlZF09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0W3BUb29sdGlwXT1cInQoJ2NvbGxhcHNlQWxsJylcIlxyXG5cdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuXHRcdFx0XHRcdChjbGlja0V2ZW50KT1cImNvbGxhcHNlQWxsKClcIj5cclxuXHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHJcblx0XHQ8IS0tIFNpdGUgTWFwIFRyZWUgLS0+XHJcblx0XHRAaWYgKGZpbHRlcmVkTm9kZXMoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJzaXRlbWFwLXRyZWVcIj5cclxuXHRcdFx0XHQ8cC1zY3JvbGxQYW5lbCBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJyB9XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidHJlZS1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0QGZvciAobm9kZSBvZiBmaWx0ZXJlZE5vZGVzKCk7IHRyYWNrIHRyYWNrQnlLZXkoJGluZGV4LCBub2RlKSkge1xyXG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmVlTm9kZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbm9kZSwgbGV2ZWw6IDAgfVwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L3Atc2Nyb2xsUGFuZWw+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJlbXB0eS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXNpdGVtYXAgZW1wdHktaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdDxoMyBjbGFzcz1cImVtcHR5LXRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHNlYXJjaFRlcm0oKSA/IHQoJ25vU2VhcmNoUmVzdWx0cycpIDogdCgnbm9QYWdlcycpIH19XHJcblx0XHRcdFx0XHQ8L2gzPlxyXG5cdFx0XHRcdFx0PHAgY2xhc3M9XCJlbXB0eS1tZXNzYWdlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHNlYXJjaFRlcm0oKSA/IHQoJ3RyeURpZmZlcmVudEtleXdvcmRzJykgOiAnJyB9fVxyXG5cdFx0XHRcdFx0PC9wPlxyXG5cdFx0XHRcdFx0QGlmIChzZWFyY2hUZXJtKCkpIHtcclxuXHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0W2xhYmVsXT1cInQoJ2NsZWFyU2VhcmNoJylcIlxyXG5cdFx0XHRcdFx0XHRcdGljb249XCJUSU1FU1wiXHJcblx0XHRcdFx0XHRcdFx0Y29sb3I9XCJzZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdFtvdXRsaW5lZF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGlja0V2ZW50KT1cInNlYXJjaFRlcm0uc2V0KCcnKTsgb25TZWFyY2hDaGFuZ2UoKVwiPlxyXG5cdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHJcblx0XHQ8IS0tIFJlY3Vyc2l2ZSBUcmVlIE5vZGUgVGVtcGxhdGUgLS0+XHJcblx0XHQ8bmctdGVtcGxhdGUgI3RyZWVOb2RlVGVtcGxhdGUgbGV0LW5vZGUgbGV0LWxldmVsPVwibGV2ZWxcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInRyZWUtbm9kZVwiIFtzdHlsZS5tYXJnaW4tbGVmdC5weF09XCJsZXZlbCAqIDIwXCI+XHJcblx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJub2RlLWl0ZW1cIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmhhcy1jaGlsZHJlbl09XCJub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFwiXHJcblx0XHRcdFx0XHRbY2xhc3MuaXMtcGFnZV09XCJub2RlLnJvdXRlckxpbmtcIlxyXG5cdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCIhbm9kZS5yb3V0ZXJMaW5rID8gdG9nZ2xlTm9kZShub2RlKSA6ICh2aXNpYmxlID0gZmFsc2UpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibm9kZS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidG9nZ2xlLWJ0blwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZU5vZGUobm9kZSlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGlcIiBbY2xhc3MucGktY2hldnJvbi1yaWdodF09XCIhbm9kZS5leHBhbmRlZFwiIFtjbGFzcy5waS1jaGV2cm9uLWRvd25dPVwibm9kZS5leHBhbmRlZFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0QGlmIChub2RlLmljb24pIHtcclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cIm5vZGUtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJub2RlLWxhYmVsXCI+e3sgbm9kZS5sYWJlbCB8IHRyYW5zbGF0ZUpzb24gfX08L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUucm91dGVyTGluaykge1xyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiZXh0ZXJuYWwtaWNvbiBwaSBwaS1leHRlcm5hbC1saW5rXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0PCEtLSBSZWN1cnNpdmUgQ2hpbGRyZW4gLS0+XHJcblx0XHRcdFx0QGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuZXhwYW5kZWQpIHtcclxuXHRcdFx0XHRcdEBmb3IgKGNoaWxkIG9mIG5vZGUuY2hpbGRyZW47IHRyYWNrIHRyYWNrQnlLZXkoJGluZGV4LCBjaGlsZCkpIHtcclxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwidHJlZU5vZGVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNoaWxkLCBsZXZlbDogbGV2ZWwgKyAxIH1cIj48L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHQ8L2Rpdj5cclxuPC9wLXNpZGViYXI+XHJcbiJdfQ==
@@ -6,10 +6,11 @@ import { ButtonModule } from 'primeng/button';
6
6
  import { DividerModule } from 'primeng/divider';
7
7
  import { DropdownModule } from 'primeng/dropdown';
8
8
  import { MenubarModule } from 'primeng/menubar';
9
+ import { TranslocoModule } from '@ngneat/transloco';
9
10
  import { Apps } from 'aril/boot/config/apps';
10
11
  import { LayoutService } from '../../service/app.layout.service';
11
- import { AppBreadcrumbComponent } from '../breadcrumb/app.breadcrumb.component';
12
12
  import { LanguageCode } from '../../service/interfaces/enum';
13
+ import { AppBreadcrumbComponent } from '../breadcrumb/app.breadcrumb.component';
13
14
  import * as i0 from "@angular/core";
14
15
  import * as i1 from "@ngneat/transloco";
15
16
  import * as i2 from "aril/util/pub-sub";
@@ -28,6 +29,7 @@ export class AppTopbarComponent {
28
29
  this.layoutService = inject(LayoutService);
29
30
  this.search = '';
30
31
  this.filePath = signal('');
32
+ this.isNotificationsVisible = signal(false);
31
33
  this.currentLang = localStorage.getItem('lang') || LanguageCode.TR;
32
34
  this.languages = [
33
35
  { name: 'TR', code: LanguageCode.TR, flag: 'assets/images/flags/tr.svg' },
@@ -82,6 +84,21 @@ export class AppTopbarComponent {
82
84
  onConfigButtonClick() {
83
85
  this.layoutService.showConfigSidebar();
84
86
  }
87
+ onHistoryButtonClick() {
88
+ this.layoutService.showHistorySidebar();
89
+ }
90
+ onSiteMapButtonClick() {
91
+ this.layoutService.showSiteMapSidebar();
92
+ }
93
+ onFavoritePagesButtonClick() {
94
+ this.layoutService.showFavoritePagesSidebar();
95
+ }
96
+ onNotificationsButtonClick() {
97
+ this.isNotificationsVisible.update((visible) => !visible);
98
+ }
99
+ onNotificationsClose() {
100
+ this.isNotificationsVisible.set(false);
101
+ }
85
102
  onLanguageChange() {
86
103
  localStorage.setItem('lang', this.currentLang);
87
104
  this.translocoService.setActiveLang(this.currentLang);
@@ -110,7 +127,7 @@ export class AppTopbarComponent {
110
127
  }
111
128
  }
112
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppTopbarComponent, deps: [{ token: i1.TranslocoService }, { token: i2.PubSubService }, { token: i3.KeycloakService }], target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppTopbarComponent, isStandalone: true, selector: "app-topbar", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menubutton"], descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\r\n\t<div class=\"topbar-start\">\r\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\r\n\t\t\t<i class=\"pi pi-bars\"></i>\r\n\t\t</button>\r\n\t\t<img [src]=\"filePath()\" class=\"mr-3\" alt=\"yeap\" />\r\n\t</div>\r\n\r\n\t<div class=\"topbar-search\" style=\"width: 50rem\">\r\n\t\t<span class=\"p-input-icon-left\" style=\"width: 100%\">\r\n\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t<input\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tpInputText\r\n\t\t\t\tvariant=\"filled\"\r\n\t\t\t\tplaceholder=\"Genel Arama\"\r\n\t\t\t\tstyle=\"background: #eff3f8; border: none; height: 42px\"\r\n\t\t\t\tclass=\"p-inputtext p-component p-element sm:w-full\" />\r\n\t\t</span>\r\n\t</div>\r\n\r\n\t<div class=\"topbar-end mr-2\">\r\n\t\t<ul class=\"topbar-menu\">\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-sitemap\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-history\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-heart\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\r\n\t\t\t<li>\r\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\r\n\t\t\t\t\t{{ username[0] | uppercase }}\r\n\t\t\t\t</p-button>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<i class=\"pi pi-bell\" severity=\"info\" pBadge [value]=\"0\"></i>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[options]=\"languages\"\r\n\t\t\t\t\t[(ngModel)]=\"currentLang\"\r\n\t\t\t\t\t(ngModelChange)=\"onLanguageChange()\"\r\n\t\t\t\t\toptionLabel=\"name\"\r\n\t\t\t\t\toptionValue=\"code\"\r\n\t\t\t\t\t[showClear]=\"false\"\r\n\t\t\t\t\tclass=\"custom-dropdown ml-3\">\r\n\t\t\t\t\t<ng-template pTemplate=\"selectedItem\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"getFlagPath(currentLang)\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span>{{ currentLang | uppercase }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"item\" let-item>\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"item.flag\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span>{{ item.name }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div>\r\n</div>\r\n\r\n<app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb>\r\n", styles: [".custom-dropdown .p-dropdown{border-radius:50px;padding:.5rem 1rem;border:1px solid #c8c8c8;background-color:#f4f4f4}.custom-dropdown .p-dropdown-label{padding:0;line-height:1.5}.custom-dropdown .p-dropdown-trigger{border-radius:50px}.flag-icon{width:18px;height:18px;display:inline-block;vertical-align:middle}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: AppBreadcrumbComponent, selector: "app-breadcrumb" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i7.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i8.BadgeDirective, selector: "[pBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "severity", "value", "badgeStyle", "badgeStyleClass"] }, { kind: "ngmodule", type: MenubarModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i9.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }] }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppTopbarComponent, isStandalone: true, selector: "app-topbar", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menubutton"], descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\r\n\t<div class=\"topbar-start\">\r\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\r\n\t\t\t<i class=\"pi pi-bars\"></i>\r\n\t\t</button>\r\n\t\t<img [src]=\"filePath()\" class=\"topbar-logo mr-3\" alt=\"logo\" />\r\n\t</div>\r\n\r\n\t<div class=\"topbar-search\" *transloco=\"let t; read: ''\">\r\n\t\t<span class=\"p-input-icon-left\">\r\n\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t<input\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tpInputText\r\n\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t[placeholder]=\"t('searchGeneral')\"\r\n\t\t\t\tstyle=\"background: #eff3f8; border: none; height: 42px\"\r\n\t\t\t\tclass=\"p-inputtext p-component p-element topbar-search-input\" />\r\n\t\t</span>\r\n\t</div>\r\n\r\n\t<div class=\"topbar-end mr-2\">\r\n\t\t<ul class=\"topbar-menu\">\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\ticon=\"pi pi-sitemap\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\t[rounded]=\"true\"\r\n\t\t\t\t\t(click)=\"onSiteMapButtonClick()\" />\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\ticon=\"pi pi-history\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\t[rounded]=\"true\"\r\n\t\t\t\t\t(click)=\"onHistoryButtonClick()\" />\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\ticon=\"pi pi-heart\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\t[rounded]=\"true\"\r\n\t\t\t\t\t(click)=\"onFavoritePagesButtonClick()\" />\r\n\t\t\t</li>\r\n\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\r\n\t\t\t\t\t{{ username[0] | uppercase }}\r\n\t\t\t\t</p-button>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<i\r\n\t\t\t\t\tclass=\"pi pi-bell notification-icon\"\r\n\t\t\t\t\tseverity=\"info\"\r\n\t\t\t\t\tpBadge\r\n\t\t\t\t\t[value]=\"0\"\r\n\t\t\t\t\t(click)=\"onNotificationsButtonClick()\"></i>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[options]=\"languages\"\r\n\t\t\t\t\t[(ngModel)]=\"currentLang\"\r\n\t\t\t\t\t(ngModelChange)=\"onLanguageChange()\"\r\n\t\t\t\t\toptionLabel=\"name\"\r\n\t\t\t\t\toptionValue=\"code\"\r\n\t\t\t\t\t[showClear]=\"false\"\r\n\t\t\t\t\tclass=\"custom-dropdown ml-3\">\r\n\t\t\t\t\t<ng-template pTemplate=\"selectedItem\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"getFlagPath(currentLang)\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span class=\"language-text\">{{ currentLang | uppercase }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"item\" let-item>\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"item.flag\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span>{{ item.name }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div>\r\n</div>\r\n\r\n<app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb>\r\n", styles: [".layout-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:.5rem;padding:0 1rem}@media (max-width: 768px){.layout-topbar{padding:0 .5rem;gap:.25rem}}.topbar-start{display:flex;align-items:center;flex-shrink:0}.topbar-logo{height:32px;width:auto}@media (max-width: 768px){.topbar-logo{display:none}}.topbar-search{flex:1;max-width:50rem;margin:0 1rem}@media (max-width: 1024px){.topbar-search{max-width:30rem}}@media (max-width: 768px){.topbar-search{max-width:20rem;margin:0 .5rem}}@media (max-width: 480px){.topbar-search{max-width:15rem;margin:0 .25rem}}.topbar-search .p-input-icon-left{width:100%}.topbar-search-input{width:100%!important}.topbar-end{flex-shrink:0}.topbar-menu{display:flex;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none}@media (max-width: 768px){.topbar-menu{gap:.25rem}}@media (max-width: 480px){.topbar-menu{gap:.1rem}}.topbar-menu-item{display:flex;align-items:center}@media (max-width: 1024px){.desktop-only{display:none!important}}.mobile-only{display:none!important}@media (max-width: 1024px){.mobile-only{display:flex!important}}.custom-dropdown .p-dropdown{border-radius:50px;padding:.5rem 1rem;border:1px solid #c8c8c8;background-color:#f4f4f4}@media (max-width: 768px){.custom-dropdown .p-dropdown{padding:.4rem .8rem}}@media (max-width: 480px){.custom-dropdown .p-dropdown{padding:.3rem .6rem}}.custom-dropdown .p-dropdown-label{padding:0;line-height:1.5}.custom-dropdown .p-dropdown-trigger{border-radius:50px}.flag-icon{width:18px;height:18px;display:inline-block;vertical-align:middle}@media (max-width: 768px){.flag-icon{width:16px;height:16px}}@media (max-width: 480px){.language-text{display:none}}@media (max-width: 768px){.topbar-menubutton{padding:.4rem!important}}@media (max-width: 480px){.topbar-menubutton{padding:.3rem!important}}@media (max-width: 768px){.topbar-menu-item p-button{min-width:auto}.topbar-menu-item p-button .p-button-icon{margin:0}.topbar-menu-item p-button .p-button-label{font-size:.9rem}}@media (max-width: 480px){.topbar-menu-item p-button .p-button-label{font-size:.8rem}.topbar-menu-item p-divider{display:none}}.notification-icon{cursor:pointer;padding:.5rem;border-radius:50%;transition:background-color .2s}.notification-icon:hover{background-color:var(--surface-hover)}@media (max-width: 480px){.notification-icon{font-size:.9rem;padding:.4rem}}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: AppBreadcrumbComponent, selector: "app-breadcrumb" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i7.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i8.BadgeDirective, selector: "[pBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "severity", "value", "badgeStyle", "badgeStyleClass"] }, { kind: "ngmodule", type: MenubarModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i9.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
114
131
  }
115
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppTopbarComponent, decorators: [{
116
133
  type: Component,
@@ -122,10 +139,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
122
139
  DividerModule,
123
140
  BadgeModule,
124
141
  MenubarModule,
125
- DropdownModule
126
- ], template: "<div class=\"layout-topbar\">\r\n\t<div class=\"topbar-start\">\r\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\r\n\t\t\t<i class=\"pi pi-bars\"></i>\r\n\t\t</button>\r\n\t\t<img [src]=\"filePath()\" class=\"mr-3\" alt=\"yeap\" />\r\n\t</div>\r\n\r\n\t<div class=\"topbar-search\" style=\"width: 50rem\">\r\n\t\t<span class=\"p-input-icon-left\" style=\"width: 100%\">\r\n\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t<input\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tpInputText\r\n\t\t\t\tvariant=\"filled\"\r\n\t\t\t\tplaceholder=\"Genel Arama\"\r\n\t\t\t\tstyle=\"background: #eff3f8; border: none; height: 42px\"\r\n\t\t\t\tclass=\"p-inputtext p-component p-element sm:w-full\" />\r\n\t\t</span>\r\n\t</div>\r\n\r\n\t<div class=\"topbar-end mr-2\">\r\n\t\t<ul class=\"topbar-menu\">\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-sitemap\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-history\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-heart\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\r\n\t\t\t<li>\r\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\r\n\t\t\t\t\t{{ username[0] | uppercase }}\r\n\t\t\t\t</p-button>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<i class=\"pi pi-bell\" severity=\"info\" pBadge [value]=\"0\"></i>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[options]=\"languages\"\r\n\t\t\t\t\t[(ngModel)]=\"currentLang\"\r\n\t\t\t\t\t(ngModelChange)=\"onLanguageChange()\"\r\n\t\t\t\t\toptionLabel=\"name\"\r\n\t\t\t\t\toptionValue=\"code\"\r\n\t\t\t\t\t[showClear]=\"false\"\r\n\t\t\t\t\tclass=\"custom-dropdown ml-3\">\r\n\t\t\t\t\t<ng-template pTemplate=\"selectedItem\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"getFlagPath(currentLang)\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span>{{ currentLang | uppercase }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"item\" let-item>\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"item.flag\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span>{{ item.name }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div>\r\n</div>\r\n\r\n<app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb>\r\n", styles: [".custom-dropdown .p-dropdown{border-radius:50px;padding:.5rem 1rem;border:1px solid #c8c8c8;background-color:#f4f4f4}.custom-dropdown .p-dropdown-label{padding:0;line-height:1.5}.custom-dropdown .p-dropdown-trigger{border-radius:50px}.flag-icon{width:18px;height:18px;display:inline-block;vertical-align:middle}\n"] }]
142
+ DropdownModule,
143
+ TranslocoModule
144
+ ], template: "<div class=\"layout-topbar\">\r\n\t<div class=\"topbar-start\">\r\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\r\n\t\t\t<i class=\"pi pi-bars\"></i>\r\n\t\t</button>\r\n\t\t<img [src]=\"filePath()\" class=\"topbar-logo mr-3\" alt=\"logo\" />\r\n\t</div>\r\n\r\n\t<div class=\"topbar-search\" *transloco=\"let t; read: ''\">\r\n\t\t<span class=\"p-input-icon-left\">\r\n\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t<input\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tpInputText\r\n\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t[placeholder]=\"t('searchGeneral')\"\r\n\t\t\t\tstyle=\"background: #eff3f8; border: none; height: 42px\"\r\n\t\t\t\tclass=\"p-inputtext p-component p-element topbar-search-input\" />\r\n\t\t</span>\r\n\t</div>\r\n\r\n\t<div class=\"topbar-end mr-2\">\r\n\t\t<ul class=\"topbar-menu\">\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\ticon=\"pi pi-sitemap\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\t[rounded]=\"true\"\r\n\t\t\t\t\t(click)=\"onSiteMapButtonClick()\" />\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\ticon=\"pi pi-history\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\t[rounded]=\"true\"\r\n\t\t\t\t\t(click)=\"onHistoryButtonClick()\" />\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\ticon=\"pi pi-heart\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\t[rounded]=\"true\"\r\n\t\t\t\t\t(click)=\"onFavoritePagesButtonClick()\" />\r\n\t\t\t</li>\r\n\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\r\n\t\t\t\t\t{{ username[0] | uppercase }}\r\n\t\t\t\t</p-button>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<i\r\n\t\t\t\t\tclass=\"pi pi-bell notification-icon\"\r\n\t\t\t\t\tseverity=\"info\"\r\n\t\t\t\t\tpBadge\r\n\t\t\t\t\t[value]=\"0\"\r\n\t\t\t\t\t(click)=\"onNotificationsButtonClick()\"></i>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[options]=\"languages\"\r\n\t\t\t\t\t[(ngModel)]=\"currentLang\"\r\n\t\t\t\t\t(ngModelChange)=\"onLanguageChange()\"\r\n\t\t\t\t\toptionLabel=\"name\"\r\n\t\t\t\t\toptionValue=\"code\"\r\n\t\t\t\t\t[showClear]=\"false\"\r\n\t\t\t\t\tclass=\"custom-dropdown ml-3\">\r\n\t\t\t\t\t<ng-template pTemplate=\"selectedItem\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"getFlagPath(currentLang)\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span class=\"language-text\">{{ currentLang | uppercase }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"item\" let-item>\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"item.flag\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span>{{ item.name }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div>\r\n</div>\r\n\r\n<app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb>\r\n", styles: [".layout-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:.5rem;padding:0 1rem}@media (max-width: 768px){.layout-topbar{padding:0 .5rem;gap:.25rem}}.topbar-start{display:flex;align-items:center;flex-shrink:0}.topbar-logo{height:32px;width:auto}@media (max-width: 768px){.topbar-logo{display:none}}.topbar-search{flex:1;max-width:50rem;margin:0 1rem}@media (max-width: 1024px){.topbar-search{max-width:30rem}}@media (max-width: 768px){.topbar-search{max-width:20rem;margin:0 .5rem}}@media (max-width: 480px){.topbar-search{max-width:15rem;margin:0 .25rem}}.topbar-search .p-input-icon-left{width:100%}.topbar-search-input{width:100%!important}.topbar-end{flex-shrink:0}.topbar-menu{display:flex;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none}@media (max-width: 768px){.topbar-menu{gap:.25rem}}@media (max-width: 480px){.topbar-menu{gap:.1rem}}.topbar-menu-item{display:flex;align-items:center}@media (max-width: 1024px){.desktop-only{display:none!important}}.mobile-only{display:none!important}@media (max-width: 1024px){.mobile-only{display:flex!important}}.custom-dropdown .p-dropdown{border-radius:50px;padding:.5rem 1rem;border:1px solid #c8c8c8;background-color:#f4f4f4}@media (max-width: 768px){.custom-dropdown .p-dropdown{padding:.4rem .8rem}}@media (max-width: 480px){.custom-dropdown .p-dropdown{padding:.3rem .6rem}}.custom-dropdown .p-dropdown-label{padding:0;line-height:1.5}.custom-dropdown .p-dropdown-trigger{border-radius:50px}.flag-icon{width:18px;height:18px;display:inline-block;vertical-align:middle}@media (max-width: 768px){.flag-icon{width:16px;height:16px}}@media (max-width: 480px){.language-text{display:none}}@media (max-width: 768px){.topbar-menubutton{padding:.4rem!important}}@media (max-width: 480px){.topbar-menubutton{padding:.3rem!important}}@media (max-width: 768px){.topbar-menu-item p-button{min-width:auto}.topbar-menu-item p-button .p-button-icon{margin:0}.topbar-menu-item p-button .p-button-label{font-size:.9rem}}@media (max-width: 480px){.topbar-menu-item p-button .p-button-label{font-size:.8rem}.topbar-menu-item p-divider{display:none}}.notification-icon{cursor:pointer;padding:.5rem;border-radius:50%;transition:background-color .2s}.notification-icon:hover{background-color:var(--surface-hover)}@media (max-width: 480px){.notification-icon{font-size:.9rem;padding:.4rem}}\n"] }]
127
145
  }], ctorParameters: () => [{ type: i1.TranslocoService }, { type: i2.PubSubService }, { type: i3.KeycloakService }], propDecorators: { menuButton: [{
128
146
  type: ViewChild,
129
147
  args: ['menubutton']
130
148
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnRvcGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvdG9wYmFyL2FwcC50b3BiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL3RvcGJhci9hcHAudG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUloRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFvQjdELE1BQU0sT0FBTyxrQkFBa0I7SUFnQjlCLFlBQ2tCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixRQUF3QjtRQUZ4QixxQkFBZ0IsR0FB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LGNBQWM7OzJGQUtILGtCQUFrQjtrQkFoQjlCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLFlBQVksV0FDYjt3QkFDUixZQUFZO3dCQUNaLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGNBQWM7cUJBQ2Q7K0lBS3dCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVwcGVyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBCYWRnZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYmFkZ2UnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IERpdmlkZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xyXG5pbXBvcnQgeyBNZW51YmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9tZW51YmFyJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBBcHBzIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuaW1wb3J0IHsgUHViU3ViU2VydmljZSB9IGZyb20gJ2FyaWwvdXRpbC9wdWItc3ViJztcclxuXHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuLi9icmVhZGNydW1iL2FwcC5icmVhZGNydW1iLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExhbmd1YWdlQ29kZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaW50ZXJmYWNlcy9lbnVtJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2UsIExhbmd1YWdlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEtleWNsb2FrU2VydmljZSB9IGZyb20gJ2tleWNsb2FrLWFuZ3VsYXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FwcC10b3BiYXInLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdEJ1dHRvbk1vZHVsZSxcclxuXHRcdEFwcEJyZWFkY3J1bWJDb21wb25lbnQsXHJcblx0XHRVcHBlckNhc2VQaXBlLFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XHREaXZpZGVyTW9kdWxlLFxyXG5cdFx0QmFkZ2VNb2R1bGUsXHJcblx0XHRNZW51YmFyTW9kdWxlLFxyXG5cdFx0RHJvcGRvd25Nb2R1bGVcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9hcHAudG9wYmFyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9hcHAudG9wYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcFRvcGJhckNvbXBvbmVudCB7XHJcblx0QFZpZXdDaGlsZCgnbWVudWJ1dHRvbicpIG1lbnVCdXR0b24hOiBFbGVtZW50UmVmO1xyXG5cclxuXHR1c2VybmFtZSE6IHN0cmluZztcclxuXHRsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KExheW91dFNlcnZpY2UpO1xyXG5cdHNlYXJjaDogc3RyaW5nID0gJyc7XHJcblxyXG5cdGZpbGVQYXRoID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cclxuXHRjdXJyZW50TGFuZzogTGFuZ3VhZ2VDb2RlID0gKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5nJykgYXMgTGFuZ3VhZ2VDb2RlKSB8fCBMYW5ndWFnZUNvZGUuVFI7XHJcblxyXG5cdGxhbmd1YWdlczogTGFuZ3VhZ2VbXSA9IFtcclxuXHRcdHsgbmFtZTogJ1RSJywgY29kZTogTGFuZ3VhZ2VDb2RlLlRSLCBmbGFnOiAnYXNzZXRzL2ltYWdlcy9mbGFncy90ci5zdmcnIH0sXHJcblx0XHR7IG5hbWU6ICdFTicsIGNvZGU6IExhbmd1YWdlQ29kZS5FTiwgZmxhZzogJ2Fzc2V0cy9pbWFnZXMvZmxhZ3MvZ2Iuc3ZnJyB9XHJcblx0XTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlXHRyZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZVx0cmVhZG9ubHkgcHViU3ViU2VydmljZTogUHViU3ViU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkga2V5Y2xvYWs6S2V5Y2xvYWtTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnRyYW5zbG9jb1NlcnZpY2Uuc2V0QWN0aXZlTGFuZyh0aGlzLmN1cnJlbnRMYW5nKTtcclxuXHRcdHRoaXMucHVibGlzaExhbmd1YWdlQ2hhbmdlKHRoaXMuY3VycmVudExhbmcpO1xyXG5cclxuXHRcdGlmICgoPGFueT5nbG9iYWxUaGlzKS5hY3RpdmVIb3N0KSB7XHJcblx0XHRcdHN3aXRjaCAoKDxhbnk+Z2xvYmFsVGhpcykuYWN0aXZlSG9zdCkge1xyXG5cdFx0XHRcdGNhc2UgQXBwcy5ZRUFQOlxyXG5cdFx0XHRcdFx0dGhpcy5maWxlUGF0aC51cGRhdGUoKCkgPT4gJ2Fzc2V0cy9pbWFnZXMveWVhcC1sb2dvLnBuZycpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBBcHBzLlRIT1I6XHJcblx0XHRcdFx0XHR0aGlzLmZpbGVQYXRoLnVwZGF0ZSgoKSA9PiAnYXNzZXRzL2ltYWdlcy90aG9yLWxvZ28ucG5nJyk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlIEFwcHMuTEVOQTpcclxuXHRcdFx0XHRcdHRoaXMuZmlsZVBhdGgudXBkYXRlKCgpID0+ICdhc3NldHMvaW1hZ2VzL2xlbmEtbG9nby5wbmcnKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0XHR0aGlzLmZpbGVQYXRoLnVwZGF0ZSgoKSA9PiAnYXNzZXRzL2ltYWdlcy95ZWFwLWxvZ28ucG5nJyk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHN3aXRjaCAoKDxhbnk+Z2xvYmFsVGhpcykuYWN0aXZlTUYpIHtcclxuXHRcdFx0XHRjYXNlIEFwcHMuSEVTOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5DVFM6XHJcblx0XHRcdFx0Y2FzZSBBcHBzLlNJUzpcclxuXHRcdFx0XHRcdHRoaXMuZmlsZVBhdGgudXBkYXRlKCgpID0+ICdhc3NldHMvaW1hZ2VzL2xlbmEtbG9nby5wbmcnKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgQXBwcy5DUk06XHJcblx0XHRcdFx0Y2FzZSBBcHBzLkJJTExJTkc6XHJcblx0XHRcdFx0Y2FzZSBBcHBzLlBBWU1FTlQ6XHJcblx0XHRcdFx0Y2FzZSBBcHBzLldETTpcclxuXHRcdFx0XHRjYXNlIEFwcHMuTU5HOlxyXG5cdFx0XHRcdFx0dGhpcy5maWxlUGF0aC51cGRhdGUoKCkgPT4gJ2Fzc2V0cy9pbWFnZXMvdGhvci1sb2dvLnBuZycpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBBcHBzLk1XOlxyXG5cdFx0XHRcdFx0dGhpcy5maWxlUGF0aC51cGRhdGUoKCkgPT4gJ2Fzc2V0cy9pbWFnZXMveWVhcC1sb2dvLnBuZycpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdHRoaXMuZmlsZVBhdGgudXBkYXRlKCgpID0+ICdhc3NldHMvaW1hZ2VzL3llYXAtbG9nby5wbmcnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMudXNlcm5hbWUgPSB0aGlzLmtleWNsb2FrLmdldFVzZXJuYW1lKCk7XHJcblx0fVxyXG5cclxuXHRvbk1lbnVCdXR0b25DbGljaygpOiB2b2lkIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5vbk1lbnVUb2dnbGUoKTtcclxuXHR9XHJcblxyXG5cdG9uUHJvZmlsZUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnNob3dQcm9maWxlU2lkZWJhcigpO1xyXG5cdH1cclxuXHJcblx0b25Db25maWdCdXR0b25DbGljaygpOiB2b2lkIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zaG93Q29uZmlnU2lkZWJhcigpO1xyXG5cdH1cclxuXHJcblx0b25MYW5ndWFnZUNoYW5nZSgpOiB2b2lkIHtcclxuXHRcdGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsYW5nJywgdGhpcy5jdXJyZW50TGFuZyk7XHJcblxyXG5cdFx0dGhpcy50cmFuc2xvY29TZXJ2aWNlLnNldEFjdGl2ZUxhbmcodGhpcy5jdXJyZW50TGFuZyk7XHJcblxyXG5cdFx0dGhpcy5wdWJsaXNoTGFuZ3VhZ2VDaGFuZ2UodGhpcy5jdXJyZW50TGFuZyk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHB1Ymxpc2hMYW5ndWFnZUNoYW5nZShsYW5ndWFnZTogTGFuZ3VhZ2VDb2RlKTogdm9pZCB7XHJcblx0XHRjb25zdCBldmVudDogTGFuZ3VhZ2VDaGFuZ2VFdmVudCA9IHtcclxuXHRcdFx0bmFtZTogJ2xhbmd1YWdlQ2hhbmdlZCcsXHJcblx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRwYXRoOiAnJyxcclxuXHRcdFx0XHRjdXN0b206IHtcclxuXHRcdFx0XHRcdGxhbmd1YWdlXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMucHViU3ViU2VydmljZS5wdWJsaXNoKGV2ZW50KTtcclxuXHR9XHJcblxyXG5cdGdldEZsYWdQYXRoKGxhbmc6IExhbmd1YWdlQ29kZSk6IHN0cmluZyB7XHJcblx0XHRzd2l0Y2ggKGxhbmcpIHtcclxuXHRcdFx0Y2FzZSBMYW5ndWFnZUNvZGUuVFI6XHJcblx0XHRcdFx0cmV0dXJuICdhc3NldHMvaW1hZ2VzL2ZsYWdzL3RyLnN2Zyc7XHJcblx0XHRcdGNhc2UgTGFuZ3VhZ2VDb2RlLkVOOlxyXG5cdFx0XHRcdHJldHVybiAnYXNzZXRzL2ltYWdlcy9mbGFncy9nYi5zdmcnO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiAnYXNzZXRzL2ltYWdlcy9mbGFncy90ci5zdmcnO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LXRvcGJhclwiPlxyXG5cdDxkaXYgY2xhc3M9XCJ0b3BiYXItc3RhcnRcIj5cclxuXHRcdDxidXR0b24gI21lbnVidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidG9wYmFyLW1lbnVidXR0b24gcC1saW5rIHAtdHJpZ2dlclwiIChjbGljayk9XCJvbk1lbnVCdXR0b25DbGljaygpXCI+XHJcblx0XHRcdDxpIGNsYXNzPVwicGkgcGktYmFyc1wiPjwvaT5cclxuXHRcdDwvYnV0dG9uPlxyXG5cdFx0PGltZyBbc3JjXT1cImZpbGVQYXRoKClcIiBjbGFzcz1cIm1yLTNcIiBhbHQ9XCJ5ZWFwXCIgLz5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiBjbGFzcz1cInRvcGJhci1zZWFyY2hcIiBzdHlsZT1cIndpZHRoOiA1MHJlbVwiPlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJwLWlucHV0LWljb24tbGVmdFwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuXHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1zZWFyY2hcIj48L2k+XHJcblx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcclxuXHRcdFx0XHRwSW5wdXRUZXh0XHJcblx0XHRcdFx0dmFyaWFudD1cImZpbGxlZFwiXHJcblx0XHRcdFx0cGxhY2Vob2xkZXI9XCJHZW5lbCBBcmFtYVwiXHJcblx0XHRcdFx0c3R5bGU9XCJiYWNrZ3JvdW5kOiAjZWZmM2Y4OyBib3JkZXI6IG5vbmU7IGhlaWdodDogNDJweFwiXHJcblx0XHRcdFx0Y2xhc3M9XCJwLWlucHV0dGV4dCBwLWNvbXBvbmVudCBwLWVsZW1lbnQgc206dy1mdWxsXCIgLz5cclxuXHRcdDwvc3Bhbj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiBjbGFzcz1cInRvcGJhci1lbmQgbXItMlwiPlxyXG5cdFx0PHVsIGNsYXNzPVwidG9wYmFyLW1lbnVcIj5cclxuXHRcdFx0PGxpPlxyXG5cdFx0XHRcdDxwLWJ1dHRvbiBpY29uPVwicGkgcGktc2l0ZW1hcFwiIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgW3RleHRdPVwidHJ1ZVwiIFtyb3VuZGVkXT1cInRydWVcIiAvPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0XHQ8bGk+XHJcblx0XHRcdFx0PHAtYnV0dG9uIGljb249XCJwaSBwaS1oaXN0b3J5XCIgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIiBbdGV4dF09XCJ0cnVlXCIgW3JvdW5kZWRdPVwidHJ1ZVwiIC8+XHJcblx0XHRcdDwvbGk+XHJcblx0XHRcdDxsaT5cclxuXHRcdFx0XHQ8cC1idXR0b24gaWNvbj1cInBpIHBpLWhlYXJ0XCIgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIiBbdGV4dF09XCJ0cnVlXCIgW3JvdW5kZWRdPVwidHJ1ZVwiIC8+XHJcblx0XHRcdDwvbGk+XHJcblxyXG5cdFx0XHQ8bGk+XHJcblx0XHRcdFx0PHAtYnV0dG9uIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgW3RleHRdPVwidHJ1ZVwiIFtyb3VuZGVkXT1cInRydWVcIiAoY2xpY2spPVwib25Qcm9maWxlQnV0dG9uQ2xpY2soKVwiPlxyXG5cdFx0XHRcdFx0e3sgdXNlcm5hbWVbMF0gfCB1cHBlcmNhc2UgfX1cclxuXHRcdFx0XHQ8L3AtYnV0dG9uPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0XHQ8bGk+XHJcblx0XHRcdFx0PHAtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIHN0eWxlQ2xhc3M9XCJoLTFyZW0gYm9yZGVyLTUwMCBtLTBcIiAvPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0XHQ8bGk+XHJcblx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1iZWxsXCIgc2V2ZXJpdHk9XCJpbmZvXCIgcEJhZGdlIFt2YWx1ZV09XCIwXCI+PC9pPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0XHQ8bGk+XHJcblx0XHRcdFx0PHAtZHJvcGRvd25cclxuXHRcdFx0XHRcdFtvcHRpb25zXT1cImxhbmd1YWdlc1wiXHJcblx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cImN1cnJlbnRMYW5nXCJcclxuXHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cIm9uTGFuZ3VhZ2VDaGFuZ2UoKVwiXHJcblx0XHRcdFx0XHRvcHRpb25MYWJlbD1cIm5hbWVcIlxyXG5cdFx0XHRcdFx0b3B0aW9uVmFsdWU9XCJjb2RlXCJcclxuXHRcdFx0XHRcdFtzaG93Q2xlYXJdPVwiZmFsc2VcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJjdXN0b20tZHJvcGRvd24gbWwtM1wiPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1nIFtzcmNdPVwiZ2V0RmxhZ1BhdGgoY3VycmVudExhbmcpXCIgY2xhc3M9XCJmbGFnLWljb25cIiBhbHQ9XCJmbGFnXCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8c3Bhbj57eyBjdXJyZW50TGFuZyB8IHVwcGVyY2FzZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtaXRlbT5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0PGltZyBbc3JjXT1cIml0ZW0uZmxhZ1wiIGNsYXNzPVwiZmxhZy1pY29uXCIgYWx0PVwiZmxhZ1wiIC8+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4+e3sgaXRlbS5uYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9wLWRyb3Bkb3duPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0PC91bD5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48YXBwLWJyZWFkY3J1bWIgY2xhc3M9XCJ0b3BiYXItYnJlYWRjcnVtYlwiPjwvYXBwLWJyZWFkY3J1bWI+XHJcbiJdfQ==
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnRvcGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvdG9wYmFyL2FwcC50b3BiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL3RvcGJhci9hcHAudG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBR3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7OztBQW1CaEYsTUFBTSxPQUFPLGtCQUFrQjtJQWlCOUIsWUFDa0IsZ0JB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QixJQUFJLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFO29CQUNQLFFBQVE7aUJBQ1I7YUFDRDtTQUNELENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWtCO1FBQzdCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDZCxLQUFLLFlBQVksQ0FBQyxFQUFFO2dCQUNuQixPQUFPLDRCQUE0QixDQUFDO1lBQ3JDLEtBQUssWUFBWSxDQUFDLEVBQUU7Z0JBQ25CLE9BQU8sNEJBQTRCLENBQUM7WUFDckM7Z0JBQ0MsT0FBTyw0QkFBNEIsQ0FBQztRQUN0QyxDQUFDO0lBQ0YsQ0FBQzs4R0EvSFcsa0JBQWtCO2tHQUFsQixrQkFBa0IsZ0xDdEMvQiwwMUdBNEZBLG00RURuRUUsWUFBWSxxZUFDWixzQkFBc0Isc0RBQ3RCLGFBQWEsaURBQ2IsV0FBVyw4VkFDWCxhQUFhLDBKQUNiLFdBQVcsME1BQ1gsYUFBYSw4QkFDYixjQUFjLDJxQ0FDZCxlQUFlOzsyRkFLSixrQkFBa0I7a0JBakI5QixTQUFTO2lDQUNHLElBQUksWUFDTixZQUFZLFdBQ2I7d0JBQ1IsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7cUJBQ2Y7K0lBS3dCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVwcGVyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBCYWRnZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYmFkZ2UnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IERpdmlkZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xyXG5pbXBvcnQgeyBNZW51YmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9tZW51YmFyJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBBcHBzIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuaW1wb3J0IHsgUHViU3ViU2VydmljZSB9IGZyb20gJ2FyaWwvdXRpbC9wdWItc3ViJztcclxuXHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IExhbmd1YWdlQ29kZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaW50ZXJmYWNlcy9lbnVtJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2UsIExhbmd1YWdlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEFwcEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuLi9icmVhZGNydW1iL2FwcC5icmVhZGNydW1iLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLXRvcGJhcicsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0QnV0dG9uTW9kdWxlLFxyXG5cdFx0QXBwQnJlYWRjcnVtYkNvbXBvbmVudCxcclxuXHRcdFVwcGVyQ2FzZVBpcGUsXHJcblx0XHRGb3Jtc01vZHVsZSxcclxuXHRcdERpdmlkZXJNb2R1bGUsXHJcblx0XHRCYWRnZU1vZHVsZSxcclxuXHRcdE1lbnViYXJNb2R1bGUsXHJcblx0XHREcm9wZG93bk1vZHVsZSxcclxuXHRcdFRyYW5zbG9jb01vZHVsZVxyXG5cdF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FwcC50b3BiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2FwcC50b3BiYXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwVG9wYmFyQ29tcG9uZW50IHtcclxuXHRAVmlld0NoaWxkKCdtZW51YnV0dG9uJykgbWVudUJ1dHRvbiE6IEVsZW1lbnRSZWY7XHJcblxyXG5cdHVzZXJuYW1lITogc3RyaW5nO1xyXG5cdGxheW91dFNlcnZpY2UgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XHJcblx0c2VhcmNoOiBzdHJpbmcgPSAnJztcclxuXHJcblx0ZmlsZVBhdGggPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblx0aXNOb3RpZmljYXRpb25zVmlzaWJsZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdGN1cnJlbnRMYW5nOiBMYW5ndWFnZUNvZGUgPSAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmcnKSBhcyBMYW5ndWFnZUNvZGUpIHx8IExhbmd1YWdlQ29kZS5UUjtcclxuXHJcblx0bGFuZ3VhZ2VzOiBMYW5ndWFnZVtdID0gW1xyXG5cdFx0eyBuYW1lOiAnVFInLCBjb2RlOiBMYW5ndWFnZUNvZGUuVFIsIGZsYWc6ICdhc3NldHMvaW1hZ2VzL2ZsYWdzL3RyLnN2ZycgfSxcclxuXHRcdHsgbmFtZTogJ0VOJywgY29kZTogTGFuZ3VhZ2VDb2RlLkVOLCBmbGFnOiAnYXNzZXRzL2ltYWdlcy9mbGFncy9nYi5zdmcnIH1cclxuXHRdO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcHViU3ViU2VydmljZTogUHViU3ViU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkga2V5Y2xvYWs6IEtleWNsb2FrU2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy50cmFuc2xvY29TZXJ2aWNlLnNldEFjdGl2ZUxhbmcodGhpcy5jdXJyZW50TGFuZyk7XHJcblx0XHR0aGlzLnB1Ymxpc2hMYW5ndWFnZUNoYW5nZSh0aGlzLmN1cnJlbnRMYW5nKTtcclxuXHJcblx0XHRpZiAoKDxhbnk+Z2xvYmFsVGhpcykuYWN0aXZlSG9zdCkge1xyXG5cdFx0XHRzd2l0Y2ggKCg8YW55Pmdsb2JhbFRoaXMpLmFjdGl2ZUhvc3QpIHtcclxuXHRcdFx0XHRjYXNlIEFwcHMuWUVBUDpcclxuXHRcdFx0XHRcdHRoaXMuZmlsZVBhdGgudXBkYXRlKCgpID0+ICdhc3NldHMvaW1hZ2VzL3llYXAtbG9nby5wbmcnKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgQXBwcy5USE9SOlxyXG5cdFx0XHRcdFx0dGhpcy5maWxlUGF0aC51cGRhdGUoKCkgPT4gJ2Fzc2V0cy9pbWFnZXMvdGhvci1sb2dvLnBuZycpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBBcHBzLkxFTkE6XHJcblx0XHRcdFx0XHR0aGlzLmZpbGVQYXRoLnVwZGF0ZSgoKSA9PiAnYXNzZXRzL2ltYWdlcy9sZW5hLWxvZ28ucG5nJyk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdFx0dGhpcy5maWxlUGF0aC51cGRhdGUoKCkgPT4gJ2Fzc2V0cy9pbWFnZXMveWVhcC1sb2dvLnBuZycpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzd2l0Y2ggKCg8YW55Pmdsb2JhbFRoaXMpLmFjdGl2ZU1GKSB7XHJcblx0XHRcdFx0Y2FzZSBBcHBzLkhFUzpcclxuXHRcdFx0XHRjYXNlIEFwcHMuQ1RTOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5TSVM6XHJcblx0XHRcdFx0XHR0aGlzLmZpbGVQYXRoLnVwZGF0ZSgoKSA9PiAnYXNzZXRzL2ltYWdlcy9sZW5hLWxvZ28ucG5nJyk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlIEFwcHMuQ1JNOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5CSUxMSU5HOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5QQVlNRU5UOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5XRE06XHJcblx0XHRcdFx0Y2FzZSBBcHBzLk1ORzpcclxuXHRcdFx0XHRcdHRoaXMuZmlsZVBhdGgudXBkYXRlKCgpID0+ICdhc3NldHMvaW1hZ2VzL3Rob3ItbG9nby5wbmcnKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgQXBwcy5NVzpcclxuXHRcdFx0XHRcdHRoaXMuZmlsZVBhdGgudXBkYXRlKCgpID0+ICdhc3NldHMvaW1hZ2VzL3llYXAtbG9nby5wbmcnKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0XHR0aGlzLmZpbGVQYXRoLnVwZGF0ZSgoKSA9PiAnYXNzZXRzL2ltYWdlcy95ZWFwLWxvZ28ucG5nJyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnVzZXJuYW1lID0gdGhpcy5rZXljbG9hay5nZXRVc2VybmFtZSgpO1xyXG5cdH1cclxuXHJcblx0b25NZW51QnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uub25NZW51VG9nZ2xlKCk7XHJcblx0fVxyXG5cclxuXHRvblByb2ZpbGVCdXR0b25DbGljaygpOiB2b2lkIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zaG93UHJvZmlsZVNpZGViYXIoKTtcclxuXHR9XHJcblxyXG5cdG9uQ29uZmlnQnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc2hvd0NvbmZpZ1NpZGViYXIoKTtcclxuXHR9XHJcblxyXG5cdG9uSGlzdG9yeUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnNob3dIaXN0b3J5U2lkZWJhcigpO1xyXG5cdH1cclxuXHJcblx0b25TaXRlTWFwQnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc2hvd1NpdGVNYXBTaWRlYmFyKCk7XHJcblx0fVxyXG5cclxuXHRvbkZhdm9yaXRlUGFnZXNCdXR0b25DbGljaygpOiB2b2lkIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zaG93RmF2b3JpdGVQYWdlc1NpZGViYXIoKTtcclxuXHR9XHJcblxyXG5cdG9uTm90aWZpY2F0aW9uc0J1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5pc05vdGlmaWNhdGlvbnNWaXNpYmxlLnVwZGF0ZSgodmlzaWJsZSkgPT4gIXZpc2libGUpO1xyXG5cdH1cclxuXHJcblx0b25Ob3RpZmljYXRpb25zQ2xvc2UoKTogdm9pZCB7XHJcblx0XHR0aGlzLmlzTm90aWZpY2F0aW9uc1Zpc2libGUuc2V0KGZhbHNlKTtcclxuXHR9XHJcblxyXG5cdG9uTGFuZ3VhZ2VDaGFuZ2UoKTogdm9pZCB7XHJcblx0XHRsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZycsIHRoaXMuY3VycmVudExhbmcpO1xyXG5cclxuXHRcdHRoaXMudHJhbnNsb2NvU2VydmljZS5zZXRBY3RpdmVMYW5nKHRoaXMuY3VycmVudExhbmcpO1xyXG5cclxuXHRcdHRoaXMucHVibGlzaExhbmd1YWdlQ2hhbmdlKHRoaXMuY3VycmVudExhbmcpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBwdWJsaXNoTGFuZ3VhZ2VDaGFuZ2UobGFuZ3VhZ2U6IExhbmd1YWdlQ29kZSk6IHZvaWQge1xyXG5cdFx0Y29uc3QgZXZlbnQ6IExhbmd1YWdlQ2hhbmdlRXZlbnQgPSB7XHJcblx0XHRcdG5hbWU6ICdsYW5ndWFnZUNoYW5nZWQnLFxyXG5cdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0cGF0aDogJycsXHJcblx0XHRcdFx0Y3VzdG9tOiB7XHJcblx0XHRcdFx0XHRsYW5ndWFnZVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHJcblx0XHR0aGlzLnB1YlN1YlNlcnZpY2UucHVibGlzaChldmVudCk7XHJcblx0fVxyXG5cclxuXHRnZXRGbGFnUGF0aChsYW5nOiBMYW5ndWFnZUNvZGUpOiBzdHJpbmcge1xyXG5cdFx0c3dpdGNoIChsYW5nKSB7XHJcblx0XHRcdGNhc2UgTGFuZ3VhZ2VDb2RlLlRSOlxyXG5cdFx0XHRcdHJldHVybiAnYXNzZXRzL2ltYWdlcy9mbGFncy90ci5zdmcnO1xyXG5cdFx0XHRjYXNlIExhbmd1YWdlQ29kZS5FTjpcclxuXHRcdFx0XHRyZXR1cm4gJ2Fzc2V0cy9pbWFnZXMvZmxhZ3MvZ2Iuc3ZnJztcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRyZXR1cm4gJ2Fzc2V0cy9pbWFnZXMvZmxhZ3MvdHIuc3ZnJztcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxheW91dC10b3BiYXJcIj5cclxuXHQ8ZGl2IGNsYXNzPVwidG9wYmFyLXN0YXJ0XCI+XHJcblx0XHQ8YnV0dG9uICNtZW51YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInRvcGJhci1tZW51YnV0dG9uIHAtbGluayBwLXRyaWdnZXJcIiAoY2xpY2spPVwib25NZW51QnV0dG9uQ2xpY2soKVwiPlxyXG5cdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWJhcnNcIj48L2k+XHJcblx0XHQ8L2J1dHRvbj5cclxuXHRcdDxpbWcgW3NyY109XCJmaWxlUGF0aCgpXCIgY2xhc3M9XCJ0b3BiYXItbG9nbyBtci0zXCIgYWx0PVwibG9nb1wiIC8+XHJcblx0PC9kaXY+XHJcblxyXG5cdDxkaXYgY2xhc3M9XCJ0b3BiYXItc2VhcmNoXCIgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiAnJ1wiPlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJwLWlucHV0LWljb24tbGVmdFwiPlxyXG5cdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXNlYXJjaFwiPjwvaT5cclxuXHRcdFx0PGlucHV0XHJcblx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdHBJbnB1dFRleHRcclxuXHRcdFx0XHR2YXJpYW50PVwiZmlsbGVkXCJcclxuXHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwidCgnc2VhcmNoR2VuZXJhbCcpXCJcclxuXHRcdFx0XHRzdHlsZT1cImJhY2tncm91bmQ6ICNlZmYzZjg7IGJvcmRlcjogbm9uZTsgaGVpZ2h0OiA0MnB4XCJcclxuXHRcdFx0XHRjbGFzcz1cInAtaW5wdXR0ZXh0IHAtY29tcG9uZW50IHAtZWxlbWVudCB0b3BiYXItc2VhcmNoLWlucHV0XCIgLz5cclxuXHRcdDwvc3Bhbj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiBjbGFzcz1cInRvcGJhci1lbmQgbXItMlwiPlxyXG5cdFx0PHVsIGNsYXNzPVwidG9wYmFyLW1lbnVcIj5cclxuXHRcdFx0PGxpIGNsYXNzPVwidG9wYmFyLW1lbnUtaXRlbVwiPlxyXG5cdFx0XHRcdDxwLWJ1dHRvblxyXG5cdFx0XHRcdFx0aWNvbj1cInBpIHBpLXNpdGVtYXBcIlxyXG5cdFx0XHRcdFx0c2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRbcm91bmRlZF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJvblNpdGVNYXBCdXR0b25DbGljaygpXCIgLz5cclxuXHRcdFx0PC9saT5cclxuXHRcdFx0PGxpIGNsYXNzPVwidG9wYmFyLW1lbnUtaXRlbVwiPlxyXG5cdFx0XHRcdDxwLWJ1dHRvblxyXG5cdFx0XHRcdFx0aWNvbj1cInBpIHBpLWhpc3RvcnlcIlxyXG5cdFx0XHRcdFx0c2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRbcm91bmRlZF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJvbkhpc3RvcnlCdXR0b25DbGljaygpXCIgLz5cclxuXHRcdFx0PC9saT5cclxuXHRcdFx0PGxpIGNsYXNzPVwidG9wYmFyLW1lbnUtaXRlbVwiPlxyXG5cdFx0XHRcdDxwLWJ1dHRvblxyXG5cdFx0XHRcdFx0aWNvbj1cInBpIHBpLWhlYXJ0XCJcclxuXHRcdFx0XHRcdHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFt0ZXh0XT1cInRydWVcIlxyXG5cdFx0XHRcdFx0W3JvdW5kZWRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwib25GYXZvcml0ZVBhZ2VzQnV0dG9uQ2xpY2soKVwiIC8+XHJcblx0XHRcdDwvbGk+XHJcblxyXG5cdFx0XHQ8bGkgY2xhc3M9XCJ0b3BiYXItbWVudS1pdGVtXCI+XHJcblx0XHRcdFx0PHAtYnV0dG9uIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgW3RleHRdPVwidHJ1ZVwiIFtyb3VuZGVkXT1cInRydWVcIiAoY2xpY2spPVwib25Qcm9maWxlQnV0dG9uQ2xpY2soKVwiPlxyXG5cdFx0XHRcdFx0e3sgdXNlcm5hbWVbMF0gfCB1cHBlcmNhc2UgfX1cclxuXHRcdFx0XHQ8L3AtYnV0dG9uPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0XHQ8bGkgY2xhc3M9XCJ0b3BiYXItbWVudS1pdGVtXCI+XHJcblx0XHRcdFx0PHAtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIHN0eWxlQ2xhc3M9XCJoLTFyZW0gYm9yZGVyLTUwMCBtLTBcIiAvPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0XHQ8bGkgY2xhc3M9XCJ0b3BiYXItbWVudS1pdGVtXCI+XHJcblx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdGNsYXNzPVwicGkgcGktYmVsbCBub3RpZmljYXRpb24taWNvblwiXHJcblx0XHRcdFx0XHRzZXZlcml0eT1cImluZm9cIlxyXG5cdFx0XHRcdFx0cEJhZGdlXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwiMFwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwib25Ob3RpZmljYXRpb25zQnV0dG9uQ2xpY2soKVwiPjwvaT5cclxuXHRcdFx0PC9saT5cclxuXHRcdFx0PGxpIGNsYXNzPVwidG9wYmFyLW1lbnUtaXRlbVwiPlxyXG5cdFx0XHRcdDxwLWRyb3Bkb3duXHJcblx0XHRcdFx0XHRbb3B0aW9uc109XCJsYW5ndWFnZXNcIlxyXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJjdXJyZW50TGFuZ1wiXHJcblx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJvbkxhbmd1YWdlQ2hhbmdlKClcIlxyXG5cdFx0XHRcdFx0b3B0aW9uTGFiZWw9XCJuYW1lXCJcclxuXHRcdFx0XHRcdG9wdGlvblZhbHVlPVwiY29kZVwiXHJcblx0XHRcdFx0XHRbc2hvd0NsZWFyXT1cImZhbHNlXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwiY3VzdG9tLWRyb3Bkb3duIG1sLTNcIj5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0PGltZyBbc3JjXT1cImdldEZsYWdQYXRoKGN1cnJlbnRMYW5nKVwiIGNsYXNzPVwiZmxhZy1pY29uXCIgYWx0PVwiZmxhZ1wiIC8+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJsYW5ndWFnZS10ZXh0XCI+e3sgY3VycmVudExhbmcgfCB1cHBlcmNhc2UgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LWl0ZW0+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbWcgW3NyY109XCJpdGVtLmZsYWdcIiBjbGFzcz1cImZsYWctaWNvblwiIGFsdD1cImZsYWdcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDwvcC1kcm9wZG93bj5cclxuXHRcdFx0PC9saT5cclxuXHRcdDwvdWw+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGFwcC1icmVhZGNydW1iIGNsYXNzPVwidG9wYmFyLWJyZWFkY3J1bWJcIj48L2FwcC1icmVhZGNydW1iPlxyXG4iXX0=
@@ -24,6 +24,9 @@ export class LayoutService {
24
24
  overlayMenuActive: false,
25
25
  profileSidebarVisible: false,
26
26
  configSidebarVisible: false,
27
+ historySidebarVisible: false,
28
+ siteMapSidebarVisible: false,
29
+ favoritePagesSidebarVisible: false,
27
30
  staticMenuMobileActive: false,
28
31
  menuHoverActive: false,
29
32
  sidebarActive: false,
@@ -72,6 +75,15 @@ export class LayoutService {
72
75
  showConfigSidebar() {
73
76
  this.state.configSidebarVisible = true;
74
77
  }
78
+ showHistorySidebar() {
79
+ this.state.historySidebarVisible = true;
80
+ }
81
+ showSiteMapSidebar() {
82
+ this.state.siteMapSidebarVisible = true;
83
+ }
84
+ showFavoritePagesSidebar() {
85
+ this.state.favoritePagesSidebarVisible = true;
86
+ }
75
87
  isOverlay() {
76
88
  return this.config().menuMode === 'overlay';
77
89
  }
@@ -130,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
130
142
  providedIn: 'root'
131
143
  }]
132
144
  }], ctorParameters: () => [] });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBZ0MvQixNQUFNLE9BQU8sYUFBYTtJQTBDekI7UUF4Q0E7Ozs7V0FJRztRQUVILFlBQU8sR0FBYztZQUNwQixNQUFNLEVBQUUsS0FBSztZQUNiLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsYUFBYTtTQUN4QixDQUFDO1FBRUYsd0JBQXdCO1FBQ3hCLFdBQU0sR0FBRyxNQUFNLENBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLFVBQUssR0FBZ0I7WUFDcEIseUJBQXlCLEVBQUUsS0FBSztZQUNoQyxpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFFBQVEsRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUVNLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWEsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFFekMsa0JBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWpELGlCQUFZLEdBQUcsSUFBSSxD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QUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELFNBQVMsQ0FBQyxVQUFXLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQzlDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3hCLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLEtBQUssSUFBSSxDQUFDO0lBQ3hELENBQUM7OEdBdkpXLGFBQWE7a0hBQWIsYUFBYSxjQUZiLE1BQU07OzJGQUVOLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgZWZmZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCB0eXBlIE1lbnVNb2RlID0gJ3N0YXRpYycgfCAnb3ZlcmxheScgfCAnaG9yaXpvbnRhbCcgfCAnc2xpbScgfCAnc2xpbS1wbHVzJyB8ICdyZXZlYWwnIHwgJ2RyYXdlcicgfCAnZXhwYW5kYWJsZSc7XHJcblxyXG5leHBvcnQgdHlwZSBDb2xvclNjaGVtZSA9ICdsaWdodCcgfCAnZGFyaycgfCAnZGltJztcclxuXHJcbmV4cG9ydCB0eXBlIE1lbnVDb2xvclNjaGVtZSA9ICdjb2xvclNjaGVtZScgfCAncHJpbWFyeUNvbG9yJyB8ICd0cmFuc3BhcmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZyB7XHJcblx0aW5wdXRTdHlsZTogc3RyaW5nO1xyXG5cdGNvbG9yU2NoZW1lOiBDb2xvclNjaGVtZTtcclxuXHR0aGVtZTogc3RyaW5nO1xyXG5cdHJpcHBsZTogYm9vbGVhbjtcclxuXHRtZW51TW9kZTogTWVudU1vZGU7XHJcblx0c2NhbGU6IG51bWJlcjtcclxuXHRtZW51VGhlbWU6IE1lbnVDb2xvclNjaGVtZTtcclxufVxyXG5cclxuaW50ZXJmYWNlIExheW91dFN0YXRlIHtcclxuXHRzdGF0aWNNZW51RGVza3RvcEluYWN0aXZlOiBib29sZWFuO1xyXG5cdG92ZXJsYXlNZW51QWN0aXZlOiBib29sZWFuO1xyXG5cdHByb2ZpbGVTaWRlYmFyVmlzaWJsZTogYm9vbGVhbjtcclxuXHRjb25maWdTaWRlYmFyVmlzaWJsZTogYm9vbGVhbjtcclxuXHRzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBib29sZWFuO1xyXG5cdG1lbnVIb3ZlckFjdGl2ZTogYm9vbGVhbjtcclxuXHRzaWRlYmFyQWN0aXZlOiBib29sZWFuO1xyXG5cdGFuY2hvcmVkOiBib29sZWFuO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRTZXJ2aWNlIHtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb25cclxuXHQgKiBFxJ9lciBtZW51TW9kZSBleHBhbmRhYmxlIGlzZSBhcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIGnDp2luZGVraSAgPGFwcC1zaWRlYmFyIC8+XHQgXHJcblx0ICogeWVyaW5lIDxhcHAtZXhwYW5kYWJsZS1tZW51IC8+IGFrdGlmIGVkaWxtZWxpXHJcblx0ICovXHJcblx0XHJcblx0X2NvbmZpZzogQXBwQ29uZmlnID0ge1xyXG5cdFx0cmlwcGxlOiBmYWxzZSxcclxuXHRcdGlucHV0U3R5bGU6ICdvdXRsaW5lZCcsXHJcblx0XHRtZW51TW9kZTogJ2V4cGFuZGFibGUnLFxyXG5cdFx0Y29sb3JTY2hlbWU6ICdsaWdodCcsXHJcblx0XHR0aGVtZTogJ2luZGlnbycsXHJcblx0XHRzY2FsZTogMTIsXHJcblx0XHRtZW51VGhlbWU6ICdjb2xvclNjaGVtZSdcclxuXHR9O1xyXG5cclxuXHQvLyBUT0RPOiBTZXQgVXNlciBDb25maWdcclxuXHRjb25maWcgPSBzaWduYWw8QXBwQ29uZmlnPih0aGlzLl9jb25maWcpO1xyXG5cclxuXHRzdGF0ZTogTGF5b3V0U3RhdGUgPSB7XHJcblx0XHRzdGF0aWNNZW51RGVza3RvcEluYWN0aXZlOiBmYWxzZSxcclxuXHRcdG92ZXJsYXlNZW51QWN0aXZlOiBmYWxzZSxcclxuXHRcdHByb2ZpbGVTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcblx0XHRjb25maWdTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcblx0XHRzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBmYWxzZSxcclxuXHRcdG1lbnVIb3ZlckFjdGl2ZTogZmFsc2UsXHJcblx0XHRzaWRlYmFyQWN0aXZlOiBmYWxzZSxcclxuXHRcdGFuY2hvcmVkOiBmYWxzZVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgY29uZmlnVXBkYXRlID0gbmV3IFN1YmplY3Q8QXBwQ29uZmlnPigpO1xyXG5cclxuXHRwcml2YXRlIG92ZXJsYXlPcGVuID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuXHRjb25maWdVcGRhdGUkID0gdGhpcy5jb25maWdVcGRhdGUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdG92ZXJsYXlPcGVuJCA9IHRoaXMub3ZlcmxheU9wZW4uYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdG1mZUFwcEl0ZW1DbGlja2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xyXG5cdFx0XHRpZiAodGhpcy51cGRhdGVTdHlsZShjb25maWcpKSB7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VUaGVtZSgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuY2hhbmdlU2NhbGUoY29uZmlnLnNjYWxlKTtcclxuXHRcdFx0dGhpcy5vbkNvbmZpZ1VwZGF0ZSgpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVTdHlsZShjb25maWc6IEFwcENvbmZpZykge1xyXG5cdFx0cmV0dXJuIGNvbmZpZy50aGVtZSAhPT0gdGhpcy5fY29uZmlnLnRoZW1lIHx8IGNvbmZpZy5jb2xvclNjaGVtZSAhPT0gdGhpcy5fY29uZmlnLmNvbG9yU2NoZW1lO1xyXG5cdH1cclxuXHJcblx0b25NZW51VG9nZ2xlKCkge1xyXG5cdFx0aWYgKHRoaXMuaXNPdmVybGF5KCkpIHtcclxuXHRcdFx0dGhpcy5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSA9ICF0aGlzLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5pc0Rlc2t0b3AoKSkge1xyXG5cdFx0XHR0aGlzLnN0YXRlLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmUgPSAhdGhpcy5zdGF0ZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gIXRoaXMuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uT3ZlcmxheVN1Ym1lbnVPcGVuKCkge1xyXG5cdFx0dGhpcy5vdmVybGF5T3Blbi5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0c2hvd1Byb2ZpbGVTaWRlYmFyKCkge1xyXG5cdFx0dGhpcy5zdGF0ZS5wcm9maWxlU2lkZWJhclZpc2libGUgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0c2hvd0NvbmZpZ1NpZGViYXIoKSB7XHJcblx0XHR0aGlzLnN0YXRlLmNvbmZpZ1NpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGlzT3ZlcmxheSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnb3ZlcmxheSc7XHJcblx0fVxyXG5cclxuXHRpc0Rlc2t0b3AoKSB7XHJcblx0XHRyZXR1cm4gd2luZG93LmlubmVyV2lkdGggPiA5OTE7XHJcblx0fVxyXG5cclxuXHRpc1NsaW0oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0nO1xyXG5cdH1cclxuXHJcblx0aXNTbGltUGx1cygpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc2xpbS1wbHVzJztcclxuXHR9XHJcblxyXG5cdGlzSG9yaXpvbnRhbCgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnaG9yaXpvbnRhbCc7XHJcblx0fVxyXG5cclxuXHRpc01vYmlsZSgpIHtcclxuXHRcdHJldHVybiAhdGhpcy5pc0Rlc2t0b3AoKTtcclxuXHR9XHJcblxyXG5cdG9uQ29uZmlnVXBkYXRlKCkge1xyXG5cdFx0dGhpcy5fY29uZmlnID0geyAuLi50aGlzLmNvbmZpZygpIH07XHJcblx0XHR0aGlzLmNvbmZpZ1VwZGF0ZS5uZXh0KHRoaXMuY29uZmlnKCkpO1xyXG5cdH1cclxuXHJcblx0Y2hhbmdlVGhlbWUoKSB7XHJcblx0XHRjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xyXG5cdFx0Y29uc3QgdGhlbWVMaW5rID0gPEhUTUxMaW5rRWxlbWVudD5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlbWUtbGluaycpO1xyXG5cdFx0Y29uc3QgdGhlbWVMaW5rSHJlZiA9IHRoZW1lTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSE7XHJcblx0XHRjb25zdCBuZXdIcmVmID0gdGhlbWVMaW5rSHJlZlxyXG5cdFx0XHQuc3BsaXQoJy8nKVxyXG5cdFx0XHQubWFwKChlbCkgPT5cclxuXHRcdFx0XHRlbCA9PSB0aGlzLl9jb25maWcudGhlbWUgPyAoZWwgPSBjb25maWcudGhlbWUpXHJcblx0XHRcdFx0OiBlbCA9PSBgdGhlbWUtJHt0aGlzLl9jb25maWcuY29sb3JTY2hlbWV9YCA/IChlbCA9IGB0aGVtZS0ke2NvbmZpZy5jb2xvclNjaGVtZX1gKVxyXG5cdFx0XHRcdDogZWxcclxuXHRcdFx0KVxyXG5cdFx0XHQuam9pbignLycpO1xyXG5cclxuXHRcdHRoaXMucmVwbGFjZVRoZW1lTGluayhuZXdIcmVmKTtcclxuXHR9XHJcblxyXG5cdHJlcGxhY2VUaGVtZUxpbmsoaHJlZjogc3RyaW5nKSB7XHJcblx0XHRjb25zdCBpZCA9ICd0aGVtZS1saW5rJztcclxuXHRcdGxldCB0aGVtZUxpbmsgPSA8SFRNTExpbmtFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuXHRcdGNvbnN0IGNsb25lTGlua0VsZW1lbnQgPSA8SFRNTExpbmtFbGVtZW50PnRoZW1lTGluay5jbG9uZU5vZGUodHJ1ZSk7XHJcblxyXG5cdFx0Y2xvbmVMaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTtcclxuXHRcdGNsb25lTGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGlkICsgJy1jbG9uZScpO1xyXG5cclxuXHRcdHRoZW1lTGluay5wYXJlbnROb2RlIS5pbnNlcnRCZWZvcmUoY2xvbmVMaW5rRWxlbWVudCwgdGhlbWVMaW5rLm5leHRTaWJsaW5nKTtcclxuXHRcdGNsb25lTGlua0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcclxuXHRcdFx0dGhlbWVMaW5rLnJlbW92ZSgpO1xyXG5cdFx0XHRjbG9uZUxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBpZCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNoYW5nZVNjYWxlKHZhbHVlOiBudW1iZXIpIHtcclxuXHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IGAke3ZhbHVlfXB4YDtcclxuXHR9XHJcbn1cclxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBbUMvQixNQUFNLE9BQU8sYUFBYTtJQTZDekI7UUEzQ0E7Ozs7V0FJRztRQUVILFlBQU8sR0FBYztZQUNwQixNQUFNLEVBQUUsS0FBSztZQUNiLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsYUFBYTtTQUN4QixDQUFDO1FBRUYsd0JBQXdCO1FBQ3hCLFdBQU0sR0FBRyxNQUFNLENBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLFVBQUssR0FBZ0I7WUFDcEIseUJBQXlCLEVBQUUsS0FBSztZQUNoQyxpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixxQkFBcUIsRUFBRSxLQUFLO1lBQzVCLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsMkJBQTJCLEVBQUUsS0FBSztZQUNsQyxzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFFBQVEsRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUVNLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWEsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFFekMs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Q0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWTtRQUM1QixNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFDeEIsSUFBSSxTQUFTLEdBQW9CLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0QsTUFBTSxnQkFBZ0IsR0FBb0IsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELFNBQVMsQ0FBQyxVQUFXLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQzlDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3hCLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLEtBQUssSUFBSSxDQUFDO0lBQ3hELENBQUM7OEdBdEtXLGFBQWE7a0hBQWIsYUFBYSxjQUZiLE1BQU07OzJGQUVOLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgZWZmZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCB0eXBlIE1lbnVNb2RlID0gJ3N0YXRpYycgfCAnb3ZlcmxheScgfCAnaG9yaXpvbnRhbCcgfCAnc2xpbScgfCAnc2xpbS1wbHVzJyB8ICdyZXZlYWwnIHwgJ2RyYXdlcicgfCAnZXhwYW5kYWJsZSc7XHJcblxyXG5leHBvcnQgdHlwZSBDb2xvclNjaGVtZSA9ICdsaWdodCcgfCAnZGFyaycgfCAnZGltJztcclxuXHJcbmV4cG9ydCB0eXBlIE1lbnVDb2xvclNjaGVtZSA9ICdjb2xvclNjaGVtZScgfCAncHJpbWFyeUNvbG9yJyB8ICd0cmFuc3BhcmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZyB7XHJcblx0aW5wdXRTdHlsZTogc3RyaW5nO1xyXG5cdGNvbG9yU2NoZW1lOiBDb2xvclNjaGVtZTtcclxuXHR0aGVtZTogc3RyaW5nO1xyXG5cdHJpcHBsZTogYm9vbGVhbjtcclxuXHRtZW51TW9kZTogTWVudU1vZGU7XHJcblx0c2NhbGU6IG51bWJlcjtcclxuXHRtZW51VGhlbWU6IE1lbnVDb2xvclNjaGVtZTtcclxufVxyXG5cclxuaW50ZXJmYWNlIExheW91dFN0YXRlIHtcclxuXHRzdGF0aWNNZW51RGVza3RvcEluYWN0aXZlOiBib29sZWFuO1xyXG5cdG92ZXJsYXlNZW51QWN0aXZlOiBib29sZWFuO1xyXG5cdHByb2ZpbGVTaWRlYmFyVmlzaWJsZTogYm9vbGVhbjtcclxuXHRjb25maWdTaWRlYmFyVmlzaWJsZTogYm9vbGVhbjtcclxuXHRoaXN0b3J5U2lkZWJhclZpc2libGU6IGJvb2xlYW47XHJcblx0c2l0ZU1hcFNpZGViYXJWaXNpYmxlOiBib29sZWFuO1xyXG5cdGZhdm9yaXRlUGFnZXNTaWRlYmFyVmlzaWJsZTogYm9vbGVhbjtcclxuXHRzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBib29sZWFuO1xyXG5cdG1lbnVIb3ZlckFjdGl2ZTogYm9vbGVhbjtcclxuXHRzaWRlYmFyQWN0aXZlOiBib29sZWFuO1xyXG5cdGFuY2hvcmVkOiBib29sZWFuO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRTZXJ2aWNlIHtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb25cclxuXHQgKiBFxJ9lciBtZW51TW9kZSBleHBhbmRhYmxlIGlzZSBhcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIGnDp2luZGVraSAgPGFwcC1zaWRlYmFyIC8+XHQgXHJcblx0ICogeWVyaW5lIDxhcHAtZXhwYW5kYWJsZS1tZW51IC8+IGFrdGlmIGVkaWxtZWxpXHJcblx0ICovXHJcblx0XHJcblx0X2NvbmZpZzogQXBwQ29uZmlnID0ge1xyXG5cdFx0cmlwcGxlOiBmYWxzZSxcclxuXHRcdGlucHV0U3R5bGU6ICdvdXRsaW5lZCcsXHJcblx0XHRtZW51TW9kZTogJ2V4cGFuZGFibGUnLFxyXG5cdFx0Y29sb3JTY2hlbWU6ICdsaWdodCcsXHJcblx0XHR0aGVtZTogJ2luZGlnbycsXHJcblx0XHRzY2FsZTogMTIsXHJcblx0XHRtZW51VGhlbWU6ICdjb2xvclNjaGVtZSdcclxuXHR9O1xyXG5cclxuXHQvLyBUT0RPOiBTZXQgVXNlciBDb25maWdcclxuXHRjb25maWcgPSBzaWduYWw8QXBwQ29uZmlnPih0aGlzLl9jb25maWcpO1xyXG5cclxuXHRzdGF0ZTogTGF5b3V0U3RhdGUgPSB7XHJcblx0XHRzdGF0aWNNZW51RGVza3RvcEluYWN0aXZlOiBmYWxzZSxcclxuXHRcdG92ZXJsYXlNZW51QWN0aXZlOiBmYWxzZSxcclxuXHRcdHByb2ZpbGVTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcblx0XHRjb25maWdTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcblx0XHRoaXN0b3J5U2lkZWJhclZpc2libGU6IGZhbHNlLFxyXG5cdFx0c2l0ZU1hcFNpZGViYXJWaXNpYmxlOiBmYWxzZSxcclxuXHRcdGZhdm9yaXRlUGFnZXNTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcblx0XHRzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBmYWxzZSxcclxuXHRcdG1lbnVIb3ZlckFjdGl2ZTogZmFsc2UsXHJcblx0XHRzaWRlYmFyQWN0aXZlOiBmYWxzZSxcclxuXHRcdGFuY2hvcmVkOiBmYWxzZVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgY29uZmlnVXBkYXRlID0gbmV3IFN1YmplY3Q8QXBwQ29uZmlnPigpO1xyXG5cclxuXHRwcml2YXRlIG92ZXJsYXlPcGVuID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuXHRjb25maWdVcGRhdGUkID0gdGhpcy5jb25maWdVcGRhdGUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdG92ZXJsYXlPcGVuJCA9IHRoaXMub3ZlcmxheU9wZW4uYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdG1mZUFwcEl0ZW1DbGlja2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xyXG5cdFx0XHRpZiAodGhpcy51cGRhdGVTdHlsZShjb25maWcpKSB7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VUaGVtZSgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuY2hhbmdlU2NhbGUoY29uZmlnLnNjYWxlKTtcclxuXHRcdFx0dGhpcy5vbkNvbmZpZ1VwZGF0ZSgpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVTdHlsZShjb25maWc6IEFwcENvbmZpZykge1xyXG5cdFx0cmV0dXJuIGNvbmZpZy50aGVtZSAhPT0gdGhpcy5fY29uZmlnLnRoZW1lIHx8IGNvbmZpZy5jb2xvclNjaGVtZSAhPT0gdGhpcy5fY29uZmlnLmNvbG9yU2NoZW1lO1xyXG5cdH1cclxuXHJcblx0b25NZW51VG9nZ2xlKCkge1xyXG5cdFx0aWYgKHRoaXMuaXNPdmVybGF5KCkpIHtcclxuXHRcdFx0dGhpcy5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSA9ICF0aGlzLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5pc0Rlc2t0b3AoKSkge1xyXG5cdFx0XHR0aGlzLnN0YXRlLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmUgPSAhdGhpcy5zdGF0ZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gIXRoaXMuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uT3ZlcmxheVN1Ym1lbnVPcGVuKCkge1xyXG5cdFx0dGhpcy5vdmVybGF5T3Blbi5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0c2hvd1Byb2ZpbGVTaWRlYmFyKCkge1xyXG5cdFx0dGhpcy5zdGF0ZS5wcm9maWxlU2lkZWJhclZpc2libGUgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0c2hvd0NvbmZpZ1NpZGViYXIoKSB7XHJcblx0XHR0aGlzLnN0YXRlLmNvbmZpZ1NpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdHNob3dIaXN0b3J5U2lkZWJhcigpIHtcclxuXHRcdHRoaXMuc3RhdGUuaGlzdG9yeVNpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdHNob3dTaXRlTWFwU2lkZWJhcigpIHtcclxuXHRcdHRoaXMuc3RhdGUuc2l0ZU1hcFNpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdHNob3dGYXZvcml0ZVBhZ2VzU2lkZWJhcigpIHtcclxuXHRcdHRoaXMuc3RhdGUuZmF2b3JpdGVQYWdlc1NpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGlzT3ZlcmxheSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnb3ZlcmxheSc7XHJcblx0fVxyXG5cclxuXHRpc0Rlc2t0b3AoKSB7XHJcblx0XHRyZXR1cm4gd2luZG93LmlubmVyV2lkdGggPiA5OTE7XHJcblx0fVxyXG5cclxuXHRpc1NsaW0oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0nO1xyXG5cdH1cclxuXHJcblx0aXNTbGltUGx1cygpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc2xpbS1wbHVzJztcclxuXHR9XHJcblxyXG5cdGlzSG9yaXpvbnRhbCgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnaG9yaXpvbnRhbCc7XHJcblx0fVxyXG5cclxuXHRpc01vYmlsZSgpIHtcclxuXHRcdHJldHVybiAhdGhpcy5pc0Rlc2t0b3AoKTtcclxuXHR9XHJcblxyXG5cdG9uQ29uZmlnVXBkYXRlKCkge1xyXG5cdFx0dGhpcy5fY29uZmlnID0geyAuLi50aGlzLmNvbmZpZygpIH07XHJcblx0XHR0aGlzLmNvbmZpZ1VwZGF0ZS5uZXh0KHRoaXMuY29uZmlnKCkpO1xyXG5cdH1cclxuXHJcblx0Y2hhbmdlVGhlbWUoKSB7XHJcblx0XHRjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xyXG5cdFx0Y29uc3QgdGhlbWVMaW5rID0gPEhUTUxMaW5rRWxlbWVudD5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlbWUtbGluaycpO1xyXG5cdFx0Y29uc3QgdGhlbWVMaW5rSHJlZiA9IHRoZW1lTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSE7XHJcblx0XHRjb25zdCBuZXdIcmVmID0gdGhlbWVMaW5rSHJlZlxyXG5cdFx0XHQuc3BsaXQoJy8nKVxyXG5cdFx0XHQubWFwKChlbCkgPT5cclxuXHRcdFx0XHRlbCA9PSB0aGlzLl9jb25maWcudGhlbWUgPyAoZWwgPSBjb25maWcudGhlbWUpXHJcblx0XHRcdFx0OiBlbCA9PSBgdGhlbWUtJHt0aGlzLl9jb25maWcuY29sb3JTY2hlbWV9YCA/IChlbCA9IGB0aGVtZS0ke2NvbmZpZy5jb2xvclNjaGVtZX1gKVxyXG5cdFx0XHRcdDogZWxcclxuXHRcdFx0KVxyXG5cdFx0XHQuam9pbignLycpO1xyXG5cclxuXHRcdHRoaXMucmVwbGFjZVRoZW1lTGluayhuZXdIcmVmKTtcclxuXHR9XHJcblxyXG5cdHJlcGxhY2VUaGVtZUxpbmsoaHJlZjogc3RyaW5nKSB7XHJcblx0XHRjb25zdCBpZCA9ICd0aGVtZS1saW5rJztcclxuXHRcdGxldCB0aGVtZUxpbmsgPSA8SFRNTExpbmtFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuXHRcdGNvbnN0IGNsb25lTGlua0VsZW1lbnQgPSA8SFRNTExpbmtFbGVtZW50PnRoZW1lTGluay5jbG9uZU5vZGUodHJ1ZSk7XHJcblxyXG5cdFx0Y2xvbmVMaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTtcclxuXHRcdGNsb25lTGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGlkICsgJy1jbG9uZScpO1xyXG5cclxuXHRcdHRoZW1lTGluay5wYXJlbnROb2RlIS5pbnNlcnRCZWZvcmUoY2xvbmVMaW5rRWxlbWVudCwgdGhlbWVMaW5rLm5leHRTaWJsaW5nKTtcclxuXHRcdGNsb25lTGlua0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcclxuXHRcdFx0dGhlbWVMaW5rLnJlbW92ZSgpO1xyXG5cdFx0XHRjbG9uZUxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBpZCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNoYW5nZVNjYWxlKHZhbHVlOiBudW1iZXIpIHtcclxuXHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IGAke3ZhbHVlfXB4YDtcclxuXHR9XHJcbn0iXX0=
@@ -180,11 +180,15 @@ const errorState = async (states, serviceName, error, translocoService, messageS
180
180
  }
181
181
  if (error.error?.details && Array.isArray(error.error.details) && error.error.details.length > 0) {
182
182
  error.error.details.forEach((detail) => {
183
+ const key = 'fields.' + detail.fieldName;
184
+ const translatedField = translocoService.translate(key);
185
+ const text = translatedField === key ? detail.fieldName : translatedField;
186
+ const detailText = (detail.fieldName ? text + ' - ' : '') + detail.reason;
183
187
  messageService.add({
184
188
  key: 'toast-root',
185
189
  severity: 'error',
186
190
  summary: error?.error?.message,
187
- detail: (detail.fieldName !== null ? detail.fieldName + ' - ' : '') + detail.reason
191
+ detail: detailText
188
192
  });
189
193
  });
190
194
  }