ecabs-components 1.0.48 → 1.0.50

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 (81) hide show
  1. package/esm2022/lib/base/consts/images.consts.mjs +3 -0
  2. package/esm2022/lib/base/directives/dynamic-bg-color.directive.mjs +40 -0
  3. package/esm2022/lib/base/directives/dynamic-bg-color.directive.module.mjs +22 -0
  4. package/esm2022/lib/base/models/bread-crumb.models.mjs +2 -0
  5. package/esm2022/lib/base/models/header.models.mjs +2 -0
  6. package/esm2022/lib/base/models/sidebar.models.mjs +2 -0
  7. package/esm2022/lib/base/models/timepicker.models.mjs +2 -0
  8. package/esm2022/lib/base/models/validation.models.mjs +2 -0
  9. package/esm2022/lib/base/pipes/pipes.module.mjs +22 -0
  10. package/esm2022/lib/base/pipes/truncate.pipe.mjs +19 -0
  11. package/esm2022/lib/base/services/ecabs-components.service.mjs +41 -0
  12. package/esm2022/lib/base/services/header.service.mjs +23 -0
  13. package/esm2022/lib/base/services/unsubscribe.service.mjs +25 -0
  14. package/esm2022/lib/base/utils/menu-utils.mjs +18 -0
  15. package/esm2022/lib/base/validation/validation.component.mjs +2 -2
  16. package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +5 -5
  17. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +2 -2
  18. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +3 -3
  19. package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +11 -3
  20. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +5 -5
  21. package/esm2022/lib/ecabs-header/ecabs-header.component.mjs +11 -5
  22. package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +2 -2
  23. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +3 -6
  24. package/esm2022/lib/ecabs-logo/ecabs-logo.component.mjs +24 -0
  25. package/esm2022/lib/ecabs-logo/ecabs-logo.module.mjs +24 -0
  26. package/esm2022/lib/ecabs-menu-items/ecabs-menu-items.component.mjs +126 -0
  27. package/esm2022/lib/ecabs-menu-items/ecabs-menu-items.module.mjs +37 -0
  28. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +2 -2
  29. package/esm2022/lib/ecabs-profile/ecabs-profile.component.mjs +27 -5
  30. package/esm2022/lib/ecabs-profile/ecabs-profile.module.mjs +8 -4
  31. package/esm2022/lib/ecabs-sidebar/ecabs-sidebar.component.mjs +43 -0
  32. package/esm2022/lib/ecabs-sidebar/ecabs-sidebar.module.mjs +43 -0
  33. package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +3 -3
  34. package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +1 -1
  35. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +1 -1
  36. package/esm2022/lib/ecabs-validation/ecabs-validation.component.mjs +1 -1
  37. package/esm2022/public-api.mjs +19 -3
  38. package/fesm2022/ecabs-components.mjs +481 -56
  39. package/fesm2022/ecabs-components.mjs.map +1 -1
  40. package/lib/base/consts/images.consts.d.ts +2 -0
  41. package/lib/base/directives/dynamic-bg-color.directive.d.ts +13 -0
  42. package/lib/base/directives/dynamic-bg-color.directive.module.d.ts +8 -0
  43. package/lib/{models/bread-crumb.d.ts → base/models/bread-crumb.models.d.ts} +1 -1
  44. package/lib/{models → base/models}/header.models.d.ts +2 -2
  45. package/lib/base/models/sidebar.models.d.ts +17 -0
  46. package/lib/base/pipes/pipes.module.d.ts +8 -0
  47. package/lib/base/pipes/truncate.pipe.d.ts +7 -0
  48. package/lib/base/services/unsubscribe.service.d.ts +10 -0
  49. package/lib/base/utils/menu-utils.d.ts +2 -0
  50. package/lib/base/validation/validation.component.d.ts +1 -1
  51. package/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.d.ts +3 -3
  52. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +4 -1
  53. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +1 -1
  54. package/lib/ecabs-header/ecabs-header.component.d.ts +6 -4
  55. package/lib/ecabs-language-selector/ecabs-language-selector.component.d.ts +2 -3
  56. package/lib/ecabs-logo/ecabs-logo.component.d.ts +9 -0
  57. package/lib/ecabs-logo/ecabs-logo.module.d.ts +8 -0
  58. package/lib/ecabs-menu-items/ecabs-menu-items.component.d.ts +28 -0
  59. package/lib/ecabs-menu-items/ecabs-menu-items.module.d.ts +11 -0
  60. package/lib/ecabs-profile/ecabs-profile.component.d.ts +8 -2
  61. package/lib/ecabs-profile/ecabs-profile.module.d.ts +2 -1
  62. package/lib/ecabs-sidebar/ecabs-sidebar.component.d.ts +17 -0
  63. package/lib/ecabs-sidebar/ecabs-sidebar.module.d.ts +13 -0
  64. package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +1 -1
  65. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +1 -1
  66. package/lib/ecabs-validation/ecabs-validation.component.d.ts +1 -1
  67. package/package.json +1 -1
  68. package/public-api.d.ts +18 -2
  69. package/src/assets/images/promotions.svg +3 -0
  70. package/src/assets/styles/material/overrides/_menu.scss +4 -0
  71. package/src/assets/styles/tailwind/index.scss +1 -1
  72. package/esm2022/lib/models/bread-crumb.mjs +0 -2
  73. package/esm2022/lib/models/header.models.mjs +0 -2
  74. package/esm2022/lib/models/timepicker.models.mjs +0 -2
  75. package/esm2022/lib/models/validation.models.mjs +0 -2
  76. package/esm2022/lib/services/ecabs-components.service.mjs +0 -41
  77. package/esm2022/lib/services/header.service.mjs +0 -23
  78. /package/lib/{models → base/models}/timepicker.models.d.ts +0 -0
  79. /package/lib/{models → base/models}/validation.models.d.ts +0 -0
  80. /package/lib/{services → base/services}/ecabs-components.service.d.ts +0 -0
  81. /package/lib/{services → base/services}/header.service.d.ts +0 -0
@@ -14,11 +14,8 @@ export class EcabsLanguageSelectorComponent {
14
14
  tooltip;
15
15
  languageChanged = new EventEmitter();
16
16
  selectedLang;
17
- get panelClass() {
18
- return this.showLabelTitle ? 'wide-select' : 'wide-select no-title';
19
- }
20
- ngOnChanges() {
21
- this.selectedLang = this.currentLanguage;
17
+ ngOnChanges(changes) {
18
+ this.selectedLang = this.currentLanguage || this.languages?.[0];
22
19
  }
23
20
  toggleLang() {
24
21
  return this.matchSelected() ? this.languageChanged.emit(this.matchSelected()) : undefined;
@@ -61,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
61
58
  }], languageChanged: [{
62
59
  type: Output
63
60
  }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1sYW5ndWFnZS1zZWxlY3Rvci9lY2Ficy1sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQU9sRixNQUFNLE9BQU8sOEJBQThCO0lBRXpDLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFHekIsZUFBZSxDQUFTO0lBR3hCLGNBQWMsR0FBWSxJQUFJLENBQUM7SUFHL0IsUUFBUSxDQUFVO0lBR2xCLE9BQU8sQ0FBUztJQUdoQixlQUFlLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFbkUsWUFBWSxDQUFTO0lBRXJCLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQztJQUN0RSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzlGLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBRSxDQUFFLElBQUksRUFBRyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQsWUFBWSxDQUFFLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFFLElBQUksQ0FBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxTQUFTLENBQUUsSUFBWTtRQUNyQixPQUFPLFNBQVUsSUFBSSxFQUFFLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBRSxDQUFDLFdBQVcsRUFBRyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVPLFdBQVcsQ0FBRSxJQUFZO1FBQy9CLElBQUssQ0FBQyxJQUFJLEVBQUc7WUFDWCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBRSxDQUFFLElBQUksQ0FBRSxFQUFFO1lBQzVDLElBQUksRUFBRSxVQUFVO1lBQ2hCLGVBQWUsRUFBRSxVQUFVO1NBQzVCLENBQUUsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUN6QixDQUFDO3dHQXREVSw4QkFBOEI7NEZBQTlCLDhCQUE4Qix5UkNQM0MsODNCQWlCQTs7NEZEVmEsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLHlCQUF5Qjs4QkFNbkMsU0FBUztzQkFEUixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixlQUFlO3NCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KCB7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1sYW5ndWFnZS1zZWxlY3RvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsgJy4vZWNhYnMtbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnIF0sXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRWNhYnNMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKVxyXG4gIGxhbmd1YWdlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93TGFiZWxUaXRsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZmxhZ09ubHk6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBsYW5ndWFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHNlbGVjdGVkTGFuZzogc3RyaW5nO1xyXG5cclxuICBnZXQgcGFuZWxDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0xhYmVsVGl0bGUgPyAnd2lkZS1zZWxlY3QnIDogJ3dpZGUtc2VsZWN0IG5vLXRpdGxlJztcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZExhbmcgPSB0aGlzLmN1cnJlbnRMYW5ndWFnZTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUxhbmcoKTogdm9pZCB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXRjaFNlbGVjdGVkKCkgPyB0aGlzLmxhbmd1YWdlQ2hhbmdlZC5lbWl0KCB0aGlzLm1hdGNoU2VsZWN0ZWQoKSApIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgbWF0Y2hTZWxlY3RlZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzPy5maW5kKCAoIGxhbmcgKSA9PiBsYW5nID09PSB0aGlzLnNlbGVjdGVkTGFuZyApO1xyXG4gIH1cclxuXHJcbiAgc3RhbmRhcmRMYW5nKCBjb2RlOiBzdHJpbmcgKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnN0YW5kYXJkaXNlKCBjb2RlICk7XHJcbiAgfVxyXG5cclxuICBmbGFnQ2xhc3MoIGxhbmc6IHN0cmluZyApOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBmaSBmaS0keyBsYW5nPy5zbGljZSggLTIgKS50b0xvd2VyQ2FzZSgpIH1gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGFuZGFyZGlzZSggY29kZTogc3RyaW5nICk6IHN0cmluZyB7XHJcbiAgICBpZiAoICFjb2RlICkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbGFuZyA9IG5ldyBJbnRsLkRpc3BsYXlOYW1lcyggWyBjb2RlIF0sIHtcclxuICAgICAgdHlwZTogJ2xhbmd1YWdlJyxcclxuICAgICAgbGFuZ3VhZ2VEaXNwbGF5OiAnc3RhbmRhcmQnLFxyXG4gICAgfSApO1xyXG4gICAgcmV0dXJuIGxhbmcub2YoIGNvZGUgKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkIFtuZ0NsYXNzXT1cInsnZmxhZy1vbmx5JzogZmxhZ09ubHl9XCI+XHJcbiAgPG1hdC1zZWxlY3QgY2xhc3M9XCJjYXBpdGFsaXplXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZExhbmdcIiBuYW1lPVwibGFuZ3VhZ2VcIiAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVMYW5nKClcIlxyXG4gICAgICAgICAgICAgIHBhbmVsQ2xhc3M9XCJ3aWRlLXNlbGVjdFwiPlxyXG4gICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiIWZsYWdPbmx5IHx8ICF0b29sdGlwXCI+XHJcbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKG1hdGNoU2VsZWN0ZWQoKSlcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFmbGFnT25seVwiIGNsYXNzPVwibWwtMlwiPnt7c3RhbmRhcmRMYW5nKG1hdGNoU2VsZWN0ZWQoKSl9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgPG1hdC1vcHRpb24gY2xhc3M9XCJjYXBpdGFsaXplXCIgKm5nRm9yPVwibGV0IGxhbmcgb2YgbGFuZ3VhZ2VzXCIgW3ZhbHVlXT1cImxhbmdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKGxhbmcpXCI+PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC0yXCI+e3tzdGFuZGFyZExhbmcobGFuZyl9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1zZWxlY3Q+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1sYW5ndWFnZS1zZWxlY3Rvci9lY2Ficy1sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFPL0YsTUFBTSxPQUFPLDhCQUE4QjtJQUV6QyxTQUFTLEdBQWEsRUFBRSxDQUFDO0lBR3pCLGVBQWUsQ0FBUztJQUd4QixjQUFjLEdBQVksSUFBSSxDQUFDO0lBRy9CLFFBQVEsQ0FBVTtJQUdsQixPQUFPLENBQVM7SUFHaEIsZUFBZSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRW5FLFlBQVksQ0FBUztJQUVyQixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzVGLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWTtRQUNwQixPQUFPLFNBQVMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLElBQUksRUFBRSxVQUFVO1lBQ2hCLGVBQWUsRUFBRSxVQUFVO1NBQzVCLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO3dHQWxEVSw4QkFBOEI7NEZBQTlCLDhCQUE4Qix5UkNQM0MsODNCQWlCQTs7NEZEVmEsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLHlCQUF5Qjs4QkFNbkMsU0FBUztzQkFEUixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixlQUFlO3NCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1sYW5ndWFnZS1zZWxlY3RvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKVxyXG4gIGxhbmd1YWdlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93TGFiZWxUaXRsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZmxhZ09ubHk6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBsYW5ndWFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHNlbGVjdGVkTGFuZzogc3RyaW5nO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTGFuZyA9IHRoaXMuY3VycmVudExhbmd1YWdlIHx8IHRoaXMubGFuZ3VhZ2VzPy5bMF07XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMYW5nKCk6IHZvaWQge1xyXG4gICAgcmV0dXJuIHRoaXMubWF0Y2hTZWxlY3RlZCgpID8gdGhpcy5sYW5ndWFnZUNoYW5nZWQuZW1pdCh0aGlzLm1hdGNoU2VsZWN0ZWQoKSkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBtYXRjaFNlbGVjdGVkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXM/LmZpbmQoKGxhbmcpID0+IGxhbmcgPT09IHRoaXMuc2VsZWN0ZWRMYW5nKTtcclxuICB9XHJcblxyXG4gIHN0YW5kYXJkTGFuZyhjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhbmRhcmRpc2UoY29kZSk7XHJcbiAgfVxyXG5cclxuICBmbGFnQ2xhc3MobGFuZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgZmkgZmktJHtsYW5nPy5zbGljZSgtMikudG9Mb3dlckNhc2UoKX1gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGFuZGFyZGlzZShjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFjb2RlKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYW5nID0gbmV3IEludGwuRGlzcGxheU5hbWVzKFtjb2RlXSwge1xyXG4gICAgICB0eXBlOiAnbGFuZ3VhZ2UnLFxyXG4gICAgICBsYW5ndWFnZURpc3BsYXk6ICdzdGFuZGFyZCcsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsYW5nLm9mKGNvZGUpO1xyXG4gIH1cclxufVxyXG4iLCI8bWF0LWZvcm0tZmllbGQgW25nQ2xhc3NdPVwieydmbGFnLW9ubHknOiBmbGFnT25seX1cIj5cclxuICA8bWF0LXNlbGVjdCBjbGFzcz1cImNhcGl0YWxpemVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTGFuZ1wiIG5hbWU9XCJsYW5ndWFnZVwiIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZUxhbmcoKVwiXHJcbiAgICAgICAgICAgICAgcGFuZWxDbGFzcz1cIndpZGUtc2VsZWN0XCI+XHJcbiAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwXCIgW21hdFRvb2x0aXBEaXNhYmxlZF09XCIhZmxhZ09ubHkgfHwgIXRvb2x0aXBcIj5cclxuICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJmbGFnQ2xhc3MobWF0Y2hTZWxlY3RlZCgpKVwiPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWZsYWdPbmx5XCIgY2xhc3M9XCJtbC0yXCI+e3tzdGFuZGFyZExhbmcobWF0Y2hTZWxlY3RlZCgpKX19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICA8bWF0LW9wdGlvbiBjbGFzcz1cImNhcGl0YWxpemVcIiAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5ndWFnZXNcIiBbdmFsdWVdPVwibGFuZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJmbGFnQ2xhc3MobGFuZylcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTJcIj57e3N0YW5kYXJkTGFuZyhsYW5nKX19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gIDwvbWF0LXNlbGVjdD5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuIl19
@@ -0,0 +1,24 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class EcabsLogoComponent {
5
+ collapsed = false;
6
+ logo;
7
+ subtitle;
8
+ logoAlt;
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsLogoComponent, selector: "ecabs-logo", inputs: { collapsed: "collapsed", logo: "logo", subtitle: "subtitle", logoAlt: "logoAlt" }, ngImport: i0, template: "<ul *ngIf=\"logo || subtitle\">\r\n <li *ngIf=\"logo\" class=\"w-full\">\r\n <img [src]=\"logo\" [alt]=\"logoAlt\"/>\r\n </li>\r\n\r\n <li *ngIf=\"subtitle\" [ngClass]=\"collapsed ? 'text-collapse' : 'text-sm'\" class=\"text-brand-dark mt-2\">\r\n {{ subtitle }}\r\n </li>\r\n</ul>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsLogoComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'ecabs-logo', template: "<ul *ngIf=\"logo || subtitle\">\r\n <li *ngIf=\"logo\" class=\"w-full\">\r\n <img [src]=\"logo\" [alt]=\"logoAlt\"/>\r\n </li>\r\n\r\n <li *ngIf=\"subtitle\" [ngClass]=\"collapsed ? 'text-collapse' : 'text-sm'\" class=\"text-brand-dark mt-2\">\r\n {{ subtitle }}\r\n </li>\r\n</ul>\r\n" }]
15
+ }], propDecorators: { collapsed: [{
16
+ type: Input
17
+ }], logo: [{
18
+ type: Input
19
+ }], subtitle: [{
20
+ type: Input
21
+ }], logoAlt: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtbG9nby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtbG9nby9lY2Ficy1sb2dvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1sb2dvL2VjYWJzLWxvZ28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQU8vQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFHM0IsSUFBSSxDQUFRO0lBR1osUUFBUSxDQUFTO0lBR2pCLE9BQU8sQ0FBUzt3R0FYTCxrQkFBa0I7NEZBQWxCLGtCQUFrQiw4SUNQL0IseVNBU0E7OzRGREZhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxZQUFZOzhCQU10QixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1sb2dvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtbG9nby5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtbG9nby5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0xvZ29Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgY29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbG9nbzogc3RyaW5nXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc3VidGl0bGU6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBsb2dvQWx0OiBzdHJpbmc7XHJcbn1cclxuIiwiPHVsICpuZ0lmPVwibG9nbyB8fCBzdWJ0aXRsZVwiPlxyXG4gIDxsaSAqbmdJZj1cImxvZ29cIiBjbGFzcz1cInctZnVsbFwiPlxyXG4gICAgPGltZyBbc3JjXT1cImxvZ29cIiBbYWx0XT1cImxvZ29BbHRcIi8+XHJcbiAgPC9saT5cclxuXHJcbiAgPGxpICpuZ0lmPVwic3VidGl0bGVcIiBbbmdDbGFzc109XCJjb2xsYXBzZWQgPyAndGV4dC1jb2xsYXBzZScgOiAndGV4dC1zbSdcIiBjbGFzcz1cInRleHQtYnJhbmQtZGFyayBtdC0yXCI+XHJcbiAgICB7eyBzdWJ0aXRsZSB9fVxyXG4gIDwvbGk+XHJcbjwvdWw+XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { EcabsLogoComponent } from './ecabs-logo.component';
4
+ import * as i0 from "@angular/core";
5
+ export class EcabsLogoModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsLogoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsLogoModule, declarations: [EcabsLogoComponent], imports: [CommonModule], exports: [EcabsLogoComponent] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsLogoModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsLogoModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [
14
+ EcabsLogoComponent
15
+ ],
16
+ imports: [
17
+ CommonModule
18
+ ],
19
+ exports: [
20
+ EcabsLogoComponent
21
+ ]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtbG9nby5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtbG9nby9lY2Ficy1sb2dvLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFhMUQsTUFBTSxPQUFPLGVBQWU7d0dBQWYsZUFBZTt5R0FBZixlQUFlLGlCQVR4QixrQkFBa0IsYUFHbEIsWUFBWSxhQUdaLGtCQUFrQjt5R0FHVCxlQUFlLFlBTnhCLFlBQVk7OzRGQU1ILGVBQWU7a0JBWDNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjtxQkFDbkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7RWNhYnNMb2dvQ29tcG9uZW50fSBmcm9tICcuL2VjYWJzLWxvZ28uY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBFY2Fic0xvZ29Db21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRWNhYnNMb2dvQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNMb2dvTW9kdWxlIHsgfVxyXG4iXX0=
@@ -0,0 +1,126 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { matchMenuToUrl } from "../base/utils/menu-utils";
3
+ import { NavigationStart } from "@angular/router";
4
+ import { UnsubscribeService } from "../base/services/unsubscribe.service";
5
+ import { filter, first, takeUntil } from "rxjs";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../base/services/unsubscribe.service";
8
+ import * as i2 from "@angular/material/icon";
9
+ import * as i3 from "@angular/platform-browser";
10
+ import * as i4 from "@angular/router";
11
+ import * as i5 from "@angular/common";
12
+ import * as i6 from "../base/pipes/truncate.pipe";
13
+ export class EcabsMenuItemsComponent {
14
+ unsubscribeService;
15
+ iconRegistry;
16
+ sanitizer;
17
+ router;
18
+ menuItems;
19
+ hideSidebar;
20
+ truncateTo = 20;
21
+ toggleSidebar = new EventEmitter;
22
+ constructor(unsubscribeService, iconRegistry, sanitizer, router) {
23
+ this.unsubscribeService = unsubscribeService;
24
+ this.iconRegistry = iconRegistry;
25
+ this.sanitizer = sanitizer;
26
+ this.router = router;
27
+ }
28
+ ngOnChanges(changes) {
29
+ const { menuItems } = changes;
30
+ if (!!menuItems?.currentValue?.length) {
31
+ const itemsWithResources = this.menuItems.filter((item) => !!item.iconResource);
32
+ itemsWithResources?.map(({ iconResource }) => {
33
+ const { name, path } = iconResource ?? {};
34
+ this.iconRegistry.addSvgIcon(name, this.sanitizer.bypassSecurityTrustResourceUrl(path));
35
+ });
36
+ this.matchMenuItemsOnLoad();
37
+ this.trackMenu();
38
+ }
39
+ }
40
+ ngOnDestroy() {
41
+ this.unsubscribeService.destroy();
42
+ }
43
+ matchMenuItemsOnLoad() {
44
+ this.router.events
45
+ .pipe(first(), takeUntil(this.unsubscribeService.subscription()), filter((event) => event instanceof NavigationStart))
46
+ .subscribe((event) => {
47
+ const matchedMenuItemFromRoute = matchMenuToUrl(event.url, this.menuItems);
48
+ if (matchedMenuItemFromRoute) {
49
+ if (matchedMenuItemFromRoute?.subItems?.length > 0) {
50
+ const matchedSubmenuItem = matchMenuToUrl(event.url, matchedMenuItemFromRoute.subItems);
51
+ if (matchedSubmenuItem) {
52
+ matchedSubmenuItem.expand = true;
53
+ }
54
+ }
55
+ this.menuItems.filter((item) => item.expand)?.map((item) => this.closeMenuGroup(item));
56
+ const toExpand = this.menuItems.find((item) => JSON.stringify(item) === JSON.stringify(matchedMenuItemFromRoute) && !item.expand);
57
+ toExpand.expand = this.hideSidebar ? true : !toExpand.expand;
58
+ }
59
+ });
60
+ }
61
+ trackMenu() {
62
+ this.router.events
63
+ .pipe(takeUntil(this.unsubscribeService.subscription()), filter((event) => event instanceof NavigationStart))
64
+ .subscribe((event) => {
65
+ if (!matchMenuToUrl(event.url, this.menuItems)) {
66
+ this.menuItems?.filter((item) => !!item.expand)?.map((item) => {
67
+ this.closeMenuGroup(item);
68
+ });
69
+ }
70
+ else {
71
+ this.matchActiveItem(event.url);
72
+ }
73
+ });
74
+ }
75
+ toggleItem(item, index) {
76
+ if (this.hideSidebar) {
77
+ this.toggleSidebar.emit();
78
+ setTimeout(() => {
79
+ const element = document.getElementById(`${index}`);
80
+ element.scrollIntoView({ behavior: 'smooth' });
81
+ }, 100);
82
+ }
83
+ this.menuItems
84
+ .filter((menuItem) => JSON.stringify(menuItem) !== JSON.stringify(item) && !!menuItem?.expand)
85
+ ?.map((menu) => {
86
+ this.closeMenuGroup(menu);
87
+ });
88
+ item.expand = this.hideSidebar ? true : !item.expand;
89
+ }
90
+ toggleSubItem(item, siblings) {
91
+ siblings.filter(({ url }) => url !== item.url).map((filtered) => (filtered.expand = false));
92
+ if (item.url !== this.router.url) {
93
+ item.expand = !item.expand;
94
+ }
95
+ }
96
+ closeMenuGroup(item) {
97
+ item.expand = false;
98
+ item.subItems?.map((subItem) => (subItem.expand = false));
99
+ }
100
+ matchActiveItem(url) {
101
+ const matchedMenuItemFromRoute = matchMenuToUrl(url, this.menuItems);
102
+ if (matchedMenuItemFromRoute?.subItems?.length > 0) {
103
+ const matchedSubmenuItem = matchMenuToUrl(url, matchedMenuItemFromRoute.subItems);
104
+ this.menuItems
105
+ ?.find((item) => item.url === matchedMenuItemFromRoute.url)
106
+ ?.subItems.map((subItem) => {
107
+ subItem.expand = subItem?.url === matchedSubmenuItem?.url;
108
+ });
109
+ }
110
+ }
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMenuItemsComponent, deps: [{ token: i1.UnsubscribeService }, { token: i2.MatIconRegistry }, { token: i3.DomSanitizer }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component });
112
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsMenuItemsComponent, selector: "ecabs-menu-items", inputs: { menuItems: "menuItems", hideSidebar: "hideSidebar", truncateTo: "truncateTo" }, outputs: { toggleSidebar: "toggleSidebar" }, providers: [UnsubscribeService], usesOnChanges: true, ngImport: i0, template: "<ul>\r\n <li\r\n *ngFor=\"let item of menuItems; let i = index\"\r\n class=\"mb-2 hover:text-brand-dark cursor-pointer\"\r\n [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\"\r\n >\r\n <a (click)=\"toggleItem(item, i)\" [id]=\"i\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n class=\"p-4 h-14 block\"\r\n [ngClass]=\"item.expand ? 'text-brand-dark' : 'text-gray-500'\">\r\n <mat-icon [svgIcon]=\"item.iconResource?.name || ''\"\r\n class=\"inline-block align-middle mr-4 text-inherit hover:text-inherit\">\r\n {{ item.icon }}\r\n </mat-icon>\r\n <span *ngIf=\"!hideSidebar\"\r\n class=\"inline-block align-middle\">\r\n {{ item.title }}\r\n </span>\r\n </a>\r\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"firstChildren; context: item\"></ng-container>\r\n </ng-container>\r\n </li>\r\n</ul>\r\n\r\n<ng-template #firstChildren let-subItems=\"subItems\">\r\n <ng-container *ngIf=\"!hideSidebar\">\r\n <ul class=\"ml-12\">\r\n <li *ngFor=\"let item of subItems\" [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\">\r\n <a #rla=\"routerLinkActive\"\r\n (click)=\"toggleSubItem(item, subItems)\"\r\n class=\"text-sm font-light p-4 h-12 rounded-md hover:text-brand-dark flex items-center\"\r\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\r\n >\r\n <span [title]=\"item.title\">\r\n {{ item.title | truncate: truncateTo }}\r\n </span>\r\n <div *ngIf=\"item.subItems?.length > 0\" class=\"flex-1 text-right\">\r\n <mat-icon class=\"align-middle hover:text-inherit\" [ngClass]=\"{ 'rotate-90': item.expand }\">\r\n keyboard_arrow_right\r\n </mat-icon>\r\n </div>\r\n </a>\r\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"secondChildren; context: item\"></ng-container>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #secondChildren let-subItems=\"subItems\">\r\n <ul class=\"ml-3\">\r\n <li *ngFor=\"let item of subItems\">\r\n <a #rla=\"routerLinkActive\"\r\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\r\n class=\"text-xs font-light block p-4 h-12 rounded-md hover:text-brand-dark\">\r\n <span>{{ item.title }}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n</ng-template>\r\n", styles: [":host::ng-deep li.text-brand-dark svg path{fill:currentColor}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i6.EcabsTruncatePipe, name: "truncate" }] });
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMenuItemsComponent, decorators: [{
115
+ type: Component,
116
+ args: [{ selector: 'ecabs-menu-items', providers: [UnsubscribeService], template: "<ul>\r\n <li\r\n *ngFor=\"let item of menuItems; let i = index\"\r\n class=\"mb-2 hover:text-brand-dark cursor-pointer\"\r\n [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\"\r\n >\r\n <a (click)=\"toggleItem(item, i)\" [id]=\"i\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n class=\"p-4 h-14 block\"\r\n [ngClass]=\"item.expand ? 'text-brand-dark' : 'text-gray-500'\">\r\n <mat-icon [svgIcon]=\"item.iconResource?.name || ''\"\r\n class=\"inline-block align-middle mr-4 text-inherit hover:text-inherit\">\r\n {{ item.icon }}\r\n </mat-icon>\r\n <span *ngIf=\"!hideSidebar\"\r\n class=\"inline-block align-middle\">\r\n {{ item.title }}\r\n </span>\r\n </a>\r\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"firstChildren; context: item\"></ng-container>\r\n </ng-container>\r\n </li>\r\n</ul>\r\n\r\n<ng-template #firstChildren let-subItems=\"subItems\">\r\n <ng-container *ngIf=\"!hideSidebar\">\r\n <ul class=\"ml-12\">\r\n <li *ngFor=\"let item of subItems\" [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\">\r\n <a #rla=\"routerLinkActive\"\r\n (click)=\"toggleSubItem(item, subItems)\"\r\n class=\"text-sm font-light p-4 h-12 rounded-md hover:text-brand-dark flex items-center\"\r\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\r\n >\r\n <span [title]=\"item.title\">\r\n {{ item.title | truncate: truncateTo }}\r\n </span>\r\n <div *ngIf=\"item.subItems?.length > 0\" class=\"flex-1 text-right\">\r\n <mat-icon class=\"align-middle hover:text-inherit\" [ngClass]=\"{ 'rotate-90': item.expand }\">\r\n keyboard_arrow_right\r\n </mat-icon>\r\n </div>\r\n </a>\r\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"secondChildren; context: item\"></ng-container>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #secondChildren let-subItems=\"subItems\">\r\n <ul class=\"ml-3\">\r\n <li *ngFor=\"let item of subItems\">\r\n <a #rla=\"routerLinkActive\"\r\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\r\n class=\"text-xs font-light block p-4 h-12 rounded-md hover:text-brand-dark\">\r\n <span>{{ item.title }}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n</ng-template>\r\n", styles: [":host::ng-deep li.text-brand-dark svg path{fill:currentColor}\n"] }]
117
+ }], ctorParameters: function () { return [{ type: i1.UnsubscribeService }, { type: i2.MatIconRegistry }, { type: i3.DomSanitizer }, { type: i4.Router }]; }, propDecorators: { menuItems: [{
118
+ type: Input
119
+ }], hideSidebar: [{
120
+ type: Input
121
+ }], truncateTo: [{
122
+ type: Input
123
+ }], toggleSidebar: [{
124
+ type: Output
125
+ }] } });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtbWVudS1pdGVtcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtbWVudS1pdGVtcy9lY2Ficy1tZW51LWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1tZW51LWl0ZW1zL2VjYWJzLW1lbnUtaXRlbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF3QixNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsZUFBZSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVE5QyxNQUFNLE9BQU8sdUJBQXVCO0lBY2Y7SUFDQTtJQUNBO0lBQ0E7SUFmbkIsU0FBUyxDQUFvQjtJQUc3QixXQUFXLENBQVU7SUFHckIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUdoQixhQUFhLEdBQUcsSUFBSSxZQUFxQixDQUFDO0lBRTFDLFlBQ21CLGtCQUFzQyxFQUN0QyxZQUE2QixFQUM3QixTQUF1QixFQUN2QixNQUFjO1FBSGQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRWpDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FB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Q0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssd0JBQXdCLENBQUMsR0FBRyxDQUFDO2dCQUMzRCxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDM0IsT0FBTyxDQUFDLE1BQU0sR0FBRyxPQUFPLEVBQUUsR0FBRyxLQUFLLGtCQUFrQixFQUFFLEdBQUcsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzt3R0FwSVUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsa0xBRnZCLENBQUMsa0JBQWtCLENBQUMsK0NDYmpDLHE1RkFrRUE7OzRGRG5EYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usa0JBQWtCLGFBR2pCLENBQUMsa0JBQWtCLENBQUM7dUxBSS9CLFNBQVM7c0JBRFIsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTaWRlYmFyTWVudUl0ZW19IGZyb20gXCIuLi9iYXNlL21vZGVscy9zaWRlYmFyLm1vZGVsc1wiO1xyXG5pbXBvcnQge21hdGNoTWVudVRvVXJsfSBmcm9tIFwiLi4vYmFzZS91dGlscy9tZW51LXV0aWxzXCI7XHJcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5pbXBvcnQge05hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7TWF0SWNvblJlZ2lzdHJ5fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQge1Vuc3Vic2NyaWJlU2VydmljZX0gZnJvbSBcIi4uL2Jhc2Uvc2VydmljZXMvdW5zdWJzY3JpYmUuc2VydmljZVwiO1xyXG5pbXBvcnQge2ZpbHRlciwgZmlyc3QsIHRha2VVbnRpbH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtbWVudS1pdGVtcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLW1lbnUtaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLW1lbnUtaXRlbXMuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtVbnN1YnNjcmliZVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic01lbnVJdGVtc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIG1lbnVJdGVtczogU2lkZWJhck1lbnVJdGVtW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGlkZVNpZGViYXI6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdHJ1bmNhdGVUbyA9IDIwO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB0b2dnbGVTaWRlYmFyID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlU2VydmljZTogVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3Qge21lbnVJdGVtc30gPSBjaGFuZ2VzO1xyXG5cclxuICAgIGlmICghIW1lbnVJdGVtcz8uY3VycmVudFZhbHVlPy5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgaXRlbXNXaXRoUmVzb3VyY2VzID0gdGhpcy5tZW51SXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0uaWNvblJlc291cmNlKTtcclxuXHJcbiAgICAgIGl0ZW1zV2l0aFJlc291cmNlcz8ubWFwKCh7aWNvblJlc291cmNlfSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHtuYW1lLCBwYXRofSA9IGljb25SZXNvdXJjZSA/PyB7fTtcclxuXHJcbiAgICAgICAgdGhpcy5pY29uUmVnaXN0cnkuYWRkU3ZnSWNvbihuYW1lLCB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwocGF0aCkpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMubWF0Y2hNZW51SXRlbXNPbkxvYWQoKTtcclxuICAgICAgdGhpcy50cmFja01lbnUoKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIG1hdGNoTWVudUl0ZW1zT25Mb2FkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpcnN0KCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLnN1YnNjcmlwdGlvbigpKSxcclxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG1hdGNoZWRNZW51SXRlbUZyb21Sb3V0ZTogU2lkZWJhck1lbnVJdGVtID0gbWF0Y2hNZW51VG9VcmwoZXZlbnQudXJsLCB0aGlzLm1lbnVJdGVtcyk7XHJcblxyXG4gICAgICAgIGlmIChtYXRjaGVkTWVudUl0ZW1Gcm9tUm91dGUpIHtcclxuICAgICAgICAgIGlmIChtYXRjaGVkTWVudUl0ZW1Gcm9tUm91dGU/LnN1Ykl0ZW1zPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRTdWJtZW51SXRlbSA9IG1hdGNoTWVudVRvVXJsKGV2ZW50LnVybCwgbWF0Y2hlZE1lbnVJdGVtRnJvbVJvdXRlLnN1Ykl0ZW1zKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChtYXRjaGVkU3VibWVudUl0ZW0pIHtcclxuICAgICAgICAgICAgICBtYXRjaGVkU3VibWVudUl0ZW0uZXhwYW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMubWVudUl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5leHBhbmQpPy5tYXAoKGl0ZW0pID0+IHRoaXMuY2xvc2VNZW51R3JvdXAoaXRlbSkpO1xyXG4gICAgICAgICAgY29uc3QgdG9FeHBhbmQgPSB0aGlzLm1lbnVJdGVtcy5maW5kKChpdGVtKSA9PiBKU09OLnN0cmluZ2lmeShpdGVtKSA9PT0gSlNPTi5zdHJpbmdpZnkobWF0Y2hlZE1lbnVJdGVtRnJvbVJvdXRlKSAmJiAhaXRlbS5leHBhbmQpO1xyXG4gICAgICAgICAgdG9FeHBhbmQuZXhwYW5kID0gdGhpcy5oaWRlU2lkZWJhciA/IHRydWUgOiAhdG9FeHBhbmQuZXhwYW5kO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgdHJhY2tNZW51KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlU2VydmljZS5zdWJzY3JpcHRpb24oKSksXHJcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCFtYXRjaE1lbnVUb1VybChldmVudC51cmwsIHRoaXMubWVudUl0ZW1zKSkge1xyXG4gICAgICAgICAgdGhpcy5tZW51SXRlbXM/LmZpbHRlcigoaXRlbSkgPT4gISFpdGVtLmV4cGFuZCk/Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlTWVudUdyb3VwKGl0ZW0pXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tYXRjaEFjdGl2ZUl0ZW0oZXZlbnQudXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlSXRlbShpdGVtOiBTaWRlYmFyTWVudUl0ZW0sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhpZGVTaWRlYmFyKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlU2lkZWJhci5lbWl0KCk7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7aW5kZXh9YCk7XHJcbiAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6ICdzbW9vdGgnfSk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5tZW51SXRlbXNcclxuICAgICAgLmZpbHRlcigobWVudUl0ZW0pID0+IEpTT04uc3RyaW5naWZ5KG1lbnVJdGVtKSAhPT0gSlNPTi5zdHJpbmdpZnkoaXRlbSkgJiYgISFtZW51SXRlbT8uZXhwYW5kKVxyXG4gICAgICA/Lm1hcCgobWVudSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xvc2VNZW51R3JvdXAobWVudSlcclxuICAgICAgfSk7XHJcblxyXG4gICAgaXRlbS5leHBhbmQgPSB0aGlzLmhpZGVTaWRlYmFyID8gdHJ1ZSA6ICFpdGVtLmV4cGFuZDtcclxuICB9XHJcblxyXG4gIHRvZ2dsZVN1Ykl0ZW0oaXRlbTogU2lkZWJhck1lbnVJdGVtLCBzaWJsaW5nczogU2lkZWJhck1lbnVJdGVtW10pOiB2b2lkIHtcclxuICAgIHNpYmxpbmdzLmZpbHRlcigoe3VybH0pID0+IHVybCAhPT0gaXRlbS51cmwpLm1hcCgoZmlsdGVyZWQpID0+IChmaWx0ZXJlZC5leHBhbmQgPSBmYWxzZSkpO1xyXG5cclxuICAgIGlmIChpdGVtLnVybCAhPT0gdGhpcy5yb3V0ZXIudXJsKSB7XHJcbiAgICAgIGl0ZW0uZXhwYW5kID0gIWl0ZW0uZXhwYW5kO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VNZW51R3JvdXAoaXRlbTogU2lkZWJhck1lbnVJdGVtKTogdm9pZCB7XHJcbiAgICBpdGVtLmV4cGFuZCA9IGZhbHNlO1xyXG4gICAgaXRlbS5zdWJJdGVtcz8ubWFwKChzdWJJdGVtKSA9PiAoc3ViSXRlbS5leHBhbmQgPSBmYWxzZSkpO1xyXG4gIH1cclxuXHJcbiAgbWF0Y2hBY3RpdmVJdGVtKHVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBtYXRjaGVkTWVudUl0ZW1Gcm9tUm91dGU6IFNpZGViYXJNZW51SXRlbSA9IG1hdGNoTWVudVRvVXJsKHVybCwgdGhpcy5tZW51SXRlbXMpO1xyXG5cclxuICAgIGlmIChtYXRjaGVkTWVudUl0ZW1Gcm9tUm91dGU/LnN1Ykl0ZW1zPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IG1hdGNoZWRTdWJtZW51SXRlbTogU2lkZWJhck1lbnVJdGVtID0gbWF0Y2hNZW51VG9VcmwodXJsLCBtYXRjaGVkTWVudUl0ZW1Gcm9tUm91dGUuc3ViSXRlbXMpO1xyXG5cclxuICAgICAgdGhpcy5tZW51SXRlbXNcclxuICAgICAgICA/LmZpbmQoKGl0ZW0pID0+IGl0ZW0udXJsID09PSBtYXRjaGVkTWVudUl0ZW1Gcm9tUm91dGUudXJsKVxyXG4gICAgICAgID8uc3ViSXRlbXMubWFwKChzdWJJdGVtKSA9PiB7XHJcbiAgICAgICAgc3ViSXRlbS5leHBhbmQgPSBzdWJJdGVtPy51cmwgPT09IG1hdGNoZWRTdWJtZW51SXRlbT8udXJsO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHVsPlxyXG4gIDxsaVxyXG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudUl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcclxuICAgIGNsYXNzPVwibWItMiBob3Zlcjp0ZXh0LWJyYW5kLWRhcmsgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgW25nQ2xhc3NdPVwiaXRlbS5leHBhbmQgPyAnZm9udC1ib2xkIHRleHQtYnJhbmQtZGFyaycgOiAndGV4dC1ncmF5LTUwMCdcIlxyXG4gID5cclxuICAgIDxhIChjbGljayk9XCJ0b2dnbGVJdGVtKGl0ZW0sIGkpXCIgW2lkXT1cImlcIlxyXG4gICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS51cmwgPyBbaXRlbS51cmxdIDogW11cIlxyXG4gICAgICAgY2xhc3M9XCJwLTQgaC0xNCBibG9ja1wiXHJcbiAgICAgICBbbmdDbGFzc109XCJpdGVtLmV4cGFuZCA/ICd0ZXh0LWJyYW5kLWRhcmsnIDogJ3RleHQtZ3JheS01MDAnXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpdGVtLmljb25SZXNvdXJjZT8ubmFtZSB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImlubGluZS1ibG9jayBhbGlnbi1taWRkbGUgbXItNCB0ZXh0LWluaGVyaXQgaG92ZXI6dGV4dC1pbmhlcml0XCI+XHJcbiAgICAgICAge3sgaXRlbS5pY29uIH19XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiIWhpZGVTaWRlYmFyXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAge3sgaXRlbS50aXRsZSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2E+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5leHBhbmQgJiYgaXRlbS5zdWJJdGVtcz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlyc3RDaGlsZHJlbjsgY29udGV4dDogaXRlbVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9saT5cclxuPC91bD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZmlyc3RDaGlsZHJlbiBsZXQtc3ViSXRlbXM9XCJzdWJJdGVtc1wiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZVNpZGViYXJcIj5cclxuICAgIDx1bCBjbGFzcz1cIm1sLTEyXCI+XHJcbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdWJJdGVtc1wiIFtuZ0NsYXNzXT1cIml0ZW0uZXhwYW5kID8gJ2ZvbnQtYm9sZCB0ZXh0LWJyYW5kLWRhcmsnIDogJ3RleHQtZ3JheS01MDAnXCI+XHJcbiAgICAgICAgPGEgI3JsYT1cInJvdXRlckxpbmtBY3RpdmVcIlxyXG4gICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTdWJJdGVtKGl0ZW0sIHN1Ykl0ZW1zKVwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbGlnaHQgcC00IGgtMTIgcm91bmRlZC1tZCBob3Zlcjp0ZXh0LWJyYW5kLWRhcmsgZmxleCBpdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uZXhwYW5kICYmIHJsYS5pc0FjdGl2ZSA/ICd0ZXh0LWJyYW5kLWRhcmsnIDogJ3RleHQtZ3JheS01MDAnXCJcclxuICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnVybCA/IFtpdGVtLnVybF0gOiBbXVwiXHJcbiAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiIGl0ZW0udXJsID8gJ2JnLWJyYW5kLTMwMCB0ZXh0LWJyYW5kLWRhcmsnIDogJydcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCJpdGVtLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfCB0cnVuY2F0ZTogdHJ1bmNhdGVUbyB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uc3ViSXRlbXM/Lmxlbmd0aCA+IDBcIiBjbGFzcz1cImZsZXgtMSB0ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFsaWduLW1pZGRsZSBob3Zlcjp0ZXh0LWluaGVyaXRcIiBbbmdDbGFzc109XCJ7ICdyb3RhdGUtOTAnOiBpdGVtLmV4cGFuZCB9XCI+XHJcbiAgICAgICAgICAgICAga2V5Ym9hcmRfYXJyb3dfcmlnaHRcclxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5leHBhbmQgJiYgaXRlbS5zdWJJdGVtcz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlY29uZENoaWxkcmVuOyBjb250ZXh0OiBpdGVtXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzZWNvbmRDaGlsZHJlbiBsZXQtc3ViSXRlbXM9XCJzdWJJdGVtc1wiPlxyXG4gIDx1bCBjbGFzcz1cIm1sLTNcIj5cclxuICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdWJJdGVtc1wiPlxyXG4gICAgICA8YSAjcmxhPVwicm91dGVyTGlua0FjdGl2ZVwiXHJcbiAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uZXhwYW5kICYmIHJsYS5pc0FjdGl2ZSA/ICd0ZXh0LWJyYW5kLWRhcmsnIDogJ3RleHQtZ3JheS01MDAnXCJcclxuICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS51cmwgPyBbaXRlbS51cmxdIDogW11cIlxyXG4gICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCIgaXRlbS51cmwgPyAnYmctYnJhbmQtMzAwIHRleHQtYnJhbmQtZGFyaycgOiAnJ1wiXHJcbiAgICAgICAgIGNsYXNzPVwidGV4dC14cyBmb250LWxpZ2h0IGJsb2NrIHAtNCBoLTEyIHJvdW5kZWQtbWQgaG92ZXI6dGV4dC1icmFuZC1kYXJrXCI+XHJcbiAgICAgICAgPHNwYW4+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cclxuICAgICAgPC9hPlxyXG4gICAgPC9saT5cclxuICA8L3VsPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,37 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { EcabsMenuItemsComponent } from './ecabs-menu-items.component';
4
+ import { RouterLink, RouterLinkActive } from "@angular/router";
5
+ import { MatIconModule } from "@angular/material/icon";
6
+ import { EcabsPipesModule } from "../base/pipes/pipes.module";
7
+ import * as i0 from "@angular/core";
8
+ export class EcabsMenuItemsModule {
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMenuItemsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsMenuItemsModule, declarations: [EcabsMenuItemsComponent], imports: [CommonModule,
11
+ RouterLink,
12
+ RouterLinkActive,
13
+ MatIconModule,
14
+ EcabsPipesModule], exports: [EcabsMenuItemsComponent] });
15
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMenuItemsModule, imports: [CommonModule,
16
+ MatIconModule,
17
+ EcabsPipesModule] });
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMenuItemsModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ declarations: [
23
+ EcabsMenuItemsComponent
24
+ ],
25
+ imports: [
26
+ CommonModule,
27
+ RouterLink,
28
+ RouterLinkActive,
29
+ MatIconModule,
30
+ EcabsPipesModule
31
+ ],
32
+ exports: [
33
+ EcabsMenuItemsComponent
34
+ ]
35
+ }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtbWVudS1pdGVtcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtbWVudS1pdGVtcy9lY2Ficy1tZW51LWl0ZW1zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDOztBQWtCNUQsTUFBTSxPQUFPLG9CQUFvQjt3R0FBcEIsb0JBQW9CO3lHQUFwQixvQkFBb0IsaUJBYjdCLHVCQUF1QixhQUd2QixZQUFZO1lBQ1osVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsZ0JBQWdCLGFBR2hCLHVCQUF1Qjt5R0FHZCxvQkFBb0IsWUFWN0IsWUFBWTtZQUdaLGFBQWE7WUFDYixnQkFBZ0I7OzRGQU1QLG9CQUFvQjtrQkFmaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0VjYWJzTWVudUl0ZW1zQ29tcG9uZW50fSBmcm9tICcuL2VjYWJzLW1lbnUtaXRlbXMuY29tcG9uZW50JztcclxuaW1wb3J0IHtSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtFY2Fic1BpcGVzTW9kdWxlfSBmcm9tIFwiLi4vYmFzZS9waXBlcy9waXBlcy5tb2R1bGVcIjtcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRWNhYnNNZW51SXRlbXNDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJvdXRlckxpbmssXHJcbiAgICBSb3V0ZXJMaW5rQWN0aXZlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIEVjYWJzUGlwZXNNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEVjYWJzTWVudUl0ZW1zQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNNZW51SXRlbXNNb2R1bGUge1xyXG59XHJcbiJdfQ==