brainloper-ui 14.1.13 → 14.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/esm2020/public_api.mjs +2 -1
  2. package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +4 -35
  3. package/esm2020/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +4 -68
  4. package/esm2020/src/app/modules/interfaces/report/template-pdf-base.mjs +1 -1
  5. package/esm2020/src/app/modules/interfaces/report/template-pdf-purchase-order.mjs +2 -0
  6. package/esm2020/src/app/modules/services/fuel-order-pdf.service.mjs +31 -213
  7. package/esm2020/src/app/modules/services/functions.service.mjs +22 -1
  8. package/esm2020/src/app/modules/services/generate-pdf.service.mjs +25 -45
  9. package/esm2020/src/app/modules/services/purchase-order-pdf.service.mjs +173 -0
  10. package/esm2020/src/app/modules/services/work-order-pdf.service.mjs +56 -77
  11. package/fesm2015/brainloper-ui.mjs +298 -433
  12. package/fesm2015/brainloper-ui.mjs.map +1 -1
  13. package/fesm2020/brainloper-ui.mjs +303 -433
  14. package/fesm2020/brainloper-ui.mjs.map +1 -1
  15. package/package.json +1 -1
  16. package/public_api.d.ts +1 -0
  17. package/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.d.ts +0 -2
  18. package/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.d.ts +0 -2
  19. package/src/app/modules/interfaces/report/template-pdf-base.d.ts +1 -0
  20. package/src/app/modules/interfaces/report/template-pdf-purchase-order.d.ts +18 -0
  21. package/src/app/modules/services/fuel-order-pdf.service.d.ts +5 -39
  22. package/src/app/modules/services/functions.service.d.ts +2 -0
  23. package/src/app/modules/services/generate-pdf.service.d.ts +7 -6
  24. package/src/app/modules/services/purchase-order-pdf.service.d.ts +21 -0
  25. package/src/app/modules/services/work-order-pdf.service.d.ts +14 -41
@@ -5,11 +5,13 @@ import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/material/dialog";
6
6
  import * as i2 from "./work-order-pdf.service";
7
7
  import * as i3 from "./fuel-order-pdf.service";
8
+ import * as i4 from "./purchase-order-pdf.service";
8
9
  export class GeneratePdfService {
9
- constructor(dialog, workOrderPdfService, FuelOrderPdfService) {
10
+ constructor(dialog, workOrderPdfService, FuelOrderPdfService, purchaseOrderPdfService) {
10
11
  this.dialog = dialog;
11
12
  this.workOrderPdfService = workOrderPdfService;
12
13
  this.FuelOrderPdfService = FuelOrderPdfService;
14
+ this.purchaseOrderPdfService = purchaseOrderPdfService;
13
15
  }
14
16
  getPdfOt(data, autoGenerateData) {
15
17
  let autoGenerate = false;
@@ -50,60 +52,38 @@ export class GeneratePdfService {
50
52
  });
51
53
  });
52
54
  }
53
- /**
54
- * Método mejorado para generar PDF de orden de combustible
55
- */
56
- getPdfFoNew(data, autoGenerateData) {
55
+ getPdfFoV2(data) {
57
56
  return new Promise((resolve, reject) => {
58
- if (autoGenerateData) {
59
- this.FuelOrderPdfService.generateFuelOrderPDF(data)
60
- .then(() => resolve(true))
61
- .catch(error => reject(error));
62
- }
63
- else {
64
- let screen = "850px";
65
- this.dialog.open(TemplateFuelComponent, {
66
- data: {
67
- data,
68
- autoGenerate: false,
69
- useNewMethod: true
70
- },
71
- width: screen
72
- }).afterClosed().subscribe((res) => {
73
- resolve(true);
74
- });
75
- }
57
+ this.FuelOrderPdfService.generateFuelOrderProfesionalPDF(data)
58
+ .then(() => resolve(true))
59
+ .catch(error => reject(error));
76
60
  });
77
61
  }
78
- getPdfOtNew(data, autoGenerateData) {
62
+ getPdfOtV2(data) {
79
63
  return new Promise((resolve, reject) => {
80
- if (autoGenerateData) {
81
- this.workOrderPdfService.generateWorkOrderPDF(data)
82
- .then(() => resolve(true))
83
- .catch(error => reject(error));
84
- }
85
- else {
86
- let screen = "850px";
87
- this.dialog.open(TemplateOtComponent, {
88
- data: {
89
- data,
90
- autoGenerate: false,
91
- useNewMethod: true
92
- },
93
- width: screen
94
- }).afterClosed().subscribe((res) => {
95
- resolve(true);
96
- });
97
- }
64
+ this.workOrderPdfService.generateWorkOrderPDF(data)
65
+ .then(() => resolve(true))
66
+ .catch(error => reject(error));
67
+ });
68
+ }
69
+ generatePurchaseOrderPDF(order) {
70
+ return new Promise((resolve, reject) => {
71
+ this.purchaseOrderPdfService.generatePurchaseOrderPDF(order, { download: false })
72
+ .then((doc) => {
73
+ const blobUrl = doc.output('bloburl');
74
+ window.open(blobUrl, '_blank');
75
+ resolve(true);
76
+ })
77
+ .catch(error => reject(error));
98
78
  });
99
79
  }
100
80
  }
101
- GeneratePdfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneratePdfService, deps: [{ token: i1.MatDialog }, { token: i2.WorkOrderPdfService }, { token: i3.FuelOrderPdfService }], target: i0.ɵɵFactoryTarget.Injectable });
81
+ GeneratePdfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneratePdfService, deps: [{ token: i1.MatDialog }, { token: i2.WorkOrderPdfService }, { token: i3.FuelOrderPdfService }, { token: i4.PurchaseOrderPdfService }], target: i0.ɵɵFactoryTarget.Injectable });
102
82
  GeneratePdfService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneratePdfService, providedIn: 'root' });
103
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneratePdfService, decorators: [{
104
84
  type: Injectable,
105
85
  args: [{
106
86
  providedIn: 'root'
107
87
  }]
108
- }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.WorkOrderPdfService }, { type: i3.FuelOrderPdfService }]; } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvZ2VuZXJhdGUtcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUtqSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7Ozs7QUFLM0csTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUNVLE1BQWlCLEVBQ2pCLG1CQUF3QyxFQUN4QyxtQkFBd0M7UUFGeEMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFDOUMsQ0FBQztJQUVMLFFBQVEsQ0FBQyxJQUFtQixFQUFFLGdCQUEwQjtRQUN0RCxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUE7UUFDeEIsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixZQUFZLEdBQUcsZ0JBQWdCLENBQUE7U0FDaEM7UUFFRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQTtZQUNwQixtQ0FBbUM7WUFDbkMscUJBQXFCO1lBQ3JCLElBQUk7WUFFSixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDcEMsSUFBSSxFQUFFO29CQUNKLElBQUk7b0JBQ0osWUFBWSxFQUFFLFlBQVk7aUJBQzNCO2dCQUNELEtBQUssRUFBRSxNQUFNO2FBQ2QsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNq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UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQWxHVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVGVtcGxhdGVGdWVsQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJhaW5sb3Blci11aS9jb21wb25lbnRzL3JlcG9ydC90ZW1wbGF0ZS1mdWVsL3RlbXBsYXRlLWZ1ZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbXBsYXRlUGRmT3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC90ZW1wbGF0ZS1wZGYtb3QnO1xuaW1wb3J0IHsgVGVtcGxhdGVQZGZGbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0L3RlbXBsYXRlLXBmZC1mbyc7XG5pbXBvcnQgeyBXb3JrT3JkZXJQZGZTZXJ2aWNlIH0gZnJvbSAnLi93b3JrLW9yZGVyLXBkZi5zZXJ2aWNlJztcbmltcG9ydCB7IEZ1ZWxPcmRlclBkZlNlcnZpY2UgfSBmcm9tICcuL2Z1ZWwtb3JkZXItcGRmLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVPdENvbXBvbmVudCB9IGZyb20gJy4uL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtb3QvdGVtcGxhdGUtb3QuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVQZGZTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgd29ya09yZGVyUGRmU2VydmljZTogV29ya09yZGVyUGRmU2VydmljZSxcbiAgICBwcml2YXRlIEZ1ZWxPcmRlclBkZlNlcnZpY2U6IEZ1ZWxPcmRlclBkZlNlcnZpY2VcbiAgKSB7IH1cblxuICBnZXRQZGZPdChkYXRhOiBUZW1wbGF0ZVBkZk90LCBhdXRvR2VuZXJhdGVEYXRhPzogYm9vbGVhbikge1xuICAgIGxldCBhdXRvR2VuZXJhdGUgPSBmYWxzZVxuICAgIGlmIChhdXRvR2VuZXJhdGVEYXRhKSB7XG4gICAgICBhdXRvR2VuZXJhdGUgPSBhdXRvR2VuZXJhdGVEYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICBsZXQgc2NyZWVuID0gXCI4NTBweFwiXG4gICAgICAvLyBpZiAoIHdpbmRvdy5zY3JlZW4ud2lkdGg8MTAwMCkge1xuICAgICAgLy8gICBzY3JlZW4gPSBcIjEwMHZ3XCJcbiAgICAgIC8vIH1cblxuICAgICAgdGhpcy5kaWFsb2cub3BlbihUZW1wbGF0ZU90Q29tcG9uZW50LCB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGF1dG9HZW5lcmF0ZTogYXV0b0dlbmVyYXRlXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiBzY3JlZW5cbiAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUodHJ1ZSlcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIGdldFBkZkZvKGRhdGE6IFRlbXBsYXRlUGRmRm8sIGF1dG9HZW5lcmF0ZURhdGE/OiBib29sZWFuKSB7XG4gICAgbGV0IGF1dG9HZW5lcmF0ZSA9IGZhbHNlXG4gICAgaWYgKGF1dG9HZW5lcmF0ZURhdGEpIHtcbiAgICAgIGF1dG9HZW5lcmF0ZSA9IGF1dG9HZW5lcmF0ZURhdGFcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIGxldCBzY3JlZW4gPSBcIjg1MHB4XCJcblxuICAgICAgdGhpcy5kaWFsb2cub3BlbihUZW1wbGF0ZUZ1ZWxDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgYXV0b0dlbmVyYXRlOiBhdXRvR2VuZXJhdGVcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHNjcmVlblxuICAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSh0cnVlKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgICAvKipcbiAgICogTcOpdG9kbyBtZWpvcmFkbyBwYXJhIGdlbmVyYXIgUERGIGRlIG9yZGVuIGRlIGNvbWJ1c3RpYmxlXG4gICAqL1xuICBnZXRQZGZGb05ldyhkYXRhOiBUZW1wbGF0ZVBkZkZvLCBhdXRvR2VuZXJhdGVEYXRhPzogYm9vbGVhbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoYXV0b0dlbmVyYXRlRGF0YSkge1xuICAgICAgICB0aGlzLkZ1ZWxPcmRlclBkZlNlcnZpY2UuZ2VuZXJhdGVGdWVsT3JkZXJQREYoZGF0YSlcbiAgICAgICAgICAudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKVxuICAgICAgICAgIC5jYXRjaChlcnJvciA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBzY3JlZW4gPSBcIjg1MHB4XCI7XG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oVGVtcGxhdGVGdWVsQ29tcG9uZW50LCB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGF1dG9HZW5lcmF0ZTogZmFsc2UsXG4gICAgICAgICAgICB1c2VOZXdNZXRob2Q6IHRydWUgXG4gICAgICAgICAgfSxcbiAgICAgICAgICB3aWR0aDogc2NyZWVuXG4gICAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldFBkZk90TmV3KGRhdGE6IFRlbXBsYXRlUGRmT3QsIGF1dG9HZW5lcmF0ZURhdGE/OiBib29sZWFuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmIChhdXRvR2VuZXJhdGVEYXRhKSB7XG4gICAgICAgIHRoaXMud29ya09yZGVyUGRmU2VydmljZS5nZW5lcmF0ZVdvcmtPcmRlclBERihkYXRhKVxuICAgICAgICAgIC50aGVuKCgpID0+IHJlc29sdmUodHJ1ZSkpXG4gICAgICAgICAgLmNhdGNoKGVycm9yID0+IHJlamVjdChlcnJvcikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHNjcmVlbiA9IFwiODUwcHhcIjtcbiAgICAgICAgdGhpcy5kaWFsb2cub3BlbihUZW1wbGF0ZU90Q29tcG9uZW50LCB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGF1dG9HZW5lcmF0ZTogZmFsc2UsXG4gICAgICAgICAgICB1c2VOZXdNZXRob2Q6IHRydWUgXG4gICAgICAgICAgfSxcbiAgICAgICAgICB3aWR0aDogc2NyZWVuXG4gICAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG5cbn1cbiJdfQ==
88
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.WorkOrderPdfService }, { type: i3.FuelOrderPdfService }, { type: i4.PurchaseOrderPdfService }]; } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvZ2VuZXJhdGUtcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUtqSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7Ozs7O0FBTTNHLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFDVSxNQUFpQixFQUNqQixtQkFBd0MsRUFDeEMsbUJBQXdDLEVBQ3hDLHVCQUFpRDtRQUhqRCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQTBCO0lBQ3ZELENBQUM7SUFFTCxRQUFRLENBQUMsSUFBbUIsRUFBRSxnQkFBMEI7UUFDdEQsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFBO1FBQ3hCLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsWUFBWSxHQUFHLGdCQUFnQixDQUFBO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN0QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUE7WUFDcEIsbUNBQW1DO1lBQ25DLHFCQUFxQjtZQUNyQixJQUFJO1lBRUosSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ3BDLElBQUksRUFBRTtvQkFDSixJQUFJO29CQUNKLFlBQVksRUFBRSxZQUFZO2lCQUMzQjtnQkFDRCxLQUFLLEVBQUUsTUFBTTthQUNkLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDakMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdEIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBbUIsRUFBRSxnQkFBMEI7UUFDdEQsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFBO1FBQ3hCLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsWUFBWSxHQUFHLGdCQUFnQixDQUFBO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN0QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUE7WUFFcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7Z0JBQ3RDLElBQUksRUFBRTtvQkFDSixJQUFJO29CQUNKLFlBQVksRUFBRSxZQUFZO2lCQUMzQjtnQkFDRCxLQUFLLEVBQUUsTUFBTTthQUNkLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDakMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdEIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBbUI7UUFDNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDO2lCQUMzRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN6QixLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBbUI7UUFDNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO2lCQUNoRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN6QixLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUErQjtRQUNsRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7aUJBQzlFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNSLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDZixDQUFDLENBQ0E7aUJBQ0EsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsrR0FuRlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFRlbXBsYXRlRnVlbENvbXBvbmVudCB9IGZyb20gJy4uL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtZnVlbC90ZW1wbGF0ZS1mdWVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBkZk90IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQvdGVtcGxhdGUtcGRmLW90JztcbmltcG9ydCB7IFRlbXBsYXRlUGRmRm8gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC90ZW1wbGF0ZS1wZmQtZm8nO1xuaW1wb3J0IHsgV29ya09yZGVyUGRmU2VydmljZSB9IGZyb20gJy4vd29yay1vcmRlci1wZGYuc2VydmljZSc7XG5pbXBvcnQgeyBGdWVsT3JkZXJQZGZTZXJ2aWNlIH0gZnJvbSAnLi9mdWVsLW9yZGVyLXBkZi5zZXJ2aWNlJztcbmltcG9ydCB7IFRlbXBsYXRlT3RDb21wb25lbnQgfSBmcm9tICcuLi9icmFpbmxvcGVyLXVpL2NvbXBvbmVudHMvcmVwb3J0L3RlbXBsYXRlLW90L3RlbXBsYXRlLW90LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQdXJjaGFzZU9yZGVyUGRmU2VydmljZSB9IGZyb20gJy4vcHVyY2hhc2Utb3JkZXItcGRmLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQvdGVtcGxhdGUtcGRmLXB1cmNoYXNlLW9yZGVyJztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEdlbmVyYXRlUGRmU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHdvcmtPcmRlclBkZlNlcnZpY2U6IFdvcmtPcmRlclBkZlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBGdWVsT3JkZXJQZGZTZXJ2aWNlOiBGdWVsT3JkZXJQZGZTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHVyY2hhc2VPcmRlclBkZlNlcnZpY2UgOiBQdXJjaGFzZU9yZGVyUGRmU2VydmljZVxuICApIHsgfVxuXG4gIGdldFBkZk90KGRhdGE6IFRlbXBsYXRlUGRmT3QsIGF1dG9HZW5lcmF0ZURhdGE/OiBib29sZWFuKSB7XG4gICAgbGV0IGF1dG9HZW5lcmF0ZSA9IGZhbHNlXG4gICAgaWYgKGF1dG9HZW5lcmF0ZURhdGEpIHtcbiAgICAgIGF1dG9HZW5lcmF0ZSA9IGF1dG9HZW5lcmF0ZURhdGFcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIGxldCBzY3JlZW4gPSBcIjg1MHB4XCJcbiAgICAgIC8vIGlmICggd2luZG93LnNjcmVlbi53aWR0aDwxMDAwKSB7XG4gICAgICAvLyAgIHNjcmVlbiA9IFwiMTAwdndcIlxuICAgICAgLy8gfVxuXG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKFRlbXBsYXRlT3RDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgYXV0b0dlbmVyYXRlOiBhdXRvR2VuZXJhdGVcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHNjcmVlblxuICAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSh0cnVlKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgZ2V0UGRmRm8oZGF0YTogVGVtcGxhdGVQZGZGbywgYXV0b0dlbmVyYXRlRGF0YT86IGJvb2xlYW4pIHtcbiAgICBsZXQgYXV0b0dlbmVyYXRlID0gZmFsc2VcbiAgICBpZiAoYXV0b0dlbmVyYXRlRGF0YSkge1xuICAgICAgYXV0b0dlbmVyYXRlID0gYXV0b0dlbmVyYXRlRGF0YVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgbGV0IHNjcmVlbiA9IFwiODUwcHhcIlxuXG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKFRlbXBsYXRlRnVlbENvbXBvbmVudCwge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBhdXRvR2VuZXJhdGU6IGF1dG9HZW5lcmF0ZVxuICAgICAgICB9LFxuICAgICAgICB3aWR0aDogc2NyZWVuXG4gICAgICB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHRydWUpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBnZXRQZGZGb1YyKGRhdGE6IFRlbXBsYXRlUGRmRm8pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0aGlzLkZ1ZWxPcmRlclBkZlNlcnZpY2UuZ2VuZXJhdGVGdWVsT3JkZXJQcm9mZXNpb25hbFBERihkYXRhKVxuICAgICAgICAgIC50aGVuKCgpID0+IHJlc29sdmUodHJ1ZSkpXG4gICAgICAgICAgLmNhdGNoKGVycm9yID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0UGRmT3RWMihkYXRhOiBUZW1wbGF0ZVBkZk90KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgdGhpcy53b3JrT3JkZXJQZGZTZXJ2aWNlLmdlbmVyYXRlV29ya09yZGVyUERGKGRhdGEpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZSh0cnVlKSlcbiAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4gcmVqZWN0KGVycm9yKSk7XG5cbiAgICB9KTtcbiAgfVxuXG4gIGdlbmVyYXRlUHVyY2hhc2VPcmRlclBERihvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMucHVyY2hhc2VPcmRlclBkZlNlcnZpY2UuZ2VuZXJhdGVQdXJjaGFzZU9yZGVyUERGKG9yZGVyLCB7IGRvd25sb2FkOiBmYWxzZSB9KVxuICAgICAgICAgIC50aGVuKChkb2MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9iVXJsID0gZG9jLm91dHB1dCgnYmxvYnVybCcpO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGJsb2JVcmwsICdfYmxhbmsnKTtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSlcbiAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICAgIC5jYXRjaChlcnJvciA9PiByZWplY3QoZXJyb3IpKTtcblxuICAgIH0pO1xuICB9XG5cblxufVxuIl19
@@ -0,0 +1,173 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { jsPDF } from 'jspdf';
3
+ import 'jspdf-autotable';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./functions.service";
6
+ export class PurchaseOrderPdfService {
7
+ constructor(functions) {
8
+ this.functions = functions;
9
+ }
10
+ generatePurchaseOrderPDF(order, options) {
11
+ return new Promise((resolve, reject) => {
12
+ try {
13
+ const opts = {
14
+ format: 'letter',
15
+ download: true,
16
+ filename: `orden_compra_${order.consecutive}.pdf`,
17
+ ...options
18
+ };
19
+ const doc = new jsPDF('p', 'pt', opts.format);
20
+ const pageWidth = doc.internal.pageSize.getWidth();
21
+ const margin = 40;
22
+ let currentY = margin;
23
+ // === ENCABEZADO ===
24
+ currentY = this.addHeader(doc, order, currentY, pageWidth, margin);
25
+ currentY += 18;
26
+ // === DETALLES DE LA ORDEN ===
27
+ currentY = this.addOrderDetails(doc, order, currentY, margin, pageWidth);
28
+ currentY += 20;
29
+ // === ITEMS DE LA ORDEN ===
30
+ currentY = this.addOrderItems(doc, order, currentY, margin, pageWidth);
31
+ currentY += 20;
32
+ // === COMENTARIOS ===
33
+ if (order.comment) {
34
+ currentY = this.addComments(doc, order, currentY, margin, pageWidth);
35
+ currentY += 20;
36
+ }
37
+ // === PIE DE PÁGINA ===
38
+ this.addFooter(doc, pageWidth, doc.internal.pageSize.getHeight());
39
+ if (opts.download) {
40
+ doc.save(opts.filename);
41
+ }
42
+ resolve(doc);
43
+ }
44
+ catch (error) {
45
+ reject(error);
46
+ }
47
+ });
48
+ }
49
+ addHeader(doc, order, y, pageWidth, margin) {
50
+ // Título centrado y número derecha
51
+ doc.setFont('helvetica', 'bold');
52
+ doc.setFontSize(14);
53
+ doc.setTextColor(0, 0, 0);
54
+ doc.text('ORDEN DE COMPRA', pageWidth / 2, y + 8, { align: 'center' });
55
+ doc.setFontSize(10);
56
+ doc.text(`N° ${order.consecutive}`, pageWidth - margin, y + 8, { align: 'right' });
57
+ y += 26;
58
+ // Línea bajo título
59
+ doc.setDrawColor(180);
60
+ doc.setLineWidth(0.5);
61
+ doc.line(margin, y, pageWidth - margin, y);
62
+ y += 8;
63
+ // Logo a la izquierda
64
+ const logoW = 80;
65
+ const logoH = 60;
66
+ if (order.image) {
67
+ doc.addImage(order.image, 'PNG', margin, y, logoW, logoH);
68
+ }
69
+ // Datos empresa a la derecha (alineados a la derecha)
70
+ const rightX = pageWidth - margin;
71
+ let infoY = y + 2;
72
+ doc.setFont('helvetica', 'bold');
73
+ doc.setFontSize(10);
74
+ if (order.name) {
75
+ doc.text(order.name, rightX, infoY, { align: 'right' });
76
+ infoY += 14;
77
+ }
78
+ doc.setFont('helvetica', 'normal');
79
+ doc.setFontSize(8);
80
+ const add = (value) => {
81
+ if (!value)
82
+ return;
83
+ doc.text(value, rightX, infoY, { align: 'right' });
84
+ infoY += 12;
85
+ };
86
+ add(order.nit ? `Nit: ${order.nit}` : '');
87
+ add(order.address);
88
+ add(order.telephone ? `Tel: ${order.telephone}` : '');
89
+ add(order.mail ? `Email: ${order.mail}` : '');
90
+ // Altura total ocupada
91
+ const blockBottom = Math.max(y + logoH, infoY);
92
+ const separatorY = blockBottom + 6;
93
+ // Separador
94
+ doc.setDrawColor(180);
95
+ doc.line(margin, separatorY, pageWidth - margin, separatorY);
96
+ return separatorY + 10;
97
+ }
98
+ addOrderDetails(doc, order, y, margin, pageWidth) {
99
+ doc.setFontSize(10);
100
+ const rows = [
101
+ [
102
+ { content: `Proveedor: ${order.providerName}`, styles: { fontStyle: 'bold' } },
103
+ { content: `Fecha de creación: ${this.functions.transformDate(order.created)}`, styles: { halign: 'right' } }
104
+ ],
105
+ [
106
+ { content: `Almacén: ${order.warehouse}` },
107
+ { content: `Solicita: ${order.requestsName}`, styles: { halign: 'right' } }
108
+ ]
109
+ ];
110
+ if (order.authorizeName && order.authorizeName !== order.requestsName) {
111
+ rows.push([
112
+ { content: '' },
113
+ { content: `Autoriza: ${order.authorizeName}`, styles: { halign: 'right' } }
114
+ ]);
115
+ }
116
+ doc.autoTable({
117
+ startY: y,
118
+ body: rows,
119
+ theme: 'plain',
120
+ styles: { fontSize: 10, cellPadding: 2 }
121
+ });
122
+ return doc.lastAutoTable.finalY;
123
+ }
124
+ addOrderItems(doc, order, y, margin, pageWidth) {
125
+ const head = [['Código', 'Nombre', 'U.M.', 'Cant.', 'Descripción']];
126
+ const body = order.items.map(item => [
127
+ item.code,
128
+ item.itemName,
129
+ item.unitMeasurement,
130
+ item.amount,
131
+ item.description || ''
132
+ ]);
133
+ doc.autoTable({
134
+ startY: y,
135
+ head: head,
136
+ body: body,
137
+ theme: 'grid',
138
+ headStyles: { fillColor: [220, 220, 220], textColor: 0, fontStyle: 'bold' },
139
+ columnStyles: {
140
+ 3: { halign: 'right' },
141
+ 4: { halign: 'right' },
142
+ 5: { halign: 'right' }
143
+ }
144
+ });
145
+ let finalY = doc.lastAutoTable.finalY;
146
+ return finalY;
147
+ }
148
+ addComments(doc, order, y, margin, pageWidth) {
149
+ doc.setFontSize(10);
150
+ doc.setFont('helvetica', 'bold');
151
+ doc.text('Comentarios:', margin, y);
152
+ y += 15;
153
+ doc.setFont('helvetica', 'normal');
154
+ const splitText = doc.splitTextToSize(order.comment, pageWidth - margin * 2);
155
+ doc.text(splitText, margin, y);
156
+ return y + splitText.length * 12;
157
+ }
158
+ addFooter(doc, pageWidth, pageHeight) {
159
+ const footerText = 'Documento generado por Brainloper';
160
+ doc.setFontSize(8);
161
+ const footerWidth = doc.getStringUnitWidth(footerText) * 8 / doc.internal.scaleFactor;
162
+ doc.text(footerText, (pageWidth - footerWidth) / 2, pageHeight - 20);
163
+ }
164
+ }
165
+ PurchaseOrderPdfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PurchaseOrderPdfService, deps: [{ token: i1.FunctionsService }], target: i0.ɵɵFactoryTarget.Injectable });
166
+ PurchaseOrderPdfService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PurchaseOrderPdfService, providedIn: 'root' });
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PurchaseOrderPdfService, decorators: [{
168
+ type: Injectable,
169
+ args: [{
170
+ providedIn: 'root'
171
+ }]
172
+ }], ctorParameters: function () { return [{ type: i1.FunctionsService }]; } });
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyY2hhc2Utb3JkZXItcGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvcHVyY2hhc2Utb3JkZXItcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8saUJBQWlCLENBQUM7OztBQU16QixNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ1UsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFDakMsQ0FBQztJQUVMLHdCQUF3QixDQUFDLEtBQStCLEVBQUUsT0FJekQ7UUFDQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLEdBQUc7b0JBQ1gsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxnQkFBZ0IsS0FBSyxDQUFDLFdBQVcsTUFBTTtvQkFDakQsR0FBRyxPQUFPO2lCQUNYLENBQUM7Z0JBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFFdEIscUJBQXFCO2dCQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUs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Q0FBbUMsQ0FBQztRQUN2RCxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDdEYsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDOztvSEEzTFUsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsganNQREYgfSBmcm9tICdqc3BkZic7XG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgeyBGdW5jdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9mdW5jdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBkZlB1cmNoYXNlT3JkZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC90ZW1wbGF0ZS1wZGYtcHVyY2hhc2Utb3JkZXInO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHVyY2hhc2VPcmRlclBkZlNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZnVuY3Rpb25zOiBGdW5jdGlvbnNTZXJ2aWNlLFxuICApIHsgfVxuXG4gIGdlbmVyYXRlUHVyY2hhc2VPcmRlclBERihvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCBvcHRpb25zPzoge1xuICAgIGZvcm1hdD86ICdsZXR0ZXInIHwgJ2E0JztcbiAgICBkb3dubG9hZD86IGJvb2xlYW47XG4gICAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPGpzUERGPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgZm9ybWF0OiAnbGV0dGVyJyxcbiAgICAgICAgICBkb3dubG9hZDogdHJ1ZSxcbiAgICAgICAgICBmaWxlbmFtZTogYG9yZGVuX2NvbXByYV8ke29yZGVyLmNvbnNlY3V0aXZlfS5wZGZgLFxuICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCBvcHRzLmZvcm1hdCk7XG4gICAgICAgIGNvbnN0IHBhZ2VXaWR0aCA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpO1xuICAgICAgICBjb25zdCBtYXJnaW4gPSA0MDtcbiAgICAgICAgbGV0IGN1cnJlbnRZID0gbWFyZ2luO1xuXG4gICAgICAgIC8vID09PSBFTkNBQkVaQURPID09PVxuICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkSGVhZGVyKGRvYywgb3JkZXIsIGN1cnJlbnRZLCBwYWdlV2lkdGgsIG1hcmdpbik7XG4gICAgICAgIGN1cnJlbnRZICs9IDE4O1xuXG4gICAgICAgIC8vID09PSBERVRBTExFUyBERSBMQSBPUkRFTiA9PT1cbiAgICAgICAgY3VycmVudFkgPSB0aGlzLmFkZE9yZGVyRGV0YWlscyhkb2MsIG9yZGVyLCBjdXJyZW50WSwgbWFyZ2luLCBwYWdlV2lkdGgpO1xuICAgICAgICBjdXJyZW50WSArPSAyMDtcblxuICAgICAgICAvLyA9PT0gSVRFTVMgREUgTEEgT1JERU4gPT09XG4gICAgICAgIGN1cnJlbnRZID0gdGhpcy5hZGRPcmRlckl0ZW1zKGRvYywgb3JkZXIsIGN1cnJlbnRZLCBtYXJnaW4sIHBhZ2VXaWR0aCk7XG4gICAgICAgIGN1cnJlbnRZICs9IDIwO1xuXG4gICAgICAgIC8vID09PSBDT01FTlRBUklPUyA9PT1cbiAgICAgICAgaWYgKG9yZGVyLmNvbW1lbnQpIHtcbiAgICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkQ29tbWVudHMoZG9jLCBvcmRlciwgY3VycmVudFksIG1hcmdpbiwgcGFnZVdpZHRoKTtcbiAgICAgICAgICBjdXJyZW50WSArPSAyMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vID09PSBQSUUgREUgUMOBR0lOQSA9PT1cbiAgICAgICAgdGhpcy5hZGRGb290ZXIoZG9jLCBwYWdlV2lkdGgsIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRIZWlnaHQoKSk7XG5cbiAgICAgICAgaWYgKG9wdHMuZG93bmxvYWQpIHtcbiAgICAgICAgICBkb2Muc2F2ZShvcHRzLmZpbGVuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGRvYyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgICBwcml2YXRlIGFkZEhlYWRlcihkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyLCBtYXJnaW46IG51bWJlcik6IG51bWJlciB7XG4gICAgLy8gVMOtdHVsbyBjZW50cmFkbyB5IG7Dum1lcm8gZGVyZWNoYVxuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxNCk7XG4gICAgZG9jLnNldFRleHRDb2xvcigwLCAwLCAwKTtcbiAgICBkb2MudGV4dCgnT1JERU4gREUgQ09NUFJBJywgcGFnZVdpZHRoIC8gMiwgeSArIDgsIHsgYWxpZ246ICdjZW50ZXInIH0pO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG4gICAgZG9jLnRleHQoYE7CsCAke29yZGVyLmNvbnNlY3V0aXZlfWAsIHBhZ2VXaWR0aCAtIG1hcmdpbiwgeSArIDgsIHsgYWxpZ246ICdyaWdodCcgfSk7XG5cbiAgICB5ICs9IDI2O1xuXG4gICAgLy8gTMOtbmVhIGJham8gdMOtdHVsb1xuICAgIGRvYy5zZXREcmF3Q29sb3IoMTgwKTtcbiAgICBkb2Muc2V0TGluZVdpZHRoKDAuNSk7XG4gICAgZG9jLmxpbmUobWFyZ2luLCB5LCBwYWdlV2lkdGggLSBtYXJnaW4sIHkpO1xuICAgIHkgKz0gODtcblxuICAgIC8vIExvZ28gYSBsYSBpenF1aWVyZGFcbiAgICBjb25zdCBsb2dvVyA9IDgwO1xuICAgIGNvbnN0IGxvZ29IID0gNjA7XG4gICAgaWYgKG9yZGVyLmltYWdlKSB7XG4gICAgICBkb2MuYWRkSW1hZ2Uob3JkZXIuaW1hZ2UsICdQTkcnLCBtYXJnaW4sIHksIGxvZ29XLCBsb2dvSCk7XG4gICAgfVxuXG4gICAgLy8gRGF0b3MgZW1wcmVzYSBhIGxhIGRlcmVjaGEgKGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEpXG4gICAgY29uc3QgcmlnaHRYID0gcGFnZVdpZHRoIC0gbWFyZ2luO1xuICAgIGxldCBpbmZvWSA9IHkgKyAyO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG4gICAgaWYgKG9yZGVyLm5hbWUpIHtcbiAgICAgIGRvYy50ZXh0KG9yZGVyLm5hbWUsIHJpZ2h0WCwgaW5mb1ksIHsgYWxpZ246ICdyaWdodCcgfSk7XG4gICAgICBpbmZvWSArPSAxNDtcbiAgICB9XG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoOCk7XG5cbiAgICBjb25zdCBhZGQgPSAodmFsdWU/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICAgIGRvYy50ZXh0KHZhbHVlLCByaWdodFgsIGluZm9ZLCB7IGFsaWduOiAncmlnaHQnIH0pO1xuICAgICAgaW5mb1kgKz0gMTI7XG4gICAgfTtcblxuICAgIGFkZChvcmRlci5uaXQgPyBgTml0OiAke29yZGVyLm5pdH1gIDogJycpO1xuICAgIGFkZChvcmRlci5hZGRyZXNzKTtcbiAgICBhZGQob3JkZXIudGVsZXBob25lID8gYFRlbDogJHtvcmRlci50ZWxlcGhvbmV9YCA6ICcnKTtcbiAgICBhZGQob3JkZXIubWFpbCA/IGBFbWFpbDogJHtvcmRlci5tYWlsfWAgOiAnJyk7XG5cbiAgICAvLyBBbHR1cmEgdG90YWwgb2N1cGFkYVxuICAgIGNvbnN0IGJsb2NrQm90dG9tID0gTWF0aC5tYXgoeSArIGxvZ29ILCBpbmZvWSk7XG4gICAgY29uc3Qgc2VwYXJhdG9yWSA9IGJsb2NrQm90dG9tICsgNjtcblxuICAgIC8vIFNlcGFyYWRvclxuICAgIGRvYy5zZXREcmF3Q29sb3IoMTgwKTtcbiAgICBkb2MubGluZShtYXJnaW4sIHNlcGFyYXRvclksIHBhZ2VXaWR0aCAtIG1hcmdpbiwgc2VwYXJhdG9yWSk7XG5cbiAgICByZXR1cm4gc2VwYXJhdG9yWSArIDEwO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRPcmRlckRldGFpbHMoZG9jOiBqc1BERiwgb3JkZXI6IFRlbXBsYXRlUGRmUHVyY2hhc2VPcmRlciwgeTogbnVtYmVyLCBtYXJnaW46IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG5cbiAgICBjb25zdCByb3dzOiBhbnlbXSA9IFtcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiBgUHJvdmVlZG9yOiAke29yZGVyLnByb3ZpZGVyTmFtZX1gLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcgfSB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGBGZWNoYSBkZSBjcmVhY2nDs246ICR7dGhpcy5mdW5jdGlvbnMudHJhbnNmb3JtRGF0ZShvcmRlci5jcmVhdGVkKX1gLCBzdHlsZXM6IHsgaGFsaWduOiAncmlnaHQnIH0gfVxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiBgQWxtYWPDqW46ICR7b3JkZXIud2FyZWhvdXNlfWAgfSxcbiAgICAgICAgeyBjb250ZW50OiBgU29saWNpdGE6ICR7b3JkZXIucmVxdWVzdHNOYW1lfWAsIHN0eWxlczogeyBoYWxpZ246ICdyaWdodCcgfSB9XG4gICAgICBdXG4gICAgXTtcblxuICAgIGlmIChvcmRlci5hdXRob3JpemVOYW1lICYmIG9yZGVyLmF1dGhvcml6ZU5hbWUgIT09IG9yZGVyLnJlcXVlc3RzTmFtZSkge1xuICAgICAgcm93cy5wdXNoKFtcbiAgICAgICAgeyBjb250ZW50OiAnJyB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGBBdXRvcml6YTogJHtvcmRlci5hdXRob3JpemVOYW1lfWAsIHN0eWxlczogeyBoYWxpZ246ICdyaWdodCcgfSB9XG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAoZG9jIGFzIGFueSkuYXV0b1RhYmxlKHtcbiAgICAgIHN0YXJ0WTogeSxcbiAgICAgIGJvZHk6IHJvd3MsXG4gICAgICB0aGVtZTogJ3BsYWluJyxcbiAgICAgIHN0eWxlczogeyBmb250U2l6ZTogMTAsIGNlbGxQYWRkaW5nOiAyIH1cbiAgICB9KTtcbiAgICByZXR1cm4gKGRvYyBhcyBhbnkpLmxhc3RBdXRvVGFibGUuZmluYWxZO1xuICB9XG4gIHByaXZhdGUgYWRkT3JkZXJJdGVtcyhkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIG1hcmdpbjogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaGVhZCA9IFtbJ0PDs2RpZ28nLCAnTm9tYnJlJywgJ1UuTS4nLCAnQ2FudC4nLCAnRGVzY3JpcGNpw7NuJ11dO1xuICAgIGNvbnN0IGJvZHkgPSBvcmRlci5pdGVtcy5tYXAoaXRlbSA9PiBbXG4gICAgICBpdGVtLmNvZGUsXG4gICAgICBpdGVtLml0ZW1OYW1lLFxuICAgICAgaXRlbS51bml0TWVhc3VyZW1lbnQsXG4gICAgICBpdGVtLmFtb3VudCxcbiAgICAgIGl0ZW0uZGVzY3JpcHRpb24gfHwgJydcbiAgICBdKTtcblxuICAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xuICAgICAgc3RhcnRZOiB5LFxuICAgICAgaGVhZDogaGVhZCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICB0aGVtZTogJ2dyaWQnLFxuICAgICAgaGVhZFN0eWxlczogeyBmaWxsQ29sb3I6IFsyMjAsIDIyMCwgMjIwXSwgdGV4dENvbG9yOiAwLCBmb250U3R5bGU6ICdib2xkJyB9LFxuICAgICAgY29sdW1uU3R5bGVzOiB7XG4gICAgICAgIDM6IHsgaGFsaWduOiAncmlnaHQnIH0sXG4gICAgICAgIDQ6IHsgaGFsaWduOiAncmlnaHQnIH0sXG4gICAgICAgIDU6IHsgaGFsaWduOiAncmlnaHQnIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBmaW5hbFkgPSAoZG9jIGFzIGFueSkubGFzdEF1dG9UYWJsZS5maW5hbFk7XG5cbiAgICByZXR1cm4gZmluYWxZO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDb21tZW50cyhkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIG1hcmdpbjogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2MudGV4dCgnQ29tZW50YXJpb3M6JywgbWFyZ2luLCB5KTtcbiAgICB5ICs9IDE1O1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XG4gICAgY29uc3Qgc3BsaXRUZXh0ID0gZG9jLnNwbGl0VGV4dFRvU2l6ZShvcmRlci5jb21tZW50LCBwYWdlV2lkdGggLSBtYXJnaW4gKiAyKTtcbiAgICBkb2MudGV4dChzcGxpdFRleHQsIG1hcmdpbiwgeSk7XG4gICAgcmV0dXJuIHkgKyBzcGxpdFRleHQubGVuZ3RoICogMTI7XG4gIH1cblxuICBwcml2YXRlIGFkZEZvb3Rlcihkb2M6IGpzUERGLCBwYWdlV2lkdGg6IG51bWJlciwgcGFnZUhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZm9vdGVyVGV4dCA9ICdEb2N1bWVudG8gZ2VuZXJhZG8gcG9yIEJyYWlubG9wZXInO1xuICAgIGRvYy5zZXRGb250U2l6ZSg4KTtcbiAgICBjb25zdCBmb290ZXJXaWR0aCA9IGRvYy5nZXRTdHJpbmdVbml0V2lkdGgoZm9vdGVyVGV4dCkgKiA4IC8gZG9jLmludGVybmFsLnNjYWxlRmFjdG9yO1xuICAgIGRvYy50ZXh0KGZvb3RlclRleHQsIChwYWdlV2lkdGggLSBmb290ZXJXaWR0aCkgLyAyLCBwYWdlSGVpZ2h0IC0gMjApO1xuICB9XG59XG4iXX0=