brainloper-ui 14.0.14 → 14.0.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.
Files changed (97) hide show
  1. package/package.json +5 -1
  2. package/esm2020/brainloper-ui.mjs +0 -5
  3. package/esm2020/public_api.mjs +0 -52
  4. package/esm2020/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +0 -305
  5. package/esm2020/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +0 -29
  6. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +0 -23
  7. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +0 -83
  8. package/esm2020/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +0 -31
  9. package/esm2020/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +0 -176
  10. package/esm2020/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +0 -652
  11. package/esm2020/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +0 -118
  12. package/esm2020/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +0 -185
  13. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +0 -2
  14. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +0 -2
  15. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +0 -2
  16. package/esm2020/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +0 -222
  17. package/esm2020/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.mjs +0 -80
  18. package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +0 -81
  19. package/esm2020/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +0 -108
  20. package/esm2020/src/app/modules/data/rolesAndPermissions.mjs +0 -486
  21. package/esm2020/src/app/modules/interfaces/buttons/button-icon.mjs +0 -2
  22. package/esm2020/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +0 -2
  23. package/esm2020/src/app/modules/interfaces/combos/combos-configuration.mjs +0 -2
  24. package/esm2020/src/app/modules/interfaces/common/Permissions.mjs +0 -6
  25. package/esm2020/src/app/modules/interfaces/data-table/params.mjs +0 -2
  26. package/esm2020/src/app/modules/interfaces/data-table/rules.mjs +0 -2
  27. package/esm2020/src/app/modules/interfaces/data-table/table-columns.mjs +0 -2
  28. package/esm2020/src/app/modules/interfaces/data-table/table-configuration.mjs +0 -2
  29. package/esm2020/src/app/modules/interfaces/enum/enumActions.mjs +0 -7
  30. package/esm2020/src/app/modules/interfaces/enum/enumRules.mjs +0 -8
  31. package/esm2020/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +0 -2
  32. package/esm2020/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +0 -2
  33. package/esm2020/src/app/modules/interfaces/filters/header-filters.mjs +0 -2
  34. package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +0 -8
  35. package/esm2020/src/app/modules/interfaces/report/template-pdf-ot.mjs +0 -2
  36. package/esm2020/src/app/modules/interfaces/report/template-pfd-fo.mjs +0 -2
  37. package/esm2020/src/app/modules/services/crypto.service.mjs +0 -37
  38. package/esm2020/src/app/modules/services/export-data.service.mjs +0 -78055
  39. package/esm2020/src/app/modules/services/file-forms.service.mjs +0 -24
  40. package/esm2020/src/app/modules/services/functions.service.mjs +0 -54
  41. package/esm2020/src/app/modules/services/generate-pdf.service.mjs +0 -58
  42. package/esm2020/src/app/modules/services/http.service.mjs +0 -154
  43. package/esm2020/src/app/modules/services/loading/loading.component.mjs +0 -28
  44. package/esm2020/src/app/modules/services/local-storage.service.mjs +0 -115
  45. package/esm2020/src/app/modules/services/message.service.mjs +0 -200
  46. package/esm2020/src/app/modules/services/screen-size-util.mjs +0 -6
  47. package/esm2020/src/app/modules/services/session.service.mjs +0 -42
  48. package/fesm2015/brainloper-ui.mjs +0 -81277
  49. package/fesm2015/brainloper-ui.mjs.map +0 -1
  50. package/fesm2020/brainloper-ui.mjs +0 -81240
  51. package/fesm2020/brainloper-ui.mjs.map +0 -1
  52. package/index.d.ts +0 -5
  53. package/public_api.d.ts +0 -51
  54. package/src/app/modules/brainloper-ui/brainloper-ui.module.d.ts +0 -73
  55. package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +0 -13
  56. package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +0 -10
  57. package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +0 -24
  58. package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +0 -12
  59. package/src/app/modules/brainloper-ui/components/combos/combos.component.d.ts +0 -46
  60. package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +0 -119
  61. package/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.d.ts +0 -21
  62. package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +0 -42
  63. package/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.d.ts +0 -2
  64. package/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.d.ts +0 -2
  65. package/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.d.ts +0 -2
  66. package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +0 -30
  67. package/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.d.ts +0 -35
  68. package/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.d.ts +0 -36
  69. package/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.d.ts +0 -26
  70. package/src/app/modules/data/rolesAndPermissions.d.ts +0 -2
  71. package/src/app/modules/interfaces/buttons/button-icon.d.ts +0 -9
  72. package/src/app/modules/interfaces/buttons/button-lavel-edit.d.ts +0 -6
  73. package/src/app/modules/interfaces/combos/combos-configuration.d.ts +0 -13
  74. package/src/app/modules/interfaces/common/Permissions.d.ts +0 -34
  75. package/src/app/modules/interfaces/data-table/params.d.ts +0 -7
  76. package/src/app/modules/interfaces/data-table/rules.d.ts +0 -8
  77. package/src/app/modules/interfaces/data-table/table-columns.d.ts +0 -25
  78. package/src/app/modules/interfaces/data-table/table-configuration.d.ts +0 -25
  79. package/src/app/modules/interfaces/enum/enumActions.d.ts +0 -5
  80. package/src/app/modules/interfaces/enum/enumRules.d.ts +0 -6
  81. package/src/app/modules/interfaces/file-forms-service/file-forms-params.d.ts +0 -4
  82. package/src/app/modules/interfaces/file-forms-service/file-input-params.d.ts +0 -13
  83. package/src/app/modules/interfaces/filters/header-filters.d.ts +0 -13
  84. package/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.d.ts +0 -10
  85. package/src/app/modules/interfaces/report/template-pdf-ot.d.ts +0 -19
  86. package/src/app/modules/interfaces/report/template-pfd-fo.d.ts +0 -20
  87. package/src/app/modules/services/crypto.service.d.ts +0 -10
  88. package/src/app/modules/services/export-data.service.d.ts +0 -18
  89. package/src/app/modules/services/file-forms.service.d.ts +0 -7
  90. package/src/app/modules/services/functions.service.d.ts +0 -13
  91. package/src/app/modules/services/generate-pdf.service.d.ts +0 -12
  92. package/src/app/modules/services/http.service.d.ts +0 -21
  93. package/src/app/modules/services/loading/loading.component.d.ts +0 -15
  94. package/src/app/modules/services/local-storage.service.d.ts +0 -49
  95. package/src/app/modules/services/message.service.d.ts +0 -23
  96. package/src/app/modules/services/screen-size-util.d.ts +0 -3
  97. package/src/app/modules/services/session.service.d.ts +0 -14
@@ -1,24 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class FileFormsService {
4
- constructor() { }
5
- createMultipartForm(file, params) {
6
- const formD = new FormData();
7
- formD.append('file', file, 'form-data'); //Asigna el campo File
8
- if (params) {
9
- params.forEach((element) => {
10
- formD.append(element.id, element.value);
11
- });
12
- }
13
- return (formD);
14
- }
15
- }
16
- FileFormsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileFormsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- FileFormsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileFormsService, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileFormsService, decorators: [{
19
- type: Injectable,
20
- args: [{
21
- providedIn: 'root'
22
- }]
23
- }], ctorParameters: function () { return []; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1mb3Jtcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL2ZpbGUtZm9ybXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLGdCQUFnQixDQUFDO0lBRWpCLG1CQUFtQixDQUFDLElBQVMsRUFBRSxNQUFPO1FBRXBDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUEsc0JBQXNCO1FBQzVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVcsRUFBRSxFQUFFO2dCQUM3QixLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFZixDQUFDOzs2R0FmVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVGb3Jtc1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBjcmVhdGVNdWx0aXBhcnRGb3JtKGZpbGU6RmlsZSwgcGFyYW1zPyl7XHJcblxyXG4gICAgY29uc3QgZm9ybUQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1ELmFwcGVuZCgnZmlsZScsZmlsZSwnZm9ybS1kYXRhJyk7Ly9Bc2lnbmEgZWwgY2FtcG8gRmlsZVxyXG4gICAgaWYocGFyYW1zKXtcclxuICAgICAgcGFyYW1zLmZvckVhY2goKGVsZW1lbnQ6YW55KSA9PiB7XHJcbiAgICAgICAgZm9ybUQuYXBwZW5kKGVsZW1lbnQuaWQsZWxlbWVudC52YWx1ZSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4oZm9ybUQpXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,54 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class FunctionsService {
4
- constructor() { }
5
- dateForm(date) {
6
- let data = new Date(date);
7
- let change = `${data.getFullYear()}/${data.getMonth() + 1}/${data.getDate()}`;
8
- return (change);
9
- }
10
- dateIso(date) {
11
- let data = date.toString();
12
- let cut = data.replace(/(.*)\T.*/, '$1');
13
- let add = `${cut}T05:00:00.000Z`;
14
- let fecha = add.replace(/(.*)\T.*/, '$1');
15
- return (fecha);
16
- }
17
- dateDB(date) {
18
- let day = this.validateTwoDigitFormat(date.getDate().toString());
19
- let month = this.validateTwoDigitFormat((date.getMonth() + 1).toString());
20
- return `${date.getFullYear()}-${month}-${day}`;
21
- }
22
- dateWithTime(date) {
23
- if (!date)
24
- return "";
25
- var value = date.split("T");
26
- return value[0] + " " + value[1].split(".")[0];
27
- }
28
- areObjectsEqual(obj1, obj2) {
29
- return JSON.stringify(obj1) === JSON.stringify(obj2);
30
- }
31
- removeDuplicateObjects(originalArray) {
32
- const uniqueArray = [];
33
- originalArray.forEach((obj) => {
34
- if (!uniqueArray.some((uniqueObj) => this.areObjectsEqual(obj, uniqueObj))) {
35
- uniqueArray.push(obj);
36
- }
37
- });
38
- return uniqueArray;
39
- }
40
- validateTwoDigitFormat(number) {
41
- if (number.length == 1)
42
- number = "0" + number;
43
- return number;
44
- }
45
- }
46
- FunctionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FunctionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
- FunctionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FunctionsService, providedIn: 'root' });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FunctionsService, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- providedIn: 'root'
52
- }]
53
- }], ctorParameters: function () { return []; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvZnVuY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixnQkFBZ0IsQ0FBQztJQUdqQixRQUFRLENBQUUsSUFBSTtRQUNiLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLElBQUksTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUE7UUFDNUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxPQUFPLENBQUUsSUFBSTtRQUNYLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN4QyxJQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUcsZ0JBQWdCLENBQUE7UUFDakMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUUsSUFBSTtRQUNWLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUNoRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUN2RSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUNoRCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVc7UUFDdEIsSUFBRyxDQUFDLElBQUk7WUFBRSxPQUFPLEVBQUUsQ0FBQTtRQUNuQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzNCLE9BQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUyxFQUFFLElBQVM7UUFDbEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELHNCQUFzQixDQUFDLGFBQW9CO1FBQ3pDLE1BQU0sV0FBVyxHQUFVLEVBQUUsQ0FBQztRQUM5QixhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxNQUFjO1FBQzNDLElBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUE7UUFDNUMsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOzs2R0FqRFUsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGdW5jdGlvbnNTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcblxyXG4gIGRhdGVGb3JtIChkYXRlKSB7XHJcbiAgIGxldCBkYXRhID0gbmV3IERhdGUoZGF0ZSlcclxuICAgbGV0IGNoYW5nZSA9IGAke2RhdGEuZ2V0RnVsbFllYXIoKX0vJHtkYXRhLmdldE1vbnRoKCkgKyAxfS8ke2RhdGEuZ2V0RGF0ZSgpfWBcclxuICAgIHJldHVybiAoY2hhbmdlKVxyXG4gIH1cclxuXHJcbiAgZGF0ZUlzbyAoZGF0ZSkge1xyXG4gICAgbGV0IGRhdGEgPSBkYXRlLnRvU3RyaW5nKCk7XHJcbiAgICBsZXQgY3V0ID0gZGF0YS5yZXBsYWNlKC8oLiopXFxULiovLCAnJDEnKVxyXG4gICAgbGV0IGFkZCAgPSBgJHtjdXR9VDA1OjAwOjAwLjAwMFpgXHJcbiAgICBsZXQgZmVjaGEgPSBhZGQucmVwbGFjZSgvKC4qKVxcVC4qLywgJyQxJylcclxuICAgIHJldHVybiAoZmVjaGEpXHJcbiAgfVxyXG5cclxuICBkYXRlREIgKGRhdGUpIHtcclxuICAgIGxldCBkYXkgPSB0aGlzLnZhbGlkYXRlVHdvRGlnaXRGb3JtYXQoZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKSlcclxuICAgIGxldCBtb250aCA9IHRoaXMudmFsaWRhdGVUd29EaWdpdEZvcm1hdCgoZGF0ZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkpXHJcbiAgICByZXR1cm4gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfS0ke21vbnRofS0ke2RheX1gXHJcbiAgfVxyXG5cclxuICBkYXRlV2l0aFRpbWUoZGF0ZTpzdHJpbmcpOnN0cmluZ3tcclxuICAgIGlmKCFkYXRlKSByZXR1cm4gXCJcIlxyXG4gICAgdmFyIHZhbHVlID0gZGF0ZS5zcGxpdChcIlRcIilcclxuICAgIHJldHVybiAgdmFsdWVbMF0gKyBcIiBcIiArIHZhbHVlWzFdLnNwbGl0KFwiLlwiKVswXVxyXG4gIH1cclxuXHJcbiAgYXJlT2JqZWN0c0VxdWFsKG9iajE6IGFueSwgb2JqMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqMSkgPT09IEpTT04uc3RyaW5naWZ5KG9iajIpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRHVwbGljYXRlT2JqZWN0cyhvcmlnaW5hbEFycmF5OiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGNvbnN0IHVuaXF1ZUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgb3JpZ2luYWxBcnJheS5mb3JFYWNoKChvYmopID0+IHtcclxuICAgICAgaWYgKCF1bmlxdWVBcnJheS5zb21lKCh1bmlxdWVPYmopID0+IHRoaXMuYXJlT2JqZWN0c0VxdWFsKG9iaiwgdW5pcXVlT2JqKSkpIHtcclxuICAgICAgICB1bmlxdWVBcnJheS5wdXNoKG9iaik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB1bmlxdWVBcnJheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVUd29EaWdpdEZvcm1hdChudW1iZXI6IHN0cmluZyk6c3RyaW5ne1xyXG4gICAgaWYobnVtYmVyLmxlbmd0aCA9PSAxKSBudW1iZXIgPSBcIjBcIiArIG51bWJlclxyXG4gICAgcmV0dXJuIG51bWJlclxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,58 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { GeneratePdfComponent } from '../brainloper-ui/components/report/generate-pdf/generate-pdf.component';
3
- import { TemplateFuelComponent } from '../brainloper-ui/components/report/template-fuel/template-fuel.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/material/dialog";
6
- export class GeneratePdfService {
7
- constructor(dialog) {
8
- this.dialog = dialog;
9
- }
10
- getPdfOt(data, autoGenerateData) {
11
- let autoGenerate = false;
12
- if (autoGenerateData) {
13
- autoGenerate = autoGenerateData;
14
- }
15
- return new Promise((resolve, rejects) => {
16
- let screen = "850px";
17
- // if ( window.screen.width<1000) {
18
- // screen = "100vw"
19
- // }
20
- this.dialog.open(GeneratePdfComponent, {
21
- data: {
22
- data,
23
- autoGenerate: autoGenerate
24
- },
25
- width: screen
26
- }).afterClosed().subscribe((res) => {
27
- return resolve(true);
28
- });
29
- });
30
- }
31
- getPdfFo(data, autoGenerateData) {
32
- let autoGenerate = false;
33
- if (autoGenerateData) {
34
- autoGenerate = autoGenerateData;
35
- }
36
- return new Promise((resolve, rejects) => {
37
- let screen = "850px";
38
- this.dialog.open(TemplateFuelComponent, {
39
- data: {
40
- data,
41
- autoGenerate: autoGenerate
42
- },
43
- width: screen
44
- }).afterClosed().subscribe((res) => {
45
- return resolve(true);
46
- });
47
- });
48
- }
49
- }
50
- GeneratePdfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneratePdfService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
51
- GeneratePdfService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneratePdfService, providedIn: 'root' });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneratePdfService, decorators: [{
53
- type: Injectable,
54
- args: [{
55
- providedIn: 'root'
56
- }]
57
- }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvZ2VuZXJhdGUtcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQzs7O0FBT2pILE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFDVSxNQUFnQjtRQUFoQixXQUFNLEdBQU4sTUFBTSxDQUFVO0lBQ3RCLENBQUM7SUFHTCxRQUFRLENBQUMsSUFBa0IsRUFBRSxnQkFBeUI7UUFDcEQsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFBO1FBQ3hCLElBQUcsZ0JBQWdCLEVBQUM7WUFDbEIsWUFBWSxHQUFHLGdCQUFnQixDQUFBO1NBQ2hDO1FBRUgsT0FBTyxJQUFJLE9BQU8sQ0FBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN2QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUE7WUFDcEIsbUNBQW1DO1lBQ25DLHFCQUFxQjtZQUNyQixJQUFJO1lBRUosSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ3JDLElBQUksRUFBQztvQkFDSCxJQUFJO29CQUNKLFlBQVksRUFBRSxZQUFZO2lCQUMzQjtnQkFDRCxLQUFLLEVBQUMsTUFBTTthQUNiLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdEIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNGLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBa0IsRUFBRSxnQkFBeUI7UUFDcEQsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFBO1FBQ3hCLElBQUcsZ0JBQWdCLEVBQUM7WUFDbEIsWUFBWSxHQUFHLGdCQUFnQixDQUFBO1NBQ2hDO1FBRUgsT0FBTyxJQUFJLE9BQU8sQ0FBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN2QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUE7WUFFcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7Z0JBQ3RDLElBQUksRUFBQztvQkFDSCxJQUFJO29CQUNKLFlBQVksRUFBRSxZQUFZO2lCQUMzQjtnQkFDRCxLQUFLLEVBQUMsTUFBTTthQUNiLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdEIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNGLENBQUM7OytHQWxEVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEdlbmVyYXRlUGRmQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJhaW5sb3Blci11aS9jb21wb25lbnRzL3JlcG9ydC9nZW5lcmF0ZS1wZGYvZ2VuZXJhdGUtcGRmLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlRnVlbENvbXBvbmVudCB9IGZyb20gJy4uL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtZnVlbC90ZW1wbGF0ZS1mdWVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUGRmT3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC90ZW1wbGF0ZS1wZGYtb3QnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVBkZkZvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQvdGVtcGxhdGUtcGZkLWZvJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyYXRlUGRmU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6TWF0RGlhbG9nXHJcbiAgKSB7IH1cclxuXHJcblxyXG4gIGdldFBkZk90KGRhdGE6VGVtcGxhdGVQZGZPdCwgYXV0b0dlbmVyYXRlRGF0YT86Ym9vbGVhbil7XHJcbiAgICBsZXQgYXV0b0dlbmVyYXRlID0gZmFsc2VcclxuICAgIGlmKGF1dG9HZW5lcmF0ZURhdGEpe1xyXG4gICAgICBhdXRvR2VuZXJhdGUgPSBhdXRvR2VuZXJhdGVEYXRhXHJcbiAgICB9XHJcblxyXG4gIHJldHVybiBuZXcgUHJvbWlzZSggKHJlc29sdmUsIHJlamVjdHMpID0+IHtcclxuICAgIGxldCBzY3JlZW4gPSBcIjg1MHB4XCJcclxuICAgIC8vIGlmICggd2luZG93LnNjcmVlbi53aWR0aDwxMDAwKSB7XHJcbiAgICAvLyAgIHNjcmVlbiA9IFwiMTAwdndcIlxyXG4gICAgLy8gfVxyXG5cclxuICAgIHRoaXMuZGlhbG9nLm9wZW4oR2VuZXJhdGVQZGZDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTp7XHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBhdXRvR2VuZXJhdGU6IGF1dG9HZW5lcmF0ZVxyXG4gICAgICB9LFxyXG4gICAgICB3aWR0aDpzY3JlZW5cclxuICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCAocmVzKSA9PiB7XHJcbiAgICAgIHJldHVybiByZXNvbHZlKHRydWUpXHJcbiAgICB9KVxyXG4gIH0pXHJcbiAgfVxyXG5cclxuICBnZXRQZGZGbyhkYXRhOlRlbXBsYXRlUGRmRm8sIGF1dG9HZW5lcmF0ZURhdGE/OmJvb2xlYW4pe1xyXG4gICAgbGV0IGF1dG9HZW5lcmF0ZSA9IGZhbHNlXHJcbiAgICBpZihhdXRvR2VuZXJhdGVEYXRhKXtcclxuICAgICAgYXV0b0dlbmVyYXRlID0gYXV0b0dlbmVyYXRlRGF0YVxyXG4gICAgfVxyXG5cclxuICByZXR1cm4gbmV3IFByb21pc2UoIChyZXNvbHZlLCByZWplY3RzKSA9PiB7XHJcbiAgICBsZXQgc2NyZWVuID0gXCI4NTBweFwiXHJcblxyXG4gICAgdGhpcy5kaWFsb2cub3BlbihUZW1wbGF0ZUZ1ZWxDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTp7XHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBhdXRvR2VuZXJhdGU6IGF1dG9HZW5lcmF0ZVxyXG4gICAgICB9LFxyXG4gICAgICB3aWR0aDpzY3JlZW5cclxuICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCAocmVzKSA9PiB7XHJcbiAgICAgIHJldHVybiByZXNvbHZlKHRydWUpXHJcbiAgICB9KVxyXG4gIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,154 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpParams } from '@angular/common/http';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common/http";
5
- import * as i2 from "./message.service";
6
- export class HttpService {
7
- constructor(http, message) {
8
- this.http = http;
9
- this.message = message;
10
- }
11
- getData(url, params) {
12
- let data = new HttpParams();
13
- if (params) {
14
- params.forEach(element => {
15
- data = data.append(`${element.id}`, `${element.value}`);
16
- });
17
- }
18
- return this.http.get(url, { params: data });
19
- }
20
- postData(url, body, params) {
21
- let data = new HttpParams();
22
- if (params) {
23
- params.forEach(element => {
24
- data = data.append(`${element.id}`, `${element.value}`);
25
- });
26
- }
27
- return this.http.post(url, body, { params: data });
28
- }
29
- putData(url, body, params) {
30
- let data = new HttpParams();
31
- if (params) {
32
- params.forEach(element => {
33
- data = data.append(`${element.id}`, `${element.value}`);
34
- });
35
- }
36
- return this.http.put(url, body, { params: data });
37
- }
38
- deleteData(url, params) {
39
- let data = new HttpParams();
40
- if (params) {
41
- params.forEach(element => {
42
- data = data.append(`${element.id}`, `${element.value}`);
43
- });
44
- }
45
- return this.http.delete(url, { params: data });
46
- }
47
- getDataPromise(url, params) {
48
- let data = new HttpParams();
49
- if (params) {
50
- params.forEach(element => {
51
- data = data.append(`${element.id}`, `${element.value}`);
52
- });
53
- }
54
- return new Promise((resolve, reject) => {
55
- this.http.get(url, { params: data }).subscribe(res => resolve(res), err => reject(err));
56
- });
57
- }
58
- postDataPromise(url, body, params) {
59
- let data = new HttpParams();
60
- if (params) {
61
- params.forEach(element => {
62
- data = data.append(`${element.id}`, `${element.value}`);
63
- });
64
- }
65
- return new Promise((resolve, reject) => {
66
- this.http.post(url, body, { params: data }).subscribe(res => resolve(res), err => reject(err));
67
- });
68
- }
69
- putDataPromise(url, body, params) {
70
- let data = new HttpParams();
71
- if (params) {
72
- params.forEach(element => {
73
- data = data.append(`${element.id}`, `${element.value}`);
74
- });
75
- }
76
- return new Promise((resolve, reject) => {
77
- this.http.put(url, body, { params: data }).subscribe(res => resolve(res), err => reject(err));
78
- });
79
- }
80
- deleteDataPromise(url, params) {
81
- let data = new HttpParams();
82
- if (params) {
83
- params.forEach(element => {
84
- data = data.append(`${element.id}`, `${element.value}`);
85
- });
86
- }
87
- return new Promise((resolve, reject) => {
88
- this.http.delete(url, { params: data }).subscribe(res => resolve(res), err => reject(err));
89
- });
90
- }
91
- getDataBody(url, params) {
92
- let data = new HttpParams();
93
- if (params) {
94
- params.forEach(element => {
95
- data = data.append(`${element.id}`, `${element.value}`);
96
- });
97
- }
98
- return new Promise((resolve, reject) => {
99
- this.http.get(url, { params: data }).subscribe(res => {
100
- if (res['code'] === 0 && res['body']) {
101
- resolve(res['body']);
102
- }
103
- else {
104
- resolve(null);
105
- this.message.Error("Error", res['message']);
106
- }
107
- }, err => reject(err));
108
- });
109
- }
110
- postDataBody(url, body, params) {
111
- let data = new HttpParams();
112
- if (params) {
113
- params.forEach(element => {
114
- data = data.append(`${element.id}`, `${element.value}`);
115
- });
116
- }
117
- return new Promise((resolve, reject) => {
118
- this.http.post(url, body, { params: data }).subscribe(res => {
119
- if (res['code'] === 0 && res['body']) {
120
- resolve(res['body']);
121
- }
122
- else {
123
- resolve(null);
124
- this.message.Error("Error", res['message']);
125
- }
126
- }, err => reject(err));
127
- });
128
- }
129
- putDataBody(url, body, params) {
130
- let data = new HttpParams();
131
- if (params) {
132
- params.forEach(element => {
133
- data = data.append(`${element.id}`, `${element.value}`);
134
- });
135
- }
136
- return new Promise((resolve, reject) => {
137
- this.http.put(url, body, { params: data }).subscribe(res => {
138
- if (res['code'] === 0 && res['body']) {
139
- resolve(res['body']);
140
- }
141
- else {
142
- resolve(null);
143
- this.message.Error("Error", res['message']);
144
- }
145
- }, err => reject(err));
146
- });
147
- }
148
- }
149
- HttpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HttpService, deps: [{ token: i1.HttpClient }, { token: i2.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
150
- HttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HttpService });
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HttpService, decorators: [{
152
- type: Injectable
153
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.MessageService }]; } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUc5RCxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNVLElBQWlCLEVBQ2pCLE9BQXVCO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFDN0IsQ0FBQztJQUVMLE9BQU8sQ0FBQyxHQUFVLEVBQUUsTUFBTztRQUV6QixJQUFJLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO1FBQzNCLElBQUcsTUFBTSxFQUFDO1lBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVUsRUFBRSxJQUFRLEVBQUUsTUFBTztRQUVwQyxJQUFJLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO1FBQzNCLElBQUcsTUFBTSxFQUFDO1lBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMs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LENBQUMsQ0FBQTtJQUNKLENBQUM7O3dHQWpMVSxXQUFXOzRHQUFYLFdBQVc7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBIdHRwU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwIDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgbWVzc2FnZTogTWVzc2FnZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBnZXREYXRhKHVybDpzdHJpbmcsIHBhcmFtcz8pe1xyXG5cclxuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgaWYocGFyYW1zKXtcclxuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcclxuICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7cGFyYW1zOmRhdGF9KVxyXG4gIH1cclxuXHJcbiAgcG9zdERhdGEodXJsOnN0cmluZywgYm9keTphbnksIHBhcmFtcz8pe1xyXG5cclxuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgaWYocGFyYW1zKXtcclxuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcclxuICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgYm9keSwge3BhcmFtczpkYXRhfSlcclxuICB9XHJcblxyXG4gIHB1dERhdGEodXJsOnN0cmluZywgYm9keTphbnksIHBhcmFtcz8pe1xyXG5cclxuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgaWYocGFyYW1zKXtcclxuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcclxuICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodXJsLCBib2R5LCB7cGFyYW1zOmRhdGF9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlRGF0YSh1cmw6c3RyaW5nLCBwYXJhbXM/KXtcclxuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgaWYocGFyYW1zKXtcclxuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcclxuICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodXJsLCB7cGFyYW1zOmRhdGF9KVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YVByb21pc2UodXJsOnN0cmluZywgcGFyYW1zPyl7XHJcbiAgICBsZXQgZGF0YSA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgIGlmKHBhcmFtcyl7XHJcbiAgICBwYXJhbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgIGRhdGEgPSBkYXRhLmFwcGVuZChgJHtlbGVtZW50LmlkfWAsIGAke2VsZW1lbnQudmFsdWV9YCk7XHJcbiAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57XHJcbiAgICAgIHRoaXMuaHR0cC5nZXQodXJsLCB7cGFyYW1zOmRhdGF9KS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzPT5yZXNvbHZlKHJlcyksXHJcbiAgICAgICAgZXJyPT5yZWplY3QoZXJyKVxyXG4gICAgICApXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcG9zdERhdGFQcm9taXNlKHVybDpzdHJpbmcsIGJvZHk6YW55LCBwYXJhbXM/KXtcclxuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgaWYocGFyYW1zKXtcclxuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcclxuICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntcclxuICAgICAgdGhpcy5odHRwLnBvc3QodXJsLCBib2R5LCB7cGFyYW1zOmRhdGF9KS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzPT5yZXNvbHZlKHJlcyksXHJcbiAgICAgICAgZXJyPT5yZWplY3QoZXJyKVxyXG4gICAgICApXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHV0RGF0YVByb21pc2UodXJsOnN0cmluZywgYm9keTphbnksIHBhcmFtcz8pe1xyXG4gICAgbGV0IGRhdGEgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICBpZihwYXJhbXMpe1xyXG4gICAgcGFyYW1zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICBkYXRhID0gZGF0YS5hcHBlbmQoYCR7ZWxlbWVudC5pZH1gLCBgJHtlbGVtZW50LnZhbHVlfWApO1xyXG4gICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e1xyXG4gICAgICB0aGlzLmh0dHAucHV0KHVybCwgYm9keSwge3BhcmFtczpkYXRhfSkuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlcz0+cmVzb2x2ZShyZXMpLFxyXG4gICAgICAgIGVycj0+cmVqZWN0KGVycilcclxuICAgICAgKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZURhdGFQcm9taXNlKHVybDpzdHJpbmcsIHBhcmFtcz8pe1xyXG4gICAgbGV0IGRhdGEgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICBpZihwYXJhbXMpe1xyXG4gICAgcGFyYW1zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICBkYXRhID0gZGF0YS5hcHBlbmQoYCR7ZWxlbWVudC5pZH1gLCBgJHtlbGVtZW50LnZhbHVlfWApO1xyXG4gICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e1xyXG4gICAgICB0aGlzLmh0dHAuZGVsZXRlKHVybCwge3BhcmFtczpkYXRhfSkuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlcz0+cmVzb2x2ZShyZXMpLFxyXG4gICAgICAgIGVycj0+cmVqZWN0KGVycilcclxuICAgICAgKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldERhdGFCb2R5PFQ+KHVybDpzdHJpbmcsIHBhcmFtcz8pOiBQcm9taXNlPFQ+e1xyXG4gICAgbGV0IGRhdGEgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICBpZihwYXJhbXMpe1xyXG4gICAgcGFyYW1zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICBkYXRhID0gZGF0YS5hcHBlbmQoYCR7ZWxlbWVudC5pZH1gLCBgJHtlbGVtZW50LnZhbHVlfWApO1xyXG4gICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e1xyXG4gICAgICB0aGlzLmh0dHAuZ2V0KHVybCwge3BhcmFtczpkYXRhfSkuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlcz0+IHtcclxuICAgICAgICAgIGlmKHJlc1snY29kZSddID09PSAwICYmIHJlc1snYm9keSddKXtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXNbJ2JvZHknXSBhcyBUKVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHJlc29sdmUobnVsbClcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlLkVycm9yKFwiRXJyb3JcIiwgcmVzWydtZXNzYWdlJ10pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgLFxyXG4gICAgICAgIGVycj0+cmVqZWN0KGVycilcclxuICAgICAgKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBvc3REYXRhQm9keTxUPih1cmw6c3RyaW5nLCBib2R5OmFueSwgcGFyYW1zPyk6IFByb21pc2U8VD57XHJcbiAgICBsZXQgZGF0YSA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgIGlmKHBhcmFtcyl7XHJcbiAgICBwYXJhbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgIGRhdGEgPSBkYXRhLmFwcGVuZChgJHtlbGVtZW50LmlkfWAsIGAke2VsZW1lbnQudmFsdWV9YCk7XHJcbiAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57XHJcbiAgICAgIHRoaXMuaHR0cC5wb3N0KHVybCwgYm9keSwge3BhcmFtczpkYXRhfSkuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlcz0+IHtcclxuICAgICAgICAgIGlmKHJlc1snY29kZSddID09PSAwICYmIHJlc1snYm9keSddKXtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXNbJ2JvZHknXSBhcyBUKVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHJlc29sdmUobnVsbClcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlLkVycm9yKFwiRXJyb3JcIiwgcmVzWydtZXNzYWdlJ10pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgLFxyXG4gICAgICAgIGVycj0+cmVqZWN0KGVycilcclxuICAgICAgKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHB1dERhdGFCb2R5PFQ+KHVybDpzdHJpbmcsIGJvZHk6YW55LCBwYXJhbXM/KTogUHJvbWlzZTxUPntcclxuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgaWYocGFyYW1zKXtcclxuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcclxuICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntcclxuICAgICAgdGhpcy5odHRwLnB1dCh1cmwsIGJvZHksIHtwYXJhbXM6ZGF0YX0pLnN1YnNjcmliZShcclxuICAgICAgICByZXM9PiB7XHJcbiAgICAgICAgICBpZihyZXNbJ2NvZGUnXSA9PT0gMCAmJiByZXNbJ2JvZHknXSl7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzWydib2R5J10gYXMgVClcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICByZXNvbHZlKG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZS5FcnJvcihcIkVycm9yXCIsIHJlc1snbWVzc2FnZSddKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICxcclxuICAgICAgICBlcnI9PnJlamVjdChlcnIpXHJcbiAgICAgIClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,28 +0,0 @@
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: "14.3.0", ngImport: i0, type: LoadingComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
20
- LoadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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: "14.3.0", 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==
@@ -1,115 +0,0 @@
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: "14.3.0", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
108
- LocalStorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LocalStorageService, providedIn: 'root' });
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", 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=