iptdevs-design-system 2.6.43 → 2.6.44

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 +146 -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 +2286 -2282
  57. package/fesm2015/iptdevs-design-system.mjs.map +1 -1
  58. package/fesm2020/iptdevs-design-system.mjs +2283 -2279
  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 +22 -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,146 @@
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 "../../../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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUF5RC9FLE1BQU0sT0FBTyxnQkFBZ0I7SUFXM0IsWUFDVSxXQUF3QixFQUN4QixjQUE4QjtRQUQ5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFUOUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXZELFdBQU0sR0FBVSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxlQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBSzFCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxLQUFLLENBQUM7UUFDdkQsSUFBSSxLQUFLLEdBQVcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFbkQsSUFBSSxPQUFPLEdBQWdCO1lBQ3pCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs2R0FwQ1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isb0xBbERqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7MkZBR1UsZ0JBQWdCO2tCQXBENUIsU0FBUzsrQkFDRSxhQUFhLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUOytIQUlRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJUb2tlblJxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvdXNlci91c2VyLXJxLm1vZGVsJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlLXNlcnZpY2Uvc3RvcmFnZS1zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy91c2VyLXNlcnZpY2UvdXNlci1zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXB0LXNpZGVuYXYnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxtYXQtc2lkZW5hdiAjc2lkZW5hdiBtb2RlPVwicHVzaFwiID5cbiAgICAgIDxtYXQtdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2lkZW5hdi50b2dnbGUoKVwiPlxuICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTVweDtcIj57e2RlcGFydG1lbnR9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWljb24tY2xvc2VcIj48L3NwYW4+XG4gICAgICA8L21hdC10b29sYmFyPlxuXG4gICAgICA8bWF0LW5hdi1saXN0ICpuZ0Zvcj1cImxldCByb3V0ZSBvZiByb3V0ZXNcIj5cbiAgICAgICAgPG5hdiBjbGFzcz1cImZsZXgtY29udGFpbmVyLW1lbnVcIj5cbiAgICAgICAgICA8aXB0LWFzaWRlLWJ1dHRvblxuICAgICAgICAgICAgW2J1dHRvbkFjdGl2ZV09XCJ0aGlzLnNldFBhZ2UgPT09IHJvdXRlLnBhZ2VcIlxuICAgICAgICAgICAgW2ljb25dPVwicm91dGUuaWNvblwiXG4gICAgICAgICAgICBbdGV4dF09XCJyb3V0ZS50ZXh0XCJcbiAgICAgICAgICAgIChpc0NsaWNrZWQpPVwiY2xpY2tQYWdlKHJvdXRlLnBhZ2UpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzaWRlbmF2LnRvZ2dsZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9pcHQtYXNpZGUtYnV0dG9uPlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvbWF0LW5hdi1saXN0PlxuICAgIDwvbWF0LXNpZGVuYXY+XG5cbiAgICA8bWF0LXRvb2xiYXIgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiIChjbGljayk9XCJzaWRlbmF2LnRvZ2dsZSgpXCI+XG4gICAgICAgIDxwPk1lbnU8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWljb25cIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ29cIiBzcmM9XCJodHRwOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvSVBULWxvZ28ucG5nXCIgYWx0PVwiXCIgLz5cblxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY29udGFpbmVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicDFcIj57eyBjdXJyZW50RGF5IH19PC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImhvdXIgPj0gMCAmJiBob3VyIDwgMTJcIiBjbGFzcz1cInAyXCI+XG4gICAgICAgICAgSGV5IHt7IHVzZXJOYW1lIH19LCBHb29kIG1vb3JuaW5nIVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxwICpuZ0lmPVwiaG91ciA+PSAxMiAmJiBob3VyIDwgMThcIiBjbGFzcz1cInAyXCI+XG4gICAgICAgICAgSGV5IHt7IHVzZXJOYW1lIH19LCBHb29kIGFmdGVybm9vbiFcbiAgICAgICAgPC9wPlxuICAgICAgICA8cCAqbmdJZj1cImhvdXIgPj0gMTggJiYgaG91ciA8IDI0XCIgY2xhc3M9XCJwMlwiPlxuICAgICAgICAgIEhleSB7eyB1c2VyTmFtZSB9fSwgR29vZCBldmVuaW5nIVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImxvZ291dC1jb250YWluZXJcIiAoY2xpY2spPVwibG9nb3V0KClcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJsb2dvdXQtYnV0dG9uXCI+Q2VycmFyIHNlc2nDs248L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwaG90by1sb2dvdXRcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXRvb2xiYXI+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3NpZGVuYXYuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpZGVuYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkZXBhcnRtZW50ITogc3RyaW5nO1xuICBASW5wdXQoKSBzZXRQYWdlITogc3RyaW5nO1xuICBASW5wdXQoKSB1c2VyTmFtZSE6IHN0cmluZztcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHJvdXRlczogYW55W10gPSBbXTtcbiAgb3B0aW9uczogYW55ID0geyB3ZWVrZGF5OiAnbG9uZycsIG1vbnRoOiAnbG9uZycsIGRheTogJ251bWVyaWMnIH07XG4gIGN1cnJlbnREYXkgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tRU4nLCB0aGlzLm9wdGlvbnMpO1xuICBob3VyID0gbmV3IERhdGUoKS5nZXRIb3VycygpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgdXNlciA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKT8udG9rZW47XG4gICAgbGV0IHRva2VuOiBzdHJpbmcgPSB1c2VyID09PSB1bmRlZmluZWQgPyAnJyA6IHVzZXI7XG5cbiAgICBsZXQgcmVxdWVzdDogVXNlclRva2VuUnEgPSB7XG4gICAgICB0b2tlbjogdG9rZW4sXG4gICAgfTtcblxuICAgIHRoaXMudXNlclNlcnZpY2UuZ2V0Um91dGVzRm9yUm9sZShyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLnJvdXRlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG4gIH1cblxuICBjbGlja1BhZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMucGFnZUNoYW5nZUV2ZW50LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UubG9nb3V0KCk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlRXZlbnQuZW1pdCgnbG9nb3V0Jyk7XG4gIH1cbn1cbiJdfQ==