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