@acorex/core 21.0.0-next.14 → 21.0.0-next.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.
- package/fesm2022/acorex-core-components.mjs +3 -3
- package/fesm2022/acorex-core-components.mjs.map +1 -1
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-config.mjs.map +1 -1
- package/fesm2022/acorex-core-constants.mjs.map +1 -1
- package/fesm2022/acorex-core-date-time.mjs +25 -25
- package/fesm2022/acorex-core-date-time.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-events.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +10 -10
- package/fesm2022/acorex-core-file.mjs.map +1 -1
- package/fesm2022/acorex-core-format.mjs +19 -19
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/fesm2022/acorex-core-icon.mjs +3 -3
- package/fesm2022/acorex-core-icon.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-image.mjs.map +1 -1
- package/fesm2022/acorex-core-locale.mjs +10 -10
- package/fesm2022/acorex-core-locale.mjs.map +1 -1
- package/fesm2022/acorex-core-memoize.mjs.map +1 -1
- package/fesm2022/acorex-core-network.mjs +3 -3
- package/fesm2022/acorex-core-network.mjs.map +1 -1
- package/fesm2022/acorex-core-pipes.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs.map +1 -1
- package/fesm2022/acorex-core-platform.mjs +10 -10
- package/fesm2022/acorex-core-platform.mjs.map +1 -1
- package/fesm2022/acorex-core-storage.mjs +12 -12
- package/fesm2022/acorex-core-storage.mjs.map +1 -1
- package/fesm2022/acorex-core-translation.mjs +16 -16
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +4 -4
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core-validation.mjs +40 -40
- package/fesm2022/acorex-core-validation.mjs.map +1 -1
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/package.json +9 -9
|
@@ -44,10 +44,10 @@ class AXEventService {
|
|
|
44
44
|
d.events = [];
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
48
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXEventService, providedIn: 'root' }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXEventService, decorators: [{
|
|
51
51
|
type: Injectable,
|
|
52
52
|
args: [{ providedIn: 'root' }]
|
|
53
53
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core-events.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"acorex-core-events.mjs","sources":["../../../../packages/core/events/src/lib/event.service.ts","../../../../packages/core/events/src/acorex-core-events.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport enum AXSystemEvents {\n AXLocaleChanged = 'AX_LOCALE_CHANGED',\n AXLocaleLoaded = 'AX_LOCALE_LOADED',\n //\n AXCalendarChanged = 'AX_CALENDAR_CHANGED',\n //\n AXLanguageChanged = 'AX_LANGUAGE_CHANGED',\n AXLanguageLoaded = 'AX_LANGUAGE_LOADED',\n}\n\n\nexport interface AXEventData {\n type: string;\n payload?: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXEventService {\n private eventSubject = new Subject<AXEventData>();\n // Observable property\n public onEvent: Observable<AXEventData> = this.eventSubject.asObservable();\n\n emitEvent(event: AXEventData): void {\n this.eventSubject.next(event);\n }\n\n private list: any[] = [];\n\n public broadcast(key: string, options?: any): void {\n const d = this.list.find((c) => c.key === key);\n if (d) {\n d.events.forEach((c: any) => {\n c(options);\n });\n }\n }\n\n public on(key: string, callback: (options?: any) => void) {\n let d = this.list.find((c) => c.key === key);\n if (!d) {\n d = { key, events: [] };\n this.list.push(d);\n }\n d.events.push(callback);\n }\n\n public destroy(key: string, callback: (options?: any) => void): void {\n const d = this.list.find((c) => c.key === key);\n if (d) {\n d.events = [];\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;IAGY;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,mBAAqC;AACrC,IAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,kBAAmC;;AAEnC,IAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,qBAAyC;;AAEzC,IAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,qBAAyC;AACzC,IAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,oBAAuC;AACzC,CAAC,EARW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;MAiBb,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAe;;AAE1C,QAAA,IAAA,CAAA,OAAO,GAA4B,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;QAMlE,IAAA,CAAA,IAAI,GAAU,EAAE;AA0BzB,IAAA;AA9BC,IAAA,SAAS,CAAC,KAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/B;IAIO,SAAS,CAAC,GAAW,EAAE,OAAa,EAAA;AACzC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAM,KAAI;gBAC1B,CAAC,CAAC,OAAO,CAAC;AACZ,YAAA,CAAC,CAAC;QACJ;IACF;IAEO,EAAE,CAAC,GAAW,EAAE,QAAiC,EAAA;AACtD,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;QAC5C,IAAI,CAAC,CAAC,EAAE;YACN,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnB;AACA,QAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzB;IAEO,OAAO,CAAC,GAAW,EAAE,QAAiC,EAAA;AAC3D,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;QAC9C,IAAI,CAAC,EAAE;AACL,YAAA,CAAC,CAAC,MAAM,GAAG,EAAE;QACf;IACF;8GAlCW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACnBlC;;AAEG;;;;"}
|
|
@@ -29,19 +29,19 @@ class AXFileSizeFormatter {
|
|
|
29
29
|
const i = Math.floor(Math.log(size) / Math.log(k));
|
|
30
30
|
return parseFloat((size / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
|
|
31
31
|
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
33
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFileSizeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFileSizeFormatter }); }
|
|
34
34
|
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFileSizeFormatter, decorators: [{
|
|
36
36
|
type: Injectable
|
|
37
37
|
}] });
|
|
38
38
|
|
|
39
39
|
class AXFileModule {
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
41
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
42
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
41
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: AXFileModule, imports: [i1.AXFormatModule] }); }
|
|
42
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFileModule, providers: [AXFileSizeFormatter], imports: [AXFormatModule.forChild({ formatters: [AXFileSizeFormatter] })] }); }
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFileModule, decorators: [{
|
|
45
45
|
type: NgModule,
|
|
46
46
|
args: [{
|
|
47
47
|
imports: [AXFormatModule.forChild({ formatters: [AXFileSizeFormatter] })],
|
|
@@ -147,10 +147,10 @@ class AXFileService {
|
|
|
147
147
|
getBase64Size(base64) {
|
|
148
148
|
return atob(base64.substring(base64.indexOf(',') + 1)).length;
|
|
149
149
|
}
|
|
150
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
151
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
150
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
151
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFileService, providedIn: 'root' }); }
|
|
152
152
|
}
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFileService, decorators: [{
|
|
154
154
|
type: Injectable,
|
|
155
155
|
args: [{
|
|
156
156
|
providedIn: 'root',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core-file.mjs","sources":["../tmp-esm2022/file/lib/file-size-formatter.js","../tmp-esm2022/file/lib/file.module.js","../tmp-esm2022/file/lib/file.service.js","../tmp-esm2022/file/acorex-core-file.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXFileSizeFormatter {\n /**\n * Gets the name of the formatter.\n *\n * @returns string - The formatter name 'filesize'\n */\n get name() {\n return 'filesize';\n }\n /**\n * Formats a file size value to human-readable format.\n *\n * @param value - The file size in bytes\n * @returns string - The formatted file size string (e.g., '1.5 MB')\n */\n format(value) {\n const size = Number(value);\n if (size === 0)\n return '0 Bytes';\n if (Number.isNaN(size))\n return 'Unknown';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(size) / Math.log(k));\n return parseFloat((size / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileSizeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileSizeFormatter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileSizeFormatter, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zaXplLWZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZmlsZS9zcmMvbGliL2ZpbGUtc2l6ZS1mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFhM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7OztPQUlHO0lBRUgsSUFBSSxJQUFJO1FBQ04sT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBRUgsTUFBTSxDQUFDLEtBQWE7UUFDbEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLElBQUksSUFBSSxLQUFLLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNqQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFekMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsT0FBTyxVQUFVLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OEdBN0JVLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXRPcHRpb25zLCBBWEZvcm1hdHRlciB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYRmlsZVNpemVGb3JtYXR0ZXJPcHRpb25zIGV4dGVuZHMgQVhGb3JtYXRPcHRpb25zIHtcbiAgZm9ybWF0OiBzdHJpbmc7XG59XG5cbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L2NvcmUvZm9ybWF0JyB7XG4gIGludGVyZmFjZSBBWEZvcm1hdE9wdGlvbnNNYXAge1xuICAgIGZpbGVzaXplOiBBWEZpbGVTaXplRm9ybWF0dGVyT3B0aW9ucztcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhGaWxlU2l6ZUZvcm1hdHRlciBpbXBsZW1lbnRzIEFYRm9ybWF0dGVyIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGZvcm1hdHRlci5cbiAgICpcbiAgICogQHJldHVybnMgc3RyaW5nIC0gVGhlIGZvcm1hdHRlciBuYW1lICdmaWxlc2l6ZSdcbiAgICovXG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2ZpbGVzaXplJztcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXRzIGEgZmlsZSBzaXplIHZhbHVlIHRvIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGZpbGUgc2l6ZSBpbiBieXRlc1xuICAgKiBAcmV0dXJucyBzdHJpbmcgLSBUaGUgZm9ybWF0dGVkIGZpbGUgc2l6ZSBzdHJpbmcgKGUuZy4sICcxLjUgTUInKVxuICAgKi9cblxuICBmb3JtYXQodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2l6ZSA9IE51bWJlcih2YWx1ZSk7XG5cbiAgICBpZiAoc2l6ZSA9PT0gMCkgcmV0dXJuICcwIEJ5dGVzJztcbiAgICBpZiAoTnVtYmVyLmlzTmFOKHNpemUpKSByZXR1cm4gJ1Vua25vd24nO1xuXG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coc2l6ZSkgLyBNYXRoLmxvZyhrKSk7XG5cbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoc2l6ZSAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKDIpKSArICcgJyArIHNpemVzW2ldO1xuICB9XG59XG4iXX0=","import { AXFormatModule } from '@acorex/core/format';\nimport { NgModule } from '@angular/core';\nimport { AXFileSizeFormatter } from './file-size-formatter';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/core/format\";\nexport class AXFileModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileModule, imports: [i1.AXFormatModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileModule, providers: [AXFileSizeFormatter], imports: [AXFormatModule.forChild({ formatters: [AXFileSizeFormatter] })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXFormatModule.forChild({ formatters: [AXFileSizeFormatter] })],\n exports: [],\n declarations: [],\n providers: [AXFileSizeFormatter],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2ZpbGUvc3JjL2xpYi9maWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBUTVELE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7K0dBQVosWUFBWTsrR0FBWixZQUFZLGFBRlosQ0FBQyxtQkFBbUIsQ0FBQyxZQUh0QixjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDOzsyRkFLN0QsWUFBWTtrQkFOeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3pFLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxFQUFFO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRmlsZVNpemVGb3JtYXR0ZXIgfSBmcm9tICcuL2ZpbGUtc2l6ZS1mb3JtYXR0ZXInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQVhGb3JtYXRNb2R1bGUuZm9yQ2hpbGQoeyBmb3JtYXR0ZXJzOiBbQVhGaWxlU2l6ZUZvcm1hdHRlcl0gfSldLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzOiBbQVhGaWxlU2l6ZUZvcm1hdHRlcl0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRmlsZU1vZHVsZSB7fVxuIl19","import { DOCUMENT, inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXFileService {\n constructor() {\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n /**\n * Gets the size of a file, blob, or base64 string.\n *\n * @param file - The file, blob, or base64 string to get size for\n * @returns number | false - The size in bytes or false if not a base64 string\n */\n this.blobToBase64 = (blob) => {\n if (blob instanceof Blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onload = () => {\n resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n });\n }\n else {\n return Promise.reject('input is not blob');\n }\n };\n }\n /**\n * Opens a file selection dialog and returns the selected files.\n *\n * @param options - Optional configuration for file selection\n * @param options.accept - File types to accept (e.g., 'image/*', '.pdf')\n * @param options.multiple - Whether to allow multiple file selection\n * @returns Promise<File[]> - Promise that resolves with the selected files\n */\n choose(options) {\n return new Promise((resolve, reject) => {\n options = Object.assign({ multiple: false }, options);\n const input = this.document.createElement('input');\n input.style.display = 'none';\n this.document.body.appendChild(input);\n input.type = 'file';\n input.accept = options.accept || '';\n input.multiple = options.multiple || false;\n //\n const onError = (e) => {\n reject(e);\n this.document.body.removeChild(input);\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n };\n //\n const onChange = () => {\n resolve(Array.from(input.files || []));\n this.document.body.removeChild(input);\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n };\n //\n input.addEventListener('change', onChange);\n input.addEventListener('error', onError);\n input.click();\n });\n }\n /**\n * Gets the size of a file, blob, or base64 string.\n *\n * @param file - The file, blob, or base64 string to get size for\n * @returns number | false - The size in bytes or false if not a base64 string\n */\n getSize(file) {\n if (this.isBase64(file)) {\n return this.getBase64Size(file);\n }\n return false;\n }\n /**\n * Checks if a string is a valid base64 string.\n *\n * @param base64 - The string to check\n * @returns boolean - True if the string is a valid base64 string\n */\n isBase64(base64) {\n const regx = /[^:]\\w+\\/[\\w-+\\d.]+(?=;|,)/;\n return regx.test(base64);\n }\n /**\n * Gets the size of a base64 string in bytes.\n *\n * @param base64 - The base64 string to get size for\n * @returns number - The size in bytes\n */\n getBase64Size(base64) {\n return atob(base64.substring(base64.indexOf(',') + 1)).length;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFileService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzFFLE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSVUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBMkN6Qzs7Ozs7V0FLRztRQUVJLGlCQUFZLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRTtZQUNuQyxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtvQkFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDaEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7b0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO3dCQUNuQixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQWdCLENBQUMsQ0FBQztvQkFDbkMsQ0FBQyxDQUFDO29CQUNGLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDSCxDQUFDLENBQUM7S0FzQ0g7SUFuR0M7Ozs7Ozs7T0FPRztJQUVJLE1BQU0sQ0FBQyxPQUFpRDtRQUM3RCxPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0s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LCBpbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWEZpbGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgZmlsZSBzZWxlY3Rpb24gZGlhbG9nIGFuZCByZXR1cm5zIHRoZSBzZWxlY3RlZCBmaWxlcy5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciBmaWxlIHNlbGVjdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucy5hY2NlcHQgLSBGaWxlIHR5cGVzIHRvIGFjY2VwdCAoZS5nLiwgJ2ltYWdlLyonLCAnLnBkZicpXG4gICAqIEBwYXJhbSBvcHRpb25zLm11bHRpcGxlIC0gV2hldGhlciB0byBhbGxvdyBtdWx0aXBsZSBmaWxlIHNlbGVjdGlvblxuICAgKiBAcmV0dXJucyBQcm9taXNlPEZpbGVbXT4gLSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgc2VsZWN0ZWQgZmlsZXNcbiAgICovXG5cbiAgcHVibGljIGNob29zZShvcHRpb25zPzogeyBhY2NlcHQ/OiBzdHJpbmc7IG11bHRpcGxlPzogYm9vbGVhbiB9KTogUHJvbWlzZTxGaWxlW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8RmlsZVtdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7IG11bHRpcGxlOiBmYWxzZSB9LCBvcHRpb25zKTtcbiAgICAgIGNvbnN0IGlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgaW5wdXQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnB1dCk7XG4gICAgICBpbnB1dC50eXBlID0gJ2ZpbGUnO1xuICAgICAgaW5wdXQuYWNjZXB0ID0gb3B0aW9ucy5hY2NlcHQgfHwgJyc7XG4gICAgICBpbnB1dC5tdWx0aXBsZSA9IG9wdGlvbnMubXVsdGlwbGUgfHwgZmFsc2U7XG4gICAgICAvL1xuICAgICAgY29uc3Qgb25FcnJvciA9IChlKSA9PiB7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0KTtcbiAgICAgICAgaW5wdXQucmVtb3ZlKCk7XG4gICAgICAgIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKTtcbiAgICAgICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgIH07XG4gICAgICAvL1xuICAgICAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIHJlc29sdmUoQXJyYXkuZnJvbShpbnB1dC5maWxlcyB8fCBbXSkpO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW5wdXQpO1xuICAgICAgICBpbnB1dC5yZW1vdmUoKTtcbiAgICAgICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpO1xuICAgICAgICBpbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgfTtcbiAgICAgIC8vXG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgaW5wdXQuY2xpY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzaXplIG9mIGEgZmlsZSwgYmxvYiwgb3IgYmFzZTY0IHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSwgYmxvYiwgb3IgYmFzZTY0IHN0cmluZyB0byBnZXQgc2l6ZSBmb3JcbiAgICogQHJldHVybnMgbnVtYmVyIHwgZmFsc2UgLSBUaGUgc2l6ZSBpbiBieXRlcyBvciBmYWxzZSBpZiBub3QgYSBiYXNlNjQgc3RyaW5nXG4gICAqL1xuXG4gIHB1YmxpYyBibG9iVG9CYXNlNjQgPSAoYmxvYjogQmxvYikgPT4ge1xuICAgIGlmIChibG9iIGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdpbnB1dCBpcyBub3QgYmxvYicpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgc2l6ZSBvZiBhIGZpbGUsIGJsb2IsIG9yIGJhc2U2NCBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUsIGJsb2IsIG9yIGJhc2U2NCBzdHJpbmcgdG8gZ2V0IHNpemUgZm9yXG4gICAqIEByZXR1cm5zIG51bWJlciB8IGZhbHNlIC0gVGhlIHNpemUgaW4gYnl0ZXMgb3IgZmFsc2UgaWYgbm90IGEgYmFzZTY0IHN0cmluZ1xuICAgKi9cblxuICBwdWJsaWMgZ2V0U2l6ZShmaWxlOiBGaWxlIHwgQmxvYiB8IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzQmFzZTY0KGZpbGUgYXMgc3RyaW5nKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QmFzZTY0U2l6ZShmaWxlIGFzIHN0cmluZyk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBzdHJpbmcgaXMgYSB2YWxpZCBiYXNlNjQgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gYmFzZTY0IC0gVGhlIHN0cmluZyB0byBjaGVja1xuICAgKiBAcmV0dXJucyBib29sZWFuIC0gVHJ1ZSBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYmFzZTY0IHN0cmluZ1xuICAgKi9cblxuICBwdWJsaWMgaXNCYXNlNjQoYmFzZTY0OiBzdHJpbmcpIHtcbiAgICBjb25zdCByZWd4ID0gL1teOl1cXHcrXFwvW1xcdy0rXFxkLl0rKD89O3wsKS87XG4gICAgcmV0dXJuIHJlZ3gudGVzdChiYXNlNjQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNpemUgb2YgYSBiYXNlNjQgc3RyaW5nIGluIGJ5dGVzLlxuICAgKlxuICAgKiBAcGFyYW0gYmFzZTY0IC0gVGhlIGJhc2U2NCBzdHJpbmcgdG8gZ2V0IHNpemUgZm9yXG4gICAqIEByZXR1cm5zIG51bWJlciAtIFRoZSBzaXplIGluIGJ5dGVzXG4gICAqL1xuXG4gIHB1YmxpYyBnZXRCYXNlNjRTaXplKGJhc2U2NDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGF0b2IoYmFzZTY0LnN1YnN0cmluZyhiYXNlNjQuaW5kZXhPZignLCcpICsgMSkpLmxlbmd0aDtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZmlsZS9zcmMvYWNvcmV4LWNvcmUtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-core-file.mjs","sources":["../../../../packages/core/file/src/lib/file-size-formatter.ts","../../../../packages/core/file/src/lib/file.module.ts","../../../../packages/core/file/src/lib/file.service.ts","../../../../packages/core/file/src/acorex-core-file.ts"],"sourcesContent":["import { AXFormatOptions, AXFormatter } from '@acorex/core/format';\nimport { Injectable } from '@angular/core';\n\nexport interface AXFileSizeFormatterOptions extends AXFormatOptions {\n format: string;\n}\n\ndeclare module '@acorex/core/format' {\n interface AXFormatOptionsMap {\n filesize: AXFileSizeFormatterOptions;\n }\n}\n\n@Injectable()\nexport class AXFileSizeFormatter implements AXFormatter {\n /**\n * Gets the name of the formatter.\n *\n * @returns string - The formatter name 'filesize'\n */\n\n get name(): string {\n return 'filesize';\n }\n\n /**\n * Formats a file size value to human-readable format.\n *\n * @param value - The file size in bytes\n * @returns string - The formatted file size string (e.g., '1.5 MB')\n */\n\n format(value: number): string {\n const size = Number(value);\n\n if (size === 0) return '0 Bytes';\n if (Number.isNaN(size)) return 'Unknown';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(size) / Math.log(k));\n\n return parseFloat((size / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n}\n","import { AXFormatModule } from '@acorex/core/format';\nimport { NgModule } from '@angular/core';\nimport { AXFileSizeFormatter } from './file-size-formatter';\n\n@NgModule({\n imports: [AXFormatModule.forChild({ formatters: [AXFileSizeFormatter] })],\n exports: [],\n declarations: [],\n providers: [AXFileSizeFormatter],\n})\nexport class AXFileModule {}\n","import { DOCUMENT, inject, Injectable, PLATFORM_ID } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXFileService {\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n\n /**\n * Opens a file selection dialog and returns the selected files.\n *\n * @param options - Optional configuration for file selection\n * @param options.accept - File types to accept (e.g., 'image/*', '.pdf')\n * @param options.multiple - Whether to allow multiple file selection\n * @returns Promise<File[]> - Promise that resolves with the selected files\n */\n\n public choose(options?: { accept?: string; multiple?: boolean }): Promise<File[]> {\n return new Promise<File[]>((resolve, reject) => {\n options = Object.assign({ multiple: false }, options);\n const input: HTMLInputElement = this.document.createElement('input');\n input.style.display = 'none';\n this.document.body.appendChild(input);\n input.type = 'file';\n input.accept = options.accept || '';\n input.multiple = options.multiple || false;\n //\n const onError = (e) => {\n reject(e);\n this.document.body.removeChild(input);\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n };\n //\n const onChange = () => {\n resolve(Array.from(input.files || []));\n this.document.body.removeChild(input);\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n };\n //\n input.addEventListener('change', onChange);\n input.addEventListener('error', onError);\n input.click();\n });\n }\n\n /**\n * Gets the size of a file, blob, or base64 string.\n *\n * @param file - The file, blob, or base64 string to get size for\n * @returns number | false - The size in bytes or false if not a base64 string\n */\n\n public blobToBase64 = (blob: Blob) => {\n if (blob instanceof Blob) {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onload = () => {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(blob);\n });\n } else {\n return Promise.reject('input is not blob');\n }\n };\n\n /**\n * Gets the size of a file, blob, or base64 string.\n *\n * @param file - The file, blob, or base64 string to get size for\n * @returns number | false - The size in bytes or false if not a base64 string\n */\n\n public getSize(file: File | Blob | string) {\n if (this.isBase64(file as string)) {\n return this.getBase64Size(file as string);\n }\n return false;\n }\n\n /**\n * Checks if a string is a valid base64 string.\n *\n * @param base64 - The string to check\n * @returns boolean - True if the string is a valid base64 string\n */\n\n public isBase64(base64: string) {\n const regx = /[^:]\\w+\\/[\\w-+\\d.]+(?=;|,)/;\n return regx.test(base64);\n }\n\n /**\n * Gets the size of a base64 string in bytes.\n *\n * @param base64 - The base64 string to get size for\n * @returns number - The size in bytes\n */\n\n public getBase64Size(base64: string) {\n return atob(base64.substring(base64.indexOf(',') + 1)).length;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -41,10 +41,10 @@ class AXFormatterRegistryService {
|
|
|
41
41
|
}
|
|
42
42
|
return formatter;
|
|
43
43
|
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
45
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatterRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
45
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatterRegistryService, providedIn: 'root' }); }
|
|
46
46
|
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatterRegistryService, decorators: [{
|
|
48
48
|
type: Injectable,
|
|
49
49
|
args: [{
|
|
50
50
|
providedIn: 'root',
|
|
@@ -82,10 +82,10 @@ class AXFormatService {
|
|
|
82
82
|
return new AXFormatFluent(this, this.pluginRegistry, value);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
86
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
86
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatService, providedIn: 'root' }); }
|
|
87
87
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatService, decorators: [{
|
|
89
89
|
type: Injectable,
|
|
90
90
|
args: [{ providedIn: 'root' }]
|
|
91
91
|
}] });
|
|
@@ -126,10 +126,10 @@ class AXFormatterDirective {
|
|
|
126
126
|
},
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
130
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
130
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: AXFormatterDirective, isStandalone: true, selector: "[formatter]", ngImport: i0 }); }
|
|
131
131
|
}
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatterDirective, decorators: [{
|
|
133
133
|
type: Directive,
|
|
134
134
|
args: [{
|
|
135
135
|
selector: '[formatter]',
|
|
@@ -161,10 +161,10 @@ class AXFormatPipe {
|
|
|
161
161
|
return of(formattedValue);
|
|
162
162
|
}));
|
|
163
163
|
}
|
|
164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
165
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
165
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: AXFormatPipe, isStandalone: true, name: "format" }); }
|
|
166
166
|
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatPipe, decorators: [{
|
|
168
168
|
type: Pipe,
|
|
169
169
|
args: [{
|
|
170
170
|
name: 'format',
|
|
@@ -236,10 +236,10 @@ class AXNumberFormatter {
|
|
|
236
236
|
this.separatorsCache[locale] = { thousandSeparator, decimalSeparator };
|
|
237
237
|
return this.separatorsCache[locale];
|
|
238
238
|
}
|
|
239
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
240
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
239
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXNumberFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
240
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXNumberFormatter }); }
|
|
241
241
|
}
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXNumberFormatter, decorators: [{
|
|
243
243
|
type: Injectable
|
|
244
244
|
}] });
|
|
245
245
|
|
|
@@ -314,11 +314,11 @@ class AXFormatModule {
|
|
|
314
314
|
f();
|
|
315
315
|
});
|
|
316
316
|
}
|
|
317
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
318
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
319
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
317
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
318
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: AXFormatModule, imports: [AXFormatterDirective, AXFormatPipe], exports: [AXFormatterDirective, AXFormatPipe] }); }
|
|
319
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatModule }); }
|
|
320
320
|
}
|
|
321
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
321
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXFormatModule, decorators: [{
|
|
322
322
|
type: NgModule,
|
|
323
323
|
args: [{
|
|
324
324
|
imports: [AXFormatterDirective, AXFormatPipe],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core-format.mjs","sources":["../tmp-esm2022/format/lib/format.config.js","../tmp-esm2022/format/lib/format.service.js","../tmp-esm2022/format/lib/format.directive.js","../tmp-esm2022/format/lib/format.pipe.js","../tmp-esm2022/format/lib/formatters/number.formatter.js","../tmp-esm2022/format/lib/formatters/string.formatter.js","../tmp-esm2022/format/lib/format.module.js","../tmp-esm2022/format/acorex-core-format.js"],"sourcesContent":["export class AXFormatter {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZm9ybWF0L3NyYy9saWIvZm9ybWF0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLFdBQVc7Q0FRaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdE9wdGlvbnMgfSBmcm9tICcuL2Zvcm1hdC50eXBlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEZvcm1hdHRlciB7XG4gIGFic3RyYWN0IGdldCBuYW1lKCk6IHN0cmluZztcblxuICAvKipcbiAgICogRm9ybWF0cyBhIHZhbHVlIHdpdGggb3B0aW9uYWwgb3B0aW9ucy5cbiAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCB2YWx1ZS5cbiAgICovXG4gIGFic3RyYWN0IGZvcm1hdCh2YWx1ZTogdW5rbm93biwgb3B0aW9ucz86IEFYRm9ybWF0T3B0aW9ucyB8IHN0cmluZyk6IHN0cmluZztcbn1cbiJdfQ==","import { inject, Injectable, Injector } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXFormatterRegistryService {\n constructor() {\n this.plugins = [];\n this.injector = inject(Injector);\n }\n register(...plugins) {\n plugins.forEach((t) => {\n const childInjector = Injector.create({\n providers: [{ provide: t, useClass: t, deps: [] }],\n parent: this.injector,\n });\n const v = childInjector.get(t);\n if (v && !this.plugins.some((p) => p.name == v.name)) {\n this.plugins.push(v);\n }\n });\n }\n get formatters() {\n return this.plugins;\n }\n /**\n * Resolves a formatter instance by its name.\n *\n * @param name - The formatter name.\n * @returns AXFormatter - The resolved formatter instance.\n * @throws Error when no formatter with the given name exists.\n */\n get(name) {\n const formatter = this.formatters.find((c) => c.name == name);\n if (!formatter) {\n throw new Error(`Formatter not found: ${name}`);\n }\n return formatter;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatterRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatterRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatterRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nexport class AXFormatService {\n constructor() {\n this.pluginRegistry = inject(AXFormatterRegistryService);\n this.renderSubject = new Subject();\n // Observable that other services/components can subscribe to\n this.onRender = this.renderSubject.asObservable();\n }\n /**\n * Triggers a render event for listeners that care about formatting updates.\n *\n * @returns void - Emits on the onRender observable.\n */\n render() {\n this.renderSubject.next();\n }\n // Implementation of the format method\n /**\n * Formats a value according to the formatter's rules.\n *\n * @param value - The value to format.\n * @param options - Optional options bag or string, depending on the formatter.\n * @returns string - The formatted result.\n */\n format(value, formatter, options) {\n if (typeof formatter === 'string') {\n const formatterRef = this.pluginRegistry.get(formatter);\n return formatterRef.format(value, options);\n }\n else {\n return new AXFormatFluent(this, this.pluginRegistry, value);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nclass AXFormatFluent {\n constructor(formatService, pluginRegistry, initialValue) {\n this.formatService = formatService;\n this.pluginRegistry = pluginRegistry;\n this.initialValue = initialValue;\n }\n /**\n * Formats the value using the specified formatter and options.\n * @param formatter The name of the formatter to use.\n * @param options The options to pass to the formatter.\n * @returns The formatted string.\n */\n to(formatter, options) {\n try {\n const formatterRef = this.pluginRegistry.get(formatter);\n return formatterRef.format(this.initialValue, options);\n }\n catch (error) {\n return String(this.initialValue);\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2Zvcm1hdC9zcmMvbGliL2Zvcm1hdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU8vQixNQUFNLE9BQU8sMEJBQTBCO0lBSHZDO1FBSVUsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFFNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQWtDckM7SUFoQ0MsUUFBUSxDQUFDLEdBQUcsT0FBa0M7UUFDNUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDbEQsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3RCLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsR0FBRyxDQUFDLElBQVk7UUFDZCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzhHQXBDVSwwQkFBMEI7a0hBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQXlDRCxNQUFNLE9BQU8sZUFBZTtJQUQ1QjtRQUVVLG1CQUFjLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFcEQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTVDLDZEQUE2RDtRQUM3RCxhQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQXFEOUM7SUFuREM7Ozs7T0FJRztJQUVILE1BQU07UUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUEwQkQsc0NBQXNDO0lBRXRDOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxLQUFjLEVBQUUsU0FBa0IsRUFBRSxPQUFhO1FBQ3RELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEQsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7OEdBMURVLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUE4RGxDLE1BQU0sY0FBYztJQUNsQixZQUNVLGFBQThCLEVBQzlCLGNBQTBDLEVBQzFDLFlBQXFCO1FBRnJCLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBNEI7UUFDMUMsaUJBQVksR0FBWixZQUFZLENBQVM7SUFDNUIsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0gsRUFBRSxDQUFxQyxTQUFZLEVBQUUsT0FBK0I7UUFDbEYsSUFBSSxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEQsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYRm9ybWF0dGVyIH0gZnJvbSAnLi9mb3JtYXQuY29uZmlnJztcbmltcG9ydCB7IEFYRm9ybWF0T3B0aW9uc01hcCB9IGZyb20gJy4vZm9ybWF0LnR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYRm9ybWF0dGVyUmVnaXN0cnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwbHVnaW5zOiBBWEZvcm1hdHRlcltdID0gW107XG5cbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcmVnaXN0ZXIoLi4ucGx1Z2luczogKG5ldyAoKSA9PiBBWEZvcm1hdHRlcilbXSkge1xuICAgIHBsdWdpbnMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgY29uc3QgY2hpbGRJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogdCwgdXNlQ2xhc3M6IHQsIGRlcHM6IFtdIH1dLFxuICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHYgPSBjaGlsZEluamVjdG9yLmdldCh0KTtcblxuICAgICAgaWYgKHYgJiYgIXRoaXMucGx1Z2lucy5zb21lKChwKSA9PiBwLm5hbWUgPT0gdi5uYW1lKSkge1xuICAgICAgICB0aGlzLnBsdWdpbnMucHVzaCh2KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBmb3JtYXR0ZXJzKCk6IEFYRm9ybWF0dGVyW10ge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbnM7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgYSBmb3JtYXR0ZXIgaW5zdGFuY2UgYnkgaXRzIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIGZvcm1hdHRlciBuYW1lLlxuICAgKiBAcmV0dXJucyBBWEZvcm1hdHRlciAtIFRoZSByZXNvbHZlZCBmb3JtYXR0ZXIgaW5zdGFuY2UuXG4gICAqIEB0aHJvd3MgRXJyb3Igd2hlbiBubyBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBleGlzdHMuXG4gICAqL1xuICBnZXQobmFtZTogc3RyaW5nKTogQVhGb3JtYXR0ZXIge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IHRoaXMuZm9ybWF0dGVycy5maW5kKChjKSA9PiBjLm5hbWUgPT0gbmFtZSk7XG4gICAgaWYgKCFmb3JtYXR0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRm9ybWF0dGVyIG5vdCBmb3VuZDogJHtuYW1lfWApO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGVyO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhGb3JtYXRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwbHVnaW5SZWdpc3RyeSA9IGluamVjdChBWEZvcm1hdHRlclJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZW5kZXJTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvLyBPYnNlcnZhYmxlIHRoYXQgb3RoZXIgc2VydmljZXMvY29tcG9uZW50cyBjYW4gc3Vic2NyaWJlIHRvXG4gIG9uUmVuZGVyID0gdGhpcy5yZW5kZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyBhIHJlbmRlciBldmVudCBmb3IgbGlzdGVuZXJzIHRoYXQgY2FyZSBhYm91dCBmb3JtYXR0aW5nIHVwZGF0ZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWQgLSBFbWl0cyBvbiB0aGUgb25SZW5kZXIgb2JzZXJ2YWJsZS5cbiAgICovXG5cbiAgcmVuZGVyKCkge1xuICAgIHRoaXMucmVuZGVyU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICAvL1RPRE9cbiAgLy8gT3ZlcmxvYWQgZm9yIHRyYWRpdGlvbmFsIGZvcm1hdHRpbmdcblxuICAvKipcbiAgICogRm9ybWF0cyBhIHZhbHVlIHVzaW5nIHRoZSBzcGVjaWZpZWQgZm9ybWF0dGVyIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBpbnB1dCB2YWx1ZSB0byBmb3JtYXQuXG4gICAqIEBwYXJhbSBmb3JtYXR0ZXIgLSBUaGUgZm9ybWF0dGVyIG5hbWUgdG8gdXNlIChlLmcuLCAnbnVtYmVyJywgJ3N0cmluZycpLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhlIGZvcm1hdHRlci5cbiAgICogQHJldHVybnMgc3RyaW5nIC0gVGhlIGZvcm1hdHRlZCBzdHJpbmcuXG4gICAqL1xuXG4gIGZvcm1hdCh2YWx1ZTogdW5rbm93biwgZm9ybWF0dGVyOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpOiBzdHJpbmc7XG5cbiAgLy8gT3ZlcmxvYWQgZm9yIHN0YXJ0aW5nIGZsdWVudCBBUEkgY2hhaW5cblxuICAvKipcbiAgICogU3RhcnRzIGEgZmx1ZW50IGZvcm1hdHRpbmcgY2hhaW4uXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBpbnB1dCB2YWx1ZSB0byBmb3JtYXQuXG4gICAqIEByZXR1cm5zIEFYRm9ybWF0Rmx1ZW50IC0gQSBmbHVlbnQgQVBJIG9iamVjdCBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBmb3JtYXQodmFsdWU6IHVua25vd24pOiBBWEZvcm1hdEZsdWVudDtcblxuICAvLyBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZm9ybWF0IG1ldGhvZFxuXG4gIC8qKlxuICAgKiBGb3JtYXRzIGEgdmFsdWUgYWNjb3JkaW5nIHRvIHRoZSBmb3JtYXR0ZXIncyBydWxlcy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBvcHRpb25zIGJhZyBvciBzdHJpbmcsIGRlcGVuZGluZyBvbiB0aGUgZm9ybWF0dGVyLlxuICAgKiBAcmV0dXJucyBzdHJpbmcgLSBUaGUgZm9ybWF0dGVkIHJlc3VsdC5cbiAgICovXG4gIGZvcm1hdCh2YWx1ZTogdW5rbm93biwgZm9ybWF0dGVyPzogc3RyaW5nLCBvcHRpb25zPzogYW55KTogc3RyaW5nIHwgQVhGb3JtYXRGbHVlbnQge1xuICAgIGlmICh0eXBlb2YgZm9ybWF0dGVyID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZm9ybWF0dGVyUmVmID0gdGhpcy5wbHVnaW5SZWdpc3RyeS5nZXQoZm9ybWF0dGVyKTtcbiAgICAgIHJldHVybiBmb3JtYXR0ZXJSZWYuZm9ybWF0KHZhbHVlLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBBWEZvcm1hdEZsdWVudCh0aGlzLCB0aGlzLnBsdWdpblJlZ2lzdHJ5LCB2YWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIEFYRm9ybWF0Rmx1ZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlOiBBWEZvcm1hdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbHVnaW5SZWdpc3RyeTogQVhGb3JtYXR0ZXJSZWdpc3RyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbml0aWFsVmFsdWU6IHVua25vd24sXG4gICkge31cblxuICAvKipcbiAgICogRm9ybWF0cyB0aGUgdmFsdWUgdXNpbmcgdGhlIHNwZWNpZmllZCBmb3JtYXR0ZXIgYW5kIG9wdGlvbnMuXG4gICAqIEBwYXJhbSBmb3JtYXR0ZXIgVGhlIG5hbWUgb2YgdGhlIGZvcm1hdHRlciB0byB1c2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGZvcm1hdHRlci5cbiAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBzdHJpbmcuXG4gICAqL1xuICB0bzxLIGV4dGVuZHMga2V5b2YgQVhGb3JtYXRPcHRpb25zTWFwPihmb3JtYXR0ZXI6IEssIG9wdGlvbnM/OiBBWEZvcm1hdE9wdGlvbnNNYXBbS10pOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZXJSZWYgPSB0aGlzLnBsdWdpblJlZ2lzdHJ5LmdldChmb3JtYXR0ZXIpO1xuICAgICAgcmV0dXJuIGZvcm1hdHRlclJlZi5mb3JtYXQodGhpcy5pbml0aWFsVmFsdWUsIG9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKHRoaXMuaW5pdGlhbFZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Directive, TemplateRef, ViewContainerRef, inject } from '@angular/core';\nimport { AXFormatService } from './format.service';\nimport * as i0 from \"@angular/core\";\nexport class AXFormatterDirective {\n constructor() {\n this.templateRef = inject(TemplateRef);\n this.viewContainer = inject(ViewContainerRef);\n this.formatService = inject(AXFormatService);\n }\n ngOnInit() {\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: (value, formatter, options) => {\n return this.formatService.format(value, formatter, options);\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.6\", type: AXFormatterDirective, isStandalone: true, selector: \"[formatter]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatterDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[formatter]',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZm9ybWF0L3NyYy9saWIvZm9ybWF0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU1uRCxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSVUsZ0JBQVcsR0FBRyxNQUFNLENBQW1CLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekMsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7S0FjakQ7SUFaQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdEQsU0FBUyxFQUFFLENBQ1QsS0FBYyxFQUNkLFNBQVksRUFDWixPQUErQixFQUMvQixFQUFFO2dCQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5RCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FoQlUsb0JBQW9CO2tHQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJy4vZm9ybWF0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhGb3JtYXRPcHRpb25zTWFwIH0gZnJvbSAnLi9mb3JtYXQudHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZm9ybWF0dGVyXScsXG59KVxuZXhwb3J0IGNsYXNzIEFYRm9ybWF0dGVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihUZW1wbGF0ZVJlZik7XG4gIHByaXZhdGUgdmlld0NvbnRhaW5lciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLCB7XG4gICAgICAkaW1wbGljaXQ6IDxLIGV4dGVuZHMga2V5b2YgQVhGb3JtYXRPcHRpb25zTWFwPihcbiAgICAgICAgdmFsdWU6IHVua25vd24sXG4gICAgICAgIGZvcm1hdHRlcjogSyxcbiAgICAgICAgb3B0aW9ucz86IEFYRm9ybWF0T3B0aW9uc01hcFtLXSxcbiAgICAgICkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh2YWx1ZSwgZm9ybWF0dGVyLCBvcHRpb25zKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXEventService, AXSystemEvents } from '@acorex/core/events';\nimport { Pipe, inject } from '@angular/core';\nimport { filter, of, startWith, switchMap } from 'rxjs';\nimport { AXFormatService } from './format.service';\nimport * as i0 from \"@angular/core\";\nexport class AXFormatPipe {\n constructor() {\n this.formatService = inject(AXFormatService);\n this.eventService = inject(AXEventService);\n this.triggers = [...Object.values(AXSystemEvents).map((event) => event)];\n }\n /**\n * Angular pipe for formatting values reactively. Re-evaluates when system events (such as language change) occur.\n *\n * @param value - The input value to format.\n * @param name - The formatter name.\n * @param options - Optional options specific to the formatter.\n * @returns Observable<string> - Emits the formatted string and updates on system events.\n */\n transform(value, name, options) {\n // Initial formatted value\n const initialFormattedValue = this.formatService.format(value, name, options);\n // React to language changes and re-format the value\n return this.eventService.onEvent.pipe(filter((event) => this.triggers.includes(event.type)), startWith(initialFormattedValue), // Emit the initial formatted value immediately\n switchMap((event) => {\n // Re-call format method on every language change\n const formattedValue = this.formatService.format(value, name, options);\n return of(formattedValue);\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatPipe, isStandalone: true, name: \"format\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'format',\n pure: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2Zvcm1hdC9zcmMvbGliL2Zvcm1hdC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBYyxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU9uRCxNQUFNLE9BQU8sWUFBWTtJQUp6QjtRQUtVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRDLGFBQVEsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQWUsQ0FBQyxDQUFDLENBQUM7S0EwQnZGO0lBeEJDOzs7Ozs7O09BT0c7SUFFSCxTQUFTLENBQUMsS0FBYyxFQUFFLElBQVksRUFBRSxPQUFrQztRQUN4RSwwQkFBMEI7UUFDMUIsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXJGLG9EQUFvRDtRQUNwRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbkMsTUFBTSxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQXNCLENBQUMsQ0FBQyxFQUNwRixTQUFTLENBQUMscUJBQXFCLENBQUMsRUFBRSwrQ0FBK0M7UUFDakYsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbEIsaURBQWlEO1lBQ2pELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUUsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OEdBN0JVLFlBQVk7NEdBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsSUFBSTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRXZlbnREYXRhLCBBWEV2ZW50U2VydmljZSwgQVhTeXN0ZW1FdmVudHMgfSBmcm9tICdAYWNvcmV4L2NvcmUvZXZlbnRzJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCBvZiwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJy4vZm9ybWF0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhGb3JtYXRPcHRpb25zIH0gZnJvbSAnLi9mb3JtYXQudHlwZXMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtYXQnLFxuICBwdXJlOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWEZvcm1hdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByaXZhdGUgZXZlbnRTZXJ2aWNlID0gaW5qZWN0KEFYRXZlbnRTZXJ2aWNlKTtcblxuICBwcml2YXRlIHRyaWdnZXJzID0gWy4uLk9iamVjdC52YWx1ZXMoQVhTeXN0ZW1FdmVudHMpLm1hcCgoZXZlbnQpID0+IGV2ZW50IGFzIHN0cmluZyldO1xuXG4gIC8qKlxuICAgKiBBbmd1bGFyIHBpcGUgZm9yIGZvcm1hdHRpbmcgdmFsdWVzIHJlYWN0aXZlbHkuIFJlLWV2YWx1YXRlcyB3aGVuIHN5c3RlbSBldmVudHMgKHN1Y2ggYXMgbGFuZ3VhZ2UgY2hhbmdlKSBvY2N1ci5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGlucHV0IHZhbHVlIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgZm9ybWF0dGVyIG5hbWUuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9uYWwgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGUgZm9ybWF0dGVyLlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHN0cmluZz4gLSBFbWl0cyB0aGUgZm9ybWF0dGVkIHN0cmluZyBhbmQgdXBkYXRlcyBvbiBzeXN0ZW0gZXZlbnRzLlxuICAgKi9cblxuICB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24sIG5hbWU6IHN0cmluZywgb3B0aW9ucz86IEFYRm9ybWF0T3B0aW9ucyB8IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgLy8gSW5pdGlhbCBmb3JtYXR0ZWQgdmFsdWVcbiAgICBjb25zdCBpbml0aWFsRm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHZhbHVlLCBuYW1lIGFzIGFueSwgb3B0aW9ucyk7XG5cbiAgICAvLyBSZWFjdCB0byBsYW5ndWFnZSBjaGFuZ2VzIGFuZCByZS1mb3JtYXQgdGhlIHZhbHVlXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLm9uRXZlbnQucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQ6IEFYRXZlbnREYXRhKSA9PiB0aGlzLnRyaWdnZXJzLmluY2x1ZGVzKGV2ZW50LnR5cGUgYXMgQVhTeXN0ZW1FdmVudHMpKSxcbiAgICAgIHN0YXJ0V2l0aChpbml0aWFsRm9ybWF0dGVkVmFsdWUpLCAvLyBFbWl0IHRoZSBpbml0aWFsIGZvcm1hdHRlZCB2YWx1ZSBpbW1lZGlhdGVseVxuICAgICAgc3dpdGNoTWFwKChldmVudCkgPT4ge1xuICAgICAgICAvLyBSZS1jYWxsIGZvcm1hdCBtZXRob2Qgb24gZXZlcnkgbGFuZ3VhZ2UgY2hhbmdlXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh2YWx1ZSwgbmFtZSBhcyBhbnksIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gb2YoZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { defaults, isInteger, padStart } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXNumberFormatter {\n constructor() {\n this.separatorsCache = {};\n }\n get name() {\n return 'number';\n }\n format(value, options) {\n const { thousandSeparator, decimalSeparator } = this.getLocaleSeparators(options?.locale);\n // Merge user options with default options\n const effectiveOptions = defaults({}, options, {\n thousandSeparator,\n decimalSeparator,\n zeroPadLength: 0,\n locale: navigator.language,\n });\n const sign = value < 0 ? '-' : '';\n const absoluteValue = Math.abs(value);\n // Handling zero padding for integer part\n let integerPart = Math.floor(absoluteValue).toString();\n if (effectiveOptions.zeroPadLength && effectiveOptions.zeroPadLength > integerPart.length) {\n integerPart = padStart(integerPart, effectiveOptions.zeroPadLength, '0');\n }\n // Applying thousand separator to integer part\n if (effectiveOptions.thousandSeparator) {\n integerPart = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, effectiveOptions.thousandSeparator);\n }\n // Constructing the final formatted value\n let formattedValue = sign + integerPart;\n if (effectiveOptions.decimalPlaces !== undefined) {\n // Limiting decimal places if specified\n const decimalPart = absoluteValue.toFixed(effectiveOptions.decimalPlaces).split('.')[1];\n formattedValue += effectiveOptions.decimalSeparator + decimalPart;\n }\n else if (!isInteger(value)) {\n // Showing full decimal part if decimalPlaces is not specified\n const decimalPart = absoluteValue.toString().split('.')[1] || '';\n if (decimalPart.length > 0) {\n formattedValue += effectiveOptions.decimalSeparator + decimalPart;\n }\n }\n return formattedValue;\n }\n getLocaleSeparators(locale = navigator.language) {\n // Use cache if available\n if (this.separatorsCache[locale]) {\n return this.separatorsCache[locale];\n }\n const numberFormat = new Intl.NumberFormat(locale);\n const parts = numberFormat.formatToParts(1234567.89);\n let thousandSeparator = '';\n let decimalSeparator = '';\n for (const part of parts) {\n if (part.type === 'group') {\n thousandSeparator = part.value;\n }\n else if (part.type === 'decimal') {\n decimalSeparator = part.value;\n }\n }\n // Cache the result\n this.separatorsCache[locale] = { thousandSeparator, decimalSeparator };\n return this.separatorsCache[locale];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXNumberFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXNumberFormatter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXNumberFormatter, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZm9ybWF0L3NyYy9saWIvZm9ybWF0dGVycy9udW1iZXIuZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQW1CMUQsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVVLG9CQUFlLEdBQVEsRUFBRSxDQUFDO0tBeUVuQztJQXZFQyxJQUFJLElBQUk7UUFDTixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWEsRUFBRSxPQUFpQztRQUNyRCxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFGLDBDQUEwQztRQUMxQyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFO1lBQzdDLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsYUFBYSxFQUFFLENBQUM7WUFDaEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1NBQzNCLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMseUNBQXlDO1FBQ3pDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkQsSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLElBQUksZ0JBQWdCLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxRixXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELDhDQUE4QztRQUM5QyxJQUFJLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdkMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBRUQseUNBQXlDO1FBQ3pDLElBQUksY0FBYyxHQUFHLElBQUksR0FBRyxXQUFXLENBQUM7UUFDeEMsSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakQsdUNBQXVDO1lBQ3ZDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7UUFDcEUsQ0FBQzthQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3Qiw4REFBOEQ7WUFDOUQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakUsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzQixjQUFjLElBQUksZ0JBQWdCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDO1lBQ3BFLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsUUFBUTtRQUlyRCx5QkFBeUI7UUFDekIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxJQUFJLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUUxQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDMUIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNqQyxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDbkMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztRQUVELG1CQUFtQjtRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztRQUN2RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs4R0F6RVUsaUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWZhdWx0cywgaXNJbnRlZ2VyLCBwYWRTdGFydCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWEZvcm1hdHRlciB9IGZyb20gJy4uL2Zvcm1hdC5jb25maWcnO1xuaW1wb3J0IHsgQVhGb3JtYXRPcHRpb25zIH0gZnJvbSAnLi4vZm9ybWF0LnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWE51bWJlckZvcm1hdHRlck9wdGlvbnMgZXh0ZW5kcyBBWEZvcm1hdE9wdGlvbnMge1xuICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xuICB0aG91c2FuZFNlcGFyYXRvcj86IHN0cmluZztcbiAgZGVjaW1hbFNlcGFyYXRvcj86IHN0cmluZztcbiAgemVyb1BhZExlbmd0aD86IG51bWJlcjsgLy8gTmV3IG9wdGlvbiBmb3IgemVybyBwYWRkaW5nLFxuICBsb2NhbGU/OiBzdHJpbmc7XG59XG5cbmRlY2xhcmUgbW9kdWxlICcuLi9mb3JtYXQudHlwZXMnIHtcbiAgaW50ZXJmYWNlIEFYRm9ybWF0T3B0aW9uc01hcCB7XG4gICAgbnVtYmVyOiBBWE51bWJlckZvcm1hdHRlck9wdGlvbnM7XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyRm9ybWF0dGVyIGltcGxlbWVudHMgQVhGb3JtYXR0ZXIge1xuICBwcml2YXRlIHNlcGFyYXRvcnNDYWNoZTogYW55ID0ge307XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ251bWJlcic7XG4gIH1cblxuICBmb3JtYXQodmFsdWU6IG51bWJlciwgb3B0aW9uczogQVhOdW1iZXJGb3JtYXR0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHRob3VzYW5kU2VwYXJhdG9yLCBkZWNpbWFsU2VwYXJhdG9yIH0gPSB0aGlzLmdldExvY2FsZVNlcGFyYXRvcnMob3B0aW9ucz8ubG9jYWxlKTtcbiAgICAvLyBNZXJnZSB1c2VyIG9wdGlvbnMgd2l0aCBkZWZhdWx0IG9wdGlvbnNcbiAgICBjb25zdCBlZmZlY3RpdmVPcHRpb25zID0gZGVmYXVsdHMoe30sIG9wdGlvbnMsIHtcbiAgICAgIHRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgIHplcm9QYWRMZW5ndGg6IDAsXG4gICAgICBsb2NhbGU6IG5hdmlnYXRvci5sYW5ndWFnZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNpZ24gPSB2YWx1ZSA8IDAgPyAnLScgOiAnJztcbiAgICBjb25zdCBhYnNvbHV0ZVZhbHVlID0gTWF0aC5hYnModmFsdWUpO1xuXG4gICAgLy8gSGFuZGxpbmcgemVybyBwYWRkaW5nIGZvciBpbnRlZ2VyIHBhcnRcbiAgICBsZXQgaW50ZWdlclBhcnQgPSBNYXRoLmZsb29yKGFic29sdXRlVmFsdWUpLnRvU3RyaW5nKCk7XG4gICAgaWYgKGVmZmVjdGl2ZU9wdGlvbnMuemVyb1BhZExlbmd0aCAmJiBlZmZlY3RpdmVPcHRpb25zLnplcm9QYWRMZW5ndGggPiBpbnRlZ2VyUGFydC5sZW5ndGgpIHtcbiAgICAgIGludGVnZXJQYXJ0ID0gcGFkU3RhcnQoaW50ZWdlclBhcnQsIGVmZmVjdGl2ZU9wdGlvbnMuemVyb1BhZExlbmd0aCwgJzAnKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseWluZyB0aG91c2FuZCBzZXBhcmF0b3IgdG8gaW50ZWdlciBwYXJ0XG4gICAgaWYgKGVmZmVjdGl2ZU9wdGlvbnMudGhvdXNhbmRTZXBhcmF0b3IpIHtcbiAgICAgIGludGVnZXJQYXJ0ID0gaW50ZWdlclBhcnQucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgZWZmZWN0aXZlT3B0aW9ucy50aG91c2FuZFNlcGFyYXRvcik7XG4gICAgfVxuXG4gICAgLy8gQ29uc3RydWN0aW5nIHRoZSBmaW5hbCBmb3JtYXR0ZWQgdmFsdWVcbiAgICBsZXQgZm9ybWF0dGVkVmFsdWUgPSBzaWduICsgaW50ZWdlclBhcnQ7XG4gICAgaWYgKGVmZmVjdGl2ZU9wdGlvbnMuZGVjaW1hbFBsYWNlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBMaW1pdGluZyBkZWNpbWFsIHBsYWNlcyBpZiBzcGVjaWZpZWRcbiAgICAgIGNvbnN0IGRlY2ltYWxQYXJ0ID0gYWJzb2x1dGVWYWx1ZS50b0ZpeGVkKGVmZmVjdGl2ZU9wdGlvbnMuZGVjaW1hbFBsYWNlcykuc3BsaXQoJy4nKVsxXTtcbiAgICAgIGZvcm1hdHRlZFZhbHVlICs9IGVmZmVjdGl2ZU9wdGlvbnMuZGVjaW1hbFNlcGFyYXRvciArIGRlY2ltYWxQYXJ0O1xuICAgIH0gZWxzZSBpZiAoIWlzSW50ZWdlcih2YWx1ZSkpIHtcbiAgICAgIC8vIFNob3dpbmcgZnVsbCBkZWNpbWFsIHBhcnQgaWYgZGVjaW1hbFBsYWNlcyBpcyBub3Qgc3BlY2lmaWVkXG4gICAgICBjb25zdCBkZWNpbWFsUGFydCA9IGFic29sdXRlVmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLicpWzFdIHx8ICcnO1xuICAgICAgaWYgKGRlY2ltYWxQYXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9ybWF0dGVkVmFsdWUgKz0gZWZmZWN0aXZlT3B0aW9ucy5kZWNpbWFsU2VwYXJhdG9yICsgZGVjaW1hbFBhcnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1hdHRlZFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbGVTZXBhcmF0b3JzKGxvY2FsZSA9IG5hdmlnYXRvci5sYW5ndWFnZSk6IHtcbiAgICB0aG91c2FuZFNlcGFyYXRvcjogc3RyaW5nO1xuICAgIGRlY2ltYWxTZXBhcmF0b3I6IHN0cmluZztcbiAgfSB7XG4gICAgLy8gVXNlIGNhY2hlIGlmIGF2YWlsYWJsZVxuICAgIGlmICh0aGlzLnNlcGFyYXRvcnNDYWNoZVtsb2NhbGVdKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXBhcmF0b3JzQ2FjaGVbbG9jYWxlXTtcbiAgICB9XG5cbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jYWxlKTtcbiAgICBjb25zdCBwYXJ0cyA9IG51bWJlckZvcm1hdC5mb3JtYXRUb1BhcnRzKDEyMzQ1NjcuODkpO1xuICAgIGxldCB0aG91c2FuZFNlcGFyYXRvciA9ICcnO1xuICAgIGxldCBkZWNpbWFsU2VwYXJhdG9yID0gJyc7XG5cbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIGlmIChwYXJ0LnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3IgPSBwYXJ0LnZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChwYXJ0LnR5cGUgPT09ICdkZWNpbWFsJykge1xuICAgICAgICBkZWNpbWFsU2VwYXJhdG9yID0gcGFydC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDYWNoZSB0aGUgcmVzdWx0XG4gICAgdGhpcy5zZXBhcmF0b3JzQ2FjaGVbbG9jYWxlXSA9IHsgdGhvdXNhbmRTZXBhcmF0b3IsIGRlY2ltYWxTZXBhcmF0b3IgfTtcbiAgICByZXR1cm4gdGhpcy5zZXBhcmF0b3JzQ2FjaGVbbG9jYWxlXTtcbiAgfVxufVxuIl19","import { get } from 'lodash-es';\nexport class AXStringFormatter {\n get name() {\n return 'string';\n }\n format(value, options) {\n if (typeof value != 'string')\n return String(value);\n const result = get(options, value)\n ? get(options, value)\n : value.replace(/{{\\s*([^}]+)\\s*}}/g, (match, path) => {\n return get(options, path.trim()) ?? match;\n });\n return result;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZm9ybWF0L3NyYy9saWIvZm9ybWF0dGVycy9zdHJpbmcuZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFjaEMsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixJQUFJLElBQUk7UUFDTixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWMsRUFBRSxPQUFpQztRQUN0RCxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVE7WUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztZQUNoQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7WUFDckIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUU7Z0JBQzFELE9BQVEsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQVksSUFBSSxLQUFLLENBQUM7WUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFFUCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhGb3JtYXR0ZXIgfSBmcm9tICcuLi9mb3JtYXQuY29uZmlnJztcbmltcG9ydCB7IEFYRm9ybWF0T3B0aW9ucyB9IGZyb20gJy4uL2Zvcm1hdC50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhTdHJpbmdGb3JtYXR0ZXJPcHRpb25zIGV4dGVuZHMgQVhGb3JtYXRPcHRpb25zIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5kZWNsYXJlIG1vZHVsZSAnLi4vZm9ybWF0LnR5cGVzJyB7XG4gIGludGVyZmFjZSBBWEZvcm1hdE9wdGlvbnNNYXAge1xuICAgIHN0cmluZzogQVhTdHJpbmdGb3JtYXR0ZXJPcHRpb25zO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBWFN0cmluZ0Zvcm1hdHRlciBpbXBsZW1lbnRzIEFYRm9ybWF0dGVyIHtcbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3N0cmluZyc7XG4gIH1cblxuICBmb3JtYXQodmFsdWU6IHVua25vd24sIG9wdGlvbnM6IEFYU3RyaW5nRm9ybWF0dGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0KG9wdGlvbnMsIHZhbHVlKVxuICAgICAgPyBnZXQob3B0aW9ucywgdmFsdWUpXG4gICAgICA6IHZhbHVlLnJlcGxhY2UoL3t7XFxzKihbXn1dKylcXHMqfX0vZywgKG1hdGNoLCBwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gKGdldChvcHRpb25zLCBwYXRoLnRyaW0oKSkgYXMgc3RyaW5nKSA/PyBtYXRjaDtcbiAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=","import { NgModule, inject } from '@angular/core';\nimport { AXFormatterDirective } from './format.directive';\nimport { AXFormatPipe } from './format.pipe';\nimport { AXFormatterRegistryService } from './format.service';\nimport { AXNumberFormatter } from './formatters/number.formatter';\nimport { AXStringFormatter } from './formatters/string.formatter';\nimport * as i0 from \"@angular/core\";\nconst BUILT_IN_RULES = [AXNumberFormatter, AXStringFormatter];\nexport class AXFormatModule {\n /**\n * Configures the module for the root injector, optionally registering custom formatters.\n *\n * @param configs - Optional configuration containing custom formatter classes.\n * @returns ModuleWithProviders<AXFormatModule>\n */\n static forRoot(configs) {\n return {\n ngModule: AXFormatModule,\n providers: [\n ...(configs?.formatters || []),\n {\n provide: 'AXFormatModuleFactory',\n useFactory: (pluginRegistry) => () => {\n pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.formatters || [])]);\n },\n deps: [AXFormatterRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * Configures the module for a feature injector, optionally registering custom formatters.\n *\n * @param configs - Optional configuration containing custom formatter classes.\n * @returns ModuleWithProviders<AXFormatModule>\n */\n static forChild(configs) {\n return {\n ngModule: AXFormatModule,\n providers: [\n ...(configs?.formatters || []),\n {\n provide: 'AXFormatModuleFactory',\n useFactory: (pluginRegistry) => () => {\n pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.formatters || [])]);\n },\n deps: [AXFormatterRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * @ignore\n */\n constructor() {\n const instances = inject('AXFormatModuleFactory');\n instances.forEach((f) => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatModule, imports: [AXFormatterDirective, AXFormatPipe], exports: [AXFormatterDirective, AXFormatPipe] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXFormatModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXFormatterDirective, AXFormatPipe],\n exports: [AXFormatterDirective, AXFormatPipe],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZm9ybWF0L3NyYy9saWIvZm9ybWF0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFbEUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBVTlELE1BQU0sT0FBTyxjQUFjO0lBQ3pCOzs7OztPQUtHO0lBRUgsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUErQjtRQUM1QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQWM7WUFDeEIsU0FBUyxFQUFFO2dCQUNULEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztnQkFDOUI7b0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtvQkFDaEMsVUFBVSxFQUFFLENBQUMsY0FBMEMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO3dCQUMvRCxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGNBQWMsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2xGLENBQUM7b0JBQ0QsSUFBSSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ2xDLEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBRUgsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUErQjtRQUM3QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQWM7WUFDeEIsU0FBUyxFQUFFO2dCQUNULEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztnQkFDOUI7b0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtvQkFDaEMsVUFBVSxFQUFFLENBQUMsY0FBMEMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO3dCQUMvRCxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGNBQWMsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2xGLENBQUM7b0JBQ0QsSUFBSSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ2xDLEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0g7UUFDRSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQVEsdUJBQThCLENBQUMsQ0FBQztRQUVoRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdEIsQ0FBQyxFQUFFLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBMURVLGNBQWM7K0dBQWQsY0FBYyxZQUhmLG9CQUFvQixFQUFFLFlBQVksYUFDbEMsb0JBQW9CLEVBQUUsWUFBWTsrR0FFakMsY0FBYzs7MkZBQWQsY0FBYztrQkFKMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7b0JBQzdDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLFlBQVksQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0LmNvbmZpZyc7XG5pbXBvcnQgeyBBWEZvcm1hdHRlckRpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybWF0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWEZvcm1hdFBpcGUgfSBmcm9tICcuL2Zvcm1hdC5waXBlJztcbmltcG9ydCB7IEFYRm9ybWF0dGVyUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtYXQuc2VydmljZSc7XG5pbXBvcnQgeyBBWE51bWJlckZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0dGVycy9udW1iZXIuZm9ybWF0dGVyJztcbmltcG9ydCB7IEFYU3RyaW5nRm9ybWF0dGVyIH0gZnJvbSAnLi9mb3JtYXR0ZXJzL3N0cmluZy5mb3JtYXR0ZXInO1xuXG5jb25zdCBCVUlMVF9JTl9SVUxFUyA9IFtBWE51bWJlckZvcm1hdHRlciwgQVhTdHJpbmdGb3JtYXR0ZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYRm9ybWF0TW9kdWxlQ29uZmlncyB7XG4gIGZvcm1hdHRlcnM6IChuZXcgKCkgPT4gQVhGb3JtYXR0ZXIpW107XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtBWEZvcm1hdHRlckRpcmVjdGl2ZSwgQVhGb3JtYXRQaXBlXSxcbiAgZXhwb3J0czogW0FYRm9ybWF0dGVyRGlyZWN0aXZlLCBBWEZvcm1hdFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBWEZvcm1hdE1vZHVsZSB7XG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBtb2R1bGUgZm9yIHRoZSByb290IGluamVjdG9yLCBvcHRpb25hbGx5IHJlZ2lzdGVyaW5nIGN1c3RvbSBmb3JtYXR0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlncyAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gY29udGFpbmluZyBjdXN0b20gZm9ybWF0dGVyIGNsYXNzZXMuXG4gICAqIEByZXR1cm5zIE1vZHVsZVdpdGhQcm92aWRlcnM8QVhGb3JtYXRNb2R1bGU+XG4gICAqL1xuXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZ3M/OiBBWEZvcm1hdE1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYRm9ybWF0TW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWEZvcm1hdE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAuLi4oY29uZmlncz8uZm9ybWF0dGVycyB8fCBbXSksXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhGb3JtYXRNb2R1bGVGYWN0b3J5JyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAocGx1Z2luUmVnaXN0cnk6IEFYRm9ybWF0dGVyUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICBwbHVnaW5SZWdpc3RyeS5yZWdpc3RlciguLi5bLi4uQlVJTFRfSU5fUlVMRVMsIC4uLihjb25maWdzPy5mb3JtYXR0ZXJzIHx8IFtdKV0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYRm9ybWF0dGVyUmVnaXN0cnlTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBtb2R1bGUgZm9yIGEgZmVhdHVyZSBpbmplY3Rvciwgb3B0aW9uYWxseSByZWdpc3RlcmluZyBjdXN0b20gZm9ybWF0dGVycy5cbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZ3MgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIGNvbnRhaW5pbmcgY3VzdG9tIGZvcm1hdHRlciBjbGFzc2VzLlxuICAgKiBAcmV0dXJucyBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYRm9ybWF0TW9kdWxlPlxuICAgKi9cblxuICBzdGF0aWMgZm9yQ2hpbGQoY29uZmlncz86IEFYRm9ybWF0TW9kdWxlQ29uZmlncyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhGb3JtYXRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYRm9ybWF0TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIC4uLihjb25maWdzPy5mb3JtYXR0ZXJzIHx8IFtdKSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWEZvcm1hdE1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChwbHVnaW5SZWdpc3RyeTogQVhGb3JtYXR0ZXJSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgIHBsdWdpblJlZ2lzdHJ5LnJlZ2lzdGVyKC4uLlsuLi5CVUlMVF9JTl9SVUxFUywgLi4uKGNvbmZpZ3M/LmZvcm1hdHRlcnMgfHwgW10pXSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXBzOiBbQVhGb3JtYXR0ZXJSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IGluc3RhbmNlcyA9IGluamVjdDxhbnlbXT4oJ0FYRm9ybWF0TW9kdWxlRmFjdG9yeScgYXMgYW55KTtcblxuICAgIGluc3RhbmNlcy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBmKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9mb3JtYXQvc3JjL2Fjb3JleC1jb3JlLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-core-format.mjs","sources":["../../../../packages/core/format/src/lib/format.config.ts","../../../../packages/core/format/src/lib/format.service.ts","../../../../packages/core/format/src/lib/format.directive.ts","../../../../packages/core/format/src/lib/format.pipe.ts","../../../../packages/core/format/src/lib/formatters/number.formatter.ts","../../../../packages/core/format/src/lib/formatters/string.formatter.ts","../../../../packages/core/format/src/lib/format.module.ts","../../../../packages/core/format/src/acorex-core-format.ts"],"sourcesContent":["import { AXFormatOptions } from './format.types';\n\nexport abstract class AXFormatter {\n abstract get name(): string;\n\n /**\n * Formats a value with optional options.\n * @returns The formatted value.\n */\n abstract format(value: unknown, options?: AXFormatOptions | string): string;\n}\n","import { inject, Injectable, Injector } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXFormatter } from './format.config';\nimport { AXFormatOptionsMap } from './format.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXFormatterRegistryService {\n private plugins: AXFormatter[] = [];\n\n private injector = inject(Injector);\n\n register(...plugins: (new () => AXFormatter)[]) {\n plugins.forEach((t) => {\n const childInjector = Injector.create({\n providers: [{ provide: t, useClass: t, deps: [] }],\n parent: this.injector,\n });\n const v = childInjector.get(t);\n\n if (v && !this.plugins.some((p) => p.name == v.name)) {\n this.plugins.push(v);\n }\n });\n }\n\n get formatters(): AXFormatter[] {\n return this.plugins;\n }\n\n /**\n * Resolves a formatter instance by its name.\n *\n * @param name - The formatter name.\n * @returns AXFormatter - The resolved formatter instance.\n * @throws Error when no formatter with the given name exists.\n */\n get(name: string): AXFormatter {\n const formatter = this.formatters.find((c) => c.name == name);\n if (!formatter) {\n throw new Error(`Formatter not found: ${name}`);\n }\n return formatter;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXFormatService {\n private pluginRegistry = inject(AXFormatterRegistryService);\n\n private renderSubject = new Subject<void>();\n\n // Observable that other services/components can subscribe to\n onRender = this.renderSubject.asObservable();\n\n /**\n * Triggers a render event for listeners that care about formatting updates.\n *\n * @returns void - Emits on the onRender observable.\n */\n\n render() {\n this.renderSubject.next();\n }\n\n //TODO\n // Overload for traditional formatting\n\n /**\n * Formats a value using the specified formatter name.\n *\n * @param value - The input value to format.\n * @param formatter - The formatter name to use (e.g., 'number', 'string').\n * @param options - Optional options specific to the formatter.\n * @returns string - The formatted string.\n */\n\n format(value: unknown, formatter: string, options?: any): string;\n\n // Overload for starting fluent API chain\n\n /**\n * Starts a fluent formatting chain.\n *\n * @param value - The input value to format.\n * @returns AXFormatFluent - A fluent API object for chaining.\n */\n format(value: unknown): AXFormatFluent;\n\n // Implementation of the format method\n\n /**\n * Formats a value according to the formatter's rules.\n *\n * @param value - The value to format.\n * @param options - Optional options bag or string, depending on the formatter.\n * @returns string - The formatted result.\n */\n format(value: unknown, formatter?: string, options?: any): string | AXFormatFluent {\n if (typeof formatter === 'string') {\n const formatterRef = this.pluginRegistry.get(formatter);\n return formatterRef.format(value, options);\n } else {\n return new AXFormatFluent(this, this.pluginRegistry, value);\n }\n }\n}\n\nclass AXFormatFluent {\n constructor(\n private formatService: AXFormatService,\n private pluginRegistry: AXFormatterRegistryService,\n private initialValue: unknown,\n ) {}\n\n /**\n * Formats the value using the specified formatter and options.\n * @param formatter The name of the formatter to use.\n * @param options The options to pass to the formatter.\n * @returns The formatted string.\n */\n to<K extends keyof AXFormatOptionsMap>(formatter: K, options?: AXFormatOptionsMap[K]): string {\n try {\n const formatterRef = this.pluginRegistry.get(formatter);\n return formatterRef.format(this.initialValue, options);\n } catch (error) {\n return String(this.initialValue);\n }\n }\n}\n","import { Directive, OnInit, TemplateRef, ViewContainerRef, inject } from '@angular/core';\nimport { AXFormatService } from './format.service';\nimport { AXFormatOptionsMap } from './format.types';\n\n@Directive({\n selector: '[formatter]',\n})\nexport class AXFormatterDirective implements OnInit {\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\n private viewContainer = inject(ViewContainerRef);\n private formatService = inject(AXFormatService);\n\n ngOnInit() {\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: <K extends keyof AXFormatOptionsMap>(\n value: unknown,\n formatter: K,\n options?: AXFormatOptionsMap[K],\n ) => {\n return this.formatService.format(value, formatter, options);\n },\n });\n }\n}\n","import { AXEventData, AXEventService, AXSystemEvents } from '@acorex/core/events';\nimport { Pipe, PipeTransform, inject } from '@angular/core';\nimport { Observable, filter, of, startWith, switchMap } from 'rxjs';\nimport { AXFormatService } from './format.service';\nimport { AXFormatOptions } from './format.types';\n\n@Pipe({\n name: 'format',\n pure: true,\n})\nexport class AXFormatPipe implements PipeTransform {\n private formatService = inject(AXFormatService);\n private eventService = inject(AXEventService);\n\n private triggers = [...Object.values(AXSystemEvents).map((event) => event as string)];\n\n /**\n * Angular pipe for formatting values reactively. Re-evaluates when system events (such as language change) occur.\n *\n * @param value - The input value to format.\n * @param name - The formatter name.\n * @param options - Optional options specific to the formatter.\n * @returns Observable<string> - Emits the formatted string and updates on system events.\n */\n\n transform(value: unknown, name: string, options?: AXFormatOptions | string): Observable<string> {\n // Initial formatted value\n const initialFormattedValue = this.formatService.format(value, name as any, options);\n\n // React to language changes and re-format the value\n return this.eventService.onEvent.pipe(\n filter((event: AXEventData) => this.triggers.includes(event.type as AXSystemEvents)),\n startWith(initialFormattedValue), // Emit the initial formatted value immediately\n switchMap((event) => {\n // Re-call format method on every language change\n const formattedValue = this.formatService.format(value, name as any, options);\n return of(formattedValue);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { defaults, isInteger, padStart } from 'lodash-es';\nimport { AXFormatter } from '../format.config';\nimport { AXFormatOptions } from '../format.types';\n\nexport interface AXNumberFormatterOptions extends AXFormatOptions {\n decimalPlaces?: number;\n thousandSeparator?: string;\n decimalSeparator?: string;\n zeroPadLength?: number; // New option for zero padding,\n locale?: string;\n}\n\ndeclare module '../format.types' {\n interface AXFormatOptionsMap {\n number: AXNumberFormatterOptions;\n }\n}\n\n@Injectable()\nexport class AXNumberFormatter implements AXFormatter {\n private separatorsCache: any = {};\n\n get name(): string {\n return 'number';\n }\n\n format(value: number, options: AXNumberFormatterOptions): string {\n const { thousandSeparator, decimalSeparator } = this.getLocaleSeparators(options?.locale);\n // Merge user options with default options\n const effectiveOptions = defaults({}, options, {\n thousandSeparator,\n decimalSeparator,\n zeroPadLength: 0,\n locale: navigator.language,\n });\n\n const sign = value < 0 ? '-' : '';\n const absoluteValue = Math.abs(value);\n\n // Handling zero padding for integer part\n let integerPart = Math.floor(absoluteValue).toString();\n if (effectiveOptions.zeroPadLength && effectiveOptions.zeroPadLength > integerPart.length) {\n integerPart = padStart(integerPart, effectiveOptions.zeroPadLength, '0');\n }\n\n // Applying thousand separator to integer part\n if (effectiveOptions.thousandSeparator) {\n integerPart = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, effectiveOptions.thousandSeparator);\n }\n\n // Constructing the final formatted value\n let formattedValue = sign + integerPart;\n if (effectiveOptions.decimalPlaces !== undefined) {\n // Limiting decimal places if specified\n const decimalPart = absoluteValue.toFixed(effectiveOptions.decimalPlaces).split('.')[1];\n formattedValue += effectiveOptions.decimalSeparator + decimalPart;\n } else if (!isInteger(value)) {\n // Showing full decimal part if decimalPlaces is not specified\n const decimalPart = absoluteValue.toString().split('.')[1] || '';\n if (decimalPart.length > 0) {\n formattedValue += effectiveOptions.decimalSeparator + decimalPart;\n }\n }\n\n return formattedValue;\n }\n\n private getLocaleSeparators(locale = navigator.language): {\n thousandSeparator: string;\n decimalSeparator: string;\n } {\n // Use cache if available\n if (this.separatorsCache[locale]) {\n return this.separatorsCache[locale];\n }\n\n const numberFormat = new Intl.NumberFormat(locale);\n const parts = numberFormat.formatToParts(1234567.89);\n let thousandSeparator = '';\n let decimalSeparator = '';\n\n for (const part of parts) {\n if (part.type === 'group') {\n thousandSeparator = part.value;\n } else if (part.type === 'decimal') {\n decimalSeparator = part.value;\n }\n }\n\n // Cache the result\n this.separatorsCache[locale] = { thousandSeparator, decimalSeparator };\n return this.separatorsCache[locale];\n }\n}\n","import { get } from 'lodash-es';\nimport { AXFormatter } from '../format.config';\nimport { AXFormatOptions } from '../format.types';\n\nexport interface AXStringFormatterOptions extends AXFormatOptions {\n [key: string]: any;\n}\n\ndeclare module '../format.types' {\n interface AXFormatOptionsMap {\n string: AXStringFormatterOptions;\n }\n}\n\nexport class AXStringFormatter implements AXFormatter {\n get name(): string {\n return 'string';\n }\n\n format(value: unknown, options: AXStringFormatterOptions): string {\n if (typeof value != 'string') return String(value);\n const result = get(options, value)\n ? get(options, value)\n : value.replace(/{{\\s*([^}]+)\\s*}}/g, (match, path: string) => {\n return (get(options, path.trim()) as string) ?? match;\n });\n\n return result;\n }\n}\n","import { ModuleWithProviders, NgModule, inject } from '@angular/core';\nimport { AXFormatter } from './format.config';\nimport { AXFormatterDirective } from './format.directive';\nimport { AXFormatPipe } from './format.pipe';\nimport { AXFormatterRegistryService } from './format.service';\nimport { AXNumberFormatter } from './formatters/number.formatter';\nimport { AXStringFormatter } from './formatters/string.formatter';\n\nconst BUILT_IN_RULES = [AXNumberFormatter, AXStringFormatter];\n\nexport interface AXFormatModuleConfigs {\n formatters: (new () => AXFormatter)[];\n}\n\n@NgModule({\n imports: [AXFormatterDirective, AXFormatPipe],\n exports: [AXFormatterDirective, AXFormatPipe],\n})\nexport class AXFormatModule {\n /**\n * Configures the module for the root injector, optionally registering custom formatters.\n *\n * @param configs - Optional configuration containing custom formatter classes.\n * @returns ModuleWithProviders<AXFormatModule>\n */\n\n static forRoot(configs?: AXFormatModuleConfigs): ModuleWithProviders<AXFormatModule> {\n return {\n ngModule: AXFormatModule,\n providers: [\n ...(configs?.formatters || []),\n {\n provide: 'AXFormatModuleFactory',\n useFactory: (pluginRegistry: AXFormatterRegistryService) => () => {\n pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.formatters || [])]);\n },\n deps: [AXFormatterRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * Configures the module for a feature injector, optionally registering custom formatters.\n *\n * @param configs - Optional configuration containing custom formatter classes.\n * @returns ModuleWithProviders<AXFormatModule>\n */\n\n static forChild(configs?: AXFormatModuleConfigs): ModuleWithProviders<AXFormatModule> {\n return {\n ngModule: AXFormatModule,\n providers: [\n ...(configs?.formatters || []),\n {\n provide: 'AXFormatModuleFactory',\n useFactory: (pluginRegistry: AXFormatterRegistryService) => () => {\n pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.formatters || [])]);\n },\n deps: [AXFormatterRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor() {\n const instances = inject<any[]>('AXFormatModuleFactory' as any);\n\n instances.forEach((f) => {\n f();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -35,10 +35,10 @@ class AXIconResolverService {
|
|
|
35
35
|
}
|
|
36
36
|
throw new Error(`AXIconResolverService: Could not resolve icon "${icon}"`);
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
39
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXIconResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXIconResolverService, providedIn: 'root' }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXIconResolverService, decorators: [{
|
|
42
42
|
type: Injectable,
|
|
43
43
|
args: [{ providedIn: 'root' }]
|
|
44
44
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core-icon.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"acorex-core-icon.mjs","sources":["../../../../packages/core/icon/src/lib/icon.types.ts","../../../../packages/core/icon/src/lib/icon-resolver.service.ts","../../../../packages/core/icon/src/acorex-core-icon.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport abstract class AXIconResolver {\n abstract resolve(icon: string): Promise<string | null>;\n}\n\nexport const AX_ICON_RESOLVER = new InjectionToken<AXIconResolver | AXIconResolver[]>('AX_ICON_RESOLVER');\n\n// Optional default fallback\nexport class AXIconResolverDefault extends AXIconResolver {\n async resolve(icon: string): Promise<string | null> {\n return icon;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { AX_ICON_RESOLVER } from './icon.types';\n\n@Injectable({ providedIn: 'root' })\nexport class AXIconResolverService {\n private resolvers = (() => {\n const injected = inject(AX_ICON_RESOLVER, { optional: true });\n if (!injected) {\n return [];\n }\n return Array.isArray(injected) ? injected : [injected];\n })();\n\n private cache = new Map<string, string>();\n\n async resolve(icon: string): Promise<string> {\n if (this.cache.has(icon)) {\n return this.cache.get(icon);\n }\n\n for (const resolver of this.resolvers) {\n const result = await resolver.resolve(icon);\n if (result != null) {\n this.cache.set(icon, result);\n return result;\n }\n }\n\n throw new Error(`AXIconResolverService: Could not resolve icon \"${icon}\"`);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAEsB,cAAc,CAAA;AAEnC;MAEY,gBAAgB,GAAG,IAAI,cAAc,CAAoC,kBAAkB;AAExG;AACM,MAAO,qBAAsB,SAAQ,cAAc,CAAA;IACvD,MAAM,OAAO,CAAC,IAAY,EAAA;AACxB,QAAA,OAAO,IAAI;IACb;AACD;;MCTY,qBAAqB,CAAA;AADlC,IAAA,WAAA,GAAA;QAEU,IAAA,CAAA,SAAS,GAAG,CAAC,MAAK;AACxB,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC7D,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,OAAO,EAAE;YACX;AACA,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC;QACxD,CAAC,GAAG;AAEI,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,EAAkB;AAiB1C,IAAA;IAfC,MAAM,OAAO,CAAC,IAAY,EAAA;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAC7B;AAEA,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3C,YAAA,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC5B,gBAAA,OAAO,MAAM;YACf;QACF;AAEA,QAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,CAAA,CAAA,CAAG,CAAC;IAC5E;8GAzBW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACHlC;;AAEG;;;;"}
|
|
@@ -47,10 +47,10 @@ class AXImageService {
|
|
|
47
47
|
canvas.getContext('2d').drawImage(image, 0, 0, width, height);
|
|
48
48
|
return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));
|
|
49
49
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
51
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
51
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXImageService }); }
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXImageService, decorators: [{
|
|
54
54
|
type: Injectable
|
|
55
55
|
}] });
|
|
56
56
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core-image.mjs","sources":["../tmp-esm2022/image/lib/image.service.js","../tmp-esm2022/image/acorex-core-image.js"],"sourcesContent":["import { DOCUMENT, inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXImageService {\n constructor() {\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n }\n /**\n * Resizes an image (File or HTMLImageElement) to fit within maxSize while preserving aspect ratio.\n * @param options.maxSize Maximum width/height in pixels.\n * @param options.source File or HTMLImageElement as source.\n * @param options.type Output MIME type (default 'image/png').\n * @param options.quality Output quality (0..1) for supported formats.\n * @returns Promise<Blob> of the resized image.\n */\n async resize(options) {\n options = Object.assign({ type: 'image/png', quality: 1 }, options);\n let image;\n if (options.source instanceof File) {\n const a = new Image();\n a.src = URL.createObjectURL(options.source);\n await new Promise((res) => (a.onload = res));\n image = a;\n }\n else {\n image = options.source;\n }\n // Resize the image\n const canvas = this.document.createElement('canvas');\n let width = image.width;\n let height = image.height;\n if (width > height) {\n if (width > options.maxSize) {\n height *= options.maxSize / width;\n width = options.maxSize;\n }\n }\n else {\n if (height > options.maxSize) {\n width *= options.maxSize / height;\n height = options.maxSize;\n }\n }\n canvas.width = width;\n canvas.height = height;\n canvas.getContext('2d').drawImage(image, 0, 0, width, height);\n return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXImageService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXImageService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvaW1hZ2Uvc3JjL2xpYi9pbWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzFFLE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRVUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBaUQxQztJQS9DQzs7Ozs7OztPQU9HO0lBRUgsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUtaO1FBQ0MsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVwRSxJQUFJLEtBQXVCLENBQUM7UUFDNUIsSUFBSSxPQUFPLENBQUMsTUFBTSxZQUFZLElBQUksRUFBRSxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxNQUFNLElBQUksT0FBTyxDQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1osQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN6QixDQUFDO1FBRUQsbUJBQW1CO1FBQ25CLE1BQU0sTUFBTSxHQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNuQixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDbEMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixLQUFLLElBQUksT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQ2xDLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdkIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQzs4R0FsRFUsY0FBYztrSEFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgLyoqXG4gICAqIFJlc2l6ZXMgYW4gaW1hZ2UgKEZpbGUgb3IgSFRNTEltYWdlRWxlbWVudCkgdG8gZml0IHdpdGhpbiBtYXhTaXplIHdoaWxlIHByZXNlcnZpbmcgYXNwZWN0IHJhdGlvLlxuICAgKiBAcGFyYW0gb3B0aW9ucy5tYXhTaXplIE1heGltdW0gd2lkdGgvaGVpZ2h0IGluIHBpeGVscy5cbiAgICogQHBhcmFtIG9wdGlvbnMuc291cmNlIEZpbGUgb3IgSFRNTEltYWdlRWxlbWVudCBhcyBzb3VyY2UuXG4gICAqIEBwYXJhbSBvcHRpb25zLnR5cGUgT3V0cHV0IE1JTUUgdHlwZSAoZGVmYXVsdCAnaW1hZ2UvcG5nJykuXG4gICAqIEBwYXJhbSBvcHRpb25zLnF1YWxpdHkgT3V0cHV0IHF1YWxpdHkgKDAuLjEpIGZvciBzdXBwb3J0ZWQgZm9ybWF0cy5cbiAgICogQHJldHVybnMgUHJvbWlzZTxCbG9iPiBvZiB0aGUgcmVzaXplZCBpbWFnZS5cbiAgICovXG5cbiAgYXN5bmMgcmVzaXplKG9wdGlvbnM6IHtcbiAgICBtYXhTaXplOiBudW1iZXI7XG4gICAgc291cmNlOiBIVE1MSW1hZ2VFbGVtZW50IHwgRmlsZTtcbiAgICB0eXBlPzogJ2ltYWdlL3BuZycgfCAnaW1hZ2UvanBlZycgfCAnaW1hZ2Uvd2VicCc7XG4gICAgcXVhbGl0eT86IG51bWJlcjtcbiAgfSk6IFByb21pc2U8QmxvYj4ge1xuICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHsgdHlwZTogJ2ltYWdlL3BuZycsIHF1YWxpdHk6IDEgfSwgb3B0aW9ucyk7XG5cbiAgICBsZXQgaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQ7XG4gICAgaWYgKG9wdGlvbnMuc291cmNlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgY29uc3QgYSA9IG5ldyBJbWFnZSgpO1xuICAgICAgYS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKG9wdGlvbnMuc291cmNlKTtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlPEV2ZW50PigocmVzKSA9PiAoYS5vbmxvYWQgPSByZXMpKTtcbiAgICAgIGltYWdlID0gYTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW1hZ2UgPSBvcHRpb25zLnNvdXJjZTtcbiAgICB9XG5cbiAgICAvLyBSZXNpemUgdGhlIGltYWdlXG4gICAgY29uc3QgY2FudmFzOiBhbnkgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGxldCB3aWR0aCA9IGltYWdlLndpZHRoO1xuICAgIGxldCBoZWlnaHQgPSBpbWFnZS5oZWlnaHQ7XG4gICAgaWYgKHdpZHRoID4gaGVpZ2h0KSB7XG4gICAgICBpZiAod2lkdGggPiBvcHRpb25zLm1heFNpemUpIHtcbiAgICAgICAgaGVpZ2h0ICo9IG9wdGlvbnMubWF4U2l6ZSAvIHdpZHRoO1xuICAgICAgICB3aWR0aCA9IG9wdGlvbnMubWF4U2l6ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGhlaWdodCA+IG9wdGlvbnMubWF4U2l6ZSkge1xuICAgICAgICB3aWR0aCAqPSBvcHRpb25zLm1heFNpemUgLyBoZWlnaHQ7XG4gICAgICAgIGhlaWdodCA9IG9wdGlvbnMubWF4U2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgY2FudmFzLndpZHRoID0gd2lkdGg7XG4gICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDtcbiAgICBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gY2FudmFzLnRvQmxvYihyZXNvbHZlLCBvcHRpb25zLnR5cGUsIG9wdGlvbnMucXVhbGl0eSkpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2ltYWdlL3NyYy9hY29yZXgtY29yZS1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-core-image.mjs","sources":["../../../../packages/core/image/src/lib/image.service.ts","../../../../packages/core/image/src/acorex-core-image.ts"],"sourcesContent":["import { DOCUMENT, inject, Injectable, PLATFORM_ID } from '@angular/core';\n\n@Injectable()\nexport class AXImageService {\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n\n /**\n * Resizes an image (File or HTMLImageElement) to fit within maxSize while preserving aspect ratio.\n * @param options.maxSize Maximum width/height in pixels.\n * @param options.source File or HTMLImageElement as source.\n * @param options.type Output MIME type (default 'image/png').\n * @param options.quality Output quality (0..1) for supported formats.\n * @returns Promise<Blob> of the resized image.\n */\n\n async resize(options: {\n maxSize: number;\n source: HTMLImageElement | File;\n type?: 'image/png' | 'image/jpeg' | 'image/webp';\n quality?: number;\n }): Promise<Blob> {\n options = Object.assign({ type: 'image/png', quality: 1 }, options);\n\n let image: HTMLImageElement;\n if (options.source instanceof File) {\n const a = new Image();\n a.src = URL.createObjectURL(options.source);\n await new Promise<Event>((res) => (a.onload = res));\n image = a;\n } else {\n image = options.source;\n }\n\n // Resize the image\n const canvas: any = this.document.createElement('canvas');\n let width = image.width;\n let height = image.height;\n if (width > height) {\n if (width > options.maxSize) {\n height *= options.maxSize / width;\n width = options.maxSize;\n }\n } else {\n if (height > options.maxSize) {\n width *= options.maxSize / height;\n height = options.maxSize;\n }\n }\n canvas.width = width;\n canvas.height = height;\n canvas.getContext('2d').drawImage(image, 0, 0, width, height);\n return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAiDzC,IAAA;AA/CC;;;;;;;AAOG;IAEH,MAAM,MAAM,CAAC,OAKZ,EAAA;AACC,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC;AAEnE,QAAA,IAAI,KAAuB;AAC3B,QAAA,IAAI,OAAO,CAAC,MAAM,YAAY,IAAI,EAAE;AAClC,YAAA,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE;YACrB,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;AAC3C,YAAA,MAAM,IAAI,OAAO,CAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;YACnD,KAAK,GAAG,CAAC;QACX;aAAO;AACL,YAAA,KAAK,GAAG,OAAO,CAAC,MAAM;QACxB;;QAGA,MAAM,MAAM,GAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AACzD,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK;AACvB,QAAA,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM;AACzB,QAAA,IAAI,KAAK,GAAG,MAAM,EAAE;AAClB,YAAA,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE;AAC3B,gBAAA,MAAM,IAAI,OAAO,CAAC,OAAO,GAAG,KAAK;AACjC,gBAAA,KAAK,GAAG,OAAO,CAAC,OAAO;YACzB;QACF;aAAO;AACL,YAAA,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE;AAC5B,gBAAA,KAAK,IAAI,OAAO,CAAC,OAAO,GAAG,MAAM;AACjC,gBAAA,MAAM,GAAG,OAAO,CAAC,OAAO;YAC1B;QACF;AACA,QAAA,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM;AACtB,QAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;QAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxF;8GAlDW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAd,cAAc,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;ACFD;;AAEG;;;;"}
|