@fad-producto-portal/ng-fad-signature-fea 1.0.0-alpha.0 → 1.0.0-alpha.10
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/assets/images/fad-signature-fea/signature-summary/rejected.svg +20 -0
- package/assets/images/fad-signature-fea/signature-summary/send.svg +11 -0
- package/esm2022/lib/components/document-approval-list/document-approval-list.component.mjs +35 -81
- package/esm2022/lib/components/generic-error-fea/generic-error-fea.component.mjs +3 -3
- package/esm2022/lib/components/pdf-viewer-fea/pdf-viewer-fea.component.mjs +79 -0
- package/esm2022/lib/components/signature-summary/signature-summary.component.mjs +95 -0
- package/esm2022/lib/components/upload-e-signature/upload-e-signature.component.mjs +68 -54
- package/esm2022/lib/components/validate-rfc/validate-rfc.component.mjs +30 -18
- package/esm2022/lib/components/validate-signature/validate-signature.component.mjs +7 -13
- package/esm2022/lib/constants/configuration/index.mjs +2 -1
- package/esm2022/lib/constants/configuration/pdf-viewer-fea/index.mjs +2 -0
- package/esm2022/lib/constants/configuration/pdf-viewer-fea/pdf-viewer-fea-configuration.const.mjs +17 -0
- package/esm2022/lib/constants/configuration/signature-summary/signature-summary-configuration.const.mjs +18 -0
- package/esm2022/lib/constants/errors/upload-e-signature/upload-e-signature-error-code.mjs +2 -1
- package/esm2022/lib/constants/errors/upload-e-signature/upload-e-signature-error-description.mjs +3 -1
- package/esm2022/lib/constants/errors/validate-rfc/validate-rfc-error-code.mjs +4 -1
- package/esm2022/lib/constants/errors/validate-rfc/validate-rfc-error-description.mjs +7 -1
- package/esm2022/lib/constants/errors/validate-signature/validate-signature-error-code.mjs +2 -1
- package/esm2022/lib/constants/errors/validate-signature/validate-signature-error-description.mjs +4 -2
- package/esm2022/lib/models/configuration/index.mjs +4 -1
- package/esm2022/lib/models/configuration/pdf-viewer-fea/index.mjs +2 -0
- package/esm2022/lib/models/configuration/pdf-viewer-fea/pdf-viewer-fea.interface.mjs +2 -0
- package/esm2022/lib/models/configuration/signature-summary/index.mjs +2 -0
- package/esm2022/lib/models/configuration/signature-summary/signature-summary.interface.mjs +2 -0
- package/esm2022/lib/models/configuration/upload-e-signature/upload-e-signature-configuration.interface.mjs +1 -1
- package/esm2022/lib/models/customization/legends/index.mjs +4 -1
- package/esm2022/lib/models/customization/legends/pdf-viewer-fea/index.mjs +2 -0
- package/esm2022/lib/models/customization/legends/pdf-viewer-fea/pdf-viewer-fea-legends.interface.mjs +2 -0
- package/esm2022/lib/models/customization/legends/signature-summary/index.mjs +2 -0
- package/esm2022/lib/models/customization/legends/signature-summary/signature-summary-legends.interface.mjs +2 -0
- package/esm2022/lib/models/customization/style/index.mjs +4 -1
- package/esm2022/lib/models/customization/style/pdf-viewer-fea/index.mjs +2 -0
- package/esm2022/lib/models/customization/style/pdf-viewer-fea/pdf-viewer-fea-style.interface.mjs +2 -0
- package/esm2022/lib/models/customization/style/signature-summary/index.mjs +2 -0
- package/esm2022/lib/models/customization/style/signature-summary/signature-summary-style.interface.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/index.mjs +4 -1
- package/esm2022/lib/models/path-dependencies/pdf-viewer-fea/index.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/pdf-viewer-fea/pdf-viewer-fea-dependencies.interface.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/signature-summary/index.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/signature-summary/signature-summary-dependencies.interface.mjs +2 -0
- package/esm2022/lib/ng-fad-signature-fea.module.mjs +15 -5
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/fad-producto-portal-ng-fad-signature-fea.mjs +374 -184
- package/fesm2022/fad-producto-portal-ng-fad-signature-fea.mjs.map +1 -1
- package/lib/components/document-approval-list/document-approval-list.component.d.ts +2 -16
- package/lib/components/pdf-viewer-fea/pdf-viewer-fea.component.d.ts +28 -0
- package/lib/components/signature-summary/signature-summary.component.d.ts +27 -0
- package/lib/components/upload-e-signature/upload-e-signature.component.d.ts +3 -3
- package/lib/components/validate-rfc/validate-rfc.component.d.ts +6 -4
- package/lib/components/validate-signature/validate-signature.component.d.ts +2 -3
- package/lib/constants/configuration/index.d.ts +1 -0
- package/lib/constants/configuration/pdf-viewer-fea/index.d.ts +1 -0
- package/lib/constants/configuration/pdf-viewer-fea/pdf-viewer-fea-configuration.const.d.ts +2 -0
- package/lib/constants/configuration/signature-summary/signature-summary-configuration.const.d.ts +2 -0
- package/lib/constants/errors/upload-e-signature/upload-e-signature-error-code.d.ts +2 -1
- package/lib/constants/errors/upload-e-signature/upload-e-signature-error-description.d.ts +1 -1
- package/lib/constants/errors/validate-rfc/validate-rfc-error-code.d.ts +4 -1
- package/lib/constants/errors/validate-rfc/validate-rfc-error-description.d.ts +1 -1
- package/lib/constants/errors/validate-signature/validate-signature-error-code.d.ts +2 -1
- package/lib/constants/errors/validate-signature/validate-signature-error-description.d.ts +1 -1
- package/lib/models/configuration/index.d.ts +3 -0
- package/lib/models/configuration/pdf-viewer-fea/index.d.ts +1 -0
- package/lib/models/configuration/pdf-viewer-fea/pdf-viewer-fea.interface.d.ts +9 -0
- package/lib/models/configuration/signature-summary/index.d.ts +1 -0
- package/lib/models/configuration/signature-summary/signature-summary.interface.d.ts +6 -0
- package/lib/models/configuration/upload-e-signature/upload-e-signature-configuration.interface.d.ts +2 -0
- package/lib/models/customization/legends/index.d.ts +3 -0
- package/lib/models/customization/legends/pdf-viewer-fea/index.d.ts +1 -0
- package/lib/models/customization/legends/pdf-viewer-fea/pdf-viewer-fea-legends.interface.d.ts +3 -0
- package/lib/models/customization/legends/signature-summary/index.d.ts +1 -0
- package/lib/models/customization/legends/signature-summary/signature-summary-legends.interface.d.ts +8 -0
- package/lib/models/customization/style/index.d.ts +3 -0
- package/lib/models/customization/style/pdf-viewer-fea/index.d.ts +1 -0
- package/lib/models/customization/style/pdf-viewer-fea/pdf-viewer-fea-style.interface.d.ts +2 -0
- package/lib/models/customization/style/signature-summary/index.d.ts +1 -0
- package/lib/models/customization/style/signature-summary/signature-summary-style.interface.d.ts +2 -0
- package/lib/models/path-dependencies/index.d.ts +3 -0
- package/lib/models/path-dependencies/pdf-viewer-fea/index.d.ts +1 -0
- package/lib/models/path-dependencies/pdf-viewer-fea/pdf-viewer-fea-dependencies.interface.d.ts +9 -0
- package/lib/models/path-dependencies/signature-summary/index.d.ts +1 -0
- package/lib/models/path-dependencies/signature-summary/signature-summary-dependencies.interface.d.ts +7 -0
- package/lib/ng-fad-signature-fea.module.d.ts +10 -8
- package/package.json +3 -3
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { NgFadPdfReaderService } from '@fad-producto/ng-fad-pdf-reader';
|
|
3
|
+
import { GeneralPdfViewerComponent as GeneralPdfViewerComponentModule } from '@fad-producto-portal/ng-fad-viewer';
|
|
4
|
+
import { Utils } from '@fad-producto-portal/fad-common/utils/utils';
|
|
5
|
+
import { Configuration } from '@fad-producto-portal/fad-common/models/core';
|
|
6
|
+
import { PDF_VIEWER_FEA_DEFAULT } from '../../constants';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@fad-producto/ng-fad-pdf-reader";
|
|
9
|
+
import * as i2 from "@fad-producto-portal/ng-fad-viewer";
|
|
10
|
+
export class PdfViewerFeaComponent {
|
|
11
|
+
constructor(pdfService, cdr) {
|
|
12
|
+
this.pdfService = pdfService;
|
|
13
|
+
this.cdr = cdr;
|
|
14
|
+
this.pages = [];
|
|
15
|
+
this.page = 1;
|
|
16
|
+
this.miniViewConfig = { scrollIntoView: false };
|
|
17
|
+
this.height = 1000;
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
if (this.file) {
|
|
21
|
+
this.initializePdf(this.file);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
initializePdf(pdfBase64) {
|
|
25
|
+
this.pdfService.initialize(pdfBase64, `pdf-${this.index}`);
|
|
26
|
+
this.pdfService.pages.subscribe((res) => {
|
|
27
|
+
if (res) {
|
|
28
|
+
this.pages = [...this.pages, res];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
onPageChange(page) {
|
|
33
|
+
this.page = page;
|
|
34
|
+
}
|
|
35
|
+
scrollToPage(page) {
|
|
36
|
+
this.generalPdfViewerComponent.scrollToPage(page);
|
|
37
|
+
}
|
|
38
|
+
onLoadPage(data) {
|
|
39
|
+
if (data.page === 1) {
|
|
40
|
+
const containerElement = document.getElementById(this.id);
|
|
41
|
+
if (!containerElement) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const observer = new MutationObserver(() => {
|
|
45
|
+
const viewerElement = containerElement.querySelector(`#fad-viewer-page-v1-${data.id}-1`);
|
|
46
|
+
if (viewerElement) {
|
|
47
|
+
observer.disconnect();
|
|
48
|
+
const newHeight = viewerElement.clientHeight + 30;
|
|
49
|
+
if (this.height !== newHeight) {
|
|
50
|
+
this.height = newHeight;
|
|
51
|
+
this.cdr.detectChanges();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
observer.observe(containerElement, { childList: true, subtree: true });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
setCustomizationStyle(targetElement = document.documentElement) {
|
|
59
|
+
this.configuration = Utils.mergeConfiguration(new Configuration(), PDF_VIEWER_FEA_DEFAULT, this.configuration);
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PdfViewerFeaComponent, deps: [{ token: i1.NgFadPdfReaderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PdfViewerFeaComponent, selector: "ng-fad-signature-fea-pdf-viewer-fea", inputs: { configuration: "configuration", file: "file", index: "index", id: "id" }, providers: [NgFadPdfReaderService], viewQueries: [{ propertyName: "generalPdfViewerComponent", first: true, predicate: GeneralPdfViewerComponentModule, descendants: true }], ngImport: i0, template: "<div class=\"pdf-viewer\" [id]=\"id\" [style.height.px]=\"height\">\r\n <ng-fad-viewer-general-pdf-viewer\r\n [pages]=\"pages\"\r\n (onpagechange)=\"onPageChange($event)\"\r\n (onloadpage)=\"onLoadPage($event)\">\r\n \r\n <ng-fad-viewer-pdf-mini-view\r\n miniView\r\n [configuration]=\"miniViewConfig\"\r\n [pages]=\"pages\"\r\n [page]=\"page\"\r\n (onpagechange)=\"scrollToPage($event)\"\r\n >\r\n </ng-fad-viewer-pdf-mini-view>\r\n \r\n </ng-fad-viewer-general-pdf-viewer>\r\n</div>", styles: ["ng-fad-viewer-general-pdf-viewer{padding:var(--fad-portal-common-separation-md);box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: i2.GeneralPdfViewerComponent, selector: "ng-fad-viewer-general-pdf-viewer", inputs: ["configuration", "onerror", "pages"], outputs: ["onpagechange", "onloadpage"] }, { kind: "component", type: i2.PdfMiniViewComponent, selector: "ng-fad-viewer-pdf-mini-view", inputs: ["configuration", "pages", "page"], outputs: ["onpagechange"] }] }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PdfViewerFeaComponent, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ selector: 'ng-fad-signature-fea-pdf-viewer-fea', providers: [NgFadPdfReaderService], template: "<div class=\"pdf-viewer\" [id]=\"id\" [style.height.px]=\"height\">\r\n <ng-fad-viewer-general-pdf-viewer\r\n [pages]=\"pages\"\r\n (onpagechange)=\"onPageChange($event)\"\r\n (onloadpage)=\"onLoadPage($event)\">\r\n \r\n <ng-fad-viewer-pdf-mini-view\r\n miniView\r\n [configuration]=\"miniViewConfig\"\r\n [pages]=\"pages\"\r\n [page]=\"page\"\r\n (onpagechange)=\"scrollToPage($event)\"\r\n >\r\n </ng-fad-viewer-pdf-mini-view>\r\n \r\n </ng-fad-viewer-general-pdf-viewer>\r\n</div>", styles: ["ng-fad-viewer-general-pdf-viewer{padding:var(--fad-portal-common-separation-md);box-sizing:border-box}\n"] }]
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i1.NgFadPdfReaderService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { configuration: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], file: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], index: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], id: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], generalPdfViewerComponent: [{
|
|
76
|
+
type: ViewChild,
|
|
77
|
+
args: [GeneralPdfViewerComponentModule]
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci1mZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFkLXByb2R1Y3RvLXBvcnRhbC9uZy1mYWQtc2lnbmF0dXJlLWZlYS9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXZpZXdlci1mZWEvcGRmLXZpZXdlci1mZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFkLXByb2R1Y3RvLXBvcnRhbC9uZy1mYWQtc2lnbmF0dXJlLWZlYS9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXZpZXdlci1mZWEvcGRmLXZpZXdlci1mZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFDekYsT0FBTyxFQUFFLHlCQUF5QixJQUFJLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDakgsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBYWhDLFlBQW9CLFVBQWlDLEVBQVMsR0FBc0I7UUFBaEUsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQU5wRixVQUFLLEdBQXNCLEVBQUUsQ0FBQztRQUM5QixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDM0MsV0FBTSxHQUFXLElBQUksQ0FBQztJQUdpRSxDQUFDO0lBRXhGLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsU0FBaUI7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUN2QixJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVLENBQUMsSUFBcUI7UUFDOUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNuQixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBZ0IsQ0FBQztZQUN6RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JCLE9BQU87YUFDUjtZQUNELE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsR0FBRyxFQUFFO2dCQUN6QyxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBZ0IsQ0FBQztnQkFFeEcsSUFBSSxhQUFhLEVBQUU7b0JBQ2pCLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDdEIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7b0JBRWxELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7d0JBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO3dCQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO3FCQUMxQjtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDO0lBRUEscUJBQXFCLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxlQUFlO1FBQ3pELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUMzQyxJQUFJLGFBQWEsRUFBRSxFQUNuQixzQkFBc0IsRUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztJQUNQLENBQUM7K0dBcEVTLHFCQUFxQjttR0FBckIscUJBQXFCLGtKQUZyQixDQUFDLHFCQUFxQixDQUFDLHFGQWF2QiwrQkFBK0IsZ0RDeEI1QyxpakJBZ0JNOzs0RkRITyxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UscUNBQXFDLGFBR3BDLENBQUMscUJBQXFCLENBQUM7NElBSXpCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBTXNDLHlCQUF5QjtzQkFBcEUsU0FBUzt1QkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nRmFkUGRmUmVhZGVyU2VydmljZSwgUmVzcG9uc2VTdWNjZXNzIH0gZnJvbSAnQGZhZC1wcm9kdWN0by9uZy1mYWQtcGRmLXJlYWRlcic7XHJcbmltcG9ydCB7IEdlbmVyYWxQZGZWaWV3ZXJDb21wb25lbnQgYXMgR2VuZXJhbFBkZlZpZXdlckNvbXBvbmVudE1vZHVsZSB9IGZyb20gJ0BmYWQtcHJvZHVjdG8tcG9ydGFsL25nLWZhZC12aWV3ZXInXHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnQGZhZC1wcm9kdWN0by1wb3J0YWwvZmFkLWNvbW1vbi91dGlscy91dGlscyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICdAZmFkLXByb2R1Y3RvLXBvcnRhbC9mYWQtY29tbW9uL21vZGVscy9jb3JlJztcclxuaW1wb3J0IHsgUERGX1ZJRVdFUl9GRUFfREVGQVVMVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25nLWZhZC1zaWduYXR1cmUtZmVhLXBkZi12aWV3ZXItZmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGRmLXZpZXdlci1mZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BkZi12aWV3ZXItZmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbTmdGYWRQZGZSZWFkZXJTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGRmVmlld2VyRmVhQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgY29uZmlndXJhdGlvbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBmaWxlITogc3RyaW5nXHJcbiAgQElucHV0KCkgaW5kZXghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XHJcblxyXG4gIHBhZ2VzOiBSZXNwb25zZVN1Y2Nlc3NbXSA9IFtdO1xyXG4gIHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgbWluaVZpZXdDb25maWcgPSB7IHNjcm9sbEludG9WaWV3OiBmYWxzZSB9O1xyXG4gIGhlaWdodDogbnVtYmVyID0gMTAwMDtcclxuICBAVmlld0NoaWxkKEdlbmVyYWxQZGZWaWV3ZXJDb21wb25lbnRNb2R1bGUpIGdlbmVyYWxQZGZWaWV3ZXJDb21wb25lbnQhOiBHZW5lcmFsUGRmVmlld2VyQ29tcG9uZW50TW9kdWxlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBkZlNlcnZpY2U6IE5nRmFkUGRmUmVhZGVyU2VydmljZSxwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsZSkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVQZGYodGhpcy5maWxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVQZGYocGRmQmFzZTY0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMucGRmU2VydmljZS5pbml0aWFsaXplKHBkZkJhc2U2NCwgYHBkZi0ke3RoaXMuaW5kZXh9YCk7XHJcblxyXG4gICAgdGhpcy5wZGZTZXJ2aWNlLnBhZ2VzLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLnBhZ2VzID0gWy4uLnRoaXMucGFnZXMsIHJlc107XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xyXG4gICAgdGhpcy5wYWdlID0gcGFnZTtcclxuICB9XHJcblxyXG4gIHNjcm9sbFRvUGFnZShwYWdlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuZ2VuZXJhbFBkZlZpZXdlckNvbXBvbmVudC5zY3JvbGxUb1BhZ2UocGFnZSk7XHJcbiAgfVxyXG5cclxuICBvbkxvYWRQYWdlKGRhdGE6IFJlc3BvbnNlU3VjY2Vzcykge1xyXG4gICAgaWYgKGRhdGEucGFnZSA9PT0gMSkge1xyXG4gICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGlmICghY29udGFpbmVyRWxlbWVudCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcclxuICAgICAgICBjb25zdCB2aWV3ZXJFbGVtZW50ID0gY29udGFpbmVyRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjZmFkLXZpZXdlci1wYWdlLXYxLSR7ZGF0YS5pZH0tMWApIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAodmlld2VyRWxlbWVudCkge1xyXG4gICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgICAgY29uc3QgbmV3SGVpZ2h0ID0gdmlld2VyRWxlbWVudC5jbGllbnRIZWlnaHQgKyAzMDtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5oZWlnaHQgIT09IG5ld0hlaWdodCkge1xyXG4gICAgICAgICAgICB0aGlzLmhlaWdodCA9IG5ld0hlaWdodDtcclxuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyRWxlbWVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAgc2V0Q3VzdG9taXphdGlvblN0eWxlKHRhcmdldEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBVdGlscy5tZXJnZUNvbmZpZ3VyYXRpb24oXHJcbiAgICAgICAgICBuZXcgQ29uZmlndXJhdGlvbigpLFxyXG4gICAgICAgICAgUERGX1ZJRVdFUl9GRUFfREVGQVVMVCxcclxuICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblxyXG4gICAgICAgICk7XHJcbiAgIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwZGYtdmlld2VyXCIgW2lkXT1cImlkXCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIj5cclxuICAgIDxuZy1mYWQtdmlld2VyLWdlbmVyYWwtcGRmLXZpZXdlclxyXG4gICAgICBbcGFnZXNdPVwicGFnZXNcIlxyXG4gICAgICAob25wYWdlY2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKG9ubG9hZHBhZ2UpPVwib25Mb2FkUGFnZSgkZXZlbnQpXCI+XHJcbiAgXHJcbiAgICAgIDxuZy1mYWQtdmlld2VyLXBkZi1taW5pLXZpZXdcclxuICAgICAgICBtaW5pVmlld1xyXG4gICAgICAgIFtjb25maWd1cmF0aW9uXT1cIm1pbmlWaWV3Q29uZmlnXCJcclxuICAgICAgICBbcGFnZXNdPVwicGFnZXNcIlxyXG4gICAgICAgIFtwYWdlXT1cInBhZ2VcIlxyXG4gICAgICAgIChvbnBhZ2VjaGFuZ2UpPVwic2Nyb2xsVG9QYWdlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgPC9uZy1mYWQtdmlld2VyLXBkZi1taW5pLXZpZXc+XHJcbiAgXHJcbiAgICA8L25nLWZhZC12aWV3ZXItZ2VuZXJhbC1wZGYtdmlld2VyPlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { SIGNATURE_SUMMARY_DEFAULT } from '../../constants/configuration/signature-summary/signature-summary-configuration.const';
|
|
3
|
+
import { Configuration } from '@fad-producto-portal/fad-common/models/core';
|
|
4
|
+
import { Utils } from '@fad-producto-portal/fad-common/utils/utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@fad-producto/ng-fad-image-inline";
|
|
8
|
+
export class SignatureSummaryComponent {
|
|
9
|
+
constructor(hostContext) {
|
|
10
|
+
this.hostContext = hostContext;
|
|
11
|
+
this.oncomplete = new EventEmitter();
|
|
12
|
+
this.images = {
|
|
13
|
+
reject: '',
|
|
14
|
+
send: ''
|
|
15
|
+
};
|
|
16
|
+
this.signedCount = 0;
|
|
17
|
+
this.rejectedCount = 0;
|
|
18
|
+
this.isAllDocumentsRejected = true;
|
|
19
|
+
this.currentDate = '';
|
|
20
|
+
this.id = '';
|
|
21
|
+
this.pdfsName = '';
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
console.log(this.documentRequest);
|
|
25
|
+
this.setCustomizationStyle(this.hostContext.nativeElement);
|
|
26
|
+
if (this.configuration?.pathDependencies?.imageDirectory) {
|
|
27
|
+
this.images.reject = this.configuration.pathDependencies?.images?.reject ?? `${this.configuration.pathDependencies.imageDirectory}/rejected.svg`;
|
|
28
|
+
this.images.send = this.configuration.pathDependencies?.images?.send ?? `${this.configuration.pathDependencies.imageDirectory}/send.svg`;
|
|
29
|
+
}
|
|
30
|
+
this.updateDocumentCounts();
|
|
31
|
+
this.getPdfNames();
|
|
32
|
+
this.setCurrentDate();
|
|
33
|
+
}
|
|
34
|
+
setCurrentDate() {
|
|
35
|
+
const now = new Date();
|
|
36
|
+
let hours = now.getHours();
|
|
37
|
+
const minutes = now.getMinutes();
|
|
38
|
+
const amPm = hours >= 12 ? 'PM' : 'AM';
|
|
39
|
+
hours = hours % 12 || 12;
|
|
40
|
+
const formattedMinutes = minutes < 10 ? '0' + minutes : minutes;
|
|
41
|
+
this.currentDate = `${now.toLocaleDateString(this.configuration.dateFormat)} | ${hours}:${formattedMinutes} ${amPm}`;
|
|
42
|
+
}
|
|
43
|
+
updateDocumentCounts() {
|
|
44
|
+
// Contar documentos firmados (approved: true)
|
|
45
|
+
this.documentRequest.forEach((doc) => {
|
|
46
|
+
this.id = doc.id;
|
|
47
|
+
if (doc.approved) {
|
|
48
|
+
this.signedCount += 1;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.rejectedCount += 1;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
console.log(this.documentRequest, this.signedCount, this.rejectedCount);
|
|
55
|
+
if (this.signedCount > 0) {
|
|
56
|
+
this.isAllDocumentsRejected = false;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.isAllDocumentsRejected = true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
getPdfNames() {
|
|
63
|
+
let currentFlag = '';
|
|
64
|
+
let previewFlag = '';
|
|
65
|
+
this.documentRequest.forEach((doc) => {
|
|
66
|
+
if (this.pdfsName === '') {
|
|
67
|
+
this.pdfsName = doc.doc?.name.replace('.pdf', '');
|
|
68
|
+
currentFlag = doc.idRequisition;
|
|
69
|
+
previewFlag = doc.idRequisition;
|
|
70
|
+
}
|
|
71
|
+
currentFlag = doc.idRequisition;
|
|
72
|
+
if (currentFlag !== previewFlag) {
|
|
73
|
+
this.pdfsName += ',' + doc.doc?.name.replace('.pdf', '');
|
|
74
|
+
currentFlag = doc.idRequisition;
|
|
75
|
+
previewFlag = doc.idRequisition;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
setCustomizationStyle(targetElement = document.documentElement) {
|
|
80
|
+
this.configuration = Utils.mergeConfiguration(new Configuration(), SIGNATURE_SUMMARY_DEFAULT, this.configuration);
|
|
81
|
+
}
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SignatureSummaryComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
83
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SignatureSummaryComponent, selector: "ng-fad-signature-fea-signature-summary", inputs: { documentRequest: "documentRequest", configuration: "configuration" }, outputs: { oncomplete: "oncomplete" }, ngImport: i0, template: "<div class=\"fad-portal-content\">\n \n <ng-container *ngIf=\"!isAllDocumentsRejected\" >\n <ng-fad-image-inline\n [src]=\"images.send\"\n >\n </ng-fad-image-inline>\n <div class=\"fad-portal-title-bold\">\n {{pdfsName}}\n </div>\n <div class=\"fad-portal-content-bold date\">{{ currentDate }}</div>\n <div class=\"summary\">\n <div class=\"fad-portal-content-bold signeds\">\n <div>{{configuration.customization?.moduleCustomization?.legends?.signed}}</div>\n <div>{{signedCount}}</div>\n </div>\n <div class=\"line\">\n\n </div>\n <div class=\"fad-portal-content-bold rejecteds\">\n <div>{{configuration.customization?.moduleCustomization?.legends?.rejected}}</div>\n <div>{{rejectedCount}}</div>\n </div>\n </div>\n <div class=\"legends\">\n {{configuration.customization?.moduleCustomization?.legends?.legend}}\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAllDocumentsRejected\" >\n <ng-fad-image-inline\n [src]=\"images.reject\"\n >\n </ng-fad-image-inline>\n <div class=\"document-rejected\"> {{configuration.customization?.moduleCustomization?.legends?.documentRejected}} </div>\n <div class=\"fad-portal-title-bold title-document\">\n {{pdfsName}}\n </div>\n <div class=\"id-requisition\">\n ID {{id}} | {{ currentDate }}\n </div>\n </ng-container>\n \n</div>", styles: [".fad-portal-content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;row-gap:var(--fad-portal-common-separation-sm)}.fad-portal-content .fad-portal-title{margin-top:var(--fad-portal-common-separation-sm);margin-bottom:var(--fad-portal-common-separation-sm)}.fad-portal-content .date{color:#aaa}.fad-portal-content .summary{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;row-gap:var(--fad-portal-common-separation-sm);margin-bottom:var(--fad-portal-common-separation-xs)}.fad-portal-content .summary .signeds,.fad-portal-content .summary .rejecteds{width:100%;display:flex;justify-content:space-between}.fad-portal-content .summary .line{width:100%;border:1px solid var(--fad-portal-common-border-color)}.fad-portal-content .legends{text-align:center}.fad-portal-content .document-rejected{color:#aaa;margin-bottom:var(--fad-portal-common-separation-sm)}.fad-portal-content .id-requisition{color:#aaa;margin-top:var(--fad-portal-common-separation-sm)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.NgFadImageInlineComponent, selector: "ng-fad-image-inline", inputs: ["src"] }] }); }
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SignatureSummaryComponent, decorators: [{
|
|
86
|
+
type: Component,
|
|
87
|
+
args: [{ selector: 'ng-fad-signature-fea-signature-summary', template: "<div class=\"fad-portal-content\">\n \n <ng-container *ngIf=\"!isAllDocumentsRejected\" >\n <ng-fad-image-inline\n [src]=\"images.send\"\n >\n </ng-fad-image-inline>\n <div class=\"fad-portal-title-bold\">\n {{pdfsName}}\n </div>\n <div class=\"fad-portal-content-bold date\">{{ currentDate }}</div>\n <div class=\"summary\">\n <div class=\"fad-portal-content-bold signeds\">\n <div>{{configuration.customization?.moduleCustomization?.legends?.signed}}</div>\n <div>{{signedCount}}</div>\n </div>\n <div class=\"line\">\n\n </div>\n <div class=\"fad-portal-content-bold rejecteds\">\n <div>{{configuration.customization?.moduleCustomization?.legends?.rejected}}</div>\n <div>{{rejectedCount}}</div>\n </div>\n </div>\n <div class=\"legends\">\n {{configuration.customization?.moduleCustomization?.legends?.legend}}\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAllDocumentsRejected\" >\n <ng-fad-image-inline\n [src]=\"images.reject\"\n >\n </ng-fad-image-inline>\n <div class=\"document-rejected\"> {{configuration.customization?.moduleCustomization?.legends?.documentRejected}} </div>\n <div class=\"fad-portal-title-bold title-document\">\n {{pdfsName}}\n </div>\n <div class=\"id-requisition\">\n ID {{id}} | {{ currentDate }}\n </div>\n </ng-container>\n \n</div>", styles: [".fad-portal-content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;row-gap:var(--fad-portal-common-separation-sm)}.fad-portal-content .fad-portal-title{margin-top:var(--fad-portal-common-separation-sm);margin-bottom:var(--fad-portal-common-separation-sm)}.fad-portal-content .date{color:#aaa}.fad-portal-content .summary{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;row-gap:var(--fad-portal-common-separation-sm);margin-bottom:var(--fad-portal-common-separation-xs)}.fad-portal-content .summary .signeds,.fad-portal-content .summary .rejecteds{width:100%;display:flex;justify-content:space-between}.fad-portal-content .summary .line{width:100%;border:1px solid var(--fad-portal-common-border-color)}.fad-portal-content .legends{text-align:center}.fad-portal-content .document-rejected{color:#aaa;margin-bottom:var(--fad-portal-common-separation-sm)}.fad-portal-content .id-requisition{color:#aaa;margin-top:var(--fad-portal-common-separation-sm)}\n"] }]
|
|
88
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { documentRequest: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], configuration: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], oncomplete: [{
|
|
93
|
+
type: Output
|
|
94
|
+
}] } });
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFkLXByb2R1Y3RvLXBvcnRhbC9uZy1mYWQtc2lnbmF0dXJlLWZlYS9zcmMvbGliL2NvbXBvbmVudHMvc2lnbmF0dXJlLXN1bW1hcnkvc2lnbmF0dXJlLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFkLXByb2R1Y3RvLXBvcnRhbC9uZy1mYWQtc2lnbmF0dXJlLWZlYS9zcmMvbGliL2NvbXBvbmVudHMvc2lnbmF0dXJlLXN1bW1hcnkvc2lnbmF0dXJlLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1RkFBdUYsQ0FBQztBQUNsSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7O0FBT3BFLE1BQU0sT0FBTyx5QkFBeUI7SUFnQnBDLFlBQXFCLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBWmxDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRS9DLFdBQU0sR0FBRztZQUNMLE1BQU0sRUFBRSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEVBQUU7U0FDWCxDQUFBO1FBQ0QsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFD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Q0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUMsRUFBRSxDQUFFLENBQUM7Z0JBQ2xELFdBQVcsR0FBRyxHQUFHLENBQUMsYUFBYyxDQUFBO2dCQUNoQyxXQUFXLEdBQUcsR0FBRyxDQUFDLGFBQWMsQ0FBQTthQUNoQztZQUNELFdBQVcsR0FBRyxHQUFHLENBQUMsYUFBYyxDQUFDO1lBQ2pDLElBQUcsV0FBVyxLQUFLLFdBQVcsRUFBQztnQkFDOUIsSUFBSSxDQUFDLFFBQVEsSUFBRyxHQUFHLEdBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBQyxFQUFFLENBQUUsQ0FBQztnQkFDdEQsV0FBVyxHQUFHLEdBQUcsQ0FBQyxhQUFjLENBQUE7Z0JBQ2hDLFdBQVcsR0FBRyxHQUFHLENBQUMsYUFBYyxDQUFBO2FBQ2hDO1FBRUosQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QscUJBQXFCLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxlQUFlO1FBQ3hELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUMzQyxJQUFJLGFBQWEsRUFBRSxFQUNuQix5QkFBeUIsRUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztJQUNSLENBQUM7K0dBM0ZVLHlCQUF5QjttR0FBekIseUJBQXlCLHFNQ1h0QyxpcURBMENNOzs0RkQvQk8seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdDQUF3QztpR0FNekMsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnRBcHByb3ZhbEZlYSwgSVNpZ25hdHVyZVN1bW1hcnlDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFNJR05BVFVSRV9TVU1NQVJZX0RFRkFVTFQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29uZmlndXJhdGlvbi9zaWduYXR1cmUtc3VtbWFyeS9zaWduYXR1cmUtc3VtbWFyeS1jb25maWd1cmF0aW9uLmNvbnN0JztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICdAZmFkLXByb2R1Y3RvLXBvcnRhbC9mYWQtY29tbW9uL21vZGVscy9jb3JlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnQGZhZC1wcm9kdWN0by1wb3J0YWwvZmFkLWNvbW1vbi91dGlscy91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWZhZC1zaWduYXR1cmUtZmVhLXNpZ25hdHVyZS1zdW1tYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZ25hdHVyZS1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2lnbmF0dXJlLXN1bW1hcnkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVTdW1tYXJ5Q29tcG9uZW50IHtcblxuICBASW5wdXQoKSBkb2N1bWVudFJlcXVlc3QhOiBEb2N1bWVudEFwcHJvdmFsRmVhW107XG4gIEBJbnB1dCgpIGNvbmZpZ3VyYXRpb24hOiBJU2lnbmF0dXJlU3VtbWFyeUNvbmZpZ3VyYXRpb247XG4gIEBPdXRwdXQoKSBvbmNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgaW1hZ2VzID0ge1xuICAgICAgcmVqZWN0OiAnJyxcbiAgICAgIHNlbmQ6ICcnXG4gIH1cbiAgc2lnbmVkQ291bnQgPSAwO1xuICByZWplY3RlZENvdW50ID0gMDtcbiAgaXNBbGxEb2N1bWVudHNSZWplY3RlZCA9IHRydWU7XG4gIGN1cnJlbnREYXRlOiBzdHJpbmcgPSAnJztcbiAgaWQgPSAnJztcbiAgcGRmc05hbWUgPSAnJztcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgaG9zdENvbnRleHQ6IEVsZW1lbnRSZWYgKSB7fVxuXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5kb2N1bWVudFJlcXVlc3QpXG4gICAgdGhpcy5zZXRDdXN0b21pemF0aW9uU3R5bGUodGhpcy5ob3N0Q29udGV4dC5uYXRpdmVFbGVtZW50KTtcbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uPy5wYXRoRGVwZW5kZW5jaWVzPy5pbWFnZURpcmVjdG9yeSkge1xuICAgICAgdGhpcy5pbWFnZXMucmVqZWN0ID0gdGhpcy5jb25maWd1cmF0aW9uLnBhdGhEZXBlbmRlbmNpZXM/LmltYWdlcz8ucmVqZWN0ID8/IGAke3RoaXMuY29uZmlndXJhdGlvbi5wYXRoRGVwZW5kZW5jaWVzLmltYWdlRGlyZWN0b3J5fS9yZWplY3RlZC5zdmdgO1xuICAgICAgdGhpcy5pbWFnZXMuc2VuZCA9IHRoaXMuY29uZmlndXJhdGlvbi5wYXRoRGVwZW5kZW5jaWVzPy5pbWFnZXM/LnNlbmQgPz8gYCR7dGhpcy5jb25maWd1cmF0aW9uLnBhdGhEZXBlbmRlbmNpZXMuaW1hZ2VEaXJlY3Rvcnl9L3NlbmQuc3ZnYDtcbiAgICAgIFxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZURvY3VtZW50Q291bnRzKCk7XG4gICAgdGhpcy5nZXRQZGZOYW1lcygpO1xuICAgIHRoaXMuc2V0Q3VycmVudERhdGUoKTtcbiAgfVxuXG4gIHNldEN1cnJlbnREYXRlKCkge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG5cbiAgICBsZXQgaG91cnMgPSBub3cuZ2V0SG91cnMoKTtcbiAgICBjb25zdCBtaW51dGVzID0gbm93LmdldE1pbnV0ZXMoKTtcbiAgICBjb25zdCBhbVBtID0gaG91cnMgPj0gMTIgPyAnUE0nIDogJ0FNJztcbiAgXG4gICAgaG91cnMgPSBob3VycyAlIDEyIHx8IDEyOyBcbiAgXG4gICAgY29uc3QgZm9ybWF0dGVkTWludXRlcyA9IG1pbnV0ZXMgPCAxMCA/ICcwJyArIG1pbnV0ZXMgOiBtaW51dGVzO1xuICAgIHRoaXMuY3VycmVudERhdGUgPSBgJHtub3cudG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuY29uZmlndXJhdGlvbi5kYXRlRm9ybWF0KX0gfCAke2hvdXJzfToke2Zvcm1hdHRlZE1pbnV0ZXN9ICR7YW1QbX1gO1xuICB9XG4gIFxuXG4gIHVwZGF0ZURvY3VtZW50Q291bnRzKCkge1xuICAgIC8vIENvbnRhciBkb2N1bWVudG9zIGZpcm1hZG9zIChhcHByb3ZlZDogdHJ1ZSlcbiAgICB0aGlzLmRvY3VtZW50UmVxdWVzdC5mb3JFYWNoKChkb2MpID0+e1xuICAgICAgdGhpcy5pZD0gZG9jLmlkITtcbiAgICAgIGlmKGRvYy5hcHByb3ZlZCl7XG4gICAgICAgICAgdGhpcy5zaWduZWRDb3VudCArPSAxO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHRoaXMucmVqZWN0ZWRDb3VudCArPSAxO1xuICAgICAgfVxuICAgIH0pXG4gICAgY29uc29sZS5sb2codGhpcy5kb2N1bWVudFJlcXVlc3QsIHRoaXMuc2lnbmVkQ291bnQsdGhpcy5yZWplY3RlZENvdW50KVxuICAgaWYodGhpcy5zaWduZWRDb3VudCA+IDApe1xuICAgIHRoaXMuaXNBbGxEb2N1bWVudHNSZWplY3RlZCA9IGZhbHNlXG4gICB9ZWxzZXtcbiAgICB0aGlzLmlzQWxsRG9jdW1lbnRzUmVqZWN0ZWQgPSB0cnVlXG4gICB9XG4gICAgXG4gIH1cblxuICBnZXRQZGZOYW1lcygpe1xuICAgIGxldCBjdXJyZW50RmxhZyA9ICcnO1xuICAgIGxldCBwcmV2aWV3RmxhZyA9ICcnO1xuICAgIHRoaXMuZG9jdW1lbnRSZXF1ZXN0LmZvckVhY2goKGRvYykgPT57XG4gICAgICAgaWYodGhpcy5wZGZzTmFtZSA9PT0gJycpe1xuICAgICAgICB0aGlzLnBkZnNOYW1lID0gZG9jLmRvYz8ubmFtZS5yZXBsYWNlKCcucGRmJywnJykhO1xuICAgICAgICBjdXJyZW50RmxhZyA9IGRvYy5pZFJlcXVpc2l0aW9uIVxuICAgICAgICBwcmV2aWV3RmxhZyA9IGRvYy5pZFJlcXVpc2l0aW9uIVxuICAgICAgIH1cbiAgICAgICBjdXJyZW50RmxhZyA9IGRvYy5pZFJlcXVpc2l0aW9uITtcbiAgICAgICBpZihjdXJyZW50RmxhZyAhPT0gcHJldmlld0ZsYWcpe1xuICAgICAgICB0aGlzLnBkZnNOYW1lKz0gJywnK2RvYy5kb2M/Lm5hbWUucmVwbGFjZSgnLnBkZicsJycpITtcbiAgICAgICAgY3VycmVudEZsYWcgPSBkb2MuaWRSZXF1aXNpdGlvbiFcbiAgICAgICAgcHJldmlld0ZsYWcgPSBkb2MuaWRSZXF1aXNpdGlvbiFcbiAgICAgICB9XG4gICAgICBcbiAgICB9KTtcbiAgfVxuICBcblxuICBzZXRDdXN0b21pemF0aW9uU3R5bGUodGFyZ2V0RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBVdGlscy5tZXJnZUNvbmZpZ3VyYXRpb24oXG4gICAgICAgICAgbmV3IENvbmZpZ3VyYXRpb24oKSxcbiAgICAgICAgICBTSUdOQVRVUkVfU1VNTUFSWV9ERUZBVUxULFxuICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblxuICAgICAgICApO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmYWQtcG9ydGFsLWNvbnRlbnRcIj5cbiAgICBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQWxsRG9jdW1lbnRzUmVqZWN0ZWRcIiA+XG4gICAgICAgICAgICA8bmctZmFkLWltYWdlLWlubGluZVxuICAgICAgICAgICAgW3NyY109XCJpbWFnZXMuc2VuZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLWZhZC1pbWFnZS1pbmxpbmU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmFkLXBvcnRhbC10aXRsZS1ib2xkXCI+XG4gICAgICAgICAgICAgICAge3twZGZzTmFtZX19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmYWQtcG9ydGFsLWNvbnRlbnQtYm9sZCBkYXRlXCI+e3sgY3VycmVudERhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZhZC1wb3J0YWwtY29udGVudC1ib2xkIHNpZ25lZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj57e2NvbmZpZ3VyYXRpb24uY3VzdG9taXphdGlvbj8ubW9kdWxlQ3VzdG9taXphdGlvbj8ubGVnZW5kcz8uc2lnbmVkfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj57e3NpZ25lZENvdW50fX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZhZC1wb3J0YWwtY29udGVudC1ib2xkIHJlamVjdGVkc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7Y29uZmlndXJhdGlvbi5jdXN0b21pemF0aW9uPy5tb2R1bGVDdXN0b21pemF0aW9uPy5sZWdlbmRzPy5yZWplY3RlZH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3tyZWplY3RlZENvdW50fX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZHNcIj5cbiAgICAgICAgICAgICAgICB7e2NvbmZpZ3VyYXRpb24uY3VzdG9taXphdGlvbj8ubW9kdWxlQ3VzdG9taXphdGlvbj8ubGVnZW5kcz8ubGVnZW5kfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FsbERvY3VtZW50c1JlamVjdGVkXCIgPlxuICAgICAgICA8bmctZmFkLWltYWdlLWlubGluZVxuICAgICAgICBbc3JjXT1cImltYWdlcy5yZWplY3RcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctZmFkLWltYWdlLWlubGluZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50LXJlamVjdGVkXCI+IHt7Y29uZmlndXJhdGlvbi5jdXN0b21pemF0aW9uPy5tb2R1bGVDdXN0b21pemF0aW9uPy5sZWdlbmRzPy5kb2N1bWVudFJlamVjdGVkfX0gPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmYWQtcG9ydGFsLXRpdGxlLWJvbGQgdGl0bGUtZG9jdW1lbnRcIj5cbiAgICAgICAgICAgIHt7cGRmc05hbWV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlkLXJlcXVpc2l0aW9uXCI+XG4gICAgICAgICAgICBJRCB7e2lkfX0gfCB7eyBjdXJyZW50RGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbjwvZGl2PiJdfQ==
|