tango-app-ui-shared 3.0.0 → 3.0.1

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 (212) hide show
  1. package/esm2022/lib/guards/auth.guard.mjs +26 -0
  2. package/esm2022/lib/i18n/index.mjs +3 -0
  3. package/esm2022/lib/i18n/translation.module.mjs +17 -0
  4. package/esm2022/lib/i18n/translation.service.mjs +53 -0
  5. package/esm2022/lib/i18n/vocabs/ch.mjs +106 -0
  6. package/esm2022/lib/i18n/vocabs/de.mjs +106 -0
  7. package/esm2022/lib/i18n/vocabs/en.mjs +106 -0
  8. package/esm2022/lib/i18n/vocabs/es.mjs +106 -0
  9. package/esm2022/lib/i18n/vocabs/fr.mjs +106 -0
  10. package/esm2022/lib/i18n/vocabs/jp.mjs +106 -0
  11. package/esm2022/lib/interceptors/http-auth-interceptor.mjs +19 -0
  12. package/esm2022/lib/interfaces/global-state.mjs +2 -0
  13. package/esm2022/lib/modules/errors/error404/error404.component.mjs +45 -0
  14. package/esm2022/lib/modules/errors/error500/error500.component.mjs +45 -0
  15. package/esm2022/lib/modules/errors/errors-routing.module.mjs +38 -0
  16. package/esm2022/lib/modules/errors/errors.component.mjs +39 -0
  17. package/esm2022/lib/modules/errors/errors.module.mjs +31 -0
  18. package/esm2022/lib/modules/layout/content/content.component.mjs +43 -0
  19. package/esm2022/lib/modules/layout/footer/footer.component.mjs +17 -0
  20. package/esm2022/lib/modules/layout/header/header-menu/header-menu.component.mjs +41 -0
  21. package/esm2022/lib/modules/layout/header/header.component.mjs +100 -0
  22. package/esm2022/lib/modules/layout/header/navbar/navbar.component.mjs +24 -0
  23. package/esm2022/lib/modules/layout/header/page-title/page-title.component.mjs +50 -0
  24. package/esm2022/lib/modules/layout/keenicon/icons.json +1 -0
  25. package/esm2022/lib/modules/layout/keenicon/keenicon.component.mjs +37 -0
  26. package/esm2022/lib/modules/layout/layout/layout.component.mjs +285 -0
  27. package/esm2022/lib/modules/layout/layout.module.mjs +139 -0
  28. package/esm2022/lib/modules/layout/scripts-init/scripts-init.component.mjs +74 -0
  29. package/esm2022/lib/modules/layout/scroll-top/scroll-top.component.mjs +74 -0
  30. package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +14 -0
  31. package/esm2022/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.mjs +46 -0
  32. package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +15 -0
  33. package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +132 -0
  34. package/esm2022/lib/modules/layout/toolbar/accounting/accounting.component.mjs +15 -0
  35. package/esm2022/lib/modules/layout/toolbar/classic/classic.component.mjs +67 -0
  36. package/esm2022/lib/modules/layout/toolbar/extended/extended.component.mjs +14 -0
  37. package/esm2022/lib/modules/layout/toolbar/reports/reports.component.mjs +17 -0
  38. package/esm2022/lib/modules/layout/toolbar/saas/saas.component.mjs +17 -0
  39. package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +89 -0
  40. package/esm2022/lib/routes/route-wraper-modules/manage-wrapper.module.mjs +18 -0
  41. package/esm2022/lib/routes/route-wraper-modules/profile-wrapper.module.mjs +18 -0
  42. package/esm2022/lib/routes/route-wraper-modules/store-wrapper.module.mjs +18 -0
  43. package/esm2022/lib/routes/routing.mjs +25 -0
  44. package/esm2022/lib/services/auth.service.mjs +23 -0
  45. package/esm2022/lib/services/global-state.service.mjs +16 -0
  46. package/esm2022/public-api.mjs +48 -0
  47. package/esm2022/tango-app-ui-shared.mjs +5 -0
  48. package/fesm2022/tango-app-ui-shared-manage-wrapper.module-B6GJQNQZ.mjs +21 -0
  49. package/fesm2022/tango-app-ui-shared-manage-wrapper.module-B6GJQNQZ.mjs.map +1 -0
  50. package/fesm2022/tango-app-ui-shared-profile-wrapper.module-CTJBnU9I.mjs +21 -0
  51. package/fesm2022/tango-app-ui-shared-profile-wrapper.module-CTJBnU9I.mjs.map +1 -0
  52. package/fesm2022/tango-app-ui-shared-store-wrapper.module-UYYC9an_.mjs +21 -0
  53. package/fesm2022/tango-app-ui-shared-store-wrapper.module-UYYC9an_.mjs.map +1 -0
  54. package/fesm2022/tango-app-ui-shared.mjs +3420 -0
  55. package/fesm2022/tango-app-ui-shared.mjs.map +1 -0
  56. package/index.d.ts +5 -0
  57. package/lib/guards/auth.guard.d.ts +10 -0
  58. package/{src/lib/i18n/index.ts → lib/i18n/index.d.ts} +2 -2
  59. package/lib/i18n/translation.module.d.ts +8 -0
  60. package/lib/i18n/translation.service.d.ts +19 -0
  61. package/lib/i18n/vocabs/ch.d.ts +104 -0
  62. package/lib/i18n/vocabs/de.d.ts +104 -0
  63. package/lib/i18n/vocabs/en.d.ts +104 -0
  64. package/lib/i18n/vocabs/es.d.ts +104 -0
  65. package/lib/i18n/vocabs/fr.d.ts +104 -0
  66. package/lib/i18n/vocabs/jp.d.ts +104 -0
  67. package/lib/interceptors/http-auth-interceptor.d.ts +9 -0
  68. package/lib/interfaces/global-state.d.ts +5 -0
  69. package/lib/modules/errors/error404/error404.component.d.ts +15 -0
  70. package/lib/modules/errors/error500/error500.component.d.ts +15 -0
  71. package/lib/modules/errors/errors-routing.module.d.ts +7 -0
  72. package/lib/modules/errors/errors.component.d.ts +13 -0
  73. package/lib/modules/errors/errors.module.d.ts +11 -0
  74. package/lib/modules/layout/content/content.component.d.ts +16 -0
  75. package/lib/modules/layout/footer/footer.component.d.ts +8 -0
  76. package/lib/modules/layout/header/header-menu/header-menu.component.d.ts +18 -0
  77. package/lib/modules/layout/header/header.component.d.ts +30 -0
  78. package/lib/modules/layout/header/navbar/navbar.component.d.ts +14 -0
  79. package/lib/modules/layout/header/page-title/page-title.component.d.ts +20 -0
  80. package/lib/modules/layout/keenicon/keenicon.component.d.ts +13 -0
  81. package/lib/modules/layout/layout/layout.component.d.ts +74 -0
  82. package/lib/modules/layout/layout.module.d.ts +32 -0
  83. package/lib/modules/layout/scripts-init/scripts-init.component.d.ts +19 -0
  84. package/lib/modules/layout/scroll-top/scroll-top.component.d.ts +19 -0
  85. package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +8 -0
  86. package/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.d.ts +19 -0
  87. package/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.d.ts +8 -0
  88. package/lib/modules/layout/sidebar/sidebar.component.d.ts +35 -0
  89. package/lib/modules/layout/toolbar/accounting/accounting.component.d.ts +8 -0
  90. package/lib/modules/layout/toolbar/classic/classic.component.d.ts +27 -0
  91. package/lib/modules/layout/toolbar/extended/extended.component.d.ts +8 -0
  92. package/lib/modules/layout/toolbar/reports/reports.component.d.ts +9 -0
  93. package/lib/modules/layout/toolbar/saas/saas.component.d.ts +9 -0
  94. package/lib/modules/layout/toolbar/toolbar.component.d.ts +27 -0
  95. package/lib/routes/route-wraper-modules/manage-wrapper.module.d.ts +7 -0
  96. package/lib/routes/route-wraper-modules/profile-wrapper.module.d.ts +7 -0
  97. package/lib/routes/route-wraper-modules/store-wrapper.module.d.ts +7 -0
  98. package/lib/routes/routing.d.ts +3 -0
  99. package/lib/services/auth.service.d.ts +9 -0
  100. package/lib/services/global-state.service.d.ts +9 -0
  101. package/package.json +25 -12
  102. package/{src/public-api.ts → public-api.d.ts} +37 -64
  103. package/.eslintrc.json +0 -37
  104. package/ng-package.json +0 -7
  105. package/src/lib/guards/auth.guard.ts +0 -20
  106. package/src/lib/i18n/translation.module.ts +0 -9
  107. package/src/lib/i18n/translation.service.ts +0 -61
  108. package/src/lib/i18n/vocabs/ch.ts +0 -105
  109. package/src/lib/i18n/vocabs/de.ts +0 -105
  110. package/src/lib/i18n/vocabs/en.ts +0 -105
  111. package/src/lib/i18n/vocabs/es.ts +0 -105
  112. package/src/lib/i18n/vocabs/fr.ts +0 -105
  113. package/src/lib/i18n/vocabs/jp.ts +0 -105
  114. package/src/lib/interceptors/http-auth-interceptor.ts +0 -21
  115. package/src/lib/interfaces/global-state.ts +0 -6
  116. package/src/lib/modules/errors/error404/error404.component.html +0 -24
  117. package/src/lib/modules/errors/error404/error404.component.scss +0 -0
  118. package/src/lib/modules/errors/error404/error404.component.spec.ts +0 -25
  119. package/src/lib/modules/errors/error404/error404.component.ts +0 -50
  120. package/src/lib/modules/errors/error500/error500.component.html +0 -24
  121. package/src/lib/modules/errors/error500/error500.component.scss +0 -0
  122. package/src/lib/modules/errors/error500/error500.component.spec.ts +0 -25
  123. package/src/lib/modules/errors/error500/error500.component.ts +0 -50
  124. package/src/lib/modules/errors/errors-routing.module.ts +0 -30
  125. package/src/lib/modules/errors/errors.component.html +0 -15
  126. package/src/lib/modules/errors/errors.component.scss +0 -4
  127. package/src/lib/modules/errors/errors.component.spec.ts +0 -25
  128. package/src/lib/modules/errors/errors.component.ts +0 -42
  129. package/src/lib/modules/errors/errors.module.ts +0 -21
  130. package/src/lib/modules/layout/content/content.component.html +0 -12
  131. package/src/lib/modules/layout/content/content.component.scss +0 -0
  132. package/src/lib/modules/layout/content/content.component.ts +0 -35
  133. package/src/lib/modules/layout/footer/footer.component.html +0 -32
  134. package/src/lib/modules/layout/footer/footer.component.scss +0 -0
  135. package/src/lib/modules/layout/footer/footer.component.spec.ts +0 -25
  136. package/src/lib/modules/layout/footer/footer.component.ts +0 -13
  137. package/src/lib/modules/layout/header/header-menu/header-menu.component.html +0 -27
  138. package/src/lib/modules/layout/header/header-menu/header-menu.component.scss +0 -4
  139. package/src/lib/modules/layout/header/header-menu/header-menu.component.spec.ts +0 -25
  140. package/src/lib/modules/layout/header/header-menu/header-menu.component.ts +0 -38
  141. package/src/lib/modules/layout/header/header.component.html +0 -90
  142. package/src/lib/modules/layout/header/header.component.scss +0 -0
  143. package/src/lib/modules/layout/header/header.component.spec.ts +0 -25
  144. package/src/lib/modules/layout/header/header.component.ts +0 -139
  145. package/src/lib/modules/layout/header/navbar/navbar.component.html +0 -92
  146. package/src/lib/modules/layout/header/navbar/navbar.component.scss +0 -0
  147. package/src/lib/modules/layout/header/navbar/navbar.component.spec.ts +0 -23
  148. package/src/lib/modules/layout/header/navbar/navbar.component.ts +0 -20
  149. package/src/lib/modules/layout/header/page-title/page-title.component.html +0 -32
  150. package/src/lib/modules/layout/header/page-title/page-title.component.ts +0 -40
  151. package/src/lib/modules/layout/keenicon/icons.json +0 -1
  152. package/src/lib/modules/layout/keenicon/keenicon.component.html +0 -4
  153. package/src/lib/modules/layout/keenicon/keenicon.component.scss +0 -0
  154. package/src/lib/modules/layout/keenicon/keenicon.component.spec.ts +0 -23
  155. package/src/lib/modules/layout/keenicon/keenicon.component.ts +0 -30
  156. package/src/lib/modules/layout/layout/layout.component.html +0 -70
  157. package/src/lib/modules/layout/layout/layout.component.scss +0 -15
  158. package/src/lib/modules/layout/layout/layout.component.ts +0 -399
  159. package/src/lib/modules/layout/layout.module.ts +0 -93
  160. package/src/lib/modules/layout/scripts-init/scripts-init.component.html +0 -0
  161. package/src/lib/modules/layout/scripts-init/scripts-init.component.ts +0 -81
  162. package/src/lib/modules/layout/scroll-top/scroll-top.component.html +0 -1
  163. package/src/lib/modules/layout/scroll-top/scroll-top.component.ts +0 -75
  164. package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.html +0 -9
  165. package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.scss +0 -0
  166. package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.spec.ts +0 -23
  167. package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.ts +0 -13
  168. package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.html +0 -26
  169. package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.scss +0 -0
  170. package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.spec.ts +0 -23
  171. package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.ts +0 -36
  172. package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.html +0 -276
  173. package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.scss +0 -0
  174. package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.spec.ts +0 -23
  175. package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.ts +0 -15
  176. package/src/lib/modules/layout/sidebar/sidebar.component.html +0 -16
  177. package/src/lib/modules/layout/sidebar/sidebar.component.scss +0 -0
  178. package/src/lib/modules/layout/sidebar/sidebar.component.spec.ts +0 -23
  179. package/src/lib/modules/layout/sidebar/sidebar.component.ts +0 -203
  180. package/src/lib/modules/layout/toolbar/accounting/accounting.component.html +0 -84
  181. package/src/lib/modules/layout/toolbar/accounting/accounting.component.scss +0 -0
  182. package/src/lib/modules/layout/toolbar/accounting/accounting.component.spec.ts +0 -23
  183. package/src/lib/modules/layout/toolbar/accounting/accounting.component.ts +0 -14
  184. package/src/lib/modules/layout/toolbar/classic/classic.component.html +0 -37
  185. package/src/lib/modules/layout/toolbar/classic/classic.component.scss +0 -0
  186. package/src/lib/modules/layout/toolbar/classic/classic.component.spec.ts +0 -23
  187. package/src/lib/modules/layout/toolbar/classic/classic.component.ts +0 -88
  188. package/src/lib/modules/layout/toolbar/extended/extended.component.html +0 -100
  189. package/src/lib/modules/layout/toolbar/extended/extended.component.scss +0 -0
  190. package/src/lib/modules/layout/toolbar/extended/extended.component.spec.ts +0 -23
  191. package/src/lib/modules/layout/toolbar/extended/extended.component.ts +0 -12
  192. package/src/lib/modules/layout/toolbar/reports/reports.component.html +0 -62
  193. package/src/lib/modules/layout/toolbar/reports/reports.component.scss +0 -0
  194. package/src/lib/modules/layout/toolbar/reports/reports.component.spec.ts +0 -23
  195. package/src/lib/modules/layout/toolbar/reports/reports.component.ts +0 -14
  196. package/src/lib/modules/layout/toolbar/saas/saas.component.html +0 -77
  197. package/src/lib/modules/layout/toolbar/saas/saas.component.scss +0 -0
  198. package/src/lib/modules/layout/toolbar/saas/saas.component.spec.ts +0 -23
  199. package/src/lib/modules/layout/toolbar/saas/saas.component.ts +0 -14
  200. package/src/lib/modules/layout/toolbar/toolbar.component.html +0 -27
  201. package/src/lib/modules/layout/toolbar/toolbar.component.scss +0 -0
  202. package/src/lib/modules/layout/toolbar/toolbar.component.spec.ts +0 -25
  203. package/src/lib/modules/layout/toolbar/toolbar.component.ts +0 -125
  204. package/src/lib/routes/route-wraper-modules/manage-wrapper.module.ts +0 -12
  205. package/src/lib/routes/route-wraper-modules/profile-wrapper.module.ts +0 -12
  206. package/src/lib/routes/route-wraper-modules/store-wrapper.module.ts +0 -12
  207. package/src/lib/routes/routing.ts +0 -72
  208. package/src/lib/services/auth.service.ts +0 -16
  209. package/src/lib/services/global-state.service.ts +0 -11
  210. package/tsconfig.lib.json +0 -14
  211. package/tsconfig.lib.prod.json +0 -10
  212. package/tsconfig.spec.json +0 -14
@@ -1,25 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { FooterComponent } from './footer.component';
4
-
5
- describe('FooterComponent', () => {
6
- let component: FooterComponent;
7
- let fixture: ComponentFixture<FooterComponent>;
8
-
9
- beforeEach(async () => {
10
- await TestBed.configureTestingModule({
11
- declarations: [ FooterComponent ]
12
- })
13
- .compileComponents();
14
- });
15
-
16
- beforeEach(() => {
17
- fixture = TestBed.createComponent(FooterComponent);
18
- component = fixture.componentInstance;
19
- fixture.detectChanges();
20
- });
21
-
22
- it('should create', () => {
23
- expect(component).toBeTruthy();
24
- });
25
- });
@@ -1,13 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
-
3
- @Component({
4
- selector: 'lib-footer',
5
- templateUrl: './footer.component.html',
6
- styleUrls: ['./footer.component.scss'],
7
- })
8
- export class FooterComponent {
9
- @Input() appFooterContainerCSSClass: string = '';
10
-
11
- currentDateStr: string = new Date().getFullYear().toString();
12
- constructor() {}
13
- }
@@ -1,27 +0,0 @@
1
- <ng-container *ngIf="title$ | async as title">
2
- <!-- begin::Title -->
3
- <h1 class="page-heading d-flex text-gray-900 fw-bold fs-3 my-0 flex-column justify-content-center">
4
- {{ title }}
5
- <ng-container *ngIf="appPageTitleDescription">
6
- <ng-container *ngIf="description$ | async as description">
7
-
8
-
9
- <!--begin::Description-->
10
- <span class="page-desc text-muted fs-7 fw-semibold" [ngClass]="{'pt-2': appPageTitleDirection === 'column'}">
11
- <ng-container *ngIf="appPageTitleDirection === 'row'">
12
- <!--begin::Separator-->
13
- <span class="h-20px border-1 border-gray-300 border-start ms-3 mx-2"></span>
14
- <!--end::Separator-->
15
- </ng-container>
16
-
17
- {{description}}
18
- </span>
19
- <!--end::Description-->
20
- </ng-container>
21
-
22
- </ng-container>
23
-
24
- </h1>
25
- <!-- end::Title -->
26
-
27
- </ng-container>
@@ -1,4 +0,0 @@
1
- :host {
2
- height: inherit;
3
- width: inherit;
4
- }
@@ -1,25 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { HeaderMenuComponent } from './header-menu.component';
4
-
5
- describe('HeaderMenuComponent', () => {
6
- let component: HeaderMenuComponent;
7
- let fixture: ComponentFixture<HeaderMenuComponent>;
8
-
9
- beforeEach(async () => {
10
- await TestBed.configureTestingModule({
11
- declarations: [ HeaderMenuComponent ]
12
- })
13
- .compileComponents();
14
- });
15
-
16
- beforeEach(() => {
17
- fixture = TestBed.createComponent(HeaderMenuComponent);
18
- component = fixture.componentInstance;
19
- fixture.detectChanges();
20
- });
21
-
22
- it('should create', () => {
23
- expect(component).toBeTruthy();
24
- });
25
- });
@@ -1,38 +0,0 @@
1
- import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';
2
- import { Observable, Subscription } from 'rxjs';
3
- import { PageInfoService, PageLink } from 'tango-app-metronics';
4
-
5
-
6
- @Component({
7
- selector: 'lib-header-menu',
8
- templateUrl: './header-menu.component.html',
9
- styleUrls: ['./header-menu.component.scss'],
10
- })
11
- export class HeaderMenuComponent implements OnInit, OnDestroy {
12
- private unsubscribe: Subscription[] = [];
13
-
14
- @Input() appPageTitleDirection: string = '';
15
- @Input() appPageTitleDescription: boolean = true;
16
-
17
- title$: Observable<string>;
18
- description$: Observable<string>;
19
-
20
- constructor(private pageInfo: PageInfoService, private cd:ChangeDetectorRef) {}
21
-
22
- ngOnInit(): void {
23
- this.title$ = this.pageInfo.title.asObservable();
24
- this.description$ = this.pageInfo.description.asObservable();
25
-
26
- this.title$.subscribe((e)=>{
27
- this.cd.detectChanges()
28
- })
29
- this.description$.subscribe((e)=>{
30
- this.cd.detectChanges()
31
- })
32
- }
33
-
34
- ngOnDestroy() {
35
- this.unsubscribe.forEach((sb) => sb.unsubscribe());
36
- }
37
- }
38
-
@@ -1,90 +0,0 @@
1
- <!--begin::Header container-->
2
- <div class="app-container" id="kt_app_header_container" [ngClass]="headerContainerCssClass">
3
- <ng-container *ngIf="appSidebarDefaultCollapseDesktopEnabled">
4
- <div class="app-sidebar-collapse-d-flex align-items-center me-3">
5
- <!--begin::sidebar toggle-->
6
- <div class="btn btn-icon w-auto px-0 btn-color-muted btn-active-icon-primary" data-kt-toggle="true"
7
- data-kt-toggle-target="body" data-kt-toggle-mode="on" data-kt-toggle-name="app-sidebar-collapse">
8
- <lib-keenicon name="double-right" class="fs-1"></lib-keenicon>
9
- </div>
10
- <!--end::sidebar toggle-->
11
- </div>
12
- </ng-container>
13
-
14
- <ng-container *ngIf="appSidebarDisplay">
15
- <!--begin::sidebar mobile toggle-->
16
- <div class="d-flex align-items-center d-lg-none ms-n2 me-2" title="Show sidebar menu">
17
- <div class="btn btn-icon btn-active-color-primary w-35px h-35px" id="kt_app_sidebar_mobile_toggle">
18
- <lib-keenicon name="abstract-14" class="fs-1"></lib-keenicon>
19
- </div>
20
- </div>
21
- <!--end::sidebar mobile toggle-->
22
- <!--begin::Mobile logo-->
23
- <div class="d-flex align-items-center flex-grow-1 flex-lg-grow-0">
24
- <a routerLink="/dashboard" class="d-lg-none">
25
- <img alt="Logo" src="./assets/media/logos/default-small.svg" class="h-30px" />
26
- </a>
27
- </div>
28
- <!--end::Mobile logo-->
29
- </ng-container>
30
-
31
- <ng-container *ngIf="!appSidebarDisplay">
32
- <!--begin::Logo-->
33
- <div class="d-flex align-items-center flex-grow-1 flex-lg-grow-0 me-lg-15">
34
- <a routerLink="/dashboard">
35
- <ng-container *ngIf="currentLayoutType === 'dark-header'">
36
- <img alt="Logo" src="./assets/media/logos/default-dark.svg"
37
- class="h-20px h-lg-30px app-sidebar-logo-default" />
38
- </ng-container>
39
- <ng-container *ngIf="currentLayoutType !== 'dark-header'">
40
- <img alt="Logo" src="./assets/media/logos/default.svg"
41
- class="h-20px h-lg-30px app-sidebar-logo-default theme-light-show" />
42
- <img alt="Logo" src="./assets/media/logos/default-dark.svg"
43
- class="h-20px h-lg-30px app-sidebar-logo-default theme-dark-show" />
44
- </ng-container>
45
- </a>
46
- </div>
47
- <!--end::Logo-->
48
- </ng-container>
49
-
50
- <!--begin::Header wrapper-->
51
- <div class="d-flex align-items-stretch justify-content-between flex-lg-grow-1" id="kt_app_header_wrapper">
52
- <ng-container *ngIf="appHeaderDefaultContent === 'menu' && appHeaderDefaulMenuDisplay">
53
- <!--begin::Menu wrapper-->
54
- <div class="
55
- app-header-menu
56
- app-header-mobile-drawer
57
- align-items-stretch
58
- " data-kt-drawer="true" data-kt-drawer-name="app-header-menu" data-kt-drawer-activate="{default: true, lg: false}"
59
- data-kt-drawer-overlay="true" data-kt-drawer-width="225px" data-kt-drawer-direction="end"
60
- data-kt-drawer-toggle="#kt_app_header_menu_toggle" data-kt-swapper="true"
61
- data-kt-swapper-mode="{default: 'append', lg: 'prepend'}"
62
- data-kt-swapper-parent="{default: '#kt_app_body', lg: '#kt_app_header_wrapper'}">
63
- <!--begin::Menu-->
64
- <lib-header-menu
65
- appPageTitleDirection = ''
66
- [appPageTitleDescription] = true
67
- class="
68
- menu
69
- menu-rounded
70
- menu-column
71
- menu-lg-row
72
- my-5
73
- my-lg-0
74
- align-items-stretch
75
- fw-semibold
76
- px-2 px-lg-0
77
- " id="kt_app_header_menu" data-kt-menu="true"></lib-header-menu>
78
- <!--end::Menu-->
79
- </div>
80
- <!--end::Menu wrapper-->
81
- </ng-container>
82
- <!-- <ng-container *ngIf="appHeaderDefaultContent === 'page-title' && appPageTitleDisplay">
83
- <app-page-title #ktPageTitle class="page-title d-flex"></app-page-title>
84
- </ng-container> -->
85
- <lib-navbar class="app-navbar flex-shrink-0" [appHeaderDefaulMenuDisplay]="appHeaderDefaulMenuDisplay"
86
- [isRtl]="false"></lib-navbar>
87
- </div>
88
- <!--end::Header wrapper-->
89
- </div>
90
- <!--end::Header container-->
@@ -1,25 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { HeaderComponent } from './header.component';
4
-
5
- describe('HeaderComponent', () => {
6
- let component: HeaderComponent;
7
- let fixture: ComponentFixture<HeaderComponent>;
8
-
9
- beforeEach(async () => {
10
- await TestBed.configureTestingModule({
11
- declarations: [ HeaderComponent ]
12
- })
13
- .compileComponents();
14
- });
15
-
16
- beforeEach(() => {
17
- fixture = TestBed.createComponent(HeaderComponent);
18
- component = fixture.componentInstance;
19
- fixture.detectChanges();
20
- });
21
-
22
- it('should create', () => {
23
- expect(component).toBeTruthy();
24
- });
25
- });
@@ -1,139 +0,0 @@
1
- import { Component, OnDestroy, OnInit } from '@angular/core';
2
- import { NavigationCancel, NavigationEnd, Router } from '@angular/router';
3
- import { Subscription } from 'rxjs';
4
- import { ILayout, LayoutType } from 'tango-app-metronics';
5
- import { LayoutService } from 'tango-app-metronics';
6
- import { MenuComponent } from 'tango-app-metronics';
7
-
8
- @Component({
9
- selector: 'lib-header',
10
- templateUrl: './header.component.html',
11
- styleUrls: ['./header.component.scss'],
12
- })
13
- export class HeaderComponent implements OnInit, OnDestroy {
14
- private unsubscribe: Subscription[] = [];
15
- // Public props
16
- currentLayoutType: LayoutType | null;
17
-
18
- appHeaderDisplay: boolean;
19
- appHeaderDefaultFixedDesktop: boolean;
20
- appHeaderDefaultFixedMobile: boolean;
21
-
22
- appHeaderDefaultContainer: 'fixed' | 'fluid';
23
- headerContainerCssClass: string = '';
24
- appHeaderDefaultContainerClass: string = '';
25
-
26
- appHeaderDefaultStacked: boolean;
27
-
28
- // view
29
- appSidebarDefaultCollapseDesktopEnabled: boolean;
30
- appSidebarDisplay: boolean;
31
- appHeaderDefaultContent: string = '';
32
- appHeaderDefaulMenuDisplay: boolean;
33
- appPageTitleDisplay: boolean;
34
-
35
- constructor(private layout: LayoutService, private router: Router) {
36
- this.routingChanges();
37
- }
38
-
39
- updateProps(config: ILayout) {
40
- this.appHeaderDisplay = this.layout.getProp(
41
- 'app.header.display',
42
- config
43
- ) as boolean;
44
- // view
45
- this.appSidebarDefaultCollapseDesktopEnabled = this.layout.getProp(
46
- 'app.sidebar.default.collapse.desktop.enabled',
47
- config
48
- ) as boolean;
49
- this.appSidebarDisplay = this.layout.getProp(
50
- 'app.sidebar.display',
51
- config
52
- ) as boolean;
53
- this.appHeaderDefaultContent = this.layout.getProp(
54
- 'app.header.default.content',
55
- config
56
- ) as string;
57
- this.appHeaderDefaulMenuDisplay = this.layout.getProp(
58
- 'app.header.default.menu.display',
59
- config
60
- ) as boolean;
61
- this.appPageTitleDisplay = this.layout.getProp(
62
- 'app.pageTitle.display',
63
- config
64
- ) as boolean;
65
-
66
- // body attrs and container css classes
67
- this.appHeaderDefaultFixedDesktop = this.layout.getProp(
68
- 'app.header.default.fixed.desktop',
69
- config
70
- ) as boolean;
71
- if (this.appHeaderDefaultFixedDesktop) {
72
- document.body.setAttribute('data-kt-app-header-fixed', 'true');
73
- }
74
-
75
- this.appHeaderDefaultFixedMobile = this.layout.getProp(
76
- 'app.header.default.fixed.mobile',
77
- config
78
- ) as boolean;
79
- if (this.appHeaderDefaultFixedMobile) {
80
- document.body.setAttribute('data-kt-app-header-fixed-mobile', 'true');
81
- }
82
-
83
- this.appHeaderDefaultContainer = this.layout.getProp(
84
- 'appHeaderDefaultContainer',
85
- config
86
- ) as 'fixed' | 'fluid';
87
- this.headerContainerCssClass =
88
- this.appHeaderDefaultContainer === 'fixed'
89
- ? 'container-xxl'
90
- : 'container-fluid';
91
-
92
- this.appHeaderDefaultContainerClass = this.layout.getProp(
93
- 'app.header.default.containerClass',
94
- config
95
- ) as string;
96
- if (this.appHeaderDefaultContainerClass) {
97
- this.headerContainerCssClass += ` ${this.appHeaderDefaultContainerClass}`;
98
- }
99
-
100
- this.appHeaderDefaultStacked = this.layout.getProp(
101
- 'app.header.default.stacked',
102
- config
103
- ) as boolean;
104
- if (this.appHeaderDefaultStacked) {
105
- document.body.setAttribute('data-kt-app-header-stacked', 'true');
106
- }
107
-
108
- // Primary header
109
- // Secondary header
110
- }
111
-
112
- ngOnInit(): void {
113
- const subscr = this.layout.layoutConfigSubject
114
- .asObservable()
115
- .subscribe((config: ILayout) => {
116
- this.updateProps(config);
117
- });
118
- this.unsubscribe.push(subscr);
119
- const layoutSubscr = this.layout.currentLayoutTypeSubject
120
- .asObservable()
121
- .subscribe((layout) => {
122
- this.currentLayoutType = layout;
123
- });
124
- this.unsubscribe.push(layoutSubscr);
125
- }
126
-
127
- routingChanges() {
128
- const routerSubscription = this.router.events.subscribe((event) => {
129
- if (event instanceof NavigationEnd || event instanceof NavigationCancel) {
130
- MenuComponent.reinitialization();
131
- }
132
- });
133
- this.unsubscribe.push(routerSubscription);
134
- }
135
-
136
- ngOnDestroy() {
137
- this.unsubscribe.forEach((sb) => sb.unsubscribe());
138
- }
139
- }
@@ -1,92 +0,0 @@
1
- <!--begin::Search-->
2
- <div class="app-navbar-item align-items-stretch" [ngClass]="itemClass">
3
- <!--begin::Search-->
4
- <div id="kt_header_search" class="header-search d-flex align-items-stretch" data-kt-search-keypress="true"
5
- data-kt-search-min-length="2" data-kt-search-enter="enter" data-kt-search-layout="menu"
6
- data-kt-menu-trigger="{default: 'hover'}" data-kt-menu-overflow="false" data-kt-menu-permanent="true"
7
- data-kt-menu-placement="bottom-end" data-kt-search="true">
8
- <!--begin::Search toggle-->
9
- <div class="d-flex align-items-center" data-kt-search-element="toggle" id="kt_header_search_toggle">
10
- <div [ngClass]="btnClass">
11
- <lib-keenicon name="magnifier" [class]="btnIconClass"></lib-keenicon>
12
- </div>
13
- </div>
14
- <!--end::Search toggle-->
15
- <!-- <lib-search-result-inner data-kt-search-element="content" data-kt-menu="true"
16
- class="menu menu-sub menu-sub-dropdown p-7 w-325px w-md-375px"></lib-search-result-inner> -->
17
- </div>
18
-
19
- </div>
20
- <!--end::Search-->
21
-
22
- <!--begin::Activities-->
23
- <div class="app-navbar-item" [ngClass]="itemClass">
24
- <!--begin::Drawer toggle-->
25
- <div [ngClass]="btnClass" id="kt_activities_toggle">
26
- <lib-keenicon name="messages" class="fs-2"></lib-keenicon>
27
- </div>
28
- <!--end::Drawer toggle-->
29
- </div>
30
- <!--end::Activities-->
31
-
32
- <!--begin::Notifications-->
33
- <div class="app-navbar-item" [ngClass]="itemClass">
34
- <!--begin::Menu- wrapper-->
35
- <div [ngClass]="btnClass" data-kt-menu-trigger="{default: 'click', lg: 'hover'}" data-kt-menu-attach="parent"
36
- data-kt-menu-placement="bottom-end">
37
- <lib-keenicon name="notification-status" class="fs-2"></lib-keenicon>
38
- </div>
39
- <!-- <lib-notifications-inner></lib-notifications-inner> -->
40
- <!--end::Menu wrapper-->
41
- </div>
42
- <!--end::Notifications-->
43
-
44
- <!--begin::Chat-->
45
- <div class="app-navbar-item" [ngClass]="itemClass">
46
- <div [ngClass]="btnClass" class="position-relative" id="kt_drawer_chat_toggle">
47
- <lib-keenicon name="message-text-2" class="fs-2"></lib-keenicon>
48
- <span
49
- class="bullet bullet-dot bg-success h-6px w-6px position-absolute translate-middle top-0 start-50 animation-blink">
50
- </span>
51
- </div>
52
- </div>
53
- <!--end::Chat-->
54
-
55
- <!--begin::Quick links-->
56
- <div class="app-navbar-item" [ngClass]="itemClass">
57
- <!--begin::Menu wrapper-->
58
- <div [ngClass]="btnClass" data-kt-menu-trigger="click" data-kt-menu-attach="parent"
59
- data-kt-menu-placement="bottom-end">
60
- <lib-keenicon name="element-11" class="fs-2"></lib-keenicon>
61
- </div>
62
- <!--end::Menu wrapper-->
63
- <!-- <lib-quick-links-inner></lib-quick-links-inner> -->
64
- </div>
65
- <!--end::Quick links-->
66
-
67
- <!--begin::Theme mode-->
68
- <div class="app-navbar-item" [ngClass]="itemClass">
69
- <!-- <lib-theme-mode-switcher [toggleBtnClass]="btnClass" toggleBtnClass="{`btn-active-light-primary btn-custom ${toolbarButtonHeightClass}`}"></lib-theme-mode-switcher> -->
70
- </div>
71
- <!--end::Theme mode-->
72
-
73
- <!--begin::User menu-->
74
- <div class="app-navbar-item" [ngClass]="itemClass">
75
- <!--begin::Menu wrapper-->
76
- <div class="cursor-pointer symbol" [ngClass]="userAvatarClass" data-kt-menu-trigger="{default: 'click'}" data-kt-menu-attach="parent" data-kt-menu-placement="bottom-end">
77
- <img src="./assets/media/avatars/300-3.jpg" />
78
- </div>
79
- <!-- <lib-user-inner data-kt-menu='true'></lib-user-inner> -->
80
- <!--end::Menu wrapper-->
81
- </div>
82
- <!--end::User menu-->
83
-
84
- <!--begin::Header menu toggle-->
85
- <ng-container *ngIf="appHeaderDefaulMenuDisplay">
86
- <div class="app-navbar-item d-lg-none ms-2 me-n3" title="Show header menu">
87
- <div class="btn btn-icon btn-active-color-primary w-35px h-35px" id="kt_app_header_menu_toggle">
88
- <lib-keenicon name="element-4" class="fs-1" [ngClass]="btnIconClass"></lib-keenicon>
89
- </div>
90
- </div>
91
- </ng-container>
92
- <!--end::Header menu toggle-->
@@ -1,23 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { NavbarComponent } from './navbar.component';
4
-
5
- describe('NavbarComponent', () => {
6
- let component: NavbarComponent;
7
- let fixture: ComponentFixture<NavbarComponent>;
8
-
9
- beforeEach(async () => {
10
- await TestBed.configureTestingModule({
11
- declarations: [ NavbarComponent ]
12
- })
13
- .compileComponents();
14
-
15
- fixture = TestBed.createComponent(NavbarComponent);
16
- component = fixture.componentInstance;
17
- fixture.detectChanges();
18
- });
19
-
20
- it('should create', () => {
21
- expect(component).toBeTruthy();
22
- });
23
- });
@@ -1,20 +0,0 @@
1
- import { Component, Input, OnInit } from '@angular/core';
2
-
3
- @Component({
4
- selector: 'lib-navbar',
5
- templateUrl: './navbar.component.html',
6
- styleUrls: ['./navbar.component.scss'],
7
- })
8
- export class NavbarComponent implements OnInit {
9
- @Input() appHeaderDefaulMenuDisplay: boolean;
10
- @Input() isRtl: boolean;
11
-
12
- itemClass: string = 'ms-1 ms-lg-3';
13
- btnClass: string = 'btn btn-icon btn-custom btn-icon-muted btn-active-light btn-active-color-primary w-35px h-35px w-md-40px h-md-40px';
14
- userAvatarClass: string = 'symbol-35px symbol-md-40px';
15
- btnIconClass: string = 'fs-2 fs-md-1';
16
-
17
- constructor() {}
18
-
19
- ngOnInit(): void {}
20
- }
@@ -1,32 +0,0 @@
1
- <ng-container *ngIf="title$ | async as title">
2
-
3
- <ng-container *ngIf="appPageTitleBreadcrumb">
4
- <ng-container *ngIf="bc$ | async as _bc">
5
- <!-- <ng-container *ngIf="_bc.length > 0"> -->
6
- <ng-container *ngIf="appPageTitleDirection === 'row'">
7
- <span class="h-20px border-gray-300 border-start mx-4"></span>
8
- </ng-container>
9
- <!--begin::Breadcrumb-->
10
-
11
- <ul class="breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0"
12
- [ngClass]="{'pt-1': appPageTitleDirection === 'column'}">
13
- <li *ngFor="let bc of _bc" class="breadcrumb-item"
14
- [ngClass]="!bc.isSeparator && bc.isActive ? 'text-gray-900' : ''"
15
- [ngClass]="!bc.isSeparator && !bc.isActive ? 'text-muted' : ''">
16
- <ng-container *ngIf="!bc.isSeparator">
17
- <a class="text-muted text-hover-primary" [routerLink]="bc.path">
18
- {{ bc.title }}
19
- </a>
20
- </ng-container>
21
- <ng-container *ngIf="bc.isSeparator">
22
- <span class="bullet bg-gray-200 w-5px h-2px"></span>
23
- </ng-container>
24
- </li>
25
- <li class="breadcrumb-item text-gray-900">{{ title }}</li>
26
- </ul>
27
- <!--end::Breadcrumb-->
28
-
29
- <!-- </ng-container> -->
30
- </ng-container>
31
- </ng-container>
32
- </ng-container>
@@ -1,40 +0,0 @@
1
- import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';
2
- import { Observable, Subscription } from 'rxjs';
3
- import { PageInfoService, PageLink } from 'tango-app-metronics';
4
-
5
- @Component({
6
- selector: 'lib-page-title',
7
- templateUrl: './page-title.component.html',
8
- })
9
- export class PageTitleComponent implements OnInit, OnDestroy {
10
- private unsubscribe: Subscription[] = [];
11
-
12
- @Input() appPageTitleDirection: string = '';
13
- @Input() appPageTitleBreadcrumb: boolean;
14
- @Input() appPageTitleDescription: boolean;
15
-
16
- title$: Observable<string>;
17
- description$: Observable<string>;
18
- bc$: Observable<Array<PageLink>>;
19
-
20
- constructor(private pageInfo: PageInfoService, private cd:ChangeDetectorRef) {}
21
-
22
- ngOnInit(): void {
23
- this.title$ = this.pageInfo.title.asObservable();
24
- this.description$ = this.pageInfo.description.asObservable();
25
- this.bc$ = this.pageInfo.breadcrumbs.asObservable();
26
- this.title$.subscribe((e)=>{
27
- this.cd.detectChanges()
28
- })
29
- this.description$.subscribe((e)=>{
30
- this.cd.detectChanges()
31
- })
32
- this.bc$.subscribe((e)=>{
33
- this.cd.detectChanges()
34
- })
35
- }
36
-
37
- ngOnDestroy() {
38
- this.unsubscribe.forEach((sb) => sb.unsubscribe());
39
- }
40
- }