ng2-logger 13.1.24 → 16.0.2

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 (79) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/{esm2020 → esm2022}/lib/backend-logging.mjs +93 -93
  3. package/{client/esm2020 → browser/esm2022}/lib/display.mjs +96 -96
  4. package/{client/esm2020 → browser/esm2022}/lib/index.mjs +6 -6
  5. package/{client/esm2020 → browser/esm2022}/lib/level.mjs +32 -32
  6. package/browser/esm2022/lib/log.mjs +162 -0
  7. package/browser/esm2022/lib/logger.mjs +237 -0
  8. package/browser/{esm2020 → esm2022}/ng2-logger.mjs +4 -4
  9. package/browser/{esm2020 → esm2022}/public-api.mjs +1 -1
  10. package/{client/fesm2015 → browser/fesm2022}/ng2-logger.mjs +515 -514
  11. package/browser/{fesm2020 → fesm2022}/ng2-logger.mjs.map +1 -1
  12. package/browser/{ng2-logger.d.ts → index.d.ts} +4 -4
  13. package/browser/lib/backend-logging.d.ts +3 -3
  14. package/browser/lib/display.d.ts +3 -3
  15. package/browser/lib/index.d.ts +3 -3
  16. package/browser/lib/level.d.ts +20 -20
  17. package/browser/lib/log.d.ts +24 -24
  18. package/browser/lib/logger.d.ts +80 -80
  19. package/browser/package.json +6 -12
  20. package/client/{esm2020 → esm2022}/lib/backend-logging.mjs +93 -93
  21. package/{browser/esm2020 → client/esm2022}/lib/display.mjs +96 -96
  22. package/{browser/esm2020 → client/esm2022}/lib/index.mjs +6 -6
  23. package/{browser/esm2020 → client/esm2022}/lib/level.mjs +32 -32
  24. package/client/esm2022/lib/log.mjs +162 -0
  25. package/client/esm2022/lib/logger.mjs +237 -0
  26. package/client/{esm2020 → esm2022}/ng2-logger.mjs +4 -4
  27. package/client/{esm2020 → esm2022}/public-api.mjs +1 -1
  28. package/{browser/fesm2020 → client/fesm2022}/ng2-logger.mjs +515 -514
  29. package/client/{fesm2020 → fesm2022}/ng2-logger.mjs.map +1 -1
  30. package/client/{ng2-logger.d.ts → index.d.ts} +4 -4
  31. package/client/lib/backend-logging.d.ts +3 -3
  32. package/client/lib/display.d.ts +3 -3
  33. package/client/lib/index.d.ts +3 -3
  34. package/client/lib/level.d.ts +20 -20
  35. package/client/lib/log.d.ts +24 -24
  36. package/client/lib/logger.d.ts +80 -80
  37. package/client/package.json +89 -85
  38. package/index.d.ts +1 -1
  39. package/lib/backend-logging.d.ts +4 -4
  40. package/lib/display.d.ts +4 -4
  41. package/lib/index.d.ts +4 -4
  42. package/lib/level.d.ts +21 -21
  43. package/lib/log.d.ts +25 -25
  44. package/lib/log.js +1 -2
  45. package/lib/log.js.map +1 -1
  46. package/lib/logger.d.ts +81 -81
  47. package/package.json +4 -4
  48. package/package.json_tnp.json5 +2 -2
  49. package/tmp-environment.json +94 -90
  50. package/websql/{esm2020 → esm2022}/lib/backend-logging.mjs +93 -93
  51. package/websql/{esm2020 → esm2022}/lib/display.mjs +96 -96
  52. package/websql/{esm2020 → esm2022}/lib/index.mjs +6 -6
  53. package/websql/{esm2020 → esm2022}/lib/level.mjs +32 -32
  54. package/websql/esm2022/lib/log.mjs +162 -0
  55. package/websql/esm2022/lib/logger.mjs +237 -0
  56. package/websql/{esm2020 → esm2022}/ng2-logger.mjs +4 -4
  57. package/websql/{esm2020 → esm2022}/public-api.mjs +1 -1
  58. package/websql/{fesm2015 → fesm2022}/ng2-logger.mjs +515 -514
  59. package/websql/{fesm2020 → fesm2022}/ng2-logger.mjs.map +1 -1
  60. package/websql/{ng2-logger.d.ts → index.d.ts} +4 -4
  61. package/websql/lib/backend-logging.d.ts +3 -3
  62. package/websql/lib/display.d.ts +3 -3
  63. package/websql/lib/index.d.ts +3 -3
  64. package/websql/lib/level.d.ts +20 -20
  65. package/websql/lib/log.d.ts +24 -24
  66. package/websql/lib/logger.d.ts +80 -80
  67. package/websql/package.json +6 -12
  68. package/browser/esm2020/lib/log.mjs +0 -161
  69. package/browser/esm2020/lib/logger.mjs +0 -237
  70. package/browser/fesm2015/ng2-logger.mjs +0 -530
  71. package/browser/fesm2015/ng2-logger.mjs.map +0 -1
  72. package/client/esm2020/lib/log.mjs +0 -161
  73. package/client/esm2020/lib/logger.mjs +0 -237
  74. package/client/fesm2015/ng2-logger.mjs.map +0 -1
  75. package/client/fesm2020/ng2-logger.mjs +0 -530
  76. package/websql/esm2020/lib/log.mjs +0 -161
  77. package/websql/esm2020/lib/logger.mjs +0 -237
  78. package/websql/fesm2015/ng2-logger.mjs.map +0 -1
  79. package/websql/fesm2020/ng2-logger.mjs +0 -530
@@ -1,530 +0,0 @@
1
- import { Helpers } from 'tnp-core/browser';
2
-
3
- var Level;
4
- (function (Level) {
5
- Level[Level["DATA"] = 0] = "DATA";
6
- Level[Level["INFO"] = 1] = "INFO";
7
- Level[Level["WARN"] = 2] = "WARN";
8
- Level[Level["ERROR"] = 3] = "ERROR";
9
- Level[Level["SUCCESS"] = 4] = "SUCCESS";
10
- Level[Level["TASK_STARTED"] = 5] = "TASK_STARTED";
11
- Level[Level["TASK_DONE"] = 6] = "TASK_DONE";
12
- Level[Level["__NOTHING"] = 7] = "__NOTHING";
13
- })(Level || (Level = {}));
14
- const LevelKey = {
15
- [Level.DATA]: 'log',
16
- [Level.INFO]: 'info',
17
- [Level.WARN]: 'warn',
18
- [Level.ERROR]: 'error',
19
- [Level.SUCCESS]: 'success',
20
- [Level.TASK_STARTED]: 'taskstarted',
21
- [Level.TASK_DONE]: 'taskdone',
22
- [Level.__NOTHING]: '',
23
- };
24
- const LevelOrder = [
25
- LevelKey[Level.DATA],
26
- LevelKey[Level.TASK_STARTED],
27
- LevelKey[Level.TASK_DONE],
28
- LevelKey[Level.INFO],
29
- LevelKey[Level.SUCCESS],
30
- LevelKey[Level.WARN],
31
- LevelKey[Level.ERROR],
32
- ];
33
- ;
34
- ({}); // @--end-of-file-for-module=ng2-logger lib/level.ts
35
-
36
- /* */
37
- /* */
38
- /* */
39
- class Display {
40
- static msg(message, params, moduleName, moduleColor, level, moduleWidth, isProductionMode) {
41
- if (isProductionMode) {
42
- return;
43
- }
44
- ;
45
- let color = 'gray';
46
- if (level === Level.INFO) {
47
- color = 'deepskyblue';
48
- }
49
- if (level === Level.ERROR) {
50
- color = 'red';
51
- }
52
- if (level === Level.WARN) {
53
- color = 'orange';
54
- }
55
- if (moduleWidth) {
56
- const diff = moduleWidth - moduleName.length;
57
- if (diff > 0) {
58
- for (let i = 0; i < diff; i++) {
59
- moduleName += ' ';
60
- }
61
- }
62
- }
63
- if (Helpers.isBrowser
64
- /* */
65
- /* */
66
- ) {
67
- // @ts-ignore
68
- const isEdgeOrIe8orAbove = (document['documentMode'] || /Edge/.test(navigator.userAgent));
69
- if (isEdgeOrIe8orAbove) {
70
- if (typeof message === 'string') {
71
- let a1 = '[[ ' + moduleName + ' ]] ' + message + ' ';
72
- params.unshift(a1);
73
- }
74
- else {
75
- let a1 = '[[ ' + moduleName + ']] ';
76
- params.push(message);
77
- params.unshift(a1);
78
- }
79
- if (level === Level.INFO) {
80
- console.info.apply(console, params);
81
- }
82
- else if (level === Level.ERROR) {
83
- console.error.apply(console, params);
84
- }
85
- else if (level === Level.WARN) {
86
- console.warn.apply(console, params);
87
- }
88
- else {
89
- console.log.apply(console, params);
90
- }
91
- }
92
- else {
93
- if (typeof message === 'string') {
94
- let a1 = '%c ' + moduleName + ' %c ' + message + ' ';
95
- let a2 = 'background: ' + moduleColor + ';color:white; border: 1px solid ' + moduleColor + '; ';
96
- let a3 = 'border: 1px solid ' + color + '; ';
97
- params.unshift(a3);
98
- params.unshift(a2);
99
- params.unshift(a1);
100
- }
101
- else {
102
- let a1 = '%c ' + moduleName + ' ';
103
- let a2 = 'background: ' + moduleColor + ';color:white; border: 1px solid ' + color + '; ';
104
- params.push(message);
105
- params.unshift(a2);
106
- params.unshift(a1);
107
- }
108
- console.log.apply(console, params);
109
- }
110
- }
111
- /* */
112
- /* */
113
- /* */
114
- /* */
115
- /* */
116
- /* */
117
- /* */
118
- /* */
119
- /* */
120
- /* */
121
- /* */
122
- /* */
123
- /* */
124
- /* */
125
- }
126
- }
127
- ;
128
- ({}); // @--end-of-file-for-module=ng2-logger lib/display.ts
129
-
130
- class Logger {
131
- constructor(name, color, developmentMode, allowed, isMuted, fixedWidth) {
132
- this.name = name;
133
- this.color = color;
134
- this.developmentMode = developmentMode;
135
- this.allowed = allowed;
136
- this.isMuted = isMuted;
137
- this.fixedWidth = fixedWidth;
138
- /**
139
- * @see data
140
- */
141
- this.d = (name, ...data) => this._data(name, data);
142
- /**
143
- * @see error
144
- */
145
- this.er = (name, ...data) => this._error(name, data);
146
- /**
147
- * @see info
148
- */
149
- this.i = (name, ...data) => this._info(name, data);
150
- /**
151
- * @see warn
152
- */
153
- this.w = (name, ...data) => this._warn(name, data);
154
- /**
155
- * Logs message and data with the level=data
156
- * @param message The message
157
- * @param otherParams Additional parameters
158
- */
159
- this.data = (message, ...otherParams) => { return this._data(message, otherParams); };
160
- /**
161
- * Logs message and data with the level=error
162
- * @param message The message
163
- * @param otherParams Additional parameters
164
- */
165
- this.error = (message, ...otherParams) => this._error(message, otherParams);
166
- /**
167
- * Logs message and data with the level=info
168
- * @param message The message
169
- * @param otherParams Additional parameters
170
- */
171
- this.info = (message, ...otherParams) => this._info(message, otherParams);
172
- /**
173
- * Logs message and data with the level=success
174
- * @param message The message
175
- * @param otherParams Additional parameters
176
- */
177
- this.success = (message, ...otherParams) => this._success(message, otherParams);
178
- /**
179
- * Logs message and data with the level=taskStarted
180
- * @param message The message
181
- * @param otherParams Additional parameters
182
- */
183
- this.taskStarted = (message, ...otherParams) => this._taskStarted(message, otherParams);
184
- /**
185
- * Logs message and data with the level=taskDone
186
- * @param message The message
187
- * @param otherParams Additional parameters
188
- */
189
- this.taskDone = (message, ...otherParams) => this._taskDone(message, otherParams);
190
- /**
191
- * Logs message and data with the level=warn
192
- * @param message The message
193
- * @param otherParams Additional parameters
194
- */
195
- this.warn = (message, ...otherParams) => this._warn(message, otherParams);
196
- }
197
- setLevel(l) {
198
- this._level = l;
199
- return this;
200
- }
201
- get isProductionMode() {
202
- return !this.developmentMode;
203
- }
204
- setProductionMode(productionMode) {
205
- this.developmentMode = !productionMode;
206
- return this;
207
- }
208
- mute() {
209
- this.isMuted = true;
210
- return this;
211
- }
212
- onlyWhen(expression) {
213
- if (typeof expression === 'function') {
214
- this.isMuted = !expression();
215
- }
216
- else if (typeof expression === 'boolean') {
217
- this.isMuted = !expression;
218
- }
219
- }
220
- _data(name, ...data) {
221
- if (this.isMuted)
222
- return this;
223
- if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
224
- && !Helpers.contain(this.allowed, Level.DATA))
225
- return this;
226
- if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.DATA)) {
227
- // @ts-ignore
228
- Display.msg.apply(void 0, [
229
- name,
230
- ...data,
231
- this.name,
232
- this.color,
233
- Level.DATA,
234
- this.fixedWidth,
235
- this.isProductionMode,
236
- ]);
237
- }
238
- return this;
239
- }
240
- _error(name, ...data) {
241
- if (this.isMuted)
242
- return this;
243
- if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
244
- && !Helpers.contain(this.allowed, Level.ERROR))
245
- return this;
246
- if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.ERROR)) {
247
- // @ts-ignore
248
- Display.msg.apply(void 0, [
249
- name,
250
- ...data,
251
- this.name,
252
- this.color,
253
- Level.ERROR,
254
- this.fixedWidth,
255
- this.isProductionMode,
256
- ]);
257
- }
258
- return this;
259
- }
260
- _info(name, ...data) {
261
- if (this.isMuted)
262
- return this;
263
- if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
264
- && !Helpers.contain(this.allowed, Level.INFO))
265
- return this;
266
- if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.INFO)) {
267
- // @ts-ignore
268
- Display.msg.apply(void 0, [
269
- name,
270
- ...data,
271
- this.name,
272
- this.color,
273
- Level.INFO,
274
- this.fixedWidth,
275
- this.isProductionMode,
276
- ]);
277
- }
278
- return this;
279
- }
280
- _success(name, ...data) {
281
- if (this.isMuted)
282
- return this;
283
- if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
284
- && !Helpers.contain(this.allowed, Level.SUCCESS))
285
- return this;
286
- if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.SUCCESS)) {
287
- // @ts-ignore
288
- Display.msg.apply(void 0, [
289
- name,
290
- ...data,
291
- this.name,
292
- this.color,
293
- Level.SUCCESS,
294
- this.fixedWidth,
295
- this.isProductionMode,
296
- ]);
297
- }
298
- return this;
299
- }
300
- _taskStarted(name, ...data) {
301
- if (this.isMuted)
302
- return this;
303
- if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
304
- && !Helpers.contain(this.allowed, Level.TASK_STARTED))
305
- return this;
306
- if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.TASK_STARTED)) {
307
- // @ts-ignore
308
- Display.msg.apply(void 0, [
309
- name,
310
- ...data,
311
- this.name,
312
- this.color,
313
- Level.TASK_STARTED,
314
- this.fixedWidth,
315
- this.isProductionMode,
316
- ]);
317
- }
318
- return this;
319
- }
320
- _taskDone(name, ...data) {
321
- if (this.isMuted)
322
- return this;
323
- if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
324
- && !Helpers.contain(this.allowed, Level.TASK_DONE))
325
- return this;
326
- if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.TASK_DONE)) {
327
- // @ts-ignore
328
- Display.msg.apply(void 0, [
329
- name,
330
- ...data,
331
- this.name,
332
- this.color,
333
- Level.TASK_DONE,
334
- this.fixedWidth,
335
- this.isProductionMode,
336
- ]);
337
- }
338
- return this;
339
- }
340
- _warn(name, ...data) {
341
- if (this.isMuted)
342
- return this;
343
- if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
344
- && !Helpers.contain(this.allowed, Level.WARN))
345
- return this;
346
- if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.WARN)) {
347
- // @ts-ignore
348
- Display.msg.apply(void 0, [
349
- name,
350
- ...data,
351
- this.name,
352
- this.color,
353
- Level.WARN,
354
- this.fixedWidth,
355
- this.isProductionMode,
356
- ]);
357
- }
358
- return this;
359
- }
360
- }
361
- ;
362
- ({}); // @--end-of-file-for-module=ng2-logger lib/logger.ts
363
-
364
- /* */
365
- /* */
366
- /* */
367
- /* */
368
- /* */
369
- class Log {
370
- constructor() {
371
- this._logOnly = false;
372
- this._logModules = false;
373
- this.isDevelopmentMode = true;
374
- this.modeIsSet = false;
375
- this.fixedWidth = 0;
376
- this.instances = {};
377
- this.levels = [];
378
- this.modules = [];
379
- }
380
- // @ts-ignore
381
- static get instance() {
382
- // @ts-ignore
383
- if (!Log['_instance']) {
384
- // @ts-ignore
385
- Log['_instance'] = new Log();
386
- }
387
- // @ts-ignore
388
- return Log['_instance'];
389
- }
390
- static create(name, ...level) {
391
- return Log.instance.create(name, ...level);
392
- }
393
- static disableLogs(level = Level.__NOTHING) {
394
- /* */
395
- /* */
396
- /* */
397
- /* */
398
- /* */
399
- /* */
400
- /* */
401
- LevelOrder.reverse().find(a => {
402
- // @ts-ignore
403
- if (!this.consolelogfn[a]) {
404
- // @ts-ignore
405
- this.consolelogfn[a] = console[a];
406
- }
407
- // @ts-ignore
408
- console[a] = () => { };
409
- if (a === LevelKey[level]) {
410
- return true;
411
- }
412
- return false;
413
- });
414
- }
415
- static enableLogs() {
416
- /* */
417
- /* */
418
- /* */
419
- /* */
420
- LevelOrder.forEach(a => {
421
- // @ts-ignore
422
- console[a] = this.consolelogfn[a];
423
- });
424
- }
425
- setProductionMode() {
426
- if (this.modeIsSet) {
427
- this.modeIsSet = false;
428
- throw '[ng2-logger] Production mode is already set';
429
- }
430
- else {
431
- this.modeIsSet = true;
432
- setTimeout(() => {
433
- if (this.modeIsSet && console !== void 0 && console.clear !== void 0) {
434
- console.clear();
435
- console.log = () => { };
436
- console.error = () => { };
437
- console.warn = () => { };
438
- console.info = () => { };
439
- }
440
- });
441
- this.isDevelopmentMode = false;
442
- }
443
- }
444
- onlyModules(...modules) {
445
- if (this._logModules) {
446
- throw '[ng2-logger] You should use funcion onlyModules only once';
447
- }
448
- if (!this._logModules) {
449
- this._logModules = true;
450
- }
451
- if (modules.length === 0)
452
- return;
453
- this.modules = modules;
454
- this.muteAllOtherModules();
455
- }
456
- onlyLevel(...level) {
457
- if (this._logOnly) {
458
- throw '[ng2-logger] You should use funcion onlyLevel only once';
459
- }
460
- if (!this._logOnly) {
461
- this._logOnly = true;
462
- }
463
- this.levels = Array.isArray(level) ? level : [level];
464
- for (const logName in this.instances) {
465
- if (this.instances.hasOwnProperty(logName)) {
466
- const element = this.instances[logName];
467
- element['allowed'] = this.levels;
468
- }
469
- }
470
- }
471
- create(name, ...level) {
472
- let i;
473
- if (Array.isArray(this.levels) && this.levels.length > 0) {
474
- level = this.levels;
475
- }
476
- if (this.instances[name] === void 0) {
477
- i = new (Log.Logger)(name, getRandomColor(), this.isDevelopmentMode, level, this.isMutedModule(name), this.levels.length > 0 ? this.fixedWidth : void 0);
478
- this.instances[name] = i;
479
- }
480
- else {
481
- i = this.instances[name];
482
- }
483
- return i;
484
- }
485
- isMutedModule(moduleName) {
486
- if (this.modules.length == 0)
487
- return false;
488
- if (!Helpers.contain(this.modules, moduleName))
489
- return true;
490
- return false;
491
- }
492
- muteAllOtherModules() {
493
- for (var moduleName in this.instances) {
494
- if (!Helpers.contain(this.modules, moduleName))
495
- this.instances[moduleName].mute();
496
- }
497
- }
498
- }
499
- Log.Logger = Logger;
500
- Log.consolelogfn = {};
501
- function getRandomColor() {
502
- /* */
503
- /* */
504
- /* */
505
- /* */
506
- let letters = '012345'.split('');
507
- let color = '#';
508
- color += letters[Math.round(Math.random() * 5)];
509
- letters = '0123456789ABCDEF'.split('');
510
- for (let i = 0; i < 5; i++) {
511
- color += letters[Math.round(Math.random() * 15)];
512
- }
513
- if (color === void 0) {
514
- return getRandomColor();
515
- }
516
- ;
517
- return color;
518
- }
519
- ;
520
- ({}); // @--end-of-file-for-module=ng2-logger lib/log.ts
521
-
522
- ;
523
- ({}); // @--end-of-file-for-module=ng2-logger lib/index.ts
524
-
525
- /**
526
- * Generated bundle index. Do not edit.
527
- */
528
-
529
- export { Display, Level, LevelKey, LevelOrder, Log, Logger };
530
- //# sourceMappingURL=ng2-logger.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng2-logger.mjs","sources":["../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/lib/level.ts","../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/lib/display.ts","../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/lib/logger.ts","../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/lib/log.ts","../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/lib/index.ts","../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/ng2-logger.ts"],"sourcesContent":["export enum Level {\n DATA,\n INFO,\n WARN,\n ERROR ,\n SUCCESS,\n TASK_STARTED,\n TASK_DONE,\n __NOTHING ,\n}\n\nexport const LevelKey = {\n [Level.DATA] : 'log',\n [Level.INFO] : 'info',\n [Level.WARN] : 'warn',\n [Level.ERROR] : 'error',\n [Level.SUCCESS] : 'success',\n [Level.TASK_STARTED] : 'taskstarted',\n [Level.TASK_DONE] : 'taskdone',\n [Level.__NOTHING] : '',\n}\n\nexport const LevelOrder = [\n LevelKey[Level.DATA],\n LevelKey[Level.TASK_STARTED],\n LevelKey[Level.TASK_DONE],\n LevelKey[Level.INFO],\n LevelKey[Level.SUCCESS],\n LevelKey[Level.WARN],\n LevelKey[Level.ERROR],\n];\n\n ;({}); // @--end-of-file-for-module=ng2-logger lib/level.ts","/* */\n/* */\n \nimport { Level } from './level';\nimport { Helpers } from 'tnp-core/browser';\nimport { consoleLog, displayParams } from './backend-logging';\n\n/* */\n/* */\n \n\nexport class Display {\n\n static msg(\n message: string | any,\n params: any[],\n moduleName: string,\n moduleColor: string,\n level: Level,\n moduleWidth: number | undefined,\n isProductionMode: boolean\n ) {\n if (isProductionMode) {\n return;\n };\n let color = 'gray';\n if (level === Level.INFO) { color = 'deepskyblue'; }\n if (level === Level.ERROR) { color = 'red'; }\n if (level === Level.WARN) { color = 'orange'; }\n\n if (moduleWidth) {\n const diff = moduleWidth - moduleName.length;\n if (diff > 0) {\n for (let i = 0; i < diff; i++) {\n moduleName += ' ';\n }\n }\n }\n\n\n if (Helpers.isBrowser\n/* */\n/* */\n \n ) {\n\n\n // @ts-ignore\n const isEdgeOrIe8orAbove = (document['documentMode'] || /Edge/.test(navigator.userAgent));\n\n if (isEdgeOrIe8orAbove) {\n if (typeof message === 'string') {\n let a1 = '[[ ' + moduleName + ' ]] ' + message + ' ';\n params.unshift(a1);\n } else {\n let a1 = '[[ ' + moduleName + ']] ';\n params.push(message);\n params.unshift(a1);\n }\n if (level === Level.INFO) {\n console.info.apply(console, params);\n } else if (level === Level.ERROR) {\n console.error.apply(console, params);\n } else if (level === Level.WARN) {\n console.warn.apply(console, params);\n } else {\n console.log.apply(console, params);\n }\n } else {\n if (typeof message === 'string') {\n let a1 = '%c ' + moduleName + ' %c ' + message + ' ';\n let a2 = 'background: ' + moduleColor + ';color:white; border: 1px solid ' + moduleColor + '; ';\n let a3 = 'border: 1px solid ' + color + '; ';\n params.unshift(a3);\n params.unshift(a2);\n params.unshift(a1);\n } else {\n let a1 = '%c ' + moduleName + ' ';\n let a2 = 'background: ' + moduleColor + ';color:white; border: 1px solid ' + color + '; ';\n params.push(message);\n params.unshift(a2);\n params.unshift(a1);\n }\n console.log.apply(console, params);\n }\n\n }\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-logger lib/display.ts","import { Level } from './level';\nimport { Display } from './display';\nimport { Helpers } from 'tnp-core/browser';\n\nexport class Logger {\n\n private _level: Level;\n public setLevel(l: Level) {\n this._level = l;\n return this;\n }\n\n public get isProductionMode() {\n return !this.developmentMode;\n }\n\n public setProductionMode(productionMode: boolean) {\n this.developmentMode = !productionMode;\n return this;\n }\n\n public mute() {\n this.isMuted = true;\n return this;\n }\n\n constructor(\n private name: string,\n public color: string,\n private developmentMode: boolean,\n private allowed: Level[],\n private isMuted: boolean,\n public fixedWidth: number | undefined\n ) { }\n\n onlyWhen(expression: (() => boolean) | boolean) {\n if (typeof expression === 'function') {\n this.isMuted = !expression()\n } else if (typeof expression === 'boolean') {\n this.isMuted = !expression;\n }\n }\n\n private _data(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.DATA)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.DATA)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.DATA,\n this.fixedWidth,\n this.isProductionMode,\n ]);\n }\n return this;\n }\n\n\n private _error(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.ERROR)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.ERROR)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.ERROR,\n this.fixedWidth,\n this.isProductionMode,\n ]);\n }\n return this;\n }\n\n private _info(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.INFO)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.INFO)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.INFO,\n this.fixedWidth,\n this.isProductionMode,\n ]);\n }\n return this;\n }\n\n private _success(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.SUCCESS)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.SUCCESS)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.SUCCESS,\n this.fixedWidth,\n this.isProductionMode,\n ]);\n }\n return this;\n }\n\n private _taskStarted(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.TASK_STARTED)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.TASK_STARTED)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.TASK_STARTED,\n this.fixedWidth,\n this.isProductionMode,\n ]);\n }\n return this;\n }\n\n private _taskDone(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.TASK_DONE)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.TASK_DONE)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.TASK_DONE,\n this.fixedWidth,\n this.isProductionMode,\n ]);\n }\n return this;\n }\n\n private _warn(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.WARN)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.WARN)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.WARN,\n this.fixedWidth,\n this.isProductionMode,\n ])\n }\n return this;\n }\n\n\n /**\n * @see data\n */\n d = (name: string | any, ...data: any[]) => this._data(name, data);\n\n /**\n * @see error\n */\n\n er = (name: string | any, ...data: any[]) => this._error(name, data);\n\n /**\n * @see info\n */\n i = (name: string | any, ...data: any[]) => this._info(name, data);\n\n /**\n * @see warn\n */\n w = (name: string | any, ...data: any[]) => this._warn(name, data);\n\n /**\n * Logs message and data with the level=data\n * @param message The message\n * @param otherParams Additional parameters\n */\n data = (message: string, ...otherParams: any[]) => { return this._data(message, otherParams); };\n\n /**\n * Logs message and data with the level=error\n * @param message The message\n * @param otherParams Additional parameters\n */\n error = (message: string, ...otherParams: any[]) => this._error(message, otherParams);\n\n /**\n * Logs message and data with the level=info\n * @param message The message\n * @param otherParams Additional parameters\n */\n info = (message: string, ...otherParams: any[]) => this._info(message, otherParams);\n\n /**\n * Logs message and data with the level=success\n * @param message The message\n * @param otherParams Additional parameters\n */\n success = (message: string, ...otherParams: any[]) => this._success(message, otherParams);\n\n\n /**\n * Logs message and data with the level=taskStarted\n * @param message The message\n * @param otherParams Additional parameters\n */\n taskStarted = (message: string, ...otherParams: any[]) => this._taskStarted(message, otherParams);\n\n /**\n * Logs message and data with the level=taskDone\n * @param message The message\n * @param otherParams Additional parameters\n */\n taskDone = (message?: string, ...otherParams: any[]) => this._taskDone(message, otherParams);\n\n /**\n * Logs message and data with the level=warn\n * @param message The message\n * @param otherParams Additional parameters\n */\n warn = (message: string, ...otherParams: any[]) => this._warn(message, otherParams);\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-logger lib/logger.ts","import { Logger } from './logger';\nimport { Level, LevelOrder, LevelKey } from './level';\nimport { Helpers } from 'tnp-core/browser';\n/* */\n/* */\n/* */\n \n\n\n/* */\n/* */\n \n\n\nexport class Log {\n\n private constructor() { }\n // @ts-ignore\n private static get instance(): any {\n // @ts-ignore\n if (!Log['_instance']) {\n // @ts-ignore\n Log['_instance'] = new Log();\n }\n // @ts-ignore\n return Log['_instance'];\n }\n\n\n static Logger: (typeof Logger) = Logger;\n static create(name: string, ...level: Level[]): Logger {\n return Log.instance.create(name, ...level);\n }\n\n private static readonly consolelogfn = {};\n static disableLogs(level = Level.__NOTHING) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n LevelOrder.reverse().find(a => {\n // @ts-ignore\n if (!this.consolelogfn[a]) {\n // @ts-ignore\n this.consolelogfn[a] = console[a];\n }\n // @ts-ignore\n console[a] = () => { };\n if (a === LevelKey[level]) {\n return true;\n }\n return false;\n });\n }\n\n static enableLogs() {\n/* */\n/* */\n/* */\n/* */\n \n LevelOrder.forEach(a => {\n // @ts-ignore\n console[a] = this.consolelogfn[a]\n });\n }\n\n private _logOnly = false;\n private _logModules = false;\n private isDevelopmentMode = true;\n private modeIsSet: boolean = false;\n private fixedWidth = 0;\n private instances: { [moduleName: string]: Logger } = {};\n private levels: Level[] = [];\n private modules: (string | RegExp)[] = [];\n\n\n public setProductionMode() {\n if (this.modeIsSet) {\n this.modeIsSet = false\n throw '[ng2-logger] Production mode is already set';\n } else {\n this.modeIsSet = true;\n setTimeout(() => {\n\n if (this.modeIsSet && console !== void 0 && console.clear !== void 0) {\n\n console.clear();\n console.log = () => { };\n console.error = () => { };\n console.warn = () => { };\n console.info = () => { };\n }\n });\n\n this.isDevelopmentMode = false;\n }\n }\n\n public onlyModules(...modules: (string | RegExp)[]) {\n if (this._logModules) {\n throw '[ng2-logger] You should use funcion onlyModules only once';\n }\n if (!this._logModules) {\n this._logModules = true;\n }\n if (modules.length === 0) return;\n this.modules = modules;\n\n this.muteAllOtherModules();\n }\n\n\n public onlyLevel(...level: Level[]) {\n if (this._logOnly) {\n throw '[ng2-logger] You should use funcion onlyLevel only once';\n }\n if (!this._logOnly) {\n this._logOnly = true;\n }\n\n this.levels = Array.isArray(level) ? level : [level];\n\n\n for (const logName in this.instances) {\n if (this.instances.hasOwnProperty(logName)) {\n const element = this.instances[logName];\n element['allowed'] = this.levels;\n }\n }\n }\n\n\n\n private create(name: string, ...level: Level[]): Logger {\n let i: Logger;\n if (Array.isArray(this.levels) && this.levels.length > 0) {\n level = this.levels;\n }\n if (this.instances[name] === void 0) {\n i = new (Log.Logger)(\n name,\n getRandomColor(),\n this.isDevelopmentMode,\n level,\n this.isMutedModule(name),\n this.levels.length > 0 ? this.fixedWidth : void 0,\n\n );\n this.instances[name] = i;\n } else {\n i = this.instances[name];\n }\n return i;\n }\n\n private isMutedModule(moduleName: string): boolean {\n if (this.modules.length == 0) return false;\n if (!Helpers.contain(this.modules, moduleName)) return true;\n return false;\n }\n private muteAllOtherModules() {\n for (var moduleName in this.instances) {\n if (!Helpers.contain(this.modules, moduleName))\n this.instances[moduleName].mute()\n }\n }\n\n}\n\n\nfunction getRandomColor(): string {\n/* */\n/* */\n/* */\n/* */\n \n\n let letters = '012345'.split('');\n let color = '#';\n color += letters[Math.round(Math.random() * 5)];\n letters = '0123456789ABCDEF'.split('');\n for (let i = 0; i < 5; i++) {\n color += letters[Math.round(Math.random() * 15)];\n }\n if (color === void 0) {\n return getRandomColor()\n };\n return color;\n}\n\n ;({}); // @--end-of-file-for-module=ng2-logger lib/log.ts","export * from './log';\nexport * from './level';\nexport * from './logger';\nexport * from './display';\n\n ;({}); // @--end-of-file-for-module=ng2-logger lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}