brainloper-ui 14.1.15 → 14.1.16

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.
@@ -64,7 +64,12 @@ export class PurchaseOrderPdfService {
64
64
  const logoW = 80;
65
65
  const logoH = 60;
66
66
  if (order.image) {
67
- doc.addImage(order.image, 'PNG', margin, y, logoW, logoH);
67
+ try {
68
+ doc.addImage(order.image, 'PNG', margin, y, logoW, logoH);
69
+ }
70
+ catch {
71
+ // Logo inválido, se omite
72
+ }
68
73
  }
69
74
  // Datos empresa a la derecha (alineados a la derecha)
70
75
  const rightX = pageWidth - margin;
@@ -170,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
170
175
  providedIn: 'root'
171
176
  }]
172
177
  }], ctorParameters: function () { return [{ type: i1.FunctionsService }]; } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyY2hhc2Utb3JkZXItcGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvcHVyY2hhc2Utb3JkZXItcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8saUJBQWlCLENBQUM7OztBQU16QixNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ1UsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFDakMsQ0FBQztJQUVMLHdCQUF3QixDQUFDLEtBQStCLEVBQUUsT0FJekQ7UUFDQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLEdBQUc7b0JBQ1gsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxnQkFBZ0IsS0FBSyxDQUFDLFdBQVcsTUFBTTtvQkFDakQsR0FBRyxPQUFPO2lCQUNYLENBQUM7Z0JBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFFdEIscUJBQXFCO2dCQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUs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Q0FBbUMsQ0FBQztRQUN2RCxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDdEYsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDOztvSEEzTFUsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsganNQREYgfSBmcm9tICdqc3BkZic7XG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgeyBGdW5jdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9mdW5jdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBkZlB1cmNoYXNlT3JkZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC90ZW1wbGF0ZS1wZGYtcHVyY2hhc2Utb3JkZXInO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHVyY2hhc2VPcmRlclBkZlNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZnVuY3Rpb25zOiBGdW5jdGlvbnNTZXJ2aWNlLFxuICApIHsgfVxuXG4gIGdlbmVyYXRlUHVyY2hhc2VPcmRlclBERihvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCBvcHRpb25zPzoge1xuICAgIGZvcm1hdD86ICdsZXR0ZXInIHwgJ2E0JztcbiAgICBkb3dubG9hZD86IGJvb2xlYW47XG4gICAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPGpzUERGPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgZm9ybWF0OiAnbGV0dGVyJyxcbiAgICAgICAgICBkb3dubG9hZDogdHJ1ZSxcbiAgICAgICAgICBmaWxlbmFtZTogYG9yZGVuX2NvbXByYV8ke29yZGVyLmNvbnNlY3V0aXZlfS5wZGZgLFxuICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCBvcHRzLmZvcm1hdCk7XG4gICAgICAgIGNvbnN0IHBhZ2VXaWR0aCA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpO1xuICAgICAgICBjb25zdCBtYXJnaW4gPSA0MDtcbiAgICAgICAgbGV0IGN1cnJlbnRZID0gbWFyZ2luO1xuXG4gICAgICAgIC8vID09PSBFTkNBQkVaQURPID09PVxuICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkSGVhZGVyKGRvYywgb3JkZXIsIGN1cnJlbnRZLCBwYWdlV2lkdGgsIG1hcmdpbik7XG4gICAgICAgIGN1cnJlbnRZICs9IDE4O1xuXG4gICAgICAgIC8vID09PSBERVRBTExFUyBERSBMQSBPUkRFTiA9PT1cbiAgICAgICAgY3VycmVudFkgPSB0aGlzLmFkZE9yZGVyRGV0YWlscyhkb2MsIG9yZGVyLCBjdXJyZW50WSwgbWFyZ2luLCBwYWdlV2lkdGgpO1xuICAgICAgICBjdXJyZW50WSArPSAyMDtcblxuICAgICAgICAvLyA9PT0gSVRFTVMgREUgTEEgT1JERU4gPT09XG4gICAgICAgIGN1cnJlbnRZID0gdGhpcy5hZGRPcmRlckl0ZW1zKGRvYywgb3JkZXIsIGN1cnJlbnRZLCBtYXJnaW4sIHBhZ2VXaWR0aCk7XG4gICAgICAgIGN1cnJlbnRZICs9IDIwO1xuXG4gICAgICAgIC8vID09PSBDT01FTlRBUklPUyA9PT1cbiAgICAgICAgaWYgKG9yZGVyLmNvbW1lbnQpIHtcbiAgICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkQ29tbWVudHMoZG9jLCBvcmRlciwgY3VycmVudFksIG1hcmdpbiwgcGFnZVdpZHRoKTtcbiAgICAgICAgICBjdXJyZW50WSArPSAyMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vID09PSBQSUUgREUgUMOBR0lOQSA9PT1cbiAgICAgICAgdGhpcy5hZGRGb290ZXIoZG9jLCBwYWdlV2lkdGgsIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRIZWlnaHQoKSk7XG5cbiAgICAgICAgaWYgKG9wdHMuZG93bmxvYWQpIHtcbiAgICAgICAgICBkb2Muc2F2ZShvcHRzLmZpbGVuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGRvYyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgICBwcml2YXRlIGFkZEhlYWRlcihkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyLCBtYXJnaW46IG51bWJlcik6IG51bWJlciB7XG4gICAgLy8gVMOtdHVsbyBjZW50cmFkbyB5IG7Dum1lcm8gZGVyZWNoYVxuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxNCk7XG4gICAgZG9jLnNldFRleHRDb2xvcigwLCAwLCAwKTtcbiAgICBkb2MudGV4dCgnT1JERU4gREUgQ09NUFJBJywgcGFnZVdpZHRoIC8gMiwgeSArIDgsIHsgYWxpZ246ICdjZW50ZXInIH0pO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG4gICAgZG9jLnRleHQoYE7CsCAke29yZGVyLmNvbnNlY3V0aXZlfWAsIHBhZ2VXaWR0aCAtIG1hcmdpbiwgeSArIDgsIHsgYWxpZ246ICdyaWdodCcgfSk7XG5cbiAgICB5ICs9IDI2O1xuXG4gICAgLy8gTMOtbmVhIGJham8gdMOtdHVsb1xuICAgIGRvYy5zZXREcmF3Q29sb3IoMTgwKTtcbiAgICBkb2Muc2V0TGluZVdpZHRoKDAuNSk7XG4gICAgZG9jLmxpbmUobWFyZ2luLCB5LCBwYWdlV2lkdGggLSBtYXJnaW4sIHkpO1xuICAgIHkgKz0gODtcblxuICAgIC8vIExvZ28gYSBsYSBpenF1aWVyZGFcbiAgICBjb25zdCBsb2dvVyA9IDgwO1xuICAgIGNvbnN0IGxvZ29IID0gNjA7XG4gICAgaWYgKG9yZGVyLmltYWdlKSB7XG4gICAgICBkb2MuYWRkSW1hZ2Uob3JkZXIuaW1hZ2UsICdQTkcnLCBtYXJnaW4sIHksIGxvZ29XLCBsb2dvSCk7XG4gICAgfVxuXG4gICAgLy8gRGF0b3MgZW1wcmVzYSBhIGxhIGRlcmVjaGEgKGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEpXG4gICAgY29uc3QgcmlnaHRYID0gcGFnZVdpZHRoIC0gbWFyZ2luO1xuICAgIGxldCBpbmZvWSA9IHkgKyAyO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG4gICAgaWYgKG9yZGVyLm5hbWUpIHtcbiAgICAgIGRvYy50ZXh0KG9yZGVyLm5hbWUsIHJpZ2h0WCwgaW5mb1ksIHsgYWxpZ246ICdyaWdodCcgfSk7XG4gICAgICBpbmZvWSArPSAxNDtcbiAgICB9XG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoOCk7XG5cbiAgICBjb25zdCBhZGQgPSAodmFsdWU/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICAgIGRvYy50ZXh0KHZhbHVlLCByaWdodFgsIGluZm9ZLCB7IGFsaWduOiAncmlnaHQnIH0pO1xuICAgICAgaW5mb1kgKz0gMTI7XG4gICAgfTtcblxuICAgIGFkZChvcmRlci5uaXQgPyBgTml0OiAke29yZGVyLm5pdH1gIDogJycpO1xuICAgIGFkZChvcmRlci5hZGRyZXNzKTtcbiAgICBhZGQob3JkZXIudGVsZXBob25lID8gYFRlbDogJHtvcmRlci50ZWxlcGhvbmV9YCA6ICcnKTtcbiAgICBhZGQob3JkZXIubWFpbCA/IGBFbWFpbDogJHtvcmRlci5tYWlsfWAgOiAnJyk7XG5cbiAgICAvLyBBbHR1cmEgdG90YWwgb2N1cGFkYVxuICAgIGNvbnN0IGJsb2NrQm90dG9tID0gTWF0aC5tYXgoeSArIGxvZ29ILCBpbmZvWSk7XG4gICAgY29uc3Qgc2VwYXJhdG9yWSA9IGJsb2NrQm90dG9tICsgNjtcblxuICAgIC8vIFNlcGFyYWRvclxuICAgIGRvYy5zZXREcmF3Q29sb3IoMTgwKTtcbiAgICBkb2MubGluZShtYXJnaW4sIHNlcGFyYXRvclksIHBhZ2VXaWR0aCAtIG1hcmdpbiwgc2VwYXJhdG9yWSk7XG5cbiAgICByZXR1cm4gc2VwYXJhdG9yWSArIDEwO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRPcmRlckRldGFpbHMoZG9jOiBqc1BERiwgb3JkZXI6IFRlbXBsYXRlUGRmUHVyY2hhc2VPcmRlciwgeTogbnVtYmVyLCBtYXJnaW46IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG5cbiAgICBjb25zdCByb3dzOiBhbnlbXSA9IFtcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiBgUHJvdmVlZG9yOiAke29yZGVyLnByb3ZpZGVyTmFtZX1gLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcgfSB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGBGZWNoYSBkZSBjcmVhY2nDs246ICR7dGhpcy5mdW5jdGlvbnMudHJhbnNmb3JtRGF0ZShvcmRlci5jcmVhdGVkKX1gLCBzdHlsZXM6IHsgaGFsaWduOiAncmlnaHQnIH0gfVxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiBgQWxtYWPDqW46ICR7b3JkZXIud2FyZWhvdXNlfWAgfSxcbiAgICAgICAgeyBjb250ZW50OiBgU29saWNpdGE6ICR7b3JkZXIucmVxdWVzdHNOYW1lfWAsIHN0eWxlczogeyBoYWxpZ246ICdyaWdodCcgfSB9XG4gICAgICBdXG4gICAgXTtcblxuICAgIGlmIChvcmRlci5hdXRob3JpemVOYW1lICYmIG9yZGVyLmF1dGhvcml6ZU5hbWUgIT09IG9yZGVyLnJlcXVlc3RzTmFtZSkge1xuICAgICAgcm93cy5wdXNoKFtcbiAgICAgICAgeyBjb250ZW50OiAnJyB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGBBdXRvcml6YTogJHtvcmRlci5hdXRob3JpemVOYW1lfWAsIHN0eWxlczogeyBoYWxpZ246ICdyaWdodCcgfSB9XG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAoZG9jIGFzIGFueSkuYXV0b1RhYmxlKHtcbiAgICAgIHN0YXJ0WTogeSxcbiAgICAgIGJvZHk6IHJvd3MsXG4gICAgICB0aGVtZTogJ3BsYWluJyxcbiAgICAgIHN0eWxlczogeyBmb250U2l6ZTogMTAsIGNlbGxQYWRkaW5nOiAyIH1cbiAgICB9KTtcbiAgICByZXR1cm4gKGRvYyBhcyBhbnkpLmxhc3RBdXRvVGFibGUuZmluYWxZO1xuICB9XG4gIHByaXZhdGUgYWRkT3JkZXJJdGVtcyhkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIG1hcmdpbjogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaGVhZCA9IFtbJ0PDs2RpZ28nLCAnTm9tYnJlJywgJ1UuTS4nLCAnQ2FudC4nLCAnRGVzY3JpcGNpw7NuJ11dO1xuICAgIGNvbnN0IGJvZHkgPSBvcmRlci5pdGVtcy5tYXAoaXRlbSA9PiBbXG4gICAgICBpdGVtLmNvZGUsXG4gICAgICBpdGVtLml0ZW1OYW1lLFxuICAgICAgaXRlbS51bml0TWVhc3VyZW1lbnQsXG4gICAgICBpdGVtLmFtb3VudCxcbiAgICAgIGl0ZW0uZGVzY3JpcHRpb24gfHwgJydcbiAgICBdKTtcblxuICAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xuICAgICAgc3RhcnRZOiB5LFxuICAgICAgaGVhZDogaGVhZCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICB0aGVtZTogJ2dyaWQnLFxuICAgICAgaGVhZFN0eWxlczogeyBmaWxsQ29sb3I6IFsyMjAsIDIyMCwgMjIwXSwgdGV4dENvbG9yOiAwLCBmb250U3R5bGU6ICdib2xkJyB9LFxuICAgICAgY29sdW1uU3R5bGVzOiB7XG4gICAgICAgIDM6IHsgaGFsaWduOiAncmlnaHQnIH0sXG4gICAgICAgIDQ6IHsgaGFsaWduOiAncmlnaHQnIH0sXG4gICAgICAgIDU6IHsgaGFsaWduOiAncmlnaHQnIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBmaW5hbFkgPSAoZG9jIGFzIGFueSkubGFzdEF1dG9UYWJsZS5maW5hbFk7XG5cbiAgICByZXR1cm4gZmluYWxZO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDb21tZW50cyhkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIG1hcmdpbjogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2MudGV4dCgnQ29tZW50YXJpb3M6JywgbWFyZ2luLCB5KTtcbiAgICB5ICs9IDE1O1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XG4gICAgY29uc3Qgc3BsaXRUZXh0ID0gZG9jLnNwbGl0VGV4dFRvU2l6ZShvcmRlci5jb21tZW50LCBwYWdlV2lkdGggLSBtYXJnaW4gKiAyKTtcbiAgICBkb2MudGV4dChzcGxpdFRleHQsIG1hcmdpbiwgeSk7XG4gICAgcmV0dXJuIHkgKyBzcGxpdFRleHQubGVuZ3RoICogMTI7XG4gIH1cblxuICBwcml2YXRlIGFkZEZvb3Rlcihkb2M6IGpzUERGLCBwYWdlV2lkdGg6IG51bWJlciwgcGFnZUhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZm9vdGVyVGV4dCA9ICdEb2N1bWVudG8gZ2VuZXJhZG8gcG9yIEJyYWlubG9wZXInO1xuICAgIGRvYy5zZXRGb250U2l6ZSg4KTtcbiAgICBjb25zdCBmb290ZXJXaWR0aCA9IGRvYy5nZXRTdHJpbmdVbml0V2lkdGgoZm9vdGVyVGV4dCkgKiA4IC8gZG9jLmludGVybmFsLnNjYWxlRmFjdG9yO1xuICAgIGRvYy50ZXh0KGZvb3RlclRleHQsIChwYWdlV2lkdGggLSBmb290ZXJXaWR0aCkgLyAyLCBwYWdlSGVpZ2h0IC0gMjApO1xuICB9XG59XG4iXX0=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyY2hhc2Utb3JkZXItcGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvcHVyY2hhc2Utb3JkZXItcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8saUJBQWlCLENBQUM7OztBQU16QixNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ1UsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFDakMsQ0FBQztJQUVMLHdCQUF3QixDQUFDLEtBQStCLEVBQUUsT0FJekQ7UUFDQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLEdBQUc7b0JBQ1gsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxnQkFBZ0IsS0FBSyxDQUFDLFdBQVcsTUFBTTtvQkFDakQsR0FBRyxPQUFPO2lCQUNYLENBQUM7Z0JBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFFdEIscUJBQXFCO2dCQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUs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LEVBQUUsU0FBaUIsRUFBRSxVQUFrQjtRQUNqRSxNQUFNLFVBQVUsR0FBRyxtQ0FBbUMsQ0FBQztRQUN2RCxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDdEYsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDOztvSEEvTFUsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsganNQREYgfSBmcm9tICdqc3BkZic7XG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgeyBGdW5jdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9mdW5jdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBkZlB1cmNoYXNlT3JkZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC90ZW1wbGF0ZS1wZGYtcHVyY2hhc2Utb3JkZXInO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHVyY2hhc2VPcmRlclBkZlNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZnVuY3Rpb25zOiBGdW5jdGlvbnNTZXJ2aWNlLFxuICApIHsgfVxuXG4gIGdlbmVyYXRlUHVyY2hhc2VPcmRlclBERihvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCBvcHRpb25zPzoge1xuICAgIGZvcm1hdD86ICdsZXR0ZXInIHwgJ2E0JztcbiAgICBkb3dubG9hZD86IGJvb2xlYW47XG4gICAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPGpzUERGPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgZm9ybWF0OiAnbGV0dGVyJyxcbiAgICAgICAgICBkb3dubG9hZDogdHJ1ZSxcbiAgICAgICAgICBmaWxlbmFtZTogYG9yZGVuX2NvbXByYV8ke29yZGVyLmNvbnNlY3V0aXZlfS5wZGZgLFxuICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCBvcHRzLmZvcm1hdCk7XG4gICAgICAgIGNvbnN0IHBhZ2VXaWR0aCA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpO1xuICAgICAgICBjb25zdCBtYXJnaW4gPSA0MDtcbiAgICAgICAgbGV0IGN1cnJlbnRZID0gbWFyZ2luO1xuXG4gICAgICAgIC8vID09PSBFTkNBQkVaQURPID09PVxuICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkSGVhZGVyKGRvYywgb3JkZXIsIGN1cnJlbnRZLCBwYWdlV2lkdGgsIG1hcmdpbik7XG4gICAgICAgIGN1cnJlbnRZICs9IDE4O1xuXG4gICAgICAgIC8vID09PSBERVRBTExFUyBERSBMQSBPUkRFTiA9PT1cbiAgICAgICAgY3VycmVudFkgPSB0aGlzLmFkZE9yZGVyRGV0YWlscyhkb2MsIG9yZGVyLCBjdXJyZW50WSwgbWFyZ2luLCBwYWdlV2lkdGgpO1xuICAgICAgICBjdXJyZW50WSArPSAyMDtcblxuICAgICAgICAvLyA9PT0gSVRFTVMgREUgTEEgT1JERU4gPT09XG4gICAgICAgIGN1cnJlbnRZID0gdGhpcy5hZGRPcmRlckl0ZW1zKGRvYywgb3JkZXIsIGN1cnJlbnRZLCBtYXJnaW4sIHBhZ2VXaWR0aCk7XG4gICAgICAgIGN1cnJlbnRZICs9IDIwO1xuXG4gICAgICAgIC8vID09PSBDT01FTlRBUklPUyA9PT1cbiAgICAgICAgaWYgKG9yZGVyLmNvbW1lbnQpIHtcbiAgICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkQ29tbWVudHMoZG9jLCBvcmRlciwgY3VycmVudFksIG1hcmdpbiwgcGFnZVdpZHRoKTtcbiAgICAgICAgICBjdXJyZW50WSArPSAyMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vID09PSBQSUUgREUgUMOBR0lOQSA9PT1cbiAgICAgICAgdGhpcy5hZGRGb290ZXIoZG9jLCBwYWdlV2lkdGgsIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRIZWlnaHQoKSk7XG5cbiAgICAgICAgaWYgKG9wdHMuZG93bmxvYWQpIHtcbiAgICAgICAgICBkb2Muc2F2ZShvcHRzLmZpbGVuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGRvYyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgICBwcml2YXRlIGFkZEhlYWRlcihkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyLCBtYXJnaW46IG51bWJlcik6IG51bWJlciB7XG4gICAgLy8gVMOtdHVsbyBjZW50cmFkbyB5IG7Dum1lcm8gZGVyZWNoYVxuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxNCk7XG4gICAgZG9jLnNldFRleHRDb2xvcigwLCAwLCAwKTtcbiAgICBkb2MudGV4dCgnT1JERU4gREUgQ09NUFJBJywgcGFnZVdpZHRoIC8gMiwgeSArIDgsIHsgYWxpZ246ICdjZW50ZXInIH0pO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG4gICAgZG9jLnRleHQoYE7CsCAke29yZGVyLmNvbnNlY3V0aXZlfWAsIHBhZ2VXaWR0aCAtIG1hcmdpbiwgeSArIDgsIHsgYWxpZ246ICdyaWdodCcgfSk7XG5cbiAgICB5ICs9IDI2O1xuXG4gICAgLy8gTMOtbmVhIGJham8gdMOtdHVsb1xuICAgIGRvYy5zZXREcmF3Q29sb3IoMTgwKTtcbiAgICBkb2Muc2V0TGluZVdpZHRoKDAuNSk7XG4gICAgZG9jLmxpbmUobWFyZ2luLCB5LCBwYWdlV2lkdGggLSBtYXJnaW4sIHkpO1xuICAgIHkgKz0gODtcblxuICAgIC8vIExvZ28gYSBsYSBpenF1aWVyZGFcbiAgICBjb25zdCBsb2dvVyA9IDgwO1xuICAgIGNvbnN0IGxvZ29IID0gNjA7XG4gICAgaWYgKG9yZGVyLmltYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBkb2MuYWRkSW1hZ2Uob3JkZXIuaW1hZ2UsICdQTkcnLCBtYXJnaW4sIHksIGxvZ29XLCBsb2dvSCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gTG9nbyBpbnbDoWxpZG8sIHNlIG9taXRlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGF0b3MgZW1wcmVzYSBhIGxhIGRlcmVjaGEgKGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEpXG4gICAgY29uc3QgcmlnaHRYID0gcGFnZVdpZHRoIC0gbWFyZ2luO1xuICAgIGxldCBpbmZvWSA9IHkgKyAyO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG4gICAgaWYgKG9yZGVyLm5hbWUpIHtcbiAgICAgIGRvYy50ZXh0KG9yZGVyLm5hbWUsIHJpZ2h0WCwgaW5mb1ksIHsgYWxpZ246ICdyaWdodCcgfSk7XG4gICAgICBpbmZvWSArPSAxNDtcbiAgICB9XG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoOCk7XG5cbiAgICBjb25zdCBhZGQgPSAodmFsdWU/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICAgIGRvYy50ZXh0KHZhbHVlLCByaWdodFgsIGluZm9ZLCB7IGFsaWduOiAncmlnaHQnIH0pO1xuICAgICAgaW5mb1kgKz0gMTI7XG4gICAgfTtcblxuICAgIGFkZChvcmRlci5uaXQgPyBgTml0OiAke29yZGVyLm5pdH1gIDogJycpO1xuICAgIGFkZChvcmRlci5hZGRyZXNzKTtcbiAgICBhZGQob3JkZXIudGVsZXBob25lID8gYFRlbDogJHtvcmRlci50ZWxlcGhvbmV9YCA6ICcnKTtcbiAgICBhZGQob3JkZXIubWFpbCA/IGBFbWFpbDogJHtvcmRlci5tYWlsfWAgOiAnJyk7XG5cbiAgICAvLyBBbHR1cmEgdG90YWwgb2N1cGFkYVxuICAgIGNvbnN0IGJsb2NrQm90dG9tID0gTWF0aC5tYXgoeSArIGxvZ29ILCBpbmZvWSk7XG4gICAgY29uc3Qgc2VwYXJhdG9yWSA9IGJsb2NrQm90dG9tICsgNjtcblxuICAgIC8vIFNlcGFyYWRvclxuICAgIGRvYy5zZXREcmF3Q29sb3IoMTgwKTtcbiAgICBkb2MubGluZShtYXJnaW4sIHNlcGFyYXRvclksIHBhZ2VXaWR0aCAtIG1hcmdpbiwgc2VwYXJhdG9yWSk7XG5cbiAgICByZXR1cm4gc2VwYXJhdG9yWSArIDEwO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRPcmRlckRldGFpbHMoZG9jOiBqc1BERiwgb3JkZXI6IFRlbXBsYXRlUGRmUHVyY2hhc2VPcmRlciwgeTogbnVtYmVyLCBtYXJnaW46IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG5cbiAgICBjb25zdCByb3dzOiBhbnlbXSA9IFtcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiBgUHJvdmVlZG9yOiAke29yZGVyLnByb3ZpZGVyTmFtZX1gLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcgfSB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGBGZWNoYSBkZSBjcmVhY2nDs246ICR7dGhpcy5mdW5jdGlvbnMudHJhbnNmb3JtRGF0ZShvcmRlci5jcmVhdGVkKX1gLCBzdHlsZXM6IHsgaGFsaWduOiAncmlnaHQnIH0gfVxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiBgQWxtYWPDqW46ICR7b3JkZXIud2FyZWhvdXNlfWAgfSxcbiAgICAgICAgeyBjb250ZW50OiBgU29saWNpdGE6ICR7b3JkZXIucmVxdWVzdHNOYW1lfWAsIHN0eWxlczogeyBoYWxpZ246ICdyaWdodCcgfSB9XG4gICAgICBdXG4gICAgXTtcblxuICAgIGlmIChvcmRlci5hdXRob3JpemVOYW1lICYmIG9yZGVyLmF1dGhvcml6ZU5hbWUgIT09IG9yZGVyLnJlcXVlc3RzTmFtZSkge1xuICAgICAgcm93cy5wdXNoKFtcbiAgICAgICAgeyBjb250ZW50OiAnJyB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGBBdXRvcml6YTogJHtvcmRlci5hdXRob3JpemVOYW1lfWAsIHN0eWxlczogeyBoYWxpZ246ICdyaWdodCcgfSB9XG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAoZG9jIGFzIGFueSkuYXV0b1RhYmxlKHtcbiAgICAgIHN0YXJ0WTogeSxcbiAgICAgIGJvZHk6IHJvd3MsXG4gICAgICB0aGVtZTogJ3BsYWluJyxcbiAgICAgIHN0eWxlczogeyBmb250U2l6ZTogMTAsIGNlbGxQYWRkaW5nOiAyIH1cbiAgICB9KTtcbiAgICByZXR1cm4gKGRvYyBhcyBhbnkpLmxhc3RBdXRvVGFibGUuZmluYWxZO1xuICB9XG4gIHByaXZhdGUgYWRkT3JkZXJJdGVtcyhkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIG1hcmdpbjogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaGVhZCA9IFtbJ0PDs2RpZ28nLCAnTm9tYnJlJywgJ1UuTS4nLCAnQ2FudC4nLCAnRGVzY3JpcGNpw7NuJ11dO1xuICAgIGNvbnN0IGJvZHkgPSBvcmRlci5pdGVtcy5tYXAoaXRlbSA9PiBbXG4gICAgICBpdGVtLmNvZGUsXG4gICAgICBpdGVtLml0ZW1OYW1lLFxuICAgICAgaXRlbS51bml0TWVhc3VyZW1lbnQsXG4gICAgICBpdGVtLmFtb3VudCxcbiAgICAgIGl0ZW0uZGVzY3JpcHRpb24gfHwgJydcbiAgICBdKTtcblxuICAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xuICAgICAgc3RhcnRZOiB5LFxuICAgICAgaGVhZDogaGVhZCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICB0aGVtZTogJ2dyaWQnLFxuICAgICAgaGVhZFN0eWxlczogeyBmaWxsQ29sb3I6IFsyMjAsIDIyMCwgMjIwXSwgdGV4dENvbG9yOiAwLCBmb250U3R5bGU6ICdib2xkJyB9LFxuICAgICAgY29sdW1uU3R5bGVzOiB7XG4gICAgICAgIDM6IHsgaGFsaWduOiAncmlnaHQnIH0sXG4gICAgICAgIDQ6IHsgaGFsaWduOiAncmlnaHQnIH0sXG4gICAgICAgIDU6IHsgaGFsaWduOiAncmlnaHQnIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBmaW5hbFkgPSAoZG9jIGFzIGFueSkubGFzdEF1dG9UYWJsZS5maW5hbFk7XG5cbiAgICByZXR1cm4gZmluYWxZO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDb21tZW50cyhkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIG1hcmdpbjogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2MudGV4dCgnQ29tZW50YXJpb3M6JywgbWFyZ2luLCB5KTtcbiAgICB5ICs9IDE1O1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XG4gICAgY29uc3Qgc3BsaXRUZXh0ID0gZG9jLnNwbGl0VGV4dFRvU2l6ZShvcmRlci5jb21tZW50LCBwYWdlV2lkdGggLSBtYXJnaW4gKiAyKTtcbiAgICBkb2MudGV4dChzcGxpdFRleHQsIG1hcmdpbiwgeSk7XG4gICAgcmV0dXJuIHkgKyBzcGxpdFRleHQubGVuZ3RoICogMTI7XG4gIH1cblxuICBwcml2YXRlIGFkZEZvb3Rlcihkb2M6IGpzUERGLCBwYWdlV2lkdGg6IG51bWJlciwgcGFnZUhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZm9vdGVyVGV4dCA9ICdEb2N1bWVudG8gZ2VuZXJhZG8gcG9yIEJyYWlubG9wZXInO1xuICAgIGRvYy5zZXRGb250U2l6ZSg4KTtcbiAgICBjb25zdCBmb290ZXJXaWR0aCA9IGRvYy5nZXRTdHJpbmdVbml0V2lkdGgoZm9vdGVyVGV4dCkgKiA4IC8gZG9jLmludGVybmFsLnNjYWxlRmFjdG9yO1xuICAgIGRvYy50ZXh0KGZvb3RlclRleHQsIChwYWdlV2lkdGggLSBmb290ZXJXaWR0aCkgLyAyLCBwYWdlSGVpZ2h0IC0gMjApO1xuICB9XG59XG4iXX0=
@@ -3576,7 +3576,12 @@ class PurchaseOrderPdfService {
3576
3576
  const logoW = 80;
3577
3577
  const logoH = 60;
3578
3578
  if (order.image) {
3579
- doc.addImage(order.image, 'PNG', margin, y, logoW, logoH);
3579
+ try {
3580
+ doc.addImage(order.image, 'PNG', margin, y, logoW, logoH);
3581
+ }
3582
+ catch (_a) {
3583
+ // Logo inválido, se omite
3584
+ }
3580
3585
  }
3581
3586
  // Datos empresa a la derecha (alineados a la derecha)
3582
3587
  const rightX = pageWidth - margin;