ng-pli-commons 1.0.113 → 1.0.116

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 (226) hide show
  1. package/fesm2022/ng-pli-commons.mjs +697 -684
  2. package/fesm2022/ng-pli-commons.mjs.map +1 -1
  3. package/package.json +3 -7
  4. package/esm2022/lib/components/backoffice.commons.component.mjs +0 -40
  5. package/esm2022/lib/components/common.lists.component.mjs +0 -176
  6. package/esm2022/lib/components/configuration-token/configuration-token-subject.service.mjs +0 -23
  7. package/esm2022/lib/components/configuration-token/configuration-token.component.mjs +0 -665
  8. package/esm2022/lib/components/configuration-token/guarantee-token/guarantee-token.component.mjs +0 -103
  9. package/esm2022/lib/components/configuration-token/snapshot-token/snapshot-token.component.mjs +0 -108
  10. package/esm2022/lib/components/configuration.commons.component.mjs +0 -40
  11. package/esm2022/lib/components/dashboard.commons.component.mjs +0 -84
  12. package/esm2022/lib/components/dynamic-filter/dynamic-filter.component.mjs +0 -131
  13. package/esm2022/lib/components/excel-to-json/excel-to-json.component.mjs +0 -54
  14. package/esm2022/lib/components/frontoffice.commons.component.mjs +0 -88
  15. package/esm2022/lib/components/pdf-analyzer/pdf-analyzer.component.mjs +0 -162
  16. package/esm2022/lib/components/pdf-config/pdf-config.component.mjs +0 -170
  17. package/esm2022/lib/components/pdf-generator/pdf-generator.component.mjs +0 -207
  18. package/esm2022/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.mjs +0 -307
  19. package/esm2022/lib/components/pdf-visualizer/pdf-visualizer.component.mjs +0 -387
  20. package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +0 -92
  21. package/esm2022/lib/components/segmentation-tokens/segmentation-tokens.component.mjs +0 -199
  22. package/esm2022/lib/components/select-ppp/select-ppp.component.mjs +0 -200
  23. package/esm2022/lib/components/show-hide-columns/show-hide-columns-table.component.mjs +0 -116
  24. package/esm2022/lib/components/token/token.component.mjs +0 -1047
  25. package/esm2022/lib/components/tokens-calculator/tokens-calculator.component.mjs +0 -128
  26. package/esm2022/lib/directives/currency-colfuturo-formatter.directive.mjs +0 -47
  27. package/esm2022/lib/directives/currency-decimal-colfuturo-formatter.directive.mjs +0 -34
  28. package/esm2022/lib/ng-pli-commons.module.mjs +0 -385
  29. package/esm2022/lib/ng-pli-commons.service.mjs +0 -14
  30. package/esm2022/lib/pipes/currency-colfuturo.pipe.mjs +0 -35
  31. package/esm2022/lib/pipes/currency-decimal-colfuturo.pipe.mjs +0 -36
  32. package/esm2022/lib/pipes/currency-print-colfuturo.pipe.mjs +0 -33
  33. package/esm2022/lib/pipes/thousands.pipe.mjs +0 -60
  34. package/esm2022/lib/services/application-fill-percentage.service.mjs +0 -30
  35. package/esm2022/lib/services/application-pdf-form.service.mjs +0 -27
  36. package/esm2022/lib/services/application-tag.service.mjs +0 -56
  37. package/esm2022/lib/services/application.service.mjs +0 -253
  38. package/esm2022/lib/services/assign-task.service.mjs +0 -30
  39. package/esm2022/lib/services/authentication.service.mjs +0 -133
  40. package/esm2022/lib/services/blocked-beneficiary.service.mjs +0 -42
  41. package/esm2022/lib/services/budget-application.service.mjs +0 -265
  42. package/esm2022/lib/services/budget-setup.service.mjs +0 -26
  43. package/esm2022/lib/services/budget-simulation.service.mjs +0 -65
  44. package/esm2022/lib/services/budget.service.mjs +0 -205
  45. package/esm2022/lib/services/closure-wallet.service.mjs +0 -39
  46. package/esm2022/lib/services/cnf-correspondence-document-manager.service.mjs +0 -39
  47. package/esm2022/lib/services/codebtors.service.mjs +0 -28
  48. package/esm2022/lib/services/committee-assistant.service.mjs +0 -55
  49. package/esm2022/lib/services/committee-money.service.mjs +0 -44
  50. package/esm2022/lib/services/committee-pdf.service.mjs +0 -27
  51. package/esm2022/lib/services/committee-snapshot.service.mjs +0 -60
  52. package/esm2022/lib/services/common-info.service.mjs +0 -51
  53. package/esm2022/lib/services/common.service.mjs +0 -285
  54. package/esm2022/lib/services/configuration-document.service.mjs +0 -297
  55. package/esm2022/lib/services/configuration-minisite.service.mjs +0 -26
  56. package/esm2022/lib/services/configuration.service.mjs +0 -53
  57. package/esm2022/lib/services/correspondence-document-category.service.mjs +0 -31
  58. package/esm2022/lib/services/correspondence-manager.service.mjs +0 -67
  59. package/esm2022/lib/services/credit-score.service.mjs +0 -48
  60. package/esm2022/lib/services/credit-study.service.mjs +0 -292
  61. package/esm2022/lib/services/cube.service.mjs +0 -27
  62. package/esm2022/lib/services/data-form-history.service.mjs +0 -25
  63. package/esm2022/lib/services/data-form.service.mjs +0 -176
  64. package/esm2022/lib/services/data-letter-segmentation.service.mjs +0 -64
  65. package/esm2022/lib/services/document-analysis-auto.service.mjs +0 -27
  66. package/esm2022/lib/services/document-history.service.mjs +0 -43
  67. package/esm2022/lib/services/document-management.service.mjs +0 -57
  68. package/esm2022/lib/services/document-process.service.mjs +0 -27
  69. package/esm2022/lib/services/document-validation-attempt.service.mjs +0 -32
  70. package/esm2022/lib/services/document.service.mjs +0 -144
  71. package/esm2022/lib/services/documentary.type.service.mjs +0 -69
  72. package/esm2022/lib/services/email.service.mjs +0 -30
  73. package/esm2022/lib/services/evaluation.service.mjs +0 -181
  74. package/esm2022/lib/services/export-excel.service.mjs +0 -32
  75. package/esm2022/lib/services/file.service.mjs +0 -153
  76. package/esm2022/lib/services/form.service.mjs +0 -112
  77. package/esm2022/lib/services/gic-client-disbursement-metadata.service.mjs +0 -31
  78. package/esm2022/lib/services/gic-client.service.mjs +0 -49
  79. package/esm2022/lib/services/gic-cnf-bankvision-transaction.service.mjs +0 -31
  80. package/esm2022/lib/services/gic-cnf-closing-date.service.mjs +0 -34
  81. package/esm2022/lib/services/gic-cnf-maintenance.service.mjs +0 -30
  82. package/esm2022/lib/services/gic-collection.service.mjs +0 -53
  83. package/esm2022/lib/services/gic-disbursement.service.mjs +0 -39
  84. package/esm2022/lib/services/gic-extract.service.mjs +0 -41
  85. package/esm2022/lib/services/gic-log.service.mjs +0 -41
  86. package/esm2022/lib/services/gic-payment-application.service.mjs +0 -35
  87. package/esm2022/lib/services/gic-payment-plan-cube.service.mjs +0 -27
  88. package/esm2022/lib/services/gic-payment-plan.service.mjs +0 -32
  89. package/esm2022/lib/services/gic-trm.service.mjs +0 -27
  90. package/esm2022/lib/services/global.show.task.service.mjs +0 -37
  91. package/esm2022/lib/services/guarantee-document.service.mjs +0 -52
  92. package/esm2022/lib/services/guarantee-enrollment.service.mjs +0 -37
  93. package/esm2022/lib/services/guarantee.service.mjs +0 -128
  94. package/esm2022/lib/services/guarantees-summary-service.mjs +0 -26
  95. package/esm2022/lib/services/hash.service.mjs +0 -36
  96. package/esm2022/lib/services/import-data.service.mjs +0 -27
  97. package/esm2022/lib/services/import-excel-gic.service.mjs +0 -53
  98. package/esm2022/lib/services/initial-configuration-gic-parameters.service.mjs +0 -51
  99. package/esm2022/lib/services/initial-record.service.mjs +0 -51
  100. package/esm2022/lib/services/integration-ado.service.mjs +0 -54
  101. package/esm2022/lib/services/interaction-application-user.service.mjs +0 -81
  102. package/esm2022/lib/services/interest-adjustment.service.mjs +0 -34
  103. package/esm2022/lib/services/keys-assignation.service.mjs +0 -127
  104. package/esm2022/lib/services/legalization.service.mjs +0 -150
  105. package/esm2022/lib/services/letter-campaing.service.mjs +0 -49
  106. package/esm2022/lib/services/letter-task-mapping.service.mjs +0 -40
  107. package/esm2022/lib/services/log.service.mjs +0 -41
  108. package/esm2022/lib/services/maintenance.service.mjs +0 -86
  109. package/esm2022/lib/services/master-category.service.mjs +0 -66
  110. package/esm2022/lib/services/master-program.service.mjs +0 -78
  111. package/esm2022/lib/services/master-university.service.mjs +0 -79
  112. package/esm2022/lib/services/migration-plis.service.mjs +0 -27
  113. package/esm2022/lib/services/migration-survey-queue.service.mjs +0 -24
  114. package/esm2022/lib/services/openkm-document.service.mjs +0 -27
  115. package/esm2022/lib/services/page.service.mjs +0 -38
  116. package/esm2022/lib/services/partner-system.service.mjs +0 -30
  117. package/esm2022/lib/services/partner.service.mjs +0 -34
  118. package/esm2022/lib/services/pdf-analyzer.service.mjs +0 -33
  119. package/esm2022/lib/services/people-master.service.mjs +0 -42
  120. package/esm2022/lib/services/permission.service.mjs +0 -29
  121. package/esm2022/lib/services/pli-cnf-acuity-fields.service.mjs +0 -34
  122. package/esm2022/lib/services/pli-cnf-app-card-filter.service.mjs +0 -40
  123. package/esm2022/lib/services/pli-cnf-appointment-type.service.mjs +0 -41
  124. package/esm2022/lib/services/pli-cnf-budget-program-type.service.mjs +0 -54
  125. package/esm2022/lib/services/pli-cnf-budget.service.mjs +0 -31
  126. package/esm2022/lib/services/pli-cnf-cloning.service.mjs +0 -27
  127. package/esm2022/lib/services/pli-cnf-committee-pdf-config-table-config.service.mjs +0 -47
  128. package/esm2022/lib/services/pli-cnf-committee-pdf-gen-status.service.mjs +0 -30
  129. package/esm2022/lib/services/pli-cnf-committee-valpro-columns.service.mjs +0 -42
  130. package/esm2022/lib/services/pli-cnf-committee-visualization-mode.service.mjs +0 -42
  131. package/esm2022/lib/services/pli-cnf-committee.service.mjs +0 -66
  132. package/esm2022/lib/services/pli-cnf-config-minisite.service.mjs +0 -90
  133. package/esm2022/lib/services/pli-cnf-configuration-credit-study.service.mjs +0 -41
  134. package/esm2022/lib/services/pli-cnf-document-management.service.mjs +0 -40
  135. package/esm2022/lib/services/pli-cnf-dynamic-keys-assign.service.mjs +0 -52
  136. package/esm2022/lib/services/pli-cnf-evaluation-task-mailing.service.mjs +0 -31
  137. package/esm2022/lib/services/pli-cnf-evaluation-task-template.service.mjs +0 -39
  138. package/esm2022/lib/services/pli-cnf-evaluation-task.service.mjs +0 -112
  139. package/esm2022/lib/services/pli-cnf-evaluation-template.service.mjs +0 -95
  140. package/esm2022/lib/services/pli-cnf-form-edit.service.mjs +0 -68
  141. package/esm2022/lib/services/pli-cnf-form-multiaplicacion.service.mjs +0 -46
  142. package/esm2022/lib/services/pli-cnf-guarantee-documents-template.service.mjs +0 -40
  143. package/esm2022/lib/services/pli-cnf-guarantee-token.service.mjs +0 -42
  144. package/esm2022/lib/services/pli-cnf-header.service.mjs +0 -39
  145. package/esm2022/lib/services/pli-cnf-indicator.service.mjs +0 -39
  146. package/esm2022/lib/services/pli-cnf-information-system.service.mjs +0 -24
  147. package/esm2022/lib/services/pli-cnf-interaction.service.mjs +0 -78
  148. package/esm2022/lib/services/pli-cnf-letter-template-type.service.mjs +0 -29
  149. package/esm2022/lib/services/pli-cnf-letter-template.service.mjs +0 -48
  150. package/esm2022/lib/services/pli-cnf-look-and-feel.service.mjs +0 -28
  151. package/esm2022/lib/services/pli-cnf-mail.service.mjs +0 -30
  152. package/esm2022/lib/services/pli-cnf-menu-form.service.mjs +0 -34
  153. package/esm2022/lib/services/pli-cnf-migration-plis-field-budget.service.mjs +0 -34
  154. package/esm2022/lib/services/pli-cnf-migration-plis-field.service.mjs +0 -47
  155. package/esm2022/lib/services/pli-cnf-migration-status-plis.service.mjs +0 -44
  156. package/esm2022/lib/services/pli-cnf-page-section-form.service.mjs +0 -66
  157. package/esm2022/lib/services/pli-cnf-page-sub-process.service.mjs +0 -25
  158. package/esm2022/lib/services/pli-cnf-pdfs.service.mjs +0 -31
  159. package/esm2022/lib/services/pli-cnf-profile-form.service.mjs +0 -40
  160. package/esm2022/lib/services/pli-cnf-profile-user.service.mjs +0 -49
  161. package/esm2022/lib/services/pli-cnf-project-summary.service.mjs +0 -39
  162. package/esm2022/lib/services/pli-cnf-scenario.service.mjs +0 -47
  163. package/esm2022/lib/services/pli-cnf-segmentation.service.mjs +0 -72
  164. package/esm2022/lib/services/pli-cnf-snapshot-token.service.mjs +0 -42
  165. package/esm2022/lib/services/pli-cnf-status-flow-interaction.service.mjs +0 -74
  166. package/esm2022/lib/services/pli-cnf-status-flow.service.mjs +0 -56
  167. package/esm2022/lib/services/pli-cnf-support-document-category.service.mjs +0 -47
  168. package/esm2022/lib/services/pli-cnf-support-document.service.mjs +0 -56
  169. package/esm2022/lib/services/pli-cnf-survey-document.service.mjs +0 -37
  170. package/esm2022/lib/services/pli-cnf-survey-pdf.service.mjs +0 -34
  171. package/esm2022/lib/services/pli-cnf-survey.service.mjs +0 -46
  172. package/esm2022/lib/services/pli-cnf-task-group.service.mjs +0 -33
  173. package/esm2022/lib/services/pli-cnf-text-category.service.mjs +0 -38
  174. package/esm2022/lib/services/pli-cnf-text-option.service.mjs +0 -39
  175. package/esm2022/lib/services/pli-cnf-text.service.mjs +0 -62
  176. package/esm2022/lib/services/pli-cnf-type-text.service.mjs +0 -45
  177. package/esm2022/lib/services/pli-cnf-university-article.service.mjs +0 -39
  178. package/esm2022/lib/services/pli-cnf-user-calendar.service.mjs +0 -36
  179. package/esm2022/lib/services/pli-cnf-user-workspace.service.mjs +0 -35
  180. package/esm2022/lib/services/pli-cnf-valpro-keys.service.mjs +0 -35
  181. package/esm2022/lib/services/pli-cnf-workspace-segmentation.service.mjs +0 -31
  182. package/esm2022/lib/services/pli-message-type.service.mjs +0 -40
  183. package/esm2022/lib/services/pli-multiple-value-filter.service.mjs +0 -39
  184. package/esm2022/lib/services/pli-promocion-username.service.mjs +0 -57
  185. package/esm2022/lib/services/pli-seg-action-user.service.mjs +0 -37
  186. package/esm2022/lib/services/pli-segmentation.service.mjs +0 -130
  187. package/esm2022/lib/services/pli-tag-assignment.service.mjs +0 -36
  188. package/esm2022/lib/services/pli-tag.service.mjs +0 -55
  189. package/esm2022/lib/services/pli-user.service.mjs +0 -51
  190. package/esm2022/lib/services/plis-beneficiario.service.mjs +0 -29
  191. package/esm2022/lib/services/plis-estatus-change.service.mjs +0 -30
  192. package/esm2022/lib/services/post-selection.service.mjs +0 -25
  193. package/esm2022/lib/services/ppp.service.mjs +0 -360
  194. package/esm2022/lib/services/profile.service.mjs +0 -60
  195. package/esm2022/lib/services/progress-bar.service.mjs +0 -40
  196. package/esm2022/lib/services/promotion-score.service.mjs +0 -44
  197. package/esm2022/lib/services/registry-identifier.service.mjs +0 -49
  198. package/esm2022/lib/services/return-refund.service.mjs +0 -53
  199. package/esm2022/lib/services/segmentation-tokens.service.mjs +0 -43
  200. package/esm2022/lib/services/segmentation-user-service.service.mjs +0 -94
  201. package/esm2022/lib/services/segmentation.service.mjs +0 -31
  202. package/esm2022/lib/services/send-application.service.mjs +0 -484
  203. package/esm2022/lib/services/sesion-form.service.mjs +0 -31
  204. package/esm2022/lib/services/sesion.service.mjs +0 -48
  205. package/esm2022/lib/services/spinner.service.mjs +0 -16
  206. package/esm2022/lib/services/sponsorship-letter.service.mjs +0 -68
  207. package/esm2022/lib/services/status.service.mjs +0 -104
  208. package/esm2022/lib/services/summary-budget.service.mjs +0 -24
  209. package/esm2022/lib/services/survey-metadata.service.mjs +0 -28
  210. package/esm2022/lib/services/survey-queue.service.mjs +0 -24
  211. package/esm2022/lib/services/survey.service.mjs +0 -52
  212. package/esm2022/lib/services/tag-management.service.mjs +0 -58
  213. package/esm2022/lib/services/tasa.cambio.service.mjs +0 -35
  214. package/esm2022/lib/services/token-transformation.service.mjs +0 -62
  215. package/esm2022/lib/services/token.service.mjs +0 -1439
  216. package/esm2022/lib/services/university.service.mjs +0 -50
  217. package/esm2022/lib/services/upload-documents.service.mjs +0 -60
  218. package/esm2022/lib/services/user.service.mjs +0 -28
  219. package/esm2022/lib/services/visualization-committee.service.mjs +0 -91
  220. package/esm2022/lib/utils/custom-validator.mjs +0 -95
  221. package/esm2022/lib/utils/form-util.mjs +0 -35
  222. package/esm2022/lib/utils/formio-util.mjs +0 -582
  223. package/esm2022/lib/utils/version-commons.mjs +0 -10
  224. package/esm2022/ng-pli-commons.mjs +0 -5
  225. package/esm2022/public-api.mjs +0 -226
  226. package/esm2022/version.mjs +0 -29
@@ -1,103 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { CommonListsComponent } from '../../common.lists.component';
3
- import { TokenService } from '../../../services/token.service';
4
- import { PliCnfGuaranteeToken, UtilString } from 'ng-pli-util';
5
- import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../services/common.service";
8
- import * as i2 from "ngx-toastr";
9
- import * as i3 from "../../../services/pli-cnf-guarantee-token.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@angular/forms";
12
- import * as i6 from "primeng/api";
13
- import * as i7 from "primeng/table";
14
- import * as i8 from "primeng/dialog";
15
- import * as i9 from "ng-pli-util";
16
- export class GuaranteeTokenComponent extends CommonListsComponent {
17
- constructor(cdRef, commonService, toastrService, pliCnfGuaranteeTokenService) {
18
- super(commonService, cdRef);
19
- this.cdRef = cdRef;
20
- this.commonService = commonService;
21
- this.toastrService = toastrService;
22
- this.pliCnfGuaranteeTokenService = pliCnfGuaranteeTokenService;
23
- this.lGuaranteeTokens = [];
24
- }
25
- ngOnInit() {
26
- super.ngOnInit();
27
- this.getTokenGuarantee();
28
- }
29
- /* The label to guarantee tokens */
30
- labelGuarantee(token) {
31
- return '${' + TokenService.getKeyGuarantee(token) + '}';
32
- }
33
- getTokenGuarantee() {
34
- this.pliCnfGuaranteeTokenService.getAllByPromCodigo(this.promCodigo).subscribe((result) => {
35
- this.lGuaranteeTokens = result;
36
- }, (error) => {
37
- this.toastrService.error('Error al obtener los token de garantias', 'Error');
38
- });
39
- }
40
- initForm(tokenSelected) {
41
- this.tokenSelected =
42
- tokenSelected == null
43
- ? new PliCnfGuaranteeToken()
44
- : Object.assign(new PliCnfGuaranteeToken(), JSON.parse(JSON.stringify(tokenSelected)));
45
- if (!this.tokenSelected.promCodigo) {
46
- this.tokenSelected.promCodigo = this.promCodigo;
47
- }
48
- this.controlName = new UntypedFormControl(this.tokenSelected.name, Validators.required);
49
- this.controlFormula = new UntypedFormControl(this.tokenSelected.formula, Validators.required);
50
- this.frmToken = new UntypedFormGroup({
51
- controlName: this.controlName,
52
- controlFormula: this.controlFormula
53
- });
54
- this.showModal = true;
55
- }
56
- save() {
57
- if (this.isFormValid(this.frmToken) && this.isValid()) {
58
- this.pliCnfGuaranteeTokenService.save(this.tokenSelected).subscribe((result) => {
59
- this.getTokenGuarantee();
60
- this.onCloseModal();
61
- this.toastrService.success('Se ha guardado exitosamente ', 'Guardado exitoso!');
62
- this.tokenSelected = null;
63
- }, (error) => {
64
- this.toastrService.error('Error al intentar guardar el token', 'Error');
65
- });
66
- }
67
- }
68
- isValid() {
69
- const token = this.lGuaranteeTokens.find((token) => UtilString.replaceAccentSpacesOthers(token.name) ===
70
- UtilString.replaceAccentSpacesOthers(this.tokenSelected.name) &&
71
- (!this.tokenSelected.id || this.tokenSelected.id !== token.id));
72
- if (token) {
73
- this.toastrService.error('El token ' + token.name + ' ya existe', 'Alerta!');
74
- return false;
75
- }
76
- return true;
77
- }
78
- onCloseModal() {
79
- this.showModal = false;
80
- }
81
- delete(token) {
82
- if (confirm('¿Está seguro que desea eliminar el token ' + token.name + '?')) {
83
- this.pliCnfGuaranteeTokenService.delete(token.id).subscribe((result) => {
84
- this.getTokenGuarantee();
85
- this.toastrService.success('El token fué eliminada exitosamente', 'Exito!');
86
- }, (error) => {
87
- this.toastrService.error('Error al intentar eliminar el token', 'Error');
88
- });
89
- }
90
- }
91
- resolveKeyCalculatedToken() {
92
- return UtilString.replaceAccentSpacesOthers(this.tokenSelected.name);
93
- }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuaranteeTokenComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CommonService }, { token: i2.ToastrService }, { token: i3.PliCnfGuaranteeTokenService }], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GuaranteeTokenComponent, selector: "pli-guarantee-token", inputs: { promCodigo: "promCodigo" }, usesInheritance: true, ngImport: i0, template: "<h4 class=\"no-margin-top\">\r\n\tTokens Garantias\r\n</h4>\r\n<p-table [value]=\"lGuaranteeTokens\" [responsive]=\"true\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<tr class=\"text-align-center\">\r\n\t\t\t<th class=\"text-align-center\" width=\"40%\">Nombre</th>\r\n\t\t\t<th class=\"text-align-center\">Formula</th>\r\n\t\t\t<th class=\"text-align-center\">Creado</th>\r\n\t\t\t<th class=\"text-align-center\">Modificado</th>\r\n\t\t\t<th class=\"text-align-center\">Acciones</th>\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"body\" let-token>\r\n\t\t<tr>\r\n\t\t\t<td>\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t(click)=\"copyMessage(labelGuarantee(token))\"\r\n\t\t\t\t\tstyle=\"margin-right: 8px;\"\r\n\t\t\t\t\ttitle=\"{{ labelGuarantee(token) }}\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t\t{{ token.name }}\r\n\t\t\t</td>\r\n\t\t\t<td class=\"cut-line\">{{ token.formula }}</td>\r\n\t\t\t<td>{{ token.createdAt | date: 'dd MMM yyyy' | lowercase }}</td>\r\n\t\t\t<td>{{ token.modifiedAt | date: 'dd MMM yyyy' | lowercase }}</td>\r\n\t\t\t<td>\r\n\t\t\t\t<div class=\"btn-group\" role=\"group\">\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclass=\"btn btn-default\"\r\n\t\t\t\t\t\t(click)=\"initForm(token)\"\r\n\t\t\t\t\t\tpliAuthorityDirective\r\n\t\t\t\t\t\t[externalAllowed]=\"false\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEditar\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclass=\"btn btn-default dropdown-toggle\"\r\n\t\t\t\t\t\tdata-toggle=\"dropdown\"\r\n\t\t\t\t\t\taria-haspopup=\"true\"\r\n\t\t\t\t\t\taria-expanded=\"false\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<span class=\"caret\"></span>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<ul class=\"dropdown-menu\">\r\n\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\t\t(click)=\"delete(token)\"\r\n\t\t\t\t\t\t\t\tpliAuthorityDirective\r\n\t\t\t\t\t\t\t\t[authorities]=\"[p('ROLE_TOKENS_ELIMINAR')]\"\r\n\t\t\t\t\t\t\t\t[externalAllowed]=\"false\"\r\n\t\t\t\t\t\t\t\t>Eliminar</a\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t</li>\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t</div>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n<div class=\"text-align-right\" style=\"padding: 0.75rem 1.25rem;\">\r\n\t<button type=\"button\" class=\"btn btn-primary\" (click)=\"initForm(null)\">\r\n\t\tAgregar nuevo\r\n\t</button>\r\n</div>\r\n<p-dialog\r\n\theader=\"Token Garantias\"\r\n\t[(visible)]=\"showModal\"\r\n\t[modal]=\"true\"\r\n\t(onHide)=\"onCloseModal()\"\r\n\t[contentStyle]=\"{\r\n\t\twidth: '400px',\r\n\t\t'overflow-y': 'auto',\r\n\t\t'min-height': '500px',\r\n\t\t'max-height': '500px',\r\n\t\t'text-align': 'left'\r\n\t}\"\r\n\theight=\"500px\"\r\n\twidth=\"500px\"\r\n\tdismissableMask=\"true\"\r\n>\r\n\t<form [formGroup]=\"frmToken\" (ngSubmit)=\"save()\" *ngIf=\"tokenSelected\">\r\n\t\t<div class=\"row\">\r\n\t\t\t<div class=\"col-sm-12 col-md-12 col-lg-12\">\r\n\t\t\t\t<div class=\"form-group required\">\r\n\t\t\t\t\t<label for=\"name\" class=\"form-control-label\">Nombre</label>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"input\"\r\n\t\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t\tname=\"name\"\r\n\t\t\t\t\t\tid=\"name\"\r\n\t\t\t\t\t\tplaceholder=\"Nombre\"\r\n\t\t\t\t\t\tformControlName=\"controlName\"\r\n\t\t\t\t\t\t[(ngModel)]=\"tokenSelected.name\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<div class=\"form-control-error\">\r\n\t\t\t\t\t\t<small *ngIf=\"hasError(controlName, 'required')\"\r\n\t\t\t\t\t\t\t>El nombre es requerido</small\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t<label class=\"form-control-label\">Llave: </label>\r\n\t\t\t\t\t<p style=\"font-weight: bold; margin-bottom: 25px;\">\r\n\t\t\t\t\t\t{{ resolveKeyCalculatedToken() }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"form-group required\">\r\n\t\t\t\t\t<label for=\"formula\" class=\"form-control-label\">Formula</label>\r\n\t\t\t\t\t<textarea\r\n\t\t\t\t\t\trows=\"3\"\r\n\t\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t\tname=\"formula\"\r\n\t\t\t\t\t\tid=\"formula\"\r\n\t\t\t\t\t\tformControlName=\"controlFormula\"\r\n\t\t\t\t\t\t[(ngModel)]=\"tokenSelected.formula\"\r\n\t\t\t\t\t></textarea>\r\n\t\t\t\t\t<div class=\"form-control-error\">\r\n\t\t\t\t\t\t<small *ngIf=\"hasError(controlFormula, 'required')\"\r\n\t\t\t\t\t\t\t>La f\u00F3rmula es requerida</small\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"card-footer text-align-right\">\r\n\t\t\t\t\t<button type=\"button\" (click)=\"onCloseModal()\" class=\"btn btn-link\">\r\n\t\t\t\t\t\tCancelar\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button type=\"submit\" class=\"btn btn-success\">\r\n\t\t\t\t\t\tGuardar\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</form>\r\n</p-dialog>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i7.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i9.AuthorityDirectiveDirective, selector: "[pliAuthorityDirective]", inputs: ["authorities", "patCodigo", "externalAllowed"] }, { kind: "pipe", type: i4.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i4.DatePipe, name: "date" }] }); }
96
- }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuaranteeTokenComponent, decorators: [{
98
- type: Component,
99
- args: [{ selector: 'pli-guarantee-token', template: "<h4 class=\"no-margin-top\">\r\n\tTokens Garantias\r\n</h4>\r\n<p-table [value]=\"lGuaranteeTokens\" [responsive]=\"true\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<tr class=\"text-align-center\">\r\n\t\t\t<th class=\"text-align-center\" width=\"40%\">Nombre</th>\r\n\t\t\t<th class=\"text-align-center\">Formula</th>\r\n\t\t\t<th class=\"text-align-center\">Creado</th>\r\n\t\t\t<th class=\"text-align-center\">Modificado</th>\r\n\t\t\t<th class=\"text-align-center\">Acciones</th>\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"body\" let-token>\r\n\t\t<tr>\r\n\t\t\t<td>\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t(click)=\"copyMessage(labelGuarantee(token))\"\r\n\t\t\t\t\tstyle=\"margin-right: 8px;\"\r\n\t\t\t\t\ttitle=\"{{ labelGuarantee(token) }}\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t\t{{ token.name }}\r\n\t\t\t</td>\r\n\t\t\t<td class=\"cut-line\">{{ token.formula }}</td>\r\n\t\t\t<td>{{ token.createdAt | date: 'dd MMM yyyy' | lowercase }}</td>\r\n\t\t\t<td>{{ token.modifiedAt | date: 'dd MMM yyyy' | lowercase }}</td>\r\n\t\t\t<td>\r\n\t\t\t\t<div class=\"btn-group\" role=\"group\">\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclass=\"btn btn-default\"\r\n\t\t\t\t\t\t(click)=\"initForm(token)\"\r\n\t\t\t\t\t\tpliAuthorityDirective\r\n\t\t\t\t\t\t[externalAllowed]=\"false\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEditar\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclass=\"btn btn-default dropdown-toggle\"\r\n\t\t\t\t\t\tdata-toggle=\"dropdown\"\r\n\t\t\t\t\t\taria-haspopup=\"true\"\r\n\t\t\t\t\t\taria-expanded=\"false\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<span class=\"caret\"></span>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<ul class=\"dropdown-menu\">\r\n\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\t\t(click)=\"delete(token)\"\r\n\t\t\t\t\t\t\t\tpliAuthorityDirective\r\n\t\t\t\t\t\t\t\t[authorities]=\"[p('ROLE_TOKENS_ELIMINAR')]\"\r\n\t\t\t\t\t\t\t\t[externalAllowed]=\"false\"\r\n\t\t\t\t\t\t\t\t>Eliminar</a\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t</li>\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t</div>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n<div class=\"text-align-right\" style=\"padding: 0.75rem 1.25rem;\">\r\n\t<button type=\"button\" class=\"btn btn-primary\" (click)=\"initForm(null)\">\r\n\t\tAgregar nuevo\r\n\t</button>\r\n</div>\r\n<p-dialog\r\n\theader=\"Token Garantias\"\r\n\t[(visible)]=\"showModal\"\r\n\t[modal]=\"true\"\r\n\t(onHide)=\"onCloseModal()\"\r\n\t[contentStyle]=\"{\r\n\t\twidth: '400px',\r\n\t\t'overflow-y': 'auto',\r\n\t\t'min-height': '500px',\r\n\t\t'max-height': '500px',\r\n\t\t'text-align': 'left'\r\n\t}\"\r\n\theight=\"500px\"\r\n\twidth=\"500px\"\r\n\tdismissableMask=\"true\"\r\n>\r\n\t<form [formGroup]=\"frmToken\" (ngSubmit)=\"save()\" *ngIf=\"tokenSelected\">\r\n\t\t<div class=\"row\">\r\n\t\t\t<div class=\"col-sm-12 col-md-12 col-lg-12\">\r\n\t\t\t\t<div class=\"form-group required\">\r\n\t\t\t\t\t<label for=\"name\" class=\"form-control-label\">Nombre</label>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"input\"\r\n\t\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t\tname=\"name\"\r\n\t\t\t\t\t\tid=\"name\"\r\n\t\t\t\t\t\tplaceholder=\"Nombre\"\r\n\t\t\t\t\t\tformControlName=\"controlName\"\r\n\t\t\t\t\t\t[(ngModel)]=\"tokenSelected.name\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<div class=\"form-control-error\">\r\n\t\t\t\t\t\t<small *ngIf=\"hasError(controlName, 'required')\"\r\n\t\t\t\t\t\t\t>El nombre es requerido</small\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t<label class=\"form-control-label\">Llave: </label>\r\n\t\t\t\t\t<p style=\"font-weight: bold; margin-bottom: 25px;\">\r\n\t\t\t\t\t\t{{ resolveKeyCalculatedToken() }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"form-group required\">\r\n\t\t\t\t\t<label for=\"formula\" class=\"form-control-label\">Formula</label>\r\n\t\t\t\t\t<textarea\r\n\t\t\t\t\t\trows=\"3\"\r\n\t\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t\tname=\"formula\"\r\n\t\t\t\t\t\tid=\"formula\"\r\n\t\t\t\t\t\tformControlName=\"controlFormula\"\r\n\t\t\t\t\t\t[(ngModel)]=\"tokenSelected.formula\"\r\n\t\t\t\t\t></textarea>\r\n\t\t\t\t\t<div class=\"form-control-error\">\r\n\t\t\t\t\t\t<small *ngIf=\"hasError(controlFormula, 'required')\"\r\n\t\t\t\t\t\t\t>La f\u00F3rmula es requerida</small\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"card-footer text-align-right\">\r\n\t\t\t\t\t<button type=\"button\" (click)=\"onCloseModal()\" class=\"btn btn-link\">\r\n\t\t\t\t\t\tCancelar\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button type=\"submit\" class=\"btn btn-success\">\r\n\t\t\t\t\t\tGuardar\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</form>\r\n</p-dialog>\r\n" }]
100
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.CommonService }, { type: i2.ToastrService }, { type: i3.PliCnfGuaranteeTokenService }], propDecorators: { promCodigo: [{
101
- type: Input
102
- }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmFudGVlLXRva2VuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9jb25maWd1cmF0aW9uLXRva2VuL2d1YXJhbnRlZS10b2tlbi9ndWFyYW50ZWUtdG9rZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24tdG9rZW4vZ3VhcmFudGVlLXRva2VuL2d1YXJhbnRlZS10b2tlbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQVFsRixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsb0JBQW9CO0lBV2hFLFlBQ1csS0FBd0IsRUFDeEIsYUFBNEIsRUFDOUIsYUFBNEIsRUFDNUIsMkJBQXdEO1FBRWhFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFMbEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQVpqRSxxQkFBZ0IsR0FBMkIsRUFB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Q0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RSxDQUFDOytHQWxIVyx1QkFBdUI7bUdBQXZCLHVCQUF1Qix3SENicEMsczBKQThJQTs7NEZEaklhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDQyxxQkFBcUI7d0xBSXRCLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbkxpc3RzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uLmxpc3RzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Rva2VuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQbGlDbmZHdWFyYW50ZWVUb2tlbiwgVXRpbFN0cmluZyB9IGZyb20gJ25nLXBsaS11dGlsJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IFBsaUNuZkd1YXJhbnRlZVRva2VuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BsaS1jbmYtZ3VhcmFudGVlLXRva2VuLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdwbGktZ3VhcmFudGVlLXRva2VuJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZ3VhcmFudGVlLXRva2VuLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR3VhcmFudGVlVG9rZW5Db21wb25lbnQgZXh0ZW5kcyBDb21tb25MaXN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0QElucHV0KCkgcHJvbUNvZGlnbzogbnVtYmVyO1xyXG5cclxuXHRsR3VhcmFudGVlVG9rZW5zOiBQbGlDbmZHdWFyYW50ZWVUb2tlbltdID0gW107XHJcblx0dG9rZW5TZWxlY3RlZDogUGxpQ25mR3VhcmFudGVlVG9rZW47XHJcblx0ZnJtVG9rZW46IFVudHlwZWRGb3JtR3JvdXA7XHJcblx0Y29udHJvbE5hbWU6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuXHRjb250cm9sRm9ybXVsYTogVW50eXBlZEZvcm1Db250cm9sO1xyXG5cclxuXHRzaG93TW9kYWw6IGJvb2xlYW47XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJvdGVjdGVkIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRcdHByb3RlY3RlZCBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBwbGlDbmZHdWFyYW50ZWVUb2tlblNlcnZpY2U6IFBsaUNuZkd1YXJhbnRlZVRva2VuU2VydmljZVxyXG5cdCkge1xyXG5cdFx0c3VwZXIoY29tbW9uU2VydmljZSwgY2RSZWYpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHRzdXBlci5uZ09uSW5pdCgpO1xyXG5cdFx0dGhpcy5nZXRUb2tlbkd1YXJhbnRlZSgpO1xyXG5cdH1cclxuXHJcblx0LyogVGhlIGxhYmVsIHRvIGd1YXJhbnRlZSB0b2tlbnMgKi9cclxuXHRsYWJlbEd1YXJhbnRlZSh0b2tlbjogUGxpQ25mR3VhcmFudGVlVG9rZW4pOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuICckeycgKyBUb2tlblNlcnZpY2UuZ2V0S2V5R3VhcmFudGVlKHRva2VuKSArICd9JztcclxuXHR9XHJcblxyXG5cdGdldFRva2VuR3VhcmFudGVlKCkge1xyXG5cdFx0dGhpcy5wbGlDbmZHdWFyYW50ZWVUb2tlblNlcnZpY2UuZ2V0QWxsQnlQcm9tQ29kaWdvKHRoaXMucHJvbUNvZGlnbykuc3Vic2NyaWJlKFxyXG5cdFx0XHQocmVzdWx0OiBQbGlDbmZHdWFyYW50ZWVUb2tlbltdKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5sR3VhcmFudGVlVG9rZW5zID0gcmVzdWx0O1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQoZXJyb3IpID0+IHtcclxuXHRcdFx0XHR0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoJ0Vycm9yIGFsIG9idGVuZXIgbG9zIHRva2VuIGRlIGdhcmFudGlhcycsICdFcnJvcicpO1xyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0aW5pdEZvcm0odG9rZW5TZWxlY3RlZDogUGxpQ25mR3VhcmFudGVlVG9rZW4pIHtcclxuXHRcdHRoaXMudG9rZW5TZWxlY3RlZCA9XHJcblx0XHRcdHRva2VuU2VsZWN0ZWQgPT0gbnVsbFxyXG5cdFx0XHRcdD8gbmV3IFBsaUNuZkd1YXJhbnRlZVRva2VuKClcclxuXHRcdFx0XHQ6IE9iamVjdC5hc3NpZ24oXHJcblx0XHRcdFx0XHRcdG5ldyBQbGlDbmZHdWFyYW50ZWVUb2tlbigpLFxyXG5cdFx0XHRcdFx0XHRKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRva2VuU2VsZWN0ZWQpKVxyXG5cdFx0XHRcdCAgKTtcclxuXHRcdGlmICghdGhpcy50b2tlblNlbGVjdGVkLnByb21Db2RpZ28pIHtcclxuXHRcdFx0dGhpcy50b2tlblNlbGVjdGVkLnByb21Db2RpZ28gPSB0aGlzLnByb21Db2RpZ287XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5jb250cm9sTmFtZSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy50b2tlblNlbGVjdGVkLm5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cdFx0dGhpcy5jb250cm9sRm9ybXVsYSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy50b2tlblNlbGVjdGVkLmZvcm11bGEsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuXHRcdHRoaXMuZnJtVG9rZW4gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XHJcblx0XHRcdGNvbnRyb2xOYW1lOiB0aGlzLmNvbnRyb2xOYW1lLFxyXG5cdFx0XHRjb250cm9sRm9ybXVsYTogdGhpcy5jb250cm9sRm9ybXVsYVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5zaG93TW9kYWwgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0c2F2ZSgpIHtcclxuXHRcdGlmICh0aGlzLmlzRm9ybVZhbGlkKHRoaXMuZnJtVG9rZW4pICYmIHRoaXMuaXNWYWxpZCgpKSB7XHJcblx0XHRcdHRoaXMucGxpQ25mR3VhcmFudGVlVG9rZW5TZXJ2aWNlLnNhdmUodGhpcy50b2tlblNlbGVjdGVkKS5zdWJzY3JpYmUoXHJcblx0XHRcdFx0KHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5nZXRUb2tlbkd1YXJhbnRlZSgpO1xyXG5cdFx0XHRcdFx0dGhpcy5vbkNsb3NlTW9kYWwoKTtcclxuXHRcdFx0XHRcdHRoaXMudG9hc3RyU2VydmljZS5zdWNjZXNzKCdTZSBoYSBndWFyZGFkbyBleGl0b3NhbWVudGUgJywgJ0d1YXJkYWRvIGV4aXRvc28hJyk7XHJcblx0XHRcdFx0XHR0aGlzLnRva2VuU2VsZWN0ZWQgPSBudWxsO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0KGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoJ0Vycm9yIGFsIGludGVudGFyIGd1YXJkYXIgZWwgdG9rZW4nLCAnRXJyb3InKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRpc1ZhbGlkKCkge1xyXG5cdFx0Y29uc3QgdG9rZW4gPSB0aGlzLmxHdWFyYW50ZWVUb2tlbnMuZmluZChcclxuXHRcdFx0KHRva2VuKSA9PlxyXG5cdFx0XHRcdFV0aWxTdHJpbmcucmVwbGFjZUFjY2VudFNwYWNlc090aGVycyh0b2tlbi5uYW1lKSA9PT1cclxuXHRcdFx0XHRcdFV0aWxTdHJpbmcucmVwbGFjZUFjY2VudFNwYWNlc090aGVycyh0aGlzLnRva2VuU2VsZWN0ZWQubmFtZSkgJiZcclxuXHRcdFx0XHQoIXRoaXMudG9rZW5TZWxlY3RlZC5pZCB8fCB0aGlzLnRva2VuU2VsZWN0ZWQuaWQgIT09IHRva2VuLmlkKVxyXG5cdFx0KTtcclxuXHRcdGlmICh0b2tlbikge1xyXG5cdFx0XHR0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoJ0VsIHRva2VuICcgKyB0b2tlbi5uYW1lICsgJyB5YSBleGlzdGUnLCAnQWxlcnRhIScpO1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdG9uQ2xvc2VNb2RhbCgpIHtcclxuXHRcdHRoaXMuc2hvd01vZGFsID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRkZWxldGUodG9rZW46IFBsaUNuZkd1YXJhbnRlZVRva2VuKSB7XHJcblx0XHRpZiAoY29uZmlybSgnwr9Fc3TDoSBzZWd1cm8gcXVlIGRlc2VhIGVsaW1pbmFyIGVsIHRva2VuICcgKyB0b2tlbi5uYW1lICsgJz8nKSkge1xyXG5cdFx0XHR0aGlzLnBsaUNuZkd1YXJhbnRlZVRva2VuU2VydmljZS5kZWxldGUodG9rZW4uaWQpLnN1YnNjcmliZShcclxuXHRcdFx0XHQocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmdldFRva2VuR3VhcmFudGVlKCk7XHJcblx0XHRcdFx0XHR0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcygnRWwgdG9rZW4gZnXDqSBlbGltaW5hZGEgZXhpdG9zYW1lbnRlJywgJ0V4aXRvIScpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0KGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoJ0Vycm9yIGFsIGludGVudGFyIGVsaW1pbmFyIGVsIHRva2VuJywgJ0Vycm9yJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmVzb2x2ZUtleUNhbGN1bGF0ZWRUb2tlbigpIHtcclxuXHRcdHJldHVybiBVdGlsU3RyaW5nLnJlcGxhY2VBY2NlbnRTcGFjZXNPdGhlcnModGhpcy50b2tlblNlbGVjdGVkLm5hbWUpO1xyXG5cdH1cclxufVxyXG4iLCI8aDQgY2xhc3M9XCJuby1tYXJnaW4tdG9wXCI+XHJcblx0VG9rZW5zIEdhcmFudGlhc1xyXG48L2g0PlxyXG48cC10YWJsZSBbdmFsdWVdPVwibEd1YXJhbnRlZVRva2Vuc1wiIFtyZXNwb25zaXZlXT1cInRydWVcIj5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcblx0XHQ8dHIgY2xhc3M9XCJ0ZXh0LWFsaWduLWNlbnRlclwiPlxyXG5cdFx0XHQ8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWNlbnRlclwiIHdpZHRoPVwiNDAlXCI+Tm9tYnJlPC90aD5cclxuXHRcdFx0PHRoIGNsYXNzPVwidGV4dC1hbGlnbi1jZW50ZXJcIj5Gb3JtdWxhPC90aD5cclxuXHRcdFx0PHRoIGNsYXNzPVwidGV4dC1hbGlnbi1jZW50ZXJcIj5DcmVhZG88L3RoPlxyXG5cdFx0XHQ8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWNlbnRlclwiPk1vZGlmaWNhZG88L3RoPlxyXG5cdFx0XHQ8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWNlbnRlclwiPkFjY2lvbmVzPC90aD5cclxuXHRcdDwvdHI+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC10b2tlbj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cImNvcHlNZXNzYWdlKGxhYmVsR3VhcmFudGVlKHRva2VuKSlcIlxyXG5cdFx0XHRcdFx0c3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDhweDtcIlxyXG5cdFx0XHRcdFx0dGl0bGU9XCJ7eyBsYWJlbEd1YXJhbnRlZSh0b2tlbikgfX1cIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtY2xpcGJvYXJkXCI+PC9zcGFuPlxyXG5cdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdHt7IHRva2VuLm5hbWUgfX1cclxuXHRcdFx0PC90ZD5cclxuXHRcdFx0PHRkIGNsYXNzPVwiY3V0LWxpbmVcIj57eyB0b2tlbi5mb3JtdWxhIH19PC90ZD5cclxuXHRcdFx0PHRkPnt7IHRva2VuLmNyZWF0ZWRBdCB8IGRhdGU6ICdkZCBNTU0geXl5eScgfCBsb3dlcmNhc2UgfX08L3RkPlxyXG5cdFx0XHQ8dGQ+e3sgdG9rZW4ubW9kaWZpZWRBdCB8IGRhdGU6ICdkZCBNTU0geXl5eScgfCBsb3dlcmNhc2UgfX08L3RkPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiIHJvbGU9XCJncm91cFwiPlxyXG5cdFx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0XHR0eXBlPVwiYnV0dG9uXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiaW5pdEZvcm0odG9rZW4pXCJcclxuXHRcdFx0XHRcdFx0cGxpQXV0aG9yaXR5RGlyZWN0aXZlXHJcblx0XHRcdFx0XHRcdFtleHRlcm5hbEFsbG93ZWRdPVwiZmFsc2VcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRFZGl0YXJcclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0XHR0eXBlPVwiYnV0dG9uXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9nZ2xlXCJcclxuXHRcdFx0XHRcdFx0ZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcblx0XHRcdFx0XHRcdGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0YXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJjYXJldFwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PHVsIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiPlxyXG5cdFx0XHRcdFx0XHQ8bGk+XHJcblx0XHRcdFx0XHRcdFx0PGFcclxuXHRcdFx0XHRcdFx0XHRcdGhyZWY9XCJKYXZhc2NyaXB0OjtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cImRlbGV0ZSh0b2tlbilcIlxyXG5cdFx0XHRcdFx0XHRcdFx0cGxpQXV0aG9yaXR5RGlyZWN0aXZlXHJcblx0XHRcdFx0XHRcdFx0XHRbYXV0aG9yaXRpZXNdPVwiW3AoJ1JPTEVfVE9LRU5TX0VMSU1JTkFSJyldXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtleHRlcm5hbEFsbG93ZWRdPVwiZmFsc2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0PkVsaW1pbmFyPC9hXHJcblx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHQ8L2xpPlxyXG5cdFx0XHRcdFx0PC91bD5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC90ZD5cclxuXHRcdDwvdHI+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuPC9wLXRhYmxlPlxyXG48ZGl2IGNsYXNzPVwidGV4dC1hbGlnbi1yaWdodFwiIHN0eWxlPVwicGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1wiPlxyXG5cdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImluaXRGb3JtKG51bGwpXCI+XHJcblx0XHRBZ3JlZ2FyIG51ZXZvXHJcblx0PC9idXR0b24+XHJcbjwvZGl2PlxyXG48cC1kaWFsb2dcclxuXHRoZWFkZXI9XCJUb2tlbiBHYXJhbnRpYXNcIlxyXG5cdFsodmlzaWJsZSldPVwic2hvd01vZGFsXCJcclxuXHRbbW9kYWxdPVwidHJ1ZVwiXHJcblx0KG9uSGlkZSk9XCJvbkNsb3NlTW9kYWwoKVwiXHJcblx0W2NvbnRlbnRTdHlsZV09XCJ7XHJcblx0XHR3aWR0aDogJzQwMHB4JyxcclxuXHRcdCdvdmVyZmxvdy15JzogJ2F1dG8nLFxyXG5cdFx0J21pbi1oZWlnaHQnOiAnNTAwcHgnLFxyXG5cdFx0J21heC1oZWlnaHQnOiAnNTAwcHgnLFxyXG5cdFx0J3RleHQtYWxpZ24nOiAnbGVmdCdcclxuXHR9XCJcclxuXHRoZWlnaHQ9XCI1MDBweFwiXHJcblx0d2lkdGg9XCI1MDBweFwiXHJcblx0ZGlzbWlzc2FibGVNYXNrPVwidHJ1ZVwiXHJcbj5cclxuXHQ8Zm9ybSBbZm9ybUdyb3VwXT1cImZybVRva2VuXCIgKG5nU3VibWl0KT1cInNhdmUoKVwiICpuZ0lmPVwidG9rZW5TZWxlY3RlZFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZC0xMiBjb2wtbGctMTJcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByZXF1aXJlZFwiPlxyXG5cdFx0XHRcdFx0PGxhYmVsIGZvcj1cIm5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPk5vbWJyZTwvbGFiZWw+XHJcblx0XHRcdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHRcdFx0dHlwZT1cImlucHV0XCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0XHRuYW1lPVwibmFtZVwiXHJcblx0XHRcdFx0XHRcdGlkPVwibmFtZVwiXHJcblx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwiTm9tYnJlXCJcclxuXHRcdFx0XHRcdFx0Zm9ybUNvbnRyb2xOYW1lPVwiY29udHJvbE5hbWVcIlxyXG5cdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInRva2VuU2VsZWN0ZWQubmFtZVwiXHJcblx0XHRcdFx0XHQvPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1lcnJvclwiPlxyXG5cdFx0XHRcdFx0XHQ8c21hbGwgKm5nSWY9XCJoYXNFcnJvcihjb250cm9sTmFtZSwgJ3JlcXVpcmVkJylcIlxyXG5cdFx0XHRcdFx0XHRcdD5FbCBub21icmUgZXMgcmVxdWVyaWRvPC9zbWFsbFxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG5cdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+TGxhdmU6IDwvbGFiZWw+XHJcblx0XHRcdFx0XHQ8cCBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkOyBtYXJnaW4tYm90dG9tOiAyNXB4O1wiPlxyXG5cdFx0XHRcdFx0XHR7eyByZXNvbHZlS2V5Q2FsY3VsYXRlZFRva2VuKCkgfX1cclxuXHRcdFx0XHRcdDwvcD5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByZXF1aXJlZFwiPlxyXG5cdFx0XHRcdFx0PGxhYmVsIGZvcj1cImZvcm11bGFcIiBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPkZvcm11bGE8L2xhYmVsPlxyXG5cdFx0XHRcdFx0PHRleHRhcmVhXHJcblx0XHRcdFx0XHRcdHJvd3M9XCIzXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0XHRuYW1lPVwiZm9ybXVsYVwiXHJcblx0XHRcdFx0XHRcdGlkPVwiZm9ybXVsYVwiXHJcblx0XHRcdFx0XHRcdGZvcm1Db250cm9sTmFtZT1cImNvbnRyb2xGb3JtdWxhXCJcclxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJ0b2tlblNlbGVjdGVkLmZvcm11bGFcIlxyXG5cdFx0XHRcdFx0PjwvdGV4dGFyZWE+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLWVycm9yXCI+XHJcblx0XHRcdFx0XHRcdDxzbWFsbCAqbmdJZj1cImhhc0Vycm9yKGNvbnRyb2xGb3JtdWxhLCAncmVxdWlyZWQnKVwiXHJcblx0XHRcdFx0XHRcdFx0PkxhIGbDs3JtdWxhIGVzIHJlcXVlcmlkYTwvc21hbGxcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciB0ZXh0LWFsaWduLXJpZ2h0XCI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DbG9zZU1vZGFsKClcIiBjbGFzcz1cImJ0biBidG4tbGlua1wiPlxyXG5cdFx0XHRcdFx0XHRDYW5jZWxhclxyXG5cdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiPlxyXG5cdFx0XHRcdFx0XHRHdWFyZGFyXHJcblx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Zvcm0+XHJcbjwvcC1kaWFsb2c+XHJcbiJdfQ==
@@ -1,108 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { PliCnfSnapshotToken, UtilString } from "ng-pli-util";
3
- import { CommonListsComponent } from "../../common.lists.component";
4
- import { TokenService } from "../../../services/token.service";
5
- import { UntypedFormControl, UntypedFormGroup, Validators } from "@angular/forms";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../services/common.service";
8
- import * as i2 from "ngx-toastr";
9
- import * as i3 from "../../../services/pli-cnf-snapshot-token.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@angular/forms";
12
- import * as i6 from "primeng/api";
13
- import * as i7 from "primeng/table";
14
- import * as i8 from "primeng/dialog";
15
- import * as i9 from "ng-pli-util";
16
- export class SnapshotTokenComponent extends CommonListsComponent {
17
- constructor(cdRef, commonService, toastrService, tokenService) {
18
- super(commonService, cdRef);
19
- this.cdRef = cdRef;
20
- this.commonService = commonService;
21
- this.toastrService = toastrService;
22
- this.tokenService = tokenService;
23
- }
24
- /** Tet the label to calculated tokens */
25
- labelSnapshot(token) {
26
- return '${' + TokenService.getKeySnapshot(token) + '}';
27
- }
28
- async ngOnInit() {
29
- super.ngOnInit();
30
- this.getTokens();
31
- this.types = await this.tokenService.getAllType().toPromise();
32
- }
33
- initForm(tokenSelected) {
34
- this.tokenSelected =
35
- tokenSelected == null
36
- ? new PliCnfSnapshotToken()
37
- : Object.assign(new PliCnfSnapshotToken(), JSON.parse(JSON.stringify(tokenSelected)));
38
- if (!this.tokenSelected.promCodigo) {
39
- this.tokenSelected.promCodigo = this.promCodigo;
40
- }
41
- this.controlName = new UntypedFormControl(this.tokenSelected.name, Validators.required);
42
- this.controlFormula = new UntypedFormControl(this.tokenSelected.formula, Validators.required);
43
- this.controlType = new UntypedFormControl(this.tokenSelected.type, Validators.required);
44
- this.frmToken = new UntypedFormGroup({
45
- controlName: this.controlName,
46
- controlFormula: this.controlFormula,
47
- controlType: this.controlType
48
- });
49
- this.showModal = true;
50
- }
51
- /** It deletes a sponsor */
52
- delete(token) {
53
- if (confirm('¿Está seguro que desea eliminar el token ' + token.name + '?')) {
54
- this.tokenService.delete(token.id).subscribe((result) => {
55
- this.toastrService.success('El token fué eliminada exitosamente');
56
- this.getTokens();
57
- }, (error) => {
58
- this.toastrService.error('Error al intentar eliminar el token');
59
- });
60
- }
61
- }
62
- getTokens() {
63
- this.tokenService.getAllByPromCode(this.promCodigo).subscribe((lToken) => {
64
- this.tokens = lToken;
65
- }, (error) => {
66
- console.log('Error getTokenCalculated -getListByPromCodigo', error);
67
- this.toastrService.error('Error el formulario');
68
- });
69
- }
70
- resolveKeyCalculatedToken() {
71
- return UtilString.replaceAccentSpacesOthers(this.tokenSelected.name);
72
- }
73
- onCloseModal() {
74
- this.showModal = false;
75
- }
76
- save() {
77
- if (this.isFormValid(this.frmToken) && this.isValid()) {
78
- this.tokenService.save(this.tokenSelected).subscribe((tokenSave) => {
79
- this.toastrService.success('Se ha guardado exitosamente ', 'Guardado exitoso!');
80
- this.tokenSelected = null;
81
- this.getTokens();
82
- this.onCloseModal();
83
- }, (error) => {
84
- console.error(error);
85
- this.toastrService.error('Error al intentar guardar el token', 'Error!');
86
- });
87
- }
88
- }
89
- isValid() {
90
- const token = this.tokens.find(token => UtilString.replaceAccentSpacesOthers(token.name) ===
91
- UtilString.replaceAccentSpacesOthers(this.tokenSelected.name) &&
92
- (!this.tokenSelected.id || this.tokenSelected.id !== token.id));
93
- if (token) {
94
- this.toastrService.error('El token ' + token.name + ' ya existe', 'Alerta!');
95
- return false;
96
- }
97
- return true;
98
- }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SnapshotTokenComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CommonService }, { token: i2.ToastrService }, { token: i3.PliCnfSnapshotTokenServices }], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SnapshotTokenComponent, selector: "pli-snapshot-token", inputs: { promCodigo: "promCodigo" }, usesInheritance: true, ngImport: i0, template: "<h4 class=\"no-margin-top\">\r\n Tokens Snapshot\r\n</h4>\r\n<p-table [value]=\"tokens\" [responsive]=\"true\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"text-align-center\">\r\n <th class=\"text-align-center\" width=\"40%\">Nombre</th>\r\n <th class=\"text-align-center\">Formula</th>\r\n <th class=\"text-align-center\">Tipo</th>\r\n <th class=\"text-align-center\">Creado</th>\r\n <th class=\"text-align-center\">Modificado</th>\r\n <th class=\"text-align-center\">Acciones</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-token>\r\n <tr>\r\n <td>\r\n <button\r\n type=\"button\"\r\n (click)=\"copyMessage(labelSnapshot(token))\"\r\n style=\"margin-right: 8px;\"\r\n title=\"{{ labelSnapshot(token) }}\"\r\n >\r\n <span class=\"fa fa-clipboard\"></span>\r\n </button>\r\n {{ token.name }}\r\n </td>\r\n <td class=\"cut-line\">{{ token.formula }}</td>\r\n <td class=\"cut-line\">{{ token.type.name }}</td>\r\n <td>{{ token.createdAt | date: 'dd MMM yyyy' | lowercase }}</td>\r\n <td>{{ token.modifiedAt | date: 'dd MMM yyyy' | lowercase }}</td>\r\n <td>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-default\"\r\n (click)=\"initForm(token)\"\r\n pliAuthorityDirective\r\n [externalAllowed]=\"false\"\r\n >\r\n Editar\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-default dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <span class=\"caret\"></span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a\r\n href=\"Javascript:;\"\r\n (click)=\"delete(token)\"\r\n pliAuthorityDirective\r\n [authorities]=\"[p('ROLE_TOKENS_ELIMINAR')]\"\r\n [externalAllowed]=\"false\"\r\n >Eliminar</a\r\n >\r\n </li>\r\n </ul>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n<div class=\"text-align-right\" style=\"padding: .75rem 1.25rem;\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n (click)=\"initForm(null)\"\r\n >\r\n Agregar nuevo\r\n </button>\r\n</div>\r\n\r\n<p-dialog\r\n header=\"Snapshot Token\"\r\n [(visible)]=\"showModal\"\r\n [modal]=\"true\"\r\n (onHide)=\"onCloseModal()\"\r\n [contentStyle]=\"{\r\n\t\twidth: '400px',\r\n\t\t'overflow-y': 'auto',\r\n\t\t'min-height': '500px',\r\n\t\t'max-height': '500px',\r\n\t\t'text-align': 'left'\r\n\t}\"\r\n height=\"500px\"\r\n width=\"400px\"\r\n dismissableMask=\"true\"\r\n>\r\n <form [formGroup]=\"frmToken\" (ngSubmit)=\"save()\" *ngIf=\"tokenSelected\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 col-md-12\">\r\n <div class=\"form-group required\">\r\n <label for=\"name\" class=\"form-control-label\">Nombre</label>\r\n <input\r\n type=\"input\"\r\n class=\"form-control\"\r\n name=\"name\"\r\n id=\"name\"\r\n placeholder=\"Nombre\"\r\n formControlName=\"controlName\"\r\n [(ngModel)]=\"tokenSelected.name\"/>\r\n <div class=\"form-control-error\">\r\n <small *ngIf=\"hasError(controlName, 'required')\">Nombre es requerido</small>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-12 col-md-12\">\r\n <div class=\"form-group required\">\r\n <label for=\"type\" class=\"form-control-label\">Tipo</label>\r\n <select\r\n name=\"type\"\r\n id=\"type\"\r\n class=\"form-control\"\r\n formControlName=\"controlType\"\r\n [(ngModel)]=\"tokenSelected.type.id\">\r\n <option value=\"\">-- Seleccione opci\u00F3n</option>\r\n <option *ngFor=\"let type of types\" [value]=\"type.id\">{{ type.name }}</option>\r\n </select>\r\n <div class=\"form-control-error\">\r\n <small *ngIf=\"hasError(controlType, 'required')\">Tipo de token requerido</small>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-12 col-md-12\">\r\n <div class=\"form-group required\">\r\n <label class=\"form-control-label\">Llave:</label>&nbsp;&nbsp;\r\n <span style=\"font-weight: bold;\"> {{resolveKeyCalculatedToken()}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-12 col-md-12\">\r\n <div class=\"form-group required\">\r\n <label for=\"formula\" class=\"form-control-label\"\r\n >Formula</label\r\n >\r\n <textarea\r\n cols=\"150\"\r\n rows=\"4\"\r\n class=\"form-control\"\r\n name=\"formula\"\r\n id=\"formula\"\r\n formControlName=\"controlFormula\"\r\n [(ngModel)]=\"tokenSelected.formula\"\r\n ></textarea>\r\n <div class=\"form-control-error\">\r\n <small *ngIf=\"hasError(controlFormula, 'required')\"\r\n >F\u00F3rmula es requerida</small\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-footer text-align-right\">\r\n <button type=\"button\" (click)=\"onCloseModal()\" class=\"btn btn-link\">\r\n Cancelar\r\n </button>\r\n <button\r\n type=\"submit\"\r\n class=\"btn btn-success\"\r\n >\r\n Guardar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</p-dialog>\r\n\r\n\r\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i7.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i9.AuthorityDirectiveDirective, selector: "[pliAuthorityDirective]", inputs: ["authorities", "patCodigo", "externalAllowed"] }, { kind: "pipe", type: i4.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i4.DatePipe, name: "date" }] }); }
101
- }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SnapshotTokenComponent, decorators: [{
103
- type: Component,
104
- args: [{ selector: 'pli-snapshot-token', template: "<h4 class=\"no-margin-top\">\r\n Tokens Snapshot\r\n</h4>\r\n<p-table [value]=\"tokens\" [responsive]=\"true\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"text-align-center\">\r\n <th class=\"text-align-center\" width=\"40%\">Nombre</th>\r\n <th class=\"text-align-center\">Formula</th>\r\n <th class=\"text-align-center\">Tipo</th>\r\n <th class=\"text-align-center\">Creado</th>\r\n <th class=\"text-align-center\">Modificado</th>\r\n <th class=\"text-align-center\">Acciones</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-token>\r\n <tr>\r\n <td>\r\n <button\r\n type=\"button\"\r\n (click)=\"copyMessage(labelSnapshot(token))\"\r\n style=\"margin-right: 8px;\"\r\n title=\"{{ labelSnapshot(token) }}\"\r\n >\r\n <span class=\"fa fa-clipboard\"></span>\r\n </button>\r\n {{ token.name }}\r\n </td>\r\n <td class=\"cut-line\">{{ token.formula }}</td>\r\n <td class=\"cut-line\">{{ token.type.name }}</td>\r\n <td>{{ token.createdAt | date: 'dd MMM yyyy' | lowercase }}</td>\r\n <td>{{ token.modifiedAt | date: 'dd MMM yyyy' | lowercase }}</td>\r\n <td>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-default\"\r\n (click)=\"initForm(token)\"\r\n pliAuthorityDirective\r\n [externalAllowed]=\"false\"\r\n >\r\n Editar\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-default dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <span class=\"caret\"></span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a\r\n href=\"Javascript:;\"\r\n (click)=\"delete(token)\"\r\n pliAuthorityDirective\r\n [authorities]=\"[p('ROLE_TOKENS_ELIMINAR')]\"\r\n [externalAllowed]=\"false\"\r\n >Eliminar</a\r\n >\r\n </li>\r\n </ul>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n<div class=\"text-align-right\" style=\"padding: .75rem 1.25rem;\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n (click)=\"initForm(null)\"\r\n >\r\n Agregar nuevo\r\n </button>\r\n</div>\r\n\r\n<p-dialog\r\n header=\"Snapshot Token\"\r\n [(visible)]=\"showModal\"\r\n [modal]=\"true\"\r\n (onHide)=\"onCloseModal()\"\r\n [contentStyle]=\"{\r\n\t\twidth: '400px',\r\n\t\t'overflow-y': 'auto',\r\n\t\t'min-height': '500px',\r\n\t\t'max-height': '500px',\r\n\t\t'text-align': 'left'\r\n\t}\"\r\n height=\"500px\"\r\n width=\"400px\"\r\n dismissableMask=\"true\"\r\n>\r\n <form [formGroup]=\"frmToken\" (ngSubmit)=\"save()\" *ngIf=\"tokenSelected\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 col-md-12\">\r\n <div class=\"form-group required\">\r\n <label for=\"name\" class=\"form-control-label\">Nombre</label>\r\n <input\r\n type=\"input\"\r\n class=\"form-control\"\r\n name=\"name\"\r\n id=\"name\"\r\n placeholder=\"Nombre\"\r\n formControlName=\"controlName\"\r\n [(ngModel)]=\"tokenSelected.name\"/>\r\n <div class=\"form-control-error\">\r\n <small *ngIf=\"hasError(controlName, 'required')\">Nombre es requerido</small>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-12 col-md-12\">\r\n <div class=\"form-group required\">\r\n <label for=\"type\" class=\"form-control-label\">Tipo</label>\r\n <select\r\n name=\"type\"\r\n id=\"type\"\r\n class=\"form-control\"\r\n formControlName=\"controlType\"\r\n [(ngModel)]=\"tokenSelected.type.id\">\r\n <option value=\"\">-- Seleccione opci\u00F3n</option>\r\n <option *ngFor=\"let type of types\" [value]=\"type.id\">{{ type.name }}</option>\r\n </select>\r\n <div class=\"form-control-error\">\r\n <small *ngIf=\"hasError(controlType, 'required')\">Tipo de token requerido</small>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-12 col-md-12\">\r\n <div class=\"form-group required\">\r\n <label class=\"form-control-label\">Llave:</label>&nbsp;&nbsp;\r\n <span style=\"font-weight: bold;\"> {{resolveKeyCalculatedToken()}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-12 col-md-12\">\r\n <div class=\"form-group required\">\r\n <label for=\"formula\" class=\"form-control-label\"\r\n >Formula</label\r\n >\r\n <textarea\r\n cols=\"150\"\r\n rows=\"4\"\r\n class=\"form-control\"\r\n name=\"formula\"\r\n id=\"formula\"\r\n formControlName=\"controlFormula\"\r\n [(ngModel)]=\"tokenSelected.formula\"\r\n ></textarea>\r\n <div class=\"form-control-error\">\r\n <small *ngIf=\"hasError(controlFormula, 'required')\"\r\n >F\u00F3rmula es requerida</small\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-footer text-align-right\">\r\n <button type=\"button\" (click)=\"onCloseModal()\" class=\"btn btn-link\">\r\n Cancelar\r\n </button>\r\n <button\r\n type=\"submit\"\r\n class=\"btn btn-success\"\r\n >\r\n Guardar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</p-dialog>\r\n\r\n\r\n" }]
105
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.CommonService }, { type: i2.ToastrService }, { type: i3.PliCnfSnapshotTokenServices }], propDecorators: { promCodigo: [{
106
- type: Input
107
- }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtdG9rZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24tdG9rZW4vc25hcHNob3QtdG9rZW4vc25hcHNob3QtdG9rZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24tdG9rZW4vc25hcHNob3QtdG9rZW4vc25hcHNob3QtdG9rZW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBQyxtQkFBbUIsRUFBNEIsVUFBVSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRWxFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBUWhGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxvQkFBb0I7SUFhOUQsWUFBc0IsS0FBd0IsRUFDeEIsYUFBNEIsRUFDOUIsYUFBNEIsRUFDNUIsWUFBeUM7UUFDM0QsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUpSLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUE2QjtJQUU3RCxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLGFB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QUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFHLEtBQUssRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQ3RCLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksRUFDdkMsU0FBUyxDQUNWLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBcEhVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHVIQ2JuQyxncU1BZ0xBOzs0RkRuS2Esc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLG9CQUFvQjt3TEFLckIsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UGxpQ25mU25hcHNob3RUb2tlbiwgUGxpQ25mVFNuYXBzaG90VG9rZW5UeXBlLCBVdGlsU3RyaW5nfSBmcm9tIFwibmctcGxpLXV0aWxcIjtcclxuaW1wb3J0IHtDb21tb25MaXN0c0NvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2NvbW1vbi5saXN0cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtDb21tb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUb2tlblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy90b2tlbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtUb2FzdHJTZXJ2aWNlfSBmcm9tIFwibmd4LXRvYXN0clwiO1xyXG5pbXBvcnQge1BsaUNuZlNuYXBzaG90VG9rZW5TZXJ2aWNlc30gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3BsaS1jbmYtc25hcHNob3QtdG9rZW4uc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwbGktc25hcHNob3QtdG9rZW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbmFwc2hvdC10b2tlbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNuYXBzaG90VG9rZW5Db21wb25lbnQgZXh0ZW5kcyBDb21tb25MaXN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHByb21Db2RpZ286IG51bWJlcjtcclxuXHJcbiAgc2hvd01vZGFsOiBib29sZWFuO1xyXG4gIHRva2VuczogUGxpQ25mU25hcHNob3RUb2tlbltdO1xyXG4gIHR5cGVzOiBQbGlDbmZUU25hcHNob3RUb2tlblR5cGVbXTtcclxuICB0b2tlblNlbGVjdGVkOiBQbGlDbmZTbmFwc2hvdFRva2VuO1xyXG4gIGZybVRva2VuOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIGNvbnRyb2xOYW1lOiBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgY29udHJvbEZvcm11bGE6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuICBjb250cm9sVHlwZTogVW50eXBlZEZvcm1Db250cm9sO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHRva2VuU2VydmljZTogUGxpQ25mU25hcHNob3RUb2tlblNlcnZpY2VzKSB7XHJcbiAgICBzdXBlcihjb21tb25TZXJ2aWNlLCBjZFJlZik7XHJcbiAgfVxyXG5cclxuICAvKiogVGV0IHRoZSBsYWJlbCB0byBjYWxjdWxhdGVkIHRva2VucyAqL1xyXG4gIGxhYmVsU25hcHNob3QodG9rZW46IFBsaUNuZlNuYXBzaG90VG9rZW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICckeycgKyBUb2tlblNlcnZpY2UuZ2V0S2V5U25hcHNob3QodG9rZW4pICsgJ30nO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5nZXRUb2tlbnMoKTtcclxuICAgIHRoaXMudHlwZXMgPSBhd2FpdCB0aGlzLnRva2VuU2VydmljZS5nZXRBbGxUeXBlKCkudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBpbml0Rm9ybSh0b2tlblNlbGVjdGVkOiBQbGlDbmZTbmFwc2hvdFRva2VuKSB7XHJcbiAgICB0aGlzLnRva2VuU2VsZWN0ZWQgPVxyXG4gICAgICB0b2tlblNlbGVjdGVkID09IG51bGxcclxuICAgICAgICA/IG5ldyBQbGlDbmZTbmFwc2hvdFRva2VuKClcclxuICAgICAgICA6IE9iamVjdC5hc3NpZ24obmV3IFBsaUNuZlNuYXBzaG90VG9rZW4oKSwgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0b2tlblNlbGVjdGVkKSkpO1xyXG4gICAgaWYgKCF0aGlzLnRva2VuU2VsZWN0ZWQucHJvbUNvZGlnbykge1xyXG4gICAgICB0aGlzLnRva2VuU2VsZWN0ZWQucHJvbUNvZGlnbyA9IHRoaXMucHJvbUNvZGlnbztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbnRyb2xOYW1lID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnRva2VuU2VsZWN0ZWQubmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB0aGlzLmNvbnRyb2xGb3JtdWxhID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnRva2VuU2VsZWN0ZWQuZm9ybXVsYSwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB0aGlzLmNvbnRyb2xUeXBlID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnRva2VuU2VsZWN0ZWQudHlwZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gICAgdGhpcy5mcm1Ub2tlbiA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgY29udHJvbE5hbWU6IHRoaXMuY29udHJvbE5hbWUsXHJcbiAgICAgIGNvbnRyb2xGb3JtdWxhOiB0aGlzLmNvbnRyb2xGb3JtdWxhLFxyXG4gICAgICBjb250cm9sVHlwZTogdGhpcy5jb250cm9sVHlwZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zaG93TW9kYWwgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIEl0IGRlbGV0ZXMgYSBzcG9uc29yICovXHJcbiAgZGVsZXRlKHRva2VuOiBQbGlDbmZTbmFwc2hvdFRva2VuKSB7XHJcbiAgICBpZiAoY29uZmlybSgnwr9Fc3TDoSBzZWd1cm8gcXVlIGRlc2VhIGVsaW1pbmFyIGVsIHRva2VuICcgKyB0b2tlbi5uYW1lICsgJz8nKSkge1xyXG4gICAgICB0aGlzLnRva2VuU2VydmljZS5kZWxldGUodG9rZW4uaWQpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcygnRWwgdG9rZW4gZnXDqSBlbGltaW5hZGEgZXhpdG9zYW1lbnRlJyk7XHJcbiAgICAgICAgICB0aGlzLmdldFRva2VucygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoJ0Vycm9yIGFsIGludGVudGFyIGVsaW1pbmFyIGVsIHRva2VuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VG9rZW5zKCkge1xyXG4gICAgdGhpcy50b2tlblNlcnZpY2UuZ2V0QWxsQnlQcm9tQ29kZSh0aGlzLnByb21Db2RpZ28pLnN1YnNjcmliZShcclxuICAgICAgKGxUb2tlbjogUGxpQ25mU25hcHNob3RUb2tlbltdKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2tlbnMgPSBsVG9rZW47XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBnZXRUb2tlbkNhbGN1bGF0ZWQgLWdldExpc3RCeVByb21Db2RpZ28nLCBlcnJvcik7XHJcbiAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKCdFcnJvciBlbCBmb3JtdWxhcmlvJyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXNvbHZlS2V5Q2FsY3VsYXRlZFRva2VuKCkge1xyXG4gICAgcmV0dXJuIFV0aWxTdHJpbmcucmVwbGFjZUFjY2VudFNwYWNlc090aGVycyh0aGlzLnRva2VuU2VsZWN0ZWQubmFtZSk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlTW9kYWwoKSB7XHJcbiAgICB0aGlzLnNob3dNb2RhbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICh0aGlzLmlzRm9ybVZhbGlkKHRoaXMuZnJtVG9rZW4pICYmIHRoaXMuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNhdmUodGhpcy50b2tlblNlbGVjdGVkKS5zdWJzY3JpYmUoKHRva2VuU2F2ZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcygnU2UgaGEgZ3VhcmRhZG8gZXhpdG9zYW1lbnRlICcsICdHdWFyZGFkbyBleGl0b3NvIScpO1xyXG4gICAgICAgICAgdGhpcy50b2tlblNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuZ2V0VG9rZW5zKCk7XHJcbiAgICAgICAgICB0aGlzLm9uQ2xvc2VNb2RhbCgpO1xyXG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoJ0Vycm9yIGFsIGludGVudGFyIGd1YXJkYXIgZWwgdG9rZW4nLCAnRXJyb3IhJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNWYWxpZCgpIHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMuZmluZCh0b2tlbiA9PlxyXG4gICAgICBVdGlsU3RyaW5nLnJlcGxhY2VBY2NlbnRTcGFjZXNPdGhlcnModG9rZW4ubmFtZSkgPT09XHJcbiAgICAgIFV0aWxTdHJpbmcucmVwbGFjZUFjY2VudFNwYWNlc090aGVycyh0aGlzLnRva2VuU2VsZWN0ZWQubmFtZSkgJiZcclxuICAgICAgKCF0aGlzLnRva2VuU2VsZWN0ZWQuaWQgfHwgdGhpcy50b2tlblNlbGVjdGVkLmlkICE9PSB0b2tlbi5pZCkpO1xyXG4gICAgaWYodG9rZW4pIHtcclxuICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICdFbCB0b2tlbiAnICsgdG9rZW4ubmFtZSArICcgeWEgZXhpc3RlJyxcclxuICAgICAgICAnQWxlcnRhISdcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiIsIjxoNCBjbGFzcz1cIm5vLW1hcmdpbi10b3BcIj5cclxuICBUb2tlbnMgU25hcHNob3RcclxuPC9oND5cclxuPHAtdGFibGUgW3ZhbHVlXT1cInRva2Vuc1wiIFtyZXNwb25zaXZlXT1cInRydWVcIj5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICA8dHIgY2xhc3M9XCJ0ZXh0LWFsaWduLWNlbnRlclwiPlxyXG4gICAgICA8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWNlbnRlclwiIHdpZHRoPVwiNDAlXCI+Tm9tYnJlPC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwidGV4dC1hbGlnbi1jZW50ZXJcIj5Gb3JtdWxhPC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwidGV4dC1hbGlnbi1jZW50ZXJcIj5UaXBvPC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwidGV4dC1hbGlnbi1jZW50ZXJcIj5DcmVhZG88L3RoPlxyXG4gICAgICA8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWNlbnRlclwiPk1vZGlmaWNhZG88L3RoPlxyXG4gICAgICA8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWNlbnRlclwiPkFjY2lvbmVzPC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC10b2tlbj5cclxuICAgIDx0cj5cclxuICAgICAgPHRkPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNvcHlNZXNzYWdlKGxhYmVsU25hcHNob3QodG9rZW4pKVwiXHJcbiAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogOHB4O1wiXHJcbiAgICAgICAgICB0aXRsZT1cInt7IGxhYmVsU25hcHNob3QodG9rZW4pIH19XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLWNsaXBib2FyZFwiPjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB7eyB0b2tlbi5uYW1lIH19XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cImN1dC1saW5lXCI+e3sgdG9rZW4uZm9ybXVsYSB9fTwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cImN1dC1saW5lXCI+e3sgdG9rZW4udHlwZS5uYW1lIH19PC90ZD5cclxuICAgICAgPHRkPnt7IHRva2VuLmNyZWF0ZWRBdCB8IGRhdGU6ICdkZCBNTU0geXl5eScgfCBsb3dlcmNhc2UgfX08L3RkPlxyXG4gICAgICA8dGQ+e3sgdG9rZW4ubW9kaWZpZWRBdCB8IGRhdGU6ICdkZCBNTU0geXl5eScgfCBsb3dlcmNhc2UgfX08L3RkPlxyXG4gICAgICA8dGQ+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiIHJvbGU9XCJncm91cFwiPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiaW5pdEZvcm0odG9rZW4pXCJcclxuICAgICAgICAgICAgcGxpQXV0aG9yaXR5RGlyZWN0aXZlXHJcbiAgICAgICAgICAgIFtleHRlcm5hbEFsbG93ZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBFZGl0YXJcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJldFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiPlxyXG4gICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgIGhyZWY9XCJKYXZhc2NyaXB0OjtcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZSh0b2tlbilcIlxyXG4gICAgICAgICAgICAgICAgcGxpQXV0aG9yaXR5RGlyZWN0aXZlXHJcbiAgICAgICAgICAgICAgICBbYXV0aG9yaXRpZXNdPVwiW3AoJ1JPTEVfVE9LRU5TX0VMSU1JTkFSJyldXCJcclxuICAgICAgICAgICAgICAgIFtleHRlcm5hbEFsbG93ZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID5FbGltaW5hcjwvYVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC10YWJsZT5cclxuPGRpdiBjbGFzcz1cInRleHQtYWxpZ24tcmlnaHRcIiBzdHlsZT1cInBhZGRpbmc6IC43NXJlbSAxLjI1cmVtO1wiPlxyXG4gIDxidXR0b25cclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgKGNsaWNrKT1cImluaXRGb3JtKG51bGwpXCJcclxuICA+XHJcbiAgICBBZ3JlZ2FyIG51ZXZvXHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG5cclxuPHAtZGlhbG9nXHJcbiAgaGVhZGVyPVwiU25hcHNob3QgVG9rZW5cIlxyXG4gIFsodmlzaWJsZSldPVwic2hvd01vZGFsXCJcclxuICBbbW9kYWxdPVwidHJ1ZVwiXHJcbiAgKG9uSGlkZSk9XCJvbkNsb3NlTW9kYWwoKVwiXHJcbiAgW2NvbnRlbnRTdHlsZV09XCJ7XHJcblx0XHR3aWR0aDogJzQwMHB4JyxcclxuXHRcdCdvdmVyZmxvdy15JzogJ2F1dG8nLFxyXG5cdFx0J21pbi1oZWlnaHQnOiAnNTAwcHgnLFxyXG5cdFx0J21heC1oZWlnaHQnOiAnNTAwcHgnLFxyXG5cdFx0J3RleHQtYWxpZ24nOiAnbGVmdCdcclxuXHR9XCJcclxuICBoZWlnaHQ9XCI1MDBweFwiXHJcbiAgd2lkdGg9XCI0MDBweFwiXHJcbiAgZGlzbWlzc2FibGVNYXNrPVwidHJ1ZVwiXHJcbj5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZybVRva2VuXCIgKG5nU3VibWl0KT1cInNhdmUoKVwiICpuZ0lmPVwidG9rZW5TZWxlY3RlZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcmVxdWlyZWRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+Tm9tYnJlPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJpbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICBpZD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJOb21icmVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0b2tlblNlbGVjdGVkLm5hbWVcIi8+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1lcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiaGFzRXJyb3IoY29udHJvbE5hbWUsICdyZXF1aXJlZCcpXCI+Tm9tYnJlIGVzIHJlcXVlcmlkbzwvc21hbGw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByZXF1aXJlZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0eXBlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIj5UaXBvPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwidHlwZVwiXHJcbiAgICAgICAgICAgICAgICBpZD1cInR5cGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udHJvbFR5cGVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0b2tlblNlbGVjdGVkLnR5cGUuaWRcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj4tLSBTZWxlY2Npb25lIG9wY2nDs248L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgdHlwZXNcIiBbdmFsdWVdPVwidHlwZS5pZFwiPnt7IHR5cGUubmFtZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImhhc0Vycm9yKGNvbnRyb2xUeXBlLCAncmVxdWlyZWQnKVwiPlRpcG8gZGUgdG9rZW4gcmVxdWVyaWRvPC9zbWFsbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+TGxhdmU6PC9sYWJlbD4mbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPiB7e3Jlc29sdmVLZXlDYWxjdWxhdGVkVG9rZW4oKX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcmVxdWlyZWRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZm9ybXVsYVwiIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCJcclxuICAgICAgICAgICAgICA+Rm9ybXVsYTwvbGFiZWxcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICBjb2xzPVwiMTUwXCJcclxuICAgICAgICAgICAgICAgIHJvd3M9XCI0XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJmb3JtdWxhXCJcclxuICAgICAgICAgICAgICAgIGlkPVwiZm9ybXVsYVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb250cm9sRm9ybXVsYVwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRva2VuU2VsZWN0ZWQuZm9ybXVsYVwiXHJcbiAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1lcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiaGFzRXJyb3IoY29udHJvbEZvcm11bGEsICdyZXF1aXJlZCcpXCJcclxuICAgICAgICAgICAgICAgID5Gw7NybXVsYSBlcyByZXF1ZXJpZGE8L3NtYWxsXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIHRleHQtYWxpZ24tcmlnaHRcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsb3NlTW9kYWwoKVwiIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCI+XHJcbiAgICAgICAgICAgIENhbmNlbGFyXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgR3VhcmRhclxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L3AtZGlhbG9nPlxyXG5cclxuXHJcbiJdfQ==
@@ -1,40 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { CommonListsComponent } from './common.lists.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../services/common.service";
5
- export class ConfigurationCommonsComponent extends CommonListsComponent {
6
- constructor(commonService, cdRef) {
7
- super(commonService, cdRef);
8
- this.commonService = commonService;
9
- this.cdRef = cdRef;
10
- /** */
11
- this.fullWidth = false;
12
- }
13
- ngOnInit() {
14
- super.ngOnInit();
15
- if (this.fullWidth) {
16
- const element = document.getElementById('mainContainer');
17
- if (element) {
18
- element.classList.remove('container');
19
- }
20
- }
21
- }
22
- ngOnDestroy() {
23
- if (this.fullWidth) {
24
- const element = document.getElementById('mainContainer');
25
- if (element) {
26
- element.classList.add('container');
27
- }
28
- }
29
- }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationCommonsComponent, deps: [{ token: i1.CommonService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConfigurationCommonsComponent, selector: "app-configuration-commons", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationCommonsComponent, decorators: [{
34
- type: Component,
35
- args: [{
36
- selector: 'app-configuration-commons',
37
- template: ''
38
- }]
39
- }], ctorParameters: () => [{ type: i1.CommonService }, { type: i0.ChangeDetectorRef }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5jb21tb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9jb25maWd1cmF0aW9uLmNvbW1vbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBTWhFLE1BQU0sT0FBZ0IsNkJBQ3JCLFNBQVEsb0JBQW9CO0lBTTVCLFlBQXNCLGFBQTRCLEVBQVksS0FBd0I7UUFDckYsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQURQLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVksVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFIdEYsTUFBTTtRQUNOLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFJM0IsQ0FBQztJQUVELFFBQVE7UUFDUCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN6RCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDRixDQUFDO0lBQ0YsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3pELElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEMsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDOytHQTVCb0IsNkJBQTZCO21HQUE3Qiw2QkFBNkIsd0ZBRnhDLEVBQUU7OzRGQUVTLDZCQUE2QjtrQkFKbEQsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgT25EZXN0cm95LCBDb21wb25lbnQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbkxpc3RzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tb24ubGlzdHMuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWNvbmZpZ3VyYXRpb24tY29tbW9ucycsXHJcblx0dGVtcGxhdGU6ICcnXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb25maWd1cmF0aW9uQ29tbW9uc0NvbXBvbmVudFxyXG5cdGV4dGVuZHMgQ29tbW9uTGlzdHNDb21wb25lbnRcclxuXHRpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XHJcbntcclxuXHQvKiogKi9cclxuXHRmdWxsV2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsIHByb3RlY3RlZCBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHRcdHN1cGVyKGNvbW1vblNlcnZpY2UsIGNkUmVmKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0c3VwZXIubmdPbkluaXQoKTtcclxuXHRcdGlmICh0aGlzLmZ1bGxXaWR0aCkge1xyXG5cdFx0XHRjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5Db250YWluZXInKTtcclxuXHRcdFx0aWYgKGVsZW1lbnQpIHtcclxuXHRcdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2NvbnRhaW5lcicpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdGlmICh0aGlzLmZ1bGxXaWR0aCkge1xyXG5cdFx0XHRjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5Db250YWluZXInKTtcclxuXHRcdFx0aWYgKGVsZW1lbnQpIHtcclxuXHRcdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2NvbnRhaW5lcicpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -1,84 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { DateUtil } from 'ng-pli-util';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../services/common.service";
5
- import * as i2 from "../services/common-info.service";
6
- export class DashboardCommonsComponent {
7
- constructor(commonService, cdRef, commonInfoService) {
8
- this.commonService = commonService;
9
- this.cdRef = cdRef;
10
- this.commonInfoService = commonInfoService;
11
- }
12
- ngOnInit() {
13
- this.lVersionInfo = [];
14
- }
15
- addVersionProjectInfo() {
16
- this.lVersionInfo.push({
17
- name: 'Proyecto Commons',
18
- version: this.commonsVersion,
19
- build: this.commonsBuildTimestamp
20
- });
21
- this.lVersionInfo.push({
22
- name: 'Proyecto Security',
23
- version: this.securityVersion,
24
- build: this.securityBuildTimestamp
25
- });
26
- this.lVersionInfo.push({
27
- name: 'Proyecto Util',
28
- version: this.utilVersion,
29
- build: this.utilBuildTimestamp
30
- });
31
- }
32
- createVersionAndBuildTimeProject(version, buildTimestamp) {
33
- let result = this.createVersionAndBuildTime(version, buildTimestamp);
34
- console.log('VersionAndBuildTime-Project', result);
35
- this.version = result.version;
36
- this.buildTimestamp = result.buildTimes;
37
- }
38
- createVersionAndBuildTimeCommons(version, buildTimestamp) {
39
- let result = this.createVersionAndBuildTime(version, buildTimestamp);
40
- console.log('VersionAndBuildTime-Commons', result);
41
- this.commonsVersion = result.version;
42
- this.commonsBuildTimestamp = result.buildTimes;
43
- }
44
- createVersionAndBuildTimeSecurity(version, buildTimestamp) {
45
- let result = this.createVersionAndBuildTime(version, buildTimestamp);
46
- console.log('VersionAndBuildTime-Security', result);
47
- this.securityVersion = result.version;
48
- this.securityBuildTimestamp = result.buildTimes;
49
- }
50
- createVersionAndBuildTimeUtil(version, buildTimestamp) {
51
- let result = this.createVersionAndBuildTime(version, buildTimestamp);
52
- console.log('VersionAndBuildTime-Util', result);
53
- this.utilVersion = result.version;
54
- this.utilBuildTimestamp = result.buildTimes;
55
- }
56
- createVersionAndBuildTime(showVersion, showBuildTime) {
57
- let version, buildTimes;
58
- version = null;
59
- if (showVersion) {
60
- version = showVersion;
61
- }
62
- buildTimes = null;
63
- if (showBuildTime) {
64
- let momentValue = DateUtil.getMoment(showBuildTime).utcOffset(0, true);
65
- buildTimes = momentValue
66
- .utcOffset(DateUtil.UTC_AMERICA_BOGOTA)
67
- .format('DD MMM YYYY HH:mm');
68
- }
69
- return {
70
- version: version,
71
- buildTimes: buildTimes
72
- };
73
- }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardCommonsComponent, deps: [{ token: i1.CommonService }, { token: i0.ChangeDetectorRef }, { token: i2.CommonInfoService }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DashboardCommonsComponent, selector: "app-dashboard-commons", ngImport: i0, template: '', isInline: true }); }
76
- }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardCommonsComponent, decorators: [{
78
- type: Component,
79
- args: [{
80
- selector: 'app-dashboard-commons',
81
- template: ''
82
- }]
83
- }], ctorParameters: () => [{ type: i1.CommonService }, { type: i0.ChangeDetectorRef }, { type: i2.CommonInfoService }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbW1vbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC5jb21tb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTZCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7O0FBT3ZDLE1BQU0sT0FBZ0IseUJBQXlCO0lBc0I5QyxZQUNXLGFBQTRCLEVBQzVCLEtBQXdCLEVBQ3hCLGlCQUFvQztRQUZwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQzVDLENBQUM7SUFFSixRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELHFCQUFxQjtRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUN0QixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYztZQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtTQUNqQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUN0QixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZTtZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjtTQUNsQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUN0QixJQUFJLEVBQUUsZUFBZTtZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0I7U0FDOUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGdDQUFnQyxDQUFDLE9BQU8sRUFBRSxjQUFjO1FBQ3ZELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxnQ0FBZ0MsQ0FBQyxPQUFPLEVBQUUsY0FBYztRQUN2RCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2hELENBQUM7SUFFRCxpQ0FBaUMsQ0FBQyxPQUFPLEVBQUUsY0FBYztRQUN4RCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2pELENBQUM7SUFFRCw2QkFBNkIsQ0FBQyxPQUFPLEVBQUUsY0FBYztRQUNwRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQzdDLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxXQUFtQixFQUFFLGFBQXFCO1FBQ25FLElBQUksT0FBZSxFQUFFLFVBQWtCLENBQUM7UUFDeEMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNmLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxHQUFHLFdBQVcsQ0FBQztRQUN2QixDQUFDO1FBQ0QsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ25CLElBQUksV0FBVyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2RSxVQUFVLEdBQUcsV0FBVztpQkFDdEIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDdEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU87WUFDTixPQUFPLEVBQUUsT0FBTztZQUNoQixVQUFVLEVBQUUsVUFBVTtTQUN0QixDQUFDO0lBQ0gsQ0FBQzsrR0EvRm9CLHlCQUF5QjttR0FBekIseUJBQXlCLDZEQUZqQyxFQUFFOzs0RkFFTSx5QkFBeUI7a0JBSjlDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0ZVV0aWwgfSBmcm9tICduZy1wbGktdXRpbCc7XHJcbmltcG9ydCB7IENvbW1vbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbW9uLWluZm8uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLWRhc2hib2FyZC1jb21tb25zJyxcclxuICAgIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGFzaGJvYXJkQ29tbW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0LyoqICovXHJcblx0dmVyc2lvbjogc3RyaW5nO1xyXG5cdC8qKiAqL1xyXG5cdGJ1aWxkVGltZXN0YW1wOiBzdHJpbmc7XHJcblx0LyoqICovXHJcblx0Y29tbW9uc1ZlcnNpb246IHN0cmluZztcclxuXHQvKiogKi9cclxuXHRjb21tb25zQnVpbGRUaW1lc3RhbXA6IHN0cmluZztcclxuXHQvKiogKi9cclxuXHRzZWN1cml0eVZlcnNpb246IHN0cmluZztcclxuXHQvKiogKi9cclxuXHRzZWN1cml0eUJ1aWxkVGltZXN0YW1wOiBzdHJpbmc7XHJcblx0LyoqICovXHJcblx0dXRpbFZlcnNpb246IHN0cmluZztcclxuXHQvKiogKi9cclxuXHR1dGlsQnVpbGRUaW1lc3RhbXA6IHN0cmluZztcclxuXHQvKiogKi9cclxuXHRsUHJvcGVydGllczogYW55W107XHJcblx0LyoqICovXHJcblx0bFZlcnNpb25JbmZvOiBhbnlbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcm90ZWN0ZWQgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcclxuXHRcdHByb3RlY3RlZCBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRwcm90ZWN0ZWQgY29tbW9uSW5mb1NlcnZpY2U6IENvbW1vbkluZm9TZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMubFZlcnNpb25JbmZvID0gW107XHJcblx0fVxyXG5cclxuXHRhZGRWZXJzaW9uUHJvamVjdEluZm8oKSB7XHJcblx0XHR0aGlzLmxWZXJzaW9uSW5mby5wdXNoKHtcclxuXHRcdFx0bmFtZTogJ1Byb3llY3RvIENvbW1vbnMnLFxyXG5cdFx0XHR2ZXJzaW9uOiB0aGlzLmNvbW1vbnNWZXJzaW9uLFxyXG5cdFx0XHRidWlsZDogdGhpcy5jb21tb25zQnVpbGRUaW1lc3RhbXBcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5sVmVyc2lvbkluZm8ucHVzaCh7XHJcblx0XHRcdG5hbWU6ICdQcm95ZWN0byBTZWN1cml0eScsXHJcblx0XHRcdHZlcnNpb246IHRoaXMuc2VjdXJpdHlWZXJzaW9uLFxyXG5cdFx0XHRidWlsZDogdGhpcy5zZWN1cml0eUJ1aWxkVGltZXN0YW1wXHJcblx0XHR9KTtcclxuXHRcdHRoaXMubFZlcnNpb25JbmZvLnB1c2goe1xyXG5cdFx0XHRuYW1lOiAnUHJveWVjdG8gVXRpbCcsXHJcblx0XHRcdHZlcnNpb246IHRoaXMudXRpbFZlcnNpb24sXHJcblx0XHRcdGJ1aWxkOiB0aGlzLnV0aWxCdWlsZFRpbWVzdGFtcFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRjcmVhdGVWZXJzaW9uQW5kQnVpbGRUaW1lUHJvamVjdCh2ZXJzaW9uLCBidWlsZFRpbWVzdGFtcCkge1xyXG5cdFx0bGV0IHJlc3VsdCA9IHRoaXMuY3JlYXRlVmVyc2lvbkFuZEJ1aWxkVGltZSh2ZXJzaW9uLCBidWlsZFRpbWVzdGFtcCk7XHJcblx0XHRjb25zb2xlLmxvZygnVmVyc2lvbkFuZEJ1aWxkVGltZS1Qcm9qZWN0JywgcmVzdWx0KTtcclxuXHRcdHRoaXMudmVyc2lvbiA9IHJlc3VsdC52ZXJzaW9uO1xyXG5cdFx0dGhpcy5idWlsZFRpbWVzdGFtcCA9IHJlc3VsdC5idWlsZFRpbWVzO1xyXG5cdH1cclxuXHJcblx0Y3JlYXRlVmVyc2lvbkFuZEJ1aWxkVGltZUNvbW1vbnModmVyc2lvbiwgYnVpbGRUaW1lc3RhbXApIHtcclxuXHRcdGxldCByZXN1bHQgPSB0aGlzLmNyZWF0ZVZlcnNpb25BbmRCdWlsZFRpbWUodmVyc2lvbiwgYnVpbGRUaW1lc3RhbXApO1xyXG5cdFx0Y29uc29sZS5sb2coJ1ZlcnNpb25BbmRCdWlsZFRpbWUtQ29tbW9ucycsIHJlc3VsdCk7XHJcblx0XHR0aGlzLmNvbW1vbnNWZXJzaW9uID0gcmVzdWx0LnZlcnNpb247XHJcblx0XHR0aGlzLmNvbW1vbnNCdWlsZFRpbWVzdGFtcCA9IHJlc3VsdC5idWlsZFRpbWVzO1xyXG5cdH1cclxuXHJcblx0Y3JlYXRlVmVyc2lvbkFuZEJ1aWxkVGltZVNlY3VyaXR5KHZlcnNpb24sIGJ1aWxkVGltZXN0YW1wKSB7XHJcblx0XHRsZXQgcmVzdWx0ID0gdGhpcy5jcmVhdGVWZXJzaW9uQW5kQnVpbGRUaW1lKHZlcnNpb24sIGJ1aWxkVGltZXN0YW1wKTtcclxuXHRcdGNvbnNvbGUubG9nKCdWZXJzaW9uQW5kQnVpbGRUaW1lLVNlY3VyaXR5JywgcmVzdWx0KTtcclxuXHRcdHRoaXMuc2VjdXJpdHlWZXJzaW9uID0gcmVzdWx0LnZlcnNpb247XHJcblx0XHR0aGlzLnNlY3VyaXR5QnVpbGRUaW1lc3RhbXAgPSByZXN1bHQuYnVpbGRUaW1lcztcclxuXHR9XHJcblxyXG5cdGNyZWF0ZVZlcnNpb25BbmRCdWlsZFRpbWVVdGlsKHZlcnNpb24sIGJ1aWxkVGltZXN0YW1wKSB7XHJcblx0XHRsZXQgcmVzdWx0ID0gdGhpcy5jcmVhdGVWZXJzaW9uQW5kQnVpbGRUaW1lKHZlcnNpb24sIGJ1aWxkVGltZXN0YW1wKTtcclxuXHRcdGNvbnNvbGUubG9nKCdWZXJzaW9uQW5kQnVpbGRUaW1lLVV0aWwnLCByZXN1bHQpO1xyXG5cdFx0dGhpcy51dGlsVmVyc2lvbiA9IHJlc3VsdC52ZXJzaW9uO1xyXG5cdFx0dGhpcy51dGlsQnVpbGRUaW1lc3RhbXAgPSByZXN1bHQuYnVpbGRUaW1lcztcclxuXHR9XHJcblxyXG5cdGNyZWF0ZVZlcnNpb25BbmRCdWlsZFRpbWUoc2hvd1ZlcnNpb246IHN0cmluZywgc2hvd0J1aWxkVGltZTogc3RyaW5nKTogYW55IHtcclxuXHRcdGxldCB2ZXJzaW9uOiBzdHJpbmcsIGJ1aWxkVGltZXM6IHN0cmluZztcclxuXHRcdHZlcnNpb24gPSBudWxsO1xyXG5cdFx0aWYgKHNob3dWZXJzaW9uKSB7XHJcblx0XHRcdHZlcnNpb24gPSBzaG93VmVyc2lvbjtcclxuXHRcdH1cclxuXHRcdGJ1aWxkVGltZXMgPSBudWxsO1xyXG5cdFx0aWYgKHNob3dCdWlsZFRpbWUpIHtcclxuXHRcdFx0bGV0IG1vbWVudFZhbHVlID0gRGF0ZVV0aWwuZ2V0TW9tZW50KHNob3dCdWlsZFRpbWUpLnV0Y09mZnNldCgwLCB0cnVlKTtcclxuXHRcdFx0YnVpbGRUaW1lcyA9IG1vbWVudFZhbHVlXHJcblx0XHRcdFx0LnV0Y09mZnNldChEYXRlVXRpbC5VVENfQU1FUklDQV9CT0dPVEEpXHJcblx0XHRcdFx0LmZvcm1hdCgnREQgTU1NIFlZWVkgSEg6bW0nKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB7XHJcblx0XHRcdHZlcnNpb246IHZlcnNpb24sXHJcblx0XHRcdGJ1aWxkVGltZXM6IGJ1aWxkVGltZXNcclxuXHRcdH07XHJcblx0fVxyXG59XHJcbiJdfQ==