ng-pli-commons 1.0.121 → 1.0.124

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 (232) hide show
  1. package/fesm2022/ng-pli-commons.mjs +745 -749
  2. package/fesm2022/ng-pli-commons.mjs.map +1 -1
  3. package/lib/components/pdf-visualizer/pdf-visualizer.component.d.ts +0 -2
  4. package/lib/components/token/token.component.d.ts +0 -1
  5. package/lib/ng-pli-commons.module.d.ts +12 -13
  6. package/lib/services/guarantee-document.service.d.ts +0 -1
  7. package/lib/services/initial-record.service.d.ts +1 -6
  8. package/lib/services/maintenance.service.d.ts +4 -0
  9. package/package.json +3 -6
  10. package/esm2022/lib/components/backoffice.commons.component.mjs +0 -40
  11. package/esm2022/lib/components/common.lists.component.mjs +0 -176
  12. package/esm2022/lib/components/configuration-token/configuration-token-subject.service.mjs +0 -23
  13. package/esm2022/lib/components/configuration-token/configuration-token.component.mjs +0 -665
  14. package/esm2022/lib/components/configuration-token/guarantee-token/guarantee-token.component.mjs +0 -103
  15. package/esm2022/lib/components/configuration-token/snapshot-token/snapshot-token.component.mjs +0 -108
  16. package/esm2022/lib/components/configuration.commons.component.mjs +0 -40
  17. package/esm2022/lib/components/dashboard.commons.component.mjs +0 -84
  18. package/esm2022/lib/components/dynamic-filter/dynamic-filter.component.mjs +0 -131
  19. package/esm2022/lib/components/excel-to-json/excel-to-json.component.mjs +0 -54
  20. package/esm2022/lib/components/frontoffice.commons.component.mjs +0 -88
  21. package/esm2022/lib/components/pdf-analyzer/pdf-analyzer.component.mjs +0 -162
  22. package/esm2022/lib/components/pdf-config/pdf-config.component.mjs +0 -170
  23. package/esm2022/lib/components/pdf-generator/pdf-generator.component.mjs +0 -207
  24. package/esm2022/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.mjs +0 -307
  25. package/esm2022/lib/components/pdf-visualizer/pdf-visualizer.component.mjs +0 -405
  26. package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +0 -92
  27. package/esm2022/lib/components/segmentation-tokens/segmentation-tokens.component.mjs +0 -199
  28. package/esm2022/lib/components/select-ppp/select-ppp.component.mjs +0 -200
  29. package/esm2022/lib/components/show-hide-columns/show-hide-columns-table.component.mjs +0 -116
  30. package/esm2022/lib/components/token/token.component.mjs +0 -1047
  31. package/esm2022/lib/components/tokens-calculator/tokens-calculator.component.mjs +0 -128
  32. package/esm2022/lib/directives/currency-colfuturo-formatter.directive.mjs +0 -47
  33. package/esm2022/lib/directives/currency-decimal-colfuturo-formatter.directive.mjs +0 -34
  34. package/esm2022/lib/ng-pli-commons.module.mjs +0 -393
  35. package/esm2022/lib/ng-pli-commons.service.mjs +0 -14
  36. package/esm2022/lib/pipes/currency-colfuturo.pipe.mjs +0 -35
  37. package/esm2022/lib/pipes/currency-decimal-colfuturo.pipe.mjs +0 -36
  38. package/esm2022/lib/pipes/currency-print-colfuturo.pipe.mjs +0 -33
  39. package/esm2022/lib/pipes/thousands.pipe.mjs +0 -60
  40. package/esm2022/lib/services/application-fill-percentage.service.mjs +0 -30
  41. package/esm2022/lib/services/application-pdf-form.service.mjs +0 -27
  42. package/esm2022/lib/services/application-tag.service.mjs +0 -56
  43. package/esm2022/lib/services/application.service.mjs +0 -253
  44. package/esm2022/lib/services/assign-task.service.mjs +0 -30
  45. package/esm2022/lib/services/authentication.service.mjs +0 -133
  46. package/esm2022/lib/services/blocked-beneficiary.service.mjs +0 -42
  47. package/esm2022/lib/services/budget-application.service.mjs +0 -265
  48. package/esm2022/lib/services/budget-setup.service.mjs +0 -26
  49. package/esm2022/lib/services/budget-simulation.service.mjs +0 -65
  50. package/esm2022/lib/services/budget.service.mjs +0 -205
  51. package/esm2022/lib/services/closure-wallet.service.mjs +0 -39
  52. package/esm2022/lib/services/cnf-correspondence-document-manager.service.mjs +0 -39
  53. package/esm2022/lib/services/codebtors.service.mjs +0 -28
  54. package/esm2022/lib/services/committee-assistant.service.mjs +0 -55
  55. package/esm2022/lib/services/committee-money.service.mjs +0 -44
  56. package/esm2022/lib/services/committee-pdf.service.mjs +0 -27
  57. package/esm2022/lib/services/committee-snapshot.service.mjs +0 -60
  58. package/esm2022/lib/services/common-info.service.mjs +0 -51
  59. package/esm2022/lib/services/common.service.mjs +0 -285
  60. package/esm2022/lib/services/configuration-document.service.mjs +0 -297
  61. package/esm2022/lib/services/configuration-minisite.service.mjs +0 -26
  62. package/esm2022/lib/services/configuration.service.mjs +0 -53
  63. package/esm2022/lib/services/correspondence-document-category.service.mjs +0 -31
  64. package/esm2022/lib/services/correspondence-manager.service.mjs +0 -67
  65. package/esm2022/lib/services/credit-score.service.mjs +0 -48
  66. package/esm2022/lib/services/credit-study.service.mjs +0 -292
  67. package/esm2022/lib/services/cube.service.mjs +0 -27
  68. package/esm2022/lib/services/data-form-history.service.mjs +0 -25
  69. package/esm2022/lib/services/data-form.service.mjs +0 -176
  70. package/esm2022/lib/services/data-letter-segmentation.service.mjs +0 -64
  71. package/esm2022/lib/services/document-analysis-auto.service.mjs +0 -27
  72. package/esm2022/lib/services/document-history.service.mjs +0 -43
  73. package/esm2022/lib/services/document-management.service.mjs +0 -57
  74. package/esm2022/lib/services/document-process.service.mjs +0 -27
  75. package/esm2022/lib/services/document-validation-attempt.service.mjs +0 -32
  76. package/esm2022/lib/services/document.service.mjs +0 -144
  77. package/esm2022/lib/services/documentary.type.service.mjs +0 -69
  78. package/esm2022/lib/services/email.service.mjs +0 -30
  79. package/esm2022/lib/services/evaluation.service.mjs +0 -181
  80. package/esm2022/lib/services/export-excel.service.mjs +0 -32
  81. package/esm2022/lib/services/file.service.mjs +0 -153
  82. package/esm2022/lib/services/form.service.mjs +0 -112
  83. package/esm2022/lib/services/gic-client-disbursement-metadata.service.mjs +0 -31
  84. package/esm2022/lib/services/gic-client.service.mjs +0 -49
  85. package/esm2022/lib/services/gic-cnf-bankvision-transaction.service.mjs +0 -31
  86. package/esm2022/lib/services/gic-cnf-closing-date.service.mjs +0 -34
  87. package/esm2022/lib/services/gic-cnf-maintenance.service.mjs +0 -30
  88. package/esm2022/lib/services/gic-collection.service.mjs +0 -53
  89. package/esm2022/lib/services/gic-disbursement.service.mjs +0 -39
  90. package/esm2022/lib/services/gic-extract.service.mjs +0 -41
  91. package/esm2022/lib/services/gic-log.service.mjs +0 -41
  92. package/esm2022/lib/services/gic-payment-application.service.mjs +0 -35
  93. package/esm2022/lib/services/gic-payment-plan-cube.service.mjs +0 -27
  94. package/esm2022/lib/services/gic-payment-plan.service.mjs +0 -32
  95. package/esm2022/lib/services/gic-trm.service.mjs +0 -27
  96. package/esm2022/lib/services/global.show.task.service.mjs +0 -37
  97. package/esm2022/lib/services/guarantee-document.service.mjs +0 -56
  98. package/esm2022/lib/services/guarantee-enrollment.service.mjs +0 -37
  99. package/esm2022/lib/services/guarantee.service.mjs +0 -128
  100. package/esm2022/lib/services/guarantees-summary-service.mjs +0 -26
  101. package/esm2022/lib/services/hash.service.mjs +0 -36
  102. package/esm2022/lib/services/import-data.service.mjs +0 -27
  103. package/esm2022/lib/services/import-excel-gic.service.mjs +0 -53
  104. package/esm2022/lib/services/initial-configuration-gic-parameters.service.mjs +0 -51
  105. package/esm2022/lib/services/initial-record.service.mjs +0 -58
  106. package/esm2022/lib/services/integration-ado.service.mjs +0 -54
  107. package/esm2022/lib/services/interaction-application-user.service.mjs +0 -81
  108. package/esm2022/lib/services/interest-adjustment.service.mjs +0 -34
  109. package/esm2022/lib/services/keys-assignation.service.mjs +0 -127
  110. package/esm2022/lib/services/legalization.service.mjs +0 -150
  111. package/esm2022/lib/services/letter-campaing.service.mjs +0 -49
  112. package/esm2022/lib/services/letter-task-mapping.service.mjs +0 -40
  113. package/esm2022/lib/services/log.service.mjs +0 -41
  114. package/esm2022/lib/services/maintenance.service.mjs +0 -66
  115. package/esm2022/lib/services/master-category.service.mjs +0 -66
  116. package/esm2022/lib/services/master-program.service.mjs +0 -78
  117. package/esm2022/lib/services/master-university.service.mjs +0 -79
  118. package/esm2022/lib/services/migration-plis.service.mjs +0 -27
  119. package/esm2022/lib/services/migration-survey-queue.service.mjs +0 -24
  120. package/esm2022/lib/services/openkm-document.service.mjs +0 -27
  121. package/esm2022/lib/services/page.service.mjs +0 -38
  122. package/esm2022/lib/services/partner-system.service.mjs +0 -30
  123. package/esm2022/lib/services/partner.service.mjs +0 -34
  124. package/esm2022/lib/services/pdf-analyzer.service.mjs +0 -33
  125. package/esm2022/lib/services/people-master.service.mjs +0 -42
  126. package/esm2022/lib/services/permission.service.mjs +0 -29
  127. package/esm2022/lib/services/pli-cnf-acuity-fields.service.mjs +0 -34
  128. package/esm2022/lib/services/pli-cnf-app-card-filter.service.mjs +0 -40
  129. package/esm2022/lib/services/pli-cnf-appointment-type.service.mjs +0 -41
  130. package/esm2022/lib/services/pli-cnf-budget-program-type.service.mjs +0 -54
  131. package/esm2022/lib/services/pli-cnf-budget.service.mjs +0 -31
  132. package/esm2022/lib/services/pli-cnf-cloning.service.mjs +0 -27
  133. package/esm2022/lib/services/pli-cnf-committee-pdf-config-table-config.service.mjs +0 -47
  134. package/esm2022/lib/services/pli-cnf-committee-pdf-gen-status.service.mjs +0 -30
  135. package/esm2022/lib/services/pli-cnf-committee-valpro-columns.service.mjs +0 -42
  136. package/esm2022/lib/services/pli-cnf-committee-visualization-mode.service.mjs +0 -42
  137. package/esm2022/lib/services/pli-cnf-committee.service.mjs +0 -66
  138. package/esm2022/lib/services/pli-cnf-config-minisite.service.mjs +0 -90
  139. package/esm2022/lib/services/pli-cnf-configuration-credit-study.service.mjs +0 -41
  140. package/esm2022/lib/services/pli-cnf-document-management.service.mjs +0 -40
  141. package/esm2022/lib/services/pli-cnf-dynamic-keys-assign.service.mjs +0 -52
  142. package/esm2022/lib/services/pli-cnf-evaluation-task-mailing.service.mjs +0 -31
  143. package/esm2022/lib/services/pli-cnf-evaluation-task-template.service.mjs +0 -39
  144. package/esm2022/lib/services/pli-cnf-evaluation-task.service.mjs +0 -112
  145. package/esm2022/lib/services/pli-cnf-evaluation-template.service.mjs +0 -95
  146. package/esm2022/lib/services/pli-cnf-form-edit.service.mjs +0 -68
  147. package/esm2022/lib/services/pli-cnf-form-multiaplicacion.service.mjs +0 -46
  148. package/esm2022/lib/services/pli-cnf-guarantee-documents-template.service.mjs +0 -40
  149. package/esm2022/lib/services/pli-cnf-guarantee-token.service.mjs +0 -42
  150. package/esm2022/lib/services/pli-cnf-header.service.mjs +0 -39
  151. package/esm2022/lib/services/pli-cnf-indicator.service.mjs +0 -39
  152. package/esm2022/lib/services/pli-cnf-information-system.service.mjs +0 -24
  153. package/esm2022/lib/services/pli-cnf-interaction.service.mjs +0 -78
  154. package/esm2022/lib/services/pli-cnf-letter-template-type.service.mjs +0 -29
  155. package/esm2022/lib/services/pli-cnf-letter-template.service.mjs +0 -48
  156. package/esm2022/lib/services/pli-cnf-look-and-feel.service.mjs +0 -28
  157. package/esm2022/lib/services/pli-cnf-mail.service.mjs +0 -30
  158. package/esm2022/lib/services/pli-cnf-menu-form.service.mjs +0 -34
  159. package/esm2022/lib/services/pli-cnf-migration-plis-field-budget.service.mjs +0 -34
  160. package/esm2022/lib/services/pli-cnf-migration-plis-field.service.mjs +0 -47
  161. package/esm2022/lib/services/pli-cnf-migration-status-plis.service.mjs +0 -44
  162. package/esm2022/lib/services/pli-cnf-page-section-form.service.mjs +0 -66
  163. package/esm2022/lib/services/pli-cnf-page-sub-process.service.mjs +0 -25
  164. package/esm2022/lib/services/pli-cnf-pdfs.service.mjs +0 -31
  165. package/esm2022/lib/services/pli-cnf-profile-form.service.mjs +0 -40
  166. package/esm2022/lib/services/pli-cnf-profile-user.service.mjs +0 -49
  167. package/esm2022/lib/services/pli-cnf-project-summary.service.mjs +0 -39
  168. package/esm2022/lib/services/pli-cnf-scenario.service.mjs +0 -47
  169. package/esm2022/lib/services/pli-cnf-segmentation.service.mjs +0 -72
  170. package/esm2022/lib/services/pli-cnf-snapshot-token.service.mjs +0 -42
  171. package/esm2022/lib/services/pli-cnf-status-flow-interaction.service.mjs +0 -74
  172. package/esm2022/lib/services/pli-cnf-status-flow.service.mjs +0 -56
  173. package/esm2022/lib/services/pli-cnf-support-document-category.service.mjs +0 -47
  174. package/esm2022/lib/services/pli-cnf-support-document.service.mjs +0 -56
  175. package/esm2022/lib/services/pli-cnf-survey-document.service.mjs +0 -37
  176. package/esm2022/lib/services/pli-cnf-survey-pdf.service.mjs +0 -34
  177. package/esm2022/lib/services/pli-cnf-survey.service.mjs +0 -46
  178. package/esm2022/lib/services/pli-cnf-task-group.service.mjs +0 -33
  179. package/esm2022/lib/services/pli-cnf-text-category.service.mjs +0 -38
  180. package/esm2022/lib/services/pli-cnf-text-option.service.mjs +0 -39
  181. package/esm2022/lib/services/pli-cnf-text.service.mjs +0 -62
  182. package/esm2022/lib/services/pli-cnf-type-text.service.mjs +0 -45
  183. package/esm2022/lib/services/pli-cnf-university-article.service.mjs +0 -39
  184. package/esm2022/lib/services/pli-cnf-user-calendar.service.mjs +0 -36
  185. package/esm2022/lib/services/pli-cnf-user-workspace.service.mjs +0 -35
  186. package/esm2022/lib/services/pli-cnf-valpro-keys.service.mjs +0 -35
  187. package/esm2022/lib/services/pli-cnf-workspace-segmentation.service.mjs +0 -31
  188. package/esm2022/lib/services/pli-message-type.service.mjs +0 -40
  189. package/esm2022/lib/services/pli-multiple-value-filter.service.mjs +0 -39
  190. package/esm2022/lib/services/pli-promocion-username.service.mjs +0 -57
  191. package/esm2022/lib/services/pli-seg-action-user.service.mjs +0 -37
  192. package/esm2022/lib/services/pli-segmentation.service.mjs +0 -130
  193. package/esm2022/lib/services/pli-tag-assignment.service.mjs +0 -36
  194. package/esm2022/lib/services/pli-tag.service.mjs +0 -55
  195. package/esm2022/lib/services/pli-user.service.mjs +0 -51
  196. package/esm2022/lib/services/plis-beneficiario.service.mjs +0 -29
  197. package/esm2022/lib/services/plis-estatus-change.service.mjs +0 -30
  198. package/esm2022/lib/services/post-selection.service.mjs +0 -25
  199. package/esm2022/lib/services/ppp.service.mjs +0 -360
  200. package/esm2022/lib/services/profile.service.mjs +0 -60
  201. package/esm2022/lib/services/progress-bar.service.mjs +0 -40
  202. package/esm2022/lib/services/promotion-score.service.mjs +0 -44
  203. package/esm2022/lib/services/registry-identifier.service.mjs +0 -49
  204. package/esm2022/lib/services/return-refund.service.mjs +0 -53
  205. package/esm2022/lib/services/segmentation-tokens.service.mjs +0 -43
  206. package/esm2022/lib/services/segmentation-user-service.service.mjs +0 -94
  207. package/esm2022/lib/services/segmentation.service.mjs +0 -31
  208. package/esm2022/lib/services/send-application.service.mjs +0 -484
  209. package/esm2022/lib/services/sesion-form.service.mjs +0 -31
  210. package/esm2022/lib/services/sesion.service.mjs +0 -48
  211. package/esm2022/lib/services/spinner.service.mjs +0 -16
  212. package/esm2022/lib/services/sponsorship-letter.service.mjs +0 -68
  213. package/esm2022/lib/services/status.service.mjs +0 -104
  214. package/esm2022/lib/services/summary-budget.service.mjs +0 -24
  215. package/esm2022/lib/services/survey-metadata.service.mjs +0 -28
  216. package/esm2022/lib/services/survey-queue.service.mjs +0 -24
  217. package/esm2022/lib/services/survey.service.mjs +0 -52
  218. package/esm2022/lib/services/tag-management.service.mjs +0 -58
  219. package/esm2022/lib/services/tasa.cambio.service.mjs +0 -35
  220. package/esm2022/lib/services/token-transformation.service.mjs +0 -62
  221. package/esm2022/lib/services/token.service.mjs +0 -1439
  222. package/esm2022/lib/services/university.service.mjs +0 -50
  223. package/esm2022/lib/services/upload-documents.service.mjs +0 -60
  224. package/esm2022/lib/services/user.service.mjs +0 -28
  225. package/esm2022/lib/services/visualization-committee.service.mjs +0 -91
  226. package/esm2022/lib/utils/custom-validator.mjs +0 -95
  227. package/esm2022/lib/utils/form-util.mjs +0 -35
  228. package/esm2022/lib/utils/formio-util.mjs +0 -582
  229. package/esm2022/lib/utils/version-commons.mjs +0 -10
  230. package/esm2022/ng-pli-commons.mjs +0 -5
  231. package/esm2022/public-api.mjs +0 -226
  232. package/esm2022/version.mjs +0 -29
@@ -1,360 +0,0 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import { HttpParams, HttpHeaders } from '@angular/common/http';
3
- import { BehaviorSubject } from 'rxjs';
4
- import { PliPatrocinador, PliPrograma, PliPromocion, JwtUtil, NumberUtil, AuthenticationUtil } from 'ng-pli-util';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- export class PppService {
8
- /** It contains the key of the json web token */
9
- static { this.TOKEN_PPP = 'tokenPpp'; }
10
- constructor(environment, httpClient) {
11
- this.environment = environment;
12
- this.httpClient = httpClient;
13
- this.headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };
14
- /** This observable allows to verify if ppp is created */
15
- this.subjectPpp = new BehaviorSubject(undefined);
16
- /** This observable allows to verify if list ppp is generated */
17
- this.subjectListPpp = new BehaviorSubject(undefined);
18
- }
19
- /** It has an observable to notify if the ppp is changed */
20
- onChangePpp() {
21
- return this.subjectPpp.asObservable();
22
- }
23
- /** It sets the new ppp */
24
- setPpp(ppp) {
25
- if (ppp) {
26
- if (typeof ppp === 'string') {
27
- if (NumberUtil.isNumber(ppp)) {
28
- ppp = parseInt(ppp);
29
- }
30
- else {
31
- ppp = 0;
32
- }
33
- }
34
- else if (typeof ppp !== 'number') {
35
- ppp = 0;
36
- }
37
- }
38
- this.subjectPpp.next(ppp);
39
- }
40
- /** It returns a list of patrocinador */
41
- getListPatrocinador() {
42
- return this.httpClient.get(this.environment.host.backend.plis + 'config/patrocinador/getAll');
43
- }
44
- /** It returns a patrocinador by id */
45
- getPatrocinadorById(id) {
46
- return this.httpClient.get(this.environment.host.backend.plis + 'config/patrocinador/getById', { params: new HttpParams().set('patCodigo', id.toString()) });
47
- }
48
- /** It saves a patrocinador */
49
- savePatrocinador(oldPatrocinador, patrocinador) {
50
- //pliUsuario: {usuLogin : AuthenticationUtil.getUsername()};
51
- let object = {
52
- pliPatrocinadorBefore: oldPatrocinador,
53
- pliPatrocinador: patrocinador,
54
- pliUsuario: { usuLogin: AuthenticationUtil.getUsername() }
55
- };
56
- return this.httpClient.post(this.environment.host.backend.plis + 'config/patrocinador/save', object, this.headerJson);
57
- }
58
- /** It returns the list of tipo patrocinador */
59
- getListTipoPatrocinador() {
60
- return this.httpClient.get(this.environment.host.backend.plis + 'config/tipo-patrocinador/getAll');
61
- }
62
- /** It returns the list of tipo programa */
63
- getListTipoPrograma() {
64
- return this.httpClient.get(this.environment.host.backend.plis + 'config/tipo-programa/getAll');
65
- }
66
- /** It returns the list of paises */
67
- getPaises() {
68
- return this.httpClient.get(this.environment.host.backend.plis + 'pais/getAll');
69
- }
70
- /** It returns the list of programas by patrocinador id */
71
- getListProgramasBypatCodigo(patCodigo) {
72
- return this.httpClient.get(this.environment.host.backend.plis + 'config/programa/getAllByPatrocinador', { params: new HttpParams().set('patCodigo', patCodigo.toString()) });
73
- }
74
- /** It returns programa by id */
75
- getProgramaById(id) {
76
- return this.httpClient.get(this.environment.host.backend.plis + 'config/programa/getById', {
77
- params: new HttpParams().set('progCodigo', id.toString())
78
- });
79
- }
80
- /** It saves a programa */
81
- savePrograma(oldPrograma, programa) {
82
- let object = {
83
- pliProgramaBefore: oldPrograma,
84
- pliPrograma: programa,
85
- pliUsuario: { usuLogin: AuthenticationUtil.getUsername() }
86
- };
87
- return this.httpClient.post(this.environment.host.backend.plis + 'config/programa/save', object, this.headerJson);
88
- }
89
- /** It returns the list of programas by programa id */
90
- getListPromocionesByprogCodigo(progCodigo) {
91
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getAllByPrograma', { params: new HttpParams().set('progCodigo', progCodigo.toString()) });
92
- }
93
- /** It returns the list of programas by patrocinador id */
94
- getListPromocionesBypatCodigo(patCodigo) {
95
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getAllByPatrocinador', { params: new HttpParams().set('patCodigo', patCodigo.toString()) });
96
- }
97
- /** It returns the list of programas by patrocinador id and without configuracion */
98
- getListPromocionesBypatCodigoWithoutConfiguracion(patCodigo) {
99
- return this.httpClient.get(this.environment.host.backend.plis +
100
- 'config/promocion/getByPatrocinador/withoutConfiguracion', { params: new HttpParams().set('patCodigo', patCodigo.toString()) });
101
- }
102
- /** It returns promocion by id */
103
- getPromocionById(id) {
104
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getById', { params: new HttpParams().set('promCodigo', id.toString()) });
105
- }
106
- /** It saves a promocion */
107
- savePromocion(oldPromocion, promocion) {
108
- let object = {
109
- pliPromocionBefore: oldPromocion,
110
- pliPromocion: promocion,
111
- pliUsuario: { usuLogin: AuthenticationUtil.getUsername() }
112
- };
113
- return this.httpClient.post(this.environment.host.backend.plis + 'config/promocion/save', object, this.headerJson);
114
- }
115
- /** It returns a list of pliCnfConfiguracion by patCodigo */
116
- getConfiguracionBypatCodigo(patCodigo, cargarListas) {
117
- return this.httpClient.get(this.environment.host.backend.plis + 'config/configuracion/getAllByPatrocinador', {
118
- params: new HttpParams()
119
- .set('patCodigo', patCodigo.toString())
120
- .set('cargarListas', cargarListas.toString())
121
- });
122
- }
123
- /** It returns configuracion by id */
124
- getConfiguracionById(id, cargarListas) {
125
- return this.httpClient.get(this.environment.host.backend.plis + 'config/configuracion/getById', {
126
- params: new HttpParams()
127
- .set('cconCodigo', id.toString())
128
- .set('cargarListas', cargarListas.toString())
129
- });
130
- }
131
- /** It saves a configuracion */
132
- saveConfiguracion(oldConfiguracion, configuracion) {
133
- let object = {
134
- pliCnfConfiguracionBefore: oldConfiguracion,
135
- pliCnfConfiguracion: configuracion,
136
- pliUsuario: { usuLogin: AuthenticationUtil.getUsername() }
137
- };
138
- return this.httpClient.post(this.environment.host.backend.plis + 'config/configuracion/save', object, this.headerJson);
139
- }
140
- /** It updates de code of configuracion to a list of codes of promocion */
141
- updateConfiguracionPliPromocion(cconCodigo, listaPromCodigo) {
142
- let object = {
143
- cconCodigo: cconCodigo,
144
- listaPromCodigo: listaPromCodigo
145
- };
146
- return this.httpClient.put(this.environment.host.backend.plis + 'config/promocion/updateConfigurationMassive', object, this.headerJson);
147
- }
148
- /** It has an observable to notify if the list ppp is generated*/
149
- getListPpp() {
150
- setTimeout(() => {
151
- this.generate();
152
- }, 300);
153
- return this.subjectListPpp.asObservable();
154
- }
155
- /** It returns a list of available pliPromocion by patCodigo */
156
- getAvailablePromocion(patCodigo) {
157
- if (!patCodigo) {
158
- patCodigo = 0;
159
- }
160
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getAvailableByPatCodigo', { params: new HttpParams().set('patCodigo', patCodigo.toString()) });
161
- }
162
- /** It returns a list of pliPromocion */
163
- getAll() {
164
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getAll');
165
- }
166
- /** it returns list of patrocinador depends of token info*/
167
- getlPatrocinadorByToken() {
168
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
169
- if (tokenPpp && tokenPpp.length) {
170
- const ppp = JwtUtil.parseJwt(tokenPpp);
171
- if (ppp && ppp.ppp) {
172
- let lPliPatrocinador = Array();
173
- for (let pat of ppp.ppp) {
174
- let pliPat = new PliPatrocinador();
175
- pliPat.patCodigo = pat.patCodigo;
176
- pliPat.patNombre = pat.patNombre;
177
- pliPat.patNombreCorto = pat.patNombreCorto;
178
- if (pat.listaPliPrograma && pat.listaPliPrograma.length > 0) {
179
- pliPat.lPliPrograma = Array();
180
- for (let prog of pat.listaPliPrograma) {
181
- let pliProg = new PliPrograma();
182
- pliProg.progCodigo = prog.progCodigo;
183
- pliProg.progNombre = prog.progNombre;
184
- pliProg.progNombreCorto = prog.progNombreCorto;
185
- if (prog.listaPliPromocion && prog.listaPliPromocion.length > 0) {
186
- pliProg.lPliPromocion = Array();
187
- for (let prom of prog.listaPliPromocion) {
188
- let pliProm = new PliPromocion();
189
- pliProm.promCodigo = prom.promCodigo;
190
- pliProm.promNombre = prom.promNombre;
191
- pliProm.promNombreCorto = prom.promNombreCorto;
192
- pliProm.promFechaCreacion = prom.promFechaCreacion;
193
- pliProg.lPliPromocion.push(pliProm);
194
- }
195
- }
196
- pliPat.lPliPrograma.push(pliProg);
197
- }
198
- }
199
- lPliPatrocinador.push(pliPat);
200
- }
201
- return lPliPatrocinador;
202
- }
203
- }
204
- return null;
205
- }
206
- getAllPromociones() {
207
- let lPromociones = [];
208
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
209
- if (tokenPpp && tokenPpp.length) {
210
- const ppp = JwtUtil.parseJwt(tokenPpp);
211
- if (ppp && ppp.ppp) {
212
- for (let pat of ppp.ppp) {
213
- let pliPat = new PliPatrocinador();
214
- pliPat.patCodigo = pat.patCodigo;
215
- pliPat.patNombre = pat.patNombre;
216
- pliPat.patNombreCorto = pat.patNombreCorto;
217
- if (pat.listaPliPrograma && pat.listaPliPrograma.length > 0) {
218
- pliPat.lPliPrograma = Array();
219
- for (let prog of pat.listaPliPrograma) {
220
- let pliProg = new PliPrograma();
221
- pliProg.progCodigo = prog.progCodigo;
222
- pliProg.progNombre = prog.progNombre;
223
- pliProg.progNombreCorto = prog.progNombreCorto;
224
- if (prog.listaPliPromocion && prog.listaPliPromocion.length > 0) {
225
- pliProg.lPliPromocion = Array();
226
- for (let prom of prog.listaPliPromocion) {
227
- let pliProm = new PliPromocion();
228
- pliProm.promCodigo = prom.promCodigo;
229
- pliProm.promNombre = prom.promNombre;
230
- pliProm.promNombreCorto = prom.promNombreCorto;
231
- pliProm.promFechaCreacion = prom.promFechaCreacion;
232
- lPromociones.push(pliProm);
233
- }
234
- }
235
- }
236
- }
237
- }
238
- return lPromociones;
239
- }
240
- }
241
- return null;
242
- }
243
- /** it returns the patcodigo by promCodigo */
244
- getPatCodigoByPromCodigo(promCodigo) {
245
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
246
- if (tokenPpp && tokenPpp.length) {
247
- const ppp = JwtUtil.parseJwt(tokenPpp);
248
- if (ppp && ppp.ppp)
249
- for (const patrocinador of ppp.ppp)
250
- for (const programa of patrocinador.listaPliPrograma)
251
- for (const promocion of programa.listaPliPromocion)
252
- if (promocion.promCodigo == promCodigo)
253
- return patrocinador.patCodigo;
254
- return undefined;
255
- }
256
- }
257
- /** it returns the patcodigo by promCodigo */
258
- getProgCodigoByPromCodigo(promCodigo) {
259
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
260
- if (tokenPpp && tokenPpp.length) {
261
- const ppp = JwtUtil.parseJwt(tokenPpp);
262
- if (ppp && ppp.ppp)
263
- for (const patrocinador of ppp.ppp)
264
- for (const programa of patrocinador.listaPliPrograma)
265
- for (const promocion of programa.listaPliPromocion)
266
- if (promocion.promCodigo == promCodigo)
267
- return programa.progCodigo;
268
- return undefined;
269
- }
270
- }
271
- /** It generated a light list of ppp */
272
- generate() {
273
- // 1. it verifies tokenPpp
274
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
275
- if (tokenPpp && tokenPpp.length) {
276
- const ppp = JwtUtil.parseJwt(tokenPpp);
277
- if (ppp && ppp.ppp)
278
- this.subjectListPpp.next(ppp.ppp);
279
- }
280
- else {
281
- // 2. it retrieves the list ppp
282
- let authorities = AuthenticationUtil.getAuthorities();
283
- if (authorities && authorities.length > 0) {
284
- let listPatCodigo = [];
285
- for (const authority of authorities)
286
- listPatCodigo.push(authority.patCodigo);
287
- if (listPatCodigo)
288
- this.httpClient
289
- .get(this.environment.host.backend.plis +
290
- 'config/patrocinador/getLightByListPatrocinador', { params: new HttpParams().set('patCodigos', listPatCodigo.toString()) })
291
- .subscribe((result) => {
292
- if (result && result.tokenPpp) {
293
- localStorage.setItem(PppService.TOKEN_PPP, result.tokenPpp);
294
- this.generate();
295
- }
296
- else {
297
- this.subjectListPpp.next([]);
298
- }
299
- }, (error) => {
300
- console.error('ERROR consulting ppp', error);
301
- this.subjectListPpp.next([]);
302
- });
303
- }
304
- }
305
- }
306
- /** it returns the PPP from the token */
307
- getPPPInfoFromToken() {
308
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
309
- const lPliPatrocinador = [];
310
- if (tokenPpp && tokenPpp.length) {
311
- const ppp = JwtUtil.parseJwt(tokenPpp);
312
- if (ppp && ppp.ppp)
313
- for (const patrocinador of ppp.ppp) {
314
- const pliPatrocinador = new PliPatrocinador();
315
- const lPliPrograma = [];
316
- for (const programa of patrocinador.listaPliPrograma) {
317
- const pliPrograma = new PliPrograma();
318
- pliPrograma.progCodigo = programa.progCodigo;
319
- pliPrograma.progNombreCorto = programa.progNombreCorto;
320
- pliPrograma.progNombre = programa.progNombre;
321
- const lPliPromocion = [];
322
- for (const promocion of programa.listaPliPromocion) {
323
- const pliPromocion = new PliPromocion();
324
- pliPromocion.promCodigo = promocion.promCodigo;
325
- pliPromocion.promNombreCorto = promocion.promNombreCorto;
326
- pliPromocion.promNombre = promocion.promNombre;
327
- pliPromocion.promAnio = promocion.promAnio;
328
- lPliPromocion.push(pliPromocion);
329
- }
330
- pliPrograma.lPliPromocion = lPliPromocion;
331
- lPliPrograma.push(pliPrograma);
332
- }
333
- pliPatrocinador.lPliPrograma = lPliPrograma;
334
- lPliPatrocinador.push(pliPatrocinador);
335
- }
336
- }
337
- return lPliPatrocinador;
338
- }
339
- pppRollback(pppRequest) {
340
- return this.httpClient.post(this.environment.host.backend.configuration + 'pppRollback', pppRequest, this.headerJson);
341
- }
342
- deleteBudgetByProm(promCodigo) {
343
- let object = {
344
- promCodigo: promCodigo
345
- };
346
- return this.httpClient.post(this.environment.host.backend.plis + 'config/promocion/deleteBudgetByProm', object, this.headerJson);
347
- }
348
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PppService, deps: [{ token: 'environment' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
349
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PppService, providedIn: 'root' }); }
350
- }
351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PppService, decorators: [{
352
- type: Injectable,
353
- args: [{
354
- providedIn: 'root'
355
- }]
356
- }], ctorParameters: () => [{ type: undefined, decorators: [{
357
- type: Inject,
358
- args: ['environment']
359
- }] }, { type: i1.HttpClient }] });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3BwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFjLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQ04sZUFBZSxFQUNmLFdBQVcsRUFDWCxZQUFZLEVBRVosT0FBTyxFQUNQLFVBQVUsRUFDVixrQkFBa0IsRUFFbEIsTUFBTSxhQUFhLENBQUM7OztBQUtyQixNQUFNLE9BQU8sVUFBVTtJQUd0QixnREFBZ0Q7YUFDekMsY0FBUyxHQUFHLFVBQVUsQUFBYixDQUFjO0lBUTlCLFlBQTJDLFdBQWdCLEVBQVUsVUFBc0I7UUFBaEQsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBWG5GLGVBQVUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUsxRix5REFBeUQ7UUFDakQsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDO1FBRTVELGdFQUFnRTtRQUN4RCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFhLFNBQVMsQ0FBQyxDQUFDO0lBRTBCLENBQUM7SUFFL0YsNERBQTREO0lBQzVELFdBQVc7UUFDVixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixNQUFNLENBQUMsR0FBVztRQUNqQixJQUFJLEdBQUcsRUFBRSxD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R0FBRyxhQUFhLENBQUM7d0JBQzFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ2hDLENBQUM7b0JBQ0QsZUFBZSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7b0JBQzVDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsVUFBc0I7UUFFakMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxhQUFhLEVBQzNELFVBQVUsRUFDVixJQUFJLENBQUMsVUFBVSxDQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsVUFBa0I7UUFDcEMsSUFBSSxNQUFNLEdBQUc7WUFDWixVQUFVLEVBQUUsVUFBVTtTQUN0QixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxxQ0FBcUMsRUFDMUUsTUFBTSxFQUNOLElBQUksQ0FBQyxVQUFVLENBQ2YsQ0FBQztJQUNILENBQUM7K0dBaGJXLFVBQVUsa0JBWUYsYUFBYTttSEFackIsVUFBVSxjQUZWLE1BQU07OzRGQUVOLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFhYSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuXHRQbGlQYXRyb2NpbmFkb3IsXHJcblx0UGxpUHJvZ3JhbWEsXHJcblx0UGxpUHJvbW9jaW9uLFxyXG5cdFBsaUNuZkNvbmZpZ3VyYWNpb24sXHJcblx0Snd0VXRpbCxcclxuXHROdW1iZXJVdGlsLFxyXG5cdEF1dGhlbnRpY2F0aW9uVXRpbCxcclxuXHRQcHBSZXF1ZXN0XHJcbn0gZnJvbSAnbmctcGxpLXV0aWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHBwU2VydmljZSB7XHJcblx0cHJpdmF0ZSBoZWFkZXJKc29uID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pIH07XHJcblxyXG5cdC8qKiBJdCBjb250YWlucyB0aGUga2V5IG9mIHRoZSBqc29uIHdlYiB0b2tlbiAqL1xyXG5cdHN0YXRpYyBUT0tFTl9QUFAgPSAndG9rZW5QcHAnO1xyXG5cclxuXHQvKiogVGhpcyBvYnNlcnZhYmxlIGFsbG93cyB0byB2ZXJpZnkgaWYgcHBwIGlzIGNyZWF0ZWQgKi9cclxuXHRwcml2YXRlIHN1YmplY3RQcHAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcclxuXHJcblx0LyoqIFRoaXMgb2JzZXJ2YWJsZSBhbGxvd3MgdG8gdmVyaWZ5IGlmIGxpc3QgcHBwIGlzIGdlbmVyYXRlZCAqL1xyXG5cdHByaXZhdGUgc3ViamVjdExpc3RQcHAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PGFueT4+KHVuZGVmaW5lZCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55LCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XHJcblxyXG5cdC8qKiAgSXQgaGFzIGFuIG9ic2VydmFibGUgdG8gbm90aWZ5IGlmIHRoZSBwcHAgaXMgY2hhbmdlZCAqL1xyXG5cdG9uQ2hhbmdlUHBwKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdWJqZWN0UHBwLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNldHMgdGhlIG5ldyBwcHAgKi9cclxuXHRzZXRQcHAocHBwOiBudW1iZXIpIHtcclxuXHRcdGlmIChwcHApIHtcclxuXHRcdFx0aWYgKHR5cGVvZiBwcHAgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdFx0aWYgKE51bWJlclV0aWwuaXNOdW1iZXIocHBwKSkge1xyXG5cdFx0XHRcdFx0cHBwID0gcGFyc2VJbnQocHBwKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cHBwID0gMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIHBwcCAhPT0gJ251bWJlcicpIHtcclxuXHRcdFx0XHRwcHAgPSAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR0aGlzLnN1YmplY3RQcHAubmV4dChwcHApO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYSBsaXN0IG9mIHBhdHJvY2luYWRvciAqL1xyXG5cdGdldExpc3RQYXRyb2NpbmFkb3IoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcGF0cm9jaW5hZG9yL2dldEFsbCdcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBhIHBhdHJvY2luYWRvciBieSBpZCAqL1xyXG5cdGdldFBhdHJvY2luYWRvckJ5SWQoaWQ6IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3BhdHJvY2luYWRvci9nZXRCeUlkJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ28nLCBpZC50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgcGF0cm9jaW5hZG9yICovXHJcblx0c2F2ZVBhdHJvY2luYWRvcihvbGRQYXRyb2NpbmFkb3I6IFBsaVBhdHJvY2luYWRvciwgcGF0cm9jaW5hZG9yOiBQbGlQYXRyb2NpbmFkb3IpIHtcclxuXHRcdC8vcGxpVXN1YXJpbzoge3VzdUxvZ2luIDogQXV0aGVudGljYXRpb25VdGlsLmdldFVzZXJuYW1lKCl9O1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0cGxpUGF0cm9jaW5hZG9yQmVmb3JlOiBvbGRQYXRyb2NpbmFkb3IsXHJcblx0XHRcdHBsaVBhdHJvY2luYWRvcjogcGF0cm9jaW5hZG9yLFxyXG5cdFx0XHRwbGlVc3VhcmlvOiB7IHVzdUxvZ2luOiBBdXRoZW50aWNhdGlvblV0aWwuZ2V0VXNlcm5hbWUoKSB9XHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wYXRyb2NpbmFkb3Ivc2F2ZScsXHJcblx0XHRcdG9iamVjdCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgdGlwbyBwYXRyb2NpbmFkb3IgKi9cclxuXHRnZXRMaXN0VGlwb1BhdHJvY2luYWRvcigpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy90aXBvLXBhdHJvY2luYWRvci9nZXRBbGwnXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgdGlwbyBwcm9ncmFtYSAqL1xyXG5cdGdldExpc3RUaXBvUHJvZ3JhbWEoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvdGlwby1wcm9ncmFtYS9nZXRBbGwnXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgcGFpc2VzICovXHJcblx0Z2V0UGFpc2VzKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdwYWlzL2dldEFsbCcpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgcHJvZ3JhbWFzIGJ5IHBhdHJvY2luYWRvciBpZCAqL1xyXG5cdGdldExpc3RQcm9ncmFtYXNCeXBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb2dyYW1hL2dldEFsbEJ5UGF0cm9jaW5hZG9yJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ28nLCBwYXRDb2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHByb2dyYW1hIGJ5IGlkICovXHJcblx0Z2V0UHJvZ3JhbWFCeUlkKGlkOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb2dyYW1hL2dldEJ5SWQnLCB7XHJcblx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb2dDb2RpZ28nLCBpZC50b1N0cmluZygpKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgc2F2ZXMgYSBwcm9ncmFtYSAqL1xyXG5cdHNhdmVQcm9ncmFtYShvbGRQcm9ncmFtYTogUGxpUHJvZ3JhbWEsIHByb2dyYW1hOiBQbGlQcm9ncmFtYSkge1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0cGxpUHJvZ3JhbWFCZWZvcmU6IG9sZFByb2dyYW1hLFxyXG5cdFx0XHRwbGlQcm9ncmFtYTogcHJvZ3JhbWEsXHJcblx0XHRcdHBsaVVzdWFyaW86IHsgdXN1TG9naW46IEF1dGhlbnRpY2F0aW9uVXRpbC5nZXRVc2VybmFtZSgpIH1cclxuXHRcdH07XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb2dyYW1hL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHByb2dyYW1hcyBieSBwcm9ncmFtYSBpZCAqL1xyXG5cdGdldExpc3RQcm9tb2Npb25lc0J5cHJvZ0NvZGlnbyhwcm9nQ29kaWdvOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9tb2Npb24vZ2V0QWxsQnlQcm9ncmFtYScsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncHJvZ0NvZGlnbycsIHByb2dDb2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHByb2dyYW1hcyBieSBwYXRyb2NpbmFkb3IgaWQgKi9cclxuXHRnZXRMaXN0UHJvbW9jaW9uZXNCeXBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi9nZXRBbGxCeVBhdHJvY2luYWRvcicsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncGF0Q29kaWdvJywgcGF0Q29kaWdvLnRvU3RyaW5nKCkpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgbGlzdCBvZiBwcm9ncmFtYXMgYnkgcGF0cm9jaW5hZG9yIGlkIGFuZCB3aXRob3V0IGNvbmZpZ3VyYWNpb24gKi9cclxuXHRnZXRMaXN0UHJvbW9jaW9uZXNCeXBhdENvZGlnb1dpdGhvdXRDb25maWd1cmFjaW9uKHBhdENvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArXHJcblx0XHRcdFx0J2NvbmZpZy9wcm9tb2Npb24vZ2V0QnlQYXRyb2NpbmFkb3Ivd2l0aG91dENvbmZpZ3VyYWNpb24nLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3BhdENvZGlnbycsIHBhdENvZGlnby50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgcHJvbW9jaW9uIGJ5IGlkICovXHJcblx0Z2V0UHJvbW9jaW9uQnlJZChpZDogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL2dldEJ5SWQnLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb21Db2RpZ28nLCBpZC50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgcHJvbW9jaW9uICovXHJcblx0c2F2ZVByb21vY2lvbihvbGRQcm9tb2Npb246IFBsaVByb21vY2lvbiwgcHJvbW9jaW9uOiBQbGlQcm9tb2Npb24pIHtcclxuXHRcdGxldCBvYmplY3QgPSB7XHJcblx0XHRcdHBsaVByb21vY2lvbkJlZm9yZTogb2xkUHJvbW9jaW9uLFxyXG5cdFx0XHRwbGlQcm9tb2Npb246IHByb21vY2lvbixcclxuXHRcdFx0cGxpVXN1YXJpbzogeyB1c3VMb2dpbjogQXV0aGVudGljYXRpb25VdGlsLmdldFVzZXJuYW1lKCkgfVxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGEgbGlzdCBvZiBwbGlDbmZDb25maWd1cmFjaW9uIGJ5IHBhdENvZGlnbyAqL1xyXG5cdGdldENvbmZpZ3VyYWNpb25CeXBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlciwgY2FyZ2FyTGlzdGFzOiBib29sZWFuKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvY29uZmlndXJhY2lvbi9nZXRBbGxCeVBhdHJvY2luYWRvcicsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0XHRcdC5zZXQoJ3BhdENvZGlnbycsIHBhdENvZGlnby50b1N0cmluZygpKVxyXG5cdFx0XHRcdFx0LnNldCgnY2FyZ2FyTGlzdGFzJywgY2FyZ2FyTGlzdGFzLnRvU3RyaW5nKCkpXHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBjb25maWd1cmFjaW9uIGJ5IGlkICovXHJcblx0Z2V0Q29uZmlndXJhY2lvbkJ5SWQoaWQ6IG51bWJlciwgY2FyZ2FyTGlzdGFzOiBib29sZWFuKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvY29uZmlndXJhY2lvbi9nZXRCeUlkJyxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgnY2NvbkNvZGlnbycsIGlkLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCdjYXJnYXJMaXN0YXMnLCBjYXJnYXJMaXN0YXMudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzYXZlcyBhIGNvbmZpZ3VyYWNpb24gKi9cclxuXHRzYXZlQ29uZmlndXJhY2lvbihvbGRDb25maWd1cmFjaW9uOiBQbGlDbmZDb25maWd1cmFjaW9uLCBjb25maWd1cmFjaW9uOiBQbGlDbmZDb25maWd1cmFjaW9uKSB7XHJcblx0XHRsZXQgb2JqZWN0ID0ge1xyXG5cdFx0XHRwbGlDbmZDb25maWd1cmFjaW9uQmVmb3JlOiBvbGRDb25maWd1cmFjaW9uLFxyXG5cdFx0XHRwbGlDbmZDb25maWd1cmFjaW9uOiBjb25maWd1cmFjaW9uLFxyXG5cdFx0XHRwbGlVc3VhcmlvOiB7IHVzdUxvZ2luOiBBdXRoZW50aWNhdGlvblV0aWwuZ2V0VXNlcm5hbWUoKSB9XHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9jb25maWd1cmFjaW9uL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCB1cGRhdGVzIGRlIGNvZGUgb2YgY29uZmlndXJhY2lvbiB0byBhIGxpc3Qgb2YgY29kZXMgb2YgcHJvbW9jaW9uICovXHJcblx0dXBkYXRlQ29uZmlndXJhY2lvblBsaVByb21vY2lvbihjY29uQ29kaWdvOiBudW1iZXIsIGxpc3RhUHJvbUNvZGlnbzogQXJyYXk8bnVtYmVyPikge1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0Y2NvbkNvZGlnbzogY2NvbkNvZGlnbyxcclxuXHRcdFx0bGlzdGFQcm9tQ29kaWdvOiBsaXN0YVByb21Db2RpZ29cclxuXHRcdH07XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL3VwZGF0ZUNvbmZpZ3VyYXRpb25NYXNzaXZlJyxcclxuXHRcdFx0b2JqZWN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgaGFzIGFuIG9ic2VydmFibGUgdG8gbm90aWZ5IGlmIHRoZSBsaXN0IHBwcCBpcyBnZW5lcmF0ZWQqL1xyXG5cdGdldExpc3RQcHAoKTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5nZW5lcmF0ZSgpO1xyXG5cdFx0fSwgMzAwKTtcclxuXHRcdHJldHVybiB0aGlzLnN1YmplY3RMaXN0UHBwLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYSBsaXN0IG9mIGF2YWlsYWJsZSBwbGlQcm9tb2Npb24gYnkgcGF0Q29kaWdvICovXHJcblx0Z2V0QXZhaWxhYmxlUHJvbW9jaW9uKHBhdENvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRpZiAoIXBhdENvZGlnbykge1xyXG5cdFx0XHRwYXRDb2RpZ28gPSAwO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi9nZXRBdmFpbGFibGVCeVBhdENvZGlnbycsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncGF0Q29kaWdvJywgcGF0Q29kaWdvLnRvU3RyaW5nKCkpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBhIGxpc3Qgb2YgcGxpUHJvbW9jaW9uICovXHJcblx0Z2V0QWxsKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL2dldEFsbCcpO1xyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgbGlzdCBvZiBwYXRyb2NpbmFkb3IgZGVwZW5kcyBvZiB0b2tlbiBpbmZvKi9cclxuXHRnZXRsUGF0cm9jaW5hZG9yQnlUb2tlbigpOiBQbGlQYXRyb2NpbmFkb3JbXSB7XHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRpZiAodG9rZW5QcHAgJiYgdG9rZW5QcHAubGVuZ3RoKSB7XHJcblx0XHRcdGNvbnN0IHBwcCA9IEp3dFV0aWwucGFyc2VKd3QodG9rZW5QcHApO1xyXG5cdFx0XHRpZiAocHBwICYmIHBwcC5wcHApIHtcclxuXHRcdFx0XHRsZXQgbFBsaVBhdHJvY2luYWRvciA9IEFycmF5PFBsaVBhdHJvY2luYWRvcj4oKTtcclxuXHRcdFx0XHRmb3IgKGxldCBwYXQgb2YgcHBwLnBwcCkge1xyXG5cdFx0XHRcdFx0bGV0IHBsaVBhdCA9IG5ldyBQbGlQYXRyb2NpbmFkb3IoKTtcclxuXHRcdFx0XHRcdHBsaVBhdC5wYXRDb2RpZ28gPSBwYXQucGF0Q29kaWdvO1xyXG5cdFx0XHRcdFx0cGxpUGF0LnBhdE5vbWJyZSA9IHBhdC5wYXROb21icmU7XHJcblx0XHRcdFx0XHRwbGlQYXQucGF0Tm9tYnJlQ29ydG8gPSBwYXQucGF0Tm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRpZiAocGF0Lmxpc3RhUGxpUHJvZ3JhbWEgJiYgcGF0Lmxpc3RhUGxpUHJvZ3JhbWEubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRwbGlQYXQubFBsaVByb2dyYW1hID0gQXJyYXk8UGxpUHJvZ3JhbWE+KCk7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IHByb2cgb2YgcGF0Lmxpc3RhUGxpUHJvZ3JhbWEpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgcGxpUHJvZyA9IG5ldyBQbGlQcm9ncmFtYSgpO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb2cucHJvZ0NvZGlnbyA9IHByb2cucHJvZ0NvZGlnbztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9nLnByb2dOb21icmUgPSBwcm9nLnByb2dOb21icmU7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvZy5wcm9nTm9tYnJlQ29ydG8gPSBwcm9nLnByb2dOb21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRpZiAocHJvZy5saXN0YVBsaVByb21vY2lvbiAmJiBwcm9nLmxpc3RhUGxpUHJvbW9jaW9uLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBsaVByb2cubFBsaVByb21vY2lvbiA9IEFycmF5PFBsaVByb21vY2lvbj4oKTtcclxuXHRcdFx0XHRcdFx0XHRcdGZvciAobGV0IHByb20gb2YgcHJvZy5saXN0YVBsaVByb21vY2lvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgcGxpUHJvbSA9IG5ldyBQbGlQcm9tb2Npb24oKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tQ29kaWdvID0gcHJvbS5wcm9tQ29kaWdvO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9tLnByb21Ob21icmUgPSBwcm9tLnByb21Ob21icmU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbU5vbWJyZUNvcnRvID0gcHJvbS5wcm9tTm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbUZlY2hhQ3JlYWNpb24gPSBwcm9tLnByb21GZWNoYUNyZWFjaW9uO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9nLmxQbGlQcm9tb2Npb24ucHVzaChwbGlQcm9tKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0cGxpUGF0LmxQbGlQcm9ncmFtYS5wdXNoKHBsaVByb2cpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRsUGxpUGF0cm9jaW5hZG9yLnB1c2gocGxpUGF0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGxQbGlQYXRyb2NpbmFkb3I7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0Z2V0QWxsUHJvbW9jaW9uZXMoKTogUGxpUHJvbW9jaW9uW10ge1xyXG5cdFx0bGV0IGxQcm9tb2Npb25lczogUGxpUHJvbW9jaW9uW10gPSBbXTtcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcCkge1xyXG5cdFx0XHRcdGZvciAobGV0IHBhdCBvZiBwcHAucHBwKSB7XHJcblx0XHRcdFx0XHRsZXQgcGxpUGF0ID0gbmV3IFBsaVBhdHJvY2luYWRvcigpO1xyXG5cdFx0XHRcdFx0cGxpUGF0LnBhdENvZGlnbyA9IHBhdC5wYXRDb2RpZ287XHJcblx0XHRcdFx0XHRwbGlQYXQucGF0Tm9tYnJlID0gcGF0LnBhdE5vbWJyZTtcclxuXHRcdFx0XHRcdHBsaVBhdC5wYXROb21icmVDb3J0byA9IHBhdC5wYXROb21icmVDb3J0bztcclxuXHRcdFx0XHRcdGlmIChwYXQubGlzdGFQbGlQcm9ncmFtYSAmJiBwYXQubGlzdGFQbGlQcm9ncmFtYS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdHBsaVBhdC5sUGxpUHJvZ3JhbWEgPSBBcnJheTxQbGlQcm9ncmFtYT4oKTtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgcHJvZyBvZiBwYXQubGlzdGFQbGlQcm9ncmFtYSkge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBwbGlQcm9nID0gbmV3IFBsaVByb2dyYW1hKCk7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvZy5wcm9nQ29kaWdvID0gcHJvZy5wcm9nQ29kaWdvO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb2cucHJvZ05vbWJyZSA9IHByb2cucHJvZ05vbWJyZTtcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9nLnByb2dOb21icmVDb3J0byA9IHByb2cucHJvZ05vbWJyZUNvcnRvO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChwcm9nLmxpc3RhUGxpUHJvbW9jaW9uICYmIHByb2cubGlzdGFQbGlQcm9tb2Npb24ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cGxpUHJvZy5sUGxpUHJvbW9jaW9uID0gQXJyYXk8UGxpUHJvbW9jaW9uPigpO1xyXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgcHJvbSBvZiBwcm9nLmxpc3RhUGxpUHJvbW9jaW9uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBwbGlQcm9tID0gbmV3IFBsaVByb21vY2lvbigpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9tLnByb21Db2RpZ28gPSBwcm9tLnByb21Db2RpZ287XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbU5vbWJyZSA9IHByb20ucHJvbU5vbWJyZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tTm9tYnJlQ29ydG8gPSBwcm9tLnByb21Ob21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tRmVjaGFDcmVhY2lvbiA9IHByb20ucHJvbUZlY2hhQ3JlYWNpb247XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxQcm9tb2Npb25lcy5wdXNoKHBsaVByb20pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gbFByb21vY2lvbmVzO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSBwYXRjb2RpZ28gYnkgcHJvbUNvZGlnbyAqL1xyXG5cdGdldFBhdENvZGlnb0J5UHJvbUNvZGlnbyhwcm9tQ29kaWdvKTogbnVtYmVyIHtcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcClcclxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhdHJvY2luYWRvciBvZiBwcHAucHBwKVxyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9ncmFtYSBvZiBwYXRyb2NpbmFkb3IubGlzdGFQbGlQcm9ncmFtYSlcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9tb2Npb24gb2YgcHJvZ3JhbWEubGlzdGFQbGlQcm9tb2Npb24pXHJcblx0XHRcdFx0XHRcdFx0aWYgKHByb21vY2lvbi5wcm9tQ29kaWdvID09IHByb21Db2RpZ28pIHJldHVybiBwYXRyb2NpbmFkb3IucGF0Q29kaWdvO1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgdGhlIHBhdGNvZGlnbyBieSBwcm9tQ29kaWdvICovXHJcblx0Z2V0UHJvZ0NvZGlnb0J5UHJvbUNvZGlnbyhwcm9tQ29kaWdvKTogbnVtYmVyIHtcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcClcclxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhdHJvY2luYWRvciBvZiBwcHAucHBwKVxyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9ncmFtYSBvZiBwYXRyb2NpbmFkb3IubGlzdGFQbGlQcm9ncmFtYSlcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9tb2Npb24gb2YgcHJvZ3JhbWEubGlzdGFQbGlQcm9tb2Npb24pXHJcblx0XHRcdFx0XHRcdFx0aWYgKHByb21vY2lvbi5wcm9tQ29kaWdvID09IHByb21Db2RpZ28pIHJldHVybiBwcm9ncmFtYS5wcm9nQ29kaWdvO1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvKiogSXQgZ2VuZXJhdGVkIGEgbGlnaHQgbGlzdCBvZiBwcHAgKi9cclxuXHRwcml2YXRlIGdlbmVyYXRlKCkge1xyXG5cdFx0Ly8gMS4gaXQgdmVyaWZpZXMgdG9rZW5QcHBcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcCkgdGhpcy5zdWJqZWN0TGlzdFBwcC5uZXh0KHBwcC5wcHApO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8gMi4gaXQgcmV0cmlldmVzIHRoZSBsaXN0IHBwcFxyXG5cdFx0XHRsZXQgYXV0aG9yaXRpZXMgPSBBdXRoZW50aWNhdGlvblV0aWwuZ2V0QXV0aG9yaXRpZXMoKTtcclxuXHRcdFx0aWYgKGF1dGhvcml0aWVzICYmIGF1dGhvcml0aWVzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRsZXQgbGlzdFBhdENvZGlnbyA9IFtdO1xyXG5cdFx0XHRcdGZvciAoY29uc3QgYXV0aG9yaXR5IG9mIGF1dGhvcml0aWVzKSBsaXN0UGF0Q29kaWdvLnB1c2goYXV0aG9yaXR5LnBhdENvZGlnbyk7XHJcblxyXG5cdFx0XHRcdGlmIChsaXN0UGF0Q29kaWdvKVxyXG5cdFx0XHRcdFx0dGhpcy5odHRwQ2xpZW50XHJcblx0XHRcdFx0XHRcdC5nZXQoXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArXHJcblx0XHRcdFx0XHRcdFx0XHQnY29uZmlnL3BhdHJvY2luYWRvci9nZXRMaWdodEJ5TGlzdFBhdHJvY2luYWRvcicsXHJcblx0XHRcdFx0XHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ29zJywgbGlzdFBhdENvZGlnby50b1N0cmluZygpKSB9XHJcblx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0LnN1YnNjcmliZShcclxuXHRcdFx0XHRcdFx0XHQocmVzdWx0OiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHQgJiYgcmVzdWx0LnRva2VuUHBwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxvY2FsU3RvcmFnZS5zZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQLCByZXN1bHQudG9rZW5QcHApO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlKCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnN1YmplY3RMaXN0UHBwLm5leHQoW10pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0KGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdFUlJPUiBjb25zdWx0aW5nIHBwcCcsIGVycm9yKTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3ViamVjdExpc3RQcHAubmV4dChbXSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogaXQgcmV0dXJucyB0aGUgUFBQIGZyb20gdGhlIHRva2VuICovXHJcblx0Z2V0UFBQSW5mb0Zyb21Ub2tlbigpOiBQbGlQYXRyb2NpbmFkb3JbXSB7XHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRjb25zdCBsUGxpUGF0cm9jaW5hZG9yOiBQbGlQYXRyb2NpbmFkb3JbXSA9IFtdO1xyXG5cdFx0aWYgKHRva2VuUHBwICYmIHRva2VuUHBwLmxlbmd0aCkge1xyXG5cdFx0XHRjb25zdCBwcHAgPSBKd3RVdGlsLnBhcnNlSnd0KHRva2VuUHBwKTtcclxuXHRcdFx0aWYgKHBwcCAmJiBwcHAucHBwKVxyXG5cdFx0XHRcdGZvciAoY29uc3QgcGF0cm9jaW5hZG9yIG9mIHBwcC5wcHApIHtcclxuXHRcdFx0XHRcdGNvbnN0IHBsaVBhdHJvY2luYWRvciA9IG5ldyBQbGlQYXRyb2NpbmFkb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IGxQbGlQcm9ncmFtYTogUGxpUHJvZ3JhbWFbXSA9IFtdO1xyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9ncmFtYSBvZiBwYXRyb2NpbmFkb3IubGlzdGFQbGlQcm9ncmFtYSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwbGlQcm9ncmFtYSA9IG5ldyBQbGlQcm9ncmFtYSgpO1xyXG5cdFx0XHRcdFx0XHRwbGlQcm9ncmFtYS5wcm9nQ29kaWdvID0gcHJvZ3JhbWEucHJvZ0NvZGlnbztcclxuXHRcdFx0XHRcdFx0cGxpUHJvZ3JhbWEucHJvZ05vbWJyZUNvcnRvID0gcHJvZ3JhbWEucHJvZ05vbWJyZUNvcnRvO1xyXG5cdFx0XHRcdFx0XHRwbGlQcm9ncmFtYS5wcm9nTm9tYnJlID0gcHJvZ3JhbWEucHJvZ05vbWJyZTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbFBsaVByb21vY2lvbjogUGxpUHJvbW9jaW9uW10gPSBbXTtcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9tb2Npb24gb2YgcHJvZ3JhbWEubGlzdGFQbGlQcm9tb2Npb24pIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBwbGlQcm9tb2Npb24gPSBuZXcgUGxpUHJvbW9jaW9uKCk7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvbW9jaW9uLnByb21Db2RpZ28gPSBwcm9tb2Npb24ucHJvbUNvZGlnbztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9tb2Npb24ucHJvbU5vbWJyZUNvcnRvID0gcHJvbW9jaW9uLnByb21Ob21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9tb2Npb24ucHJvbU5vbWJyZSA9IHByb21vY2lvbi5wcm9tTm9tYnJlO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb21vY2lvbi5wcm9tQW5pbyA9IHByb21vY2lvbi5wcm9tQW5pbztcclxuXHRcdFx0XHRcdFx0XHRsUGxpUHJvbW9jaW9uLnB1c2gocGxpUHJvbW9jaW9uKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRwbGlQcm9ncmFtYS5sUGxpUHJvbW9jaW9uID0gbFBsaVByb21vY2lvbjtcclxuXHRcdFx0XHRcdFx0bFBsaVByb2dyYW1hLnB1c2gocGxpUHJvZ3JhbWEpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cGxpUGF0cm9jaW5hZG9yLmxQbGlQcm9ncmFtYSA9IGxQbGlQcm9ncmFtYTtcclxuXHRcdFx0XHRcdGxQbGlQYXRyb2NpbmFkb3IucHVzaChwbGlQYXRyb2NpbmFkb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBsUGxpUGF0cm9jaW5hZG9yO1xyXG5cdH1cclxuXHJcblx0cHBwUm9sbGJhY2socHBwUmVxdWVzdDogUHBwUmVxdWVzdCkge1xyXG5cdFx0XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmNvbmZpZ3VyYXRpb24gKyAncHBwUm9sbGJhY2snLFxyXG5cdFx0XHRwcHBSZXF1ZXN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRkZWxldGVCdWRnZXRCeVByb20ocHJvbUNvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRsZXQgb2JqZWN0ID0ge1xyXG5cdFx0XHRwcm9tQ29kaWdvOiBwcm9tQ29kaWdvXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9tb2Npb24vZGVsZXRlQnVkZ2V0QnlQcm9tJyxcclxuXHRcdFx0b2JqZWN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -1,60 +0,0 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import { HttpParams, HttpHeaders } from '@angular/common/http';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common/http";
5
- export class ProfileService {
6
- constructor(environment, httpClient) {
7
- this.environment = environment;
8
- this.httpClient = httpClient;
9
- this.headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };
10
- }
11
- /** It returns the profile by id */
12
- getAll() {
13
- return this.httpClient.get(this.environment.host.backend.configuration + 'profile/getAll');
14
- }
15
- /** It returns the profile by id */
16
- getById(id) {
17
- return this.httpClient.get(this.environment.host.backend.configuration + 'profile/getById', { params: new HttpParams().set('id', id.toString()) });
18
- }
19
- /** It returns the profile by userId and patCodigo */
20
- getByUserIdAndPatCodigo(userId, patCodigo, cargarListas) {
21
- return this.httpClient.get(this.environment.host.backend.configuration + 'profile/getByUserIdAndPatCodigo', {
22
- params: new HttpParams()
23
- .set('userId', userId.toString())
24
- .set('patCodigo', patCodigo.toString())
25
- .set('cargarListas', cargarListas.toString())
26
- });
27
- }
28
- /** It returns the profile by patCodigo */
29
- getByPatCodigo(patCodigo) {
30
- return this.httpClient.get(this.environment.host.backend.configuration + 'profile/getByPatCodigo', { params: new HttpParams().set('patCodigo', patCodigo.toString()) });
31
- }
32
- /** It returns the profile by form id */
33
- getByFormId(formId, cargarListas) {
34
- return this.httpClient.get(this.environment.host.backend.configuration + 'profile/getByFormId', {
35
- params: new HttpParams()
36
- .set('formId', formId)
37
- .set('cargarListas', cargarListas.toString())
38
- });
39
- }
40
- /** It saves a profile */
41
- save(profile) {
42
- return this.httpClient.post(this.environment.host.backend.configuration + 'profile/save', profile, this.headerJson);
43
- }
44
- /** It deletes a form by id */
45
- delete(id) {
46
- return this.httpClient.delete(this.environment.host.backend.configuration + 'profile/delete', { params: new HttpParams().set('id', id) });
47
- }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProfileService, deps: [{ token: 'environment' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
49
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProfileService, providedIn: 'root' }); }
50
- }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProfileService, decorators: [{
52
- type: Injectable,
53
- args: [{
54
- providedIn: 'root'
55
- }]
56
- }], ctorParameters: () => [{ type: undefined, decorators: [{
57
- type: Inject,
58
- args: ['environment']
59
- }] }, { type: i1.HttpClient }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9zZXJ2aWNlcy9wcm9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTTNFLE1BQU0sT0FBTyxjQUFjO0lBRzFCLFlBQTJDLFdBQVcsRUFBVSxVQUFzQjtRQUEzQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGOUUsZUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxDQUFDO0lBRUQsQ0FBQztJQUUxRixtQ0FBbUM7SUFDbkMsTUFBTTtRQUNMLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsT0FBTyxDQUFDLEVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxpQkFBaUIsRUFDL0QsRUFBRSxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQ3JELENBQUM7SUFDSCxDQUFDO0lBRUQscURBQXFEO0lBQ3JELHVCQUF1QixDQUN0QixNQUFjLEVBQ2QsU0FBaUIsRUFDakIsWUFBcUI7UUFFckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxpQ0FBaUMsRUFDL0U7WUFDQyxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUU7aUJBQ3RCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNoQyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDdEMsR0FBRyxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDOUMsQ0FDRCxDQUFDO0lBQ0gsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxjQUFjLENBQUMsU0FBaUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyx3QkFBd0IsRUFDdEUsRUFBRSxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQ25FLENBQUM7SUFDSCxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLFdBQVcsQ0FBQyxNQUFjLEVBQUUsWUFBcUI7UUFDaEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxxQkFBcUIsRUFDbkU7WUFDQyxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUU7aUJBQ3RCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO2lCQUNyQixHQUFHLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM5QyxDQUNELENBQUM7SUFDSCxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQUksQ0FBQyxPQUFzQjtRQUMxQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLGNBQWMsRUFDNUQsT0FBTyxFQUNQLElBQUksQ0FBQyxVQUFVLENBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsTUFBTSxDQUFDLEVBQUU7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLGdCQUFnQixFQUM5RCxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FDMUMsQ0FBQztJQUNILENBQUM7K0dBdEVXLGNBQWMsa0JBR04sYUFBYTttSEFIckIsY0FBYyxjQUZkLE1BQU07OzRGQUVOLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFJYSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUGxpQ25mUHJvZmlsZSB9IGZyb20gJ25nLXBsaS11dGlsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVTZXJ2aWNlIHtcclxuXHRwcml2YXRlIGhlYWRlckpzb24gPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSkgfTtcclxuXHJcblx0Y29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50LCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBwcm9maWxlIGJ5IGlkICovXHJcblx0Z2V0QWxsKCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5jb25maWd1cmF0aW9uICsgJ3Byb2ZpbGUvZ2V0QWxsJyk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgcHJvZmlsZSBieSBpZCAqL1xyXG5cdGdldEJ5SWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuY29uZmlndXJhdGlvbiArICdwcm9maWxlL2dldEJ5SWQnLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkJywgaWQudG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBwcm9maWxlIGJ5IHVzZXJJZCBhbmQgcGF0Q29kaWdvICovXHJcblx0Z2V0QnlVc2VySWRBbmRQYXRDb2RpZ28oXHJcblx0XHR1c2VySWQ6IG51bWJlcixcclxuXHRcdHBhdENvZGlnbzogbnVtYmVyLFxyXG5cdFx0Y2FyZ2FyTGlzdGFzOiBib29sZWFuXHJcblx0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5jb25maWd1cmF0aW9uICsgJ3Byb2ZpbGUvZ2V0QnlVc2VySWRBbmRQYXRDb2RpZ28nLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpXHJcblx0XHRcdFx0XHQuc2V0KCd1c2VySWQnLCB1c2VySWQudG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ3BhdENvZGlnbycsIHBhdENvZGlnby50b1N0cmluZygpKVxyXG5cdFx0XHRcdFx0LnNldCgnY2FyZ2FyTGlzdGFzJywgY2FyZ2FyTGlzdGFzLnRvU3RyaW5nKCkpXHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgcHJvZmlsZSBieSBwYXRDb2RpZ28gKi9cclxuXHRnZXRCeVBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuY29uZmlndXJhdGlvbiArICdwcm9maWxlL2dldEJ5UGF0Q29kaWdvJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ28nLCBwYXRDb2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBwcm9maWxlIGJ5IGZvcm0gaWQgKi9cclxuXHRnZXRCeUZvcm1JZChmb3JtSWQ6IHN0cmluZywgY2FyZ2FyTGlzdGFzOiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5jb25maWd1cmF0aW9uICsgJ3Byb2ZpbGUvZ2V0QnlGb3JtSWQnLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpXHJcblx0XHRcdFx0XHQuc2V0KCdmb3JtSWQnLCBmb3JtSWQpXHJcblx0XHRcdFx0XHQuc2V0KCdjYXJnYXJMaXN0YXMnLCBjYXJnYXJMaXN0YXMudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzYXZlcyBhIHByb2ZpbGUgKi9cclxuXHRzYXZlKHByb2ZpbGU6IFBsaUNuZlByb2ZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5jb25maWd1cmF0aW9uICsgJ3Byb2ZpbGUvc2F2ZScsXHJcblx0XHRcdHByb2ZpbGUsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBkZWxldGVzIGEgZm9ybSBieSBpZCAqL1xyXG5cdGRlbGV0ZShpZCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmRlbGV0ZShcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuY29uZmlndXJhdGlvbiArICdwcm9maWxlL2RlbGV0ZScsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgnaWQnLCBpZCkgfVxyXG5cdFx0KTtcclxuXHR9XHJcbn1cclxuIl19
@@ -1,40 +0,0 @@
1
- import { HttpParams } from '@angular/common/http';
2
- import { Injectable, Inject } from '@angular/core';
3
- import { HEADER_JSON, EProjectFrom } from 'ng-pli-util';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common/http";
6
- export class ProgressBarService {
7
- constructor(environment, httpClient) {
8
- this.environment = environment;
9
- this.httpClient = httpClient;
10
- this.urlBase = this.environment.host.backend.configuration;
11
- }
12
- saveProgress(data, projectFrom = EProjectFrom.PLI) {
13
- if (projectFrom == EProjectFrom.GIC) {
14
- this.urlBase = this.environment.host.backend.gicConfiguration;
15
- }
16
- return this.httpClient.post(this.urlBase + 'progressBar/saveProgress', data, HEADER_JSON);
17
- }
18
- getProgress(processId, processType, projectFrom = EProjectFrom.PLI) {
19
- if (projectFrom == EProjectFrom.GIC) {
20
- this.urlBase = this.environment.host.backend.gicConfiguration;
21
- }
22
- return this.httpClient.get(this.urlBase + 'progressBar/getProgressByProcessIdAndProcessType', {
23
- params: new HttpParams()
24
- .set('processId', processId.toString())
25
- .set('processType', processType.toString())
26
- });
27
- }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProgressBarService, deps: [{ token: 'environment' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProgressBarService, providedIn: 'root' }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProgressBarService, decorators: [{
32
- type: Injectable,
33
- args: [{
34
- providedIn: 'root'
35
- }]
36
- }], ctorParameters: () => [{ type: undefined, decorators: [{
37
- type: Inject,
38
- args: ['environment']
39
- }] }, { type: i1.HttpClient }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3Byb2dyZXNzLWJhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBSXJFLE1BQU0sT0FBTyxrQkFBa0I7SUFFOUIsWUFBMkMsV0FBZ0IsRUFBVSxVQUFzQjtRQUFoRCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFEM0YsWUFBTyxHQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDZ0MsQ0FBQztJQUUvRixZQUFZLENBQUMsSUFBaUIsRUFBRSxjQUFzQixZQUFZLENBQUMsR0FBRztRQUNyRSxJQUFJLFdBQVcsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDL0QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRywwQkFBMEIsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELFdBQVcsQ0FDVixTQUFpQixFQUNqQixXQUFtQixFQUNuQixjQUFzQixZQUFZLENBQUMsR0FBRztRQUV0QyxJQUFJLFdBQVcsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDL0QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsa0RBQWtELEVBQ2pFO1lBQ0MsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFO2lCQUN0QixHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDdEMsR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDNUMsQ0FDRCxDQUFDO0lBQ0gsQ0FBQzsrR0EzQlcsa0JBQWtCLGtCQUVWLGFBQWE7bUhBRnJCLGtCQUFrQixjQUZsQixNQUFNOzs0RkFFTixrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFHYSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9ncmVzc0JhciwgSEVBREVSX0pTT04sIEVQcm9qZWN0RnJvbSB9IGZyb20gJ25nLXBsaS11dGlsJztcclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NCYXJTZXJ2aWNlIHtcclxuXHR1cmxCYXNlOiBzdHJpbmcgPSB0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5jb25maWd1cmF0aW9uO1xyXG5cdGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55LCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XHJcblxyXG5cdHNhdmVQcm9ncmVzcyhkYXRhOiBQcm9ncmVzc0JhciwgcHJvamVjdEZyb206IG51bWJlciA9IEVQcm9qZWN0RnJvbS5QTEkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0aWYgKHByb2plY3RGcm9tID09IEVQcm9qZWN0RnJvbS5HSUMpIHtcclxuXHRcdFx0dGhpcy51cmxCYXNlID0gdGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZ2ljQ29uZmlndXJhdGlvbjtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLnVybEJhc2UgKyAncHJvZ3Jlc3NCYXIvc2F2ZVByb2dyZXNzJywgZGF0YSwgSEVBREVSX0pTT04pO1xyXG5cdH1cclxuXHJcblx0Z2V0UHJvZ3Jlc3MoXHJcblx0XHRwcm9jZXNzSWQ6IG51bWJlcixcclxuXHRcdHByb2Nlc3NUeXBlOiBudW1iZXIsXHJcblx0XHRwcm9qZWN0RnJvbTogbnVtYmVyID0gRVByb2plY3RGcm9tLlBMSVxyXG5cdCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRpZiAocHJvamVjdEZyb20gPT0gRVByb2plY3RGcm9tLkdJQykge1xyXG5cdFx0XHR0aGlzLnVybEJhc2UgPSB0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5naWNDb25maWd1cmF0aW9uO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMudXJsQmFzZSArICdwcm9ncmVzc0Jhci9nZXRQcm9ncmVzc0J5UHJvY2Vzc0lkQW5kUHJvY2Vzc1R5cGUnLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpXHJcblx0XHRcdFx0XHQuc2V0KCdwcm9jZXNzSWQnLCBwcm9jZXNzSWQudG9TdHJpbmcoKSlcclxuXHRcdFx0XHRcdC5zZXQoJ3Byb2Nlc3NUeXBlJywgcHJvY2Vzc1R5cGUudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcbn1cclxuIl19
@@ -1,44 +0,0 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import { HttpParams } from '@angular/common/http';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common/http";
5
- export class PromotionScoreService {
6
- constructor(environment, httpClient) {
7
- this.environment = environment;
8
- this.httpClient = httpClient;
9
- }
10
- calculateScoresByApplicationIdList(applicationIdList, promCodigo) {
11
- const params = new HttpParams().set('promCodigo', String(promCodigo));
12
- return this.httpClient.post(this.environment.host.backend.backoffice +
13
- 'promotionScoreController/calculateScoresByApplicationIdList', applicationIdList, { params });
14
- }
15
- calculatePromotionScoreByApplicationIdList(applicationIdList, promCodigo) {
16
- const params = new HttpParams().set('promCodigo', String(promCodigo));
17
- return this.httpClient.post(this.environment.host.backend.backoffice +
18
- 'promotionScoreController/calculatePromotionScoreByApplicationIdList', applicationIdList, { params });
19
- }
20
- creditStudyClassification(applicationIdList, promCodigo) {
21
- const params = new HttpParams().set('promCodigo', String(promCodigo));
22
- return this.httpClient.post(this.environment.host.backend.backoffice +
23
- 'promotionScoreController/creditStudyClassification', applicationIdList, { params });
24
- }
25
- getCreditStudyGroup(applicationId, promCodigo) {
26
- const params = new HttpParams()
27
- .set('promCodigo', String(promCodigo))
28
- .set('applicationId', applicationId);
29
- return this.httpClient.get(this.environment.host.backend.backoffice +
30
- 'promotionScoreController/getCreditStudyGroup', { params });
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PromotionScoreService, deps: [{ token: 'environment' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
33
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PromotionScoreService, providedIn: 'root' }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PromotionScoreService, decorators: [{
36
- type: Injectable,
37
- args: [{
38
- providedIn: 'root'
39
- }]
40
- }], ctorParameters: () => [{ type: undefined, decorators: [{
41
- type: Inject,
42
- args: ['environment']
43
- }] }, { type: i1.HttpClient }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLXNjb3JlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3Byb21vdGlvbi1zY29yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTzlELE1BQU0sT0FBTyxxQkFBcUI7SUFDakMsWUFBMkMsV0FBVyxFQUFVLFVBQXNCO1FBQTNDLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFMUYsa0NBQWtDLENBQUMsaUJBQTJCLEVBQUUsVUFBVTtRQUN6RSxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7WUFDdkMsNkRBQTZELEVBQzlELGlCQUFpQixFQUNqQixFQUFFLE1BQU0sRUFBRSxDQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsMENBQTBDLENBQ3pDLGlCQUEyQixFQUMzQixVQUFVO1FBRVYsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ3ZDLHFFQUFxRSxFQUN0RSxpQkFBaUIsRUFDakIsRUFBRSxNQUFNLEVBQUUsQ0FDVixDQUFDO0lBQ0gsQ0FBQztJQUVELHlCQUF5QixDQUFDLGlCQUEyQixFQUFFLFVBQVU7UUFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ3ZDLG9EQUFvRCxFQUNyRCxpQkFBaUIsRUFDakIsRUFBRSxNQUFNLEVBQUUsQ0FDVixDQUFDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLGFBQXFCLEVBQUUsVUFBVTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRTthQUM3QixHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNyQyxHQUFHLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ3ZDLDhDQUE4QyxFQUMvQyxFQUFFLE1BQU0sRUFBRSxDQUNWLENBQUM7SUFDSCxDQUFDOytHQTdDVyxxQkFBcUIsa0JBQ2IsYUFBYTttSEFEckIscUJBQXFCLGNBRnJCLE1BQU07OzRGQUVOLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEI7OzBCQUVhLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluZGljYXRvclJlcXVlc3QsIERhdGFUYWJsZVBhcmFtZXRlcnMsIENvbW1pdHRlZUNvbnN1bHQgfSBmcm9tICduZy1wbGktdXRpbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbW90aW9uU2NvcmVTZXJ2aWNlIHtcclxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQsIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cclxuXHJcblx0Y2FsY3VsYXRlU2NvcmVzQnlBcHBsaWNhdGlvbklkTGlzdChhcHBsaWNhdGlvbklkTGlzdDogc3RyaW5nW10sIHByb21Db2RpZ28pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0Y29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb21Db2RpZ28nLCBTdHJpbmcocHJvbUNvZGlnbykpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICtcclxuXHRcdFx0XHQncHJvbW90aW9uU2NvcmVDb250cm9sbGVyL2NhbGN1bGF0ZVNjb3Jlc0J5QXBwbGljYXRpb25JZExpc3QnLFxyXG5cdFx0XHRhcHBsaWNhdGlvbklkTGlzdCxcclxuXHRcdFx0eyBwYXJhbXMgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGNhbGN1bGF0ZVByb21vdGlvblNjb3JlQnlBcHBsaWNhdGlvbklkTGlzdChcclxuXHRcdGFwcGxpY2F0aW9uSWRMaXN0OiBzdHJpbmdbXSxcclxuXHRcdHByb21Db2RpZ29cclxuXHQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0Y29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb21Db2RpZ28nLCBTdHJpbmcocHJvbUNvZGlnbykpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICtcclxuXHRcdFx0XHQncHJvbW90aW9uU2NvcmVDb250cm9sbGVyL2NhbGN1bGF0ZVByb21vdGlvblNjb3JlQnlBcHBsaWNhdGlvbklkTGlzdCcsXHJcblx0XHRcdGFwcGxpY2F0aW9uSWRMaXN0LFxyXG5cdFx0XHR7IHBhcmFtcyB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0Y3JlZGl0U3R1ZHlDbGFzc2lmaWNhdGlvbihhcHBsaWNhdGlvbklkTGlzdDogc3RyaW5nW10sIHByb21Db2RpZ28pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0Y29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb21Db2RpZ28nLCBTdHJpbmcocHJvbUNvZGlnbykpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5iYWNrb2ZmaWNlICtcclxuXHRcdFx0XHQncHJvbW90aW9uU2NvcmVDb250cm9sbGVyL2NyZWRpdFN0dWR5Q2xhc3NpZmljYXRpb24nLFxyXG5cdFx0XHRhcHBsaWNhdGlvbklkTGlzdCxcclxuXHRcdFx0eyBwYXJhbXMgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldENyZWRpdFN0dWR5R3JvdXAoYXBwbGljYXRpb25JZDogc3RyaW5nLCBwcm9tQ29kaWdvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0LnNldCgncHJvbUNvZGlnbycsIFN0cmluZyhwcm9tQ29kaWdvKSlcclxuXHRcdFx0LnNldCgnYXBwbGljYXRpb25JZCcsIGFwcGxpY2F0aW9uSWQpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmJhY2tvZmZpY2UgK1xyXG5cdFx0XHRcdCdwcm9tb3Rpb25TY29yZUNvbnRyb2xsZXIvZ2V0Q3JlZGl0U3R1ZHlHcm91cCcsXHJcblx0XHRcdHsgcGFyYW1zIH1cclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==