iptdevs-design-system 2.1.12 → 2.1.13

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 (74) 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 +88 -88
  7. package/esm2020/lib/components/atoms/input/input.component.mjs +109 -109
  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/radio/radio.component.mjs +47 -47
  11. package/esm2020/lib/components/atoms/select/select.component.mjs +87 -87
  12. package/esm2020/lib/components/atoms/text-link/text-link.component.mjs +39 -39
  13. package/esm2020/lib/components/components.module.mjs +96 -96
  14. package/esm2020/lib/components/forms/login-form/login-form.component.mjs +93 -93
  15. package/esm2020/lib/components/material.module.mjs +18 -18
  16. package/esm2020/lib/components/molecules/sidenav/sidenav.component.mjs +146 -146
  17. package/esm2020/lib/core/core.module.mjs +40 -40
  18. package/esm2020/lib/core/models/cod/cod-rq.model.mjs +2 -2
  19. package/esm2020/lib/core/models/course/course-rq.model.mjs +2 -2
  20. package/esm2020/lib/core/models/session/session.model.mjs +3 -3
  21. package/esm2020/lib/core/models/table/table-rs.model.mjs +2 -2
  22. package/esm2020/lib/core/models/test/test.model.mjs +2 -2
  23. package/esm2020/lib/core/models/url/url.model.mjs +2 -2
  24. package/esm2020/lib/core/models/user/user-rq.model.mjs +2 -2
  25. package/esm2020/lib/core/models/user/user-rs.model.mjs +5 -5
  26. package/esm2020/lib/core/services/course-service/course-service.model.mjs +56 -56
  27. package/esm2020/lib/core/services/parameters-service/parameters.service.mjs +86 -86
  28. package/esm2020/lib/core/services/storage-service/storage-service.mjs +50 -50
  29. package/esm2020/lib/core/services/switch-service/switch.service.mjs +16 -16
  30. package/esm2020/lib/core/services/test-service/test.service.mjs +135 -135
  31. package/esm2020/lib/core/services/user-service/user-service.mjs +60 -60
  32. package/esm2020/lib/core/utils/base-service/base.service.mjs +149 -149
  33. package/esm2020/lib/core/utils/route-service/route.service.mjs +18 -18
  34. package/esm2020/lib/design-system.module.mjs +29 -29
  35. package/esm2020/public-api.mjs +39 -39
  36. package/fesm2015/iptdevs-design-system.mjs +1455 -1455
  37. package/fesm2015/iptdevs-design-system.mjs.map +1 -1
  38. package/fesm2020/iptdevs-design-system.mjs +1453 -1453
  39. package/fesm2020/iptdevs-design-system.mjs.map +1 -1
  40. package/iptdevs-design-system.d.ts +5 -5
  41. package/lib/components/atoms/aside-button/aside-button.component.d.ts +11 -11
  42. package/lib/components/atoms/button/button.component.d.ts +13 -13
  43. package/lib/components/atoms/checkbox/checkbox.component.d.ts +11 -11
  44. package/lib/components/atoms/datalist/datalist.component.d.ts +20 -20
  45. package/lib/components/atoms/input/input.component.d.ts +17 -17
  46. package/lib/components/atoms/level-button/level-button.component.d.ts +11 -11
  47. package/lib/components/atoms/level-text/level-text.component.d.ts +7 -7
  48. package/lib/components/atoms/radio/radio.component.d.ts +11 -11
  49. package/lib/components/atoms/select/select.component.d.ts +23 -23
  50. package/lib/components/atoms/text-link/text-link.component.d.ts +12 -12
  51. package/lib/components/components.module.d.ts +22 -22
  52. package/lib/components/forms/login-form/login-form.component.d.ts +13 -13
  53. package/lib/components/material.module.d.ts +10 -10
  54. package/lib/components/molecules/sidenav/sidenav.component.d.ts +22 -22
  55. package/lib/core/core.module.d.ts +6 -6
  56. package/lib/core/models/cod/cod-rq.model.d.ts +51 -51
  57. package/lib/core/models/course/course-rq.model.d.ts +77 -77
  58. package/lib/core/models/session/session.model.d.ts +5 -5
  59. package/lib/core/models/table/table-rs.model.d.ts +7 -7
  60. package/lib/core/models/test/test.model.d.ts +213 -213
  61. package/lib/core/models/url/url.model.d.ts +8 -8
  62. package/lib/core/models/user/user-rq.model.d.ts +68 -68
  63. package/lib/core/models/user/user-rs.model.d.ts +35 -35
  64. package/lib/core/services/course-service/course-service.model.d.ts +19 -19
  65. package/lib/core/services/parameters-service/parameters.service.d.ts +27 -27
  66. package/lib/core/services/storage-service/storage-service.d.ts +18 -18
  67. package/lib/core/services/switch-service/switch.service.d.ts +8 -8
  68. package/lib/core/services/test-service/test.service.d.ts +35 -35
  69. package/lib/core/services/user-service/user-service.d.ts +20 -20
  70. package/lib/core/utils/base-service/base.service.d.ts +17 -17
  71. package/lib/core/utils/route-service/route.service.d.ts +9 -9
  72. package/lib/design-system.module.d.ts +8 -8
  73. package/package.json +1 -1
  74. package/public-api.d.ts +31 -31
@@ -1,50 +1,50 @@
1
- import { Injectable } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class StorageService {
4
- constructor() {
5
- this.currentSession = null;
6
- this.localStorageService = localStorage;
7
- this.currentSession = this.loadSessionData();
8
- }
9
- setCurrentSession(session) {
10
- this.currentSession = session;
11
- this.localStorageService.setItem('606a7d4e73650b75ebb06972e77d6cc4', JSON.stringify(session));
12
- }
13
- loadSessionData() {
14
- var sessionStr = this.localStorageService.getItem('606a7d4e73650b75ebb06972e77d6cc4');
15
- return (sessionStr) ? JSON.parse(sessionStr) : null;
16
- }
17
- getCurrentSession() {
18
- return this.currentSession;
19
- }
20
- removeCurrentSession() {
21
- this.localStorageService.removeItem('606a7d4e73650b75ebb06972e77d6cc4');
22
- this.currentSession = null;
23
- }
24
- getCurrentUser() {
25
- var session = this.getCurrentSession();
26
- return (session && session.user) ? session.user : null;
27
- }
28
- ;
29
- isAuthenticated() {
30
- return (this.getCurrentToken() != null) ? true : false;
31
- }
32
- ;
33
- getCurrentToken() {
34
- var session = this.getCurrentSession();
35
- return (session && session.token) ? session.token : null;
36
- }
37
- ;
38
- logout() {
39
- this.removeCurrentSession();
40
- }
41
- }
42
- StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
- StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, providedIn: 'root' });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, decorators: [{
45
- type: Injectable,
46
- args: [{
47
- providedIn: 'root',
48
- }]
49
- }], ctorParameters: function () { return []; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RvcmFnZS1zZXJ2aWNlL3N0b3JhZ2Utc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8sY0FBYztJQUt6QjtRQUZRLG1CQUFjLEdBQW1CLElBQUksQ0FBQztRQUc1QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFnQjtRQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RixPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoRSxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxPQUFPLEdBQW1CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekQsQ0FBQztJQUFBLENBQUM7SUFFRixlQUFlO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQztJQUFBLENBQUM7SUFFRixlQUFlO1FBQ2IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdkMsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBQUEsQ0FBQztJQUVGLE1BQU07UUFDSixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDOzsyR0E3Q1UsY0FBYzsrR0FBZCxjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gXCIuLi8uLi9tb2RlbHMvc2Vzc2lvbi9zZXNzaW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBVc2VyUnMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3VzZXIvdXNlci1ycy5tb2RlbFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTtcbiAgcHJpdmF0ZSBjdXJyZW50U2Vzc2lvbiA6IFNlc3Npb24gfCBudWxsPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZSA9IGxvY2FsU3RvcmFnZTtcbiAgICB0aGlzLmN1cnJlbnRTZXNzaW9uID0gdGhpcy5sb2FkU2Vzc2lvbkRhdGEoKTtcbiAgfVxuXG4gIHNldEN1cnJlbnRTZXNzaW9uKHNlc3Npb246IFNlc3Npb24pOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRTZXNzaW9uID0gc2Vzc2lvbjtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnNjA2YTdkNGU3MzY1MGI3NWViYjA2OTcyZTc3ZDZjYzQnLCBKU09OLnN0cmluZ2lmeShzZXNzaW9uKSk7XG4gIH1cblxuICBsb2FkU2Vzc2lvbkRhdGEoKTogU2Vzc2lvbiB8IG51bGwge1xuICAgIHZhciBzZXNzaW9uU3RyID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJzYwNmE3ZDRlNzM2NTBiNzVlYmIwNjk3MmU3N2Q2Y2M0Jyk7XG4gICAgcmV0dXJuIChzZXNzaW9uU3RyKSA/IDxTZXNzaW9uPiBKU09OLnBhcnNlKHNlc3Npb25TdHIpIDogbnVsbDtcbiAgfVxuXG4gIGdldEN1cnJlbnRTZXNzaW9uKCk6IFNlc3Npb24gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U2Vzc2lvbjtcbiAgfVxuXG4gIHJlbW92ZUN1cnJlbnRTZXNzaW9uKCk6IHZvaWQge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCc2MDZhN2Q0ZTczNjUwYjc1ZWJiMDY5NzJlNzdkNmNjNCcpO1xuICAgIHRoaXMuY3VycmVudFNlc3Npb24gPSBudWxsO1xuICB9XG5cbiAgZ2V0Q3VycmVudFVzZXIoKTogVXNlclJzIHwgbnVsbCB7XG4gICAgdmFyIHNlc3Npb246IFNlc3Npb24gfCBudWxsID0gdGhpcy5nZXRDdXJyZW50U2Vzc2lvbigpO1xuICAgIHJldHVybiAoc2Vzc2lvbiAmJiBzZXNzaW9uLnVzZXIpID8gc2Vzc2lvbi51c2VyIDogbnVsbDtcbiAgfTtcblxuICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmdldEN1cnJlbnRUb2tlbigpICE9IG51bGwpID8gdHJ1ZSA6IGZhbHNlO1xuICB9O1xuXG4gIGdldEN1cnJlbnRUb2tlbigpOiBzdHJpbmcgfCBudWxse1xuICAgIHZhciBzZXNzaW9uID0gdGhpcy5nZXRDdXJyZW50U2Vzc2lvbigpO1xuICAgIHJldHVybiAoc2Vzc2lvbiAmJiBzZXNzaW9uLnRva2VuKSA/IHNlc3Npb24udG9rZW4gOiBudWxsO1xuICB9O1xuXG4gIGxvZ291dCgpOiB2b2lke1xuICAgIHRoaXMucmVtb3ZlQ3VycmVudFNlc3Npb24oKTtcbiAgfVxuXG59Il19
1
+ import { Injectable } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class StorageService {
4
+ constructor() {
5
+ this.currentSession = null;
6
+ this.localStorageService = localStorage;
7
+ this.currentSession = this.loadSessionData();
8
+ }
9
+ setCurrentSession(session) {
10
+ this.currentSession = session;
11
+ this.localStorageService.setItem('606a7d4e73650b75ebb06972e77d6cc4', JSON.stringify(session));
12
+ }
13
+ loadSessionData() {
14
+ var sessionStr = this.localStorageService.getItem('606a7d4e73650b75ebb06972e77d6cc4');
15
+ return (sessionStr) ? JSON.parse(sessionStr) : null;
16
+ }
17
+ getCurrentSession() {
18
+ return this.currentSession;
19
+ }
20
+ removeCurrentSession() {
21
+ this.localStorageService.removeItem('606a7d4e73650b75ebb06972e77d6cc4');
22
+ this.currentSession = null;
23
+ }
24
+ getCurrentUser() {
25
+ var session = this.getCurrentSession();
26
+ return (session && session.user) ? session.user : null;
27
+ }
28
+ ;
29
+ isAuthenticated() {
30
+ return (this.getCurrentToken() != null) ? true : false;
31
+ }
32
+ ;
33
+ getCurrentToken() {
34
+ var session = this.getCurrentSession();
35
+ return (session && session.token) ? session.token : null;
36
+ }
37
+ ;
38
+ logout() {
39
+ this.removeCurrentSession();
40
+ }
41
+ }
42
+ StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
+ StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, providedIn: 'root' });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: StorageService, decorators: [{
45
+ type: Injectable,
46
+ args: [{
47
+ providedIn: 'root',
48
+ }]
49
+ }], ctorParameters: function () { return []; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RvcmFnZS1zZXJ2aWNlL3N0b3JhZ2Utc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8sY0FBYztJQUt6QjtRQUZRLG1CQUFjLEdBQW1CLElBQUksQ0FBQztRQUc1QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFnQjtRQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RixPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoRSxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxPQUFPLEdBQW1CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekQsQ0FBQztJQUFBLENBQUM7SUFFRixlQUFlO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQztJQUFBLENBQUM7SUFFRixlQUFlO1FBQ2IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdkMsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBQUEsQ0FBQztJQUVGLE1BQU07UUFDSixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDOzsyR0E3Q1UsY0FBYzsrR0FBZCxjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zZXNzaW9uL3Nlc3Npb24ubW9kZWxcIjtcclxuaW1wb3J0IHsgVXNlclJzIH0gZnJvbSBcIi4uLy4uL21vZGVscy91c2VyL3VzZXItcnMubW9kZWxcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTtcclxuICBwcml2YXRlIGN1cnJlbnRTZXNzaW9uIDogU2Vzc2lvbiB8IG51bGw9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlID0gbG9jYWxTdG9yYWdlO1xyXG4gICAgdGhpcy5jdXJyZW50U2Vzc2lvbiA9IHRoaXMubG9hZFNlc3Npb25EYXRhKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDdXJyZW50U2Vzc2lvbihzZXNzaW9uOiBTZXNzaW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRTZXNzaW9uID0gc2Vzc2lvbjtcclxuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKCc2MDZhN2Q0ZTczNjUwYjc1ZWJiMDY5NzJlNzdkNmNjNCcsIEpTT04uc3RyaW5naWZ5KHNlc3Npb24pKTtcclxuICB9XHJcblxyXG4gIGxvYWRTZXNzaW9uRGF0YSgpOiBTZXNzaW9uIHwgbnVsbCB7XHJcbiAgICB2YXIgc2Vzc2lvblN0ciA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKCc2MDZhN2Q0ZTczNjUwYjc1ZWJiMDY5NzJlNzdkNmNjNCcpO1xyXG4gICAgcmV0dXJuIChzZXNzaW9uU3RyKSA/IDxTZXNzaW9uPiBKU09OLnBhcnNlKHNlc3Npb25TdHIpIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRTZXNzaW9uKCk6IFNlc3Npb24gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ3VycmVudFNlc3Npb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnNjA2YTdkNGU3MzY1MGI3NWViYjA2OTcyZTc3ZDZjYzQnKTtcclxuICAgIHRoaXMuY3VycmVudFNlc3Npb24gPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudFVzZXIoKTogVXNlclJzIHwgbnVsbCB7XHJcbiAgICB2YXIgc2Vzc2lvbjogU2Vzc2lvbiB8IG51bGwgPSB0aGlzLmdldEN1cnJlbnRTZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gKHNlc3Npb24gJiYgc2Vzc2lvbi51c2VyKSA/IHNlc3Npb24udXNlciA6IG51bGw7XHJcbiAgfTtcclxuXHJcbiAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLmdldEN1cnJlbnRUb2tlbigpICE9IG51bGwpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH07XHJcblxyXG4gIGdldEN1cnJlbnRUb2tlbigpOiBzdHJpbmcgfCBudWxse1xyXG4gICAgdmFyIHNlc3Npb24gPSB0aGlzLmdldEN1cnJlbnRTZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gKHNlc3Npb24gJiYgc2Vzc2lvbi50b2tlbikgPyBzZXNzaW9uLnRva2VuIDogbnVsbDtcclxuICB9O1xyXG5cclxuICBsb2dvdXQoKTogdm9pZHtcclxuICAgIHRoaXMucmVtb3ZlQ3VycmVudFNlc3Npb24oKTtcclxuICB9XHJcblxyXG59Il19
@@ -1,16 +1,16 @@
1
- import { EventEmitter, Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SwitchService {
4
- constructor() {
5
- this.$modal = new EventEmitter();
6
- }
7
- }
8
- SwitchService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SwitchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9
- SwitchService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SwitchService, providedIn: 'root' });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SwitchService, decorators: [{
11
- type: Injectable,
12
- args: [{
13
- providedIn: 'root'
14
- }]
15
- }], ctorParameters: function () { return []; } });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9zd2l0Y2gtc2VydmljZS9zd2l0Y2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLGFBQWE7SUFFeEI7UUFFQSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUZqQixDQUFDOzswR0FGTixhQUFhOzhHQUFiLGFBQWEsY0FGWixNQUFNOzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgJG1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG59XG4iXX0=
1
+ import { EventEmitter, Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SwitchService {
4
+ constructor() {
5
+ this.$modal = new EventEmitter();
6
+ }
7
+ }
8
+ SwitchService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SwitchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9
+ SwitchService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SwitchService, providedIn: 'root' });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SwitchService, decorators: [{
11
+ type: Injectable,
12
+ args: [{
13
+ providedIn: 'root'
14
+ }]
15
+ }], ctorParameters: function () { return []; } });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9zd2l0Y2gtc2VydmljZS9zd2l0Y2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLGFBQWE7SUFFeEI7UUFFQSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUZqQixDQUFDOzswR0FGTixhQUFhOzhHQUFiLGFBQWEsY0FGWixNQUFNOzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTd2l0Y2hTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgJG1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbn1cclxuIl19
@@ -1,135 +1,135 @@
1
- import { HttpHeaders } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common/http";
5
- export class TestService {
6
- constructor(http) {
7
- this.http = http;
8
- this.SERVICE_URL = 'https://iptdev.com.co/lab/test/api/';
9
- }
10
- // ---------------------- EXÁMENES ---------------------- //
11
- createExam(exam) {
12
- let serviceUrl = this.SERVICE_URL + 'post/exam';
13
- this.generateRequestParams(exam);
14
- return this.http.post(serviceUrl, this.httpOptions);
15
- }
16
- getAllExams(params) {
17
- let serviceUrl = this.SERVICE_URL + 'post/all/exam';
18
- this.generateRequestParams(params);
19
- return this.http.post(serviceUrl, this.httpOptions);
20
- }
21
- updateExam(params) {
22
- let serviceUrl = this.SERVICE_URL + 'update/exam';
23
- this.generateRequestParams(params);
24
- return this.http.put(serviceUrl, this.httpOptions);
25
- }
26
- updateExamStatus(params) {
27
- let serviceUrl = this.SERVICE_URL + 'update/exam/status';
28
- this.generateRequestParams(params);
29
- return this.http.put(serviceUrl, this.httpOptions);
30
- }
31
- copyExam(params) {
32
- let serviceUrl = this.SERVICE_URL + 'copy/exam';
33
- this.generateRequestParams(params);
34
- return this.http.put(serviceUrl, this.httpOptions);
35
- }
36
- getExamByCode(code) {
37
- let serviceUrl = this.SERVICE_URL + 'get/exam/by/code/' + code;
38
- return this.http.get(serviceUrl);
39
- }
40
- getExamByAuthor(code) {
41
- let serviceUrl = this.SERVICE_URL + 'get/exams/by/author/' + code;
42
- return this.http.get(serviceUrl);
43
- }
44
- // ---------------------- SECCIONES ---------------------- //
45
- createSectionWithAll(params) {
46
- let serviceUrl = this.SERVICE_URL + 'post/section/with/all';
47
- this.generateRequestParams(params);
48
- return this.http.post(serviceUrl, this.httpOptions);
49
- }
50
- createSection(params) {
51
- let serviceUrl = this.SERVICE_URL + 'post/section';
52
- this.generateRequestParams(params);
53
- return this.http.post(serviceUrl, this.httpOptions);
54
- }
55
- getAllSections(params) {
56
- let serviceUrl = this.SERVICE_URL + 'post/all/sections';
57
- this.generateRequestParams(params);
58
- return this.http.post(serviceUrl, this.httpOptions);
59
- }
60
- updateSection(params) {
61
- let serviceUrl = this.SERVICE_URL + 'update/section';
62
- this.generateRequestParams(params);
63
- return this.http.put(serviceUrl, this.httpOptions);
64
- }
65
- updateSectionMedia(params) {
66
- let serviceUrl = this.SERVICE_URL + 'post/section/media';
67
- this.generateRequestParams(params);
68
- return this.http.post(serviceUrl, this.httpOptions);
69
- }
70
- updateSectionState(params) {
71
- let serviceUrl = this.SERVICE_URL + 'update/section/state';
72
- this.generateRequestParams(params);
73
- return this.http.put(serviceUrl, this.httpOptions);
74
- }
75
- getSectionsByExam(code) {
76
- let serviceUrl = this.SERVICE_URL + 'get/sections/by/exam/' + code;
77
- return this.http.get(serviceUrl);
78
- }
79
- // ---------------------- PREGUNTAS ---------------------- //
80
- createQuestion(params) {
81
- let serviceUrl = this.SERVICE_URL + 'post/question';
82
- this.generateRequestParams(params);
83
- return this.http.post(serviceUrl, this.httpOptions);
84
- }
85
- updateQuestion(params) {
86
- let serviceUrl = this.SERVICE_URL + 'update/question';
87
- this.generateRequestParams(params);
88
- return this.http.put(serviceUrl, this.httpOptions);
89
- }
90
- getQuestionsBySections(params) {
91
- let serviceUrl = this.SERVICE_URL + 'get/questions/by/sections';
92
- this.generateRequestParams(params);
93
- return this.http.post(serviceUrl, this.httpOptions);
94
- }
95
- getQuestionsBySection(code) {
96
- let serviceUrl = this.SERVICE_URL + 'get/questions/by/section/' + code;
97
- return this.http.get(serviceUrl, this.httpOptions);
98
- }
99
- // ---------------------- RESPUESTAS ---------------------- //
100
- createAnswer(params) {
101
- let serviceUrl = this.SERVICE_URL + 'post/answer';
102
- this.generateRequestParams(params);
103
- return this.http.post(serviceUrl, this.httpOptions);
104
- }
105
- updateAnswer(params) {
106
- let serviceUrl = this.SERVICE_URL + 'update/answer';
107
- this.generateRequestParams(params);
108
- return this.http.put(serviceUrl, this.httpOptions);
109
- }
110
- getAnswersByQuestion(code) {
111
- let serviceUrl = this.SERVICE_URL + 'get/answers/by/question/' + code;
112
- return this.http.get(serviceUrl, this.httpOptions);
113
- }
114
- updateQuestionState(params) {
115
- let serviceUrl = this.SERVICE_URL + 'update/question/state';
116
- this.generateRequestParams(params);
117
- return this.http.put(serviceUrl, this.httpOptions);
118
- }
119
- // construye los headers y params
120
- generateRequestParams(param) {
121
- this.httpOptions = {
122
- header: new HttpHeaders(),
123
- params: param,
124
- };
125
- }
126
- }
127
- TestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TestService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
128
- TestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TestService, providedIn: 'root' });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TestService, decorators: [{
130
- type: Injectable,
131
- args: [{
132
- providedIn: 'root',
133
- }]
134
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvc2VydmljZXMvdGVzdC1zZXJ2aWNlL3Rlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBeUIzQyxNQUFNLE9BQU8sV0FBVztJQUt0QixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSjVCLGdCQUFXLEdBQUcscUNBQXFDLENBQUM7SUFJckIsQ0FBQztJQUV4Qyw0REFBNEQ7SUFDNUQsVUFBVSxDQUFDLElBQVU7UUFDbkIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXFCO1FBQy9CLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDO1FBQ3BELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFvQjtRQUM3QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztRQUNsRCxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxD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TUFBNkI7UUFDL0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztRQUM1RCxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxpQ0FBaUM7SUFDekIscUJBQXFCLENBQUMsS0FBVTtRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUN6QixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUM7SUFDSixDQUFDOzt3R0FoSlUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ29weUV4YW1ScSxcbiAgQ3JlYXRlQW5zd2VyUnEsXG4gIENyZWF0ZVF1ZXN0aW9uUnEsXG4gIENyZWF0ZVNlY3Rpb25ScSxcbiAgQ3JlYXRlU2VjdGlvbldpdGhBbGxScSxcbiAgRXhhbSxcbiAgR2V0QWxsRXhhbXNScSxcbiAgR2V0QWxsU2VjdGlvbnNScSxcbiAgZ2V0UXVlc3Rpb25zQnlTZWN0aW9uc1JxLFxuICBVcGRhdGVBbnN3ZXJScSxcbiAgVXBkYXRlRXhhbVJxLFxuICBVcGRhdGVFeGFtU3RhdHVzUnEsXG4gIFVwZGF0ZVF1ZXN0aW9uUnEsXG4gIFVwZGF0ZVF1ZXN0aW9uU3RhdGVScSxcbiAgVXBkYXRlU2VjdGlvbk1lZGlhUnEsXG4gIFVwZGF0ZVNlY3Rpb25ScSxcbiAgVXBkYXRlU2VjdGlvblN0YXRlUnEsXG59IGZyb20gJy4uLy4uL21vZGVscy90ZXN0L3Rlc3QubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGVzdFNlcnZpY2Uge1xuICBwcml2YXRlIFNFUlZJQ0VfVVJMID0gJ2h0dHBzOi8vaXB0ZGV2LmNvbS5jby9sYWIvdGVzdC9hcGkvJztcblxuICBodHRwT3B0aW9uczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEVYw4FNRU5FUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG4gIGNyZWF0ZUV4YW0oZXhhbTogRXhhbSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvZXhhbSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMoZXhhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0QWxsRXhhbXMocGFyYW1zOiBHZXRBbGxFeGFtc1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9hbGwvZXhhbSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICB1cGRhdGVFeGFtKHBhcmFtczogVXBkYXRlRXhhbVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAndXBkYXRlL2V4YW0nO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICB1cGRhdGVFeGFtU3RhdHVzKHBhcmFtczogVXBkYXRlRXhhbVN0YXR1c1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAndXBkYXRlL2V4YW0vc3RhdHVzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgY29weUV4YW0ocGFyYW1zOiBDb3B5RXhhbVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnY29weS9leGFtJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0RXhhbUJ5Q29kZShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvZXhhbS9ieS9jb2RlLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0RXhhbUJ5QXV0aG9yKGNvZGU6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9leGFtcy9ieS9hdXRob3IvJyArIGNvZGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNFQ0NJT05FUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG4gIGNyZWF0ZVNlY3Rpb25XaXRoQWxsKHBhcmFtczogQ3JlYXRlU2VjdGlvbldpdGhBbGxScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvc2VjdGlvbi93aXRoL2FsbCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBjcmVhdGVTZWN0aW9uKHBhcmFtczogQ3JlYXRlU2VjdGlvblJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9zZWN0aW9uJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbFNlY3Rpb25zKHBhcmFtczogR2V0QWxsU2VjdGlvbnNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvYWxsL3NlY3Rpb25zJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZVNlY3Rpb24ocGFyYW1zOiBVcGRhdGVTZWN0aW9uUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICd1cGRhdGUvc2VjdGlvbic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZVNlY3Rpb25NZWRpYShwYXJhbXM6IFVwZGF0ZVNlY3Rpb25NZWRpYVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9zZWN0aW9uL21lZGlhJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZVNlY3Rpb25TdGF0ZShwYXJhbXM6IFVwZGF0ZVNlY3Rpb25TdGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAndXBkYXRlL3NlY3Rpb24vc3RhdGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRTZWN0aW9uc0J5RXhhbShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvc2VjdGlvbnMvYnkvZXhhbS8nICsgY29kZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUFJFR1VOVEFTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy9cbiAgY3JlYXRlUXVlc3Rpb24ocGFyYW1zOiBDcmVhdGVRdWVzdGlvblJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9xdWVzdGlvbic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICB1cGRhdGVRdWVzdGlvbihwYXJhbXM6IFVwZGF0ZVF1ZXN0aW9uUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICd1cGRhdGUvcXVlc3Rpb24nO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRRdWVzdGlvbnNCeVNlY3Rpb25zKHBhcmFtczogZ2V0UXVlc3Rpb25zQnlTZWN0aW9uc1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3F1ZXN0aW9ucy9ieS9zZWN0aW9ucyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRRdWVzdGlvbnNCeVNlY3Rpb24oY29kZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3F1ZXN0aW9ucy9ieS9zZWN0aW9uLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSRVNQVUVTVEFTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy9cbiAgY3JlYXRlQW5zd2VyKHBhcmFtczogQ3JlYXRlQW5zd2VyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2Fuc3dlcic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICB1cGRhdGVBbnN3ZXIocGFyYW1zOiBVcGRhdGVBbnN3ZXJScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3VwZGF0ZS9hbnN3ZXInO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRBbnN3ZXJzQnlRdWVzdGlvbihjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYW5zd2Vycy9ieS9xdWVzdGlvbi8nICsgY29kZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZVF1ZXN0aW9uU3RhdGUocGFyYW1zOiBVcGRhdGVRdWVzdGlvblN0YXRlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICd1cGRhdGUvcXVlc3Rpb24vc3RhdGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICAvLyBjb25zdHJ1eWUgbG9zIGhlYWRlcnMgeSBwYXJhbXNcbiAgcHJpdmF0ZSBnZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW06IGFueSkge1xuICAgIHRoaXMuaHR0cE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXI6IG5ldyBIdHRwSGVhZGVycygpLFxuICAgICAgcGFyYW1zOiBwYXJhbSxcbiAgICB9O1xuICB9XG59XG4iXX0=
1
+ import { HttpHeaders } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class TestService {
6
+ constructor(http) {
7
+ this.http = http;
8
+ this.SERVICE_URL = 'https://iptdev.com.co/lab/test/api/';
9
+ }
10
+ // ---------------------- EXÁMENES ---------------------- //
11
+ createExam(exam) {
12
+ let serviceUrl = this.SERVICE_URL + 'post/exam';
13
+ this.generateRequestParams(exam);
14
+ return this.http.post(serviceUrl, this.httpOptions);
15
+ }
16
+ getAllExams(params) {
17
+ let serviceUrl = this.SERVICE_URL + 'post/all/exam';
18
+ this.generateRequestParams(params);
19
+ return this.http.post(serviceUrl, this.httpOptions);
20
+ }
21
+ updateExam(params) {
22
+ let serviceUrl = this.SERVICE_URL + 'update/exam';
23
+ this.generateRequestParams(params);
24
+ return this.http.put(serviceUrl, this.httpOptions);
25
+ }
26
+ updateExamStatus(params) {
27
+ let serviceUrl = this.SERVICE_URL + 'update/exam/status';
28
+ this.generateRequestParams(params);
29
+ return this.http.put(serviceUrl, this.httpOptions);
30
+ }
31
+ copyExam(params) {
32
+ let serviceUrl = this.SERVICE_URL + 'copy/exam';
33
+ this.generateRequestParams(params);
34
+ return this.http.put(serviceUrl, this.httpOptions);
35
+ }
36
+ getExamByCode(code) {
37
+ let serviceUrl = this.SERVICE_URL + 'get/exam/by/code/' + code;
38
+ return this.http.get(serviceUrl);
39
+ }
40
+ getExamByAuthor(code) {
41
+ let serviceUrl = this.SERVICE_URL + 'get/exams/by/author/' + code;
42
+ return this.http.get(serviceUrl);
43
+ }
44
+ // ---------------------- SECCIONES ---------------------- //
45
+ createSectionWithAll(params) {
46
+ let serviceUrl = this.SERVICE_URL + 'post/section/with/all';
47
+ this.generateRequestParams(params);
48
+ return this.http.post(serviceUrl, this.httpOptions);
49
+ }
50
+ createSection(params) {
51
+ let serviceUrl = this.SERVICE_URL + 'post/section';
52
+ this.generateRequestParams(params);
53
+ return this.http.post(serviceUrl, this.httpOptions);
54
+ }
55
+ getAllSections(params) {
56
+ let serviceUrl = this.SERVICE_URL + 'post/all/sections';
57
+ this.generateRequestParams(params);
58
+ return this.http.post(serviceUrl, this.httpOptions);
59
+ }
60
+ updateSection(params) {
61
+ let serviceUrl = this.SERVICE_URL + 'update/section';
62
+ this.generateRequestParams(params);
63
+ return this.http.put(serviceUrl, this.httpOptions);
64
+ }
65
+ updateSectionMedia(params) {
66
+ let serviceUrl = this.SERVICE_URL + 'post/section/media';
67
+ this.generateRequestParams(params);
68
+ return this.http.post(serviceUrl, this.httpOptions);
69
+ }
70
+ updateSectionState(params) {
71
+ let serviceUrl = this.SERVICE_URL + 'update/section/state';
72
+ this.generateRequestParams(params);
73
+ return this.http.put(serviceUrl, this.httpOptions);
74
+ }
75
+ getSectionsByExam(code) {
76
+ let serviceUrl = this.SERVICE_URL + 'get/sections/by/exam/' + code;
77
+ return this.http.get(serviceUrl);
78
+ }
79
+ // ---------------------- PREGUNTAS ---------------------- //
80
+ createQuestion(params) {
81
+ let serviceUrl = this.SERVICE_URL + 'post/question';
82
+ this.generateRequestParams(params);
83
+ return this.http.post(serviceUrl, this.httpOptions);
84
+ }
85
+ updateQuestion(params) {
86
+ let serviceUrl = this.SERVICE_URL + 'update/question';
87
+ this.generateRequestParams(params);
88
+ return this.http.put(serviceUrl, this.httpOptions);
89
+ }
90
+ getQuestionsBySections(params) {
91
+ let serviceUrl = this.SERVICE_URL + 'get/questions/by/sections';
92
+ this.generateRequestParams(params);
93
+ return this.http.post(serviceUrl, this.httpOptions);
94
+ }
95
+ getQuestionsBySection(code) {
96
+ let serviceUrl = this.SERVICE_URL + 'get/questions/by/section/' + code;
97
+ return this.http.get(serviceUrl, this.httpOptions);
98
+ }
99
+ // ---------------------- RESPUESTAS ---------------------- //
100
+ createAnswer(params) {
101
+ let serviceUrl = this.SERVICE_URL + 'post/answer';
102
+ this.generateRequestParams(params);
103
+ return this.http.post(serviceUrl, this.httpOptions);
104
+ }
105
+ updateAnswer(params) {
106
+ let serviceUrl = this.SERVICE_URL + 'update/answer';
107
+ this.generateRequestParams(params);
108
+ return this.http.put(serviceUrl, this.httpOptions);
109
+ }
110
+ getAnswersByQuestion(code) {
111
+ let serviceUrl = this.SERVICE_URL + 'get/answers/by/question/' + code;
112
+ return this.http.get(serviceUrl, this.httpOptions);
113
+ }
114
+ updateQuestionState(params) {
115
+ let serviceUrl = this.SERVICE_URL + 'update/question/state';
116
+ this.generateRequestParams(params);
117
+ return this.http.put(serviceUrl, this.httpOptions);
118
+ }
119
+ // construye los headers y params
120
+ generateRequestParams(param) {
121
+ this.httpOptions = {
122
+ header: new HttpHeaders(),
123
+ params: param,
124
+ };
125
+ }
126
+ }
127
+ TestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TestService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
128
+ TestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TestService, providedIn: 'root' });
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TestService, decorators: [{
130
+ type: Injectable,
131
+ args: [{
132
+ providedIn: 'root',
133
+ }]
134
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvc2VydmljZXMvdGVzdC1zZXJ2aWNlL3Rlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBeUIzQyxNQUFNLE9BQU8sV0FBVztJQUt0QixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSjVCLGdCQUFXLEdBQUcscUNBQXFDLENBQUM7SUFJckIsQ0FBQztJQUV4Qyw0REFBNEQ7SUFDNUQsVUFBVSxDQUFDLElBQVU7UUFDbkIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXFCO1FBQy9CLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDO1FBQ3BELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFvQjtRQUM3QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztRQUNsRCxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxD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TUFBNkI7UUFDL0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztRQUM1RCxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxpQ0FBaUM7SUFDekIscUJBQXFCLENBQUMsS0FBVTtRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUN6QixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUM7SUFDSixDQUFDOzt3R0FoSlUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDb3B5RXhhbVJxLFxyXG4gIENyZWF0ZUFuc3dlclJxLFxyXG4gIENyZWF0ZVF1ZXN0aW9uUnEsXHJcbiAgQ3JlYXRlU2VjdGlvblJxLFxyXG4gIENyZWF0ZVNlY3Rpb25XaXRoQWxsUnEsXHJcbiAgRXhhbSxcclxuICBHZXRBbGxFeGFtc1JxLFxyXG4gIEdldEFsbFNlY3Rpb25zUnEsXHJcbiAgZ2V0UXVlc3Rpb25zQnlTZWN0aW9uc1JxLFxyXG4gIFVwZGF0ZUFuc3dlclJxLFxyXG4gIFVwZGF0ZUV4YW1ScSxcclxuICBVcGRhdGVFeGFtU3RhdHVzUnEsXHJcbiAgVXBkYXRlUXVlc3Rpb25ScSxcclxuICBVcGRhdGVRdWVzdGlvblN0YXRlUnEsXHJcbiAgVXBkYXRlU2VjdGlvbk1lZGlhUnEsXHJcbiAgVXBkYXRlU2VjdGlvblJxLFxyXG4gIFVwZGF0ZVNlY3Rpb25TdGF0ZVJxLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90ZXN0L3Rlc3QubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlc3RTZXJ2aWNlIHtcclxuICBwcml2YXRlIFNFUlZJQ0VfVVJMID0gJ2h0dHBzOi8vaXB0ZGV2LmNvbS5jby9sYWIvdGVzdC9hcGkvJztcclxuXHJcbiAgaHR0cE9wdGlvbnM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEVYw4FNRU5FUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXHJcbiAgY3JlYXRlRXhhbShleGFtOiBFeGFtKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2V4YW0nO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMoZXhhbSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxFeGFtcyhwYXJhbXM6IEdldEFsbEV4YW1zUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvYWxsL2V4YW0nO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUV4YW0ocGFyYW1zOiBVcGRhdGVFeGFtUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3VwZGF0ZS9leGFtJztcclxuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUV4YW1TdGF0dXMocGFyYW1zOiBVcGRhdGVFeGFtU3RhdHVzUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3VwZGF0ZS9leGFtL3N0YXR1cyc7XHJcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBjb3B5RXhhbShwYXJhbXM6IENvcHlFeGFtUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2NvcHkvZXhhbSc7XHJcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRFeGFtQnlDb2RlKGNvZGU6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2V4YW0vYnkvY29kZS8nICsgY29kZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXhhbUJ5QXV0aG9yKGNvZGU6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2V4YW1zL2J5L2F1dGhvci8nICsgY29kZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTRUNDSU9ORVMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xyXG4gIGNyZWF0ZVNlY3Rpb25XaXRoQWxsKHBhcmFtczogQ3JlYXRlU2VjdGlvbldpdGhBbGxScSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9zZWN0aW9uL3dpdGgvYWxsJztcclxuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTZWN0aW9uKHBhcmFtczogQ3JlYXRlU2VjdGlvblJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3NlY3Rpb24nO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGdldEFsbFNlY3Rpb25zKHBhcmFtczogR2V0QWxsU2VjdGlvbnNScSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9hbGwvc2VjdGlvbnMnO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNlY3Rpb24ocGFyYW1zOiBVcGRhdGVTZWN0aW9uUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3VwZGF0ZS9zZWN0aW9uJztcclxuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNlY3Rpb25NZWRpYShwYXJhbXM6IFVwZGF0ZVNlY3Rpb25NZWRpYVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3NlY3Rpb24vbWVkaWEnO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNlY3Rpb25TdGF0ZShwYXJhbXM6IFVwZGF0ZVNlY3Rpb25TdGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICd1cGRhdGUvc2VjdGlvbi9zdGF0ZSc7XHJcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWN0aW9uc0J5RXhhbShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9zZWN0aW9ucy9ieS9leGFtLycgKyBjb2RlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBSRUdVTlRBUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXHJcbiAgY3JlYXRlUXVlc3Rpb24ocGFyYW1zOiBDcmVhdGVRdWVzdGlvblJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3F1ZXN0aW9uJztcclxuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVRdWVzdGlvbihwYXJhbXM6IFVwZGF0ZVF1ZXN0aW9uUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3VwZGF0ZS9xdWVzdGlvbic7XHJcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRRdWVzdGlvbnNCeVNlY3Rpb25zKHBhcmFtczogZ2V0UXVlc3Rpb25zQnlTZWN0aW9uc1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvcXVlc3Rpb25zL2J5L3NlY3Rpb25zJztcclxuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRRdWVzdGlvbnNCeVNlY3Rpb24oY29kZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvcXVlc3Rpb25zL2J5L3NlY3Rpb24vJyArIGNvZGU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUkVTUFVFU1RBUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXHJcbiAgY3JlYXRlQW5zd2VyKHBhcmFtczogQ3JlYXRlQW5zd2VyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvYW5zd2VyJztcclxuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVBbnN3ZXIocGFyYW1zOiBVcGRhdGVBbnN3ZXJScSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAndXBkYXRlL2Fuc3dlcic7XHJcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRBbnN3ZXJzQnlRdWVzdGlvbihjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9hbnN3ZXJzL2J5L3F1ZXN0aW9uLycgKyBjb2RlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVRdWVzdGlvblN0YXRlKHBhcmFtczogVXBkYXRlUXVlc3Rpb25TdGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICd1cGRhdGUvcXVlc3Rpb24vc3RhdGUnO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29uc3RydXllIGxvcyBoZWFkZXJzIHkgcGFyYW1zXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW06IGFueSkge1xyXG4gICAgdGhpcy5odHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyOiBuZXcgSHR0cEhlYWRlcnMoKSxcclxuICAgICAgcGFyYW1zOiBwYXJhbSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==