@spicainternational/ngx-sds-components 5.6.0 → 5.8.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 (68) hide show
  1. package/esm2020/public-api.mjs +3 -1
  2. package/esm2020/src/lib/date-picker/date-picker.component.mjs +70 -29
  3. package/esm2020/src/lib/date-pipes/date-format.pipe.mjs +2 -2
  4. package/esm2020/src/lib/duration-box/duration-box.component.mjs +249 -0
  5. package/esm2020/src/lib/duration-box/duration-box.module.mjs +46 -0
  6. package/esm2020/src/lib/duration-box/duration-box.types.mjs +2 -0
  7. package/esm2020/src/lib/duration-box/duration.service.mjs +69 -0
  8. package/esm2020/src/lib/duration-box/public-api.mjs +3 -0
  9. package/esm2020/src/lib/duration-box/spicainternational-ngx-sds-components-src-lib-duration-box.mjs +5 -0
  10. package/esm2020/src/lib/duration-pipe/duration-format.pipe.mjs +26 -0
  11. package/esm2020/src/lib/duration-pipe/duration-pipe.module.mjs +18 -0
  12. package/esm2020/src/lib/duration-pipe/public-api.mjs +3 -0
  13. package/esm2020/src/lib/duration-pipe/spicainternational-ngx-sds-components-src-lib-duration-pipe.mjs +5 -0
  14. package/esm2020/src/lib/modal/dialog/dialog.component.mjs +1 -1
  15. package/esm2020/src/lib/modal/modal.component.mjs +17 -5
  16. package/esm2020/src/lib/navigation/navigation-group/navigation-group.component.mjs +33 -10
  17. package/esm2020/src/lib/navigation/navigation.module.mjs +5 -3
  18. package/esm2020/src/lib/navigation/pipes/index.mjs +2 -0
  19. package/esm2020/src/lib/navigation/pipes/navigation-route-active.pipe.mjs +33 -0
  20. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +70 -28
  21. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
  22. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs +1 -1
  23. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs.map +1 -1
  24. package/fesm2015/spicainternational-ngx-sds-components-src-lib-duration-box.mjs +365 -0
  25. package/fesm2015/spicainternational-ngx-sds-components-src-lib-duration-box.mjs.map +1 -0
  26. package/fesm2015/spicainternational-ngx-sds-components-src-lib-duration-pipe.mjs +48 -0
  27. package/fesm2015/spicainternational-ngx-sds-components-src-lib-duration-pipe.mjs.map +1 -0
  28. package/fesm2015/spicainternational-ngx-sds-components-src-lib-modal.mjs +17 -5
  29. package/fesm2015/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
  30. package/fesm2015/spicainternational-ngx-sds-components-src-lib-navigation.mjs +66 -12
  31. package/fesm2015/spicainternational-ngx-sds-components-src-lib-navigation.mjs.map +1 -1
  32. package/fesm2015/spicainternational-ngx-sds-components.mjs +2 -0
  33. package/fesm2015/spicainternational-ngx-sds-components.mjs.map +1 -1
  34. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +69 -28
  35. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
  36. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs +1 -1
  37. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs.map +1 -1
  38. package/fesm2020/spicainternational-ngx-sds-components-src-lib-duration-box.mjs +364 -0
  39. package/fesm2020/spicainternational-ngx-sds-components-src-lib-duration-box.mjs.map +1 -0
  40. package/fesm2020/spicainternational-ngx-sds-components-src-lib-duration-pipe.mjs +48 -0
  41. package/fesm2020/spicainternational-ngx-sds-components-src-lib-duration-pipe.mjs.map +1 -0
  42. package/fesm2020/spicainternational-ngx-sds-components-src-lib-modal.mjs +17 -5
  43. package/fesm2020/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
  44. package/fesm2020/spicainternational-ngx-sds-components-src-lib-navigation.mjs +66 -12
  45. package/fesm2020/spicainternational-ngx-sds-components-src-lib-navigation.mjs.map +1 -1
  46. package/fesm2020/spicainternational-ngx-sds-components.mjs +2 -0
  47. package/fesm2020/spicainternational-ngx-sds-components.mjs.map +1 -1
  48. package/package.json +19 -2
  49. package/public-api.d.ts +2 -0
  50. package/src/lib/date-picker/date-picker.component.d.ts +8 -4
  51. package/src/lib/date-pipes/date-format.pipe.d.ts +1 -1
  52. package/src/lib/duration-box/duration-box.component.d.ts +136 -0
  53. package/src/lib/duration-box/duration-box.module.d.ts +10 -0
  54. package/src/lib/duration-box/duration-box.types.d.ts +1 -0
  55. package/src/lib/duration-box/duration.service.d.ts +10 -0
  56. package/src/lib/duration-box/package.json +10 -0
  57. package/src/lib/duration-box/public-api.d.ts +2 -0
  58. package/src/lib/duration-box/spicainternational-ngx-sds-components-src-lib-duration-box.d.ts +5 -0
  59. package/src/lib/duration-pipe/duration-format.pipe.d.ts +7 -0
  60. package/src/lib/duration-pipe/duration-pipe.module.d.ts +8 -0
  61. package/src/lib/duration-pipe/package.json +10 -0
  62. package/src/lib/duration-pipe/public-api.d.ts +2 -0
  63. package/src/lib/duration-pipe/spicainternational-ngx-sds-components-src-lib-duration-pipe.d.ts +5 -0
  64. package/src/lib/modal/modal.component.d.ts +3 -1
  65. package/src/lib/navigation/navigation-group/navigation-group.component.d.ts +18 -4
  66. package/src/lib/navigation/navigation.module.d.ts +5 -4
  67. package/src/lib/navigation/pipes/index.d.ts +1 -0
  68. package/src/lib/navigation/pipes/navigation-route-active.pipe.d.ts +7 -0
@@ -1,8 +1,7 @@
1
1
  import { Component, Input, Output, ViewChild, EventEmitter, ContentChild, } from '@angular/core';
2
2
  import { faXmark } from '@fortawesome/pro-regular-svg-icons';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@fortawesome/angular-fontawesome";
5
- import * as i2 from "@angular/common";
4
+ import * as i1 from "@angular/common";
6
5
  export class SdsModalComponent {
7
6
  constructor() {
8
7
  this.headerContent = { nativeElement: undefined };
@@ -11,6 +10,7 @@ export class SdsModalComponent {
11
10
  this.size = 'md';
12
11
  this.showCloseButton = true;
13
12
  this.isScrollable = true;
13
+ this.closeOnEscape = false;
14
14
  this.modalOpen = new EventEmitter();
15
15
  this.modalClose = new EventEmitter();
16
16
  this.closeClick = new EventEmitter();
@@ -23,6 +23,7 @@ export class SdsModalComponent {
23
23
  open() {
24
24
  if (this._modal != undefined) {
25
25
  this._modal.nativeElement.style.display = 'block';
26
+ this._modal.nativeElement.focus();
26
27
  this.modalOpen.emit();
27
28
  }
28
29
  }
@@ -36,12 +37,21 @@ export class SdsModalComponent {
36
37
  this.closeClick.emit();
37
38
  this.close();
38
39
  }
40
+ onKeydown(event) {
41
+ if (event.code === 'Escape' &&
42
+ this.closeOnEscape &&
43
+ this._modal != undefined &&
44
+ this._modal.nativeElement.style.display === 'block') {
45
+ // console.log(`${this.constructor.name} got event: ${event.code}`);
46
+ this.close();
47
+ }
48
+ }
39
49
  }
40
50
  SdsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- SdsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsModalComponent, selector: "sds-modal", inputs: { modalTitle: "modalTitle", showHeader: "showHeader", showFooter: "showFooter", size: "size", modalDialogId: "modalDialogId", showCloseButton: "showCloseButton", translations: "translations", isScrollable: "isScrollable" }, outputs: { modalOpen: "modalOpen", modalClose: "modalClose", closeClick: "closeClick" }, queries: [{ propertyName: "headerContent", first: true, predicate: ["header"], descendants: true }], viewQueries: [{ propertyName: "_modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<div #modal class=\"modal\">\r\n <div\r\n class=\"modal-dialog modal-dialog-centered\"\r\n [class.modal-dialog-scrollable] = \"isScrollable\"\r\n [id]=\"modalDialogId\"\r\n [ngClass]=\"'modal-' + size\"\r\n role=\"document\"\r\n >\r\n <div class=\"modal-content\">\r\n\r\n <div *ngIf=\"showHeader && headerContent\" class=\"modal-header\">\r\n <ng-content select='header'></ng-content>\r\n </div> \r\n\r\n <div *ngIf=\"showHeader && !headerContent\" class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\r\n <button \r\n *ngIf=\"showCloseButton\"\r\n type=\"button\" \r\n class=\"btn border-0\" \r\n [title]=\"translations.close ?? ''\"\r\n (click)=\"onCloseButtonClick()\">\r\n <fa-icon [icon]=\"closeIcon\"></fa-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\r\n <ng-content select=\"footer\"></ng-content>\r\n </div> \r\n </div>\r\n </div>\r\n</div>", styles: [".modal{background:rgba(0,0,0,.5)}.modal.in{opacity:1}.modal.in .modal-dialog{transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
51
+ SdsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsModalComponent, selector: "sds-modal", inputs: { modalTitle: "modalTitle", showHeader: "showHeader", showFooter: "showFooter", size: "size", modalDialogId: "modalDialogId", showCloseButton: "showCloseButton", translations: "translations", isScrollable: "isScrollable", closeOnEscape: "closeOnEscape" }, outputs: { modalOpen: "modalOpen", modalClose: "modalClose", closeClick: "closeClick" }, queries: [{ propertyName: "headerContent", first: true, predicate: ["header"], descendants: true }], viewQueries: [{ propertyName: "_modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<div #modal class=\"modal\" (keydown)=\"onKeydown($event)\" tabindex=\"1\">\r\n <div\r\n class=\"modal-dialog modal-dialog-centered\"\r\n [class.modal-dialog-scrollable] = \"isScrollable\"\r\n [id]=\"modalDialogId\"\r\n [ngClass]=\"'modal-' + size\"\r\n role=\"document\"\r\n >\r\n <div class=\"modal-content\">\r\n\r\n <div *ngIf=\"showHeader && headerContent\" class=\"modal-header\">\r\n <ng-content select='header'></ng-content>\r\n </div> \r\n\r\n <div *ngIf=\"showHeader && !headerContent\" class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\r\n <button \r\n *ngIf=\"showCloseButton\"\r\n type=\"button\" \r\n class=\"btn-close\" \r\n [title]=\"translations.close ?? ''\"\r\n (click)=\"onCloseButtonClick()\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\r\n <ng-content select=\"footer\"></ng-content>\r\n </div> \r\n </div>\r\n </div>\r\n</div>", styles: [".modal{background:rgba(0,0,0,.5)}.modal .modal-header button.btn-close:hover{background-color:#e9ecef}.modal.in{opacity:1}.modal.in .modal-dialog{transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
42
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsModalComponent, decorators: [{
43
53
  type: Component,
44
- args: [{ selector: 'sds-modal', template: "<div #modal class=\"modal\">\r\n <div\r\n class=\"modal-dialog modal-dialog-centered\"\r\n [class.modal-dialog-scrollable] = \"isScrollable\"\r\n [id]=\"modalDialogId\"\r\n [ngClass]=\"'modal-' + size\"\r\n role=\"document\"\r\n >\r\n <div class=\"modal-content\">\r\n\r\n <div *ngIf=\"showHeader && headerContent\" class=\"modal-header\">\r\n <ng-content select='header'></ng-content>\r\n </div> \r\n\r\n <div *ngIf=\"showHeader && !headerContent\" class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\r\n <button \r\n *ngIf=\"showCloseButton\"\r\n type=\"button\" \r\n class=\"btn border-0\" \r\n [title]=\"translations.close ?? ''\"\r\n (click)=\"onCloseButtonClick()\">\r\n <fa-icon [icon]=\"closeIcon\"></fa-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\r\n <ng-content select=\"footer\"></ng-content>\r\n </div> \r\n </div>\r\n </div>\r\n</div>", styles: [".modal{background:rgba(0,0,0,.5)}.modal.in{opacity:1}.modal.in .modal-dialog{transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}\n"] }]
54
+ args: [{ selector: 'sds-modal', template: "<div #modal class=\"modal\" (keydown)=\"onKeydown($event)\" tabindex=\"1\">\r\n <div\r\n class=\"modal-dialog modal-dialog-centered\"\r\n [class.modal-dialog-scrollable] = \"isScrollable\"\r\n [id]=\"modalDialogId\"\r\n [ngClass]=\"'modal-' + size\"\r\n role=\"document\"\r\n >\r\n <div class=\"modal-content\">\r\n\r\n <div *ngIf=\"showHeader && headerContent\" class=\"modal-header\">\r\n <ng-content select='header'></ng-content>\r\n </div> \r\n\r\n <div *ngIf=\"showHeader && !headerContent\" class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\r\n <button \r\n *ngIf=\"showCloseButton\"\r\n type=\"button\" \r\n class=\"btn-close\" \r\n [title]=\"translations.close ?? ''\"\r\n (click)=\"onCloseButtonClick()\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\r\n <ng-content select=\"footer\"></ng-content>\r\n </div> \r\n </div>\r\n </div>\r\n</div>", styles: [".modal{background:rgba(0,0,0,.5)}.modal .modal-header button.btn-close:hover{background-color:#e9ecef}.modal.in{opacity:1}.modal.in .modal-dialog{transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}\n"] }]
45
55
  }], ctorParameters: function () { return []; }, propDecorators: { headerContent: [{
46
56
  type: ContentChild,
47
57
  args: ['header']
@@ -61,6 +71,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
61
71
  type: Input
62
72
  }], isScrollable: [{
63
73
  type: Input
74
+ }], closeOnEscape: [{
75
+ type: Input
64
76
  }], modalOpen: [{
65
77
  type: Output
66
78
  }], modalClose: [{
@@ -71,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
71
83
  type: ViewChild,
72
84
  args: ['modal', { static: false }]
73
85
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQVE3RCxNQUFNLE9BQU8saUJBQWlCO0lBdUIxQjtRQXRCd0Isa0JBQWEsR0FBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUdqRSxlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IsU0FBSSxHQUE4QixJQUFJLENBQUM7UUFFdkMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFHaEMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFbkIsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pELGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUxRCxlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFcEUsY0FBUyxHQUFHLE9BQU8sQ0FBQztRQU12QixJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2hCLEtBQUssRUFBRSxTQUFTO1NBQ25CLENBQUE7SUFDTCxDQUFDO0lBRUQsUUFBUSxLQUFVLENBQUM7SUFFWixJQUFJO1FBQ1AsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7OzhHQWhEUSxpQkFBaUI7a0dBQWpCLGlCQUFpQix3akJDbEI5QixxMUNBbUNNOzJGRGpCTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksV0FBVzswRUFLRyxhQUFhO3NCQUFwQyxZQUFZO3VCQUFDLFFBQVE7Z0JBRU4sVUFBVTtzQkFBekIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBRVUsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVXLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1UsVUFBVTtzQkFBMUIsTUFBTTtnQkFFVSxVQUFVO3NCQUExQixNQUFNO2dCQUl3QyxNQUFNO3NCQUFwRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgQ29udGVudENoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmYVhtYXJrIH0gZnJvbSAnQGZvcnRhd2Vzb21lL3Byby1yZWd1bGFyLXN2Zy1pY29ucyc7XHJcbmltcG9ydCB7IE1vZGFsVHJhbnNsYXRpb25zIH0gZnJvbSAnLi9tb2RhbC5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc2RzLW1vZGFsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyJykgaGVhZGVyQ29udGVudDogRWxlbWVudFJlZiA9IHsgbmF0aXZlRWxlbWVudDogdW5kZWZpbmVkIH07XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIG1vZGFsVGl0bGU/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0Zvb3RlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyA9ICdtZCc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbW9kYWxEaWFsb2dJZD86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93Q2xvc2VCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB0cmFuc2xhdGlvbnM6IE1vZGFsVHJhbnNsYXRpb25zO1xyXG4gICAgQElucHV0KCkgcHVibGljIGlzU2Nyb2xsYWJsZSA9IHRydWU7XHJcblxyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBtb2RhbE9wZW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgbW9kYWxDbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2xvc2VDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBjbG9zZUljb24gPSBmYVhtYXJrO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ21vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgX21vZGFsOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG4gICAgXHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGNsb3NlOiB1bmRlZmluZWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9tb2RhbCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5fbW9kYWwubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgICAgICAgICAgdGhpcy5tb2RhbE9wZW4uZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX21vZGFsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tb2RhbC5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICAgICAgICAgIHRoaXMubW9kYWxDbG9zZS5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNsb3NlQnV0dG9uQ2xpY2soKXtcclxuICAgICAgICB0aGlzLmNsb3NlQ2xpY2suZW1pdCgpO1xyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICNtb2RhbCBjbGFzcz1cIm1vZGFsXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtZGlhbG9nLWNlbnRlcmVkXCJcclxuICAgICAgICBbY2xhc3MubW9kYWwtZGlhbG9nLXNjcm9sbGFibGVdID0gXCJpc1Njcm9sbGFibGVcIlxyXG4gICAgICAgIFtpZF09XCJtb2RhbERpYWxvZ0lkXCJcclxuICAgICAgICBbbmdDbGFzc109XCInbW9kYWwtJyArIHNpemVcIlxyXG4gICAgICAgIHJvbGU9XCJkb2N1bWVudFwiXHJcbiAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93SGVhZGVyICYmIGhlYWRlckNvbnRlbnRcIiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSdoZWFkZXInPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dIZWFkZXIgJiYgIWhlYWRlckNvbnRlbnRcIiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj57e21vZGFsVGl0bGV9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIFxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0Nsb3NlQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYm9yZGVyLTBcIiBcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidHJhbnNsYXRpb25zLmNsb3NlID8/ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbG9zZUJ1dHRvbkNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJjbG9zZUljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Rm9vdGVyXCIgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZvb3RlclwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxHQUVmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBUTdELE1BQU0sT0FBTyxpQkFBaUI7SUF3QjFCO1FBdkJ3QixrQkFBYSxHQUFlLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBR2pFLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixTQUFJLEdBQThCLElBQUksQ0FBQztRQUV2QyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUdoQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUVyQixjQUFTLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDekQsZUFBVSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTFELGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVwRSxjQUFTLEdBQUcsT0FBTyxDQUFDO1FBTXZCLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDaEIsS0FBSyxFQUFFLFNBQVM7U0FDbkIsQ0FBQTtJQUNMLENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVaLElBQUk7UUFDUCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDakQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixJQUNJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUN2QixJQUFJLENBQUUsYUFBYTtZQUNuQixJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUM7WUFDaEQsb0VBQW9FO1lBQ3BFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNwQjtJQUNMLENBQUM7OzhHQTdEUSxpQkFBaUI7a0dBQWpCLGlCQUFpQix3bEJDbkI5QixxMENBa0NNOzJGRGZPLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxXQUFXOzBFQUtHLGFBQWE7c0JBQXBDLFlBQVk7dUJBQUMsUUFBUTtnQkFFTixVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFFVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFFVyxTQUFTO3NCQUF6QixNQUFNO2dCQUNVLFVBQVU7c0JBQTFCLE1BQU07Z0JBRVUsVUFBVTtzQkFBMUIsTUFBTTtnQkFJd0MsTUFBTTtzQkFBcEQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIEhvc3RMaXN0ZW5lcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmFYbWFyayB9IGZyb20gJ0Bmb3J0YXdlc29tZS9wcm8tcmVndWxhci1zdmctaWNvbnMnO1xyXG5pbXBvcnQgeyBNb2RhbFRyYW5zbGF0aW9ucyB9IGZyb20gJy4vbW9kYWwubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Nkcy1tb2RhbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkc01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicpIGhlYWRlckNvbnRlbnQ6IEVsZW1lbnRSZWYgPSB7IG5hdGl2ZUVsZW1lbnQ6IHVuZGVmaW5lZCB9O1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBtb2RhbFRpdGxlPzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNob3dGb290ZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgPSAnbWQnO1xyXG4gICAgQElucHV0KCkgcHVibGljIG1vZGFsRGlhbG9nSWQ/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0Nsb3NlQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdHJhbnNsYXRpb25zOiBNb2RhbFRyYW5zbGF0aW9ucztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1Njcm9sbGFibGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcHVibGljIGNsb3NlT25Fc2NhcGUgPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgcHVibGljIG1vZGFsT3BlbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBtb2RhbENsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHVibGljIGNsb3NlSWNvbiA9IGZhWG1hcms7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBfbW9kYWw6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcbiAgICBcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IHtcclxuICAgICAgICAgICAgY2xvc2U6IHVuZGVmaW5lZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gICAgcHVibGljIG9wZW4oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX21vZGFsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tb2RhbC5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgICAgICB0aGlzLl9tb2RhbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIHRoaXMubW9kYWxPcGVuLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9tb2RhbCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5fbW9kYWwubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICAgICB0aGlzLm1vZGFsQ2xvc2UuZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25DbG9zZUJ1dHRvbkNsaWNrKCl7XHJcbiAgICAgICAgdGhpcy5jbG9zZUNsaWNrLmVtaXQoKTtcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KXtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnICYmXHJcbiAgICAgICAgICAgIHRoaXMuIGNsb3NlT25Fc2NhcGUgJiYgXHJcbiAgICAgICAgICAgIHRoaXMuX21vZGFsICE9IHVuZGVmaW5lZCAmJiBcclxuICAgICAgICAgICAgdGhpcy5fbW9kYWwubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID09PSAnYmxvY2snKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gZ290IGV2ZW50OiAke2V2ZW50LmNvZGV9YCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgI21vZGFsIGNsYXNzPVwibW9kYWxcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiIHRhYmluZGV4PVwiMVwiPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZFwiXHJcbiAgICAgICAgW2NsYXNzLm1vZGFsLWRpYWxvZy1zY3JvbGxhYmxlXSA9IFwiaXNTY3JvbGxhYmxlXCJcclxuICAgICAgICBbaWRdPVwibW9kYWxEaWFsb2dJZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiJ21vZGFsLScgKyBzaXplXCJcclxuICAgICAgICByb2xlPVwiZG9jdW1lbnRcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dIZWFkZXIgJiYgaGVhZGVyQ29udGVudFwiIGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9J2hlYWRlcic+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0hlYWRlciAmJiAhaGVhZGVyQ29udGVudFwiIGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPnt7bW9kYWxUaXRsZX19PC9oNT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1jbG9zZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJ0cmFuc2xhdGlvbnMuY2xvc2UgPz8gJydcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsb3NlQnV0dG9uQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0Zvb3RlclwiIGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmb290ZXJcIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -2,13 +2,22 @@ import { Component, ContentChildren, Input, QueryList, } from '@angular/core';
2
2
  import { NavigationStart } from '@angular/router';
3
3
  import { SdsNavigationRouteLinkComponent } from '../navigation-route-link/navigation-route-link.component';
4
4
  import { faAngleUp, faAngleDown } from '@fortawesome/pro-regular-svg-icons';
5
+ import { filter, Subject, takeUntil } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/router";
7
8
  import * as i2 from "@fortawesome/angular-fontawesome";
8
9
  import * as i3 from "@angular/common";
10
+ import * as i4 from "../pipes/navigation-route-active.pipe";
9
11
  export class SdsNavigationGroupComponent {
10
12
  constructor(_router) {
11
13
  this._router = _router;
14
+ /**
15
+ * List of paths allowed/expected within this module.
16
+ * These are paths that are not accessible through child navigation
17
+ * elements, but through links in other parts of the application (e.g. link
18
+ * on form)
19
+ */
20
+ this._navigationGroupNestedRoutes = [];
12
21
  this.text = '';
13
22
  this.icon = '';
14
23
  this.defaultRouterLink = '';
@@ -17,28 +26,42 @@ export class SdsNavigationGroupComponent {
17
26
  this.active = false;
18
27
  this.faAngleUpRegular = faAngleUp;
19
28
  this.faAngleDownRegular = faAngleDown;
29
+ /**
30
+ * Current app URL (e.g. ['layout-showcase', 'default'])
31
+ */
32
+ this.currentUrl = [];
33
+ this._unsubscribe = new Subject();
20
34
  }
21
- ngOnInit() {
35
+ set navigationGroupNestedRoutes(value) {
36
+ this._navigationGroupNestedRoutes = value;
37
+ }
38
+ get navigationGroupNestedRoutes() {
39
+ return this._navigationGroupNestedRoutes;
22
40
  }
23
- ngAfterContentInit() {
24
- this._router.events.subscribe((event) => {
41
+ ngOnInit() {
42
+ this._router.events.pipe(filter((event) => event instanceof NavigationStart), takeUntil(this._unsubscribe)).subscribe((event) => {
25
43
  if (event instanceof NavigationStart) {
26
- this.active =
27
- this.routerLinkComponents.find((item) => item
28
- .routerLink === event.url) != null;
44
+ const route = event.url.split('/').filter(item => item.length > 0);
45
+ this.currentUrl = route;
29
46
  }
30
47
  });
31
48
  }
49
+ ngOnDestroy() {
50
+ this._unsubscribe.next();
51
+ this._unsubscribe.complete();
52
+ }
32
53
  navigateToDefaultRouterLink() {
33
54
  this._router.navigateByUrl(this.defaultRouterLink);
34
55
  }
35
56
  }
36
57
  SdsNavigationGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsNavigationGroupComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
37
- SdsNavigationGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsNavigationGroupComponent, selector: "sds-navigation-group", inputs: { text: "text", icon: "icon", defaultRouterLink: "defaultRouterLink", reverse: "reverse" }, queries: [{ propertyName: "routerLinkComponents", predicate: SdsNavigationRouteLinkComponent }], ngImport: i0, template: "<div class=\"sds-navigation-group sds-navigation-item-container d-flex\"\r\n [class.flex-column-reverse]=\"reverse\"\r\n [class.flex-column]=\"!reverse\"\r\n [class.active] = \"active\" >\r\n <a class=\"w-100 sds-navigation-item-content\" style=\"cursor: pointer\"\r\n (click)=\"navigateToDefaultRouterLink()\">\r\n \r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"sds-navigation-icon\" >\r\n <ng-content select=\"[navigationIcon]\"></ng-content>\r\n </div>\r\n <div class=\"sds-navigation-text\">\r\n {{ text }}\r\n </div>\r\n <div class=\"text-right\">\r\n <fa-icon *ngIf=\"!reverse\" [icon]=\"faAngleDownRegular\"></fa-icon>\r\n <fa-icon *ngIf=\"reverse\" [icon]=\"faAngleUpRegular\"></fa-icon>\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"sds-navigation-group-items\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n</div>", styles: [""], components: [{ type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
58
+ SdsNavigationGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsNavigationGroupComponent, selector: "sds-navigation-group", inputs: { navigationGroupNestedRoutes: "navigationGroupNestedRoutes", text: "text", icon: "icon", defaultRouterLink: "defaultRouterLink", reverse: "reverse" }, queries: [{ propertyName: "routerLinkComponents", predicate: SdsNavigationRouteLinkComponent }], ngImport: i0, template: "<div class=\"sds-navigation-group sds-navigation-item-container d-flex\"\r\n [class.flex-column-reverse]=\"reverse\"\r\n [class.flex-column]=\"!reverse\"\r\n [class]=\"{'active': currentUrl | navigationRouteActive :navigationGroupNestedRoutes: defaultRouterLink}\">\r\n <a class=\"w-100 sds-navigation-item-content\" style=\"cursor: pointer\"\r\n (click)=\"navigateToDefaultRouterLink()\">\r\n\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"sds-navigation-icon\" >\r\n <ng-content select=\"[navigationIcon]\"></ng-content>\r\n </div>\r\n <div class=\"sds-navigation-text\">\r\n {{ text }}\r\n </div>\r\n <div class=\"text-right\">\r\n <fa-icon *ngIf=\"!reverse\" [icon]=\"faAngleDownRegular\"></fa-icon>\r\n <fa-icon *ngIf=\"reverse\" [icon]=\"faAngleUpRegular\"></fa-icon>\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"sds-navigation-group-items\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n</div>\r\n", styles: [""], components: [{ type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "navigationRouteActive": i4.NavigationRouteActivePipe } });
38
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsNavigationGroupComponent, decorators: [{
39
60
  type: Component,
40
- args: [{ selector: 'sds-navigation-group', template: "<div class=\"sds-navigation-group sds-navigation-item-container d-flex\"\r\n [class.flex-column-reverse]=\"reverse\"\r\n [class.flex-column]=\"!reverse\"\r\n [class.active] = \"active\" >\r\n <a class=\"w-100 sds-navigation-item-content\" style=\"cursor: pointer\"\r\n (click)=\"navigateToDefaultRouterLink()\">\r\n \r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"sds-navigation-icon\" >\r\n <ng-content select=\"[navigationIcon]\"></ng-content>\r\n </div>\r\n <div class=\"sds-navigation-text\">\r\n {{ text }}\r\n </div>\r\n <div class=\"text-right\">\r\n <fa-icon *ngIf=\"!reverse\" [icon]=\"faAngleDownRegular\"></fa-icon>\r\n <fa-icon *ngIf=\"reverse\" [icon]=\"faAngleUpRegular\"></fa-icon>\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"sds-navigation-group-items\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n</div>", styles: [""] }]
41
- }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { text: [{
61
+ args: [{ selector: 'sds-navigation-group', template: "<div class=\"sds-navigation-group sds-navigation-item-container d-flex\"\r\n [class.flex-column-reverse]=\"reverse\"\r\n [class.flex-column]=\"!reverse\"\r\n [class]=\"{'active': currentUrl | navigationRouteActive :navigationGroupNestedRoutes: defaultRouterLink}\">\r\n <a class=\"w-100 sds-navigation-item-content\" style=\"cursor: pointer\"\r\n (click)=\"navigateToDefaultRouterLink()\">\r\n\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"sds-navigation-icon\" >\r\n <ng-content select=\"[navigationIcon]\"></ng-content>\r\n </div>\r\n <div class=\"sds-navigation-text\">\r\n {{ text }}\r\n </div>\r\n <div class=\"text-right\">\r\n <fa-icon *ngIf=\"!reverse\" [icon]=\"faAngleDownRegular\"></fa-icon>\r\n <fa-icon *ngIf=\"reverse\" [icon]=\"faAngleUpRegular\"></fa-icon>\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"sds-navigation-group-items\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n</div>\r\n", styles: [""] }]
62
+ }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { navigationGroupNestedRoutes: [{
63
+ type: Input
64
+ }], text: [{
42
65
  type: Input
43
66
  }], icon: [{
44
67
  type: Input
@@ -50,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
50
73
  type: ContentChildren,
51
74
  args: [SdsNavigationRouteLinkComponent]
52
75
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tZ3JvdXAvbmF2aWdhdGlvbi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tZ3JvdXAvbmF2aWdhdGlvbi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBRUwsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUUzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7OztBQVM1RSxNQUFNLE9BQU8sMkJBQTJCO0lBY3BDLFlBQW9CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBYjFCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFDL0IsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUd6Qix5QkFBb0IsR0FBK0MsSUFBSSxTQUFTLEVBQW1DLENBQUM7UUFFcEgsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV4QixxQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDN0IsdUJBQWtCLEdBQUcsV0FBVyxDQUFDO0lBRUssQ0FBQztJQUV2QyxRQUFRO0lBQ1IsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BDLElBQUksS0FBSyxZQUFZLGVBQWUsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLE1BQU07b0JBQ1AsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FDMUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNKLElBQXdDO3lCQUNwQyxVQUFVLEtBQUssS0FBSyxDQUFDLEdBQUcsQ0FDcEMsSUFBSSxJQUFJLENBQUM7YUFDakI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCwyQkFBMkI7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkQsQ0FBQzs7d0hBbENRLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHFNQU1uQiwrQkFBK0IsNkJDMUJwRCxxZ0NBd0JNOzJGREpPLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDSSxzQkFBc0I7NkZBS3ZCLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHTixvQkFBb0I7c0JBRG5CLGVBQWU7dUJBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIFF1ZXJ5TGlzdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uUm91dGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1yb3V0ZS1saW5rL25hdmlnYXRpb24tcm91dGUtbGluay5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgZmFBbmdsZVVwLCBmYUFuZ2xlRG93biB9IGZyb20gJ0Bmb3J0YXdlc29tZS9wcm8tcmVndWxhci1zdmctaWNvbnMnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc2RzLW5hdmlnYXRpb24tZ3JvdXAnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbmF2aWdhdGlvbi1ncm91cC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzTmF2aWdhdGlvbkdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcclxuICAgIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xyXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gJyc7XHJcbiAgICBASW5wdXQoKSBkZWZhdWx0Um91dGVyTGluazogc3RyaW5nID0gJyc7XHJcbiAgICBASW5wdXQoKSByZXZlcnNlID0gZmFsc2U7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihTZHNOYXZpZ2F0aW9uUm91dGVMaW5rQ29tcG9uZW50KVxyXG4gICAgcm91dGVyTGlua0NvbXBvbmVudHM6IFF1ZXJ5TGlzdDxTZHNOYXZpZ2F0aW9uUm91dGVMaW5rQ29tcG9uZW50PiA9IG5ldyBRdWVyeUxpc3Q8U2RzTmF2aWdhdGlvblJvdXRlTGlua0NvbXBvbmVudD4oKTtcclxuXHJcbiAgICBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBmYUFuZ2xlVXBSZWd1bGFyID0gZmFBbmdsZVVwO1xyXG4gICAgZmFBbmdsZURvd25SZWd1bGFyID0gZmFBbmdsZURvd247XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlckxpbmtDb21wb25lbnRzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW0gYXMgU2RzTmF2aWdhdGlvblJvdXRlTGlua0NvbXBvbmVudClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm91dGVyTGluayA9PT0gZXZlbnQudXJsXHJcbiAgICAgICAgICAgICAgICAgICAgKSAhPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmF2aWdhdGVUb0RlZmF1bHRSb3V0ZXJMaW5rKCkge1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuZGVmYXVsdFJvdXRlckxpbmspO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2RzLW5hdmlnYXRpb24tZ3JvdXAgc2RzLW5hdmlnYXRpb24taXRlbS1jb250YWluZXIgZC1mbGV4XCJcclxuICAgIFtjbGFzcy5mbGV4LWNvbHVtbi1yZXZlcnNlXT1cInJldmVyc2VcIlxyXG4gICAgW2NsYXNzLmZsZXgtY29sdW1uXT1cIiFyZXZlcnNlXCJcclxuICAgIFtjbGFzcy5hY3RpdmVdID0gXCJhY3RpdmVcIiA+XHJcbiAgICA8YSBjbGFzcz1cInctMTAwIHNkcy1uYXZpZ2F0aW9uLWl0ZW0tY29udGVudFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcclxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0RlZmF1bHRSb3V0ZXJMaW5rKClcIj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLW5hdmlnYXRpb24taWNvblwiID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltuYXZpZ2F0aW9uSWNvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLW5hdmlnYXRpb24tdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAge3sgdGV4dCB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxmYS1pY29uICpuZ0lmPVwiIXJldmVyc2VcIiBbaWNvbl09XCJmYUFuZ2xlRG93blJlZ3VsYXJcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICA8ZmEtaWNvbiAqbmdJZj1cInJldmVyc2VcIiBbaWNvbl09XCJmYUFuZ2xlVXBSZWd1bGFyXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvYT5cclxuICAgIDxkaXYgY2xhc3M9XCJzZHMtbmF2aWdhdGlvbi1ncm91cC1pdGVtc1wiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+Il19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tZ3JvdXAvbmF2aWdhdGlvbi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tZ3JvdXAvbmF2aWdhdGlvbi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBR0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUUzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBT2xELE1BQU0sT0FBTywyQkFBMkI7SUFvQ3BDLFlBQW9CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBbkNuQzs7Ozs7V0FLRztRQUNLLGlDQUE0QixHQUFhLEVBQUUsQ0FBQztRQVMzQyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBQy9CLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHekIseUJBQW9CLEdBQStDLElBQUksU0FBUyxFQUFtQyxDQUFDO1FBRXBILFdBQU0sR0FBWSxLQUFLLENBQUM7UUFFeEIscUJBQWdCLEdBQUcsU0FBUyxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUVqQzs7V0FFRztRQUNILGVBQVUsR0FBYSxFQUFFLENBQUM7UUFFbEIsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVwQixDQUFDO0lBNUJ2QyxJQUNJLDJCQUEyQixDQUFDLEtBQWU7UUFDM0MsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssQ0FBQztJQUM5QyxDQUFDO0lBQ0QsSUFBSSwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUM7SUFDN0MsQ0FBQztJQXdCRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNwQixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsRUFDbkQsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDL0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNsQixJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUU7Z0JBQ2xDLE1BQU0sS0FBSyxHQUFhLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBQzVFLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2FBQzNCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsMkJBQTJCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O3dIQXpEUSwyQkFBMkI7NEdBQTNCLDJCQUEyQixpUUFxQm5CLCtCQUErQiw2QkN6Q3BELCtrQ0F5QkE7MkZETGEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNJLHNCQUFzQjs2RkFhNUIsMkJBQTJCO3NCQUQ5QixLQUFLO2dCQVFHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHTixvQkFBb0I7c0JBRG5CLGVBQWU7dUJBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFF1ZXJ5TGlzdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uUm91dGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1yb3V0ZS1saW5rL25hdmlnYXRpb24tcm91dGUtbGluay5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgZmFBbmdsZVVwLCBmYUFuZ2xlRG93biB9IGZyb20gJ0Bmb3J0YXdlc29tZS9wcm8tcmVndWxhci1zdmctaWNvbnMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Nkcy1uYXZpZ2F0aW9uLWdyb3VwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25hdmlnYXRpb24tZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkc05hdmlnYXRpb25Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIC8qKlxyXG4gICAgICogTGlzdCBvZiBwYXRocyBhbGxvd2VkL2V4cGVjdGVkIHdpdGhpbiB0aGlzIG1vZHVsZS5cclxuICAgICAqIFRoZXNlIGFyZSBwYXRocyB0aGF0IGFyZSBub3QgYWNjZXNzaWJsZSB0aHJvdWdoIGNoaWxkIG5hdmlnYXRpb25cclxuICAgICAqIGVsZW1lbnRzLCBidXQgdGhyb3VnaCBsaW5rcyBpbiBvdGhlciBwYXJ0cyBvZiB0aGUgYXBwbGljYXRpb24gKGUuZy4gbGlua1xyXG4gICAgICogb24gZm9ybSlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbmF2aWdhdGlvbkdyb3VwTmVzdGVkUm91dGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgQElucHV0KClcclxuICAgIHNldCBuYXZpZ2F0aW9uR3JvdXBOZXN0ZWRSb3V0ZXModmFsdWU6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkdyb3VwTmVzdGVkUm91dGVzID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBnZXQgbmF2aWdhdGlvbkdyb3VwTmVzdGVkUm91dGVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uR3JvdXBOZXN0ZWRSb3V0ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgdGV4dDogc3RyaW5nID0gJyc7XHJcbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmcgPSAnJztcclxuICAgIEBJbnB1dCgpIGRlZmF1bHRSb3V0ZXJMaW5rOiBzdHJpbmcgPSAnJztcclxuICAgIEBJbnB1dCgpIHJldmVyc2UgPSBmYWxzZTtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFNkc05hdmlnYXRpb25Sb3V0ZUxpbmtDb21wb25lbnQpXHJcbiAgICByb3V0ZXJMaW5rQ29tcG9uZW50czogUXVlcnlMaXN0PFNkc05hdmlnYXRpb25Sb3V0ZUxpbmtDb21wb25lbnQ+ID0gbmV3IFF1ZXJ5TGlzdDxTZHNOYXZpZ2F0aW9uUm91dGVMaW5rQ29tcG9uZW50PigpO1xyXG5cclxuICAgIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGZhQW5nbGVVcFJlZ3VsYXIgPSBmYUFuZ2xlVXA7XHJcbiAgICBmYUFuZ2xlRG93blJlZ3VsYXIgPSBmYUFuZ2xlRG93bjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgYXBwIFVSTCAoZS5nLiBbJ2xheW91dC1zaG93Y2FzZScsICdkZWZhdWx0J10pXHJcbiAgICAgKi9cclxuICAgIGN1cnJlbnRVcmw6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JvdXRlcjogUm91dGVyKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5ldmVudHMucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUpXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGU6IHN0cmluZ1tdID0gZXZlbnQudXJsLnNwbGl0KCcvJykuZmlsdGVyKGl0ZW0gPT4gaXRlbS5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VXJsID0gcm91dGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuYXZpZ2F0ZVRvRGVmYXVsdFJvdXRlckxpbmsoKSB7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5kZWZhdWx0Um91dGVyTGluayk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzZHMtbmF2aWdhdGlvbi1ncm91cCBzZHMtbmF2aWdhdGlvbi1pdGVtLWNvbnRhaW5lciBkLWZsZXhcIlxyXG4gICAgW2NsYXNzLmZsZXgtY29sdW1uLXJldmVyc2VdPVwicmV2ZXJzZVwiXHJcbiAgICBbY2xhc3MuZmxleC1jb2x1bW5dPVwiIXJldmVyc2VcIlxyXG4gICAgW2NsYXNzXT1cInsnYWN0aXZlJzogY3VycmVudFVybCB8IG5hdmlnYXRpb25Sb3V0ZUFjdGl2ZSA6bmF2aWdhdGlvbkdyb3VwTmVzdGVkUm91dGVzOiBkZWZhdWx0Um91dGVyTGlua31cIj5cclxuICAgIDxhIGNsYXNzPVwidy0xMDAgc2RzLW5hdmlnYXRpb24taXRlbS1jb250ZW50XCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIlxyXG4gICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvRGVmYXVsdFJvdXRlckxpbmsoKVwiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLW5hdmlnYXRpb24taWNvblwiID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltuYXZpZ2F0aW9uSWNvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLW5hdmlnYXRpb24tdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAge3sgdGV4dCB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxmYS1pY29uICpuZ0lmPVwiIXJldmVyc2VcIiBbaWNvbl09XCJmYUFuZ2xlRG93blJlZ3VsYXJcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICA8ZmEtaWNvbiAqbmdJZj1cInJldmVyc2VcIiBbaWNvbl09XCJmYUFuZ2xlVXBSZWd1bGFyXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvYT5cclxuICAgIDxkaXYgY2xhc3M9XCJzZHMtbmF2aWdhdGlvbi1ncm91cC1pdGVtc1wiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -8,6 +8,7 @@ import { SdsNavigationGroupComponent } from './navigation-group/navigation-group
8
8
  import { SdsNavigationRouteLinkComponent } from './navigation-route-link/navigation-route-link.component';
9
9
  import { SdsNavigationContainerComponent } from './navigation-container/navigation-container.component';
10
10
  import { SdsNavigationExternalLinkComponent } from './navigation-external-link/navigation-external-link.component';
11
+ import { NavigationRouteActivePipe } from './pipes';
11
12
  import * as i0 from "@angular/core";
12
13
  // import { NavigationGroupComponent } from './navigation-group/navigation-group.component';
13
14
  // import { NavigationRouteLinkComponent } from './navigation-route-link/navigation-route-link.component';
@@ -29,7 +30,7 @@ SdsNavigationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
29
30
  SdsNavigationSeparatorComponent,
30
31
  SdsNavigationHeaderComponent,
31
32
  SdsNavigationContainerComponent,
32
- SdsNavigationExternalLinkComponent], imports: [CommonModule,
33
+ SdsNavigationExternalLinkComponent, NavigationRouteActivePipe], imports: [CommonModule,
33
34
  RouterModule,
34
35
  FontAwesomeModule], exports: [SdsNavigationGroupComponent,
35
36
  SdsNavigationRouteLinkComponent,
@@ -46,7 +47,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
46
47
  type: NgModule,
47
48
  args: [{
48
49
  declarations: [
49
- ...components
50
+ ...components,
51
+ NavigationRouteActivePipe
50
52
  ],
51
53
  imports: [
52
54
  CommonModule,
@@ -58,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
58
60
  ]
59
61
  }]
60
62
  }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7QUFFbkgsNEZBQTRGO0FBQzVGLDBHQUEwRztBQUMxRyx3R0FBd0c7QUFDeEcsK0ZBQStGO0FBRS9GLE1BQU0sVUFBVSxHQUFHO0lBQ2YsMkJBQTJCO0lBQzNCLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsNEJBQTRCO0lBQzVCLCtCQUErQjtJQUMvQixrQ0FBa0M7Q0FDckMsQ0FBQTtBQWVELE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFyQjVCLDJCQUEyQjtRQUMzQiwrQkFBK0I7UUFDL0IsK0JBQStCO1FBQy9CLDRCQUE0QjtRQUM1QiwrQkFBK0I7UUFDL0Isa0NBQWtDLGFBUWxDLFlBQVk7UUFDWixZQUFZO1FBQ1osaUJBQWlCLGFBZmpCLDJCQUEyQjtRQUMzQiwrQkFBK0I7UUFDL0IsK0JBQStCO1FBQy9CLDRCQUE0QjtRQUM1QiwrQkFBK0I7UUFDL0Isa0NBQWtDO2lIQWdCekIsbUJBQW1CLFlBVHJCO1lBQ1AsWUFBWTtZQUNaLFlBQVk7WUFDWixpQkFBaUI7U0FDbEI7MkZBS1UsbUJBQW1CO2tCQWIvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDVixHQUFHLFVBQVU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsR0FBRyxVQUFVO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5cclxuaW1wb3J0IHsgU2RzTmF2aWdhdGlvblNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1zZXBhcmF0b3IvbmF2aWdhdGlvbi1zZXBhcmF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RzTmF2aWdhdGlvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1oZWFkZXIvbmF2aWdhdGlvbi1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RzTmF2aWdhdGlvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWdyb3VwL25hdmlnYXRpb24tZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RzTmF2aWdhdGlvblJvdXRlTGlua0NvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1yb3V0ZS1saW5rL25hdmlnYXRpb24tcm91dGUtbGluay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWNvbnRhaW5lci9uYXZpZ2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uRXh0ZXJuYWxMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWV4dGVybmFsLWxpbmsvbmF2aWdhdGlvbi1leHRlcm5hbC1saW5rLmNvbXBvbmVudCc7XHJcblxyXG4vLyBpbXBvcnQgeyBOYXZpZ2F0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tZ3JvdXAvbmF2aWdhdGlvbi1ncm91cC5jb21wb25lbnQnO1xyXG4vLyBpbXBvcnQgeyBOYXZpZ2F0aW9uUm91dGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXJvdXRlLWxpbmsvbmF2aWdhdGlvbi1yb3V0ZS1saW5rLmNvbXBvbmVudCc7XHJcbi8vIGltcG9ydCB7IE5hdmlnYXRpb25TZXBhcmF0b3JDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tc2VwYXJhdG9yL25hdmlnYXRpb24tc2VwYXJhdG9yLmNvbXBvbmVudCc7XHJcbi8vIGltcG9ydCB7IE5hdmlnYXRpb25IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24taGVhZGVyL25hdmlnYXRpb24taGVhZGVyLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBjb21wb25lbnRzID0gW1xyXG4gICAgU2RzTmF2aWdhdGlvbkdyb3VwQ29tcG9uZW50LFxyXG4gICAgU2RzTmF2aWdhdGlvblJvdXRlTGlua0NvbXBvbmVudCxcclxuICAgIFNkc05hdmlnYXRpb25TZXBhcmF0b3JDb21wb25lbnQsXHJcbiAgICBTZHNOYXZpZ2F0aW9uSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgU2RzTmF2aWdhdGlvbkNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFNkc05hdmlnYXRpb25FeHRlcm5hbExpbmtDb21wb25lbnRcclxuXVxyXG4gIFxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAuLi5jb21wb25lbnRzXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBGb250QXdlc29tZU1vZHVsZSAgICBcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIC4uLmNvbXBvbmVudHNcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZHNOYXZpZ2F0aW9uTW9kdWxlIHsgfVxyXG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNuSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRXBELDRGQUE0RjtBQUM1RiwwR0FBMEc7QUFDMUcsd0dBQXdHO0FBQ3hHLCtGQUErRjtBQUUvRixNQUFNLFVBQVUsR0FBRztJQUNmLDJCQUEyQjtJQUMzQiwrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLDRCQUE0QjtJQUM1QiwrQkFBK0I7SUFDL0Isa0NBQWtDO0NBQ3JDLENBQUE7QUFnQkQsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQXRCNUIsMkJBQTJCO1FBQzNCLCtCQUErQjtRQUMvQiwrQkFBK0I7UUFDL0IsNEJBQTRCO1FBQzVCLCtCQUErQjtRQUMvQixrQ0FBa0MsRUFNaEMseUJBQXlCLGFBRzNCLFlBQVk7UUFDWixZQUFZO1FBQ1osaUJBQWlCLGFBaEJqQiwyQkFBMkI7UUFDM0IsK0JBQStCO1FBQy9CLCtCQUErQjtRQUMvQiw0QkFBNEI7UUFDNUIsK0JBQStCO1FBQy9CLGtDQUFrQztpSEFpQnpCLG1CQUFtQixZQVRyQjtZQUNQLFlBQVk7WUFDWixZQUFZO1lBQ1osaUJBQWlCO1NBQ2xCOzJGQUtVLG1CQUFtQjtrQkFkL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1YsR0FBRyxVQUFVO3dCQUNiLHlCQUF5QjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxHQUFHLFVBQVU7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XHJcblxyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXNlcGFyYXRvci9uYXZpZ2F0aW9uLXNlcGFyYXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWhlYWRlci9uYXZpZ2F0aW9uLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tZ3JvdXAvbmF2aWdhdGlvbi1ncm91cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uUm91dGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXJvdXRlLWxpbmsvbmF2aWdhdGlvbi1yb3V0ZS1saW5rLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNkc05hdmlnYXRpb25Db250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tY29udGFpbmVyL25hdmlnYXRpb24tY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNkc05hdmlnYXRpb25FeHRlcm5hbExpbmtDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tZXh0ZXJuYWwtbGluay9uYXZpZ2F0aW9uLWV4dGVybmFsLWxpbmsuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblJvdXRlQWN0aXZlUGlwZSB9IGZyb20gJy4vcGlwZXMnO1xyXG5cclxuLy8gaW1wb3J0IHsgTmF2aWdhdGlvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWdyb3VwL25hdmlnYXRpb24tZ3JvdXAuY29tcG9uZW50JztcclxuLy8gaW1wb3J0IHsgTmF2aWdhdGlvblJvdXRlTGlua0NvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1yb3V0ZS1saW5rL25hdmlnYXRpb24tcm91dGUtbGluay5jb21wb25lbnQnO1xyXG4vLyBpbXBvcnQgeyBOYXZpZ2F0aW9uU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXNlcGFyYXRvci9uYXZpZ2F0aW9uLXNlcGFyYXRvci5jb21wb25lbnQnO1xyXG4vLyBpbXBvcnQgeyBOYXZpZ2F0aW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWhlYWRlci9uYXZpZ2F0aW9uLWhlYWRlci5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgY29tcG9uZW50cyA9IFtcclxuICAgIFNkc05hdmlnYXRpb25Hcm91cENvbXBvbmVudCxcclxuICAgIFNkc05hdmlnYXRpb25Sb3V0ZUxpbmtDb21wb25lbnQsXHJcbiAgICBTZHNOYXZpZ2F0aW9uU2VwYXJhdG9yQ29tcG9uZW50LFxyXG4gICAgU2RzTmF2aWdhdGlvbkhlYWRlckNvbXBvbmVudCxcclxuICAgIFNkc05hdmlnYXRpb25Db250YWluZXJDb21wb25lbnQsXHJcbiAgICBTZHNOYXZpZ2F0aW9uRXh0ZXJuYWxMaW5rQ29tcG9uZW50XHJcbl1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgIC4uLmNvbXBvbmVudHMsXHJcbiAgICAgIE5hdmlnYXRpb25Sb3V0ZUFjdGl2ZVBpcGVcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIEZvbnRBd2Vzb21lTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICAuLi5jb21wb25lbnRzXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzTmF2aWdhdGlvbk1vZHVsZSB7IH1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './navigation-route-active.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24tcm91dGUtYWN0aXZlLnBpcGUnXHJcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class NavigationRouteActivePipe {
4
+ transform(currentUrl, ...args) {
5
+ if (!currentUrl || currentUrl?.length === 0) {
6
+ return false;
7
+ }
8
+ const nestedRoutes = args[0];
9
+ const defaultGroupUrl = args[1].replace('/', '');
10
+ if (nestedRoutes?.length > 0) {
11
+ // Nested routes are provided. We should find out if current url is on the list of
12
+ // the provided nested routes
13
+ const lastRouteItem = currentUrl.reverse().find((item, index) => index === 0);
14
+ const routeItemIsPartOfNestedRoutes = nestedRoutes.some((routeName) => routeName === lastRouteItem);
15
+ if (routeItemIsPartOfNestedRoutes) {
16
+ return true;
17
+ }
18
+ console.warn(`Nested routes were defined in sds-navigation-group component, however route ${lastRouteItem} is
19
+ not a part of the nested routes list. Maybe you forgot to include it? `);
20
+ }
21
+ const currentUrlContainsGroupUrl = currentUrl.some(path => path === defaultGroupUrl);
22
+ return currentUrlContainsGroupUrl;
23
+ }
24
+ }
25
+ NavigationRouteActivePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: NavigationRouteActivePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
26
+ NavigationRouteActivePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: NavigationRouteActivePipe, name: "navigationRouteActive" });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: NavigationRouteActivePipe, decorators: [{
28
+ type: Pipe,
29
+ args: [{
30
+ name: 'navigationRouteActive'
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1yb3V0ZS1hY3RpdmUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vcGlwZXMvbmF2aWdhdGlvbi1yb3V0ZS1hY3RpdmUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLHlCQUF5QjtJQUVwQyxTQUFTLENBQUMsVUFBb0IsRUFBRSxHQUFHLElBQWU7UUFDaEQsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6QyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE1BQU0sWUFBWSxHQUFhLElBQUksQ0FBQyxDQUFDLENBQWEsQ0FBQztRQUNuRCxNQUFNLGVBQWUsR0FBWSxJQUFJLENBQUMsQ0FBQyxDQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyRSxJQUFJLFlBQVksRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLGtGQUFrRjtZQUNsRiw2QkFBNkI7WUFDN0IsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztZQUU5RSxNQUFNLDZCQUE2QixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxhQUFhLENBQUMsQ0FBQztZQUNwRyxJQUFJLDZCQUE2QixFQUFFO2dCQUMvQixPQUFPLElBQUksQ0FBQzthQUNmO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FDUiwrRUFBK0UsYUFBYTttRkFDckIsQ0FDMUUsQ0FBQztTQUNMO1FBRUQsTUFBTSwwQkFBMEIsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sMEJBQTBCLENBQUM7SUFDcEMsQ0FBQzs7c0hBMUJVLHlCQUF5QjtvSEFBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBSHJDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHVCQUF1QjtpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ25hdmlnYXRpb25Sb3V0ZUFjdGl2ZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25Sb3V0ZUFjdGl2ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKGN1cnJlbnRVcmw6IHN0cmluZ1tdLCAuLi5hcmdzOiB1bmtub3duW10pOiBib29sZWFuIHtcclxuICAgIGlmICghY3VycmVudFVybCB8fCBjdXJyZW50VXJsPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXN0ZWRSb3V0ZXM6IHN0cmluZ1tdID0gYXJnc1swXSBhcyBzdHJpbmdbXTtcclxuICAgIGNvbnN0IGRlZmF1bHRHcm91cFVybDogc3RyaW5nID0gKGFyZ3NbMV0gYXMgc3RyaW5nKS5yZXBsYWNlKCcvJywgJycpO1xyXG5cclxuICAgIGlmIChuZXN0ZWRSb3V0ZXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBOZXN0ZWQgcm91dGVzIGFyZSBwcm92aWRlZC4gV2Ugc2hvdWxkIGZpbmQgb3V0IGlmIGN1cnJlbnQgdXJsIGlzIG9uIHRoZSBsaXN0IG9mXHJcbiAgICAgICAgLy8gdGhlIHByb3ZpZGVkIG5lc3RlZCByb3V0ZXNcclxuICAgICAgICBjb25zdCBsYXN0Um91dGVJdGVtID0gY3VycmVudFVybC5yZXZlcnNlKCkuZmluZCgoaXRlbSwgaW5kZXgpID0+IGluZGV4ID09PSAwKTtcclxuXHJcbiAgICAgICAgY29uc3Qgcm91dGVJdGVtSXNQYXJ0T2ZOZXN0ZWRSb3V0ZXMgPSBuZXN0ZWRSb3V0ZXMuc29tZSgocm91dGVOYW1lKSA9PiByb3V0ZU5hbWUgPT09IGxhc3RSb3V0ZUl0ZW0pO1xyXG4gICAgICAgIGlmIChyb3V0ZUl0ZW1Jc1BhcnRPZk5lc3RlZFJvdXRlcykge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgICBgTmVzdGVkIHJvdXRlcyB3ZXJlIGRlZmluZWQgaW4gc2RzLW5hdmlnYXRpb24tZ3JvdXAgY29tcG9uZW50LCBob3dldmVyIHJvdXRlICR7bGFzdFJvdXRlSXRlbX0gaXNcclxuICAgICAgICAgICAgbm90IGEgcGFydCBvZiB0aGUgbmVzdGVkIHJvdXRlcyBsaXN0LiBNYXliZSB5b3UgZm9yZ290IHRvIGluY2x1ZGUgaXQ/IGBcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRVcmxDb250YWluc0dyb3VwVXJsID0gY3VycmVudFVybC5zb21lKHBhdGggPT4gcGF0aCA9PT0gZGVmYXVsdEdyb3VwVXJsKTtcclxuICAgIHJldHVybiBjdXJyZW50VXJsQ29udGFpbnNHcm91cFVybDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==