ngx-material-navigation 0.0.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/components/footer/footer-element/footer-element.component.d.ts +30 -0
  2. package/components/footer/footer-element/footer-element.module.d.ts +12 -0
  3. package/components/footer/footer.component.d.ts +10 -4
  4. package/components/footer/footer.module.d.ts +3 -1
  5. package/components/navbar/nav-element/nav-element.component.d.ts +7 -2
  6. package/components/navbar/nav-menu/nav-menu.component.d.ts +12 -1
  7. package/components/navbar/navbar.component.d.ts +12 -7
  8. package/components/navbar/navbar.module.d.ts +1 -1
  9. package/esm2020/components/footer/footer-element/footer-element.component.mjs +55 -0
  10. package/esm2020/components/footer/footer-element/footer-element.module.mjs +38 -0
  11. package/esm2020/components/footer/footer.component.mjs +15 -8
  12. package/esm2020/components/footer/footer.module.mjs +15 -7
  13. package/esm2020/components/navbar/nav-element/nav-element.component.mjs +19 -11
  14. package/esm2020/components/navbar/nav-menu/nav-menu.component.mjs +29 -10
  15. package/esm2020/components/navbar/navbar.component.mjs +35 -14
  16. package/esm2020/components/navbar/navbar.module.mjs +6 -6
  17. package/esm2020/models/footer.model.mjs +2 -0
  18. package/esm2020/models/nav-html.model.mjs +2 -0
  19. package/esm2020/models/nav-menu.model.mjs +1 -1
  20. package/esm2020/models/nav.model.mjs +1 -1
  21. package/esm2020/public-api.mjs +3 -1
  22. package/esm2020/utilities/nav.utilities.mjs +63 -11
  23. package/fesm2015/ngx-material-navigation.mjs +239 -57
  24. package/fesm2015/ngx-material-navigation.mjs.map +1 -1
  25. package/fesm2020/ngx-material-navigation.mjs +239 -57
  26. package/fesm2020/ngx-material-navigation.mjs.map +1 -1
  27. package/models/footer.model.d.ts +33 -0
  28. package/models/nav-html.model.d.ts +14 -0
  29. package/models/nav-menu.model.d.ts +2 -1
  30. package/models/nav.model.d.ts +3 -2
  31. package/package.json +9 -1
  32. package/public-api.d.ts +2 -0
  33. package/utilities/nav.utilities.d.ts +39 -12
@@ -0,0 +1,30 @@
1
+ import { AfterContentChecked, OnInit } from '@angular/core';
2
+ import { NavUtilities } from '../../../utilities/nav.utilities';
3
+ import { MatButton } from '@angular/material/button';
4
+ import { NavFooterElement } from '../../../models/footer.model';
5
+ import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Displays a single Navigation Element.
9
+ */
10
+ export declare class FooterElementComponent implements AfterContentChecked, OnInit {
11
+ private readonly sanitizer;
12
+ NavUtilities: typeof NavUtilities;
13
+ /**
14
+ * The element to display.
15
+ */
16
+ element: NavFooterElement;
17
+ sanitizedHtml?: SafeHtml;
18
+ menuButton: MatButton;
19
+ menuWidth: number;
20
+ constructor(sanitizer: DomSanitizer);
21
+ ngOnInit(): void;
22
+ ngAfterContentChecked(): void;
23
+ /**
24
+ * Updates the width of the menu to the value of its button.
25
+ */
26
+ onResize(): void;
27
+ private getMenuWidth;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<FooterElementComponent, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<FooterElementComponent, "ngx-mat-navigation-footer-element", never, { "element": "element"; }, {}, never, never>;
30
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./footer-element.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/router";
5
+ import * as i4 from "@angular/material/menu";
6
+ import * as i5 from "@angular/material/button";
7
+ import * as i6 from "../../navbar/nav-menu/nav-menu.module";
8
+ export declare class FooterElementModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<FooterElementModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FooterElementModule, [typeof i1.FooterElementComponent], [typeof i2.CommonModule, typeof i3.RouterModule, typeof i4.MatMenuModule, typeof i5.MatButtonModule, typeof i6.NavMenuModule], [typeof i1.FooterElementComponent]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<FooterElementModule>;
12
+ }
@@ -1,13 +1,19 @@
1
+ import { FooterRow } from '../../models/footer.model';
2
+ import { NavUtilities } from '../../utilities/nav.utilities';
1
3
  import * as i0 from "@angular/core";
2
4
  /**
3
5
  * Displays a footer based on the provided input data.
4
6
  */
5
- export declare class FooterComponent {
7
+ export declare class NgxMatNavigationFooterComponent {
8
+ NavUtilities: typeof NavUtilities;
6
9
  /**
7
10
  * The minimum height of the footer.
8
11
  */
9
12
  minHeight: number;
10
- constructor();
11
- static ɵfac: i0.ɵɵFactoryDeclaration<FooterComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<FooterComponent, "ngx-mat-navigation-footer", never, { "minHeight": "minHeight"; }, {}, never, never>;
13
+ /**
14
+ * The footer rows to build the footer from.
15
+ */
16
+ footerRows: FooterRow[];
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatNavigationFooterComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatNavigationFooterComponent, "ngx-mat-navigation-footer", never, { "minHeight": "minHeight"; "footerRows": "footerRows"; }, {}, never, never>;
13
19
  }
@@ -1,8 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./footer.component";
3
3
  import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/material/toolbar";
5
+ import * as i4 from "./footer-element/footer-element.module";
4
6
  export declare class NgxMatNavigationFooterModule {
5
7
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatNavigationFooterModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMatNavigationFooterModule, [typeof i1.FooterComponent], [typeof i2.CommonModule], [typeof i1.FooterComponent]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMatNavigationFooterModule, [typeof i1.NgxMatNavigationFooterComponent], [typeof i2.CommonModule, typeof i3.MatToolbarModule, typeof i4.FooterElementModule], [typeof i1.NgxMatNavigationFooterComponent]>;
7
9
  static ɵinj: i0.ɵɵInjectorDeclaration<NgxMatNavigationFooterModule>;
8
10
  }
@@ -1,18 +1,21 @@
1
- import { AfterContentChecked } from '@angular/core';
1
+ import { AfterContentChecked, OnInit } from '@angular/core';
2
2
  import { NavElement } from '../../../models/nav.model';
3
3
  import { NavUtilities } from '../../../utilities/nav.utilities';
4
4
  import { MatSidenav } from '@angular/material/sidenav';
5
5
  import { MatButton } from '@angular/material/button';
6
+ import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * Displays a single Navigation Element.
9
10
  */
10
- export declare class NavElementComponent implements AfterContentChecked {
11
+ export declare class NavElementComponent implements AfterContentChecked, OnInit {
12
+ private readonly sanitizer;
11
13
  NavUtilities: typeof NavUtilities;
12
14
  /**
13
15
  * The element to display.
14
16
  */
15
17
  element: NavElement;
18
+ sanitizedHtml?: SafeHtml;
16
19
  /**
17
20
  * A reference to the sidenav. Is needed for the menu to close the sidenav.
18
21
  */
@@ -24,6 +27,8 @@ export declare class NavElementComponent implements AfterContentChecked {
24
27
  sidenavElement?: boolean;
25
28
  menuButton: MatButton;
26
29
  menuWidth: number;
30
+ constructor(sanitizer: DomSanitizer);
31
+ ngOnInit(): void;
27
32
  ngAfterContentChecked(): void;
28
33
  /**
29
34
  * Updates the width of the menu to the value of its button.
@@ -1,14 +1,16 @@
1
1
  import { AfterContentChecked } from '@angular/core';
2
2
  import { MatMenu } from '@angular/material/menu';
3
- import { NavMenu, NavMenuElement } from "../../../models/nav-menu.model";
3
+ import { NavMenu, NavMenuElement } from '../../../models/nav-menu.model';
4
4
  import { NavUtilities } from '../../../utilities/nav.utilities';
5
5
  import { MatSidenav } from '@angular/material/sidenav';
6
6
  import { MatButton } from '@angular/material/button';
7
+ import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
7
8
  import * as i0 from "@angular/core";
8
9
  /**
9
10
  * Displays a menu based on the provided NavMenu data.
10
11
  */
11
12
  export declare class NavMenuComponent implements AfterContentChecked {
13
+ private readonly sanitizer;
12
14
  menu: MatMenu;
13
15
  /**
14
16
  * The data that is used to generate the menu.
@@ -25,12 +27,21 @@ export declare class NavMenuComponent implements AfterContentChecked {
25
27
  NavUtilities: typeof NavUtilities;
26
28
  nestedMenuButton: MatButton;
27
29
  nestedMenuWidth: number;
30
+ constructor(sanitizer: DomSanitizer);
28
31
  ngAfterContentChecked(): void;
29
32
  /**
30
33
  * Updates the width of the nestedMenu.
31
34
  */
32
35
  onResize(): void;
33
36
  private getMenuWidth;
37
+ /**
38
+ * Gets the sanitized HTML for the given element.
39
+ *
40
+ * @param element - The NavHtml element.
41
+ * @returns The safe html.
42
+ * @throws When the given element is not html.
43
+ */
44
+ getSanitizedHtmlFor(element: NavMenuElement): SafeHtml;
34
45
  /**
35
46
  * Defines if the sidenav should be closed when the given element is clicked.
36
47
  *
@@ -1,4 +1,4 @@
1
- import { OnInit } from '@angular/core';
1
+ import { AfterContentChecked, ElementRef, OnInit } from '@angular/core';
2
2
  import { MatSidenav } from '@angular/material/sidenav';
3
3
  import { DomSanitizer, SafeStyle } from '@angular/platform-browser';
4
4
  import { NavElement } from '../../models/nav.model';
@@ -10,8 +10,8 @@ import * as i0 from "@angular/core";
10
10
  * Takes in your configuration and builds a toolbar as well as a sidenav accordingly.
11
11
  * Also handles responsiveness.
12
12
  */
13
- export declare class NavbarComponent implements OnInit {
14
- sanitizer: DomSanitizer;
13
+ export declare class NgxMatNavigationNavbarComponent implements OnInit, AfterContentChecked {
14
+ private readonly sanitizer;
15
15
  NavUtilities: typeof NavUtilities;
16
16
  /**
17
17
  * The navbar rows to build the navbar from.
@@ -20,16 +20,17 @@ export declare class NavbarComponent implements OnInit {
20
20
  /**
21
21
  * The minimum height of the navbar.
22
22
  */
23
- minHeight: number;
23
+ minHeight?: number;
24
24
  /**
25
25
  * The minimum height of all other elements that are on the same level as the navbar component.
26
26
  */
27
- minHeightOtherElements: number;
27
+ minHeightOtherElements?: number;
28
28
  /**
29
29
  * The minimum width of the sidenav.
30
30
  */
31
31
  minSidenavWidth?: string;
32
32
  sidenav: MatSidenav;
33
+ navbar: ElementRef<HTMLElement>;
33
34
  sidenavElements: NavElement[];
34
35
  burgerMenu: NavElement;
35
36
  sanitizedMinHeight: SafeStyle;
@@ -37,8 +38,12 @@ export declare class NavbarComponent implements OnInit {
37
38
  screenWidthName: 'lg' | 'md' | 'sm';
38
39
  constructor(sanitizer: DomSanitizer);
39
40
  ngOnInit(): void;
41
+ ngAfterContentChecked(): void;
42
+ private updateHeights;
40
43
  /**
41
44
  * Updates the current screen width and filters the sidenav elements accordingly.
45
+ *
46
+ * @throws When no height data is provided or the data is invalid.
42
47
  */
43
48
  onResize(): void;
44
49
  /**
@@ -48,6 +53,6 @@ export declare class NavbarComponent implements OnInit {
48
53
  */
49
54
  clickSidenavElement(element: NavElement): void;
50
55
  private getCurrentScreenWidth;
51
- static ɵfac: i0.ɵɵFactoryDeclaration<NavbarComponent, never>;
52
- static ɵcmp: i0.ɵɵComponentDeclaration<NavbarComponent, "ngx-mat-navigation-navbar", never, { "navbarRows": "navbarRows"; "minHeight": "minHeight"; "minHeightOtherElements": "minHeightOtherElements"; "minSidenavWidth": "minSidenavWidth"; }, {}, never, ["*"]>;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatNavigationNavbarComponent, never>;
57
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatNavigationNavbarComponent, "ngx-mat-navigation-navbar", never, { "navbarRows": "navbarRows"; "minHeight": "minHeight"; "minHeightOtherElements": "minHeightOtherElements"; "minSidenavWidth": "minSidenavWidth"; }, {}, never, ["*"]>;
53
58
  }
@@ -6,6 +6,6 @@ import * as i4 from "./nav-element/nav-element.module";
6
6
  import * as i5 from "@angular/material/sidenav";
7
7
  export declare class NgxMatNavigationNavbarModule {
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatNavigationNavbarModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMatNavigationNavbarModule, [typeof i1.NavbarComponent], [typeof i2.CommonModule, typeof i3.MatToolbarModule, typeof i4.NavElementModule, typeof i5.MatSidenavModule], [typeof i1.NavbarComponent]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMatNavigationNavbarModule, [typeof i1.NgxMatNavigationNavbarComponent], [typeof i2.CommonModule, typeof i3.MatToolbarModule, typeof i4.NavElementModule, typeof i5.MatSidenavModule], [typeof i1.NgxMatNavigationNavbarComponent]>;
10
10
  static ɵinj: i0.ɵɵInjectorDeclaration<NgxMatNavigationNavbarModule>;
11
11
  }
@@ -0,0 +1,55 @@
1
+ import { Component, HostListener, Input, ViewChild } from '@angular/core';
2
+ import { NavUtilities } from '../../../utilities/nav.utilities';
3
+ import * as DOMPurify from 'dompurify';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/platform-browser";
6
+ import * as i2 from "@angular/material/menu";
7
+ import * as i3 from "@angular/material/button";
8
+ import * as i4 from "../../navbar/nav-menu/nav-menu.component";
9
+ import * as i5 from "@angular/common";
10
+ import * as i6 from "@angular/router";
11
+ /**
12
+ * Displays a single Navigation Element.
13
+ */
14
+ export class FooterElementComponent {
15
+ constructor(sanitizer) {
16
+ this.sanitizer = sanitizer;
17
+ this.NavUtilities = NavUtilities;
18
+ }
19
+ ngOnInit() {
20
+ if (NavUtilities.isNavHtml(this.element)) {
21
+ this.sanitizedHtml = this.sanitizer.bypassSecurityTrustHtml(DOMPurify.sanitize(NavUtilities.asHtml(this.element).html));
22
+ }
23
+ }
24
+ ngAfterContentChecked() {
25
+ if (this.menuButton) {
26
+ this.menuWidth = this.getMenuWidth();
27
+ }
28
+ }
29
+ /**
30
+ * Updates the width of the menu to the value of its button.
31
+ */
32
+ onResize() {
33
+ if (this.menuButton) {
34
+ this.menuWidth = this.getMenuWidth();
35
+ }
36
+ }
37
+ getMenuWidth() {
38
+ return this.menuButton._elementRef.nativeElement.offsetWidth;
39
+ }
40
+ }
41
+ FooterElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FooterElementComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
42
+ FooterElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FooterElementComponent, selector: "ngx-mat-navigation-footer-element", inputs: { element: "element" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menuButton"], descendants: true }], ngImport: i0, template: "<span [ngSwitch]=\"element.type\">\r\n <!-- Title -->\r\n <b *ngSwitchCase=\"'title'\">\r\n <i *ngIf=\"NavUtilities.asTitle(element).icon\" [class]=\"NavUtilities.asTitle(element).icon\"></i>\r\n {{NavUtilities.asTitle(element).title}}\r\n </b>\r\n <!-- Title with internal link -->\r\n <a id=\"title-link\" *ngSwitchCase=\"'titleWithInternalLink'\"\r\n [routerLink]=\"\r\n NavUtilities.asAngularRoute(NavUtilities.asTitleWithInternalLink(element).link.route).path !== undefined\r\n ? NavUtilities.asAngularRoute(NavUtilities.asTitleWithInternalLink(element).link.route).path\r\n : NavUtilities.asStringRoute(NavUtilities.asTitleWithInternalLink(element).link.route)\"\r\n [target]=\"NavUtilities.asTitleWithInternalLink(element).link.openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asTitleWithInternalLink(element).link.openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <b>\r\n <i *ngIf=\"NavUtilities.asTitle(element).icon\" [class]=\"NavUtilities.asTitle(element).icon\"></i>\r\n {{NavUtilities.asTitle(element).title}}\r\n </b>\r\n </a>\r\n <!-- Title with external link -->\r\n <a class=\"title-link\" *ngSwitchCase=\"'titleWithExternalLink'\"\r\n [href]=\"NavUtilities.asTitleWithExternalLink(element).link.url\"\r\n [target]=\"NavUtilities.asTitleWithExternalLink(element).link.openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asTitleWithExternalLink(element).link.openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <h1>\r\n <i *ngIf=\"NavUtilities.asTitle(element).icon\" [class]=\"NavUtilities.asTitle(element).icon\"></i>\r\n {{NavUtilities.asTitle(element).title}}\r\n </h1>\r\n </a>\r\n <!-- Image -->\r\n <img mat-menu-item *ngSwitchCase=\"'image'\"\r\n [src]=\"NavUtilities.asImage(element).url\"\r\n >\r\n <!-- Image with internal link -->\r\n <a mat-menu-item disabled id=\"image-link\" *ngSwitchCase=\"'imageWithInternalLink'\"\r\n [routerLink]=\"\r\n NavUtilities.asAngularRoute(NavUtilities.asImageWithInternalLink(element).link.route).path !== undefined\r\n ? NavUtilities.asAngularRoute(NavUtilities.asImageWithInternalLink(element).link.route).path\r\n : NavUtilities.asStringRoute(NavUtilities.asImageWithInternalLink(element).link.route)\"\r\n [target]=\"NavUtilities.asImageWithInternalLink(element).link.openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asImageWithInternalLink(element).link.openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <img [src]=\"NavUtilities.asImageWithInternalLink(element).url\">\r\n </a>\r\n <!-- Image with external link -->\r\n <a mat-menu-item disabled id=\"image-link\" *ngSwitchCase=\"'imageWithExternalLink'\"\r\n [href]=\"NavUtilities.asImageWithExternalLink(element).link.url\"\r\n [target]=\"NavUtilities.asImageWithExternalLink(element).link.openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asImageWithExternalLink(element).link.openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <img [src]=\"NavUtilities.asImageWithExternalLink(element).url\">\r\n </a>\r\n <!-- Button -->\r\n <button *ngSwitchCase=\"'button'\"\r\n mat-raised-button\r\n (click)=\"NavUtilities.asButton(element).action()\"\r\n >\r\n <i *ngIf=\"NavUtilities.asButton(element).icon\" [class]=\"NavUtilities.asButton(element).icon\"></i>\r\n {{NavUtilities.asButton(element).name}}\r\n </button>\r\n <!-- Internal Link -->\r\n <a mat-button *ngSwitchCase=\"'internalLink'\"\r\n [routerLink]=\"\r\n NavUtilities.asAngularRoute(NavUtilities.asInternalLink(element).route).path !== undefined\r\n ? NavUtilities.asAngularRoute(NavUtilities.asInternalLink(element).route).path\r\n : NavUtilities.asStringRoute(NavUtilities.asInternalLink(element).route)\"\r\n [target]=\"NavUtilities.asInternalLink(element).openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asInternalLink(element).openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <i *ngIf=\"NavUtilities.asInternalLink(element).icon\" [class]=\"NavUtilities.asInternalLink(element).icon\"></i> \r\n {{NavUtilities.asInternalLink(element).name}}\r\n </a>\r\n <!-- External Link -->\r\n <span *ngSwitchCase=\"'externalLink'\">\r\n <a mat-button\r\n [href]=\"NavUtilities.asExternalLink(element).url\"\r\n [target]=\"NavUtilities.asExternalLink(element).openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asExternalLink(element).openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <i *ngIf=\"NavUtilities.asExternalLink(element).icon\" [class]=\"NavUtilities.asExternalLink(element).icon\"></i>\r\n {{NavUtilities.asExternalLink(element).name}}\r\n </a>\r\n </span>\r\n <!-- Text -->\r\n <span *ngSwitchCase=\"'text'\">\r\n {{NavUtilities.asText(element).text}}\r\n </span>\r\n <!-- Custom HTML -->\r\n <span *ngSwitchCase=\"'html'\" [innerHtml]=\"sanitizedHtml\">\r\n </span>\r\n <!-- Menu -->\r\n <button #menuButton *ngSwitchCase=\"'menu'\" mat-button [matMenuTriggerFor]=\"menu.menu\">\r\n <i *ngIf=\"NavUtilities.asMenu(element).icon\" [class]=\"NavUtilities.asMenu(element).icon\"></i>\r\n {{NavUtilities.asMenu(element).name}}\r\n </button>\r\n <ngx-mat-navigation-menu #menu [navMenu]=\"NavUtilities.asMenu(element)\" [menuWidth]=\"menuWidth\">\r\n </ngx-mat-navigation-menu>\r\n</span>", styles: ["#title-link{display:flex;align-items:center;justify-content:center;color:inherit;text-decoration:none}#image-link{display:flex;align-items:center;padding:0}#image-link img{max-height:100%;max-width:100%}#image-link:hover,#title-link:hover{cursor:pointer;background-color:transparent}mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]:before{display:block;position:absolute;content:\"\";top:0;left:0;bottom:0;right:0}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n"], components: [{ type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i4.NavMenuComponent, selector: "ngx-mat-navigation-menu", inputs: ["navMenu", "sidenav", "menuWidth"] }], directives: [{ type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FooterElementComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'ngx-mat-navigation-footer-element', template: "<span [ngSwitch]=\"element.type\">\r\n <!-- Title -->\r\n <b *ngSwitchCase=\"'title'\">\r\n <i *ngIf=\"NavUtilities.asTitle(element).icon\" [class]=\"NavUtilities.asTitle(element).icon\"></i>\r\n {{NavUtilities.asTitle(element).title}}\r\n </b>\r\n <!-- Title with internal link -->\r\n <a id=\"title-link\" *ngSwitchCase=\"'titleWithInternalLink'\"\r\n [routerLink]=\"\r\n NavUtilities.asAngularRoute(NavUtilities.asTitleWithInternalLink(element).link.route).path !== undefined\r\n ? NavUtilities.asAngularRoute(NavUtilities.asTitleWithInternalLink(element).link.route).path\r\n : NavUtilities.asStringRoute(NavUtilities.asTitleWithInternalLink(element).link.route)\"\r\n [target]=\"NavUtilities.asTitleWithInternalLink(element).link.openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asTitleWithInternalLink(element).link.openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <b>\r\n <i *ngIf=\"NavUtilities.asTitle(element).icon\" [class]=\"NavUtilities.asTitle(element).icon\"></i>\r\n {{NavUtilities.asTitle(element).title}}\r\n </b>\r\n </a>\r\n <!-- Title with external link -->\r\n <a class=\"title-link\" *ngSwitchCase=\"'titleWithExternalLink'\"\r\n [href]=\"NavUtilities.asTitleWithExternalLink(element).link.url\"\r\n [target]=\"NavUtilities.asTitleWithExternalLink(element).link.openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asTitleWithExternalLink(element).link.openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <h1>\r\n <i *ngIf=\"NavUtilities.asTitle(element).icon\" [class]=\"NavUtilities.asTitle(element).icon\"></i>\r\n {{NavUtilities.asTitle(element).title}}\r\n </h1>\r\n </a>\r\n <!-- Image -->\r\n <img mat-menu-item *ngSwitchCase=\"'image'\"\r\n [src]=\"NavUtilities.asImage(element).url\"\r\n >\r\n <!-- Image with internal link -->\r\n <a mat-menu-item disabled id=\"image-link\" *ngSwitchCase=\"'imageWithInternalLink'\"\r\n [routerLink]=\"\r\n NavUtilities.asAngularRoute(NavUtilities.asImageWithInternalLink(element).link.route).path !== undefined\r\n ? NavUtilities.asAngularRoute(NavUtilities.asImageWithInternalLink(element).link.route).path\r\n : NavUtilities.asStringRoute(NavUtilities.asImageWithInternalLink(element).link.route)\"\r\n [target]=\"NavUtilities.asImageWithInternalLink(element).link.openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asImageWithInternalLink(element).link.openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <img [src]=\"NavUtilities.asImageWithInternalLink(element).url\">\r\n </a>\r\n <!-- Image with external link -->\r\n <a mat-menu-item disabled id=\"image-link\" *ngSwitchCase=\"'imageWithExternalLink'\"\r\n [href]=\"NavUtilities.asImageWithExternalLink(element).link.url\"\r\n [target]=\"NavUtilities.asImageWithExternalLink(element).link.openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asImageWithExternalLink(element).link.openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <img [src]=\"NavUtilities.asImageWithExternalLink(element).url\">\r\n </a>\r\n <!-- Button -->\r\n <button *ngSwitchCase=\"'button'\"\r\n mat-raised-button\r\n (click)=\"NavUtilities.asButton(element).action()\"\r\n >\r\n <i *ngIf=\"NavUtilities.asButton(element).icon\" [class]=\"NavUtilities.asButton(element).icon\"></i>\r\n {{NavUtilities.asButton(element).name}}\r\n </button>\r\n <!-- Internal Link -->\r\n <a mat-button *ngSwitchCase=\"'internalLink'\"\r\n [routerLink]=\"\r\n NavUtilities.asAngularRoute(NavUtilities.asInternalLink(element).route).path !== undefined\r\n ? NavUtilities.asAngularRoute(NavUtilities.asInternalLink(element).route).path\r\n : NavUtilities.asStringRoute(NavUtilities.asInternalLink(element).route)\"\r\n [target]=\"NavUtilities.asInternalLink(element).openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asInternalLink(element).openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <i *ngIf=\"NavUtilities.asInternalLink(element).icon\" [class]=\"NavUtilities.asInternalLink(element).icon\"></i> \r\n {{NavUtilities.asInternalLink(element).name}}\r\n </a>\r\n <!-- External Link -->\r\n <span *ngSwitchCase=\"'externalLink'\">\r\n <a mat-button\r\n [href]=\"NavUtilities.asExternalLink(element).url\"\r\n [target]=\"NavUtilities.asExternalLink(element).openInNewTab ? '_blank' : '_self'\"\r\n [rel]=\"NavUtilities.asExternalLink(element).openInNewTab ? 'noreferrer noopener' : undefined\"\r\n >\r\n <i *ngIf=\"NavUtilities.asExternalLink(element).icon\" [class]=\"NavUtilities.asExternalLink(element).icon\"></i>\r\n {{NavUtilities.asExternalLink(element).name}}\r\n </a>\r\n </span>\r\n <!-- Text -->\r\n <span *ngSwitchCase=\"'text'\">\r\n {{NavUtilities.asText(element).text}}\r\n </span>\r\n <!-- Custom HTML -->\r\n <span *ngSwitchCase=\"'html'\" [innerHtml]=\"sanitizedHtml\">\r\n </span>\r\n <!-- Menu -->\r\n <button #menuButton *ngSwitchCase=\"'menu'\" mat-button [matMenuTriggerFor]=\"menu.menu\">\r\n <i *ngIf=\"NavUtilities.asMenu(element).icon\" [class]=\"NavUtilities.asMenu(element).icon\"></i>\r\n {{NavUtilities.asMenu(element).name}}\r\n </button>\r\n <ngx-mat-navigation-menu #menu [navMenu]=\"NavUtilities.asMenu(element)\" [menuWidth]=\"menuWidth\">\r\n </ngx-mat-navigation-menu>\r\n</span>", styles: ["#title-link{display:flex;align-items:center;justify-content:center;color:inherit;text-decoration:none}#image-link{display:flex;align-items:center;padding:0}#image-link img{max-height:100%;max-width:100%}#image-link:hover,#title-link:hover{cursor:pointer;background-color:transparent}mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]:before{display:block;position:absolute;content:\"\";top:0;left:0;bottom:0;right:0}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n"] }]
46
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { element: [{
47
+ type: Input
48
+ }], menuButton: [{
49
+ type: ViewChild,
50
+ args: ['menuButton']
51
+ }], onResize: [{
52
+ type: HostListener,
53
+ args: ['window:resize', ['$event']]
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLWVsZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLW5hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci1lbGVtZW50L2Zvb3Rlci1lbGVtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXItZWxlbWVudC9mb290ZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEUsT0FBTyxLQUFLLFNBQVMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7O0FBR3ZDOztHQUVHO0FBTUgsTUFBTSxPQUFPLHNCQUFzQjtJQWlCL0IsWUFBNkIsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQWZwRCxpQkFBWSxHQUFHLFlBQVksQ0FBQztJQWUyQixDQUFDO0lBRXhELFFBQVE7UUFDSixJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDM0g7SUFDTCxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN4QztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUVILFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRU8sWUFBWTtRQUNoQixPQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGFBQTZCLENBQUMsV0FBVyxDQUFDO0lBQ2xGLENBQUM7O29IQTNDUSxzQkFBc0I7d0dBQXRCLHNCQUFzQixpUkNmbkMsd3BMQW1HTzs0RkRwRk0sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG1DQUFtQzttR0FZN0MsT0FBTztzQkFETixLQUFLO2dCQU1OLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZO2dCQXVCdkIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudENoZWNrZWQsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL25hdi51dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBOYXZGb290ZXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Zvb3Rlci5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIERPTVB1cmlmeSBmcm9tICdkb21wdXJpZnknO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG4vKipcclxuICogRGlzcGxheXMgYSBzaW5nbGUgTmF2aWdhdGlvbiBFbGVtZW50LlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ25neC1tYXQtbmF2aWdhdGlvbi1mb290ZXItZWxlbWVudCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9vdGVyLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9vdGVyRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQsIE9uSW5pdCB7XHJcblxyXG4gICAgTmF2VXRpbGl0aWVzID0gTmF2VXRpbGl0aWVzO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGVsZW1lbnQgdG8gZGlzcGxheS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGVsZW1lbnQhOiBOYXZGb290ZXJFbGVtZW50O1xyXG5cclxuICAgIHNhbml0aXplZEh0bWw/OiBTYWZlSHRtbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdtZW51QnV0dG9uJylcclxuICAgIG1lbnVCdXR0b24hOiBNYXRCdXR0b247XHJcblxyXG4gICAgbWVudVdpZHRoITogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKE5hdlV0aWxpdGllcy5pc05hdkh0bWwodGhpcy5lbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aGlzLnNhbml0aXplZEh0bWwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChET01QdXJpZnkuc2FuaXRpemUoTmF2VXRpbGl0aWVzLmFzSHRtbCh0aGlzLmVsZW1lbnQpLmh0bWwpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm1lbnVCdXR0b24pIHtcclxuICAgICAgICAgICAgdGhpcy5tZW51V2lkdGggPSB0aGlzLmdldE1lbnVXaWR0aCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBtZW51IHRvIHRoZSB2YWx1ZSBvZiBpdHMgYnV0dG9uLlxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICAgIG9uUmVzaXplKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm1lbnVCdXR0b24pIHtcclxuICAgICAgICAgICAgdGhpcy5tZW51V2lkdGggPSB0aGlzLmdldE1lbnVXaWR0aCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE1lbnVXaWR0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5tZW51QnV0dG9uLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoO1xyXG4gICAgfVxyXG59IiwiPHNwYW4gW25nU3dpdGNoXT1cImVsZW1lbnQudHlwZVwiPlxyXG4gICAgPCEtLSBUaXRsZSAtLT5cclxuICAgIDxiICpuZ1N3aXRjaENhc2U9XCIndGl0bGUnXCI+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJOYXZVdGlsaXRpZXMuYXNUaXRsZShlbGVtZW50KS5pY29uXCIgW2NsYXNzXT1cIk5hdlV0aWxpdGllcy5hc1RpdGxlKGVsZW1lbnQpLmljb25cIj48L2k+XHJcbiAgICAgICAge3tOYXZVdGlsaXRpZXMuYXNUaXRsZShlbGVtZW50KS50aXRsZX19XHJcbiAgICA8L2I+XHJcbiAgICA8IS0tIFRpdGxlIHdpdGggaW50ZXJuYWwgbGluayAtLT5cclxuICAgIDxhIGlkPVwidGl0bGUtbGlua1wiICpuZ1N3aXRjaENhc2U9XCIndGl0bGVXaXRoSW50ZXJuYWxMaW5rJ1wiXHJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwiXHJcbiAgICAgICAgICAgIE5hdlV0aWxpdGllcy5hc0FuZ3VsYXJSb3V0ZShOYXZVdGlsaXRpZXMuYXNUaXRsZVdpdGhJbnRlcm5hbExpbmsoZWxlbWVudCkubGluay5yb3V0ZSkucGF0aCAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8gTmF2VXRpbGl0aWVzLmFzQW5ndWxhclJvdXRlKE5hdlV0aWxpdGllcy5hc1RpdGxlV2l0aEludGVybmFsTGluayhlbGVtZW50KS5saW5rLnJvdXRlKS5wYXRoXHJcbiAgICAgICAgICAgIDogTmF2VXRpbGl0aWVzLmFzU3RyaW5nUm91dGUoTmF2VXRpbGl0aWVzLmFzVGl0bGVXaXRoSW50ZXJuYWxMaW5rKGVsZW1lbnQpLmxpbmsucm91dGUpXCJcclxuICAgICAgICBbdGFyZ2V0XT1cIk5hdlV0aWxpdGllcy5hc1RpdGxlV2l0aEludGVybmFsTGluayhlbGVtZW50KS5saW5rLm9wZW5Jbk5ld1RhYiA/ICdfYmxhbmsnIDogJ19zZWxmJ1wiXHJcbiAgICAgICAgW3JlbF09XCJOYXZVdGlsaXRpZXMuYXNUaXRsZVdpdGhJbnRlcm5hbExpbmsoZWxlbWVudCkubGluay5vcGVuSW5OZXdUYWIgPyAnbm9yZWZlcnJlciBub29wZW5lcicgOiB1bmRlZmluZWRcIlxyXG4gICAgPlxyXG4gICAgICAgIDxiPlxyXG4gICAgICAgICAgICA8aSAqbmdJZj1cIk5hdlV0aWxpdGllcy5hc1RpdGxlKGVsZW1lbnQpLmljb25cIiBbY2xhc3NdPVwiTmF2VXRpbGl0aWVzLmFzVGl0bGUoZWxlbWVudCkuaWNvblwiPjwvaT5cclxuICAgICAgICAgICAge3tOYXZVdGlsaXRpZXMuYXNUaXRsZShlbGVtZW50KS50aXRsZX19XHJcbiAgICAgICAgPC9iPlxyXG4gICAgPC9hPlxyXG4gICAgPCEtLSBUaXRsZSB3aXRoIGV4dGVybmFsIGxpbmsgLS0+XHJcbiAgICA8YSBjbGFzcz1cInRpdGxlLWxpbmtcIiAqbmdTd2l0Y2hDYXNlPVwiJ3RpdGxlV2l0aEV4dGVybmFsTGluaydcIlxyXG4gICAgICAgIFtocmVmXT1cIk5hdlV0aWxpdGllcy5hc1RpdGxlV2l0aEV4dGVybmFsTGluayhlbGVtZW50KS5saW5rLnVybFwiXHJcbiAgICAgICAgW3RhcmdldF09XCJOYXZVdGlsaXRpZXMuYXNUaXRsZVdpdGhFeHRlcm5hbExpbmsoZWxlbWVudCkubGluay5vcGVuSW5OZXdUYWIgPyAnX2JsYW5rJyA6ICdfc2VsZidcIlxyXG4gICAgICAgIFtyZWxdPVwiTmF2VXRpbGl0aWVzLmFzVGl0bGVXaXRoRXh0ZXJuYWxMaW5rKGVsZW1lbnQpLmxpbmsub3BlbkluTmV3VGFiID8gJ25vcmVmZXJyZXIgbm9vcGVuZXInIDogdW5kZWZpbmVkXCJcclxuICAgID5cclxuICAgICAgICA8aDE+XHJcbiAgICAgICAgICAgIDxpICpuZ0lmPVwiTmF2VXRpbGl0aWVzLmFzVGl0bGUoZWxlbWVudCkuaWNvblwiIFtjbGFzc109XCJOYXZVdGlsaXRpZXMuYXNUaXRsZShlbGVtZW50KS5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICB7e05hdlV0aWxpdGllcy5hc1RpdGxlKGVsZW1lbnQpLnRpdGxlfX1cclxuICAgICAgICA8L2gxPlxyXG4gICAgPC9hPlxyXG4gICAgPCEtLSBJbWFnZSAtLT5cclxuICAgIDxpbWcgbWF0LW1lbnUtaXRlbSAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiXHJcbiAgICAgICAgW3NyY109XCJOYXZVdGlsaXRpZXMuYXNJbWFnZShlbGVtZW50KS51cmxcIlxyXG4gICAgPlxyXG4gICAgPCEtLSBJbWFnZSB3aXRoIGludGVybmFsIGxpbmsgLS0+XHJcbiAgICA8YSBtYXQtbWVudS1pdGVtIGRpc2FibGVkIGlkPVwiaW1hZ2UtbGlua1wiICpuZ1N3aXRjaENhc2U9XCInaW1hZ2VXaXRoSW50ZXJuYWxMaW5rJ1wiXHJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwiXHJcbiAgICAgICAgICAgIE5hdlV0aWxpdGllcy5hc0FuZ3VsYXJSb3V0ZShOYXZVdGlsaXRpZXMuYXNJbWFnZVdpdGhJbnRlcm5hbExpbmsoZWxlbWVudCkubGluay5yb3V0ZSkucGF0aCAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8gTmF2VXRpbGl0aWVzLmFzQW5ndWxhclJvdXRlKE5hdlV0aWxpdGllcy5hc0ltYWdlV2l0aEludGVybmFsTGluayhlbGVtZW50KS5saW5rLnJvdXRlKS5wYXRoXHJcbiAgICAgICAgICAgIDogTmF2VXRpbGl0aWVzLmFzU3RyaW5nUm91dGUoTmF2VXRpbGl0aWVzLmFzSW1hZ2VXaXRoSW50ZXJuYWxMaW5rKGVsZW1lbnQpLmxpbmsucm91dGUpXCJcclxuICAgICAgICBbdGFyZ2V0XT1cIk5hdlV0aWxpdGllcy5hc0ltYWdlV2l0aEludGVybmFsTGluayhlbGVtZW50KS5saW5rLm9wZW5Jbk5ld1RhYiA/ICdfYmxhbmsnIDogJ19zZWxmJ1wiXHJcbiAgICAgICAgW3JlbF09XCJOYXZVdGlsaXRpZXMuYXNJbWFnZVdpdGhJbnRlcm5hbExpbmsoZWxlbWVudCkubGluay5vcGVuSW5OZXdUYWIgPyAnbm9yZWZlcnJlciBub29wZW5lcicgOiB1bmRlZmluZWRcIlxyXG4gICAgPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJOYXZVdGlsaXRpZXMuYXNJbWFnZVdpdGhJbnRlcm5hbExpbmsoZWxlbWVudCkudXJsXCI+XHJcbiAgICA8L2E+XHJcbiAgICA8IS0tIEltYWdlIHdpdGggZXh0ZXJuYWwgbGluayAtLT5cclxuICAgIDxhIG1hdC1tZW51LWl0ZW0gZGlzYWJsZWQgaWQ9XCJpbWFnZS1saW5rXCIgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZVdpdGhFeHRlcm5hbExpbmsnXCJcclxuICAgICAgICBbaHJlZl09XCJOYXZVdGlsaXRpZXMuYXNJbWFnZVdpdGhFeHRlcm5hbExpbmsoZWxlbWVudCkubGluay51cmxcIlxyXG4gICAgICAgIFt0YXJnZXRdPVwiTmF2VXRpbGl0aWVzLmFzSW1hZ2VXaXRoRXh0ZXJuYWxMaW5rKGVsZW1lbnQpLmxpbmsub3BlbkluTmV3VGFiID8gJ19ibGFuaycgOiAnX3NlbGYnXCJcclxuICAgICAgICBbcmVsXT1cIk5hdlV0aWxpdGllcy5hc0ltYWdlV2l0aEV4dGVybmFsTGluayhlbGVtZW50KS5saW5rLm9wZW5Jbk5ld1RhYiA/ICdub3JlZmVycmVyIG5vb3BlbmVyJyA6IHVuZGVmaW5lZFwiXHJcbiAgICA+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIk5hdlV0aWxpdGllcy5hc0ltYWdlV2l0aEV4dGVybmFsTGluayhlbGVtZW50KS51cmxcIj5cclxuICAgIDwvYT5cclxuICAgIDwhLS0gQnV0dG9uIC0tPlxyXG4gICAgPGJ1dHRvbiAqbmdTd2l0Y2hDYXNlPVwiJ2J1dHRvbidcIlxyXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgICAgKGNsaWNrKT1cIk5hdlV0aWxpdGllcy5hc0J1dHRvbihlbGVtZW50KS5hY3Rpb24oKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJOYXZVdGlsaXRpZXMuYXNCdXR0b24oZWxlbWVudCkuaWNvblwiIFtjbGFzc109XCJOYXZVdGlsaXRpZXMuYXNCdXR0b24oZWxlbWVudCkuaWNvblwiPjwvaT5cclxuICAgICAgICB7e05hdlV0aWxpdGllcy5hc0J1dHRvbihlbGVtZW50KS5uYW1lfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPCEtLSBJbnRlcm5hbCBMaW5rIC0tPlxyXG4gICAgPGEgbWF0LWJ1dHRvbiAqbmdTd2l0Y2hDYXNlPVwiJ2ludGVybmFsTGluaydcIlxyXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIlxyXG4gICAgICAgICAgICBOYXZVdGlsaXRpZXMuYXNBbmd1bGFyUm91dGUoTmF2VXRpbGl0aWVzLmFzSW50ZXJuYWxMaW5rKGVsZW1lbnQpLnJvdXRlKS5wYXRoICE9PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyBOYXZVdGlsaXRpZXMuYXNBbmd1bGFyUm91dGUoTmF2VXRpbGl0aWVzLmFzSW50ZXJuYWxMaW5rKGVsZW1lbnQpLnJvdXRlKS5wYXRoXHJcbiAgICAgICAgICAgIDogTmF2VXRpbGl0aWVzLmFzU3RyaW5nUm91dGUoTmF2VXRpbGl0aWVzLmFzSW50ZXJuYWxMaW5rKGVsZW1lbnQpLnJvdXRlKVwiXHJcbiAgICAgICAgW3RhcmdldF09XCJOYXZVdGlsaXRpZXMuYXNJbnRlcm5hbExpbmsoZWxlbWVudCkub3BlbkluTmV3VGFiID8gJ19ibGFuaycgOiAnX3NlbGYnXCJcclxuICAgICAgICBbcmVsXT1cIk5hdlV0aWxpdGllcy5hc0ludGVybmFsTGluayhlbGVtZW50KS5vcGVuSW5OZXdUYWIgPyAnbm9yZWZlcnJlciBub29wZW5lcicgOiB1bmRlZmluZWRcIlxyXG4gICAgPlxyXG4gICAgICAgIDxpICpuZ0lmPVwiTmF2VXRpbGl0aWVzLmFzSW50ZXJuYWxMaW5rKGVsZW1lbnQpLmljb25cIiBbY2xhc3NdPVwiTmF2VXRpbGl0aWVzLmFzSW50ZXJuYWxMaW5rKGVsZW1lbnQpLmljb25cIj48L2k+IFxyXG4gICAgICAgIHt7TmF2VXRpbGl0aWVzLmFzSW50ZXJuYWxMaW5rKGVsZW1lbnQpLm5hbWV9fVxyXG4gICAgPC9hPlxyXG4gICAgPCEtLSBFeHRlcm5hbCBMaW5rIC0tPlxyXG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidleHRlcm5hbExpbmsnXCI+XHJcbiAgICAgICAgPGEgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICBbaHJlZl09XCJOYXZVdGlsaXRpZXMuYXNFeHRlcm5hbExpbmsoZWxlbWVudCkudXJsXCJcclxuICAgICAgICAgICAgW3RhcmdldF09XCJOYXZVdGlsaXRpZXMuYXNFeHRlcm5hbExpbmsoZWxlbWVudCkub3BlbkluTmV3VGFiID8gJ19ibGFuaycgOiAnX3NlbGYnXCJcclxuICAgICAgICAgICAgW3JlbF09XCJOYXZVdGlsaXRpZXMuYXNFeHRlcm5hbExpbmsoZWxlbWVudCkub3BlbkluTmV3VGFiID8gJ25vcmVmZXJyZXIgbm9vcGVuZXInIDogdW5kZWZpbmVkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpICpuZ0lmPVwiTmF2VXRpbGl0aWVzLmFzRXh0ZXJuYWxMaW5rKGVsZW1lbnQpLmljb25cIiBbY2xhc3NdPVwiTmF2VXRpbGl0aWVzLmFzRXh0ZXJuYWxMaW5rKGVsZW1lbnQpLmljb25cIj48L2k+XHJcbiAgICAgICAgICAgIHt7TmF2VXRpbGl0aWVzLmFzRXh0ZXJuYWxMaW5rKGVsZW1lbnQpLm5hbWV9fVxyXG4gICAgICAgIDwvYT5cclxuICAgIDwvc3Bhbj5cclxuICAgIDwhLS0gVGV4dCAtLT5cclxuICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cclxuICAgICAgICB7e05hdlV0aWxpdGllcy5hc1RleHQoZWxlbWVudCkudGV4dH19XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8IS0tIEN1c3RvbSBIVE1MIC0tPlxyXG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidodG1sJ1wiIFtpbm5lckh0bWxdPVwic2FuaXRpemVkSHRtbFwiPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPCEtLSBNZW51IC0tPlxyXG4gICAgPGJ1dHRvbiAjbWVudUJ1dHRvbiAqbmdTd2l0Y2hDYXNlPVwiJ21lbnUnXCIgbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudS5tZW51XCI+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJOYXZVdGlsaXRpZXMuYXNNZW51KGVsZW1lbnQpLmljb25cIiBbY2xhc3NdPVwiTmF2VXRpbGl0aWVzLmFzTWVudShlbGVtZW50KS5pY29uXCI+PC9pPlxyXG4gICAgICAgIHt7TmF2VXRpbGl0aWVzLmFzTWVudShlbGVtZW50KS5uYW1lfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPG5neC1tYXQtbmF2aWdhdGlvbi1tZW51ICNtZW51IFtuYXZNZW51XT1cIk5hdlV0aWxpdGllcy5hc01lbnUoZWxlbWVudClcIiBbbWVudVdpZHRoXT1cIm1lbnVXaWR0aFwiPlxyXG4gICAgPC9uZ3gtbWF0LW5hdmlnYXRpb24tbWVudT5cclxuPC9zcGFuPiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FooterElementComponent } from './footer-element.component';
4
+ import { RouterModule } from '@angular/router';
5
+ import { MatMenuModule } from '@angular/material/menu';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { NavMenuModule } from '../../navbar/nav-menu/nav-menu.module';
8
+ import * as i0 from "@angular/core";
9
+ export class FooterElementModule {
10
+ }
11
+ FooterElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FooterElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ FooterElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FooterElementModule, declarations: [FooterElementComponent], imports: [CommonModule,
13
+ RouterModule,
14
+ MatMenuModule,
15
+ MatButtonModule,
16
+ NavMenuModule], exports: [FooterElementComponent] });
17
+ FooterElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FooterElementModule, imports: [[
18
+ CommonModule,
19
+ RouterModule,
20
+ MatMenuModule,
21
+ MatButtonModule,
22
+ NavMenuModule
23
+ ]] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FooterElementModule, decorators: [{
25
+ type: NgModule,
26
+ args: [{
27
+ imports: [
28
+ CommonModule,
29
+ RouterModule,
30
+ MatMenuModule,
31
+ MatButtonModule,
32
+ NavMenuModule
33
+ ],
34
+ declarations: [FooterElementComponent],
35
+ exports: [FooterElementComponent]
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLWVsZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLW5hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci1lbGVtZW50L2Zvb3Rlci1lbGVtZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBYXRFLE1BQU0sT0FBTyxtQkFBbUI7O2lIQUFuQixtQkFBbUI7a0hBQW5CLG1CQUFtQixpQkFIYixzQkFBc0IsYUFOakMsWUFBWTtRQUNaLFlBQVk7UUFDWixhQUFhO1FBQ2IsZUFBZTtRQUNmLGFBQWEsYUFHUCxzQkFBc0I7a0hBRXZCLG1CQUFtQixZQVZuQjtZQUNMLFlBQVk7WUFDWixZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1NBQ2hCOzRGQUlRLG1CQUFtQjtrQkFYL0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixhQUFhO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9vdGVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vZm9vdGVyLWVsZW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBOYXZNZW51TW9kdWxlIH0gZnJvbSAnLi4vLi4vbmF2YmFyL25hdi1tZW51L25hdi1tZW51Lm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICAgICAgTWF0TWVudU1vZHVsZSxcclxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgTmF2TWVudU1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW0Zvb3RlckVsZW1lbnRDb21wb25lbnRdLFxyXG4gICAgZXhwb3J0czogW0Zvb3RlckVsZW1lbnRDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb290ZXJFbGVtZW50TW9kdWxlIHsgfSJdfQ==
@@ -1,17 +1,24 @@
1
1
  import { Component, Input } from '@angular/core';
2
+ import { NavUtilities } from '../../utilities/nav.utilities';
2
3
  import * as i0 from "@angular/core";
4
+ import * as i1 from "./footer-element/footer-element.component";
5
+ import * as i2 from "@angular/common";
3
6
  /**
4
7
  * Displays a footer based on the provided input data.
5
8
  */
6
- export class FooterComponent {
7
- constructor() { }
9
+ export class NgxMatNavigationFooterComponent {
10
+ constructor() {
11
+ this.NavUtilities = NavUtilities;
12
+ }
8
13
  }
9
- FooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- FooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FooterComponent, selector: "ngx-mat-navigation-footer", inputs: { minHeight: "minHeight" }, ngImport: i0, template: "<div class=\"mat-elevation-z8\" [style.minHeight.px]=\"minHeight\" style=\"background-color: #F5F5F5;\">\r\n\r\n</div>", styles: [""] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FooterComponent, decorators: [{
14
+ NgxMatNavigationFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatNavigationFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ NgxMatNavigationFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NgxMatNavigationFooterComponent, selector: "ngx-mat-navigation-footer", inputs: { minHeight: "minHeight", footerRows: "footerRows" }, ngImport: i0, template: "<footer [style.minHeight.px]=\"minHeight\">\r\n <div class=\"container\">\r\n <div class=\"footer-row row gy-2\" *ngFor=\"let row of footerRows\">\r\n <div class=\"col-md-4 col-sm-6\">\r\n <div *ngFor=\"let element of NavUtilities.getFooterElementsForRow('left', row)\">\r\n <ngx-mat-navigation-footer-element [element]=\"element\"></ngx-mat-navigation-footer-element>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 col-sm-6\">\r\n <div *ngFor=\"let element of NavUtilities.getFooterElementsForRow('center', row)\">\r\n <ngx-mat-navigation-footer-element [element]=\"element\"></ngx-mat-navigation-footer-element>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 col-sm-6\">\r\n <div *ngFor=\"let element of NavUtilities.getFooterElementsForRow('right', row)\">\r\n <ngx-mat-navigation-footer-element [element]=\"element\"></ngx-mat-navigation-footer-element>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>", styles: ["footer{box-shadow:0 0 5px -1px #0003,0 0 8px 5px #00000024,0 0 14px 8px #0000001f;padding-top:20px;padding-bottom:20px}\n"], components: [{ type: i1.FooterElementComponent, selector: "ngx-mat-navigation-footer-element", inputs: ["element"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatNavigationFooterComponent, decorators: [{
12
17
  type: Component,
13
- args: [{ selector: 'ngx-mat-navigation-footer', template: "<div class=\"mat-elevation-z8\" [style.minHeight.px]=\"minHeight\" style=\"background-color: #F5F5F5;\">\r\n\r\n</div>", styles: [""] }]
14
- }], ctorParameters: function () { return []; }, propDecorators: { minHeight: [{
18
+ args: [{ selector: 'ngx-mat-navigation-footer', template: "<footer [style.minHeight.px]=\"minHeight\">\r\n <div class=\"container\">\r\n <div class=\"footer-row row gy-2\" *ngFor=\"let row of footerRows\">\r\n <div class=\"col-md-4 col-sm-6\">\r\n <div *ngFor=\"let element of NavUtilities.getFooterElementsForRow('left', row)\">\r\n <ngx-mat-navigation-footer-element [element]=\"element\"></ngx-mat-navigation-footer-element>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 col-sm-6\">\r\n <div *ngFor=\"let element of NavUtilities.getFooterElementsForRow('center', row)\">\r\n <ngx-mat-navigation-footer-element [element]=\"element\"></ngx-mat-navigation-footer-element>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 col-sm-6\">\r\n <div *ngFor=\"let element of NavUtilities.getFooterElementsForRow('right', row)\">\r\n <ngx-mat-navigation-footer-element [element]=\"element\"></ngx-mat-navigation-footer-element>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>", styles: ["footer{box-shadow:0 0 5px -1px #0003,0 0 8px 5px #00000024,0 0 14px 8px #0000001f;padding-top:20px;padding-bottom:20px}\n"] }]
19
+ }], propDecorators: { minHeight: [{
20
+ type: Input
21
+ }], footerRows: [{
15
22
  type: Input
16
23
  }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLW5hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFakQ7O0dBRUc7QUFNSCxNQUFNLE9BQU8sZUFBZTtJQVF4QixnQkFBZ0IsQ0FBQzs7NkdBUlIsZUFBZTtpR0FBZixlQUFlLHFHQ1Y1Qix3SEFFTTs0RkRRTyxlQUFlO2tCQUwzQixTQUFTOytCQUNJLDJCQUEyQjswRUFVckMsU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIERpc3BsYXlzIGEgZm9vdGVyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBpbnB1dCBkYXRhLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ25neC1tYXQtbmF2aWdhdGlvbi1mb290ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvb3Rlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb290ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9vdGVyQ29tcG9uZW50IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtaW5pbXVtIGhlaWdodCBvZiB0aGUgZm9vdGVyLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbWluSGVpZ2h0ITogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiIFtzdHlsZS5taW5IZWlnaHQucHhdPVwibWluSGVpZ2h0XCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUY1O1wiPlxyXG5cclxuPC9kaXY+Il19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLW5hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFN0Q7O0dBRUc7QUFNSCxNQUFNLE9BQU8sK0JBQStCO0lBTDVDO1FBT0ksaUJBQVksR0FBRyxZQUFZLENBQUM7S0FhL0I7OzZIQWZZLCtCQUErQjtpSEFBL0IsK0JBQStCLCtIQ1o1QywrbkNBb0JTOzRGRFJJLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDSSwyQkFBMkI7OEJBWXJDLFNBQVM7c0JBRFIsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvb3RlclJvdyB9IGZyb20gJy4uLy4uL21vZGVscy9mb290ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBOYXZVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvbmF2LnV0aWxpdGllcyc7XHJcblxyXG4vKipcclxuICogRGlzcGxheXMgYSBmb290ZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGlucHV0IGRhdGEuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmd4LW1hdC1uYXZpZ2F0aW9uLWZvb3RlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Zvb3Rlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXROYXZpZ2F0aW9uRm9vdGVyQ29tcG9uZW50IHtcclxuXHJcbiAgICBOYXZVdGlsaXRpZXMgPSBOYXZVdGlsaXRpZXM7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGZvb3Rlci5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIG1pbkhlaWdodCE6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBmb290ZXIgcm93cyB0byBidWlsZCB0aGUgZm9vdGVyIGZyb20uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBmb290ZXJSb3dzITogRm9vdGVyUm93W107XHJcbn0iLCI8Zm9vdGVyIFtzdHlsZS5taW5IZWlnaHQucHhdPVwibWluSGVpZ2h0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1yb3cgcm93IGd5LTJcIiAqbmdGb3I9XCJsZXQgcm93IG9mIGZvb3RlclJvd3NcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIE5hdlV0aWxpdGllcy5nZXRGb290ZXJFbGVtZW50c0ZvclJvdygnbGVmdCcsIHJvdylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmd4LW1hdC1uYXZpZ2F0aW9uLWZvb3Rlci1lbGVtZW50IFtlbGVtZW50XT1cImVsZW1lbnRcIj48L25neC1tYXQtbmF2aWdhdGlvbi1mb290ZXItZWxlbWVudD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIE5hdlV0aWxpdGllcy5nZXRGb290ZXJFbGVtZW50c0ZvclJvdygnY2VudGVyJywgcm93KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtbWF0LW5hdmlnYXRpb24tZm9vdGVyLWVsZW1lbnQgW2VsZW1lbnRdPVwiZWxlbWVudFwiPjwvbmd4LW1hdC1uYXZpZ2F0aW9uLWZvb3Rlci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgTmF2VXRpbGl0aWVzLmdldEZvb3RlckVsZW1lbnRzRm9yUm93KCdyaWdodCcsIHJvdylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmd4LW1hdC1uYXZpZ2F0aW9uLWZvb3Rlci1lbGVtZW50IFtlbGVtZW50XT1cImVsZW1lbnRcIj48L25neC1tYXQtbmF2aWdhdGlvbi1mb290ZXItZWxlbWVudD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Zvb3Rlcj4iXX0=
@@ -1,22 +1,30 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { FooterComponent } from './footer.component';
3
+ import { NgxMatNavigationFooterComponent } from './footer.component';
4
+ import { MatToolbarModule } from '@angular/material/toolbar';
5
+ import { FooterElementModule } from './footer-element/footer-element.module';
4
6
  import * as i0 from "@angular/core";
5
7
  export class NgxMatNavigationFooterModule {
6
8
  }
7
9
  NgxMatNavigationFooterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatNavigationFooterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- NgxMatNavigationFooterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatNavigationFooterModule, declarations: [FooterComponent], imports: [CommonModule], exports: [FooterComponent] });
10
+ NgxMatNavigationFooterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatNavigationFooterModule, declarations: [NgxMatNavigationFooterComponent], imports: [CommonModule,
11
+ MatToolbarModule,
12
+ FooterElementModule], exports: [NgxMatNavigationFooterComponent] });
9
13
  NgxMatNavigationFooterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatNavigationFooterModule, imports: [[
10
- CommonModule
14
+ CommonModule,
15
+ MatToolbarModule,
16
+ FooterElementModule
11
17
  ]] });
12
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatNavigationFooterModule, decorators: [{
13
19
  type: NgModule,
14
20
  args: [{
15
21
  imports: [
16
- CommonModule
22
+ CommonModule,
23
+ MatToolbarModule,
24
+ FooterElementModule
17
25
  ],
18
- declarations: [FooterComponent],
19
- exports: [FooterComponent]
26
+ declarations: [NgxMatNavigationFooterComponent],
27
+ exports: [NgxMatNavigationFooterComponent]
20
28
  }]
21
29
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFTckQsTUFBTSxPQUFPLDRCQUE0Qjs7MEhBQTVCLDRCQUE0QjsySEFBNUIsNEJBQTRCLGlCQUh0QixlQUFlLGFBRjFCLFlBQVksYUFHTixlQUFlOzJIQUVoQiw0QkFBNEIsWUFONUI7WUFDTCxZQUFZO1NBQ2Y7NEZBSVEsNEJBQTRCO2tCQVB4QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3FCQUNmO29CQUNELFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vZm9vdGVyLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW0Zvb3RlckNvbXBvbmVudF0sXHJcbiAgICBleHBvcnRzOiBbRm9vdGVyQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4TWF0TmF2aWdhdGlvbkZvb3Rlck1vZHVsZSB7IH0iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVc3RSxNQUFNLE9BQU8sNEJBQTRCOzswSEFBNUIsNEJBQTRCOzJIQUE1Qiw0QkFBNEIsaUJBSHRCLCtCQUErQixhQUoxQyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLG1CQUFtQixhQUdiLCtCQUErQjsySEFFaEMsNEJBQTRCLFlBUjVCO1lBQ0wsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixtQkFBbUI7U0FDdEI7NEZBSVEsNEJBQTRCO2tCQVR4QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3FCQUN0QjtvQkFDRCxZQUFZLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDL0MsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmd4TWF0TmF2aWdhdGlvbkZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vZm9vdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcclxuaW1wb3J0IHsgRm9vdGVyRWxlbWVudE1vZHVsZSB9IGZyb20gJy4vZm9vdGVyLWVsZW1lbnQvZm9vdGVyLWVsZW1lbnQubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIE1hdFRvb2xiYXJNb2R1bGUsXHJcbiAgICAgICAgRm9vdGVyRWxlbWVudE1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW05neE1hdE5hdmlnYXRpb25Gb290ZXJDb21wb25lbnRdLFxyXG4gICAgZXhwb3J0czogW05neE1hdE5hdmlnYXRpb25Gb290ZXJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXROYXZpZ2F0aW9uRm9vdGVyTW9kdWxlIHsgfSJdfQ==