@acorex/core 21.0.2-next.24 → 21.0.2-next.25
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 +92 -685
- 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-full-screen.mjs +3 -3
- package/fesm2022/acorex-core-full-screen.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 +4 -4
- package/fesm2022/acorex-core-platform.mjs.map +1 -1
- package/fesm2022/acorex-core-storage.mjs +9 -9
- 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 +6 -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-z-index.mjs +3 -3
- package/fesm2022/acorex-core-z-index.mjs.map +1 -1
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/package.json +23 -23
- package/types/acorex-core-file.d.ts +85 -0
- package/{format/index.d.ts → types/acorex-core-format.d.ts} +2 -2
- package/{utils/index.d.ts → types/acorex-core-utils.d.ts} +10 -2
- package/{validation/index.d.ts → types/acorex-core-validation.d.ts} +10 -10
- package/file/index.d.ts +0 -321
- /package/{components/index.d.ts → types/acorex-core-components.d.ts} +0 -0
- /package/{config/index.d.ts → types/acorex-core-config.d.ts} +0 -0
- /package/{constants/index.d.ts → types/acorex-core-constants.d.ts} +0 -0
- /package/{date-time/index.d.ts → types/acorex-core-date-time.d.ts} +0 -0
- /package/{events/index.d.ts → types/acorex-core-events.d.ts} +0 -0
- /package/{full-screen/index.d.ts → types/acorex-core-full-screen.d.ts} +0 -0
- /package/{icon/index.d.ts → types/acorex-core-icon.d.ts} +0 -0
- /package/{image/index.d.ts → types/acorex-core-image.d.ts} +0 -0
- /package/{locale/index.d.ts → types/acorex-core-locale.d.ts} +0 -0
- /package/{memoize/index.d.ts → types/acorex-core-memoize.d.ts} +0 -0
- /package/{network/index.d.ts → types/acorex-core-network.d.ts} +0 -0
- /package/{pipes/index.d.ts → types/acorex-core-pipes.d.ts} +0 -0
- /package/{platform/index.d.ts → types/acorex-core-platform.d.ts} +0 -0
- /package/{storage/index.d.ts → types/acorex-core-storage.d.ts} +0 -0
- /package/{translation/index.d.ts → types/acorex-core-translation.d.ts} +0 -0
- /package/{z-index/index.d.ts → types/acorex-core-z-index.d.ts} +0 -0
- /package/{index.d.ts → types/acorex-core.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core-file.mjs","sources":["../tmp-esm2022/file/lib/file-size-formatter.js","../tmp-esm2022/file/lib/format-file-size.js","../tmp-esm2022/file/lib/file-type/file-type.utilities.js","../tmp-esm2022/file/lib/file-type/file-type-info-provider.js","../tmp-esm2022/file/lib/file-type/file-type.merge.js","../tmp-esm2022/file/lib/file-type/file-type.validate.js","../tmp-esm2022/file/lib/file-type/file-type-registry.service.js","../tmp-esm2022/file/lib/file-type/types.providers/audio-file-type.provider.js","../tmp-esm2022/file/lib/file-type/types.providers/document-file-type.provider.js","../tmp-esm2022/file/lib/file-type/types.providers/file-file-type.provider.js","../tmp-esm2022/file/lib/file-type/types.providers/image-file-type.provider.js","../tmp-esm2022/file/lib/file-type/types.providers/video-file-type.provider.js","../tmp-esm2022/file/lib/file-type/types.providers/index.js","../tmp-esm2022/file/lib/file-type/rules/file-mime-type.rule.js","../tmp-esm2022/file/lib/file-type/rules/file-min-size.rule.js","../tmp-esm2022/file/lib/file-type/rules/file-max-size.rule.js","../tmp-esm2022/file/lib/file-type/index.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.3\", ngImport: i0, type: AXFileSizeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileSizeFormatter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileSizeFormatter, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zaXplLWZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZmlsZS9zcmMvbGliL2ZpbGUtc2l6ZS1mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFhM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7OztPQUlHO0lBRUgsSUFBSSxJQUFJO1FBQ04sT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBRUgsTUFBTSxDQUFDLEtBQWE7UUFDbEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLElBQUksSUFBSSxLQUFLLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNqQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFekMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsT0FBTyxVQUFVLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OEdBN0JVLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXRPcHRpb25zLCBBWEZvcm1hdHRlciB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYRmlsZVNpemVGb3JtYXR0ZXJPcHRpb25zIGV4dGVuZHMgQVhGb3JtYXRPcHRpb25zIHtcbiAgZm9ybWF0OiBzdHJpbmc7XG59XG5cbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L2NvcmUvZm9ybWF0JyB7XG4gIGludGVyZmFjZSBBWEZvcm1hdE9wdGlvbnNNYXAge1xuICAgIGZpbGVzaXplOiBBWEZpbGVTaXplRm9ybWF0dGVyT3B0aW9ucztcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhGaWxlU2l6ZUZvcm1hdHRlciBpbXBsZW1lbnRzIEFYRm9ybWF0dGVyIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGZvcm1hdHRlci5cbiAgICpcbiAgICogQHJldHVybnMgc3RyaW5nIC0gVGhlIGZvcm1hdHRlciBuYW1lICdmaWxlc2l6ZSdcbiAgICovXG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2ZpbGVzaXplJztcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXRzIGEgZmlsZSBzaXplIHZhbHVlIHRvIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGZpbGUgc2l6ZSBpbiBieXRlc1xuICAgKiBAcmV0dXJucyBzdHJpbmcgLSBUaGUgZm9ybWF0dGVkIGZpbGUgc2l6ZSBzdHJpbmcgKGUuZy4sICcxLjUgTUInKVxuICAgKi9cblxuICBmb3JtYXQodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2l6ZSA9IE51bWJlcih2YWx1ZSk7XG5cbiAgICBpZiAoc2l6ZSA9PT0gMCkgcmV0dXJuICcwIEJ5dGVzJztcbiAgICBpZiAoTnVtYmVyLmlzTmFOKHNpemUpKSByZXR1cm4gJ1Vua25vd24nO1xuXG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coc2l6ZSkgLyBNYXRoLmxvZyhrKSk7XG5cbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoc2l6ZSAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKDIpKSArICcgJyArIHNpemVzW2ldO1xuICB9XG59XG4iXX0=","/** Human-readable file size (binary units, e.g. `41.5 MB`). */\nexport function formatFileSizeBytes(bytes) {\n if (!Number.isFinite(bytes) || bytes < 0) {\n return '0 B';\n }\n if (bytes === 0) {\n return '0 B';\n }\n const k = 1024;\n const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), units.length - 1);\n const value = bytes / Math.pow(k, i);\n if (i === 0) {\n return `${bytes} B`;\n }\n const digits = value >= 100 ? 0 : value >= 10 ? 1 : 2;\n return `${value.toFixed(digits)} ${units[i]}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbGUtc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZmlsZS9zcmMvbGliL2Zvcm1hdC1maWxlLXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFhO0lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDZixNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRixNQUFNLEtBQUssR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDWixPQUFPLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBIdW1hbi1yZWFkYWJsZSBmaWxlIHNpemUgKGJpbmFyeSB1bml0cywgZS5nLiBgNDEuNSBNQmApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEZpbGVTaXplQnl0ZXMoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGJ5dGVzKSB8fCBieXRlcyA8IDApIHtcbiAgICByZXR1cm4gJzAgQic7XG4gIH1cbiAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgcmV0dXJuICcwIEInO1xuICB9XG5cbiAgY29uc3QgayA9IDEwMjQ7XG4gIGNvbnN0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XG4gIGNvbnN0IGkgPSBNYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKSwgdW5pdHMubGVuZ3RoIC0gMSk7XG4gIGNvbnN0IHZhbHVlID0gYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKTtcblxuICBpZiAoaSA9PT0gMCkge1xuICAgIHJldHVybiBgJHtieXRlc30gQmA7XG4gIH1cblxuICBjb25zdCBkaWdpdHMgPSB2YWx1ZSA+PSAxMDAgPyAwIDogdmFsdWUgPj0gMTAgPyAxIDogMjtcbiAgcmV0dXJuIGAke3ZhbHVlLnRvRml4ZWQoZGlnaXRzKX0gJHt1bml0c1tpXX1gO1xufVxuIl19","/** Well-known utility keys (optional per {@link AXFileType}). */\nexport const AX_FILE_TYPE_UTILITY = {\n preview: 'preview',\n duration: 'duration',\n formatSize: 'formatSize',\n formatDuration: 'formatDuration',\n createLocalPreviewUrl: 'createLocalPreviewUrl',\n /** Resolves catalog name for mixed file-picker rows. */\n pickerCatalog: 'pickerCatalog',\n};\nexport function createFileTypeUtilitiesContext(readAsDataUrl, platformId) {\n return { readAsDataUrl, platformId };\n}\nexport function hasFileTypeUtility(fileType, name) {\n return typeof fileType?.utilities?.[name] === 'function';\n}\nexport async function runFileTypeUtility(fileType, name, ctx, ...args) {\n const fn = fileType?.utilities?.[name];\n if (!fn) {\n return undefined;\n }\n return (await fn(ctx, ...args));\n}\nexport function runFileTypeUtilitySync(fileType, name, ctx, ...args) {\n const fn = fileType?.utilities?.[name];\n if (!fn) {\n return undefined;\n }\n return fn(ctx, ...args);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS10eXBlLnV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZmlsZS9zcmMvbGliL2ZpbGUtdHlwZS9maWxlLXR5cGUudXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsVUFBVTtJQUNwQixVQUFVLEVBQUUsWUFBWTtJQUN4QixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLHFCQUFxQixFQUFFLHVCQUF1QjtJQUM5Qyx3REFBd0Q7SUFDeEQsYUFBYSxFQUFFLGVBQWU7Q0FDdEIsQ0FBQztBQUlYLE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsYUFBcUQsRUFDckQsVUFBa0I7SUFFbEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxRQUFnQyxFQUNoQyxJQUFZO0lBRVosT0FBTyxPQUFPLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLENBQUM7QUFDM0QsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQ3RDLFFBQWdDLEVBQ2hDLElBQVksRUFDWixHQUErQixFQUMvQixHQUFHLElBQWU7SUFFbEIsTUFBTSxFQUFFLEdBQUcsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNSLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQU0sQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxRQUFnQyxFQUNoQyxJQUFZLEVBQ1osR0FBK0IsRUFDL0IsR0FBRyxJQUFlO0lBRWxCLE1BQU0sRUFBRSxHQUFHLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFNLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQVhGaWxlVHlwZSwgQVhGaWxlVHlwZVV0aWxpdGllc0NvbnRleHQsIEFYRmlsZVR5cGVVdGlsaXR5IH0gZnJvbSAnLi9maWxlLXR5cGUubW9kZWxzJztcblxuLyoqIFdlbGwta25vd24gdXRpbGl0eSBrZXlzIChvcHRpb25hbCBwZXIge0BsaW5rIEFYRmlsZVR5cGV9KS4gKi9cbmV4cG9ydCBjb25zdCBBWF9GSUxFX1RZUEVfVVRJTElUWSA9IHtcbiAgcHJldmlldzogJ3ByZXZpZXcnLFxuICBkdXJhdGlvbjogJ2R1cmF0aW9uJyxcbiAgZm9ybWF0U2l6ZTogJ2Zvcm1hdFNpemUnLFxuICBmb3JtYXREdXJhdGlvbjogJ2Zvcm1hdER1cmF0aW9uJyxcbiAgY3JlYXRlTG9jYWxQcmV2aWV3VXJsOiAnY3JlYXRlTG9jYWxQcmV2aWV3VXJsJyxcbiAgLyoqIFJlc29sdmVzIGNhdGFsb2cgbmFtZSBmb3IgbWl4ZWQgZmlsZS1waWNrZXIgcm93cy4gKi9cbiAgcGlja2VyQ2F0YWxvZzogJ3BpY2tlckNhdGFsb2cnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQVhGaWxlVHlwZVV0aWxpdHlOYW1lID0gKHR5cGVvZiBBWF9GSUxFX1RZUEVfVVRJTElUWSlba2V5b2YgdHlwZW9mIEFYX0ZJTEVfVFlQRV9VVElMSVRZXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZpbGVUeXBlVXRpbGl0aWVzQ29udGV4dChcbiAgcmVhZEFzRGF0YVVybDogKGZpbGU6IEZpbGUgfCBCbG9iKSA9PiBQcm9taXNlPHN0cmluZz4sXG4gIHBsYXRmb3JtSWQ6IG9iamVjdCxcbik6IEFYRmlsZVR5cGVVdGlsaXRpZXNDb250ZXh0IHtcbiAgcmV0dXJuIHsgcmVhZEFzRGF0YVVybCwgcGxhdGZvcm1JZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRmlsZVR5cGVVdGlsaXR5KFxuICBmaWxlVHlwZTogQVhGaWxlVHlwZSB8IHVuZGVmaW5lZCxcbiAgbmFtZTogc3RyaW5nLFxuKTogZmlsZVR5cGUgaXMgQVhGaWxlVHlwZSAmIHsgdXRpbGl0aWVzOiBSZWNvcmQ8c3RyaW5nLCBBWEZpbGVUeXBlVXRpbGl0eT4gfSB7XG4gIHJldHVybiB0eXBlb2YgZmlsZVR5cGU/LnV0aWxpdGllcz8uW25hbWVdID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuRmlsZVR5cGVVdGlsaXR5PFQ+KFxuICBmaWxlVHlwZTogQVhGaWxlVHlwZSB8IHVuZGVmaW5lZCxcbiAgbmFtZTogc3RyaW5nLFxuICBjdHg6IEFYRmlsZVR5cGVVdGlsaXRpZXNDb250ZXh0LFxuICAuLi5hcmdzOiB1bmtub3duW11cbik6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBmbiA9IGZpbGVUeXBlPy51dGlsaXRpZXM/LltuYW1lXTtcbiAgaWYgKCFmbikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIChhd2FpdCBmbihjdHgsIC4uLmFyZ3MpKSBhcyBUO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuRmlsZVR5cGVVdGlsaXR5U3luYzxUPihcbiAgZmlsZVR5cGU6IEFYRmlsZVR5cGUgfCB1bmRlZmluZWQsXG4gIG5hbWU6IHN0cmluZyxcbiAgY3R4OiBBWEZpbGVUeXBlVXRpbGl0aWVzQ29udGV4dCxcbiAgLi4uYXJnczogdW5rbm93bltdXG4pOiBUIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZm4gPSBmaWxlVHlwZT8udXRpbGl0aWVzPy5bbmFtZV07XG4gIGlmICghZm4pIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiBmbihjdHgsIC4uLmFyZ3MpIGFzIFQ7XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\n/** Contributes {@link AXFileType} entries (multi provider). */\nexport class AXFileTypeInfoProvider {\n}\nexport const AX_FILE_TYPE_INFO_PROVIDER = new InjectionToken('AX_FILE_TYPE_INFO_PROVIDER');\nexport function provideFileTypeInfoProvider(provider) {\n return {\n provide: AX_FILE_TYPE_INFO_PROVIDER,\n useClass: provider,\n multi: true,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS10eXBlLWluZm8tcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2ZpbGUvc3JjL2xpYi9maWxlLXR5cGUvZmlsZS10eXBlLWluZm8tcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFHL0QsK0RBQStEO0FBQy9ELE1BQU0sT0FBZ0Isc0JBQXNCO0NBRTNDO0FBRUQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQzFELDRCQUE0QixDQUM3QixDQUFDO0FBRUYsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFFBQXNDO0lBQ2hGLE9BQU87UUFDTCxPQUFPLEVBQUUsMEJBQTBCO1FBQ25DLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQVhGaWxlVHlwZSB9IGZyb20gJy4vZmlsZS10eXBlLm1vZGVscyc7XG5cbi8qKiBDb250cmlidXRlcyB7QGxpbmsgQVhGaWxlVHlwZX0gZW50cmllcyAobXVsdGkgcHJvdmlkZXIpLiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYRmlsZVR5cGVJbmZvUHJvdmlkZXIge1xuICBhYnN0cmFjdCBpdGVtcygpOiBQcm9taXNlPEFYRmlsZVR5cGVbXT47XG59XG5cbmV4cG9ydCBjb25zdCBBWF9GSUxFX1RZUEVfSU5GT19QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyW10+KFxuICAnQVhfRklMRV9UWVBFX0lORk9fUFJPVklERVInLFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVGaWxlVHlwZUluZm9Qcm92aWRlcihwcm92aWRlcjogVHlwZTxBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyPik6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBBWF9GSUxFX1RZUEVfSU5GT19QUk9WSURFUixcbiAgICB1c2VDbGFzczogcHJvdmlkZXIsXG4gICAgbXVsdGk6IHRydWUsXG4gIH07XG59XG4iXX0=","/** Merges type-level validations with extension overrides (extension wins per field). */\nexport function mergeFileValidations(base, override) {\n if (!override) {\n return { ...base };\n }\n return {\n mimeTypes: override.mimeTypes ?? base.mimeTypes,\n minSize: override.minSize ?? base.minSize,\n maxSize: override.maxSize ?? base.maxSize,\n rules: override.rules ?? base.rules,\n };\n}\n/** Resolved validations for a type + optional extension. */\nexport function resolveFileValidations(type, extension) {\n return mergeFileValidations(type.validations ?? {}, extension?.validations);\n}\n/** True when no mime/size/rules are defined on the type. */\nexport function isEmptyFileValidations(validations) {\n if (!validations) {\n return true;\n }\n return ((validations.mimeTypes?.length ?? 0) === 0 &&\n validations.minSize == null &&\n validations.maxSize == null &&\n (validations.rules?.length ?? 0) === 0);\n}\n/**\n * Extension-only mode: empty type `validations` and a non-empty `extensions` list.\n * Files must match a listed extension; rules come from that extension entry.\n */\nexport function isExtensionsOnlyType(type) {\n return isEmptyFileValidations(type.validations) && (type.extensions?.length ?? 0) > 0;\n}\n/** File extension from name (lowercase, no dot). */\nexport function getFileExtension(fileName) {\n const parts = fileName.trim().split('.');\n return parts.length > 1 ? (parts.pop()?.toLowerCase() ?? '') : '';\n}\n/** Matching extension entry for a file within a type, if any. */\nexport function findFileTypeExtension(file, type) {\n const ext = getFileExtension(file.name);\n if (!ext || !type.extensions?.length) {\n return undefined;\n }\n return type.extensions.find((e) => e.name.toLowerCase() === ext);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS10eXBlLm1lcmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS10eXBlL2ZpbGUtdHlwZS5tZXJnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSx5RkFBeUY7QUFDekYsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxJQUF1QixFQUN2QixRQUFxQztJQUVyQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNMLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTO1FBQy9DLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPO1FBQ3pDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPO1FBQ3pDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLO0tBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQsNERBQTREO0FBQzVELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsSUFBZ0IsRUFDaEIsU0FBK0I7SUFFL0IsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELDREQUE0RDtBQUM1RCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsV0FBK0I7SUFDcEUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sQ0FDTCxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDMUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxJQUFJO1FBQzNCLFdBQVcsQ0FBQyxPQUFPLElBQUksSUFBSTtRQUMzQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDdkMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBZ0I7SUFDbkQsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVELG9EQUFvRDtBQUNwRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDL0MsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3BFLENBQUM7QUFFRCxpRUFBaUU7QUFDakUsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQVUsRUFBRSxJQUFnQjtJQUNoRSxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDckMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQVhGaWxlVHlwZSwgQVhGaWxlVHlwZUV4dGVuc2lvbiwgQVhGaWxlVmFsaWRhdGlvbnMgfSBmcm9tICcuL2ZpbGUtdHlwZS5tb2RlbHMnO1xuXG4vKiogTWVyZ2VzIHR5cGUtbGV2ZWwgdmFsaWRhdGlvbnMgd2l0aCBleHRlbnNpb24gb3ZlcnJpZGVzIChleHRlbnNpb24gd2lucyBwZXIgZmllbGQpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRmlsZVZhbGlkYXRpb25zKFxuICBiYXNlOiBBWEZpbGVWYWxpZGF0aW9ucyxcbiAgb3ZlcnJpZGU/OiBQYXJ0aWFsPEFYRmlsZVZhbGlkYXRpb25zPixcbik6IEFYRmlsZVZhbGlkYXRpb25zIHtcbiAgaWYgKCFvdmVycmlkZSkge1xuICAgIHJldHVybiB7IC4uLmJhc2UgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbWltZVR5cGVzOiBvdmVycmlkZS5taW1lVHlwZXMgPz8gYmFzZS5taW1lVHlwZXMsXG4gICAgbWluU2l6ZTogb3ZlcnJpZGUubWluU2l6ZSA/PyBiYXNlLm1pblNpemUsXG4gICAgbWF4U2l6ZTogb3ZlcnJpZGUubWF4U2l6ZSA/PyBiYXNlLm1heFNpemUsXG4gICAgcnVsZXM6IG92ZXJyaWRlLnJ1bGVzID8/IGJhc2UucnVsZXMsXG4gIH07XG59XG5cbi8qKiBSZXNvbHZlZCB2YWxpZGF0aW9ucyBmb3IgYSB0eXBlICsgb3B0aW9uYWwgZXh0ZW5zaW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVGaWxlVmFsaWRhdGlvbnMoXG4gIHR5cGU6IEFYRmlsZVR5cGUsXG4gIGV4dGVuc2lvbj86IEFYRmlsZVR5cGVFeHRlbnNpb24sXG4pOiBBWEZpbGVWYWxpZGF0aW9ucyB7XG4gIHJldHVybiBtZXJnZUZpbGVWYWxpZGF0aW9ucyh0eXBlLnZhbGlkYXRpb25zID8/IHt9LCBleHRlbnNpb24/LnZhbGlkYXRpb25zKTtcbn1cblxuLyoqIFRydWUgd2hlbiBubyBtaW1lL3NpemUvcnVsZXMgYXJlIGRlZmluZWQgb24gdGhlIHR5cGUuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eUZpbGVWYWxpZGF0aW9ucyh2YWxpZGF0aW9ucz86IEFYRmlsZVZhbGlkYXRpb25zKTogYm9vbGVhbiB7XG4gIGlmICghdmFsaWRhdGlvbnMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gKFxuICAgICh2YWxpZGF0aW9ucy5taW1lVHlwZXM/Lmxlbmd0aCA/PyAwKSA9PT0gMCAmJlxuICAgIHZhbGlkYXRpb25zLm1pblNpemUgPT0gbnVsbCAmJlxuICAgIHZhbGlkYXRpb25zLm1heFNpemUgPT0gbnVsbCAmJlxuICAgICh2YWxpZGF0aW9ucy5ydWxlcz8ubGVuZ3RoID8/IDApID09PSAwXG4gICk7XG59XG5cbi8qKlxuICogRXh0ZW5zaW9uLW9ubHkgbW9kZTogZW1wdHkgdHlwZSBgdmFsaWRhdGlvbnNgIGFuZCBhIG5vbi1lbXB0eSBgZXh0ZW5zaW9uc2AgbGlzdC5cbiAqIEZpbGVzIG11c3QgbWF0Y2ggYSBsaXN0ZWQgZXh0ZW5zaW9uOyBydWxlcyBjb21lIGZyb20gdGhhdCBleHRlbnNpb24gZW50cnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVuc2lvbnNPbmx5VHlwZSh0eXBlOiBBWEZpbGVUeXBlKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0VtcHR5RmlsZVZhbGlkYXRpb25zKHR5cGUudmFsaWRhdGlvbnMpICYmICh0eXBlLmV4dGVuc2lvbnM/Lmxlbmd0aCA/PyAwKSA+IDA7XG59XG5cbi8qKiBGaWxlIGV4dGVuc2lvbiBmcm9tIG5hbWUgKGxvd2VyY2FzZSwgbm8gZG90KS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBwYXJ0cyA9IGZpbGVOYW1lLnRyaW0oKS5zcGxpdCgnLicpO1xuICByZXR1cm4gcGFydHMubGVuZ3RoID4gMSA/IChwYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKSA/PyAnJykgOiAnJztcbn1cblxuLyoqIE1hdGNoaW5nIGV4dGVuc2lvbiBlbnRyeSBmb3IgYSBmaWxlIHdpdGhpbiBhIHR5cGUsIGlmIGFueS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRmlsZVR5cGVFeHRlbnNpb24oZmlsZTogRmlsZSwgdHlwZTogQVhGaWxlVHlwZSk6IEFYRmlsZVR5cGVFeHRlbnNpb24gfCB1bmRlZmluZWQge1xuICBjb25zdCBleHQgPSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGUubmFtZSk7XG4gIGlmICghZXh0IHx8ICF0eXBlLmV4dGVuc2lvbnM/Lmxlbmd0aCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIHR5cGUuZXh0ZW5zaW9ucy5maW5kKChlKSA9PiBlLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gZXh0KTtcbn1cbiJdfQ==","import { findFileTypeExtension, getFileExtension, isExtensionsOnlyType, resolveFileValidations } from './file-type.merge';\n/** Maps {@link AXFileValidations} to executable validation entries. */\nexport function fileValidationsToRules(validations) {\n const rules = [];\n if (validations.mimeTypes?.length) {\n rules.push({\n rule: 'fileMimeType',\n options: { allowed: validations.mimeTypes },\n });\n }\n if (validations.minSize != null) {\n rules.push({\n rule: 'fileMinSize',\n options: { minSize: validations.minSize },\n });\n }\n if (validations.maxSize != null) {\n rules.push({\n rule: 'fileMaxSize',\n options: { maxSize: validations.maxSize },\n });\n }\n if (validations.rules?.length) {\n rules.push(...validations.rules);\n }\n return rules;\n}\n/** Failed validation results; empty array means the file is valid. */\nexport async function validateFileWithValidations(validation, file, validations) {\n const entries = fileValidationsToRules(validations);\n const errors = [];\n for (const { rule, options } of entries) {\n const result = await validation.validate(rule, file, options);\n if (!result.result) {\n errors.push(result);\n }\n }\n return errors;\n}\n/** Validates a file against a type; extension rules override when the file name matches. */\nexport async function validateFileAgainstType(validation, file, type, extension) {\n const matchedExtension = extension ?? findFileTypeExtension(file, type);\n if (isExtensionsOnlyType(type) && !matchedExtension) {\n const ext = getFileExtension(file.name);\n return [\n {\n rule: 'fileExtension',\n result: false,\n message: ext ? `Extension \".${ext}\" is not allowed.` : 'File must have an allowed extension.',\n value: ext,\n },\n ];\n }\n const resolved = resolveFileValidations(type, matchedExtension);\n return validateFileWithValidations(validation, file, resolved);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS10eXBlLnZhbGlkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS10eXBlL2ZpbGUtdHlwZS52YWxpZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxSCx1RUFBdUU7QUFDdkUsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFdBQThCO0lBQ25FLE1BQU0sS0FBSyxHQUEyQixFQUFFLENBQUM7SUFFekMsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFJLEVBQUUsY0FBYztZQUNwQixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFNBQVMsRUFBRTtTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFJLEVBQUUsYUFBYTtZQUNuQixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFJLEVBQUUsYUFBYTtZQUNuQixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzlCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxVQUErQixFQUMvQixJQUFVLEVBQ1YsV0FBOEI7SUFFOUIsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsTUFBTSxNQUFNLEdBQTZCLEVBQUUsQ0FBQztJQUU1QyxLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksT0FBTyxFQUFFLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELDRGQUE0RjtBQUM1RixNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QixDQUMzQyxVQUErQixFQUMvQixJQUFVLEVBQ1YsSUFBZ0IsRUFDaEIsU0FBK0I7SUFFL0IsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLElBQUkscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXhFLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BELE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLE1BQU0sRUFBRSxLQUFLO2dCQUNiLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsc0NBQXNDO2dCQUM3RixLQUFLLEVBQUUsR0FBRzthQUNYO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNoRSxPQUFPLDJCQUEyQixDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVmFsaWRhdGlvblNlcnZpY2UsIHR5cGUgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcbmltcG9ydCB0eXBlIHtcbiAgQVhGaWxlVHlwZSxcbiAgQVhGaWxlVHlwZUV4dGVuc2lvbixcbiAgQVhGaWxlVmFsaWRhdGlvblJ1bGUsXG4gIEFYRmlsZVZhbGlkYXRpb25zLFxufSBmcm9tICcuL2ZpbGUtdHlwZS5tb2RlbHMnO1xuaW1wb3J0IHsgZmluZEZpbGVUeXBlRXh0ZW5zaW9uLCBnZXRGaWxlRXh0ZW5zaW9uLCBpc0V4dGVuc2lvbnNPbmx5VHlwZSwgcmVzb2x2ZUZpbGVWYWxpZGF0aW9ucyB9IGZyb20gJy4vZmlsZS10eXBlLm1lcmdlJztcblxuLyoqIE1hcHMge0BsaW5rIEFYRmlsZVZhbGlkYXRpb25zfSB0byBleGVjdXRhYmxlIHZhbGlkYXRpb24gZW50cmllcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWxlVmFsaWRhdGlvbnNUb1J1bGVzKHZhbGlkYXRpb25zOiBBWEZpbGVWYWxpZGF0aW9ucyk6IEFYRmlsZVZhbGlkYXRpb25SdWxlW10ge1xuICBjb25zdCBydWxlczogQVhGaWxlVmFsaWRhdGlvblJ1bGVbXSA9IFtdO1xuXG4gIGlmICh2YWxpZGF0aW9ucy5taW1lVHlwZXM/Lmxlbmd0aCkge1xuICAgIHJ1bGVzLnB1c2goe1xuICAgICAgcnVsZTogJ2ZpbGVNaW1lVHlwZScsXG4gICAgICBvcHRpb25zOiB7IGFsbG93ZWQ6IHZhbGlkYXRpb25zLm1pbWVUeXBlcyB9LFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHZhbGlkYXRpb25zLm1pblNpemUgIT0gbnVsbCkge1xuICAgIHJ1bGVzLnB1c2goe1xuICAgICAgcnVsZTogJ2ZpbGVNaW5TaXplJyxcbiAgICAgIG9wdGlvbnM6IHsgbWluU2l6ZTogdmFsaWRhdGlvbnMubWluU2l6ZSB9LFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHZhbGlkYXRpb25zLm1heFNpemUgIT0gbnVsbCkge1xuICAgIHJ1bGVzLnB1c2goe1xuICAgICAgcnVsZTogJ2ZpbGVNYXhTaXplJyxcbiAgICAgIG9wdGlvbnM6IHsgbWF4U2l6ZTogdmFsaWRhdGlvbnMubWF4U2l6ZSB9LFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHZhbGlkYXRpb25zLnJ1bGVzPy5sZW5ndGgpIHtcbiAgICBydWxlcy5wdXNoKC4uLnZhbGlkYXRpb25zLnJ1bGVzKTtcbiAgfVxuXG4gIHJldHVybiBydWxlcztcbn1cblxuLyoqIEZhaWxlZCB2YWxpZGF0aW9uIHJlc3VsdHM7IGVtcHR5IGFycmF5IG1lYW5zIHRoZSBmaWxlIGlzIHZhbGlkLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlRmlsZVdpdGhWYWxpZGF0aW9ucyhcbiAgdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uU2VydmljZSxcbiAgZmlsZTogRmlsZSxcbiAgdmFsaWRhdGlvbnM6IEFYRmlsZVZhbGlkYXRpb25zLFxuKTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0W10+IHtcbiAgY29uc3QgZW50cmllcyA9IGZpbGVWYWxpZGF0aW9uc1RvUnVsZXModmFsaWRhdGlvbnMpO1xuICBjb25zdCBlcnJvcnM6IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHRbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgeyBydWxlLCBvcHRpb25zIH0gb2YgZW50cmllcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRpb24udmFsaWRhdGUocnVsZSwgZmlsZSwgb3B0aW9ucyk7XG4gICAgaWYgKCFyZXN1bHQucmVzdWx0KSB7XG4gICAgICBlcnJvcnMucHVzaChyZXN1bHQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbi8qKiBWYWxpZGF0ZXMgYSBmaWxlIGFnYWluc3QgYSB0eXBlOyBleHRlbnNpb24gcnVsZXMgb3ZlcnJpZGUgd2hlbiB0aGUgZmlsZSBuYW1lIG1hdGNoZXMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVGaWxlQWdhaW5zdFR5cGUoXG4gIHZhbGlkYXRpb246IEFYVmFsaWRhdGlvblNlcnZpY2UsXG4gIGZpbGU6IEZpbGUsXG4gIHR5cGU6IEFYRmlsZVR5cGUsXG4gIGV4dGVuc2lvbj86IEFYRmlsZVR5cGVFeHRlbnNpb24sXG4pOiBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHRbXT4ge1xuICBjb25zdCBtYXRjaGVkRXh0ZW5zaW9uID0gZXh0ZW5zaW9uID8/IGZpbmRGaWxlVHlwZUV4dGVuc2lvbihmaWxlLCB0eXBlKTtcblxuICBpZiAoaXNFeHRlbnNpb25zT25seVR5cGUodHlwZSkgJiYgIW1hdGNoZWRFeHRlbnNpb24pIHtcbiAgICBjb25zdCBleHQgPSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGUubmFtZSk7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgcnVsZTogJ2ZpbGVFeHRlbnNpb24nLFxuICAgICAgICByZXN1bHQ6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiBleHQgPyBgRXh0ZW5zaW9uIFwiLiR7ZXh0fVwiIGlzIG5vdCBhbGxvd2VkLmAgOiAnRmlsZSBtdXN0IGhhdmUgYW4gYWxsb3dlZCBleHRlbnNpb24uJyxcbiAgICAgICAgdmFsdWU6IGV4dCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZUZpbGVWYWxpZGF0aW9ucyh0eXBlLCBtYXRjaGVkRXh0ZW5zaW9uKTtcbiAgcmV0dXJuIHZhbGlkYXRlRmlsZVdpdGhWYWxpZGF0aW9ucyh2YWxpZGF0aW9uLCBmaWxlLCByZXNvbHZlZCk7XG59XG4iXX0=","import { AXValidationService } from '@acorex/core/validation';\nimport { Injectable, inject } from '@angular/core';\nimport { AX_FILE_TYPE_INFO_PROVIDER } from './file-type-info-provider';\nimport { findFileTypeExtension } from './file-type.merge';\nimport { validateFileAgainstType } from './file-type.validate';\nimport * as i0 from \"@angular/core\";\nexport class AXFileTypeRegistryService {\n constructor() {\n this.validation = inject(AXValidationService);\n this.providers = inject(AX_FILE_TYPE_INFO_PROVIDER, { optional: true }) ?? [];\n this.registeredTypes = [];\n this.cache = null;\n }\n /** Registers or replaces catalog entries (e.g. from feature bootstrap). */\n registerTypes(types) {\n for (const type of types) {\n const index = this.registeredTypes.findIndex((t) => t.name === type.name);\n if (index >= 0) {\n this.registeredTypes[index] = type;\n }\n else {\n this.registeredTypes.push(type);\n }\n }\n this.invalidateCache();\n }\n invalidateCache() {\n this.cache = null;\n }\n async resolveTypes() {\n if (this.cache) {\n return this.cache;\n }\n const byName = new Map();\n if (this.providers.length) {\n const batches = await Promise.all(this.providers.map((p) => p.items()));\n for (const batch of batches) {\n for (const type of batch) {\n if (!byName.has(type.name)) {\n byName.set(type.name, type);\n }\n }\n }\n }\n for (const type of this.registeredTypes) {\n byName.set(type.name, type);\n }\n this.cache = [...byName.values()];\n return this.cache;\n }\n async getTypes() {\n return this.resolveTypes();\n }\n async get(name) {\n const types = await this.resolveTypes();\n return types.find((t) => t.name === name);\n }\n async accept(typeNames) {\n const names = typeNames ? (Array.isArray(typeNames) ? typeNames : [typeNames]) : undefined;\n const types = await this.resolveTypes();\n const selected = names?.length ? types.filter((t) => names.includes(t.name)) : types;\n if (names?.length && selected.length === 0) {\n return '';\n }\n const parts = new Set();\n for (const type of selected) {\n type.validations?.mimeTypes?.forEach((m) => parts.add(m));\n type.extensions?.forEach((ext) => {\n ext.validations?.mimeTypes?.forEach((m) => parts.add(m));\n parts.add(`.${ext.name.replace(/^\\./, '')}`);\n });\n }\n return [...parts].join(',');\n }\n async matchType(file) {\n const types = await this.resolveTypes();\n const mime = file.type.trim().toLowerCase();\n return types.find((type) => {\n const patterns = [\n ...(type.validations?.mimeTypes ?? []),\n ...(type.extensions?.flatMap((e) => e.validations?.mimeTypes ?? []) ?? []),\n ];\n if (!patterns.length) {\n return false;\n }\n return patterns.some((pattern) => this.matchesMime(mime, pattern.trim().toLowerCase()));\n });\n }\n async validate(file, typeName) {\n const type = await this.get(typeName);\n if (!type) {\n return [\n {\n rule: 'fileType',\n result: false,\n message: `Unknown file type: ${typeName}`,\n value: typeName,\n },\n ];\n }\n const extension = findFileTypeExtension(file, type);\n return validateFileAgainstType(this.validation, file, type, extension);\n }\n async validateAgainstTypes(file, typeNames) {\n const names = Array.isArray(typeNames) ? typeNames : [typeNames];\n let lastErrors = [];\n for (const name of names) {\n const errors = await this.validate(file, name);\n if (errors.length === 0) {\n return [];\n }\n lastErrors = errors;\n }\n return lastErrors;\n }\n async validateMany(files, typeNames) {\n const accepted = [];\n const rejected = [];\n for (const file of files) {\n const errors = await this.validateAgainstTypes(file, typeNames);\n if (errors.length === 0) {\n accepted.push(file);\n }\n else {\n rejected.push({ file, errors });\n }\n }\n return { accepted, rejected };\n }\n matchesMime(mime, pattern) {\n if (!pattern || pattern === '*/*' || pattern === '*') {\n return true;\n }\n if (pattern.endsWith('/*')) {\n const category = pattern.slice(0, -2);\n return mime.startsWith(`${category}/`) || (mime === '' && category === 'application');\n }\n return mime === pattern;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileTypeRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileTypeRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileTypeRegistryService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS10eXBlLXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2ZpbGUvc3JjL2xpYi9maWxlLXR5cGUvZmlsZS10eXBlLXJlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBTS9ELE1BQU0sT0FBTyx5QkFBeUI7SUFGdEM7UUFJbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRXpDLGNBQVMsR0FBRyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFekUsb0JBQWUsR0FBaUIsRUFBRSxDQUFDO1FBRTVDLFVBQUssR0FBd0IsSUFBSSxDQUFDO0tBd1QzQztJQXBUQywyRUFBMkU7SUFFM0UsYUFBYSxDQUFDLEtBQW1CO1FBRS9CLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFFekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTFFLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUVmLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBRXJDLENBQUM7aUJBQU0sQ0FBQztnQkFFTixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsQyxDQUFDO1FBRUgsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUV6QixDQUFDO0lBSUQsZUFBZTtRQUViLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBRXBCLENBQUM7SUFJTyxLQUFLLENBQUMsWUFBWTtRQUV4QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVmLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUVwQixDQUFDO1FBSUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7UUFJN0MsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUV4RSxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUU1QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUV6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFFM0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUU5QixDQUFDO2dCQUVILENBQUM7WUFFSCxDQUFDO1FBRUgsQ0FBQztRQUlELEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXhDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU5QixDQUFDO1FBSUQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBRXBCLENBQUM7SUFJRCxLQUFLLENBQUMsUUFBUTtRQUVaLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTdCLENBQUM7SUFJRCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQVk7UUFFcEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBRTVDLENBQUM7SUFJRCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQTZCO1FBRXhDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRTNGLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXhDLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUlyRixJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUUzQyxPQUFPLEVBQUUsQ0FBQztRQUVaLENBQUM7UUFJRCxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBSWhDLEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7WUFFNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFMUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFFL0IsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXpELEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRS9DLENBQUMsQ0FBQyxDQUFDO1FBRUwsQ0FBQztRQUlELE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU5QixDQUFDO0lBSUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFVO1FBRXhCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXhDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFJNUMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFFekIsTUFBTSxRQUFRLEdBQUc7Z0JBRWYsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztnQkFFdEMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7YUFFM0UsQ0FBQztZQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBRXJCLE9BQU8sS0FBSyxDQUFDO1lBRWYsQ0FBQztZQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxRixDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFJRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQVUsRUFBRSxRQUFnQjtRQUV6QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRVYsT0FBTztnQkFFTDtvQkFFRSxJQUFJLEVBQUUsVUFBVTtvQkFFaEIsTUFBTSxFQUFFLEtBQUs7b0JBRWIsT0FBTyxFQUFFLHNCQUFzQixRQUFRLEVBQUU7b0JBRXpDLEtBQUssRUFBRSxRQUFRO2lCQUVoQjthQUVGLENBQUM7UUFFSixDQUFDO1FBSUQsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBELE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXpFLENBQUM7SUFJRCxLQUFLLENBQUMsb0JBQW9CLENBRXhCLElBQVUsRUFFVixTQUE0QjtRQUk1QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFakUsSUFBSSxVQUFVLEdBQTZCLEVBQUUsQ0FBQztRQUk5QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBRXpCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFL0MsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUV4QixPQUFPLEVBQUUsQ0FBQztZQUVaLENBQUM7WUFFRCxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBRXRCLENBQUM7UUFJRCxPQUFPLFVBQVUsQ0FBQztJQUVwQixDQUFDO0lBSUQsS0FBSyxDQUFDLFlBQVksQ0FFaEIsS0FBYSxFQUViLFNBQTRCO1FBSTVCLE1BQU0sUUFBUSxHQUFXLEVBQUUsQ0FBQztRQUU1QixNQUFNLFFBQVEsR0FBdUQsRUFBRSxDQUFDO1FBSXhFLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFFekIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRWhFLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFFeEIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV0QixDQUFDO2lCQUFNLENBQUM7Z0JBRU4sUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBRWxDLENBQUM7UUFFSCxDQUFDO1FBSUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUVoQyxDQUFDO0lBSU8sV0FBVyxDQUFDLElBQVksRUFBRSxPQUFlO1FBRS9DLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxLQUFLLEtBQUssSUFBSSxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7WUFFckQsT0FBTyxJQUFJLENBQUM7UUFFZCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFFM0IsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV0QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsSUFBSSxRQUFRLEtBQUssYUFBYSxDQUFDLENBQUM7UUFFeEYsQ0FBQztRQUVELE9BQU8sSUFBSSxLQUFLLE9BQU8sQ0FBQztJQUUxQixDQUFDOzhHQTlUVSx5QkFBeUI7a0hBQXpCLHlCQUF5QixjQUZaLE1BQU07OzJGQUVuQix5QkFBeUI7a0JBRnJDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhfRklMRV9UWVBFX0lORk9fUFJPVklERVIgfSBmcm9tICcuL2ZpbGUtdHlwZS1pbmZvLXByb3ZpZGVyJztcblxuaW1wb3J0IHsgZmluZEZpbGVUeXBlRXh0ZW5zaW9uIH0gZnJvbSAnLi9maWxlLXR5cGUubWVyZ2UnO1xuXG5pbXBvcnQgdHlwZSB7IEFYRmlsZVR5cGUgfSBmcm9tICcuL2ZpbGUtdHlwZS5tb2RlbHMnO1xuXG5pbXBvcnQgeyB2YWxpZGF0ZUZpbGVBZ2FpbnN0VHlwZSB9IGZyb20gJy4vZmlsZS10eXBlLnZhbGlkYXRlJztcblxuXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5cbmV4cG9ydCBjbGFzcyBBWEZpbGVUeXBlUmVnaXN0cnlTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkYXRpb24gPSBpbmplY3QoQVhWYWxpZGF0aW9uU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlcnMgPSBpbmplY3QoQVhfRklMRV9UWVBFX0lORk9fUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RlcmVkVHlwZXM6IEFYRmlsZVR5cGVbXSA9IFtdO1xuXG4gIHByaXZhdGUgY2FjaGU6IEFYRmlsZVR5cGVbXSB8IG51bGwgPSBudWxsO1xuXG5cblxuICAvKiogUmVnaXN0ZXJzIG9yIHJlcGxhY2VzIGNhdGFsb2cgZW50cmllcyAoZS5nLiBmcm9tIGZlYXR1cmUgYm9vdHN0cmFwKS4gKi9cblxuICByZWdpc3RlclR5cGVzKHR5cGVzOiBBWEZpbGVUeXBlW10pOiB2b2lkIHtcblxuICAgIGZvciAoY29uc3QgdHlwZSBvZiB0eXBlcykge1xuXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMucmVnaXN0ZXJlZFR5cGVzLmZpbmRJbmRleCgodCkgPT4gdC5uYW1lID09PSB0eXBlLm5hbWUpO1xuXG4gICAgICBpZiAoaW5kZXggPj0gMCkge1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJlZFR5cGVzW2luZGV4XSA9IHR5cGU7XG5cbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkVHlwZXMucHVzaCh0eXBlKTtcblxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgdGhpcy5pbnZhbGlkYXRlQ2FjaGUoKTtcblxuICB9XG5cblxuXG4gIGludmFsaWRhdGVDYWNoZSgpOiB2b2lkIHtcblxuICAgIHRoaXMuY2FjaGUgPSBudWxsO1xuXG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBhc3luYyByZXNvbHZlVHlwZXMoKTogUHJvbWlzZTxBWEZpbGVUeXBlW10+IHtcblxuICAgIGlmICh0aGlzLmNhY2hlKSB7XG5cbiAgICAgIHJldHVybiB0aGlzLmNhY2hlO1xuXG4gICAgfVxuXG5cblxuICAgIGNvbnN0IGJ5TmFtZSA9IG5ldyBNYXA8c3RyaW5nLCBBWEZpbGVUeXBlPigpO1xuXG5cblxuICAgIGlmICh0aGlzLnByb3ZpZGVycy5sZW5ndGgpIHtcblxuICAgICAgY29uc3QgYmF0Y2hlcyA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMucHJvdmlkZXJzLm1hcCgocCkgPT4gcC5pdGVtcygpKSk7XG5cbiAgICAgIGZvciAoY29uc3QgYmF0Y2ggb2YgYmF0Y2hlcykge1xuXG4gICAgICAgIGZvciAoY29uc3QgdHlwZSBvZiBiYXRjaCkge1xuXG4gICAgICAgICAgaWYgKCFieU5hbWUuaGFzKHR5cGUubmFtZSkpIHtcblxuICAgICAgICAgICAgYnlOYW1lLnNldCh0eXBlLm5hbWUsIHR5cGUpO1xuXG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfVxuXG5cblxuICAgIGZvciAoY29uc3QgdHlwZSBvZiB0aGlzLnJlZ2lzdGVyZWRUeXBlcykge1xuXG4gICAgICBieU5hbWUuc2V0KHR5cGUubmFtZSwgdHlwZSk7XG5cbiAgICB9XG5cblxuXG4gICAgdGhpcy5jYWNoZSA9IFsuLi5ieU5hbWUudmFsdWVzKCldO1xuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGU7XG5cbiAgfVxuXG5cblxuICBhc3luYyBnZXRUeXBlcygpOiBQcm9taXNlPEFYRmlsZVR5cGVbXT4ge1xuXG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVR5cGVzKCk7XG5cbiAgfVxuXG5cblxuICBhc3luYyBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWEZpbGVUeXBlIHwgdW5kZWZpbmVkPiB7XG5cbiAgICBjb25zdCB0eXBlcyA9IGF3YWl0IHRoaXMucmVzb2x2ZVR5cGVzKCk7XG5cbiAgICByZXR1cm4gdHlwZXMuZmluZCgodCkgPT4gdC5uYW1lID09PSBuYW1lKTtcblxuICB9XG5cblxuXG4gIGFzeW5jIGFjY2VwdCh0eXBlTmFtZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nPiB7XG5cbiAgICBjb25zdCBuYW1lcyA9IHR5cGVOYW1lcyA/IChBcnJheS5pc0FycmF5KHR5cGVOYW1lcykgPyB0eXBlTmFtZXMgOiBbdHlwZU5hbWVzXSkgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB0eXBlcyA9IGF3YWl0IHRoaXMucmVzb2x2ZVR5cGVzKCk7XG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IG5hbWVzPy5sZW5ndGggPyB0eXBlcy5maWx0ZXIoKHQpID0+IG5hbWVzLmluY2x1ZGVzKHQubmFtZSkpIDogdHlwZXM7XG5cblxuXG4gICAgaWYgKG5hbWVzPy5sZW5ndGggJiYgc2VsZWN0ZWQubGVuZ3RoID09PSAwKSB7XG5cbiAgICAgIHJldHVybiAnJztcblxuICAgIH1cblxuXG5cbiAgICBjb25zdCBwYXJ0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG5cblxuICAgIGZvciAoY29uc3QgdHlwZSBvZiBzZWxlY3RlZCkge1xuXG4gICAgICB0eXBlLnZhbGlkYXRpb25zPy5taW1lVHlwZXM/LmZvckVhY2goKG0pID0+IHBhcnRzLmFkZChtKSk7XG5cbiAgICAgIHR5cGUuZXh0ZW5zaW9ucz8uZm9yRWFjaCgoZXh0KSA9PiB7XG5cbiAgICAgICAgZXh0LnZhbGlkYXRpb25zPy5taW1lVHlwZXM/LmZvckVhY2goKG0pID0+IHBhcnRzLmFkZChtKSk7XG5cbiAgICAgICAgcGFydHMuYWRkKGAuJHtleHQubmFtZS5yZXBsYWNlKC9eXFwuLywgJycpfWApO1xuXG4gICAgICB9KTtcblxuICAgIH1cblxuXG5cbiAgICByZXR1cm4gWy4uLnBhcnRzXS5qb2luKCcsJyk7XG5cbiAgfVxuXG5cblxuICBhc3luYyBtYXRjaFR5cGUoZmlsZTogRmlsZSk6IFByb21pc2U8QVhGaWxlVHlwZSB8IHVuZGVmaW5lZD4ge1xuXG4gICAgY29uc3QgdHlwZXMgPSBhd2FpdCB0aGlzLnJlc29sdmVUeXBlcygpO1xuXG4gICAgY29uc3QgbWltZSA9IGZpbGUudHlwZS50cmltKCkudG9Mb3dlckNhc2UoKTtcblxuXG5cbiAgICByZXR1cm4gdHlwZXMuZmluZCgodHlwZSkgPT4ge1xuXG4gICAgICBjb25zdCBwYXR0ZXJucyA9IFtcblxuICAgICAgICAuLi4odHlwZS52YWxpZGF0aW9ucz8ubWltZVR5cGVzID8/IFtdKSxcblxuICAgICAgICAuLi4odHlwZS5leHRlbnNpb25zPy5mbGF0TWFwKChlKSA9PiBlLnZhbGlkYXRpb25zPy5taW1lVHlwZXMgPz8gW10pID8/IFtdKSxcblxuICAgICAgXTtcblxuICAgICAgaWYgKCFwYXR0ZXJucy5sZW5ndGgpIHtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhdHRlcm5zLnNvbWUoKHBhdHRlcm4pID0+IHRoaXMubWF0Y2hlc01pbWUobWltZSwgcGF0dGVybi50cmltKCkudG9Mb3dlckNhc2UoKSkpO1xuXG4gICAgfSk7XG5cbiAgfVxuXG5cblxuICBhc3luYyB2YWxpZGF0ZShmaWxlOiBGaWxlLCB0eXBlTmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0W10+IHtcblxuICAgIGNvbnN0IHR5cGUgPSBhd2FpdCB0aGlzLmdldCh0eXBlTmFtZSk7XG5cbiAgICBpZiAoIXR5cGUpIHtcblxuICAgICAgcmV0dXJuIFtcblxuICAgICAgICB7XG5cbiAgICAgICAgICBydWxlOiAnZmlsZVR5cGUnLFxuXG4gICAgICAgICAgcmVzdWx0OiBmYWxzZSxcblxuICAgICAgICAgIG1lc3NhZ2U6IGBVbmtub3duIGZpbGUgdHlwZTogJHt0eXBlTmFtZX1gLFxuXG4gICAgICAgICAgdmFsdWU6IHR5cGVOYW1lLFxuXG4gICAgICAgIH0sXG5cbiAgICAgIF07XG5cbiAgICB9XG5cblxuXG4gICAgY29uc3QgZXh0ZW5zaW9uID0gZmluZEZpbGVUeXBlRXh0ZW5zaW9uKGZpbGUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlRmlsZUFnYWluc3RUeXBlKHRoaXMudmFsaWRhdGlvbiwgZmlsZSwgdHlwZSwgZXh0ZW5zaW9uKTtcblxuICB9XG5cblxuXG4gIGFzeW5jIHZhbGlkYXRlQWdhaW5zdFR5cGVzKFxuXG4gICAgZmlsZTogRmlsZSxcblxuICAgIHR5cGVOYW1lczogc3RyaW5nIHwgc3RyaW5nW10sXG5cbiAgKTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0W10+IHtcblxuICAgIGNvbnN0IG5hbWVzID0gQXJyYXkuaXNBcnJheSh0eXBlTmFtZXMpID8gdHlwZU5hbWVzIDogW3R5cGVOYW1lc107XG5cbiAgICBsZXQgbGFzdEVycm9yczogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdFtdID0gW107XG5cblxuXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG5cbiAgICAgIGNvbnN0IGVycm9ycyA9IGF3YWl0IHRoaXMudmFsaWRhdGUoZmlsZSwgbmFtZSk7XG5cbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoID09PSAwKSB7XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuXG4gICAgICB9XG5cbiAgICAgIGxhc3RFcnJvcnMgPSBlcnJvcnM7XG5cbiAgICB9XG5cblxuXG4gICAgcmV0dXJuIGxhc3RFcnJvcnM7XG5cbiAgfVxuXG5cblxuICBhc3luYyB2YWxpZGF0ZU1hbnkoXG5cbiAgICBmaWxlczogRmlsZVtdLFxuXG4gICAgdHlwZU5hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSxcblxuICApOiBQcm9taXNlPHsgYWNjZXB0ZWQ6IEZpbGVbXTsgcmVqZWN0ZWQ6IHsgZmlsZTogRmlsZTsgZXJyb3JzOiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0W10gfVtdIH0+IHtcblxuICAgIGNvbnN0IGFjY2VwdGVkOiBGaWxlW10gPSBbXTtcblxuICAgIGNvbnN0IHJlamVjdGVkOiB7IGZpbGU6IEZpbGU7IGVycm9yczogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdFtdIH1bXSA9IFtdO1xuXG5cblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuXG4gICAgICBjb25zdCBlcnJvcnMgPSBhd2FpdCB0aGlzLnZhbGlkYXRlQWdhaW5zdFR5cGVzKGZpbGUsIHR5cGVOYW1lcyk7XG5cbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoID09PSAwKSB7XG5cbiAgICAgICAgYWNjZXB0ZWQucHVzaChmaWxlKTtcblxuICAgICAgfSBlbHNlIHtcblxuICAgICAgICByZWplY3RlZC5wdXNoKHsgZmlsZSwgZXJyb3JzIH0pO1xuXG4gICAgICB9XG5cbiAgICB9XG5cblxuXG4gICAgcmV0dXJuIHsgYWNjZXB0ZWQsIHJlamVjdGVkIH07XG5cbiAgfVxuXG5cblxuICBwcml2YXRlIG1hdGNoZXNNaW1lKG1pbWU6IHN0cmluZywgcGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoIXBhdHRlcm4gfHwgcGF0dGVybiA9PT0gJyovKicgfHwgcGF0dGVybiA9PT0gJyonKSB7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgfVxuXG4gICAgaWYgKHBhdHRlcm4uZW5kc1dpdGgoJy8qJykpIHtcblxuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBwYXR0ZXJuLnNsaWNlKDAsIC0yKTtcblxuICAgICAgcmV0dXJuIG1pbWUuc3RhcnRzV2l0aChgJHtjYXRlZ29yeX0vYCkgfHwgKG1pbWUgPT09ICcnICYmIGNhdGVnb3J5ID09PSAnYXBwbGljYXRpb24nKTtcblxuICAgIH1cblxuICAgIHJldHVybiBtaW1lID09PSBwYXR0ZXJuO1xuXG4gIH1cblxufVxuXG5cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { AXFileTypeInfoProvider } from '../file-type-info-provider';\nimport * as i0 from \"@angular/core\";\nconst MB = 1024 * 1024;\nexport const AX_AUDIO_FILE_TYPE = {\n name: 'audio',\n title: 'Audio',\n icon: 'fa-light fa-music ax-text-amber-500',\n validations: {\n mimeTypes: ['audio/*'],\n minSize: 1,\n maxSize: 50 * MB,\n },\n extensions: [\n { name: 'mp3', title: 'MP3' },\n { name: 'wav', title: 'WAV', validations: { maxSize: 30 * MB } },\n { name: 'ogg', title: 'OGG' },\n { name: 'm4a', title: 'M4A' },\n ],\n};\nexport class AXAudioFileTypeProvider extends AXFileTypeInfoProvider {\n items() {\n return Promise.resolve([AX_AUDIO_FILE_TYPE]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXAudioFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXAudioFileTypeProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXAudioFileTypeProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8tZmlsZS10eXBlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS10eXBlL3R5cGVzLnByb3ZpZGVycy9hdWRpby1maWxlLXR5cGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHcEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZTtJQUM1QyxJQUFJLEVBQUUsT0FBTztJQUNiLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLHFDQUFxQztJQUMzQyxXQUFXLEVBQUU7UUFDWCxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUU7S0FDakI7SUFDRCxVQUFVLEVBQUU7UUFDVixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtRQUM3QixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO1FBQ2hFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0tBQzlCO0NBQ0YsQ0FBQztBQUdGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxzQkFBc0I7SUFDakUsS0FBSztRQUNILE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDOzhHQUhVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhGaWxlVHlwZUluZm9Qcm92aWRlciB9IGZyb20gJy4uL2ZpbGUtdHlwZS1pbmZvLXByb3ZpZGVyJztcbmltcG9ydCB0eXBlIHsgQVhGaWxlVHlwZSB9IGZyb20gJy4uL2ZpbGUtdHlwZS5tb2RlbHMnO1xuXG5jb25zdCBNQiA9IDEwMjQgKiAxMDI0O1xuXG5leHBvcnQgY29uc3QgQVhfQVVESU9fRklMRV9UWVBFOiBBWEZpbGVUeXBlID0ge1xuICBuYW1lOiAnYXVkaW8nLFxuICB0aXRsZTogJ0F1ZGlvJyxcbiAgaWNvbjogJ2ZhLWxpZ2h0IGZhLW11c2ljIGF4LXRleHQtYW1iZXItNTAwJyxcbiAgdmFsaWRhdGlvbnM6IHtcbiAgICBtaW1lVHlwZXM6IFsnYXVkaW8vKiddLFxuICAgIG1pblNpemU6IDEsXG4gICAgbWF4U2l6ZTogNTAgKiBNQixcbiAgfSxcbiAgZXh0ZW5zaW9uczogW1xuICAgIHsgbmFtZTogJ21wMycsIHRpdGxlOiAnTVAzJyB9LFxuICAgIHsgbmFtZTogJ3dhdicsIHRpdGxlOiAnV0FWJywgdmFsaWRhdGlvbnM6IHsgbWF4U2l6ZTogMzAgKiBNQiB9IH0sXG4gICAgeyBuYW1lOiAnb2dnJywgdGl0bGU6ICdPR0cnIH0sXG4gICAgeyBuYW1lOiAnbTRhJywgdGl0bGU6ICdNNEEnIH0sXG4gIF0sXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhBdWRpb0ZpbGVUeXBlUHJvdmlkZXIgZXh0ZW5kcyBBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyIHtcbiAgaXRlbXMoKTogUHJvbWlzZTxBWEZpbGVUeXBlW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtBWF9BVURJT19GSUxFX1RZUEVdKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { AXFileTypeInfoProvider } from '../file-type-info-provider';\nimport * as i0 from \"@angular/core\";\nconst MB = 1024 * 1024;\n/** Extension-only: no type `validations` — only listed extensions are allowed. */\nexport const AX_DOCUMENT_FILE_TYPE = {\n name: 'document',\n title: 'Document',\n icon: 'fa-light fa-file-lines ax-text-red-500',\n extensions: [{ name: 'pdf', title: 'PDF', validations: { mimeTypes: ['application/pdf'], maxSize: 5 * MB } }],\n};\nexport class AXDocumentFileTypeProvider extends AXFileTypeInfoProvider {\n items() {\n return Promise.resolve([AX_DOCUMENT_FILE_TYPE]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDocumentFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDocumentFileTypeProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDocumentFileTypeProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZmlsZS10eXBlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS10eXBlL3R5cGVzLnByb3ZpZGVycy9kb2N1bWVudC1maWxlLXR5cGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHcEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUV2QixrRkFBa0Y7QUFDbEYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQWU7SUFDL0MsSUFBSSxFQUFFLFVBQVU7SUFDaEIsS0FBSyxFQUFFLFVBQVU7SUFDakIsSUFBSSxFQUFFLHdDQUF3QztJQUM5QyxVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztDQUM5RyxDQUFDO0FBR0YsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUFzQjtJQUNwRSxLQUFLO1FBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBSFUsMEJBQTBCO2tIQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyIH0gZnJvbSAnLi4vZmlsZS10eXBlLWluZm8tcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBBWEZpbGVUeXBlIH0gZnJvbSAnLi4vZmlsZS10eXBlLm1vZGVscyc7XG5cbmNvbnN0IE1CID0gMTAyNCAqIDEwMjQ7XG5cbi8qKiBFeHRlbnNpb24tb25seTogbm8gdHlwZSBgdmFsaWRhdGlvbnNgIOKAlCBvbmx5IGxpc3RlZCBleHRlbnNpb25zIGFyZSBhbGxvd2VkLiAqL1xuZXhwb3J0IGNvbnN0IEFYX0RPQ1VNRU5UX0ZJTEVfVFlQRTogQVhGaWxlVHlwZSA9IHtcbiAgbmFtZTogJ2RvY3VtZW50JyxcbiAgdGl0bGU6ICdEb2N1bWVudCcsXG4gIGljb246ICdmYS1saWdodCBmYS1maWxlLWxpbmVzIGF4LXRleHQtcmVkLTUwMCcsXG4gIGV4dGVuc2lvbnM6IFt7IG5hbWU6ICdwZGYnLCB0aXRsZTogJ1BERicsIHZhbGlkYXRpb25zOiB7IG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9wZGYnXSwgbWF4U2l6ZTogNSAqIE1CIH0gfV0sXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhEb2N1bWVudEZpbGVUeXBlUHJvdmlkZXIgZXh0ZW5kcyBBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyIHtcbiAgaXRlbXMoKTogUHJvbWlzZTxBWEZpbGVUeXBlW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtBWF9ET0NVTUVOVF9GSUxFX1RZUEVdKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { AXFileTypeInfoProvider } from '../file-type-info-provider';\nimport * as i0 from \"@angular/core\";\nconst MB = 1024 * 1024;\nexport const AX_FILE_FILE_TYPE = {\n name: 'file',\n title: 'File',\n icon: 'fa-light fa-file ax-text-neutral-500',\n validations: {\n mimeTypes: ['application/*', 'text/*'],\n minSize: 1,\n maxSize: 100 * MB,\n },\n extensions: [\n { name: 'pdf', title: 'PDF', validations: { mimeTypes: ['application/pdf'], maxSize: 25 * MB } },\n { name: 'doc', title: 'Word' },\n { name: 'docx', title: 'Word' },\n { name: 'txt', title: 'Text', validations: { mimeTypes: ['text/plain'], maxSize: 5 * MB } },\n { name: 'zip', title: 'ZIP', validations: { maxSize: 50 * MB } },\n ],\n};\nexport class AXFileFileTypeProvider extends AXFileTypeInfoProvider {\n items() {\n return Promise.resolve([AX_FILE_FILE_TYPE]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileFileTypeProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileFileTypeProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1maWxlLXR5cGUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2ZpbGUvc3JjL2xpYi9maWxlLXR5cGUvdHlwZXMucHJvdmlkZXJzL2ZpbGUtZmlsZS10eXBlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR3BFLE1BQU0sRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFFdkIsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWU7SUFDM0MsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsTUFBTTtJQUNiLElBQUksRUFBRSxzQ0FBc0M7SUFDNUMsV0FBVyxFQUFFO1FBQ1gsU0FBUyxFQUFFLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQztRQUN0QyxPQUFPLEVBQUUsQ0FBQztRQUNWLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRTtLQUNsQjtJQUNELFVBQVUsRUFBRTtRQUNWLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUNoRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM5QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUMvQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFO1FBQzNGLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7S0FDakU7Q0FDRixDQUFDO0FBR0YsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHNCQUFzQjtJQUNoRSxLQUFLO1FBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7OEdBSFUsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyIH0gZnJvbSAnLi4vZmlsZS10eXBlLWluZm8tcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBBWEZpbGVUeXBlIH0gZnJvbSAnLi4vZmlsZS10eXBlLm1vZGVscyc7XG5cbmNvbnN0IE1CID0gMTAyNCAqIDEwMjQ7XG5cbmV4cG9ydCBjb25zdCBBWF9GSUxFX0ZJTEVfVFlQRTogQVhGaWxlVHlwZSA9IHtcbiAgbmFtZTogJ2ZpbGUnLFxuICB0aXRsZTogJ0ZpbGUnLFxuICBpY29uOiAnZmEtbGlnaHQgZmEtZmlsZSBheC10ZXh0LW5ldXRyYWwtNTAwJyxcbiAgdmFsaWRhdGlvbnM6IHtcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vKicsICd0ZXh0LyonXSxcbiAgICBtaW5TaXplOiAxLFxuICAgIG1heFNpemU6IDEwMCAqIE1CLFxuICB9LFxuICBleHRlbnNpb25zOiBbXG4gICAgeyBuYW1lOiAncGRmJywgdGl0bGU6ICdQREYnLCB2YWxpZGF0aW9uczogeyBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vcGRmJ10sIG1heFNpemU6IDI1ICogTUIgfSB9LFxuICAgIHsgbmFtZTogJ2RvYycsIHRpdGxlOiAnV29yZCcgfSxcbiAgICB7IG5hbWU6ICdkb2N4JywgdGl0bGU6ICdXb3JkJyB9LFxuICAgIHsgbmFtZTogJ3R4dCcsIHRpdGxlOiAnVGV4dCcsIHZhbGlkYXRpb25zOiB7IG1pbWVUeXBlczogWyd0ZXh0L3BsYWluJ10sIG1heFNpemU6IDUgKiBNQiB9IH0sXG4gICAgeyBuYW1lOiAnemlwJywgdGl0bGU6ICdaSVAnLCB2YWxpZGF0aW9uczogeyBtYXhTaXplOiA1MCAqIE1CIH0gfSxcbiAgXSxcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWEZpbGVGaWxlVHlwZVByb3ZpZGVyIGV4dGVuZHMgQVhGaWxlVHlwZUluZm9Qcm92aWRlciB7XG4gIGl0ZW1zKCk6IFByb21pc2U8QVhGaWxlVHlwZVtdPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbQVhfRklMRV9GSUxFX1RZUEVdKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { AXFileTypeInfoProvider } from '../file-type-info-provider';\nimport * as i0 from \"@angular/core\";\nconst MB = 1024 * 1024;\nexport const AX_IMAGE_FILE_TYPE = {\n name: 'image',\n title: 'Image',\n icon: 'fa-light fa-image ax-text-purple-500',\n validations: {\n mimeTypes: ['image/*'],\n minSize: 1,\n maxSize: 100 * MB,\n },\n extensions: [\n { name: 'jpg', title: 'JPEG' },\n { name: 'jpeg', title: 'JPEG', validations: { maxSize: 5 * MB } },\n { name: 'png', title: 'PNG' },\n { name: 'gif', title: 'GIF' },\n { name: 'webp', title: 'WebP' },\n { name: 'svg', title: 'SVG', validations: { maxSize: 2 * MB } },\n ],\n};\nexport class AXImageFileTypeProvider extends AXFileTypeInfoProvider {\n items() {\n return Promise.resolve([AX_IMAGE_FILE_TYPE]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageFileTypeProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageFileTypeProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmlsZS10eXBlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS10eXBlL3R5cGVzLnByb3ZpZGVycy9pbWFnZS1maWxlLXR5cGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHcEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZTtJQUM1QyxJQUFJLEVBQUUsT0FBTztJQUNiLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLHNDQUFzQztJQUM1QyxXQUFXLEVBQUU7UUFDWCxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUU7S0FDbEI7SUFDRCxVQUFVLEVBQUU7UUFDVixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM5QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFO1FBQ2pFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQy9CLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUU7S0FDaEU7Q0FDRixDQUFDO0FBR0YsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHNCQUFzQjtJQUNqRSxLQUFLO1FBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBSFUsdUJBQXVCO2tIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyIH0gZnJvbSAnLi4vZmlsZS10eXBlLWluZm8tcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBBWEZpbGVUeXBlIH0gZnJvbSAnLi4vZmlsZS10eXBlLm1vZGVscyc7XG5cbmNvbnN0IE1CID0gMTAyNCAqIDEwMjQ7XG5cbmV4cG9ydCBjb25zdCBBWF9JTUFHRV9GSUxFX1RZUEU6IEFYRmlsZVR5cGUgPSB7XG4gIG5hbWU6ICdpbWFnZScsXG4gIHRpdGxlOiAnSW1hZ2UnLFxuICBpY29uOiAnZmEtbGlnaHQgZmEtaW1hZ2UgYXgtdGV4dC1wdXJwbGUtNTAwJyxcbiAgdmFsaWRhdGlvbnM6IHtcbiAgICBtaW1lVHlwZXM6IFsnaW1hZ2UvKiddLFxuICAgIG1pblNpemU6IDEsXG4gICAgbWF4U2l6ZTogMTAwICogTUIsXG4gIH0sXG4gIGV4dGVuc2lvbnM6IFtcbiAgICB7IG5hbWU6ICdqcGcnLCB0aXRsZTogJ0pQRUcnIH0sXG4gICAgeyBuYW1lOiAnanBlZycsIHRpdGxlOiAnSlBFRycsIHZhbGlkYXRpb25zOiB7IG1heFNpemU6IDUgKiBNQiB9IH0sXG4gICAgeyBuYW1lOiAncG5nJywgdGl0bGU6ICdQTkcnIH0sXG4gICAgeyBuYW1lOiAnZ2lmJywgdGl0bGU6ICdHSUYnIH0sXG4gICAgeyBuYW1lOiAnd2VicCcsIHRpdGxlOiAnV2ViUCcgfSxcbiAgICB7IG5hbWU6ICdzdmcnLCB0aXRsZTogJ1NWRycsIHZhbGlkYXRpb25zOiB7IG1heFNpemU6IDIgKiBNQiB9IH0sXG4gIF0sXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhJbWFnZUZpbGVUeXBlUHJvdmlkZXIgZXh0ZW5kcyBBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyIHtcbiAgaXRlbXMoKTogUHJvbWlzZTxBWEZpbGVUeXBlW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtBWF9JTUFHRV9GSUxFX1RZUEVdKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { AXFileTypeInfoProvider } from '../file-type-info-provider';\nimport * as i0 from \"@angular/core\";\nconst MB = 1024 * 1024;\nexport const AX_VIDEO_FILE_TYPE = {\n name: 'video',\n title: 'Video',\n icon: 'fa-light fa-video ax-text-blue-500',\n validations: {\n mimeTypes: ['video/*'],\n minSize: 1,\n maxSize: 500 * MB,\n },\n extensions: [\n { name: 'mp4', title: 'MP4' },\n { name: 'webm', title: 'WebM', validations: { maxSize: 200 * MB } },\n { name: 'ogg', title: 'OGG' },\n ],\n};\nexport class AXVideoFileTypeProvider extends AXFileTypeInfoProvider {\n items() {\n return Promise.resolve([AX_VIDEO_FILE_TYPE]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXVideoFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXVideoFileTypeProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXVideoFileTypeProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tZmlsZS10eXBlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS10eXBlL3R5cGVzLnByb3ZpZGVycy92aWRlby1maWxlLXR5cGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHcEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZTtJQUM1QyxJQUFJLEVBQUUsT0FBTztJQUNiLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLG9DQUFvQztJQUMxQyxXQUFXLEVBQUU7UUFDWCxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUU7S0FDbEI7SUFDRCxVQUFVLEVBQUU7UUFDVixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtRQUM3QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFO1FBQ25FLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0tBQzlCO0NBQ0YsQ0FBQztBQUdGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxzQkFBc0I7SUFDakUsS0FBSztRQUNILE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDOzhHQUhVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhGaWxlVHlwZUluZm9Qcm92aWRlciB9IGZyb20gJy4uL2ZpbGUtdHlwZS1pbmZvLXByb3ZpZGVyJztcbmltcG9ydCB0eXBlIHsgQVhGaWxlVHlwZSB9IGZyb20gJy4uL2ZpbGUtdHlwZS5tb2RlbHMnO1xuXG5jb25zdCBNQiA9IDEwMjQgKiAxMDI0O1xuXG5leHBvcnQgY29uc3QgQVhfVklERU9fRklMRV9UWVBFOiBBWEZpbGVUeXBlID0ge1xuICBuYW1lOiAndmlkZW8nLFxuICB0aXRsZTogJ1ZpZGVvJyxcbiAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXZpZGVvIGF4LXRleHQtYmx1ZS01MDAnLFxuICB2YWxpZGF0aW9uczoge1xuICAgIG1pbWVUeXBlczogWyd2aWRlby8qJ10sXG4gICAgbWluU2l6ZTogMSxcbiAgICBtYXhTaXplOiA1MDAgKiBNQixcbiAgfSxcbiAgZXh0ZW5zaW9uczogW1xuICAgIHsgbmFtZTogJ21wNCcsIHRpdGxlOiAnTVA0JyB9LFxuICAgIHsgbmFtZTogJ3dlYm0nLCB0aXRsZTogJ1dlYk0nLCB2YWxpZGF0aW9uczogeyBtYXhTaXplOiAyMDAgKiBNQiB9IH0sXG4gICAgeyBuYW1lOiAnb2dnJywgdGl0bGU6ICdPR0cnIH0sXG4gIF0sXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhWaWRlb0ZpbGVUeXBlUHJvdmlkZXIgZXh0ZW5kcyBBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyIHtcbiAgaXRlbXMoKTogUHJvbWlzZTxBWEZpbGVUeXBlW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtBWF9WSURFT19GSUxFX1RZUEVdKTtcbiAgfVxufVxuIl19","import { provideFileTypeInfoProvider } from '../file-type-info-provider';\nimport { AXAudioFileTypeProvider } from './audio-file-type.provider';\nimport { AXDocumentFileTypeProvider } from './document-file-type.provider';\nimport { AXFileFileTypeProvider } from './file-file-type.provider';\nimport { AXImageFileTypeProvider } from './image-file-type.provider';\nimport { AXVideoFileTypeProvider } from './video-file-type.provider';\nexport * from './image-file-type.provider';\nexport * from './video-file-type.provider';\nexport * from './audio-file-type.provider';\nexport * from './file-file-type.provider';\nexport * from './document-file-type.provider';\n/** Built-in file type provider classes (one logical type per provider). */\nexport const AX_BUILTIN_FILE_TYPE_PROVIDERS = [\n AXImageFileTypeProvider,\n AXVideoFileTypeProvider,\n AXAudioFileTypeProvider,\n AXFileFileTypeProvider,\n AXDocumentFileTypeProvider,\n];\n/** Registers all built-in file type providers (image, video, audio, file, document). */\nexport function provideBuiltinFileTypeProviders() {\n return AX_BUILTIN_FILE_TYPE_PROVIDERS.map((provider) => provideFileTypeInfoProvider(provider));\n}\n/** @deprecated Use {@link provideBuiltinFileTypeProviders}. */\nexport const provideDefaultFileTypeProviders = provideBuiltinFileTypeProviders;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2ZpbGUvc3JjL2xpYi9maWxlLXR5cGUvdHlwZXMucHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSwyQkFBMkIsRUFBMEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHO0lBQzVDLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtJQUN0QiwwQkFBMEI7Q0FDZ0MsQ0FBQztBQUU3RCx3RkFBd0Y7QUFDeEYsTUFBTSxVQUFVLCtCQUErQjtJQUM3QyxPQUFPLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNqRyxDQUFDO0FBRUQsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVGaWxlVHlwZUluZm9Qcm92aWRlciwgQVhGaWxlVHlwZUluZm9Qcm92aWRlciB9IGZyb20gJy4uL2ZpbGUtdHlwZS1pbmZvLXByb3ZpZGVyJztcbmltcG9ydCB7IEFYQXVkaW9GaWxlVHlwZVByb3ZpZGVyIH0gZnJvbSAnLi9hdWRpby1maWxlLXR5cGUucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhEb2N1bWVudEZpbGVUeXBlUHJvdmlkZXIgfSBmcm9tICcuL2RvY3VtZW50LWZpbGUtdHlwZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBWEZpbGVGaWxlVHlwZVByb3ZpZGVyIH0gZnJvbSAnLi9maWxlLWZpbGUtdHlwZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBWEltYWdlRmlsZVR5cGVQcm92aWRlciB9IGZyb20gJy4vaW1hZ2UtZmlsZS10eXBlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYVmlkZW9GaWxlVHlwZVByb3ZpZGVyIH0gZnJvbSAnLi92aWRlby1maWxlLXR5cGUucHJvdmlkZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLWZpbGUtdHlwZS5wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL3ZpZGVvLWZpbGUtdHlwZS5wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGlvLWZpbGUtdHlwZS5wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtZmlsZS10eXBlLnByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZG9jdW1lbnQtZmlsZS10eXBlLnByb3ZpZGVyJztcblxuLyoqIEJ1aWx0LWluIGZpbGUgdHlwZSBwcm92aWRlciBjbGFzc2VzIChvbmUgbG9naWNhbCB0eXBlIHBlciBwcm92aWRlcikuICovXG5leHBvcnQgY29uc3QgQVhfQlVJTFRJTl9GSUxFX1RZUEVfUFJPVklERVJTID0gW1xuICBBWEltYWdlRmlsZVR5cGVQcm92aWRlcixcbiAgQVhWaWRlb0ZpbGVUeXBlUHJvdmlkZXIsXG4gIEFYQXVkaW9GaWxlVHlwZVByb3ZpZGVyLFxuICBBWEZpbGVGaWxlVHlwZVByb3ZpZGVyLFxuICBBWERvY3VtZW50RmlsZVR5cGVQcm92aWRlcixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IFR5cGU8QVhGaWxlVHlwZUluZm9Qcm92aWRlcj5bXTtcblxuLyoqIFJlZ2lzdGVycyBhbGwgYnVpbHQtaW4gZmlsZSB0eXBlIHByb3ZpZGVycyAoaW1hZ2UsIHZpZGVvLCBhdWRpbywgZmlsZSwgZG9jdW1lbnQpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVCdWlsdGluRmlsZVR5cGVQcm92aWRlcnMoKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBBWF9CVUlMVElOX0ZJTEVfVFlQRV9QUk9WSURFUlMubWFwKChwcm92aWRlcikgPT4gcHJvdmlkZUZpbGVUeXBlSW5mb1Byb3ZpZGVyKHByb3ZpZGVyKSk7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIHByb3ZpZGVCdWlsdGluRmlsZVR5cGVQcm92aWRlcnN9LiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVEZWZhdWx0RmlsZVR5cGVQcm92aWRlcnMgPSBwcm92aWRlQnVpbHRpbkZpbGVUeXBlUHJvdmlkZXJzO1xuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXFileMimeTypeValidationRule {\n get name() {\n return 'fileMimeType';\n }\n async validate(value, options) {\n const mime = (value instanceof File || value instanceof Blob ? value.type : '').trim().toLowerCase();\n const allowed = options.allowed ?? [];\n const valid = allowed.length === 0 ||\n allowed.some((pattern) => this.matchesMime(mime, pattern.trim().toLowerCase()));\n return {\n rule: this.name,\n result: valid,\n message: valid ? '' : (options.message ?? 'File type is not allowed.'),\n value: mime,\n };\n }\n matchesMime(mime, pattern) {\n if (!pattern || pattern === '*/*' || pattern === '*') {\n return true;\n }\n if (pattern.endsWith('/*')) {\n const category = pattern.slice(0, -2);\n return mime.startsWith(`${category}/`) || (mime === '' && category === 'application');\n }\n return mime === pattern;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileMimeTypeValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileMimeTypeValidationRule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileMimeTypeValidationRule, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1taW1lLXR5cGUucnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZmlsZS9zcmMvbGliL2ZpbGUtdHlwZS9ydWxlcy9maWxlLW1pbWUtdHlwZS5ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBbUIzQyxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLElBQUksSUFBSTtRQUNOLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUNaLEtBQWtCLEVBQ2xCLE9BQTRDO1FBRTVDLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyRyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FDVCxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsRixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSwyQkFBMkIsQ0FBQztZQUN0RSxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQVksRUFBRSxPQUFlO1FBQy9DLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxLQUFLLEtBQUssSUFBSSxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsSUFBSSxRQUFRLEtBQUssYUFBYSxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUNELE9BQU8sSUFBSSxLQUFLLE9BQU8sQ0FBQztJQUMxQixDQUFDOzhHQWhDVSw0QkFBNEI7a0hBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYVmFsaWRhdGlvblJ1bGUsXG4gIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zLFxuICBBWFZhbGlkYXRpb25SdWxlUmVzdWx0LFxufSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhGaWxlTWltZVR5cGVWYWxpZGF0aW9uUnVsZU9wdGlvbnMgZXh0ZW5kcyBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucyB7XG4gIC8qKiBNSU1FIHBhdHRlcm5zLCBlLmcuIGBpbWFnZS8qYCwgYGltYWdlL3BuZ2AuICovXG4gIGFsbG93ZWQ6IHN0cmluZ1tdO1xufVxuXG5kZWNsYXJlIG1vZHVsZSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nIHtcbiAgaW50ZXJmYWNlIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zTWFwIHtcbiAgICBmaWxlTWltZVR5cGU6IEFYRmlsZU1pbWVUeXBlVmFsaWRhdGlvblJ1bGVPcHRpb25zO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWEZpbGVNaW1lVHlwZVZhbGlkYXRpb25SdWxlIGltcGxlbWVudHMgQVhWYWxpZGF0aW9uUnVsZSB7XG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdmaWxlTWltZVR5cGUnO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGUoXG4gICAgdmFsdWU6IEZpbGUgfCBCbG9iLFxuICAgIG9wdGlvbnM6IEFYRmlsZU1pbWVUeXBlVmFsaWRhdGlvblJ1bGVPcHRpb25zLFxuICApOiBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+IHtcbiAgICBjb25zdCBtaW1lID0gKHZhbHVlIGluc3RhbmNlb2YgRmlsZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIEJsb2IgPyB2YWx1ZS50eXBlIDogJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGFsbG93ZWQgPSBvcHRpb25zLmFsbG93ZWQgPz8gW107XG4gICAgY29uc3QgdmFsaWQgPVxuICAgICAgYWxsb3dlZC5sZW5ndGggPT09IDAgfHxcbiAgICAgIGFsbG93ZWQuc29tZSgocGF0dGVybikgPT4gdGhpcy5tYXRjaGVzTWltZShtaW1lLCBwYXR0ZXJuLnRyaW0oKS50b0xvd2VyQ2FzZSgpKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcnVsZTogdGhpcy5uYW1lLFxuICAgICAgcmVzdWx0OiB2YWxpZCxcbiAgICAgIG1lc3NhZ2U6IHZhbGlkID8gJycgOiAob3B0aW9ucy5tZXNzYWdlID8/ICdGaWxlIHR5cGUgaXMgbm90IGFsbG93ZWQuJyksXG4gICAgICB2YWx1ZTogbWltZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXRjaGVzTWltZShtaW1lOiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghcGF0dGVybiB8fCBwYXR0ZXJuID09PSAnKi8qJyB8fCBwYXR0ZXJuID09PSAnKicpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAocGF0dGVybi5lbmRzV2l0aCgnLyonKSkge1xuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBwYXR0ZXJuLnNsaWNlKDAsIC0yKTtcbiAgICAgIHJldHVybiBtaW1lLnN0YXJ0c1dpdGgoYCR7Y2F0ZWdvcnl9L2ApIHx8IChtaW1lID09PSAnJyAmJiBjYXRlZ29yeSA9PT0gJ2FwcGxpY2F0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiBtaW1lID09PSBwYXR0ZXJuO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { formatFileSizeBytes } from '../../format-file-size';\nimport * as i0 from \"@angular/core\";\nexport class AXFileMinSizeValidationRule {\n get name() {\n return 'fileMinSize';\n }\n async validate(value, options) {\n const size = value instanceof File || value instanceof Blob ? value.size : 0;\n const valid = size >= options.minSize;\n const limitLabel = formatFileSizeBytes(options.minSize);\n return {\n rule: this.name,\n result: valid,\n message: valid\n ? ''\n : (options.message ?? `File is too small. Minimum size is ${limitLabel}.`),\n value: size,\n minSize: options.minSize,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileMinSizeValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileMinSizeValidationRule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileMinSizeValidationRule, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1taW4tc2l6ZS5ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS10eXBlL3J1bGVzL2ZpbGUtbWluLXNpemUucnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWM3RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLElBQUksSUFBSTtRQUNOLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUNaLEtBQWtCLEVBQ2xCLE9BQTJDO1FBRTNDLE1BQU0sSUFBSSxHQUFHLEtBQUssWUFBWSxJQUFJLElBQUksS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsS0FBSztnQkFDWixDQUFDLENBQUMsRUFBRTtnQkFDSixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLHNDQUFzQyxVQUFVLEdBQUcsQ0FBQztZQUM1RSxLQUFLLEVBQUUsSUFBSTtZQUNYLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztTQUN6QixDQUFDO0lBQ0osQ0FBQzs4R0F0QlUsMkJBQTJCO2tIQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWFZhbGlkYXRpb25SdWxlLFxuICBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucyxcbiAgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCxcbn0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgZm9ybWF0RmlsZVNpemVCeXRlcyB9IGZyb20gJy4uLy4uL2Zvcm1hdC1maWxlLXNpemUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYRmlsZU1pblNpemVWYWxpZGF0aW9uUnVsZU9wdGlvbnMgZXh0ZW5kcyBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucyB7XG4gIC8qKiBNaW5pbXVtIHNpemUgaW4gYnl0ZXMuICovXG4gIG1pblNpemU6IG51bWJlcjtcbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJyB7XG4gIGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlT3B0aW9uc01hcCB7XG4gICAgZmlsZU1pblNpemU6IEFYRmlsZU1pblNpemVWYWxpZGF0aW9uUnVsZU9wdGlvbnM7XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYRmlsZU1pblNpemVWYWxpZGF0aW9uUnVsZSBpbXBsZW1lbnRzIEFYVmFsaWRhdGlvblJ1bGUge1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZmlsZU1pblNpemUnO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGUoXG4gICAgdmFsdWU6IEZpbGUgfCBCbG9iLFxuICAgIG9wdGlvbnM6IEFYRmlsZU1pblNpemVWYWxpZGF0aW9uUnVsZU9wdGlvbnMsXG4gICk6IFByb21pc2U8QVhWYWxpZGF0aW9uUnVsZVJlc3VsdD4ge1xuICAgIGNvbnN0IHNpemUgPSB2YWx1ZSBpbnN0YW5jZW9mIEZpbGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBCbG9iID8gdmFsdWUuc2l6ZSA6IDA7XG4gICAgY29uc3QgdmFsaWQgPSBzaXplID49IG9wdGlvbnMubWluU2l6ZTtcbiAgICBjb25zdCBsaW1pdExhYmVsID0gZm9ybWF0RmlsZVNpemVCeXRlcyhvcHRpb25zLm1pblNpemUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bGU6IHRoaXMubmFtZSxcbiAgICAgIHJlc3VsdDogdmFsaWQsXG4gICAgICBtZXNzYWdlOiB2YWxpZFxuICAgICAgICA/ICcnXG4gICAgICAgIDogKG9wdGlvbnMubWVzc2FnZSA/PyBgRmlsZSBpcyB0b28gc21hbGwuIE1pbmltdW0gc2l6ZSBpcyAke2xpbWl0TGFiZWx9LmApLFxuICAgICAgdmFsdWU6IHNpemUsXG4gICAgICBtaW5TaXplOiBvcHRpb25zLm1pblNpemUsXG4gICAgfTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { formatFileSizeBytes } from '../../format-file-size';\nimport * as i0 from \"@angular/core\";\nexport class AXFileMaxSizeValidationRule {\n get name() {\n return 'fileMaxSize';\n }\n async validate(value, options) {\n const size = value instanceof File || value instanceof Blob ? value.size : 0;\n const valid = size <= options.maxSize;\n const limitLabel = formatFileSizeBytes(options.maxSize);\n return {\n rule: this.name,\n result: valid,\n message: valid\n ? ''\n : (options.message ??\n `File is too large. Maximum size is ${limitLabel}.`),\n value: size,\n maxSize: options.maxSize,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileMaxSizeValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileMaxSizeValidationRule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileMaxSizeValidationRule, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tYXgtc2l6ZS5ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS10eXBlL3J1bGVzL2ZpbGUtbWF4LXNpemUucnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWM3RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLElBQUksSUFBSTtRQUNOLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUNaLEtBQWtCLEVBQ2xCLE9BQTJDO1FBRTNDLE1BQU0sSUFBSSxHQUFHLEtBQUssWUFBWSxJQUFJLElBQUksS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsS0FBSztnQkFDWixDQUFDLENBQUMsRUFBRTtnQkFDSixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTztvQkFDaEIsc0NBQXNDLFVBQVUsR0FBRyxDQUFDO1lBQ3hELEtBQUssRUFBRSxJQUFJO1lBQ1gsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1NBQ3pCLENBQUM7SUFDSixDQUFDOzhHQXZCVSwyQkFBMkI7a0hBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYVmFsaWRhdGlvblJ1bGUsXG4gIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zLFxuICBBWFZhbGlkYXRpb25SdWxlUmVzdWx0LFxufSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBmb3JtYXRGaWxlU2l6ZUJ5dGVzIH0gZnJvbSAnLi4vLi4vZm9ybWF0LWZpbGUtc2l6ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhGaWxlTWF4U2l6ZVZhbGlkYXRpb25SdWxlT3B0aW9ucyBleHRlbmRzIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zIHtcbiAgLyoqIE1heGltdW0gc2l6ZSBpbiBieXRlcy4gKi9cbiAgbWF4U2l6ZTogbnVtYmVyO1xufVxuXG5kZWNsYXJlIG1vZHVsZSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nIHtcbiAgaW50ZXJmYWNlIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zTWFwIHtcbiAgICBmaWxlTWF4U2l6ZTogQVhGaWxlTWF4U2l6ZVZhbGlkYXRpb25SdWxlT3B0aW9ucztcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhGaWxlTWF4U2l6ZVZhbGlkYXRpb25SdWxlIGltcGxlbWVudHMgQVhWYWxpZGF0aW9uUnVsZSB7XG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdmaWxlTWF4U2l6ZSc7XG4gIH1cblxuICBhc3luYyB2YWxpZGF0ZShcbiAgICB2YWx1ZTogRmlsZSB8IEJsb2IsXG4gICAgb3B0aW9uczogQVhGaWxlTWF4U2l6ZVZhbGlkYXRpb25SdWxlT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PiB7XG4gICAgY29uc3Qgc2l6ZSA9IHZhbHVlIGluc3RhbmNlb2YgRmlsZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIEJsb2IgPyB2YWx1ZS5zaXplIDogMDtcbiAgICBjb25zdCB2YWxpZCA9IHNpemUgPD0gb3B0aW9ucy5tYXhTaXplO1xuICAgIGNvbnN0IGxpbWl0TGFiZWwgPSBmb3JtYXRGaWxlU2l6ZUJ5dGVzKG9wdGlvbnMubWF4U2l6ZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcnVsZTogdGhpcy5uYW1lLFxuICAgICAgcmVzdWx0OiB2YWxpZCxcbiAgICAgIG1lc3NhZ2U6IHZhbGlkXG4gICAgICAgID8gJydcbiAgICAgICAgOiAob3B0aW9ucy5tZXNzYWdlID8/XG4gICAgICAgICAgYEZpbGUgaXMgdG9vIGxhcmdlLiBNYXhpbXVtIHNpemUgaXMgJHtsaW1pdExhYmVsfS5gKSxcbiAgICAgIHZhbHVlOiBzaXplLFxuICAgICAgbWF4U2l6ZTogb3B0aW9ucy5tYXhTaXplLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","export * from './file-type.models';\nexport * from './file-type.utilities';\nexport * from './file-type-info-provider';\nexport * from './file-type-registry.service';\nexport * from './file-type.merge';\nexport * from './file-type.validate';\nexport * from './types.providers';\nexport * from './rules/file-mime-type.rule';\nexport * from './rules/file-min-size.rule';\nexport * from './rules/file-max-size.rule';\nimport { AXValidationRegistryService } from '@acorex/core/validation';\nimport { provideBuiltinFileTypeProviders } from './types.providers';\nimport { AXFileMaxSizeValidationRule } from './rules/file-max-size.rule';\nimport { AXFileMimeTypeValidationRule } from './rules/file-mime-type.rule';\nimport { AXFileMinSizeValidationRule } from './rules/file-min-size.rule';\n/** Validation rule classes to register with {@link AXValidationModule}. */\nexport const AX_FILE_VALIDATION_RULES = [\n AXFileMimeTypeValidationRule,\n AXFileMinSizeValidationRule,\n AXFileMaxSizeValidationRule,\n];\n/** Registers file validation rules with {@link AXValidationRegistryService}. */\nexport function provideFileValidationRules() {\n return {\n provide: 'AXValidationModuleFactory',\n useFactory: (registry) => () => {\n registry.register(...AX_FILE_VALIDATION_RULES);\n },\n deps: [AXValidationRegistryService],\n multi: true,\n };\n}\n/** Registers built-in image / video / audio / file / document type providers. */\nexport { provideBuiltinFileTypeProviders, provideDefaultFileTypeProviders } from './types.providers';\n/**\n * Registers validation rules and optional built-in file type providers.\n * {@link AXFileTypeRegistryService} and {@link AXFileService} are `providedIn: 'root'`.\n */\nexport function provideFileTypeSystem() {\n return [provideFileValidationRules(), ...provideBuiltinFileTypeProviders()];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2ZpbGUvc3JjL2xpYi9maWxlLXR5cGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUczQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RSwyRUFBMkU7QUFDM0UsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsNEJBQTRCO0lBQzVCLDJCQUEyQjtJQUMzQiwyQkFBMkI7Q0FDbkIsQ0FBQztBQUVYLGdGQUFnRjtBQUNoRixNQUFNLFVBQVUsMEJBQTBCO0lBQ3hDLE9BQU87UUFDTCxPQUFPLEVBQUUsMkJBQTJCO1FBQ3BDLFVBQVUsRUFBRSxDQUFDLFFBQXFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUMxRCxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsMkJBQTJCLENBQUM7UUFDbkMsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDO0FBQ0osQ0FBQztBQUVELGlGQUFpRjtBQUNqRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRzs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxFQUFFLEdBQUcsK0JBQStCLEVBQUUsQ0FBQyxDQUFDO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGUtdHlwZS5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXR5cGUudXRpbGl0aWVzJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS10eXBlLWluZm8tcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXR5cGUtcmVnaXN0cnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdHlwZS5tZXJnZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdHlwZS52YWxpZGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzLnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVzL2ZpbGUtbWltZS10eXBlLnJ1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy9maWxlLW1pbi1zaXplLnJ1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy9maWxlLW1heC1zaXplLnJ1bGUnO1xuXG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgcHJvdmlkZUJ1aWx0aW5GaWxlVHlwZVByb3ZpZGVycyB9IGZyb20gJy4vdHlwZXMucHJvdmlkZXJzJztcbmltcG9ydCB7IEFYRmlsZU1heFNpemVWYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4vcnVsZXMvZmlsZS1tYXgtc2l6ZS5ydWxlJztcbmltcG9ydCB7IEFYRmlsZU1pbWVUeXBlVmFsaWRhdGlvblJ1bGUgfSBmcm9tICcuL3J1bGVzL2ZpbGUtbWltZS10eXBlLnJ1bGUnO1xuaW1wb3J0IHsgQVhGaWxlTWluU2l6ZVZhbGlkYXRpb25SdWxlIH0gZnJvbSAnLi9ydWxlcy9maWxlLW1pbi1zaXplLnJ1bGUnO1xuXG4vKiogVmFsaWRhdGlvbiBydWxlIGNsYXNzZXMgdG8gcmVnaXN0ZXIgd2l0aCB7QGxpbmsgQVhWYWxpZGF0aW9uTW9kdWxlfS4gKi9cbmV4cG9ydCBjb25zdCBBWF9GSUxFX1ZBTElEQVRJT05fUlVMRVMgPSBbXG4gIEFYRmlsZU1pbWVUeXBlVmFsaWRhdGlvblJ1bGUsXG4gIEFYRmlsZU1pblNpemVWYWxpZGF0aW9uUnVsZSxcbiAgQVhGaWxlTWF4U2l6ZVZhbGlkYXRpb25SdWxlLFxuXSBhcyBjb25zdDtcblxuLyoqIFJlZ2lzdGVycyBmaWxlIHZhbGlkYXRpb24gcnVsZXMgd2l0aCB7QGxpbmsgQVhWYWxpZGF0aW9uUmVnaXN0cnlTZXJ2aWNlfS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRmlsZVZhbGlkYXRpb25SdWxlcygpOiBQcm92aWRlciB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogJ0FYVmFsaWRhdGlvbk1vZHVsZUZhY3RvcnknLFxuICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhWYWxpZGF0aW9uUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICByZWdpc3RyeS5yZWdpc3RlciguLi5BWF9GSUxFX1ZBTElEQVRJT05fUlVMRVMpO1xuICAgIH0sXG4gICAgZGVwczogW0FYVmFsaWRhdGlvblJlZ2lzdHJ5U2VydmljZV0sXG4gICAgbXVsdGk6IHRydWUsXG4gIH07XG59XG5cbi8qKiBSZWdpc3RlcnMgYnVpbHQtaW4gaW1hZ2UgLyB2aWRlbyAvIGF1ZGlvIC8gZmlsZSAvIGRvY3VtZW50IHR5cGUgcHJvdmlkZXJzLiAqL1xuZXhwb3J0IHsgcHJvdmlkZUJ1aWx0aW5GaWxlVHlwZVByb3ZpZGVycywgcHJvdmlkZURlZmF1bHRGaWxlVHlwZVByb3ZpZGVycyB9IGZyb20gJy4vdHlwZXMucHJvdmlkZXJzJztcblxuLyoqXG4gKiBSZWdpc3RlcnMgdmFsaWRhdGlvbiBydWxlcyBhbmQgb3B0aW9uYWwgYnVpbHQtaW4gZmlsZSB0eXBlIHByb3ZpZGVycy5cbiAqIHtAbGluayBBWEZpbGVUeXBlUmVnaXN0cnlTZXJ2aWNlfSBhbmQge0BsaW5rIEFYRmlsZVNlcnZpY2V9IGFyZSBgcHJvdmlkZWRJbjogJ3Jvb3QnYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVGaWxlVHlwZVN5c3RlbSgpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtwcm92aWRlRmlsZVZhbGlkYXRpb25SdWxlcygpLCAuLi5wcm92aWRlQnVpbHRpbkZpbGVUeXBlUHJvdmlkZXJzKCldO1xufVxuIl19","import { AXFormatModule } from '@acorex/core/format';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { NgModule } from '@angular/core';\nimport { AXFileSizeFormatter } from './file-size-formatter';\nimport { AX_FILE_VALIDATION_RULES, provideDefaultFileTypeProviders, provideFileValidationRules, } from './file-type';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/core/format\";\nimport * as i2 from \"@acorex/core/validation\";\nexport class AXFileModule {\n static forRoot(config) {\n const includeDefaults = config?.includeDefaultFileTypes !== false;\n return {\n ngModule: AXFileModule,\n providers: [\n provideFileValidationRules(),\n ...(includeDefaults ? provideDefaultFileTypeProviders() : []),\n ...(config?.fileTypeProviders ?? []),\n ],\n };\n }\n static forChild(config) {\n return AXFileModule.forRoot(config);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileModule, imports: [i1.AXFormatModule, i2.AXValidationModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileModule, providers: [AXFileSizeFormatter], imports: [AXFormatModule.forChild({ formatters: [AXFileSizeFormatter] }),\n AXValidationModule.forChild({ rules: [...AX_FILE_VALIDATION_RULES] })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXFormatModule.forChild({ formatters: [AXFileSizeFormatter] }),\n AXValidationModule.forChild({ rules: [...AX_FILE_VALIDATION_RULES] }),\n ],\n providers: [AXFileSizeFormatter],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2ZpbGUvc3JjL2xpYi9maWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUF1QixRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsMEJBQTBCLEdBQzNCLE1BQU0sYUFBYSxDQUFDOzs7O0FBY3JCLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBMkI7UUFDeEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxFQUFFLHVCQUF1QixLQUFLLEtBQUssQ0FBQztRQUVsRSxPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFO2dCQUNULDBCQUEwQixFQUFFO2dCQUM1QixHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQywrQkFBK0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdELEdBQUcsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLElBQUksRUFBRSxDQUFDO2FBQ3JDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQTJCO1FBQ3pDLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDOzhHQWhCVSxZQUFZOytHQUFaLFlBQVk7K0dBQVosWUFBWSxhQUZaLENBQUMsbUJBQW1CLENBQUMsWUFIOUIsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztZQUM5RCxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLHdCQUF3QixDQUFDLEVBQUUsQ0FBQzs7MkZBSTVELFlBQVk7a0JBUHhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7d0JBQzlELGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsd0JBQXdCLENBQUMsRUFBRSxDQUFDO3FCQUN0RTtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEZpbGVTaXplRm9ybWF0dGVyIH0gZnJvbSAnLi9maWxlLXNpemUtZm9ybWF0dGVyJztcbmltcG9ydCB7XG4gIEFYX0ZJTEVfVkFMSURBVElPTl9SVUxFUyxcbiAgcHJvdmlkZURlZmF1bHRGaWxlVHlwZVByb3ZpZGVycyxcbiAgcHJvdmlkZUZpbGVWYWxpZGF0aW9uUnVsZXMsXG59IGZyb20gJy4vZmlsZS10eXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWEZpbGVNb2R1bGVDb25maWcge1xuICBmaWxlVHlwZVByb3ZpZGVycz86IFByb3ZpZGVyW107XG4gIGluY2x1ZGVEZWZhdWx0RmlsZVR5cGVzPzogYm9vbGVhbjtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEFYRm9ybWF0TW9kdWxlLmZvckNoaWxkKHsgZm9ybWF0dGVyczogW0FYRmlsZVNpemVGb3JtYXR0ZXJdIH0pLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZS5mb3JDaGlsZCh7IHJ1bGVzOiBbLi4uQVhfRklMRV9WQUxJREFUSU9OX1JVTEVTXSB9KSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbQVhGaWxlU2l6ZUZvcm1hdHRlcl0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRmlsZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IEFYRmlsZU1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhGaWxlTW9kdWxlPiB7XG4gICAgY29uc3QgaW5jbHVkZURlZmF1bHRzID0gY29uZmlnPy5pbmNsdWRlRGVmYXVsdEZpbGVUeXBlcyAhPT0gZmFsc2U7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYRmlsZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlRmlsZVZhbGlkYXRpb25SdWxlcygpLFxuICAgICAgICAuLi4oaW5jbHVkZURlZmF1bHRzID8gcHJvdmlkZURlZmF1bHRGaWxlVHlwZVByb3ZpZGVycygpIDogW10pLFxuICAgICAgICAuLi4oY29uZmlnPy5maWxlVHlwZVByb3ZpZGVycyA/PyBbXSksXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoY29uZmlnPzogQVhGaWxlTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBWEZpbGVNb2R1bGU+IHtcbiAgICByZXR1cm4gQVhGaWxlTW9kdWxlLmZvclJvb3QoY29uZmlnKTtcbiAgfVxufVxuIl19","import { DOCUMENT, inject, Injectable, isDevMode } from '@angular/core';\nimport { AXFileTypeRegistryService } from './file-type/file-type-registry.service';\nimport * as i0 from \"@angular/core\";\nexport class AXFileService {\n constructor() {\n this.document = inject(DOCUMENT);\n this.fileTypes = inject(AXFileTypeRegistryService);\n }\n async getFileTypes() {\n return this.fileTypes.getTypes();\n }\n async getFileType(name) {\n return this.fileTypes.get(name);\n }\n async getAcceptAttribute(fileType) {\n return this.fileTypes.accept(fileType);\n }\n async matchFileType(file) {\n return this.fileTypes.matchType(file);\n }\n validate(file, fileType) {\n return this.fileTypes.validateAgainstTypes(file, fileType);\n }\n validateMany(files, fileType) {\n return this.fileTypes.validateMany(files, fileType);\n }\n /**\n * Opens a file selection dialog.\n * With `fileType`, returns files that pass catalog validation (`accept` defaults from the catalog).\n * Without `fileType`, returns all selected files (legacy `accept` / `multiple` only).\n */\n async chooseValidated(options) {\n const resolved = await this.resolveChooseOptions(options);\n const files = await this.openFileDialog(resolved);\n if (files.length === 0) {\n return { accepted: [], rejected: [] };\n }\n if (options.fileType) {\n return this.validateMany(files, options.fileType);\n }\n return { accepted: files, rejected: [] };\n }\n async choose(options) {\n const { accepted } = await this.chooseValidated(options);\n return accepted;\n }\n blobToBase64(blob) {\n if (!(blob instanceof Blob)) {\n return Promise.reject(new Error('input is not blob'));\n }\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = () => reject(reader.error);\n reader.onload = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n getSize(file) {\n if (this.isBase64(file)) {\n return this.getBase64Size(file);\n }\n return false;\n }\n isBase64(base64) {\n const regx = /[^:]\\w+\\/[\\w-+\\d.]+(?=;|,)/;\n return regx.test(base64);\n }\n getBase64Size(base64) {\n return atob(base64.substring(base64.indexOf(',') + 1)).length;\n }\n async resolveChooseOptions(options) {\n const multiple = options.multiple ?? false;\n if (options.fileType) {\n const accept = options.accept ?? (await this.getAcceptAttribute(options.fileType));\n if (isDevMode() && !accept) {\n const name = Array.isArray(options.fileType) ? options.fileType.join(', ') : options.fileType;\n console.warn(`[AXFileService] No accept filter for file type \"${name}\". ` +\n 'Register a file type provider (e.g. provideConversationFileCatalog).');\n }\n return { accept, multiple };\n }\n return { accept: options.accept ?? '', multiple };\n }\n openFileDialog(options) {\n return new Promise((resolve, reject) => {\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;\n const cleanup = () => {\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n if (input.parentNode) {\n this.document.body.removeChild(input);\n }\n input.remove();\n };\n const onError = (e) => {\n cleanup();\n reject(e);\n };\n const onChange = () => {\n const files = Array.from(input.files ?? []);\n cleanup();\n resolve(files);\n };\n input.addEventListener('change', onChange);\n input.addEventListener('error', onError);\n input.click();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFileService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9maWxlL3NyYy9saWIvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBV25GLE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBRW1CLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBNEloRTtJQTFJQyxLQUFLLENBQUMsWUFBWTtRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBNEI7UUFDbkQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFVO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFVLEVBQUUsUUFBMkI7UUFDOUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsWUFBWSxDQUNWLEtBQWEsRUFDYixRQUEyQjtR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QUMsQ0FBQztnQkFDNUMsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztnQkFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsQ0FBQyxDQUFDO1lBRUYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFRLEVBQUUsRUFBRTtnQkFDM0IsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO2dCQUNwQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUM7WUFFRixLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDekMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E3SVUsYUFBYTtrSEFBYixhQUFhLGNBREEsTUFBTTs7MkZBQ25CLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgRE9DVU1FTlQsIGluamVjdCwgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEZpbGVUeXBlUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9maWxlLXR5cGUvZmlsZS10eXBlLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHR5cGUgeyBBWEZpbGVUeXBlIH0gZnJvbSAnLi9maWxlLXR5cGUvZmlsZS10eXBlLm1vZGVscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhGaWxlQ2hvb3NlT3B0aW9ucyB7XG4gIC8qKiBMb2dpY2FsIHR5cGUgbmFtZShzKSBmcm9tIHtAbGluayBBWEZpbGVUeXBlUmVnaXN0cnlTZXJ2aWNlfS4gV2hlbiBzZXQsIGZpbGVzIGFyZSB2YWxpZGF0ZWQgYWdhaW5zdCB0aGUgY2F0YWxvZy4gKi9cbiAgZmlsZVR5cGU/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgYWNjZXB0Pzogc3RyaW5nO1xuICBtdWx0aXBsZT86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhGaWxlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGVUeXBlcyA9IGluamVjdChBWEZpbGVUeXBlUmVnaXN0cnlTZXJ2aWNlKTtcblxuICBhc3luYyBnZXRGaWxlVHlwZXMoKTogUHJvbWlzZTxBWEZpbGVUeXBlW10+IHtcbiAgICByZXR1cm4gdGhpcy5maWxlVHlwZXMuZ2V0VHlwZXMoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEZpbGVUeXBlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhGaWxlVHlwZSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmZpbGVUeXBlcy5nZXQobmFtZSk7XG4gIH1cblxuICBhc3luYyBnZXRBY2NlcHRBdHRyaWJ1dGUoZmlsZVR5cGU/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVR5cGVzLmFjY2VwdChmaWxlVHlwZSk7XG4gIH1cblxuICBhc3luYyBtYXRjaEZpbGVUeXBlKGZpbGU6IEZpbGUpOiBQcm9taXNlPEFYRmlsZVR5cGUgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5maWxlVHlwZXMubWF0Y2hUeXBlKGZpbGUpO1xuICB9XG5cbiAgdmFsaWRhdGUoZmlsZTogRmlsZSwgZmlsZVR5cGU6IHN0cmluZyB8IHN0cmluZ1tdKTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0W10+IHtcbiAgICByZXR1cm4gdGhpcy5maWxlVHlwZXMudmFsaWRhdGVBZ2FpbnN0VHlwZXMoZmlsZSwgZmlsZVR5cGUpO1xuICB9XG5cbiAgdmFsaWRhdGVNYW55KFxuICAgIGZpbGVzOiBGaWxlW10sXG4gICAgZmlsZVR5cGU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICApOiBQcm9taXNlPHsgYWNjZXB0ZWQ6IEZpbGVbXTsgcmVqZWN0ZWQ6IHsgZmlsZTogRmlsZTsgZXJyb3JzOiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0W10gfVtdIH0+IHtcbiAgICByZXR1cm4gdGhpcy5maWxlVHlwZXMudmFsaWRhdGVNYW55KGZpbGVzLCBmaWxlVHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBmaWxlIHNlbGVjdGlvbiBkaWFsb2cuXG4gICAqIFdpdGggYGZpbGVUeXBlYCwgcmV0dXJucyBmaWxlcyB0aGF0IHBhc3MgY2F0YWxvZyB2YWxpZGF0aW9uIChgYWNjZXB0YCBkZWZhdWx0cyBmcm9tIHRoZSBjYXRhbG9nKS5cbiAgICogV2l0aG91dCBgZmlsZVR5cGVgLCByZXR1cm5zIGFsbCBzZWxlY3RlZCBmaWxlcyAobGVnYWN5IGBhY2NlcHRgIC8gYG11bHRpcGxlYCBvbmx5KS5cbiAgICovXG4gIGFzeW5jIGNob29zZVZhbGlkYXRlZChcbiAgICBvcHRpb25zOiBBWEZpbGVDaG9vc2VPcHRpb25zLFxuICApOiBQcm9taXNlPHsgYWNjZXB0ZWQ6IEZpbGVbXTsgcmVqZWN0ZWQ6IHsgZmlsZTogRmlsZTsgZXJyb3JzOiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0W10gfVtdIH0+IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IGF3YWl0IHRoaXMucmVzb2x2ZUNob29zZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCB0aGlzLm9wZW5GaWxlRGlhbG9nKHJlc29sdmVkKTtcblxuICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB7IGFjY2VwdGVkOiBbXSwgcmVqZWN0ZWQ6IFtdIH07XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZmlsZVR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlTWFueShmaWxlcywgb3B0aW9ucy5maWxlVHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgYWNjZXB0ZWQ6IGZpbGVzLCByZWplY3RlZDogW10gfTtcbiAgfVxuXG4gIGFzeW5jIGNob29zZShvcHRpb25zOiBBWEZpbGVDaG9vc2VPcHRpb25zKTogUHJvbWlzZTxGaWxlW10+IHtcbiAgICBjb25zdCB7IGFjY2VwdGVkIH0gPSBhd2FpdCB0aGlzLmNob29zZVZhbGlkYXRlZChvcHRpb25zKTtcbiAgICByZXR1cm4gYWNjZXB0ZWQ7XG4gIH1cblxuICBibG9iVG9CYXNlNjQoYmxvYjogQmxvYik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCEoYmxvYiBpbnN0YW5jZW9mIEJsb2IpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCdpbnB1dCBpcyBub3QgYmxvYicpKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4gcmVqZWN0KHJlYWRlci5lcnJvcik7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFNpemUoZmlsZTogRmlsZSB8IEJsb2IgfCBzdHJpbmcpOiBudW1iZXIgfCBmYWxzZSB7XG4gICAgaWYgKHRoaXMuaXNCYXNlNjQoZmlsZSBhcyBzdHJpbmcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRCYXNlNjRTaXplKGZpbGUgYXMgc3RyaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNCYXNlNjQoYmFzZTY0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWd4ID0gL1teOl1cXHcrXFwvW1xcdy0rXFxkLl0rKD89O3wsKS87XG4gICAgcmV0dXJuIHJlZ3gudGVzdChiYXNlNjQpO1xuICB9XG5cbiAgZ2V0QmFzZTY0U2l6ZShiYXNlNjQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIGF0b2IoYmFzZTY0LnN1YnN0cmluZyhiYXNlNjQuaW5kZXhPZignLCcpICsgMSkpLmxlbmd0aDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzb2x2ZUNob29zZU9wdGlvbnMoXG4gICAgb3B0aW9uczogQVhGaWxlQ2hvb3NlT3B0aW9ucyxcbiAgKTogUHJvbWlzZTx7IGFjY2VwdDogc3RyaW5nOyBtdWx0aXBsZTogYm9vbGVhbiB9PiB7XG4gICAgY29uc3QgbXVsdGlwbGUgPSBvcHRpb25zLm11bHRpcGxlID8/IGZhbHNlO1xuXG4gICAgaWYgKG9wdGlvbnMuZmlsZVR5cGUpIHtcbiAgICAgIGNvbnN0IGFjY2VwdCA9IG9wdGlvbnMuYWNjZXB0ID8/IChhd2FpdCB0aGlzLmdldEFjY2VwdEF0dHJpYnV0ZShvcHRpb25zLmZpbGVUeXBlKSk7XG5cbiAgICAgIGlmIChpc0Rldk1vZGUoKSAmJiAhYWNjZXB0KSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBBcnJheS5pc0FycmF5KG9wdGlvbnMuZmlsZVR5cGUpID8gb3B0aW9ucy5maWxlVHlwZS5qb2luKCcsICcpIDogb3B0aW9ucy5maWxlVHlwZTtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbQVhGaWxlU2VydmljZV0gTm8gYWNjZXB0IGZpbHRlciBmb3IgZmlsZSB0eXBlIFwiJHtuYW1lfVwiLiBgICtcbiAgICAgICAgICAgICdSZWdpc3RlciBhIGZpbGUgdHlwZSBwcm92aWRlciAoZS5nLiBwcm92aWRlQ29udmVyc2F0aW9uRmlsZUNhdGFsb2cpLicsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IGFjY2VwdCwgbXVsdGlwbGUgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBhY2NlcHQ6IG9wdGlvbnMuYWNjZXB0ID8/ICcnLCBtdWx0aXBsZSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRmlsZURpYWxvZyhvcHRpb25zOiB7IGFjY2VwdDogc3RyaW5nOyBtdWx0aXBsZTogYm9vbGVhbiB9KTogUHJvbWlzZTxGaWxlW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8RmlsZVtdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBpbnB1dDogSFRNTElucHV0RWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgIGlucHV0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wdXQpO1xuICAgICAgaW5wdXQudHlwZSA9ICdmaWxlJztcbiAgICAgIGlucHV0LmFjY2VwdCA9IG9wdGlvbnMuYWNjZXB0O1xuICAgICAgaW5wdXQubXVsdGlwbGUgPSBvcHRpb25zLm11bHRpcGxlO1xuXG4gICAgICBjb25zdCBjbGVhbnVwID0gKCkgPT4ge1xuICAgICAgICBpbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gICAgICAgIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIGlmIChpbnB1dC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0KTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dC5yZW1vdmUoKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tKGlucHV0LmZpbGVzID8/IFtdKTtcbiAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICByZXNvbHZlKGZpbGVzKTtcbiAgICAgIH07XG5cbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKTtcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICBpbnB1dC5jbGljaygpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvZmlsZS9zcmMvYWNvcmV4LWNvcmUtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["MB"],"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: "
|
|
45
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatterRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
45
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatterRegistryService, providedIn: 'root' }); }
|
|
46
46
|
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", 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: "
|
|
86
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
86
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatService, providedIn: 'root' }); }
|
|
87
87
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", 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: "
|
|
130
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
130
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: AXFormatterDirective, isStandalone: true, selector: "[formatter]", ngImport: i0 }); }
|
|
131
131
|
}
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatterDirective, decorators: [{
|
|
133
133
|
type: Directive,
|
|
134
134
|
args: [{
|
|
135
135
|
selector: '[formatter]',
|
|
@@ -177,10 +177,10 @@ class AXFormatPipe {
|
|
|
177
177
|
// For non-periodic formatters, use the original behavior
|
|
178
178
|
return systemEvents$.pipe(startWith(null), map(() => this.formatService.format(value, name, options)));
|
|
179
179
|
}
|
|
180
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
181
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
180
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
181
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: AXFormatPipe, isStandalone: true, name: "format" }); }
|
|
182
182
|
}
|
|
183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatPipe, decorators: [{
|
|
184
184
|
type: Pipe,
|
|
185
185
|
args: [{
|
|
186
186
|
name: 'format',
|
|
@@ -252,10 +252,10 @@ class AXNumberFormatter {
|
|
|
252
252
|
this.separatorsCache[locale] = { thousandSeparator, decimalSeparator };
|
|
253
253
|
return this.separatorsCache[locale];
|
|
254
254
|
}
|
|
255
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
256
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
255
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXNumberFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
256
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXNumberFormatter }); }
|
|
257
257
|
}
|
|
258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXNumberFormatter, decorators: [{
|
|
259
259
|
type: Injectable
|
|
260
260
|
}] });
|
|
261
261
|
|
|
@@ -330,11 +330,11 @@ class AXFormatModule {
|
|
|
330
330
|
f();
|
|
331
331
|
});
|
|
332
332
|
}
|
|
333
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
334
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
335
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
333
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
334
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: AXFormatModule, imports: [AXFormatterDirective, AXFormatPipe], exports: [AXFormatterDirective, AXFormatPipe] }); }
|
|
335
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatModule }); }
|
|
336
336
|
}
|
|
337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFormatModule, decorators: [{
|
|
338
338
|
type: NgModule,
|
|
339
339
|
args: [{
|
|
340
340
|
imports: [AXFormatterDirective, AXFormatPipe],
|