ng-pli-commons 0.0.1908 → 1.0.1

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 (471) hide show
  1. package/esm2022/lib/components/backoffice.commons.component.mjs +40 -0
  2. package/esm2022/lib/components/common.lists.component.mjs +194 -0
  3. package/{esm2020 → esm2022}/lib/components/configuration-token/configuration-token-subject.service.mjs +23 -23
  4. package/esm2022/lib/components/configuration-token/configuration-token.component.mjs +665 -0
  5. package/esm2022/lib/components/configuration-token/guarantee-token/guarantee-token.component.mjs +103 -0
  6. package/esm2022/lib/components/configuration-token/snapshot-token/snapshot-token.component.mjs +108 -0
  7. package/esm2022/lib/components/configuration.commons.component.mjs +40 -0
  8. package/{esm2020 → esm2022}/lib/components/dashboard.commons.component.mjs +84 -84
  9. package/esm2022/lib/components/dynamic-filter/dynamic-filter.component.mjs +131 -0
  10. package/esm2022/lib/components/excel-to-json/excel-to-json.component.mjs +54 -0
  11. package/esm2022/lib/components/frontoffice.commons.component.mjs +86 -0
  12. package/esm2022/lib/components/pdf-analyzer/pdf-analyzer.component.mjs +162 -0
  13. package/{esm2020 → esm2022}/lib/components/pdf-config/pdf-config.component.mjs +170 -170
  14. package/esm2022/lib/components/pdf-generator/pdf-generator.component.mjs +223 -0
  15. package/esm2022/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.mjs +307 -0
  16. package/esm2022/lib/components/pdf-visualizer/pdf-visualizer.component.mjs +387 -0
  17. package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +92 -0
  18. package/esm2022/lib/components/segmentation-tokens/segmentation-tokens.component.mjs +199 -0
  19. package/esm2022/lib/components/select-ppp/select-ppp.component.mjs +199 -0
  20. package/esm2022/lib/components/show-hide-columns/show-hide-columns-table.component.mjs +116 -0
  21. package/esm2022/lib/components/token/token.component.mjs +1006 -0
  22. package/esm2022/lib/components/tokens-calculator/tokens-calculator.component.mjs +128 -0
  23. package/{esm2020 → esm2022}/lib/directives/currency-colfuturo-formatter.directive.mjs +47 -47
  24. package/{esm2020 → esm2022}/lib/directives/currency-decimal-colfuturo-formatter.directive.mjs +34 -34
  25. package/esm2022/lib/ng-pli-commons.module.mjs +387 -0
  26. package/{esm2020 → esm2022}/lib/ng-pli-commons.service.mjs +14 -14
  27. package/esm2022/lib/pipes/currency-colfuturo.pipe.mjs +35 -0
  28. package/{esm2020 → esm2022}/lib/pipes/currency-decimal-colfuturo.pipe.mjs +36 -36
  29. package/{esm2020 → esm2022}/lib/pipes/currency-print-colfuturo.pipe.mjs +33 -33
  30. package/esm2022/lib/pipes/thousands.pipe.mjs +60 -0
  31. package/{esm2020 → esm2022}/lib/services/application-fill-percentage.service.mjs +30 -30
  32. package/{esm2020 → esm2022}/lib/services/application-tag.service.mjs +56 -56
  33. package/{esm2020 → esm2022}/lib/services/application.service.mjs +247 -247
  34. package/esm2022/lib/services/authentication.service.mjs +133 -0
  35. package/{esm2020 → esm2022}/lib/services/blocked-beneficiary.service.mjs +42 -42
  36. package/esm2022/lib/services/budget-application.service.mjs +265 -0
  37. package/{esm2020 → esm2022}/lib/services/budget-simulation.service.mjs +61 -61
  38. package/esm2022/lib/services/budget.service.mjs +205 -0
  39. package/{esm2020 → esm2022}/lib/services/closure-wallet.service.mjs +39 -39
  40. package/{esm2020 → esm2022}/lib/services/cnf-correspondence-document-manager.service.mjs +39 -39
  41. package/{esm2020 → esm2022}/lib/services/committee-money.service.mjs +44 -44
  42. package/{esm2020 → esm2022}/lib/services/committee-pdf.service.mjs +27 -27
  43. package/{esm2020 → esm2022}/lib/services/committee-snapshot.service.mjs +60 -60
  44. package/{esm2020 → esm2022}/lib/services/common-info.service.mjs +51 -51
  45. package/esm2022/lib/services/common.service.mjs +291 -0
  46. package/esm2022/lib/services/configuration-document.service.mjs +297 -0
  47. package/{esm2020 → esm2022}/lib/services/configuration-minisite.service.mjs +26 -26
  48. package/{esm2020 → esm2022}/lib/services/configuration.service.mjs +53 -53
  49. package/{esm2020 → esm2022}/lib/services/correspondence-document-category.service.mjs +31 -31
  50. package/{esm2020 → esm2022}/lib/services/correspondence-manager.service.mjs +67 -67
  51. package/{esm2020 → esm2022}/lib/services/credit-score.service.mjs +48 -48
  52. package/{esm2020 → esm2022}/lib/services/credit-study.service.mjs +292 -292
  53. package/{esm2020 → esm2022}/lib/services/cube.service.mjs +27 -27
  54. package/{esm2020 → esm2022}/lib/services/data-form-history.service.mjs +25 -25
  55. package/{esm2020 → esm2022}/lib/services/data-form.service.mjs +176 -176
  56. package/{esm2020 → esm2022}/lib/services/data-letter-segmentation.service.mjs +64 -64
  57. package/{esm2020 → esm2022}/lib/services/document-analysis-auto.service.mjs +27 -27
  58. package/{esm2020 → esm2022}/lib/services/document-history.service.mjs +43 -43
  59. package/{esm2020 → esm2022}/lib/services/document-management.service.mjs +57 -57
  60. package/{esm2020 → esm2022}/lib/services/document-validation-attempt.service.mjs +32 -32
  61. package/{esm2020 → esm2022}/lib/services/document.service.mjs +131 -131
  62. package/esm2022/lib/services/documentary.type.service.mjs +69 -0
  63. package/{esm2020 → esm2022}/lib/services/email.service.mjs +30 -30
  64. package/{esm2020 → esm2022}/lib/services/evaluation.service.mjs +181 -181
  65. package/{esm2020 → esm2022}/lib/services/export-excel.service.mjs +32 -32
  66. package/esm2022/lib/services/file.service.mjs +153 -0
  67. package/{esm2020 → esm2022}/lib/services/form.service.mjs +112 -112
  68. package/{esm2020 → esm2022}/lib/services/gic-client-disbursement-metadata.service.mjs +31 -31
  69. package/{esm2020 → esm2022}/lib/services/gic-client.service.mjs +49 -49
  70. package/{esm2020 → esm2022}/lib/services/gic-cnf-bankvision-transaction.service.mjs +31 -31
  71. package/{esm2020 → esm2022}/lib/services/gic-cnf-closing-date.service.mjs +34 -34
  72. package/{esm2020 → esm2022}/lib/services/gic-cnf-maintenance.service.mjs +30 -30
  73. package/{esm2020 → esm2022}/lib/services/gic-collection.service.mjs +53 -53
  74. package/{esm2020 → esm2022}/lib/services/gic-disbursement.service.mjs +39 -39
  75. package/{esm2020 → esm2022}/lib/services/gic-extract.service.mjs +41 -41
  76. package/{esm2020 → esm2022}/lib/services/gic-log.service.mjs +41 -41
  77. package/{esm2020 → esm2022}/lib/services/gic-payment-application.service.mjs +35 -35
  78. package/{esm2020 → esm2022}/lib/services/gic-payment-plan-cube.service.mjs +27 -27
  79. package/{esm2020 → esm2022}/lib/services/gic-payment-plan.service.mjs +32 -32
  80. package/{esm2020 → esm2022}/lib/services/gic-trm.service.mjs +27 -27
  81. package/{esm2020 → esm2022}/lib/services/global.show.task.service.mjs +37 -37
  82. package/{esm2020 → esm2022}/lib/services/guarantee-document.service.mjs +52 -52
  83. package/{esm2020 → esm2022}/lib/services/guarantee-enrollment.service.mjs +37 -37
  84. package/esm2022/lib/services/guarantee.service.mjs +128 -0
  85. package/{esm2020 → esm2022}/lib/services/hash.service.mjs +36 -36
  86. package/{esm2020 → esm2022}/lib/services/import-data.service.mjs +27 -27
  87. package/{esm2020 → esm2022}/lib/services/import-excel-gic.service.mjs +45 -45
  88. package/{esm2020 → esm2022}/lib/services/initial-configuration-gic-parameters.service.mjs +51 -51
  89. package/{esm2020 → esm2022}/lib/services/initial-record.service.mjs +51 -51
  90. package/{esm2020 → esm2022}/lib/services/integration-ado.service.mjs +54 -54
  91. package/{esm2020 → esm2022}/lib/services/interaction-application-user.service.mjs +81 -81
  92. package/{esm2020 → esm2022}/lib/services/interest-adjustment.service.mjs +34 -34
  93. package/esm2022/lib/services/keys-assignation.service.mjs +127 -0
  94. package/{esm2020 → esm2022}/lib/services/legalization.service.mjs +150 -150
  95. package/{esm2020 → esm2022}/lib/services/letter-campaing.service.mjs +49 -49
  96. package/{esm2020 → esm2022}/lib/services/letter-task-mapping.service.mjs +40 -40
  97. package/{esm2020 → esm2022}/lib/services/log.service.mjs +41 -41
  98. package/{esm2020 → esm2022}/lib/services/maintenance.service.mjs +66 -66
  99. package/{esm2020 → esm2022}/lib/services/master-category.service.mjs +66 -66
  100. package/{esm2020 → esm2022}/lib/services/master-program.service.mjs +78 -78
  101. package/{esm2020 → esm2022}/lib/services/master-university.service.mjs +68 -68
  102. package/{esm2020 → esm2022}/lib/services/migration-plis.service.mjs +27 -27
  103. package/{esm2020 → esm2022}/lib/services/migration-survey-queue.service.mjs +24 -24
  104. package/{esm2020 → esm2022}/lib/services/page.service.mjs +38 -38
  105. package/{esm2020 → esm2022}/lib/services/partner-system.service.mjs +30 -30
  106. package/{esm2020 → esm2022}/lib/services/partner.service.mjs +34 -34
  107. package/{esm2020 → esm2022}/lib/services/pdf-analyzer.service.mjs +33 -33
  108. package/{esm2020 → esm2022}/lib/services/people-master.service.mjs +42 -42
  109. package/{esm2020 → esm2022}/lib/services/permission.service.mjs +29 -29
  110. package/{esm2020 → esm2022}/lib/services/pli-cnf-acuity-fields.service.mjs +34 -34
  111. package/{esm2020 → esm2022}/lib/services/pli-cnf-app-card-filter.service.mjs +40 -40
  112. package/{esm2020 → esm2022}/lib/services/pli-cnf-appointment-type.service.mjs +41 -41
  113. package/{esm2020 → esm2022}/lib/services/pli-cnf-budget-program-type.service.mjs +54 -54
  114. package/{esm2020 → esm2022}/lib/services/pli-cnf-budget.service.mjs +31 -31
  115. package/{esm2020 → esm2022}/lib/services/pli-cnf-cloning.service.mjs +27 -27
  116. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee-pdf-config-table-config.service.mjs +47 -47
  117. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee-pdf-gen-status.service.mjs +30 -30
  118. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee-valpro-columns.service.mjs +42 -42
  119. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee-visualization-mode.service.mjs +42 -42
  120. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee.service.mjs +51 -51
  121. package/{esm2020 → esm2022}/lib/services/pli-cnf-config-minisite.service.mjs +90 -90
  122. package/{esm2020 → esm2022}/lib/services/pli-cnf-configuration-credit-study.service.mjs +41 -41
  123. package/{esm2020 → esm2022}/lib/services/pli-cnf-document-management.service.mjs +40 -40
  124. package/{esm2020 → esm2022}/lib/services/pli-cnf-dynamic-keys-assign.service.mjs +52 -52
  125. package/{esm2020 → esm2022}/lib/services/pli-cnf-evaluation-task-mailing.service.mjs +31 -31
  126. package/esm2022/lib/services/pli-cnf-evaluation-task.service.mjs +112 -0
  127. package/{esm2020 → esm2022}/lib/services/pli-cnf-evaluation-template.service.mjs +95 -95
  128. package/{esm2020 → esm2022}/lib/services/pli-cnf-form-edit.service.mjs +68 -68
  129. package/{esm2020 → esm2022}/lib/services/pli-cnf-form-multiaplicacion.service.mjs +46 -46
  130. package/{esm2020 → esm2022}/lib/services/pli-cnf-guarantee-documents-template.service.mjs +40 -40
  131. package/{esm2020 → esm2022}/lib/services/pli-cnf-guarantee-token.service.mjs +42 -42
  132. package/{esm2020 → esm2022}/lib/services/pli-cnf-header.service.mjs +39 -39
  133. package/{esm2020 → esm2022}/lib/services/pli-cnf-indicator.service.mjs +39 -39
  134. package/{esm2020 → esm2022}/lib/services/pli-cnf-information-system.service.mjs +24 -24
  135. package/{esm2020 → esm2022}/lib/services/pli-cnf-interaction.service.mjs +78 -78
  136. package/{esm2020 → esm2022}/lib/services/pli-cnf-letter-template-type.service.mjs +29 -29
  137. package/{esm2020 → esm2022}/lib/services/pli-cnf-letter-template.service.mjs +48 -48
  138. package/{esm2020 → esm2022}/lib/services/pli-cnf-look-and-feel.service.mjs +28 -28
  139. package/{esm2020 → esm2022}/lib/services/pli-cnf-mail.service.mjs +30 -30
  140. package/{esm2020 → esm2022}/lib/services/pli-cnf-menu-form.service.mjs +34 -34
  141. package/{esm2020 → esm2022}/lib/services/pli-cnf-migration-plis-field-budget.service.mjs +33 -33
  142. package/{esm2020 → esm2022}/lib/services/pli-cnf-migration-plis-field.service.mjs +47 -47
  143. package/{esm2020 → esm2022}/lib/services/pli-cnf-migration-status-plis.service.mjs +44 -44
  144. package/{esm2020 → esm2022}/lib/services/pli-cnf-page-section-form.service.mjs +66 -66
  145. package/{esm2020 → esm2022}/lib/services/pli-cnf-page-sub-process.service.mjs +25 -25
  146. package/{esm2020 → esm2022}/lib/services/pli-cnf-pdfs.service.mjs +31 -31
  147. package/{esm2020 → esm2022}/lib/services/pli-cnf-profile-form.service.mjs +40 -40
  148. package/{esm2020 → esm2022}/lib/services/pli-cnf-profile-user.service.mjs +49 -49
  149. package/{esm2020 → esm2022}/lib/services/pli-cnf-project-summary.service.mjs +39 -39
  150. package/{esm2020 → esm2022}/lib/services/pli-cnf-scenario.service.mjs +47 -47
  151. package/{esm2020 → esm2022}/lib/services/pli-cnf-segmentation.service.mjs +72 -72
  152. package/{esm2020 → esm2022}/lib/services/pli-cnf-snapshot-token.service.mjs +42 -42
  153. package/{esm2020 → esm2022}/lib/services/pli-cnf-status-flow-interaction.service.mjs +74 -74
  154. package/{esm2020 → esm2022}/lib/services/pli-cnf-status-flow.service.mjs +56 -56
  155. package/{esm2020 → esm2022}/lib/services/pli-cnf-support-document-category.service.mjs +47 -47
  156. package/{esm2020 → esm2022}/lib/services/pli-cnf-support-document.service.mjs +56 -56
  157. package/{esm2020 → esm2022}/lib/services/pli-cnf-survey-document.service.mjs +37 -37
  158. package/{esm2020 → esm2022}/lib/services/pli-cnf-survey-pdf.service.mjs +34 -34
  159. package/{esm2020 → esm2022}/lib/services/pli-cnf-survey.service.mjs +46 -46
  160. package/{esm2020 → esm2022}/lib/services/pli-cnf-task-group.service.mjs +33 -33
  161. package/{esm2020 → esm2022}/lib/services/pli-cnf-text-category.service.mjs +38 -38
  162. package/{esm2020 → esm2022}/lib/services/pli-cnf-text-option.service.mjs +39 -39
  163. package/{esm2020 → esm2022}/lib/services/pli-cnf-text.service.mjs +62 -62
  164. package/{esm2020 → esm2022}/lib/services/pli-cnf-type-text.service.mjs +45 -45
  165. package/{esm2020 → esm2022}/lib/services/pli-cnf-university-article.service.mjs +39 -39
  166. package/{esm2020 → esm2022}/lib/services/pli-cnf-user-calendar.service.mjs +36 -36
  167. package/{esm2020 → esm2022}/lib/services/pli-cnf-user-workspace.service.mjs +35 -35
  168. package/{esm2020 → esm2022}/lib/services/pli-cnf-valpro-keys.service.mjs +35 -35
  169. package/{esm2020 → esm2022}/lib/services/pli-cnf-workspace-segmentation.service.mjs +31 -31
  170. package/{esm2020 → esm2022}/lib/services/pli-message-type.service.mjs +40 -40
  171. package/{esm2020 → esm2022}/lib/services/pli-multiple-value-filter.service.mjs +39 -39
  172. package/{esm2020 → esm2022}/lib/services/pli-promocion-username.service.mjs +57 -57
  173. package/{esm2020 → esm2022}/lib/services/pli-seg-action-user.service.mjs +37 -37
  174. package/{esm2020 → esm2022}/lib/services/pli-segmentation.service.mjs +130 -130
  175. package/{esm2020 → esm2022}/lib/services/pli-tag-assignment.service.mjs +36 -36
  176. package/{esm2020 → esm2022}/lib/services/pli-tag.service.mjs +55 -55
  177. package/{esm2020 → esm2022}/lib/services/pli-user.service.mjs +51 -51
  178. package/{esm2020 → esm2022}/lib/services/plis-beneficiario.service.mjs +29 -29
  179. package/{esm2020 → esm2022}/lib/services/plis-estatus-change.service.mjs +30 -30
  180. package/esm2022/lib/services/ppp.service.mjs +360 -0
  181. package/{esm2020 → esm2022}/lib/services/profile.service.mjs +60 -60
  182. package/esm2022/lib/services/progress-bar.service.mjs +40 -0
  183. package/{esm2020 → esm2022}/lib/services/promotion-score.service.mjs +44 -44
  184. package/{esm2020 → esm2022}/lib/services/registry-identifier.service.mjs +39 -39
  185. package/{esm2020 → esm2022}/lib/services/return-refund.service.mjs +53 -53
  186. package/esm2022/lib/services/segmentation-tokens.service.mjs +43 -0
  187. package/{esm2020 → esm2022}/lib/services/segmentation-user-service.service.mjs +90 -90
  188. package/{esm2020 → esm2022}/lib/services/segmentation.service.mjs +31 -31
  189. package/esm2022/lib/services/send-application.service.mjs +492 -0
  190. package/{esm2020 → esm2022}/lib/services/sesion-form.service.mjs +31 -31
  191. package/{esm2020 → esm2022}/lib/services/sesion.service.mjs +48 -48
  192. package/{esm2020 → esm2022}/lib/services/spinner.service.mjs +16 -16
  193. package/{esm2020 → esm2022}/lib/services/sponsorship-letter.service.mjs +68 -68
  194. package/{esm2020 → esm2022}/lib/services/status.service.mjs +100 -100
  195. package/{esm2020 → esm2022}/lib/services/summary-budget.service.mjs +24 -24
  196. package/{esm2020 → esm2022}/lib/services/survey-metadata.service.mjs +28 -28
  197. package/{esm2020 → esm2022}/lib/services/survey-queue.service.mjs +24 -24
  198. package/{esm2020 → esm2022}/lib/services/survey.service.mjs +52 -52
  199. package/{esm2020 → esm2022}/lib/services/tasa.cambio.service.mjs +35 -35
  200. package/{esm2020 → esm2022}/lib/services/token-transformation.service.mjs +62 -62
  201. package/esm2022/lib/services/token.service.mjs +1345 -0
  202. package/{esm2020 → esm2022}/lib/services/university.service.mjs +50 -50
  203. package/esm2022/lib/services/upload-documents.service.mjs +60 -0
  204. package/{esm2020 → esm2022}/lib/services/user.service.mjs +28 -28
  205. package/{esm2020 → esm2022}/lib/services/visualization-committee.service.mjs +84 -84
  206. package/esm2022/lib/utils/custom-validator.mjs +95 -0
  207. package/esm2022/lib/utils/form-util.mjs +35 -0
  208. package/esm2022/lib/utils/formio-util.mjs +582 -0
  209. package/{esm2020 → esm2022}/lib/utils/version-commons.mjs +9 -9
  210. package/{esm2020 → esm2022}/ng-pli-commons.mjs +4 -4
  211. package/{esm2020 → esm2022}/public-api.mjs +214 -214
  212. package/{esm2020 → esm2022}/version.mjs +29 -29
  213. package/{fesm2020 → fesm2022}/ng-pli-commons.mjs +16724 -16725
  214. package/fesm2022/ng-pli-commons.mjs.map +1 -0
  215. package/{ng-pli-commons.d.ts → index.d.ts} +5 -5
  216. package/lib/components/backoffice.commons.component.d.ts +15 -15
  217. package/lib/components/common.lists.component.d.ts +61 -61
  218. package/lib/components/configuration-token/configuration-token-subject.service.d.ts +10 -10
  219. package/lib/components/configuration-token/configuration-token.component.d.ts +124 -124
  220. package/lib/components/configuration-token/guarantee-token/guarantee-token.component.d.ts +33 -33
  221. package/lib/components/configuration-token/snapshot-token/snapshot-token.component.d.ts +37 -37
  222. package/lib/components/configuration.commons.component.d.ts +15 -15
  223. package/lib/components/dashboard.commons.component.d.ts +39 -39
  224. package/lib/components/dynamic-filter/dynamic-filter.component.d.ts +50 -50
  225. package/lib/components/excel-to-json/excel-to-json.component.d.ts +12 -12
  226. package/lib/components/frontoffice.commons.component.d.ts +26 -26
  227. package/lib/components/pdf-analyzer/pdf-analyzer.component.d.ts +36 -36
  228. package/lib/components/pdf-config/pdf-config.component.d.ts +78 -78
  229. package/lib/components/pdf-generator/pdf-generator.component.d.ts +69 -69
  230. package/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.d.ts +114 -114
  231. package/lib/components/pdf-visualizer/pdf-visualizer.component.d.ts +147 -147
  232. package/lib/components/progress-bar/progress-bar.component.d.ts +30 -30
  233. package/lib/components/segmentation-tokens/segmentation-tokens.component.d.ts +48 -48
  234. package/lib/components/select-ppp/select-ppp.component.d.ts +42 -42
  235. package/lib/components/show-hide-columns/show-hide-columns-table.component.d.ts +39 -39
  236. package/lib/components/token/token.component.d.ts +99 -99
  237. package/lib/components/tokens-calculator/tokens-calculator.component.d.ts +37 -37
  238. package/lib/directives/currency-colfuturo-formatter.directive.d.ts +14 -14
  239. package/lib/directives/currency-decimal-colfuturo-formatter.directive.d.ts +13 -13
  240. package/lib/ng-pli-commons.module.d.ts +47 -47
  241. package/lib/ng-pli-commons.service.d.ts +6 -6
  242. package/lib/pipes/currency-colfuturo.pipe.d.ts +12 -12
  243. package/lib/pipes/currency-decimal-colfuturo.pipe.d.ts +11 -11
  244. package/lib/pipes/currency-print-colfuturo.pipe.d.ts +11 -11
  245. package/lib/pipes/thousands.pipe.d.ts +9 -9
  246. package/lib/services/application-fill-percentage.service.d.ts +15 -15
  247. package/lib/services/application-tag.service.d.ts +23 -23
  248. package/lib/services/application.service.d.ts +107 -107
  249. package/lib/services/authentication.service.d.ts +45 -45
  250. package/lib/services/blocked-beneficiary.service.d.ts +17 -17
  251. package/lib/services/budget-application.service.d.ts +52 -52
  252. package/lib/services/budget-simulation.service.d.ts +32 -32
  253. package/lib/services/budget.service.d.ts +65 -65
  254. package/lib/services/closure-wallet.service.d.ts +16 -16
  255. package/lib/services/cnf-correspondence-document-manager.service.d.ts +14 -14
  256. package/lib/services/committee-money.service.d.ts +12 -12
  257. package/lib/services/committee-pdf.service.d.ts +13 -13
  258. package/lib/services/committee-snapshot.service.d.ts +24 -24
  259. package/lib/services/common-info.service.d.ts +30 -30
  260. package/lib/services/common.service.d.ts +103 -103
  261. package/lib/services/configuration-document.service.d.ts +84 -84
  262. package/lib/services/configuration-minisite.service.d.ts +13 -13
  263. package/lib/services/configuration.service.d.ts +15 -15
  264. package/lib/services/correspondence-document-category.service.d.ts +12 -12
  265. package/lib/services/correspondence-manager.service.d.ts +21 -21
  266. package/lib/services/credit-score.service.d.ts +14 -14
  267. package/lib/services/credit-study.service.d.ts +52 -52
  268. package/lib/services/cube.service.d.ts +14 -14
  269. package/lib/services/data-form-history.service.d.ts +13 -13
  270. package/lib/services/data-form.service.d.ts +82 -82
  271. package/lib/services/data-letter-segmentation.service.d.ts +20 -20
  272. package/lib/services/document-analysis-auto.service.d.ts +14 -14
  273. package/lib/services/document-history.service.d.ts +18 -18
  274. package/lib/services/document-management.service.d.ts +22 -22
  275. package/lib/services/document-validation-attempt.service.d.ts +13 -13
  276. package/lib/services/document.service.d.ts +51 -51
  277. package/lib/services/documentary.type.service.d.ts +23 -23
  278. package/lib/services/email.service.d.ts +15 -15
  279. package/lib/services/evaluation.service.d.ts +58 -58
  280. package/lib/services/export-excel.service.d.ts +8 -8
  281. package/lib/services/file.service.d.ts +63 -63
  282. package/lib/services/form.service.d.ts +39 -39
  283. package/lib/services/gic-client-disbursement-metadata.service.d.ts +12 -12
  284. package/lib/services/gic-client.service.d.ts +20 -20
  285. package/lib/services/gic-cnf-bankvision-transaction.service.d.ts +13 -13
  286. package/lib/services/gic-cnf-closing-date.service.d.ts +15 -15
  287. package/lib/services/gic-cnf-maintenance.service.d.ts +13 -13
  288. package/lib/services/gic-collection.service.d.ts +19 -19
  289. package/lib/services/gic-disbursement.service.d.ts +16 -16
  290. package/lib/services/gic-extract.service.d.ts +15 -15
  291. package/lib/services/gic-log.service.d.ts +17 -17
  292. package/lib/services/gic-payment-application.service.d.ts +15 -15
  293. package/lib/services/gic-payment-plan-cube.service.d.ts +13 -13
  294. package/lib/services/gic-payment-plan.service.d.ts +19 -19
  295. package/lib/services/gic-trm.service.d.ts +14 -14
  296. package/lib/services/global.show.task.service.d.ts +20 -20
  297. package/lib/services/guarantee-document.service.d.ts +17 -17
  298. package/lib/services/guarantee-enrollment.service.d.ts +14 -14
  299. package/lib/services/guarantee.service.d.ts +34 -34
  300. package/lib/services/hash.service.d.ts +18 -18
  301. package/lib/services/import-data.service.d.ts +14 -14
  302. package/lib/services/import-excel-gic.service.d.ts +22 -22
  303. package/lib/services/initial-configuration-gic-parameters.service.d.ts +19 -19
  304. package/lib/services/initial-record.service.d.ts +24 -24
  305. package/lib/services/integration-ado.service.d.ts +15 -15
  306. package/lib/services/interaction-application-user.service.d.ts +28 -28
  307. package/lib/services/interest-adjustment.service.d.ts +16 -16
  308. package/lib/services/keys-assignation.service.d.ts +33 -33
  309. package/lib/services/legalization.service.d.ts +46 -46
  310. package/lib/services/letter-campaing.service.d.ts +24 -24
  311. package/lib/services/letter-task-mapping.service.d.ts +22 -22
  312. package/lib/services/log.service.d.ts +17 -17
  313. package/lib/services/maintenance.service.d.ts +23 -23
  314. package/lib/services/master-category.service.d.ts +40 -40
  315. package/lib/services/master-program.service.d.ts +45 -45
  316. package/lib/services/master-university.service.d.ts +40 -40
  317. package/lib/services/migration-plis.service.d.ts +14 -14
  318. package/lib/services/migration-survey-queue.service.d.ts +12 -12
  319. package/lib/services/page.service.d.ts +18 -18
  320. package/lib/services/partner-system.service.d.ts +13 -13
  321. package/lib/services/partner.service.d.ts +17 -17
  322. package/lib/services/pdf-analyzer.service.d.ts +11 -11
  323. package/lib/services/people-master.service.d.ts +14 -14
  324. package/lib/services/permission.service.d.ts +14 -14
  325. package/lib/services/pli-cnf-acuity-fields.service.d.ts +14 -14
  326. package/lib/services/pli-cnf-app-card-filter.service.d.ts +20 -20
  327. package/lib/services/pli-cnf-appointment-type.service.d.ts +16 -16
  328. package/lib/services/pli-cnf-budget-program-type.service.d.ts +18 -18
  329. package/lib/services/pli-cnf-budget.service.d.ts +13 -13
  330. package/lib/services/pli-cnf-cloning.service.d.ts +12 -12
  331. package/lib/services/pli-cnf-committee-pdf-config-table-config.service.d.ts +19 -19
  332. package/lib/services/pli-cnf-committee-pdf-gen-status.service.d.ts +13 -13
  333. package/lib/services/pli-cnf-committee-valpro-columns.service.d.ts +15 -15
  334. package/lib/services/pli-cnf-committee-visualization-mode.service.d.ts +17 -17
  335. package/lib/services/pli-cnf-committee.service.d.ts +21 -21
  336. package/lib/services/pli-cnf-config-minisite.service.d.ts +26 -26
  337. package/lib/services/pli-cnf-configuration-credit-study.service.d.ts +16 -16
  338. package/lib/services/pli-cnf-document-management.service.d.ts +15 -15
  339. package/lib/services/pli-cnf-dynamic-keys-assign.service.d.ts +21 -21
  340. package/lib/services/pli-cnf-evaluation-task-mailing.service.d.ts +13 -13
  341. package/lib/services/pli-cnf-evaluation-task.service.d.ts +35 -35
  342. package/lib/services/pli-cnf-evaluation-template.service.d.ts +44 -44
  343. package/lib/services/pli-cnf-form-edit.service.d.ts +29 -29
  344. package/lib/services/pli-cnf-form-multiaplicacion.service.d.ts +21 -21
  345. package/lib/services/pli-cnf-guarantee-documents-template.service.d.ts +17 -17
  346. package/lib/services/pli-cnf-guarantee-token.service.d.ts +16 -16
  347. package/lib/services/pli-cnf-header.service.d.ts +18 -18
  348. package/lib/services/pli-cnf-indicator.service.d.ts +20 -20
  349. package/lib/services/pli-cnf-information-system.service.d.ts +12 -12
  350. package/lib/services/pli-cnf-interaction.service.d.ts +31 -31
  351. package/lib/services/pli-cnf-letter-template-type.service.d.ts +15 -15
  352. package/lib/services/pli-cnf-letter-template.service.d.ts +22 -22
  353. package/lib/services/pli-cnf-look-and-feel.service.d.ts +13 -13
  354. package/lib/services/pli-cnf-mail.service.d.ts +13 -13
  355. package/lib/services/pli-cnf-menu-form.service.d.ts +16 -16
  356. package/lib/services/pli-cnf-migration-plis-field-budget.service.d.ts +14 -14
  357. package/lib/services/pli-cnf-migration-plis-field.service.d.ts +17 -17
  358. package/lib/services/pli-cnf-migration-status-plis.service.d.ts +17 -17
  359. package/lib/services/pli-cnf-page-section-form.service.d.ts +24 -24
  360. package/lib/services/pli-cnf-page-sub-process.service.d.ts +12 -12
  361. package/lib/services/pli-cnf-pdfs.service.d.ts +14 -14
  362. package/lib/services/pli-cnf-profile-form.service.d.ts +20 -20
  363. package/lib/services/pli-cnf-profile-user.service.d.ts +24 -24
  364. package/lib/services/pli-cnf-project-summary.service.d.ts +16 -16
  365. package/lib/services/pli-cnf-scenario.service.d.ts +23 -23
  366. package/lib/services/pli-cnf-segmentation.service.d.ts +32 -32
  367. package/lib/services/pli-cnf-snapshot-token.service.d.ts +16 -16
  368. package/lib/services/pli-cnf-status-flow-interaction.service.d.ts +28 -28
  369. package/lib/services/pli-cnf-status-flow.service.d.ts +26 -26
  370. package/lib/services/pli-cnf-support-document-category.service.d.ts +17 -17
  371. package/lib/services/pli-cnf-support-document.service.d.ts +23 -23
  372. package/lib/services/pli-cnf-survey-document.service.d.ts +16 -16
  373. package/lib/services/pli-cnf-survey-pdf.service.d.ts +15 -15
  374. package/lib/services/pli-cnf-survey.service.d.ts +19 -19
  375. package/lib/services/pli-cnf-task-group.service.d.ts +15 -15
  376. package/lib/services/pli-cnf-text-category.service.d.ts +15 -15
  377. package/lib/services/pli-cnf-text-option.service.d.ts +15 -15
  378. package/lib/services/pli-cnf-text.service.d.ts +21 -21
  379. package/lib/services/pli-cnf-type-text.service.d.ts +16 -16
  380. package/lib/services/pli-cnf-university-article.service.d.ts +20 -20
  381. package/lib/services/pli-cnf-user-calendar.service.d.ts +16 -16
  382. package/lib/services/pli-cnf-user-workspace.service.d.ts +18 -18
  383. package/lib/services/pli-cnf-valpro-keys.service.d.ts +18 -18
  384. package/lib/services/pli-cnf-workspace-segmentation.service.d.ts +16 -16
  385. package/lib/services/pli-message-type.service.d.ts +15 -15
  386. package/lib/services/pli-multiple-value-filter.service.d.ts +17 -17
  387. package/lib/services/pli-promocion-username.service.d.ts +26 -26
  388. package/lib/services/pli-seg-action-user.service.d.ts +20 -20
  389. package/lib/services/pli-segmentation.service.d.ts +48 -48
  390. package/lib/services/pli-tag-assignment.service.d.ts +15 -15
  391. package/lib/services/pli-tag.service.d.ts +21 -21
  392. package/lib/services/pli-user.service.d.ts +24 -24
  393. package/lib/services/plis-beneficiario.service.d.ts +10 -10
  394. package/lib/services/plis-estatus-change.service.d.ts +13 -13
  395. package/lib/services/ppp.service.d.ts +77 -77
  396. package/lib/services/profile.service.d.ts +26 -26
  397. package/lib/services/progress-bar.service.d.ts +14 -14
  398. package/lib/services/promotion-score.service.d.ts +14 -14
  399. package/lib/services/registry-identifier.service.d.ts +16 -16
  400. package/lib/services/return-refund.service.d.ts +20 -20
  401. package/lib/services/segmentation-tokens.service.d.ts +22 -22
  402. package/lib/services/segmentation-user-service.service.d.ts +26 -26
  403. package/lib/services/segmentation.service.d.ts +16 -16
  404. package/lib/services/send-application.service.d.ts +71 -71
  405. package/lib/services/sesion-form.service.d.ts +16 -16
  406. package/lib/services/sesion.service.d.ts +27 -27
  407. package/lib/services/spinner.service.d.ts +6 -6
  408. package/lib/services/sponsorship-letter.service.d.ts +34 -34
  409. package/lib/services/status.service.d.ts +31 -31
  410. package/lib/services/summary-budget.service.d.ts +11 -11
  411. package/lib/services/survey-metadata.service.d.ts +13 -13
  412. package/lib/services/survey-queue.service.d.ts +12 -12
  413. package/lib/services/survey.service.d.ts +17 -17
  414. package/lib/services/tasa.cambio.service.d.ts +14 -14
  415. package/lib/services/token-transformation.service.d.ts +19 -19
  416. package/lib/services/token.service.d.ts +270 -270
  417. package/lib/services/university.service.d.ts +28 -28
  418. package/lib/services/upload-documents.service.d.ts +21 -21
  419. package/lib/services/user.service.d.ts +12 -12
  420. package/lib/services/visualization-committee.service.d.ts +32 -32
  421. package/lib/utils/custom-validator.d.ts +19 -19
  422. package/lib/utils/form-util.d.ts +11 -11
  423. package/lib/utils/formio-util.d.ts +105 -105
  424. package/lib/utils/version-commons.d.ts +4 -4
  425. package/package.json +10 -16
  426. package/public-api.d.ts +210 -210
  427. package/version.d.ts +25 -25
  428. package/esm2020/lib/components/backoffice.commons.component.mjs +0 -40
  429. package/esm2020/lib/components/common.lists.component.mjs +0 -194
  430. package/esm2020/lib/components/configuration-token/configuration-token.component.mjs +0 -665
  431. package/esm2020/lib/components/configuration-token/guarantee-token/guarantee-token.component.mjs +0 -103
  432. package/esm2020/lib/components/configuration-token/snapshot-token/snapshot-token.component.mjs +0 -108
  433. package/esm2020/lib/components/configuration.commons.component.mjs +0 -40
  434. package/esm2020/lib/components/dynamic-filter/dynamic-filter.component.mjs +0 -131
  435. package/esm2020/lib/components/excel-to-json/excel-to-json.component.mjs +0 -54
  436. package/esm2020/lib/components/frontoffice.commons.component.mjs +0 -86
  437. package/esm2020/lib/components/pdf-analyzer/pdf-analyzer.component.mjs +0 -162
  438. package/esm2020/lib/components/pdf-generator/pdf-generator.component.mjs +0 -223
  439. package/esm2020/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.mjs +0 -307
  440. package/esm2020/lib/components/pdf-visualizer/pdf-visualizer.component.mjs +0 -387
  441. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +0 -92
  442. package/esm2020/lib/components/segmentation-tokens/segmentation-tokens.component.mjs +0 -199
  443. package/esm2020/lib/components/select-ppp/select-ppp.component.mjs +0 -199
  444. package/esm2020/lib/components/show-hide-columns/show-hide-columns-table.component.mjs +0 -116
  445. package/esm2020/lib/components/token/token.component.mjs +0 -1006
  446. package/esm2020/lib/components/tokens-calculator/tokens-calculator.component.mjs +0 -128
  447. package/esm2020/lib/ng-pli-commons.module.mjs +0 -390
  448. package/esm2020/lib/pipes/currency-colfuturo.pipe.mjs +0 -35
  449. package/esm2020/lib/pipes/thousands.pipe.mjs +0 -60
  450. package/esm2020/lib/services/authentication.service.mjs +0 -133
  451. package/esm2020/lib/services/budget-application.service.mjs +0 -265
  452. package/esm2020/lib/services/budget.service.mjs +0 -205
  453. package/esm2020/lib/services/common.service.mjs +0 -291
  454. package/esm2020/lib/services/configuration-document.service.mjs +0 -297
  455. package/esm2020/lib/services/documentary.type.service.mjs +0 -69
  456. package/esm2020/lib/services/file.service.mjs +0 -153
  457. package/esm2020/lib/services/guarantee.service.mjs +0 -128
  458. package/esm2020/lib/services/keys-assignation.service.mjs +0 -127
  459. package/esm2020/lib/services/pli-cnf-evaluation-task.service.mjs +0 -112
  460. package/esm2020/lib/services/ppp.service.mjs +0 -360
  461. package/esm2020/lib/services/progress-bar.service.mjs +0 -40
  462. package/esm2020/lib/services/segmentation-tokens.service.mjs +0 -43
  463. package/esm2020/lib/services/send-application.service.mjs +0 -492
  464. package/esm2020/lib/services/token.service.mjs +0 -1345
  465. package/esm2020/lib/services/upload-documents.service.mjs +0 -60
  466. package/esm2020/lib/utils/custom-validator.mjs +0 -95
  467. package/esm2020/lib/utils/form-util.mjs +0 -35
  468. package/esm2020/lib/utils/formio-util.mjs +0 -580
  469. package/fesm2015/ng-pli-commons.mjs +0 -17373
  470. package/fesm2015/ng-pli-commons.mjs.map +0 -1
  471. package/fesm2020/ng-pli-commons.mjs.map +0 -1
@@ -1,131 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { ETypeColumn, SegFilter } from 'ng-pli-util';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../services/common.service";
5
- import * as i2 from "primeng/dropdown";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/forms";
8
- export class DynamicFilterComponent {
9
- constructor(cdRef, commonService) {
10
- this.cdRef = cdRef;
11
- this.commonService = commonService;
12
- this.searchFilter = new EventEmitter();
13
- }
14
- ngOnInit() { }
15
- /** It manages the change of the every @Input */
16
- ngOnChanges(changes) {
17
- const comboColumnWork = changes.comboColumnWork;
18
- if (comboColumnWork && comboColumnWork.currentValue) {
19
- this.comboColumnWork = comboColumnWork.currentValue;
20
- this.active = true;
21
- if (!this.lSegFilter || this.lSegFilter.length == 0) {
22
- this.addFilter();
23
- }
24
- }
25
- const lSegColumn = changes.lSegColumn;
26
- if (lSegColumn && lSegColumn.currentValue) {
27
- this.lSegColumn = lSegColumn.currentValue;
28
- this.loadMapColumn();
29
- }
30
- // console.log(this.comboColumnWork);
31
- }
32
- loadMapColumn() {
33
- this.mapSegColumnById = new Map();
34
- for (const segColumn of this.lSegColumn) {
35
- this.mapSegColumnById.set(segColumn.idColumn.toString(), segColumn);
36
- }
37
- }
38
- /** it fires when select column */
39
- onSelectColumn(filter) {
40
- if (filter.idColumn) {
41
- let column = this.getColumnById(filter.idColumn.toString());
42
- if (column) {
43
- filter.idColumn = column.idColumn;
44
- filter.type = column.type;
45
- filter.label = column.label;
46
- filter.key = column.key;
47
- }
48
- if (Number(filter.type) == this.getTypeNumber() ||
49
- Number(filter.type) == this.getTypeDate())
50
- filter.operator = '1';
51
- else
52
- filter.operator = '3';
53
- console.log('filter', filter);
54
- }
55
- }
56
- /** It returns the type text */
57
- getTypeText() {
58
- return ETypeColumn.TEXTO;
59
- }
60
- /** It returns the type number */
61
- getTypeNumber() {
62
- return ETypeColumn.NUMERICO;
63
- }
64
- /** It returns the type date */
65
- getTypeDate() {
66
- return ETypeColumn.FECHA;
67
- }
68
- /** it deletes filter */
69
- deleteFilter(i) {
70
- console.log('Eliminar ', i);
71
- if (this.lSegFilter)
72
- this.lSegFilter.splice(i, 1);
73
- if (!this.lSegFilter || !this.lSegFilter.length)
74
- this.addFilter();
75
- }
76
- /** it defines the conjunction */
77
- setConjunction(filter, conjunction) {
78
- filter.conjunction = conjunction;
79
- }
80
- /** it adds new filter */
81
- addFilter() {
82
- if (!this.lSegFilter) {
83
- this.lSegFilter = [];
84
- }
85
- let filter = new SegFilter();
86
- filter.conjunction = 'Y';
87
- this.lSegFilter.push(filter);
88
- }
89
- /** clean all filters */
90
- clean() {
91
- this.lSegFilter = [];
92
- this.addFilter();
93
- }
94
- /** clean all filters */
95
- deleteAll() {
96
- if (this.lSegFilter)
97
- for (const filter of this.lSegFilter)
98
- filter.value = undefined;
99
- }
100
- /** it searches */
101
- search() {
102
- this.searchFilter.emit(this.lSegFilter);
103
- }
104
- /** return type input */
105
- getTypeInput(type) {
106
- if (type == this.getTypeDate())
107
- return 'date';
108
- if (type == this.getTypeNumber())
109
- return 'text';
110
- return 'text';
111
- }
112
- /** it returns the column by id */
113
- getColumnById(id) {
114
- return this.mapSegColumnById.get(id);
115
- }
116
- }
117
- DynamicFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DynamicFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CommonService }], target: i0.ɵɵFactoryTarget.Component });
118
- DynamicFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: DynamicFilterComponent, selector: "app-dynamic-filter", inputs: { lSegFilter: "lSegFilter", lSegColumn: "lSegColumn", comboColumnWork: "comboColumnWork" }, outputs: { searchFilter: "searchFilter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flow-row-wrap\" style=\"margin:10px 0 0;justify-content: normal\" *ngIf=\"active\">\r\n\t<div class=\"segmentation-filter\" *ngFor=\"let filter of lSegFilter; let i = index\">\r\n\t\t<div *ngIf=\"filter.idColumn == undefined\">\r\n\t\t\t<div class=\"ml-sm\">\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[autoWidth]=\"false\"\r\n\t\t\t\t\t[style]=\"{ width: '100%' }\"\r\n\t\t\t\t\tplaceholder=\"-- Seleccione opci\u00F3n\"\r\n\t\t\t\t\t[options]=\"comboColumnWork\"\r\n\t\t\t\t\t[group]=\"true\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.idColumn\"\r\n\t\t\t\t\t(onChange)=\"onSelectColumn(filter)\"\r\n\t\t\t\t\t[filter]=\"true\"\r\n\t\t\t\t>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"flex align-items-center\" *ngIf=\"filter.idColumn != undefined\">\r\n\t\t\t<div class=\"ml-sm mr-sm\">\r\n\t\t\t\t<span class=\"input-group-btn conector\" *ngIf=\"i != 0\">\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-info btn-sm br-5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'Y'\"\r\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'O')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tY\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-warning btn-sm br-5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'O'\"\r\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'Y')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tO\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"ml-sm\" *ngIf=\"i == 0\">\r\n\t\t\t\t\t<span class=\"btn btn-sm br-5\" style=\"cursor:auto;\">&nbsp;</span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"mr-sm\">\r\n\t\t\t\t<select\r\n\t\t\t\t\tclass=\"form-control input-sm select-operation\"\r\n\t\t\t\t\tstyle=\"width: 125px;\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.operator\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<option value=\"1\">Igual a</option>\r\n\t\t\t\t\t<option value=\"2\">Diferente a</option>\r\n\t\t\t\t\t<option value=\"3\" *ngIf=\"filter.type == getTypeText()\">Contiene</option>\r\n\t\t\t\t\t<option value=\"4\" *ngIf=\"filter.type == getTypeText()\">No contiene</option>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMayor a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"6\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMayor o igual a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"7\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMenor a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"8\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMenor o igual a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option value=\"9\">Es vac\u00EDo</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t\t<div>\r\n\t\t\t\t<input\r\n\t\t\t\t\t[type]=\"getTypeInput(filter.type)\"\r\n\t\t\t\t\t[disabled]=\"filter.operator == 9\"\r\n\t\t\t\t\tclass=\"form-control input-value input-sm\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.value\"\r\n\t\t\t\t\t[placeholder]=\"filter.label\"\r\n\t\t\t\t\tstyle=\"width: 165px;\"\r\n\t\t\t\t\t(keyup.enter)=\"search()\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"flex ml-sm button_filter\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-danger btn-sm btn-rounded\"\r\n\t\t\t\t\t(click)=\"deleteFilter(i)\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-minus\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-success btn-sm btn-rounded ml-sm\"\r\n\t\t\t\t\t(click)=\"addFilter()\"\r\n\t\t\t\t\t*ngIf=\"i + 1 == lSegFilter.length\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-plus\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n<div class=\"row\" style=\"margin:0 0 10px\" *ngIf=\"active\">\r\n\t<div class=\"col-sm-12 panel-button\">\r\n\t\t<div class=\"btn-toolbar\">\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button type=\"button\" class=\"btn btn-primary btn-sm btn-consult\" (click)=\"search()\">\r\n\t\t\t\t\tConsultar\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button type=\"button\" class=\"btn btn-danger btn-sm btn-delete\" (click)=\"clean()\">\r\n\t\t\t\t\tBorrar filtros\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-warning btn-sm btn-clear\"\r\n\t\t\t\t\t(click)=\"deleteAll()\"\r\n\t\t\t\t>\r\n\t\t\t\t\tlimpiar datos\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: [".button_filter .btn{line-height:12px;width:22px;height:22px}.button_filter .btn.btn-success{background-color:transparent;border:1px solid #4cae4c;color:#4cae4c}.button_filter .btn.btn-success:hover{background-color:#4cae4c;color:#fff}.button_filter .btn-danger{background-color:transparent;color:#d43f3a}.button_filter .btn-danger:hover{background-color:#d43f3a;color:#fff}.conector .btn{height:22px;line-height:12px}.btn{padding:5px}.btn-rounded{border-radius:50%!important}.btn-delete,.btn-save,.btn-definition,.btn-clear{background-color:transparent;color:#333;transition:all .3s}.btn-delete:hover{background-color:#d43f3a;color:#fff}.btn-save:hover{background-color:#4cae4c;color:#fff}.btn-definition:hover{color:#fff;background-color:#ccc}.btn-clear:hover{background-color:#eea236;color:#fff}.br-5{border-radius:5px!important}.mr-sm{margin-right:5px}.ml-sm{margin-left:5px}.flex{display:flex!important}.flow-row-wrap{flex-flow:row wrap}.align-items-center{align-items:center}.dialog-max-size .ui-dialog{width:95%!important}.segmentation-group .form-control.select-operation{width:40%;font-size:11px;padding-left:3px;padding-right:3px}.segmentation-group .form-control.input-value{width:60%}.segmentation-filter{margin-bottom:10px}.panel-button{background-color:#f8f8f8;padding-top:10px;padding-bottom:10px;border-top:1px solid rgb(231,231,231);border-bottom:1px solid rgb(231,231,231);text-align:right}\n"], components: [{ type: i2.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }] });
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DynamicFilterComponent, decorators: [{
120
- type: Component,
121
- args: [{ selector: 'app-dynamic-filter', template: "<div class=\"flex flow-row-wrap\" style=\"margin:10px 0 0;justify-content: normal\" *ngIf=\"active\">\r\n\t<div class=\"segmentation-filter\" *ngFor=\"let filter of lSegFilter; let i = index\">\r\n\t\t<div *ngIf=\"filter.idColumn == undefined\">\r\n\t\t\t<div class=\"ml-sm\">\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[autoWidth]=\"false\"\r\n\t\t\t\t\t[style]=\"{ width: '100%' }\"\r\n\t\t\t\t\tplaceholder=\"-- Seleccione opci\u00F3n\"\r\n\t\t\t\t\t[options]=\"comboColumnWork\"\r\n\t\t\t\t\t[group]=\"true\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.idColumn\"\r\n\t\t\t\t\t(onChange)=\"onSelectColumn(filter)\"\r\n\t\t\t\t\t[filter]=\"true\"\r\n\t\t\t\t>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"flex align-items-center\" *ngIf=\"filter.idColumn != undefined\">\r\n\t\t\t<div class=\"ml-sm mr-sm\">\r\n\t\t\t\t<span class=\"input-group-btn conector\" *ngIf=\"i != 0\">\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-info btn-sm br-5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'Y'\"\r\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'O')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tY\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-warning btn-sm br-5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'O'\"\r\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'Y')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tO\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"ml-sm\" *ngIf=\"i == 0\">\r\n\t\t\t\t\t<span class=\"btn btn-sm br-5\" style=\"cursor:auto;\">&nbsp;</span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"mr-sm\">\r\n\t\t\t\t<select\r\n\t\t\t\t\tclass=\"form-control input-sm select-operation\"\r\n\t\t\t\t\tstyle=\"width: 125px;\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.operator\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<option value=\"1\">Igual a</option>\r\n\t\t\t\t\t<option value=\"2\">Diferente a</option>\r\n\t\t\t\t\t<option value=\"3\" *ngIf=\"filter.type == getTypeText()\">Contiene</option>\r\n\t\t\t\t\t<option value=\"4\" *ngIf=\"filter.type == getTypeText()\">No contiene</option>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMayor a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"6\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMayor o igual a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"7\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMenor a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"8\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMenor o igual a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option value=\"9\">Es vac\u00EDo</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t\t<div>\r\n\t\t\t\t<input\r\n\t\t\t\t\t[type]=\"getTypeInput(filter.type)\"\r\n\t\t\t\t\t[disabled]=\"filter.operator == 9\"\r\n\t\t\t\t\tclass=\"form-control input-value input-sm\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.value\"\r\n\t\t\t\t\t[placeholder]=\"filter.label\"\r\n\t\t\t\t\tstyle=\"width: 165px;\"\r\n\t\t\t\t\t(keyup.enter)=\"search()\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"flex ml-sm button_filter\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-danger btn-sm btn-rounded\"\r\n\t\t\t\t\t(click)=\"deleteFilter(i)\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-minus\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-success btn-sm btn-rounded ml-sm\"\r\n\t\t\t\t\t(click)=\"addFilter()\"\r\n\t\t\t\t\t*ngIf=\"i + 1 == lSegFilter.length\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-plus\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n<div class=\"row\" style=\"margin:0 0 10px\" *ngIf=\"active\">\r\n\t<div class=\"col-sm-12 panel-button\">\r\n\t\t<div class=\"btn-toolbar\">\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button type=\"button\" class=\"btn btn-primary btn-sm btn-consult\" (click)=\"search()\">\r\n\t\t\t\t\tConsultar\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button type=\"button\" class=\"btn btn-danger btn-sm btn-delete\" (click)=\"clean()\">\r\n\t\t\t\t\tBorrar filtros\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-warning btn-sm btn-clear\"\r\n\t\t\t\t\t(click)=\"deleteAll()\"\r\n\t\t\t\t>\r\n\t\t\t\t\tlimpiar datos\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: [".button_filter .btn{line-height:12px;width:22px;height:22px}.button_filter .btn.btn-success{background-color:transparent;border:1px solid #4cae4c;color:#4cae4c}.button_filter .btn.btn-success:hover{background-color:#4cae4c;color:#fff}.button_filter .btn-danger{background-color:transparent;color:#d43f3a}.button_filter .btn-danger:hover{background-color:#d43f3a;color:#fff}.conector .btn{height:22px;line-height:12px}.btn{padding:5px}.btn-rounded{border-radius:50%!important}.btn-delete,.btn-save,.btn-definition,.btn-clear{background-color:transparent;color:#333;transition:all .3s}.btn-delete:hover{background-color:#d43f3a;color:#fff}.btn-save:hover{background-color:#4cae4c;color:#fff}.btn-definition:hover{color:#fff;background-color:#ccc}.btn-clear:hover{background-color:#eea236;color:#fff}.br-5{border-radius:5px!important}.mr-sm{margin-right:5px}.ml-sm{margin-left:5px}.flex{display:flex!important}.flow-row-wrap{flex-flow:row wrap}.align-items-center{align-items:center}.dialog-max-size .ui-dialog{width:95%!important}.segmentation-group .form-control.select-operation{width:40%;font-size:11px;padding-left:3px;padding-right:3px}.segmentation-group .form-control.input-value{width:60%}.segmentation-filter{margin-bottom:10px}.panel-button{background-color:#f8f8f8;padding-top:10px;padding-bottom:10px;border-top:1px solid rgb(231,231,231);border-bottom:1px solid rgb(231,231,231);text-align:right}\n"] }]
122
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CommonService }]; }, propDecorators: { lSegFilter: [{
123
- type: Input
124
- }], lSegColumn: [{
125
- type: Input
126
- }], comboColumnWork: [{
127
- type: Input
128
- }], searchFilter: [{
129
- type: Output
130
- }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZmlsdGVyL2R5bmFtaWMtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZpbHRlci9keW5hbWljLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUlOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFhLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFTaEUsTUFBTSxPQUFPLHNCQUFzQjtJQWdCbEMsWUFBc0IsS0FBd0IsRUFBWSxhQUE0QjtRQUFoRSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUFZLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRjVFLGlCQUFZLEdBQThCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFa0IsQ0FBQztJQUUxRixRQUFRLEtBQUksQ0FBQztJQUViLGdEQUFnRDtJQUNoRCxXQUFXLENBQUMsT0FBc0I7UUFDakMsTUFBTSxlQUFlLEdBQWlCLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDOUQsSUFBSSxlQUFlLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRTtZQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUM7WUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUNwRCxJ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dE9uSW5pdCxcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T3V0cHV0LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdFNpbXBsZUNoYW5nZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFVHlwZUNvbHVtbiwgU2VnRmlsdGVyLCBTZWdDb2x1bW4gfSBmcm9tICduZy1wbGktdXRpbCc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XHJcblxyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWR5bmFtaWMtZmlsdGVyJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2R5bmFtaWMtZmlsdGVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0ZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHQvKiogKi9cclxuXHRhY3RpdmU6IGJvb2xlYW47XHJcblx0LyoqIExpc3Qgb2YgZmlsdGVyICovXHJcblx0QElucHV0KCkgbFNlZ0ZpbHRlcjogU2VnRmlsdGVyW107XHJcblx0LyoqIExpc3Qgb2YgY29sdW1ucyAqL1xyXG5cdEBJbnB1dCgpIGxTZWdDb2x1bW46IFNlZ0NvbHVtbltdO1xyXG5cdC8qKiBMaXN0IG9mIGNvbHVtbnMgKi9cclxuXHRASW5wdXQoKSBjb21ib0NvbHVtbldvcms6IGFueVtdO1xyXG5cclxuXHRkaXNwbGF5RGlhbG9nOiBib29sZWFuO1xyXG5cclxuXHRtYXBTZWdDb2x1bW5CeUlkOiBNYXA8c3RyaW5nLCBTZWdDb2x1bW4+O1xyXG5cclxuXHRAT3V0cHV0KCkgc2VhcmNoRmlsdGVyOiBFdmVudEVtaXR0ZXI8U2VnRmlsdGVyW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcm90ZWN0ZWQgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSkge31cclxuXHJcblx0bmdPbkluaXQoKSB7fVxyXG5cclxuXHQvKiogSXQgbWFuYWdlcyB0aGUgY2hhbmdlIG9mIHRoZSBldmVyeSBASW5wdXQgKi9cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRjb25zdCBjb21ib0NvbHVtbldvcms6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMuY29tYm9Db2x1bW5Xb3JrO1xyXG5cdFx0aWYgKGNvbWJvQ29sdW1uV29yayAmJiBjb21ib0NvbHVtbldvcmsuY3VycmVudFZhbHVlKSB7XHJcblx0XHRcdHRoaXMuY29tYm9Db2x1bW5Xb3JrID0gY29tYm9Db2x1bW5Xb3JrLmN1cnJlbnRWYWx1ZTtcclxuXHRcdFx0dGhpcy5hY3RpdmUgPSB0cnVlO1xyXG5cdFx0XHRpZiAoIXRoaXMubFNlZ0ZpbHRlciB8fCB0aGlzLmxTZWdGaWx0ZXIubGVuZ3RoID09IDApIHtcclxuXHRcdFx0XHR0aGlzLmFkZEZpbHRlcigpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRjb25zdCBsU2VnQ29sdW1uOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLmxTZWdDb2x1bW47XHJcblx0XHRpZiAobFNlZ0NvbHVtbiAmJiBsU2VnQ29sdW1uLmN1cnJlbnRWYWx1ZSkge1xyXG5cdFx0XHR0aGlzLmxTZWdDb2x1bW4gPSBsU2VnQ29sdW1uLmN1cnJlbnRWYWx1ZTtcclxuXHRcdFx0dGhpcy5sb2FkTWFwQ29sdW1uKCk7XHJcblx0XHR9XHJcblx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLmNvbWJvQ29sdW1uV29yayk7XHJcblx0fVxyXG5cclxuXHRsb2FkTWFwQ29sdW1uKCkge1xyXG5cdFx0dGhpcy5tYXBTZWdDb2x1bW5CeUlkID0gbmV3IE1hcDxzdHJpbmcsIFNlZ0NvbHVtbj4oKTtcclxuXHRcdGZvciAoY29uc3Qgc2VnQ29sdW1uIG9mIHRoaXMubFNlZ0NvbHVtbikge1xyXG5cdFx0XHR0aGlzLm1hcFNlZ0NvbHVtbkJ5SWQuc2V0KHNlZ0NvbHVtbi5pZENvbHVtbi50b1N0cmluZygpLCBzZWdDb2x1bW4pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqIGl0IGZpcmVzIHdoZW4gc2VsZWN0IGNvbHVtbiAqL1xyXG5cdG9uU2VsZWN0Q29sdW1uKGZpbHRlcjogU2VnRmlsdGVyKSB7XHJcblx0XHRpZiAoZmlsdGVyLmlkQ29sdW1uKSB7XHJcblx0XHRcdGxldCBjb2x1bW4gPSB0aGlzLmdldENvbHVtbkJ5SWQoZmlsdGVyLmlkQ29sdW1uLnRvU3RyaW5nKCkpO1xyXG5cdFx0XHRpZiAoY29sdW1uKSB7XHJcblx0XHRcdFx0ZmlsdGVyLmlkQ29sdW1uID0gY29sdW1uLmlkQ29sdW1uO1xyXG5cdFx0XHRcdGZpbHRlci50eXBlID0gY29sdW1uLnR5cGU7XHJcblx0XHRcdFx0ZmlsdGVyLmxhYmVsID0gY29sdW1uLmxhYmVsO1xyXG5cdFx0XHRcdGZpbHRlci5rZXkgPSBjb2x1bW4ua2V5O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0TnVtYmVyKGZpbHRlci50eXBlKSA9PSB0aGlzLmdldFR5cGVOdW1iZXIoKSB8fFxyXG5cdFx0XHRcdE51bWJlcihmaWx0ZXIudHlwZSkgPT0gdGhpcy5nZXRUeXBlRGF0ZSgpXHJcblx0XHRcdClcclxuXHRcdFx0XHRmaWx0ZXIub3BlcmF0b3IgPSAnMSc7XHJcblx0XHRcdGVsc2UgZmlsdGVyLm9wZXJhdG9yID0gJzMnO1xyXG5cdFx0XHRjb25zb2xlLmxvZygnZmlsdGVyJywgZmlsdGVyKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSB0eXBlIHRleHQgKi9cclxuXHRnZXRUeXBlVGV4dCgpIHtcclxuXHRcdHJldHVybiBFVHlwZUNvbHVtbi5URVhUTztcclxuXHR9XHJcblx0LyoqIEl0IHJldHVybnMgdGhlIHR5cGUgbnVtYmVyICovXHJcblx0Z2V0VHlwZU51bWJlcigpIHtcclxuXHRcdHJldHVybiBFVHlwZUNvbHVtbi5OVU1FUklDTztcclxuXHR9XHJcblx0LyoqIEl0IHJldHVybnMgdGhlIHR5cGUgZGF0ZSAqL1xyXG5cdGdldFR5cGVEYXRlKCkge1xyXG5cdFx0cmV0dXJuIEVUeXBlQ29sdW1uLkZFQ0hBO1xyXG5cdH1cclxuXHJcblx0LyoqIGl0IGRlbGV0ZXMgZmlsdGVyICovXHJcblx0ZGVsZXRlRmlsdGVyKGkpIHtcclxuXHRcdGNvbnNvbGUubG9nKCdFbGltaW5hciAnLCBpKTtcclxuXHRcdGlmICh0aGlzLmxTZWdGaWx0ZXIpIHRoaXMubFNlZ0ZpbHRlci5zcGxpY2UoaSwgMSk7XHJcblx0XHRpZiAoIXRoaXMubFNlZ0ZpbHRlciB8fCAhdGhpcy5sU2VnRmlsdGVyLmxlbmd0aCkgdGhpcy5hZGRGaWx0ZXIoKTtcclxuXHR9XHJcblx0LyoqIGl0IGRlZmluZXMgdGhlIGNvbmp1bmN0aW9uICovXHJcblx0c2V0Q29uanVuY3Rpb24oZmlsdGVyOiBTZWdGaWx0ZXIsIGNvbmp1bmN0aW9uKSB7XHJcblx0XHRmaWx0ZXIuY29uanVuY3Rpb24gPSBjb25qdW5jdGlvbjtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCBhZGRzIG5ldyBmaWx0ZXIgKi9cclxuXHRhZGRGaWx0ZXIoKSB7XHJcblx0XHRpZiAoIXRoaXMubFNlZ0ZpbHRlcikge1xyXG5cdFx0XHR0aGlzLmxTZWdGaWx0ZXIgPSBbXTtcclxuXHRcdH1cclxuXHRcdGxldCBmaWx0ZXIgPSBuZXcgU2VnRmlsdGVyKCk7XHJcblx0XHRmaWx0ZXIuY29uanVuY3Rpb24gPSAnWSc7XHJcblx0XHR0aGlzLmxTZWdGaWx0ZXIucHVzaChmaWx0ZXIpO1xyXG5cdH1cclxuXHJcblx0LyoqIGNsZWFuIGFsbCBmaWx0ZXJzICovXHJcblx0Y2xlYW4oKSB7XHJcblx0XHR0aGlzLmxTZWdGaWx0ZXIgPSBbXTtcclxuXHRcdHRoaXMuYWRkRmlsdGVyKCk7XHJcblx0fVxyXG5cclxuXHQvKiogY2xlYW4gYWxsIGZpbHRlcnMgKi9cclxuXHRkZWxldGVBbGwoKSB7XHJcblx0XHRpZiAodGhpcy5sU2VnRmlsdGVyKSBmb3IgKGNvbnN0IGZpbHRlciBvZiB0aGlzLmxTZWdGaWx0ZXIpIGZpbHRlci52YWx1ZSA9IHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCBzZWFyY2hlcyAgKi9cclxuXHRzZWFyY2goKSB7XHJcblx0XHR0aGlzLnNlYXJjaEZpbHRlci5lbWl0KHRoaXMubFNlZ0ZpbHRlcik7XHJcblx0fVxyXG5cclxuXHQvKiogcmV0dXJuIHR5cGUgaW5wdXQgKi9cclxuXHRnZXRUeXBlSW5wdXQodHlwZSkge1xyXG5cdFx0aWYgKHR5cGUgPT0gdGhpcy5nZXRUeXBlRGF0ZSgpKSByZXR1cm4gJ2RhdGUnO1xyXG5cdFx0aWYgKHR5cGUgPT0gdGhpcy5nZXRUeXBlTnVtYmVyKCkpIHJldHVybiAndGV4dCc7XHJcblx0XHRyZXR1cm4gJ3RleHQnO1xyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgdGhlIGNvbHVtbiBieSBpZCAqL1xyXG5cdGdldENvbHVtbkJ5SWQoaWQ6IHN0cmluZyk6IFNlZ0NvbHVtbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5tYXBTZWdDb2x1bW5CeUlkLmdldChpZCk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsb3ctcm93LXdyYXBcIiBzdHlsZT1cIm1hcmdpbjoxMHB4IDAgMDtqdXN0aWZ5LWNvbnRlbnQ6IG5vcm1hbFwiICpuZ0lmPVwiYWN0aXZlXCI+XHJcblx0PGRpdiBjbGFzcz1cInNlZ21lbnRhdGlvbi1maWx0ZXJcIiAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGxTZWdGaWx0ZXI7IGxldCBpID0gaW5kZXhcIj5cclxuXHRcdDxkaXYgKm5nSWY9XCJmaWx0ZXIuaWRDb2x1bW4gPT0gdW5kZWZpbmVkXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJtbC1zbVwiPlxyXG5cdFx0XHRcdDxwLWRyb3Bkb3duXHJcblx0XHRcdFx0XHRbYXV0b1dpZHRoXT1cImZhbHNlXCJcclxuXHRcdFx0XHRcdFtzdHlsZV09XCJ7IHdpZHRoOiAnMTAwJScgfVwiXHJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIi0tIFNlbGVjY2lvbmUgb3BjacOzblwiXHJcblx0XHRcdFx0XHRbb3B0aW9uc109XCJjb21ib0NvbHVtbldvcmtcIlxyXG5cdFx0XHRcdFx0W2dyb3VwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJmaWx0ZXIuaWRDb2x1bW5cIlxyXG5cdFx0XHRcdFx0KG9uQ2hhbmdlKT1cIm9uU2VsZWN0Q29sdW1uKGZpbHRlcilcIlxyXG5cdFx0XHRcdFx0W2ZpbHRlcl09XCJ0cnVlXCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0PC9wLWRyb3Bkb3duPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJmaWx0ZXIuaWRDb2x1bW4gIT0gdW5kZWZpbmVkXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJtbC1zbSBtci1zbVwiPlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuIGNvbmVjdG9yXCIgKm5nSWY9XCJpICE9IDBcIj5cclxuXHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1pbmZvIGJ0bi1zbSBici01XCJcclxuXHRcdFx0XHRcdFx0Km5nSWY9XCJmaWx0ZXIuY29uanVuY3Rpb24gPT0gJ1knXCJcclxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cInNldENvbmp1bmN0aW9uKGZpbHRlciwgJ08nKVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFlcclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0XHR0eXBlPVwiYnV0dG9uXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLXdhcm5pbmcgYnRuLXNtIGJyLTVcIlxyXG5cdFx0XHRcdFx0XHQqbmdJZj1cImZpbHRlci5jb25qdW5jdGlvbiA9PSAnTydcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwic2V0Q29uanVuY3Rpb24oZmlsdGVyLCAnWScpXCJcclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0T1xyXG5cdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwibWwtc21cIiAqbmdJZj1cImkgPT0gMFwiPlxyXG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJidG4gYnRuLXNtIGJyLTVcIiBzdHlsZT1cImN1cnNvcjphdXRvO1wiPiZuYnNwOzwvc3Bhbj5cclxuXHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibXItc21cIj5cclxuXHRcdFx0XHQ8c2VsZWN0XHJcblx0XHRcdFx0XHRjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC1zbSBzZWxlY3Qtb3BlcmF0aW9uXCJcclxuXHRcdFx0XHRcdHN0eWxlPVwid2lkdGg6IDEyNXB4O1wiXHJcblx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cImZpbHRlci5vcGVyYXRvclwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjFcIj5JZ3VhbCBhPC9vcHRpb24+XHJcblx0XHRcdFx0XHQ8b3B0aW9uIHZhbHVlPVwiMlwiPkRpZmVyZW50ZSBhPC9vcHRpb24+XHJcblx0XHRcdFx0XHQ8b3B0aW9uIHZhbHVlPVwiM1wiICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT0gZ2V0VHlwZVRleHQoKVwiPkNvbnRpZW5lPC9vcHRpb24+XHJcblx0XHRcdFx0XHQ8b3B0aW9uIHZhbHVlPVwiNFwiICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT0gZ2V0VHlwZVRleHQoKVwiPk5vIGNvbnRpZW5lPC9vcHRpb24+XHJcblx0XHRcdFx0XHQ8b3B0aW9uXHJcblx0XHRcdFx0XHRcdHZhbHVlPVwiNVwiXHJcblx0XHRcdFx0XHRcdCpuZ0lmPVwiZmlsdGVyLnR5cGUgPT0gZ2V0VHlwZU51bWJlcigpIHx8IGZpbHRlci50eXBlID09IGdldFR5cGVEYXRlKClcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRNYXlvciBhPC9vcHRpb25cclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxvcHRpb25cclxuXHRcdFx0XHRcdFx0dmFsdWU9XCI2XCJcclxuXHRcdFx0XHRcdFx0Km5nSWY9XCJmaWx0ZXIudHlwZSA9PSBnZXRUeXBlTnVtYmVyKCkgfHwgZmlsdGVyLnR5cGUgPT0gZ2V0VHlwZURhdGUoKVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdE1heW9yIG8gaWd1YWwgYTwvb3B0aW9uXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8b3B0aW9uXHJcblx0XHRcdFx0XHRcdHZhbHVlPVwiN1wiXHJcblx0XHRcdFx0XHRcdCpuZ0lmPVwiZmlsdGVyLnR5cGUgPT0gZ2V0VHlwZU51bWJlcigpIHx8IGZpbHRlci50eXBlID09IGdldFR5cGVEYXRlKClcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRNZW5vciBhPC9vcHRpb25cclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxvcHRpb25cclxuXHRcdFx0XHRcdFx0dmFsdWU9XCI4XCJcclxuXHRcdFx0XHRcdFx0Km5nSWY9XCJmaWx0ZXIudHlwZSA9PSBnZXRUeXBlTnVtYmVyKCkgfHwgZmlsdGVyLnR5cGUgPT0gZ2V0VHlwZURhdGUoKVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdE1lbm9yIG8gaWd1YWwgYTwvb3B0aW9uXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8b3B0aW9uIHZhbHVlPVwiOVwiPkVzIHZhY8Otbzwvb3B0aW9uPlxyXG5cdFx0XHRcdDwvc2VsZWN0PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdj5cclxuXHRcdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHRcdFt0eXBlXT1cImdldFR5cGVJbnB1dChmaWx0ZXIudHlwZSlcIlxyXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cImZpbHRlci5vcGVyYXRvciA9PSA5XCJcclxuXHRcdFx0XHRcdGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LXZhbHVlIGlucHV0LXNtXCJcclxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwiZmlsdGVyLnZhbHVlXCJcclxuXHRcdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJmaWx0ZXIubGFiZWxcIlxyXG5cdFx0XHRcdFx0c3R5bGU9XCJ3aWR0aDogMTY1cHg7XCJcclxuXHRcdFx0XHRcdChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXHJcblx0XHRcdFx0Lz5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IG1sLXNtIGJ1dHRvbl9maWx0ZXJcIj5cclxuXHRcdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0XHR0eXBlPVwiYnV0dG9uXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXIgYnRuLXNtIGJ0bi1yb3VuZGVkXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJkZWxldGVGaWx0ZXIoaSlcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtbWludXNcIj48L3NwYW4+XHJcblx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4tc20gYnRuLXJvdW5kZWQgbWwtc21cIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cImFkZEZpbHRlcigpXCJcclxuXHRcdFx0XHRcdCpuZ0lmPVwiaSArIDEgPT0gbFNlZ0ZpbHRlci5sZW5ndGhcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtcGx1c1wiPjwvc3Bhbj5cclxuXHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbjowIDAgMTBweFwiICpuZ0lmPVwiYWN0aXZlXCI+XHJcblx0PGRpdiBjbGFzcz1cImNvbC1zbS0xMiBwYW5lbC1idXR0b25cIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhclwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XHJcblx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGJ0bi1jb25zdWx0XCIgKGNsaWNrKT1cInNlYXJjaCgpXCI+XHJcblx0XHRcdFx0XHRDb25zdWx0YXJcclxuXHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIj5cclxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi1zbSBidG4tZGVsZXRlXCIgKGNsaWNrKT1cImNsZWFuKClcIj5cclxuXHRcdFx0XHRcdEJvcnJhciBmaWx0cm9zXHJcblx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XHJcblx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4td2FybmluZyBidG4tc20gYnRuLWNsZWFyXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJkZWxldGVBbGwoKVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0bGltcGlhciBkYXRvc1xyXG5cdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,54 +0,0 @@
1
- import { Component, EventEmitter, Output } from '@angular/core';
2
- import * as XLSX from 'xlsx';
3
- import * as i0 from "@angular/core";
4
- export class ExcelToJsonComponent {
5
- constructor() {
6
- this.disableButton = false;
7
- this.onLoadFile = new EventEmitter();
8
- }
9
- ngOnInit() { }
10
- onFileChange(event) {
11
- this.excelWorkbook = [];
12
- /* wire up file reader */
13
- const target = event.target;
14
- if (target.files.length !== 1) {
15
- throw new Error('Cannot use multiple files');
16
- }
17
- this.disableButton = true;
18
- const reader = new FileReader();
19
- reader.onload = (e) => {
20
- /* read workbook */
21
- const bstr = e.target.result;
22
- const wb = XLSX.read(bstr, { type: 'binary', cellDates: true });
23
- /* read sheets */
24
- for (let i = 0; i < wb.SheetNames.length; i++) {
25
- /* grab sheet */
26
- const wsname = wb.SheetNames[i];
27
- const ws = wb.Sheets[wsname];
28
- /* save data */
29
- const sheet = {
30
- sheet: {
31
- label: wsname,
32
- content: (XLSX.utils.sheet_to_json(ws, { raw: true, defval: '', header: 1 }))
33
- }
34
- };
35
- this.excelWorkbook.push(sheet);
36
- }
37
- /* emit data to suscribers*/
38
- this.onLoadFile.emit({
39
- data: this.excelWorkbook
40
- });
41
- this.disableButton = false;
42
- };
43
- reader.readAsBinaryString(target.files[0]);
44
- }
45
- }
46
- ExcelToJsonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ExcelToJsonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
- ExcelToJsonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: ExcelToJsonComponent, selector: "pli-excel-to-json", outputs: { onLoadFile: "onLoadFile" }, ngImport: i0, template: "<input type=\"file\" [disabled]=\"disableButton\" (change)=\"onFileChange($event)\" multiple=\"false\" />\r\n", styles: [""] });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ExcelToJsonComponent, decorators: [{
49
- type: Component,
50
- args: [{ selector: 'pli-excel-to-json', template: "<input type=\"file\" [disabled]=\"disableButton\" (change)=\"onFileChange($event)\" multiple=\"false\" />\r\n", styles: [""] }]
51
- }], ctorParameters: function () { return []; }, propDecorators: { onLoadFile: [{
52
- type: Output
53
- }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtdG8tanNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZXhjZWwtdG8tanNvbi9leGNlbC10by1qc29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9leGNlbC10by1qc29uL2V4Y2VsLXRvLWpzb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOztBQU83QixNQUFNLE9BQU8sb0JBQW9CO0lBTWhDO1FBSkEsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFWixlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFbkQsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztJQUViLFlBQVksQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXhCLHlCQUF5QjtRQUN6QixNQUFNLE1BQU0sR0FBK0IsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUV4RCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixNQUFNLE1BQU0sR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTVDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUMxQixtQkFBbUI7WUFDbkIsTUFBTSxJQUFJLEdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDckMsTUFBTSxFQUFFLEdBQWtCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUUvRSxpQkFBaUI7WUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM5QyxnQkFBZ0I7Z0JBQ2hCLE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sRUFBRSxHQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUU3QyxlQUFlO2dCQUNmLE1BQU0sS0FBSyxHQUFHO29CQUNiLEtBQUssRUFBRTt3QkFDTixLQUFLLEVBQUUsTUFBTTt3QkFDYixPQUFPLEVBQU8sQ0FDYixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ2xFO3FCQUNEO2lCQUNELENBQUM7Z0JBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0I7WUFFRCw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYTthQUN4QixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUM7UUFFRixNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7O2lIQXhEVyxvQkFBb0I7cUdBQXBCLG9CQUFvQixnR0NSakMsK0dBQ0E7MkZET2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNDLG1CQUFtQjswRUFRbkIsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdwbGktZXhjZWwtdG8tanNvbicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2V4Y2VsLXRvLWpzb24uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2V4Y2VsLXRvLWpzb24uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeGNlbFRvSnNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0ZXhjZWxXb3JrYm9vazogQXJyYXk8YW55PjtcclxuXHRkaXNhYmxlQnV0dG9uID0gZmFsc2U7XHJcblxyXG5cdEBPdXRwdXQoKSBvbkxvYWRGaWxlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG5cdG5nT25Jbml0KCkge31cclxuXHJcblx0b25GaWxlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuXHRcdHRoaXMuZXhjZWxXb3JrYm9vayA9IFtdO1xyXG5cclxuXHRcdC8qIHdpcmUgdXAgZmlsZSByZWFkZXIgKi9cclxuXHRcdGNvbnN0IHRhcmdldDogRGF0YVRyYW5zZmVyID0gPERhdGFUcmFuc2Zlcj5ldmVudC50YXJnZXQ7XHJcblxyXG5cdFx0aWYgKHRhcmdldC5maWxlcy5sZW5ndGggIT09IDEpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXNlIG11bHRpcGxlIGZpbGVzJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5kaXNhYmxlQnV0dG9uID0gdHJ1ZTtcclxuXHRcdGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG5cdFx0cmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuXHRcdFx0LyogcmVhZCB3b3JrYm9vayAqL1xyXG5cdFx0XHRjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcblx0XHRcdGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScsIGNlbGxEYXRlczogdHJ1ZSB9KTtcclxuXHJcblx0XHRcdC8qIHJlYWQgc2hlZXRzICovXHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgd2IuU2hlZXROYW1lcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdC8qIGdyYWIgc2hlZXQgKi9cclxuXHRcdFx0XHRjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbaV07XHJcblx0XHRcdFx0Y29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcblxyXG5cdFx0XHRcdC8qIHNhdmUgZGF0YSAqL1xyXG5cdFx0XHRcdGNvbnN0IHNoZWV0ID0ge1xyXG5cdFx0XHRcdFx0c2hlZXQ6IHtcclxuXHRcdFx0XHRcdFx0bGFiZWw6IHdzbmFtZSxcclxuXHRcdFx0XHRcdFx0Y29udGVudDogPGFueT4oXHJcblx0XHRcdFx0XHRcdFx0WExTWC51dGlscy5zaGVldF90b19qc29uKHdzLCB7IHJhdzogdHJ1ZSwgZGVmdmFsOiAnJywgaGVhZGVyOiAxIH0pXHJcblx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHR0aGlzLmV4Y2VsV29ya2Jvb2sucHVzaChzaGVldCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8qIGVtaXQgZGF0YSB0byBzdXNjcmliZXJzKi9cclxuXHRcdFx0dGhpcy5vbkxvYWRGaWxlLmVtaXQoe1xyXG5cdFx0XHRcdGRhdGE6IHRoaXMuZXhjZWxXb3JrYm9va1xyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRcdHRoaXMuZGlzYWJsZUJ1dHRvbiA9IGZhbHNlO1xyXG5cdFx0fTtcclxuXHJcblx0XHRyZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcblx0fVxyXG59XHJcbiIsIjxpbnB1dCB0eXBlPVwiZmlsZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlQnV0dG9uXCIgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiIG11bHRpcGxlPVwiZmFsc2VcIiAvPlxyXG4iXX0=
@@ -1,86 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { CommonListsComponent } from './common.lists.component';
3
- import { ApplicationBudgetTotal } from 'ng-pli-util';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../services/common.service";
6
- export class FrontofficeCommonsComponent extends CommonListsComponent {
7
- constructor(commonService, cdRef) {
8
- super(commonService, cdRef);
9
- this.commonService = commonService;
10
- this.cdRef = cdRef;
11
- this.toastDuration = 10000;
12
- }
13
- ngOnInit() {
14
- super.ngOnInit();
15
- }
16
- createApplicationBudgetTotalAmount(applicationId, budget, creditAccepted, totalAmount = undefined, totalOwnFunds = undefined, totalFinancing = undefined) {
17
- const budgetApp = this.createBudgetApplication(budget, creditAccepted, totalAmount, totalOwnFunds, totalFinancing);
18
- budget = budgetApp.budget;
19
- const applicationBudgetTotalAmount = {
20
- applicationBudgetTotal: budgetApp.applicationBudgetTotal,
21
- applicationId: applicationId,
22
- creditAccepted: creditAccepted
23
- };
24
- return {
25
- applicationBudgetTotalAmount: applicationBudgetTotalAmount,
26
- budget: budget
27
- };
28
- }
29
- createBudgetApplication(budget, creditAccepted, totalAmount = undefined, totalOwnFunds = undefined, totalFinancing = undefined) {
30
- // Choose if the total budget is from application or legalization process
31
- const isApplicationProcess = creditAccepted == undefined || creditAccepted == false;
32
- let appProcessBudgetTotal = isApplicationProcess
33
- ? budget.applicationProcess
34
- : budget.legalizationProcess;
35
- // Init the amount or add new values
36
- if (appProcessBudgetTotal == undefined || appProcessBudgetTotal == null) {
37
- totalAmount = totalAmount == undefined ? 0 : totalAmount;
38
- totalOwnFunds = totalOwnFunds == undefined ? 0 : totalOwnFunds;
39
- totalFinancing = totalFinancing == undefined ? 0 : totalFinancing;
40
- appProcessBudgetTotal = new ApplicationBudgetTotal();
41
- }
42
- else {
43
- totalAmount =
44
- totalAmount == undefined ? appProcessBudgetTotal.totalAmount : totalAmount;
45
- totalOwnFunds =
46
- totalOwnFunds == undefined ? appProcessBudgetTotal.totalOwnFunds : totalOwnFunds;
47
- totalFinancing =
48
- totalFinancing == undefined ? appProcessBudgetTotal.totalFinancing : totalFinancing;
49
- }
50
- appProcessBudgetTotal.totalAmount = totalAmount;
51
- appProcessBudgetTotal.totalOwnFunds = totalOwnFunds;
52
- appProcessBudgetTotal.totalFinancing = totalFinancing;
53
- if (isApplicationProcess) {
54
- budget.applicationProcess = appProcessBudgetTotal;
55
- }
56
- else {
57
- budget.legalizationProcess = appProcessBudgetTotal;
58
- }
59
- return {
60
- applicationBudgetTotal: appProcessBudgetTotal,
61
- budget: budget
62
- };
63
- }
64
- /**
65
- * Call the validataion service
66
- * @param cnfIniStateId Initial config status id, if not exist, get the config status id from the service
67
- * @returns True if actual date is before than end application date and the stateAppId is equals of the cnfIniStateId
68
- */
69
- async validateCloseApplicationProcess(cnfIniStateId) {
70
- let response = await this.commonService.validateCloseApplicationProcess(this.promCodigo, this.stateId, cnfIniStateId).toPromise();
71
- this.dateClose = response.closeApplicationDate;
72
- return new Promise((resolve) => {
73
- resolve(response.userAllowSave);
74
- });
75
- }
76
- }
77
- FrontofficeCommonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FrontofficeCommonsComponent, deps: [{ token: i1.CommonService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
78
- FrontofficeCommonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: FrontofficeCommonsComponent, selector: "app-frontoffice-commons", usesInheritance: true, ngImport: i0, template: '', isInline: true });
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FrontofficeCommonsComponent, decorators: [{
80
- type: Component,
81
- args: [{
82
- selector: 'app-frontoffice-commons',
83
- template: ''
84
- }]
85
- }], ctorParameters: function () { return [{ type: i1.CommonService }, { type: i0.ChangeDetectorRef }]; } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRvZmZpY2UuY29tbW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZnJvbnRvZmZpY2UuY29tbW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTXhFLE1BQU0sT0FBZ0IsMkJBQTRCLFNBQVEsb0JBQW9CO0lBUTdFLFlBQXNCLGFBQTRCLEVBQVksS0FBd0I7UUFDckYsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQURQLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVksVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFQdEYsa0JBQWEsR0FBVyxLQUFLLENBQUM7SUFTOUIsQ0FBQztJQUVELFFBQVE7UUFDUCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGtDQUFrQyxDQUNqQyxhQUFxQixFQUNyQixNQUF5QixFQUN6QixjQUF1QixFQUN2QixjQUFzQixTQUFTLEVBQy9CLGdCQUF3QixTQUFTLEVBQ2pDLGlCQUF5QixTQUFTO1FBRWxDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FDN0MsTUFBTSxFQUNOLGNBQWMsRUFDZCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGNBQWMsQ0FDZCxDQUFDO1FBQ0YsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDMUIsTUFBTSw0QkFBNEIsR0FBRztZQUNwQyxzQkFBc0IsRUFBRSxTQUFTLENBQUMsc0JBQXNCO1lBQ3hELGFBQWEsRUFBRSxhQUFhO1lBQzVCLGNB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dGVjdG9yUmVmLCBPbkRlc3Ryb3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25MaXN0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tbW9uLmxpc3RzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uQnVkZ2V0LCBBcHBsaWNhdGlvbkJ1ZGdldFRvdGFsIH0gZnJvbSAnbmctcGxpLXV0aWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1mcm9udG9mZmljZS1jb21tb25zJyxcclxuICAgIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnJvbnRvZmZpY2VDb21tb25zQ29tcG9uZW50IGV4dGVuZHMgQ29tbW9uTGlzdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdHRvYXN0RHVyYXRpb246IG51bWJlciA9IDEwMDAwO1xyXG5cdC8vIFRydWUgSWYgYWN0dWFsIGRhdGUgaXMgYmVmb3JlIHRoYW4gZW5kIGFwcGxpY2F0aW9uIGRhdGVcclxuXHRkYXRlQ2xvc2U6IGJvb2xlYW47XHJcblx0cHJvbUNvZGlnbzogbnVtYmVyO1xyXG5cdHN0YXRlSWQ6IG51bWJlcjtcclxuXHRzdGF0ZU5hbWU6IHN0cmluZztcclxuXHJcblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsIHByb3RlY3RlZCBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHRcdHN1cGVyKGNvbW1vblNlcnZpY2UsIGNkUmVmKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0c3VwZXIubmdPbkluaXQoKTtcclxuXHR9XHJcblxyXG5cdGNyZWF0ZUFwcGxpY2F0aW9uQnVkZ2V0VG90YWxBbW91bnQoXHJcblx0XHRhcHBsaWNhdGlvbklkOiBzdHJpbmcsXHJcblx0XHRidWRnZXQ6IEFwcGxpY2F0aW9uQnVkZ2V0LFxyXG5cdFx0Y3JlZGl0QWNjZXB0ZWQ6IGJvb2xlYW4sXHJcblx0XHR0b3RhbEFtb3VudDogbnVtYmVyID0gdW5kZWZpbmVkLFxyXG5cdFx0dG90YWxPd25GdW5kczogbnVtYmVyID0gdW5kZWZpbmVkLFxyXG5cdFx0dG90YWxGaW5hbmNpbmc6IG51bWJlciA9IHVuZGVmaW5lZFxyXG5cdCk6IGFueSB7XHJcblx0XHRjb25zdCBidWRnZXRBcHAgPSB0aGlzLmNyZWF0ZUJ1ZGdldEFwcGxpY2F0aW9uKFxyXG5cdFx0XHRidWRnZXQsXHJcblx0XHRcdGNyZWRpdEFjY2VwdGVkLFxyXG5cdFx0XHR0b3RhbEFtb3VudCxcclxuXHRcdFx0dG90YWxPd25GdW5kcyxcclxuXHRcdFx0dG90YWxGaW5hbmNpbmdcclxuXHRcdCk7XHJcblx0XHRidWRnZXQgPSBidWRnZXRBcHAuYnVkZ2V0O1xyXG5cdFx0Y29uc3QgYXBwbGljYXRpb25CdWRnZXRUb3RhbEFtb3VudCA9IHtcclxuXHRcdFx0YXBwbGljYXRpb25CdWRnZXRUb3RhbDogYnVkZ2V0QXBwLmFwcGxpY2F0aW9uQnVkZ2V0VG90YWwsXHJcblx0XHRcdGFwcGxpY2F0aW9uSWQ6IGFwcGxpY2F0aW9uSWQsXHJcblx0XHRcdGNyZWRpdEFjY2VwdGVkOiBjcmVkaXRBY2NlcHRlZFxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdGFwcGxpY2F0aW9uQnVkZ2V0VG90YWxBbW91bnQ6IGFwcGxpY2F0aW9uQnVkZ2V0VG90YWxBbW91bnQsXHJcblx0XHRcdGJ1ZGdldDogYnVkZ2V0XHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0Y3JlYXRlQnVkZ2V0QXBwbGljYXRpb24oXHJcblx0XHRidWRnZXQ6IEFwcGxpY2F0aW9uQnVkZ2V0LFxyXG5cdFx0Y3JlZGl0QWNjZXB0ZWQ6IGJvb2xlYW4sXHJcblx0XHR0b3RhbEFtb3VudDogbnVtYmVyID0gdW5kZWZpbmVkLFxyXG5cdFx0dG90YWxPd25GdW5kczogbnVtYmVyID0gdW5kZWZpbmVkLFxyXG5cdFx0dG90YWxGaW5hbmNpbmc6IG51bWJlciA9IHVuZGVmaW5lZFxyXG5cdCk6IGFueSB7XHJcblx0XHQvLyBDaG9vc2UgaWYgdGhlIHRvdGFsIGJ1ZGdldCBpcyBmcm9tIGFwcGxpY2F0aW9uIG9yIGxlZ2FsaXphdGlvbiBwcm9jZXNzXHJcblx0XHRjb25zdCBpc0FwcGxpY2F0aW9uUHJvY2VzcyA9IGNyZWRpdEFjY2VwdGVkID09IHVuZGVmaW5lZCB8fCBjcmVkaXRBY2NlcHRlZCA9PSBmYWxzZTtcclxuXHRcdGxldCBhcHBQcm9jZXNzQnVkZ2V0VG90YWwgPSBpc0FwcGxpY2F0aW9uUHJvY2Vzc1xyXG5cdFx0XHQ/IGJ1ZGdldC5hcHBsaWNhdGlvblByb2Nlc3NcclxuXHRcdFx0OiBidWRnZXQubGVnYWxpemF0aW9uUHJvY2VzcztcclxuXHRcdC8vIEluaXQgdGhlIGFtb3VudCBvciBhZGQgbmV3IHZhbHVlc1xyXG5cdFx0aWYgKGFwcFByb2Nlc3NCdWRnZXRUb3RhbCA9PSB1bmRlZmluZWQgfHwgYXBwUHJvY2Vzc0J1ZGdldFRvdGFsID09IG51bGwpIHtcclxuXHRcdFx0dG90YWxBbW91bnQgPSB0b3RhbEFtb3VudCA9PSB1bmRlZmluZWQgPyAwIDogdG90YWxBbW91bnQ7XHJcblx0XHRcdHRvdGFsT3duRnVuZHMgPSB0b3RhbE93bkZ1bmRzID09IHVuZGVmaW5lZCA/IDAgOiB0b3RhbE93bkZ1bmRzO1xyXG5cdFx0XHR0b3RhbEZpbmFuY2luZyA9IHRvdGFsRmluYW5jaW5nID09IHVuZGVmaW5lZCA/IDAgOiB0b3RhbEZpbmFuY2luZztcclxuXHRcdFx0YXBwUHJvY2Vzc0J1ZGdldFRvdGFsID0gbmV3IEFwcGxpY2F0aW9uQnVkZ2V0VG90YWwoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRvdGFsQW1vdW50ID1cclxuXHRcdFx0XHR0b3RhbEFtb3VudCA9PSB1bmRlZmluZWQgPyBhcHBQcm9jZXNzQnVkZ2V0VG90YWwudG90YWxBbW91bnQgOiB0b3RhbEFtb3VudDtcclxuXHRcdFx0dG90YWxPd25GdW5kcyA9XHJcblx0XHRcdFx0dG90YWxPd25GdW5kcyA9PSB1bmRlZmluZWQgPyBhcHBQcm9jZXNzQnVkZ2V0VG90YWwudG90YWxPd25GdW5kcyA6IHRvdGFsT3duRnVuZHM7XHJcblx0XHRcdHRvdGFsRmluYW5jaW5nID1cclxuXHRcdFx0XHR0b3RhbEZpbmFuY2luZyA9PSB1bmRlZmluZWQgPyBhcHBQcm9jZXNzQnVkZ2V0VG90YWwudG90YWxGaW5hbmNpbmcgOiB0b3RhbEZpbmFuY2luZztcclxuXHRcdH1cclxuXHRcdGFwcFByb2Nlc3NCdWRnZXRUb3RhbC50b3RhbEFtb3VudCA9IHRvdGFsQW1vdW50O1xyXG5cdFx0YXBwUHJvY2Vzc0J1ZGdldFRvdGFsLnRvdGFsT3duRnVuZHMgPSB0b3RhbE93bkZ1bmRzO1xyXG5cdFx0YXBwUHJvY2Vzc0J1ZGdldFRvdGFsLnRvdGFsRmluYW5jaW5nID0gdG90YWxGaW5hbmNpbmc7XHJcblx0XHRpZiAoaXNBcHBsaWNhdGlvblByb2Nlc3MpIHtcclxuXHRcdFx0YnVkZ2V0LmFwcGxpY2F0aW9uUHJvY2VzcyA9IGFwcFByb2Nlc3NCdWRnZXRUb3RhbDtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGJ1ZGdldC5sZWdhbGl6YXRpb25Qcm9jZXNzID0gYXBwUHJvY2Vzc0J1ZGdldFRvdGFsO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0YXBwbGljYXRpb25CdWRnZXRUb3RhbDogYXBwUHJvY2Vzc0J1ZGdldFRvdGFsLFxyXG5cdFx0XHRidWRnZXQ6IGJ1ZGdldFxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENhbGwgdGhlIHZhbGlkYXRhaW9uIHNlcnZpY2VcclxuXHQgKiBAcGFyYW0gY25mSW5pU3RhdGVJZCBJbml0aWFsIGNvbmZpZyBzdGF0dXMgaWQsIGlmIG5vdCBleGlzdCwgZ2V0IHRoZSBjb25maWcgc3RhdHVzIGlkIGZyb20gdGhlIHNlcnZpY2VcclxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIGFjdHVhbCBkYXRlIGlzIGJlZm9yZSB0aGFuIGVuZCBhcHBsaWNhdGlvbiBkYXRlIGFuZCB0aGUgc3RhdGVBcHBJZCBpcyBlcXVhbHMgb2YgdGhlIGNuZkluaVN0YXRlSWRcclxuXHQgKi9cclxuXHRhc3luYyB2YWxpZGF0ZUNsb3NlQXBwbGljYXRpb25Qcm9jZXNzKGNuZkluaVN0YXRlSWQ/OiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xyXG5cdFx0bGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jb21tb25TZXJ2aWNlLnZhbGlkYXRlQ2xvc2VBcHBsaWNhdGlvblByb2Nlc3MoXHJcblx0XHRcdHRoaXMucHJvbUNvZGlnbyxcclxuXHRcdFx0dGhpcy5zdGF0ZUlkLFxyXG5cdFx0XHRjbmZJbmlTdGF0ZUlkXHJcblx0XHQpLnRvUHJvbWlzZSgpO1xyXG5cdFx0dGhpcy5kYXRlQ2xvc2UgPSByZXNwb25zZS5jbG9zZUFwcGxpY2F0aW9uRGF0ZTtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG5cdFx0XHRyZXNvbHZlKHJlc3BvbnNlLnVzZXJBbGxvd1NhdmUpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -1,162 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- //import { PDFDocumentProxy } from 'ng2-pdf-viewer';
3
- // import {
4
- // GoogleVisionParameters,
5
- // GoogleVisionRequest,
6
- // GoogleVisionResponse,
7
- // GoogleVisionResponseData
8
- // } from 'ng-pli-util';
9
- import Cropper from 'cropperjs';
10
- import html2canvas from 'html2canvas';
11
- import "jquery";
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "../../services/pdf-analyzer.service";
14
- import * as i2 from "@angular/forms";
15
- import * as i3 from "@angular/common";
16
- export class PdfAnalyzerComponent {
17
- constructor(pdfAnalyzerService) {
18
- this.pdfAnalyzerService = pdfAnalyzerService;
19
- this.totalPages = 0;
20
- this.currentpage = 1;
21
- this.isCropImage = false;
22
- this.instructivo = true;
23
- this.render_text = true;
24
- this.show_all = false;
25
- this.original_size = true;
26
- this.fit_to_page = false;
27
- this.pdfSrc = "";
28
- this.textToCompare = "";
29
- this.labelToCompare = "";
30
- // @Input()
31
- // textToCompare: String = "";
32
- // @Input()
33
- // textToCompare: String = "";
34
- this.documentAnalyzed = new EventEmitter();
35
- }
36
- ngOnInit() {
37
- }
38
- // Zoom Out Image
39
- zoomOut() {
40
- this.cropper.zoom(0.1);
41
- }
42
- // Zoom In Image
43
- zoomIn() {
44
- this.cropper.zoom(-0.1);
45
- }
46
- // Range slider for zooming the image
47
- onRange(event) {
48
- this.cropper.zoomTo(event.target.value);
49
- }
50
- // perform the rotate functionality on image
51
- onRotate() {
52
- this.cropper.rotate(-90);
53
- }
54
- // show the previous page
55
- previous() {
56
- if (this.currentpage > 0) {
57
- if (this.currentpage == 1) {
58
- this.currentpage = this.totalPages;
59
- }
60
- else {
61
- this.currentpage--;
62
- }
63
- }
64
- }
65
- // show the next page
66
- next() {
67
- if (this.totalPages > this.currentpage) {
68
- this.currentpage++;
69
- }
70
- else {
71
- this.currentpage = 1;
72
- }
73
- }
74
- crop() {
75
- html2canvas(document.querySelector(".pdf-container")).then((canvas) => {
76
- let ctx = canvas.getContext('2d');
77
- ctx.scale(3, 3);
78
- let image = canvas.toDataURL("image/png").replace("image/png", "image/png");
79
- $("#cropper-img").attr('src', image);
80
- $('#cropper-img').addClass('ready');
81
- this.isCropImage = true;
82
- let cropImg = document.getElementById('cropper-img');
83
- this.cropper = new Cropper(cropImg, {
84
- zoomable: true,
85
- background: false,
86
- guides: false,
87
- highlight: false,
88
- movable: false,
89
- aspectRatio: 4 / 3,
90
- ready: (e) => {
91
- let cropper = this.cropper;
92
- },
93
- crop: (e) => {
94
- }
95
- });
96
- });
97
- }
98
- saveCapture() {
99
- if (this.isCropImage) {
100
- let canvas = this.cropper.getCroppedCanvas();
101
- this.getCanvasToImage(canvas);
102
- }
103
- else {
104
- html2canvas(document.querySelector(".pdf-container")).then((canvas) => {
105
- this.getCanvasToImage(canvas);
106
- });
107
- }
108
- }
109
- getCanvasToImage(canvas) {
110
- let ctx = canvas.getContext('2d');
111
- ctx.scale(3, 3);
112
- let image = canvas.toDataURL("image/png").replace("image/png", "image/png");
113
- this.capture = image;
114
- console.log(image);
115
- }
116
- reset() {
117
- this.isCropImage = false;
118
- this.capture = null;
119
- this.cropper.clear();
120
- this.cropper.destroy();
121
- }
122
- // afterLoadComplete(pdf: PDFDocumentProxy) {
123
- // this.totalPages = pdf.numPages;
124
- // }
125
- validateImage() {
126
- let base64 = this.capture.substring(22, this.capture.length);
127
- this.documentAnalyzed.emit(base64);
128
- // let parameters: any = {
129
- // requests: [
130
- // {
131
- // image: {
132
- // content: base64
133
- // },
134
- // features: [
135
- // {
136
- // type: "TEXT_DETECTION"
137
- // }
138
- // ]
139
- // }
140
- // ]
141
- // }
142
- // this.pdfAnalyzerService.getTextOfImage(parameters).subscribe((response: any) => {
143
- // let textDetected = response[0].fullTextAnnotation.text;
144
- // console.log(textDetected);
145
- // });
146
- }
147
- }
148
- PdfAnalyzerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PdfAnalyzerComponent, deps: [{ token: i1.PdfAnalyzerService }], target: i0.ɵɵFactoryTarget.Component });
149
- PdfAnalyzerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: PdfAnalyzerComponent, selector: "pli-pdf-analyzer", inputs: { pdfSrc: "pdfSrc", textToCompare: "textToCompare", labelToCompare: "labelToCompare" }, outputs: { documentAnalyzed: "documentAnalyzed" }, ngImport: i0, template: "<div>\r\n\r\n <div class=\"checkInstructivo\">\r\n <label>\r\n <input type=\"checkbox\" [(ngModel)]=\"instructivo\" />Instructivo\r\n </label>\r\n </div>\r\n <div *ngIf=\"!instructivo\" class=\"description\">\r\n Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong>\r\n\r\n </div>\r\n <div *ngIf=\"instructivo\" class=\"description\">\r\n 1. Darle clic en el bot\u00F3n <span class=\"fa fa-crop\"></span>\r\n <br> 2. Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong> con el mouse dando clic y arrastrando hasta completar la selecci\u00F3n o cambiando de tama\u00F1o el recuadro que aparece en pantalla\r\n <br> 3. Una vez seleccionado dar clic en el bot\u00F3n <span class=\"fa fa-camera\"></span> para previsualizarlo mejor\r\n <br> 4. En caso de haberse equivocado puede darle clic al bot\u00F3n rojo \"Reintentar\" o al bot\u00F3n <span class=\"fa fa-undo\"></span> para volver al paso 1\r\n <br> 5. Cuando ya este correcta la selecci\u00F3n darle clic al bot\u00F3n verde \"Guardar Captura\" para proceder con el proceso\r\n </div>\r\n <div class=\"pdf-visualizer-controls\">\r\n <a href=\"Javascript:;\" title=\"Anterior\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"previous()\">\r\n <span class=\"fa fa-angle-left\"></span>\r\n </a>\r\n <span class=\"btn btn-outline-secondary\">P\u00E1gina: {{currentpage}} / {{totalPages}}</span>\r\n <a href=\"Javascript:;\" title=\"Siguiente\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"next()\">\r\n <span class=\"fa fa-angle-right\"></span>\r\n </a>\r\n\r\n <a href=\"Javascript:;\" title=\"Acercar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomOut()\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </a>\r\n\r\n\r\n <a href=\"Javascript:;\" title=\"Alejar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomIn()\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </a>\r\n </div>\r\n <div class=\"pdf-visualizer-controls\">\r\n <a href=\"Javascript:;\" title=\"Capturar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"!isCropImage\" (click)=\"crop()\">\r\n <span class=\"fa fa-crop fa-2x\"></span>\r\n </a>\r\n <a href=\"Javascript:;\" title=\"Guardar Captura\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"saveCapture()\">\r\n <span class=\"fa fa-camera fa-2x\"></span>\r\n </a>\r\n <a href=\"Javascript:;\" title=\"Deshacer\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage\" (click)=\"reset()\">\r\n <span class=\"fa fa-undo fa-2x\"></span>\r\n </a>\r\n </div>\r\n\r\n\r\n <div class=\"pdf-visualizer-dashboard\" *ngIf=\"!capture\">\r\n <div class=\"pdf-container pdf-visualizer-canvas top-margin\" [hidden]=\"isCropImage\">\r\n <!-- <pdf-viewer [(src)]=\"pdfSrc\" [(render-text)]=\"render_text\" [(page)]=\"currentpage\" [(show-all)]=\"show_all\" [(original-size)]=\"original_size\" [(fit-to-page)]=\"fit_to_page\" (after-load-complete)=\"afterLoadComplete($event)\" style=\"display: block;\">\r\n </pdf-viewer> -->\r\n </div>\r\n\r\n <div class=\"img-container\" [hidden]=\"!isCropImage\">\r\n <img #image src=\"\" id=\"cropper-img\" crossorigin>\r\n </div>\r\n </div>\r\n\r\n <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\r\n <img [src]=\"capture\">\r\n </div>\r\n <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\r\n <button class=\"btns btn-success btn-lg\" (click)=\"validateImage()\" lang=\"es\">Guardar Captura</button>\r\n\r\n <button class=\"btnr btn-success btn-lg\" (click)=\"reset()\" lang=\"es\">Reintentar</button>\r\n </div>\r\n</div>", styles: [".img-visualizer-dashboard,.pdf-visualizer-dashboard,.pdf-visualizer-controls{background-color:#f5f5f5;padding:15px}.pdf-visualizer-dashboard{border-bottom:1px solid #eee;border-top:1px solid #eee}.img-visualizer-dashboard{text-align:center;border-bottom:1px solid #eee;border-top:1px solid #eee}.pdf-visualizer-canvas{cursor:move}button.btns{background-color:green;color:#fff;position:relative;left:0px;margin:15px}button.btns:hover{background-color:#006400}button.btnr{background-color:red;color:#fff;position:relative;left:0px;margin:15px}button.btnr:hover{background-color:#8b0000}.description{padding:0 10px;font-size:14px;font-weight:300;font-family:Roboto,sans-serif;margin-bottom:1.5em}.checkInstructivo{float:right;text-align:right}\n"], directives: [{ type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PdfAnalyzerComponent, decorators: [{
151
- type: Component,
152
- args: [{ selector: 'pli-pdf-analyzer', template: "<div>\r\n\r\n <div class=\"checkInstructivo\">\r\n <label>\r\n <input type=\"checkbox\" [(ngModel)]=\"instructivo\" />Instructivo\r\n </label>\r\n </div>\r\n <div *ngIf=\"!instructivo\" class=\"description\">\r\n Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong>\r\n\r\n </div>\r\n <div *ngIf=\"instructivo\" class=\"description\">\r\n 1. Darle clic en el bot\u00F3n <span class=\"fa fa-crop\"></span>\r\n <br> 2. Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong> con el mouse dando clic y arrastrando hasta completar la selecci\u00F3n o cambiando de tama\u00F1o el recuadro que aparece en pantalla\r\n <br> 3. Una vez seleccionado dar clic en el bot\u00F3n <span class=\"fa fa-camera\"></span> para previsualizarlo mejor\r\n <br> 4. En caso de haberse equivocado puede darle clic al bot\u00F3n rojo \"Reintentar\" o al bot\u00F3n <span class=\"fa fa-undo\"></span> para volver al paso 1\r\n <br> 5. Cuando ya este correcta la selecci\u00F3n darle clic al bot\u00F3n verde \"Guardar Captura\" para proceder con el proceso\r\n </div>\r\n <div class=\"pdf-visualizer-controls\">\r\n <a href=\"Javascript:;\" title=\"Anterior\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"previous()\">\r\n <span class=\"fa fa-angle-left\"></span>\r\n </a>\r\n <span class=\"btn btn-outline-secondary\">P\u00E1gina: {{currentpage}} / {{totalPages}}</span>\r\n <a href=\"Javascript:;\" title=\"Siguiente\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"next()\">\r\n <span class=\"fa fa-angle-right\"></span>\r\n </a>\r\n\r\n <a href=\"Javascript:;\" title=\"Acercar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomOut()\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </a>\r\n\r\n\r\n <a href=\"Javascript:;\" title=\"Alejar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomIn()\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </a>\r\n </div>\r\n <div class=\"pdf-visualizer-controls\">\r\n <a href=\"Javascript:;\" title=\"Capturar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"!isCropImage\" (click)=\"crop()\">\r\n <span class=\"fa fa-crop fa-2x\"></span>\r\n </a>\r\n <a href=\"Javascript:;\" title=\"Guardar Captura\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"saveCapture()\">\r\n <span class=\"fa fa-camera fa-2x\"></span>\r\n </a>\r\n <a href=\"Javascript:;\" title=\"Deshacer\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage\" (click)=\"reset()\">\r\n <span class=\"fa fa-undo fa-2x\"></span>\r\n </a>\r\n </div>\r\n\r\n\r\n <div class=\"pdf-visualizer-dashboard\" *ngIf=\"!capture\">\r\n <div class=\"pdf-container pdf-visualizer-canvas top-margin\" [hidden]=\"isCropImage\">\r\n <!-- <pdf-viewer [(src)]=\"pdfSrc\" [(render-text)]=\"render_text\" [(page)]=\"currentpage\" [(show-all)]=\"show_all\" [(original-size)]=\"original_size\" [(fit-to-page)]=\"fit_to_page\" (after-load-complete)=\"afterLoadComplete($event)\" style=\"display: block;\">\r\n </pdf-viewer> -->\r\n </div>\r\n\r\n <div class=\"img-container\" [hidden]=\"!isCropImage\">\r\n <img #image src=\"\" id=\"cropper-img\" crossorigin>\r\n </div>\r\n </div>\r\n\r\n <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\r\n <img [src]=\"capture\">\r\n </div>\r\n <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\r\n <button class=\"btns btn-success btn-lg\" (click)=\"validateImage()\" lang=\"es\">Guardar Captura</button>\r\n\r\n <button class=\"btnr btn-success btn-lg\" (click)=\"reset()\" lang=\"es\">Reintentar</button>\r\n </div>\r\n</div>", styles: [".img-visualizer-dashboard,.pdf-visualizer-dashboard,.pdf-visualizer-controls{background-color:#f5f5f5;padding:15px}.pdf-visualizer-dashboard{border-bottom:1px solid #eee;border-top:1px solid #eee}.img-visualizer-dashboard{text-align:center;border-bottom:1px solid #eee;border-top:1px solid #eee}.pdf-visualizer-canvas{cursor:move}button.btns{background-color:green;color:#fff;position:relative;left:0px;margin:15px}button.btns:hover{background-color:#006400}button.btnr{background-color:red;color:#fff;position:relative;left:0px;margin:15px}button.btnr:hover{background-color:#8b0000}.description{padding:0 10px;font-size:14px;font-weight:300;font-family:Roboto,sans-serif;margin-bottom:1.5em}.checkInstructivo{float:right;text-align:right}\n"] }]
153
- }], ctorParameters: function () { return [{ type: i1.PdfAnalyzerService }]; }, propDecorators: { pdfSrc: [{
154
- type: Input
155
- }], textToCompare: [{
156
- type: Input
157
- }], labelToCompare: [{
158
- type: Input
159
- }], documentAnalyzed: [{
160
- type: Output
161
- }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWFuYWx5emVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9wZGYtYW5hbHl6ZXIvcGRmLWFuYWx5emVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9wZGYtYW5hbHl6ZXIvcGRmLWFuYWx5emVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQVUsS0FBSyxFQUN4QixNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLG9EQUFvRDtBQUNwRCxXQUFXO0FBQ1gsNEJBQTRCO0FBQzVCLHlCQUF5QjtBQUN6QiwwQkFBMEI7QUFDMUIsNkJBQTZCO0FBQzdCLHdCQUF3QjtBQUN4QixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sUUFBUSxDQUFDOzs7OztBQVFoQixNQUFNLE9BQU8sb0JBQW9CO0lBa0MvQixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQS9CbkQsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUV4QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUc3QixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUVuQyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRzdCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFHakIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFHM0IsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFFNUIsV0FBVztRQUNYLDhCQUE4QjtRQUU5QixXQUFXO1FBQ1gsOEJBQThCO1FBRzlCLHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRUEsQ0FBQztJQUUvRCxRQUFRO0lBQ1IsQ0FBQztJQUVELGlCQUFpQjtJQUNWLE9BQU87UUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN4QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ1QsTUFBTTtRQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVELHFDQUFxQztJQUM5QixPQUFPLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCw0Q0FBNEM7SUFDckMsUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELHlCQUF5QjtJQUNsQixRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRTtZQUN4QixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDcEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQscUJBQXFCO0lBQ2QsSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU0sSUFBSTtRQUNULFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDeEYsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoQixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDNUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtZQUN2QixJQUFJLE9BQU8sR0FBUSxRQUFRLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNsQyxRQUFRLEVBQUUsSUFBSTtnQkFDZCxVQUFVLEVBQUUsS0FBSztnQkFDakIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDN0IsQ0FBQztnQkFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUM5QjthQUFNO1lBQ0wsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDeEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQy9CLENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBVztRQUNsQyxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0Msb0NBQW9DO0lBQ3BDLElBQUk7SUFFRyxhQUFhO1FBQ2xCLElBQUksTUFBTSxHQUFZLElBQUksQ0FBQyxPQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUcsSUFBSSxDQUFDLE9BQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQywwQkFBMEI7UUFDMUIsZ0JBQWdCO1FBQ2hCLFFBQVE7UUFDUixpQkFBaUI7UUFDakIsMEJBQTBCO1FBQzFCLFdBQVc7UUFDWCxvQkFBb0I7UUFDcEIsWUFBWTtRQUNaLG1DQUFtQztRQUNuQyxZQUFZO1FBQ1osVUFBVTtRQUNWLFFBQVE7UUFDUixNQUFNO1FBQ04sSUFBSTtRQUVKLG9GQUFvRjtRQUNwRiw0REFBNEQ7UUFFNUQsK0JBQStCO1FBQy9CLE1BQU07SUFFUixDQUFDOztpSEEvSlUsb0JBQW9CO3FHQUFwQixvQkFBb0IsMk1DdEJqQyxpdklBb0VNOzJGRDlDTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCO3lHQXFCNUIsTUFBTTtzQkFETCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBVU4sZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vaW1wb3J0IHsgUERGRG9jdW1lbnRQcm94eSB9IGZyb20gJ25nMi1wZGYtdmlld2VyJztcclxuLy8gaW1wb3J0IHtcclxuLy8gICBHb29nbGVWaXNpb25QYXJhbWV0ZXJzLFxyXG4vLyAgIEdvb2dsZVZpc2lvblJlcXVlc3QsXHJcbi8vICAgR29vZ2xlVmlzaW9uUmVzcG9uc2UsXHJcbi8vICAgR29vZ2xlVmlzaW9uUmVzcG9uc2VEYXRhXHJcbi8vIH0gZnJvbSAnbmctcGxpLXV0aWwnO1xyXG5pbXBvcnQgQ3JvcHBlciBmcm9tICdjcm9wcGVyanMnO1xyXG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xyXG5pbXBvcnQgXCJqcXVlcnlcIjtcclxuaW1wb3J0IHsgUGRmQW5hbHl6ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGRmLWFuYWx5emVyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwbGktcGRmLWFuYWx5emVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGRmLWFuYWx5emVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wZGYtYW5hbHl6ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGRmQW5hbHl6ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgcHVibGljIHRvdGFsUGFnZXM6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGN1cnJlbnRwYWdlOiBudW1iZXIgPSAxO1xyXG4gIHByaXZhdGUgY3JvcHBlciE6IENyb3BwZXI7XHJcbiAgcHVibGljIGlzQ3JvcEltYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNhcHR1cmU6IGFueTtcclxuXHJcbiAgcHVibGljIGluc3RydWN0aXZvOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcmVuZGVyX3RleHQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dfYWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb3JpZ2luYWxfc2l6ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgZml0X3RvX3BhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwZGZTcmM6IGFueSA9IFwiXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGV4dFRvQ29tcGFyZTogU3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KClcclxuICBsYWJlbFRvQ29tcGFyZTogU3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLy8gQElucHV0KClcclxuICAvLyB0ZXh0VG9Db21wYXJlOiBTdHJpbmcgPSBcIlwiO1xyXG5cclxuICAvLyBASW5wdXQoKVxyXG4gIC8vIHRleHRUb0NvbXBhcmU6IFN0cmluZyA9IFwiXCI7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGRvY3VtZW50QW5hbHl6ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGRmQW5hbHl6ZXJTZXJ2aWNlOiBQZGZBbmFseXplclNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8vIFpvb20gT3V0IEltYWdlXHJcbiAgcHVibGljIHpvb21PdXQoKSB7XHJcbiAgICB0aGlzLmNyb3BwZXIuem9vbSgwLjEpXHJcbiAgfVxyXG5cclxuICAvLyBab29tIEluIEltYWdlXHJcbiAgcHVibGljIHpvb21JbigpIHtcclxuICAgIHRoaXMuY3JvcHBlci56b29tKC0wLjEpXHJcbiAgfVxyXG5cclxuICAvLyBSYW5nZSBzbGlkZXIgZm9yIHpvb21pbmcgdGhlIGltYWdlXHJcbiAgcHVibGljIG9uUmFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jcm9wcGVyLnpvb21UbyhldmVudC50YXJnZXQudmFsdWUpXHJcbiAgfVxyXG5cclxuICAvLyBwZXJmb3JtIHRoZSByb3RhdGUgZnVuY3Rpb25hbGl0eSBvbiBpbWFnZVxyXG4gIHB1YmxpYyBvblJvdGF0ZSgpIHtcclxuICAgIHRoaXMuY3JvcHBlci5yb3RhdGUoLTkwKVxyXG4gIH1cclxuXHJcbiAgLy8gc2hvdyB0aGUgcHJldmlvdXMgcGFnZVxyXG4gIHB1YmxpYyBwcmV2aW91cygpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRwYWdlID4gMCkge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50cGFnZSA9PSAxKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IHRoaXMudG90YWxQYWdlcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRwYWdlLS07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHNob3cgdGhlIG5leHQgcGFnZVxyXG4gIHB1YmxpYyBuZXh0KCkge1xyXG4gICAgaWYgKHRoaXMudG90YWxQYWdlcyA+IHRoaXMuY3VycmVudHBhZ2UpIHtcclxuICAgICAgdGhpcy5jdXJyZW50cGFnZSsrO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JvcCgpIHtcclxuICAgIGh0bWwyY2FudmFzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucGRmLWNvbnRhaW5lclwiKSBhcyBIVE1MRWxlbWVudCkudGhlbigoY2FudmFzOiBhbnkpID0+IHtcclxuICAgICAgbGV0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICBjdHguc2NhbGUoMywgMyk7XHJcbiAgICAgIGxldCBpbWFnZSA9IGNhbnZhcy50b0RhdGFVUkwoXCJpbWFnZS9wbmdcIikucmVwbGFjZShcImltYWdlL3BuZ1wiLCBcImltYWdlL3BuZ1wiKTtcclxuICAgICAgJChcIiNjcm9wcGVyLWltZ1wiKS5hdHRyKCdzcmMnLCBpbWFnZSk7XHJcbiAgICAgICQoJyNjcm9wcGVyLWltZycpLmFkZENsYXNzKCdyZWFkeScpO1xyXG4gICAgICB0aGlzLmlzQ3JvcEltYWdlID0gdHJ1ZVxyXG4gICAgICBsZXQgY3JvcEltZzogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nyb3BwZXItaW1nJyk7XHJcbiAgICAgIHRoaXMuY3JvcHBlciA9IG5ldyBDcm9wcGVyKGNyb3BJbWcsIHtcclxuICAgICAgICB6b29tYWJsZTogdHJ1ZSxcclxuICAgICAgICBiYWNrZ3JvdW5kOiBmYWxzZSxcclxuICAgICAgICBndWlkZXM6IGZhbHNlLFxyXG4gICAgICAgIGhpZ2hsaWdodDogZmFsc2UsXHJcbiAgICAgICAgbW92YWJsZTogZmFsc2UsXHJcbiAgICAgICAgYXNwZWN0UmF0aW86IDQgLyAzLFxyXG4gICAgICAgIHJlYWR5OiAoZSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGNyb3BwZXIgPSB0aGlzLmNyb3BwZXI7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjcm9wOiAoZSkgPT4ge1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVDYXB0dXJlKCkge1xyXG4gICAgaWYgKHRoaXMuaXNDcm9wSW1hZ2UpIHtcclxuICAgICAgbGV0IGNhbnZhcyA9IHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkQ2FudmFzKCk7XHJcbiAgICAgIHRoaXMuZ2V0Q2FudmFzVG9JbWFnZShjYW52YXMpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBodG1sMmNhbnZhcyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnBkZi1jb250YWluZXJcIikgYXMgSFRNTEVsZW1lbnQpLnRoZW4oKGNhbnZhczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZXRDYW52YXNUb0ltYWdlKGNhbnZhcylcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2FudmFzVG9JbWFnZShjYW52YXM6IGFueSkge1xyXG4gICAgbGV0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgY3R4LnNjYWxlKDMsIDMpO1xyXG4gICAgbGV0IGltYWdlID0gY2FudmFzLnRvRGF0YVVSTChcImltYWdlL3BuZ1wiKS5yZXBsYWNlKFwiaW1hZ2UvcG5nXCIsIFwiaW1hZ2UvcG5nXCIpO1xyXG4gICAgdGhpcy5jYXB0dXJlID0gaW1hZ2U7XHJcbiAgICBjb25zb2xlLmxvZyhpbWFnZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmlzQ3JvcEltYWdlID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcHR1cmUgPSBudWxsO1xyXG4gICAgdGhpcy5jcm9wcGVyLmNsZWFyKCk7XHJcbiAgICB0aGlzLmNyb3BwZXIuZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gYWZ0ZXJMb2FkQ29tcGxldGUocGRmOiBQREZEb2N1bWVudFByb3h5KSB7XHJcbiAgLy8gICB0aGlzLnRvdGFsUGFnZXMgPSBwZGYubnVtUGFnZXM7XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgdmFsaWRhdGVJbWFnZSgpIHtcclxuICAgIGxldCBiYXNlNjQ6IFN0cmluZyA9ICh0aGlzLmNhcHR1cmUgYXMgU3RyaW5nKS5zdWJzdHJpbmcoMjIsICh0aGlzLmNhcHR1cmUgYXMgU3RyaW5nKS5sZW5ndGgpO1xyXG5cclxuICAgIHRoaXMuZG9jdW1lbnRBbmFseXplZC5lbWl0KGJhc2U2NCk7XHJcbiAgICAvLyBsZXQgcGFyYW1ldGVyczogYW55ID0ge1xyXG4gICAgLy8gICByZXF1ZXN0czogW1xyXG4gICAgLy8gICAgIHtcclxuICAgIC8vICAgICAgIGltYWdlOiB7XHJcbiAgICAvLyAgICAgICAgIGNvbnRlbnQ6IGJhc2U2NFxyXG4gICAgLy8gICAgICAgfSxcclxuICAgIC8vICAgICAgIGZlYXR1cmVzOiBbXHJcbiAgICAvLyAgICAgICAgIHtcclxuICAgIC8vICAgICAgICAgICB0eXBlOiBcIlRFWFRfREVURUNUSU9OXCJcclxuICAgIC8vICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgXVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgXVxyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIHRoaXMucGRmQW5hbHl6ZXJTZXJ2aWNlLmdldFRleHRPZkltYWdlKHBhcmFtZXRlcnMpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgLy8gICBsZXQgdGV4dERldGVjdGVkID0gcmVzcG9uc2VbMF0uZnVsbFRleHRBbm5vdGF0aW9uLnRleHQ7XHJcblxyXG4gICAgLy8gICBjb25zb2xlLmxvZyh0ZXh0RGV0ZWN0ZWQpO1xyXG4gICAgLy8gfSk7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiIsIjxkaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNoZWNrSW5zdHJ1Y3Rpdm9cIj5cclxuICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImluc3RydWN0aXZvXCIgLz5JbnN0cnVjdGl2b1xyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIhaW5zdHJ1Y3Rpdm9cIiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgU2VsZWNjaW9uYXIgbGEgcGFydGUgZGVsIGRvY3VtZW50byBkb25kZSBzZSBlbmN1ZW50cmEgPHN0cm9uZz57e2xhYmVsVG9Db21wYXJlfX08L3N0cm9uZz5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJpbnN0cnVjdGl2b1wiIGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAxLiBEYXJsZSBjbGljIGVuIGVsIGJvdMOzbiA8c3BhbiBjbGFzcz1cImZhIGZhLWNyb3BcIj48L3NwYW4+XHJcbiAgICAgICAgPGJyPiAyLiBTZWxlY2Npb25hciBsYSBwYXJ0ZSBkZWwgZG9jdW1lbnRvIGRvbmRlIHNlIGVuY3VlbnRyYSA8c3Ryb25nPnt7bGFiZWxUb0NvbXBhcmV9fTwvc3Ryb25nPiBjb24gZWwgbW91c2UgZGFuZG8gY2xpYyB5IGFycmFzdHJhbmRvIGhhc3RhIGNvbXBsZXRhciBsYSBzZWxlY2Npw7NuIG8gY2FtYmlhbmRvIGRlIHRhbWHDsW8gZWwgcmVjdWFkcm8gcXVlIGFwYXJlY2UgZW4gcGFudGFsbGFcclxuICAgICAgICA8YnI+IDMuIFVuYSB2ZXogc2VsZWNjaW9uYWRvIGRhciBjbGljIGVuIGVsIGJvdMOzbiA8c3BhbiBjbGFzcz1cImZhIGZhLWNhbWVyYVwiPjwvc3Bhbj4gcGFyYSBwcmV2aXN1YWxpemFybG8gbWVqb3JcclxuICAgICAgICA8YnI+IDQuIEVuIGNhc28gZGUgaGFiZXJzZSBlcXVpdm9jYWRvIHB1ZWRlIGRhcmxlIGNsaWMgYWwgYm90w7NuIHJvam8gXCJSZWludGVudGFyXCIgbyBhbCBib3TDs24gPHNwYW4gY2xhc3M9XCJmYSBmYS11bmRvXCI+PC9zcGFuPiBwYXJhIHZvbHZlciBhbCBwYXNvIDFcclxuICAgICAgICA8YnI+IDUuIEN1YW5kbyB5YSBlc3RlIGNvcnJlY3RhIGxhIHNlbGVjY2nDs24gZGFybGUgY2xpYyBhbCBib3TDs24gdmVyZGUgXCJHdWFyZGFyIENhcHR1cmFcIiBwYXJhIHByb2NlZGVyIGNvbiBlbCBwcm9jZXNvXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwZGYtdmlzdWFsaXplci1jb250cm9sc1wiPlxyXG4gICAgICAgIDxhIGhyZWY9XCJKYXZhc2NyaXB0OjtcIiB0aXRsZT1cIkFudGVyaW9yXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAoY2xpY2spPVwicHJldmlvdXMoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLWFuZ2xlLWxlZnRcIj48L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiPlDDoWdpbmE6IHt7Y3VycmVudHBhZ2V9fSAvIHt7dG90YWxQYWdlc319PC9zcGFuPlxyXG4gICAgICAgIDxhIGhyZWY9XCJKYXZhc2NyaXB0OjtcIiB0aXRsZT1cIlNpZ3VpZW50ZVwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwidG9wXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm5leHQoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLWFuZ2xlLXJpZ2h0XCI+PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgPGEgaHJlZj1cIkphdmFzY3JpcHQ6O1wiIHRpdGxlPVwiQWNlcmNhclwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwidG9wXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgKm5nSWY9XCJpc0Nyb3BJbWFnZSAmJiAhY2FwdHVyZVwiIChjbGljayk9XCJ6b29tT3V0KClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1zZWFyY2gtcGx1c1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcblxyXG5cclxuICAgICAgICA8YSBocmVmPVwiSmF2YXNjcmlwdDo7XCIgdGl0bGU9XCJBbGVqYXJcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cInRvcFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiICpuZ0lmPVwiaXNDcm9wSW1hZ2UgJiYgIWNhcHR1cmVcIiAoY2xpY2spPVwiem9vbUluKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1zZWFyY2gtbWludXNcIj48L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGRmLXZpc3VhbGl6ZXItY29udHJvbHNcIj5cclxuICAgICAgICA8YSBocmVmPVwiSmF2YXNjcmlwdDo7XCIgdGl0bGU9XCJDYXB0dXJhclwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwidG9wXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgKm5nSWY9XCIhaXNDcm9wSW1hZ2VcIiAoY2xpY2spPVwiY3JvcCgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtY3JvcCBmYS0yeFwiPjwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGEgaHJlZj1cIkphdmFzY3JpcHQ6O1wiIHRpdGxlPVwiR3VhcmRhciBDYXB0dXJhXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAqbmdJZj1cImlzQ3JvcEltYWdlICYmICFjYXB0dXJlXCIgKGNsaWNrKT1cInNhdmVDYXB0dXJlKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1jYW1lcmEgZmEtMnhcIj48L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxhIGhyZWY9XCJKYXZhc2NyaXB0OjtcIiB0aXRsZT1cIkRlc2hhY2VyXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAqbmdJZj1cImlzQ3JvcEltYWdlXCIgKGNsaWNrKT1cInJlc2V0KClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS11bmRvIGZhLTJ4XCI+PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicGRmLXZpc3VhbGl6ZXItZGFzaGJvYXJkXCIgKm5nSWY9XCIhY2FwdHVyZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZGYtY29udGFpbmVyIHBkZi12aXN1YWxpemVyLWNhbnZhcyB0b3AtbWFyZ2luXCIgW2hpZGRlbl09XCJpc0Nyb3BJbWFnZVwiPlxyXG4gICAgICAgICAgICA8IS0tIDxwZGYtdmlld2VyIFsoc3JjKV09XCJwZGZTcmNcIiBbKHJlbmRlci10ZXh0KV09XCJyZW5kZXJfdGV4dFwiIFsocGFnZSldPVwiY3VycmVudHBhZ2VcIiBbKHNob3ctYWxsKV09XCJzaG93X2FsbFwiIFsob3JpZ2luYWwtc2l6ZSldPVwib3JpZ2luYWxfc2l6ZVwiIFsoZml0LXRvLXBhZ2UpXT1cImZpdF90b19wYWdlXCIgKGFmdGVyLWxvYWQtY29tcGxldGUpPVwiYWZ0ZXJMb2FkQ29tcGxldGUoJGV2ZW50KVwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICAgIDwvcGRmLXZpZXdlcj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbWctY29udGFpbmVyXCIgW2hpZGRlbl09XCIhaXNDcm9wSW1hZ2VcIj5cclxuICAgICAgICAgICAgPGltZyAjaW1hZ2Ugc3JjPVwiXCIgaWQ9XCJjcm9wcGVyLWltZ1wiIGNyb3Nzb3JpZ2luPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImltZy12aXN1YWxpemVyLWRhc2hib2FyZFwiICpuZ0lmPVwiY2FwdHVyZVwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJjYXB0dXJlXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbWctdmlzdWFsaXplci1kYXNoYm9hcmRcIiAqbmdJZj1cImNhcHR1cmVcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRucyBidG4tc3VjY2VzcyBidG4tbGdcIiAoY2xpY2spPVwidmFsaWRhdGVJbWFnZSgpXCIgbGFuZz1cImVzXCI+R3VhcmRhciBDYXB0dXJhPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5yIGJ0bi1zdWNjZXNzIGJ0bi1sZ1wiIChjbGljayk9XCJyZXNldCgpXCIgbGFuZz1cImVzXCI+UmVpbnRlbnRhcjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==