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
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { Component, Input, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import * as PDFJS_ from 'pdfjs-dist/build/pdf';
|
|
3
|
+
import * as panzoom_ from 'panzoom/dist/panzoom';
|
|
4
|
+
import { PdfDocument, UtilString } from 'ng-pli-util';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services/common.service";
|
|
7
|
+
import * as i2 from "ngx-toastr";
|
|
8
|
+
import * as i3 from "@angular/platform-browser";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "@angular/forms";
|
|
11
|
+
const PDFJS = PDFJS_;
|
|
12
|
+
const panzoom = panzoom_;
|
|
13
|
+
/** Pdf visualizer Refactor - TODO improve logic and check the edit functionality */
|
|
14
|
+
export class PdfMergeVisualizerComponent {
|
|
15
|
+
/** Default visualizer height */
|
|
16
|
+
static { this.DEFAULT_HEIGHT = 500; }
|
|
17
|
+
constructor(commonService, taostrService, sanitization) {
|
|
18
|
+
this.commonService = commonService;
|
|
19
|
+
this.taostrService = taostrService;
|
|
20
|
+
this.sanitization = sanitization;
|
|
21
|
+
/** It verifies if is possible to edit html */
|
|
22
|
+
this.enableEdit = false; // TODO - Check functionality
|
|
23
|
+
/** It fires when the file has been downloaded */
|
|
24
|
+
this.onDownload = new EventEmitter();
|
|
25
|
+
/** It fires when the name has been sent */
|
|
26
|
+
this.onSendEmail = new EventEmitter(); // TODO - Check functionality
|
|
27
|
+
/** It fires when the name has been sent */
|
|
28
|
+
this.onPdfRendered = new EventEmitter();
|
|
29
|
+
/** It allows to edit html */ this.edit = false;
|
|
30
|
+
/** it verifies if component is ready */
|
|
31
|
+
this.ready = false;
|
|
32
|
+
/** it contains the id of canvas */
|
|
33
|
+
this.id_canvas = 'pdf-canvas';
|
|
34
|
+
}
|
|
35
|
+
// it resolves when the html is changed
|
|
36
|
+
ngOnChanges(changes) {
|
|
37
|
+
const lPdfRequest = changes.lPdfRequest;
|
|
38
|
+
const urlFile = changes.urlFile;
|
|
39
|
+
if (lPdfRequest && lPdfRequest.currentValue) {
|
|
40
|
+
this.generatePDF();
|
|
41
|
+
}
|
|
42
|
+
else if (urlFile && urlFile.currentValue) {
|
|
43
|
+
this.urlFile = urlFile.currentValue;
|
|
44
|
+
this.generatePDF();
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.ready = false;
|
|
48
|
+
if (this.pdfDocument && this.pdfDocument.canvas) {
|
|
49
|
+
let canvas = this.pdfDocument.canvas;
|
|
50
|
+
var ctx = this.pdfDocument.canvas.getContext('2d');
|
|
51
|
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
52
|
+
this.pdfDocument = undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** It generates the pdf */
|
|
57
|
+
generatePDF() {
|
|
58
|
+
if (UtilString.isValid(this.urlFile)) {
|
|
59
|
+
this.commonService.getBase64PdfByUrl(this.urlFile).subscribe((result) => {
|
|
60
|
+
this.showBase64Pdf(result);
|
|
61
|
+
}, (error) => {
|
|
62
|
+
console.error('Error trying to render PDF', error);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
else if (this.lPdfRequest) {
|
|
66
|
+
// if html was changed
|
|
67
|
+
this.commonService.getBase64PdfList(this.lPdfRequest).subscribe((result) => {
|
|
68
|
+
this.showBase64Pdf(result);
|
|
69
|
+
}, (error) => {
|
|
70
|
+
console.error('Error trying to render PDF', error);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
showBase64Pdf(result) {
|
|
75
|
+
this.base64 = result.base64;
|
|
76
|
+
var data = atob(this.base64);
|
|
77
|
+
PDFJS.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';
|
|
78
|
+
// create instance of PdfDocument with the id of canvas
|
|
79
|
+
this.pdfDocument = new PdfDocument(this.id_canvas);
|
|
80
|
+
// assign variables out of scope
|
|
81
|
+
let pdfdocument = this.pdfDocument;
|
|
82
|
+
panzoom(this.pdfDocument.canvas, {
|
|
83
|
+
smoothScroll: false
|
|
84
|
+
});
|
|
85
|
+
let self = this;
|
|
86
|
+
let ready = this.ready;
|
|
87
|
+
PDFJS.getDocument({ data: data }).then(function (pdfDoc_) {
|
|
88
|
+
pdfdocument.pdfDoc = pdfDoc_;
|
|
89
|
+
self.renderPage(1);
|
|
90
|
+
ready = true;
|
|
91
|
+
self.onPdfRendered.emit(true);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** It returns the height */
|
|
95
|
+
getHeight() {
|
|
96
|
+
if (this.height)
|
|
97
|
+
return this.height + 'px';
|
|
98
|
+
return PdfMergeVisualizerComponent.DEFAULT_HEIGHT + 'px';
|
|
99
|
+
}
|
|
100
|
+
/** Get page info from document, resize canvas accordingly, and render page. */
|
|
101
|
+
renderPage(num) {
|
|
102
|
+
this.pdfDocument.pageRendering = true;
|
|
103
|
+
// assign variables out of scope
|
|
104
|
+
let selfPdfDocument = this.pdfDocument;
|
|
105
|
+
let self = this;
|
|
106
|
+
// Using promise to fetch the page
|
|
107
|
+
this.pdfDocument.pdfDoc.getPage(num).then(function (page) {
|
|
108
|
+
var viewport = page.getViewport(selfPdfDocument.scale);
|
|
109
|
+
selfPdfDocument.canvas.height = viewport.height;
|
|
110
|
+
selfPdfDocument.canvas.width = viewport.width;
|
|
111
|
+
// Render PDF page into canvas context
|
|
112
|
+
var renderContext = {
|
|
113
|
+
canvasContext: selfPdfDocument.canvas.getContext('2d'),
|
|
114
|
+
viewport: viewport
|
|
115
|
+
};
|
|
116
|
+
var renderTask = page.render(renderContext);
|
|
117
|
+
// Wait for rendering to finish
|
|
118
|
+
renderTask.promise.then(function () {
|
|
119
|
+
selfPdfDocument.pageRendering = false;
|
|
120
|
+
if (selfPdfDocument.pageNumPending !== null) {
|
|
121
|
+
// New page rendering is pending
|
|
122
|
+
self.renderPage(selfPdfDocument.pageNumPending);
|
|
123
|
+
selfPdfDocument.pageNumPending = null;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* If another page rendering in progress, waits until the rendering is
|
|
130
|
+
* finised. Otherwise, executes rendering immediately.
|
|
131
|
+
*/
|
|
132
|
+
queueRenderPage(num) {
|
|
133
|
+
if (this.pdfDocument.pageRendering) {
|
|
134
|
+
this.pdfDocument.pageNumPending = num;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.renderPage(num);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Displays previous page.
|
|
142
|
+
*/
|
|
143
|
+
onPrevPage() {
|
|
144
|
+
if (!this.pdfDocument || this.pdfDocument.pageNum <= 1) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this.pdfDocument.pageNum--;
|
|
148
|
+
this.queueRenderPage(this.pdfDocument.pageNum);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Displays next page.
|
|
152
|
+
*/
|
|
153
|
+
onNextPage() {
|
|
154
|
+
if (!this.pdfDocument || this.pdfDocument.pageNum >= this.pdfDocument.pdfDoc.numPages) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
this.pdfDocument.pageNum++;
|
|
158
|
+
this.queueRenderPage(this.pdfDocument.pageNum);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Displays Zoom In.
|
|
162
|
+
*/
|
|
163
|
+
onZoomIn() {
|
|
164
|
+
if (!this.pdfDocument || this.pdfDocument.scale >= 3) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
this.pdfDocument.scale = this.pdfDocument.scale + 0.2;
|
|
168
|
+
this.queueRenderPage(this.pdfDocument.pageNum);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Displays Zoom Out.
|
|
172
|
+
*/
|
|
173
|
+
onZoomOut() {
|
|
174
|
+
if (!this.pdfDocument || this.pdfDocument.scale <= 0.4) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
this.pdfDocument.scale = this.pdfDocument.scale - 0.2;
|
|
178
|
+
this.queueRenderPage(this.pdfDocument.pageNum);
|
|
179
|
+
}
|
|
180
|
+
/** It sends the document by email */
|
|
181
|
+
sendEmail() {
|
|
182
|
+
if (this.email && UtilString.validateEmail(this.email)) {
|
|
183
|
+
this.onSendEmail.emit({
|
|
184
|
+
to: this.email,
|
|
185
|
+
base64: this.base64
|
|
186
|
+
});
|
|
187
|
+
this.email = '';
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
this.taostrService.warning('Correo electrónico es incorrecto');
|
|
191
|
+
}
|
|
192
|
+
/** It fires the event download */
|
|
193
|
+
download() {
|
|
194
|
+
const contentType = 'application/pdf';
|
|
195
|
+
const b64Data = this.base64;
|
|
196
|
+
const blob = this.b64toBlob(b64Data, contentType);
|
|
197
|
+
const blobUrl = URL.createObjectURL(blob);
|
|
198
|
+
var a = document.createElement('a');
|
|
199
|
+
document.body.appendChild(a);
|
|
200
|
+
a.style.display = 'none';
|
|
201
|
+
a.href = blobUrl;
|
|
202
|
+
a.download = this.filename;
|
|
203
|
+
a.click();
|
|
204
|
+
setTimeout(() => {
|
|
205
|
+
window.URL.revokeObjectURL(blobUrl);
|
|
206
|
+
document.body.removeChild(a);
|
|
207
|
+
this.onDownload.emit({
|
|
208
|
+
base64: this.base64
|
|
209
|
+
});
|
|
210
|
+
}, 200);
|
|
211
|
+
}
|
|
212
|
+
/** It fires when the html is changed */
|
|
213
|
+
// change() {
|
|
214
|
+
// this.generatePDF();
|
|
215
|
+
// this.onChange.emit(this.html);
|
|
216
|
+
// }
|
|
217
|
+
/** it allows to edit */
|
|
218
|
+
toggleEdit() {
|
|
219
|
+
this.edit = !this.edit;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* it returns if is PdfDocument
|
|
223
|
+
*/
|
|
224
|
+
isPdfDocument() {
|
|
225
|
+
return this.pdfDocument !== undefined;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* it returns if is Title
|
|
229
|
+
*/
|
|
230
|
+
isTitle() {
|
|
231
|
+
return this.title !== undefined;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* it returns if is isPdfDoc
|
|
235
|
+
*/
|
|
236
|
+
isPdfDoc() {
|
|
237
|
+
return (this.pdfDocument &&
|
|
238
|
+
this.pdfDocument.pdfDoc != undefined &&
|
|
239
|
+
this.pdfDocument.pdfDoc != null);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* it returns if is filename
|
|
243
|
+
*/
|
|
244
|
+
isFilename() {
|
|
245
|
+
return this.filename !== undefined;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* it returns if is enableEdit
|
|
249
|
+
*/
|
|
250
|
+
isEnableEdit() {
|
|
251
|
+
return this.enableEdit == true;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* it returns if is edit
|
|
255
|
+
*/
|
|
256
|
+
isEdit() {
|
|
257
|
+
return this.edit == true;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* it returns if is enableEmail
|
|
261
|
+
*/
|
|
262
|
+
isEnableEmail() {
|
|
263
|
+
return this.enableEmail == true;
|
|
264
|
+
}
|
|
265
|
+
b64toBlob(b64Data, contentType = '', sliceSize = 512) {
|
|
266
|
+
const byteArrays = [];
|
|
267
|
+
const byteCharacters = atob(b64Data);
|
|
268
|
+
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
|
|
269
|
+
const slice = byteCharacters.slice(offset, offset + sliceSize);
|
|
270
|
+
const byteNumbers = new Array(slice.length);
|
|
271
|
+
for (let i = 0; i < slice.length; i++) {
|
|
272
|
+
byteNumbers[i] = slice.charCodeAt(i);
|
|
273
|
+
}
|
|
274
|
+
const byteArray = new Uint8Array(byteNumbers);
|
|
275
|
+
byteArrays.push(byteArray);
|
|
276
|
+
}
|
|
277
|
+
const blob = new Blob(byteArrays, { type: contentType });
|
|
278
|
+
return blob;
|
|
279
|
+
}
|
|
280
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfMergeVisualizerComponent, deps: [{ token: i1.CommonService }, { token: i2.ToastrService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
281
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PdfMergeVisualizerComponent, selector: "pli-pdf-merge-visualizer", inputs: { lPdfRequest: "lPdfRequest", enableEdit: "enableEdit", title: "title", height: "height", filename: "filename", enableEmail: "enableEmail", urlFile: "urlFile" }, outputs: { onDownload: "onDownload", onSendEmail: "onSendEmail", onPdfRendered: "onPdfRendered" }, usesOnChanges: true, ngImport: i0, template: "<h3 class=\"pdf-visualizer-title\">{{ title }}</h3>\r\n<div class=\"pdf-visualizer-container\">\r\n\t<div class=\"pdf-visualizer-controls\" *ngIf=\"isPdfDocument() === true\">\r\n\t\t<div class=\"row\">\r\n\t\t\t<div class=\"col-md-7\">\r\n\t\t\t\t<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Toolbar with button groups\">\r\n\t\t\t\t\t<div class=\"btn-group btn-group-sm mr-2\" role=\"group\" aria-label=\"Second group\">\r\n\t\t\t\t\t\t<!-- zoom in-->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\ttitle=\"Acercar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\t(click)=\"onZoomIn()\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-search-plus\"></span>\r\n\t\t\t\t\t\t</a>\r\n\r\n\t\t\t\t\t\t<!-- zoom out-->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\ttitle=\"Alejar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\t(click)=\"onZoomOut()\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-search-minus\"></span>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"btn-group btn-group-sm mr-2\" role=\"group\" aria-label=\"Third group\">\r\n\t\t\t\t\t\t<!--prev -->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\t(click)=\"onPrevPage()\"\r\n\t\t\t\t\t\t\ttitle=\"Anterior\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-chevron-left\"></span>\r\n\t\t\t\t\t\t</a>\r\n\r\n\t\t\t\t\t\t<!-- pagination-->\r\n\t\t\t\t\t\t<span class=\"btn btn-outline-secondary\" *ngIf=\"isPdfDoc() === true\">\r\n\t\t\t\t\t\t\tP\u00E1gina: {{ pdfDocument.pageNum }} / {{ pdfDocument.pdfDoc.numPages }}\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t<!--next -->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\t(click)=\"onNextPage()\"\r\n\t\t\t\t\t\t\ttitle=\"Siguiente\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-chevron-right\"></span>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"btn-group btn-group-sm\" role=\"group\" aria-label=\"First group\">\r\n\t\t\t\t\t\t<!-- download-->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\t[download]=\"filename\"\r\n\t\t\t\t\t\t\t*ngIf=\"isFilename() === true\"\r\n\t\t\t\t\t\t\t(click)=\"download()\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\ttitle=\"Descargar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<!-- [href]=\"\r\n\t\t\t\t\t\t\t\tsanitization.bypassSecurityTrustUrl(\r\n\t\t\t\t\t\t\t\t\t'data:application/pdf;base64,' + this.base64\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\" -->\r\n\t\t\t\t\t\t\t<span class=\"fa fa-download\"></span>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t<!-- TODO - Check functionality -->\r\n\t\t\t\t\t\t<!-- toggle edit-->\r\n\t\t\t\t\t\t<!-- <a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\t*ngIf=\"isEnableEdit() === true\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\ttitle=\"Editar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t\t(click)=\"toggleEdit()\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-edit\"></span>\r\n\t\t\t\t\t\t</a> -->\r\n\r\n\t\t\t\t\t\t<!-- generate pdf-->\r\n\t\t\t\t\t\t<!-- <a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\t*ngIf=\"isEdit() === true\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\ttitle=\"Generar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t\t(click)=\"change()\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-play\"></span>\r\n\t\t\t\t\t\t</a> -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"col-md-5 pull-right\" *ngIf=\"isEnableEmail() === true\">\r\n\t\t\t\t<div class=\"input-group input-group-sm\">\r\n\t\t\t\t\t<label for=\"pdf-visualizer-email\" class=\"pdf\">\r\n\t\t\t\t\t\tEnviar mensaje a\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"email\"\r\n\t\t\t\t\t\tid=\"pdf-visualizer-email\"\r\n\t\t\t\t\t\tname=\"pdf-visualizer-email\"\r\n\t\t\t\t\t\trequired=\"true\"\r\n\t\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t\tplaceholder=\"Correo electr\u00F3nico\"\r\n\t\t\t\t\t\t[(ngModel)]=\"email\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t(click)=\"sendEmail()\"\r\n\t\t\t\t\t\t\ttitle=\"Enviar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\tsrc=\"http://giro360.co/zona360/colfuturo/PLIC/img/export.svg\"\r\n\t\t\t\t\t\t\t\talt=\"\"\r\n\t\t\t\t\t\t\t\twidth=\"16\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div class=\"pdf-visualizer-dashboard\">\r\n\t\t<div class=\"row\">\r\n\t\t\t<!-- <div class=\"col-md-5\" *ngIf=\"isEdit() === true\">\r\n\t\t\t\t<textarea\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t[style.height]=\"getHeight()\"\r\n\t\t\t\t\tstyle=\"resize:vertical;\"\r\n\t\t\t\t\t[(ngModel)]=\"html\"\r\n\t\t\t\t></textarea>\r\n\t\t\t</div> -->\r\n\t\t\t<div [ngClass]=\"{ 'col-md-7': edit === true, 'col-md-12': !edit }\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tid=\"pdf-scrollable\"\r\n\t\t\t\t\tclass=\"pdf-visualizer-scrollable\"\r\n\t\t\t\t\t[style.height]=\"getHeight()\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<canvas id=\"pdf-canvas\" class=\"pdf-visualizer-canvas\"> </canvas>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: [".pdf-visualizer-container{border:1px solid #eee;margin:10px 0}.pdf-visualizer-dashboard,.pdf-visualizer-controls{background-color:#f5f5f5;padding:15px}.pdf-visualizer-dashboard{border-bottom:1px solid #eee;border-top:1px solid #eee}.pdf-visualizer-title{font-size:1.4rem;color:red;text-align:center;margin-bottom:1em}.pdf-visualizer-canvas{cursor:move}.text-align-center{text-align:center}.text-align-left{text-align:left}.text-align-right{text-align:right}.margin-left{margin-left:5px}.pdf-visualizer-scrollable{overflow:hidden;text-align:center}label.pdf{margin-right:.6em;line-height:24px}button.btn-outline-secondary{height:26px;line-height:12px!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
282
|
+
}
|
|
283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfMergeVisualizerComponent, decorators: [{
|
|
284
|
+
type: Component,
|
|
285
|
+
args: [{ selector: 'pli-pdf-merge-visualizer', template: "<h3 class=\"pdf-visualizer-title\">{{ title }}</h3>\r\n<div class=\"pdf-visualizer-container\">\r\n\t<div class=\"pdf-visualizer-controls\" *ngIf=\"isPdfDocument() === true\">\r\n\t\t<div class=\"row\">\r\n\t\t\t<div class=\"col-md-7\">\r\n\t\t\t\t<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Toolbar with button groups\">\r\n\t\t\t\t\t<div class=\"btn-group btn-group-sm mr-2\" role=\"group\" aria-label=\"Second group\">\r\n\t\t\t\t\t\t<!-- zoom in-->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\ttitle=\"Acercar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\t(click)=\"onZoomIn()\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-search-plus\"></span>\r\n\t\t\t\t\t\t</a>\r\n\r\n\t\t\t\t\t\t<!-- zoom out-->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\ttitle=\"Alejar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\t(click)=\"onZoomOut()\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-search-minus\"></span>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"btn-group btn-group-sm mr-2\" role=\"group\" aria-label=\"Third group\">\r\n\t\t\t\t\t\t<!--prev -->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\t(click)=\"onPrevPage()\"\r\n\t\t\t\t\t\t\ttitle=\"Anterior\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-chevron-left\"></span>\r\n\t\t\t\t\t\t</a>\r\n\r\n\t\t\t\t\t\t<!-- pagination-->\r\n\t\t\t\t\t\t<span class=\"btn btn-outline-secondary\" *ngIf=\"isPdfDoc() === true\">\r\n\t\t\t\t\t\t\tP\u00E1gina: {{ pdfDocument.pageNum }} / {{ pdfDocument.pdfDoc.numPages }}\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t<!--next -->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\t(click)=\"onNextPage()\"\r\n\t\t\t\t\t\t\ttitle=\"Siguiente\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-chevron-right\"></span>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"btn-group btn-group-sm\" role=\"group\" aria-label=\"First group\">\r\n\t\t\t\t\t\t<!-- download-->\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\t[download]=\"filename\"\r\n\t\t\t\t\t\t\t*ngIf=\"isFilename() === true\"\r\n\t\t\t\t\t\t\t(click)=\"download()\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\ttitle=\"Descargar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<!-- [href]=\"\r\n\t\t\t\t\t\t\t\tsanitization.bypassSecurityTrustUrl(\r\n\t\t\t\t\t\t\t\t\t'data:application/pdf;base64,' + this.base64\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\" -->\r\n\t\t\t\t\t\t\t<span class=\"fa fa-download\"></span>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t<!-- TODO - Check functionality -->\r\n\t\t\t\t\t\t<!-- toggle edit-->\r\n\t\t\t\t\t\t<!-- <a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\t*ngIf=\"isEnableEdit() === true\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\ttitle=\"Editar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t\t(click)=\"toggleEdit()\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-edit\"></span>\r\n\t\t\t\t\t\t</a> -->\r\n\r\n\t\t\t\t\t\t<!-- generate pdf-->\r\n\t\t\t\t\t\t<!-- <a\r\n\t\t\t\t\t\t\thref=\"Javascript:;\"\r\n\t\t\t\t\t\t\t*ngIf=\"isEdit() === true\"\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\ttitle=\"Generar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t\t(click)=\"change()\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"fa fa-play\"></span>\r\n\t\t\t\t\t\t</a> -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"col-md-5 pull-right\" *ngIf=\"isEnableEmail() === true\">\r\n\t\t\t\t<div class=\"input-group input-group-sm\">\r\n\t\t\t\t\t<label for=\"pdf-visualizer-email\" class=\"pdf\">\r\n\t\t\t\t\t\tEnviar mensaje a\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"email\"\r\n\t\t\t\t\t\tid=\"pdf-visualizer-email\"\r\n\t\t\t\t\t\tname=\"pdf-visualizer-email\"\r\n\t\t\t\t\t\trequired=\"true\"\r\n\t\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t\tplaceholder=\"Correo electr\u00F3nico\"\r\n\t\t\t\t\t\t[(ngModel)]=\"email\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\r\n\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t(click)=\"sendEmail()\"\r\n\t\t\t\t\t\t\ttitle=\"Enviar\"\r\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\r\n\t\t\t\t\t\t\tdata-placement=\"top\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\tsrc=\"http://giro360.co/zona360/colfuturo/PLIC/img/export.svg\"\r\n\t\t\t\t\t\t\t\talt=\"\"\r\n\t\t\t\t\t\t\t\twidth=\"16\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div class=\"pdf-visualizer-dashboard\">\r\n\t\t<div class=\"row\">\r\n\t\t\t<!-- <div class=\"col-md-5\" *ngIf=\"isEdit() === true\">\r\n\t\t\t\t<textarea\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t[style.height]=\"getHeight()\"\r\n\t\t\t\t\tstyle=\"resize:vertical;\"\r\n\t\t\t\t\t[(ngModel)]=\"html\"\r\n\t\t\t\t></textarea>\r\n\t\t\t</div> -->\r\n\t\t\t<div [ngClass]=\"{ 'col-md-7': edit === true, 'col-md-12': !edit }\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tid=\"pdf-scrollable\"\r\n\t\t\t\t\tclass=\"pdf-visualizer-scrollable\"\r\n\t\t\t\t\t[style.height]=\"getHeight()\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<canvas id=\"pdf-canvas\" class=\"pdf-visualizer-canvas\"> </canvas>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: [".pdf-visualizer-container{border:1px solid #eee;margin:10px 0}.pdf-visualizer-dashboard,.pdf-visualizer-controls{background-color:#f5f5f5;padding:15px}.pdf-visualizer-dashboard{border-bottom:1px solid #eee;border-top:1px solid #eee}.pdf-visualizer-title{font-size:1.4rem;color:red;text-align:center;margin-bottom:1em}.pdf-visualizer-canvas{cursor:move}.text-align-center{text-align:center}.text-align-left{text-align:left}.text-align-right{text-align:right}.margin-left{margin-left:5px}.pdf-visualizer-scrollable{overflow:hidden;text-align:center}label.pdf{margin-right:.6em;line-height:24px}button.btn-outline-secondary{height:26px;line-height:12px!important}\n"] }]
|
|
286
|
+
}], ctorParameters: () => [{ type: i1.CommonService }, { type: i2.ToastrService }, { type: i3.DomSanitizer }], propDecorators: { lPdfRequest: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], enableEdit: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], title: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], height: [{
|
|
293
|
+
type: Input
|
|
294
|
+
}], filename: [{
|
|
295
|
+
type: Input
|
|
296
|
+
}], enableEmail: [{
|
|
297
|
+
type: Input
|
|
298
|
+
}], urlFile: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], onDownload: [{
|
|
301
|
+
type: Output
|
|
302
|
+
}], onSendEmail: [{
|
|
303
|
+
type: Output
|
|
304
|
+
}], onPdfRendered: [{
|
|
305
|
+
type: Output
|
|
306
|
+
}] } });
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLW1lcmdlLXZpc3VhbGl6ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL3BkZi1tZXJnZS12aXN1YWxpemVyL3BkZi1tZXJnZS12aXN1YWxpemVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9wZGYtbWVyZ2UtdmlzdWFsaXplci9wZGYtbWVyZ2UtdmlzdWFsaXplci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUdULEtBQUssRUFFTCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBYyxNQUFNLGFBQWEsQ0FBQzs7Ozs7OztBQUtsRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUM7QUFDckIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLG9GQUFvRjtBQU1wRixNQUFNLE9BQU8sMkJBQTJCO0lBQ3ZDLGdDQUFnQzthQUN6QixtQkFBYyxHQUFHLEdBQUcsQUFBTixDQUFPO0lBcUM1QixZQUNXLGFBQTRCLEVBQzlCLGFBQTRCLEVBQzdCLFlBQTBCO1FBRnZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzdCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBcENsQyw4Q0FBOEM7UUFDckMsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLDZCQUE2QjtRQVduRSxpREFBaUQ7UUFDdkMsZUFBVSxHQUFzQixJQUFJ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R0EzVFcsMkJBQTJCO21HQUEzQiwyQkFBMkIsa1dDekJ4QyxrOUxBd0tBOzs0RkQvSWEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNDLDBCQUEwQjt5SUFTM0IsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdElucHV0LFxyXG5cdFNpbXBsZUNoYW5nZSxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0T3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIFBERkpTXyBmcm9tICdwZGZqcy1kaXN0L2J1aWxkL3BkZic7XHJcbmltcG9ydCAqIGFzIHBhbnpvb21fIGZyb20gJ3Bhbnpvb20vZGlzdC9wYW56b29tJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGRmRG9jdW1lbnQsIFV0aWxTdHJpbmcsIFJlcXVlc3RQZGYgfSBmcm9tICduZy1wbGktdXRpbCc7XHJcbmltcG9ydCB7IEZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuXHJcbmNvbnN0IFBERkpTID0gUERGSlNfO1xyXG5jb25zdCBwYW56b29tID0gcGFuem9vbV87XHJcbi8qKiBQZGYgdmlzdWFsaXplciBSZWZhY3RvciAtIFRPRE8gaW1wcm92ZSBsb2dpYyBhbmQgY2hlY2sgdGhlIGVkaXQgZnVuY3Rpb25hbGl0eSAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3BsaS1wZGYtbWVyZ2UtdmlzdWFsaXplcicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3BkZi1tZXJnZS12aXN1YWxpemVyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9wZGYtbWVyZ2UtdmlzdWFsaXplci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZk1lcmdlVmlzdWFsaXplckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblx0LyoqIERlZmF1bHQgdmlzdWFsaXplciBoZWlnaHQgKi9cclxuXHRzdGF0aWMgREVGQVVMVF9IRUlHSFQgPSA1MDA7XHJcblxyXG5cdC8qKiBQZGZzIHRvIGJlIGdlbmVyYXRlZCBhbmQgbWVyZ2VkICovXHJcblx0QElucHV0KCkgbFBkZlJlcXVlc3Q6IFJlcXVlc3RQZGZbXTtcclxuXHQvKiogSXQgdmVyaWZpZXMgaWYgaXMgcG9zc2libGUgdG8gZWRpdCBodG1sICovXHJcblx0QElucHV0KCkgZW5hYmxlRWRpdDogYm9vbGVhbiA9IGZhbHNlOyAvLyBUT0RPIC0gQ2hlY2sgZnVuY3Rpb25hbGl0eVxyXG5cdC8qKiB0aXRsZSBvZiB0aGUgcGRmICovXHJcblx0QElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuXHQvKiogdGhlIGhlaWdodCBvZiB0aGUgcGRmIGNhbnZhcyAqL1xyXG5cdEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xyXG5cdC8qKiBUaGUgZmlsZW5hbWUgb2YgdGhlIHBkZiAqL1xyXG5cdEBJbnB1dCgpIGZpbGVuYW1lOiBzdHJpbmc7XHJcblx0LyoqIEl0IHZlcmlmaWVzIGlmIGl0IGFsbG93cyB0byBzZW5kIHRoZSBlbWFpbCAqL1xyXG5cdEBJbnB1dCgpIGVuYWJsZUVtYWlsOiBib29sZWFuO1xyXG5cdC8qKiBUaGUgdXJsIG9mIHRoZSBwZGYgKi9cclxuXHRASW5wdXQoKSB1cmxGaWxlOiBzdHJpbmc7XHJcblx0LyoqIEl0IGZpcmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZG93bmxvYWRlZCAqL1xyXG5cdEBPdXRwdXQoKSBvbkRvd25sb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdC8qKiBJdCBmaXJlcyB3aGVuIHRoZSBuYW1lIGhhcyBiZWVuIHNlbnQgKi9cclxuXHRAT3V0cHV0KCkgb25TZW5kRW1haWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7IC8vIFRPRE8gLSBDaGVjayBmdW5jdGlvbmFsaXR5XHJcblx0LyoqIEl0IGZpcmVzIHdoZW4gdGhlIG5hbWUgaGFzIGJlZW4gc2VudCAqL1xyXG5cdEBPdXRwdXQoKSBvblBkZlJlbmRlcmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdC8qKiBJdCBmaXJlcyB3aGVuIHRoZSBodG1sIGhhcyBiZWVuIG1vZGlmaWVkICovXHJcblx0Ly8gQE91dHB1dCgpIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuXHQvKiogRW1haWwgdGhhdCB3aWxsIGJlIHNlbmRlZCAqL1xyXG5cdGVtYWlsOiBzdHJpbmc7XHJcblx0LyoqIGJhc2U2NCBhcyByZXN1bHQgb2YgaHRtbCAyIHBkZiAqL1xyXG5cdGJhc2U2NDogc3RyaW5nOyAvLyBUT0RPIC0gQ2hlY2sgZnVuY3Rpb25hbGl0eVxyXG5cdC8qKiBJdCBhbGxvd3MgdG8gZWRpdCBodG1sICovIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHQvKiogaXQgdmVyaWZpZXMgaWYgY29tcG9uZW50IGlzIHJlYWR5ICovXHJcblx0cmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHQvKiogSXQgY29udGluYXMgdGhlIGFic3RyYWN0aW9uIG9mIHBkZiBkb2N1bWVudCAqL1xyXG5cdHBkZkRvY3VtZW50OiBQZGZEb2N1bWVudDtcclxuXHQvKiogaXQgY29udGFpbnMgdGhlIGlkIG9mIGNhbnZhcyAqL1xyXG5cdGlkX2NhbnZhczogc3RyaW5nID0gJ3BkZi1jYW52YXMnO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByb3RlY3RlZCBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0YW9zdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlLFxyXG5cdFx0cHVibGljIHNhbml0aXphdGlvbjogRG9tU2FuaXRpemVyXHJcblx0KSB7fVxyXG5cclxuXHQvLyBpdCByZXNvbHZlcyB3aGVuIHRoZSBodG1sIGlzIGNoYW5nZWRcclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRjb25zdCBsUGRmUmVxdWVzdDogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5sUGRmUmVxdWVzdDtcclxuXHRcdGNvbnN0IHVybEZpbGU6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMudXJsRmlsZTtcclxuXHRcdGlmIChsUGRmUmVxdWVzdCAmJiBsUGRmUmVxdWVzdC5jdXJyZW50VmFsdWUpIHtcclxuXHRcdFx0dGhpcy5nZW5lcmF0ZVBERigpO1xyXG5cdFx0fSBlbHNlIGlmICh1cmxGaWxlICYmIHVybEZpbGUuY3VycmVudFZhbHVlKSB7XHJcblx0XHRcdHRoaXMudXJsRmlsZSA9IHVybEZpbGUuY3VycmVudFZhbHVlO1xyXG5cdFx0XHR0aGlzLmdlbmVyYXRlUERGKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJlYWR5ID0gZmFsc2U7XHJcblx0XHRcdGlmICh0aGlzLnBkZkRvY3VtZW50ICYmIHRoaXMucGRmRG9jdW1lbnQuY2FudmFzKSB7XHJcblx0XHRcdFx0bGV0IGNhbnZhcyA9IHRoaXMucGRmRG9jdW1lbnQuY2FudmFzO1xyXG5cdFx0XHRcdHZhciBjdHggPSB0aGlzLnBkZkRvY3VtZW50LmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cdFx0XHRcdGN0eC5jbGVhclJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcclxuXHRcdFx0XHR0aGlzLnBkZkRvY3VtZW50ID0gdW5kZWZpbmVkO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogSXQgZ2VuZXJhdGVzIHRoZSBwZGYgKi9cclxuXHRnZW5lcmF0ZVBERigpIHtcclxuXHRcdGlmIChVdGlsU3RyaW5nLmlzVmFsaWQodGhpcy51cmxGaWxlKSkge1xyXG5cdFx0XHR0aGlzLmNvbW1vblNlcnZpY2UuZ2V0QmFzZTY0UGRmQnlVcmwodGhpcy51cmxGaWxlKS5zdWJzY3JpYmUoXHJcblx0XHRcdFx0KHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93QmFzZTY0UGRmKHJlc3VsdCk7XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHRyeWluZyB0byByZW5kZXIgUERGJywgZXJyb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0KTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5sUGRmUmVxdWVzdCkge1xyXG5cdFx0XHQvLyBpZiBodG1sIHdhcyBjaGFuZ2VkXHJcblx0XHRcdHRoaXMuY29tbW9uU2VydmljZS5nZXRCYXNlNjRQZGZMaXN0KHRoaXMubFBkZlJlcXVlc3QpLnN1YnNjcmliZShcclxuXHRcdFx0XHQocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnNob3dCYXNlNjRQZGYocmVzdWx0KTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignRXJyb3IgdHJ5aW5nIHRvIHJlbmRlciBQREYnLCBlcnJvcik7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2hvd0Jhc2U2NFBkZihyZXN1bHQpIHtcclxuXHRcdHRoaXMuYmFzZTY0ID0gcmVzdWx0LmJhc2U2NDtcclxuXHRcdHZhciBkYXRhID0gYXRvYih0aGlzLmJhc2U2NCk7XHJcblx0XHRQREZKUy53b3JrZXJTcmMgPSAnLy9tb3ppbGxhLmdpdGh1Yi5pby9wZGYuanMvYnVpbGQvcGRmLndvcmtlci5qcyc7XHJcblx0XHQvLyBjcmVhdGUgaW5zdGFuY2Ugb2YgUGRmRG9jdW1lbnQgd2l0aCB0aGUgaWQgb2YgY2FudmFzXHJcblx0XHR0aGlzLnBkZkRvY3VtZW50ID0gbmV3IFBkZkRvY3VtZW50KHRoaXMuaWRfY2FudmFzKTtcclxuXHJcblx0XHQvLyBhc3NpZ24gdmFyaWFibGVzIG91dCBvZiBzY29wZVxyXG5cdFx0bGV0IHBkZmRvY3VtZW50OiBQZGZEb2N1bWVudCA9IHRoaXMucGRmRG9jdW1lbnQ7XHJcblx0XHRwYW56b29tKHRoaXMucGRmRG9jdW1lbnQuY2FudmFzLCB7XHJcblx0XHRcdHNtb290aFNjcm9sbDogZmFsc2VcclxuXHRcdH0pO1xyXG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0bGV0IHJlYWR5ID0gdGhpcy5yZWFkeTtcclxuXHRcdFBERkpTLmdldERvY3VtZW50KHsgZGF0YTogZGF0YSB9KS50aGVuKGZ1bmN0aW9uKHBkZkRvY18pIHtcclxuXHRcdFx0cGRmZG9jdW1lbnQucGRmRG9jID0gcGRmRG9jXztcclxuXHRcdFx0c2VsZi5yZW5kZXJQYWdlKDEpO1xyXG5cdFx0XHRyZWFkeSA9IHRydWU7XHJcblx0XHRcdHNlbGYub25QZGZSZW5kZXJlZC5lbWl0KHRydWUpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBoZWlnaHQgICovXHJcblx0Z2V0SGVpZ2h0KCk6IHN0cmluZyB7XHJcblx0XHRpZiAodGhpcy5oZWlnaHQpIHJldHVybiB0aGlzLmhlaWdodCArICdweCc7XHJcblx0XHRyZXR1cm4gUGRmTWVyZ2VWaXN1YWxpemVyQ29tcG9uZW50LkRFRkFVTFRfSEVJR0hUICsgJ3B4JztcclxuXHR9XHJcblxyXG5cdC8qKiBHZXQgcGFnZSBpbmZvIGZyb20gZG9jdW1lbnQsIHJlc2l6ZSBjYW52YXMgYWNjb3JkaW5nbHksIGFuZCByZW5kZXIgcGFnZS4gKi9cclxuXHRyZW5kZXJQYWdlKG51bSkge1xyXG5cdFx0dGhpcy5wZGZEb2N1bWVudC5wYWdlUmVuZGVyaW5nID0gdHJ1ZTtcclxuXHRcdC8vIGFzc2lnbiB2YXJpYWJsZXMgb3V0IG9mIHNjb3BlXHJcblx0XHRsZXQgc2VsZlBkZkRvY3VtZW50OiBQZGZEb2N1bWVudCA9IHRoaXMucGRmRG9jdW1lbnQ7XHJcblx0XHRsZXQgc2VsZiA9IHRoaXM7XHJcblx0XHQvLyBVc2luZyBwcm9taXNlIHRvIGZldGNoIHRoZSBwYWdlXHJcblx0XHR0aGlzLnBkZkRvY3VtZW50LnBkZkRvYy5nZXRQYWdlKG51bSkudGhlbihmdW5jdGlvbihwYWdlKSB7XHJcblx0XHRcdHZhciB2aWV3cG9ydCA9IHBhZ2UuZ2V0Vmlld3BvcnQoc2VsZlBkZkRvY3VtZW50LnNjYWxlKTtcclxuXHRcdFx0c2VsZlBkZkRvY3VtZW50LmNhbnZhcy5oZWlnaHQgPSB2aWV3cG9ydC5oZWlnaHQ7XHJcblx0XHRcdHNlbGZQZGZEb2N1bWVudC5jYW52YXMud2lkdGggPSB2aWV3cG9ydC53aWR0aDtcclxuXHJcblx0XHRcdC8vIFJlbmRlciBQREYgcGFnZSBpbnRvIGNhbnZhcyBjb250ZXh0XHJcblx0XHRcdHZhciByZW5kZXJDb250ZXh0ID0ge1xyXG5cdFx0XHRcdGNhbnZhc0NvbnRleHQ6IHNlbGZQZGZEb2N1bWVudC5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKSxcclxuXHRcdFx0XHR2aWV3cG9ydDogdmlld3BvcnRcclxuXHRcdFx0fTtcclxuXHRcdFx0dmFyIHJlbmRlclRhc2sgPSBwYWdlLnJlbmRlcihyZW5kZXJDb250ZXh0KTtcclxuXHJcblx0XHRcdC8vIFdhaXQgZm9yIHJlbmRlcmluZyB0byBmaW5pc2hcclxuXHRcdFx0cmVuZGVyVGFzay5wcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0c2VsZlBkZkRvY3VtZW50LnBhZ2VSZW5kZXJpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRpZiAoc2VsZlBkZkRvY3VtZW50LnBhZ2VOdW1QZW5kaW5nICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHQvLyBOZXcgcGFnZSByZW5kZXJpbmcgaXMgcGVuZGluZ1xyXG5cdFx0XHRcdFx0c2VsZi5yZW5kZXJQYWdlKHNlbGZQZGZEb2N1bWVudC5wYWdlTnVtUGVuZGluZyk7XHJcblx0XHRcdFx0XHRzZWxmUGRmRG9jdW1lbnQucGFnZU51bVBlbmRpbmcgPSBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIElmIGFub3RoZXIgcGFnZSByZW5kZXJpbmcgaW4gcHJvZ3Jlc3MsIHdhaXRzIHVudGlsIHRoZSByZW5kZXJpbmcgaXNcclxuXHQgKiBmaW5pc2VkLiBPdGhlcndpc2UsIGV4ZWN1dGVzIHJlbmRlcmluZyBpbW1lZGlhdGVseS5cclxuXHQgKi9cclxuXHRxdWV1ZVJlbmRlclBhZ2UobnVtKSB7XHJcblx0XHRpZiAodGhpcy5wZGZEb2N1bWVudC5wYWdlUmVuZGVyaW5nKSB7XHJcblx0XHRcdHRoaXMucGRmRG9jdW1lbnQucGFnZU51bVBlbmRpbmcgPSBudW07XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJlbmRlclBhZ2UobnVtKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERpc3BsYXlzIHByZXZpb3VzIHBhZ2UuXHJcblx0ICovXHJcblx0b25QcmV2UGFnZSgpIHtcclxuXHRcdGlmICghdGhpcy5wZGZEb2N1bWVudCB8fCB0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0gPD0gMSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0tLTtcclxuXHRcdHRoaXMucXVldWVSZW5kZXJQYWdlKHRoaXMucGRmRG9jdW1lbnQucGFnZU51bSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEaXNwbGF5cyBuZXh0IHBhZ2UuXHJcblx0ICovXHJcblx0b25OZXh0UGFnZSgpIHtcclxuXHRcdGlmICghdGhpcy5wZGZEb2N1bWVudCB8fCB0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0gPj0gdGhpcy5wZGZEb2N1bWVudC5wZGZEb2MubnVtUGFnZXMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wZGZEb2N1bWVudC5wYWdlTnVtKys7XHJcblx0XHR0aGlzLnF1ZXVlUmVuZGVyUGFnZSh0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRGlzcGxheXMgWm9vbSBJbi5cclxuXHQgKi9cclxuXHRvblpvb21JbigpIHtcclxuXHRcdGlmICghdGhpcy5wZGZEb2N1bWVudCB8fCB0aGlzLnBkZkRvY3VtZW50LnNjYWxlID49IDMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wZGZEb2N1bWVudC5zY2FsZSA9IHRoaXMucGRmRG9jdW1lbnQuc2NhbGUgKyAwLjI7XHJcblx0XHR0aGlzLnF1ZXVlUmVuZGVyUGFnZSh0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRGlzcGxheXMgWm9vbSBPdXQuXHJcblx0ICovXHJcblx0b25ab29tT3V0KCkge1xyXG5cdFx0aWYgKCF0aGlzLnBkZkRvY3VtZW50IHx8IHRoaXMucGRmRG9jdW1lbnQuc2NhbGUgPD0gMC40KSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMucGRmRG9jdW1lbnQuc2NhbGUgPSB0aGlzLnBkZkRvY3VtZW50LnNjYWxlIC0gMC4yO1xyXG5cdFx0dGhpcy5xdWV1ZVJlbmRlclBhZ2UodGhpcy5wZGZEb2N1bWVudC5wYWdlTnVtKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzZW5kcyB0aGUgZG9jdW1lbnQgYnkgZW1haWwgKi9cclxuXHRzZW5kRW1haWwoKSB7XHJcblx0XHRpZiAodGhpcy5lbWFpbCAmJiBVdGlsU3RyaW5nLnZhbGlkYXRlRW1haWwodGhpcy5lbWFpbCkpIHtcclxuXHRcdFx0dGhpcy5vblNlbmRFbWFpbC5lbWl0KHtcclxuXHRcdFx0XHR0bzogdGhpcy5lbWFpbCxcclxuXHRcdFx0XHRiYXNlNjQ6IHRoaXMuYmFzZTY0XHJcblx0XHRcdH0pO1xyXG5cdFx0XHR0aGlzLmVtYWlsID0gJyc7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMudGFvc3RyU2VydmljZS53YXJuaW5nKCdDb3JyZW8gZWxlY3Ryw7NuaWNvIGVzIGluY29ycmVjdG8nKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBmaXJlcyB0aGUgZXZlbnQgZG93bmxvYWQgKi9cclxuXHRkb3dubG9hZCgpIHtcclxuXHRcdGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3BkZic7XHJcblx0XHRjb25zdCBiNjREYXRhID0gdGhpcy5iYXNlNjQ7XHJcblx0XHRjb25zdCBibG9iID0gdGhpcy5iNjR0b0Jsb2IoYjY0RGF0YSwgY29udGVudFR5cGUpO1xyXG5cdFx0Y29uc3QgYmxvYlVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcblx0XHR2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcblx0XHRhLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcblx0XHRhLmhyZWYgPSBibG9iVXJsO1xyXG5cdFx0YS5kb3dubG9hZCA9IHRoaXMuZmlsZW5hbWU7XHJcblx0XHRhLmNsaWNrKCk7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0d2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoYmxvYlVybCk7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcblx0XHRcdHRoaXMub25Eb3dubG9hZC5lbWl0KHtcclxuXHRcdFx0XHRiYXNlNjQ6IHRoaXMuYmFzZTY0XHJcblx0XHRcdH0pO1xyXG5cdFx0fSwgMjAwKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBmaXJlcyB3aGVuIHRoZSBodG1sIGlzIGNoYW5nZWQgKi9cclxuXHQvLyBjaGFuZ2UoKSB7XHJcblx0Ly8gXHR0aGlzLmdlbmVyYXRlUERGKCk7XHJcblx0Ly8gXHR0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5odG1sKTtcclxuXHQvLyB9XHJcblxyXG5cdC8qKiBpdCBhbGxvd3MgdG8gZWRpdCAqL1xyXG5cdHRvZ2dsZUVkaXQoKSB7XHJcblx0XHR0aGlzLmVkaXQgPSAhdGhpcy5lZGl0O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogaXQgcmV0dXJucyBpZiBpcyBQZGZEb2N1bWVudFxyXG5cdCAqL1xyXG5cdGlzUGRmRG9jdW1lbnQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5wZGZEb2N1bWVudCAhPT0gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogaXQgcmV0dXJucyBpZiBpcyBUaXRsZVxyXG5cdCAqL1xyXG5cdGlzVGl0bGUoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy50aXRsZSAhPT0gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogaXQgcmV0dXJucyBpZiBpcyBpc1BkZkRvY1xyXG5cdCAqL1xyXG5cdGlzUGRmRG9jKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0dGhpcy5wZGZEb2N1bWVudCAmJlxyXG5cdFx0XHR0aGlzLnBkZkRvY3VtZW50LnBkZkRvYyAhPSB1bmRlZmluZWQgJiZcclxuXHRcdFx0dGhpcy5wZGZEb2N1bWVudC5wZGZEb2MgIT0gbnVsbFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZmlsZW5hbWVcclxuXHQgKi9cclxuXHRpc0ZpbGVuYW1lKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZmlsZW5hbWUgIT09IHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZW5hYmxlRWRpdFxyXG5cdCAqL1xyXG5cdGlzRW5hYmxlRWRpdCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmVuYWJsZUVkaXQgPT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZWRpdFxyXG5cdCAqL1xyXG5cdGlzRWRpdCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmVkaXQgPT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZW5hYmxlRW1haWxcclxuXHQgKi9cclxuXHRpc0VuYWJsZUVtYWlsKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZW5hYmxlRW1haWwgPT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGI2NHRvQmxvYihiNjREYXRhLCBjb250ZW50VHlwZSA9ICcnLCBzbGljZVNpemUgPSA1MTIpIHtcclxuXHRcdGNvbnN0IGJ5dGVBcnJheXMgPSBbXTtcclxuXHRcdGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiNjREYXRhKTtcclxuXHRcdGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgb2Zmc2V0ICs9IHNsaWNlU2l6ZSkge1xyXG5cdFx0XHRjb25zdCBzbGljZSA9IGJ5dGVDaGFyYWN0ZXJzLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2xpY2VTaXplKTtcclxuXHRcdFx0Y29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoc2xpY2UubGVuZ3RoKTtcclxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGJ5dGVOdW1iZXJzW2ldID0gc2xpY2UuY2hhckNvZGVBdChpKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcblx0XHRcdGJ5dGVBcnJheXMucHVzaChieXRlQXJyYXkpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgYmxvYiA9IG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudFR5cGUgfSk7XHJcblx0XHRyZXR1cm4gYmxvYjtcclxuXHR9XHJcbn1cclxuIiwiPGgzIGNsYXNzPVwicGRmLXZpc3VhbGl6ZXItdGl0bGVcIj57eyB0aXRsZSB9fTwvaDM+XHJcbjxkaXYgY2xhc3M9XCJwZGYtdmlzdWFsaXplci1jb250YWluZXJcIj5cclxuXHQ8ZGl2IGNsYXNzPVwicGRmLXZpc3VhbGl6ZXItY29udHJvbHNcIiAqbmdJZj1cImlzUGRmRG9jdW1lbnQoKSA9PT0gdHJ1ZVwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnRuLXRvb2xiYXJcIiByb2xlPVwidG9vbGJhclwiIGFyaWEtbGFiZWw9XCJUb29sYmFyIHdpdGggYnV0dG9uIGdyb3Vwc1wiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImJ0bi1ncm91cCBidG4tZ3JvdXAtc20gbXItMlwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWw9XCJTZWNvbmQgZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0PCEtLSB6b29tIGluLS0+XHJcblx0XHRcdFx0XHRcdDxhXHJcblx0XHRcdFx0XHRcdFx0aHJlZj1cIkphdmFzY3JpcHQ6O1wiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJBY2VyY2FyXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvblpvb21JbigpXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtc2VhcmNoLXBsdXNcIj48L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvYT5cclxuXHJcblx0XHRcdFx0XHRcdDwhLS0gem9vbSBvdXQtLT5cclxuXHRcdFx0XHRcdFx0PGFcclxuXHRcdFx0XHRcdFx0XHRocmVmPVwiSmF2YXNjcmlwdDo7XCJcclxuXHRcdFx0XHRcdFx0XHR0aXRsZT1cIkFsZWphclwiXHJcblx0XHRcdFx0XHRcdFx0ZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXBsYWNlbWVudD1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25ab29tT3V0KClcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYSBmYS1zZWFyY2gtbWludXNcIj48L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvYT5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgYnRuLWdyb3VwLXNtIG1yLTJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiVGhpcmQgZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0PCEtLXByZXYgLS0+XHJcblx0XHRcdFx0XHRcdDxhXHJcblx0XHRcdFx0XHRcdFx0aHJlZj1cIkphdmFzY3JpcHQ6O1wiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25QcmV2UGFnZSgpXCJcclxuXHRcdFx0XHRcdFx0XHR0aXRsZT1cIkFudGVyaW9yXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0XCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+XHJcblxyXG5cdFx0XHRcdFx0XHQ8IS0tIHBhZ2luYXRpb24tLT5cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgKm5nSWY9XCJpc1BkZkRvYygpID09PSB0cnVlXCI+XHJcblx0XHRcdFx0XHRcdFx0UMOhZ2luYToge3sgcGRmRG9jdW1lbnQucGFnZU51bSB9fSAvIHt7IHBkZkRvY3VtZW50LnBkZkRvYy5udW1QYWdlcyB9fVxyXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHQ8IS0tbmV4dCAtLT5cclxuXHRcdFx0XHRcdFx0PGFcclxuXHRcdFx0XHRcdFx0XHRocmVmPVwiSmF2YXNjcmlwdDo7XCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvbk5leHRQYWdlKClcIlxyXG5cdFx0XHRcdFx0XHRcdHRpdGxlPVwiU2lndWllbnRlXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodFwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9hPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImJ0bi1ncm91cCBidG4tZ3JvdXAtc21cIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiRmlyc3QgZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0PCEtLSBkb3dubG9hZC0tPlxyXG5cdFx0XHRcdFx0XHQ8YVxyXG5cdFx0XHRcdFx0XHRcdFtkb3dubG9hZF09XCJmaWxlbmFtZVwiXHJcblx0XHRcdFx0XHRcdFx0Km5nSWY9XCJpc0ZpbGVuYW1lKCkgPT09IHRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJkb3dubG9hZCgpXCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdHRpdGxlPVwiRGVzY2FyZ2FyXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gW2hyZWZdPVwiXHJcblx0XHRcdFx0XHRcdFx0XHRzYW5pdGl6YXRpb24uYnlwYXNzU2VjdXJpdHlUcnVzdFVybChcclxuXHRcdFx0XHRcdFx0XHRcdFx0J2RhdGE6YXBwbGljYXRpb24vcGRmO2Jhc2U2NCwnICsgdGhpcy5iYXNlNjRcclxuXHRcdFx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0XHRcIiAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZhIGZhLWRvd25sb2FkXCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+XHJcblx0XHRcdFx0XHRcdDwhLS0gVE9ETyAtIENoZWNrIGZ1bmN0aW9uYWxpdHkgLS0+XHJcblx0XHRcdFx0XHRcdDwhLS0gdG9nZ2xlIGVkaXQtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8YVxyXG5cdFx0XHRcdFx0XHRcdGhyZWY9XCJKYXZhc2NyaXB0OjtcIlxyXG5cdFx0XHRcdFx0XHRcdCpuZ0lmPVwiaXNFbmFibGVFZGl0KCkgPT09IHRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJFZGl0YXJcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXHJcblx0XHRcdFx0XHRcdFx0ZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJ0b2dnbGVFZGl0KClcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYSBmYS1lZGl0XCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+IC0tPlxyXG5cclxuXHRcdFx0XHRcdFx0PCEtLSBnZW5lcmF0ZSBwZGYtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8YVxyXG5cdFx0XHRcdFx0XHRcdGhyZWY9XCJKYXZhc2NyaXB0OjtcIlxyXG5cdFx0XHRcdFx0XHRcdCpuZ0lmPVwiaXNFZGl0KCkgPT09IHRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJHZW5lcmFyXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiY2hhbmdlKClcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYSBmYS1wbGF5XCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+IC0tPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC1tZC01IHB1bGwtcmlnaHRcIiAqbmdJZj1cImlzRW5hYmxlRW1haWwoKSA9PT0gdHJ1ZVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1zbVwiPlxyXG5cdFx0XHRcdFx0PGxhYmVsIGZvcj1cInBkZi12aXN1YWxpemVyLWVtYWlsXCIgY2xhc3M9XCJwZGZcIj5cclxuXHRcdFx0XHRcdFx0RW52aWFyIG1lbnNhamUgYVxyXG5cdFx0XHRcdFx0PC9sYWJlbD5cclxuXHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHR0eXBlPVwiZW1haWxcIlxyXG5cdFx0XHRcdFx0XHRpZD1cInBkZi12aXN1YWxpemVyLWVtYWlsXCJcclxuXHRcdFx0XHRcdFx0bmFtZT1cInBkZi12aXN1YWxpemVyLWVtYWlsXCJcclxuXHRcdFx0XHRcdFx0cmVxdWlyZWQ9XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkNvcnJlbyBlbGVjdHLDs25pY29cIlxyXG5cdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cImVtYWlsXCJcclxuXHRcdFx0XHRcdC8+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcblx0XHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJzZW5kRW1haWwoKVwiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJFbnZpYXJcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXHJcblx0XHRcdFx0XHRcdFx0ZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PGltZ1xyXG5cdFx0XHRcdFx0XHRcdFx0c3JjPVwiaHR0cDovL2dpcm8zNjAuY28vem9uYTM2MC9jb2xmdXR1cm8vUExJQy9pbWcvZXhwb3J0LnN2Z1wiXHJcblx0XHRcdFx0XHRcdFx0XHRhbHQ9XCJcIlxyXG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg9XCIxNlwiXHJcblx0XHRcdFx0XHRcdFx0Lz5cclxuXHRcdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiBjbGFzcz1cInBkZi12aXN1YWxpemVyLWRhc2hib2FyZFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cdFx0XHQ8IS0tIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiICpuZ0lmPVwiaXNFZGl0KCkgPT09IHRydWVcIj5cclxuXHRcdFx0XHQ8dGV4dGFyZWFcclxuXHRcdFx0XHRcdGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuXHRcdFx0XHRcdFtzdHlsZS5oZWlnaHRdPVwiZ2V0SGVpZ2h0KClcIlxyXG5cdFx0XHRcdFx0c3R5bGU9XCJyZXNpemU6dmVydGljYWw7XCJcclxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwiaHRtbFwiXHJcblx0XHRcdFx0PjwvdGV4dGFyZWE+XHJcblx0XHRcdDwvZGl2PiAtLT5cclxuXHRcdFx0PGRpdiBbbmdDbGFzc109XCJ7ICdjb2wtbWQtNyc6IGVkaXQgPT09IHRydWUsICdjb2wtbWQtMTInOiAhZWRpdCB9XCI+XHJcblx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0aWQ9XCJwZGYtc2Nyb2xsYWJsZVwiXHJcblx0XHRcdFx0XHRjbGFzcz1cInBkZi12aXN1YWxpemVyLXNjcm9sbGFibGVcIlxyXG5cdFx0XHRcdFx0W3N0eWxlLmhlaWdodF09XCJnZXRIZWlnaHQoKVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PGNhbnZhcyBpZD1cInBkZi1jYW52YXNcIiBjbGFzcz1cInBkZi12aXN1YWxpemVyLWNhbnZhc1wiPiA8L2NhbnZhcz5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|