iptdevs-design-system 2.7.26 → 2.7.28
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.
- package/README.md +24 -24
- package/esm2020/iptdevs-design-system.mjs +4 -4
- package/esm2020/lib/components/atoms/aside-button/aside-button.component.mjs +50 -50
- package/esm2020/lib/components/atoms/button/button.component.mjs +64 -64
- package/esm2020/lib/components/atoms/checkbox/checkbox.component.mjs +47 -47
- package/esm2020/lib/components/atoms/datalist/datalist.component.mjs +94 -94
- package/esm2020/lib/components/atoms/input/input.component.mjs +145 -145
- package/esm2020/lib/components/atoms/level-button/level-button.component.mjs +64 -64
- package/esm2020/lib/components/atoms/level-text/level-text.component.mjs +19 -19
- package/esm2020/lib/components/atoms/loader/loader.component.mjs +48 -48
- package/esm2020/lib/components/atoms/radio/radio.component.mjs +47 -47
- package/esm2020/lib/components/atoms/select/select.component.mjs +102 -102
- package/esm2020/lib/components/atoms/text-link/text-link.component.mjs +39 -39
- package/esm2020/lib/components/components.module.mjs +118 -118
- package/esm2020/lib/components/forms/create-user-form/create-user-form.component.mjs +228 -228
- package/esm2020/lib/components/forms/login-form/login-form.component.mjs +93 -93
- package/esm2020/lib/components/material.module.mjs +19 -19
- package/esm2020/lib/components/molecules/sidenav/sidenav.component.mjs +150 -150
- package/esm2020/lib/core/core.module.mjs +70 -70
- package/esm2020/lib/core/models/academic/academic.component.mjs +2 -2
- package/esm2020/lib/core/models/activities/activities.interface.mjs +2 -2
- package/esm2020/lib/core/models/attendance/attendance.interface.mjs +2 -2
- package/esm2020/lib/core/models/budget/budget.model.mjs +2 -2
- package/esm2020/lib/core/models/calendar/calendar-rq.models.mjs +2 -2
- package/esm2020/lib/core/models/classroom/classroom-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/cod/cod-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/commercial/commercial.model.mjs +2 -2
- package/esm2020/lib/core/models/course/course-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/course/courses.model.mjs +2 -2
- package/esm2020/lib/core/models/cronogram/cronogram.models.mjs +2 -2
- package/esm2020/lib/core/models/marketing/marketing.model.mjs +2 -2
- package/esm2020/lib/core/models/notes/notes.interface.mjs +2 -2
- package/esm2020/lib/core/models/payment/payment-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/response/response.interface.mjs +2 -2
- package/esm2020/lib/core/models/session/session.model.mjs +3 -3
- package/esm2020/lib/core/models/student/student.interface.mjs +2 -2
- package/esm2020/lib/core/models/table/table-rs.model.mjs +2 -2
- package/esm2020/lib/core/models/test/test.model.mjs +2 -2
- package/esm2020/lib/core/models/url/url.model.mjs +2 -2
- package/esm2020/lib/core/models/user/user-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/user/user-rs.model.mjs +5 -5
- package/esm2020/lib/core/services/academic-service/academic.service.mjs +40 -35
- package/esm2020/lib/core/services/activity-service/activity.service.mjs +87 -87
- package/esm2020/lib/core/services/attendance-service/attendance.service.mjs +64 -64
- package/esm2020/lib/core/services/budget-service/budget-service.mjs +66 -66
- package/esm2020/lib/core/services/calendar-service/calendar.service.mjs +60 -60
- package/esm2020/lib/core/services/certificate-service/certificate.service.mjs +26 -26
- package/esm2020/lib/core/services/classroom-service/classroom-service.service.mjs +31 -31
- package/esm2020/lib/core/services/commercial-service/comercial.service.mjs +49 -44
- package/esm2020/lib/core/services/commercial-service/validators.mjs +4 -4
- package/esm2020/lib/core/services/course-service/course-service.model.mjs +70 -70
- package/esm2020/lib/core/services/ekt-service/userekt.service.mjs +29 -29
- package/esm2020/lib/core/services/marketing-service/marketing-service.mjs +52 -52
- package/esm2020/lib/core/services/notes-service/notes.service.mjs +46 -46
- package/esm2020/lib/core/services/parameters-service/parameters.service.mjs +173 -173
- package/esm2020/lib/core/services/service-enviroments.mjs +26 -26
- package/esm2020/lib/core/services/storage-service/storage-service.mjs +50 -50
- package/esm2020/lib/core/services/student-service/student.service.mjs +26 -26
- package/esm2020/lib/core/services/switch-service/switch.service.mjs +16 -16
- package/esm2020/lib/core/services/test-service/test.service.mjs +131 -131
- package/esm2020/lib/core/services/user-service/user-service.mjs +95 -95
- package/esm2020/lib/core/utils/base-service/base.service.mjs +186 -186
- package/esm2020/lib/core/utils/route-service/route.service.mjs +18 -18
- package/esm2020/lib/design-system.module.mjs +36 -36
- package/esm2020/public-api.mjs +70 -70
- package/fesm2015/iptdevs-design-system.mjs +2516 -2506
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +2513 -2503
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/iptdevs-design-system.d.ts +5 -5
- package/lib/components/atoms/aside-button/aside-button.component.d.ts +11 -11
- package/lib/components/atoms/button/button.component.d.ts +13 -13
- package/lib/components/atoms/checkbox/checkbox.component.d.ts +11 -11
- package/lib/components/atoms/datalist/datalist.component.d.ts +20 -20
- package/lib/components/atoms/input/input.component.d.ts +26 -26
- package/lib/components/atoms/level-button/level-button.component.d.ts +11 -11
- package/lib/components/atoms/level-text/level-text.component.d.ts +7 -7
- package/lib/components/atoms/loader/loader.component.d.ts +7 -7
- package/lib/components/atoms/radio/radio.component.d.ts +11 -11
- package/lib/components/atoms/select/select.component.d.ts +26 -26
- package/lib/components/atoms/text-link/text-link.component.d.ts +12 -12
- package/lib/components/components.module.d.ts +24 -24
- package/lib/components/forms/create-user-form/create-user-form.component.d.ts +36 -36
- package/lib/components/forms/login-form/login-form.component.d.ts +13 -13
- package/lib/components/material.module.d.ts +11 -11
- package/lib/components/molecules/sidenav/sidenav.component.d.ts +25 -25
- package/lib/core/core.module.d.ts +6 -6
- package/lib/core/models/academic/academic.component.d.ts +17 -13
- package/lib/core/models/activities/activities.interface.d.ts +12 -12
- package/lib/core/models/attendance/attendance.interface.d.ts +62 -62
- package/lib/core/models/budget/budget.model.d.ts +69 -69
- package/lib/core/models/calendar/calendar-rq.models.d.ts +27 -27
- package/lib/core/models/classroom/classroom-rq.model.d.ts +18 -18
- package/lib/core/models/cod/cod-rq.model.d.ts +106 -51
- package/lib/core/models/commercial/commercial.model.d.ts +10 -10
- package/lib/core/models/course/course-rq.model.d.ts +86 -86
- package/lib/core/models/course/courses.model.d.ts +18 -18
- package/lib/core/models/cronogram/cronogram.models.d.ts +183 -183
- package/lib/core/models/marketing/marketing.model.d.ts +104 -104
- package/lib/core/models/notes/notes.interface.d.ts +89 -89
- package/lib/core/models/payment/payment-rq.model.d.ts +212 -212
- package/lib/core/models/response/response.interface.d.ts +10 -10
- package/lib/core/models/session/session.model.d.ts +5 -5
- package/lib/core/models/student/student.interface.d.ts +4 -4
- package/lib/core/models/table/table-rs.model.d.ts +7 -7
- package/lib/core/models/test/test.model.d.ts +219 -219
- package/lib/core/models/url/url.model.d.ts +8 -8
- package/lib/core/models/user/user-rq.model.d.ts +86 -86
- package/lib/core/models/user/user-rs.model.d.ts +35 -35
- package/lib/core/services/academic-service/academic.service.d.ts +16 -15
- package/lib/core/services/activity-service/activity.service.d.ts +25 -25
- package/lib/core/services/attendance-service/attendance.service.d.ts +22 -22
- package/lib/core/services/budget-service/budget-service.d.ts +23 -23
- package/lib/core/services/calendar-service/calendar.service.d.ts +22 -22
- package/lib/core/services/certificate-service/certificate.service.d.ts +13 -13
- package/lib/core/services/classroom-service/classroom-service.service.d.ts +14 -14
- package/lib/core/services/commercial-service/comercial.service.d.ts +19 -17
- package/lib/core/services/commercial-service/validators.d.ts +2 -2
- package/lib/core/services/course-service/course-service.model.d.ts +23 -23
- package/lib/core/services/ekt-service/userekt.service.d.ts +13 -13
- package/lib/core/services/marketing-service/marketing-service.d.ts +19 -19
- package/lib/core/services/notes-service/notes.service.d.ts +18 -18
- package/lib/core/services/parameters-service/parameters.service.d.ts +49 -49
- package/lib/core/services/service-enviroments.d.ts +5 -5
- package/lib/core/services/storage-service/storage-service.d.ts +18 -18
- package/lib/core/services/student-service/student.service.d.ts +13 -13
- package/lib/core/services/switch-service/switch.service.d.ts +8 -8
- package/lib/core/services/test-service/test.service.d.ts +34 -34
- package/lib/core/services/user-service/user-service.d.ts +29 -29
- package/lib/core/utils/base-service/base.service.d.ts +22 -22
- package/lib/core/utils/route-service/route.service.d.ts +9 -9
- package/lib/design-system.module.d.ts +9 -9
- package/package.json +1 -1
- package/public-api.d.ts +61 -61
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
import { Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/forms";
|
|
5
|
-
import * as i2 from "../../../core/utils/base-service/base.service";
|
|
6
|
-
import * as i3 from "../../atoms/input/input.component";
|
|
7
|
-
import * as i4 from "../../atoms/button/button.component";
|
|
8
|
-
export class LoginFormComponent {
|
|
9
|
-
constructor(fb, baseService) {
|
|
10
|
-
this.baseService = baseService;
|
|
11
|
-
this.isLogged = new EventEmitter();
|
|
12
|
-
this.loginForm = fb.group({
|
|
13
|
-
email: ['', [Validators.required]],
|
|
14
|
-
password: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(15)]],
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
login(data) {
|
|
18
|
-
this.baseService.webLogin(data.controls['email'].value, data.controls['password'].value).then((isLogged) => {
|
|
19
|
-
this.isLogged.emit(isLogged);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
LoginFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoginFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.BaseService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
LoginFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: LoginFormComponent, selector: "ipt-login-form", outputs: { isLogged: "isLogged" }, ngImport: i0, template: `
|
|
25
|
-
<div class="form-container">
|
|
26
|
-
|
|
27
|
-
<h2 style="text-align: center;">IPT PLATFORM</h2>
|
|
28
|
-
<hr>
|
|
29
|
-
|
|
30
|
-
<form (ngSubmit)="login(loginForm)" [formGroup]="loginForm">
|
|
31
|
-
<ipt-input
|
|
32
|
-
[inputType]="'text'"
|
|
33
|
-
[placeHolder]="'Email'"
|
|
34
|
-
[validateText]="'Debe ser @inglesparatodos.edu.co'"
|
|
35
|
-
[control]="loginForm.controls['email']"
|
|
36
|
-
></ipt-input>
|
|
37
|
-
|
|
38
|
-
<ipt-input
|
|
39
|
-
[inputType]="'password'"
|
|
40
|
-
[placeHolder]="'Password'"
|
|
41
|
-
[control]="loginForm.controls['password']"
|
|
42
|
-
></ipt-input>
|
|
43
|
-
</form>
|
|
44
|
-
|
|
45
|
-
<div class="button-container">
|
|
46
|
-
<ipt-button
|
|
47
|
-
[label]="'Login'"
|
|
48
|
-
[primary]="true"
|
|
49
|
-
[isEnabled]="loginForm.valid"
|
|
50
|
-
(onClick)="login(loginForm)"
|
|
51
|
-
></ipt-button>
|
|
52
|
-
</div>
|
|
53
|
-
|
|
54
|
-
</div>
|
|
55
|
-
`, isInline: true, styles: [".form-container{display:grid;grid-template-columns:1fr;justify-items:center;width:350px}.with-background{background-color:#fff;border-radius:25px;box-shadow:#32325d40 0 50px 100px -20px,#0000004d 0 30px 60px -30px}h2{color:#1c77f7}hr{width:80%}form{margin-bottom:60px;display:grid;grid-template-columns:1fr;grid-gap:30px;gap:30px;width:100%}.button-container{margin-bottom:70px;align-items:center;display:flex;gap:50px}footer{background-color:#1c77f7;border-top-left-radius:25px;border-top-right-radius:25px;width:100%;height:100px;display:flex;align-items:center;justify-content:center}\n"], components: [{ type: i3.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal"], outputs: ["dateSelected"] }, { type: i4.ButtonComponent, selector: "ipt-button", inputs: ["primary", "size", "label", "buttonType", "isEnabled"], outputs: ["onClick"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoginFormComponent, decorators: [{
|
|
57
|
-
type: Component,
|
|
58
|
-
args: [{ selector: 'ipt-login-form', template: `
|
|
59
|
-
<div class="form-container">
|
|
60
|
-
|
|
61
|
-
<h2 style="text-align: center;">IPT PLATFORM</h2>
|
|
62
|
-
<hr>
|
|
63
|
-
|
|
64
|
-
<form (ngSubmit)="login(loginForm)" [formGroup]="loginForm">
|
|
65
|
-
<ipt-input
|
|
66
|
-
[inputType]="'text'"
|
|
67
|
-
[placeHolder]="'Email'"
|
|
68
|
-
[validateText]="'Debe ser @inglesparatodos.edu.co'"
|
|
69
|
-
[control]="loginForm.controls['email']"
|
|
70
|
-
></ipt-input>
|
|
71
|
-
|
|
72
|
-
<ipt-input
|
|
73
|
-
[inputType]="'password'"
|
|
74
|
-
[placeHolder]="'Password'"
|
|
75
|
-
[control]="loginForm.controls['password']"
|
|
76
|
-
></ipt-input>
|
|
77
|
-
</form>
|
|
78
|
-
|
|
79
|
-
<div class="button-container">
|
|
80
|
-
<ipt-button
|
|
81
|
-
[label]="'Login'"
|
|
82
|
-
[primary]="true"
|
|
83
|
-
[isEnabled]="loginForm.valid"
|
|
84
|
-
(onClick)="login(loginForm)"
|
|
85
|
-
></ipt-button>
|
|
86
|
-
</div>
|
|
87
|
-
|
|
88
|
-
</div>
|
|
89
|
-
`, styles: [".form-container{display:grid;grid-template-columns:1fr;justify-items:center;width:350px}.with-background{background-color:#fff;border-radius:25px;box-shadow:#32325d40 0 50px 100px -20px,#0000004d 0 30px 60px -30px}h2{color:#1c77f7}hr{width:80%}form{margin-bottom:60px;display:grid;grid-template-columns:1fr;grid-gap:30px;gap:30px;width:100%}.button-container{margin-bottom:70px;align-items:center;display:flex;gap:50px}footer{background-color:#1c77f7;border-top-left-radius:25px;border-top-right-radius:25px;width:100%;height:100px;display:flex;align-items:center;justify-content:center}\n"] }]
|
|
90
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.BaseService }]; }, propDecorators: { isLogged: [{
|
|
91
|
-
type: Output
|
|
92
|
-
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
5
|
+
import * as i2 from "../../../core/utils/base-service/base.service";
|
|
6
|
+
import * as i3 from "../../atoms/input/input.component";
|
|
7
|
+
import * as i4 from "../../atoms/button/button.component";
|
|
8
|
+
export class LoginFormComponent {
|
|
9
|
+
constructor(fb, baseService) {
|
|
10
|
+
this.baseService = baseService;
|
|
11
|
+
this.isLogged = new EventEmitter();
|
|
12
|
+
this.loginForm = fb.group({
|
|
13
|
+
email: ['', [Validators.required]],
|
|
14
|
+
password: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(15)]],
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
login(data) {
|
|
18
|
+
this.baseService.webLogin(data.controls['email'].value, data.controls['password'].value).then((isLogged) => {
|
|
19
|
+
this.isLogged.emit(isLogged);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
LoginFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoginFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.BaseService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
+
LoginFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: LoginFormComponent, selector: "ipt-login-form", outputs: { isLogged: "isLogged" }, ngImport: i0, template: `
|
|
25
|
+
<div class="form-container">
|
|
26
|
+
|
|
27
|
+
<h2 style="text-align: center;">IPT PLATFORM</h2>
|
|
28
|
+
<hr>
|
|
29
|
+
|
|
30
|
+
<form (ngSubmit)="login(loginForm)" [formGroup]="loginForm">
|
|
31
|
+
<ipt-input
|
|
32
|
+
[inputType]="'text'"
|
|
33
|
+
[placeHolder]="'Email'"
|
|
34
|
+
[validateText]="'Debe ser @inglesparatodos.edu.co'"
|
|
35
|
+
[control]="loginForm.controls['email']"
|
|
36
|
+
></ipt-input>
|
|
37
|
+
|
|
38
|
+
<ipt-input
|
|
39
|
+
[inputType]="'password'"
|
|
40
|
+
[placeHolder]="'Password'"
|
|
41
|
+
[control]="loginForm.controls['password']"
|
|
42
|
+
></ipt-input>
|
|
43
|
+
</form>
|
|
44
|
+
|
|
45
|
+
<div class="button-container">
|
|
46
|
+
<ipt-button
|
|
47
|
+
[label]="'Login'"
|
|
48
|
+
[primary]="true"
|
|
49
|
+
[isEnabled]="loginForm.valid"
|
|
50
|
+
(onClick)="login(loginForm)"
|
|
51
|
+
></ipt-button>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
</div>
|
|
55
|
+
`, isInline: true, styles: [".form-container{display:grid;grid-template-columns:1fr;justify-items:center;width:350px}.with-background{background-color:#fff;border-radius:25px;box-shadow:#32325d40 0 50px 100px -20px,#0000004d 0 30px 60px -30px}h2{color:#1c77f7}hr{width:80%}form{margin-bottom:60px;display:grid;grid-template-columns:1fr;grid-gap:30px;gap:30px;width:100%}.button-container{margin-bottom:70px;align-items:center;display:flex;gap:50px}footer{background-color:#1c77f7;border-top-left-radius:25px;border-top-right-radius:25px;width:100%;height:100px;display:flex;align-items:center;justify-content:center}\n"], components: [{ type: i3.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal"], outputs: ["dateSelected"] }, { type: i4.ButtonComponent, selector: "ipt-button", inputs: ["primary", "size", "label", "buttonType", "isEnabled"], outputs: ["onClick"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LoginFormComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'ipt-login-form', template: `
|
|
59
|
+
<div class="form-container">
|
|
60
|
+
|
|
61
|
+
<h2 style="text-align: center;">IPT PLATFORM</h2>
|
|
62
|
+
<hr>
|
|
63
|
+
|
|
64
|
+
<form (ngSubmit)="login(loginForm)" [formGroup]="loginForm">
|
|
65
|
+
<ipt-input
|
|
66
|
+
[inputType]="'text'"
|
|
67
|
+
[placeHolder]="'Email'"
|
|
68
|
+
[validateText]="'Debe ser @inglesparatodos.edu.co'"
|
|
69
|
+
[control]="loginForm.controls['email']"
|
|
70
|
+
></ipt-input>
|
|
71
|
+
|
|
72
|
+
<ipt-input
|
|
73
|
+
[inputType]="'password'"
|
|
74
|
+
[placeHolder]="'Password'"
|
|
75
|
+
[control]="loginForm.controls['password']"
|
|
76
|
+
></ipt-input>
|
|
77
|
+
</form>
|
|
78
|
+
|
|
79
|
+
<div class="button-container">
|
|
80
|
+
<ipt-button
|
|
81
|
+
[label]="'Login'"
|
|
82
|
+
[primary]="true"
|
|
83
|
+
[isEnabled]="loginForm.valid"
|
|
84
|
+
(onClick)="login(loginForm)"
|
|
85
|
+
></ipt-button>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
</div>
|
|
89
|
+
`, styles: [".form-container{display:grid;grid-template-columns:1fr;justify-items:center;width:350px}.with-background{background-color:#fff;border-radius:25px;box-shadow:#32325d40 0 50px 100px -20px,#0000004d 0 30px 60px -30px}h2{color:#1c77f7}hr{width:80%}form{margin-bottom:60px;display:grid;grid-template-columns:1fr;grid-gap:30px;gap:30px;width:100%}.button-container{margin-bottom:70px;align-items:center;display:flex;gap:50px}footer{background-color:#1c77f7;border-top-left-radius:25px;border-top-right-radius:25px;width:100%;height:100px;display:flex;align-items:center;justify-content:center}\n"] }]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.BaseService }]; }, propDecorators: { isLogged: [{
|
|
91
|
+
type: Output
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBd0NwRSxNQUFNLE9BQU8sa0JBQWtCO0lBTTdCLFlBQ0UsRUFBZSxFQUNQLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTnhCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBUS9DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN4RixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN6RyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQXBCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix5RkFuQ25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzJGQUlVLGtCQUFrQjtrQkFyQzlCLFNBQVM7K0JBQ0UsZ0JBQWdCLFlBQ2hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzRIQU1TLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXB0LWxvZ2luLWZvcm0nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250YWluZXJcIj5cclxuXHJcbiAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5JUFQgUExBVEZPUk08L2gyPlxyXG4gICAgICA8aHI+XHJcblxyXG4gICAgICA8Zm9ybSAobmdTdWJtaXQpPVwibG9naW4obG9naW5Gb3JtKVwiIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCI+XHJcbiAgICAgICAgPGlwdC1pbnB1dFxyXG4gICAgICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxyXG4gICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidFbWFpbCdcIlxyXG4gICAgICAgICAgW3ZhbGlkYXRlVGV4dF09XCInRGViZSBzZXIgQGluZ2xlc3BhcmF0b2Rvcy5lZHUuY28nXCJcclxuICAgICAgICAgIFtjb250cm9sXT1cImxvZ2luRm9ybS5jb250cm9sc1snZW1haWwnXVwiXHJcbiAgICAgICAgPjwvaXB0LWlucHV0PlxyXG5cclxuICAgICAgICA8aXB0LWlucHV0XHJcbiAgICAgICAgICBbaW5wdXRUeXBlXT1cIidwYXNzd29yZCdcIlxyXG4gICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidQYXNzd29yZCdcIlxyXG4gICAgICAgICAgW2NvbnRyb2xdPVwibG9naW5Gb3JtLmNvbnRyb2xzWydwYXNzd29yZCddXCJcclxuICAgICAgICA+PC9pcHQtaW5wdXQ+XHJcbiAgICAgIDwvZm9ybT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGlwdC1idXR0b25cclxuICAgICAgICAgIFtsYWJlbF09XCInTG9naW4nXCJcclxuICAgICAgICAgIFtwcmltYXJ5XT1cInRydWVcIlxyXG4gICAgICAgICAgW2lzRW5hYmxlZF09XCJsb2dpbkZvcm0udmFsaWRcIlxyXG4gICAgICAgICAgKG9uQ2xpY2spPVwibG9naW4obG9naW5Gb3JtKVwiXHJcbiAgICAgICAgPjwvaXB0LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi9sb2dpbi1mb3JtLmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTG9naW5Gb3JtQ29tcG9uZW50IHtcclxuXHJcbiAgQE91dHB1dCgpIGlzTG9nZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBsb2dpbkZvcm0hOiBGb3JtR3JvdXA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmxvZ2luRm9ybSA9IGZiLmdyb3VwKHtcclxuICAgICAgZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcGFzc3dvcmQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpLFZhbGlkYXRvcnMubWF4TGVuZ3RoKDE1KV1dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2dpbihkYXRhOiBGb3JtR3JvdXApIHtcclxuICAgIHRoaXMuYmFzZVNlcnZpY2Uud2ViTG9naW4oZGF0YS5jb250cm9sc1snZW1haWwnXS52YWx1ZSwgZGF0YS5jb250cm9sc1sncGFzc3dvcmQnXS52YWx1ZSkudGhlbigoaXNMb2dnZWQpID0+e1xyXG4gICAgICB0aGlzLmlzTG9nZ2VkLmVtaXQoaXNMb2dnZWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
3
|
-
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
4
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
-
import { MatListModule } from '@angular/material/list';
|
|
6
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class MaterialModule {
|
|
9
|
-
}
|
|
10
|
-
MaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
-
MaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MaterialModule, exports: [MatSidenavModule, MatToolbarModule, MatIconModule, MatListModule, MatButtonModule] });
|
|
12
|
-
MaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MaterialModule, imports: [MatSidenavModule, MatToolbarModule, MatIconModule, MatListModule, MatButtonModule] });
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MaterialModule, decorators: [{
|
|
14
|
-
type: NgModule,
|
|
15
|
-
args: [{
|
|
16
|
-
exports: [MatSidenavModule, MatToolbarModule, MatIconModule, MatListModule, MatButtonModule],
|
|
17
|
-
}]
|
|
18
|
-
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
3
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { MatListModule } from '@angular/material/list';
|
|
6
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class MaterialModule {
|
|
9
|
+
}
|
|
10
|
+
MaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
MaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MaterialModule, exports: [MatSidenavModule, MatToolbarModule, MatIconModule, MatListModule, MatButtonModule] });
|
|
12
|
+
MaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MaterialModule, imports: [MatSidenavModule, MatToolbarModule, MatIconModule, MatListModule, MatButtonModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MaterialModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
exports: [MatSidenavModule, MatToolbarModule, MatIconModule, MatListModule, MatButtonModule],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvbWF0ZXJpYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSzNELE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsWUFGZixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWU7NEdBRWhGLGNBQWMsWUFGZixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWU7MkZBRWhGLGNBQWM7a0JBSDFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7aUJBQzdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW01hdFNpZGVuYXZNb2R1bGUsIE1hdFRvb2xiYXJNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdExpc3RNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,150 +1,150 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
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/list";
|
|
9
|
-
import * as i7 from "../../atoms/aside-button/aside-button.component";
|
|
10
|
-
import * as i8 from "@angular/common";
|
|
11
|
-
export class SidenavComponent {
|
|
12
|
-
constructor(userService, baseService, storageService) {
|
|
13
|
-
this.userService = userService;
|
|
14
|
-
this.baseService = baseService;
|
|
15
|
-
this.storageService = storageService;
|
|
16
|
-
this.pageChangeEvent = new EventEmitter();
|
|
17
|
-
this.appUser = false;
|
|
18
|
-
this.routes = [];
|
|
19
|
-
this.options = { weekday: 'long', month: 'long', day: 'numeric' };
|
|
20
|
-
this.currentDay = new Date().toLocaleDateString('en-EN', this.options);
|
|
21
|
-
this.hour = new Date().getHours();
|
|
22
|
-
}
|
|
23
|
-
ngOnInit() {
|
|
24
|
-
let user = this.storageService.getCurrentUser()?.token;
|
|
25
|
-
let token = user === undefined ? '' : user;
|
|
26
|
-
let request = {
|
|
27
|
-
token: token,
|
|
28
|
-
};
|
|
29
|
-
this.userService.getRoutesForRole(request).subscribe((response) => {
|
|
30
|
-
this.routes = response.data;
|
|
31
|
-
});
|
|
32
|
-
this.appUser = this.baseService.isAnAppUser();
|
|
33
|
-
}
|
|
34
|
-
clickPage(event) {
|
|
35
|
-
this.pageChangeEvent.emit(event);
|
|
36
|
-
}
|
|
37
|
-
logout() {
|
|
38
|
-
this.storageService.logout();
|
|
39
|
-
this.pageChangeEvent.emit('logout');
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
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 });
|
|
43
|
-
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: `
|
|
44
|
-
<mat-sidenav #sidenav mode="push" >
|
|
45
|
-
<mat-toolbar color="primary" (click)="sidenav.toggle()">
|
|
46
|
-
<span style="font-size: 15px;">{{department}}</span>
|
|
47
|
-
<span class="menu-icon-close"></span>
|
|
48
|
-
</mat-toolbar>
|
|
49
|
-
|
|
50
|
-
<mat-nav-list *ngFor="let route of routes">
|
|
51
|
-
<nav class="flex-container-menu">
|
|
52
|
-
<ipt-aside-button
|
|
53
|
-
[buttonActive]="this.setPage === route.page"
|
|
54
|
-
[icon]="route.icon"
|
|
55
|
-
[text]="route.text"
|
|
56
|
-
(isClicked)="clickPage(route.page)"
|
|
57
|
-
(click)="sidenav.toggle()"
|
|
58
|
-
>
|
|
59
|
-
</ipt-aside-button>
|
|
60
|
-
</nav>
|
|
61
|
-
</mat-nav-list>
|
|
62
|
-
</mat-sidenav>
|
|
63
|
-
|
|
64
|
-
<mat-toolbar class="header">
|
|
65
|
-
<div class="menu-container" (click)="sidenav.toggle()">
|
|
66
|
-
<p>Menu</p>
|
|
67
|
-
<div class="menu-icon"></div>
|
|
68
|
-
</div>
|
|
69
|
-
|
|
70
|
-
<img class="img-logo" src="http://qa.iptdev.com.co/assets/logos/IPT-logo.png" alt="" />
|
|
71
|
-
|
|
72
|
-
<div class="text-container">
|
|
73
|
-
<span class="p1">{{ currentDay }}</span>
|
|
74
|
-
<span *ngIf="hour >= 0 && hour < 12" class="p2">
|
|
75
|
-
Hey {{ userName }}, Good moorning!
|
|
76
|
-
</span>
|
|
77
|
-
<p *ngIf="hour >= 12 && hour < 18" class="p2">
|
|
78
|
-
Hey {{ userName }}, Good afternoon!
|
|
79
|
-
</p>
|
|
80
|
-
<p *ngIf="hour >= 18 && hour < 24" class="p2">
|
|
81
|
-
Hey {{ userName }}, Good evening!
|
|
82
|
-
</p>
|
|
83
|
-
</div>
|
|
84
|
-
|
|
85
|
-
<div *ngIf="!this.appUser" class="logout-container" (click)="logout()">
|
|
86
|
-
<p class="logout-button">Cerrar sesión</p>
|
|
87
|
-
<div class="photo-logout"></div>
|
|
88
|
-
</div>
|
|
89
|
-
</mat-toolbar>
|
|
90
|
-
`, 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)}.logout-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}.logout-button{display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin-left:20px;text-align:center;width:150px}.photo-logout{background:url(http://qa.iptdev.com.co/assets/icons/exit.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat}.menu-icon{background:url(http://qa.iptdev.com.co/assets/icons/icon-menu.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat}.menu-icon-close{background:url(http://qa.iptdev.com.co/assets/icons/cruz.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat;width:35px;height:35px}.menu-container{box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px;height:35px;width:52.5px;width:auto;border-radius:30px;display:flex}.menu-container:hover{cursor:pointer}.menu-container p{width:85px;display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin:0 0 0 15px;text-align:center}}@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}.flex-container-menu{font-size:18px;color:#fff!important}.mat-nav-list{padding:0}\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.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i7.AsideButtonComponent, selector: "ipt-aside-button", inputs: ["icon", "text", "buttonActive"], outputs: ["isClicked"] }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SidenavComponent, decorators: [{
|
|
92
|
-
type: Component,
|
|
93
|
-
args: [{ selector: 'ipt-sidenav', template: `
|
|
94
|
-
<mat-sidenav #sidenav mode="push" >
|
|
95
|
-
<mat-toolbar color="primary" (click)="sidenav.toggle()">
|
|
96
|
-
<span style="font-size: 15px;">{{department}}</span>
|
|
97
|
-
<span class="menu-icon-close"></span>
|
|
98
|
-
</mat-toolbar>
|
|
99
|
-
|
|
100
|
-
<mat-nav-list *ngFor="let route of routes">
|
|
101
|
-
<nav class="flex-container-menu">
|
|
102
|
-
<ipt-aside-button
|
|
103
|
-
[buttonActive]="this.setPage === route.page"
|
|
104
|
-
[icon]="route.icon"
|
|
105
|
-
[text]="route.text"
|
|
106
|
-
(isClicked)="clickPage(route.page)"
|
|
107
|
-
(click)="sidenav.toggle()"
|
|
108
|
-
>
|
|
109
|
-
</ipt-aside-button>
|
|
110
|
-
</nav>
|
|
111
|
-
</mat-nav-list>
|
|
112
|
-
</mat-sidenav>
|
|
113
|
-
|
|
114
|
-
<mat-toolbar class="header">
|
|
115
|
-
<div class="menu-container" (click)="sidenav.toggle()">
|
|
116
|
-
<p>Menu</p>
|
|
117
|
-
<div class="menu-icon"></div>
|
|
118
|
-
</div>
|
|
119
|
-
|
|
120
|
-
<img class="img-logo" src="http://qa.iptdev.com.co/assets/logos/IPT-logo.png" alt="" />
|
|
121
|
-
|
|
122
|
-
<div class="text-container">
|
|
123
|
-
<span class="p1">{{ currentDay }}</span>
|
|
124
|
-
<span *ngIf="hour >= 0 && hour < 12" class="p2">
|
|
125
|
-
Hey {{ userName }}, Good moorning!
|
|
126
|
-
</span>
|
|
127
|
-
<p *ngIf="hour >= 12 && hour < 18" class="p2">
|
|
128
|
-
Hey {{ userName }}, Good afternoon!
|
|
129
|
-
</p>
|
|
130
|
-
<p *ngIf="hour >= 18 && hour < 24" class="p2">
|
|
131
|
-
Hey {{ userName }}, Good evening!
|
|
132
|
-
</p>
|
|
133
|
-
</div>
|
|
134
|
-
|
|
135
|
-
<div *ngIf="!this.appUser" class="logout-container" (click)="logout()">
|
|
136
|
-
<p class="logout-button">Cerrar sesión</p>
|
|
137
|
-
<div class="photo-logout"></div>
|
|
138
|
-
</div>
|
|
139
|
-
</mat-toolbar>
|
|
140
|
-
`, 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)}.logout-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}.logout-button{display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin-left:20px;text-align:center;width:150px}.photo-logout{background:url(http://qa.iptdev.com.co/assets/icons/exit.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat}.menu-icon{background:url(http://qa.iptdev.com.co/assets/icons/icon-menu.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat}.menu-icon-close{background:url(http://qa.iptdev.com.co/assets/icons/cruz.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat;width:35px;height:35px}.menu-container{box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px;height:35px;width:52.5px;width:auto;border-radius:30px;display:flex}.menu-container:hover{cursor:pointer}.menu-container p{width:85px;display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin:0 0 0 15px;text-align:center}}@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}.flex-container-menu{font-size:18px;color:#fff!important}.mat-nav-list{padding:0}\n"] }]
|
|
141
|
-
}], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.BaseService }, { type: i3.StorageService }]; }, propDecorators: { department: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}], setPage: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], userName: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}], pageChangeEvent: [{
|
|
148
|
-
type: Output
|
|
149
|
-
}] } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
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/list";
|
|
9
|
+
import * as i7 from "../../atoms/aside-button/aside-button.component";
|
|
10
|
+
import * as i8 from "@angular/common";
|
|
11
|
+
export class SidenavComponent {
|
|
12
|
+
constructor(userService, baseService, storageService) {
|
|
13
|
+
this.userService = userService;
|
|
14
|
+
this.baseService = baseService;
|
|
15
|
+
this.storageService = storageService;
|
|
16
|
+
this.pageChangeEvent = new EventEmitter();
|
|
17
|
+
this.appUser = false;
|
|
18
|
+
this.routes = [];
|
|
19
|
+
this.options = { weekday: 'long', month: 'long', day: 'numeric' };
|
|
20
|
+
this.currentDay = new Date().toLocaleDateString('en-EN', this.options);
|
|
21
|
+
this.hour = new Date().getHours();
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
let user = this.storageService.getCurrentUser()?.token;
|
|
25
|
+
let token = user === undefined ? '' : user;
|
|
26
|
+
let request = {
|
|
27
|
+
token: token,
|
|
28
|
+
};
|
|
29
|
+
this.userService.getRoutesForRole(request).subscribe((response) => {
|
|
30
|
+
this.routes = response.data;
|
|
31
|
+
});
|
|
32
|
+
this.appUser = this.baseService.isAnAppUser();
|
|
33
|
+
}
|
|
34
|
+
clickPage(event) {
|
|
35
|
+
this.pageChangeEvent.emit(event);
|
|
36
|
+
}
|
|
37
|
+
logout() {
|
|
38
|
+
this.storageService.logout();
|
|
39
|
+
this.pageChangeEvent.emit('logout');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
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 });
|
|
43
|
+
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: `
|
|
44
|
+
<mat-sidenav #sidenav mode="push" >
|
|
45
|
+
<mat-toolbar color="primary" (click)="sidenav.toggle()">
|
|
46
|
+
<span style="font-size: 15px;">{{department}}</span>
|
|
47
|
+
<span class="menu-icon-close"></span>
|
|
48
|
+
</mat-toolbar>
|
|
49
|
+
|
|
50
|
+
<mat-nav-list *ngFor="let route of routes">
|
|
51
|
+
<nav class="flex-container-menu">
|
|
52
|
+
<ipt-aside-button
|
|
53
|
+
[buttonActive]="this.setPage === route.page"
|
|
54
|
+
[icon]="route.icon"
|
|
55
|
+
[text]="route.text"
|
|
56
|
+
(isClicked)="clickPage(route.page)"
|
|
57
|
+
(click)="sidenav.toggle()"
|
|
58
|
+
>
|
|
59
|
+
</ipt-aside-button>
|
|
60
|
+
</nav>
|
|
61
|
+
</mat-nav-list>
|
|
62
|
+
</mat-sidenav>
|
|
63
|
+
|
|
64
|
+
<mat-toolbar class="header">
|
|
65
|
+
<div class="menu-container" (click)="sidenav.toggle()">
|
|
66
|
+
<p>Menu</p>
|
|
67
|
+
<div class="menu-icon"></div>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<img class="img-logo" src="http://qa.iptdev.com.co/assets/logos/IPT-logo.png" alt="" />
|
|
71
|
+
|
|
72
|
+
<div class="text-container">
|
|
73
|
+
<span class="p1">{{ currentDay }}</span>
|
|
74
|
+
<span *ngIf="hour >= 0 && hour < 12" class="p2">
|
|
75
|
+
Hey {{ userName }}, Good moorning!
|
|
76
|
+
</span>
|
|
77
|
+
<p *ngIf="hour >= 12 && hour < 18" class="p2">
|
|
78
|
+
Hey {{ userName }}, Good afternoon!
|
|
79
|
+
</p>
|
|
80
|
+
<p *ngIf="hour >= 18 && hour < 24" class="p2">
|
|
81
|
+
Hey {{ userName }}, Good evening!
|
|
82
|
+
</p>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div *ngIf="!this.appUser" class="logout-container" (click)="logout()">
|
|
86
|
+
<p class="logout-button">Cerrar sesión</p>
|
|
87
|
+
<div class="photo-logout"></div>
|
|
88
|
+
</div>
|
|
89
|
+
</mat-toolbar>
|
|
90
|
+
`, 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)}.logout-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}.logout-button{display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin-left:20px;text-align:center;width:150px}.photo-logout{background:url(http://qa.iptdev.com.co/assets/icons/exit.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat}.menu-icon{background:url(http://qa.iptdev.com.co/assets/icons/icon-menu.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat}.menu-icon-close{background:url(http://qa.iptdev.com.co/assets/icons/cruz.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat;width:35px;height:35px}.menu-container{box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px;height:35px;width:52.5px;width:auto;border-radius:30px;display:flex}.menu-container:hover{cursor:pointer}.menu-container p{width:85px;display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin:0 0 0 15px;text-align:center}}@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}.flex-container-menu{font-size:18px;color:#fff!important}.mat-nav-list{padding:0}\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.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i7.AsideButtonComponent, selector: "ipt-aside-button", inputs: ["icon", "text", "buttonActive"], outputs: ["isClicked"] }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SidenavComponent, decorators: [{
|
|
92
|
+
type: Component,
|
|
93
|
+
args: [{ selector: 'ipt-sidenav', template: `
|
|
94
|
+
<mat-sidenav #sidenav mode="push" >
|
|
95
|
+
<mat-toolbar color="primary" (click)="sidenav.toggle()">
|
|
96
|
+
<span style="font-size: 15px;">{{department}}</span>
|
|
97
|
+
<span class="menu-icon-close"></span>
|
|
98
|
+
</mat-toolbar>
|
|
99
|
+
|
|
100
|
+
<mat-nav-list *ngFor="let route of routes">
|
|
101
|
+
<nav class="flex-container-menu">
|
|
102
|
+
<ipt-aside-button
|
|
103
|
+
[buttonActive]="this.setPage === route.page"
|
|
104
|
+
[icon]="route.icon"
|
|
105
|
+
[text]="route.text"
|
|
106
|
+
(isClicked)="clickPage(route.page)"
|
|
107
|
+
(click)="sidenav.toggle()"
|
|
108
|
+
>
|
|
109
|
+
</ipt-aside-button>
|
|
110
|
+
</nav>
|
|
111
|
+
</mat-nav-list>
|
|
112
|
+
</mat-sidenav>
|
|
113
|
+
|
|
114
|
+
<mat-toolbar class="header">
|
|
115
|
+
<div class="menu-container" (click)="sidenav.toggle()">
|
|
116
|
+
<p>Menu</p>
|
|
117
|
+
<div class="menu-icon"></div>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<img class="img-logo" src="http://qa.iptdev.com.co/assets/logos/IPT-logo.png" alt="" />
|
|
121
|
+
|
|
122
|
+
<div class="text-container">
|
|
123
|
+
<span class="p1">{{ currentDay }}</span>
|
|
124
|
+
<span *ngIf="hour >= 0 && hour < 12" class="p2">
|
|
125
|
+
Hey {{ userName }}, Good moorning!
|
|
126
|
+
</span>
|
|
127
|
+
<p *ngIf="hour >= 12 && hour < 18" class="p2">
|
|
128
|
+
Hey {{ userName }}, Good afternoon!
|
|
129
|
+
</p>
|
|
130
|
+
<p *ngIf="hour >= 18 && hour < 24" class="p2">
|
|
131
|
+
Hey {{ userName }}, Good evening!
|
|
132
|
+
</p>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
<div *ngIf="!this.appUser" class="logout-container" (click)="logout()">
|
|
136
|
+
<p class="logout-button">Cerrar sesión</p>
|
|
137
|
+
<div class="photo-logout"></div>
|
|
138
|
+
</div>
|
|
139
|
+
</mat-toolbar>
|
|
140
|
+
`, 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)}.logout-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}.logout-button{display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin-left:20px;text-align:center;width:150px}.photo-logout{background:url(http://qa.iptdev.com.co/assets/icons/exit.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat}.menu-icon{background:url(http://qa.iptdev.com.co/assets/icons/icon-menu.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat}.menu-icon-close{background:url(http://qa.iptdev.com.co/assets/icons/cruz.png);background-size:25px 25px;background-position:center;background-repeat:no-repeat;width:35px;height:35px}.menu-container{box-shadow:#11111a1a 0 8px 24px,#11111a1a 0 16px 56px,#11111a1a 0 24px 80px;height:35px;width:52.5px;width:auto;border-radius:30px;display:flex}.menu-container:hover{cursor:pointer}.menu-container p{width:85px;display:flex;align-items:center;color:#1c77f7;font-weight:500;font-size:16px;margin:0 0 0 15px;text-align:center}}@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}.flex-container-menu{font-size:18px;color:#fff!important}.mat-nav-list{padding:0}\n"] }]
|
|
141
|
+
}], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.BaseService }, { type: i3.StorageService }]; }, propDecorators: { department: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], setPage: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], userName: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], pageChangeEvent: [{
|
|
148
|
+
type: Output
|
|
149
|
+
}] } });
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBMkQvRSxNQUFNLE9BQU8sZ0JBQWdCO0lBWTNCLFlBQ1UsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsY0FBOEI7UUFGOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBWDlCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV2RCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxlQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBTTFCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxLQUFLLENBQUM7UUFDdkQsSUFBSSxLQUFLLEdBQVcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFbkQsSUFBSSxPQUFPLEdBQWdCO1lBQ3pCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7NkdBeENVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG9MQWxEakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUOzJGQUdVLGdCQUFnQjtrQkFwRDVCLFNBQVM7K0JBQ0UsYUFBYSxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVDt5SkFJUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJUb2tlblJxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvdXNlci91c2VyLXJxLm1vZGVsJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3N0b3JhZ2Utc2VydmljZS9zdG9yYWdlLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdXNlci1zZXJ2aWNlL3VzZXItc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwdC1zaWRlbmF2JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1zaWRlbmF2ICNzaWRlbmF2IG1vZGU9XCJwdXNoXCIgPlxyXG4gICAgICA8bWF0LXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIj5cclxuICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTVweDtcIj57e2RlcGFydG1lbnR9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaWNvbi1jbG9zZVwiPjwvc3Bhbj5cclxuICAgICAgPC9tYXQtdG9vbGJhcj5cclxuXHJcbiAgICAgIDxtYXQtbmF2LWxpc3QgKm5nRm9yPVwibGV0IHJvdXRlIG9mIHJvdXRlc1wiPlxyXG4gICAgICAgIDxuYXYgY2xhc3M9XCJmbGV4LWNvbnRhaW5lci1tZW51XCI+XHJcbiAgICAgICAgICA8aXB0LWFzaWRlLWJ1dHRvblxyXG4gICAgICAgICAgICBbYnV0dG9uQWN0aXZlXT1cInRoaXMuc2V0UGFnZSA9PT0gcm91dGUucGFnZVwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cInJvdXRlLmljb25cIlxyXG4gICAgICAgICAgICBbdGV4dF09XCJyb3V0ZS50ZXh0XCJcclxuICAgICAgICAgICAgKGlzQ2xpY2tlZCk9XCJjbGlja1BhZ2Uocm91dGUucGFnZSlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2lkZW5hdi50b2dnbGUoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2lwdC1hc2lkZS1idXR0b24+XHJcbiAgICAgICAgPC9uYXY+XHJcbiAgICAgIDwvbWF0LW5hdi1saXN0PlxyXG4gICAgPC9tYXQtc2lkZW5hdj5cclxuXHJcbiAgICA8bWF0LXRvb2xiYXIgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCIgKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIj5cclxuICAgICAgICA8cD5NZW51PC9wPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWljb25cIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ29cIiBzcmM9XCJodHRwOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvSVBULWxvZ28ucG5nXCIgYWx0PVwiXCIgLz5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicDFcIj57eyBjdXJyZW50RGF5IH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaG91ciA+PSAwICYmIGhvdXIgPCAxMlwiIGNsYXNzPVwicDJcIj5cclxuICAgICAgICAgIEhleSB7eyB1c2VyTmFtZSB9fSwgR29vZCBtb29ybmluZyFcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHAgKm5nSWY9XCJob3VyID49IDEyICYmIGhvdXIgPCAxOFwiIGNsYXNzPVwicDJcIj5cclxuICAgICAgICAgIEhleSB7eyB1c2VyTmFtZSB9fSwgR29vZCBhZnRlcm5vb24hXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxwICpuZ0lmPVwiaG91ciA+PSAxOCAmJiBob3VyIDwgMjRcIiBjbGFzcz1cInAyXCI+XHJcbiAgICAgICAgICBIZXkge3sgdXNlck5hbWUgfX0sIEdvb2QgZXZlbmluZyFcclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cIiF0aGlzLmFwcFVzZXJcIiBjbGFzcz1cImxvZ291dC1jb250YWluZXJcIiAoY2xpY2spPVwibG9nb3V0KClcIj5cclxuICAgICAgICA8cCBjbGFzcz1cImxvZ291dC1idXR0b25cIj5DZXJyYXIgc2VzacOzbjwvcD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGhvdG8tbG9nb3V0XCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtdG9vbGJhcj5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogWycuL3NpZGVuYXYuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlbmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkZXBhcnRtZW50ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNldFBhZ2UhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXNlck5hbWUhOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBhcHBVc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcm91dGVzOiBhbnlbXSA9IFtdO1xyXG4gIG9wdGlvbnM6IGFueSA9IHsgd2Vla2RheTogJ2xvbmcnLCBtb250aDogJ2xvbmcnLCBkYXk6ICdudW1lcmljJyB9O1xyXG4gIGN1cnJlbnREYXkgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tRU4nLCB0aGlzLm9wdGlvbnMpO1xyXG4gIGhvdXIgPSBuZXcgRGF0ZSgpLmdldEhvdXJzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCB1c2VyID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDdXJyZW50VXNlcigpPy50b2tlbjtcclxuICAgIGxldCB0b2tlbjogc3RyaW5nID0gdXNlciA9PT0gdW5kZWZpbmVkID8gJycgOiB1c2VyO1xyXG5cclxuICAgIGxldCByZXF1ZXN0OiBVc2VyVG9rZW5ScSA9IHtcclxuICAgICAgdG9rZW46IHRva2VuLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldFJvdXRlc0ZvclJvbGUocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLnJvdXRlcyA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFwcFVzZXIgPSB0aGlzLmJhc2VTZXJ2aWNlLmlzQW5BcHBVc2VyKCk7XHJcbiAgfVxyXG5cclxuICBjbGlja1BhZ2UoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlRXZlbnQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmxvZ291dCgpO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlRXZlbnQuZW1pdCgnbG9nb3V0Jyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|