ng-pli-commons 1.0.136 → 1.0.138
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/fesm2022/ng-pli-commons.mjs +674 -658
- package/fesm2022/ng-pli-commons.mjs.map +1 -1
- package/lib/components/pdf-visualizer/pdf-visualizer.component.d.ts +2 -0
- package/lib/services/guarantee.service.d.ts +1 -0
- package/package.json +1 -3
- package/esm2022/lib/components/backoffice.commons.component.mjs +0 -41
- package/esm2022/lib/components/common.lists.component.mjs +0 -177
- package/esm2022/lib/components/configuration-token/configuration-token-subject.service.mjs +0 -23
- package/esm2022/lib/components/configuration-token/configuration-token.component.mjs +0 -665
- package/esm2022/lib/components/configuration-token/guarantee-token/guarantee-token.component.mjs +0 -103
- package/esm2022/lib/components/configuration-token/snapshot-token/snapshot-token.component.mjs +0 -108
- package/esm2022/lib/components/configuration.commons.component.mjs +0 -41
- package/esm2022/lib/components/dashboard.commons.component.mjs +0 -85
- package/esm2022/lib/components/dynamic-filter/dynamic-filter.component.mjs +0 -131
- package/esm2022/lib/components/excel-to-json/excel-to-json.component.mjs +0 -54
- package/esm2022/lib/components/frontoffice.commons.component.mjs +0 -89
- package/esm2022/lib/components/pdf-analyzer/pdf-analyzer.component.mjs +0 -162
- package/esm2022/lib/components/pdf-config/pdf-config.component.mjs +0 -170
- package/esm2022/lib/components/pdf-generator/pdf-generator.component.mjs +0 -207
- package/esm2022/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.mjs +0 -307
- package/esm2022/lib/components/pdf-visualizer/pdf-visualizer.component.mjs +0 -387
- package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +0 -92
- package/esm2022/lib/components/segmentation-tokens/segmentation-tokens.component.mjs +0 -199
- package/esm2022/lib/components/select-ppp/select-ppp.component.mjs +0 -200
- package/esm2022/lib/components/show-hide-columns/show-hide-columns-table.component.mjs +0 -116
- package/esm2022/lib/components/token/token.component.mjs +0 -1047
- package/esm2022/lib/components/tokens-calculator/tokens-calculator.component.mjs +0 -128
- package/esm2022/lib/directives/currency-colfuturo-formatter.directive.mjs +0 -48
- package/esm2022/lib/directives/currency-decimal-colfuturo-formatter.directive.mjs +0 -35
- package/esm2022/lib/ng-pli-commons.module.mjs +0 -385
- package/esm2022/lib/ng-pli-commons.service.mjs +0 -14
- package/esm2022/lib/pipes/currency-colfuturo.pipe.mjs +0 -36
- package/esm2022/lib/pipes/currency-decimal-colfuturo.pipe.mjs +0 -39
- package/esm2022/lib/pipes/currency-print-colfuturo.pipe.mjs +0 -34
- package/esm2022/lib/pipes/thousands.pipe.mjs +0 -61
- package/esm2022/lib/services/application-fill-percentage.service.mjs +0 -30
- package/esm2022/lib/services/application-pdf-form.service.mjs +0 -27
- package/esm2022/lib/services/application-tag.service.mjs +0 -56
- package/esm2022/lib/services/application.service.mjs +0 -253
- package/esm2022/lib/services/assign-task.service.mjs +0 -30
- package/esm2022/lib/services/authentication.service.mjs +0 -133
- package/esm2022/lib/services/blocked-beneficiary.service.mjs +0 -42
- package/esm2022/lib/services/budget-application.service.mjs +0 -265
- package/esm2022/lib/services/budget-setup.service.mjs +0 -26
- package/esm2022/lib/services/budget-simulation.service.mjs +0 -65
- package/esm2022/lib/services/budget.service.mjs +0 -205
- package/esm2022/lib/services/closure-wallet.service.mjs +0 -39
- package/esm2022/lib/services/cnf-correspondence-document-manager.service.mjs +0 -39
- package/esm2022/lib/services/codebtors.service.mjs +0 -28
- package/esm2022/lib/services/committee-assistant.service.mjs +0 -55
- package/esm2022/lib/services/committee-money.service.mjs +0 -44
- package/esm2022/lib/services/committee-pdf.service.mjs +0 -27
- package/esm2022/lib/services/committee-snapshot.service.mjs +0 -60
- package/esm2022/lib/services/common-info.service.mjs +0 -51
- package/esm2022/lib/services/common.service.mjs +0 -285
- package/esm2022/lib/services/configuration-document.service.mjs +0 -297
- package/esm2022/lib/services/configuration-minisite.service.mjs +0 -26
- package/esm2022/lib/services/configuration.service.mjs +0 -53
- package/esm2022/lib/services/correspondence-document-category.service.mjs +0 -31
- package/esm2022/lib/services/correspondence-manager.service.mjs +0 -74
- package/esm2022/lib/services/credit-score.service.mjs +0 -48
- package/esm2022/lib/services/credit-study.service.mjs +0 -292
- package/esm2022/lib/services/cube.service.mjs +0 -27
- package/esm2022/lib/services/data-form-history.service.mjs +0 -25
- package/esm2022/lib/services/data-form.service.mjs +0 -176
- package/esm2022/lib/services/data-letter-segmentation.service.mjs +0 -64
- package/esm2022/lib/services/document-analysis-auto.service.mjs +0 -27
- package/esm2022/lib/services/document-history.service.mjs +0 -43
- package/esm2022/lib/services/document-management.service.mjs +0 -57
- package/esm2022/lib/services/document-process.service.mjs +0 -27
- package/esm2022/lib/services/document-validation-attempt.service.mjs +0 -32
- package/esm2022/lib/services/document.service.mjs +0 -144
- package/esm2022/lib/services/documentary.type.service.mjs +0 -69
- package/esm2022/lib/services/email.service.mjs +0 -30
- package/esm2022/lib/services/evaluation.service.mjs +0 -181
- package/esm2022/lib/services/export-excel.service.mjs +0 -32
- package/esm2022/lib/services/file.service.mjs +0 -153
- package/esm2022/lib/services/form.service.mjs +0 -112
- package/esm2022/lib/services/gic-client-disbursement-metadata.service.mjs +0 -31
- package/esm2022/lib/services/gic-client.service.mjs +0 -49
- package/esm2022/lib/services/gic-cnf-bankvision-transaction.service.mjs +0 -31
- package/esm2022/lib/services/gic-cnf-closing-date.service.mjs +0 -34
- package/esm2022/lib/services/gic-cnf-maintenance.service.mjs +0 -30
- package/esm2022/lib/services/gic-collection.service.mjs +0 -53
- package/esm2022/lib/services/gic-disbursement.service.mjs +0 -39
- package/esm2022/lib/services/gic-extract.service.mjs +0 -41
- package/esm2022/lib/services/gic-log.service.mjs +0 -41
- package/esm2022/lib/services/gic-payment-application.service.mjs +0 -35
- package/esm2022/lib/services/gic-payment-plan-cube.service.mjs +0 -27
- package/esm2022/lib/services/gic-payment-plan.service.mjs +0 -32
- package/esm2022/lib/services/gic-trm.service.mjs +0 -27
- package/esm2022/lib/services/global.show.task.service.mjs +0 -37
- package/esm2022/lib/services/guarantee-document.service.mjs +0 -52
- package/esm2022/lib/services/guarantee-enrollment.service.mjs +0 -37
- package/esm2022/lib/services/guarantee.service.mjs +0 -128
- package/esm2022/lib/services/guarantees-summary-service.mjs +0 -26
- package/esm2022/lib/services/hash.service.mjs +0 -36
- package/esm2022/lib/services/import-data.service.mjs +0 -27
- package/esm2022/lib/services/import-excel-gic.service.mjs +0 -53
- package/esm2022/lib/services/initial-configuration-gic-parameters.service.mjs +0 -51
- package/esm2022/lib/services/initial-record.service.mjs +0 -51
- package/esm2022/lib/services/integration-ado.service.mjs +0 -54
- package/esm2022/lib/services/interaction-application-user.service.mjs +0 -81
- package/esm2022/lib/services/interest-adjustment.service.mjs +0 -34
- package/esm2022/lib/services/keys-assignation.service.mjs +0 -127
- package/esm2022/lib/services/legalization.service.mjs +0 -150
- package/esm2022/lib/services/letter-campaing.service.mjs +0 -49
- package/esm2022/lib/services/letter-task-mapping.service.mjs +0 -40
- package/esm2022/lib/services/log.service.mjs +0 -41
- package/esm2022/lib/services/maintenance.service.mjs +0 -86
- package/esm2022/lib/services/master-category.service.mjs +0 -66
- package/esm2022/lib/services/master-program.service.mjs +0 -78
- package/esm2022/lib/services/master-university.service.mjs +0 -79
- package/esm2022/lib/services/migration-plis.service.mjs +0 -27
- package/esm2022/lib/services/migration-survey-queue.service.mjs +0 -24
- package/esm2022/lib/services/openkm-document.service.mjs +0 -27
- package/esm2022/lib/services/page.service.mjs +0 -38
- package/esm2022/lib/services/partner-system.service.mjs +0 -30
- package/esm2022/lib/services/partner.service.mjs +0 -34
- package/esm2022/lib/services/pdf-analyzer.service.mjs +0 -33
- package/esm2022/lib/services/people-master.service.mjs +0 -42
- package/esm2022/lib/services/permission.service.mjs +0 -29
- package/esm2022/lib/services/pli-cnf-acuity-fields.service.mjs +0 -34
- package/esm2022/lib/services/pli-cnf-app-card-filter.service.mjs +0 -40
- package/esm2022/lib/services/pli-cnf-appointment-type.service.mjs +0 -41
- package/esm2022/lib/services/pli-cnf-budget-program-type.service.mjs +0 -54
- package/esm2022/lib/services/pli-cnf-budget.service.mjs +0 -31
- package/esm2022/lib/services/pli-cnf-cloning.service.mjs +0 -27
- package/esm2022/lib/services/pli-cnf-committee-pdf-config-table-config.service.mjs +0 -47
- package/esm2022/lib/services/pli-cnf-committee-pdf-gen-status.service.mjs +0 -30
- package/esm2022/lib/services/pli-cnf-committee-valpro-columns.service.mjs +0 -42
- package/esm2022/lib/services/pli-cnf-committee-visualization-mode.service.mjs +0 -42
- package/esm2022/lib/services/pli-cnf-committee.service.mjs +0 -66
- package/esm2022/lib/services/pli-cnf-config-minisite.service.mjs +0 -90
- package/esm2022/lib/services/pli-cnf-configuration-credit-study.service.mjs +0 -41
- package/esm2022/lib/services/pli-cnf-document-management.service.mjs +0 -40
- package/esm2022/lib/services/pli-cnf-dynamic-keys-assign.service.mjs +0 -52
- package/esm2022/lib/services/pli-cnf-evaluation-task-mailing.service.mjs +0 -31
- package/esm2022/lib/services/pli-cnf-evaluation-task-template.service.mjs +0 -39
- package/esm2022/lib/services/pli-cnf-evaluation-task.service.mjs +0 -112
- package/esm2022/lib/services/pli-cnf-evaluation-template.service.mjs +0 -95
- package/esm2022/lib/services/pli-cnf-form-edit.service.mjs +0 -68
- package/esm2022/lib/services/pli-cnf-form-multiaplicacion.service.mjs +0 -46
- package/esm2022/lib/services/pli-cnf-guarantee-documents-template.service.mjs +0 -40
- package/esm2022/lib/services/pli-cnf-guarantee-token.service.mjs +0 -42
- package/esm2022/lib/services/pli-cnf-header.service.mjs +0 -39
- package/esm2022/lib/services/pli-cnf-indicator.service.mjs +0 -39
- package/esm2022/lib/services/pli-cnf-information-system.service.mjs +0 -24
- package/esm2022/lib/services/pli-cnf-interaction.service.mjs +0 -78
- package/esm2022/lib/services/pli-cnf-letter-template-type.service.mjs +0 -29
- package/esm2022/lib/services/pli-cnf-letter-template.service.mjs +0 -48
- package/esm2022/lib/services/pli-cnf-look-and-feel.service.mjs +0 -28
- package/esm2022/lib/services/pli-cnf-mail.service.mjs +0 -30
- package/esm2022/lib/services/pli-cnf-menu-form.service.mjs +0 -34
- package/esm2022/lib/services/pli-cnf-migration-plis-field-budget.service.mjs +0 -34
- package/esm2022/lib/services/pli-cnf-migration-plis-field.service.mjs +0 -47
- package/esm2022/lib/services/pli-cnf-migration-status-plis.service.mjs +0 -44
- package/esm2022/lib/services/pli-cnf-page-section-form.service.mjs +0 -66
- package/esm2022/lib/services/pli-cnf-page-sub-process.service.mjs +0 -25
- package/esm2022/lib/services/pli-cnf-pdfs.service.mjs +0 -31
- package/esm2022/lib/services/pli-cnf-profile-form.service.mjs +0 -40
- package/esm2022/lib/services/pli-cnf-profile-user.service.mjs +0 -49
- package/esm2022/lib/services/pli-cnf-project-summary.service.mjs +0 -39
- package/esm2022/lib/services/pli-cnf-scenario.service.mjs +0 -47
- package/esm2022/lib/services/pli-cnf-segmentation.service.mjs +0 -72
- package/esm2022/lib/services/pli-cnf-snapshot-token.service.mjs +0 -42
- package/esm2022/lib/services/pli-cnf-status-flow-interaction.service.mjs +0 -74
- package/esm2022/lib/services/pli-cnf-status-flow.service.mjs +0 -56
- package/esm2022/lib/services/pli-cnf-support-document-category.service.mjs +0 -47
- package/esm2022/lib/services/pli-cnf-support-document.service.mjs +0 -56
- package/esm2022/lib/services/pli-cnf-survey-document.service.mjs +0 -37
- package/esm2022/lib/services/pli-cnf-survey-pdf.service.mjs +0 -34
- package/esm2022/lib/services/pli-cnf-survey.service.mjs +0 -46
- package/esm2022/lib/services/pli-cnf-task-group.service.mjs +0 -33
- package/esm2022/lib/services/pli-cnf-text-category.service.mjs +0 -38
- package/esm2022/lib/services/pli-cnf-text-option.service.mjs +0 -39
- package/esm2022/lib/services/pli-cnf-text.service.mjs +0 -62
- package/esm2022/lib/services/pli-cnf-type-text.service.mjs +0 -45
- package/esm2022/lib/services/pli-cnf-university-article.service.mjs +0 -39
- package/esm2022/lib/services/pli-cnf-user-calendar.service.mjs +0 -36
- package/esm2022/lib/services/pli-cnf-user-workspace.service.mjs +0 -35
- package/esm2022/lib/services/pli-cnf-valpro-keys.service.mjs +0 -35
- package/esm2022/lib/services/pli-cnf-workspace-segmentation.service.mjs +0 -31
- package/esm2022/lib/services/pli-message-type.service.mjs +0 -40
- package/esm2022/lib/services/pli-multiple-value-filter.service.mjs +0 -39
- package/esm2022/lib/services/pli-promocion-username.service.mjs +0 -57
- package/esm2022/lib/services/pli-seg-action-user.service.mjs +0 -37
- package/esm2022/lib/services/pli-segmentation.service.mjs +0 -130
- package/esm2022/lib/services/pli-tag-assignment.service.mjs +0 -36
- package/esm2022/lib/services/pli-tag.service.mjs +0 -55
- package/esm2022/lib/services/pli-user.service.mjs +0 -51
- package/esm2022/lib/services/plis-beneficiario.service.mjs +0 -29
- package/esm2022/lib/services/plis-estatus-change.service.mjs +0 -30
- package/esm2022/lib/services/post-selection.service.mjs +0 -25
- package/esm2022/lib/services/ppp.service.mjs +0 -360
- package/esm2022/lib/services/profile.service.mjs +0 -60
- package/esm2022/lib/services/progress-bar.service.mjs +0 -40
- package/esm2022/lib/services/promotion-score.service.mjs +0 -44
- package/esm2022/lib/services/registry-identifier.service.mjs +0 -49
- package/esm2022/lib/services/return-refund.service.mjs +0 -53
- package/esm2022/lib/services/segmentation-tokens.service.mjs +0 -43
- package/esm2022/lib/services/segmentation-user-service.service.mjs +0 -94
- package/esm2022/lib/services/segmentation.service.mjs +0 -31
- package/esm2022/lib/services/send-application.service.mjs +0 -541
- package/esm2022/lib/services/sesion-form.service.mjs +0 -31
- package/esm2022/lib/services/sesion.service.mjs +0 -48
- package/esm2022/lib/services/spinner.service.mjs +0 -16
- package/esm2022/lib/services/sponsorship-letter.service.mjs +0 -68
- package/esm2022/lib/services/status.service.mjs +0 -104
- package/esm2022/lib/services/summary-budget.service.mjs +0 -24
- package/esm2022/lib/services/survey-metadata.service.mjs +0 -28
- package/esm2022/lib/services/survey-queue.service.mjs +0 -24
- package/esm2022/lib/services/survey.service.mjs +0 -52
- package/esm2022/lib/services/tag-management.service.mjs +0 -58
- package/esm2022/lib/services/tasa.cambio.service.mjs +0 -35
- package/esm2022/lib/services/token-transformation.service.mjs +0 -62
- package/esm2022/lib/services/token.service.mjs +0 -1477
- package/esm2022/lib/services/university.service.mjs +0 -50
- package/esm2022/lib/services/upload-documents.service.mjs +0 -60
- package/esm2022/lib/services/user.service.mjs +0 -28
- package/esm2022/lib/services/visualization-committee.service.mjs +0 -91
- package/esm2022/lib/utils/custom-validator.mjs +0 -95
- package/esm2022/lib/utils/form-util.mjs +0 -35
- package/esm2022/lib/utils/formio-util.mjs +0 -582
- package/esm2022/lib/utils/version-commons.mjs +0 -10
- package/esm2022/ng-pli-commons.mjs +0 -5
- package/esm2022/public-api.mjs +0 -226
- package/esm2022/version.mjs +0 -29
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { ETypeColumn, SegFilter } from 'ng-pli-util';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../services/common.service";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@angular/forms";
|
|
7
|
-
import * as i4 from "primeng/dropdown";
|
|
8
|
-
export class DynamicFilterComponent {
|
|
9
|
-
constructor(cdRef, commonService) {
|
|
10
|
-
this.cdRef = cdRef;
|
|
11
|
-
this.commonService = commonService;
|
|
12
|
-
this.searchFilter = new EventEmitter();
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() { }
|
|
15
|
-
/** It manages the change of the every @Input */
|
|
16
|
-
ngOnChanges(changes) {
|
|
17
|
-
const comboColumnWork = changes.comboColumnWork;
|
|
18
|
-
if (comboColumnWork && comboColumnWork.currentValue) {
|
|
19
|
-
this.comboColumnWork = comboColumnWork.currentValue;
|
|
20
|
-
this.active = true;
|
|
21
|
-
if (!this.lSegFilter || this.lSegFilter.length == 0) {
|
|
22
|
-
this.addFilter();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const lSegColumn = changes.lSegColumn;
|
|
26
|
-
if (lSegColumn && lSegColumn.currentValue) {
|
|
27
|
-
this.lSegColumn = lSegColumn.currentValue;
|
|
28
|
-
this.loadMapColumn();
|
|
29
|
-
}
|
|
30
|
-
// console.log(this.comboColumnWork);
|
|
31
|
-
}
|
|
32
|
-
loadMapColumn() {
|
|
33
|
-
this.mapSegColumnById = new Map();
|
|
34
|
-
for (const segColumn of this.lSegColumn) {
|
|
35
|
-
this.mapSegColumnById.set(segColumn.idColumn.toString(), segColumn);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/** it fires when select column */
|
|
39
|
-
onSelectColumn(filter) {
|
|
40
|
-
if (filter.idColumn) {
|
|
41
|
-
let column = this.getColumnById(filter.idColumn.toString());
|
|
42
|
-
if (column) {
|
|
43
|
-
filter.idColumn = column.idColumn;
|
|
44
|
-
filter.type = column.type;
|
|
45
|
-
filter.label = column.label;
|
|
46
|
-
filter.key = column.key;
|
|
47
|
-
}
|
|
48
|
-
if (Number(filter.type) == this.getTypeNumber() ||
|
|
49
|
-
Number(filter.type) == this.getTypeDate())
|
|
50
|
-
filter.operator = '1';
|
|
51
|
-
else
|
|
52
|
-
filter.operator = '3';
|
|
53
|
-
console.log('filter', filter);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/** It returns the type text */
|
|
57
|
-
getTypeText() {
|
|
58
|
-
return ETypeColumn.TEXTO;
|
|
59
|
-
}
|
|
60
|
-
/** It returns the type number */
|
|
61
|
-
getTypeNumber() {
|
|
62
|
-
return ETypeColumn.NUMERICO;
|
|
63
|
-
}
|
|
64
|
-
/** It returns the type date */
|
|
65
|
-
getTypeDate() {
|
|
66
|
-
return ETypeColumn.FECHA;
|
|
67
|
-
}
|
|
68
|
-
/** it deletes filter */
|
|
69
|
-
deleteFilter(i) {
|
|
70
|
-
console.log('Eliminar ', i);
|
|
71
|
-
if (this.lSegFilter)
|
|
72
|
-
this.lSegFilter.splice(i, 1);
|
|
73
|
-
if (!this.lSegFilter || !this.lSegFilter.length)
|
|
74
|
-
this.addFilter();
|
|
75
|
-
}
|
|
76
|
-
/** it defines the conjunction */
|
|
77
|
-
setConjunction(filter, conjunction) {
|
|
78
|
-
filter.conjunction = conjunction;
|
|
79
|
-
}
|
|
80
|
-
/** it adds new filter */
|
|
81
|
-
addFilter() {
|
|
82
|
-
if (!this.lSegFilter) {
|
|
83
|
-
this.lSegFilter = [];
|
|
84
|
-
}
|
|
85
|
-
let filter = new SegFilter();
|
|
86
|
-
filter.conjunction = 'Y';
|
|
87
|
-
this.lSegFilter.push(filter);
|
|
88
|
-
}
|
|
89
|
-
/** clean all filters */
|
|
90
|
-
clean() {
|
|
91
|
-
this.lSegFilter = [];
|
|
92
|
-
this.addFilter();
|
|
93
|
-
}
|
|
94
|
-
/** clean all filters */
|
|
95
|
-
deleteAll() {
|
|
96
|
-
if (this.lSegFilter)
|
|
97
|
-
for (const filter of this.lSegFilter)
|
|
98
|
-
filter.value = undefined;
|
|
99
|
-
}
|
|
100
|
-
/** it searches */
|
|
101
|
-
search() {
|
|
102
|
-
this.searchFilter.emit(this.lSegFilter);
|
|
103
|
-
}
|
|
104
|
-
/** return type input */
|
|
105
|
-
getTypeInput(type) {
|
|
106
|
-
if (type == this.getTypeDate())
|
|
107
|
-
return 'date';
|
|
108
|
-
if (type == this.getTypeNumber())
|
|
109
|
-
return 'text';
|
|
110
|
-
return 'text';
|
|
111
|
-
}
|
|
112
|
-
/** it returns the column by id */
|
|
113
|
-
getColumnById(id) {
|
|
114
|
-
return this.mapSegColumnById.get(id);
|
|
115
|
-
}
|
|
116
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CommonService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DynamicFilterComponent, selector: "app-dynamic-filter", inputs: { lSegFilter: "lSegFilter", lSegColumn: "lSegColumn", comboColumnWork: "comboColumnWork" }, outputs: { searchFilter: "searchFilter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flow-row-wrap\" style=\"margin:10px 0 0;justify-content: normal\" *ngIf=\"active\">\r\n\t<div class=\"segmentation-filter\" *ngFor=\"let filter of lSegFilter; let i = index\">\r\n\t\t<div *ngIf=\"filter.idColumn == undefined\">\r\n\t\t\t<div class=\"ml-sm\">\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[autoWidth]=\"false\"\r\n\t\t\t\t\t[style]=\"{ width: '100%' }\"\r\n\t\t\t\t\tplaceholder=\"-- Seleccione opci\u00F3n\"\r\n\t\t\t\t\t[options]=\"comboColumnWork\"\r\n\t\t\t\t\t[group]=\"true\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.idColumn\"\r\n\t\t\t\t\t(onChange)=\"onSelectColumn(filter)\"\r\n\t\t\t\t\t[filter]=\"true\"\r\n\t\t\t\t>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"flex align-items-center\" *ngIf=\"filter.idColumn != undefined\">\r\n\t\t\t<div class=\"ml-sm mr-sm\">\r\n\t\t\t\t<span class=\"input-group-btn conector\" *ngIf=\"i != 0\">\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclass=\"btn btn-info btn-sm br-5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'Y'\"\r\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'O')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tY\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclass=\"btn btn-warning btn-sm br-5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'O'\"\r\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'Y')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tO\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"ml-sm\" *ngIf=\"i == 0\">\r\n\t\t\t\t\t<span class=\"btn btn-sm br-5\" style=\"cursor:auto;\"> </span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"mr-sm\">\r\n\t\t\t\t<select\r\n\t\t\t\t\tclass=\"form-control input-sm select-operation\"\r\n\t\t\t\t\tstyle=\"width: 125px;\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.operator\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<option value=\"1\">Igual a</option>\r\n\t\t\t\t\t<option value=\"2\">Diferente a</option>\r\n\t\t\t\t\t<option value=\"3\" *ngIf=\"filter.type == getTypeText()\">Contiene</option>\r\n\t\t\t\t\t<option value=\"4\" *ngIf=\"filter.type == getTypeText()\">No contiene</option>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMayor a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"6\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMayor o igual a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"7\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMenor a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"8\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMenor o igual a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option value=\"9\">Es vac\u00EDo</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t\t<div>\r\n\t\t\t\t<input\r\n\t\t\t\t\t[type]=\"getTypeInput(filter.type)\"\r\n\t\t\t\t\t[disabled]=\"filter.operator == 9\"\r\n\t\t\t\t\tclass=\"form-control input-value input-sm\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.value\"\r\n\t\t\t\t\t[placeholder]=\"filter.label\"\r\n\t\t\t\t\tstyle=\"width: 165px;\"\r\n\t\t\t\t\t(keyup.enter)=\"search()\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"flex ml-sm button_filter\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-danger btn-sm btn-rounded\"\r\n\t\t\t\t\t(click)=\"deleteFilter(i)\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-minus\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-success btn-sm btn-rounded ml-sm\"\r\n\t\t\t\t\t(click)=\"addFilter()\"\r\n\t\t\t\t\t*ngIf=\"i + 1 == lSegFilter.length\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-plus\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n<div class=\"row\" style=\"margin:0 0 10px\" *ngIf=\"active\">\r\n\t<div class=\"col-sm-12 panel-button\">\r\n\t\t<div class=\"btn-toolbar\">\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button type=\"button\" class=\"btn btn-primary btn-sm btn-consult\" (click)=\"search()\">\r\n\t\t\t\t\tConsultar\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button type=\"button\" class=\"btn btn-danger btn-sm btn-delete\" (click)=\"clean()\">\r\n\t\t\t\t\tBorrar filtros\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-warning btn-sm btn-clear\"\r\n\t\t\t\t\t(click)=\"deleteAll()\"\r\n\t\t\t\t>\r\n\t\t\t\t\tlimpiar datos\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: [".button_filter .btn{line-height:12px;width:22px;height:22px}.button_filter .btn.btn-success{background-color:transparent;border:1px solid #4cae4c;color:#4cae4c}.button_filter .btn.btn-success:hover{background-color:#4cae4c;color:#fff}.button_filter .btn-danger{background-color:transparent;color:#d43f3a}.button_filter .btn-danger:hover{background-color:#d43f3a;color:#fff}.conector .btn{height:22px;line-height:12px}.btn{padding:5px}.btn-rounded{border-radius:50%!important}.btn-delete,.btn-save,.btn-definition,.btn-clear{background-color:transparent;color:#333;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.btn-delete:hover{background-color:#d43f3a;color:#fff}.btn-save:hover{background-color:#4cae4c;color:#fff}.btn-definition:hover{color:#fff;background-color:#ccc}.btn-clear:hover{background-color:#eea236;color:#fff}.br-5{border-radius:5px!important}.mr-sm{margin-right:5px}.ml-sm{margin-left:5px}.flex{display:flex!important}.flow-row-wrap{flex-flow:row wrap}.align-items-center{align-items:center}.dialog-max-size .ui-dialog{width:95%!important}.segmentation-group .form-control.select-operation{width:40%;font-size:11px;padding-left:3px;padding-right:3px}.segmentation-group .form-control.input-value{width:60%}.segmentation-filter{margin-bottom:10px}.panel-button{background-color:#f8f8f8;padding-top:10px;padding-bottom:10px;border-top:1px solid rgb(231,231,231);border-bottom:1px solid rgb(231,231,231);text-align:right}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.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: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }] }); }
|
|
118
|
-
}
|
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicFilterComponent, decorators: [{
|
|
120
|
-
type: Component,
|
|
121
|
-
args: [{ selector: 'app-dynamic-filter', standalone: false, template: "<div class=\"flex flow-row-wrap\" style=\"margin:10px 0 0;justify-content: normal\" *ngIf=\"active\">\r\n\t<div class=\"segmentation-filter\" *ngFor=\"let filter of lSegFilter; let i = index\">\r\n\t\t<div *ngIf=\"filter.idColumn == undefined\">\r\n\t\t\t<div class=\"ml-sm\">\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[autoWidth]=\"false\"\r\n\t\t\t\t\t[style]=\"{ width: '100%' }\"\r\n\t\t\t\t\tplaceholder=\"-- Seleccione opci\u00F3n\"\r\n\t\t\t\t\t[options]=\"comboColumnWork\"\r\n\t\t\t\t\t[group]=\"true\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.idColumn\"\r\n\t\t\t\t\t(onChange)=\"onSelectColumn(filter)\"\r\n\t\t\t\t\t[filter]=\"true\"\r\n\t\t\t\t>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"flex align-items-center\" *ngIf=\"filter.idColumn != undefined\">\r\n\t\t\t<div class=\"ml-sm mr-sm\">\r\n\t\t\t\t<span class=\"input-group-btn conector\" *ngIf=\"i != 0\">\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclass=\"btn btn-info btn-sm br-5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'Y'\"\r\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'O')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tY\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclass=\"btn btn-warning btn-sm br-5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'O'\"\r\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'Y')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tO\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"ml-sm\" *ngIf=\"i == 0\">\r\n\t\t\t\t\t<span class=\"btn btn-sm br-5\" style=\"cursor:auto;\"> </span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"mr-sm\">\r\n\t\t\t\t<select\r\n\t\t\t\t\tclass=\"form-control input-sm select-operation\"\r\n\t\t\t\t\tstyle=\"width: 125px;\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.operator\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<option value=\"1\">Igual a</option>\r\n\t\t\t\t\t<option value=\"2\">Diferente a</option>\r\n\t\t\t\t\t<option value=\"3\" *ngIf=\"filter.type == getTypeText()\">Contiene</option>\r\n\t\t\t\t\t<option value=\"4\" *ngIf=\"filter.type == getTypeText()\">No contiene</option>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"5\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMayor a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"6\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMayor o igual a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"7\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMenor a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tvalue=\"8\"\r\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tMenor o igual a</option\r\n\t\t\t\t\t>\r\n\t\t\t\t\t<option value=\"9\">Es vac\u00EDo</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t\t<div>\r\n\t\t\t\t<input\r\n\t\t\t\t\t[type]=\"getTypeInput(filter.type)\"\r\n\t\t\t\t\t[disabled]=\"filter.operator == 9\"\r\n\t\t\t\t\tclass=\"form-control input-value input-sm\"\r\n\t\t\t\t\t[(ngModel)]=\"filter.value\"\r\n\t\t\t\t\t[placeholder]=\"filter.label\"\r\n\t\t\t\t\tstyle=\"width: 165px;\"\r\n\t\t\t\t\t(keyup.enter)=\"search()\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"flex ml-sm button_filter\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-danger btn-sm btn-rounded\"\r\n\t\t\t\t\t(click)=\"deleteFilter(i)\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-minus\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-success btn-sm btn-rounded ml-sm\"\r\n\t\t\t\t\t(click)=\"addFilter()\"\r\n\t\t\t\t\t*ngIf=\"i + 1 == lSegFilter.length\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<span class=\"fa fa-plus\"></span>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n<div class=\"row\" style=\"margin:0 0 10px\" *ngIf=\"active\">\r\n\t<div class=\"col-sm-12 panel-button\">\r\n\t\t<div class=\"btn-toolbar\">\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button type=\"button\" class=\"btn btn-primary btn-sm btn-consult\" (click)=\"search()\">\r\n\t\t\t\t\tConsultar\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button type=\"button\" class=\"btn btn-danger btn-sm btn-delete\" (click)=\"clean()\">\r\n\t\t\t\t\tBorrar filtros\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"btn-group\">\r\n\t\t\t\t<button\r\n\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\tclass=\"btn btn-warning btn-sm btn-clear\"\r\n\t\t\t\t\t(click)=\"deleteAll()\"\r\n\t\t\t\t>\r\n\t\t\t\t\tlimpiar datos\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: [".button_filter .btn{line-height:12px;width:22px;height:22px}.button_filter .btn.btn-success{background-color:transparent;border:1px solid #4cae4c;color:#4cae4c}.button_filter .btn.btn-success:hover{background-color:#4cae4c;color:#fff}.button_filter .btn-danger{background-color:transparent;color:#d43f3a}.button_filter .btn-danger:hover{background-color:#d43f3a;color:#fff}.conector .btn{height:22px;line-height:12px}.btn{padding:5px}.btn-rounded{border-radius:50%!important}.btn-delete,.btn-save,.btn-definition,.btn-clear{background-color:transparent;color:#333;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.btn-delete:hover{background-color:#d43f3a;color:#fff}.btn-save:hover{background-color:#4cae4c;color:#fff}.btn-definition:hover{color:#fff;background-color:#ccc}.btn-clear:hover{background-color:#eea236;color:#fff}.br-5{border-radius:5px!important}.mr-sm{margin-right:5px}.ml-sm{margin-left:5px}.flex{display:flex!important}.flow-row-wrap{flex-flow:row wrap}.align-items-center{align-items:center}.dialog-max-size .ui-dialog{width:95%!important}.segmentation-group .form-control.select-operation{width:40%;font-size:11px;padding-left:3px;padding-right:3px}.segmentation-group .form-control.input-value{width:60%}.segmentation-filter{margin-bottom:10px}.panel-button{background-color:#f8f8f8;padding-top:10px;padding-bottom:10px;border-top:1px solid rgb(231,231,231);border-bottom:1px solid rgb(231,231,231);text-align:right}\n"] }]
|
|
122
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.CommonService }], propDecorators: { lSegFilter: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], lSegColumn: [{
|
|
125
|
-
type: Input
|
|
126
|
-
}], comboColumnWork: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}], searchFilter: [{
|
|
129
|
-
type: Output
|
|
130
|
-
}] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZmlsdGVyL2R5bmFtaWMtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZpbHRlci9keW5hbWljLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUlOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFhLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFVaEUsTUFBTSxPQUFPLHNCQUFzQjtJQWdCbEMsWUFBc0IsS0FBd0IsRUFBWSxhQUE0QjtRQUFoRSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUFZLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRjVFLGlCQUFZLEdBQThCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFa0IsQ0FBQztJQUUxRixRQUFRLEtBQUksQ0FBQztJQUViLGdEQUFnRDtJQUNoRCxXQUFXLENBQUMsT0FBc0I7UUFDakMsTUFBTSxlQUFlLEdBQWlCLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDOUQsSUFBSSxlQUFlLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQztZQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FB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dkIsS0FBSztnQkFNSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0T25Jbml0LFxyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPdXRwdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdFNpbXBsZUNoYW5nZXMsXHJcblx0U2ltcGxlQ2hhbmdlXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVUeXBlQ29sdW1uLCBTZWdGaWx0ZXIsIFNlZ0NvbHVtbiB9IGZyb20gJ25nLXBsaS11dGlsJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuXHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1keW5hbWljLWZpbHRlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1maWx0ZXIuY29tcG9uZW50LmNzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblx0LyoqICovXHJcblx0YWN0aXZlOiBib29sZWFuO1xyXG5cdC8qKiBMaXN0IG9mIGZpbHRlciAqL1xyXG5cdEBJbnB1dCgpIGxTZWdGaWx0ZXI6IFNlZ0ZpbHRlcltdO1xyXG5cdC8qKiBMaXN0IG9mIGNvbHVtbnMgKi9cclxuXHRASW5wdXQoKSBsU2VnQ29sdW1uOiBTZWdDb2x1bW5bXTtcclxuXHQvKiogTGlzdCBvZiBjb2x1bW5zICovXHJcblx0QElucHV0KCkgY29tYm9Db2x1bW5Xb3JrOiBhbnlbXTtcclxuXHJcblx0ZGlzcGxheURpYWxvZzogYm9vbGVhbjtcclxuXHJcblx0bWFwU2VnQ29sdW1uQnlJZDogTWFwPHN0cmluZywgU2VnQ29sdW1uPjtcclxuXHJcblx0QE91dHB1dCgpIHNlYXJjaEZpbHRlcjogRXZlbnRFbWl0dGVyPFNlZ0ZpbHRlcltdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJvdGVjdGVkIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UpIHt9XHJcblxyXG5cdG5nT25Jbml0KCkge31cclxuXHJcblx0LyoqIEl0IG1hbmFnZXMgdGhlIGNoYW5nZSBvZiB0aGUgZXZlcnkgQElucHV0ICovXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0Y29uc3QgY29tYm9Db2x1bW5Xb3JrOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLmNvbWJvQ29sdW1uV29yaztcclxuXHRcdGlmIChjb21ib0NvbHVtbldvcmsgJiYgY29tYm9Db2x1bW5Xb3JrLmN1cnJlbnRWYWx1ZSkge1xyXG5cdFx0XHR0aGlzLmNvbWJvQ29sdW1uV29yayA9IGNvbWJvQ29sdW1uV29yay5jdXJyZW50VmFsdWU7XHJcblx0XHRcdHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuXHRcdFx0aWYgKCF0aGlzLmxTZWdGaWx0ZXIgfHwgdGhpcy5sU2VnRmlsdGVyLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdFx0dGhpcy5hZGRGaWx0ZXIoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Y29uc3QgbFNlZ0NvbHVtbjogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5sU2VnQ29sdW1uO1xyXG5cdFx0aWYgKGxTZWdDb2x1bW4gJiYgbFNlZ0NvbHVtbi5jdXJyZW50VmFsdWUpIHtcclxuXHRcdFx0dGhpcy5sU2VnQ29sdW1uID0gbFNlZ0NvbHVtbi5jdXJyZW50VmFsdWU7XHJcblx0XHRcdHRoaXMubG9hZE1hcENvbHVtbigpO1xyXG5cdFx0fVxyXG5cdFx0Ly8gY29uc29sZS5sb2codGhpcy5jb21ib0NvbHVtbldvcmspO1xyXG5cdH1cclxuXHJcblx0bG9hZE1hcENvbHVtbigpIHtcclxuXHRcdHRoaXMubWFwU2VnQ29sdW1uQnlJZCA9IG5ldyBNYXA8c3RyaW5nLCBTZWdDb2x1bW4+KCk7XHJcblx0XHRmb3IgKGNvbnN0IHNlZ0NvbHVtbiBvZiB0aGlzLmxTZWdDb2x1bW4pIHtcclxuXHRcdFx0dGhpcy5tYXBTZWdDb2x1bW5CeUlkLnNldChzZWdDb2x1bW4uaWRDb2x1bW4udG9TdHJpbmcoKSwgc2VnQ29sdW1uKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBpdCBmaXJlcyB3aGVuIHNlbGVjdCBjb2x1bW4gKi9cclxuXHRvblNlbGVjdENvbHVtbihmaWx0ZXI6IFNlZ0ZpbHRlcikge1xyXG5cdFx0aWYgKGZpbHRlci5pZENvbHVtbikge1xyXG5cdFx0XHRsZXQgY29sdW1uID0gdGhpcy5nZXRDb2x1bW5CeUlkKGZpbHRlci5pZENvbHVtbi50b1N0cmluZygpKTtcclxuXHRcdFx0aWYgKGNvbHVtbikge1xyXG5cdFx0XHRcdGZpbHRlci5pZENvbHVtbiA9IGNvbHVtbi5pZENvbHVtbjtcclxuXHRcdFx0XHRmaWx0ZXIudHlwZSA9IGNvbHVtbi50eXBlO1xyXG5cdFx0XHRcdGZpbHRlci5sYWJlbCA9IGNvbHVtbi5sYWJlbDtcclxuXHRcdFx0XHRmaWx0ZXIua2V5ID0gY29sdW1uLmtleTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdE51bWJlcihmaWx0ZXIudHlwZSkgPT0gdGhpcy5nZXRUeXBlTnVtYmVyKCkgfHxcclxuXHRcdFx0XHROdW1iZXIoZmlsdGVyLnR5cGUpID09IHRoaXMuZ2V0VHlwZURhdGUoKVxyXG5cdFx0XHQpXHJcblx0XHRcdFx0ZmlsdGVyLm9wZXJhdG9yID0gJzEnO1xyXG5cdFx0XHRlbHNlIGZpbHRlci5vcGVyYXRvciA9ICczJztcclxuXHRcdFx0Y29uc29sZS5sb2coJ2ZpbHRlcicsIGZpbHRlcik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgdHlwZSB0ZXh0ICovXHJcblx0Z2V0VHlwZVRleHQoKSB7XHJcblx0XHRyZXR1cm4gRVR5cGVDb2x1bW4uVEVYVE87XHJcblx0fVxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSB0eXBlIG51bWJlciAqL1xyXG5cdGdldFR5cGVOdW1iZXIoKSB7XHJcblx0XHRyZXR1cm4gRVR5cGVDb2x1bW4uTlVNRVJJQ087XHJcblx0fVxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSB0eXBlIGRhdGUgKi9cclxuXHRnZXRUeXBlRGF0ZSgpIHtcclxuXHRcdHJldHVybiBFVHlwZUNvbHVtbi5GRUNIQTtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCBkZWxldGVzIGZpbHRlciAqL1xyXG5cdGRlbGV0ZUZpbHRlcihpKSB7XHJcblx0XHRjb25zb2xlLmxvZygnRWxpbWluYXIgJywgaSk7XHJcblx0XHRpZiAodGhpcy5sU2VnRmlsdGVyKSB0aGlzLmxTZWdGaWx0ZXIuc3BsaWNlKGksIDEpO1xyXG5cdFx0aWYgKCF0aGlzLmxTZWdGaWx0ZXIgfHwgIXRoaXMubFNlZ0ZpbHRlci5sZW5ndGgpIHRoaXMuYWRkRmlsdGVyKCk7XHJcblx0fVxyXG5cdC8qKiBpdCBkZWZpbmVzIHRoZSBjb25qdW5jdGlvbiAqL1xyXG5cdHNldENvbmp1bmN0aW9uKGZpbHRlcjogU2VnRmlsdGVyLCBjb25qdW5jdGlvbikge1xyXG5cdFx0ZmlsdGVyLmNvbmp1bmN0aW9uID0gY29uanVuY3Rpb247XHJcblx0fVxyXG5cclxuXHQvKiogaXQgYWRkcyBuZXcgZmlsdGVyICovXHJcblx0YWRkRmlsdGVyKCkge1xyXG5cdFx0aWYgKCF0aGlzLmxTZWdGaWx0ZXIpIHtcclxuXHRcdFx0dGhpcy5sU2VnRmlsdGVyID0gW107XHJcblx0XHR9XHJcblx0XHRsZXQgZmlsdGVyID0gbmV3IFNlZ0ZpbHRlcigpO1xyXG5cdFx0ZmlsdGVyLmNvbmp1bmN0aW9uID0gJ1knO1xyXG5cdFx0dGhpcy5sU2VnRmlsdGVyLnB1c2goZmlsdGVyKTtcclxuXHR9XHJcblxyXG5cdC8qKiBjbGVhbiBhbGwgZmlsdGVycyAqL1xyXG5cdGNsZWFuKCkge1xyXG5cdFx0dGhpcy5sU2VnRmlsdGVyID0gW107XHJcblx0XHR0aGlzLmFkZEZpbHRlcigpO1xyXG5cdH1cclxuXHJcblx0LyoqIGNsZWFuIGFsbCBmaWx0ZXJzICovXHJcblx0ZGVsZXRlQWxsKCkge1xyXG5cdFx0aWYgKHRoaXMubFNlZ0ZpbHRlcikgZm9yIChjb25zdCBmaWx0ZXIgb2YgdGhpcy5sU2VnRmlsdGVyKSBmaWx0ZXIudmFsdWUgPSB1bmRlZmluZWQ7XHJcblx0fVxyXG5cclxuXHQvKiogaXQgc2VhcmNoZXMgICovXHJcblx0c2VhcmNoKCkge1xyXG5cdFx0dGhpcy5zZWFyY2hGaWx0ZXIuZW1pdCh0aGlzLmxTZWdGaWx0ZXIpO1xyXG5cdH1cclxuXHJcblx0LyoqIHJldHVybiB0eXBlIGlucHV0ICovXHJcblx0Z2V0VHlwZUlucHV0KHR5cGUpIHtcclxuXHRcdGlmICh0eXBlID09IHRoaXMuZ2V0VHlwZURhdGUoKSkgcmV0dXJuICdkYXRlJztcclxuXHRcdGlmICh0eXBlID09IHRoaXMuZ2V0VHlwZU51bWJlcigpKSByZXR1cm4gJ3RleHQnO1xyXG5cdFx0cmV0dXJuICd0ZXh0JztcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSBjb2x1bW4gYnkgaWQgKi9cclxuXHRnZXRDb2x1bW5CeUlkKGlkOiBzdHJpbmcpOiBTZWdDb2x1bW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMubWFwU2VnQ29sdW1uQnlJZC5nZXQoaWQpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbG93LXJvdy13cmFwXCIgc3R5bGU9XCJtYXJnaW46MTBweCAwIDA7anVzdGlmeS1jb250ZW50OiBub3JtYWxcIiAqbmdJZj1cImFjdGl2ZVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJzZWdtZW50YXRpb24tZmlsdGVyXCIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBsU2VnRmlsdGVyOyBsZXQgaSA9IGluZGV4XCI+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiZmlsdGVyLmlkQ29sdW1uID09IHVuZGVmaW5lZFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibWwtc21cIj5cclxuXHRcdFx0XHQ8cC1kcm9wZG93blxyXG5cdFx0XHRcdFx0W2F1dG9XaWR0aF09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnIH1cIlxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCItLSBTZWxlY2Npb25lIG9wY2nDs25cIlxyXG5cdFx0XHRcdFx0W29wdGlvbnNdPVwiY29tYm9Db2x1bW5Xb3JrXCJcclxuXHRcdFx0XHRcdFtncm91cF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwiZmlsdGVyLmlkQ29sdW1uXCJcclxuXHRcdFx0XHRcdChvbkNoYW5nZSk9XCJvblNlbGVjdENvbHVtbihmaWx0ZXIpXCJcclxuXHRcdFx0XHRcdFtmaWx0ZXJdPVwidHJ1ZVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvcC1kcm9wZG93bj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiICpuZ0lmPVwiZmlsdGVyLmlkQ29sdW1uICE9IHVuZGVmaW5lZFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibWwtc20gbXItc21cIj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0biBjb25lY3RvclwiICpuZ0lmPVwiaSAhPSAwXCI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4taW5mbyBidG4tc20gYnItNVwiXHJcblx0XHRcdFx0XHRcdCpuZ0lmPVwiZmlsdGVyLmNvbmp1bmN0aW9uID09ICdZJ1wiXHJcblx0XHRcdFx0XHRcdChjbGljayk9XCJzZXRDb25qdW5jdGlvbihmaWx0ZXIsICdPJylcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRZXHJcblx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nIGJ0bi1zbSBici01XCJcclxuXHRcdFx0XHRcdFx0Km5nSWY9XCJmaWx0ZXIuY29uanVuY3Rpb24gPT0gJ08nXCJcclxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cInNldENvbmp1bmN0aW9uKGZpbHRlciwgJ1knKVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdE9cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cIm1sLXNtXCIgKm5nSWY9XCJpID09IDBcIj5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiYnRuIGJ0bi1zbSBici01XCIgc3R5bGU9XCJjdXJzb3I6YXV0bztcIj4mbmJzcDs8L3NwYW4+XHJcblx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm1yLXNtXCI+XHJcblx0XHRcdFx0PHNlbGVjdFxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtc20gc2VsZWN0LW9wZXJhdGlvblwiXHJcblx0XHRcdFx0XHRzdHlsZT1cIndpZHRoOiAxMjVweDtcIlxyXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJmaWx0ZXIub3BlcmF0b3JcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxvcHRpb24gdmFsdWU9XCIxXCI+SWd1YWwgYTwvb3B0aW9uPlxyXG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjJcIj5EaWZlcmVudGUgYTwvb3B0aW9uPlxyXG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjNcIiAqbmdJZj1cImZpbHRlci50eXBlID09IGdldFR5cGVUZXh0KClcIj5Db250aWVuZTwvb3B0aW9uPlxyXG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjRcIiAqbmdJZj1cImZpbHRlci50eXBlID09IGdldFR5cGVUZXh0KClcIj5ObyBjb250aWVuZTwvb3B0aW9uPlxyXG5cdFx0XHRcdFx0PG9wdGlvblxyXG5cdFx0XHRcdFx0XHR2YWx1ZT1cIjVcIlxyXG5cdFx0XHRcdFx0XHQqbmdJZj1cImZpbHRlci50eXBlID09IGdldFR5cGVOdW1iZXIoKSB8fCBmaWx0ZXIudHlwZSA9PSBnZXRUeXBlRGF0ZSgpXCJcclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0TWF5b3IgYTwvb3B0aW9uXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8b3B0aW9uXHJcblx0XHRcdFx0XHRcdHZhbHVlPVwiNlwiXHJcblx0XHRcdFx0XHRcdCpuZ0lmPVwiZmlsdGVyLnR5cGUgPT0gZ2V0VHlwZU51bWJlcigpIHx8IGZpbHRlci50eXBlID09IGdldFR5cGVEYXRlKClcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRNYXlvciBvIGlndWFsIGE8L29wdGlvblxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PG9wdGlvblxyXG5cdFx0XHRcdFx0XHR2YWx1ZT1cIjdcIlxyXG5cdFx0XHRcdFx0XHQqbmdJZj1cImZpbHRlci50eXBlID09IGdldFR5cGVOdW1iZXIoKSB8fCBmaWx0ZXIudHlwZSA9PSBnZXRUeXBlRGF0ZSgpXCJcclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0TWVub3IgYTwvb3B0aW9uXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8b3B0aW9uXHJcblx0XHRcdFx0XHRcdHZhbHVlPVwiOFwiXHJcblx0XHRcdFx0XHRcdCpuZ0lmPVwiZmlsdGVyLnR5cGUgPT0gZ2V0VHlwZU51bWJlcigpIHx8IGZpbHRlci50eXBlID09IGdldFR5cGVEYXRlKClcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRNZW5vciBvIGlndWFsIGE8L29wdGlvblxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjlcIj5FcyB2YWPDrW88L29wdGlvbj5cclxuXHRcdFx0XHQ8L3NlbGVjdD5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXY+XHJcblx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHRbdHlwZV09XCJnZXRUeXBlSW5wdXQoZmlsdGVyLnR5cGUpXCJcclxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCJmaWx0ZXIub3BlcmF0b3IgPT0gOVwiXHJcblx0XHRcdFx0XHRjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC12YWx1ZSBpbnB1dC1zbVwiXHJcblx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cImZpbHRlci52YWx1ZVwiXHJcblx0XHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwiZmlsdGVyLmxhYmVsXCJcclxuXHRcdFx0XHRcdHN0eWxlPVwid2lkdGg6IDE2NXB4O1wiXHJcblx0XHRcdFx0XHQoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxyXG5cdFx0XHRcdC8+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBtbC1zbSBidXR0b25fZmlsdGVyXCI+XHJcblx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi1zbSBidG4tcm91bmRlZFwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiZGVsZXRlRmlsdGVyKGkpXCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZhIGZhLW1pbnVzXCI+PC9zcGFuPlxyXG5cdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXNtIGJ0bi1yb3VuZGVkIG1sLXNtXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJhZGRGaWx0ZXIoKVwiXHJcblx0XHRcdFx0XHQqbmdJZj1cImkgKyAxID09IGxTZWdGaWx0ZXIubGVuZ3RoXCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZhIGZhLXBsdXNcIj48L3NwYW4+XHJcblx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW46MCAwIDEwcHhcIiAqbmdJZj1cImFjdGl2ZVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgcGFuZWwtYnV0dG9uXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiYnRuLXRvb2xiYXJcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiPlxyXG5cdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBidG4tY29uc3VsdFwiIChjbGljayk9XCJzZWFyY2goKVwiPlxyXG5cdFx0XHRcdFx0Q29uc3VsdGFyXHJcblx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XHJcblx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBidG4tc20gYnRuLWRlbGV0ZVwiIChjbGljayk9XCJjbGVhbigpXCI+XHJcblx0XHRcdFx0XHRCb3JyYXIgZmlsdHJvc1xyXG5cdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiPlxyXG5cdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLXdhcm5pbmcgYnRuLXNtIGJ0bi1jbGVhclwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiZGVsZXRlQWxsKClcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdGxpbXBpYXIgZGF0b3NcclxuXHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import * as XLSX from 'xlsx';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ExcelToJsonComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.disableButton = false;
|
|
7
|
-
this.onLoadFile = new EventEmitter();
|
|
8
|
-
}
|
|
9
|
-
ngOnInit() { }
|
|
10
|
-
onFileChange(event) {
|
|
11
|
-
this.excelWorkbook = [];
|
|
12
|
-
/* wire up file reader */
|
|
13
|
-
const target = event.target;
|
|
14
|
-
if (target.files.length !== 1) {
|
|
15
|
-
throw new Error('Cannot use multiple files');
|
|
16
|
-
}
|
|
17
|
-
this.disableButton = true;
|
|
18
|
-
const reader = new FileReader();
|
|
19
|
-
reader.onload = (e) => {
|
|
20
|
-
/* read workbook */
|
|
21
|
-
const bstr = e.target.result;
|
|
22
|
-
const wb = XLSX.read(bstr, { type: 'binary', cellDates: true });
|
|
23
|
-
/* read sheets */
|
|
24
|
-
for (let i = 0; i < wb.SheetNames.length; i++) {
|
|
25
|
-
/* grab sheet */
|
|
26
|
-
const wsname = wb.SheetNames[i];
|
|
27
|
-
const ws = wb.Sheets[wsname];
|
|
28
|
-
/* save data */
|
|
29
|
-
const sheet = {
|
|
30
|
-
sheet: {
|
|
31
|
-
label: wsname,
|
|
32
|
-
content: (XLSX.utils.sheet_to_json(ws, { raw: true, defval: '', header: 1 }))
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
this.excelWorkbook.push(sheet);
|
|
36
|
-
}
|
|
37
|
-
/* emit data to suscribers*/
|
|
38
|
-
this.onLoadFile.emit({
|
|
39
|
-
data: this.excelWorkbook
|
|
40
|
-
});
|
|
41
|
-
this.disableButton = false;
|
|
42
|
-
};
|
|
43
|
-
reader.readAsBinaryString(target.files[0]);
|
|
44
|
-
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExcelToJsonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExcelToJsonComponent, selector: "pli-excel-to-json", outputs: { onLoadFile: "onLoadFile" }, ngImport: i0, template: "<input type=\"file\" [disabled]=\"disableButton\" (change)=\"onFileChange($event)\" multiple=\"false\" />\r\n", styles: [""] }); }
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExcelToJsonComponent, decorators: [{
|
|
49
|
-
type: Component,
|
|
50
|
-
args: [{ selector: 'pli-excel-to-json', standalone: false, template: "<input type=\"file\" [disabled]=\"disableButton\" (change)=\"onFileChange($event)\" multiple=\"false\" />\r\n" }]
|
|
51
|
-
}], ctorParameters: () => [], propDecorators: { onLoadFile: [{
|
|
52
|
-
type: Output
|
|
53
|
-
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtdG8tanNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZXhjZWwtdG8tanNvbi9leGNlbC10by1qc29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9leGNlbC10by1qc29uL2V4Y2VsLXRvLWpzb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOztBQVE3QixNQUFNLE9BQU8sb0JBQW9CO0lBTWhDO1FBSkEsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFWixlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFbkQsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztJQUViLFlBQVksQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXhCLHlCQUF5QjtRQUN6QixNQUFNLE1BQU0sR0FBK0IsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUV4RCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsTUFBTSxNQUFNLEdBQWUsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU1QyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDMUIsbUJBQW1CO1lBQ25CLE1BQU0sSUFBSSxHQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3JDLE1BQU0sRUFBRSxHQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFFL0UsaUJBQWlCO1lBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUMvQyxnQkFBZ0I7Z0JBQ2hCLE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sRUFBRSxHQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUU3QyxlQUFlO2dCQUNmLE1BQU0sS0FBSyxHQUFHO29CQUNiLEtBQUssRUFBRTt3QkFDTixLQUFLLEVBQUUsTUFBTTt3QkFDYixPQUFPLEVBQU8sQ0FDYixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ2xFO3FCQUNEO2lCQUNELENBQUM7Z0JBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVELDRCQUE0QjtZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQ3hCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzsrR0F4RFcsb0JBQW9CO21HQUFwQixvQkFBb0IsZ0dDVGpDLCtHQUNBOzs0RkRRYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0ksbUJBQW1CLGNBR2pCLEtBQUs7d0RBTVYsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3BsaS1leGNlbC10by1qc29uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9leGNlbC10by1qc29uLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2V4Y2VsLXRvLWpzb24uY29tcG9uZW50LmNzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4Y2VsVG9Kc29uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRleGNlbFdvcmtib29rOiBBcnJheTxhbnk+O1xyXG5cdGRpc2FibGVCdXR0b24gPSBmYWxzZTtcclxuXHJcblx0QE91dHB1dCgpIG9uTG9hZEZpbGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge31cclxuXHJcblx0bmdPbkluaXQoKSB7fVxyXG5cclxuXHRvbkZpbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG5cdFx0dGhpcy5leGNlbFdvcmtib29rID0gW107XHJcblxyXG5cdFx0Lyogd2lyZSB1cCBmaWxlIHJlYWRlciAqL1xyXG5cdFx0Y29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSA8RGF0YVRyYW5zZmVyPmV2ZW50LnRhcmdldDtcclxuXHJcblx0XHRpZiAodGFyZ2V0LmZpbGVzLmxlbmd0aCAhPT0gMSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgbXVsdGlwbGUgZmlsZXMnKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmRpc2FibGVCdXR0b24gPSB0cnVlO1xyXG5cdFx0Y29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcblx0XHRyZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG5cdFx0XHQvKiByZWFkIHdvcmtib29rICovXHJcblx0XHRcdGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuXHRcdFx0Y29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiAnYmluYXJ5JywgY2VsbERhdGVzOiB0cnVlIH0pO1xyXG5cclxuXHRcdFx0LyogcmVhZCBzaGVldHMgKi9cclxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB3Yi5TaGVldE5hbWVzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0LyogZ3JhYiBzaGVldCAqL1xyXG5cdFx0XHRcdGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1tpXTtcclxuXHRcdFx0XHRjb25zdCB3czogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lXTtcclxuXHJcblx0XHRcdFx0Lyogc2F2ZSBkYXRhICovXHJcblx0XHRcdFx0Y29uc3Qgc2hlZXQgPSB7XHJcblx0XHRcdFx0XHRzaGVldDoge1xyXG5cdFx0XHRcdFx0XHRsYWJlbDogd3NuYW1lLFxyXG5cdFx0XHRcdFx0XHRjb250ZW50OiA8YW55PihcclxuXHRcdFx0XHRcdFx0XHRYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MsIHsgcmF3OiB0cnVlLCBkZWZ2YWw6ICcnLCBoZWFkZXI6IDEgfSlcclxuXHRcdFx0XHRcdFx0KVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdHRoaXMuZXhjZWxXb3JrYm9vay5wdXNoKHNoZWV0KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogZW1pdCBkYXRhIHRvIHN1c2NyaWJlcnMqL1xyXG5cdFx0XHR0aGlzLm9uTG9hZEZpbGUuZW1pdCh7XHJcblx0XHRcdFx0ZGF0YTogdGhpcy5leGNlbFdvcmtib29rXHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0dGhpcy5kaXNhYmxlQnV0dG9uID0gZmFsc2U7XHJcblx0XHR9O1xyXG5cclxuXHRcdHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcclxuXHR9XHJcbn1cclxuIiwiPGlucHV0IHR5cGU9XCJmaWxlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVCdXR0b25cIiAoY2hhbmdlKT1cIm9uRmlsZUNoYW5nZSgkZXZlbnQpXCIgbXVsdGlwbGU9XCJmYWxzZVwiIC8+XHJcbiJdfQ==
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { CommonListsComponent } from './common.lists.component';
|
|
3
|
-
import { ApplicationBudgetTotal } from 'ng-pli-util';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../services/common.service";
|
|
6
|
-
export class FrontofficeCommonsComponent extends CommonListsComponent {
|
|
7
|
-
constructor(commonService, cdRef) {
|
|
8
|
-
super(commonService, cdRef);
|
|
9
|
-
this.commonService = commonService;
|
|
10
|
-
this.cdRef = cdRef;
|
|
11
|
-
this.toastDuration = 10000;
|
|
12
|
-
}
|
|
13
|
-
ngOnInit() {
|
|
14
|
-
super.ngOnInit();
|
|
15
|
-
}
|
|
16
|
-
createApplicationBudgetTotalAmount(applicationId, budget, creditAccepted, totalAmount = undefined, totalOwnFunds = undefined, totalFinancing = undefined) {
|
|
17
|
-
const budgetApp = this.createBudgetApplication(budget, creditAccepted, totalAmount, totalOwnFunds, totalFinancing);
|
|
18
|
-
budget = budgetApp.budget;
|
|
19
|
-
const applicationBudgetTotalAmount = {
|
|
20
|
-
applicationBudgetTotal: budgetApp.applicationBudgetTotal,
|
|
21
|
-
applicationId: applicationId,
|
|
22
|
-
creditAccepted: creditAccepted
|
|
23
|
-
};
|
|
24
|
-
return {
|
|
25
|
-
applicationBudgetTotalAmount: applicationBudgetTotalAmount,
|
|
26
|
-
budget: budget
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
createBudgetApplication(budget, creditAccepted, totalAmount = undefined, totalOwnFunds = undefined, totalFinancing = undefined) {
|
|
30
|
-
// Choose if the total budget is from application or legalization process
|
|
31
|
-
const isApplicationProcess = creditAccepted == undefined || creditAccepted == false;
|
|
32
|
-
let appProcessBudgetTotal = isApplicationProcess
|
|
33
|
-
? budget.applicationProcess
|
|
34
|
-
: budget.legalizationProcess;
|
|
35
|
-
// Init the amount or add new values
|
|
36
|
-
if (appProcessBudgetTotal == undefined || appProcessBudgetTotal == null) {
|
|
37
|
-
totalAmount = totalAmount == undefined ? 0 : totalAmount;
|
|
38
|
-
totalOwnFunds = totalOwnFunds == undefined ? 0 : totalOwnFunds;
|
|
39
|
-
totalFinancing = totalFinancing == undefined ? 0 : totalFinancing;
|
|
40
|
-
appProcessBudgetTotal = new ApplicationBudgetTotal();
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
totalAmount =
|
|
44
|
-
totalAmount == undefined ? appProcessBudgetTotal.totalAmount : totalAmount;
|
|
45
|
-
totalOwnFunds =
|
|
46
|
-
totalOwnFunds == undefined ? appProcessBudgetTotal.totalOwnFunds : totalOwnFunds;
|
|
47
|
-
totalFinancing =
|
|
48
|
-
totalFinancing == undefined ? appProcessBudgetTotal.totalFinancing : totalFinancing;
|
|
49
|
-
}
|
|
50
|
-
appProcessBudgetTotal.totalAmount = totalAmount;
|
|
51
|
-
appProcessBudgetTotal.totalOwnFunds = totalOwnFunds;
|
|
52
|
-
appProcessBudgetTotal.totalFinancing = totalFinancing;
|
|
53
|
-
if (isApplicationProcess) {
|
|
54
|
-
budget.applicationProcess = appProcessBudgetTotal;
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
budget.legalizationProcess = appProcessBudgetTotal;
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
applicationBudgetTotal: appProcessBudgetTotal,
|
|
61
|
-
budget: budget
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Call the validataion service
|
|
66
|
-
* @param cnfIniStateId Initial config status id, if not exist, get the config status id from the service
|
|
67
|
-
* @returns True if actual date is before than end application date and the stateAppId is equals of the cnfIniStateId
|
|
68
|
-
*/
|
|
69
|
-
async validateCloseApplicationProcess(cnfIniStateId) {
|
|
70
|
-
let response = await this.commonService
|
|
71
|
-
.validateCloseApplicationProcess(this.promCodigo, this.stateId, cnfIniStateId)
|
|
72
|
-
.toPromise();
|
|
73
|
-
this.dateClose = response.closeApplicationDate;
|
|
74
|
-
return new Promise((resolve) => {
|
|
75
|
-
resolve(response.userAllowSave);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FrontofficeCommonsComponent, deps: [{ token: i1.CommonService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FrontofficeCommonsComponent, selector: "app-frontoffice-commons", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
80
|
-
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FrontofficeCommonsComponent, decorators: [{
|
|
82
|
-
type: Component,
|
|
83
|
-
args: [{
|
|
84
|
-
selector: 'app-frontoffice-commons',
|
|
85
|
-
template: '',
|
|
86
|
-
standalone: false
|
|
87
|
-
}]
|
|
88
|
-
}], ctorParameters: () => [{ type: i1.CommonService }, { type: i0.ChangeDetectorRef }] });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRvZmZpY2UuY29tbW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZnJvbnRvZmZpY2UuY29tbW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBT3hFLE1BQU0sT0FBZ0IsMkJBQTRCLFNBQVEsb0JBQW9CO0lBUTdFLFlBQXNCLGFBQTRCLEVBQVksS0FBd0I7UUFDckYsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQURQLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVksVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFQdEYsa0JBQWEsR0FBVyxLQUFLLENBQUM7SUFTOUIsQ0FBQztJQUVELFFBQVE7UUFDUCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGtDQUFrQyxDQUNqQyxhQUFxQixFQUNyQixNQUF5QixFQUN6QixjQUF1QixFQUN2QixjQUFzQixTQUFTLEVBQy9CLGdCQUF3QixTQUFTLEVBQ2pDLGlCQUF5QixTQUFTO1FBRWxDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FDN0MsTUFBTSxFQUNOLGNBQWMsRUFDZCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGNBQWMsQ0FDZCxDQUFDO1FBQ0YsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDMUIsTUFBTSw0QkFBNEIsR0FBRztZQUNwQyxzQkFBc0IsRUFBRSxTQUFTLENBQUMsc0JBQXNCO1lBQ3hELGFBQWEsRUFBRSxhQUFhO1lBQzVCLGNB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LEVBQUUsS0FBSztpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTGlzdHNDb21wb25lbnQgfSBmcm9tICcuL2NvbW1vbi5saXN0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkJ1ZGdldCwgQXBwbGljYXRpb25CdWRnZXRUb3RhbCB9IGZyb20gJ25nLXBsaS11dGlsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtZnJvbnRvZmZpY2UtY29tbW9ucycsXHJcbiAgICB0ZW1wbGF0ZTogJycsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnJvbnRvZmZpY2VDb21tb25zQ29tcG9uZW50IGV4dGVuZHMgQ29tbW9uTGlzdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdHRvYXN0RHVyYXRpb246IG51bWJlciA9IDEwMDAwO1xyXG5cdC8vIFRydWUgSWYgYWN0dWFsIGRhdGUgaXMgYmVmb3JlIHRoYW4gZW5kIGFwcGxpY2F0aW9uIGRhdGVcclxuXHRkYXRlQ2xvc2U6IGJvb2xlYW47XHJcblx0cHJvbUNvZGlnbzogbnVtYmVyO1xyXG5cdHN0YXRlSWQ6IG51bWJlcjtcclxuXHRzdGF0ZU5hbWU6IHN0cmluZztcclxuXHJcblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsIHByb3RlY3RlZCBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHRcdHN1cGVyKGNvbW1vblNlcnZpY2UsIGNkUmVmKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0c3VwZXIubmdPbkluaXQoKTtcclxuXHR9XHJcblxyXG5cdGNyZWF0ZUFwcGxpY2F0aW9uQnVkZ2V0VG90YWxBbW91bnQoXHJcblx0XHRhcHBsaWNhdGlvbklkOiBzdHJpbmcsXHJcblx0XHRidWRnZXQ6IEFwcGxpY2F0aW9uQnVkZ2V0LFxyXG5cdFx0Y3JlZGl0QWNjZXB0ZWQ6IGJvb2xlYW4sXHJcblx0XHR0b3RhbEFtb3VudDogbnVtYmVyID0gdW5kZWZpbmVkLFxyXG5cdFx0dG90YWxPd25GdW5kczogbnVtYmVyID0gdW5kZWZpbmVkLFxyXG5cdFx0dG90YWxGaW5hbmNpbmc6IG51bWJlciA9IHVuZGVmaW5lZFxyXG5cdCk6IGFueSB7XHJcblx0XHRjb25zdCBidWRnZXRBcHAgPSB0aGlzLmNyZWF0ZUJ1ZGdldEFwcGxpY2F0aW9uKFxyXG5cdFx0XHRidWRnZXQsXHJcblx0XHRcdGNyZWRpdEFjY2VwdGVkLFxyXG5cdFx0XHR0b3RhbEFtb3VudCxcclxuXHRcdFx0dG90YWxPd25GdW5kcyxcclxuXHRcdFx0dG90YWxGaW5hbmNpbmdcclxuXHRcdCk7XHJcblx0XHRidWRnZXQgPSBidWRnZXRBcHAuYnVkZ2V0O1xyXG5cdFx0Y29uc3QgYXBwbGljYXRpb25CdWRnZXRUb3RhbEFtb3VudCA9IHtcclxuXHRcdFx0YXBwbGljYXRpb25CdWRnZXRUb3RhbDogYnVkZ2V0QXBwLmFwcGxpY2F0aW9uQnVkZ2V0VG90YWwsXHJcblx0XHRcdGFwcGxpY2F0aW9uSWQ6IGFwcGxpY2F0aW9uSWQsXHJcblx0XHRcdGNyZWRpdEFjY2VwdGVkOiBjcmVkaXRBY2NlcHRlZFxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdGFwcGxpY2F0aW9uQnVkZ2V0VG90YWxBbW91bnQ6IGFwcGxpY2F0aW9uQnVkZ2V0VG90YWxBbW91bnQsXHJcblx0XHRcdGJ1ZGdldDogYnVkZ2V0XHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0Y3JlYXRlQnVkZ2V0QXBwbGljYXRpb24oXHJcblx0XHRidWRnZXQ6IEFwcGxpY2F0aW9uQnVkZ2V0LFxyXG5cdFx0Y3JlZGl0QWNjZXB0ZWQ6IGJvb2xlYW4sXHJcblx0XHR0b3RhbEFtb3VudDogbnVtYmVyID0gdW5kZWZpbmVkLFxyXG5cdFx0dG90YWxPd25GdW5kczogbnVtYmVyID0gdW5kZWZpbmVkLFxyXG5cdFx0dG90YWxGaW5hbmNpbmc6IG51bWJlciA9IHVuZGVmaW5lZFxyXG5cdCk6IGFueSB7XHJcblx0XHQvLyBDaG9vc2UgaWYgdGhlIHRvdGFsIGJ1ZGdldCBpcyBmcm9tIGFwcGxpY2F0aW9uIG9yIGxlZ2FsaXphdGlvbiBwcm9jZXNzXHJcblx0XHRjb25zdCBpc0FwcGxpY2F0aW9uUHJvY2VzcyA9IGNyZWRpdEFjY2VwdGVkID09IHVuZGVmaW5lZCB8fCBjcmVkaXRBY2NlcHRlZCA9PSBmYWxzZTtcclxuXHRcdGxldCBhcHBQcm9jZXNzQnVkZ2V0VG90YWwgPSBpc0FwcGxpY2F0aW9uUHJvY2Vzc1xyXG5cdFx0XHQ/IGJ1ZGdldC5hcHBsaWNhdGlvblByb2Nlc3NcclxuXHRcdFx0OiBidWRnZXQubGVnYWxpemF0aW9uUHJvY2VzcztcclxuXHRcdC8vIEluaXQgdGhlIGFtb3VudCBvciBhZGQgbmV3IHZhbHVlc1xyXG5cdFx0aWYgKGFwcFByb2Nlc3NCdWRnZXRUb3RhbCA9PSB1bmRlZmluZWQgfHwgYXBwUHJvY2Vzc0J1ZGdldFRvdGFsID09IG51bGwpIHtcclxuXHRcdFx0dG90YWxBbW91bnQgPSB0b3RhbEFtb3VudCA9PSB1bmRlZmluZWQgPyAwIDogdG90YWxBbW91bnQ7XHJcblx0XHRcdHRvdGFsT3duRnVuZHMgPSB0b3RhbE93bkZ1bmRzID09IHVuZGVmaW5lZCA/IDAgOiB0b3RhbE93bkZ1bmRzO1xyXG5cdFx0XHR0b3RhbEZpbmFuY2luZyA9IHRvdGFsRmluYW5jaW5nID09IHVuZGVmaW5lZCA/IDAgOiB0b3RhbEZpbmFuY2luZztcclxuXHRcdFx0YXBwUHJvY2Vzc0J1ZGdldFRvdGFsID0gbmV3IEFwcGxpY2F0aW9uQnVkZ2V0VG90YWwoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRvdGFsQW1vdW50ID1cclxuXHRcdFx0XHR0b3RhbEFtb3VudCA9PSB1bmRlZmluZWQgPyBhcHBQcm9jZXNzQnVkZ2V0VG90YWwudG90YWxBbW91bnQgOiB0b3RhbEFtb3VudDtcclxuXHRcdFx0dG90YWxPd25GdW5kcyA9XHJcblx0XHRcdFx0dG90YWxPd25GdW5kcyA9PSB1bmRlZmluZWQgPyBhcHBQcm9jZXNzQnVkZ2V0VG90YWwudG90YWxPd25GdW5kcyA6IHRvdGFsT3duRnVuZHM7XHJcblx0XHRcdHRvdGFsRmluYW5jaW5nID1cclxuXHRcdFx0XHR0b3RhbEZpbmFuY2luZyA9PSB1bmRlZmluZWQgPyBhcHBQcm9jZXNzQnVkZ2V0VG90YWwudG90YWxGaW5hbmNpbmcgOiB0b3RhbEZpbmFuY2luZztcclxuXHRcdH1cclxuXHRcdGFwcFByb2Nlc3NCdWRnZXRUb3RhbC50b3RhbEFtb3VudCA9IHRvdGFsQW1vdW50O1xyXG5cdFx0YXBwUHJvY2Vzc0J1ZGdldFRvdGFsLnRvdGFsT3duRnVuZHMgPSB0b3RhbE93bkZ1bmRzO1xyXG5cdFx0YXBwUHJvY2Vzc0J1ZGdldFRvdGFsLnRvdGFsRmluYW5jaW5nID0gdG90YWxGaW5hbmNpbmc7XHJcblx0XHRpZiAoaXNBcHBsaWNhdGlvblByb2Nlc3MpIHtcclxuXHRcdFx0YnVkZ2V0LmFwcGxpY2F0aW9uUHJvY2VzcyA9IGFwcFByb2Nlc3NCdWRnZXRUb3RhbDtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGJ1ZGdldC5sZWdhbGl6YXRpb25Qcm9jZXNzID0gYXBwUHJvY2Vzc0J1ZGdldFRvdGFsO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0YXBwbGljYXRpb25CdWRnZXRUb3RhbDogYXBwUHJvY2Vzc0J1ZGdldFRvdGFsLFxyXG5cdFx0XHRidWRnZXQ6IGJ1ZGdldFxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENhbGwgdGhlIHZhbGlkYXRhaW9uIHNlcnZpY2VcclxuXHQgKiBAcGFyYW0gY25mSW5pU3RhdGVJZCBJbml0aWFsIGNvbmZpZyBzdGF0dXMgaWQsIGlmIG5vdCBleGlzdCwgZ2V0IHRoZSBjb25maWcgc3RhdHVzIGlkIGZyb20gdGhlIHNlcnZpY2VcclxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIGFjdHVhbCBkYXRlIGlzIGJlZm9yZSB0aGFuIGVuZCBhcHBsaWNhdGlvbiBkYXRlIGFuZCB0aGUgc3RhdGVBcHBJZCBpcyBlcXVhbHMgb2YgdGhlIGNuZkluaVN0YXRlSWRcclxuXHQgKi9cclxuXHRhc3luYyB2YWxpZGF0ZUNsb3NlQXBwbGljYXRpb25Qcm9jZXNzKGNuZkluaVN0YXRlSWQ/OiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xyXG5cdFx0bGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jb21tb25TZXJ2aWNlXHJcblx0XHRcdC52YWxpZGF0ZUNsb3NlQXBwbGljYXRpb25Qcm9jZXNzKHRoaXMucHJvbUNvZGlnbywgdGhpcy5zdGF0ZUlkLCBjbmZJbmlTdGF0ZUlkKVxyXG5cdFx0XHQudG9Qcm9taXNlKCk7XHJcblx0XHR0aGlzLmRhdGVDbG9zZSA9IHJlc3BvbnNlLmNsb3NlQXBwbGljYXRpb25EYXRlO1xyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcblx0XHRcdHJlc29sdmUocmVzcG9uc2UudXNlckFsbG93U2F2ZSk7XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
//import { PDFDocumentProxy } from 'ng2-pdf-viewer';
|
|
3
|
-
// import {
|
|
4
|
-
// GoogleVisionParameters,
|
|
5
|
-
// GoogleVisionRequest,
|
|
6
|
-
// GoogleVisionResponse,
|
|
7
|
-
// GoogleVisionResponseData
|
|
8
|
-
// } from 'ng-pli-util';
|
|
9
|
-
import Cropper from 'cropperjs';
|
|
10
|
-
import html2canvas from 'html2canvas';
|
|
11
|
-
import "jquery";
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "../../services/pdf-analyzer.service";
|
|
14
|
-
import * as i2 from "@angular/common";
|
|
15
|
-
import * as i3 from "@angular/forms";
|
|
16
|
-
export class PdfAnalyzerComponent {
|
|
17
|
-
constructor(pdfAnalyzerService) {
|
|
18
|
-
this.pdfAnalyzerService = pdfAnalyzerService;
|
|
19
|
-
this.totalPages = 0;
|
|
20
|
-
this.currentpage = 1;
|
|
21
|
-
this.isCropImage = false;
|
|
22
|
-
this.instructivo = true;
|
|
23
|
-
this.render_text = true;
|
|
24
|
-
this.show_all = false;
|
|
25
|
-
this.original_size = true;
|
|
26
|
-
this.fit_to_page = false;
|
|
27
|
-
this.pdfSrc = "";
|
|
28
|
-
this.textToCompare = "";
|
|
29
|
-
this.labelToCompare = "";
|
|
30
|
-
// @Input()
|
|
31
|
-
// textToCompare: String = "";
|
|
32
|
-
// @Input()
|
|
33
|
-
// textToCompare: String = "";
|
|
34
|
-
this.documentAnalyzed = new EventEmitter();
|
|
35
|
-
}
|
|
36
|
-
ngOnInit() {
|
|
37
|
-
}
|
|
38
|
-
// Zoom Out Image
|
|
39
|
-
zoomOut() {
|
|
40
|
-
this.cropper.zoom(0.1);
|
|
41
|
-
}
|
|
42
|
-
// Zoom In Image
|
|
43
|
-
zoomIn() {
|
|
44
|
-
this.cropper.zoom(-0.1);
|
|
45
|
-
}
|
|
46
|
-
// Range slider for zooming the image
|
|
47
|
-
onRange(event) {
|
|
48
|
-
this.cropper.zoomTo(event.target.value);
|
|
49
|
-
}
|
|
50
|
-
// perform the rotate functionality on image
|
|
51
|
-
onRotate() {
|
|
52
|
-
this.cropper.rotate(-90);
|
|
53
|
-
}
|
|
54
|
-
// show the previous page
|
|
55
|
-
previous() {
|
|
56
|
-
if (this.currentpage > 0) {
|
|
57
|
-
if (this.currentpage == 1) {
|
|
58
|
-
this.currentpage = this.totalPages;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this.currentpage--;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
// show the next page
|
|
66
|
-
next() {
|
|
67
|
-
if (this.totalPages > this.currentpage) {
|
|
68
|
-
this.currentpage++;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.currentpage = 1;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
crop() {
|
|
75
|
-
html2canvas(document.querySelector(".pdf-container")).then((canvas) => {
|
|
76
|
-
let ctx = canvas.getContext('2d');
|
|
77
|
-
ctx.scale(3, 3);
|
|
78
|
-
let image = canvas.toDataURL("image/png").replace("image/png", "image/png");
|
|
79
|
-
$("#cropper-img").attr('src', image);
|
|
80
|
-
$('#cropper-img').addClass('ready');
|
|
81
|
-
this.isCropImage = true;
|
|
82
|
-
let cropImg = document.getElementById('cropper-img');
|
|
83
|
-
this.cropper = new Cropper(cropImg, {
|
|
84
|
-
zoomable: true,
|
|
85
|
-
background: false,
|
|
86
|
-
guides: false,
|
|
87
|
-
highlight: false,
|
|
88
|
-
movable: false,
|
|
89
|
-
aspectRatio: 4 / 3,
|
|
90
|
-
ready: (e) => {
|
|
91
|
-
let cropper = this.cropper;
|
|
92
|
-
},
|
|
93
|
-
crop: (e) => {
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
saveCapture() {
|
|
99
|
-
if (this.isCropImage) {
|
|
100
|
-
let canvas = this.cropper.getCroppedCanvas();
|
|
101
|
-
this.getCanvasToImage(canvas);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
html2canvas(document.querySelector(".pdf-container")).then((canvas) => {
|
|
105
|
-
this.getCanvasToImage(canvas);
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
getCanvasToImage(canvas) {
|
|
110
|
-
let ctx = canvas.getContext('2d');
|
|
111
|
-
ctx.scale(3, 3);
|
|
112
|
-
let image = canvas.toDataURL("image/png").replace("image/png", "image/png");
|
|
113
|
-
this.capture = image;
|
|
114
|
-
console.log(image);
|
|
115
|
-
}
|
|
116
|
-
reset() {
|
|
117
|
-
this.isCropImage = false;
|
|
118
|
-
this.capture = null;
|
|
119
|
-
this.cropper.clear();
|
|
120
|
-
this.cropper.destroy();
|
|
121
|
-
}
|
|
122
|
-
// afterLoadComplete(pdf: PDFDocumentProxy) {
|
|
123
|
-
// this.totalPages = pdf.numPages;
|
|
124
|
-
// }
|
|
125
|
-
validateImage() {
|
|
126
|
-
let base64 = this.capture.substring(22, this.capture.length);
|
|
127
|
-
this.documentAnalyzed.emit(base64);
|
|
128
|
-
// let parameters: any = {
|
|
129
|
-
// requests: [
|
|
130
|
-
// {
|
|
131
|
-
// image: {
|
|
132
|
-
// content: base64
|
|
133
|
-
// },
|
|
134
|
-
// features: [
|
|
135
|
-
// {
|
|
136
|
-
// type: "TEXT_DETECTION"
|
|
137
|
-
// }
|
|
138
|
-
// ]
|
|
139
|
-
// }
|
|
140
|
-
// ]
|
|
141
|
-
// }
|
|
142
|
-
// this.pdfAnalyzerService.getTextOfImage(parameters).subscribe((response: any) => {
|
|
143
|
-
// let textDetected = response[0].fullTextAnnotation.text;
|
|
144
|
-
// console.log(textDetected);
|
|
145
|
-
// });
|
|
146
|
-
}
|
|
147
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfAnalyzerComponent, deps: [{ token: i1.PdfAnalyzerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PdfAnalyzerComponent, selector: "pli-pdf-analyzer", inputs: { pdfSrc: "pdfSrc", textToCompare: "textToCompare", labelToCompare: "labelToCompare" }, outputs: { documentAnalyzed: "documentAnalyzed" }, ngImport: i0, template: "<div>\r\n\r\n <div class=\"checkInstructivo\">\r\n <label>\r\n <input type=\"checkbox\" [(ngModel)]=\"instructivo\" />Instructivo\r\n </label>\r\n </div>\r\n <div *ngIf=\"!instructivo\" class=\"description\">\r\n Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong>\r\n\r\n </div>\r\n <div *ngIf=\"instructivo\" class=\"description\">\r\n 1. Darle clic en el bot\u00F3n <span class=\"fa fa-crop\"></span>\r\n <br> 2. Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong> con el mouse dando clic y arrastrando hasta completar la selecci\u00F3n o cambiando de tama\u00F1o el recuadro que aparece en pantalla\r\n <br> 3. Una vez seleccionado dar clic en el bot\u00F3n <span class=\"fa fa-camera\"></span> para previsualizarlo mejor\r\n <br> 4. En caso de haberse equivocado puede darle clic al bot\u00F3n rojo \"Reintentar\" o al bot\u00F3n <span class=\"fa fa-undo\"></span> para volver al paso 1\r\n <br> 5. Cuando ya este correcta la selecci\u00F3n darle clic al bot\u00F3n verde \"Guardar Captura\" para proceder con el proceso\r\n </div>\r\n <div class=\"pdf-visualizer-controls\">\r\n <a href=\"Javascript:;\" title=\"Anterior\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"previous()\">\r\n <span class=\"fa fa-angle-left\"></span>\r\n </a>\r\n <span class=\"btn btn-outline-secondary\">P\u00E1gina: {{currentpage}} / {{totalPages}}</span>\r\n <a href=\"Javascript:;\" title=\"Siguiente\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"next()\">\r\n <span class=\"fa fa-angle-right\"></span>\r\n </a>\r\n\r\n <a href=\"Javascript:;\" title=\"Acercar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomOut()\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </a>\r\n\r\n\r\n <a href=\"Javascript:;\" title=\"Alejar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomIn()\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </a>\r\n </div>\r\n <div class=\"pdf-visualizer-controls\">\r\n <a href=\"Javascript:;\" title=\"Capturar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"!isCropImage\" (click)=\"crop()\">\r\n <span class=\"fa fa-crop fa-2x\"></span>\r\n </a>\r\n <a href=\"Javascript:;\" title=\"Guardar Captura\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"saveCapture()\">\r\n <span class=\"fa fa-camera fa-2x\"></span>\r\n </a>\r\n <a href=\"Javascript:;\" title=\"Deshacer\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage\" (click)=\"reset()\">\r\n <span class=\"fa fa-undo fa-2x\"></span>\r\n </a>\r\n </div>\r\n\r\n\r\n <div class=\"pdf-visualizer-dashboard\" *ngIf=\"!capture\">\r\n <div class=\"pdf-container pdf-visualizer-canvas top-margin\" [hidden]=\"isCropImage\">\r\n <!-- <pdf-viewer [(src)]=\"pdfSrc\" [(render-text)]=\"render_text\" [(page)]=\"currentpage\" [(show-all)]=\"show_all\" [(original-size)]=\"original_size\" [(fit-to-page)]=\"fit_to_page\" (after-load-complete)=\"afterLoadComplete($event)\" style=\"display: block;\">\r\n </pdf-viewer> -->\r\n </div>\r\n\r\n <div class=\"img-container\" [hidden]=\"!isCropImage\">\r\n <img #image src=\"\" id=\"cropper-img\" crossorigin>\r\n </div>\r\n </div>\r\n\r\n <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\r\n <img [src]=\"capture\">\r\n </div>\r\n <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\r\n <button class=\"btns btn-success btn-lg\" (click)=\"validateImage()\" lang=\"es\">Guardar Captura</button>\r\n\r\n <button class=\"btnr btn-success btn-lg\" (click)=\"reset()\" lang=\"es\">Reintentar</button>\r\n </div>\r\n</div>", styles: [".img-visualizer-dashboard,.pdf-visualizer-dashboard,.pdf-visualizer-controls{background-color:#f5f5f5;padding:15px}.pdf-visualizer-dashboard{border-bottom:1px solid #eee;border-top:1px solid #eee}.img-visualizer-dashboard{text-align:center;border-bottom:1px solid #eee;border-top:1px solid #eee}.pdf-visualizer-canvas{cursor:move}button.btns{background-color:green;color:#fff;position:relative;left:0;margin:15px}button.btns:hover{background-color:#006400}button.btnr{background-color:red;color:#fff;position:relative;left:0;margin:15px}button.btnr:hover{background-color:#8b0000}.description{padding:0 10px;font-size:14px;font-weight:300;font-family:Roboto,sans-serif;margin-bottom:1.5em}.checkInstructivo{float:right;text-align:right}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
149
|
-
}
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfAnalyzerComponent, decorators: [{
|
|
151
|
-
type: Component,
|
|
152
|
-
args: [{ selector: 'pli-pdf-analyzer', standalone: false, template: "<div>\r\n\r\n <div class=\"checkInstructivo\">\r\n <label>\r\n <input type=\"checkbox\" [(ngModel)]=\"instructivo\" />Instructivo\r\n </label>\r\n </div>\r\n <div *ngIf=\"!instructivo\" class=\"description\">\r\n Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong>\r\n\r\n </div>\r\n <div *ngIf=\"instructivo\" class=\"description\">\r\n 1. Darle clic en el bot\u00F3n <span class=\"fa fa-crop\"></span>\r\n <br> 2. Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong> con el mouse dando clic y arrastrando hasta completar la selecci\u00F3n o cambiando de tama\u00F1o el recuadro que aparece en pantalla\r\n <br> 3. Una vez seleccionado dar clic en el bot\u00F3n <span class=\"fa fa-camera\"></span> para previsualizarlo mejor\r\n <br> 4. En caso de haberse equivocado puede darle clic al bot\u00F3n rojo \"Reintentar\" o al bot\u00F3n <span class=\"fa fa-undo\"></span> para volver al paso 1\r\n <br> 5. Cuando ya este correcta la selecci\u00F3n darle clic al bot\u00F3n verde \"Guardar Captura\" para proceder con el proceso\r\n </div>\r\n <div class=\"pdf-visualizer-controls\">\r\n <a href=\"Javascript:;\" title=\"Anterior\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"previous()\">\r\n <span class=\"fa fa-angle-left\"></span>\r\n </a>\r\n <span class=\"btn btn-outline-secondary\">P\u00E1gina: {{currentpage}} / {{totalPages}}</span>\r\n <a href=\"Javascript:;\" title=\"Siguiente\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"next()\">\r\n <span class=\"fa fa-angle-right\"></span>\r\n </a>\r\n\r\n <a href=\"Javascript:;\" title=\"Acercar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomOut()\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </a>\r\n\r\n\r\n <a href=\"Javascript:;\" title=\"Alejar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomIn()\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </a>\r\n </div>\r\n <div class=\"pdf-visualizer-controls\">\r\n <a href=\"Javascript:;\" title=\"Capturar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"!isCropImage\" (click)=\"crop()\">\r\n <span class=\"fa fa-crop fa-2x\"></span>\r\n </a>\r\n <a href=\"Javascript:;\" title=\"Guardar Captura\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"saveCapture()\">\r\n <span class=\"fa fa-camera fa-2x\"></span>\r\n </a>\r\n <a href=\"Javascript:;\" title=\"Deshacer\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage\" (click)=\"reset()\">\r\n <span class=\"fa fa-undo fa-2x\"></span>\r\n </a>\r\n </div>\r\n\r\n\r\n <div class=\"pdf-visualizer-dashboard\" *ngIf=\"!capture\">\r\n <div class=\"pdf-container pdf-visualizer-canvas top-margin\" [hidden]=\"isCropImage\">\r\n <!-- <pdf-viewer [(src)]=\"pdfSrc\" [(render-text)]=\"render_text\" [(page)]=\"currentpage\" [(show-all)]=\"show_all\" [(original-size)]=\"original_size\" [(fit-to-page)]=\"fit_to_page\" (after-load-complete)=\"afterLoadComplete($event)\" style=\"display: block;\">\r\n </pdf-viewer> -->\r\n </div>\r\n\r\n <div class=\"img-container\" [hidden]=\"!isCropImage\">\r\n <img #image src=\"\" id=\"cropper-img\" crossorigin>\r\n </div>\r\n </div>\r\n\r\n <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\r\n <img [src]=\"capture\">\r\n </div>\r\n <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\r\n <button class=\"btns btn-success btn-lg\" (click)=\"validateImage()\" lang=\"es\">Guardar Captura</button>\r\n\r\n <button class=\"btnr btn-success btn-lg\" (click)=\"reset()\" lang=\"es\">Reintentar</button>\r\n </div>\r\n</div>", styles: [".img-visualizer-dashboard,.pdf-visualizer-dashboard,.pdf-visualizer-controls{background-color:#f5f5f5;padding:15px}.pdf-visualizer-dashboard{border-bottom:1px solid #eee;border-top:1px solid #eee}.img-visualizer-dashboard{text-align:center;border-bottom:1px solid #eee;border-top:1px solid #eee}.pdf-visualizer-canvas{cursor:move}button.btns{background-color:green;color:#fff;position:relative;left:0;margin:15px}button.btns:hover{background-color:#006400}button.btnr{background-color:red;color:#fff;position:relative;left:0;margin:15px}button.btnr:hover{background-color:#8b0000}.description{padding:0 10px;font-size:14px;font-weight:300;font-family:Roboto,sans-serif;margin-bottom:1.5em}.checkInstructivo{float:right;text-align:right}\n"] }]
|
|
153
|
-
}], ctorParameters: () => [{ type: i1.PdfAnalyzerService }], propDecorators: { pdfSrc: [{
|
|
154
|
-
type: Input
|
|
155
|
-
}], textToCompare: [{
|
|
156
|
-
type: Input
|
|
157
|
-
}], labelToCompare: [{
|
|
158
|
-
type: Input
|
|
159
|
-
}], documentAnalyzed: [{
|
|
160
|
-
type: Output
|
|
161
|
-
}] } });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWFuYWx5emVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9wZGYtYW5hbHl6ZXIvcGRmLWFuYWx5emVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9wZGYtYW5hbHl6ZXIvcGRmLWFuYWx5emVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQVUsS0FBSyxFQUN4QixNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLG9EQUFvRDtBQUNwRCxXQUFXO0FBQ1gsNEJBQTRCO0FBQzVCLHlCQUF5QjtBQUN6QiwwQkFBMEI7QUFDMUIsNkJBQTZCO0FBQzdCLHdCQUF3QjtBQUN4QixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sUUFBUSxDQUFDOzs7OztBQVNoQixNQUFNLE9BQU8sb0JBQW9CO0lBa0MvQixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQS9CbkQsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUV4QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUc3QixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUVuQyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRzdCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFHakIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFHM0Is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QUFJLE1BQU0sR0FBWSxJQUFJLENBQUMsT0FBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFHLElBQUksQ0FBQyxPQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsMEJBQTBCO1FBQzFCLGdCQUFnQjtRQUNoQixRQUFRO1FBQ1IsaUJBQWlCO1FBQ2pCLDBCQUEwQjtRQUMxQixXQUFXO1FBQ1gsb0JBQW9CO1FBQ3BCLFlBQVk7UUFDWixtQ0FBbUM7UUFDbkMsWUFBWTtRQUNaLFVBQVU7UUFDVixRQUFRO1FBQ1IsTUFBTTtRQUNOLElBQUk7UUFFSixvRkFBb0Y7UUFDcEYsNERBQTREO1FBRTVELCtCQUErQjtRQUMvQixNQUFNO0lBRVIsQ0FBQzsrR0EvSlUsb0JBQW9CO21HQUFwQixvQkFBb0IsMk1DdkJqQyxpdklBb0VNOzs0RkQ3Q08sb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLGtCQUFrQixjQUdoQixLQUFLO3VGQW1CbkIsTUFBTTtzQkFETCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBVU4sZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vaW1wb3J0IHsgUERGRG9jdW1lbnRQcm94eSB9IGZyb20gJ25nMi1wZGYtdmlld2VyJztcclxuLy8gaW1wb3J0IHtcclxuLy8gICBHb29nbGVWaXNpb25QYXJhbWV0ZXJzLFxyXG4vLyAgIEdvb2dsZVZpc2lvblJlcXVlc3QsXHJcbi8vICAgR29vZ2xlVmlzaW9uUmVzcG9uc2UsXHJcbi8vICAgR29vZ2xlVmlzaW9uUmVzcG9uc2VEYXRhXHJcbi8vIH0gZnJvbSAnbmctcGxpLXV0aWwnO1xyXG5pbXBvcnQgQ3JvcHBlciBmcm9tICdjcm9wcGVyanMnO1xyXG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xyXG5pbXBvcnQgXCJqcXVlcnlcIjtcclxuaW1wb3J0IHsgUGRmQW5hbHl6ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGRmLWFuYWx5emVyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3BsaS1wZGYtYW5hbHl6ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BkZi1hbmFseXplci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wZGYtYW5hbHl6ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZBbmFseXplckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICBwdWJsaWMgdG90YWxQYWdlczogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgY3VycmVudHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgcHJpdmF0ZSBjcm9wcGVyITogQ3JvcHBlcjtcclxuICBwdWJsaWMgaXNDcm9wSW1hZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY2FwdHVyZTogYW55O1xyXG5cclxuICBwdWJsaWMgaW5zdHJ1Y3Rpdm86IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICByZW5kZXJfdGV4dDogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd19hbGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvcmlnaW5hbF9zaXplOiBib29sZWFuID0gdHJ1ZTtcclxuICBmaXRfdG9fcGFnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBkZlNyYzogYW55ID0gXCJcIjtcclxuXHJcbiAgQElucHV0KClcclxuICB0ZXh0VG9Db21wYXJlOiBTdHJpbmcgPSBcIlwiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxhYmVsVG9Db21wYXJlOiBTdHJpbmcgPSBcIlwiO1xyXG5cclxuICAvLyBASW5wdXQoKVxyXG4gIC8vIHRleHRUb0NvbXBhcmU6IFN0cmluZyA9IFwiXCI7XHJcblxyXG4gIC8vIEBJbnB1dCgpXHJcbiAgLy8gdGV4dFRvQ29tcGFyZTogU3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZG9jdW1lbnRBbmFseXplZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZGZBbmFseXplclNlcnZpY2U6IFBkZkFuYWx5emVyU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLy8gWm9vbSBPdXQgSW1hZ2VcclxuICBwdWJsaWMgem9vbU91dCgpIHtcclxuICAgIHRoaXMuY3JvcHBlci56b29tKDAuMSlcclxuICB9XHJcblxyXG4gIC8vIFpvb20gSW4gSW1hZ2VcclxuICBwdWJsaWMgem9vbUluKCkge1xyXG4gICAgdGhpcy5jcm9wcGVyLnpvb20oLTAuMSlcclxuICB9XHJcblxyXG4gIC8vIFJhbmdlIHNsaWRlciBmb3Igem9vbWluZyB0aGUgaW1hZ2VcclxuICBwdWJsaWMgb25SYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNyb3BwZXIuem9vbVRvKGV2ZW50LnRhcmdldC52YWx1ZSlcclxuICB9XHJcblxyXG4gIC8vIHBlcmZvcm0gdGhlIHJvdGF0ZSBmdW5jdGlvbmFsaXR5IG9uIGltYWdlXHJcbiAgcHVibGljIG9uUm90YXRlKCkge1xyXG4gICAgdGhpcy5jcm9wcGVyLnJvdGF0ZSgtOTApXHJcbiAgfVxyXG5cclxuICAvLyBzaG93IHRoZSBwcmV2aW91cyBwYWdlXHJcbiAgcHVibGljIHByZXZpb3VzKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudHBhZ2UgPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRwYWdlID09IDEpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3VycmVudHBhZ2UtLTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gc2hvdyB0aGUgbmV4dCBwYWdlXHJcbiAgcHVibGljIG5leHQoKSB7XHJcbiAgICBpZiAodGhpcy50b3RhbFBhZ2VzID4gdGhpcy5jdXJyZW50cGFnZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlKys7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcm9wKCkge1xyXG4gICAgaHRtbDJjYW52YXMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5wZGYtY29udGFpbmVyXCIpIGFzIEhUTUxFbGVtZW50KS50aGVuKChjYW52YXM6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgIGN0eC5zY2FsZSgzLCAzKTtcclxuICAgICAgbGV0IGltYWdlID0gY2FudmFzLnRvRGF0YVVSTChcImltYWdlL3BuZ1wiKS5yZXBsYWNlKFwiaW1hZ2UvcG5nXCIsIFwiaW1hZ2UvcG5nXCIpO1xyXG4gICAgICAkKFwiI2Nyb3BwZXItaW1nXCIpLmF0dHIoJ3NyYycsIGltYWdlKTtcclxuICAgICAgJCgnI2Nyb3BwZXItaW1nJykuYWRkQ2xhc3MoJ3JlYWR5Jyk7XHJcbiAgICAgIHRoaXMuaXNDcm9wSW1hZ2UgPSB0cnVlXHJcbiAgICAgIGxldCBjcm9wSW1nOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3JvcHBlci1pbWcnKTtcclxuICAgICAgdGhpcy5jcm9wcGVyID0gbmV3IENyb3BwZXIoY3JvcEltZywge1xyXG4gICAgICAgIHpvb21hYmxlOiB0cnVlLFxyXG4gICAgICAgIGJhY2tncm91bmQ6IGZhbHNlLFxyXG4gICAgICAgIGd1aWRlczogZmFsc2UsXHJcbiAgICAgICAgaGlnaGxpZ2h0OiBmYWxzZSxcclxuICAgICAgICBtb3ZhYmxlOiBmYWxzZSxcclxuICAgICAgICBhc3BlY3RSYXRpbzogNCAvIDMsXHJcbiAgICAgICAgcmVhZHk6IChlKSA9PiB7XHJcbiAgICAgICAgICBsZXQgY3JvcHBlciA9IHRoaXMuY3JvcHBlcjtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNyb3A6IChlKSA9PiB7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUNhcHR1cmUoKSB7XHJcbiAgICBpZiAodGhpcy5pc0Nyb3BJbWFnZSkge1xyXG4gICAgICBsZXQgY2FudmFzID0gdGhpcy5jcm9wcGVyLmdldENyb3BwZWRDYW52YXMoKTtcclxuICAgICAgdGhpcy5nZXRDYW52YXNUb0ltYWdlKGNhbnZhcylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGh0bWwyY2FudmFzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucGRmLWNvbnRhaW5lclwiKSBhcyBIVE1MRWxlbWVudCkudGhlbigoY2FudmFzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmdldENhbnZhc1RvSW1hZ2UoY2FudmFzKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDYW52YXNUb0ltYWdlKGNhbnZhczogYW55KSB7XHJcbiAgICBsZXQgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICBjdHguc2NhbGUoMywgMyk7XHJcbiAgICBsZXQgaW1hZ2UgPSBjYW52YXMudG9EYXRhVVJMKFwiaW1hZ2UvcG5nXCIpLnJlcGxhY2UoXCJpbWFnZS9wbmdcIiwgXCJpbWFnZS9wbmdcIik7XHJcbiAgICB0aGlzLmNhcHR1cmUgPSBpbWFnZTtcclxuICAgIGNvbnNvbGUubG9nKGltYWdlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNldCgpIHtcclxuICAgIHRoaXMuaXNDcm9wSW1hZ2UgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwdHVyZSA9IG51bGw7XHJcbiAgICB0aGlzLmNyb3BwZXIuY2xlYXIoKTtcclxuICAgIHRoaXMuY3JvcHBlci5kZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICAvLyBhZnRlckxvYWRDb21wbGV0ZShwZGY6IFBERkRvY3VtZW50UHJveHkpIHtcclxuICAvLyAgIHRoaXMudG90YWxQYWdlcyA9IHBkZi5udW1QYWdlcztcclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0ZUltYWdlKCkge1xyXG4gICAgbGV0IGJhc2U2NDogU3RyaW5nID0gKHRoaXMuY2FwdHVyZSBhcyBTdHJpbmcpLnN1YnN0cmluZygyMiwgKHRoaXMuY2FwdHVyZSBhcyBTdHJpbmcpLmxlbmd0aCk7XHJcblxyXG4gICAgdGhpcy5kb2N1bWVudEFuYWx5emVkLmVtaXQoYmFzZTY0KTtcclxuICAgIC8vIGxldCBwYXJhbWV0ZXJzOiBhbnkgPSB7XHJcbiAgICAvLyAgIHJlcXVlc3RzOiBbXHJcbiAgICAvLyAgICAge1xyXG4gICAgLy8gICAgICAgaW1hZ2U6IHtcclxuICAgIC8vICAgICAgICAgY29udGVudDogYmFzZTY0XHJcbiAgICAvLyAgICAgICB9LFxyXG4gICAgLy8gICAgICAgZmVhdHVyZXM6IFtcclxuICAgIC8vICAgICAgICAge1xyXG4gICAgLy8gICAgICAgICAgIHR5cGU6IFwiVEVYVF9ERVRFQ1RJT05cIlxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgICBdXHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICBdXHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gdGhpcy5wZGZBbmFseXplclNlcnZpY2UuZ2V0VGV4dE9mSW1hZ2UocGFyYW1ldGVycykuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAvLyAgIGxldCB0ZXh0RGV0ZWN0ZWQgPSByZXNwb25zZVswXS5mdWxsVGV4dEFubm90YXRpb24udGV4dDtcclxuXHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKHRleHREZXRlY3RlZCk7XHJcbiAgICAvLyB9KTtcclxuXHJcbiAgfVxyXG5cclxufVxyXG5cclxuIiwiPGRpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2hlY2tJbnN0cnVjdGl2b1wiPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiaW5zdHJ1Y3Rpdm9cIiAvPkluc3RydWN0aXZvXHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIiFpbnN0cnVjdGl2b1wiIGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICBTZWxlY2Npb25hciBsYSBwYXJ0ZSBkZWwgZG9jdW1lbnRvIGRvbmRlIHNlIGVuY3VlbnRyYSA8c3Ryb25nPnt7bGFiZWxUb0NvbXBhcmV9fTwvc3Ryb25nPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImluc3RydWN0aXZvXCIgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgIDEuIERhcmxlIGNsaWMgZW4gZWwgYm90w7NuIDxzcGFuIGNsYXNzPVwiZmEgZmEtY3JvcFwiPjwvc3Bhbj5cclxuICAgICAgICA8YnI+IDIuIFNlbGVjY2lvbmFyIGxhIHBhcnRlIGRlbCBkb2N1bWVudG8gZG9uZGUgc2UgZW5jdWVudHJhIDxzdHJvbmc+e3tsYWJlbFRvQ29tcGFyZX19PC9zdHJvbmc+IGNvbiBlbCBtb3VzZSBkYW5kbyBjbGljIHkgYXJyYXN0cmFuZG8gaGFzdGEgY29tcGxldGFyIGxhIHNlbGVjY2nDs24gbyBjYW1iaWFuZG8gZGUgdGFtYcOxbyBlbCByZWN1YWRybyBxdWUgYXBhcmVjZSBlbiBwYW50YWxsYVxyXG4gICAgICAgIDxicj4gMy4gVW5hIHZleiBzZWxlY2Npb25hZG8gZGFyIGNsaWMgZW4gZWwgYm90w7NuIDxzcGFuIGNsYXNzPVwiZmEgZmEtY2FtZXJhXCI+PC9zcGFuPiBwYXJhIHByZXZpc3VhbGl6YXJsbyBtZWpvclxyXG4gICAgICAgIDxicj4gNC4gRW4gY2FzbyBkZSBoYWJlcnNlIGVxdWl2b2NhZG8gcHVlZGUgZGFybGUgY2xpYyBhbCBib3TDs24gcm9qbyBcIlJlaW50ZW50YXJcIiBvIGFsIGJvdMOzbiA8c3BhbiBjbGFzcz1cImZhIGZhLXVuZG9cIj48L3NwYW4+IHBhcmEgdm9sdmVyIGFsIHBhc28gMVxyXG4gICAgICAgIDxicj4gNS4gQ3VhbmRvIHlhIGVzdGUgY29ycmVjdGEgbGEgc2VsZWNjacOzbiBkYXJsZSBjbGljIGFsIGJvdMOzbiB2ZXJkZSBcIkd1YXJkYXIgQ2FwdHVyYVwiIHBhcmEgcHJvY2VkZXIgY29uIGVsIHByb2Nlc29cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInBkZi12aXN1YWxpemVyLWNvbnRyb2xzXCI+XHJcbiAgICAgICAgPGEgaHJlZj1cIkphdmFzY3JpcHQ6O1wiIHRpdGxlPVwiQW50ZXJpb3JcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cInRvcFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIChjbGljayk9XCJwcmV2aW91cygpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtYW5nbGUtbGVmdFwiPjwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCI+UMOhZ2luYToge3tjdXJyZW50cGFnZX19IC8ge3t0b3RhbFBhZ2VzfX08L3NwYW4+XHJcbiAgICAgICAgPGEgaHJlZj1cIkphdmFzY3JpcHQ6O1wiIHRpdGxlPVwiU2lndWllbnRlXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAoY2xpY2spPVwibmV4dCgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtYW5nbGUtcmlnaHRcIj48L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICA8YSBocmVmPVwiSmF2YXNjcmlwdDo7XCIgdGl0bGU9XCJBY2VyY2FyXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAqbmdJZj1cImlzQ3JvcEltYWdlICYmICFjYXB0dXJlXCIgKGNsaWNrKT1cInpvb21PdXQoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLXNlYXJjaC1wbHVzXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuXHJcblxyXG4gICAgICAgIDxhIGhyZWY9XCJKYXZhc2NyaXB0OjtcIiB0aXRsZT1cIkFsZWphclwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwidG9wXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgKm5nSWY9XCJpc0Nyb3BJbWFnZSAmJiAhY2FwdHVyZVwiIChjbGljayk9XCJ6b29tSW4oKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLXNlYXJjaC1taW51c1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwZGYtdmlzdWFsaXplci1jb250cm9sc1wiPlxyXG4gICAgICAgIDxhIGhyZWY9XCJKYXZhc2NyaXB0OjtcIiB0aXRsZT1cIkNhcHR1cmFyXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAqbmdJZj1cIiFpc0Nyb3BJbWFnZVwiIChjbGljayk9XCJjcm9wKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1jcm9wIGZhLTJ4XCI+PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8YSBocmVmPVwiSmF2YXNjcmlwdDo7XCIgdGl0bGU9XCJHdWFyZGFyIENhcHR1cmFcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cInRvcFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiICpuZ0lmPVwiaXNDcm9wSW1hZ2UgJiYgIWNhcHR1cmVcIiAoY2xpY2spPVwic2F2ZUNhcHR1cmUoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLWNhbWVyYSBmYS0yeFwiPjwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGEgaHJlZj1cIkphdmFzY3JpcHQ6O1wiIHRpdGxlPVwiRGVzaGFjZXJcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cInRvcFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiICpuZ0lmPVwiaXNDcm9wSW1hZ2VcIiAoY2xpY2spPVwicmVzZXQoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLXVuZG8gZmEtMnhcIj48L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwZGYtdmlzdWFsaXplci1kYXNoYm9hcmRcIiAqbmdJZj1cIiFjYXB0dXJlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBkZi1jb250YWluZXIgcGRmLXZpc3VhbGl6ZXItY2FudmFzIHRvcC1tYXJnaW5cIiBbaGlkZGVuXT1cImlzQ3JvcEltYWdlXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPHBkZi12aWV3ZXIgWyhzcmMpXT1cInBkZlNyY1wiIFsocmVuZGVyLXRleHQpXT1cInJlbmRlcl90ZXh0XCIgWyhwYWdlKV09XCJjdXJyZW50cGFnZVwiIFsoc2hvdy1hbGwpXT1cInNob3dfYWxsXCIgWyhvcmlnaW5hbC1zaXplKV09XCJvcmlnaW5hbF9zaXplXCIgWyhmaXQtdG8tcGFnZSldPVwiZml0X3RvX3BhZ2VcIiAoYWZ0ZXItbG9hZC1jb21wbGV0ZSk9XCJhZnRlckxvYWRDb21wbGV0ZSgkZXZlbnQpXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cclxuICAgICAgICAgICAgPC9wZGYtdmlld2VyPiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImltZy1jb250YWluZXJcIiBbaGlkZGVuXT1cIiFpc0Nyb3BJbWFnZVwiPlxyXG4gICAgICAgICAgICA8aW1nICNpbWFnZSBzcmM9XCJcIiBpZD1cImNyb3BwZXItaW1nXCIgY3Jvc3NvcmlnaW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaW1nLXZpc3VhbGl6ZXItZGFzaGJvYXJkXCIgKm5nSWY9XCJjYXB0dXJlXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImNhcHR1cmVcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImltZy12aXN1YWxpemVyLWRhc2hib2FyZFwiICpuZ0lmPVwiY2FwdHVyZVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5zIGJ0bi1zdWNjZXNzIGJ0bi1sZ1wiIChjbGljayk9XCJ2YWxpZGF0ZUltYWdlKClcIiBsYW5nPVwiZXNcIj5HdWFyZGFyIENhcHR1cmE8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bnIgYnRuLXN1Y2Nlc3MgYnRuLWxnXCIgKGNsaWNrKT1cInJlc2V0KClcIiBsYW5nPVwiZXNcIj5SZWludGVudGFyPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|