brainloper-ui 1.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 (92) hide show
  1. package/README.md +3 -0
  2. package/brainloper-ui.d.ts +5 -0
  3. package/esm2020/brainloper-ui.mjs +5 -0
  4. package/esm2020/public_api.mjs +50 -0
  5. package/esm2020/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +305 -0
  6. package/esm2020/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +29 -0
  7. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +23 -0
  8. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +83 -0
  9. package/esm2020/src/app/modules/brainloper-ui/components/buttons/combos/combos.component.mjs +144 -0
  10. package/esm2020/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +31 -0
  11. package/esm2020/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +426 -0
  12. package/esm2020/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +100 -0
  13. package/esm2020/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +185 -0
  14. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +2 -0
  15. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +2 -0
  16. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +2 -0
  17. package/esm2020/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +205 -0
  18. package/esm2020/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.mjs +80 -0
  19. package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +81 -0
  20. package/esm2020/src/app/modules/interfaces/buttons/button-icon.mjs +2 -0
  21. package/esm2020/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +2 -0
  22. package/esm2020/src/app/modules/interfaces/combos/combos-configuration.mjs +2 -0
  23. package/esm2020/src/app/modules/interfaces/data-table/params.mjs +2 -0
  24. package/esm2020/src/app/modules/interfaces/data-table/rules.mjs +2 -0
  25. package/esm2020/src/app/modules/interfaces/data-table/table-columns.mjs +2 -0
  26. package/esm2020/src/app/modules/interfaces/data-table/table-configuration.mjs +2 -0
  27. package/esm2020/src/app/modules/interfaces/enum/enumActions.mjs +7 -0
  28. package/esm2020/src/app/modules/interfaces/enum/enumRules.mjs +8 -0
  29. package/esm2020/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +2 -0
  30. package/esm2020/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +2 -0
  31. package/esm2020/src/app/modules/interfaces/filters/header-filters.mjs +2 -0
  32. package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +8 -0
  33. package/esm2020/src/app/modules/interfaces/report/template-pdf-ot.mjs +2 -0
  34. package/esm2020/src/app/modules/interfaces/report/template-pfd-fo.mjs +2 -0
  35. package/esm2020/src/app/modules/services/crypto.service.mjs +37 -0
  36. package/esm2020/src/app/modules/services/export-data.service.mjs +143 -0
  37. package/esm2020/src/app/modules/services/file-forms.service.mjs +24 -0
  38. package/esm2020/src/app/modules/services/functions.service.mjs +48 -0
  39. package/esm2020/src/app/modules/services/generate-pdf.service.mjs +58 -0
  40. package/esm2020/src/app/modules/services/http.service.mjs +154 -0
  41. package/esm2020/src/app/modules/services/loading/loading.component.mjs +28 -0
  42. package/esm2020/src/app/modules/services/local-storage.service.mjs +115 -0
  43. package/esm2020/src/app/modules/services/message.service.mjs +172 -0
  44. package/esm2020/src/app/modules/services/screen-size-util.mjs +6 -0
  45. package/esm2020/src/app/modules/services/session.service.mjs +42 -0
  46. package/fesm2015/brainloper-ui.mjs +2448 -0
  47. package/fesm2015/brainloper-ui.mjs.map +1 -0
  48. package/fesm2020/brainloper-ui.mjs +2419 -0
  49. package/fesm2020/brainloper-ui.mjs.map +1 -0
  50. package/package.json +58 -0
  51. package/public_api.d.ts +49 -0
  52. package/src/app/modules/brainloper-ui/brainloper-ui.module.d.ts +73 -0
  53. package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +13 -0
  54. package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +10 -0
  55. package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +24 -0
  56. package/src/app/modules/brainloper-ui/components/buttons/combos/combos.component.d.ts +43 -0
  57. package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +12 -0
  58. package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +87 -0
  59. package/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.d.ts +20 -0
  60. package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +42 -0
  61. package/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.d.ts +2 -0
  62. package/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.d.ts +2 -0
  63. package/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.d.ts +2 -0
  64. package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +29 -0
  65. package/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.d.ts +35 -0
  66. package/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.d.ts +36 -0
  67. package/src/app/modules/interfaces/buttons/button-icon.d.ts +9 -0
  68. package/src/app/modules/interfaces/buttons/button-lavel-edit.d.ts +6 -0
  69. package/src/app/modules/interfaces/combos/combos-configuration.d.ts +13 -0
  70. package/src/app/modules/interfaces/data-table/params.d.ts +6 -0
  71. package/src/app/modules/interfaces/data-table/rules.d.ts +8 -0
  72. package/src/app/modules/interfaces/data-table/table-columns.d.ts +23 -0
  73. package/src/app/modules/interfaces/data-table/table-configuration.d.ts +16 -0
  74. package/src/app/modules/interfaces/enum/enumActions.d.ts +5 -0
  75. package/src/app/modules/interfaces/enum/enumRules.d.ts +6 -0
  76. package/src/app/modules/interfaces/file-forms-service/file-forms-params.d.ts +4 -0
  77. package/src/app/modules/interfaces/file-forms-service/file-input-params.d.ts +13 -0
  78. package/src/app/modules/interfaces/filters/header-filters.d.ts +12 -0
  79. package/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.d.ts +10 -0
  80. package/src/app/modules/interfaces/report/template-pdf-ot.d.ts +19 -0
  81. package/src/app/modules/interfaces/report/template-pfd-fo.d.ts +20 -0
  82. package/src/app/modules/services/crypto.service.d.ts +10 -0
  83. package/src/app/modules/services/export-data.service.d.ts +15 -0
  84. package/src/app/modules/services/file-forms.service.d.ts +7 -0
  85. package/src/app/modules/services/functions.service.d.ts +12 -0
  86. package/src/app/modules/services/generate-pdf.service.d.ts +12 -0
  87. package/src/app/modules/services/http.service.d.ts +21 -0
  88. package/src/app/modules/services/loading/loading.component.d.ts +15 -0
  89. package/src/app/modules/services/local-storage.service.d.ts +49 -0
  90. package/src/app/modules/services/message.service.d.ts +20 -0
  91. package/src/app/modules/services/screen-size-util.d.ts +3 -0
  92. package/src/app/modules/services/session.service.d.ts +14 -0
@@ -0,0 +1,28 @@
1
+ import { Component, Inject, ViewEncapsulation } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ export class LoadingComponent {
6
+ constructor(dialogRef, data) {
7
+ this.dialogRef = dialogRef;
8
+ this.data = data;
9
+ this.options = {
10
+ path: '/assets/loading.json'
11
+ };
12
+ }
13
+ ngOnInit() {
14
+ }
15
+ animationCreated(animationItem) {
16
+ console.log(animationItem);
17
+ }
18
+ }
19
+ LoadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LoadingComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
20
+ LoadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: LoadingComponent, selector: "app-loading", ngImport: i0, template: "<div style=\"display: flex; justify-content: center;align-items: center; flex-direction: column;\">\r\n\r\n <div style='font-size: 20px;'>\r\n <strong>{{data.title}}</strong>\r\n </div>\r\n <div>\r\n <!-- <ng-lottie width='170px' [options]=\"options\" (animationCreated)=\"animationCreated($event)\"></ng-lottie> -->\r\n <img width='170px' src=\"assets/loading.gif\" alt=\"\">\r\n </div>\r\n <div style='text-align: center;'>\r\n {{data.message}}\r\n </div>\r\n\r\n</div>\r\n", styles: [".mat-dialog-container{overflow:hidden!important;background-color:#fff!important}\n"], encapsulation: i0.ViewEncapsulation.None });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LoadingComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'app-loading', encapsulation: ViewEncapsulation.None, template: "<div style=\"display: flex; justify-content: center;align-items: center; flex-direction: column;\">\r\n\r\n <div style='font-size: 20px;'>\r\n <strong>{{data.title}}</strong>\r\n </div>\r\n <div>\r\n <!-- <ng-lottie width='170px' [options]=\"options\" (animationCreated)=\"animationCreated($event)\"></ng-lottie> -->\r\n <img width='170px' src=\"assets/loading.gif\" alt=\"\">\r\n </div>\r\n <div style='text-align: center;'>\r\n {{data.message}}\r\n </div>\r\n\r\n</div>\r\n", styles: [".mat-dialog-container{overflow:hidden!important;background-color:#fff!important}\n"] }]
24
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
25
+ type: Inject,
26
+ args: [MAT_DIALOG_DATA]
27
+ }] }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zZXJ2aWNlcy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUcsTUFBTSxlQUFlLENBQUM7QUFHOUUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBU3pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDUyxTQUF5QyxFQUNoQixJQUFJO1FBRDdCLGNBQVMsR0FBVCxTQUFTLENBQWdDO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQUE7UUFOdEMsWUFBTyxHQUFxQjtZQUMxQixJQUFJLEVBQUUsc0JBQXNCO1NBQzdCLENBQUM7SUFLRSxDQUFDO0lBRUwsUUFBUTtJQUVSLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxhQUE0QjtRQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzZHQWpCVSxnQkFBZ0IsOENBUWpCLGVBQWU7aUdBUmQsZ0JBQWdCLG1EQ1o3QiwyZ0JBY0E7MkZERmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLGFBQWEsaUJBR1IsaUJBQWlCLENBQUMsSUFBSTs7MEJBVWxDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbmltYXRpb25JdGVtIH0gZnJvbSAnbG90dGllLXdlYic7XHJcbmltcG9ydCB7IEFuaW1hdGlvbk9wdGlvbnMgfSBmcm9tICduZ3gtbG90dGllJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWxvYWRpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkaW5nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2FkaW5nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9hZGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIG9wdGlvbnM6IEFuaW1hdGlvbk9wdGlvbnMgPSB7XHJcbiAgICBwYXRoOiAnL2Fzc2V0cy9sb2FkaW5nLmpzb24nXHJcbiAgfTtcclxuIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPExvYWRpbmdDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb25JdGVtOiBBbmltYXRpb25JdGVtKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhhbmltYXRpb25JdGVtKTtcclxuICB9XHJcblxyXG4gIFxyXG5cclxufVxyXG4iLCI8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7YWxpZ24taXRlbXM6IGNlbnRlcjsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cclxuXHJcbiAgICA8ZGl2IHN0eWxlPSdmb250LXNpemU6IDIwcHg7Jz5cclxuICAgICAgICA8c3Ryb25nPnt7ZGF0YS50aXRsZX19PC9zdHJvbmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPCEtLSA8bmctbG90dGllIHdpZHRoPScxNzBweCcgW29wdGlvbnNdPVwib3B0aW9uc1wiIChhbmltYXRpb25DcmVhdGVkKT1cImFuaW1hdGlvbkNyZWF0ZWQoJGV2ZW50KVwiPjwvbmctbG90dGllPiAtLT5cclxuICAgICAgICA8aW1nIHdpZHRoPScxNzBweCcgc3JjPVwiYXNzZXRzL2xvYWRpbmcuZ2lmXCIgYWx0PVwiXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgc3R5bGU9J3RleHQtYWxpZ246IGNlbnRlcjsnPlxyXG4gICAgICAgIHt7ZGF0YS5tZXNzYWdlfX1cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,115 @@
1
+ import { compress, decompress } from 'lz-string';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class LocalStorageService {
5
+ constructor() {
6
+ this.prefix = 'bl-f';
7
+ this.store = window.localStorage;
8
+ this.prefix += '.';
9
+ }
10
+ /**
11
+ * set key in local storage
12
+ * @param key key
13
+ * @param value value
14
+ */
15
+ set(key, value) {
16
+ key = this.prefix + key;
17
+ this.store.setItem(key, compress(JSON.stringify(value))); // compress data
18
+ return true;
19
+ }
20
+ /**
21
+ * get key in local storage
22
+ * @param key key
23
+ * @returns value as object
24
+ */
25
+ get(key) {
26
+ key = this.prefix + key;
27
+ const datacompressed = this.store.getItem(key);
28
+ if (!datacompressed) {
29
+ return null;
30
+ }
31
+ const item = decompress(datacompressed); // decompress
32
+ return JSON.parse(item);
33
+ }
34
+ /**
35
+ * remove a key
36
+ * @param key key to remove
37
+ * @returns boolean
38
+ */
39
+ remove(key) {
40
+ key = this.prefix + key;
41
+ this.store.removeItem(key);
42
+ return true;
43
+ }
44
+ /**
45
+ * clear all
46
+ * @returns boolean
47
+ */
48
+ clear() {
49
+ this.store.clear();
50
+ return true;
51
+ }
52
+ /**
53
+ * get all keys present in local storage
54
+ * @returns array of keys
55
+ */
56
+ getAllKeys() {
57
+ let keys = [];
58
+ for (let index = 0; index < this.store.length; index++) {
59
+ const key = this.store.key(index);
60
+ if (key.indexOf(this.prefix) === 0) {
61
+ keys.push(key.substr(this.prefix.length));
62
+ }
63
+ }
64
+ return keys;
65
+ }
66
+ /**
67
+ * set key with expire time
68
+ * @param key key
69
+ * @param value value
70
+ * @returns true if set correctly
71
+ */
72
+ setWhitExpiry(key, value) {
73
+ const now = new Date();
74
+ const ttl = 3600 * 1000;
75
+ const item = {
76
+ value: value,
77
+ expiry: now.getTime() + ttl,
78
+ };
79
+ key = this.prefix + key;
80
+ this.store.setItem(key, compress(JSON.stringify(item))); // compress data
81
+ return true;
82
+ }
83
+ /**
84
+ * return key with expire time
85
+ * @param key key
86
+ * @returns return object with data or null if key expired
87
+ */
88
+ getWithExpiry(key) {
89
+ key = this.prefix + key;
90
+ const datacompressed = this.store.getItem(key);
91
+ if (!datacompressed) {
92
+ return null;
93
+ }
94
+ const itemStr = decompress(datacompressed); // decompress
95
+ const item = JSON.parse(itemStr);
96
+ const now = new Date();
97
+ if (!item) {
98
+ return null;
99
+ }
100
+ if (now.getTime() > item.expiry) {
101
+ this.store.removeItem(key);
102
+ return null;
103
+ }
104
+ return item.value;
105
+ }
106
+ }
107
+ LocalStorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
108
+ LocalStorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LocalStorageService, providedIn: 'root' });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LocalStorageService, decorators: [{
110
+ type: Injectable,
111
+ args: [{
112
+ providedIn: 'root',
113
+ }]
114
+ }], ctorParameters: function () { return []; } });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCO1FBRlEsV0FBTSxHQUFXLE1BQU0sQ0FBQztRQUN4QixVQUFLLEdBQVEsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUV2QyxJQUFJLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEdBQUcsQ0FBSSxHQUFXLEVBQUUsS0FBUTtRQUMxQixHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtRQUMxRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFQTs7OztPQUlHO0lBQ0osR0FBRyxDQUFJLEdBQVc7UUFDaEIsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQVcsQ0FBQyxDQUFDLGFBQWE7UUFDaEUsT0FBTyxJQUFJLENB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bXBvcnQgeyBjb21wcmVzcywgZGVjb21wcmVzcyB9IGZyb20gJ2x6LXN0cmluZyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIHtcclxuICBwcml2YXRlIHByZWZpeDogc3RyaW5nID0gJ2JsLWYnO1xyXG4gIHByaXZhdGUgc3RvcmU6IGFueSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2U7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnByZWZpeCArPSAnLic7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBzZXQga2V5IGluIGxvY2FsIHN0b3JhZ2VcclxuICAgKiBAcGFyYW0ga2V5ICBrZXlcclxuICAgKiBAcGFyYW0gdmFsdWUgIHZhbHVlXHJcbiAgICovXHJcbiAgc2V0PFQ+KGtleTogc3RyaW5nLCB2YWx1ZTogVCkgOiBib29sZWFue1xyXG4gICAga2V5ID0gdGhpcy5wcmVmaXggKyBrZXk7XHJcbiAgICB0aGlzLnN0b3JlLnNldEl0ZW0oa2V5LCBjb21wcmVzcyhKU09OLnN0cmluZ2lmeSh2YWx1ZSkpKTsgLy8gY29tcHJlc3MgZGF0YVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAgLyoqXHJcbiAgICAqIGdldCBrZXkgaW4gbG9jYWwgc3RvcmFnZVxyXG4gICAgKiBAcGFyYW0ga2V5ICBrZXlcclxuICAgICogQHJldHVybnMgIHZhbHVlIGFzIG9iamVjdFxyXG4gICAgKi9cclxuICBnZXQ8VD4oa2V5OiBzdHJpbmcpIDogVCB8IG51bGwge1xyXG4gICAga2V5ID0gdGhpcy5wcmVmaXggKyBrZXk7XHJcbiAgICBjb25zdCBkYXRhY29tcHJlc3NlZCA9IHRoaXMuc3RvcmUuZ2V0SXRlbShrZXkpO1xyXG4gICAgaWYgKCFkYXRhY29tcHJlc3NlZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGl0ZW0gPSBkZWNvbXByZXNzKGRhdGFjb21wcmVzc2VkKSBhcyBzdHJpbmc7IC8vIGRlY29tcHJlc3NcclxuICAgIHJldHVybiBKU09OLnBhcnNlKGl0ZW0pIGFzIFQ7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHJlbW92ZSBhIGtleVxyXG4gICAqIEBwYXJhbSBrZXkga2V5IHRvIHJlbW92ZVxyXG4gICAqIEByZXR1cm5zIGJvb2xlYW5cclxuICAgKi9cclxuICByZW1vdmUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGtleSA9IHRoaXMucHJlZml4ICsga2V5O1xyXG4gICAgdGhpcy5zdG9yZS5yZW1vdmVJdGVtKGtleSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICogY2xlYXIgYWxsXHJcbiAgICogQHJldHVybnMgYm9vbGVhblxyXG4gICAqL1xyXG4gIGNsZWFyKCk6Ym9vbGVhbntcclxuICAgIHRoaXMuc3RvcmUuY2xlYXIoKVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBnZXQgYWxsIGtleXMgcHJlc2VudCBpbiBsb2NhbCBzdG9yYWdlXHJcbiAgICogQHJldHVybnMgIGFycmF5IG9mIGtleXNcclxuICAgKi9cclxuICBnZXRBbGxLZXlzKCk6IEFycmF5PHN0cmluZz4ge1xyXG4gICAgbGV0IGtleXMgPSBbXTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnN0b3JlLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBrZXkgPSB0aGlzLnN0b3JlLmtleShpbmRleCk7XHJcbiAgICAgIGlmIChrZXkuaW5kZXhPZih0aGlzLnByZWZpeCkgPT09IDApIHtcclxuICAgICAgICBrZXlzLnB1c2goa2V5LnN1YnN0cih0aGlzLnByZWZpeC5sZW5ndGgpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGtleXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBzZXQga2V5IHdpdGggZXhwaXJlIHRpbWVcclxuICAgKiBAcGFyYW0ga2V5IGtleVxyXG4gICAqIEBwYXJhbSB2YWx1ZSAgdmFsdWVcclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHNldCBjb3JyZWN0bHlcclxuICAgKi9cclxuICBzZXRXaGl0RXhwaXJ5PFQ+KGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IHR0bCA9IDM2MDAgKiAxMDAwO1xyXG4gICAgY29uc3QgaXRlbSA9IHtcclxuICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICBleHBpcnk6IG5vdy5nZXRUaW1lKCkgKyB0dGwsXHJcbiAgICB9O1xyXG5cclxuICAgIGtleSA9IHRoaXMucHJlZml4ICsga2V5O1xyXG4gICAgdGhpcy5zdG9yZS5zZXRJdGVtKGtleSwgY29tcHJlc3MoSlNPTi5zdHJpbmdpZnkoaXRlbSkpKTsgLy8gY29tcHJlc3MgZGF0YVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gLyoqXHJcbiAgKiByZXR1cm4ga2V5IHdpdGggZXhwaXJlIHRpbWVcclxuICAqIEBwYXJhbSBrZXkga2V5XHJcbiAgKiBAcmV0dXJucyByZXR1cm4gb2JqZWN0IHdpdGggZGF0YSBvciBudWxsIGlmIGtleSBleHBpcmVkXHJcbiAgKi9cclxuXHJcbiAgZ2V0V2l0aEV4cGlyeTxUPihrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcclxuICAgIGtleSA9IHRoaXMucHJlZml4ICsga2V5O1xyXG4gICAgY29uc3QgZGF0YWNvbXByZXNzZWQgPSB0aGlzLnN0b3JlLmdldEl0ZW0oa2V5KTtcclxuICAgIGlmICghZGF0YWNvbXByZXNzZWQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtU3RyID0gZGVjb21wcmVzcyhkYXRhY29tcHJlc3NlZCkgYXMgc3RyaW5nOyAvLyBkZWNvbXByZXNzXHJcblxyXG4gICAgY29uc3QgaXRlbSA9IEpTT04ucGFyc2UoaXRlbVN0cik7XHJcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKCFpdGVtKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKG5vdy5nZXRUaW1lKCkgPiBpdGVtLmV4cGlyeSkge1xyXG4gICAgICB0aGlzLnN0b3JlLnJlbW92ZUl0ZW0oa2V5KTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbS52YWx1ZSBhcyBUO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,172 @@
1
+ import { Injectable } from '@angular/core';
2
+ import Swal from 'sweetalert2';
3
+ import { LoadingComponent } from './loading/loading.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/dialog";
6
+ export class MessageService {
7
+ constructor(dialog) {
8
+ this.dialog = dialog;
9
+ this.loadingNow = false;
10
+ }
11
+ openLoading(title, message) {
12
+ if (!this.loadingNow) {
13
+ this.loadingNow = true;
14
+ this.loading = this.dialog.open(LoadingComponent, {
15
+ data: {
16
+ title,
17
+ message
18
+ },
19
+ width: '250px',
20
+ // height:'280px',
21
+ disableClose: true,
22
+ });
23
+ }
24
+ }
25
+ closeLoading() {
26
+ if (this.loadingNow) {
27
+ this.loading.close();
28
+ this.loadingNow = false;
29
+ }
30
+ }
31
+ Error(title, message, showCancelButton = false, confirmButtonText = 'Aceptar', cancelButtonText = 'Cancelar') {
32
+ return new Promise((resolve, reject) => {
33
+ Swal.fire({
34
+ title: title,
35
+ text: message,
36
+ icon: 'error',
37
+ showCancelButton: showCancelButton,
38
+ confirmButtonText: confirmButtonText,
39
+ cancelButtonText: cancelButtonText,
40
+ customClass: {
41
+ confirmButton: 'confirm-button-class',
42
+ cancelButton: 'cancel-button-class',
43
+ }
44
+ }).then((result) => {
45
+ if (result.value) {
46
+ resolve(true);
47
+ }
48
+ else if (result.dismiss === Swal.DismissReason.cancel) {
49
+ resolve(false);
50
+ }
51
+ });
52
+ });
53
+ }
54
+ Success(title, message, showCancelButton = false, confirmButtonText = 'Aceptar', cancelButtonText = 'Cancelar') {
55
+ return new Promise((resolve, reject) => {
56
+ Swal.fire({
57
+ title: title,
58
+ text: message,
59
+ icon: 'success',
60
+ showCancelButton: showCancelButton,
61
+ confirmButtonText: confirmButtonText,
62
+ cancelButtonText: cancelButtonText,
63
+ customClass: {
64
+ confirmButton: 'confirm-button-class',
65
+ cancelButton: 'cancel-button-class',
66
+ }
67
+ }).then((result) => {
68
+ if (result.value) {
69
+ resolve(true);
70
+ }
71
+ else if (result.dismiss === Swal.DismissReason.cancel) {
72
+ resolve(false);
73
+ }
74
+ });
75
+ });
76
+ }
77
+ Warning(title, message, showCancelButton = false, confirmButtonText = 'Aceptar', cancelButtonText = 'Cancelar') {
78
+ return new Promise((resolve, reject) => {
79
+ Swal.fire({
80
+ title: title,
81
+ text: message,
82
+ icon: 'warning',
83
+ showCancelButton: showCancelButton,
84
+ confirmButtonText: confirmButtonText,
85
+ cancelButtonText: cancelButtonText,
86
+ customClass: {
87
+ confirmButton: 'confirm-button-class',
88
+ cancelButton: 'cancel-button-class',
89
+ }
90
+ }).then((result) => {
91
+ if (result.value) {
92
+ resolve(true);
93
+ }
94
+ else if (result.dismiss === Swal.DismissReason.cancel) {
95
+ resolve(false);
96
+ }
97
+ });
98
+ });
99
+ }
100
+ Info(title, message, showCancelButton = false, confirmButtonText = 'Aceptar', cancelButtonText = 'Cancelar') {
101
+ return new Promise((resolve, reject) => {
102
+ Swal.fire({
103
+ title: title,
104
+ text: message,
105
+ icon: 'info',
106
+ showCancelButton: showCancelButton,
107
+ confirmButtonText: confirmButtonText,
108
+ cancelButtonText: cancelButtonText,
109
+ customClass: {
110
+ confirmButton: 'confirm-button-class',
111
+ cancelButton: 'cancel-button-class',
112
+ }
113
+ }).then((result) => {
114
+ if (result.value) {
115
+ resolve(true);
116
+ }
117
+ else if (result.dismiss === Swal.DismissReason.cancel) {
118
+ resolve(false);
119
+ }
120
+ });
121
+ });
122
+ }
123
+ SuccessToast(message, duration = 4000) {
124
+ Swal.fire({
125
+ position: 'top-end',
126
+ icon: 'success',
127
+ title: message,
128
+ showConfirmButton: false,
129
+ toast: true,
130
+ timer: duration
131
+ });
132
+ }
133
+ ErrorToast(message, duration = 4000) {
134
+ Swal.fire({
135
+ position: 'top-end',
136
+ icon: 'error',
137
+ title: message,
138
+ showConfirmButton: false,
139
+ toast: true,
140
+ timer: duration
141
+ });
142
+ }
143
+ WarningToast(message, duration = 4000) {
144
+ Swal.fire({
145
+ position: 'top-end',
146
+ icon: 'warning',
147
+ title: message,
148
+ showConfirmButton: false,
149
+ toast: true,
150
+ timer: duration
151
+ });
152
+ }
153
+ InfoToast(message, duration = 4000) {
154
+ Swal.fire({
155
+ position: 'top-end',
156
+ icon: 'info',
157
+ title: message,
158
+ showConfirmButton: false,
159
+ toast: true,
160
+ timer: duration
161
+ });
162
+ }
163
+ }
164
+ MessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MessageService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
165
+ MessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MessageService, providedIn: 'root' });
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MessageService, decorators: [{
167
+ type: Injectable,
168
+ args: [{
169
+ providedIn: 'root'
170
+ }]
171
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUU5QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBSy9ELE1BQU0sT0FBTyxjQUFjO0lBSXpCLFlBQ1UsTUFBZ0I7UUFBaEIsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUhsQixlQUFVLEdBQVksS0FBSyxDQUFBO0lBSS9CLENBQUM7SUFFTCxXQUFXLENBQUMsS0FBSyxFQUFDLE9BQU87UUFDdkIsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7WUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDaEQsSUFBSSxFQUFDO29CQUNILEtBQUs7b0JBQ0wsT0FBTztpQkFDUjtnQkFDRCxLQUFLLEVBQUMsT0FBTztnQkFDYixrQkFBa0I7Z0JBQ2xCLFlBQVksRUFBQyxJQUFJO2FBRWxCLENBQUMsQ0FBQTtTQUNIO0lBRUgsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFHLElBQUksQ0FBQyxVQUFVLEVBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtTQUN4QjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsS0FBWSxFQUFFLE9BQWMsRUFBRSxtQkFBeUIsS0FBSyxFQUFDLG9CQUF5QixTQUFTLEVBQUUsbUJBQXdCLFVBQVU7UUFDdkksT0FB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QUFrQixJQUFJO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixRQUFRLEVBQUUsU0FBUztZQUNuQixJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSxPQUFPO1lBQ2QsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixLQUFLLEVBQUMsSUFBSTtZQUNWLEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBYyxFQUFFLFdBQWtCLElBQUk7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNSLFFBQVEsRUFBRSxTQUFTO1lBQ25CLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLE9BQU87WUFDZCxpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLEtBQUssRUFBQyxJQUFJO1lBQ1YsS0FBSyxFQUFFLFFBQVE7U0FDaEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFjLEVBQUUsV0FBa0IsSUFBSTtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1IsUUFBUSxFQUFFLFNBQVM7WUFDbkIsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsT0FBTztZQUNkLGlCQUFpQixFQUFFLEtBQUs7WUFDeEIsS0FBSyxFQUFDLElBQUk7WUFDVixLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUE7SUFDSixDQUFDOzsyR0F4S1UsY0FBYzsrR0FBZCxjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInXHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGxvYWRpbmdOb3c6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHByaXZhdGUgbG9hZGluZ1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6TWF0RGlhbG9nXHJcbiAgKSB7IH1cclxuXHJcbiAgb3BlbkxvYWRpbmcodGl0bGUsbWVzc2FnZSl7XHJcbiAgICBpZighdGhpcy5sb2FkaW5nTm93KXtcclxuICAgICAgdGhpcy5sb2FkaW5nTm93ID0gdHJ1ZVxyXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0aGlzLmRpYWxvZy5vcGVuKExvYWRpbmdDb21wb25lbnQsIHtcclxuICAgICAgICBkYXRhOntcclxuICAgICAgICAgIHRpdGxlLFxyXG4gICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgd2lkdGg6JzI1MHB4JyxcclxuICAgICAgICAvLyBoZWlnaHQ6JzI4MHB4JyxcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6dHJ1ZSxcclxuXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgY2xvc2VMb2FkaW5nKCl7XHJcbiAgICBpZih0aGlzLmxvYWRpbmdOb3cpe1xyXG4gICAgICB0aGlzLmxvYWRpbmcuY2xvc2UoKVxyXG4gICAgICB0aGlzLmxvYWRpbmdOb3cgPSBmYWxzZVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgRXJyb3IodGl0bGU6c3RyaW5nLCBtZXNzYWdlOnN0cmluZywgc2hvd0NhbmNlbEJ1dHRvbjpib29sZWFuPWZhbHNlLGNvbmZpcm1CdXR0b25UZXh0OnN0cmluZz0nQWNlcHRhcicsIGNhbmNlbEJ1dHRvblRleHQ6c3RyaW5nPSdDYW5jZWxhcicpe1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntcclxuICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgdGV4dDogbWVzc2FnZSxcclxuICAgICAgICBpY29uOiAnZXJyb3InLFxyXG4gICAgICAgIHNob3dDYW5jZWxCdXR0b246IHNob3dDYW5jZWxCdXR0b24sXHJcbiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IGNvbmZpcm1CdXR0b25UZXh0LFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IGNhbmNlbEJ1dHRvblRleHQsXHJcbiAgICAgICAgY3VzdG9tQ2xhc3M6IHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b246ICdjb25maXJtLWJ1dHRvbi1jbGFzcycsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b246ICdjYW5jZWwtYnV0dG9uLWNsYXNzJyxcclxuICAgICAgICB9XHJcbiAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsdWUpIHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSlcclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5kaXNtaXNzID09PSBTd2FsLkRpc21pc3NSZWFzb24uY2FuY2VsKSB7XHJcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBTdWNjZXNzKHRpdGxlOnN0cmluZywgbWVzc2FnZTpzdHJpbmcsIHNob3dDYW5jZWxCdXR0b246Ym9vbGVhbj1mYWxzZSxjb25maXJtQnV0dG9uVGV4dDpzdHJpbmc9J0FjZXB0YXInLCBjYW5jZWxCdXR0b25UZXh0OnN0cmluZz0nQ2FuY2VsYXInKXtcclxuXHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e1xyXG4gICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICB0ZXh0OiBtZXNzYWdlLFxyXG4gICAgICAgIGljb246ICdzdWNjZXNzJyxcclxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiBzaG93Q2FuY2VsQnV0dG9uLFxyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBjb25maXJtQnV0dG9uVGV4dCxcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBjYW5jZWxCdXR0b25UZXh0LFxyXG4gICAgICAgIGN1c3RvbUNsYXNzOiB7XHJcbiAgICAgICAgICBjb25maXJtQnV0dG9uOiAnY29uZmlybS1idXR0b24tY2xhc3MnLFxyXG4gICAgICAgICAgY2FuY2VsQnV0dG9uOiAnY2FuY2VsLWJ1dHRvbi1jbGFzcycsXHJcbiAgICAgICAgfVxyXG4gICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbHVlKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpXHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuZGlzbWlzcyA9PT0gU3dhbC5EaXNtaXNzUmVhc29uLmNhbmNlbCkge1xyXG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgV2FybmluZyh0aXRsZTpzdHJpbmcsIG1lc3NhZ2U6c3RyaW5nLCBzaG93Q2FuY2VsQnV0dG9uOmJvb2xlYW49ZmFsc2UsY29uZmlybUJ1dHRvblRleHQ6c3RyaW5nPSdBY2VwdGFyJywgY2FuY2VsQnV0dG9uVGV4dDpzdHJpbmc9J0NhbmNlbGFyJyl7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e1xyXG4gICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICB0ZXh0OiBtZXNzYWdlLFxyXG4gICAgICAgIGljb246ICd3YXJuaW5nJyxcclxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiBzaG93Q2FuY2VsQnV0dG9uLFxyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBjb25maXJtQnV0dG9uVGV4dCxcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBjYW5jZWxCdXR0b25UZXh0LFxyXG4gICAgICAgIGN1c3RvbUNsYXNzOiB7XHJcbiAgICAgICAgICBjb25maXJtQnV0dG9uOiAnY29uZmlybS1idXR0b24tY2xhc3MnLFxyXG4gICAgICAgICAgY2FuY2VsQnV0dG9uOiAnY2FuY2VsLWJ1dHRvbi1jbGFzcycsXHJcbiAgICAgICAgfVxyXG4gICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbHVlKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpXHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuZGlzbWlzcyA9PT0gU3dhbC5EaXNtaXNzUmVhc29uLmNhbmNlbCkge1xyXG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgSW5mbyh0aXRsZTpzdHJpbmcsIG1lc3NhZ2U6c3RyaW5nLCBzaG93Q2FuY2VsQnV0dG9uOmJvb2xlYW49ZmFsc2UsY29uZmlybUJ1dHRvblRleHQ6c3RyaW5nPSdBY2VwdGFyJywgY2FuY2VsQnV0dG9uVGV4dDpzdHJpbmc9J0NhbmNlbGFyJyl7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e1xyXG4gICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICB0ZXh0OiBtZXNzYWdlLFxyXG4gICAgICAgIGljb246ICdpbmZvJyxcclxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiBzaG93Q2FuY2VsQnV0dG9uLFxyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBjb25maXJtQnV0dG9uVGV4dCxcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBjYW5jZWxCdXR0b25UZXh0LFxyXG4gICAgICAgIGN1c3RvbUNsYXNzOiB7XHJcbiAgICAgICAgICBjb25maXJtQnV0dG9uOiAnY29uZmlybS1idXR0b24tY2xhc3MnLFxyXG4gICAgICAgICAgY2FuY2VsQnV0dG9uOiAnY2FuY2VsLWJ1dHRvbi1jbGFzcycsXHJcbiAgICAgICAgfVxyXG4gICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbHVlKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpXHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuZGlzbWlzcyA9PT0gU3dhbC5EaXNtaXNzUmVhc29uLmNhbmNlbCkge1xyXG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIFN1Y2Nlc3NUb2FzdChtZXNzYWdlOnN0cmluZywgZHVyYXRpb246bnVtYmVyID0gNDAwMCl7XHJcbiAgICBTd2FsLmZpcmUoe1xyXG4gICAgICBwb3NpdGlvbjogJ3RvcC1lbmQnLFxyXG4gICAgICBpY29uOiAnc3VjY2VzcycsXHJcbiAgICAgIHRpdGxlOiBtZXNzYWdlLFxyXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXHJcbiAgICAgIHRvYXN0OnRydWUsXHJcbiAgICAgIHRpbWVyOiBkdXJhdGlvblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIEVycm9yVG9hc3QobWVzc2FnZTpzdHJpbmcsIGR1cmF0aW9uOm51bWJlciA9IDQwMDApe1xyXG4gICAgU3dhbC5maXJlKHtcclxuICAgICAgcG9zaXRpb246ICd0b3AtZW5kJyxcclxuICAgICAgaWNvbjogJ2Vycm9yJyxcclxuICAgICAgdGl0bGU6IG1lc3NhZ2UsXHJcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcclxuICAgICAgdG9hc3Q6dHJ1ZSxcclxuICAgICAgdGltZXI6IGR1cmF0aW9uXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgV2FybmluZ1RvYXN0KG1lc3NhZ2U6c3RyaW5nLCBkdXJhdGlvbjpudW1iZXIgPSA0MDAwKXtcclxuICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgIHBvc2l0aW9uOiAndG9wLWVuZCcsXHJcbiAgICAgIGljb246ICd3YXJuaW5nJyxcclxuICAgICAgdGl0bGU6IG1lc3NhZ2UsXHJcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcclxuICAgICAgdG9hc3Q6dHJ1ZSxcclxuICAgICAgdGltZXI6IGR1cmF0aW9uXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgSW5mb1RvYXN0KG1lc3NhZ2U6c3RyaW5nLCBkdXJhdGlvbjpudW1iZXIgPSA0MDAwKXtcclxuICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgIHBvc2l0aW9uOiAndG9wLWVuZCcsXHJcbiAgICAgIGljb246ICdpbmZvJyxcclxuICAgICAgdGl0bGU6IG1lc3NhZ2UsXHJcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcclxuICAgICAgdG9hc3Q6dHJ1ZSxcclxuICAgICAgdGltZXI6IGR1cmF0aW9uXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,6 @@
1
+ export class ScreenSizeUtil {
2
+ static isMobile() {
3
+ return screen.width <= 600;
4
+ }
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXNpemUtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zZXJ2aWNlcy9zY3JlZW4tc2l6ZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLE1BQU0sQ0FBQyxRQUFRO1FBQ2IsT0FBTyxNQUFNLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU2NyZWVuU2l6ZVV0aWwge1xyXG4gIHN0YXRpYyBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzY3JlZW4ud2lkdGggPD0gNjAwO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,42 @@
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: "13.1.1", ngImport: i0, type: SessionService, deps: [{ token: i1.CryptoService }], target: i0.ɵɵFactoryTarget.Injectable });
35
+ SessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SessionService, providedIn: 'root' });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLGNBQWM7SUFHdkIsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUR6QyxRQUFHLEdBQUcsa0VBQWtFLENBQUMsQ0FBRSxlQUFlO0lBRTFGLENBQUM7SUFFTyxPQUFPO1FBQ1gsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsSUFBSSxJQUFJLEVBQUU7WUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ2xDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQUc7UUFDVCxJQUFJLENBQUMsR0FBRyxHQUFDLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBR0QsT0FBTyxDQUFDLEdBQUc7UUFDUCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFHRCxPQUFPLENBQUMsR0FBTyxFQUFFLEtBQVM7UUFDdEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUMsS0FBSyxDQUFDO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztRQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7MkdBbkNRLGNBQWM7K0dBQWQsY0FBYyxjQUZYLE1BQU07MkZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENyeXB0b1NlcnZpY2UgfSBmcm9tICcuL2NyeXB0by5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG4gIH0pXHJcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZSB7XHJcblxyXG4gICAga2V5ID0gXCJWMnhvVTJKSFRuQlJibkJwVFd4dmQxcEVTa2RsVm5CVVVXMTBZVll6YUhOYVJ6RlhaRzFPU0UxWGVHbGliRVU5XCI7ICAvL2J0b2EgMyByb3VuZHNcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY3JpcHRvOiBDcnlwdG9TZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRNYWluKCl7XHJcbiAgICAgICAgY29uc3QgaW5mbyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5rZXkpO1xyXG4gICAgICAgIGlmIChpbmZvKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyaXB0by5kZWNvZGUoaW5mbykgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuXHJcbiAgICBrZXlBc3NpZ24oa2V5KXtcclxuICAgICAgICB0aGlzLmtleT1rZXk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldERhdGEoa2V5KSB7XHJcbiAgICAgICAgdmFyIHNlc2lvbiA9IHRoaXMuZ2V0TWFpbigpO1xyXG4gICAgICAgIHJldHVybiBzZXNpb25ba2V5XSB8fCAnJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgc2V0RGF0YShrZXk6YW55LCB2YWx1ZTphbnkpIHtcclxuICAgICAgICB2YXIgYWN0dWFsID0gdGhpcy5nZXRNYWluKCkgfHwge307XHJcbiAgICAgICAgYWN0dWFsW2tleV09dmFsdWU7XHJcbiAgICAgICAgY29uc3QgZGF0YUYgPSB0aGlzLmNyaXB0by5lbmNvZGUoYWN0dWFsKTtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5LCBkYXRhRik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2Vzc2lvblZhcnMoKXtcclxuICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5nZXRNYWluKCk7XHJcbiAgICAgICAgcmV0dXJuIGluZm8gfHwge307XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==