@acorex/core 7.17.14 → 7.17.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 (58) hide show
  1. package/dateTime/lib/datetime-formatter.d.ts +15 -0
  2. package/dateTime/lib/datetime.module.d.ts +4 -1
  3. package/esm2022/config/lib/configs.service.mjs +3 -3
  4. package/esm2022/dateTime/lib/calendar.service.mjs +3 -3
  5. package/esm2022/dateTime/lib/datetime-formatter.mjs +109 -0
  6. package/esm2022/dateTime/lib/datetime.module.mjs +13 -27
  7. package/esm2022/dateTime/lib/datetime.pipe.mjs +3 -3
  8. package/esm2022/events/lib/event.service.mjs +3 -3
  9. package/esm2022/file/index.mjs +3 -1
  10. package/esm2022/file/lib/file-size-formatter.mjs +24 -0
  11. package/esm2022/file/lib/file.module.mjs +22 -0
  12. package/esm2022/file/lib/file.service.mjs +8 -5
  13. package/esm2022/format/index.mjs +2 -2
  14. package/esm2022/format/lib/format.config.mjs +2 -3
  15. package/esm2022/format/lib/format.module.mjs +30 -33
  16. package/esm2022/format/lib/format.pipe.mjs +3 -3
  17. package/esm2022/format/lib/format.service.mjs +30 -14
  18. package/esm2022/format/lib/number-formatter.mjs +16 -0
  19. package/esm2022/format/lib/string-formatter.mjs +26 -0
  20. package/esm2022/image/lib/image.service.mjs +3 -3
  21. package/esm2022/pipes/lib/safe/safe.pipe.mjs +3 -3
  22. package/esm2022/platform/lib/platform.service.mjs +3 -3
  23. package/esm2022/storage/cookie-storage.service.mjs +3 -3
  24. package/esm2022/storage/local-storage.service.mjs +3 -3
  25. package/esm2022/storage/session-storage.service.mjs +3 -3
  26. package/esm2022/translation/lib/translation.module.mjs +4 -4
  27. package/esm2022/translation/lib/translator.pipe.mjs +3 -3
  28. package/esm2022/utils/lib/auto-unsubscribe.mjs +3 -3
  29. package/fesm2022/acorex-core-config.mjs +3 -3
  30. package/fesm2022/acorex-core-dateTime.mjs +109 -35
  31. package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
  32. package/fesm2022/acorex-core-events.mjs +3 -3
  33. package/fesm2022/acorex-core-file.mjs +50 -7
  34. package/fesm2022/acorex-core-file.mjs.map +1 -1
  35. package/fesm2022/acorex-core-format.mjs +59 -48
  36. package/fesm2022/acorex-core-format.mjs.map +1 -1
  37. package/fesm2022/acorex-core-image.mjs +3 -3
  38. package/fesm2022/acorex-core-pipes.mjs +3 -3
  39. package/fesm2022/acorex-core-platform.mjs +3 -3
  40. package/fesm2022/acorex-core-storage.mjs +9 -9
  41. package/fesm2022/acorex-core-translation.mjs +7 -7
  42. package/fesm2022/acorex-core-utils.mjs +3 -3
  43. package/file/index.d.ts +2 -0
  44. package/file/lib/file-size-formatter.d.ts +8 -0
  45. package/file/lib/file.module.d.ts +8 -0
  46. package/format/index.d.ts +1 -1
  47. package/format/lib/format.config.d.ts +1 -3
  48. package/format/lib/format.module.d.ts +7 -0
  49. package/format/lib/format.service.d.ts +10 -3
  50. package/format/lib/number-formatter.d.ts +5 -0
  51. package/format/lib/string-formatter.d.ts +5 -0
  52. package/package.json +3 -3
  53. package/dateTime/lib/datetime-format.plugin.d.ts +0 -9
  54. package/esm2022/dateTime/lib/datetime-format.plugin.mjs +0 -21
  55. package/esm2022/format/lib/number-format.plugin.mjs +0 -16
  56. package/esm2022/format/lib/string-format.plugin.mjs +0 -26
  57. package/format/lib/number-format.plugin.d.ts +0 -5
  58. package/format/lib/string-format.plugin.d.ts +0 -5
@@ -0,0 +1,15 @@
1
+ import { AXFormatter } from '@acorex/core/format';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AXDateTimeFormatter implements AXFormatter {
4
+ private calendarService;
5
+ get name(): string;
6
+ format(value: unknown, ...args: unknown[]): string;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXDateTimeFormatter, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXDateTimeFormatter>;
9
+ }
10
+ export declare class AXTimeLeftFormatter implements AXFormatter {
11
+ get name(): string;
12
+ format(value: unknown, ...args: unknown[]): string;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXTimeLeftFormatter, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXTimeLeftFormatter>;
15
+ }
@@ -1,7 +1,10 @@
1
+ import { AXFormatterRegistryService } from '@acorex/core/format';
1
2
  import * as i0 from "@angular/core";
2
3
  import * as i1 from "./datetime.pipe";
4
+ import * as i2 from "@acorex/core/format";
3
5
  export declare class AXDateTimeModule {
6
+ constructor(service: AXFormatterRegistryService);
4
7
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDateTimeModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXDateTimeModule, [typeof i1.AXDateTimePipe], never, [typeof i1.AXDateTimePipe]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXDateTimeModule, [typeof i1.AXDateTimePipe], [typeof i2.AXFormatModule], [typeof i1.AXDateTimePipe]>;
6
9
  static ɵinj: i0.ɵɵInjectorDeclaration<AXDateTimeModule>;
7
10
  }
@@ -17,10 +17,10 @@ export class AXConfigService {
17
17
  const v2 = this.injector.get(providerToken);
18
18
  return get(v2, parts[parts.length - 1], defaultValue);
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXConfigService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXConfigService, providedIn: 'root' }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXConfigService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXConfigService, providedIn: 'root' }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXConfigService, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXConfigService, decorators: [{
24
24
  type: Injectable,
25
25
  args: [{ providedIn: 'root' }]
26
26
  }], ctorParameters: () => [{ type: i0.Injector }] });
@@ -68,10 +68,10 @@ export class AXCalendarService {
68
68
  const date = value instanceof AXDateTime ? value.date : value;
69
69
  return new AXDateTime(date, calendar);
70
70
  }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXCalendarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
72
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXCalendarService, providedIn: 'root' }); }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXCalendarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
72
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXCalendarService, providedIn: 'root' }); }
73
73
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXCalendarService, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXCalendarService, decorators: [{
75
75
  type: Injectable,
76
76
  args: [{ providedIn: 'root' }]
77
77
  }], ctorParameters: () => [] });
@@ -0,0 +1,109 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { AXCalendarService } from './calendar.service';
3
+ import { isNil } from 'lodash-es';
4
+ import * as i0 from "@angular/core";
5
+ export class AXDateTimeFormatter {
6
+ constructor() {
7
+ this.calendarService = inject(AXCalendarService);
8
+ }
9
+ get name() {
10
+ return 'datetime';
11
+ }
12
+ format(value, ...args) {
13
+ const formatStr = (args.length ? args[0] : null);
14
+ return this.calendarService.create(value).format(formatStr);
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeFormatter }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeFormatter, decorators: [{
20
+ type: Injectable
21
+ }] });
22
+ export class AXTimeLeftFormatter {
23
+ get name() {
24
+ return 'timeleft';
25
+ }
26
+ format(value, ...args) {
27
+ const milliseconds = Number(value);
28
+ if (milliseconds === null || isNaN(milliseconds)) {
29
+ return "Calculating...";
30
+ }
31
+ const durationInSeconds = Math.round(milliseconds / 1000);
32
+ let format = args[0];
33
+ // Determine the best format if format is null
34
+ if (isNil(format)) {
35
+ if (durationInSeconds < 45)
36
+ format = 's';
37
+ else if (durationInSeconds < 60 * 45)
38
+ format = 'm';
39
+ else if (durationInSeconds < 60 * 60 * 22)
40
+ format = 'h';
41
+ else if (durationInSeconds < 60 * 60 * 24 * 26)
42
+ format = 'd';
43
+ else if (durationInSeconds < 60 * 60 * 24 * 320)
44
+ format = 'M';
45
+ else
46
+ format = 'y';
47
+ }
48
+ // Helper function for zero-padding
49
+ const pad = (num) => num.toString().padStart(2, '0');
50
+ switch (format) {
51
+ case 's':
52
+ return `${durationInSeconds} seconds left`;
53
+ case 'ss':
54
+ return `${pad(durationInSeconds)} seconds left`;
55
+ case 'm':
56
+ return `${Math.round(durationInSeconds / 60)} minute${durationInSeconds >= 120 ? 's' : ''} left`;
57
+ case 'mm':
58
+ return `${pad(Math.round(durationInSeconds / 60))} minutes left`;
59
+ case 'h':
60
+ case 'H':
61
+ if (durationInSeconds < 60 * 89)
62
+ return 'an hour left';
63
+ return `${Math.round(durationInSeconds / 3600)} hour${durationInSeconds >= 60 * 180 ? 's' : ''} left`;
64
+ case 'hh':
65
+ case 'HH':
66
+ if (durationInSeconds < 60 * 89)
67
+ return '01 hour left';
68
+ return `${pad(Math.round(durationInSeconds / 3600))} hours left`;
69
+ case 'd':
70
+ case 'D':
71
+ if (durationInSeconds < 60 * 60 * 35)
72
+ return 'a day left';
73
+ return `${Math.round(durationInSeconds / (3600 * 24))} day${durationInSeconds >= 60 * 60 * 70 ? 's' : ''} left`;
74
+ case 'dd':
75
+ case 'DD':
76
+ if (durationInSeconds < 60 * 60 * 35)
77
+ return '01 day left';
78
+ return `${pad(Math.round(durationInSeconds / (3600 * 24)))} days left`;
79
+ case 'M':
80
+ if (durationInSeconds < 60 * 60 * 24 * 45)
81
+ return 'a month left';
82
+ return `${Math.round(durationInSeconds / (3600 * 24 * 30))} month${durationInSeconds >= 60 * 60 * 24 * 90 ? 's' : ''} left`;
83
+ case 'MM':
84
+ if (durationInSeconds < 60 * 60 * 24 * 45)
85
+ return '01 month left';
86
+ return `${pad(Math.round(durationInSeconds / (3600 * 24 * 30)))} months left`;
87
+ case 'y':
88
+ case 'Y':
89
+ if (durationInSeconds < 60 * 60 * 24 * 547)
90
+ return 'a year left';
91
+ return `${Math.round(durationInSeconds / (3600 * 24 * 365))} year${durationInSeconds >= 60 * 60 * 24 * 730 ? 's' : ''} left`;
92
+ case 'yy':
93
+ case 'YY':
94
+ case 'yyyy':
95
+ case 'YYYY':
96
+ if (durationInSeconds < 60 * 60 * 24 * 547)
97
+ return '01 year left';
98
+ return `${pad(Math.round(durationInSeconds / (3600 * 24 * 365)))} years left`;
99
+ default:
100
+ return 'Invalid format';
101
+ }
102
+ }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXTimeLeftFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
104
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXTimeLeftFormatter }); }
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXTimeLeftFormatter, decorators: [{
107
+ type: Injectable
108
+ }] });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGVUaW1lL3NyYy9saWIvZGF0ZXRpbWUtZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBR2xDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFVSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBVXJEO0lBUkMsSUFBSSxJQUFJO1FBQ04sT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFjLEVBQUUsR0FBRyxJQUFlO1FBQ3ZDLE1BQU0sU0FBUyxHQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQVcsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RSxDQUFDOzhHQVZVLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOztBQWdCWCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLElBQUksSUFBSTtRQUNOLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYyxFQUFFLEdBQUcsSUFBZTtRQUN2QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbEMsSUFBSSxZQUFZLEtBQUssSUFBSSxJQUFJLEtBQUss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QUFDLFFBQVEsaUJBQWlCLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO1lBQy9ILEtBQUssSUFBSSxDQUFDO1lBQ1YsS0FBSyxJQUFJLENBQUM7WUFDVixLQUFLLE1BQU0sQ0FBQztZQUNaLEtBQUssTUFBTTtnQkFDVCxJQUFJLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUc7b0JBQUUsT0FBTyxjQUFjLENBQUM7Z0JBQ2xFLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDaEY7Z0JBQ0UsT0FBTyxnQkFBZ0IsQ0FBQztTQUMzQjtJQUNILENBQUM7OEdBdEVVLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXR0ZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDYWxlbmRhclNlcnZpY2UgfSBmcm9tICcuL2NhbGVuZGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhEYXRlVGltZUZvcm1hdHRlciBpbXBsZW1lbnRzIEFYRm9ybWF0dGVyIHtcbiAgcHJpdmF0ZSBjYWxlbmRhclNlcnZpY2UgPSBpbmplY3QoQVhDYWxlbmRhclNlcnZpY2UpO1xuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdkYXRldGltZSc7XG4gIH1cblxuICBmb3JtYXQodmFsdWU6IHVua25vd24sIC4uLmFyZ3M6IHVua25vd25bXSk6IHN0cmluZyB7XG4gICAgY29uc3QgZm9ybWF0U3RyOiBzdHJpbmcgPSAoYXJncy5sZW5ndGggPyBhcmdzWzBdIDogbnVsbCkgYXMgc3RyaW5nO1xuICAgIHJldHVybiB0aGlzLmNhbGVuZGFyU2VydmljZS5jcmVhdGUodmFsdWUgYXMgRGF0ZSkuZm9ybWF0KGZvcm1hdFN0cik7XG4gIH1cbn1cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhUaW1lTGVmdEZvcm1hdHRlciBpbXBsZW1lbnRzIEFYRm9ybWF0dGVyIHtcblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAndGltZWxlZnQnO1xuICB9XG5cbiAgZm9ybWF0KHZhbHVlOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IE51bWJlcih2YWx1ZSlcbiAgICBpZiAobWlsbGlzZWNvbmRzID09PSBudWxsIHx8IGlzTmFOKG1pbGxpc2Vjb25kcykpIHtcbiAgICAgIHJldHVybiBcIkNhbGN1bGF0aW5nLi4uXCI7XG4gICAgfVxuICAgIGNvbnN0IGR1cmF0aW9uSW5TZWNvbmRzID0gTWF0aC5yb3VuZChtaWxsaXNlY29uZHMgLyAxMDAwKTtcbiAgICBsZXQgZm9ybWF0ID0gYXJnc1swXTtcbiAgICAvLyBEZXRlcm1pbmUgdGhlIGJlc3QgZm9ybWF0IGlmIGZvcm1hdCBpcyBudWxsXG4gICAgaWYgKGlzTmlsKGZvcm1hdCkpIHtcbiAgICAgIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDQ1KSBmb3JtYXQgPSAncyc7XG4gICAgICBlbHNlIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNDUpIGZvcm1hdCA9ICdtJztcbiAgICAgIGVsc2UgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDIyKSBmb3JtYXQgPSAnaCc7XG4gICAgICBlbHNlIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAyNCAqIDI2KSBmb3JtYXQgPSAnZCc7XG4gICAgICBlbHNlIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAyNCAqIDMyMCkgZm9ybWF0ID0gJ00nO1xuICAgICAgZWxzZSBmb3JtYXQgPSAneSc7XG4gICAgfVxuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB6ZXJvLXBhZGRpbmdcbiAgICBjb25zdCBwYWQgPSAobnVtOiBudW1iZXIpID0+IG51bS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG5cbiAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgY2FzZSAncyc6XG4gICAgICAgIHJldHVybiBgJHtkdXJhdGlvbkluU2Vjb25kc30gc2Vjb25kcyBsZWZ0YDtcbiAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgcmV0dXJuIGAke3BhZChkdXJhdGlvbkluU2Vjb25kcyl9IHNlY29uZHMgbGVmdGA7XG4gICAgICBjYXNlICdtJzpcbiAgICAgICAgcmV0dXJuIGAke01hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyA2MCl9IG1pbnV0ZSR7ZHVyYXRpb25JblNlY29uZHMgPj0gMTIwID8gJ3MnIDogJyd9IGxlZnRgO1xuICAgICAgY2FzZSAnbW0nOlxuICAgICAgICByZXR1cm4gYCR7cGFkKE1hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyA2MCkpfSBtaW51dGVzIGxlZnRgO1xuICAgICAgY2FzZSAnaCc6XG4gICAgICBjYXNlICdIJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA4OSkgcmV0dXJuICdhbiBob3VyIGxlZnQnO1xuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvIDM2MDApfSBob3VyJHtkdXJhdGlvbkluU2Vjb25kcyA+PSA2MCAqIDE4MCA/ICdzJyA6ICcnfSBsZWZ0YDtcbiAgICAgIGNhc2UgJ2hoJzpcbiAgICAgIGNhc2UgJ0hIJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA4OSkgcmV0dXJuICcwMSBob3VyIGxlZnQnO1xuICAgICAgICByZXR1cm4gYCR7cGFkKE1hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyAzNjAwKSl9IGhvdXJzIGxlZnRgO1xuICAgICAgY2FzZSAnZCc6XG4gICAgICBjYXNlICdEJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDM1KSByZXR1cm4gJ2EgZGF5IGxlZnQnO1xuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQpKX0gZGF5JHtkdXJhdGlvbkluU2Vjb25kcyA+PSA2MCAqIDYwICogNzAgPyAncycgOiAnJ30gbGVmdGA7XG4gICAgICBjYXNlICdkZCc6XG4gICAgICBjYXNlICdERCc6XG4gICAgICAgIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAzNSkgcmV0dXJuICcwMSBkYXkgbGVmdCc7XG4gICAgICAgIHJldHVybiBgJHtwYWQoTWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQpKSl9IGRheXMgbGVmdGA7XG4gICAgICBjYXNlICdNJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDI0ICogNDUpIHJldHVybiAnYSBtb250aCBsZWZ0JztcbiAgICAgICAgcmV0dXJuIGAke01hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyAoMzYwMCAqIDI0ICogMzApKX0gbW9udGgke2R1cmF0aW9uSW5TZWNvbmRzID49IDYwICogNjAgKiAyNCAqIDkwID8gJ3MnIDogJyd9IGxlZnRgO1xuICAgICAgY2FzZSAnTU0nOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjQgKiA0NSkgcmV0dXJuICcwMSBtb250aCBsZWZ0JztcbiAgICAgICAgcmV0dXJuIGAke3BhZChNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCAqIDMwKSkpfSBtb250aHMgbGVmdGA7XG4gICAgICBjYXNlICd5JzpcbiAgICAgIGNhc2UgJ1knOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjQgKiA1NDcpIHJldHVybiAnYSB5ZWFyIGxlZnQnO1xuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQgKiAzNjUpKX0geWVhciR7ZHVyYXRpb25JblNlY29uZHMgPj0gNjAgKiA2MCAqIDI0ICogNzMwID8gJ3MnIDogJyd9IGxlZnRgO1xuICAgICAgY2FzZSAneXknOlxuICAgICAgY2FzZSAnWVknOlxuICAgICAgY2FzZSAneXl5eSc6XG4gICAgICBjYXNlICdZWVlZJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDI0ICogNTQ3KSByZXR1cm4gJzAxIHllYXIgbGVmdCc7XG4gICAgICAgIHJldHVybiBgJHtwYWQoTWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQgKiAzNjUpKSl9IHllYXJzIGxlZnRgO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdJbnZhbGlkIGZvcm1hdCc7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,37 +1,23 @@
1
- import { AX_FORMAT_PLUGING } from '@acorex/core/format';
1
+ import { AXFormatModule, AXFormatterRegistryService } from '@acorex/core/format';
2
2
  import { NgModule } from '@angular/core';
3
- import { AXCalendarService } from './calendar.service';
4
- import { AXDateTimeFormatPlugin } from './datetime-format.plugin';
3
+ import { AXDateTimeFormatter, AXTimeLeftFormatter } from './datetime-formatter';
5
4
  import { AXDateTimePipe } from './datetime.pipe';
6
5
  import * as i0 from "@angular/core";
6
+ import * as i1 from "@acorex/core/format";
7
7
  export class AXDateTimeModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], exports: [AXDateTimePipe] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeModule, providers: [
11
- AXCalendarService,
12
- AXDateTimeFormatPlugin,
13
- {
14
- provide: AX_FORMAT_PLUGING,
15
- multi: true,
16
- useClass: AXDateTimeFormatPlugin,
17
- },
18
- ] }); }
8
+ constructor(service) {
9
+ service.register(new AXDateTimeFormatter(), new AXTimeLeftFormatter());
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeModule, deps: [{ token: i1.AXFormatterRegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], imports: [AXFormatModule], exports: [AXDateTimePipe] }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeModule, imports: [AXFormatModule] }); }
19
14
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeModule, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeModule, decorators: [{
21
16
  type: NgModule,
22
17
  args: [{
23
- imports: [],
18
+ imports: [AXFormatModule],
24
19
  exports: [AXDateTimePipe],
25
20
  declarations: [AXDateTimePipe],
26
- providers: [
27
- AXCalendarService,
28
- AXDateTimeFormatPlugin,
29
- {
30
- provide: AX_FORMAT_PLUGING,
31
- multi: true,
32
- useClass: AXDateTimeFormatPlugin,
33
- },
34
- ],
35
21
  }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGVUaW1lL3NyYy9saWIvZGF0ZXRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWdCakQsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBWFosY0FBYyxhQURuQixjQUFjOytHQVliLGdCQUFnQixhQVZoQjtZQUNULGlCQUFpQjtZQUNqQixzQkFBc0I7WUFDdEI7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLHNCQUFzQjthQUNqQztTQUNGOzsyRkFFVSxnQkFBZ0I7a0JBZDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUN6QixZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzlCLFNBQVMsRUFBRTt3QkFDVCxpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEI7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsUUFBUSxFQUFFLHNCQUFzQjt5QkFDakM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWF9GT1JNQVRfUExVR0lORyB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYRGF0ZVRpbWVGb3JtYXRQbHVnaW4gfSBmcm9tICcuL2RhdGV0aW1lLWZvcm1hdC5wbHVnaW4nO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpcGUgfSBmcm9tICcuL2RhdGV0aW1lLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW0FYRGF0ZVRpbWVQaXBlXSxcbiAgZGVjbGFyYXRpb25zOiBbQVhEYXRlVGltZVBpcGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBBWENhbGVuZGFyU2VydmljZSxcbiAgICBBWERhdGVUaW1lRm9ybWF0UGx1Z2luLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYX0ZPUk1BVF9QTFVHSU5HLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VDbGFzczogQVhEYXRlVGltZUZvcm1hdFBsdWdpbixcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lTW9kdWxlIHt9XG4iXX0=
22
+ }], ctorParameters: () => [{ type: i1.AXFormatterRegistryService }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGVUaW1lL3NyYy9saWIvZGF0ZXRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBT2pELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFBWSxPQUFtQztRQUM3QyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksbUJBQW1CLEVBQUUsRUFBRSxJQUFJLG1CQUFtQixFQUFFLENBQUMsQ0FBQTtJQUN4RSxDQUFDOzhHQUhVLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQUZaLGNBQWMsYUFGbkIsY0FBYyxhQUNkLGNBQWM7K0dBR2IsZ0JBQWdCLFlBSmpCLGNBQWM7OzJGQUliLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQ3pCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDekIsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRm9ybWF0TW9kdWxlLCBBWEZvcm1hdHRlclJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGF0ZVRpbWVGb3JtYXR0ZXIsIEFYVGltZUxlZnRGb3JtYXR0ZXIgfSBmcm9tICcuL2RhdGV0aW1lLWZvcm1hdHRlcic7XG5pbXBvcnQgeyBBWERhdGVUaW1lUGlwZSB9IGZyb20gJy4vZGF0ZXRpbWUucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtBWEZvcm1hdE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtBWERhdGVUaW1lUGlwZV0sXG4gIGRlY2xhcmF0aW9uczogW0FYRGF0ZVRpbWVQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhEYXRlVGltZU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHNlcnZpY2U6IEFYRm9ybWF0dGVyUmVnaXN0cnlTZXJ2aWNlKSB7XG4gICAgc2VydmljZS5yZWdpc3RlcihuZXcgQVhEYXRlVGltZUZvcm1hdHRlcigpLCBuZXcgQVhUaW1lTGVmdEZvcm1hdHRlcigpKVxuICB9XG59XG4iXX0=
@@ -21,10 +21,10 @@ export class AXDateTimePipe {
21
21
  return val.format(format);
22
22
  }
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
25
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimePipe, name: "axDate" }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
25
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimePipe, name: "axDate" }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimePipe, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimePipe, decorators: [{
28
28
  type: Pipe,
29
29
  args: [{ name: 'axDate' }]
30
30
  }] });
@@ -26,10 +26,10 @@ export class AXEventService {
26
26
  d.events = [];
27
27
  }
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
30
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXEventService, providedIn: 'root' }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXEventService, providedIn: 'root' }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXEventService, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXEventService, decorators: [{
33
33
  type: Injectable,
34
34
  args: [{ providedIn: 'root' }]
35
35
  }] });
@@ -1,5 +1,7 @@
1
+ export * from './lib/file-size-formatter';
1
2
  export * from './lib/file-download-ref.class';
2
3
  export * from './lib/file-download-result.class';
3
4
  export * from './lib/file-upload-ref.class';
4
5
  export * from './lib/file.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZmlsZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtZG93bmxvYWQtcmVmLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtZG93bmxvYWQtcmVzdWx0LmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtdXBsb2FkLXJlZi5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWxlLnNlcnZpY2UnO1xuIl19
6
+ export * from './lib/file.module';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZmlsZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9maWxlLXNpemUtZm9ybWF0dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtZG93bmxvYWQtcmVmLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtZG93bmxvYWQtcmVzdWx0LmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtdXBsb2FkLXJlZi5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZS5tb2R1bGUnO1xuIl19
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AXFileSizeFormatter {
4
+ get name() {
5
+ return 'filesize';
6
+ }
7
+ format(value, ...args) {
8
+ const size = Number(value);
9
+ if (size === 0)
10
+ return '0 Bytes';
11
+ if (Number.isNaN(size))
12
+ return 'Unknown';
13
+ const k = 1024;
14
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
15
+ const i = Math.floor(Math.log(size) / Math.log(k));
16
+ return parseFloat((size / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFileSizeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
19
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFileSizeFormatter }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFileSizeFormatter, decorators: [{
22
+ type: Injectable
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zaXplLWZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9maWxlL3NyYy9saWIvZmlsZS1zaXplLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLElBQUksSUFBSTtRQUNOLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYyxFQUFFLEdBQUcsSUFBZTtRQUN2QyxNQUFNLElBQUksR0FBVyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkMsSUFBSSxJQUFJLEtBQUssQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2pDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUV6QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDZixNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQzs4R0FqQlUsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdHRlciB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhGaWxlU2l6ZUZvcm1hdHRlciBpbXBsZW1lbnRzIEFYRm9ybWF0dGVyIHtcblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZmlsZXNpemUnO1xuICB9XG5cbiAgZm9ybWF0KHZhbHVlOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHNpemU6IG51bWJlciA9IE51bWJlcih2YWx1ZSk7XG5cbiAgICBpZiAoc2l6ZSA9PT0gMCkgcmV0dXJuICcwIEJ5dGVzJztcbiAgICBpZiAoTnVtYmVyLmlzTmFOKHNpemUpKSByZXR1cm4gJ1Vua25vd24nO1xuXG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coc2l6ZSkgLyBNYXRoLmxvZyhrKSk7XG5cbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoc2l6ZSAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKDIpKSArICcgJyArIHNpemVzW2ldO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { AXFormatterRegistryService } from '@acorex/core/format';
2
+ import { NgModule } from '@angular/core';
3
+ import { AXFileSizeFormatter } from './file-size-formatter';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@acorex/core/format";
6
+ export class AXFileModule {
7
+ constructor(service) {
8
+ service.register(new AXFileSizeFormatter());
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFileModule, deps: [{ token: i1.AXFormatterRegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AXFileModule }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFileModule }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFileModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: [],
18
+ exports: [],
19
+ declarations: [],
20
+ }]
21
+ }], ctorParameters: () => [{ type: i1.AXFormatterRegistryService }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZmlsZS9zcmMvbGliL2ZpbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQU81RCxNQUFNLE9BQU8sWUFBWTtJQUNyQixZQUFZLE9BQW1DO1FBQzNDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7SUFDL0MsQ0FBQzs4R0FIUSxZQUFZOytHQUFaLFlBQVk7K0dBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdHRlclJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRmlsZVNpemVGb3JtYXR0ZXIgfSBmcm9tICcuL2ZpbGUtc2l6ZS1mb3JtYXR0ZXInO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtdLFxuICAgIGV4cG9ydHM6IFtdLFxuICAgIGRlY2xhcmF0aW9uczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYRmlsZU1vZHVsZSB7XG4gICAgY29uc3RydWN0b3Ioc2VydmljZTogQVhGb3JtYXR0ZXJSZWdpc3RyeVNlcnZpY2UpIHtcbiAgICAgICAgc2VydmljZS5yZWdpc3RlcihuZXcgQVhGaWxlU2l6ZUZvcm1hdHRlcigpKVxuICAgIH1cbn1cbiJdfQ==
@@ -91,10 +91,13 @@ export class AXFileService {
91
91
  input.click();
92
92
  });
93
93
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFileService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
95
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFileService }); }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFileService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
95
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFileService, providedIn: 'root' }); }
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFileService, decorators: [{
98
- type: Injectable
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFileService, decorators: [{
98
+ type: Injectable,
99
+ args: [{
100
+ providedIn: 'root'
101
+ }]
99
102
  }], ctorParameters: () => [{ type: i1.HttpClient }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2ZpbGUvc3JjL2xpYi9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUE0QixZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFHMUQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFBb0IsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFnRjNDLGlCQUFZLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUM1QixJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNuQixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQWdCLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUM7WUFDRixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBeEZ5QyxDQUFDO0lBRXhDLFFBQVEsQ0FBQyxPQUFrQztRQUNoRCxJQUFJLENBQWUsQ0FBQztRQUNwQixNQUFNLFdBQVcsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxnQ0FBZ0M7WUFDaEMseUVBQXlFO1lBQ3pFLElBQUksQ0FBb0IsQ0FBQztZQUN6QixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtnQkFDL0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQzdEO2lCQUFNLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMxQixDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQ2I7WUFDRCxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQztnQkFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDeEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNiLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxNQUFNLENBQVUsR0FBVyxFQUFFLEtBQWE7UUFDL0MsSUFBSSxDQUFlLENBQUM7UUFDcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxNQUFNLENBQUMsR0FBa0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUksR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDO2dCQUNmLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ2IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFpRDtRQUM3RCxPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzdDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELE1BQU0sS0FBSyxHQUFxQixRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hFLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNwQixLQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1lBQ3BDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7WUFDM0MsRUFBRTtZQUNGLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDVixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNmLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDO1lBQ0YsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtnQkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNmLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDO1lBQ0YsRUFBRTtZQUNGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDM0MsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6QyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQS9FVSxhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBpc09ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYRmlsZURvd25sb2FkUmVmIH0gZnJvbSAnLi9maWxlLWRvd25sb2FkLXJlZi5jbGFzcyc7XG5pbXBvcnQgeyBBWEZpbGVEb3dubG9hZFJlc3VsdCB9IGZyb20gJy4vZmlsZS1kb3dubG9hZC1yZXN1bHQuY2xhc3MnO1xuaW1wb3J0IHsgQVhGaWxlVXBsb2FkUmVmIH0gZnJvbSAnLi9maWxlLXVwbG9hZC1yZWYuY2xhc3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhGaWxlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XG5cbiAgcHVibGljIGRvd25sb2FkKHJlcXVlc3Q6IHN0cmluZyB8IE9ic2VydmFibGU8QmxvYj4pOiBBWEZpbGVEb3dubG9hZFJlZiB7XG4gICAgbGV0IHM6IFN1YnNjcmlwdGlvbjtcbiAgICBjb25zdCBwcm9taXNlRnVuYyA9IChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vVE9ETzogYWRkIGN1c3RvbWUgaHR0cCByZXF1ZXN0XG4gICAgICAvL2NvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ2F1dGhvcml6YXRpb24nLCdCZWFyZXIgJyt0b2tlbik7XG4gICAgICBsZXQgYiE6IE9ic2VydmFibGU8QmxvYj47XG4gICAgICBpZiAodHlwZW9mIHJlcXVlc3QgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGIgPSB0aGlzLl9odHRwQ2xpZW50LmdldChyZXF1ZXN0LCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc09ic2VydmFibGUoYikpIHtcbiAgICAgICAgYiA9IHJlcXVlc3Q7XG4gICAgICB9XG4gICAgICBzID0gYj8uc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHYpID0+IHJlc29sdmUobmV3IEFYRmlsZURvd25sb2FkUmVzdWx0KHYpKSxcbiAgICAgICAgZXJyb3I6IChlKSA9PiByZWplY3QoZSksXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgYSA9IG5ldyBBWEZpbGVEb3dubG9hZFJlZihwcm9taXNlRnVuYyk7XG4gICAgYS5hYm9ydCA9ICgpID0+IHtcbiAgICAgIHM/LnVuc3Vic2NyaWJlKCk7XG4gICAgfTtcblxuICAgIHJldHVybiBhO1xuICB9XG5cbiAgcHVibGljIHVwbG9hZDxUID0gYW55Pih1cmw6IHN0cmluZywgZmlsZXM6IEZpbGVbXSk6IEFYRmlsZVVwbG9hZFJlZjxUPiB7XG4gICAgbGV0IHM6IFN1YnNjcmlwdGlvbjtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZpbGVzLmZvckVhY2goKGYpID0+IHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZXMnLCBmKTtcbiAgICB9KTtcbiAgICBjb25zdCBwcm9taXNlRnVuYyA9IChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGI6IE9ic2VydmFibGU8VD4gPSB0aGlzLl9odHRwQ2xpZW50LnBvc3Q8VD4odXJsLCBmb3JtRGF0YSk7XG4gICAgICBzID0gYj8uc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHYpID0+IHJlc29sdmUodiksXG4gICAgICAgIGVycm9yOiAoZSkgPT4gcmVqZWN0KGUpLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGEgPSBuZXcgQVhGaWxlVXBsb2FkUmVmKHByb21pc2VGdW5jKTtcbiAgICBhLmFib3J0ID0gKCkgPT4ge1xuICAgICAgcz8udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xuICAgIHJldHVybiBhO1xuICB9XG5cbiAgcHVibGljIGNob29zZShvcHRpb25zPzogeyBhY2NlcHQ/OiBzdHJpbmc7IG11bHRpcGxlPzogYm9vbGVhbiB9KTogUHJvbWlzZTxGaWxlW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8RmlsZVtdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7IG11bHRpcGxlOiBmYWxzZSB9LCBvcHRpb25zKTtcbiAgICAgIGNvbnN0IGlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgIGlucHV0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlucHV0KTtcbiAgICAgIGlucHV0LnR5cGUgPSAnZmlsZSc7XG4gICAgICBpbnB1dC5hY2NlcHQgPSBvcHRpb25zLmFjY2VwdCB8fCAnJztcbiAgICAgIGlucHV0Lm11bHRpcGxlID0gb3B0aW9ucy5tdWx0aXBsZSB8fCBmYWxzZTtcbiAgICAgIC8vXG4gICAgICBjb25zdCBvbkVycm9yID0gKGUpID0+IHtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0KTtcbiAgICAgICAgaW5wdXQucmVtb3ZlKCk7XG4gICAgICAgIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKTtcbiAgICAgICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgIH07XG4gICAgICAvL1xuICAgICAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIHJlc29sdmUoQXJyYXkuZnJvbShpbnB1dC5maWxlcyB8fCBbXSkpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0KTtcbiAgICAgICAgaW5wdXQucmVtb3ZlKCk7XG4gICAgICAgIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKTtcbiAgICAgICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgIH07XG4gICAgICAvL1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpO1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgIGlucHV0LmNsaWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBibG9iVG9CYXNlNjQgPSAoYmxvYjogQmxvYikgPT5cbiAgICBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpO1xuICAgICAgfTtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xuICAgIH0pO1xufVxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2ZpbGUvc3JjL2xpYi9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUE0QixZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFLMUQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFBb0IsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFnRjNDLGlCQUFZLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUM1QixJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNuQixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQWdCLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUM7WUFDRixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBeEYwQyxDQUFDO0lBRXpDLFFBQVEsQ0FBQyxPQUFrQztRQUNoRCxJQUFJLENBQWUsQ0FBQztRQUNwQixNQUFNLFdBQVcsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFB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cm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhGaWxlRG93bmxvYWRSZWYgfSBmcm9tICcuL2ZpbGUtZG93bmxvYWQtcmVmLmNsYXNzJztcbmltcG9ydCB7IEFYRmlsZURvd25sb2FkUmVzdWx0IH0gZnJvbSAnLi9maWxlLWRvd25sb2FkLXJlc3VsdC5jbGFzcyc7XG5pbXBvcnQgeyBBWEZpbGVVcGxvYWRSZWYgfSBmcm9tICcuL2ZpbGUtdXBsb2FkLXJlZi5jbGFzcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYRmlsZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7IH1cblxuICBwdWJsaWMgZG93bmxvYWQocmVxdWVzdDogc3RyaW5nIHwgT2JzZXJ2YWJsZTxCbG9iPik6IEFYRmlsZURvd25sb2FkUmVmIHtcbiAgICBsZXQgczogU3Vic2NyaXB0aW9uO1xuICAgIGNvbnN0IHByb21pc2VGdW5jID0gKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy9UT0RPOiBhZGQgY3VzdG9tZSBodHRwIHJlcXVlc3RcbiAgICAgIC8vY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnYXV0aG9yaXphdGlvbicsJ0JlYXJlciAnK3Rva2VuKTtcbiAgICAgIGxldCBiITogT2JzZXJ2YWJsZTxCbG9iPjtcbiAgICAgIGlmICh0eXBlb2YgcmVxdWVzdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgYiA9IHRoaXMuX2h0dHBDbGllbnQuZ2V0KHJlcXVlc3QsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSk7XG4gICAgICB9IGVsc2UgaWYgKGlzT2JzZXJ2YWJsZShiKSkge1xuICAgICAgICBiID0gcmVxdWVzdDtcbiAgICAgIH1cbiAgICAgIHMgPSBiPy5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAodikgPT4gcmVzb2x2ZShuZXcgQVhGaWxlRG93bmxvYWRSZXN1bHQodikpLFxuICAgICAgICBlcnJvcjogKGUpID0+IHJlamVjdChlKSxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBhID0gbmV3IEFYRmlsZURvd25sb2FkUmVmKHByb21pc2VGdW5jKTtcbiAgICBhLmFib3J0ID0gKCkgPT4ge1xuICAgICAgcz8udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBwdWJsaWMgdXBsb2FkPFQgPSBhbnk+KHVybDogc3RyaW5nLCBmaWxlczogRmlsZVtdKTogQVhGaWxlVXBsb2FkUmVmPFQ+IHtcbiAgICBsZXQgczogU3Vic2NyaXB0aW9uO1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZmlsZXMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlcycsIGYpO1xuICAgIH0pO1xuICAgIGNvbnN0IHByb21pc2VGdW5jID0gKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgYjogT2JzZXJ2YWJsZTxUPiA9IHRoaXMuX2h0dHBDbGllbnQucG9zdDxUPih1cmwsIGZvcm1EYXRhKTtcbiAgICAgIHMgPSBiPy5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAodikgPT4gcmVzb2x2ZSh2KSxcbiAgICAgICAgZXJyb3I6IChlKSA9PiByZWplY3QoZSksXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgYSA9IG5ldyBBWEZpbGVVcGxvYWRSZWYocHJvbWlzZUZ1bmMpO1xuICAgIGEuYWJvcnQgPSAoKSA9PiB7XG4gICAgICBzPy51bnN1YnNjcmliZSgpO1xuICAgIH07XG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBwdWJsaWMgY2hvb3NlKG9wdGlvbnM/OiB7IGFjY2VwdD86IHN0cmluZzsgbXVsdGlwbGU/OiBib29sZWFuIH0pOiBQcm9taXNlPEZpbGVbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxGaWxlW10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHsgbXVsdGlwbGU6IGZhbHNlIH0sIG9wdGlvbnMpO1xuICAgICAgY29uc3QgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgaW5wdXQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wdXQpO1xuICAgICAgaW5wdXQudHlwZSA9ICdmaWxlJztcbiAgICAgIGlucHV0LmFjY2VwdCA9IG9wdGlvbnMuYWNjZXB0IHx8ICcnO1xuICAgICAgaW5wdXQubXVsdGlwbGUgPSBvcHRpb25zLm11bHRpcGxlIHx8IGZhbHNlO1xuICAgICAgLy9cbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoZSkgPT4ge1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW5wdXQpO1xuICAgICAgICBpbnB1dC5yZW1vdmUoKTtcbiAgICAgICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpO1xuICAgICAgICBpbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgfTtcbiAgICAgIC8vXG4gICAgICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShBcnJheS5mcm9tKGlucHV0LmZpbGVzIHx8IFtdKSk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW5wdXQpO1xuICAgICAgICBpbnB1dC5yZW1vdmUoKTtcbiAgICAgICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpO1xuICAgICAgICBpbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgfTtcbiAgICAgIC8vXG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgaW5wdXQuY2xpY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIGJsb2JUb0Jhc2U2NCA9IChibG9iOiBCbG9iKSA9PlxuICAgIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmVycm9yID0gcmVqZWN0O1xuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XG4gICAgfSk7XG59XG4iXX0=
@@ -2,5 +2,5 @@ export * from './lib/format.config';
2
2
  export * from './lib/format.module';
3
3
  export * from './lib/format.pipe';
4
4
  export * from './lib/format.service';
5
- export * from './lib/number-format.plugin';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZm9ybWF0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtYXQuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1hdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybWF0LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybWF0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbnVtYmVyLWZvcm1hdC5wbHVnaW4nO1xuIl19
5
+ export * from './lib/number-formatter';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZm9ybWF0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtYXQuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1hdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybWF0LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybWF0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbnVtYmVyLWZvcm1hdHRlcic7XG4iXX0=
@@ -1,3 +1,2 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const AX_FORMAT_PLUGING = new InjectionToken('format.plugin');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9mb3JtYXQvc3JjL2xpYi9mb3JtYXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWlCLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWEZvcm1hdFBsdWdpbiB7XG4gIGdldCBuYW1lKCk6IHN0cmluZztcbiAgZm9ybWF0KHZhbHVlOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBBWF9GT1JNQVRfUExVR0lORyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWEZvcm1hdFBsdWdpbj4oJ2Zvcm1hdC5wbHVnaW4nKTtcbiJdfQ==
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9mb3JtYXQvc3JjL2xpYi9mb3JtYXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFYRm9ybWF0dGVyIHtcbiAgZ2V0IG5hbWUoKTogc3RyaW5nO1xuICBmb3JtYXQodmFsdWU6IHVua25vd24sIC4uLmFyZ3M6IHVua25vd25bXSk6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,43 +1,40 @@
1
- import { NgModule } from '@angular/core';
2
- import { AX_FORMAT_PLUGING } from './format.config';
1
+ import { APP_INITIALIZER, NgModule } from '@angular/core';
3
2
  import { AXFormatPipe } from './format.pipe';
4
- import { AXNumberFormatPlugin } from './number-format.plugin';
5
- import { AXStringFormatPlugin } from './string-format.plugin';
3
+ import { AXNumberFormatter } from './number-formatter';
4
+ import { AXStringFormatter } from './string-formatter';
5
+ import { AXFormatterRegistryService } from './format.service';
6
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "./format.service";
7
8
  export class AXFormatModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFormatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AXFormatModule, declarations: [AXFormatPipe], exports: [AXFormatPipe] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFormatModule, providers: [
11
- {
12
- provide: AX_FORMAT_PLUGING,
13
- multi: true,
14
- useClass: AXNumberFormatPlugin,
15
- },
16
- {
17
- provide: AX_FORMAT_PLUGING,
18
- multi: true,
19
- useClass: AXStringFormatPlugin,
20
- },
21
- ] }); }
9
+ static forRoot(config) {
10
+ return {
11
+ ngModule: AXFormatModule,
12
+ providers: [
13
+ {
14
+ provide: APP_INITIALIZER,
15
+ useFactory: (pluginRegistry) => () => {
16
+ if (config?.formatters?.length)
17
+ pluginRegistry.register(...config.formatters);
18
+ },
19
+ deps: [AXFormatterRegistryService],
20
+ multi: true
21
+ }
22
+ ]
23
+ };
24
+ }
25
+ constructor(pluginRegistry) {
26
+ pluginRegistry.register(new AXNumberFormatter(), new AXStringFormatter());
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatModule, deps: [{ token: i1.AXFormatterRegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
29
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AXFormatModule, declarations: [AXFormatPipe], exports: [AXFormatPipe] }); }
30
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatModule }); }
22
31
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFormatModule, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatModule, decorators: [{
24
33
  type: NgModule,
25
34
  args: [{
26
35
  imports: [],
27
36
  exports: [AXFormatPipe],
28
37
  declarations: [AXFormatPipe],
29
- providers: [
30
- {
31
- provide: AX_FORMAT_PLUGING,
32
- multi: true,
33
- useClass: AXNumberFormatPlugin,
34
- },
35
- {
36
- provide: AX_FORMAT_PLUGING,
37
- multi: true,
38
- useClass: AXStringFormatPlugin,
39
- },
40
- ],
41
38
  }]
42
- }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9mb3JtYXQvc3JjL2xpYi9mb3JtYXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFtQjlELE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxpQkFkVixZQUFZLGFBRGpCLFlBQVk7K0dBZVgsY0FBYyxhQWJkO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLG9CQUFvQjthQUMvQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFFBQVEsRUFBRSxvQkFBb0I7YUFDL0I7U0FDRjs7MkZBRVUsY0FBYztrQkFqQjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQzVCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxRQUFRLEVBQUUsb0JBQW9CO3lCQUMvQjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxRQUFRLEVBQUUsb0JBQW9CO3lCQUMvQjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWF9GT1JNQVRfUExVR0lORyB9IGZyb20gJy4vZm9ybWF0LmNvbmZpZyc7XG5pbXBvcnQgeyBBWEZvcm1hdFBpcGUgfSBmcm9tICcuL2Zvcm1hdC5waXBlJztcbmltcG9ydCB7IEFYTnVtYmVyRm9ybWF0UGx1Z2luIH0gZnJvbSAnLi9udW1iZXItZm9ybWF0LnBsdWdpbic7XG5pbXBvcnQgeyBBWFN0cmluZ0Zvcm1hdFBsdWdpbiB9IGZyb20gJy4vc3RyaW5nLWZvcm1hdC5wbHVnaW4nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW0FYRm9ybWF0UGlwZV0sXG4gIGRlY2xhcmF0aW9uczogW0FYRm9ybWF0UGlwZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYX0ZPUk1BVF9QTFVHSU5HLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VDbGFzczogQVhOdW1iZXJGb3JtYXRQbHVnaW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWF9GT1JNQVRfUExVR0lORyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlQ2xhc3M6IEFYU3RyaW5nRm9ybWF0UGx1Z2luLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRm9ybWF0TW9kdWxlIHt9XG4iXX0=
39
+ }], ctorParameters: () => [{ type: i1.AXFormatterRegistryService }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9mb3JtYXQvc3JjL2xpYi9mb3JtYXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFTOUQsTUFBTSxPQUFPLGNBQWM7SUFFekIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUF1QztRQUNwRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQWM7WUFDeEIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixVQUFVLEVBQUUsQ0FBQyxjQUEwQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7d0JBQy9ELElBQUksTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNOzRCQUM1QixjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNsRCxDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUNsQyxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLGNBQTBDO1FBQ3BELGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxpQkFBaUIsRUFBRSxFQUFFLElBQUksaUJBQWlCLEVBQUUsQ0FBQyxDQUFBO0lBQzNFLENBQUM7OEdBckJVLGNBQWM7K0dBQWQsY0FBYyxpQkFGVixZQUFZLGFBRGpCLFlBQVk7K0dBR1gsY0FBYzs7MkZBQWQsY0FBYztrQkFMMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEZvcm1hdFBpcGUgfSBmcm9tICcuL2Zvcm1hdC5waXBlJztcbmltcG9ydCB7IEFYTnVtYmVyRm9ybWF0dGVyIH0gZnJvbSAnLi9udW1iZXItZm9ybWF0dGVyJztcbmltcG9ydCB7IEFYU3RyaW5nRm9ybWF0dGVyIH0gZnJvbSAnLi9zdHJpbmctZm9ybWF0dGVyJztcbmltcG9ydCB7IEFYRm9ybWF0dGVyUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtYXQuc2VydmljZSc7XG5pbXBvcnQgeyBBWEZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0LmNvbmZpZyc7XG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW10sXG4gIGV4cG9ydHM6IFtBWEZvcm1hdFBpcGVdLFxuICBkZWNsYXJhdGlvbnM6IFtBWEZvcm1hdFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBWEZvcm1hdE1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogeyBmb3JtYXR0ZXJzPzogQVhGb3JtYXR0ZXJbXSB9KTogTW9kdWxlV2l0aFByb3ZpZGVyczxBWEZvcm1hdE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQVhGb3JtYXRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICB1c2VGYWN0b3J5OiAocGx1Z2luUmVnaXN0cnk6IEFYRm9ybWF0dGVyUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnPy5mb3JtYXR0ZXJzPy5sZW5ndGgpXG4gICAgICAgICAgICAgIHBsdWdpblJlZ2lzdHJ5LnJlZ2lzdGVyKC4uLmNvbmZpZy5mb3JtYXR0ZXJzKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWEZvcm1hdHRlclJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwbHVnaW5SZWdpc3RyeTogQVhGb3JtYXR0ZXJSZWdpc3RyeVNlcnZpY2UpIHtcbiAgICBwbHVnaW5SZWdpc3RyeS5yZWdpc3RlcihuZXcgQVhOdW1iZXJGb3JtYXR0ZXIoKSwgbmV3IEFYU3RyaW5nRm9ybWF0dGVyKCkpXG4gIH1cbn1cbiJdfQ==
@@ -9,10 +9,10 @@ export class AXFormatPipe {
9
9
  const name = args[0];
10
10
  return this.formatService.format(value, name, ...args.slice(1));
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
13
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AXFormatPipe, name: "format" }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
13
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AXFormatPipe, name: "format" }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFormatPipe, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatPipe, decorators: [{
16
16
  type: Pipe,
17
17
  args: [{
18
18
  name: 'format',
@@ -1,24 +1,40 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { AX_FORMAT_PLUGING } from './format.config';
1
+ import { Injectable } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
3
+ export class AXFormatterRegistryService {
4
+ constructor() {
5
+ this.plugins = [];
6
+ }
7
+ register(...plugin) {
8
+ this.plugins.push(...plugin.filter(p => !this.plugins.some(c => c.name == p.name)));
9
+ }
10
+ get formatters() {
11
+ return this.plugins;
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatterRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
14
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatterRegistryService, providedIn: 'root' }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatterRegistryService, decorators: [{
17
+ type: Injectable,
18
+ args: [{
19
+ providedIn: 'root'
20
+ }]
21
+ }] });
4
22
  export class AXFormatService {
5
- constructor(plugins) {
6
- this.plugins = plugins;
23
+ constructor(pluginRegistry) {
24
+ this.pluginRegistry = pluginRegistry;
7
25
  }
8
26
  format(value, name, ...args) {
9
- const format = this.plugins.find((c) => c.name == name);
10
- if (!name || !format)
27
+ const format = this.pluginRegistry.formatters.find((c) => c.name == name);
28
+ if (!format) {
11
29
  return String(value);
30
+ }
12
31
  return format.format(value, ...args);
13
32
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFormatService, deps: [{ token: AX_FORMAT_PLUGING }], target: i0.ɵɵFactoryTarget.Injectable }); }
15
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFormatService, providedIn: 'root' }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatService, deps: [{ token: AXFormatterRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatService, providedIn: 'root' }); }
16
35
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXFormatService, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXFormatService, decorators: [{
18
37
  type: Injectable,
19
38
  args: [{ providedIn: 'root' }]
20
- }], ctorParameters: () => [{ type: undefined, decorators: [{
21
- type: Inject,
22
- args: [AX_FORMAT_PLUGING]
23
- }] }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZm9ybWF0L3NyYy9saWIvZm9ybWF0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFrQixpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUdwRSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUVVLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQ2hDLENBQUM7SUFFSixNQUFNLENBQUMsS0FBYyxFQUFFLElBQVksRUFBRSxHQUFHLElBQWU7UUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs4R0FWVSxlQUFlLGtCQUVoQixpQkFBaUI7a0hBRmhCLGVBQWUsY0FERixNQUFNOzsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUc3QixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhGb3JtYXRQbHVnaW4sIEFYX0ZPUk1BVF9QTFVHSU5HIH0gZnJvbSAnLi9mb3JtYXQuY29uZmlnJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWEZvcm1hdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEFYX0ZPUk1BVF9QTFVHSU5HKVxuICAgIHByaXZhdGUgcGx1Z2luczogQVhGb3JtYXRQbHVnaW5bXSxcbiAgKSB7fVxuXG4gIGZvcm1hdCh2YWx1ZTogdW5rbm93biwgbmFtZTogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMucGx1Z2lucy5maW5kKChjKSA9PiBjLm5hbWUgPT0gbmFtZSk7XG4gICAgaWYgKCFuYW1lIHx8ICFmb3JtYXQpIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIHJldHVybiBmb3JtYXQuZm9ybWF0KHZhbHVlLCAuLi5hcmdzKTtcbiAgfVxufVxuIl19
39
+ }], ctorParameters: () => [{ type: AXFormatterRegistryService }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZm9ybWF0L3NyYy9saWIvZm9ybWF0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLDBCQUEwQjtJQUh2QztRQUlVLFlBQU8sR0FBa0IsRUFBRSxDQUFDO0tBVXJDO0lBUEMsUUFBUSxDQUFDLEdBQUcsTUFBcUI7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7OEdBVlUsMEJBQTBCO2tIQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7MkZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUFlRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNVLGNBQTBDO1FBQTFDLG1CQUFjLEdBQWQsY0FBYyxDQUE0QjtJQUNoRCxDQUFDO0lBRUwsTUFBTSxDQUFDLEtBQWMsRUFBRSxJQUFZLEVBQUUsR0FBRyxJQUFlO1FBQ3JELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEI7UUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs4R0FYVSxlQUFlO2tIQUFmLGVBQWUsY0FERixNQUFNOzsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0LmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYRm9ybWF0dGVyUmVnaXN0cnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwbHVnaW5zOiBBWEZvcm1hdHRlcltdID0gW107XG5cblxuICByZWdpc3RlciguLi5wbHVnaW46IEFYRm9ybWF0dGVyW10pIHtcbiAgICB0aGlzLnBsdWdpbnMucHVzaCguLi5wbHVnaW4uZmlsdGVyKHAgPT4gIXRoaXMucGx1Z2lucy5zb21lKGMgPT4gYy5uYW1lID09IHAubmFtZSkpKTtcbiAgfVxuXG4gIGdldCBmb3JtYXR0ZXJzKCk6IEFYRm9ybWF0dGVyW10ge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbnM7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWEZvcm1hdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpblJlZ2lzdHJ5OiBBWEZvcm1hdHRlclJlZ2lzdHJ5U2VydmljZVxuICApIHsgfVxuXG4gIGZvcm1hdCh2YWx1ZTogdW5rbm93biwgbmFtZTogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMucGx1Z2luUmVnaXN0cnkuZm9ybWF0dGVycy5maW5kKChjKSA9PiBjLm5hbWUgPT0gbmFtZSk7XG4gICAgaWYgKCFmb3JtYXQpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0LmZvcm1hdCh2YWx1ZSwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==