http-request-manager 19.0.0 → 19.2.5

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 (166) hide show
  1. package/README.md +585 -300
  2. package/fesm2022/http-request-manager.mjs +9434 -3133
  3. package/fesm2022/http-request-manager.mjs.map +1 -1
  4. package/package.json +7 -9
  5. package/types/http-request-manager.d.ts +3546 -0
  6. package/esm2022/http-request-manager.mjs +0 -5
  7. package/esm2022/lib/http-request-manager.module.mjs +0 -186
  8. package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -71
  9. package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -45
  10. package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
  11. package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +0 -184
  12. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
  13. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
  14. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
  15. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
  16. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
  17. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
  18. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
  19. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  20. package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -315
  21. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -270
  22. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -67
  23. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.mjs +0 -9
  24. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.mjs +0 -12
  25. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  26. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +0 -336
  27. package/esm2022/lib/index.mjs +0 -4
  28. package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
  29. package/esm2022/lib/interceptors/index.mjs +0 -5
  30. package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
  31. package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
  32. package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
  33. package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
  34. package/esm2022/lib/models/config-http-options.model.mjs +0 -18
  35. package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
  36. package/esm2022/lib/models/config-options.model.mjs +0 -12
  37. package/esm2022/lib/models/config-token.model.mjs +0 -8
  38. package/esm2022/lib/models/data-type.enum.mjs +0 -7
  39. package/esm2022/lib/models/database-storage.model.mjs +0 -10
  40. package/esm2022/lib/models/index.mjs +0 -7
  41. package/esm2022/lib/models/retry-options.model.mjs +0 -10
  42. package/esm2022/lib/services/database-manager-services/database.manager.service.mjs +0 -119
  43. package/esm2022/lib/services/database-manager-services/db.storage.service.mjs +0 -143
  44. package/esm2022/lib/services/database-manager-services/index.mjs +0 -4
  45. package/esm2022/lib/services/database-manager-services/models/table-schema.mjs +0 -20
  46. package/esm2022/lib/services/index.mjs +0 -6
  47. package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -4
  48. package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -302
  49. package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +0 -277
  50. package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
  51. package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
  52. package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -17
  53. package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
  54. package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -12
  55. package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
  56. package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +0 -199
  57. package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
  58. package/esm2022/lib/services/request-manager-services/index.mjs +0 -6
  59. package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +0 -170
  60. package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -191
  61. package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
  62. package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
  63. package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
  64. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -33
  65. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
  66. package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -360
  67. package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
  68. package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -21
  69. package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -3
  70. package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
  71. package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +0 -12
  72. package/esm2022/lib/services/utils/app.service.mjs +0 -26
  73. package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
  74. package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
  75. package/esm2022/lib/services/utils/encryption/index.mjs +0 -4
  76. package/esm2022/lib/services/utils/encryption/random.mjs +0 -52
  77. package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
  78. package/esm2022/lib/services/utils/headers.service.mjs +0 -21
  79. package/esm2022/lib/services/utils/index.mjs +0 -6
  80. package/esm2022/lib/services/utils/object-merger.service.mjs +0 -70
  81. package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
  82. package/esm2022/lib/services/utils/utils.service.mjs +0 -155
  83. package/esm2022/lib/services/ws-manager-service/models/assortment-data.model.mjs +0 -10
  84. package/esm2022/lib/services/ws-manager-service/websocket.service.mjs +0 -133
  85. package/esm2022/public-api.mjs +0 -11
  86. package/http-request-manager-19.0.0.tgz +0 -0
  87. package/index.d.ts +0 -5
  88. package/lib/http-request-manager.module.d.ts +0 -35
  89. package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -19
  90. package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -32
  91. package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
  92. package/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.d.ts +0 -55
  93. package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
  94. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
  95. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
  96. package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
  97. package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
  98. package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  99. package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
  100. package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  101. package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -107
  102. package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -122
  103. package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
  104. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  105. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.d.ts +0 -14
  106. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  107. package/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.d.ts +0 -106
  108. package/lib/index.d.ts +0 -3
  109. package/lib/interceptors/credentials.interceptor.d.ts +0 -8
  110. package/lib/interceptors/index.d.ts +0 -4
  111. package/lib/interceptors/models/error-settings.model.d.ts +0 -10
  112. package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
  113. package/lib/interceptors/request-error.interceptor.d.ts +0 -10
  114. package/lib/interceptors/request-header.interceptor.d.ts +0 -15
  115. package/lib/models/config-http-options.model.d.ts +0 -21
  116. package/lib/models/config-local-storage-options.model.d.ts +0 -13
  117. package/lib/models/config-options.model.d.ts +0 -12
  118. package/lib/models/config-token.model.d.ts +0 -8
  119. package/lib/models/data-type.enum.d.ts +0 -5
  120. package/lib/models/database-storage.model.d.ts +0 -10
  121. package/lib/models/index.d.ts +0 -6
  122. package/lib/models/retry-options.model.d.ts +0 -10
  123. package/lib/services/database-manager-services/database.manager.service.d.ts +0 -31
  124. package/lib/services/database-manager-services/db.storage.service.d.ts +0 -26
  125. package/lib/services/database-manager-services/index.d.ts +0 -3
  126. package/lib/services/database-manager-services/models/table-schema.d.ts +0 -11
  127. package/lib/services/index.d.ts +0 -4
  128. package/lib/services/local-storage-manager-service/index.d.ts +0 -3
  129. package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
  130. package/lib/services/local-storage-manager-service/local-storage-signals-manager.service.d.ts +0 -64
  131. package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
  132. package/lib/services/local-storage-manager-service/models/index.d.ts +0 -5
  133. package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
  134. package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
  135. package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -13
  136. package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
  137. package/lib/services/request-manager-services/http-manager-signals.service.d.ts +0 -38
  138. package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
  139. package/lib/services/request-manager-services/index.d.ts +0 -4
  140. package/lib/services/request-manager-services/request-signals.service.d.ts +0 -26
  141. package/lib/services/request-manager-services/request.service.d.ts +0 -28
  142. package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
  143. package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
  144. package/lib/services/request-manager-services/rxjs-operators/index.d.ts +0 -4
  145. package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -2
  146. package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
  147. package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -64
  148. package/lib/services/request-manager-state-service/index.d.ts +0 -2
  149. package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -30
  150. package/lib/services/request-manager-state-service/models/index.d.ts +0 -2
  151. package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
  152. package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +0 -14
  153. package/lib/services/utils/app.service.d.ts +0 -8
  154. package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
  155. package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
  156. package/lib/services/utils/encryption/index.d.ts +0 -3
  157. package/lib/services/utils/encryption/random.d.ts +0 -7
  158. package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
  159. package/lib/services/utils/headers.service.d.ts +0 -10
  160. package/lib/services/utils/index.d.ts +0 -5
  161. package/lib/services/utils/object-merger.service.d.ts +0 -14
  162. package/lib/services/utils/path-query.service.d.ts +0 -11
  163. package/lib/services/utils/utils.service.d.ts +0 -24
  164. package/lib/services/ws-manager-service/models/assortment-data.model.d.ts +0 -10
  165. package/lib/services/ws-manager-service/websocket.service.d.ts +0 -21
  166. package/public-api.d.ts +0 -7
@@ -1,155 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable, inject } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class UtilsService {
5
- constructor() {
6
- this.http = inject(HttpClient);
7
- this.lc = (str) => str.toLowerCase().replace(/[^\w\s]/g, '').replace(/\s+/g, '_');
8
- }
9
- isString(x) {
10
- return Object.prototype.toString.call(x) === '[object String]';
11
- }
12
- isObject(obj) {
13
- return Object.prototype.toString.call(obj) === '[object Object]';
14
- }
15
- JSONToString(value) {
16
- return (this.isObject(value)) ? JSON.stringify(value) : value;
17
- }
18
- stringToJSON(value) {
19
- return (this.isJSON(value)) ? JSON.parse(value) : value;
20
- }
21
- isJSON(str) {
22
- try {
23
- JSON.parse(str);
24
- }
25
- catch (e) {
26
- return false;
27
- }
28
- return true;
29
- }
30
- getValueByProp(obj, prop) {
31
- if (typeof obj === 'undefined')
32
- return false;
33
- return obj[prop];
34
- }
35
- objectsEqual(x, y) {
36
- const ok = Object.keys, tx = typeof x, ty = typeof y;
37
- return x && y && tx === 'object' && tx === ty ? (ok(x).length === ok(y).length &&
38
- ok(x).every((key) => this.objectsEqual(x[key], y[key]))) : (x === y);
39
- }
40
- getJSON(file) {
41
- return this.http.get(`assets/data/${file}`);
42
- }
43
- get today() {
44
- return new Date().getMilliseconds() / 1000;
45
- }
46
- base32ToHex(base32) {
47
- const base32chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
48
- const charToValue = (char) => base32chars.indexOf(char.toUpperCase());
49
- let bits = '';
50
- let hex = '';
51
- for (let i = 0; i < base32.length; i++) {
52
- const val = charToValue(base32.charAt(i));
53
- bits += val.toString(2).padStart(5, '0');
54
- }
55
- for (let i = 0; i + 4 <= bits.length; i += 4) {
56
- const chunk = bits.substr(i, 4);
57
- hex += parseInt(chunk, 2).toString(16);
58
- }
59
- return hex.toUpperCase();
60
- }
61
- binaryToHex(binary) {
62
- let hex = '';
63
- for (let i = 0; i < binary.length; i += 8) {
64
- const byte = binary.substr(i, 8);
65
- const decimal = parseInt(byte, 2);
66
- hex += decimal.toString(16).padStart(2, '0');
67
- }
68
- return hex.padStart(32, '0').substr(0, 32);
69
- }
70
- // y = years, m = months, w = weeks, d = days, hr = hours, mn = minutes else seconds
71
- // returns epoch time corresponding to the expiry type
72
- expires(str) {
73
- if (!str)
74
- return;
75
- const match = str.match(/[^0-9]+$/);
76
- const type = (match) ? str.slice(-match[0].length) : 0;
77
- const now = Math.floor(new Date().getTime() / 1000);
78
- let value = 0;
79
- switch (type) {
80
- case 'y':
81
- const years = parseInt(str.slice(0, -1));
82
- value = now + (years * 31556926);
83
- break;
84
- case 'm':
85
- const months = parseInt(str.slice(0, -1));
86
- value = now + (months * 2629743);
87
- break;
88
- case 'w':
89
- const weeks = parseInt(str.slice(0, -1));
90
- value = now + (weeks * 604800);
91
- break;
92
- case 'd':
93
- const days = parseInt(str.slice(0, -1));
94
- value = now + (days * 86400);
95
- break;
96
- case 'hr':
97
- const hrs = parseInt(str.slice(0, -2));
98
- value = now + (hrs * 3600);
99
- break;
100
- case 'mn':
101
- const min = parseInt(str.slice(0, -2));
102
- value = now + (min * 60);
103
- break;
104
- default: //seconds
105
- const sec = parseInt(str.slice(0, -1));
106
- value = now + (sec);
107
- break;
108
- }
109
- return value;
110
- }
111
- hasExpired(expiryDate) {
112
- if (!expiryDate || expiryDate === 0)
113
- return false;
114
- const currentTime = Math.floor(new Date().getTime() / 1000);
115
- return expiryDate < currentTime;
116
- }
117
- hasExpiry(setting) {
118
- return (setting?.expires) ? true : false;
119
- }
120
- expiresIn(expiryDate) {
121
- if (!expiryDate)
122
- return;
123
- const now = Math.floor(new Date().getTime() / 1000);
124
- let diff = expiryDate - now;
125
- if (diff <= 0)
126
- return "Expired";
127
- const units = [
128
- { label: 'y', seconds: 31536000 },
129
- { label: 'm', seconds: 2592000 },
130
- { label: 'w', seconds: 604800 },
131
- { label: 'd', seconds: 86400 },
132
- { label: 'h', seconds: 3600 },
133
- { label: 'min', seconds: 60 },
134
- { label: '', seconds: 1 },
135
- ];
136
- let result = [];
137
- for (const unit of units) {
138
- if (diff >= unit.seconds) {
139
- const value = Math.floor(diff / unit.seconds);
140
- diff %= unit.seconds;
141
- result.push(`${value}${unit.label}${value > 1 ? 's' : ''}`);
142
- }
143
- }
144
- return result.join(', ');
145
- }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
147
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, providedIn: 'root' }); }
148
- }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, decorators: [{
150
- type: Injectable,
151
- args: [{
152
- providedIn: 'root'
153
- }]
154
- }], ctorParameters: () => [] });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvdXRpbHMvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTyxZQUFZO0lBSXZCO1FBRkEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQW9MekIsT0FBRSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBbExwRSxDQUFDO0lBRWpCLFFBQVEsQ0FBQyxDQUFrQjtRQUN6QixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsQ0FBQTtJQUNoRSxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVE7UUFDZixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxpQkFBaUIsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQy9ELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixPQUFPLENBQUMsSUFB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LCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcblxuICBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpXG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBpc1N0cmluZyh4OiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHgpID09PSAnW29iamVjdCBTdHJpbmddJ1xuICB9XG5cbiAgaXNPYmplY3Qob2JqOiBhbnkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IE9iamVjdF0nXG4gIH1cblxuICBKU09OVG9TdHJpbmcodmFsdWU6IGFueSkge1xuICAgIHJldHVybiAodGhpcy5pc09iamVjdCh2YWx1ZSkpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWVcbiAgfVxuXG4gIHN0cmluZ1RvSlNPTih2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLmlzSlNPTih2YWx1ZSkpID8gSlNPTi5wYXJzZSh2YWx1ZSkgOiB2YWx1ZVxuICB9XG5cbiAgaXNKU09OKHN0cjogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIEpTT04ucGFyc2Uoc3RyKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZ2V0VmFsdWVCeVByb3Aob2JqOiBhbnksIHByb3A6IHN0cmluZykge1xuICAgIGlmKHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gb2JqW3Byb3BdXG4gIH1cblxuICBvYmplY3RzRXF1YWwoeDogYW55LCB5OiBhbnkpOiBib29sZWFuIHtcblxuICAgIGNvbnN0IG9rID0gT2JqZWN0LmtleXMsIHR4ID0gdHlwZW9mIHgsIHR5ID0gdHlwZW9mIHlcblxuICAgIHJldHVybiB4ICYmIHkgJiYgdHggPT09ICdvYmplY3QnICYmIHR4ID09PSB0eSA/IChcbiAgICAgIG9rKHgpLmxlbmd0aCA9PT0gb2soeSkubGVuZ3RoICYmXG4gICAgICAgIG9rKHgpLmV2ZXJ5KChrZXk6IGFueSkgPT4gdGhpcy5vYmplY3RzRXF1YWwoeFtrZXldLCB5W2tleV0pKVxuICAgICkgOiAoeCA9PT0geSlcblxuICB9XG5cbiAgZ2V0SlNPTihmaWxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgYXNzZXRzL2RhdGEvJHtmaWxlfWApXG4gIH1cblxuICBnZXQgdG9kYXkoKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0TWlsbGlzZWNvbmRzKCkgLyAxMDAwXG4gIH1cblxuICBiYXNlMzJUb0hleChiYXNlMzI6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICBjb25zdCBiYXNlMzJjaGFycyA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdcIlxuXG4gICAgY29uc3QgY2hhclRvVmFsdWUgPSAoY2hhcjogc3RyaW5nKSA9PiBiYXNlMzJjaGFycy5pbmRleE9mKGNoYXIudG9VcHBlckNhc2UoKSlcblxuICAgIGxldCBiaXRzID0gJydcbiAgICBsZXQgaGV4ID0gJydcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmFzZTMyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB2YWwgPSBjaGFyVG9WYWx1ZShiYXNlMzIuY2hhckF0KGkpKVxuICAgICAgYml0cyArPSB2YWwudG9TdHJpbmcoMikucGFkU3RhcnQoNSwgJzAnKVxuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpICsgNCA8PSBiaXRzLmxlbmd0aDsgaSArPSA0KSB7XG4gICAgICBjb25zdCBjaHVuayA9IGJpdHMuc3Vic3RyKGksIDQpXG4gICAgICBoZXggKz0gcGFyc2VJbnQoY2h1bmssIDIpLnRvU3RyaW5nKDE2KVxuICAgIH1cblxuICAgIHJldHVybiBoZXgudG9VcHBlckNhc2UoKVxuICB9XG5cbiAgYmluYXJ5VG9IZXgoYmluYXJ5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBoZXggPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJpbmFyeS5sZW5ndGg7IGkgKz0gOCkge1xuICAgICAgY29uc3QgYnl0ZSA9IGJpbmFyeS5zdWJzdHIoaSwgOCk7XG4gICAgICBjb25zdCBkZWNpbWFsID0gcGFyc2VJbnQoYnl0ZSwgMik7XG4gICAgICBoZXggKz0gZGVjaW1hbC50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKTtcbiAgICB9XG4gICAgcmV0dXJuIGhleC5wYWRTdGFydCgzMiwgJzAnKS5zdWJzdHIoMCwgMzIpO1xuICB9XG5cbiAgLy8geSA9IHllYXJzLCBtID0gbW9udGhzLCB3ID0gd2Vla3MsIGQgPSBkYXlzLCBociA9IGhvdXJzLCBtbiA9IG1pbnV0ZXMgZWxzZSBzZWNvbmRzXG4gIC8vIHJldHVybnMgZXBvY2ggdGltZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBleHBpcnkgdHlwZVxuICBleHBpcmVzKHN0cj86IHN0cmluZykge1xuXG4gICAgaWYoIXN0cikgcmV0dXJuXG5cbiAgICBjb25zdCBtYXRjaCA9IHN0ci5tYXRjaCgvW14wLTldKyQvKVxuXG4gICAgY29uc3QgdHlwZSA9IChtYXRjaCkgPyBzdHIuc2xpY2UoLW1hdGNoWzBdLmxlbmd0aCkgOiAwXG5cbiAgICBjb25zdCBub3cgPSBNYXRoLmZsb29yKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMClcblxuICAgIGxldCB2YWx1ZSA9IDA7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2VcbiAgICAgICd5JzpcbiAgICAgICAgY29uc3QgeWVhcnMgPSBwYXJzZUludChzdHIuc2xpY2UoMCwgLTEpKVxuICAgICAgICB2YWx1ZSA9IG5vdyArICh5ZWFycyAqIDMxNTU2OTI2KVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2VcbiAgICAgICdtJzpcbiAgICAgICAgY29uc3QgbW9udGhzID0gcGFyc2VJbnQoc3RyLnNsaWNlKDAsIC0xKSlcbiAgICAgICAgdmFsdWUgPSBub3cgKyAobW9udGhzICogMjYyOTc0MylcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlXG4gICAgICAndyc6XG4gICAgICAgIGNvbnN0IHdlZWtzID0gcGFyc2VJbnQoc3RyLnNsaWNlKDAsIC0xKSlcbiAgICAgICAgdmFsdWUgPSBub3cgKyAod2Vla3MgKiA2MDQ4MDApXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZVxuICAgICAgJ2QnOlxuICAgICAgICBjb25zdCBkYXlzID0gcGFyc2VJbnQoc3RyLnNsaWNlKDAsIC0xKSlcbiAgICAgICAgdmFsdWUgPSBub3cgKyAoZGF5cyAqIDg2NDAwKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2VcbiAgICAgICdocic6XG4gICAgICAgIGNvbnN0IGhycyA9IHBhcnNlSW50KHN0ci5zbGljZSgwLCAtMikpXG4gICAgICAgIHZhbHVlID0gbm93ICsgKGhycyAqIDM2MDApXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZVxuICAgICAgJ21uJzpcbiAgICAgICAgY29uc3QgbWluID0gcGFyc2VJbnQoc3RyLnNsaWNlKDAsIC0yKSlcbiAgICAgICAgdmFsdWUgPSBub3cgKyAobWluICogNjApXG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDogLy9zZWNvbmRzXG4gICAgICAgIGNvbnN0IHNlYyA9IHBhcnNlSW50KHN0ci5zbGljZSgwLCAtMSkpXG4gICAgICAgIHZhbHVlID0gbm93ICsgKHNlYylcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGhhc0V4cGlyZWQoZXhwaXJ5RGF0ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCFleHBpcnlEYXRlIHx8IGV4cGlyeURhdGUgPT09IDApIHJldHVybiBmYWxzZVxuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApXG4gICAgcmV0dXJuIGV4cGlyeURhdGUgPCBjdXJyZW50VGltZVxuICB9XG5cbiAgaGFzRXhwaXJ5KHNldHRpbmc6IGFueSkge1xuICAgIHJldHVybiAoc2V0dGluZz8uZXhwaXJlcykgPyB0cnVlIDogZmFsc2VcbiAgfVxuXG4gIGV4cGlyZXNJbihleHBpcnlEYXRlOiBudW1iZXIpIHtcblxuICAgIGlmICghZXhwaXJ5RGF0ZSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgbm93ID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApO1xuICAgIGxldCBkaWZmID0gZXhwaXJ5RGF0ZSAtIG5vdztcblxuICAgIGlmIChkaWZmIDw9IDApIHJldHVybiBcIkV4cGlyZWRcIjtcblxuICAgIGNvbnN0IHVuaXRzID0gW1xuICAgICAgICB7IGxhYmVsOiAneScsIHNlY29uZHM6IDMxNTM2MDAwIH0sXG4gICAgICAgIHsgbGFiZWw6ICdtJywgc2Vjb25kczogMjU5MjAwMCB9LFxuICAgICAgICB7IGxhYmVsOiAndycsIHNlY29uZHM6IDYwNDgwMCB9LFxuICAgICAgICB7IGxhYmVsOiAnZCcsIHNlY29uZHM6IDg2NDAwIH0sXG4gICAgICAgIHsgbGFiZWw6ICdoJywgc2Vjb25kczogMzYwMCB9LFxuICAgICAgICB7IGxhYmVsOiAnbWluJywgc2Vjb25kczogNjAgfSxcbiAgICAgICAgeyBsYWJlbDogJycsIHNlY29uZHM6IDEgfSxcbiAgICBdO1xuXG4gICAgbGV0IHJlc3VsdCA9IFtdO1xuXG4gICAgZm9yIChjb25zdCB1bml0IG9mIHVuaXRzKSB7XG4gICAgICAgIGlmIChkaWZmID49IHVuaXQuc2Vjb25kcykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLmZsb29yKGRpZmYgLyB1bml0LnNlY29uZHMpO1xuICAgICAgICAgICAgZGlmZiAlPSB1bml0LnNlY29uZHM7XG4gICAgICAgICAgICByZXN1bHQucHVzaChgJHt2YWx1ZX0ke3VuaXQubGFiZWx9JHt2YWx1ZSA+IDEgPyAncycgOiAnJ31gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQuam9pbignLCAnKTtcbiAgfVxuXG4gIGxjID0gKHN0cjogc3RyaW5nKSA9PiBzdHIudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXlxcd1xcc10vZywgJycpLnJlcGxhY2UoL1xccysvZywgJ18nKVxuXG59XG4iXX0=
@@ -1,10 +0,0 @@
1
- export class ChannelInfo {
2
- constructor(name = '', canSubscribe = false) {
3
- this.name = name;
4
- this.canSubscribe = canSubscribe;
5
- }
6
- static adapt(item) {
7
- return new ChannelInfo(item?.name, item?.canSubscribe);
8
- }
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzb3J0bWVudC1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy93cy1tYW5hZ2VyLXNlcnZpY2UvbW9kZWxzL2Fzc29ydG1lbnQtZGF0YS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNTLE9BQU8sRUFBRSxFQUNULGVBQWUsS0FBSztRQURwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1QsaUJBQVksR0FBWixZQUFZLENBQVE7SUFDMUIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksV0FBVyxDQUNwQixJQUFJLEVBQUUsSUFBSSxFQUNWLElBQUksRUFBRSxZQUFZLENBQ25CLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENoYW5uZWxJbmZvSW50ZXJmYWNlIHtcbiAgbmFtZTogc3RyaW5nXG4gIGNhblN1YnNjcmliZTogYm9vbGVhblxufVxuXG5leHBvcnQgY2xhc3MgQ2hhbm5lbEluZm8gaW1wbGVtZW50cyBDaGFubmVsSW5mb0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hbWUgPSAnJyxcbiAgICBwdWJsaWMgY2FuU3Vic2NyaWJlID0gZmFsc2UsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IENoYW5uZWxJbmZvIHtcblxuICAgIHJldHVybiBuZXcgQ2hhbm5lbEluZm8oXG4gICAgICBpdGVtPy5uYW1lLFxuICAgICAgaXRlbT8uY2FuU3Vic2NyaWJlLFxuICAgIClcblxuICB9XG5cbn1cblxuXG4iXX0=
@@ -1,133 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class WebsocketService {
5
- constructor() {
6
- this.socket = null;
7
- this.messages = new BehaviorSubject(null);
8
- this.messages$ = this.messages.asObservable();
9
- this.connectionStatus = new BehaviorSubject(false);
10
- this.connectionStatus$ = this.connectionStatus.asObservable();
11
- }
12
- connect(url, jwtToken) {
13
- if (this.socket)
14
- return;
15
- const URL = (jwtToken) ? `${url}?token=${jwtToken}` : url;
16
- this.socket = new WebSocket(URL);
17
- this.socket.onopen = () => {
18
- console.log(`📡 Connected to WebSocket`);
19
- this.connectionStatus.next(true);
20
- };
21
- this.socket.onmessage = (event) => {
22
- try {
23
- const data = JSON.parse(event.data);
24
- if (data.error && data.error === 'JWT_INVALID') {
25
- console.error('JWT validation failed. Authentication error!');
26
- this.connectionStatus.next(false);
27
- this.socket?.close();
28
- return;
29
- }
30
- this.messages.next(data);
31
- }
32
- catch (error) {
33
- console.error('Error parsing WebSocket message:', event.data);
34
- }
35
- };
36
- this.socket.onclose = () => {
37
- console.log('WebSocket connection closed');
38
- this.connectionStatus.next(false);
39
- this.socket = null;
40
- };
41
- this.socket.onerror = (error) => {
42
- console.error('WebSocket error:', error);
43
- this.connectionStatus.next(false);
44
- };
45
- }
46
- disconnect() {
47
- if (this.socket) {
48
- this.socket.close();
49
- this.socket = null;
50
- }
51
- }
52
- subscribeToChannel(channel) {
53
- if (this.socket?.readyState === WebSocket.OPEN) {
54
- this.socket.send(JSON.stringify({ type: 'subscribe', subscribedChannel: channel }));
55
- console.log(`💬 Subscribed to channel: ${channel}`);
56
- }
57
- else {
58
- console.error('WebSocket is not open. Cannot subscribe to channel.');
59
- }
60
- }
61
- unsubscribeToChannel(channel) {
62
- if (this.socket?.readyState === WebSocket.OPEN) {
63
- this.socket.send(JSON.stringify({ type: 'unsubscribe', subscribedChannel: channel }));
64
- console.log(`💬 Unsubscribed to channel: ${channel}`);
65
- }
66
- else {
67
- console.error('WebSocket is not open. Cannot unsubscribed to channel.');
68
- }
69
- }
70
- sendMessage(channel, content) {
71
- if (this.socket?.readyState === WebSocket.OPEN) {
72
- this.socket.send(JSON.stringify({ type: 'message', subscribedChannel: channel, content }));
73
- console.log(`💬 Send message: ${content}`);
74
- }
75
- else {
76
- console.error('WebSocket is not open. Cannot send message.');
77
- }
78
- }
79
- sendBroadcast(content) {
80
- if (this.socket?.readyState === WebSocket.OPEN) {
81
- this.socket.send(JSON.stringify({ type: 'broadcast', content }));
82
- console.log(`📢 Send broadcast: ${content}`);
83
- }
84
- else {
85
- console.error('WebSocket is not open. Cannot send broadcast.');
86
- }
87
- }
88
- getAllChannels() {
89
- if (this.socket?.readyState === WebSocket.OPEN) {
90
- this.socket.send(JSON.stringify({ type: 'getChannels' }));
91
- console.log('🗂️ List of all channels');
92
- }
93
- else {
94
- console.error('WebSocket is not open. Cannot request channels.');
95
- }
96
- }
97
- createChannel(channel) {
98
- if (this.socket?.readyState === WebSocket.OPEN) {
99
- this.socket.send(JSON.stringify({ type: 'createChannel', content: channel }));
100
- console.log('🗂️ Created channel:', channel);
101
- }
102
- else {
103
- console.error('WebSocket is not open. Cannot request channels.');
104
- }
105
- }
106
- deleteChannel(channel) {
107
- if (this.socket?.readyState === WebSocket.OPEN) {
108
- this.socket.send(JSON.stringify({ type: 'deleteChannel', content: channel }));
109
- console.log('🗂️ Delete channel:', channel);
110
- }
111
- else {
112
- console.error('WebSocket is not open. Cannot request channels.');
113
- }
114
- }
115
- getUsersInChannel(channel) {
116
- if (this.socket?.readyState === WebSocket.OPEN) {
117
- this.socket.send(JSON.stringify({ type: 'getUsers', subscribedChannel: channel }));
118
- console.log(`👥 List all users in channel: ${channel}`);
119
- }
120
- else {
121
- console.error('WebSocket is not open. Cannot request users.');
122
- }
123
- }
124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebsocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
125
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebsocketService, providedIn: 'root' }); }
126
- }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebsocketService, decorators: [{
128
- type: Injectable,
129
- args: [{
130
- providedIn: 'root',
131
- }]
132
- }] });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3dzLW1hbmFnZXItc2VydmljZS93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFLVSxXQUFNLEdBQXFCLElBQUksQ0FBQztRQUVoQyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDM0MsY0FBUyxHQUFvQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXpELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hELHNCQUFpQixHQUF3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7S0E2SHRGO0lBM0hDLE9BQU8sQ0FBQyxHQUFXLEVBQUUsUUFBaUI7UUFFcEMsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFeEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFVBQVUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUUxRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJ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SSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQzsrR0FuSVUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXZWJzb2NrZXRTZXJ2aWNlIHtcblxuICBwcml2YXRlIHNvY2tldDogV2ViU29ja2V0IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBtZXNzYWdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHVibGljIG1lc3NhZ2VzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5tZXNzYWdlcy5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIGNvbm5lY3Rpb25TdGF0dXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIGNvbm5lY3Rpb25TdGF0dXMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jb25uZWN0aW9uU3RhdHVzLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbm5lY3QodXJsOiBzdHJpbmcsIGp3dFRva2VuPzogc3RyaW5nKSB7XG5cbiAgICBpZiAodGhpcy5zb2NrZXQpIHJldHVybjtcblxuICAgIGNvbnN0IFVSTCA9IChqd3RUb2tlbikgPyBgJHt1cmx9P3Rva2VuPSR7and0VG9rZW59YCA6IHVybDtcblxuICAgIHRoaXMuc29ja2V0ID0gbmV3IFdlYlNvY2tldChVUkwpO1xuXG4gICAgdGhpcy5zb2NrZXQub25vcGVuID0gKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coYPCfk6EgQ29ubmVjdGVkIHRvIFdlYlNvY2tldGApO1xuICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzLm5leHQodHJ1ZSk7XG4gICAgfTtcblxuICAgIHRoaXMuc29ja2V0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZXZlbnQuZGF0YSk7XG5cbiAgICAgICAgaWYgKGRhdGEuZXJyb3IgJiYgZGF0YS5lcnJvciA9PT0gJ0pXVF9JTlZBTElEJykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0pXVCB2YWxpZGF0aW9uIGZhaWxlZC4gQXV0aGVudGljYXRpb24gZXJyb3IhJyk7XG4gICAgICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzLm5leHQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuc29ja2V0Py5jbG9zZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWVzc2FnZXMubmV4dChkYXRhKTtcblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBXZWJTb2NrZXQgbWVzc2FnZTonLCBldmVudC5kYXRhKTtcbiAgICAgIH1cblxuICAgIH07XG5cbiAgICB0aGlzLnNvY2tldC5vbmNsb3NlID0gKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldCBjb25uZWN0aW9uIGNsb3NlZCcpO1xuICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzLm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5zb2NrZXQgPSBudWxsO1xuICAgIH07XG5cbiAgICB0aGlzLnNvY2tldC5vbmVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXQgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzLm5leHQoZmFsc2UpO1xuICAgIH07XG4gIH1cblxuICBkaXNjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLnNvY2tldCkge1xuICAgICAgdGhpcy5zb2NrZXQuY2xvc2UoKTtcbiAgICAgIHRoaXMuc29ja2V0ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzdWJzY3JpYmVUb0NoYW5uZWwoY2hhbm5lbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdzdWJzY3JpYmUnLCBzdWJzY3JpYmVkQ2hhbm5lbDogY2hhbm5lbCB9KSk7XG4gICAgICBjb25zb2xlLmxvZyhg8J+SrCBTdWJzY3JpYmVkIHRvIGNoYW5uZWw6ICR7Y2hhbm5lbH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGlzIG5vdCBvcGVuLiBDYW5ub3Qgc3Vic2NyaWJlIHRvIGNoYW5uZWwuJyk7XG4gICAgfVxuICB9XG5cbiAgdW5zdWJzY3JpYmVUb0NoYW5uZWwoY2hhbm5lbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICd1bnN1YnNjcmliZScsIHN1YnNjcmliZWRDaGFubmVsOiBjaGFubmVsIH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5KsIFVuc3Vic2NyaWJlZCB0byBjaGFubmVsOiAke2NoYW5uZWx9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHVuc3Vic2NyaWJlZCB0byBjaGFubmVsLicpO1xuICAgIH1cbiAgfVxuXG4gIHNlbmRNZXNzYWdlKGNoYW5uZWw6IHN0cmluZywgY29udGVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdtZXNzYWdlJywgc3Vic2NyaWJlZENoYW5uZWw6IGNoYW5uZWwsIGNvbnRlbnQgfSkpO1xuICAgICAgICBjb25zb2xlLmxvZyhg8J+SrCBTZW5kIG1lc3NhZ2U6ICR7Y29udGVudH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGlzIG5vdCBvcGVuLiBDYW5ub3Qgc2VuZCBtZXNzYWdlLicpO1xuICAgIH1cbiAgfVxuXG4gIHNlbmRCcm9hZGNhc3QoY29udGVudDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdicm9hZGNhc3QnLCBjb250ZW50IH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5OiIFNlbmQgYnJvYWRjYXN0OiAke2NvbnRlbnR9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHNlbmQgYnJvYWRjYXN0LicpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFsbENoYW5uZWxzKCkge1xuICAgIGlmICh0aGlzLnNvY2tldD8ucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnZ2V0Q2hhbm5lbHMnIH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKCfwn5eC77iPIExpc3Qgb2YgYWxsIGNoYW5uZWxzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHJlcXVlc3QgY2hhbm5lbHMuJyk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQ2hhbm5lbChjaGFubmVsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zb2NrZXQ/LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5PUEVOKSB7XG4gICAgICB0aGlzLnNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ2NyZWF0ZUNoYW5uZWwnLCBjb250ZW50OiBjaGFubmVsIH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKCfwn5eC77iPIENyZWF0ZWQgY2hhbm5lbDonLCBjaGFubmVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGlzIG5vdCBvcGVuLiBDYW5ub3QgcmVxdWVzdCBjaGFubmVscy4nKTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVDaGFubmVsKGNoYW5uZWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvY2tldD8ucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnZGVsZXRlQ2hhbm5lbCcsIGNvbnRlbnQ6IGNoYW5uZWwgfSkpO1xuICAgICAgY29uc29sZS5sb2coJ/Cfl4LvuI8gRGVsZXRlIGNoYW5uZWw6JywgY2hhbm5lbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHJlcXVlc3QgY2hhbm5lbHMuJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VXNlcnNJbkNoYW5uZWwoY2hhbm5lbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdnZXRVc2VycycsIHN1YnNjcmliZWRDaGFubmVsOiBjaGFubmVsIH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5GlIExpc3QgYWxsIHVzZXJzIGluIGNoYW5uZWw6ICR7Y2hhbm5lbH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGlzIG5vdCBvcGVuLiBDYW5ub3QgcmVxdWVzdCB1c2Vycy4nKTtcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -1,11 +0,0 @@
1
- /*
2
- * Public API Surface of http-request-manager
3
- */
4
- export * from './lib/index';
5
- export * from './lib/http-request-manager.module';
6
- export * from './lib/http-request-services-demo/http-request-services-demo.component';
7
- export * from './lib/http-request-services-demo/database-data-demo/database-data-demo.component';
8
- export * from './lib/http-request-services-demo/local-storage-demo/local-storage-demo.component';
9
- export * from './lib/http-request-services-demo/request-manager-demo/request-manager-demo.component';
10
- export * from './lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxjQUFjLHVFQUF1RSxDQUFDO0FBRXRGLGNBQWMsa0ZBQWtGLENBQUM7QUFDakcsY0FBYyxrRkFBa0YsQ0FBQztBQUNqRyxjQUFjLHNGQUFzRixDQUFDO0FBQ3JHLGNBQWMsa0dBQWtHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGh0dHAtcmVxdWVzdC1tYW5hZ2VyXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LW1hbmFnZXIubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8uY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vZGF0YWJhc2UtZGF0YS1kZW1vL2RhdGFiYXNlLWRhdGEtZGVtby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vbG9jYWwtc3RvcmFnZS1kZW1vL2xvY2FsLXN0b3JhZ2UtZGVtby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLWRlbW8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1kZW1vL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1kZW1vLmNvbXBvbmVudCc7XG5cbiJdfQ==
Binary file
package/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="http-request-manager" />
5
- export * from './public-api';
@@ -1,35 +0,0 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import { ConfigOptions } from './models';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./http-request-services-demo/http-request-services-demo.component";
5
- import * as i2 from "./http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component";
6
- import * as i3 from "./http-request-services-demo/request-manager-demo/request-manager-demo.component";
7
- import * as i4 from "./http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component";
8
- import * as i5 from "./http-request-services-demo/local-storage-demo/local-storage-demo.component";
9
- import * as i6 from "./http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component";
10
- import * as i7 from "@angular/common";
11
- import * as i8 from "toast-message-display";
12
- import * as i9 from "@angular/forms";
13
- import * as i10 from "@angular/material/button";
14
- import * as i11 from "@angular/material/select";
15
- import * as i12 from "@angular/material/chips";
16
- import * as i13 from "@angular/material/menu";
17
- import * as i14 from "@angular/material/icon";
18
- import * as i15 from "@angular/material/table";
19
- import * as i16 from "@angular/material/button-toggle";
20
- import * as i17 from "@angular/material/autocomplete";
21
- import * as i18 from "@angular/material/progress-bar";
22
- import * as i19 from "@angular/material/slide-toggle";
23
- import * as i20 from "@angular/material/divider";
24
- import * as i21 from "@angular/material/form-field";
25
- import * as i22 from "@angular/material/input";
26
- import * as i23 from "@angular/material/toolbar";
27
- import * as i24 from "@ngx-translate/core";
28
- import * as i25 from "@angular/material/sidenav";
29
- import * as i26 from "./http-request-services-demo/request-manager-demo/file-downloader/file-download.module";
30
- export declare class HttpRequestManagerModule {
31
- static forRoot(config?: ConfigOptions): ModuleWithProviders<HttpRequestManagerModule>;
32
- static ɵfac: i0.ɵɵFactoryDeclaration<HttpRequestManagerModule, never>;
33
- static ɵmod: i0.ɵɵNgModuleDeclaration<HttpRequestManagerModule, [typeof i1.HttpRequestServicesDemoComponent, typeof i2.RequestManagerStateDemoComponent, typeof i3.RequestManagerDemoComponent, typeof i4.RequestSignalsManagerDemoComponent, typeof i5.LocalStorageDemoComponent, typeof i6.LocalStorageSignalsDemoComponent], [typeof i7.CommonModule, typeof i8.ToastMessageDisplayModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i10.MatButtonModule, typeof i11.MatSelectModule, typeof i12.MatChipsModule, typeof i13.MatMenuModule, typeof i14.MatIconModule, typeof i15.MatTableModule, typeof i16.MatButtonToggleModule, typeof i17.MatAutocompleteModule, typeof i18.MatProgressBarModule, typeof i19.MatSlideToggleModule, typeof i20.MatDividerModule, typeof i21.MatFormFieldModule, typeof i22.MatInputModule, typeof i23.MatToolbarModule, typeof i19.MatSlideToggleModule, typeof i24.TranslateModule, typeof i25.MatSidenavModule, typeof i26.FileDownloaderModule], [typeof i1.HttpRequestServicesDemoComponent, typeof i7.CommonModule, typeof i16.MatButtonToggleModule, typeof i21.MatFormFieldModule, typeof i11.MatSelectModule, typeof i22.MatInputModule, typeof i14.MatIconModule, typeof i15.MatTableModule, typeof i19.MatSlideToggleModule, typeof i18.MatProgressBarModule, typeof i20.MatDividerModule]>;
34
- static ɵinj: i0.ɵɵInjectorDeclaration<HttpRequestManagerModule>;
35
- }
@@ -1,19 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { TableSchemaDef } from '../../services/database-manager-services/models/table-schema';
3
- import { DatabaseManagerService } from '../../services/database-manager-services';
4
- import * as i0 from "@angular/core";
5
- export declare class DatabaseDataDemoComponent implements OnInit {
6
- db: DatabaseManagerService;
7
- constructor();
8
- ngOnInit(): void;
9
- createTable(tableDef: TableSchemaDef): import("rxjs").Observable<boolean>;
10
- findTableRecords(table: string, column: string, value: any): void;
11
- findTableRecord(table: string, column: string, value: any): void;
12
- getTableRecords(table: string): void;
13
- getTableRecord(table: string, id: number): void;
14
- createTableRecord<T>(table: string, record: T): void;
15
- updateTableRecord<T>(table: string, record: T): void;
16
- deleteTableRecord<T>(table: string, id: number): void;
17
- static ɵfac: i0.ɵɵFactoryDeclaration<DatabaseDataDemoComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<DatabaseDataDemoComponent, "app-database-data-demo", never, {}, {}, never, never, false, never>;
19
- }
@@ -1,32 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { ConfigOptions } from '../models/config-options.model';
3
- import * as i0 from "@angular/core";
4
- export declare class HttpRequestServicesDemoComponent implements OnInit {
5
- private configOptions?;
6
- requestTypes: ({
7
- name: string;
8
- value: string;
9
- new?: undefined;
10
- divider?: undefined;
11
- disabled?: undefined;
12
- } | {
13
- name: string;
14
- value: string;
15
- new: boolean;
16
- divider?: undefined;
17
- disabled?: undefined;
18
- } | {
19
- name: string;
20
- value: string;
21
- divider: boolean;
22
- disabled: boolean;
23
- new?: undefined;
24
- })[];
25
- selectedService: string;
26
- injectionOptions?: ConfigOptions;
27
- constructor(configOptions?: ConfigOptions | undefined);
28
- ngOnInit(): void;
29
- onSelected(type: number): void;
30
- static ɵfac: i0.ɵɵFactoryDeclaration<HttpRequestServicesDemoComponent, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<HttpRequestServicesDemoComponent, "app-http-request-services-demo", never, {}, {}, never, never, false, never>;
32
- }
@@ -1,56 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { LocalStorageManagerService, SettingOptions, StorageOption, StorageType } from '../../services/local-storage-manager-service';
3
- import { FormBuilder } from '@angular/forms';
4
- import { BehaviorSubject, Observable } from 'rxjs';
5
- import { ConfigOptions, LocalStorageOptions, UtilsService } from '../../services';
6
- import * as i0 from "@angular/core";
7
- export declare class LocalStorageDemoComponent implements OnInit {
8
- private configOptions?;
9
- fb: FormBuilder;
10
- utils: UtilsService;
11
- type$: BehaviorSubject<StorageType>;
12
- get type(): number;
13
- typeControl: import("@angular/forms").FormControl<string | null>;
14
- localStorageManagerService: LocalStorageManagerService;
15
- settings$: Observable<any>;
16
- setting$: (store: string) => Observable<StorageOption | null>;
17
- storageForm: import("@angular/forms").FormGroup<{
18
- store: import("@angular/forms").FormControl<string | null>;
19
- type: import("@angular/forms").FormControl<string | null>;
20
- settingType: import("@angular/forms").FormControl<string | null>;
21
- encrypted: import("@angular/forms").FormControl<boolean | null>;
22
- data: import("@angular/forms").FormControl<string | null>;
23
- }>;
24
- newStoreForm: import("@angular/forms").FormGroup<{
25
- name: import("@angular/forms").FormControl<string | null>;
26
- storage: import("@angular/forms").FormControl<string | null>;
27
- encrypted: import("@angular/forms").FormControl<boolean | null>;
28
- data: import("@angular/forms").FormControl<string | null>;
29
- expiresIn: import("@angular/forms").FormControl<string | null>;
30
- }>;
31
- store$?: Observable<any>;
32
- storeData$: Observable<any> | undefined;
33
- expiresIn: (epoch: number) => string | undefined;
34
- get isValid(): boolean;
35
- get isValidData(): boolean;
36
- isValidJSON: (str: string) => boolean;
37
- displayedColumns: string[];
38
- filterData: (values: SettingOptions[]) => SettingOptions[];
39
- data$?: Observable<any>;
40
- store: any;
41
- create: boolean;
42
- storeProps?: LocalStorageOptions;
43
- options?: SettingOptions;
44
- constructor(configOptions?: ConfigOptions | undefined);
45
- ngOnInit(): void;
46
- onCreateStore(): void;
47
- onUpdateStore(store: any): void;
48
- onSelectedRow(store: any): void;
49
- onCreate(): void;
50
- onDelete(store: StorageOption): void;
51
- onCancel(): void;
52
- onUpdate(store: StorageOption, data: any): void;
53
- onReset(): void;
54
- static ɵfac: i0.ɵɵFactoryDeclaration<LocalStorageDemoComponent, never>;
55
- static ɵcmp: i0.ɵɵComponentDeclaration<LocalStorageDemoComponent, "app-local-storage-demo", never, {}, {}, never, never, false, never>;
56
- }
@@ -1,55 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { LocalStorageSignalsManagerService, SettingOptions, StorageOption } from '../../services/local-storage-manager-service';
3
- import { FormBuilder } from '@angular/forms';
4
- import { ConfigOptions, LocalStorageOptions, UtilsService } from '../../services';
5
- import * as i0 from "@angular/core";
6
- export declare class LocalStorageSignalsDemoComponent implements OnInit {
7
- private configOptions?;
8
- fb: FormBuilder;
9
- utils: UtilsService;
10
- get type(): number;
11
- typeControl: import("@angular/forms").FormControl<string | null>;
12
- localStorageManagerService: LocalStorageSignalsManagerService;
13
- readonly settings: import("@angular/core").Signal<StorageOption[]>;
14
- storeSelected: import("@angular/core").WritableSignal<StorageOption | null>;
15
- selectedStoreData: import("@angular/core").Signal<string>;
16
- selectedType: import("@angular/core").WritableSignal<number>;
17
- filteredSettings: import("@angular/core").Signal<StorageOption[]>;
18
- storageForm: import("@angular/forms").FormGroup<{
19
- store: import("@angular/forms").FormControl<string | null>;
20
- type: import("@angular/forms").FormControl<string | null>;
21
- settingType: import("@angular/forms").FormControl<string | null>;
22
- encrypted: import("@angular/forms").FormControl<boolean | null>;
23
- data: import("@angular/forms").FormControl<string | null>;
24
- }>;
25
- newStoreForm: import("@angular/forms").FormGroup<{
26
- name: import("@angular/forms").FormControl<string | null>;
27
- storage: import("@angular/forms").FormControl<string | null>;
28
- encrypted: import("@angular/forms").FormControl<boolean | null>;
29
- data: import("@angular/forms").FormControl<string | null>;
30
- expiresIn: import("@angular/forms").FormControl<string | null>;
31
- }>;
32
- expiresIn: (epoch: number) => string | undefined;
33
- get isValid(): boolean;
34
- get isValidData(): boolean;
35
- isValidJSON: (str: string) => boolean;
36
- displayedColumns: string[];
37
- filterData: (values: StorageOption[] | null | undefined) => StorageOption[];
38
- settingFor(name: string): StorageOption | null;
39
- store: any;
40
- create: boolean;
41
- storeProps?: LocalStorageOptions;
42
- options?: SettingOptions;
43
- constructor(configOptions?: ConfigOptions | undefined);
44
- ngOnInit(): void;
45
- onCreateStore(): void;
46
- onUpdateStore(store: any): void;
47
- onSelectedRow(store: any): void;
48
- onCreate(): void;
49
- onDelete(store: StorageOption): void;
50
- onCancel(): void;
51
- onUpdate(store: StorageOption, data: any): void;
52
- onReset(): void;
53
- static ɵfac: i0.ɵɵFactoryDeclaration<LocalStorageSignalsDemoComponent, never>;
54
- static ɵcmp: i0.ɵɵComponentDeclaration<LocalStorageSignalsDemoComponent, "app-local-storage-signals-demo", never, {}, {}, never, never, false, never>;
55
- }
@@ -1,26 +0,0 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
2
- import { ProgressSpinnerMode } from '@angular/material/progress-spinner';
3
- import * as i0 from "@angular/core";
4
- export declare class DownloadFileComponent implements OnInit {
5
- private subscriptions;
6
- event?: Function;
7
- displayError: number;
8
- diameter: number;
9
- mode: ProgressSpinnerMode;
10
- isPending: boolean;
11
- active: boolean;
12
- disabled: boolean;
13
- error: EventEmitter<void>;
14
- private _progress;
15
- set progress(value: any);
16
- get progress(): any;
17
- private _hasError;
18
- private errorTimerActive;
19
- set hasError(value: boolean | any);
20
- get hasError(): boolean | any;
21
- ngOnInit(): void;
22
- onAction(): void;
23
- ngOnDestroy(): void;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<DownloadFileComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<DownloadFileComponent, "app-download-file", never, { "event": { "alias": "event"; "required": false; }; "displayError": { "alias": "displayError"; "required": false; }; "diameter": { "alias": "diameter"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "isPending": { "alias": "isPending"; "required": false; }; "active": { "alias": "active"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; }, { "error": "error"; }, never, never, false, never>;
26
- }
@@ -1,13 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./spinner/spinner.component";
3
- import * as i2 from "./download-file/download-file.component";
4
- import * as i3 from "./file-downloader.component";
5
- import * as i4 from "@angular/common";
6
- import * as i5 from "@angular/material/icon";
7
- import * as i6 from "@angular/material/progress-spinner";
8
- import * as i7 from "@angular/material/button";
9
- export declare class FileDownloaderModule {
10
- static ɵfac: i0.ɵɵFactoryDeclaration<FileDownloaderModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<FileDownloaderModule, [typeof i1.SpinnerComponent, typeof i2.DownloadFileComponent, typeof i3.FileDownloaderComponent], [typeof i4.CommonModule, typeof i5.MatIconModule, typeof i6.MatProgressSpinnerModule, typeof i7.MatButtonModule], [typeof i3.FileDownloaderComponent]>;
12
- static ɵinj: i0.ɵɵInjectorDeclaration<FileDownloaderModule>;
13
- }