iptdevs-design-system 1.3.16 → 1.3.17

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.
@@ -1,29 +1,30 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../../../core/services/user-service/user-service";
4
- import * as i2 from "../../../core/utils/base-service/base.service";
5
- import * as i3 from "../../../core/services/storage-service/storage-service";
6
- import * as i4 from "@angular/material/sidenav";
7
- import * as i5 from "@angular/material/toolbar";
8
- import * as i6 from "@angular/material/icon";
9
- import * as i7 from "@angular/material/list";
10
- import * as i8 from "../../atoms/aside-button/aside-button.component";
11
- import * as i9 from "@angular/common";
4
+ import * as i2 from "../../../core/services/storage-service/storage-service";
5
+ import * as i3 from "@angular/material/sidenav";
6
+ import * as i4 from "@angular/material/toolbar";
7
+ import * as i5 from "@angular/material/icon";
8
+ import * as i6 from "@angular/material/list";
9
+ import * as i7 from "../../atoms/aside-button/aside-button.component";
10
+ import * as i8 from "@angular/common";
12
11
  export class SidenavComponent {
13
- constructor(userService, baseService, storageService) {
12
+ constructor(userService, storageService) {
14
13
  this.userService = userService;
15
- this.baseService = baseService;
16
14
  this.storageService = storageService;
17
15
  this.pageChangeEvent = new EventEmitter();
18
16
  this.routes = [];
17
+ this.options = { weekday: 'long', month: 'long', day: 'numeric' };
18
+ this.currentDay = new Date().toLocaleDateString('en-EN', this.options);
19
+ this.hour = new Date().getHours();
19
20
  }
20
21
  ngOnInit() {
21
22
  let user = this.storageService.getCurrentUser()?.token;
22
23
  let token = user === undefined ? '' : user;
23
24
  let request = {
24
- token: token
25
+ token: token,
25
26
  };
26
- this.userService.getRoutesForRole(request).subscribe(response => {
27
+ this.userService.getRoutesForRole(request).subscribe((response) => {
27
28
  this.routes = response.data;
28
29
  });
29
30
  }
@@ -31,64 +32,168 @@ export class SidenavComponent {
31
32
  this.pageChangeEvent.emit(event);
32
33
  }
33
34
  }
34
- SidenavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SidenavComponent, deps: [{ token: i1.UserService }, { token: i2.BaseService }, { token: i3.StorageService }], target: i0.ɵɵFactoryTarget.Component });
35
- SidenavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: SidenavComponent, selector: "ipt-sidenav", inputs: { department: "department", setPage: "setPage" }, outputs: { pageChangeEvent: "pageChangeEvent" }, ngImport: i0, template: `
35
+ SidenavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SidenavComponent, deps: [{ token: i1.UserService }, { token: i2.StorageService }], target: i0.ɵɵFactoryTarget.Component });
36
+ SidenavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: SidenavComponent, selector: "ipt-sidenav", inputs: { department: "department", setPage: "setPage", userName: "userName" }, outputs: { pageChangeEvent: "pageChangeEvent" }, ngImport: i0, template: `
36
37
  <mat-sidenav #sidenav mode="push">
37
- <mat-toolbar color="primary">
38
- <span>{{department}}</span>
39
- <span class="spacer"></span>
40
- <button mat-icon-button (click)="sidenav.toggle()">
41
- <mat-icon>Menu</mat-icon>
42
- </button>
43
- </mat-toolbar>
38
+ <mat-toolbar color="primary">
39
+ <span>Departamento Académico</span>
40
+ <span class="spacer"></span>
41
+ <button mat-icon-button (click)="sidenav.toggle()">
42
+ <mat-icon class="mat-icon-button">menu</mat-icon>
43
+ </button>
44
+ </mat-toolbar>
44
45
 
45
- <mat-nav-list>
46
- <nav class="flex-container-menu" (click)="sidenav.toggle()" *ngFor="let route of routes">
47
- <ipt-aside-button
48
- [buttonActive]="this.setPage === route.page"
49
- [url]="route.url"
50
- [type]="route.type"
51
- [icon]="route.icon"
52
- [text]="route.text"
53
- (isClicked)="clickPage(route.page)"
54
- >
55
- </ipt-aside-button>
56
- </nav>
57
- </mat-nav-list>
58
- </mat-sidenav>
59
- `, isInline: true, styles: ["*{font-family:Poppins,sans-serif}@media screen and (min-width: 320px){mat-sidenav{width:-moz-fit-content!important;width:fit-content!important;background-color:#1c77f7!important}.img-logo,.text-container{display:none}.mat-toolbar.mat-primary{background-color:#fff!important;color:#003d99!important;filter:drop-shadow(0px -1px 7px #000)}}@media screen and (min-width: 768px){.img-logo{display:flex;width:120px;height:60px}.text-container{border-radius:40px;height:45px;width:100%;display:flex;gap:-100px;justify-content:center;flex-direction:column;align-items:flex-start}.p1{color:gray;margin-left:30px;font-size:13px;height:20px}.p2{margin-left:30px;font-size:14px;font-weight:600;color:#1c77f7}}\n"], components: [{ type: i4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i8.AsideButtonComponent, selector: "ipt-aside-button", inputs: ["icon", "text", "type", "url", "textColor", "buttonActive"], outputs: ["isClicked"] }], directives: [{ type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
46
+ <mat-nav-list *ngFor="let route of routes">
47
+ <ipt-aside-button
48
+ [buttonActive]="this.setPage === route.page"
49
+ [url]="route.url"
50
+ [type]="route.type"
51
+ [icon]="route.icon"
52
+ [text]="route.text"
53
+ (isClicked)="clickPage(route.page)"
54
+ >
55
+ </ipt-aside-button>
56
+
57
+ <ipt-aside-button
58
+ [buttonActive]="this.setPage === 'logout'"
59
+ [url]="''"
60
+ [type]="'0'"
61
+ [icon]="'/assets/icons/cerrar-sesion.png'"
62
+ [text]="'Cerrar sesión'"
63
+ (isClicked)="clickPage('logout')"
64
+ >
65
+ </ipt-aside-button>
66
+ </mat-nav-list>
67
+ </mat-sidenav>
68
+
69
+ <mat-toolbar class="header">
70
+ <button mat-icon-button (click)="sidenav.toggle()">
71
+ <mat-icon>menu</mat-icon>
72
+ </button>
73
+ <img class="img-logo" src="/assets/logos/IPT-logo.png" alt="" />
74
+ <div class="text-container">
75
+ <span class="p1">{{ currentDay }}</span>
76
+ <span *ngIf="hour >= 0 && hour < 12" class="p2">
77
+ Hey {{userName}}, Good moorning!
78
+ </span>
79
+ <p *ngIf="hour >= 12 && hour < 18" class="p2">
80
+ Hey {{userName}}, Good afternoon!
81
+ </p>
82
+ <p *ngIf="hour > 18 && hour < 4" class="p2">Hey {{userName}}, Good evening!</p>
83
+ </div>
84
+
85
+ <div class="main-search-container">
86
+ <div class="search-container">
87
+ <input
88
+ type="text"
89
+ name="search"
90
+ placeholder="What are you doing today?"
91
+ class="search-input"
92
+ />
93
+ <!-- <hr class="hr-icon-search"> -->
94
+ <a href="#" class="icon"> </a>
95
+ </div>
96
+ </div>
97
+
98
+ <div class="icons-container">
99
+ <a href="#" class="notification-icon"></a>
100
+ <hr class="hr-icons" />
101
+ <a href="#" class="settings"></a>
102
+ <hr class="hr-icons" />
103
+ <a href="#" class="help"></a>
104
+ </div>
105
+
106
+ <div class="profile-container">
107
+ <p class="name-profile">{{userName}}</p>
108
+ <div class="photo-profile"></div>
109
+ </div>
110
+ </mat-toolbar>
111
+ `, isInline: true, styles: ["*{font-family:Poppins,sans-serif}@media screen and (min-width: 320px){.header{background-color:#fff;display:flex;justify-content:space-between;filter:drop-shadow(0px -1px 7px #000)}mat-sidenav{width:-moz-fit-content!important;width:fit-content!important;background-color:#1c77f7!important}.img-logo,.text-container{display:none}.mat-toolbar.mat-primary{background-color:#fff!important;color:#003d99!important;filter:drop-shadow(0px -1px 7px #000)}.icon{background-image:url(/assets/icons/icono-buscador.png);background-size:cover;background-position:center;width:40px;height:40px}.icons-container{border-radius:30px;height:50px;display:flex;justify-content:center;align-items:center;gap:5%;width:auto}.notification-icon{height:35px;width:35px;background-image:url(/assets/icons/notification-icon.png);background-position:center;background-size:cover;background-repeat:no-repeat}.settings{height:35px;width:35px;background-image:url(/assets/icons/settings.png);background-position:center;background-size:cover;background-repeat:no-repeat}.help{background:url(/assets/icons/help.png);background-position:center;background-size:cover;background-repeat:no-repeat;width:35px;height:35px;border-radius:50%}.hr-icons{border:none;border-left:1px solid #1c77f7;height:70%;width:1px}.hr-icon-search{border:none;border-left:1px solid #1c77f7;height:100%;width:1px}.profile-container{box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px;height:35px;width:auto;border-radius:30px;display:flex;margin-left:10px}.name-profile{display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin-left:20px;text-align:center;width:150px}.photo-profile{background:url(/assets/icons/photo-profile.png);background-size:40px 40px;background-position:center;background-repeat:no-repeat}.main-search-container{display:none}}@media screen and (min-width: 768px){.img-logo{display:flex;width:120px;height:60px}.text-container{border-radius:40px;height:45px;width:100%;display:flex;gap:-100px;justify-content:center;flex-direction:column;align-items:flex-start}.p1{color:gray;margin-left:30px;font-size:13px;height:20px}.p2{margin-left:30px;font-size:14px;font-weight:600;color:#1c77f7}.main-search-container{display:flex;justify-content:flex-end;align-items:center;width:-moz-available}.search-container{margin-right:10px;height:20px;width:20px;border-radius:30px;padding:10px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:.4s;box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px}.search-container:hover{width:300px;border-radius:30px;padding:10px 10px 10px 20px}.search-container:hover>.search-input{width:320px;border-radius:10px;padding-left:15px}.search-input{background:transparent;border:none;outline:none;width:0px;font-size:13px;transition:.8s}}\n"], components: [{ type: i3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i7.AsideButtonComponent, selector: "ipt-aside-button", inputs: ["icon", "text", "type", "url", "textColor", "buttonActive"], outputs: ["isClicked"] }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
60
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SidenavComponent, decorators: [{
61
113
  type: Component,
62
114
  args: [{ selector: 'ipt-sidenav', template: `
63
115
  <mat-sidenav #sidenav mode="push">
64
- <mat-toolbar color="primary">
65
- <span>{{department}}</span>
66
- <span class="spacer"></span>
67
- <button mat-icon-button (click)="sidenav.toggle()">
68
- <mat-icon>Menu</mat-icon>
69
- </button>
70
- </mat-toolbar>
116
+ <mat-toolbar color="primary">
117
+ <span>Departamento Académico</span>
118
+ <span class="spacer"></span>
119
+ <button mat-icon-button (click)="sidenav.toggle()">
120
+ <mat-icon class="mat-icon-button">menu</mat-icon>
121
+ </button>
122
+ </mat-toolbar>
123
+
124
+ <mat-nav-list *ngFor="let route of routes">
125
+ <ipt-aside-button
126
+ [buttonActive]="this.setPage === route.page"
127
+ [url]="route.url"
128
+ [type]="route.type"
129
+ [icon]="route.icon"
130
+ [text]="route.text"
131
+ (isClicked)="clickPage(route.page)"
132
+ >
133
+ </ipt-aside-button>
71
134
 
72
- <mat-nav-list>
73
- <nav class="flex-container-menu" (click)="sidenav.toggle()" *ngFor="let route of routes">
74
- <ipt-aside-button
75
- [buttonActive]="this.setPage === route.page"
76
- [url]="route.url"
77
- [type]="route.type"
78
- [icon]="route.icon"
79
- [text]="route.text"
80
- (isClicked)="clickPage(route.page)"
81
- >
82
- </ipt-aside-button>
83
- </nav>
84
- </mat-nav-list>
85
- </mat-sidenav>
86
- `, styles: ["*{font-family:Poppins,sans-serif}@media screen and (min-width: 320px){mat-sidenav{width:-moz-fit-content!important;width:fit-content!important;background-color:#1c77f7!important}.img-logo,.text-container{display:none}.mat-toolbar.mat-primary{background-color:#fff!important;color:#003d99!important;filter:drop-shadow(0px -1px 7px #000)}}@media screen and (min-width: 768px){.img-logo{display:flex;width:120px;height:60px}.text-container{border-radius:40px;height:45px;width:100%;display:flex;gap:-100px;justify-content:center;flex-direction:column;align-items:flex-start}.p1{color:gray;margin-left:30px;font-size:13px;height:20px}.p2{margin-left:30px;font-size:14px;font-weight:600;color:#1c77f7}}\n"] }]
87
- }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.BaseService }, { type: i3.StorageService }]; }, propDecorators: { department: [{
135
+ <ipt-aside-button
136
+ [buttonActive]="this.setPage === 'logout'"
137
+ [url]="''"
138
+ [type]="'0'"
139
+ [icon]="'/assets/icons/cerrar-sesion.png'"
140
+ [text]="'Cerrar sesión'"
141
+ (isClicked)="clickPage('logout')"
142
+ >
143
+ </ipt-aside-button>
144
+ </mat-nav-list>
145
+ </mat-sidenav>
146
+
147
+ <mat-toolbar class="header">
148
+ <button mat-icon-button (click)="sidenav.toggle()">
149
+ <mat-icon>menu</mat-icon>
150
+ </button>
151
+ <img class="img-logo" src="/assets/logos/IPT-logo.png" alt="" />
152
+ <div class="text-container">
153
+ <span class="p1">{{ currentDay }}</span>
154
+ <span *ngIf="hour >= 0 && hour < 12" class="p2">
155
+ Hey {{userName}}, Good moorning!
156
+ </span>
157
+ <p *ngIf="hour >= 12 && hour < 18" class="p2">
158
+ Hey {{userName}}, Good afternoon!
159
+ </p>
160
+ <p *ngIf="hour > 18 && hour < 4" class="p2">Hey {{userName}}, Good evening!</p>
161
+ </div>
162
+
163
+ <div class="main-search-container">
164
+ <div class="search-container">
165
+ <input
166
+ type="text"
167
+ name="search"
168
+ placeholder="What are you doing today?"
169
+ class="search-input"
170
+ />
171
+ <!-- <hr class="hr-icon-search"> -->
172
+ <a href="#" class="icon"> </a>
173
+ </div>
174
+ </div>
175
+
176
+ <div class="icons-container">
177
+ <a href="#" class="notification-icon"></a>
178
+ <hr class="hr-icons" />
179
+ <a href="#" class="settings"></a>
180
+ <hr class="hr-icons" />
181
+ <a href="#" class="help"></a>
182
+ </div>
183
+
184
+ <div class="profile-container">
185
+ <p class="name-profile">{{userName}}</p>
186
+ <div class="photo-profile"></div>
187
+ </div>
188
+ </mat-toolbar>
189
+ `, styles: ["*{font-family:Poppins,sans-serif}@media screen and (min-width: 320px){.header{background-color:#fff;display:flex;justify-content:space-between;filter:drop-shadow(0px -1px 7px #000)}mat-sidenav{width:-moz-fit-content!important;width:fit-content!important;background-color:#1c77f7!important}.img-logo,.text-container{display:none}.mat-toolbar.mat-primary{background-color:#fff!important;color:#003d99!important;filter:drop-shadow(0px -1px 7px #000)}.icon{background-image:url(/assets/icons/icono-buscador.png);background-size:cover;background-position:center;width:40px;height:40px}.icons-container{border-radius:30px;height:50px;display:flex;justify-content:center;align-items:center;gap:5%;width:auto}.notification-icon{height:35px;width:35px;background-image:url(/assets/icons/notification-icon.png);background-position:center;background-size:cover;background-repeat:no-repeat}.settings{height:35px;width:35px;background-image:url(/assets/icons/settings.png);background-position:center;background-size:cover;background-repeat:no-repeat}.help{background:url(/assets/icons/help.png);background-position:center;background-size:cover;background-repeat:no-repeat;width:35px;height:35px;border-radius:50%}.hr-icons{border:none;border-left:1px solid #1c77f7;height:70%;width:1px}.hr-icon-search{border:none;border-left:1px solid #1c77f7;height:100%;width:1px}.profile-container{box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px;height:35px;width:auto;border-radius:30px;display:flex;margin-left:10px}.name-profile{display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin-left:20px;text-align:center;width:150px}.photo-profile{background:url(/assets/icons/photo-profile.png);background-size:40px 40px;background-position:center;background-repeat:no-repeat}.main-search-container{display:none}}@media screen and (min-width: 768px){.img-logo{display:flex;width:120px;height:60px}.text-container{border-radius:40px;height:45px;width:100%;display:flex;gap:-100px;justify-content:center;flex-direction:column;align-items:flex-start}.p1{color:gray;margin-left:30px;font-size:13px;height:20px}.p2{margin-left:30px;font-size:14px;font-weight:600;color:#1c77f7}.main-search-container{display:flex;justify-content:flex-end;align-items:center;width:-moz-available}.search-container{margin-right:10px;height:20px;width:20px;border-radius:30px;padding:10px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:.4s;box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px}.search-container:hover{width:300px;border-radius:30px;padding:10px 10px 10px 20px}.search-container:hover>.search-input{width:320px;border-radius:10px;padding-left:15px}.search-input{background:transparent;border:none;outline:none;width:0px;font-size:13px;transition:.8s}}\n"] }]
190
+ }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.StorageService }]; }, propDecorators: { department: [{
88
191
  type: Input
89
192
  }], setPage: [{
90
193
  type: Input
194
+ }], userName: [{
195
+ type: Input
91
196
  }], pageChangeEvent: [{
92
197
  type: Output
93
198
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQW1DL0UsTUFBTSxPQUFPLGdCQUFnQjtJQVF6QixZQUNZLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLGNBQThCO1FBRjlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVBoQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFdkQsV0FBTSxHQUFVLEVBQUUsQ0FBQztJQU1oQixDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLEVBQUUsS0FBSyxDQUFDO1FBQ3ZELElBQUksS0FBSyxHQUFXLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRW5ELElBQUksT0FBTyxHQUFnQjtZQUN2QixLQUFLLEVBQUUsS0FBSztTQUNmLENBQUE7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBRSxRQUFRLENBQUMsRUFBRTtZQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7NkdBN0JRLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLDhKQTNCakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVDsyRkFHVSxnQkFBZ0I7a0JBN0I1QixTQUFTOytCQUNFLGFBQWEsWUFDYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JUO3lKQUtVLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyVG9rZW5ScSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL3VzZXIvdXNlci1ycS5tb2RlbCc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvc3RvcmFnZS1zZXJ2aWNlL3N0b3JhZ2Utc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdXNlci1zZXJ2aWNlL3VzZXItc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lwdC1zaWRlbmF2JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LXNpZGVuYXYgI3NpZGVuYXYgbW9kZT1cInB1c2hcIj5cbiAgICAgICAgPG1hdC10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgPHNwYW4+e3tkZXBhcnRtZW50fX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwYWNlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzaWRlbmF2LnRvZ2dsZSgpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPk1lbnU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LXRvb2xiYXI+XG5cbiAgICAgICAgPG1hdC1uYXYtbGlzdD5cbiAgICAgICAgICAgIDxuYXYgY2xhc3M9XCJmbGV4LWNvbnRhaW5lci1tZW51XCIgKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIiAqbmdGb3I9XCJsZXQgcm91dGUgb2Ygcm91dGVzXCI+XG4gICAgICAgICAgICAgICAgPGlwdC1hc2lkZS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2J1dHRvbkFjdGl2ZV09XCJ0aGlzLnNldFBhZ2UgPT09IHJvdXRlLnBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbdXJsXT1cInJvdXRlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInJvdXRlLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJyb3V0ZS5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwicm91dGUudGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIChpc0NsaWNrZWQpPVwiY2xpY2tQYWdlKHJvdXRlLnBhZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvaXB0LWFzaWRlLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICA8L21hdC1uYXYtbGlzdD5cbiAgPC9tYXQtc2lkZW5hdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZW5hdi5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lkZW5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcblxuICAgIEBJbnB1dCgpIGRlcGFydG1lbnQhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2V0UGFnZSE6IHN0cmluZztcbiAgICBAT3V0cHV0KCkgcGFnZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICByb3V0ZXM6IGFueVtdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBsZXQgdXNlciA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKT8udG9rZW47XG4gICAgICAgIGxldCB0b2tlbjogc3RyaW5nID0gdXNlciA9PT0gdW5kZWZpbmVkID8gJycgOiB1c2VyO1xuXG4gICAgICAgIGxldCByZXF1ZXN0OiBVc2VyVG9rZW5ScSA9IHtcbiAgICAgICAgICAgIHRva2VuOiB0b2tlblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51c2VyU2VydmljZS5nZXRSb3V0ZXNGb3JSb2xlKHJlcXVlc3QpLnN1YnNjcmliZSggcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjbGlja1BhZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcbiAgICB9XG4gIFxuXG59XG4iXX0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBcUYvRSxNQUFNLE9BQU8sZ0JBQWdCO0lBVzNCLFlBQ1UsV0FBd0IsRUFDeEIsY0FBOEI7UUFEOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVDlCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV2RCxXQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDbEUsZUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRSxTQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUsxQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLEVBQUUsS0FBSyxDQUFDO1FBQ3ZELElBQUksS0FBSyxHQUFXLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRW5ELElBQUksT0FBTyxHQUFnQjtZQUN6QixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs2R0EvQlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isb0xBOUVqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkVUOzJGQUdVLGdCQUFnQjtrQkFoRjVCLFNBQVM7K0JBQ0UsYUFBYSxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRVQ7K0hBSVEsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlclRva2VuUnEgfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscy91c2VyL3VzZXItcnEubW9kZWwnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3N0b3JhZ2Utc2VydmljZS9zdG9yYWdlLXNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3VzZXItc2VydmljZS91c2VyLXNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpcHQtc2lkZW5hdicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1hdC1zaWRlbmF2ICNzaWRlbmF2IG1vZGU9XCJwdXNoXCI+XG4gICAgICA8bWF0LXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgIDxzcGFuPkRlcGFydGFtZW50byBBY2Fkw6ltaWNvPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNwYWNlclwiPjwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1idXR0b25cIj5tZW51PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC10b29sYmFyPlxuXG4gICAgICA8bWF0LW5hdi1saXN0ICpuZ0Zvcj1cImxldCByb3V0ZSBvZiByb3V0ZXNcIj5cbiAgICAgICAgPGlwdC1hc2lkZS1idXR0b25cbiAgICAgICAgICBbYnV0dG9uQWN0aXZlXT1cInRoaXMuc2V0UGFnZSA9PT0gcm91dGUucGFnZVwiXG4gICAgICAgICAgW3VybF09XCJyb3V0ZS51cmxcIlxuICAgICAgICAgIFt0eXBlXT1cInJvdXRlLnR5cGVcIlxuICAgICAgICAgIFtpY29uXT1cInJvdXRlLmljb25cIlxuICAgICAgICAgIFt0ZXh0XT1cInJvdXRlLnRleHRcIlxuICAgICAgICAgIChpc0NsaWNrZWQpPVwiY2xpY2tQYWdlKHJvdXRlLnBhZ2UpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2lwdC1hc2lkZS1idXR0b24+XG5cbiAgICAgICAgPGlwdC1hc2lkZS1idXR0b25cbiAgICAgICAgICBbYnV0dG9uQWN0aXZlXT1cInRoaXMuc2V0UGFnZSA9PT0gJ2xvZ291dCdcIlxuICAgICAgICAgIFt1cmxdPVwiJydcIlxuICAgICAgICAgIFt0eXBlXT1cIicwJ1wiXG4gICAgICAgICAgW2ljb25dPVwiJy9hc3NldHMvaWNvbnMvY2VycmFyLXNlc2lvbi5wbmcnXCJcbiAgICAgICAgICBbdGV4dF09XCInQ2VycmFyIHNlc2nDs24nXCJcbiAgICAgICAgICAoaXNDbGlja2VkKT1cImNsaWNrUGFnZSgnbG9nb3V0JylcIlxuICAgICAgICA+XG4gICAgICAgIDwvaXB0LWFzaWRlLWJ1dHRvbj5cbiAgICAgIDwvbWF0LW5hdi1saXN0PlxuICAgIDwvbWF0LXNpZGVuYXY+XG5cbiAgICA8bWF0LXRvb2xiYXIgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzaWRlbmF2LnRvZ2dsZSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvXCIgc3JjPVwiL2Fzc2V0cy9sb2dvcy9JUFQtbG9nby5wbmdcIiBhbHQ9XCJcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY29udGFpbmVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicDFcIj57eyBjdXJyZW50RGF5IH19PC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImhvdXIgPj0gMCAmJiBob3VyIDwgMTJcIiBjbGFzcz1cInAyXCI+XG4gICAgICAgICAgSGV5IHt7dXNlck5hbWV9fSwgR29vZCBtb29ybmluZyFcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8cCAqbmdJZj1cImhvdXIgPj0gMTIgJiYgaG91ciA8IDE4XCIgY2xhc3M9XCJwMlwiPlxuICAgICAgICAgIEhleSB7e3VzZXJOYW1lfX0sIEdvb2QgYWZ0ZXJub29uIVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwICpuZ0lmPVwiaG91ciA+IDE4ICYmIGhvdXIgPCA0XCIgY2xhc3M9XCJwMlwiPkhleSB7e3VzZXJOYW1lfX0sIEdvb2QgZXZlbmluZyE8L3A+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1haW4tc2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgbmFtZT1cInNlYXJjaFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldoYXQgYXJlIHlvdSBkb2luZyB0b2RheT9cIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPCEtLSA8aHIgY2xhc3M9XCJoci1pY29uLXNlYXJjaFwiPiAtLT5cbiAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiaWNvblwiPiA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29ucy1jb250YWluZXJcIj5cbiAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29uXCI+PC9hPlxuICAgICAgICA8aHIgY2xhc3M9XCJoci1pY29uc1wiIC8+XG4gICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJzZXR0aW5nc1wiPjwvYT5cbiAgICAgICAgPGhyIGNsYXNzPVwiaHItaWNvbnNcIiAvPlxuICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiaGVscFwiPjwvYT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1jb250YWluZXJcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJuYW1lLXByb2ZpbGVcIj57e3VzZXJOYW1lfX08L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwaG90by1wcm9maWxlXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC10b29sYmFyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9zaWRlbmF2LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTaWRlbmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGVwYXJ0bWVudCE6IHN0cmluZztcbiAgQElucHV0KCkgc2V0UGFnZSE6IHN0cmluZztcbiAgQElucHV0KCkgdXNlck5hbWUhOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICByb3V0ZXM6IGFueVtdID0gW107XG4gIG9wdGlvbnM6IGFueSA9IHsgd2Vla2RheTogJ2xvbmcnLCBtb250aDogJ2xvbmcnLCBkYXk6ICdudW1lcmljJyB9O1xuICBjdXJyZW50RGF5ID0gbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLUVOJywgdGhpcy5vcHRpb25zKTtcbiAgaG91ciA9IG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgbGV0IHVzZXIgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk/LnRva2VuO1xuICAgIGxldCB0b2tlbjogc3RyaW5nID0gdXNlciA9PT0gdW5kZWZpbmVkID8gJycgOiB1c2VyO1xuXG4gICAgbGV0IHJlcXVlc3Q6IFVzZXJUb2tlblJxID0ge1xuICAgICAgdG9rZW46IHRva2VuLFxuICAgIH07XG5cbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldFJvdXRlc0ZvclJvbGUocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5yb3V0ZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgY2xpY2tQYWdlKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIl19
@@ -8,13 +8,13 @@ import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
8
8
  import Swal from 'sweetalert2';
9
9
  import * as i1$2 from '@angular/common/http';
10
10
  import { HttpHeaders } from '@angular/common/http';
11
- import * as i4 from '@angular/material/sidenav';
11
+ import * as i3 from '@angular/material/sidenav';
12
12
  import { MatSidenavModule } from '@angular/material/sidenav';
13
- import * as i5 from '@angular/material/toolbar';
13
+ import * as i4 from '@angular/material/toolbar';
14
14
  import { MatToolbarModule } from '@angular/material/toolbar';
15
- import * as i6 from '@angular/material/icon';
15
+ import * as i5 from '@angular/material/icon';
16
16
  import { MatIconModule } from '@angular/material/icon';
17
- import * as i7 from '@angular/material/list';
17
+ import * as i6 from '@angular/material/list';
18
18
  import { MatListModule } from '@angular/material/list';
19
19
  import * as i1$3 from '@angular/router';
20
20
 
@@ -896,21 +896,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
896
896
  }] } });
897
897
 
898
898
  class SidenavComponent {
899
- constructor(userService, baseService, storageService) {
899
+ constructor(userService, storageService) {
900
900
  this.userService = userService;
901
- this.baseService = baseService;
902
901
  this.storageService = storageService;
903
902
  this.pageChangeEvent = new EventEmitter();
904
903
  this.routes = [];
904
+ this.options = { weekday: 'long', month: 'long', day: 'numeric' };
905
+ this.currentDay = new Date().toLocaleDateString('en-EN', this.options);
906
+ this.hour = new Date().getHours();
905
907
  }
906
908
  ngOnInit() {
907
909
  var _a;
908
910
  let user = (_a = this.storageService.getCurrentUser()) === null || _a === void 0 ? void 0 : _a.token;
909
911
  let token = user === undefined ? '' : user;
910
912
  let request = {
911
- token: token
913
+ token: token,
912
914
  };
913
- this.userService.getRoutesForRole(request).subscribe(response => {
915
+ this.userService.getRoutesForRole(request).subscribe((response) => {
914
916
  this.routes = response.data;
915
917
  });
916
918
  }
@@ -918,63 +920,167 @@ class SidenavComponent {
918
920
  this.pageChangeEvent.emit(event);
919
921
  }
920
922
  }
921
- SidenavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SidenavComponent, deps: [{ token: UserService }, { token: BaseService }, { token: StorageService }], target: i0.ɵɵFactoryTarget.Component });
922
- SidenavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: SidenavComponent, selector: "ipt-sidenav", inputs: { department: "department", setPage: "setPage" }, outputs: { pageChangeEvent: "pageChangeEvent" }, ngImport: i0, template: `
923
+ SidenavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SidenavComponent, deps: [{ token: UserService }, { token: StorageService }], target: i0.ɵɵFactoryTarget.Component });
924
+ SidenavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: SidenavComponent, selector: "ipt-sidenav", inputs: { department: "department", setPage: "setPage", userName: "userName" }, outputs: { pageChangeEvent: "pageChangeEvent" }, ngImport: i0, template: `
923
925
  <mat-sidenav #sidenav mode="push">
924
- <mat-toolbar color="primary">
925
- <span>{{department}}</span>
926
- <span class="spacer"></span>
927
- <button mat-icon-button (click)="sidenav.toggle()">
928
- <mat-icon>Menu</mat-icon>
929
- </button>
930
- </mat-toolbar>
931
-
932
- <mat-nav-list>
933
- <nav class="flex-container-menu" (click)="sidenav.toggle()" *ngFor="let route of routes">
934
- <ipt-aside-button
935
- [buttonActive]="this.setPage === route.page"
936
- [url]="route.url"
937
- [type]="route.type"
938
- [icon]="route.icon"
939
- [text]="route.text"
940
- (isClicked)="clickPage(route.page)"
941
- >
942
- </ipt-aside-button>
943
- </nav>
944
- </mat-nav-list>
945
- </mat-sidenav>
946
- `, isInline: true, styles: ["*{font-family:Poppins,sans-serif}@media screen and (min-width: 320px){mat-sidenav{width:-moz-fit-content!important;width:fit-content!important;background-color:#1c77f7!important}.img-logo,.text-container{display:none}.mat-toolbar.mat-primary{background-color:#fff!important;color:#003d99!important;filter:drop-shadow(0px -1px 7px #000)}}@media screen and (min-width: 768px){.img-logo{display:flex;width:120px;height:60px}.text-container{border-radius:40px;height:45px;width:100%;display:flex;gap:-100px;justify-content:center;flex-direction:column;align-items:flex-start}.p1{color:gray;margin-left:30px;font-size:13px;height:20px}.p2{margin-left:30px;font-size:14px;font-weight:600;color:#1c77f7}}\n"], components: [{ type: i4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: AsideButtonComponent, selector: "ipt-aside-button", inputs: ["icon", "text", "type", "url", "textColor", "buttonActive"], outputs: ["isClicked"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
926
+ <mat-toolbar color="primary">
927
+ <span>Departamento Académico</span>
928
+ <span class="spacer"></span>
929
+ <button mat-icon-button (click)="sidenav.toggle()">
930
+ <mat-icon class="mat-icon-button">menu</mat-icon>
931
+ </button>
932
+ </mat-toolbar>
933
+
934
+ <mat-nav-list *ngFor="let route of routes">
935
+ <ipt-aside-button
936
+ [buttonActive]="this.setPage === route.page"
937
+ [url]="route.url"
938
+ [type]="route.type"
939
+ [icon]="route.icon"
940
+ [text]="route.text"
941
+ (isClicked)="clickPage(route.page)"
942
+ >
943
+ </ipt-aside-button>
944
+
945
+ <ipt-aside-button
946
+ [buttonActive]="this.setPage === 'logout'"
947
+ [url]="''"
948
+ [type]="'0'"
949
+ [icon]="'/assets/icons/cerrar-sesion.png'"
950
+ [text]="'Cerrar sesión'"
951
+ (isClicked)="clickPage('logout')"
952
+ >
953
+ </ipt-aside-button>
954
+ </mat-nav-list>
955
+ </mat-sidenav>
956
+
957
+ <mat-toolbar class="header">
958
+ <button mat-icon-button (click)="sidenav.toggle()">
959
+ <mat-icon>menu</mat-icon>
960
+ </button>
961
+ <img class="img-logo" src="/assets/logos/IPT-logo.png" alt="" />
962
+ <div class="text-container">
963
+ <span class="p1">{{ currentDay }}</span>
964
+ <span *ngIf="hour >= 0 && hour < 12" class="p2">
965
+ Hey {{userName}}, Good moorning!
966
+ </span>
967
+ <p *ngIf="hour >= 12 && hour < 18" class="p2">
968
+ Hey {{userName}}, Good afternoon!
969
+ </p>
970
+ <p *ngIf="hour > 18 && hour < 4" class="p2">Hey {{userName}}, Good evening!</p>
971
+ </div>
972
+
973
+ <div class="main-search-container">
974
+ <div class="search-container">
975
+ <input
976
+ type="text"
977
+ name="search"
978
+ placeholder="What are you doing today?"
979
+ class="search-input"
980
+ />
981
+ <!-- <hr class="hr-icon-search"> -->
982
+ <a href="#" class="icon"> </a>
983
+ </div>
984
+ </div>
985
+
986
+ <div class="icons-container">
987
+ <a href="#" class="notification-icon"></a>
988
+ <hr class="hr-icons" />
989
+ <a href="#" class="settings"></a>
990
+ <hr class="hr-icons" />
991
+ <a href="#" class="help"></a>
992
+ </div>
993
+
994
+ <div class="profile-container">
995
+ <p class="name-profile">{{userName}}</p>
996
+ <div class="photo-profile"></div>
997
+ </div>
998
+ </mat-toolbar>
999
+ `, isInline: true, styles: ["*{font-family:Poppins,sans-serif}@media screen and (min-width: 320px){.header{background-color:#fff;display:flex;justify-content:space-between;filter:drop-shadow(0px -1px 7px #000)}mat-sidenav{width:-moz-fit-content!important;width:fit-content!important;background-color:#1c77f7!important}.img-logo,.text-container{display:none}.mat-toolbar.mat-primary{background-color:#fff!important;color:#003d99!important;filter:drop-shadow(0px -1px 7px #000)}.icon{background-image:url(/assets/icons/icono-buscador.png);background-size:cover;background-position:center;width:40px;height:40px}.icons-container{border-radius:30px;height:50px;display:flex;justify-content:center;align-items:center;gap:5%;width:auto}.notification-icon{height:35px;width:35px;background-image:url(/assets/icons/notification-icon.png);background-position:center;background-size:cover;background-repeat:no-repeat}.settings{height:35px;width:35px;background-image:url(/assets/icons/settings.png);background-position:center;background-size:cover;background-repeat:no-repeat}.help{background:url(/assets/icons/help.png);background-position:center;background-size:cover;background-repeat:no-repeat;width:35px;height:35px;border-radius:50%}.hr-icons{border:none;border-left:1px solid #1c77f7;height:70%;width:1px}.hr-icon-search{border:none;border-left:1px solid #1c77f7;height:100%;width:1px}.profile-container{box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px;height:35px;width:auto;border-radius:30px;display:flex;margin-left:10px}.name-profile{display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin-left:20px;text-align:center;width:150px}.photo-profile{background:url(/assets/icons/photo-profile.png);background-size:40px 40px;background-position:center;background-repeat:no-repeat}.main-search-container{display:none}}@media screen and (min-width: 768px){.img-logo{display:flex;width:120px;height:60px}.text-container{border-radius:40px;height:45px;width:100%;display:flex;gap:-100px;justify-content:center;flex-direction:column;align-items:flex-start}.p1{color:gray;margin-left:30px;font-size:13px;height:20px}.p2{margin-left:30px;font-size:14px;font-weight:600;color:#1c77f7}.main-search-container{display:flex;justify-content:flex-end;align-items:center;width:-moz-available}.search-container{margin-right:10px;height:20px;width:20px;border-radius:30px;padding:10px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:.4s;box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px}.search-container:hover{width:300px;border-radius:30px;padding:10px 10px 10px 20px}.search-container:hover>.search-input{width:320px;border-radius:10px;padding-left:15px}.search-input{background:transparent;border:none;outline:none;width:0px;font-size:13px;transition:.8s}}\n"], components: [{ type: i3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: AsideButtonComponent, selector: "ipt-aside-button", inputs: ["icon", "text", "type", "url", "textColor", "buttonActive"], outputs: ["isClicked"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
947
1000
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SidenavComponent, decorators: [{
948
1001
  type: Component,
949
1002
  args: [{ selector: 'ipt-sidenav', template: `
950
1003
  <mat-sidenav #sidenav mode="push">
951
- <mat-toolbar color="primary">
952
- <span>{{department}}</span>
953
- <span class="spacer"></span>
954
- <button mat-icon-button (click)="sidenav.toggle()">
955
- <mat-icon>Menu</mat-icon>
956
- </button>
957
- </mat-toolbar>
958
-
959
- <mat-nav-list>
960
- <nav class="flex-container-menu" (click)="sidenav.toggle()" *ngFor="let route of routes">
961
- <ipt-aside-button
962
- [buttonActive]="this.setPage === route.page"
963
- [url]="route.url"
964
- [type]="route.type"
965
- [icon]="route.icon"
966
- [text]="route.text"
967
- (isClicked)="clickPage(route.page)"
968
- >
969
- </ipt-aside-button>
970
- </nav>
971
- </mat-nav-list>
972
- </mat-sidenav>
973
- `, styles: ["*{font-family:Poppins,sans-serif}@media screen and (min-width: 320px){mat-sidenav{width:-moz-fit-content!important;width:fit-content!important;background-color:#1c77f7!important}.img-logo,.text-container{display:none}.mat-toolbar.mat-primary{background-color:#fff!important;color:#003d99!important;filter:drop-shadow(0px -1px 7px #000)}}@media screen and (min-width: 768px){.img-logo{display:flex;width:120px;height:60px}.text-container{border-radius:40px;height:45px;width:100%;display:flex;gap:-100px;justify-content:center;flex-direction:column;align-items:flex-start}.p1{color:gray;margin-left:30px;font-size:13px;height:20px}.p2{margin-left:30px;font-size:14px;font-weight:600;color:#1c77f7}}\n"] }]
974
- }], ctorParameters: function () { return [{ type: UserService }, { type: BaseService }, { type: StorageService }]; }, propDecorators: { department: [{
1004
+ <mat-toolbar color="primary">
1005
+ <span>Departamento Académico</span>
1006
+ <span class="spacer"></span>
1007
+ <button mat-icon-button (click)="sidenav.toggle()">
1008
+ <mat-icon class="mat-icon-button">menu</mat-icon>
1009
+ </button>
1010
+ </mat-toolbar>
1011
+
1012
+ <mat-nav-list *ngFor="let route of routes">
1013
+ <ipt-aside-button
1014
+ [buttonActive]="this.setPage === route.page"
1015
+ [url]="route.url"
1016
+ [type]="route.type"
1017
+ [icon]="route.icon"
1018
+ [text]="route.text"
1019
+ (isClicked)="clickPage(route.page)"
1020
+ >
1021
+ </ipt-aside-button>
1022
+
1023
+ <ipt-aside-button
1024
+ [buttonActive]="this.setPage === 'logout'"
1025
+ [url]="''"
1026
+ [type]="'0'"
1027
+ [icon]="'/assets/icons/cerrar-sesion.png'"
1028
+ [text]="'Cerrar sesión'"
1029
+ (isClicked)="clickPage('logout')"
1030
+ >
1031
+ </ipt-aside-button>
1032
+ </mat-nav-list>
1033
+ </mat-sidenav>
1034
+
1035
+ <mat-toolbar class="header">
1036
+ <button mat-icon-button (click)="sidenav.toggle()">
1037
+ <mat-icon>menu</mat-icon>
1038
+ </button>
1039
+ <img class="img-logo" src="/assets/logos/IPT-logo.png" alt="" />
1040
+ <div class="text-container">
1041
+ <span class="p1">{{ currentDay }}</span>
1042
+ <span *ngIf="hour >= 0 && hour < 12" class="p2">
1043
+ Hey {{userName}}, Good moorning!
1044
+ </span>
1045
+ <p *ngIf="hour >= 12 && hour < 18" class="p2">
1046
+ Hey {{userName}}, Good afternoon!
1047
+ </p>
1048
+ <p *ngIf="hour > 18 && hour < 4" class="p2">Hey {{userName}}, Good evening!</p>
1049
+ </div>
1050
+
1051
+ <div class="main-search-container">
1052
+ <div class="search-container">
1053
+ <input
1054
+ type="text"
1055
+ name="search"
1056
+ placeholder="What are you doing today?"
1057
+ class="search-input"
1058
+ />
1059
+ <!-- <hr class="hr-icon-search"> -->
1060
+ <a href="#" class="icon"> </a>
1061
+ </div>
1062
+ </div>
1063
+
1064
+ <div class="icons-container">
1065
+ <a href="#" class="notification-icon"></a>
1066
+ <hr class="hr-icons" />
1067
+ <a href="#" class="settings"></a>
1068
+ <hr class="hr-icons" />
1069
+ <a href="#" class="help"></a>
1070
+ </div>
1071
+
1072
+ <div class="profile-container">
1073
+ <p class="name-profile">{{userName}}</p>
1074
+ <div class="photo-profile"></div>
1075
+ </div>
1076
+ </mat-toolbar>
1077
+ `, styles: ["*{font-family:Poppins,sans-serif}@media screen and (min-width: 320px){.header{background-color:#fff;display:flex;justify-content:space-between;filter:drop-shadow(0px -1px 7px #000)}mat-sidenav{width:-moz-fit-content!important;width:fit-content!important;background-color:#1c77f7!important}.img-logo,.text-container{display:none}.mat-toolbar.mat-primary{background-color:#fff!important;color:#003d99!important;filter:drop-shadow(0px -1px 7px #000)}.icon{background-image:url(/assets/icons/icono-buscador.png);background-size:cover;background-position:center;width:40px;height:40px}.icons-container{border-radius:30px;height:50px;display:flex;justify-content:center;align-items:center;gap:5%;width:auto}.notification-icon{height:35px;width:35px;background-image:url(/assets/icons/notification-icon.png);background-position:center;background-size:cover;background-repeat:no-repeat}.settings{height:35px;width:35px;background-image:url(/assets/icons/settings.png);background-position:center;background-size:cover;background-repeat:no-repeat}.help{background:url(/assets/icons/help.png);background-position:center;background-size:cover;background-repeat:no-repeat;width:35px;height:35px;border-radius:50%}.hr-icons{border:none;border-left:1px solid #1c77f7;height:70%;width:1px}.hr-icon-search{border:none;border-left:1px solid #1c77f7;height:100%;width:1px}.profile-container{box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px;height:35px;width:auto;border-radius:30px;display:flex;margin-left:10px}.name-profile{display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin-left:20px;text-align:center;width:150px}.photo-profile{background:url(/assets/icons/photo-profile.png);background-size:40px 40px;background-position:center;background-repeat:no-repeat}.main-search-container{display:none}}@media screen and (min-width: 768px){.img-logo{display:flex;width:120px;height:60px}.text-container{border-radius:40px;height:45px;width:100%;display:flex;gap:-100px;justify-content:center;flex-direction:column;align-items:flex-start}.p1{color:gray;margin-left:30px;font-size:13px;height:20px}.p2{margin-left:30px;font-size:14px;font-weight:600;color:#1c77f7}.main-search-container{display:flex;justify-content:flex-end;align-items:center;width:-moz-available}.search-container{margin-right:10px;height:20px;width:20px;border-radius:30px;padding:10px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:.4s;box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px}.search-container:hover{width:300px;border-radius:30px;padding:10px 10px 10px 20px}.search-container:hover>.search-input{width:320px;border-radius:10px;padding-left:15px}.search-input{background:transparent;border:none;outline:none;width:0px;font-size:13px;transition:.8s}}\n"] }]
1078
+ }], ctorParameters: function () { return [{ type: UserService }, { type: StorageService }]; }, propDecorators: { department: [{
975
1079
  type: Input
976
1080
  }], setPage: [{
977
1081
  type: Input
1082
+ }], userName: [{
1083
+ type: Input
978
1084
  }], pageChangeEvent: [{
979
1085
  type: Output
980
1086
  }] } });