brainloper-ui 15.0.0 → 16.0.0

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 (88) hide show
  1. package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +151 -151
  2. package/esm2022/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +30 -0
  3. package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +23 -0
  4. package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +83 -0
  5. package/esm2022/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +42 -0
  6. package/esm2022/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +183 -0
  7. package/esm2022/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +746 -0
  8. package/esm2022/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +122 -0
  9. package/esm2022/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +205 -0
  10. package/esm2022/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +227 -0
  11. package/esm2022/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +89 -0
  12. package/esm2022/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +86 -0
  13. package/esm2022/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +117 -0
  14. package/esm2022/src/app/modules/directives/carousel-item.directive.mjs +20 -0
  15. package/esm2022/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +6 -0
  16. package/esm2022/src/app/modules/services/crypto.service.mjs +38 -0
  17. package/esm2022/src/app/modules/services/export-data.service.mjs +169 -0
  18. package/{esm2020 → esm2022}/src/app/modules/services/file-forms.service.mjs +4 -4
  19. package/{esm2020 → esm2022}/src/app/modules/services/fuel-order-pdf.service.mjs +4 -4
  20. package/{esm2020 → esm2022}/src/app/modules/services/functions.service.mjs +4 -4
  21. package/esm2022/src/app/modules/services/generate-pdf.service.mjs +93 -0
  22. package/esm2022/src/app/modules/services/http.service.mjs +142 -0
  23. package/esm2022/src/app/modules/services/loading/loading.component.mjs +30 -0
  24. package/{esm2020 → esm2022}/src/app/modules/services/local-storage.service.mjs +6 -6
  25. package/esm2022/src/app/modules/services/message.service.mjs +202 -0
  26. package/esm2022/src/app/modules/services/purchase-order-pdf.service.mjs +179 -0
  27. package/esm2022/src/app/modules/services/session.service.mjs +43 -0
  28. package/{esm2020 → esm2022}/src/app/modules/services/work-order-pdf.service.mjs +4 -4
  29. package/{fesm2020 → fesm2022}/brainloper-ui.mjs +501 -409
  30. package/{fesm2015 → fesm2022}/brainloper-ui.mjs.map +1 -1
  31. package/package.json +17 -23
  32. package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +1 -1
  33. package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +1 -1
  34. package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +1 -1
  35. package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +1 -1
  36. package/src/app/modules/brainloper-ui/components/combos/combos.component.d.ts +1 -1
  37. package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +1 -1
  38. package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +2 -1
  39. package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +1 -1
  40. package/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.d.ts +1 -1
  41. package/src/app/modules/directives/carousel-item.directive.d.ts +1 -1
  42. package/esm2020/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +0 -29
  43. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +0 -23
  44. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +0 -83
  45. package/esm2020/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +0 -40
  46. package/esm2020/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +0 -176
  47. package/esm2020/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +0 -728
  48. package/esm2020/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +0 -118
  49. package/esm2020/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +0 -184
  50. package/esm2020/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +0 -222
  51. package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +0 -84
  52. package/esm2020/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +0 -81
  53. package/esm2020/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +0 -108
  54. package/esm2020/src/app/modules/directives/carousel-item.directive.mjs +0 -18
  55. package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +0 -8
  56. package/esm2020/src/app/modules/services/crypto.service.mjs +0 -37
  57. package/esm2020/src/app/modules/services/export-data.service.mjs +0 -166
  58. package/esm2020/src/app/modules/services/generate-pdf.service.mjs +0 -89
  59. package/esm2020/src/app/modules/services/http.service.mjs +0 -140
  60. package/esm2020/src/app/modules/services/loading/loading.component.mjs +0 -28
  61. package/esm2020/src/app/modules/services/message.service.mjs +0 -200
  62. package/esm2020/src/app/modules/services/purchase-order-pdf.service.mjs +0 -178
  63. package/esm2020/src/app/modules/services/session.service.mjs +0 -42
  64. package/fesm2015/brainloper-ui.mjs +0 -3912
  65. package/fesm2020/brainloper-ui.mjs.map +0 -1
  66. /package/{esm2020 → esm2022}/brainloper-ui.mjs +0 -0
  67. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  68. /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +0 -0
  69. /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +0 -0
  70. /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +0 -0
  71. /package/{esm2020 → esm2022}/src/app/modules/interfaces/buttons/button-icon.mjs +0 -0
  72. /package/{esm2020 → esm2022}/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +0 -0
  73. /package/{esm2020 → esm2022}/src/app/modules/interfaces/combos/combos-configuration.mjs +0 -0
  74. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/params.mjs +0 -0
  75. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/rules.mjs +0 -0
  76. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/table-columns.mjs +0 -0
  77. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/table-configuration.mjs +0 -0
  78. /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/enumActions.mjs +0 -0
  79. /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/enumRules.mjs +0 -0
  80. /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/httpResponseType.mjs +0 -0
  81. /package/{esm2020 → esm2022}/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +0 -0
  82. /package/{esm2020 → esm2022}/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +0 -0
  83. /package/{esm2020 → esm2022}/src/app/modules/interfaces/filters/header-filters.mjs +0 -0
  84. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-base.mjs +0 -0
  85. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-ot.mjs +0 -0
  86. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-purchase-order.mjs +0 -0
  87. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pfd-fo.mjs +0 -0
  88. /package/{esm2020 → esm2022}/src/app/modules/services/screen-size-util.mjs +0 -0
@@ -1,178 +0,0 @@
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
- try {
68
- doc.addImage(order.image, 'PNG', margin, y, logoW, logoH);
69
- }
70
- catch {
71
- // Logo inválido, se omite
72
- }
73
- }
74
- // Datos empresa a la derecha (alineados a la derecha)
75
- const rightX = pageWidth - margin;
76
- let infoY = y + 2;
77
- doc.setFont('helvetica', 'bold');
78
- doc.setFontSize(10);
79
- if (order.name) {
80
- doc.text(order.name, rightX, infoY, { align: 'right' });
81
- infoY += 14;
82
- }
83
- doc.setFont('helvetica', 'normal');
84
- doc.setFontSize(8);
85
- const add = (value) => {
86
- if (!value)
87
- return;
88
- doc.text(value, rightX, infoY, { align: 'right' });
89
- infoY += 12;
90
- };
91
- add(order.nit ? `Nit: ${order.nit}` : '');
92
- add(order.address);
93
- add(order.telephone ? `Tel: ${order.telephone}` : '');
94
- add(order.mail ? `Email: ${order.mail}` : '');
95
- // Altura total ocupada
96
- const blockBottom = Math.max(y + logoH, infoY);
97
- const separatorY = blockBottom + 6;
98
- // Separador
99
- doc.setDrawColor(180);
100
- doc.line(margin, separatorY, pageWidth - margin, separatorY);
101
- return separatorY + 10;
102
- }
103
- addOrderDetails(doc, order, y, margin, pageWidth) {
104
- doc.setFontSize(10);
105
- const rows = [
106
- [
107
- { content: `Proveedor: ${order.providerName}`, styles: { fontStyle: 'bold' } },
108
- { content: `Fecha de creación: ${this.functions.transformDate(order.created)}`, styles: { halign: 'right' } }
109
- ],
110
- [
111
- { content: `Almacén: ${order.warehouse}` },
112
- { content: `Solicita: ${order.requestsName}`, styles: { halign: 'right' } }
113
- ]
114
- ];
115
- if (order.authorizeName && order.authorizeName !== order.requestsName) {
116
- rows.push([
117
- { content: '' },
118
- { content: `Autoriza: ${order.authorizeName}`, styles: { halign: 'right' } }
119
- ]);
120
- }
121
- doc.autoTable({
122
- startY: y,
123
- body: rows,
124
- theme: 'plain',
125
- styles: { fontSize: 10, cellPadding: 2 }
126
- });
127
- return doc.lastAutoTable.finalY;
128
- }
129
- addOrderItems(doc, order, y, margin, pageWidth) {
130
- const head = [['Código', 'Nombre', 'U.M.', 'Cant.', 'Descripción']];
131
- const body = order.items.map(item => [
132
- item.code,
133
- item.itemName,
134
- item.unitMeasurement,
135
- item.amount,
136
- item.description || ''
137
- ]);
138
- doc.autoTable({
139
- startY: y,
140
- head: head,
141
- body: body,
142
- theme: 'grid',
143
- headStyles: { fillColor: [220, 220, 220], textColor: 0, fontStyle: 'bold' },
144
- columnStyles: {
145
- 3: { halign: 'right' },
146
- 4: { halign: 'right' },
147
- 5: { halign: 'right' }
148
- }
149
- });
150
- let finalY = doc.lastAutoTable.finalY;
151
- return finalY;
152
- }
153
- addComments(doc, order, y, margin, pageWidth) {
154
- doc.setFontSize(10);
155
- doc.setFont('helvetica', 'bold');
156
- doc.text('Comentarios:', margin, y);
157
- y += 15;
158
- doc.setFont('helvetica', 'normal');
159
- const splitText = doc.splitTextToSize(order.comment, pageWidth - margin * 2);
160
- doc.text(splitText, margin, y);
161
- return y + splitText.length * 12;
162
- }
163
- addFooter(doc, pageWidth, pageHeight) {
164
- const footerText = 'Documento generado por Brainloper';
165
- doc.setFontSize(8);
166
- const footerWidth = doc.getStringUnitWidth(footerText) * 8 / doc.internal.scaleFactor;
167
- doc.text(footerText, (pageWidth - footerWidth) / 2, pageHeight - 20);
168
- }
169
- }
170
- PurchaseOrderPdfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PurchaseOrderPdfService, deps: [{ token: i1.FunctionsService }], target: i0.ɵɵFactoryTarget.Injectable });
171
- PurchaseOrderPdfService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PurchaseOrderPdfService, providedIn: 'root' });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PurchaseOrderPdfService, decorators: [{
173
- type: Injectable,
174
- args: [{
175
- providedIn: 'root'
176
- }]
177
- }], ctorParameters: function () { return [{ type: i1.FunctionsService }]; } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyY2hhc2Utb3JkZXItcGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvcHVyY2hhc2Utb3JkZXItcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8saUJBQWlCLENBQUM7OztBQU16QixNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ1UsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFDakMsQ0FBQztJQUVMLHdCQUF3QixDQUFDLEtBQStCLEVBQUUsT0FJekQ7UUFDQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLEdBQUc7b0JBQ1gsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxnQkFBZ0IsS0FBSyxDQUFDLFdBQVcsTUFBTTtvQkFDakQsR0FBRyxPQUFPO2lCQUNYLENBQUM7Z0JBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFFdEIscUJBQXFCO2dCQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUs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LEVBQUUsU0FBaUIsRUFBRSxVQUFrQjtRQUNqRSxNQUFNLFVBQVUsR0FBRyxtQ0FBbUMsQ0FBQztRQUN2RCxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDdEYsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDOztxSEEvTFUsdUJBQXVCO3lIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsganNQREYgfSBmcm9tICdqc3BkZic7XG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgeyBGdW5jdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9mdW5jdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBkZlB1cmNoYXNlT3JkZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC90ZW1wbGF0ZS1wZGYtcHVyY2hhc2Utb3JkZXInO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHVyY2hhc2VPcmRlclBkZlNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZnVuY3Rpb25zOiBGdW5jdGlvbnNTZXJ2aWNlLFxuICApIHsgfVxuXG4gIGdlbmVyYXRlUHVyY2hhc2VPcmRlclBERihvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCBvcHRpb25zPzoge1xuICAgIGZvcm1hdD86ICdsZXR0ZXInIHwgJ2E0JztcbiAgICBkb3dubG9hZD86IGJvb2xlYW47XG4gICAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPGpzUERGPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgZm9ybWF0OiAnbGV0dGVyJyxcbiAgICAgICAgICBkb3dubG9hZDogdHJ1ZSxcbiAgICAgICAgICBmaWxlbmFtZTogYG9yZGVuX2NvbXByYV8ke29yZGVyLmNvbnNlY3V0aXZlfS5wZGZgLFxuICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCBvcHRzLmZvcm1hdCk7XG4gICAgICAgIGNvbnN0IHBhZ2VXaWR0aCA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpO1xuICAgICAgICBjb25zdCBtYXJnaW4gPSA0MDtcbiAgICAgICAgbGV0IGN1cnJlbnRZID0gbWFyZ2luO1xuXG4gICAgICAgIC8vID09PSBFTkNBQkVaQURPID09PVxuICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkSGVhZGVyKGRvYywgb3JkZXIsIGN1cnJlbnRZLCBwYWdlV2lkdGgsIG1hcmdpbik7XG4gICAgICAgIGN1cnJlbnRZICs9IDE4O1xuXG4gICAgICAgIC8vID09PSBERVRBTExFUyBERSBMQSBPUkRFTiA9PT1cbiAgICAgICAgY3VycmVudFkgPSB0aGlzLmFkZE9yZGVyRGV0YWlscyhkb2MsIG9yZGVyLCBjdXJyZW50WSwgbWFyZ2luLCBwYWdlV2lkdGgpO1xuICAgICAgICBjdXJyZW50WSArPSAyMDtcblxuICAgICAgICAvLyA9PT0gSVRFTVMgREUgTEEgT1JERU4gPT09XG4gICAgICAgIGN1cnJlbnRZID0gdGhpcy5hZGRPcmRlckl0ZW1zKGRvYywgb3JkZXIsIGN1cnJlbnRZLCBtYXJnaW4sIHBhZ2VXaWR0aCk7XG4gICAgICAgIGN1cnJlbnRZICs9IDIwO1xuXG4gICAgICAgIC8vID09PSBDT01FTlRBUklPUyA9PT1cbiAgICAgICAgaWYgKG9yZGVyLmNvbW1lbnQpIHtcbiAgICAgICAgICBjdXJyZW50WSA9IHRoaXMuYWRkQ29tbWVudHMoZG9jLCBvcmRlciwgY3VycmVudFksIG1hcmdpbiwgcGFnZVdpZHRoKTtcbiAgICAgICAgICBjdXJyZW50WSArPSAyMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vID09PSBQSUUgREUgUMOBR0lOQSA9PT1cbiAgICAgICAgdGhpcy5hZGRGb290ZXIoZG9jLCBwYWdlV2lkdGgsIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRIZWlnaHQoKSk7XG5cbiAgICAgICAgaWYgKG9wdHMuZG93bmxvYWQpIHtcbiAgICAgICAgICBkb2Muc2F2ZShvcHRzLmZpbGVuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGRvYyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgICBwcml2YXRlIGFkZEhlYWRlcihkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIHBhZ2VXaWR0aDogbnVtYmVyLCBtYXJnaW46IG51bWJlcik6IG51bWJlciB7XG4gICAgLy8gVMOtdHVsbyBjZW50cmFkbyB5IG7Dum1lcm8gZGVyZWNoYVxuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxNCk7XG4gICAgZG9jLnNldFRleHRDb2xvcigwLCAwLCAwKTtcbiAgICBkb2MudGV4dCgnT1JERU4gREUgQ09NUFJBJywgcGFnZVdpZHRoIC8gMiwgeSArIDgsIHsgYWxpZ246ICdjZW50ZXInIH0pO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG4gICAgZG9jLnRleHQoYE7CsCAke29yZGVyLmNvbnNlY3V0aXZlfWAsIHBhZ2VXaWR0aCAtIG1hcmdpbiwgeSArIDgsIHsgYWxpZ246ICdyaWdodCcgfSk7XG5cbiAgICB5ICs9IDI2O1xuXG4gICAgLy8gTMOtbmVhIGJham8gdMOtdHVsb1xuICAgIGRvYy5zZXREcmF3Q29sb3IoMTgwKTtcbiAgICBkb2Muc2V0TGluZVdpZHRoKDAuNSk7XG4gICAgZG9jLmxpbmUobWFyZ2luLCB5LCBwYWdlV2lkdGggLSBtYXJnaW4sIHkpO1xuICAgIHkgKz0gODtcblxuICAgIC8vIExvZ28gYSBsYSBpenF1aWVyZGFcbiAgICBjb25zdCBsb2dvVyA9IDgwO1xuICAgIGNvbnN0IGxvZ29IID0gNjA7XG4gICAgaWYgKG9yZGVyLmltYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBkb2MuYWRkSW1hZ2Uob3JkZXIuaW1hZ2UsICdQTkcnLCBtYXJnaW4sIHksIGxvZ29XLCBsb2dvSCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gTG9nbyBpbnbDoWxpZG8sIHNlIG9taXRlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGF0b3MgZW1wcmVzYSBhIGxhIGRlcmVjaGEgKGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEpXG4gICAgY29uc3QgcmlnaHRYID0gcGFnZVdpZHRoIC0gbWFyZ2luO1xuICAgIGxldCBpbmZvWSA9IHkgKyAyO1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG4gICAgaWYgKG9yZGVyLm5hbWUpIHtcbiAgICAgIGRvYy50ZXh0KG9yZGVyLm5hbWUsIHJpZ2h0WCwgaW5mb1ksIHsgYWxpZ246ICdyaWdodCcgfSk7XG4gICAgICBpbmZvWSArPSAxNDtcbiAgICB9XG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoOCk7XG5cbiAgICBjb25zdCBhZGQgPSAodmFsdWU/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICAgIGRvYy50ZXh0KHZhbHVlLCByaWdodFgsIGluZm9ZLCB7IGFsaWduOiAncmlnaHQnIH0pO1xuICAgICAgaW5mb1kgKz0gMTI7XG4gICAgfTtcblxuICAgIGFkZChvcmRlci5uaXQgPyBgTml0OiAke29yZGVyLm5pdH1gIDogJycpO1xuICAgIGFkZChvcmRlci5hZGRyZXNzKTtcbiAgICBhZGQob3JkZXIudGVsZXBob25lID8gYFRlbDogJHtvcmRlci50ZWxlcGhvbmV9YCA6ICcnKTtcbiAgICBhZGQob3JkZXIubWFpbCA/IGBFbWFpbDogJHtvcmRlci5tYWlsfWAgOiAnJyk7XG5cbiAgICAvLyBBbHR1cmEgdG90YWwgb2N1cGFkYVxuICAgIGNvbnN0IGJsb2NrQm90dG9tID0gTWF0aC5tYXgoeSArIGxvZ29ILCBpbmZvWSk7XG4gICAgY29uc3Qgc2VwYXJhdG9yWSA9IGJsb2NrQm90dG9tICsgNjtcblxuICAgIC8vIFNlcGFyYWRvclxuICAgIGRvYy5zZXREcmF3Q29sb3IoMTgwKTtcbiAgICBkb2MubGluZShtYXJnaW4sIHNlcGFyYXRvclksIHBhZ2VXaWR0aCAtIG1hcmdpbiwgc2VwYXJhdG9yWSk7XG5cbiAgICByZXR1cm4gc2VwYXJhdG9yWSArIDEwO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRPcmRlckRldGFpbHMoZG9jOiBqc1BERiwgb3JkZXI6IFRlbXBsYXRlUGRmUHVyY2hhc2VPcmRlciwgeTogbnVtYmVyLCBtYXJnaW46IG51bWJlciwgcGFnZVdpZHRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG5cbiAgICBjb25zdCByb3dzOiBhbnlbXSA9IFtcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiBgUHJvdmVlZG9yOiAke29yZGVyLnByb3ZpZGVyTmFtZX1gLCBzdHlsZXM6IHsgZm9udFN0eWxlOiAnYm9sZCcgfSB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGBGZWNoYSBkZSBjcmVhY2nDs246ICR7dGhpcy5mdW5jdGlvbnMudHJhbnNmb3JtRGF0ZShvcmRlci5jcmVhdGVkKX1gLCBzdHlsZXM6IHsgaGFsaWduOiAncmlnaHQnIH0gfVxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgeyBjb250ZW50OiBgQWxtYWPDqW46ICR7b3JkZXIud2FyZWhvdXNlfWAgfSxcbiAgICAgICAgeyBjb250ZW50OiBgU29saWNpdGE6ICR7b3JkZXIucmVxdWVzdHNOYW1lfWAsIHN0eWxlczogeyBoYWxpZ246ICdyaWdodCcgfSB9XG4gICAgICBdXG4gICAgXTtcblxuICAgIGlmIChvcmRlci5hdXRob3JpemVOYW1lICYmIG9yZGVyLmF1dGhvcml6ZU5hbWUgIT09IG9yZGVyLnJlcXVlc3RzTmFtZSkge1xuICAgICAgcm93cy5wdXNoKFtcbiAgICAgICAgeyBjb250ZW50OiAnJyB9LFxuICAgICAgICB7IGNvbnRlbnQ6IGBBdXRvcml6YTogJHtvcmRlci5hdXRob3JpemVOYW1lfWAsIHN0eWxlczogeyBoYWxpZ246ICdyaWdodCcgfSB9XG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAoZG9jIGFzIGFueSkuYXV0b1RhYmxlKHtcbiAgICAgIHN0YXJ0WTogeSxcbiAgICAgIGJvZHk6IHJvd3MsXG4gICAgICB0aGVtZTogJ3BsYWluJyxcbiAgICAgIHN0eWxlczogeyBmb250U2l6ZTogMTAsIGNlbGxQYWRkaW5nOiAyIH1cbiAgICB9KTtcbiAgICByZXR1cm4gKGRvYyBhcyBhbnkpLmxhc3RBdXRvVGFibGUuZmluYWxZO1xuICB9XG4gIHByaXZhdGUgYWRkT3JkZXJJdGVtcyhkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIG1hcmdpbjogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaGVhZCA9IFtbJ0PDs2RpZ28nLCAnTm9tYnJlJywgJ1UuTS4nLCAnQ2FudC4nLCAnRGVzY3JpcGNpw7NuJ11dO1xuICAgIGNvbnN0IGJvZHkgPSBvcmRlci5pdGVtcy5tYXAoaXRlbSA9PiBbXG4gICAgICBpdGVtLmNvZGUsXG4gICAgICBpdGVtLml0ZW1OYW1lLFxuICAgICAgaXRlbS51bml0TWVhc3VyZW1lbnQsXG4gICAgICBpdGVtLmFtb3VudCxcbiAgICAgIGl0ZW0uZGVzY3JpcHRpb24gfHwgJydcbiAgICBdKTtcblxuICAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xuICAgICAgc3RhcnRZOiB5LFxuICAgICAgaGVhZDogaGVhZCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICB0aGVtZTogJ2dyaWQnLFxuICAgICAgaGVhZFN0eWxlczogeyBmaWxsQ29sb3I6IFsyMjAsIDIyMCwgMjIwXSwgdGV4dENvbG9yOiAwLCBmb250U3R5bGU6ICdib2xkJyB9LFxuICAgICAgY29sdW1uU3R5bGVzOiB7XG4gICAgICAgIDM6IHsgaGFsaWduOiAncmlnaHQnIH0sXG4gICAgICAgIDQ6IHsgaGFsaWduOiAncmlnaHQnIH0sXG4gICAgICAgIDU6IHsgaGFsaWduOiAncmlnaHQnIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBmaW5hbFkgPSAoZG9jIGFzIGFueSkubGFzdEF1dG9UYWJsZS5maW5hbFk7XG5cbiAgICByZXR1cm4gZmluYWxZO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDb21tZW50cyhkb2M6IGpzUERGLCBvcmRlcjogVGVtcGxhdGVQZGZQdXJjaGFzZU9yZGVyLCB5OiBudW1iZXIsIG1hcmdpbjogbnVtYmVyLCBwYWdlV2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2MudGV4dCgnQ29tZW50YXJpb3M6JywgbWFyZ2luLCB5KTtcbiAgICB5ICs9IDE1O1xuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XG4gICAgY29uc3Qgc3BsaXRUZXh0ID0gZG9jLnNwbGl0VGV4dFRvU2l6ZShvcmRlci5jb21tZW50LCBwYWdlV2lkdGggLSBtYXJnaW4gKiAyKTtcbiAgICBkb2MudGV4dChzcGxpdFRleHQsIG1hcmdpbiwgeSk7XG4gICAgcmV0dXJuIHkgKyBzcGxpdFRleHQubGVuZ3RoICogMTI7XG4gIH1cblxuICBwcml2YXRlIGFkZEZvb3Rlcihkb2M6IGpzUERGLCBwYWdlV2lkdGg6IG51bWJlciwgcGFnZUhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZm9vdGVyVGV4dCA9ICdEb2N1bWVudG8gZ2VuZXJhZG8gcG9yIEJyYWlubG9wZXInO1xuICAgIGRvYy5zZXRGb250U2l6ZSg4KTtcbiAgICBjb25zdCBmb290ZXJXaWR0aCA9IGRvYy5nZXRTdHJpbmdVbml0V2lkdGgoZm9vdGVyVGV4dCkgKiA4IC8gZG9jLmludGVybmFsLnNjYWxlRmFjdG9yO1xuICAgIGRvYy50ZXh0KGZvb3RlclRleHQsIChwYWdlV2lkdGggLSBmb290ZXJXaWR0aCkgLyAyLCBwYWdlSGVpZ2h0IC0gMjApO1xuICB9XG59XG4iXX0=
@@ -1,42 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./crypto.service";
4
- export class SessionService {
5
- constructor(cripto) {
6
- this.cripto = cripto;
7
- this.key = "V2xoU2JHTnBRbnBpTWxvd1pESkdlVnBUUW10YVYzaHNaRzFXZG1OSE1XeGlibEU9"; //btoa 3 rounds
8
- }
9
- getMain() {
10
- const info = sessionStorage.getItem(this.key);
11
- if (info) {
12
- return this.cripto.decode(info);
13
- }
14
- return {};
15
- }
16
- keyAssign(key) {
17
- this.key = key;
18
- }
19
- getData(key) {
20
- var sesion = this.getMain();
21
- return sesion[key] || '';
22
- }
23
- setData(key, value) {
24
- var actual = this.getMain() || {};
25
- actual[key] = value;
26
- const dataF = this.cripto.encode(actual);
27
- sessionStorage.setItem(this.key, dataF);
28
- }
29
- getSessionVars() {
30
- const info = this.getMain();
31
- return info || {};
32
- }
33
- }
34
- SessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SessionService, deps: [{ token: i1.CryptoService }], target: i0.ɵɵFactoryTarget.Injectable });
35
- SessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SessionService, providedIn: 'root' });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SessionService, decorators: [{
37
- type: Injectable,
38
- args: [{
39
- providedIn: 'root'
40
- }]
41
- }], ctorParameters: function () { return [{ type: i1.CryptoService }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLGNBQWM7SUFHdkIsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUR6QyxRQUFHLEdBQUcsa0VBQWtFLENBQUMsQ0FBRSxlQUFlO0lBRTFGLENBQUM7SUFFTyxPQUFPO1FBQ1gsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsSUFBSSxJQUFJLEVBQUU7WUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ2xDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQUc7UUFDVCxJQUFJLENBQUMsR0FBRyxHQUFDLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBR0QsT0FBTyxDQUFDLEdBQUc7UUFDUCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFHRCxPQUFPLENBQUMsR0FBTyxFQUFFLEtBQVM7UUFDdEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUMsS0FBSyxDQUFDO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztRQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7NEdBbkNRLGNBQWM7Z0hBQWQsY0FBYyxjQUZYLE1BQU07NEZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcnlwdG9TZXJ2aWNlIH0gZnJvbSAnLi9jcnlwdG8uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbiAgfSlcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZSB7XG5cbiAgICBrZXkgPSBcIlYyeG9VMkpIVG5CUmJuQnBUV3h2ZDFwRVNrZGxWbkJVVVcxMFlWWXphSE5hUnpGWFpHMU9TRTFYZUdsaWJFVTlcIjsgIC8vYnRvYSAzIHJvdW5kc1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY3JpcHRvOiBDcnlwdG9TZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNYWluKCl7XG4gICAgICAgIGNvbnN0IGluZm8gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5KTtcbiAgICAgICAgaWYgKGluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyaXB0by5kZWNvZGUoaW5mbykgICAgXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGtleUFzc2lnbihrZXkpe1xuICAgICAgICB0aGlzLmtleT1rZXk7XG4gICAgfVxuXG5cbiAgICBnZXREYXRhKGtleSkge1xuICAgICAgICB2YXIgc2VzaW9uID0gdGhpcy5nZXRNYWluKCk7XG4gICAgICAgIHJldHVybiBzZXNpb25ba2V5XSB8fCAnJztcbiAgICB9XG5cblxuICAgIHNldERhdGEoa2V5OmFueSwgdmFsdWU6YW55KSB7XG4gICAgICAgIHZhciBhY3R1YWwgPSB0aGlzLmdldE1haW4oKSB8fCB7fTtcbiAgICAgICAgYWN0dWFsW2tleV09dmFsdWU7XG4gICAgICAgIGNvbnN0IGRhdGFGID0gdGhpcy5jcmlwdG8uZW5jb2RlKGFjdHVhbCk7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5rZXksIGRhdGFGKTtcbiAgICB9XG5cbiAgICBnZXRTZXNzaW9uVmFycygpe1xuICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5nZXRNYWluKCk7XG4gICAgICAgIHJldHVybiBpbmZvIHx8IHt9O1xuICAgIH1cbn1cblxuIl19