iptdevs-design-system 2.6.43 → 2.6.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +24 -24
  2. package/esm2020/iptdevs-design-system.mjs +4 -4
  3. package/esm2020/lib/components/atoms/aside-button/aside-button.component.mjs +50 -50
  4. package/esm2020/lib/components/atoms/button/button.component.mjs +64 -64
  5. package/esm2020/lib/components/atoms/checkbox/checkbox.component.mjs +47 -47
  6. package/esm2020/lib/components/atoms/datalist/datalist.component.mjs +94 -94
  7. package/esm2020/lib/components/atoms/input/input.component.mjs +145 -145
  8. package/esm2020/lib/components/atoms/level-button/level-button.component.mjs +64 -64
  9. package/esm2020/lib/components/atoms/level-text/level-text.component.mjs +19 -19
  10. package/esm2020/lib/components/atoms/loader/loader.component.mjs +48 -48
  11. package/esm2020/lib/components/atoms/radio/radio.component.mjs +47 -47
  12. package/esm2020/lib/components/atoms/select/select.component.mjs +92 -92
  13. package/esm2020/lib/components/atoms/text-link/text-link.component.mjs +39 -39
  14. package/esm2020/lib/components/components.module.mjs +118 -118
  15. package/esm2020/lib/components/forms/create-user-form/create-user-form.component.mjs +228 -228
  16. package/esm2020/lib/components/forms/login-form/login-form.component.mjs +93 -93
  17. package/esm2020/lib/components/material.module.mjs +19 -19
  18. package/esm2020/lib/components/molecules/sidenav/sidenav.component.mjs +150 -146
  19. package/esm2020/lib/core/core.module.mjs +52 -52
  20. package/esm2020/lib/core/models/activities/activities.interface.mjs +2 -2
  21. package/esm2020/lib/core/models/attendance/attendance.interface.mjs +2 -2
  22. package/esm2020/lib/core/models/budget/budget.model.mjs +2 -2
  23. package/esm2020/lib/core/models/calendar/calendar-rq.models.mjs +2 -2
  24. package/esm2020/lib/core/models/classroom/classroom-rq.model.mjs +2 -2
  25. package/esm2020/lib/core/models/cod/cod-rq.model.mjs +2 -2
  26. package/esm2020/lib/core/models/course/course-rq.model.mjs +2 -2
  27. package/esm2020/lib/core/models/cronogram/cronogram.models.mjs +2 -2
  28. package/esm2020/lib/core/models/marketing/marketing.model.mjs +2 -2
  29. package/esm2020/lib/core/models/notes/notes.interface.mjs +2 -2
  30. package/esm2020/lib/core/models/response/response.interface.mjs +2 -2
  31. package/esm2020/lib/core/models/session/session.model.mjs +3 -3
  32. package/esm2020/lib/core/models/student/student.interface.mjs +2 -2
  33. package/esm2020/lib/core/models/table/table-rs.model.mjs +2 -2
  34. package/esm2020/lib/core/models/test/test.model.mjs +2 -2
  35. package/esm2020/lib/core/models/url/url.model.mjs +2 -2
  36. package/esm2020/lib/core/models/user/user-rq.model.mjs +2 -2
  37. package/esm2020/lib/core/models/user/user-rs.model.mjs +5 -5
  38. package/esm2020/lib/core/services/activity-service/activity.service.mjs +92 -92
  39. package/esm2020/lib/core/services/attendance-service/attendance.service.mjs +69 -69
  40. package/esm2020/lib/core/services/budget-service/budget-service.mjs +41 -41
  41. package/esm2020/lib/core/services/calendar-service/calendar.service.mjs +59 -59
  42. package/esm2020/lib/core/services/classroom-service/classroom-service.service.mjs +36 -36
  43. package/esm2020/lib/core/services/course-service/course-service.model.mjs +75 -75
  44. package/esm2020/lib/core/services/marketing-service/marketing-service.mjs +57 -57
  45. package/esm2020/lib/core/services/notes-service/notes.service.mjs +50 -50
  46. package/esm2020/lib/core/services/parameters-service/parameters.service.mjs +114 -114
  47. package/esm2020/lib/core/services/storage-service/storage-service.mjs +50 -50
  48. package/esm2020/lib/core/services/student-service/student.service.mjs +30 -30
  49. package/esm2020/lib/core/services/switch-service/switch.service.mjs +16 -16
  50. package/esm2020/lib/core/services/test-service/test.service.mjs +136 -136
  51. package/esm2020/lib/core/services/user-service/user-service.mjs +84 -84
  52. package/esm2020/lib/core/utils/base-service/base.service.mjs +183 -179
  53. package/esm2020/lib/core/utils/route-service/route.service.mjs +18 -18
  54. package/esm2020/lib/design-system.module.mjs +36 -36
  55. package/esm2020/public-api.mjs +61 -61
  56. package/fesm2015/iptdevs-design-system.mjs +2293 -2285
  57. package/fesm2015/iptdevs-design-system.mjs.map +1 -1
  58. package/fesm2020/iptdevs-design-system.mjs +2290 -2282
  59. package/fesm2020/iptdevs-design-system.mjs.map +1 -1
  60. package/iptdevs-design-system.d.ts +5 -5
  61. package/lib/components/atoms/aside-button/aside-button.component.d.ts +11 -11
  62. package/lib/components/atoms/button/button.component.d.ts +13 -13
  63. package/lib/components/atoms/checkbox/checkbox.component.d.ts +11 -11
  64. package/lib/components/atoms/datalist/datalist.component.d.ts +20 -20
  65. package/lib/components/atoms/input/input.component.d.ts +26 -26
  66. package/lib/components/atoms/level-button/level-button.component.d.ts +11 -11
  67. package/lib/components/atoms/level-text/level-text.component.d.ts +7 -7
  68. package/lib/components/atoms/loader/loader.component.d.ts +7 -7
  69. package/lib/components/atoms/radio/radio.component.d.ts +11 -11
  70. package/lib/components/atoms/select/select.component.d.ts +24 -24
  71. package/lib/components/atoms/text-link/text-link.component.d.ts +12 -12
  72. package/lib/components/components.module.d.ts +24 -24
  73. package/lib/components/forms/create-user-form/create-user-form.component.d.ts +36 -36
  74. package/lib/components/forms/login-form/login-form.component.d.ts +13 -13
  75. package/lib/components/material.module.d.ts +11 -11
  76. package/lib/components/molecules/sidenav/sidenav.component.d.ts +25 -22
  77. package/lib/core/core.module.d.ts +6 -6
  78. package/lib/core/models/activities/activities.interface.d.ts +12 -12
  79. package/lib/core/models/attendance/attendance.interface.d.ts +62 -62
  80. package/lib/core/models/budget/budget.model.d.ts +69 -69
  81. package/lib/core/models/calendar/calendar-rq.models.d.ts +27 -27
  82. package/lib/core/models/classroom/classroom-rq.model.d.ts +18 -18
  83. package/lib/core/models/cod/cod-rq.model.d.ts +51 -51
  84. package/lib/core/models/course/course-rq.model.d.ts +86 -86
  85. package/lib/core/models/cronogram/cronogram.models.d.ts +183 -183
  86. package/lib/core/models/marketing/marketing.model.d.ts +104 -104
  87. package/lib/core/models/notes/notes.interface.d.ts +89 -89
  88. package/lib/core/models/response/response.interface.d.ts +10 -10
  89. package/lib/core/models/session/session.model.d.ts +5 -5
  90. package/lib/core/models/student/student.interface.d.ts +4 -4
  91. package/lib/core/models/table/table-rs.model.d.ts +7 -7
  92. package/lib/core/models/test/test.model.d.ts +219 -219
  93. package/lib/core/models/url/url.model.d.ts +8 -8
  94. package/lib/core/models/user/user-rq.model.d.ts +91 -91
  95. package/lib/core/models/user/user-rs.model.d.ts +35 -35
  96. package/lib/core/services/activity-service/activity.service.d.ts +26 -26
  97. package/lib/core/services/attendance-service/attendance.service.d.ts +23 -23
  98. package/lib/core/services/budget-service/budget-service.d.ts +16 -16
  99. package/lib/core/services/calendar-service/calendar.service.d.ts +22 -22
  100. package/lib/core/services/classroom-service/classroom-service.service.d.ts +15 -15
  101. package/lib/core/services/course-service/course-service.model.d.ts +24 -24
  102. package/lib/core/services/marketing-service/marketing-service.d.ts +20 -20
  103. package/lib/core/services/notes-service/notes.service.d.ts +19 -19
  104. package/lib/core/services/parameters-service/parameters.service.d.ts +34 -34
  105. package/lib/core/services/storage-service/storage-service.d.ts +18 -18
  106. package/lib/core/services/student-service/student.service.d.ts +14 -14
  107. package/lib/core/services/switch-service/switch.service.d.ts +8 -8
  108. package/lib/core/services/test-service/test.service.d.ts +35 -35
  109. package/lib/core/services/user-service/user-service.d.ts +26 -26
  110. package/lib/core/utils/base-service/base.service.d.ts +22 -21
  111. package/lib/core/utils/route-service/route.service.d.ts +9 -9
  112. package/lib/design-system.module.d.ts +9 -9
  113. package/package.json +1 -1
  114. package/public-api.d.ts +52 -52
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBd0NwRSxNQUFNLE9BQU8sa0JBQWtCO0lBTTdCLFlBQ0UsRUFBZSxFQUNQLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTnhCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBUS9DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN4RixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN6RyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQXBCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix5RkFuQ25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzJGQUlVLGtCQUFrQjtrQkFyQzlCLFNBQVM7K0JBQ0UsZ0JBQWdCLFlBQ2hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzRIQU1TLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXB0LWxvZ2luLWZvcm0nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250YWluZXJcIj5cclxuXHJcbiAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5JUFQgUExBVEZPUk08L2gyPlxyXG4gICAgICA8aHI+XHJcblxyXG4gICAgICA8Zm9ybSAobmdTdWJtaXQpPVwibG9naW4obG9naW5Gb3JtKVwiIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCI+XHJcbiAgICAgICAgPGlwdC1pbnB1dFxyXG4gICAgICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxyXG4gICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidFbWFpbCdcIlxyXG4gICAgICAgICAgW3ZhbGlkYXRlVGV4dF09XCInRGViZSBzZXIgQGluZ2xlc3BhcmF0b2Rvcy5lZHUuY28nXCJcclxuICAgICAgICAgIFtjb250cm9sXT1cImxvZ2luRm9ybS5jb250cm9sc1snZW1haWwnXVwiXHJcbiAgICAgICAgPjwvaXB0LWlucHV0PlxyXG5cclxuICAgICAgICA8aXB0LWlucHV0XHJcbiAgICAgICAgICBbaW5wdXRUeXBlXT1cIidwYXNzd29yZCdcIlxyXG4gICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidQYXNzd29yZCdcIlxyXG4gICAgICAgICAgW2NvbnRyb2xdPVwibG9naW5Gb3JtLmNvbnRyb2xzWydwYXNzd29yZCddXCJcclxuICAgICAgICA+PC9pcHQtaW5wdXQ+XHJcbiAgICAgIDwvZm9ybT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGlwdC1idXR0b25cclxuICAgICAgICAgIFtsYWJlbF09XCInTG9naW4nXCJcclxuICAgICAgICAgIFtwcmltYXJ5XT1cInRydWVcIlxyXG4gICAgICAgICAgW2lzRW5hYmxlZF09XCJsb2dpbkZvcm0udmFsaWRcIlxyXG4gICAgICAgICAgKG9uQ2xpY2spPVwibG9naW4obG9naW5Gb3JtKVwiXHJcbiAgICAgICAgPjwvaXB0LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi9sb2dpbi1mb3JtLmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTG9naW5Gb3JtQ29tcG9uZW50IHtcclxuXHJcbiAgQE91dHB1dCgpIGlzTG9nZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBsb2dpbkZvcm0hOiBGb3JtR3JvdXA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmxvZ2luRm9ybSA9IGZiLmdyb3VwKHtcclxuICAgICAgZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcGFzc3dvcmQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpLFZhbGlkYXRvcnMubWF4TGVuZ3RoKDE1KV1dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2dpbihkYXRhOiBGb3JtR3JvdXApIHtcclxuICAgIHRoaXMuYmFzZVNlcnZpY2Uud2ViTG9naW4oZGF0YS5jb250cm9sc1snZW1haWwnXS52YWx1ZSwgZGF0YS5jb250cm9sc1sncGFzc3dvcmQnXS52YWx1ZSkudGhlbigoaXNMb2dnZWQpID0+e1xyXG4gICAgICB0aGlzLmlzTG9nZ2VkLmVtaXQoaXNMb2dnZWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBd0NwRSxNQUFNLE9BQU8sa0JBQWtCO0lBTTdCLFlBQ0UsRUFBZSxFQUNQLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTnhCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBUS9DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN4RixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN6RyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQXBCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix5RkFuQ25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzJGQUlVLGtCQUFrQjtrQkFyQzlCLFNBQVM7K0JBQ0UsZ0JBQWdCLFlBQ2hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzRIQU1TLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpcHQtbG9naW4tZm9ybScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY29udGFpbmVyXCI+XG5cbiAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5JUFQgUExBVEZPUk08L2gyPlxuICAgICAgPGhyPlxuXG4gICAgICA8Zm9ybSAobmdTdWJtaXQpPVwibG9naW4obG9naW5Gb3JtKVwiIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCI+XG4gICAgICAgIDxpcHQtaW5wdXRcbiAgICAgICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidFbWFpbCdcIlxuICAgICAgICAgIFt2YWxpZGF0ZVRleHRdPVwiJ0RlYmUgc2VyIEBpbmdsZXNwYXJhdG9kb3MuZWR1LmNvJ1wiXG4gICAgICAgICAgW2NvbnRyb2xdPVwibG9naW5Gb3JtLmNvbnRyb2xzWydlbWFpbCddXCJcbiAgICAgICAgPjwvaXB0LWlucHV0PlxuXG4gICAgICAgIDxpcHQtaW5wdXRcbiAgICAgICAgICBbaW5wdXRUeXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgICAgIFtwbGFjZUhvbGRlcl09XCInUGFzc3dvcmQnXCJcbiAgICAgICAgICBbY29udHJvbF09XCJsb2dpbkZvcm0uY29udHJvbHNbJ3Bhc3N3b3JkJ11cIlxuICAgICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICA8L2Zvcm0+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XG4gICAgICAgIDxpcHQtYnV0dG9uXG4gICAgICAgICAgW2xhYmVsXT1cIidMb2dpbidcIlxuICAgICAgICAgIFtwcmltYXJ5XT1cInRydWVcIlxuICAgICAgICAgIFtpc0VuYWJsZWRdPVwibG9naW5Gb3JtLnZhbGlkXCJcbiAgICAgICAgICAob25DbGljayk9XCJsb2dpbihsb2dpbkZvcm0pXCJcbiAgICAgICAgPjwvaXB0LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2xvZ2luLWZvcm0uY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBMb2dpbkZvcm1Db21wb25lbnQge1xuXG4gIEBPdXRwdXQoKSBpc0xvZ2dlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBsb2dpbkZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLmxvZ2luRm9ybSA9IGZiLmdyb3VwKHtcbiAgICAgIGVtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwYXNzd29yZDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTUpXV0sXG4gICAgfSk7XG4gIH1cblxuICBsb2dpbihkYXRhOiBGb3JtR3JvdXApIHtcbiAgICB0aGlzLmJhc2VTZXJ2aWNlLndlYkxvZ2luKGRhdGEuY29udHJvbHNbJ2VtYWlsJ10udmFsdWUsIGRhdGEuY29udHJvbHNbJ3Bhc3N3b3JkJ10udmFsdWUpLnRoZW4oKGlzTG9nZ2VkKSA9PntcbiAgICAgIHRoaXMuaXNMb2dnZWQuZW1pdChpc0xvZ2dlZCk7XG4gICAgfSk7XG4gIH1cblxufVxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvbWF0ZXJpYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSzNELE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsWUFGZixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWU7NEdBRWhGLGNBQWMsWUFGZixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWU7MkZBRWhGLGNBQWM7a0JBSDFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7aUJBQzdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW01hdFNpZGVuYXZNb2R1bGUsIE1hdFRvb2xiYXJNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdExpc3RNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbE1vZHVsZSB7fVxyXG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvbWF0ZXJpYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSzNELE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsWUFGZixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWU7NEdBRWhGLGNBQWMsWUFGZixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWU7MkZBRWhGLGNBQWM7a0JBSDFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7aUJBQzdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW01hdFNpZGVuYXZNb2R1bGUsIE1hdFRvb2xiYXJNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdExpc3RNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsTW9kdWxlIHt9XG4iXX0=
@@ -1,146 +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/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/list";
8
- import * as i6 from "../../atoms/aside-button/aside-button.component";
9
- import * as i7 from "@angular/common";
10
- export class SidenavComponent {
11
- constructor(userService, storageService) {
12
- this.userService = userService;
13
- this.storageService = storageService;
14
- this.pageChangeEvent = new EventEmitter();
15
- this.routes = [];
16
- this.options = { weekday: 'long', month: 'long', day: 'numeric' };
17
- this.currentDay = new Date().toLocaleDateString('en-EN', this.options);
18
- this.hour = new Date().getHours();
19
- }
20
- ngOnInit() {
21
- let user = this.storageService.getCurrentUser()?.token;
22
- let token = user === undefined ? '' : user;
23
- let request = {
24
- token: token,
25
- };
26
- this.userService.getRoutesForRole(request).subscribe((response) => {
27
- this.routes = response.data;
28
- });
29
- }
30
- clickPage(event) {
31
- this.pageChangeEvent.emit(event);
32
- }
33
- logout() {
34
- this.storageService.logout();
35
- this.pageChangeEvent.emit('logout');
36
- }
37
- }
38
- 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 });
39
- 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: `
40
- <mat-sidenav #sidenav mode="push" >
41
- <mat-toolbar color="primary" (click)="sidenav.toggle()">
42
- <span style="font-size: 15px;">{{department}}</span>
43
- <span class="menu-icon-close"></span>
44
- </mat-toolbar>
45
-
46
- <mat-nav-list *ngFor="let route of routes">
47
- <nav class="flex-container-menu">
48
- <ipt-aside-button
49
- [buttonActive]="this.setPage === route.page"
50
- [icon]="route.icon"
51
- [text]="route.text"
52
- (isClicked)="clickPage(route.page)"
53
- (click)="sidenav.toggle()"
54
- >
55
- </ipt-aside-button>
56
- </nav>
57
- </mat-nav-list>
58
- </mat-sidenav>
59
-
60
- <mat-toolbar class="header">
61
- <div class="menu-container" (click)="sidenav.toggle()">
62
- <p>Menu</p>
63
- <div class="menu-icon"></div>
64
- </div>
65
-
66
- <img class="img-logo" src="http://qa.iptdev.com.co/assets/logos/IPT-logo.png" alt="" />
67
-
68
- <div class="text-container">
69
- <span class="p1">{{ currentDay }}</span>
70
- <span *ngIf="hour >= 0 && hour < 12" class="p2">
71
- Hey {{ userName }}, Good moorning!
72
- </span>
73
- <p *ngIf="hour >= 12 && hour < 18" class="p2">
74
- Hey {{ userName }}, Good afternoon!
75
- </p>
76
- <p *ngIf="hour >= 18 && hour < 24" class="p2">
77
- Hey {{ userName }}, Good evening!
78
- </p>
79
- </div>
80
-
81
- <div class="logout-container" (click)="logout()">
82
- <p class="logout-button">Cerrar sesión</p>
83
- <div class="photo-logout"></div>
84
- </div>
85
- </mat-toolbar>
86
- `, 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: i3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i5.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i6.AsideButtonComponent, selector: "ipt-aside-button", inputs: ["icon", "text", "buttonActive"], outputs: ["isClicked"] }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SidenavComponent, decorators: [{
88
- type: Component,
89
- args: [{ selector: 'ipt-sidenav', template: `
90
- <mat-sidenav #sidenav mode="push" >
91
- <mat-toolbar color="primary" (click)="sidenav.toggle()">
92
- <span style="font-size: 15px;">{{department}}</span>
93
- <span class="menu-icon-close"></span>
94
- </mat-toolbar>
95
-
96
- <mat-nav-list *ngFor="let route of routes">
97
- <nav class="flex-container-menu">
98
- <ipt-aside-button
99
- [buttonActive]="this.setPage === route.page"
100
- [icon]="route.icon"
101
- [text]="route.text"
102
- (isClicked)="clickPage(route.page)"
103
- (click)="sidenav.toggle()"
104
- >
105
- </ipt-aside-button>
106
- </nav>
107
- </mat-nav-list>
108
- </mat-sidenav>
109
-
110
- <mat-toolbar class="header">
111
- <div class="menu-container" (click)="sidenav.toggle()">
112
- <p>Menu</p>
113
- <div class="menu-icon"></div>
114
- </div>
115
-
116
- <img class="img-logo" src="http://qa.iptdev.com.co/assets/logos/IPT-logo.png" alt="" />
117
-
118
- <div class="text-container">
119
- <span class="p1">{{ currentDay }}</span>
120
- <span *ngIf="hour >= 0 && hour < 12" class="p2">
121
- Hey {{ userName }}, Good moorning!
122
- </span>
123
- <p *ngIf="hour >= 12 && hour < 18" class="p2">
124
- Hey {{ userName }}, Good afternoon!
125
- </p>
126
- <p *ngIf="hour >= 18 && hour < 24" class="p2">
127
- Hey {{ userName }}, Good evening!
128
- </p>
129
- </div>
130
-
131
- <div class="logout-container" (click)="logout()">
132
- <p class="logout-button">Cerrar sesión</p>
133
- <div class="photo-logout"></div>
134
- </div>
135
- </mat-toolbar>
136
- `, 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"] }]
137
- }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.StorageService }]; }, propDecorators: { department: [{
138
- type: Input
139
- }], setPage: [{
140
- type: Input
141
- }], userName: [{
142
- type: Input
143
- }], pageChangeEvent: [{
144
- type: Output
145
- }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUF5RC9FLE1BQU0sT0FBTyxnQkFBZ0I7SUFXM0IsWUFDVSxXQUF3QixFQUN4QixjQUE4QjtRQUQ5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFUOUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXZELFdBQU0sR0FBVSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxlQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBSzFCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxLQUFLLENBQUM7UUFDdkQsSUFBSSxLQUFLLEdBQVcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFbkQsSUFBSSxPQUFPLEdBQWdCO1lBQ3pCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs2R0FwQ1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isb0xBbERqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7MkZBR1UsZ0JBQWdCO2tCQXBENUIsU0FBUzsrQkFDRSxhQUFhLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUOytIQUlRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVXNlclRva2VuUnEgfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscy91c2VyL3VzZXItcnEubW9kZWwnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvc3RvcmFnZS1zZXJ2aWNlL3N0b3JhZ2Utc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy91c2VyLXNlcnZpY2UvdXNlci1zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXB0LXNpZGVuYXYnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LXNpZGVuYXYgI3NpZGVuYXYgbW9kZT1cInB1c2hcIiA+XHJcbiAgICAgIDxtYXQtdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2lkZW5hdi50b2dnbGUoKVwiPlxyXG4gICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxNXB4O1wiPnt7ZGVwYXJ0bWVudH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uLWNsb3NlXCI+PC9zcGFuPlxyXG4gICAgICA8L21hdC10b29sYmFyPlxyXG5cclxuICAgICAgPG1hdC1uYXYtbGlzdCAqbmdGb3I9XCJsZXQgcm91dGUgb2Ygcm91dGVzXCI+XHJcbiAgICAgICAgPG5hdiBjbGFzcz1cImZsZXgtY29udGFpbmVyLW1lbnVcIj5cclxuICAgICAgICAgIDxpcHQtYXNpZGUtYnV0dG9uXHJcbiAgICAgICAgICAgIFtidXR0b25BY3RpdmVdPVwidGhpcy5zZXRQYWdlID09PSByb3V0ZS5wYWdlXCJcclxuICAgICAgICAgICAgW2ljb25dPVwicm91dGUuaWNvblwiXHJcbiAgICAgICAgICAgIFt0ZXh0XT1cInJvdXRlLnRleHRcIlxyXG4gICAgICAgICAgICAoaXNDbGlja2VkKT1cImNsaWNrUGFnZShyb3V0ZS5wYWdlKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzaWRlbmF2LnRvZ2dsZSgpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvaXB0LWFzaWRlLWJ1dHRvbj5cclxuICAgICAgICA8L25hdj5cclxuICAgICAgPC9tYXQtbmF2LWxpc3Q+XHJcbiAgICA8L21hdC1zaWRlbmF2PlxyXG5cclxuICAgIDxtYXQtdG9vbGJhciBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250YWluZXJcIiAoY2xpY2spPVwic2lkZW5hdi50b2dnbGUoKVwiPlxyXG4gICAgICAgIDxwPk1lbnU8L3A+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaWNvblwiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nb1wiIHNyYz1cImh0dHA6Ly9xYS5pcHRkZXYuY29tLmNvL2Fzc2V0cy9sb2dvcy9JUFQtbG9nby5wbmdcIiBhbHQ9XCJcIiAvPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwMVwiPnt7IGN1cnJlbnREYXkgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJob3VyID49IDAgJiYgaG91ciA8IDEyXCIgY2xhc3M9XCJwMlwiPlxyXG4gICAgICAgICAgSGV5IHt7IHVzZXJOYW1lIH19LCBHb29kIG1vb3JuaW5nIVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8cCAqbmdJZj1cImhvdXIgPj0gMTIgJiYgaG91ciA8IDE4XCIgY2xhc3M9XCJwMlwiPlxyXG4gICAgICAgICAgSGV5IHt7IHVzZXJOYW1lIH19LCBHb29kIGFmdGVybm9vbiFcclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPHAgKm5nSWY9XCJob3VyID49IDE4ICYmIGhvdXIgPCAyNFwiIGNsYXNzPVwicDJcIj5cclxuICAgICAgICAgIEhleSB7eyB1c2VyTmFtZSB9fSwgR29vZCBldmVuaW5nIVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibG9nb3V0LWNvbnRhaW5lclwiIChjbGljayk9XCJsb2dvdXQoKVwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwibG9nb3V0LWJ1dHRvblwiPkNlcnJhciBzZXNpw7NuPC9wPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwaG90by1sb2dvdXRcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC10b29sYmFyPlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZW5hdi5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVuYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRlcGFydG1lbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0UGFnZSE6IHN0cmluZztcclxuICBASW5wdXQoKSB1c2VyTmFtZSE6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHJvdXRlczogYW55W10gPSBbXTtcclxuICBvcHRpb25zOiBhbnkgPSB7IHdlZWtkYXk6ICdsb25nJywgbW9udGg6ICdsb25nJywgZGF5OiAnbnVtZXJpYycgfTtcclxuICBjdXJyZW50RGF5ID0gbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLUVOJywgdGhpcy5vcHRpb25zKTtcclxuICBob3VyID0gbmV3IERhdGUoKS5nZXRIb3VycygpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgbGV0IHVzZXIgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk/LnRva2VuO1xyXG4gICAgbGV0IHRva2VuOiBzdHJpbmcgPSB1c2VyID09PSB1bmRlZmluZWQgPyAnJyA6IHVzZXI7XHJcblxyXG4gICAgbGV0IHJlcXVlc3Q6IFVzZXJUb2tlblJxID0ge1xyXG4gICAgICB0b2tlbjogdG9rZW4sXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMudXNlclNlcnZpY2UuZ2V0Um91dGVzRm9yUm9sZShyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMucm91dGVzID0gcmVzcG9uc2UuZGF0YTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tQYWdlKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMucGFnZUNoYW5nZUV2ZW50LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5sb2dvdXQoKTtcclxuICAgIHRoaXMucGFnZUNoYW5nZUV2ZW50LmVtaXQoJ2xvZ291dCcpO1xyXG4gIH1cclxufVxyXG4iXX0=
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 "design-system/src/public-api";
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBMEQvRSxNQUFNLE9BQU8sZ0JBQWdCO0lBWTNCLFlBQ1UsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsY0FBOEI7UUFGOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBWDlCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV2RCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxlQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBTTFCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxLQUFLLENBQUM7UUFDdkQsSUFBSSxLQUFLLEdBQVcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFbkQsSUFBSSxPQUFPLEdBQWdCO1lBQ3pCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7NkdBeENVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG9MQWxEakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUOzJGQUdVLGdCQUFnQjtrQkFwRDVCLFNBQVM7K0JBQ0UsYUFBYSxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVDt5SkFJUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJ2Rlc2lnbi1zeXN0ZW0vc3JjL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVXNlclRva2VuUnEgfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscy91c2VyL3VzZXItcnEubW9kZWwnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3N0b3JhZ2Utc2VydmljZS9zdG9yYWdlLXNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3VzZXItc2VydmljZS91c2VyLXNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpcHQtc2lkZW5hdicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1hdC1zaWRlbmF2ICNzaWRlbmF2IG1vZGU9XCJwdXNoXCIgPlxuICAgICAgPG1hdC10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzaWRlbmF2LnRvZ2dsZSgpXCI+XG4gICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxNXB4O1wiPnt7ZGVwYXJ0bWVudH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaWNvbi1jbG9zZVwiPjwvc3Bhbj5cbiAgICAgIDwvbWF0LXRvb2xiYXI+XG5cbiAgICAgIDxtYXQtbmF2LWxpc3QgKm5nRm9yPVwibGV0IHJvdXRlIG9mIHJvdXRlc1wiPlxuICAgICAgICA8bmF2IGNsYXNzPVwiZmxleC1jb250YWluZXItbWVudVwiPlxuICAgICAgICAgIDxpcHQtYXNpZGUtYnV0dG9uXG4gICAgICAgICAgICBbYnV0dG9uQWN0aXZlXT1cInRoaXMuc2V0UGFnZSA9PT0gcm91dGUucGFnZVwiXG4gICAgICAgICAgICBbaWNvbl09XCJyb3V0ZS5pY29uXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cInJvdXRlLnRleHRcIlxuICAgICAgICAgICAgKGlzQ2xpY2tlZCk9XCJjbGlja1BhZ2Uocm91dGUucGFnZSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2lwdC1hc2lkZS1idXR0b24+XG4gICAgICAgIDwvbmF2PlxuICAgICAgPC9tYXQtbmF2LWxpc3Q+XG4gICAgPC9tYXQtc2lkZW5hdj5cblxuICAgIDxtYXQtdG9vbGJhciBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCIgKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIj5cbiAgICAgICAgPHA+TWVudTwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaWNvblwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nb1wiIHNyYz1cImh0dHA6Ly9xYS5pcHRkZXYuY29tLmNvL2Fzc2V0cy9sb2dvcy9JUFQtbG9nby5wbmdcIiBhbHQ9XCJcIiAvPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jb250YWluZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwMVwiPnt7IGN1cnJlbnREYXkgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaG91ciA+PSAwICYmIGhvdXIgPCAxMlwiIGNsYXNzPVwicDJcIj5cbiAgICAgICAgICBIZXkge3sgdXNlck5hbWUgfX0sIEdvb2QgbW9vcm5pbmchXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHAgKm5nSWY9XCJob3VyID49IDEyICYmIGhvdXIgPCAxOFwiIGNsYXNzPVwicDJcIj5cbiAgICAgICAgICBIZXkge3sgdXNlck5hbWUgfX0sIEdvb2QgYWZ0ZXJub29uIVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwICpuZ0lmPVwiaG91ciA+PSAxOCAmJiBob3VyIDwgMjRcIiBjbGFzcz1cInAyXCI+XG4gICAgICAgICAgSGV5IHt7IHVzZXJOYW1lIH19LCBHb29kIGV2ZW5pbmchXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIXRoaXMuYXBwVXNlclwiIGNsYXNzPVwibG9nb3V0LWNvbnRhaW5lclwiIChjbGljayk9XCJsb2dvdXQoKVwiPlxuICAgICAgICA8cCBjbGFzcz1cImxvZ291dC1idXR0b25cIj5DZXJyYXIgc2VzacOzbjwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBob3RvLWxvZ291dFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtdG9vbGJhcj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZW5hdi5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lkZW5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRlcGFydG1lbnQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNldFBhZ2UhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVzZXJOYW1lITogc3RyaW5nO1xuICBAT3V0cHV0KCkgcGFnZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgYXBwVXNlcjogYm9vbGVhbiA9IGZhbHNlO1xuICByb3V0ZXM6IGFueVtdID0gW107XG4gIG9wdGlvbnM6IGFueSA9IHsgd2Vla2RheTogJ2xvbmcnLCBtb250aDogJ2xvbmcnLCBkYXk6ICdudW1lcmljJyB9O1xuICBjdXJyZW50RGF5ID0gbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLUVOJywgdGhpcy5vcHRpb25zKTtcbiAgaG91ciA9IG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgbGV0IHVzZXIgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk/LnRva2VuO1xuICAgIGxldCB0b2tlbjogc3RyaW5nID0gdXNlciA9PT0gdW5kZWZpbmVkID8gJycgOiB1c2VyO1xuXG4gICAgbGV0IHJlcXVlc3Q6IFVzZXJUb2tlblJxID0ge1xuICAgICAgdG9rZW46IHRva2VuLFxuICAgIH07XG5cbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldFJvdXRlc0ZvclJvbGUocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5yb3V0ZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hcHBVc2VyID0gdGhpcy5iYXNlU2VydmljZS5pc0FuQXBwVXNlcigpO1xuICB9XG5cbiAgY2xpY2tQYWdlKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGxvZ291dCgpIHtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmxvZ291dCgpO1xuICAgIHRoaXMucGFnZUNoYW5nZUV2ZW50LmVtaXQoJ2xvZ291dCcpO1xuICB9XG59XG4iXX0=